@anarchitects/auth-angular 0.4.0 → 0.5.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"anarchitects-auth-angular-state.mjs","sources":["../../../../../libs/auth/angular/state/src/auth.store.ts","../../../../../libs/auth/angular/state/src/auth-state.provider.ts","../../../../../libs/auth/angular/state/src/anarchitects-auth-angular-state.ts"],"sourcesContent":["import { AuthApi } from '@anarchitects/auth-angular/data-access';\nimport { createAppAbility } from '@anarchitects/auth-angular/util';\nimport {\n ActivateUserRequestDTO,\n ChangePasswordRequestDTO,\n ForgotPasswordRequestDTO,\n LoginRequestDTO,\n LogoutRequestDTO,\n RefreshTokenRequestDTO,\n RegisterRequestDTO,\n ResetPasswordRequestDTO,\n UpdateEmailRequestDTO,\n VerifyEmailRequestDTO,\n} from '@anarchitects/auth-ts/dtos';\nimport { User } from '@anarchitects/auth-ts/models';\nimport { computed, inject } from '@angular/core';\nimport { PureAbility } from '@casl/ability';\nimport { tapResponse } from '@ngrx/operators';\nimport {\n patchState,\n signalStore,\n withComputed,\n withMethods,\n withProps,\n withState,\n} from '@ngrx/signals';\nimport {\n removeAllEntities,\n setAllEntities,\n withEntities,\n} from '@ngrx/signals/entities';\nimport { rxMethod } from '@ngrx/signals/rxjs-interop';\nimport { jwtDecode } from 'jwt-decode';\nimport { EMPTY, pipe, switchMap, tap } from 'rxjs';\n\ntype AuthState = {\n loading: boolean;\n error: string | null;\n success: boolean;\n ability?: PureAbility;\n};\n\ntype AuthUser = Pick<User, 'id' | 'email'>;\n\nconst initialState: AuthState = {\n loading: false,\n error: null,\n success: false,\n ability: undefined,\n};\n\nexport const AuthStore = signalStore(\n withState(initialState),\n withEntities<AuthUser>(),\n withProps(() => ({\n _authApi: inject(AuthApi),\n })),\n withComputed((store) => ({\n isLoggedIn: computed(() => !!store.entities().length),\n loggedInUser: computed(() => store.entities()[0]),\n })),\n withMethods((store) => ({\n registerUser: rxMethod<RegisterRequestDTO>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap((dto) =>\n store._authApi.registerUser(dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n activateUser: rxMethod<ActivateUserRequestDTO>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap((dto) =>\n store._authApi.activateUser(dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n login: rxMethod<LoginRequestDTO>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap((dto) =>\n store._authApi.login(dto).pipe(\n switchMap(({ accessToken, refreshToken }) => {\n localStorage.setItem('accessToken', accessToken);\n localStorage.setItem('refreshToken', refreshToken);\n const decoded = jwtDecode<{ sub?: string }>(accessToken);\n if (!decoded.sub) {\n patchState(store, { error: 'Invalid access token payload.' });\n return EMPTY;\n }\n return store._authApi.getLoggedInUserInfo();\n }),\n tapResponse({\n next: ({ user, rbac }) => {\n const authUser: AuthUser = {\n id: user.id,\n email: user.email,\n };\n patchState(store, setAllEntities([authUser]), {\n ability: createAppAbility(rbac),\n success: true,\n });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n logout: rxMethod<LogoutRequestDTO>(\n pipe(\n tap(() => {\n patchState(store, { loading: true, error: null, success: false });\n localStorage.removeItem('accessToken');\n localStorage.removeItem('refreshToken');\n patchState(store, removeAllEntities(), { ability: undefined });\n }),\n switchMap((dto) =>\n store._authApi.logout(dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n changePassword: rxMethod<{ userId: string; dto: ChangePasswordRequestDTO }>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap(({ userId, dto }) =>\n store._authApi.changePassword(userId, dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n forgotPassword: rxMethod<ForgotPasswordRequestDTO>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap((dto) =>\n store._authApi.forgotPassword(dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n resetPassword: rxMethod<{ dto: ResetPasswordRequestDTO }>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap(({ dto }) =>\n store._authApi.resetPassword(dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n verifyEmail: rxMethod<VerifyEmailRequestDTO>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap((dto) =>\n store._authApi.verifyEmail(dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n updateEmail: rxMethod<{ userId: string; dto: UpdateEmailRequestDTO }>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap(({ userId, dto }) =>\n store._authApi.updateEmail(userId, dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n refreshTokens: rxMethod<{ userId: string; dto: RefreshTokenRequestDTO }>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap(({ userId, dto }) =>\n store._authApi.refreshTokens(userId, dto).pipe(\n switchMap(({ accessToken, refreshToken }) => {\n localStorage.setItem('accessToken', accessToken);\n localStorage.setItem('refreshToken', refreshToken);\n const decoded = jwtDecode<{ sub?: string }>(accessToken);\n if (!decoded.sub) {\n patchState(store, { error: 'Invalid access token payload.' });\n return EMPTY;\n }\n return store._authApi.getLoggedInUserInfo();\n }),\n tapResponse({\n next: ({ user, rbac }) => {\n const authUser: AuthUser = {\n id: user.id,\n email: user.email,\n };\n patchState(store, setAllEntities([authUser]), {\n ability: createAppAbility(rbac),\n success: true,\n });\n },\n error: (error: string) => {\n patchState(store, { error });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n })),\n);\n","import { Provider } from '@angular/core';\nimport { AuthStore } from './auth.store';\n\nexport function provideAuthState(): Provider {\n return AuthStore;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anarchitects-auth-angular-state.mjs","sources":["../../../../../libs/auth/angular/state/src/auth-state.options.ts","../../../../../libs/auth/angular/state/src/auth.store.ts","../../../../../libs/auth/angular/state/src/auth-state.provider.ts","../../../../../libs/auth/angular/state/src/anarchitects-auth-angular-state.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport type AuthRestoreFailureBehavior =\n | 'stayLoggedOut'\n | 'redirectToLogin';\n\nexport type AuthStateOptions = {\n restoreOnInit?: boolean;\n onRestoreFailure?: AuthRestoreFailureBehavior;\n};\n\nexport const DEFAULT_AUTH_STATE_OPTIONS: Required<AuthStateOptions> = {\n restoreOnInit: true,\n onRestoreFailure: 'stayLoggedOut',\n};\n\nexport const AUTH_STATE_OPTIONS = new InjectionToken<\n Required<AuthStateOptions>\n>('AUTH_STATE_OPTIONS', {\n factory: () => DEFAULT_AUTH_STATE_OPTIONS,\n});\n\nexport const resolveAuthStateOptions = (\n options: AuthStateOptions = {},\n): Required<AuthStateOptions> => ({\n ...DEFAULT_AUTH_STATE_OPTIONS,\n ...options,\n});\n","import { AuthApi } from '@anarchitects/auth-angular/data-access';\nimport {\n ACCESS_TOKEN_STORAGE_KEY,\n clearStoredTokens,\n getStoredToken,\n resolveUserIdFromAccessToken,\n storeTokens,\n} from '@anarchitects/auth-angular/data-access';\nimport { createAppAbility } from '@anarchitects/auth-angular/util';\nimport {\n ActivateUserRequestDTO,\n ChangePasswordRequestDTO,\n ForgotPasswordRequestDTO,\n LoginRequestDTO,\n LogoutRequestDTO,\n RefreshTokenRequestDTO,\n RegisterRequestDTO,\n ResetPasswordRequestDTO,\n UpdateEmailRequestDTO,\n VerifyEmailRequestDTO,\n} from '@anarchitects/auth-ts/dtos';\nimport { PolicyRule, User } from '@anarchitects/auth-ts/models';\nimport { computed, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { tapResponse } from '@ngrx/operators';\nimport {\n patchState,\n signalStore,\n withComputed,\n withHooks,\n withMethods,\n withProps,\n withState,\n} from '@ngrx/signals';\nimport {\n removeAllEntities,\n setAllEntities,\n withEntities,\n} from '@ngrx/signals/entities';\nimport { rxMethod } from '@ngrx/signals/rxjs-interop';\nimport { catchError, EMPTY, pipe, switchMap, tap, throwError } from 'rxjs';\nimport { AUTH_STATE_OPTIONS } from './auth-state.options';\n\ntype AuthState = {\n loading: boolean;\n error: string | null;\n success: boolean;\n ability: ReturnType<typeof createAppAbility> | undefined;\n rbac: PolicyRule[];\n initialized: boolean;\n restoring: boolean;\n};\n\ntype AuthUser = Pick<User, 'id' | 'email'>;\n\nconst LOGIN_REDIRECT_PATH = '/login';\n\nconst initialState: AuthState = {\n loading: false,\n error: null,\n success: false,\n ability: undefined,\n rbac: [],\n initialized: false,\n restoring: false,\n};\n\nconst toErrorMessage = (error: unknown): string => {\n if (typeof error === 'string') {\n return error;\n }\n\n if (error instanceof Error) {\n return error.message;\n }\n\n if (\n error &&\n typeof error === 'object' &&\n 'message' in error &&\n typeof error.message === 'string'\n ) {\n return error.message;\n }\n\n return 'Request failed.';\n};\n\nconst patchAuthenticatedSession = (\n store: object,\n session: { user: AuthUser; rbac: PolicyRule[] },\n) => {\n patchState(\n store as never,\n setAllEntities([session.user]),\n {\n ability: createAppAbility(session.rbac),\n error: null,\n rbac: session.rbac,\n success: true,\n },\n );\n};\n\nconst clearAuthenticatedSession = (\n store: object,\n state: Partial<AuthState> = {},\n) => {\n patchState(\n store as never,\n removeAllEntities(),\n {\n ability: undefined,\n rbac: [],\n success: false,\n ...state,\n },\n );\n};\n\nconst redirectToLogin = (router: Router | null): void => {\n if (router) {\n void router.navigateByUrl(LOGIN_REDIRECT_PATH);\n return;\n }\n\n if (typeof window !== 'undefined') {\n window.location.assign(LOGIN_REDIRECT_PATH);\n }\n};\n\nconst failClosedHydration = (\n store: object,\n error: unknown,\n state: Partial<AuthState> = {},\n) => {\n clearStoredTokens();\n clearAuthenticatedSession(store, {\n error: toErrorMessage(error),\n ...state,\n });\n};\n\nexport const AuthStore = signalStore(\n withState(initialState),\n withEntities<AuthUser>(),\n withProps(() => ({\n _authApi: inject(AuthApi),\n _authStateOptions: inject(AUTH_STATE_OPTIONS),\n _router: inject(Router, { optional: true }),\n })),\n withComputed((store) => ({\n isLoggedIn: computed(() => !!store.entities().length),\n loggedInUser: computed(() => store.entities()[0]),\n })),\n withMethods((store) => ({\n restoreSession: rxMethod<void>(\n pipe(\n tap(() => {\n if (!store._authStateOptions.restoreOnInit || store.initialized()) {\n patchState(store, { initialized: true, restoring: false });\n return;\n }\n\n patchState(store, {\n error: null,\n restoring: true,\n success: false,\n });\n }),\n switchMap(() => {\n if (!store._authStateOptions.restoreOnInit || store.initialized()) {\n return EMPTY;\n }\n\n const accessToken = getStoredToken(ACCESS_TOKEN_STORAGE_KEY);\n\n if (!accessToken) {\n patchState(store, { initialized: true, restoring: false });\n return EMPTY;\n }\n\n if (!resolveUserIdFromAccessToken(accessToken)) {\n clearStoredTokens();\n clearAuthenticatedSession(store, {\n error: 'Invalid access token payload.',\n initialized: true,\n restoring: false,\n });\n\n if (store._authStateOptions.onRestoreFailure === 'redirectToLogin') {\n redirectToLogin(store._router);\n }\n\n return EMPTY;\n }\n\n return store._authApi\n .getLoggedInUserInfo({\n suppressAuthFailureRedirect:\n store._authStateOptions.onRestoreFailure === 'stayLoggedOut',\n })\n .pipe(\n tapResponse({\n next: ({ user, rbac }) => {\n patchAuthenticatedSession(store, {\n user: {\n email: user.email,\n id: user.id,\n },\n rbac,\n });\n patchState(store, {\n initialized: true,\n restoring: false,\n });\n },\n error: (error: unknown) => {\n clearStoredTokens();\n clearAuthenticatedSession(store, {\n error: toErrorMessage(error),\n initialized: true,\n restoring: false,\n });\n\n if (\n store._authStateOptions.onRestoreFailure ===\n 'redirectToLogin'\n ) {\n redirectToLogin(store._router);\n }\n },\n }),\n );\n }),\n ),\n ),\n registerUser: rxMethod<RegisterRequestDTO>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap((dto) =>\n store._authApi.registerUser(dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: unknown) => {\n patchState(store, { error: toErrorMessage(error) });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n activateUser: rxMethod<ActivateUserRequestDTO>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap((dto) =>\n store._authApi.activateUser(dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: unknown) => {\n patchState(store, { error: toErrorMessage(error) });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n login: rxMethod<LoginRequestDTO>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap((dto) =>\n store._authApi.login(dto).pipe(\n switchMap(({ accessToken, refreshToken }) => {\n storeTokens({ accessToken, refreshToken });\n\n if (!resolveUserIdFromAccessToken(accessToken)) {\n clearStoredTokens();\n patchState(store, { error: 'Invalid access token payload.' });\n return EMPTY;\n }\n\n return store._authApi.getLoggedInUserInfo().pipe(\n catchError((error: unknown) => {\n failClosedHydration(store, error, { initialized: true });\n return throwError(() => error);\n }),\n );\n }),\n tapResponse({\n next: ({ user, rbac }) => {\n patchAuthenticatedSession(store, {\n user: {\n email: user.email,\n id: user.id,\n },\n rbac,\n });\n patchState(store, { initialized: true });\n },\n error: (error: unknown) => {\n patchState(store, {\n error: toErrorMessage(error),\n initialized: true,\n });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n logout: rxMethod<LogoutRequestDTO>(\n pipe(\n tap(() => {\n patchState(store, { error: null, loading: true, success: false });\n clearStoredTokens();\n clearAuthenticatedSession(store, { initialized: true });\n }),\n switchMap((dto) =>\n store._authApi.logout(dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: unknown) => {\n patchState(store, { error: toErrorMessage(error) });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n changePassword: rxMethod<{ userId: string; dto: ChangePasswordRequestDTO }>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap(({ userId, dto }) =>\n store._authApi.changePassword(userId, dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: unknown) => {\n patchState(store, { error: toErrorMessage(error) });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n forgotPassword: rxMethod<ForgotPasswordRequestDTO>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap((dto) =>\n store._authApi.forgotPassword(dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: unknown) => {\n patchState(store, { error: toErrorMessage(error) });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n resetPassword: rxMethod<{ dto: ResetPasswordRequestDTO }>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap(({ dto }) =>\n store._authApi.resetPassword(dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: unknown) => {\n patchState(store, { error: toErrorMessage(error) });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n verifyEmail: rxMethod<VerifyEmailRequestDTO>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap((dto) =>\n store._authApi.verifyEmail(dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: unknown) => {\n patchState(store, { error: toErrorMessage(error) });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n updateEmail: rxMethod<{ userId: string; dto: UpdateEmailRequestDTO }>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap(({ userId, dto }) =>\n store._authApi.updateEmail(userId, dto).pipe(\n tapResponse({\n next: ({ success }) => {\n patchState(store, { success });\n },\n error: (error: unknown) => {\n patchState(store, { error: toErrorMessage(error) });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n refreshTokens: rxMethod<{ userId: string; dto: RefreshTokenRequestDTO }>(\n pipe(\n tap(() => patchState(store, { loading: true, error: null })),\n switchMap(({ userId, dto }) =>\n store._authApi.refreshTokens(userId, dto).pipe(\n switchMap(({ accessToken, refreshToken }) => {\n storeTokens({ accessToken, refreshToken });\n\n if (!resolveUserIdFromAccessToken(accessToken)) {\n clearStoredTokens();\n patchState(store, { error: 'Invalid access token payload.' });\n return EMPTY;\n }\n\n return store._authApi.getLoggedInUserInfo().pipe(\n catchError((error: unknown) => {\n failClosedHydration(store, error, { initialized: true });\n return throwError(() => error);\n }),\n );\n }),\n tapResponse({\n next: ({ user, rbac }) => {\n patchAuthenticatedSession(store, {\n user: {\n email: user.email,\n id: user.id,\n },\n rbac,\n });\n patchState(store, { initialized: true });\n },\n error: (error: unknown) => {\n patchState(store, {\n error: toErrorMessage(error),\n initialized: true,\n });\n },\n finalize: () => {\n patchState(store, { loading: false });\n },\n }),\n ),\n ),\n ),\n ),\n })),\n withHooks((store) => ({\n onInit() {\n store.restoreSession();\n },\n })),\n);\n","import {\n EnvironmentProviders,\n inject,\n provideEnvironmentInitializer,\n Provider,\n} from '@angular/core';\nimport { AuthStore } from './auth.store';\nimport {\n AUTH_STATE_OPTIONS,\n AuthStateOptions,\n resolveAuthStateOptions,\n} from './auth-state.options';\n\nexport function provideAuthState(\n options: AuthStateOptions = {},\n): Array<Provider | EnvironmentProviders> {\n return [\n { provide: AUTH_STATE_OPTIONS, useValue: resolveAuthStateOptions(options) },\n AuthStore,\n provideEnvironmentInitializer(() => {\n inject(AuthStore);\n }),\n ];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAWO,MAAM,0BAA0B,GAA+B;AACpE,IAAA,aAAa,EAAE,IAAI;AACnB,IAAA,gBAAgB,EAAE,eAAe;;MAGtB,kBAAkB,GAAG,IAAI,cAAc,CAElD,oBAAoB,EAAE;AACtB,IAAA,OAAO,EAAE,MAAM,0BAA0B;AAC1C,CAAA;AAEM,MAAM,uBAAuB,GAAG,CACrC,UAA4B,EAAE,MACE;AAChC,IAAA,GAAG,0BAA0B;AAC7B,IAAA,GAAG,OAAO;AACX,CAAA;;AC4BD,MAAM,mBAAmB,GAAG,QAAQ;AAEpC,MAAM,YAAY,GAAc;AAC9B,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,IAAI,EAAE,EAAE;AACR,IAAA,WAAW,EAAE,KAAK;AAClB,IAAA,SAAS,EAAE,KAAK;CACjB;AAED,MAAM,cAAc,GAAG,CAAC,KAAc,KAAY;AAChD,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,IAAI,KAAK,YAAY,KAAK,EAAE;QAC1B,OAAO,KAAK,CAAC,OAAO;IACtB;AAEA,IAAA,IACE,KAAK;QACL,OAAO,KAAK,KAAK,QAAQ;AACzB,QAAA,SAAS,IAAI,KAAK;AAClB,QAAA,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EACjC;QACA,OAAO,KAAK,CAAC,OAAO;IACtB;AAEA,IAAA,OAAO,iBAAiB;AAC1B,CAAC;AAED,MAAM,yBAAyB,GAAG,CAChC,KAAa,EACb,OAA+C,KAC7C;IACF,UAAU,CACR,KAAc,EACd,cAAc,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAC9B;AACE,QAAA,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC;AACvC,QAAA,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,OAAO,CAAC,IAAI;AAClB,QAAA,OAAO,EAAE,IAAI;AACd,KAAA,CACF;AACH,CAAC;AAED,MAAM,yBAAyB,GAAG,CAChC,KAAa,EACb,KAAA,GAA4B,EAAE,KAC5B;AACF,IAAA,UAAU,CACR,KAAc,EACd,iBAAiB,EAAE,EACnB;AACE,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,GAAG,KAAK;AACT,KAAA,CACF;AACH,CAAC;AAED,MAAM,eAAe,GAAG,CAAC,MAAqB,KAAU;IACtD,IAAI,MAAM,EAAE;AACV,QAAA,KAAK,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC;QAC9C;IACF;AAEA,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,QAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAC7C;AACF,CAAC;AAED,MAAM,mBAAmB,GAAG,CAC1B,KAAa,EACb,KAAc,EACd,KAAA,GAA4B,EAAE,KAC5B;AACF,IAAA,iBAAiB,EAAE;IACnB,yBAAyB,CAAC,KAAK,EAAE;AAC/B,QAAA,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC;AAC5B,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AACJ,CAAC;AAEM,MAAM,SAAS,GAAG,WAAW,CAClC,SAAS,CAAC,YAAY,CAAC,EACvB,YAAY,EAAY,EACxB,SAAS,CAAC,OAAO;AACf,IAAA,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC;AACzB,IAAA,iBAAiB,EAAE,MAAM,CAAC,kBAAkB,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;CAC5C,CAAC,CAAC,EACH,YAAY,CAAC,CAAC,KAAK,MAAM;AACvB,IAAA,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;AACrD,IAAA,YAAY,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;CAClD,CAAC,CAAC,EACH,WAAW,CAAC,CAAC,KAAK,MAAM;IACtB,cAAc,EAAE,QAAQ,CACtB,IAAI,CACF,GAAG,CAAC,MAAK;AACP,QAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,aAAa,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;AACjE,YAAA,UAAU,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YAC1D;QACF;QAEA,UAAU,CAAC,KAAK,EAAE;AAChB,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,OAAO,EAAE,KAAK;AACf,SAAA,CAAC;AACJ,IAAA,CAAC,CAAC,EACF,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,aAAa,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;AACjE,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,MAAM,WAAW,GAAG,cAAc,CAAC,wBAAwB,CAAC;QAE5D,IAAI,CAAC,WAAW,EAAE;AAChB,YAAA,UAAU,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC1D,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,IAAI,CAAC,4BAA4B,CAAC,WAAW,CAAC,EAAE;AAC9C,YAAA,iBAAiB,EAAE;YACnB,yBAAyB,CAAC,KAAK,EAAE;AAC/B,gBAAA,KAAK,EAAE,+BAA+B;AACtC,gBAAA,WAAW,EAAE,IAAI;AACjB,gBAAA,SAAS,EAAE,KAAK;AACjB,aAAA,CAAC;YAEF,IAAI,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,KAAK,iBAAiB,EAAE;AAClE,gBAAA,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC;YAChC;AAEA,YAAA,OAAO,KAAK;QACd;QAEA,OAAO,KAAK,CAAC;AACV,aAAA,mBAAmB,CAAC;AACnB,YAAA,2BAA2B,EACzB,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,KAAK,eAAe;SAC/D;aACA,IAAI,CACH,WAAW,CAAC;YACV,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAI;gBACvB,yBAAyB,CAAC,KAAK,EAAE;AAC/B,oBAAA,IAAI,EAAE;wBACJ,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,EAAE,EAAE,IAAI,CAAC,EAAE;AACZ,qBAAA;oBACD,IAAI;AACL,iBAAA,CAAC;gBACF,UAAU,CAAC,KAAK,EAAE;AAChB,oBAAA,WAAW,EAAE,IAAI;AACjB,oBAAA,SAAS,EAAE,KAAK;AACjB,iBAAA,CAAC;YACJ,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,iBAAiB,EAAE;gBACnB,yBAAyB,CAAC,KAAK,EAAE;AAC/B,oBAAA,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC;AAC5B,oBAAA,WAAW,EAAE,IAAI;AACjB,oBAAA,SAAS,EAAE,KAAK;AACjB,iBAAA,CAAC;AAEF,gBAAA,IACE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB;AACxC,oBAAA,iBAAiB,EACjB;AACA,oBAAA,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC;gBAChC;YACF,CAAC;AACF,SAAA,CAAC,CACH;IACL,CAAC,CAAC,CACH,CACF;IACD,YAAY,EAAE,QAAQ,CACpB,IAAI,CACF,GAAG,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAC5D,SAAS,CAAC,CAAC,GAAG,KACZ,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CACnC,WAAW,CAAC;AACV,QAAA,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAI;AACpB,YAAA,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC;QAChC,CAAC;AACD,QAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,YAAA,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,CAAC;QACD,QAAQ,EAAE,MAAK;YACb,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACvC,CAAC;KACF,CAAC,CACH,CACF,CACF,CACF;IACD,YAAY,EAAE,QAAQ,CACpB,IAAI,CACF,GAAG,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAC5D,SAAS,CAAC,CAAC,GAAG,KACZ,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CACnC,WAAW,CAAC;AACV,QAAA,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAI;AACpB,YAAA,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC;QAChC,CAAC;AACD,QAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,YAAA,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,CAAC;QACD,QAAQ,EAAE,MAAK;YACb,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACvC,CAAC;KACF,CAAC,CACH,CACF,CACF,CACF;IACD,KAAK,EAAE,QAAQ,CACb,IAAI,CACF,GAAG,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAC5D,SAAS,CAAC,CAAC,GAAG,KACZ,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAC5B,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,KAAI;AAC1C,QAAA,WAAW,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AAE1C,QAAA,IAAI,CAAC,4BAA4B,CAAC,WAAW,CAAC,EAAE;AAC9C,YAAA,iBAAiB,EAAE;YACnB,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC;AAC7D,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC,IAAI,CAC9C,UAAU,CAAC,CAAC,KAAc,KAAI;YAC5B,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AACxD,YAAA,OAAO,UAAU,CAAC,MAAM,KAAK,CAAC;QAChC,CAAC,CAAC,CACH;IACH,CAAC,CAAC,EACF,WAAW,CAAC;QACV,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAI;YACvB,yBAAyB,CAAC,KAAK,EAAE;AAC/B,gBAAA,IAAI,EAAE;oBACJ,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,EAAE,EAAE,IAAI,CAAC,EAAE;AACZ,iBAAA;gBACD,IAAI;AACL,aAAA,CAAC;YACF,UAAU,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAC1C,CAAC;AACD,QAAA,KAAK,EAAE,CAAC,KAAc,KAAI;YACxB,UAAU,CAAC,KAAK,EAAE;AAChB,gBAAA,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC;AAC5B,gBAAA,WAAW,EAAE,IAAI;AAClB,aAAA,CAAC;QACJ,CAAC;QACD,QAAQ,EAAE,MAAK;YACb,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACvC,CAAC;KACF,CAAC,CACH,CACF,CACF,CACF;IACD,MAAM,EAAE,QAAQ,CACd,IAAI,CACF,GAAG,CAAC,MAAK;AACP,QAAA,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACjE,QAAA,iBAAiB,EAAE;QACnB,yBAAyB,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACzD,CAAC,CAAC,EACF,SAAS,CAAC,CAAC,GAAG,KACZ,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAC7B,WAAW,CAAC;AACV,QAAA,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAI;AACpB,YAAA,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC;QAChC,CAAC;AACD,QAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,YAAA,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,CAAC;QACD,QAAQ,EAAE,MAAK;YACb,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACvC,CAAC;KACF,CAAC,CACH,CACF,CACF,CACF;IACD,cAAc,EAAE,QAAQ,CACtB,IAAI,CACF,GAAG,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAC5D,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KACxB,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAC7C,WAAW,CAAC;AACV,QAAA,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAI;AACpB,YAAA,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC;QAChC,CAAC;AACD,QAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,YAAA,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,CAAC;QACD,QAAQ,EAAE,MAAK;YACb,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACvC,CAAC;KACF,CAAC,CACH,CACF,CACF,CACF;IACD,cAAc,EAAE,QAAQ,CACtB,IAAI,CACF,GAAG,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAC5D,SAAS,CAAC,CAAC,GAAG,KACZ,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,CACrC,WAAW,CAAC;AACV,QAAA,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAI;AACpB,YAAA,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC;QAChC,CAAC;AACD,QAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,YAAA,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,CAAC;QACD,QAAQ,EAAE,MAAK;YACb,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACvC,CAAC;KACF,CAAC,CACH,CACF,CACF,CACF;IACD,aAAa,EAAE,QAAQ,CACrB,IAAI,CACF,GAAG,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAC5D,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,KAChB,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CACpC,WAAW,CAAC;AACV,QAAA,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAI;AACpB,YAAA,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC;QAChC,CAAC;AACD,QAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,YAAA,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,CAAC;QACD,QAAQ,EAAE,MAAK;YACb,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACvC,CAAC;KACF,CAAC,CACH,CACF,CACF,CACF;IACD,WAAW,EAAE,QAAQ,CACnB,IAAI,CACF,GAAG,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAC5D,SAAS,CAAC,CAAC,GAAG,KACZ,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAClC,WAAW,CAAC;AACV,QAAA,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAI;AACpB,YAAA,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC;QAChC,CAAC;AACD,QAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,YAAA,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,CAAC;QACD,QAAQ,EAAE,MAAK;YACb,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACvC,CAAC;KACF,CAAC,CACH,CACF,CACF,CACF;IACD,WAAW,EAAE,QAAQ,CACnB,IAAI,CACF,GAAG,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAC5D,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KACxB,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAC1C,WAAW,CAAC;AACV,QAAA,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAI;AACpB,YAAA,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC;QAChC,CAAC;AACD,QAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,YAAA,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,CAAC;QACD,QAAQ,EAAE,MAAK;YACb,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACvC,CAAC;KACF,CAAC,CACH,CACF,CACF,CACF;IACD,aAAa,EAAE,QAAQ,CACrB,IAAI,CACF,GAAG,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAC5D,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KACxB,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAC5C,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,KAAI;AAC1C,QAAA,WAAW,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AAE1C,QAAA,IAAI,CAAC,4BAA4B,CAAC,WAAW,CAAC,EAAE;AAC9C,YAAA,iBAAiB,EAAE;YACnB,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC;AAC7D,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC,IAAI,CAC9C,UAAU,CAAC,CAAC,KAAc,KAAI;YAC5B,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AACxD,YAAA,OAAO,UAAU,CAAC,MAAM,KAAK,CAAC;QAChC,CAAC,CAAC,CACH;IACH,CAAC,CAAC,EACF,WAAW,CAAC;QACV,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAI;YACvB,yBAAyB,CAAC,KAAK,EAAE;AAC/B,gBAAA,IAAI,EAAE;oBACJ,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,EAAE,EAAE,IAAI,CAAC,EAAE;AACZ,iBAAA;gBACD,IAAI;AACL,aAAA,CAAC;YACF,UAAU,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAC1C,CAAC;AACD,QAAA,KAAK,EAAE,CAAC,KAAc,KAAI;YACxB,UAAU,CAAC,KAAK,EAAE;AAChB,gBAAA,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC;AAC5B,gBAAA,WAAW,EAAE,IAAI;AAClB,aAAA,CAAC;QACJ,CAAC;QACD,QAAQ,EAAE,MAAK;YACb,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACvC,CAAC;KACF,CAAC,CACH,CACF,CACF,CACF;CACF,CAAC,CAAC,EACH,SAAS,CAAC,CAAC,KAAK,MAAM;IACpB,MAAM,GAAA;QACJ,KAAK,CAAC,cAAc,EAAE;IACxB,CAAC;CACF,CAAC,CAAC;;ACreC,SAAU,gBAAgB,CAC9B,OAAA,GAA4B,EAAE,EAAA;IAE9B,OAAO;QACL,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,uBAAuB,CAAC,OAAO,CAAC,EAAE;QAC3E,SAAS;QACT,6BAA6B,CAAC,MAAK;YACjC,MAAM,CAAC,SAAS,CAAC;AACnB,QAAA,CAAC,CAAC;KACH;AACH;;ACvBA;;AAEG;;;;"}