@infrab4a/connect-angular 5.0.0-beta.95 → 5.0.0-beta.97
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":"infrab4a-connect-angular.mjs","sources":["../../../projects/connect-angular/src/consts/es-config.const.ts","../../../projects/connect-angular/src/angular-elastic-search.module.ts","../../../projects/connect-angular/src/consts/backend-url.const.ts","../../../projects/connect-angular/src/consts/category-structure.ts","../../../projects/connect-angular/src/consts/default-shop.const.ts","../../../projects/connect-angular/src/consts/firebase-const.ts","../../../projects/connect-angular/src/consts/hasura-options.const.ts","../../../projects/connect-angular/src/consts/persistence.const.ts","../../../projects/connect-angular/src/consts/vertex-config.const.ts","../../../projects/connect-angular/src/angular-firebase-auth.module.ts","../../../projects/connect-angular/src/helpers/mobile-operation-system-checker.helper.ts","../../../projects/connect-angular/src/angular-firestore.module.ts","../../../projects/connect-angular/src/angular-hasura-graphql.module.ts","../../../projects/connect-angular/src/angular-vertex-search.module.ts","../../../projects/connect-angular/src/consts/storage-base-url.const.ts","../../../projects/connect-angular/src/persistence/cookie-data-persistence.ts","../../../projects/connect-angular/src/services/auth.service.ts","../../../projects/connect-angular/src/services/checkout.service.ts","../../../projects/connect-angular/src/services/cart.service.ts","../../../projects/connect-angular/src/services/catalog/adapters/new-category-structure.adapter.ts","../../../projects/connect-angular/src/services/catalog/adapters/old-category-structure.adapter.ts","../../../projects/connect-angular/src/services/catalog/catalog.service.ts","../../../projects/connect-angular/src/services/catalog/category.service.ts","../../../projects/connect-angular/src/services/catalog/enums/product-sorts.enum.ts","../../../projects/connect-angular/src/services/catalog/models/category-with-tree.model.ts","../../../projects/connect-angular/src/services/catalog/wishlist.service.ts","../../../projects/connect-angular/src/services/coupon.service.ts","../../../projects/connect-angular/src/services/checkout-subscription.service.ts","../../../projects/connect-angular/src/services/helpers/util.helper.ts","../../../projects/connect-angular/src/services/home-shop.service.ts","../../../projects/connect-angular/src/services/order.service.ts","../../../projects/connect-angular/src/angular-connect.module.ts","../../../projects/connect-angular/src/infrab4a-connect-angular.ts"],"sourcesContent":["export const ES_CONFIG = 'ES_CONFIG'\n","import { ModuleWithProviders, NgModule } from '@angular/core'\nimport { AxiosAdapter, AxiosElasticSearchConfig, ProductsIndex } from '@infrab4a/connect'\n\nimport { ES_CONFIG } from './consts/es-config.const'\n\n@NgModule({\n providers: [\n {\n provide: ProductsIndex,\n useFactory: (configuration: AxiosElasticSearchConfig): ProductsIndex =>\n new ProductsIndex(new AxiosAdapter(configuration)),\n deps: [ES_CONFIG],\n },\n ],\n})\nexport class AngularElasticSeachModule {\n static initializeApp(options: AxiosElasticSearchConfig): ModuleWithProviders<AngularElasticSeachModule> {\n return {\n ngModule: AngularElasticSeachModule,\n providers: [{ provide: ES_CONFIG, useValue: options }],\n }\n }\n}\n","export const BACKEND_URL = 'BACKEND_URL'","export const CATEGORY_STRUCTURE = 'CATEGORY_STRUCTURE'\n","export const DEFAULT_SHOP = 'DEFAULT_SHOP'\n","import { InjectionToken } from '@angular/core'\n\nexport const FIREBASE_APP_NAME = new InjectionToken('firebaseAppName')\nexport const FIREBASE_OPTIONS = new InjectionToken('firebaseOptions')\nexport const APP_CHECK_PROVIDER = new InjectionToken('appCheckProvider')\n","export const HASURA_OPTIONS = 'HASURA_OPTIONS'\n","export const PERSISTENCE_PROVIDER = 'PERSISTENCE_PROVIDER'\n","export const VERTEX_CONFIG = 'VERTEX_CONFIG'\n","import { Injector, ModuleWithProviders, NgModule } from '@angular/core'\nimport { FirebaseApp, FirebaseOptions } from '@angular/fire/app'\nimport {\n Auth,\n browserLocalPersistence,\n browserSessionPersistence,\n getAuth,\n indexedDBLocalPersistence,\n initializeAuth,\n provideAuth,\n} from '@angular/fire/auth'\nimport {\n Authentication,\n AuthenticationFirebaseAuthService,\n AuthenticationService,\n RecoveryPassword,\n Register,\n RegisterFirebaseAuthService,\n RegisterService,\n SignOut,\n UserRepository,\n} from '@infrab4a/connect'\n\nimport { FIREBASE_APP_NAME, FIREBASE_OPTIONS } from './consts'\nimport { FirebaseAppConfig } from './types'\n\n@NgModule({\n imports: [\n provideAuth((injector: Injector) => {\n const app = injector.get(FirebaseApp)\n\n try {\n return initializeAuth(app, {\n persistence: [indexedDBLocalPersistence, browserLocalPersistence, browserSessionPersistence],\n })\n } catch (error) {\n if (error instanceof Error) console.error('Error initializing auth', error.message)\n\n return getAuth(app)\n }\n }),\n ],\n providers: [\n {\n provide: 'Authentication',\n useFactory: (authenticationService: AuthenticationService, userRepository: UserRepository): Authentication => {\n return new Authentication(authenticationService, userRepository)\n },\n deps: ['AuthenticationService', 'UserRepository'],\n },\n {\n provide: 'AuthenticationService',\n useFactory: (angularFireAuth: Auth): AuthenticationService => {\n return new AuthenticationFirebaseAuthService(angularFireAuth)\n },\n deps: [Auth],\n },\n {\n provide: 'Register',\n useFactory: (registerService: RegisterService, userRepository: UserRepository): Register => {\n return new Register(registerService, userRepository)\n },\n deps: ['RegisterService', 'UserRepository'],\n },\n {\n provide: 'RegisterService',\n useFactory: (angularFireAuth: Auth): RegisterService => {\n return new RegisterFirebaseAuthService(angularFireAuth)\n },\n deps: [Auth],\n },\n {\n provide: 'SignOut',\n useFactory: (authenticationService: AuthenticationService): SignOut => {\n return new SignOut(authenticationService)\n },\n deps: ['AuthenticationService'],\n },\n {\n provide: 'RecoveryPassword',\n useFactory: (authenticationService: AuthenticationService): RecoveryPassword => {\n return new RecoveryPassword(authenticationService)\n },\n deps: ['AuthenticationService'],\n },\n ],\n})\nexport class AngularFirebaseAuthModule {\n static initializeApp(\n options: FirebaseOptions,\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularFirebaseAuthModule> {\n return {\n ngModule: AngularFirebaseAuthModule,\n providers: [\n { provide: FIREBASE_OPTIONS, useValue: options },\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\n ],\n }\n }\n}\n","export class MobileOperationSystemCheckerHelper {\n static isAppleDevice() {\n return (\n ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(\n navigator?.platform,\n ) ||\n (navigator?.userAgent?.includes?.('Mac') && 'ontouchend' in (document || {}))\n )\n }\n}\n","import { isPlatformBrowser, isPlatformServer } from '@angular/common'\nimport { Injector, ModuleWithProviders, NgModule, PLATFORM_ID } from '@angular/core'\nimport { FirebaseApp, FirebaseOptions } from '@angular/fire/app'\nimport { Firestore, initializeFirestore, memoryLocalCache, provideFirestore } from '@angular/fire/firestore'\nimport {\n AxiosElasticSearchConfig,\n BeautyProfileRepository,\n Buy2WinFirestoreRepository,\n Buy2WinRepository,\n CampaignDashboardFirestoreRepository,\n CampaignDashboardRepository,\n CampaignHashtagFirestoreRepository,\n CampaignHashtagRepository,\n CategoryFirestoreRepository,\n CategoryRepository,\n CheckoutFirestoreRepository,\n CheckoutRepository,\n CheckoutSubscriptionFirestoreRepository,\n CheckoutSubscriptionRepository,\n ConnectFirestoreService,\n CouponFirestoreRepository,\n CouponRepository,\n EditionRepository,\n FirestoreConstructorParams,\n FirestoreIntertceptorRequestParams,\n HomeFirestoreRepository,\n HomeRepository,\n LeadFirestoreRepository,\n LeadRepository,\n LegacyOrderFirestoreRepository,\n LegacyOrderRepository,\n LogFirestoreRepository,\n LogRepository,\n OrderBlockedFirestoreRepository,\n OrderBlockedRepository,\n OrderFirestoreRepository,\n OrderRepository,\n PaymentFirestoreRepository,\n PaymentRepository,\n ProductFirestoreRepository,\n ProductRepository,\n ProductVariantFirestoreRepository,\n SequenceFirestoreRepository,\n ShopMenuFirestoreRepository,\n ShopMenuRepository,\n ShopSettingsFirestoreRepository,\n ShopSettingsRepository,\n SubscriptionEditionFirestoreRepository,\n SubscriptionFirestoreRepository,\n SubscriptionMaterializationFirestoreRepository,\n SubscriptionMaterializationRepository,\n SubscriptionPaymentFirestoreRepository,\n SubscriptionPaymentRepository,\n SubscriptionPlanFirestoreRepository,\n SubscriptionPlanRepository,\n SubscriptionProductFirestoreRepository,\n SubscriptionProductRepository,\n SubscriptionRepository,\n SubscriptionSummaryFirestoreRepository,\n SubscriptionSummaryRepository,\n UserAddressFirestoreRepository,\n UserAddressRepository,\n UserBeautyProfileFirestoreRepository,\n UserFirestoreRepository,\n UserPaymentMethodFirestoreRepository,\n UserPaymentMethodRepository,\n UserRepository,\n VariantRepository,\n} from '@infrab4a/connect'\n\nimport { AngularElasticSeachModule } from './angular-elastic-search.module'\nimport { ES_CONFIG, FIREBASE_APP_NAME, FIREBASE_OPTIONS } from './consts'\nimport { MobileOperationSystemCheckerHelper } from './helpers'\nimport { FirebaseAppConfig } from './types'\n\nexport type FirestoreOptions = Pick<FirestoreConstructorParams<any>, 'firestore' | 'interceptors'>\n\n@NgModule({\n imports: [\n AngularElasticSeachModule,\n provideFirestore((injector: Injector) => {\n const platformId = injector.get(PLATFORM_ID)\n\n if (isPlatformServer(platformId) || !MobileOperationSystemCheckerHelper.isAppleDevice())\n return initializeFirestore(injector.get(FirebaseApp), {\n ignoreUndefinedProperties: true,\n })\n\n const firestore = initializeFirestore(injector.get(FirebaseApp), {\n experimentalForceLongPolling: true,\n ignoreUndefinedProperties: true,\n localCache: memoryLocalCache(),\n })\n\n return firestore\n }),\n ],\n providers: [\n {\n provide: 'FirestoreOptions',\n useFactory: (firestore: Firestore, platformId: string): FirestoreOptions => ({\n firestore: new ConnectFirestoreService(firestore),\n interceptors: {\n request: (request: FirestoreIntertceptorRequestParams<any> & { interval: ReturnType<typeof setTimeout> }) => {\n if (isPlatformBrowser(platformId)) return request\n\n const interval = setInterval(() => {}, 100)\n\n request.interval = interval\n\n return request\n },\n response: (\n response: any,\n request: FirestoreIntertceptorRequestParams<any> & { interval: ReturnType<typeof setTimeout> },\n ) => {\n if (isPlatformBrowser(platformId)) return response\n\n clearInterval(request.interval)\n\n return response\n },\n },\n }),\n deps: [Firestore, PLATFORM_ID],\n },\n {\n provide: 'BeautyProfileRepository',\n useFactory: (config: FirestoreOptions, userRepository: UserFirestoreRepository): BeautyProfileRepository => {\n return new UserBeautyProfileFirestoreRepository(config, userRepository)\n },\n deps: ['FirestoreOptions', 'UserRepository'],\n },\n {\n provide: 'Buy2WinRepository',\n useFactory: (options: FirestoreOptions): Buy2WinRepository => {\n return new Buy2WinFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: CategoryFirestoreRepository,\n useFactory: (options: FirestoreOptions): CategoryRepository => {\n return new CategoryFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CheckoutRepository',\n useFactory: (options: FirestoreOptions): CheckoutRepository => {\n return new CheckoutFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CheckoutSubscriptionRepository',\n useFactory: (options: FirestoreOptions): CheckoutSubscriptionRepository => {\n return new CheckoutSubscriptionFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CouponRepository',\n useFactory: (options: FirestoreOptions): CouponRepository => {\n return new CouponFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CampaignHashtagRepository',\n useFactory: (options: FirestoreOptions): CampaignHashtagRepository => {\n return new CampaignHashtagFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CampaignDashboardRepository',\n useFactory: (options: FirestoreOptions): CampaignDashboardRepository => {\n return new CampaignDashboardFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'EditionRepository',\n useFactory: (\n options: FirestoreOptions,\n subscriptionRepository: SubscriptionFirestoreRepository,\n ): EditionRepository => {\n return new SubscriptionEditionFirestoreRepository(options, subscriptionRepository)\n },\n deps: ['FirestoreOptions', 'SubscriptionRepository'],\n },\n {\n provide: 'HomeRepository',\n useFactory: (options: FirestoreOptions): HomeRepository => {\n return new HomeFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'LeadRepository',\n useFactory: (options: FirestoreOptions): LeadRepository => {\n return new LeadFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'LegacyOrderRepository',\n useFactory: (options: FirestoreOptions): LegacyOrderRepository => {\n return new LegacyOrderFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'ShopMenuRepository',\n useFactory: (options: FirestoreOptions): ShopMenuRepository => {\n return new ShopMenuFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'OrderRepository',\n useFactory: (options: FirestoreOptions): OrderRepository => {\n return new OrderFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'PaymentRepository',\n useFactory: (options: FirestoreOptions): PaymentRepository => {\n return new PaymentFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: ProductFirestoreRepository,\n useFactory: (options: FirestoreOptions): ProductRepository => {\n return new ProductFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'ShopSettingsRepository',\n useFactory: (options: FirestoreOptions): ShopSettingsRepository => {\n return new ShopSettingsFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'SubscriptionPaymentRepository',\n useFactory: (\n options: FirestoreOptions,\n subscriptionRepository: SubscriptionFirestoreRepository,\n ): SubscriptionPaymentRepository => {\n return new SubscriptionPaymentFirestoreRepository(options, subscriptionRepository)\n },\n deps: ['FirestoreOptions', 'SubscriptionRepository'],\n },\n {\n provide: 'SubscriptionPlanRepository',\n useFactory: (options: FirestoreOptions): SubscriptionPlanRepository => {\n return new SubscriptionPlanFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'SubscriptionProductRepository',\n useFactory: (options: FirestoreOptions): SubscriptionProductRepository => {\n return new SubscriptionProductFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'SubscriptionRepository',\n useFactory: (options: FirestoreOptions): SubscriptionRepository => {\n return new SubscriptionFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'UserRepository',\n useFactory: (options: FirestoreOptions): UserRepository => {\n return new UserFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'UserAddressRepository',\n useFactory: (options: FirestoreOptions, userRepository: UserFirestoreRepository): UserAddressRepository => {\n return new UserAddressFirestoreRepository(options, userRepository)\n },\n deps: ['FirestoreOptions', 'UserRepository'],\n },\n {\n provide: 'UserPaymentMethodRepository',\n useFactory: (options: FirestoreOptions, userRepository: UserFirestoreRepository): UserPaymentMethodRepository => {\n return new UserPaymentMethodFirestoreRepository(options, userRepository)\n },\n deps: ['FirestoreOptions', 'UserRepository'],\n },\n {\n provide: 'SubscriptionMaterializationRepository',\n useFactory: (options: FirestoreOptions): SubscriptionMaterializationRepository => {\n return new SubscriptionMaterializationFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'SubscriptionSummaryRepository',\n useFactory: (options: FirestoreOptions): SubscriptionSummaryRepository => {\n return new SubscriptionSummaryFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: ProductVariantFirestoreRepository,\n useFactory: (options: FirestoreOptions, productRepository: ProductFirestoreRepository): VariantRepository => {\n return new ProductVariantFirestoreRepository(options, productRepository)\n },\n deps: ['FirestoreOptions', ProductFirestoreRepository],\n },\n {\n provide: 'OrderBlockedRepository',\n useFactory: (options: FirestoreOptions): OrderBlockedRepository => {\n return new OrderBlockedFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'LogRepository',\n useFactory: (options: FirestoreOptions): LogRepository => {\n return new LogFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'SequenceRepository',\n useFactory: (options: FirestoreOptions): SequenceFirestoreRepository => {\n return new SequenceFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n ],\n})\nexport class AngularFirestoreModule {\n static initializeApp(\n options: {\n firebase: FirebaseOptions\n elasticSearch: AxiosElasticSearchConfig\n },\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularFirestoreModule> {\n return {\n ngModule: AngularFirestoreModule,\n providers: [\n { provide: FIREBASE_OPTIONS, useValue: options.firebase },\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\n { provide: ES_CONFIG, useValue: options.elasticSearch },\n ],\n }\n }\n}\n","import { isPlatformBrowser } from '@angular/common'\nimport { ModuleWithProviders, NgModule, PLATFORM_ID } from '@angular/core'\nimport {\n CacheConfig,\n CategoryCollectionChildrenHasuraGraphQLRepository,\n CategoryFilterHasuraGraphQLRepository,\n CategoryFilterRepository,\n CategoryHasuraGraphQLRepository,\n CategoryProductHasuraGraphQLRepository,\n CategoryRepository,\n FilterHasuraGraphQLRepository,\n FilterOptionHasuraGraphQLRepository,\n FilterOptionRepository,\n FilterRepository,\n GraphQLParams,\n HasuraConstructorParams,\n HasuraGraphQLAuthOptions,\n ProductErrors,\n ProductErrorsHasuraGraphQLRepository,\n ProductErrorsRepository,\n ProductHasuraGraphQLRepository,\n ProductRepository,\n ProductReviewHasuraGraphQLRepository,\n ProductReviewRepository,\n ProductStockNotificationHasuraGraphQLRepository,\n ProductStockNotificationRepository,\n VariantHasuraGraphQLRepository,\n VariantRepository,\n WishlistHasuraGraphQLRepository,\n} from '@infrab4a/connect'\nimport { HASURA_OPTIONS } from './consts'\n\nexport type HasuraGraphQLOptions = { endpoint: string; credentials?: HasuraGraphQLAuthOptions; cache?: CacheConfig }\n\n@NgModule({\n providers: [\n {\n provide: 'HasuraConfig',\n useFactory: (options: HasuraGraphQLOptions, platformId: string) => ({\n endpoint: options.endpoint,\n authOptions: options.credentials,\n cache: options.cache,\n interceptors: {\n request: (request: GraphQLParams<any> & { interval: ReturnType<typeof setTimeout> }) => {\n if (isPlatformBrowser(platformId)) return request\n\n const interval = setInterval(() => {}, 100)\n\n request.interval = interval\n\n return request\n },\n response: (response: any, request: GraphQLParams<any> & { interval: ReturnType<typeof setTimeout> }) => {\n if (isPlatformBrowser(platformId)) return response\n\n clearInterval(request.interval)\n\n return response\n },\n },\n }),\n deps: [HASURA_OPTIONS, PLATFORM_ID],\n },\n {\n provide: 'CategoryRepository',\n useExisting: CategoryHasuraGraphQLRepository,\n },\n {\n provide: CategoryHasuraGraphQLRepository,\n useFactory: (\n options: any,\n productRepository: ProductHasuraGraphQLRepository,\n categoryFilterRepository: CategoryFilterHasuraGraphQLRepository,\n ): CategoryRepository => {\n return new CategoryHasuraGraphQLRepository(options, productRepository, categoryFilterRepository)\n },\n deps: ['HasuraConfig', ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],\n },\n {\n provide: 'ProductRepository',\n useExisting: ProductHasuraGraphQLRepository,\n },\n {\n provide: ProductHasuraGraphQLRepository,\n useFactory: (hasuraConfig: any): ProductRepository => {\n return new ProductHasuraGraphQLRepository(hasuraConfig)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'ProductReviewRepository',\n useExisting: ProductReviewHasuraGraphQLRepository,\n },\n {\n provide: ProductReviewHasuraGraphQLRepository,\n useFactory: (hasuraConfig: any): ProductReviewRepository => {\n return new ProductReviewHasuraGraphQLRepository(hasuraConfig)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'VariantRepository',\n useExisting: VariantHasuraGraphQLRepository,\n },\n {\n provide: VariantHasuraGraphQLRepository,\n useFactory: (hasuraConfig: any): VariantRepository => {\n return new VariantHasuraGraphQLRepository(hasuraConfig)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'ProductStockNotificationRepository',\n useExisting: ProductStockNotificationHasuraGraphQLRepository,\n },\n {\n provide: ProductStockNotificationHasuraGraphQLRepository,\n useFactory: (hasuraConfig: any): ProductStockNotificationRepository => {\n return new ProductStockNotificationHasuraGraphQLRepository(hasuraConfig)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'CategoryFilterRepository',\n useExisting: CategoryFilterHasuraGraphQLRepository,\n },\n {\n provide: CategoryFilterHasuraGraphQLRepository,\n useFactory: (options: any): CategoryFilterRepository => {\n return new CategoryFilterHasuraGraphQLRepository(options)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'FilterOptionRepository',\n useExisting: FilterOptionHasuraGraphQLRepository,\n },\n {\n provide: FilterOptionHasuraGraphQLRepository,\n useFactory: (options: any): FilterOptionRepository => {\n return new FilterOptionHasuraGraphQLRepository(options)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'FilterRepository',\n useExisting: FilterHasuraGraphQLRepository,\n },\n {\n provide: FilterHasuraGraphQLRepository,\n useFactory: (\n options: any,\n filterOptionRepository: FilterOptionHasuraGraphQLRepository,\n categoryFilterRepository: CategoryFilterHasuraGraphQLRepository,\n ): FilterRepository => {\n return new FilterHasuraGraphQLRepository(options, filterOptionRepository, categoryFilterRepository)\n },\n deps: ['HasuraConfig', FilterOptionHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],\n },\n {\n provide: CategoryCollectionChildrenHasuraGraphQLRepository,\n useFactory: (options: any): CategoryCollectionChildrenHasuraGraphQLRepository =>\n new CategoryCollectionChildrenHasuraGraphQLRepository(options),\n deps: ['HasuraConfig'],\n },\n {\n provide: 'CategoryCollectionChildrenRepository',\n useExisting: CategoryCollectionChildrenHasuraGraphQLRepository,\n },\n {\n provide: CategoryProductHasuraGraphQLRepository,\n useFactory: (options: any): CategoryProductHasuraGraphQLRepository => {\n return new CategoryProductHasuraGraphQLRepository(options)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'CategoryProductRepository',\n useExisting: CategoryProductHasuraGraphQLRepository,\n },\n {\n provide: WishlistHasuraGraphQLRepository,\n useFactory: (\n options: any,\n categoryProductRepository: CategoryProductHasuraGraphQLRepository,\n ): WishlistHasuraGraphQLRepository => {\n return new WishlistHasuraGraphQLRepository(options, categoryProductRepository)\n },\n deps: ['HasuraConfig', CategoryProductHasuraGraphQLRepository],\n },\n {\n provide: 'WishlistRepository',\n useExisting: WishlistHasuraGraphQLRepository,\n },\n {\n provide: ProductErrorsHasuraGraphQLRepository,\n useFactory: (\n options: HasuraConstructorParams<ProductErrors>,\n productRepository: ProductHasuraGraphQLRepository,\n ): ProductErrorsRepository => {\n return new ProductErrorsHasuraGraphQLRepository(options, productRepository)\n },\n deps: ['HasuraConfig', ProductHasuraGraphQLRepository],\n },\n {\n provide: 'ProductErrorsRepository',\n useExisting: ProductErrorsHasuraGraphQLRepository,\n },\n ],\n})\nexport class AngularHasuraGraphQLModule {\n static initializeApp(options: HasuraGraphQLOptions): ModuleWithProviders<AngularHasuraGraphQLModule> {\n return {\n ngModule: AngularHasuraGraphQLModule,\n providers: [{ provide: HASURA_OPTIONS, useValue: options }],\n }\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core'\nimport { ProductsVertexSearch, VertexAxiosAdapter, VertexSearchConfig } from '@infrab4a/connect'\n\nimport { VERTEX_CONFIG } from './consts'\n\n@NgModule({\n providers: [\n {\n provide: ProductsVertexSearch,\n useFactory: (configuration: VertexSearchConfig): ProductsVertexSearch =>\n new ProductsVertexSearch(new VertexAxiosAdapter(configuration)),\n deps: [VERTEX_CONFIG],\n },\n ],\n})\nexport class AngularVertexSeachModule {\n static initializeApp(options: VertexSearchConfig): ModuleWithProviders<AngularVertexSeachModule> {\n return {\n ngModule: AngularVertexSeachModule,\n providers: [{ provide: VERTEX_CONFIG, useValue: options }],\n }\n }\n}\n","export const STORAGE_BASE_URL = 'STORAGE_BASE_URL'\n","import { Injectable } from '@angular/core'\nimport cookie from 'js-cookie'\nimport { Observable, from, of } from 'rxjs'\nimport { map } from 'rxjs/operators'\nimport { DataPersistence } from './data-persistence'\n\n@Injectable()\nexport class CookieDataPersistence implements DataPersistence {\n get(key: string): Observable<string> {\n return of(cookie.get(key))\n }\n\n remove(key: string): Observable<void> {\n return of(cookie.remove(key))\n }\n\n set(key: string, value: string): Observable<void> {\n return from(cookie.set(key, value)).pipe(map(() => {}))\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Auth, User as FirebaseUser, authState, getIdToken } from '@angular/fire/auth'\nimport { User, UserRepository } from '@infrab4a/connect'\nimport { Observable, combineLatest, from, of } from 'rxjs'\nimport { catchError, map, mergeMap } from 'rxjs/operators'\n\n@Injectable()\nexport class AuthService {\n constructor(\n private readonly angularFireAuth: Auth,\n @Inject('UserRepository') private readonly userRepository: UserRepository,\n ) {}\n\n getAuthstate(): Observable<{ user: User; isAnonymous: boolean }> {\n const observables: [Observable<FirebaseUser>, Observable<User>] = [this.getFireUser(), this.getUser()]\n\n return combineLatest(observables).pipe(\n map(([fireUser, user]) => ({\n user,\n isAnonymous: fireUser?.isAnonymous,\n })),\n )\n }\n\n getUser(): Observable<User> {\n return this.getFireUser().pipe(\n map((user) => user?.uid),\n mergeMap((id) => (id ? from(this.userRepository.get({ id })).pipe(catchError(() => of(null))) : of(null))),\n )\n }\n\n getTokenId(): Observable<string> {\n return from(getIdToken(this.angularFireAuth.currentUser))\n }\n\n getFireUser(): Observable<FirebaseUser> {\n return authState(this.angularFireAuth).pipe(catchError(() => of(null)))\n }\n}\n","import { HttpClient } from '@angular/common/http'\nimport { Inject, Injectable } from '@angular/core'\nimport { FirebaseOptions } from '@angular/fire/app'\nimport {\n Checkout,\n CheckoutPayloadRequest,\n CheckoutRepository,\n CheckoutResponse,\n CheckoutStockValidation,\n CheckoutTypes,\n Coupon,\n isNil,\n NotFoundError,\n pick,\n ShippingMethodResponse,\n ShippingProductRequest,\n Shops,\n User,\n UserAddress,\n UserRepository,\n} from '@infrab4a/connect'\nimport { from, Observable, of, throwError } from 'rxjs'\nimport { concatMap, map } from 'rxjs/operators'\n\nimport { DEFAULT_SHOP, FIREBASE_OPTIONS, PERSISTENCE_PROVIDER } from '../consts'\n\nimport { DataPersistence } from '../persistence'\nimport { RequiredCheckoutData } from './types'\n\n@Injectable()\nexport class CheckoutService {\n private checkoutUrl: string = null\n\n constructor(\n @Inject('CheckoutRepository') private readonly checkoutRepository: CheckoutRepository,\n @Inject('UserRepository') private readonly userRepository: UserRepository,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n @Inject(PERSISTENCE_PROVIDER) private readonly dataPersistence: DataPersistence,\n @Inject(FIREBASE_OPTIONS) private readonly firebaseOptions: FirebaseOptions,\n private http: HttpClient,\n ) {\n this.checkoutUrl = `https://southamerica-east1-${this.firebaseOptions.projectId}.cloudfunctions.net`\n }\n\n getCheckout(checkoutData?: RequiredCheckoutData): Observable<Checkout> {\n return this.dataPersistence\n .get('checkoutId')\n .pipe(concatMap((id) => (!isNil(id) ? this.checkoutRepository.get({ id }) : this.createCheckout(checkoutData))))\n }\n\n getUserByCheckout(checkoutId: string): Observable<User> {\n return from(this.checkoutRepository.get({ id: checkoutId })).pipe(\n concatMap((checkout) =>\n checkout?.user?.id ? of(checkout.user) : from(this.userRepository.get({ id: checkout.user.id })),\n ),\n concatMap((user) => of(user) || throwError(() => new NotFoundError('User is not found'))),\n )\n }\n\n updateCheckoutLineItems(checkout: Partial<Checkout>): Observable<Checkout> {\n return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, lineItems: checkout.lineItems })))\n }\n\n updateCheckoutUser(checkout: Partial<Checkout>): Observable<Checkout> {\n return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, user: checkout.user })))\n }\n\n clearCheckoutFromSession(): Observable<void> {\n return this.dataPersistence.remove('checkoutId')\n }\n\n resetCheckoutValues(): Observable<Checkout> {\n return this.getCheckout().pipe(\n concatMap((checkout) =>\n this.http.post(`${this.checkoutUrl}/checkoutResetValues`, {\n checkoutId: checkout.id,\n }),\n ),\n concatMap(() => this.getCheckout()),\n )\n }\n\n applyCouponDiscount(nickname: string, checkoutType: CheckoutTypes): Observable<Coupon> {\n return this.getCheckout().pipe(\n concatMap((checkout) =>\n this.http.post(`${this.checkoutUrl}/checkoutApplyDiscount`, {\n checkoutId: checkout.id,\n coupon: nickname,\n checkoutType,\n }),\n ),\n concatMap(() => this.getCheckout()),\n map((checkout) => checkout.coupon),\n )\n }\n\n removeCouponDiscount(): Observable<Checkout> {\n return this.getCheckout().pipe(\n concatMap((checkout) =>\n this.http.post(`${this.checkoutUrl}/checkoutRemoveDiscount`, {\n checkoutId: checkout.id,\n }),\n ),\n concatMap(() => this.getCheckout()),\n )\n }\n\n validateStockProducts(): Observable<CheckoutStockValidation> {\n return this.getCheckout().pipe(\n concatMap((checkout) =>\n this.http.post<{\n valid: boolean\n outOfStock: string[]\n limitedStock: string[]\n }>(`${this.checkoutUrl}/checkoutValidateProductStock`, {\n checkoutId: checkout.id,\n }),\n ),\n )\n }\n\n selectShippingAddress(address: UserAddress): Observable<Checkout> {\n return this.getCheckout().pipe(\n concatMap((checkout) => {\n return this.checkoutRepository.update(\n Checkout.toInstance({ id: checkout.id, shippingAddress: address, billingAddress: address }),\n )\n }),\n )\n }\n\n getAvailableShippingForProduct(productShipping: ShippingProductRequest): Observable<ShippingMethodResponse[]> {\n return this.http.post<ShippingMethodResponse[]>(`${this.checkoutUrl}/checkoutGetAvailableShipping`, {\n checkoutId: null,\n productShipping,\n })\n }\n\n getAvailableShippingForCheckout(): Observable<ShippingMethodResponse[]> {\n return this.getCheckout().pipe(\n concatMap((checkout) =>\n this.http.post<ShippingMethodResponse[]>(`${this.checkoutUrl}/checkoutGetAvailableShipping`, {\n checkoutId: checkout.id,\n productShipping: null,\n }),\n ),\n )\n }\n\n selectShipping(option: string): Observable<Checkout> {\n return this.getCheckout().pipe(\n concatMap((checkout) =>\n this.http.post(`${this.checkoutUrl}/checkoutSelectShipping`, {\n checkoutId: checkout.id,\n shippingOption: option,\n }),\n ),\n concatMap(() => this.getCheckout()),\n )\n }\n\n createOrder(\n checkoutPayload: CheckoutPayloadRequest,\n paymentProvider: string,\n applicationVersion: string,\n ): Observable<CheckoutResponse> {\n return this.http.post<CheckoutResponse>(`${this.checkoutUrl}/checkout`, {\n data: {\n ...checkoutPayload,\n applicationVersion,\n paymentProvider,\n },\n })\n }\n\n private async createCheckout(checkoutData?: RequiredCheckoutData): Promise<Checkout> {\n const checkout = await this.checkoutRepository.create({\n createdAt: new Date(),\n ...Checkout.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),\n shop: checkoutData?.shop || this.defaultShop,\n })\n\n await this.dataPersistence.set('checkoutId', checkout.id).toPromise()\n\n return checkout\n }\n}\n","import { HttpClient } from '@angular/common/http'\nimport { Inject, Injectable } from '@angular/core'\nimport { FirebaseOptions } from '@angular/fire/app'\nimport { Checkout, LineItem, Shops, User } from '@infrab4a/connect'\nimport { Observable, of, Subject } from 'rxjs'\nimport { concatMap, map, tap } from 'rxjs/operators'\nimport { DEFAULT_SHOP, FIREBASE_OPTIONS } from '../consts'\nimport { AuthService } from './auth.service'\nimport { CheckoutService } from './checkout.service'\nimport { RequiredCheckoutData } from './types'\n\nexport type Cart = {\n [id: string]: LineItem\n}\n\n@Injectable()\nexport class CartService {\n private cartSubject: Subject<Cart> = new Subject()\n private checkoutUrl: string = null\n\n constructor(\n private readonly authService: AuthService,\n private readonly checkoutService: CheckoutService,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n @Inject(FIREBASE_OPTIONS) private readonly firebaseOptions: FirebaseOptions,\n private http: HttpClient,\n ) {\n this.checkoutUrl = `https://southamerica-east1-${this.firebaseOptions.projectId}.cloudfunctions.net`\n }\n\n addItem(item: LineItem, quantity: number = 1): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n concatMap((checkout) =>\n this.http.post(`${this.checkoutUrl}/checkoutAddItemToCart`, {\n checkoutId: checkout.id,\n productId: item.id,\n quantity,\n }),\n ),\n concatMap(() => this.checkoutService.getCheckout()),\n map((updatedCheckout) => this.generateCartObject(updatedCheckout.lineItems)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n decreaseItem(item: LineItem): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n concatMap((checkout) =>\n this.http.post(`${this.checkoutUrl}/checkoutDecreaseProductFromCart`, {\n checkoutId: checkout.id,\n productId: item.id,\n quantity: 1,\n }),\n ),\n concatMap(() => this.checkoutService.getCheckout()),\n map((updatedCheckout) => this.generateCartObject(updatedCheckout.lineItems)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n removeItem(item: LineItem): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n concatMap((checkout) =>\n this.http.post(`${this.checkoutUrl}/checkoutRemoveProductFromCart`, {\n checkoutId: checkout.id,\n productId: item.id,\n }),\n ),\n concatMap(() => this.checkoutService.getCheckout()),\n map((updatedCheckout) => this.generateCartObject(updatedCheckout.lineItems)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n updateUserCart(user: User): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n concatMap((checkout) =>\n this.checkoutService.updateCheckoutUser(Checkout.toInstance({ ...checkout.toPlain(), user })),\n ),\n concatMap((checkout) => {\n return this.http.post(`${this.checkoutUrl}/checkoutUpdateUserCart`, {\n checkoutId: checkout.id,\n })\n }),\n concatMap(() => this.checkoutService.getCheckout()),\n map((updatedCheckout) => {\n return this.generateCartObject(updatedCheckout.lineItems)\n }),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n getCart(checkout?: RequiredCheckoutData): Observable<Cart> {\n this.buildCartFromCheckout(checkout).subscribe((cart) => this.cartSubject.next(cart))\n\n return this.cartSubject\n }\n\n clearCart(): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n map((checkout) => {\n this.checkoutService.clearCheckoutFromSession()\n return checkout\n }),\n concatMap((oldCheckout) => this.buildCartFromCheckout(oldCheckout)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n private buildCartFromCheckout(checkoutData?: RequiredCheckoutData): Observable<Cart> {\n return this.checkoutService.getCheckout(checkoutData).pipe(\n map((checkout) => checkout.lineItems),\n concatMap((lineItems) => of(this.generateCartObject(lineItems))),\n )\n }\n\n private generateCartObject = (items: LineItem[]): Cart =>\n items?.reduce(\n (cart, item) => ({\n ...cart,\n [item.id]: LineItem.toInstance({\n ...(cart[item.id] || item),\n quantity: (cart[item.id]?.quantity || 0) + (item.quantity ? item.quantity : 1),\n }),\n }),\n {} as Record<string, LineItem>,\n ) || {}\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Category, CategoryRepository, isNil, Product, RepositoryFindFielters, Where } from '@infrab4a/connect'\nimport { CategoryStructureAdapter } from './category-structure.adapter'\n\n@Injectable()\nexport class NewCategoryStructureAdapter implements CategoryStructureAdapter {\n constructor(@Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository) {}\n\n async buildProductFilterByCategory(category: Category): Promise<RepositoryFindFielters<Product>> {\n const loadedCategory = await this.getCategory(category)\n\n if (loadedCategory.isCollection) return { id: { operator: Where.IN, value: loadedCategory.products } }\n\n const categoryIds = [...(await this.getAllCategoriesIdFromCategory(category)), category.id.toString()]\n\n return {\n category: {\n id: {\n operator: Where.IN,\n value: categoryIds,\n },\n },\n }\n }\n\n private async getAllCategoriesIdFromCategory(category: Category): Promise<string[]> {\n return this.categoryRepository\n .getChildren(+category.id)\n .then((categories) => categories.map((category) => category.id.toString()))\n }\n\n private async getCategory(category: Category): Promise<Category> {\n const collectionCategory =\n category.isCollection ||\n (isNil(category.isCollection) && !category.products?.length) ||\n category.isWishlist ||\n category.brandCategory\n\n return collectionCategory ? this.categoryRepository.get({ id: category.id }) : category\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Category, CategoryRepository, Product, RepositoryFindFielters, Where } from '@infrab4a/connect'\nimport { CategoryStructureAdapter } from './category-structure.adapter'\n\n@Injectable()\nexport class OldCategoryStructureAdapter implements CategoryStructureAdapter {\n constructor(@Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository) {}\n\n async buildProductFilterByCategory(category: Category): Promise<RepositoryFindFielters<Product>> {\n const productsIds = category.products?.length\n ? category.products\n : await this.categoryRepository.get({ id: category.id }).then((categoryFound) => categoryFound.products)\n\n return { id: { operator: Where.IN, value: productsIds } }\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n Category,\n CategoryRepository,\n FindRepositoryParams,\n InvalidArgumentError,\n NonFunctionPropertyNames,\n Product,\n ProductGender,\n ProductRepository,\n ProductSearch,\n ProductSearchIndex,\n ProductStockNotificationRepository,\n RepositoryCacheOptions,\n RepositoryFindFielters,\n RepositoryFindResult,\n RepositoryOrderBy,\n RoundProductPricesHelper,\n Shops,\n Where,\n isEmpty,\n set,\n} from '@infrab4a/connect'\nimport { CATEGORY_STRUCTURE, DEFAULT_SHOP } from '../../consts'\nimport { CategoryStructureAdapter } from './adapters'\nimport { ProductSort } from './types/product-sort.type'\n\ntype FetchProductsFilters = {\n clubDiscount?: number[]\n brands?: string[]\n prices?: { min?: number; max?: number; subscriberPrice?: boolean }\n gender?: ProductGender[]\n rate?: number\n customOptions?: string[]\n tags?: string[]\n}\n\ntype FetchProductsOptions = {\n page?: number\n perPage?: number\n sort?: ProductSort\n mainGender?: ProductGender\n}\n\ntype FetchProductsMainParams<T extends Category> = {\n category?: T\n profile?: string[]\n term?: string\n}\n\ntype FetchProductsParams<T extends Category> = FetchProductsOptions &\n (\n | {\n category: FetchProductsMainParams<T>['category']\n filters?: FetchProductsFilters & { customOptions?: never }\n }\n | {\n profile: FetchProductsMainParams<T>['profile']\n filters?: FetchProductsFilters & { customOptions?: never; tags?: never }\n }\n | {\n term: FetchProductsMainParams<T>['term']\n filters?: FetchProductsFilters & { customOptions?: never }\n }\n )\n\ntype FetchProductsResponse = {\n products: { data: Product[]; total: number }\n pages: number\n prices: {\n price: { min: number; max: number }\n subscriberPrice: { min: number; max: number }\n }\n brands?: string[]\n}\n\n@Injectable()\nexport class CatalogService<T extends Category = Category> {\n private productsByTerm: Record<string, string[]> = {}\n private brandsList: Record<string, string[]> = {}\n private fields: NonFunctionPropertyNames<Product>[] = [\n 'id',\n 'name',\n 'slug',\n 'images',\n 'miniatures',\n 'price',\n 'stock',\n 'published',\n 'CEST',\n 'EAN',\n 'NCM',\n 'brand',\n 'costPrice',\n 'hasVariants',\n 'isKit',\n 'sku',\n 'rate',\n 'tags',\n 'type',\n 'shoppingCount',\n 'gender',\n 'createdAt',\n 'label',\n 'outlet',\n 'group',\n ]\n\n constructor(\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\n @Inject('ProductStockNotificationRepository')\n private readonly productStockNotificationRepository: ProductStockNotificationRepository,\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\n @Inject(CATEGORY_STRUCTURE) private readonly categoryStructureAdapter: CategoryStructureAdapter,\n @Inject(DEFAULT_SHOP) private readonly shop: Shops,\n @Inject('ProductSearch') private readonly productSearch: ProductSearchIndex,\n ) {}\n\n async fetchProducts(\n options: FetchProductsParams<T>,\n optionsCache?: { cache?: RepositoryCacheOptions },\n ): Promise<FetchProductsResponse> {\n const limits = this.buildLimitQuery(options)\n\n if (this.hasProfile(options) && options.filters?.customOptions)\n throw new InvalidArgumentError(`It couldn't filled customOptions when profile is given`)\n if (this.hasProfile(options) && options.filters?.tags)\n throw new InvalidArgumentError(`It couldn't filled tags when profile is given`)\n if (this.hasTerm(options) && options.filters?.customOptions)\n throw new InvalidArgumentError(`It couldn't filled customOptions when term is given`)\n\n return await this.findCatalog(options, limits, optionsCache).then(\n async ({ data, count: total, maximum, minimal, distinct }) => {\n await this.setBrandsList(options, distinct?.brand)\n\n return {\n products: { data: data.map((product) => RoundProductPricesHelper.roundProductPrices(product)), total },\n pages: Math.ceil(total / limits.limit),\n prices: {\n price: { min: +minimal?.price?.price?.toFixed(2), max: +maximum?.price?.price?.toFixed(2) },\n subscriberPrice: {\n min: +minimal?.price?.subscriberPrice?.toFixed(2),\n max: +maximum?.price?.subscriberPrice?.toFixed(2),\n },\n },\n brands: this.brandsList[this.buildIndexBrands(options)],\n }\n },\n )\n }\n\n async addCustomerToStockNotification(shop: Shops, productId: string, name: string, email: string): Promise<void> {\n return this.productStockNotificationRepository.addCustomerEmail(shop, productId, name, email)\n }\n\n private async findCatalog(\n options: FetchProductsParams<T>,\n limits: {\n limit?: number\n offset?: number\n },\n optionsCache?: { cache?: RepositoryCacheOptions },\n ): Promise<RepositoryFindResult<Product>> {\n if (this.hasTerm(options) && options.sort === 'most-relevant') {\n const productsIds = await this.findCatalogIdsBySearch(options.term)\n\n return this.findCatalogAndSortByMostRevelantByTerm(productsIds, options, limits)\n }\n\n if (this.hasCategory(options) && options.sort === 'most-relevant') {\n const mostRelevant = options.category.isWishlist ? [] : options.category.getMostRelevantByShop(this.shop)\n const productsIds = await this.productRepository\n .findCatalog(\n {\n fields: ['id'],\n filters: {\n ...(await this.buildMainFilter(options)),\n ...this.buildFilterQuery(options?.filters || {}),\n },\n },\n undefined,\n optionsCache,\n )\n .then((products) => products.data.map((product) => product.id))\n\n return this.findCatalogAndSortByMostRevelant(mostRelevant, productsIds, options, limits, optionsCache)\n }\n\n const repoParams: FindRepositoryParams<Product> = {\n fields: this.fields,\n filters: {\n ...(await this.buildMainFilter(options)),\n ...this.buildFilterQuery(options?.filters || {}),\n },\n ...(options?.sort ? { orderBy: this.buildSortQuery(options?.sort) } : {}),\n limits,\n options: {\n minimal: ['price'],\n maximum: ['price'],\n ...(!this.brandsList[this.buildIndexBrands(options)] && isEmpty(options.filters?.brands)\n ? { distinct: ['brand'] }\n : {}),\n },\n }\n\n if (['biggest-price', 'lowest-price', 'biggest-discount', 'best-rating'].includes(options.sort))\n return this.productRepository.findCatalog(repoParams, undefined, optionsCache)\n\n return this.productRepository.findCatalog(\n repoParams,\n options?.mainGender || this.shop === Shops.MENSMARKET ? 'male' : 'female',\n optionsCache,\n )\n }\n\n private async buildMainFilter({\n category,\n profile,\n term,\n }: FetchProductsMainParams<T>): Promise<RepositoryFindFielters<Product>> {\n if (category) return this.categoryStructureAdapter.buildProductFilterByCategory(category)\n if (profile) return { tags: { operator: Where.LIKE, value: profile } }\n if (term)\n return this.productSearch\n .search<Product>(term, 999, this.shop == Shops.GLAMSHOP ? 'female' : 'male')\n .then((data) => ({ id: { operator: Where.IN, value: data.map((_source) => _source.id) } }))\n }\n\n private async findCatalogAndSortByMostRevelant(\n mostRelevants: string[],\n productIds: string[],\n options: Omit<FetchProductsOptions, 'sort'> & {\n category?: FetchProductsMainParams<T>['category']\n filters?: FetchProductsFilters & { customOptions?: never }\n },\n limits: {\n limit?: number\n offset?: number\n },\n optionsCache?: { cache?: RepositoryCacheOptions },\n ): Promise<RepositoryFindResult<Product>> {\n const brandsList = this.brandsList[this.buildIndexBrands(options)]\n const mostRelevantProductsIds = [...new Set(mostRelevants.concat(productIds))]\n const totalResult = await this.productRepository.findCatalog(\n {\n fields: this.fields,\n filters: {\n id: { operator: Where.IN, value: mostRelevantProductsIds },\n ...this.buildFilterQuery(options?.filters || {}),\n },\n orderBy: this.buildSortQuery('best-sellers'),\n options: {\n minimal: ['price'],\n maximum: ['price'],\n ...(!brandsList && isEmpty(options.filters?.brands) ? { distinct: ['brand'] } : {}),\n },\n },\n options?.mainGender || this.shop === Shops.MENSMARKET ? 'male' : 'female',\n optionsCache,\n )\n\n const mostRelevantWithouyStock = totalResult.data.filter(\n (product) => mostRelevants.includes(product.id) && product.stock.quantity <= 0,\n )\n const firstProducts = totalResult.data\n .filter((product) => mostRelevants.includes(product.id) && product.stock.quantity > 0)\n .sort((a, b) => mostRelevants.indexOf(a.id) - mostRelevants.indexOf(b.id))\n const lastProducts = totalResult.data\n .filter((product) => !mostRelevants.includes(product.id))\n .concat(mostRelevantWithouyStock)\n const categoryMostRelevants = firstProducts.concat(lastProducts)\n const resultFinal = categoryMostRelevants.slice(limits.offset, limits.offset + limits.limit)\n\n await this.setBrandsList(options, totalResult.distinct?.brand)\n\n return {\n data: resultFinal,\n count: totalResult.count,\n maximum: totalResult.maximum,\n minimal: totalResult.minimal,\n distinct: {\n ...totalResult.distinct,\n brand: this.brandsList[this.buildIndexBrands(options)],\n },\n }\n }\n\n private async findCatalogAndSortByMostRevelantByTerm(\n productIds: string[],\n options: Omit<FetchProductsOptions, 'sort'> & {\n term?: FetchProductsMainParams<T>['term']\n filters?: FetchProductsFilters & { customOptions?: never }\n },\n limits: {\n limit?: number\n offset?: number\n },\n ): Promise<RepositoryFindResult<Product>> {\n const brandsList = this.brandsList[this.buildIndexBrands(options)]\n const totalResult = await this.productRepository.findCatalog(\n {\n fields: ['id', 'stock', 'gender'],\n filters: {\n id: { operator: Where.IN, value: productIds },\n published: { operator: Where.EQUALS, value: true },\n ...this.buildFilterQuery(options?.filters || {}),\n },\n options: {\n minimal: ['price'],\n maximum: ['price'],\n ...(!brandsList && isEmpty(options.filters?.brands) ? { distinct: ['brand'] } : {}),\n },\n },\n options?.mainGender || this.shop === Shops.MENSMARKET ? 'male' : 'female',\n )\n const defaultGender = options?.filters?.gender\n ? options?.filters?.gender.at(0)\n : this.shop === Shops.GLAMSHOP\n ? 'female'\n : 'male'\n const stockData = totalResult.data.filter((product) => product.stock.quantity > 0)\n const stockOut = totalResult.data.filter((product) => product.stock.quantity <= 0)\n const productIdsStockGender = productIds.filter((product) =>\n stockData.some(\n (result) =>\n result.id === product && (result.gender?.includes(defaultGender) || result.gender?.includes('unisex')),\n ),\n )\n const productIdsStockNotGender = productIds.filter((product) =>\n stockData.some(\n (result) =>\n result.id === product && !result.gender?.includes(defaultGender) && !result.gender?.includes('unisex'),\n ),\n )\n const productIdsStock = productIdsStockGender.concat(productIdsStockNotGender)\n const productIdsStockOut = productIds.filter((product) => stockOut.some((result) => result.id === product))\n const limitedProductId = productIdsStock\n .concat(productIdsStockOut)\n .slice(limits.offset, limits.offset + limits.limit)\n const orderedId = productIds.filter((product) => limitedProductId.includes(product))\n const productResult = await this.productRepository.findCatalog({\n filters: {\n id: { operator: Where.IN, value: orderedId },\n },\n fields: this.fields,\n })\n\n await this.setBrandsList(options, totalResult.distinct?.brand)\n\n return {\n data: limitedProductId.map((id) => productResult.data.find((product) => product.id === id)).filter(Boolean),\n count: totalResult.count,\n maximum: totalResult.maximum,\n minimal: totalResult.minimal,\n distinct: {\n ...totalResult.distinct,\n brand: this.brandsList[this.buildIndexBrands(options)],\n },\n }\n }\n\n private async findCatalogIdsBySearch(term: string, preview: boolean = false): Promise<string[]> {\n if (this.productsByTerm[term]) return this.productsByTerm[term]\n\n return (this.productsByTerm[term] = await this.productSearch\n .search<ProductSearch>(term, 999, this.shop == Shops.GLAMSHOP ? 'female' : 'male')\n .then((products) => [...new Set(products.map((product) => product.id))]))\n }\n\n private async fetchBrandsOnly(\n options: Pick<FetchProductsParams<T>, 'filters' | 'mainGender'>,\n productIds: string[] = [],\n ): Promise<string[]> {\n return this.productRepository\n .findCatalog(\n {\n fields: ['id'],\n filters: {\n ...(!isEmpty(productIds) ? { id: { operator: Where.IN, value: productIds } } : {}),\n published: { operator: Where.EQUALS, value: true },\n ...this.buildFilterQuery(options?.filters || {}),\n },\n options: {\n distinct: ['brand'],\n },\n },\n options?.mainGender || this.shop === Shops.MENSMARKET ? 'male' : 'female',\n )\n .then((result) => {\n return result.distinct.brand\n })\n }\n\n private async setBrandsList(options: Partial<FetchProductsParams<T>>, brands: string[]) {\n const filterBrands = options.filters?.brands\n\n if (isEmpty(brands)) delete options.filters?.brands\n\n this.brandsList[this.buildIndexBrands(options)] =\n this.brandsList[this.buildIndexBrands(options)] || brands || (await this.fetchBrandsOnly(options))\n\n this.brandsList[this.buildIndexBrands(options)] = this.brandsList[this.buildIndexBrands(options)].filter(Boolean)\n\n options.filters = {\n ...options.filters,\n brands: filterBrands,\n }\n }\n\n private buildFilterQuery = ({\n clubDiscount,\n brands,\n prices,\n gender,\n tags,\n rate,\n customOptions,\n }: FetchProductsFilters): RepositoryFindFielters<Product> => {\n const filters = {} as RepositoryFindFielters<Product>\n\n if (clubDiscount?.length)\n set(filters, 'price.subscriberDiscountPercentage', { operator: Where.IN, value: clubDiscount })\n if (brands?.length) filters.brand = { operator: Where.IN, value: brands }\n if (gender?.length) filters.gender = { operator: Where.IN, value: gender }\n if (prices?.min || prices?.max)\n set(filters, prices.subscriberPrice ? 'price.subscriberPrice' : 'price.price', [\n ...(prices.min ? [{ operator: Where.GTE, value: Math.floor(prices.min) }] : []),\n ...(prices.max ? [{ operator: Where.LTE, value: Math.ceil(prices.max) }] : []),\n ])\n if (rate) filters.rate = { operator: Where.GTE, value: rate }\n if (tags?.length) filters.tags = { operator: Where.LIKE, value: tags }\n if (customOptions?.length) filters.filters = { operator: Where.LIKE, value: customOptions }\n\n return filters\n }\n\n private buildSortQuery = (sort: ProductSort): RepositoryOrderBy<Product> => {\n if (!sort || sort === 'most-relevant') return {}\n\n if (sort === 'best-sellers')\n return {\n shoppingCount: 'desc',\n rate: 'desc',\n stock: 'desc',\n name: 'asc',\n }\n if (sort === 'biggest-price') return { subscriberPrice: 'desc', rate: 'desc', shoppingCount: 'desc' } as any\n if (sort === 'lowest-price') return { subscriberPrice: 'asc', rate: 'desc', shoppingCount: 'desc' } as any\n if (sort === 'best-rating') return { rate: 'desc', shoppingCount: 'desc', stock: 'desc', name: 'asc' }\n if (sort === 'news') return { createdAt: 'desc' }\n if (sort === 'biggest-discount')\n return { subscriberDiscountPercentage: 'desc', rate: 'desc', shoppingCount: 'desc' } as any\n }\n\n private buildLimitQuery = (options: { page?: number; perPage?: number }): { limit?: number; offset?: number } => {\n const limit = options?.perPage || 20\n\n return {\n limit,\n offset: ((options?.page || 1) - 1) * limit,\n }\n }\n\n private hasProfile = (\n options: Partial<FetchProductsParams<T>>,\n ): options is FetchProductsOptions & {\n profile: FetchProductsMainParams<T>['profile']\n filters?: FetchProductsFilters & { customOptions?: never; tags?: never }\n } => 'profile' in options\n\n private hasTerm = (\n options: Partial<FetchProductsParams<T>>,\n ): options is FetchProductsOptions & {\n term: FetchProductsMainParams<T>['term']\n filters?: FetchProductsFilters & { customOptions?: never }\n } => 'term' in options\n\n private hasCategory = (\n options: Partial<FetchProductsParams<T>>,\n ): options is FetchProductsOptions & {\n category: FetchProductsMainParams<T>['category']\n filters?: FetchProductsFilters & { customOptions?: never }\n } => 'category' in options\n\n private buildIndexBrands = (options: Partial<FetchProductsParams<T>>): string => {\n if (this.hasCategory(options)) return `category-${options.category.id}`\n if (this.hasTerm(options)) return `term-${options.term}`\n if (this.hasProfile(options)) return `profile-${options.profile.join(',')}`\n\n return ''\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n Category,\n CategoryFilterRepository,\n CategoryRepository,\n Filter,\n ProductGender,\n ProductRepository,\n RepositoryCacheOptions,\n Shops,\n} from '@infrab4a/connect'\nimport { CATEGORY_STRUCTURE, DEFAULT_SHOP } from '../../consts'\nimport { CategoryStructureAdapter } from './adapters'\n\ntype FetchBrandsOptions = {\n mainGender?: ProductGender\n shop?: Shops\n}\n\n@Injectable()\nexport class CategoryService {\n constructor(\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\n @Inject('CategoryFilterRepository') private readonly categoryFilterRepository: CategoryFilterRepository,\n @Inject(CATEGORY_STRUCTURE) private readonly categoryStructureAdapter: CategoryStructureAdapter,\n @Inject(DEFAULT_SHOP) private readonly shop: Shops,\n ) {}\n\n async fetchBrands(\n category: Category,\n options?: FetchBrandsOptions,\n optionsCache?: { cache?: RepositoryCacheOptions },\n ): Promise<Category[]> {\n const brands = await this.productRepository\n .findCatalog(\n {\n filters: await this.categoryStructureAdapter.buildProductFilterByCategory(category),\n fields: ['brand'],\n },\n options?.mainGender ? options?.mainGender : this.shop === Shops.MENSMARKET ? 'male' : 'female',\n optionsCache,\n )\n .then(({ data }) =>\n Object.keys(data.map((product) => product.brand).reduce((brands, brand) => ({ ...brands, [brand]: true }), {})),\n )\n\n return this.categoryRepository\n .find(\n { filters: { brandCategory: true, shop: options?.shop || this.shop }, orderBy: { name: 'asc' } },\n optionsCache,\n )\n .then(({ data }) => data.filter((category) => brands.includes(category.conditions.brand)))\n }\n\n async fetchFilterOptions(category: Category, optionsCache?: { cache?: RepositoryCacheOptions }): Promise<Filter[]> {\n return await this.categoryFilterRepository\n .find({ filters: { categoryId: +category.id } }, optionsCache)\n .then(({ data }) => data.map((categoryFilter) => categoryFilter.filter))\n }\n}\n","export enum ProductSorts {\n MOST_RELEVANT = 'most-relevant',\n BEST_SELLER = 'best-sellers',\n BIGGEST_PRICE = 'biggest-price',\n LOWEST_PRICE = 'lowest-price',\n BIGGEST_DISCOUNT = 'biggest-discount',\n BEST_RATING = 'best-rating',\n NEWS = 'news',\n}\n","import { Type } from 'class-transformer'\n\nimport { Category } from '@infrab4a/connect'\n\nexport class CategoryWithTree extends Category {\n @Type(() => CategoryWithTree)\n children?: CategoryWithTree[]\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n CategoryFilterRepository,\n CategoryRepository,\n LogRepository,\n PersonType,\n PersonTypes,\n Product,\n ProductRepository,\n ProductSearchIndex,\n ProductStockNotificationRepository,\n Shops,\n Wishlist,\n WishlistLogType,\n WishlistRepository,\n} from '@infrab4a/connect'\nimport { DEFAULT_SHOP } from '../../consts'\nimport { NewCategoryStructureAdapter } from './adapters'\nimport { CatalogService } from './catalog.service'\nimport { CategoryService } from './category.service'\n\n@Injectable()\nexport class WishlistService {\n private catalogService: CatalogService\n private categoryService: CategoryService\n\n constructor(\n @Inject('WishlistRepository') private readonly wishlistRepository: WishlistRepository,\n @Inject(DEFAULT_SHOP) private readonly shop: Shops,\n @Inject('ProductRepository') public productRepository: ProductRepository,\n @Inject('CategoryFilterRepository') categoryFilterRepository: CategoryFilterRepository,\n @Inject('CategoryRepository') categoryRepository: CategoryRepository,\n @Inject('ProductStockNotificationRepository')\n productStockNotificationRepository: ProductStockNotificationRepository,\n @Inject('ProductSearch') private readonly productSearch: ProductSearchIndex,\n @Inject('LogRepository') private readonly logRepository: LogRepository,\n ) {\n const categoryStructureAdapter = new NewCategoryStructureAdapter(wishlistRepository)\n\n this.catalogService = new CatalogService<Wishlist>(\n productRepository,\n productStockNotificationRepository,\n categoryRepository,\n categoryStructureAdapter,\n shop,\n productSearch,\n )\n this.categoryService = new CategoryService(\n productRepository,\n categoryRepository,\n categoryFilterRepository,\n categoryStructureAdapter,\n shop,\n )\n }\n\n getCatalogService() {\n return this.catalogService\n }\n\n getCategoryService() {\n return this.categoryService\n }\n\n async create({\n personId,\n title,\n description,\n published,\n userFullName,\n userPhoto,\n theme,\n bannerUrl,\n personType,\n personIsSubscriber,\n }: {\n personId: string\n title: string\n description: string\n published: boolean\n userFullName: string\n userPhoto?: string\n theme?: string\n bannerUrl?: string\n personType?: PersonType\n personIsSubscriber?: boolean\n }): Promise<Wishlist> {\n const data = {\n slug: '',\n name: title,\n description,\n metadatas: [\n {\n shop: this.shop,\n title: `${userFullName} - ${title}`,\n description: `${userFullName} - ${description}`,\n },\n ],\n shop: this.shop,\n shops: [this.shop],\n personId,\n personName: userFullName,\n personPhoto: userPhoto,\n brandCategory: false,\n published,\n theme,\n bannerUrl,\n personType: personType ?? PersonTypes.NONE,\n personIsSubscriber: personIsSubscriber ?? false,\n }\n\n const hasWishlist = await this.wishlistRepository\n .find({\n filters: {\n personId,\n },\n options: {\n enableCount: false,\n },\n orderBy: {\n id: 'asc',\n },\n })\n .then((res) => res.data)\n\n await this.createWishlistLog(WishlistLogType.CREATE, data as Wishlist)\n\n if (hasWishlist.length) return hasWishlist.at(0)\n\n const newWishlist = await this.wishlistRepository.create(data)\n await this.wishlistRepository.update({ id: newWishlist.id, slug: newWishlist.id })\n\n return Wishlist.toInstance({ ...newWishlist.toPlain(), slug: newWishlist.id })\n }\n\n async update({\n id,\n title,\n description,\n published,\n userFullName,\n userPhoto,\n theme,\n bannerUrl,\n personType,\n personIsSubscriber,\n }: {\n id: string\n title: string\n description: string\n published: boolean\n userFullName: string\n userPhoto?: string\n theme?: string\n bannerUrl?: string\n personType?: PersonType\n personIsSubscriber?: boolean\n }): Promise<Wishlist> {\n const data = {\n id,\n name: title,\n description,\n published,\n metadatas: [\n {\n shop: this.shop,\n title: `${userFullName} - ${title}`,\n description: `${userFullName} - ${description}`,\n },\n ],\n personName: userFullName,\n personPhoto: userPhoto,\n theme,\n bannerUrl,\n personType: personType ?? PersonTypes.NONE,\n personIsSubscriber: personIsSubscriber ?? false,\n }\n\n await this.createWishlistLog(WishlistLogType.UPDATE, data as Wishlist)\n\n return this.wishlistRepository.update(data)\n }\n\n async delete(wishlistId: string): Promise<void> {\n const wishlist = await this.findById(wishlistId)\n await this.createWishlistLog(WishlistLogType.DELETE, wishlist)\n\n return this.wishlistRepository.delete({ id: wishlistId })\n }\n\n getWishlistBySlug(slug: string): Promise<Wishlist> {\n const [id] = slug.split('-')\n\n if (+id) return this.wishlistRepository.get({ id })\n\n return this.wishlistRepository.getWishlistBySlug(slug)\n }\n\n getWishlistsByPerson(personId: string): Promise<Wishlist[]> {\n return this.wishlistRepository.getWishlistByPerson(personId)\n }\n\n async addProduct(wishlistId: string, productId: string): Promise<Wishlist> {\n const wishlist = await this.wishlistRepository.get({ id: wishlistId })\n const hasProduct = wishlist.products.some((p) => p == productId)\n\n const wishlistData = await this.findById(wishlistId)\n const productData = await this.findProductById(productId)\n await this.createWishlistLog(WishlistLogType.ADD_PRODUCT, wishlistData, productData)\n\n if (!hasProduct) {\n wishlist.products = [...wishlist.products, productId]\n await this.wishlistRepository.addProduct(wishlistId, productId)\n }\n\n return wishlist\n }\n\n async removeProduct(wishlistId: string, productId: string): Promise<Wishlist> {\n const wishlist = await this.wishlistRepository.get({ id: wishlistId })\n const productIndex = wishlist.products.findIndex((p) => p == productId)\n\n if (productIndex != -1) {\n wishlist.products.splice(productIndex, 1)\n const wishlistData = await this.findById(wishlistId)\n const productData = await this.findProductById(productId)\n await this.createWishlistLog(WishlistLogType.REMOVE_PRODUCT, wishlistData, productData)\n await this.wishlistRepository.removeProduct(wishlistId, productId)\n }\n\n return wishlist\n }\n\n private async findById(id: string): Promise<Wishlist> {\n return this.wishlistRepository\n .find({\n fields: ['id', 'name', 'description', 'personId', 'personIsSubscriber', 'personType', 'personName'],\n filters: {\n id,\n },\n })\n .then((res) => res.data.at(0))\n }\n\n private async findProductById(id: string): Promise<Product> {\n return this.productRepository\n .find({\n fields: ['id', 'sku', 'EAN', 'name', 'brand'],\n filters: {\n id,\n },\n })\n .then((res) => res.data.at(0))\n }\n\n private async createWishlistLog(type: WishlistLogType, wishlist: Wishlist, product?: Product) {\n switch (type) {\n case WishlistLogType.CREATE:\n case WishlistLogType.UPDATE:\n case WishlistLogType.DELETE:\n await this.logRepository.create({\n collection: 'wishlist',\n date: new Date(),\n operation: WishlistLogType.CREATE ? 'CREATE' : WishlistLogType.UPDATE ? 'UPDATE' : 'DELETE',\n documentId: wishlist.id,\n document: {\n id: wishlist.id,\n shop: this.shop,\n name: wishlist.name,\n description: wishlist.description,\n published: wishlist.published,\n type: type,\n personType: wishlist.personType,\n personId: wishlist.personId,\n personName: wishlist.personName,\n personIsSubscriber: wishlist.personIsSubscriber,\n },\n })\n break\n\n case WishlistLogType.ADD_PRODUCT:\n case WishlistLogType.REMOVE_PRODUCT:\n await this.logRepository.create({\n collection: 'wishlist',\n date: new Date(),\n operation: 'UPDATE',\n documentId: wishlist.id,\n document: {\n id: wishlist.id,\n shop: this.shop,\n name: wishlist.name,\n description: wishlist.description,\n published: wishlist.published,\n type: type,\n personType: wishlist.personType,\n personId: wishlist.personId,\n personName: wishlist.personName,\n personIsSubscriber: wishlist.personIsSubscriber,\n productId: product.id,\n productEAN: product.EAN,\n productSKU: product.sku,\n productName: product.name,\n productBrand: product.brand,\n },\n })\n break\n\n default:\n break\n }\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n Category,\n CategoryRepository,\n Checkout,\n CheckoutSubscription,\n CheckoutTypes,\n Coupon,\n CouponRepository,\n CouponTypes,\n Exclusivities,\n LineItem,\n Order,\n OrderRepository,\n OrderStatus,\n Shops,\n User,\n Where,\n} from '@infrab4a/connect'\nimport { from, Observable, of } from 'rxjs'\nimport { concatMap, map } from 'rxjs/operators'\nimport { DEFAULT_SHOP } from '../consts'\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CouponService {\n constructor(\n @Inject('CouponRepository') private readonly couponRepository: CouponRepository,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n @Inject('OrderRepository') private readonly orderRepository: OrderRepository,\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\n ) {}\n\n checkCoupon(\n nickname: string,\n checkoutType: CheckoutTypes,\n checkout: Partial<Checkout>,\n plan: string,\n ): Observable<Coupon> {\n return from(\n this.couponRepository\n .find({\n filters: {\n nickname: { operator: Where.EQUALS, value: nickname },\n active: { operator: Where.EQUALS, value: true },\n },\n })\n .then((result) => result.data[0]),\n ).pipe(\n concatMap((coupon) => this.couponValidation(coupon, checkoutType)),\n concatMap((couponValid: Coupon) => this.couponRulesValidation(couponValid, checkoutType, checkout, plan)),\n map((couponValidated: Coupon) => couponValidated as Coupon),\n )\n }\n\n private async couponValidation(coupon: Coupon, checkoutType: CheckoutTypes) {\n if (!coupon) throw 'Cupom inválido.'\n\n if (coupon?.beginAt && coupon?.beginAt.getTime() > new Date().getTime()) throw 'Cupom inválido.'\n\n if (coupon?.expiresIn && (coupon?.expiresIn as Date).getTime() < new Date().getTime()) throw 'Cupom expirado.'\n\n const isInShop = coupon.shopAvailability === Shops.ALL || coupon.shopAvailability === this.defaultShop\n\n if (!isInShop) throw 'Cupom inválido para loja.'\n\n const isCheckoutType = coupon.checkoutType === CheckoutTypes.ALL || coupon.checkoutType === checkoutType\n\n if (!isCheckoutType) throw 'Cupom inválido. Erro de checkout.'\n\n return coupon\n }\n\n private async couponRulesValidation(\n coupon: Coupon,\n checkoutType: CheckoutTypes,\n checkout: Partial<Checkout>,\n plan: string,\n ) {\n if (checkoutType == CheckoutTypes.SUBSCRIPTION) {\n if (coupon.plan && coupon.plan.toUpperCase() !== plan.toUpperCase()) throw 'Cupom inválido para sua assinatura.'\n\n return coupon\n }\n\n const validUser = this.coupomUserValidation(coupon, checkout?.user)\n\n if (!validUser) throw 'Usuário não elegível.'\n\n const couponUseLimits = this.getCouponUseLimits(coupon, checkoutType, checkout.user)\n\n if (couponUseLimits.firstOrder) {\n const ordersUser = await this.getOrdersFromUser(checkout.user.email.toLocaleLowerCase())\n if (couponUseLimits.firstOrder && ordersUser.length >= 1) throw 'Limite de uso atingido'\n }\n\n if (!couponUseLimits.unlimited || couponUseLimits.limitedPerUser) {\n const ordersCoupon = await this.getOrdersWithCoupon(coupon)\n\n if (!couponUseLimits.unlimited && couponUseLimits.total && ordersCoupon.length >= couponUseLimits.total)\n throw 'Limite de uso atingido.'\n\n if (couponUseLimits.limitedPerUser) {\n const ordersWithUser = this.countOrdersWithUser(ordersCoupon, checkout.user.email)\n\n if (ordersWithUser > 0) throw 'Limite de uso por usuário atingido.'\n }\n }\n\n const hasProductCategories = await this.hasProductCategories(coupon, checkout)\n\n if (!hasProductCategories) throw 'Seu carrinho não possui produtos elegíveis para desconto.'\n\n const hasMinSubTotal = await this.hasMinSubTotal(coupon, checkout)\n\n if (!hasMinSubTotal) {\n if (coupon.productsCategories?.length) {\n throw `Valor mínimo de ${Intl.NumberFormat('pt-BR', { style: 'currency', currency: 'BRL' }).format(\n coupon.minSubTotalValue,\n )} não atingido na(s) categoria(s) elegíveis para o desconto.`\n }\n\n throw `Valor mínimo de ${Intl.NumberFormat('pt-BR', { style: 'currency', currency: 'BRL' }).format(\n coupon.minSubTotalValue,\n )} não atingido.`\n }\n\n return coupon\n }\n\n public calcDiscountSubscription(coupon: Coupon, checkout: Partial<CheckoutSubscription>): Observable<number> {\n let discount = 0\n\n if (coupon.discount.subscription.type == CouponTypes.ABSOLUTE) discount = coupon.discount.subscription.value\n else discount = checkout.subscriptionPlan.recurrencePrice * (coupon.discount.subscription.value / 100)\n\n return of(discount)\n }\n\n private async hasMinSubTotal(coupon: Coupon, checkout: Partial<Checkout>): Promise<boolean> {\n if (!coupon.minSubTotalValue) return true\n\n const lineItensDiscount = await this.getLineItensEligebleForDiscount(coupon.productsCategories, checkout)\n const subTotal = this.calcCheckoutSubtotal(lineItensDiscount, checkout.user)\n\n if (coupon.minSubTotalValue <= subTotal) return true\n\n return false\n }\n\n private async hasProductCategories(coupon: Coupon, checkout: Partial<Checkout>): Promise<boolean> {\n if (!coupon.productsCategories || !coupon.productsCategories?.length) {\n return true\n }\n\n const couponCategories = await this.getCouponCategoriesId(coupon.productsCategories)\n const hasCategories = checkout.lineItems?.filter((item) => {\n if (item.isGift) return false\n if (!item.categories || !item.categories?.length) return true\n\n return item.categories.some((c) => couponCategories.some((cat) => cat == c))\n })\n\n return hasCategories.length ? true : false\n }\n\n private coupomUserValidation(coupon: Coupon, user: User) {\n if (!user || coupon.exclusivityType.includes(Exclusivities.ALL_USERS)) return true\n\n let userTypes: Exclusivities[] = []\n\n if (\n coupon.exclusivityType.includes(Exclusivities.COLLABORATORS) &&\n this.emailIsFromCollaborator(user.email.toLocaleLowerCase())\n )\n userTypes.push(Exclusivities.COLLABORATORS)\n\n if (\n coupon.exclusivityType.includes(Exclusivities.SPECIFIC_USER) &&\n coupon.userExclusiveEmail.includes(user.email.toLocaleLowerCase())\n )\n userTypes.push(Exclusivities.SPECIFIC_USER)\n\n if (\n coupon.exclusivityType.includes(Exclusivities.ACTIVE_SUBSCRIBER) &&\n user.isSubscriber &&\n user.subscriptionPlan != ''\n )\n userTypes.push(Exclusivities.ACTIVE_SUBSCRIBER)\n\n if (\n user.isSubscriber &&\n user.subscriptionPlan == '' &&\n coupon.exclusivityType.includes(Exclusivities.INACTIVE_SUBSCRIBER)\n )\n userTypes.push(Exclusivities.INACTIVE_SUBSCRIBER)\n\n if (coupon.exclusivityType.includes(Exclusivities.NON_SUBSCRIBER) && !user.isSubscriber)\n userTypes.push(Exclusivities.NON_SUBSCRIBER)\n\n return coupon.exclusivityType.some((r) => userTypes.includes(r))\n }\n\n private async getCouponCategoriesId(productsCategories: string[]): Promise<Array<String>> {\n const couponCategories: Array<String> = []\n\n for (let index = 0; index < productsCategories.length; index++) {\n const category: Category & { firestoreId?: string } = await this.categoryRepository.get({\n id: productsCategories[index],\n })\n\n if (category) {\n const children = await this.categoryRepository.getChildren(parseInt(productsCategories[index]))\n\n couponCategories.push(category.id, ...children.map((c) => c.id.toString()))\n }\n }\n\n return [...new Set(couponCategories)]\n }\n\n private emailIsFromCollaborator = (userEmail: string): boolean => !!userEmail?.match(/@b4a.com.br/g)\n\n private async getLineItensEligebleForDiscount(\n productsCategories: string[],\n checkout: Partial<Checkout>,\n ): Promise<LineItem[]> {\n let lineItensDiscount = []\n const couponCategories = await this.getCouponCategoriesId(productsCategories)\n\n if (productsCategories && productsCategories.length) {\n lineItensDiscount = checkout.lineItems?.filter((item) => {\n if (item.isGift) return false\n if (item.categories?.length) {\n return item.categories.some((c) => couponCategories.some((cat) => cat == c))\n }\n\n return true\n })\n } else {\n lineItensDiscount = checkout.lineItems.filter((item) => !item.isGift)\n }\n\n return lineItensDiscount\n }\n\n private calcCheckoutSubtotal(lineItens: LineItem[], user: User): number {\n return (\n lineItens\n ?.filter((item) => !item.isGift)\n .reduce(\n (acc, curr) =>\n user?.isSubscriber && curr.price.subscriberPrice\n ? acc + curr.price?.subscriberPrice * curr.quantity\n : acc + curr.pricePaid * curr.quantity,\n 0,\n ) || 0\n )\n }\n\n private async getOrdersWithCoupon(coupon: Coupon): Promise<Order[]> {\n return await this.orderRepository\n .find({\n filters: {\n coupon: { id: coupon.id },\n status: { operator: Where.NOTEQUALS, value: OrderStatus.CANCELADO },\n },\n })\n .then((result) => result.data)\n }\n\n private async getOrdersFromUser(email: string) {\n return await this.orderRepository\n .find({\n filters: {\n user: { email: { operator: Where.EQUALS, value: email } },\n status: { operator: Where.NOTEQUALS, value: OrderStatus.CANCELADO },\n },\n })\n .then((result) => result.data)\n }\n\n private countOrdersWithUser(orders: Order[], email: string): number {\n return orders.filter((o) => o.user.email == email).length\n }\n\n private getCouponUseLimits(coupon: Coupon, checkoutType: CheckoutTypes, user: User) {\n let couponUseLimits: { unlimited?: boolean; total?: number; limitedPerUser?: boolean; firstOrder?: boolean }\n if (checkoutType == CheckoutTypes.ECOMMERCE || checkoutType == CheckoutTypes.ALL) {\n if (\n coupon.exclusivityType.length === 1 &&\n (coupon.exclusivityType.at(0) === Exclusivities.SPECIFIC_USER ||\n coupon.exclusivityType.at(0) === Exclusivities.COLLABORATORS)\n )\n couponUseLimits = coupon.useLimits.non_subscriber\n else couponUseLimits = user && user.isSubscriber ? coupon.useLimits.subscriber : coupon.useLimits.non_subscriber\n } else {\n couponUseLimits = coupon.useLimits.subscription\n }\n\n return couponUseLimits\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n CheckoutSubscription,\n CheckoutSubscriptionRepository,\n CheckoutTypes,\n Coupon,\n isNil,\n pick,\n} from '@infrab4a/connect'\nimport { Observable } from 'rxjs'\nimport { concatMap } from 'rxjs/operators'\nimport { RequiredCheckoutSubscriptionData } from './types'\n\nimport { PERSISTENCE_PROVIDER } from '../consts'\nimport { DataPersistence } from '../persistence'\nimport { CouponService } from './coupon.service'\n\n@Injectable()\nexport class CheckoutSubscriptionService {\n constructor(\n @Inject('CheckoutSubscriptionRepository')\n private readonly checkoutSubscriptionRepository: CheckoutSubscriptionRepository,\n @Inject(PERSISTENCE_PROVIDER) private readonly dataPersistence: DataPersistence,\n private readonly couponService: CouponService,\n ) {}\n\n getCheckoutSubscription(checkoutData?: RequiredCheckoutSubscriptionData): Observable<CheckoutSubscription> {\n return this.dataPersistence\n .get('checkoutSubscriptionId')\n .pipe(\n concatMap((id) =>\n !isNil(id) ? this.checkoutSubscriptionRepository.get({ id }) : this.createCheckoutSubscription(checkoutData),\n ),\n )\n }\n\n clearCheckoutSubscriptionFromSession(): Observable<void> {\n return this.dataPersistence.remove('checkoutSubscriptionId')\n }\n\n checkCoupon(nickname: string, userEmail: string): Observable<Coupon> {\n return this.getCheckoutSubscription().pipe(\n concatMap((checkout) =>\n this.couponService\n .checkCoupon(nickname, CheckoutTypes.SUBSCRIPTION, checkout, checkout.subscriptionPlan.name)\n .pipe(),\n ),\n )\n }\n\n calcDiscountSubscription(coupon: Coupon) {\n return this.getCheckoutSubscription().pipe(\n concatMap((checkout) => this.couponService.calcDiscountSubscription(coupon, checkout).pipe()),\n )\n }\n\n private async createCheckoutSubscription(\n checkoutData?: RequiredCheckoutSubscriptionData,\n ): Promise<CheckoutSubscription> {\n const checkout = await this.checkoutSubscriptionRepository.create({\n createdAt: new Date(),\n ...CheckoutSubscription.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),\n })\n\n await this.dataPersistence.set('checkoutSubscriptionId', checkout.id).toPromise()\n\n return checkout\n }\n}\n","export class UtilHelper {\n static createSlug(name: string): string {\n return name\n .toLowerCase()\n .replace(/\\s+/g, '-') // Replace spaces with -\n .replace(/[ãàáäâ]/g, 'a') // Replace spaces with -\n .replace(/[ẽèéëê]/g, 'e') // Replace spaces with -\n .replace(/[ìíïî]/g, 'i') // Replace spaces with -\n .replace(/[õòóöô]/g, 'o') // Replace spaces with -\n .replace(/[ùúüû]/g, 'u') // Replace spaces with -\n .replace(/[ñ]/g, 'n') // Replace spaces with -\n .replace(/[ç]/g, 'c') // Replace spaces with -\n .replace(/[&]/g, 'and') // Replace spaces with -\n .replace(/[^\\w\\-]+/g, '') // Remove all non-word chars\n .replace(/\\-\\-+/g, '-') // Replace multiple - with single -\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n add,\n Banner,\n Category,\n CategoryRepository,\n Home,\n HomeCategoryGroup,\n HomeData,\n HomeRepository,\n pick,\n Product,\n ProductRepository,\n RequiredArgumentError,\n Shops,\n Where,\n} from '@infrab4a/connect'\nimport { forkJoin, from, Observable, of, throwError } from 'rxjs'\nimport { concatMap, map, tap } from 'rxjs/operators'\n\nimport { DEFAULT_SHOP } from '../consts'\n\ntype HomeConfigurationId = 'glamshop' | 'mens_market'\ntype BannerType = 'brand' | 'buyToWin' | 'block' | 'blog'\n\n@Injectable()\nexport class HomeShopService {\n private homeConfiguration: Home\n\n private get homeId(): HomeConfigurationId {\n if (this.defaultShop === Shops.GLAMSHOP) return 'glamshop'\n if (this.defaultShop === Shops.MENSMARKET) return 'mens_market'\n\n return null\n }\n\n constructor(\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\n @Inject('HomeRepository') private readonly homeRepository: HomeRepository,\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n ) {}\n\n getHomeData(): Observable<Home> {\n return this.getHomeConfiguration().pipe(\n map((home) => (home?.data?.expiresAt > new Date() ? home : null)),\n concatMap((home) =>\n home\n ? of(home)\n : forkJoin([\n this.getDiscoverProducts(this.gender),\n this.getFeaturedProducts(this.gender),\n this.getVerticalProducts(this.gender),\n ]).pipe(\n map(([discoverProducts, featuredProducts, verticalProducts]) => ({\n discoverProducts,\n featuredProducts,\n verticalProducts,\n })),\n concatMap((data) => this.saveHomeData(data)),\n ),\n ),\n )\n }\n\n getBanners(type: BannerType): Observable<Banner[]> {\n return this.getHomeConfiguration().pipe(\n map((home) => {\n if (type === 'brand') return home.brandsCarousel\n if (type === 'buyToWin') return [home.buyToWinBanner]\n if (type === 'block') return home.blockBanners\n if (type === 'blog') return [home.blogBanner]\n\n return []\n }),\n )\n }\n\n getMinValueForFreeShipping(): Observable<number> {\n return this.getHomeConfiguration().pipe(map((home) => home.minValueForFreeShipping))\n }\n\n private getDiscoverProducts(gender?: string): Observable<{ category: Category; products: Product[] }[]> {\n return this.getHomeConfiguration().pipe(\n concatMap((home) =>\n from(this.categoryRepository.getCategoriesForHome(home.discoverCategories, this.defaultShop)).pipe(\n map((groups) => groups.map(this.buildCategoryGroupWithRequiredData)),\n ),\n ),\n )\n }\n\n private getFeaturedProducts(gender?: string): Observable<{ category: Category; products: Product[] }[]> {\n return this.getHomeConfiguration().pipe(\n concatMap((home) =>\n from(this.categoryRepository.getCategoriesForHome(home.featuredCategories, this.defaultShop)).pipe(\n map((groups) => groups.map(this.buildCategoryGroupWithRequiredData)),\n ),\n ),\n )\n }\n\n private getVerticalProducts(gender?: string): Observable<{ category: Category; products: Product[] }[]> {\n return this.getHomeConfiguration().pipe(\n concatMap((home) =>\n forkJoin(\n home.verticalCarousels.filter(Boolean).map((id) =>\n from(this.categoryRepository.get({ id })).pipe(\n concatMap((category) =>\n from(\n this.productRepository.find({\n filters: {\n categories: { operator: Where.IN, value: [category.id] },\n ...(gender ? { tags: { operator: Where.IN, value: [gender] } } : {}),\n },\n limits: { limit: 12 },\n }),\n ).pipe(map((products) => ({ category, products }))),\n ),\n map(({ category, products }) => ({ category, products: products.data })),\n map(this.buildCategoryGroupWithRequiredData),\n ),\n ),\n ),\n ),\n )\n }\n\n private getHomeConfiguration(): Observable<Home> {\n return of(this.homeConfiguration).pipe(\n concatMap((home) =>\n home\n ? of(home)\n : !this.homeId\n ? throwError(new RequiredArgumentError(['homeId']))\n : from(this.homeRepository.get({ id: this.homeId })).pipe(\n tap((homeLoaded) => (this.homeConfiguration = homeLoaded)),\n ),\n ),\n )\n }\n\n private saveHomeData(homeData: HomeData): Observable<Home> {\n const data = {\n createdAt: new Date(),\n expiresAt: add(new Date(), { hours: 1 }),\n data: homeData,\n }\n\n return from(\n this.homeRepository.update({\n id: this.homeId,\n data,\n }),\n ).pipe(\n tap(() => (this.homeConfiguration.data = data)),\n map(() => this.homeConfiguration),\n )\n }\n\n private buildCategoryGroupWithRequiredData = (group: HomeCategoryGroup): HomeCategoryGroup => ({\n category: Category.toInstance(pick(group?.category?.toPlain() || {}, ['id', 'name', 'slug', 'conditions'])),\n products:\n group?.products?.map((product) =>\n Product.toInstance(\n pick(product?.toPlain() || {}, [\n 'id',\n 'price',\n 'reviews',\n 'hasVariants',\n 'slug',\n 'sku',\n 'stock',\n 'costPrice',\n 'images',\n 'miniatures',\n 'name',\n 'weight',\n 'rate',\n 'type',\n 'brand',\n ]),\n ),\n ) || [],\n })\n\n private get gender() {\n return this.homeId === 'mens_market' ? 'masculino' : undefined\n }\n}\n","import { Injectable, Inject } from '@angular/core'\nimport { doc, Firestore, docSnapshots } from '@angular/fire/firestore'\nimport { Order, OrderFirestoreRepository } from '@infrab4a/connect'\nimport { Subject } from 'rxjs'\nimport { map } from 'rxjs/operators'\n\n@Injectable()\nexport class OrderService {\n orderSubject = new Subject<Order>()\n\n constructor(\n private readonly angularFirestore: Firestore,\n @Inject('OrderRepository') private readonly orderRepository: OrderFirestoreRepository,\n ) {}\n\n getOrder(id: string): Subject<Order> {\n docSnapshots(doc(this.angularFirestore, `${this.orderRepository.collectionName}/${id}`))\n .pipe(map((doc) => Order.toInstance(doc.data())))\n .subscribe((doc) => this.orderSubject.next(doc))\n\n return this.orderSubject\n }\n}\n","import { Injector, ModuleWithProviders, NgModule, Type } from '@angular/core'\nimport { FirebaseApp, FirebaseOptions, getApp, initializeApp, provideFirebaseApp } from '@angular/fire/app'\nimport { AppCheckOptions, initializeAppCheck, provideAppCheck } from '@angular/fire/app-check'\nimport { getStorage, provideStorage, Storage } from '@angular/fire/storage'\nimport {\n AxiosElasticSearchConfig,\n FileUploaderService,\n FirebaseFileUploaderService,\n isNil,\n ProductsVertexSearch,\n Shops,\n UpdateUserImage,\n UserRepository,\n VertexSearchConfig,\n} from '@infrab4a/connect'\nimport { AngularElasticSeachModule } from './angular-elastic-search.module'\nimport { AngularFirebaseAuthModule } from './angular-firebase-auth.module'\nimport { AngularFirestoreModule } from './angular-firestore.module'\nimport { AngularHasuraGraphQLModule, HasuraGraphQLOptions } from './angular-hasura-graphql.module'\nimport { AngularVertexSeachModule } from './angular-vertex-search.module'\nimport {\n APP_CHECK_PROVIDER,\n BACKEND_URL,\n CATEGORY_STRUCTURE,\n DEFAULT_SHOP,\n ES_CONFIG,\n FIREBASE_APP_NAME,\n FIREBASE_OPTIONS,\n HASURA_OPTIONS,\n PERSISTENCE_PROVIDER,\n VERTEX_CONFIG,\n} from './consts'\nimport { STORAGE_BASE_URL } from './consts/storage-base-url.const'\nimport { CookieDataPersistence, DataPersistence } from './persistence'\nimport {\n AuthService,\n CartService,\n CatalogService,\n CategoryService,\n CheckoutService,\n CheckoutSubscriptionService,\n CouponService,\n HomeShopService,\n OrderService,\n WishlistService,\n} from './services'\nimport { NewCategoryStructureAdapter, OldCategoryStructureAdapter } from './services/catalog/adapters'\nimport { FirebaseAppConfig } from './types'\n\n@NgModule({\n imports: [\n provideFirebaseApp((injector: Injector) => {\n const appName = injector.get<string>(FIREBASE_APP_NAME)\n\n try {\n const app = appName ? getApp(appName) : getApp()\n\n return app\n } catch (error) {\n console.warn('Firebase app not found, initializing new app')\n\n if (error instanceof Error) console.error(error.message)\n\n return initializeApp(injector.get(FIREBASE_OPTIONS), appName)\n }\n }),\n provideAppCheck((injector: Injector) => {\n const app = injector.get(FirebaseApp)\n\n try {\n const provider = injector.get<AppCheckOptions['provider']>(APP_CHECK_PROVIDER)\n\n if (provider)\n return initializeAppCheck(app, {\n provider,\n isTokenAutoRefreshEnabled: true,\n })\n } catch (error) {\n if (error instanceof Error) console.error(error.message)\n\n return\n }\n }),\n provideStorage((injector: Injector) => getStorage(injector.get(FirebaseApp))),\n AngularElasticSeachModule,\n AngularVertexSeachModule,\n AngularFirebaseAuthModule,\n AngularFirestoreModule,\n AngularHasuraGraphQLModule,\n ],\n providers: [\n AuthService,\n CartService,\n CatalogService,\n CategoryService,\n CheckoutService,\n CheckoutSubscriptionService,\n CouponService,\n HomeShopService,\n OrderService,\n WishlistService,\n {\n provide: UpdateUserImage,\n useFactory: (userRepository: UserRepository, fileUploader: FileUploaderService) => {\n return new UpdateUserImage(userRepository, fileUploader)\n },\n deps: ['UserRepository', 'FileUploaderService'],\n },\n {\n provide: 'FileUploaderService',\n useFactory: (storage: Storage, baseUrl: string) => {\n return new FirebaseFileUploaderService(storage, baseUrl)\n },\n deps: [Storage, STORAGE_BASE_URL],\n },\n {\n provide: 'ProductSearch',\n useExisting: ProductsVertexSearch,\n },\n ],\n})\nexport class AngularConnectModule {\n static initializeApp(\n defaultShop: Shops,\n options: {\n firebase?: FirebaseOptions\n elasticSearch?: AxiosElasticSearchConfig\n vertexConfig?: VertexSearchConfig\n hasura: HasuraGraphQLOptions\n backendUrl: string\n oldCategoryStructure?: boolean\n storageBaseUrl?: string\n persistenceProvider?: Type<DataPersistence>\n appCheckProvider?: AppCheckOptions['provider']\n },\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularConnectModule> {\n return {\n ngModule: AngularConnectModule,\n providers: [\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\n { provide: APP_CHECK_PROVIDER, useValue: options.appCheckProvider },\n {\n provide: CATEGORY_STRUCTURE,\n useClass:\n isNil(options?.oldCategoryStructure) || options?.oldCategoryStructure\n ? OldCategoryStructureAdapter\n : NewCategoryStructureAdapter,\n },\n { provide: PERSISTENCE_PROVIDER, useClass: options?.persistenceProvider || CookieDataPersistence },\n ...(isNil(defaultShop) ? [] : [{ provide: DEFAULT_SHOP, useValue: defaultShop }]),\n ...(isNil(options?.firebase) ? [] : [{ provide: FIREBASE_OPTIONS, useValue: options?.firebase }]),\n ...(isNil(options?.elasticSearch) ? [] : [{ provide: ES_CONFIG, useValue: options.elasticSearch }]),\n ...(isNil(options?.vertexConfig) ? [] : [{ provide: VERTEX_CONFIG, useValue: options.vertexConfig }]),\n ...(isNil(options?.hasura) ? [] : [{ provide: HASURA_OPTIONS, useValue: options.hasura }]),\n ...(isNil(options?.backendUrl) ? [] : [{ provide: BACKEND_URL, useValue: options.backendUrl }]),\n ...(isNil(options?.storageBaseUrl) ? [] : [{ provide: STORAGE_BASE_URL, useValue: options.storageBaseUrl }]),\n ],\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.AuthService","i2.CheckoutService","i3","i1.CouponService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"infrab4a-connect-angular.mjs","sources":["../../../projects/connect-angular/src/consts/es-config.const.ts","../../../projects/connect-angular/src/angular-elastic-search.module.ts","../../../projects/connect-angular/src/consts/backend-url.const.ts","../../../projects/connect-angular/src/consts/category-structure.ts","../../../projects/connect-angular/src/consts/default-shop.const.ts","../../../projects/connect-angular/src/consts/firebase-const.ts","../../../projects/connect-angular/src/consts/hasura-options.const.ts","../../../projects/connect-angular/src/consts/persistence.const.ts","../../../projects/connect-angular/src/consts/vertex-config.const.ts","../../../projects/connect-angular/src/angular-firebase-auth.module.ts","../../../projects/connect-angular/src/helpers/mobile-operation-system-checker.helper.ts","../../../projects/connect-angular/src/angular-firestore.module.ts","../../../projects/connect-angular/src/angular-hasura-graphql.module.ts","../../../projects/connect-angular/src/angular-vertex-search.module.ts","../../../projects/connect-angular/src/consts/storage-base-url.const.ts","../../../projects/connect-angular/src/persistence/cookie-data-persistence.ts","../../../projects/connect-angular/src/services/auth.service.ts","../../../projects/connect-angular/src/services/checkout.service.ts","../../../projects/connect-angular/src/services/cart.service.ts","../../../projects/connect-angular/src/services/catalog/adapters/new-category-structure.adapter.ts","../../../projects/connect-angular/src/services/catalog/adapters/old-category-structure.adapter.ts","../../../projects/connect-angular/src/services/catalog/catalog.service.ts","../../../projects/connect-angular/src/services/catalog/category.service.ts","../../../projects/connect-angular/src/services/catalog/enums/product-sorts.enum.ts","../../../projects/connect-angular/src/services/catalog/models/category-with-tree.model.ts","../../../projects/connect-angular/src/services/catalog/wishlist.service.ts","../../../projects/connect-angular/src/services/coupon.service.ts","../../../projects/connect-angular/src/services/checkout-subscription.service.ts","../../../projects/connect-angular/src/services/helpers/util.helper.ts","../../../projects/connect-angular/src/services/home-shop.service.ts","../../../projects/connect-angular/src/services/order.service.ts","../../../projects/connect-angular/src/angular-connect.module.ts","../../../projects/connect-angular/src/infrab4a-connect-angular.ts"],"sourcesContent":["export const ES_CONFIG = 'ES_CONFIG'\n","import { ModuleWithProviders, NgModule } from '@angular/core'\nimport { AxiosAdapter, AxiosElasticSearchConfig, ProductsIndex } from '@infrab4a/connect'\n\nimport { ES_CONFIG } from './consts/es-config.const'\n\n@NgModule({\n providers: [\n {\n provide: ProductsIndex,\n useFactory: (configuration: AxiosElasticSearchConfig): ProductsIndex =>\n new ProductsIndex(new AxiosAdapter(configuration)),\n deps: [ES_CONFIG],\n },\n ],\n})\nexport class AngularElasticSeachModule {\n static initializeApp(options: AxiosElasticSearchConfig): ModuleWithProviders<AngularElasticSeachModule> {\n return {\n ngModule: AngularElasticSeachModule,\n providers: [{ provide: ES_CONFIG, useValue: options }],\n }\n }\n}\n","export const BACKEND_URL = 'BACKEND_URL'","export const CATEGORY_STRUCTURE = 'CATEGORY_STRUCTURE'\n","export const DEFAULT_SHOP = 'DEFAULT_SHOP'\n","import { InjectionToken } from '@angular/core'\n\nexport const FIREBASE_APP_NAME = new InjectionToken('firebaseAppName')\nexport const FIREBASE_OPTIONS = new InjectionToken('firebaseOptions')\nexport const APP_CHECK_PROVIDER = new InjectionToken('appCheckProvider')\n","export const HASURA_OPTIONS = 'HASURA_OPTIONS'\n","export const PERSISTENCE_PROVIDER = 'PERSISTENCE_PROVIDER'\n","export const VERTEX_CONFIG = 'VERTEX_CONFIG'\n","import { Injector, ModuleWithProviders, NgModule } from '@angular/core'\nimport { FirebaseApp, FirebaseOptions } from '@angular/fire/app'\nimport {\n Auth,\n browserLocalPersistence,\n browserSessionPersistence,\n getAuth,\n indexedDBLocalPersistence,\n initializeAuth,\n provideAuth,\n} from '@angular/fire/auth'\nimport {\n Authentication,\n AuthenticationFirebaseAuthService,\n AuthenticationService,\n RecoveryPassword,\n Register,\n RegisterFirebaseAuthService,\n RegisterService,\n SignOut,\n UserRepository,\n} from '@infrab4a/connect'\n\nimport { FIREBASE_APP_NAME, FIREBASE_OPTIONS } from './consts'\nimport { FirebaseAppConfig } from './types'\n\n@NgModule({\n imports: [\n provideAuth((injector: Injector) => {\n const app = injector.get(FirebaseApp)\n\n try {\n return initializeAuth(app, {\n persistence: [indexedDBLocalPersistence, browserLocalPersistence, browserSessionPersistence],\n })\n } catch (error) {\n if (error instanceof Error) console.error('Error initializing auth', error.message)\n\n return getAuth(app)\n }\n }),\n ],\n providers: [\n {\n provide: 'Authentication',\n useFactory: (authenticationService: AuthenticationService, userRepository: UserRepository): Authentication => {\n return new Authentication(authenticationService, userRepository)\n },\n deps: ['AuthenticationService', 'UserRepository'],\n },\n {\n provide: 'AuthenticationService',\n useFactory: (angularFireAuth: Auth): AuthenticationService => {\n return new AuthenticationFirebaseAuthService(angularFireAuth)\n },\n deps: [Auth],\n },\n {\n provide: 'Register',\n useFactory: (registerService: RegisterService, userRepository: UserRepository): Register => {\n return new Register(registerService, userRepository)\n },\n deps: ['RegisterService', 'UserRepository'],\n },\n {\n provide: 'RegisterService',\n useFactory: (angularFireAuth: Auth): RegisterService => {\n return new RegisterFirebaseAuthService(angularFireAuth)\n },\n deps: [Auth],\n },\n {\n provide: 'SignOut',\n useFactory: (authenticationService: AuthenticationService): SignOut => {\n return new SignOut(authenticationService)\n },\n deps: ['AuthenticationService'],\n },\n {\n provide: 'RecoveryPassword',\n useFactory: (authenticationService: AuthenticationService): RecoveryPassword => {\n return new RecoveryPassword(authenticationService)\n },\n deps: ['AuthenticationService'],\n },\n ],\n})\nexport class AngularFirebaseAuthModule {\n static initializeApp(\n options: FirebaseOptions,\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularFirebaseAuthModule> {\n return {\n ngModule: AngularFirebaseAuthModule,\n providers: [\n { provide: FIREBASE_OPTIONS, useValue: options },\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\n ],\n }\n }\n}\n","export class MobileOperationSystemCheckerHelper {\n static isAppleDevice() {\n return (\n ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(\n navigator?.platform,\n ) ||\n (navigator?.userAgent?.includes?.('Mac') && 'ontouchend' in (document || {}))\n )\n }\n}\n","import { isPlatformBrowser, isPlatformServer } from '@angular/common'\nimport { Injector, ModuleWithProviders, NgModule, PLATFORM_ID } from '@angular/core'\nimport { FirebaseApp, FirebaseOptions } from '@angular/fire/app'\nimport { Firestore, initializeFirestore, memoryLocalCache, provideFirestore } from '@angular/fire/firestore'\nimport {\n AxiosElasticSearchConfig,\n BeautyProfileRepository,\n Buy2WinFirestoreRepository,\n Buy2WinRepository,\n CampaignDashboardFirestoreRepository,\n CampaignDashboardRepository,\n CampaignHashtagFirestoreRepository,\n CampaignHashtagRepository,\n CategoryFirestoreRepository,\n CategoryRepository,\n CheckoutFirestoreRepository,\n CheckoutRepository,\n CheckoutSubscriptionFirestoreRepository,\n CheckoutSubscriptionRepository,\n ConnectFirestoreService,\n CouponFirestoreRepository,\n CouponRepository,\n EditionRepository,\n FirestoreConstructorParams,\n FirestoreIntertceptorRequestParams,\n GroupFirestoreRepository,\n GroupRepository,\n HomeFirestoreRepository,\n HomeRepository,\n LeadFirestoreRepository,\n LeadRepository,\n LegacyOrderFirestoreRepository,\n LegacyOrderRepository,\n LogFirestoreRepository,\n LogRepository,\n OrderBlockedFirestoreRepository,\n OrderBlockedRepository,\n OrderFirestoreRepository,\n OrderRepository,\n PaymentFirestoreRepository,\n PaymentRepository,\n ProductFirestoreRepository,\n ProductRepository,\n ProductVariantFirestoreRepository,\n SequenceFirestoreRepository,\n ShopMenuFirestoreRepository,\n ShopMenuRepository,\n ShopSettingsFirestoreRepository,\n ShopSettingsRepository,\n SubscriptionEditionFirestoreRepository,\n SubscriptionFirestoreRepository,\n SubscriptionMaterializationFirestoreRepository,\n SubscriptionMaterializationRepository,\n SubscriptionPaymentFirestoreRepository,\n SubscriptionPaymentRepository,\n SubscriptionPlanFirestoreRepository,\n SubscriptionPlanRepository,\n SubscriptionProductFirestoreRepository,\n SubscriptionProductRepository,\n SubscriptionRepository,\n SubscriptionSummaryFirestoreRepository,\n SubscriptionSummaryRepository,\n UserAddressFirestoreRepository,\n UserAddressRepository,\n UserBeautyProfileFirestoreRepository,\n UserFirestoreRepository,\n UserPaymentMethodFirestoreRepository,\n UserPaymentMethodRepository,\n UserRepository,\n VariantRepository,\n} from '@infrab4a/connect'\n\nimport { AngularElasticSeachModule } from './angular-elastic-search.module'\nimport { ES_CONFIG, FIREBASE_APP_NAME, FIREBASE_OPTIONS } from './consts'\nimport { MobileOperationSystemCheckerHelper } from './helpers'\nimport { FirebaseAppConfig } from './types'\n\nexport type FirestoreOptions = Pick<FirestoreConstructorParams<any>, 'firestore' | 'interceptors'>\n\n@NgModule({\n imports: [\n AngularElasticSeachModule,\n provideFirestore((injector: Injector) => {\n const platformId = injector.get(PLATFORM_ID)\n\n if (isPlatformServer(platformId) || !MobileOperationSystemCheckerHelper.isAppleDevice())\n return initializeFirestore(injector.get(FirebaseApp), {\n ignoreUndefinedProperties: true,\n })\n\n const firestore = initializeFirestore(injector.get(FirebaseApp), {\n experimentalForceLongPolling: true,\n ignoreUndefinedProperties: true,\n localCache: memoryLocalCache(),\n })\n\n return firestore\n }),\n ],\n providers: [\n {\n provide: 'FirestoreOptions',\n useFactory: (firestore: Firestore, platformId: string): FirestoreOptions => ({\n firestore: new ConnectFirestoreService(firestore),\n interceptors: {\n request: (request: FirestoreIntertceptorRequestParams<any> & { interval: ReturnType<typeof setTimeout> }) => {\n if (isPlatformBrowser(platformId)) return request\n\n const interval = setInterval(() => {}, 100)\n\n request.interval = interval\n\n return request\n },\n response: (\n response: any,\n request: FirestoreIntertceptorRequestParams<any> & { interval: ReturnType<typeof setTimeout> },\n ) => {\n if (isPlatformBrowser(platformId)) return response\n\n clearInterval(request.interval)\n\n return response\n },\n },\n }),\n deps: [Firestore, PLATFORM_ID],\n },\n {\n provide: 'BeautyProfileRepository',\n useFactory: (config: FirestoreOptions, userRepository: UserFirestoreRepository): BeautyProfileRepository => {\n return new UserBeautyProfileFirestoreRepository(config, userRepository)\n },\n deps: ['FirestoreOptions', 'UserRepository'],\n },\n {\n provide: 'Buy2WinRepository',\n useFactory: (options: FirestoreOptions): Buy2WinRepository => {\n return new Buy2WinFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: CategoryFirestoreRepository,\n useFactory: (options: FirestoreOptions): CategoryRepository => {\n return new CategoryFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CheckoutRepository',\n useFactory: (options: FirestoreOptions): CheckoutRepository => {\n return new CheckoutFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CheckoutSubscriptionRepository',\n useFactory: (options: FirestoreOptions): CheckoutSubscriptionRepository => {\n return new CheckoutSubscriptionFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CouponRepository',\n useFactory: (options: FirestoreOptions): CouponRepository => {\n return new CouponFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CampaignHashtagRepository',\n useFactory: (options: FirestoreOptions): CampaignHashtagRepository => {\n return new CampaignHashtagFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CampaignDashboardRepository',\n useFactory: (options: FirestoreOptions): CampaignDashboardRepository => {\n return new CampaignDashboardFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'EditionRepository',\n useFactory: (\n options: FirestoreOptions,\n subscriptionRepository: SubscriptionFirestoreRepository,\n ): EditionRepository => {\n return new SubscriptionEditionFirestoreRepository(options, subscriptionRepository)\n },\n deps: ['FirestoreOptions', 'SubscriptionRepository'],\n },\n {\n provide: 'GroupRepository',\n useFactory: (options: FirestoreOptions): GroupRepository => {\n return new GroupFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'HomeRepository',\n useFactory: (options: FirestoreOptions): HomeRepository => {\n return new HomeFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'LeadRepository',\n useFactory: (options: FirestoreOptions): LeadRepository => {\n return new LeadFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'LegacyOrderRepository',\n useFactory: (options: FirestoreOptions): LegacyOrderRepository => {\n return new LegacyOrderFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'ShopMenuRepository',\n useFactory: (options: FirestoreOptions): ShopMenuRepository => {\n return new ShopMenuFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'OrderRepository',\n useFactory: (options: FirestoreOptions): OrderRepository => {\n return new OrderFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'PaymentRepository',\n useFactory: (options: FirestoreOptions): PaymentRepository => {\n return new PaymentFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: ProductFirestoreRepository,\n useFactory: (options: FirestoreOptions): ProductRepository => {\n return new ProductFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'ShopSettingsRepository',\n useFactory: (options: FirestoreOptions): ShopSettingsRepository => {\n return new ShopSettingsFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'SubscriptionPaymentRepository',\n useFactory: (\n options: FirestoreOptions,\n subscriptionRepository: SubscriptionFirestoreRepository,\n ): SubscriptionPaymentRepository => {\n return new SubscriptionPaymentFirestoreRepository(options, subscriptionRepository)\n },\n deps: ['FirestoreOptions', 'SubscriptionRepository'],\n },\n {\n provide: 'SubscriptionPlanRepository',\n useFactory: (options: FirestoreOptions): SubscriptionPlanRepository => {\n return new SubscriptionPlanFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'SubscriptionProductRepository',\n useFactory: (options: FirestoreOptions): SubscriptionProductRepository => {\n return new SubscriptionProductFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'SubscriptionRepository',\n useFactory: (options: FirestoreOptions): SubscriptionRepository => {\n return new SubscriptionFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'UserRepository',\n useFactory: (options: FirestoreOptions): UserRepository => {\n return new UserFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'UserAddressRepository',\n useFactory: (options: FirestoreOptions, userRepository: UserFirestoreRepository): UserAddressRepository => {\n return new UserAddressFirestoreRepository(options, userRepository)\n },\n deps: ['FirestoreOptions', 'UserRepository'],\n },\n {\n provide: 'UserPaymentMethodRepository',\n useFactory: (options: FirestoreOptions, userRepository: UserFirestoreRepository): UserPaymentMethodRepository => {\n return new UserPaymentMethodFirestoreRepository(options, userRepository)\n },\n deps: ['FirestoreOptions', 'UserRepository'],\n },\n {\n provide: 'SubscriptionMaterializationRepository',\n useFactory: (options: FirestoreOptions): SubscriptionMaterializationRepository => {\n return new SubscriptionMaterializationFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'SubscriptionSummaryRepository',\n useFactory: (options: FirestoreOptions): SubscriptionSummaryRepository => {\n return new SubscriptionSummaryFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: ProductVariantFirestoreRepository,\n useFactory: (options: FirestoreOptions, productRepository: ProductFirestoreRepository): VariantRepository => {\n return new ProductVariantFirestoreRepository(options, productRepository)\n },\n deps: ['FirestoreOptions', ProductFirestoreRepository],\n },\n {\n provide: 'OrderBlockedRepository',\n useFactory: (options: FirestoreOptions): OrderBlockedRepository => {\n return new OrderBlockedFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'LogRepository',\n useFactory: (options: FirestoreOptions): LogRepository => {\n return new LogFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'SequenceRepository',\n useFactory: (options: FirestoreOptions): SequenceFirestoreRepository => {\n return new SequenceFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n ],\n})\nexport class AngularFirestoreModule {\n static initializeApp(\n options: {\n firebase: FirebaseOptions\n elasticSearch: AxiosElasticSearchConfig\n },\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularFirestoreModule> {\n return {\n ngModule: AngularFirestoreModule,\n providers: [\n { provide: FIREBASE_OPTIONS, useValue: options.firebase },\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\n { provide: ES_CONFIG, useValue: options.elasticSearch },\n ],\n }\n }\n}\n","import { isPlatformBrowser } from '@angular/common'\nimport { ModuleWithProviders, NgModule, PLATFORM_ID } from '@angular/core'\nimport {\n CacheConfig,\n CategoryCollectionChildrenHasuraGraphQLRepository,\n CategoryFilterHasuraGraphQLRepository,\n CategoryFilterRepository,\n CategoryHasuraGraphQLRepository,\n CategoryProductHasuraGraphQLRepository,\n CategoryRepository,\n FilterHasuraGraphQLRepository,\n FilterOptionHasuraGraphQLRepository,\n FilterOptionRepository,\n FilterRepository,\n GraphQLParams,\n HasuraConstructorParams,\n HasuraGraphQLAuthOptions,\n ProductErrors,\n ProductErrorsHasuraGraphQLRepository,\n ProductErrorsRepository,\n ProductHasuraGraphQLRepository,\n ProductRepository,\n ProductReviewHasuraGraphQLRepository,\n ProductReviewRepository,\n ProductStockNotificationHasuraGraphQLRepository,\n ProductStockNotificationRepository,\n VariantHasuraGraphQLRepository,\n VariantRepository,\n WishlistHasuraGraphQLRepository,\n} from '@infrab4a/connect'\nimport { HASURA_OPTIONS } from './consts'\n\nexport type HasuraGraphQLOptions = { endpoint: string; credentials?: HasuraGraphQLAuthOptions; cache?: CacheConfig }\n\n@NgModule({\n providers: [\n {\n provide: 'HasuraConfig',\n useFactory: (options: HasuraGraphQLOptions, platformId: string) => ({\n endpoint: options.endpoint,\n authOptions: options.credentials,\n cache: options.cache,\n interceptors: {\n request: (request: GraphQLParams<any> & { interval: ReturnType<typeof setTimeout> }) => {\n if (isPlatformBrowser(platformId)) return request\n\n const interval = setInterval(() => {}, 100)\n\n request.interval = interval\n\n return request\n },\n response: (response: any, request: GraphQLParams<any> & { interval: ReturnType<typeof setTimeout> }) => {\n if (isPlatformBrowser(platformId)) return response\n\n clearInterval(request.interval)\n\n return response\n },\n },\n }),\n deps: [HASURA_OPTIONS, PLATFORM_ID],\n },\n {\n provide: 'CategoryRepository',\n useExisting: CategoryHasuraGraphQLRepository,\n },\n {\n provide: CategoryHasuraGraphQLRepository,\n useFactory: (\n options: any,\n productRepository: ProductHasuraGraphQLRepository,\n categoryFilterRepository: CategoryFilterHasuraGraphQLRepository,\n ): CategoryRepository => {\n return new CategoryHasuraGraphQLRepository(options, productRepository, categoryFilterRepository)\n },\n deps: ['HasuraConfig', ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],\n },\n {\n provide: 'ProductRepository',\n useExisting: ProductHasuraGraphQLRepository,\n },\n {\n provide: ProductHasuraGraphQLRepository,\n useFactory: (hasuraConfig: any): ProductRepository => {\n return new ProductHasuraGraphQLRepository(hasuraConfig)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'ProductReviewRepository',\n useExisting: ProductReviewHasuraGraphQLRepository,\n },\n {\n provide: ProductReviewHasuraGraphQLRepository,\n useFactory: (hasuraConfig: any): ProductReviewRepository => {\n return new ProductReviewHasuraGraphQLRepository(hasuraConfig)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'VariantRepository',\n useExisting: VariantHasuraGraphQLRepository,\n },\n {\n provide: VariantHasuraGraphQLRepository,\n useFactory: (hasuraConfig: any): VariantRepository => {\n return new VariantHasuraGraphQLRepository(hasuraConfig)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'ProductStockNotificationRepository',\n useExisting: ProductStockNotificationHasuraGraphQLRepository,\n },\n {\n provide: ProductStockNotificationHasuraGraphQLRepository,\n useFactory: (hasuraConfig: any): ProductStockNotificationRepository => {\n return new ProductStockNotificationHasuraGraphQLRepository(hasuraConfig)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'CategoryFilterRepository',\n useExisting: CategoryFilterHasuraGraphQLRepository,\n },\n {\n provide: CategoryFilterHasuraGraphQLRepository,\n useFactory: (options: any): CategoryFilterRepository => {\n return new CategoryFilterHasuraGraphQLRepository(options)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'FilterOptionRepository',\n useExisting: FilterOptionHasuraGraphQLRepository,\n },\n {\n provide: FilterOptionHasuraGraphQLRepository,\n useFactory: (options: any): FilterOptionRepository => {\n return new FilterOptionHasuraGraphQLRepository(options)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'FilterRepository',\n useExisting: FilterHasuraGraphQLRepository,\n },\n {\n provide: FilterHasuraGraphQLRepository,\n useFactory: (\n options: any,\n filterOptionRepository: FilterOptionHasuraGraphQLRepository,\n categoryFilterRepository: CategoryFilterHasuraGraphQLRepository,\n ): FilterRepository => {\n return new FilterHasuraGraphQLRepository(options, filterOptionRepository, categoryFilterRepository)\n },\n deps: ['HasuraConfig', FilterOptionHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],\n },\n {\n provide: CategoryCollectionChildrenHasuraGraphQLRepository,\n useFactory: (options: any): CategoryCollectionChildrenHasuraGraphQLRepository =>\n new CategoryCollectionChildrenHasuraGraphQLRepository(options),\n deps: ['HasuraConfig'],\n },\n {\n provide: 'CategoryCollectionChildrenRepository',\n useExisting: CategoryCollectionChildrenHasuraGraphQLRepository,\n },\n {\n provide: CategoryProductHasuraGraphQLRepository,\n useFactory: (options: any): CategoryProductHasuraGraphQLRepository => {\n return new CategoryProductHasuraGraphQLRepository(options)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'CategoryProductRepository',\n useExisting: CategoryProductHasuraGraphQLRepository,\n },\n {\n provide: WishlistHasuraGraphQLRepository,\n useFactory: (\n options: any,\n categoryProductRepository: CategoryProductHasuraGraphQLRepository,\n ): WishlistHasuraGraphQLRepository => {\n return new WishlistHasuraGraphQLRepository(options, categoryProductRepository)\n },\n deps: ['HasuraConfig', CategoryProductHasuraGraphQLRepository],\n },\n {\n provide: 'WishlistRepository',\n useExisting: WishlistHasuraGraphQLRepository,\n },\n {\n provide: ProductErrorsHasuraGraphQLRepository,\n useFactory: (\n options: HasuraConstructorParams<ProductErrors>,\n productRepository: ProductHasuraGraphQLRepository,\n ): ProductErrorsRepository => {\n return new ProductErrorsHasuraGraphQLRepository(options, productRepository)\n },\n deps: ['HasuraConfig', ProductHasuraGraphQLRepository],\n },\n {\n provide: 'ProductErrorsRepository',\n useExisting: ProductErrorsHasuraGraphQLRepository,\n },\n ],\n})\nexport class AngularHasuraGraphQLModule {\n static initializeApp(options: HasuraGraphQLOptions): ModuleWithProviders<AngularHasuraGraphQLModule> {\n return {\n ngModule: AngularHasuraGraphQLModule,\n providers: [{ provide: HASURA_OPTIONS, useValue: options }],\n }\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core'\nimport { ProductsVertexSearch, VertexAxiosAdapter, VertexSearchConfig } from '@infrab4a/connect'\n\nimport { VERTEX_CONFIG } from './consts'\n\n@NgModule({\n providers: [\n {\n provide: ProductsVertexSearch,\n useFactory: (configuration: VertexSearchConfig): ProductsVertexSearch =>\n new ProductsVertexSearch(new VertexAxiosAdapter(configuration)),\n deps: [VERTEX_CONFIG],\n },\n ],\n})\nexport class AngularVertexSeachModule {\n static initializeApp(options: VertexSearchConfig): ModuleWithProviders<AngularVertexSeachModule> {\n return {\n ngModule: AngularVertexSeachModule,\n providers: [{ provide: VERTEX_CONFIG, useValue: options }],\n }\n }\n}\n","export const STORAGE_BASE_URL = 'STORAGE_BASE_URL'\n","import { Injectable } from '@angular/core'\nimport cookie from 'js-cookie'\nimport { Observable, from, of } from 'rxjs'\nimport { map } from 'rxjs/operators'\nimport { DataPersistence } from './data-persistence'\n\n@Injectable()\nexport class CookieDataPersistence implements DataPersistence {\n get(key: string): Observable<string> {\n return of(cookie.get(key))\n }\n\n remove(key: string): Observable<void> {\n return of(cookie.remove(key))\n }\n\n set(key: string, value: string): Observable<void> {\n return from(cookie.set(key, value)).pipe(map(() => {}))\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Auth, User as FirebaseUser, authState, getIdToken } from '@angular/fire/auth'\nimport { User, UserRepository } from '@infrab4a/connect'\nimport { Observable, combineLatest, from, of } from 'rxjs'\nimport { catchError, map, mergeMap } from 'rxjs/operators'\n\n@Injectable()\nexport class AuthService {\n constructor(\n private readonly angularFireAuth: Auth,\n @Inject('UserRepository') private readonly userRepository: UserRepository,\n ) {}\n\n getAuthstate(): Observable<{ user: User; isAnonymous: boolean }> {\n const observables: [Observable<FirebaseUser>, Observable<User>] = [this.getFireUser(), this.getUser()]\n\n return combineLatest(observables).pipe(\n map(([fireUser, user]) => ({\n user,\n isAnonymous: fireUser?.isAnonymous,\n })),\n )\n }\n\n getUser(): Observable<User> {\n return this.getFireUser().pipe(\n map((user) => user?.uid),\n mergeMap((id) => (id ? from(this.userRepository.get({ id })).pipe(catchError(() => of(null))) : of(null))),\n )\n }\n\n getTokenId(): Observable<string> {\n return from(getIdToken(this.angularFireAuth.currentUser))\n }\n\n getFireUser(): Observable<FirebaseUser> {\n return authState(this.angularFireAuth).pipe(catchError(() => of(null)))\n }\n}\n","import { HttpClient } from '@angular/common/http'\nimport { Inject, Injectable } from '@angular/core'\nimport { FirebaseOptions } from '@angular/fire/app'\nimport {\n Checkout,\n CheckoutPayloadRequest,\n CheckoutRepository,\n CheckoutResponse,\n CheckoutStockValidation,\n CheckoutTypes,\n Coupon,\n isNil,\n NotFoundError,\n pick,\n ShippingMethodResponse,\n ShippingProductRequest,\n Shops,\n User,\n UserAddress,\n UserRepository,\n} from '@infrab4a/connect'\nimport { from, Observable, of, throwError } from 'rxjs'\nimport { concatMap, map } from 'rxjs/operators'\n\nimport { DEFAULT_SHOP, FIREBASE_OPTIONS, PERSISTENCE_PROVIDER } from '../consts'\n\nimport { DataPersistence } from '../persistence'\nimport { RequiredCheckoutData } from './types'\n\n@Injectable()\nexport class CheckoutService {\n private checkoutUrl: string = null\n\n constructor(\n @Inject('CheckoutRepository') private readonly checkoutRepository: CheckoutRepository,\n @Inject('UserRepository') private readonly userRepository: UserRepository,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n @Inject(PERSISTENCE_PROVIDER) private readonly dataPersistence: DataPersistence,\n @Inject(FIREBASE_OPTIONS) private readonly firebaseOptions: FirebaseOptions,\n private http: HttpClient,\n ) {\n this.checkoutUrl = `https://southamerica-east1-${this.firebaseOptions.projectId}.cloudfunctions.net`\n }\n\n getCheckout(checkoutData?: RequiredCheckoutData): Observable<Checkout> {\n return this.dataPersistence\n .get('checkoutId')\n .pipe(concatMap((id) => (!isNil(id) ? this.checkoutRepository.get({ id }) : this.createCheckout(checkoutData))))\n }\n\n getUserByCheckout(checkoutId: string): Observable<User> {\n return from(this.checkoutRepository.get({ id: checkoutId })).pipe(\n concatMap((checkout) =>\n checkout?.user?.id ? of(checkout.user) : from(this.userRepository.get({ id: checkout.user.id })),\n ),\n concatMap((user) => of(user) || throwError(() => new NotFoundError('User is not found'))),\n )\n }\n\n updateCheckoutLineItems(checkout: Partial<Checkout>): Observable<Checkout> {\n return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, lineItems: checkout.lineItems })))\n }\n\n updateCheckoutUser(checkout: Partial<Checkout>): Observable<Checkout> {\n return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, user: checkout.user })))\n }\n\n clearCheckoutFromSession(): Observable<void> {\n return this.dataPersistence.remove('checkoutId')\n }\n\n resetCheckoutValues(): Observable<Checkout> {\n return this.getCheckout().pipe(\n concatMap((checkout) =>\n this.http.post(`${this.checkoutUrl}/checkoutResetValues`, {\n checkoutId: checkout.id,\n }),\n ),\n concatMap(() => this.getCheckout()),\n )\n }\n\n applyCouponDiscount(nickname: string, checkoutType: CheckoutTypes): Observable<Coupon> {\n return this.getCheckout().pipe(\n concatMap((checkout) =>\n this.http.post(`${this.checkoutUrl}/checkoutApplyDiscount`, {\n checkoutId: checkout.id,\n coupon: nickname,\n checkoutType,\n }),\n ),\n concatMap(() => this.getCheckout()),\n map((checkout) => checkout.coupon),\n )\n }\n\n removeCouponDiscount(): Observable<Checkout> {\n return this.getCheckout().pipe(\n concatMap((checkout) =>\n this.http.post(`${this.checkoutUrl}/checkoutRemoveDiscount`, {\n checkoutId: checkout.id,\n }),\n ),\n concatMap(() => this.getCheckout()),\n )\n }\n\n validateStockProducts(): Observable<CheckoutStockValidation> {\n return this.getCheckout().pipe(\n concatMap((checkout) =>\n this.http.post<{\n valid: boolean\n outOfStock: string[]\n limitedStock: string[]\n }>(`${this.checkoutUrl}/checkoutValidateProductStock`, {\n checkoutId: checkout.id,\n }),\n ),\n )\n }\n\n selectShippingAddress(address: UserAddress): Observable<Checkout> {\n return this.getCheckout().pipe(\n concatMap((checkout) => {\n return this.checkoutRepository.update(\n Checkout.toInstance({ id: checkout.id, shippingAddress: address, billingAddress: address }),\n )\n }),\n )\n }\n\n getAvailableShippingForProduct(productShipping: ShippingProductRequest): Observable<ShippingMethodResponse[]> {\n return this.http.post<ShippingMethodResponse[]>(`${this.checkoutUrl}/checkoutGetAvailableShipping`, {\n checkoutId: null,\n productShipping,\n })\n }\n\n getAvailableShippingForCheckout(): Observable<ShippingMethodResponse[]> {\n return this.getCheckout().pipe(\n concatMap((checkout) =>\n this.http.post<ShippingMethodResponse[]>(`${this.checkoutUrl}/checkoutGetAvailableShipping`, {\n checkoutId: checkout.id,\n productShipping: null,\n }),\n ),\n )\n }\n\n selectShipping(option: string): Observable<Checkout> {\n return this.getCheckout().pipe(\n concatMap((checkout) =>\n this.http.post(`${this.checkoutUrl}/checkoutSelectShipping`, {\n checkoutId: checkout.id,\n shippingOption: option,\n }),\n ),\n concatMap(() => this.getCheckout()),\n )\n }\n\n createOrder(\n checkoutPayload: CheckoutPayloadRequest,\n paymentProvider: string,\n applicationVersion: string,\n ): Observable<CheckoutResponse> {\n return this.http.post<CheckoutResponse>(`${this.checkoutUrl}/checkout`, {\n data: {\n ...checkoutPayload,\n applicationVersion,\n paymentProvider,\n },\n })\n }\n\n private async createCheckout(checkoutData?: RequiredCheckoutData): Promise<Checkout> {\n const checkout = await this.checkoutRepository.create({\n createdAt: new Date(),\n ...Checkout.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),\n shop: checkoutData?.shop || this.defaultShop,\n })\n\n await this.dataPersistence.set('checkoutId', checkout.id).toPromise()\n\n return checkout\n }\n}\n","import { HttpClient } from '@angular/common/http'\nimport { Inject, Injectable } from '@angular/core'\nimport { FirebaseOptions } from '@angular/fire/app'\nimport { Checkout, LineItem, Shops, User } from '@infrab4a/connect'\nimport { Observable, of, Subject } from 'rxjs'\nimport { concatMap, map, tap } from 'rxjs/operators'\nimport { DEFAULT_SHOP, FIREBASE_OPTIONS } from '../consts'\nimport { AuthService } from './auth.service'\nimport { CheckoutService } from './checkout.service'\nimport { RequiredCheckoutData } from './types'\n\nexport type Cart = {\n [id: string]: LineItem\n}\n\n@Injectable()\nexport class CartService {\n private cartSubject: Subject<Cart> = new Subject()\n private checkoutUrl: string = null\n\n constructor(\n private readonly authService: AuthService,\n private readonly checkoutService: CheckoutService,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n @Inject(FIREBASE_OPTIONS) private readonly firebaseOptions: FirebaseOptions,\n private http: HttpClient,\n ) {\n this.checkoutUrl = `https://southamerica-east1-${this.firebaseOptions.projectId}.cloudfunctions.net`\n }\n\n addItem(item: LineItem, quantity: number = 1): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n concatMap((checkout) =>\n this.http.post(`${this.checkoutUrl}/checkoutAddItemToCart`, {\n checkoutId: checkout.id,\n productId: item.id,\n quantity,\n }),\n ),\n concatMap(() => this.checkoutService.getCheckout()),\n map((updatedCheckout) => this.generateCartObject(updatedCheckout.lineItems)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n decreaseItem(item: LineItem): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n concatMap((checkout) =>\n this.http.post(`${this.checkoutUrl}/checkoutDecreaseProductFromCart`, {\n checkoutId: checkout.id,\n productId: item.id,\n quantity: 1,\n }),\n ),\n concatMap(() => this.checkoutService.getCheckout()),\n map((updatedCheckout) => this.generateCartObject(updatedCheckout.lineItems)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n removeItem(item: LineItem): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n concatMap((checkout) =>\n this.http.post(`${this.checkoutUrl}/checkoutRemoveProductFromCart`, {\n checkoutId: checkout.id,\n productId: item.id,\n }),\n ),\n concatMap(() => this.checkoutService.getCheckout()),\n map((updatedCheckout) => this.generateCartObject(updatedCheckout.lineItems)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n updateUserCart(user: User): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n concatMap((checkout) =>\n this.checkoutService.updateCheckoutUser(Checkout.toInstance({ ...checkout.toPlain(), user })),\n ),\n concatMap((checkout) => {\n return this.http.post(`${this.checkoutUrl}/checkoutUpdateUserCart`, {\n checkoutId: checkout.id,\n })\n }),\n concatMap(() => this.checkoutService.getCheckout()),\n map((updatedCheckout) => {\n return this.generateCartObject(updatedCheckout.lineItems)\n }),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n getCart(checkout?: RequiredCheckoutData): Observable<Cart> {\n this.buildCartFromCheckout(checkout).subscribe((cart) => this.cartSubject.next(cart))\n\n return this.cartSubject\n }\n\n clearCart(): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n map((checkout) => {\n this.checkoutService.clearCheckoutFromSession()\n return checkout\n }),\n concatMap((oldCheckout) => this.buildCartFromCheckout(oldCheckout)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n private buildCartFromCheckout(checkoutData?: RequiredCheckoutData): Observable<Cart> {\n return this.checkoutService.getCheckout(checkoutData).pipe(\n map((checkout) => checkout.lineItems),\n concatMap((lineItems) => of(this.generateCartObject(lineItems))),\n )\n }\n\n private generateCartObject = (items: LineItem[]): Cart =>\n items?.reduce(\n (cart, item) => ({\n ...cart,\n [item.id]: LineItem.toInstance({\n ...(cart[item.id] || item),\n quantity: (cart[item.id]?.quantity || 0) + (item.quantity ? item.quantity : 1),\n }),\n }),\n {} as Record<string, LineItem>,\n ) || {}\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Category, CategoryRepository, isNil, Product, RepositoryFindFielters, Where } from '@infrab4a/connect'\nimport { CategoryStructureAdapter } from './category-structure.adapter'\n\n@Injectable()\nexport class NewCategoryStructureAdapter implements CategoryStructureAdapter {\n constructor(@Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository) {}\n\n async buildProductFilterByCategory(category: Category): Promise<RepositoryFindFielters<Product>> {\n const loadedCategory = await this.getCategory(category)\n\n if (loadedCategory.isCollection) return { id: { operator: Where.IN, value: loadedCategory.products } }\n\n const categoryIds = [...(await this.getAllCategoriesIdFromCategory(category)), category.id.toString()]\n\n return {\n category: {\n id: {\n operator: Where.IN,\n value: categoryIds,\n },\n },\n }\n }\n\n private async getAllCategoriesIdFromCategory(category: Category): Promise<string[]> {\n return this.categoryRepository\n .getChildren(+category.id)\n .then((categories) => categories.map((category) => category.id.toString()))\n }\n\n private async getCategory(category: Category): Promise<Category> {\n const collectionCategory =\n category.isCollection ||\n (isNil(category.isCollection) && !category.products?.length) ||\n category.isWishlist ||\n category.brandCategory\n\n return collectionCategory ? this.categoryRepository.get({ id: category.id }) : category\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Category, CategoryRepository, Product, RepositoryFindFielters, Where } from '@infrab4a/connect'\nimport { CategoryStructureAdapter } from './category-structure.adapter'\n\n@Injectable()\nexport class OldCategoryStructureAdapter implements CategoryStructureAdapter {\n constructor(@Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository) {}\n\n async buildProductFilterByCategory(category: Category): Promise<RepositoryFindFielters<Product>> {\n const productsIds = category.products?.length\n ? category.products\n : await this.categoryRepository.get({ id: category.id }).then((categoryFound) => categoryFound.products)\n\n return { id: { operator: Where.IN, value: productsIds } }\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n Category,\n CategoryRepository,\n FindRepositoryParams,\n InvalidArgumentError,\n NonFunctionPropertyNames,\n Product,\n ProductGender,\n ProductRepository,\n ProductSearch,\n ProductSearchIndex,\n ProductStockNotificationRepository,\n RepositoryCacheOptions,\n RepositoryFindFielters,\n RepositoryFindResult,\n RepositoryOrderBy,\n RoundProductPricesHelper,\n Shops,\n Where,\n isEmpty,\n set,\n} from '@infrab4a/connect'\nimport { CATEGORY_STRUCTURE, DEFAULT_SHOP } from '../../consts'\nimport { CategoryStructureAdapter } from './adapters'\nimport { ProductSort } from './types/product-sort.type'\n\ntype FetchProductsFilters = {\n clubDiscount?: number[]\n brands?: string[]\n prices?: { min?: number; max?: number; subscriberPrice?: boolean }\n gender?: ProductGender[]\n rate?: number\n customOptions?: string[]\n tags?: string[]\n}\n\ntype FetchProductsOptions = {\n page?: number\n perPage?: number\n sort?: ProductSort\n mainGender?: ProductGender\n}\n\ntype FetchProductsMainParams<T extends Category> = {\n category?: T\n profile?: string[]\n term?: string\n}\n\ntype FetchProductsParams<T extends Category> = FetchProductsOptions &\n (\n | {\n category: FetchProductsMainParams<T>['category']\n filters?: FetchProductsFilters & { customOptions?: never }\n }\n | {\n profile: FetchProductsMainParams<T>['profile']\n filters?: FetchProductsFilters & { customOptions?: never; tags?: never }\n }\n | {\n term: FetchProductsMainParams<T>['term']\n filters?: FetchProductsFilters & { customOptions?: never }\n }\n )\n\ntype FetchProductsResponse = {\n products: { data: Product[]; total: number }\n pages: number\n prices: {\n price: { min: number; max: number }\n subscriberPrice: { min: number; max: number }\n }\n brands?: string[]\n}\n\n@Injectable()\nexport class CatalogService<T extends Category = Category> {\n private productsByTerm: Record<string, string[]> = {}\n private brandsList: Record<string, string[]> = {}\n private fields: NonFunctionPropertyNames<Product>[] = [\n 'id',\n 'name',\n 'slug',\n 'images',\n 'miniatures',\n 'price',\n 'stock',\n 'published',\n 'CEST',\n 'EAN',\n 'NCM',\n 'brand',\n 'costPrice',\n 'hasVariants',\n 'isKit',\n 'sku',\n 'rate',\n 'tags',\n 'type',\n 'shoppingCount',\n 'gender',\n 'createdAt',\n 'label',\n 'outlet',\n 'group',\n ]\n\n constructor(\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\n @Inject('ProductStockNotificationRepository')\n private readonly productStockNotificationRepository: ProductStockNotificationRepository,\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\n @Inject(CATEGORY_STRUCTURE) private readonly categoryStructureAdapter: CategoryStructureAdapter,\n @Inject(DEFAULT_SHOP) private readonly shop: Shops,\n @Inject('ProductSearch') private readonly productSearch: ProductSearchIndex,\n ) {}\n\n async fetchProducts(\n options: FetchProductsParams<T>,\n optionsCache?: { cache?: RepositoryCacheOptions },\n ): Promise<FetchProductsResponse> {\n const limits = this.buildLimitQuery(options)\n\n if (this.hasProfile(options) && options.filters?.customOptions)\n throw new InvalidArgumentError(`It couldn't filled customOptions when profile is given`)\n if (this.hasProfile(options) && options.filters?.tags)\n throw new InvalidArgumentError(`It couldn't filled tags when profile is given`)\n if (this.hasTerm(options) && options.filters?.customOptions)\n throw new InvalidArgumentError(`It couldn't filled customOptions when term is given`)\n\n return await this.findCatalog(options, limits, optionsCache).then(\n async ({ data, count: total, maximum, minimal, distinct }) => {\n await this.setBrandsList(options, distinct?.brand)\n\n return {\n products: { data: data.map((product) => RoundProductPricesHelper.roundProductPrices(product)), total },\n pages: Math.ceil(total / limits.limit),\n prices: {\n price: { min: +minimal?.price?.price?.toFixed(2), max: +maximum?.price?.price?.toFixed(2) },\n subscriberPrice: {\n min: +minimal?.price?.subscriberPrice?.toFixed(2),\n max: +maximum?.price?.subscriberPrice?.toFixed(2),\n },\n },\n brands: this.brandsList[this.buildIndexBrands(options)],\n }\n },\n )\n }\n\n async addCustomerToStockNotification(shop: Shops, productId: string, name: string, email: string): Promise<void> {\n return this.productStockNotificationRepository.addCustomerEmail(shop, productId, name, email)\n }\n\n private async findCatalog(\n options: FetchProductsParams<T>,\n limits: {\n limit?: number\n offset?: number\n },\n optionsCache?: { cache?: RepositoryCacheOptions },\n ): Promise<RepositoryFindResult<Product>> {\n if (this.hasTerm(options) && options.sort === 'most-relevant') {\n const productsIds = await this.findCatalogIdsBySearch(options.term)\n\n return this.findCatalogAndSortByMostRevelantByTerm(productsIds, options, limits)\n }\n\n if (this.hasCategory(options) && options.sort === 'most-relevant') {\n const mostRelevant = options.category.isWishlist ? [] : options.category.getMostRelevantByShop(this.shop)\n const productsIds = await this.productRepository\n .findCatalog(\n {\n fields: ['id'],\n filters: {\n ...(await this.buildMainFilter(options)),\n ...this.buildFilterQuery(options?.filters || {}),\n },\n },\n undefined,\n optionsCache,\n )\n .then((products) => products.data.map((product) => product.id))\n\n return this.findCatalogAndSortByMostRevelant(mostRelevant, productsIds, options, limits, optionsCache)\n }\n\n const repoParams: FindRepositoryParams<Product> = {\n fields: this.fields,\n filters: {\n ...(await this.buildMainFilter(options)),\n ...this.buildFilterQuery(options?.filters || {}),\n },\n ...(options?.sort ? { orderBy: this.buildSortQuery(options?.sort) } : {}),\n limits,\n options: {\n minimal: ['price'],\n maximum: ['price'],\n ...(!this.brandsList[this.buildIndexBrands(options)] && isEmpty(options.filters?.brands)\n ? { distinct: ['brand'] }\n : {}),\n },\n }\n\n if (['biggest-price', 'lowest-price', 'biggest-discount', 'best-rating'].includes(options.sort))\n return this.productRepository.findCatalog(repoParams, undefined, optionsCache)\n\n return this.productRepository.findCatalog(\n repoParams,\n options?.mainGender || this.shop === Shops.MENSMARKET ? 'male' : 'female',\n optionsCache,\n )\n }\n\n private async buildMainFilter({\n category,\n profile,\n term,\n }: FetchProductsMainParams<T>): Promise<RepositoryFindFielters<Product>> {\n if (category) return this.categoryStructureAdapter.buildProductFilterByCategory(category)\n if (profile) return { tags: { operator: Where.LIKE, value: profile } }\n if (term)\n return this.productSearch\n .search<Product>(term, 999, this.shop == Shops.GLAMSHOP ? 'female' : 'male')\n .then((data) => ({ id: { operator: Where.IN, value: data.map((_source) => _source.id) } }))\n }\n\n private async findCatalogAndSortByMostRevelant(\n mostRelevants: string[],\n productIds: string[],\n options: Omit<FetchProductsOptions, 'sort'> & {\n category?: FetchProductsMainParams<T>['category']\n filters?: FetchProductsFilters & { customOptions?: never }\n },\n limits: {\n limit?: number\n offset?: number\n },\n optionsCache?: { cache?: RepositoryCacheOptions },\n ): Promise<RepositoryFindResult<Product>> {\n const brandsList = this.brandsList[this.buildIndexBrands(options)]\n const mostRelevantProductsIds = [...new Set(mostRelevants.concat(productIds))]\n const totalResult = await this.productRepository.findCatalog(\n {\n fields: this.fields,\n filters: {\n id: { operator: Where.IN, value: mostRelevantProductsIds },\n ...this.buildFilterQuery(options?.filters || {}),\n },\n orderBy: this.buildSortQuery('best-sellers'),\n options: {\n minimal: ['price'],\n maximum: ['price'],\n ...(!brandsList && isEmpty(options.filters?.brands) ? { distinct: ['brand'] } : {}),\n },\n },\n options?.mainGender || this.shop === Shops.MENSMARKET ? 'male' : 'female',\n optionsCache,\n )\n\n const mostRelevantWithouyStock = totalResult.data.filter(\n (product) => mostRelevants.includes(product.id) && product.stock.quantity <= 0,\n )\n const firstProducts = totalResult.data\n .filter((product) => mostRelevants.includes(product.id) && product.stock.quantity > 0)\n .sort((a, b) => mostRelevants.indexOf(a.id) - mostRelevants.indexOf(b.id))\n const lastProducts = totalResult.data\n .filter((product) => !mostRelevants.includes(product.id))\n .concat(mostRelevantWithouyStock)\n const categoryMostRelevants = firstProducts.concat(lastProducts)\n const resultFinal = categoryMostRelevants.slice(limits.offset, limits.offset + limits.limit)\n\n await this.setBrandsList(options, totalResult.distinct?.brand)\n\n return {\n data: resultFinal,\n count: totalResult.count,\n maximum: totalResult.maximum,\n minimal: totalResult.minimal,\n distinct: {\n ...totalResult.distinct,\n brand: this.brandsList[this.buildIndexBrands(options)],\n },\n }\n }\n\n private async findCatalogAndSortByMostRevelantByTerm(\n productIds: string[],\n options: Omit<FetchProductsOptions, 'sort'> & {\n term?: FetchProductsMainParams<T>['term']\n filters?: FetchProductsFilters & { customOptions?: never }\n },\n limits: {\n limit?: number\n offset?: number\n },\n ): Promise<RepositoryFindResult<Product>> {\n const brandsList = this.brandsList[this.buildIndexBrands(options)]\n const totalResult = await this.productRepository.findCatalog(\n {\n fields: ['id', 'stock', 'gender'],\n filters: {\n id: { operator: Where.IN, value: productIds },\n published: { operator: Where.EQUALS, value: true },\n ...this.buildFilterQuery(options?.filters || {}),\n },\n options: {\n minimal: ['price'],\n maximum: ['price'],\n ...(!brandsList && isEmpty(options.filters?.brands) ? { distinct: ['brand'] } : {}),\n },\n },\n options?.mainGender || this.shop === Shops.MENSMARKET ? 'male' : 'female',\n )\n const defaultGender = options?.filters?.gender\n ? options?.filters?.gender.at(0)\n : this.shop === Shops.GLAMSHOP\n ? 'female'\n : 'male'\n const stockData = totalResult.data.filter((product) => product.stock.quantity > 0)\n const stockOut = totalResult.data.filter((product) => product.stock.quantity <= 0)\n const productIdsStockGender = productIds.filter((product) =>\n stockData.some(\n (result) =>\n result.id === product && (result.gender?.includes(defaultGender) || result.gender?.includes('unisex')),\n ),\n )\n const productIdsStockNotGender = productIds.filter((product) =>\n stockData.some(\n (result) =>\n result.id === product && !result.gender?.includes(defaultGender) && !result.gender?.includes('unisex'),\n ),\n )\n const productIdsStock = productIdsStockGender.concat(productIdsStockNotGender)\n const productIdsStockOut = productIds.filter((product) => stockOut.some((result) => result.id === product))\n const limitedProductId = productIdsStock\n .concat(productIdsStockOut)\n .slice(limits.offset, limits.offset + limits.limit)\n const orderedId = productIds.filter((product) => limitedProductId.includes(product))\n const productResult = await this.productRepository.findCatalog({\n filters: {\n id: { operator: Where.IN, value: orderedId },\n },\n fields: this.fields,\n })\n\n await this.setBrandsList(options, totalResult.distinct?.brand)\n\n return {\n data: limitedProductId.map((id) => productResult.data.find((product) => product.id === id)).filter(Boolean),\n count: totalResult.count,\n maximum: totalResult.maximum,\n minimal: totalResult.minimal,\n distinct: {\n ...totalResult.distinct,\n brand: this.brandsList[this.buildIndexBrands(options)],\n },\n }\n }\n\n private async findCatalogIdsBySearch(term: string, preview: boolean = false): Promise<string[]> {\n if (this.productsByTerm[term]) return this.productsByTerm[term]\n\n return (this.productsByTerm[term] = await this.productSearch\n .search<ProductSearch>(term, 999, this.shop == Shops.GLAMSHOP ? 'female' : 'male')\n .then((products) => [...new Set(products.map((product) => product.id))]))\n }\n\n private async fetchBrandsOnly(\n options: Pick<FetchProductsParams<T>, 'filters' | 'mainGender'>,\n productIds: string[] = [],\n ): Promise<string[]> {\n return this.productRepository\n .findCatalog(\n {\n fields: ['id'],\n filters: {\n ...(!isEmpty(productIds) ? { id: { operator: Where.IN, value: productIds } } : {}),\n published: { operator: Where.EQUALS, value: true },\n ...this.buildFilterQuery(options?.filters || {}),\n },\n options: {\n distinct: ['brand'],\n },\n },\n options?.mainGender || this.shop === Shops.MENSMARKET ? 'male' : 'female',\n )\n .then((result) => {\n return result.distinct.brand\n })\n }\n\n private async setBrandsList(options: Partial<FetchProductsParams<T>>, brands: string[]) {\n const filterBrands = options.filters?.brands\n\n if (isEmpty(brands)) delete options.filters?.brands\n\n this.brandsList[this.buildIndexBrands(options)] =\n this.brandsList[this.buildIndexBrands(options)] || brands || (await this.fetchBrandsOnly(options))\n\n this.brandsList[this.buildIndexBrands(options)] = this.brandsList[this.buildIndexBrands(options)].filter(Boolean)\n\n options.filters = {\n ...options.filters,\n brands: filterBrands,\n }\n }\n\n private buildFilterQuery = ({\n clubDiscount,\n brands,\n prices,\n gender,\n tags,\n rate,\n customOptions,\n }: FetchProductsFilters): RepositoryFindFielters<Product> => {\n const filters = {} as RepositoryFindFielters<Product>\n\n if (clubDiscount?.length)\n set(filters, 'price.subscriberDiscountPercentage', { operator: Where.IN, value: clubDiscount })\n if (brands?.length) filters.brand = { operator: Where.IN, value: brands }\n if (gender?.length) filters.gender = { operator: Where.IN, value: gender }\n if (prices?.min || prices?.max)\n set(filters, prices.subscriberPrice ? 'price.subscriberPrice' : 'price.price', [\n ...(prices.min ? [{ operator: Where.GTE, value: Math.floor(prices.min) }] : []),\n ...(prices.max ? [{ operator: Where.LTE, value: Math.ceil(prices.max) }] : []),\n ])\n if (rate) filters.rate = { operator: Where.GTE, value: rate }\n if (tags?.length) filters.tags = { operator: Where.LIKE, value: tags }\n if (customOptions?.length) filters.filters = { operator: Where.LIKE, value: customOptions }\n\n return filters\n }\n\n private buildSortQuery = (sort: ProductSort): RepositoryOrderBy<Product> => {\n if (!sort || sort === 'most-relevant') return {}\n\n if (sort === 'best-sellers')\n return {\n shoppingCount: 'desc',\n rate: 'desc',\n stock: 'desc',\n name: 'asc',\n }\n if (sort === 'biggest-price') return { subscriberPrice: 'desc', rate: 'desc', shoppingCount: 'desc' } as any\n if (sort === 'lowest-price') return { subscriberPrice: 'asc', rate: 'desc', shoppingCount: 'desc' } as any\n if (sort === 'best-rating') return { rate: 'desc', shoppingCount: 'desc', stock: 'desc', name: 'asc' }\n if (sort === 'news') return { createdAt: 'desc' }\n if (sort === 'biggest-discount')\n return { subscriberDiscountPercentage: 'desc', rate: 'desc', shoppingCount: 'desc' } as any\n }\n\n private buildLimitQuery = (options: { page?: number; perPage?: number }): { limit?: number; offset?: number } => {\n const limit = options?.perPage || 20\n\n return {\n limit,\n offset: ((options?.page || 1) - 1) * limit,\n }\n }\n\n private hasProfile = (\n options: Partial<FetchProductsParams<T>>,\n ): options is FetchProductsOptions & {\n profile: FetchProductsMainParams<T>['profile']\n filters?: FetchProductsFilters & { customOptions?: never; tags?: never }\n } => 'profile' in options\n\n private hasTerm = (\n options: Partial<FetchProductsParams<T>>,\n ): options is FetchProductsOptions & {\n term: FetchProductsMainParams<T>['term']\n filters?: FetchProductsFilters & { customOptions?: never }\n } => 'term' in options\n\n private hasCategory = (\n options: Partial<FetchProductsParams<T>>,\n ): options is FetchProductsOptions & {\n category: FetchProductsMainParams<T>['category']\n filters?: FetchProductsFilters & { customOptions?: never }\n } => 'category' in options\n\n private buildIndexBrands = (options: Partial<FetchProductsParams<T>>): string => {\n if (this.hasCategory(options)) return `category-${options.category.id}`\n if (this.hasTerm(options)) return `term-${options.term}`\n if (this.hasProfile(options)) return `profile-${options.profile.join(',')}`\n\n return ''\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n Category,\n CategoryFilterRepository,\n CategoryRepository,\n Filter,\n ProductGender,\n ProductRepository,\n RepositoryCacheOptions,\n Shops,\n} from '@infrab4a/connect'\nimport { CATEGORY_STRUCTURE, DEFAULT_SHOP } from '../../consts'\nimport { CategoryStructureAdapter } from './adapters'\n\ntype FetchBrandsOptions = {\n mainGender?: ProductGender\n shop?: Shops\n}\n\n@Injectable()\nexport class CategoryService {\n constructor(\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\n @Inject('CategoryFilterRepository') private readonly categoryFilterRepository: CategoryFilterRepository,\n @Inject(CATEGORY_STRUCTURE) private readonly categoryStructureAdapter: CategoryStructureAdapter,\n @Inject(DEFAULT_SHOP) private readonly shop: Shops,\n ) {}\n\n async fetchBrands(\n category: Category,\n options?: FetchBrandsOptions,\n optionsCache?: { cache?: RepositoryCacheOptions },\n ): Promise<Category[]> {\n const brands = await this.productRepository\n .findCatalog(\n {\n filters: await this.categoryStructureAdapter.buildProductFilterByCategory(category),\n fields: ['brand'],\n },\n options?.mainGender ? options?.mainGender : this.shop === Shops.MENSMARKET ? 'male' : 'female',\n optionsCache,\n )\n .then(({ data }) =>\n Object.keys(data.map((product) => product.brand).reduce((brands, brand) => ({ ...brands, [brand]: true }), {})),\n )\n\n return this.categoryRepository\n .find(\n { filters: { brandCategory: true, shop: options?.shop || this.shop }, orderBy: { name: 'asc' } },\n optionsCache,\n )\n .then(({ data }) => data.filter((category) => brands.includes(category.conditions.brand)))\n }\n\n async fetchFilterOptions(category: Category, optionsCache?: { cache?: RepositoryCacheOptions }): Promise<Filter[]> {\n return await this.categoryFilterRepository\n .find({ filters: { categoryId: +category.id } }, optionsCache)\n .then(({ data }) => data.map((categoryFilter) => categoryFilter.filter))\n }\n}\n","export enum ProductSorts {\n MOST_RELEVANT = 'most-relevant',\n BEST_SELLER = 'best-sellers',\n BIGGEST_PRICE = 'biggest-price',\n LOWEST_PRICE = 'lowest-price',\n BIGGEST_DISCOUNT = 'biggest-discount',\n BEST_RATING = 'best-rating',\n NEWS = 'news',\n}\n","import { Type } from 'class-transformer'\n\nimport { Category } from '@infrab4a/connect'\n\nexport class CategoryWithTree extends Category {\n @Type(() => CategoryWithTree)\n children?: CategoryWithTree[]\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n CategoryFilterRepository,\n CategoryRepository,\n LogRepository,\n PersonType,\n PersonTypes,\n Product,\n ProductRepository,\n ProductSearchIndex,\n ProductStockNotificationRepository,\n Shops,\n Wishlist,\n WishlistLogType,\n WishlistRepository,\n} from '@infrab4a/connect'\nimport { DEFAULT_SHOP } from '../../consts'\nimport { NewCategoryStructureAdapter } from './adapters'\nimport { CatalogService } from './catalog.service'\nimport { CategoryService } from './category.service'\n\n@Injectable()\nexport class WishlistService {\n private catalogService: CatalogService\n private categoryService: CategoryService\n\n constructor(\n @Inject('WishlistRepository') private readonly wishlistRepository: WishlistRepository,\n @Inject(DEFAULT_SHOP) private readonly shop: Shops,\n @Inject('ProductRepository') public productRepository: ProductRepository,\n @Inject('CategoryFilterRepository') categoryFilterRepository: CategoryFilterRepository,\n @Inject('CategoryRepository') categoryRepository: CategoryRepository,\n @Inject('ProductStockNotificationRepository')\n productStockNotificationRepository: ProductStockNotificationRepository,\n @Inject('ProductSearch') private readonly productSearch: ProductSearchIndex,\n @Inject('LogRepository') private readonly logRepository: LogRepository,\n ) {\n const categoryStructureAdapter = new NewCategoryStructureAdapter(wishlistRepository)\n\n this.catalogService = new CatalogService<Wishlist>(\n productRepository,\n productStockNotificationRepository,\n categoryRepository,\n categoryStructureAdapter,\n shop,\n productSearch,\n )\n this.categoryService = new CategoryService(\n productRepository,\n categoryRepository,\n categoryFilterRepository,\n categoryStructureAdapter,\n shop,\n )\n }\n\n getCatalogService() {\n return this.catalogService\n }\n\n getCategoryService() {\n return this.categoryService\n }\n\n async create({\n personId,\n title,\n description,\n published,\n userFullName,\n userPhoto,\n theme,\n bannerUrl,\n personType,\n personIsSubscriber,\n }: {\n personId: string\n title: string\n description: string\n published: boolean\n userFullName: string\n userPhoto?: string\n theme?: string\n bannerUrl?: string\n personType?: PersonType\n personIsSubscriber?: boolean\n }): Promise<Wishlist> {\n const data = {\n slug: '',\n name: title,\n description,\n metadatas: [\n {\n shop: this.shop,\n title: `${userFullName} - ${title}`,\n description: `${userFullName} - ${description}`,\n },\n ],\n shop: this.shop,\n shops: [this.shop],\n personId,\n personName: userFullName,\n personPhoto: userPhoto,\n brandCategory: false,\n published,\n theme,\n bannerUrl,\n personType: personType ?? PersonTypes.NONE,\n personIsSubscriber: personIsSubscriber ?? false,\n }\n\n const hasWishlist = await this.wishlistRepository\n .find({\n filters: {\n personId,\n },\n options: {\n enableCount: false,\n },\n orderBy: {\n id: 'asc',\n },\n })\n .then((res) => res.data)\n\n await this.createWishlistLog(WishlistLogType.CREATE, data as Wishlist)\n\n if (hasWishlist.length) return hasWishlist.at(0)\n\n const newWishlist = await this.wishlistRepository.create(data)\n await this.wishlistRepository.update({ id: newWishlist.id, slug: newWishlist.id })\n\n return Wishlist.toInstance({ ...newWishlist.toPlain(), slug: newWishlist.id })\n }\n\n async update({\n id,\n title,\n description,\n published,\n userFullName,\n userPhoto,\n theme,\n bannerUrl,\n personType,\n personIsSubscriber,\n }: {\n id: string\n title: string\n description: string\n published: boolean\n userFullName: string\n userPhoto?: string\n theme?: string\n bannerUrl?: string\n personType?: PersonType\n personIsSubscriber?: boolean\n }): Promise<Wishlist> {\n const data = {\n id,\n name: title,\n description,\n published,\n metadatas: [\n {\n shop: this.shop,\n title: `${userFullName} - ${title}`,\n description: `${userFullName} - ${description}`,\n },\n ],\n personName: userFullName,\n personPhoto: userPhoto,\n theme,\n bannerUrl,\n personType: personType ?? PersonTypes.NONE,\n personIsSubscriber: personIsSubscriber ?? false,\n }\n\n await this.createWishlistLog(WishlistLogType.UPDATE, data as Wishlist)\n\n return this.wishlistRepository.update(data)\n }\n\n async delete(wishlistId: string): Promise<void> {\n const wishlist = await this.findById(wishlistId)\n await this.createWishlistLog(WishlistLogType.DELETE, wishlist)\n\n return this.wishlistRepository.delete({ id: wishlistId })\n }\n\n getWishlistBySlug(slug: string): Promise<Wishlist> {\n const [id] = slug.split('-')\n\n if (+id) return this.wishlistRepository.get({ id })\n\n return this.wishlistRepository.getWishlistBySlug(slug)\n }\n\n getWishlistsByPerson(personId: string): Promise<Wishlist[]> {\n return this.wishlistRepository.getWishlistByPerson(personId)\n }\n\n async addProduct(wishlistId: string, productId: string): Promise<Wishlist> {\n const wishlist = await this.wishlistRepository.get({ id: wishlistId })\n const hasProduct = wishlist.products.some((p) => p == productId)\n\n const wishlistData = await this.findById(wishlistId)\n const productData = await this.findProductById(productId)\n await this.createWishlistLog(WishlistLogType.ADD_PRODUCT, wishlistData, productData)\n\n if (!hasProduct) {\n wishlist.products = [...wishlist.products, productId]\n await this.wishlistRepository.addProduct(wishlistId, productId)\n }\n\n return wishlist\n }\n\n async removeProduct(wishlistId: string, productId: string): Promise<Wishlist> {\n const wishlist = await this.wishlistRepository.get({ id: wishlistId })\n const productIndex = wishlist.products.findIndex((p) => p == productId)\n\n if (productIndex != -1) {\n wishlist.products.splice(productIndex, 1)\n const wishlistData = await this.findById(wishlistId)\n const productData = await this.findProductById(productId)\n await this.createWishlistLog(WishlistLogType.REMOVE_PRODUCT, wishlistData, productData)\n await this.wishlistRepository.removeProduct(wishlistId, productId)\n }\n\n return wishlist\n }\n\n private async findById(id: string): Promise<Wishlist> {\n return this.wishlistRepository\n .find({\n fields: ['id', 'name', 'description', 'personId', 'personIsSubscriber', 'personType', 'personName'],\n filters: {\n id,\n },\n })\n .then((res) => res.data.at(0))\n }\n\n private async findProductById(id: string): Promise<Product> {\n return this.productRepository\n .find({\n fields: ['id', 'sku', 'EAN', 'name', 'brand'],\n filters: {\n id,\n },\n })\n .then((res) => res.data.at(0))\n }\n\n private async createWishlistLog(type: WishlistLogType, wishlist: Wishlist, product?: Product) {\n switch (type) {\n case WishlistLogType.CREATE:\n case WishlistLogType.UPDATE:\n case WishlistLogType.DELETE:\n await this.logRepository.create({\n collection: 'wishlist',\n date: new Date(),\n operation: WishlistLogType.CREATE ? 'CREATE' : WishlistLogType.UPDATE ? 'UPDATE' : 'DELETE',\n documentId: wishlist.id,\n document: {\n id: wishlist.id,\n shop: this.shop,\n name: wishlist.name,\n description: wishlist.description,\n published: wishlist.published,\n type: type,\n personType: wishlist.personType,\n personId: wishlist.personId,\n personName: wishlist.personName,\n personIsSubscriber: wishlist.personIsSubscriber,\n },\n })\n break\n\n case WishlistLogType.ADD_PRODUCT:\n case WishlistLogType.REMOVE_PRODUCT:\n await this.logRepository.create({\n collection: 'wishlist',\n date: new Date(),\n operation: 'UPDATE',\n documentId: wishlist.id,\n document: {\n id: wishlist.id,\n shop: this.shop,\n name: wishlist.name,\n description: wishlist.description,\n published: wishlist.published,\n type: type,\n personType: wishlist.personType,\n personId: wishlist.personId,\n personName: wishlist.personName,\n personIsSubscriber: wishlist.personIsSubscriber,\n productId: product.id,\n productEAN: product.EAN,\n productSKU: product.sku,\n productName: product.name,\n productBrand: product.brand,\n },\n })\n break\n\n default:\n break\n }\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n Category,\n CategoryRepository,\n Checkout,\n CheckoutSubscription,\n CheckoutTypes,\n Coupon,\n CouponRepository,\n CouponTypes,\n Exclusivities,\n LineItem,\n Order,\n OrderRepository,\n OrderStatus,\n Shops,\n User,\n Where,\n} from '@infrab4a/connect'\nimport { from, Observable, of } from 'rxjs'\nimport { concatMap, map } from 'rxjs/operators'\nimport { DEFAULT_SHOP } from '../consts'\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CouponService {\n constructor(\n @Inject('CouponRepository') private readonly couponRepository: CouponRepository,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n @Inject('OrderRepository') private readonly orderRepository: OrderRepository,\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\n ) {}\n\n checkCoupon(\n nickname: string,\n checkoutType: CheckoutTypes,\n checkout: Partial<Checkout>,\n plan: string,\n ): Observable<Coupon> {\n return from(\n this.couponRepository\n .find({\n filters: {\n nickname: { operator: Where.EQUALS, value: nickname },\n active: { operator: Where.EQUALS, value: true },\n },\n })\n .then((result) => result.data[0]),\n ).pipe(\n concatMap((coupon) => this.couponValidation(coupon, checkoutType)),\n concatMap((couponValid: Coupon) => this.couponRulesValidation(couponValid, checkoutType, checkout, plan)),\n map((couponValidated: Coupon) => couponValidated as Coupon),\n )\n }\n\n private async couponValidation(coupon: Coupon, checkoutType: CheckoutTypes) {\n if (!coupon) throw 'Cupom inválido.'\n\n if (coupon?.beginAt && coupon?.beginAt.getTime() > new Date().getTime()) throw 'Cupom inválido.'\n\n if (coupon?.expiresIn && (coupon?.expiresIn as Date).getTime() < new Date().getTime()) throw 'Cupom expirado.'\n\n const isInShop = coupon.shopAvailability === Shops.ALL || coupon.shopAvailability === this.defaultShop\n\n if (!isInShop) throw 'Cupom inválido para loja.'\n\n const isCheckoutType = coupon.checkoutType === CheckoutTypes.ALL || coupon.checkoutType === checkoutType\n\n if (!isCheckoutType) throw 'Cupom inválido. Erro de checkout.'\n\n return coupon\n }\n\n private async couponRulesValidation(\n coupon: Coupon,\n checkoutType: CheckoutTypes,\n checkout: Partial<Checkout>,\n plan: string,\n ) {\n if (checkoutType == CheckoutTypes.SUBSCRIPTION) {\n if (coupon.plan && coupon.plan.toUpperCase() !== plan.toUpperCase()) throw 'Cupom inválido para sua assinatura.'\n\n return coupon\n }\n\n const validUser = this.coupomUserValidation(coupon, checkout?.user)\n\n if (!validUser) throw 'Usuário não elegível.'\n\n const couponUseLimits = this.getCouponUseLimits(coupon, checkoutType, checkout.user)\n\n if (couponUseLimits.firstOrder) {\n const ordersUser = await this.getOrdersFromUser(checkout.user.email.toLocaleLowerCase())\n if (couponUseLimits.firstOrder && ordersUser.length >= 1) throw 'Limite de uso atingido'\n }\n\n if (!couponUseLimits.unlimited || couponUseLimits.limitedPerUser) {\n const ordersCoupon = await this.getOrdersWithCoupon(coupon)\n\n if (!couponUseLimits.unlimited && couponUseLimits.total && ordersCoupon.length >= couponUseLimits.total)\n throw 'Limite de uso atingido.'\n\n if (couponUseLimits.limitedPerUser) {\n const ordersWithUser = this.countOrdersWithUser(ordersCoupon, checkout.user.email)\n\n if (ordersWithUser > 0) throw 'Limite de uso por usuário atingido.'\n }\n }\n\n const hasProductCategories = await this.hasProductCategories(coupon, checkout)\n\n if (!hasProductCategories) throw 'Seu carrinho não possui produtos elegíveis para desconto.'\n\n const hasMinSubTotal = await this.hasMinSubTotal(coupon, checkout)\n\n if (!hasMinSubTotal) {\n if (coupon.productsCategories?.length) {\n throw `Valor mínimo de ${Intl.NumberFormat('pt-BR', { style: 'currency', currency: 'BRL' }).format(\n coupon.minSubTotalValue,\n )} não atingido na(s) categoria(s) elegíveis para o desconto.`\n }\n\n throw `Valor mínimo de ${Intl.NumberFormat('pt-BR', { style: 'currency', currency: 'BRL' }).format(\n coupon.minSubTotalValue,\n )} não atingido.`\n }\n\n return coupon\n }\n\n public calcDiscountSubscription(coupon: Coupon, checkout: Partial<CheckoutSubscription>): Observable<number> {\n let discount = 0\n\n if (coupon.discount.subscription.type == CouponTypes.ABSOLUTE) discount = coupon.discount.subscription.value\n else discount = checkout.subscriptionPlan.recurrencePrice * (coupon.discount.subscription.value / 100)\n\n return of(discount)\n }\n\n private async hasMinSubTotal(coupon: Coupon, checkout: Partial<Checkout>): Promise<boolean> {\n if (!coupon.minSubTotalValue) return true\n\n const lineItensDiscount = await this.getLineItensEligebleForDiscount(coupon.productsCategories, checkout)\n const subTotal = this.calcCheckoutSubtotal(lineItensDiscount, checkout.user)\n\n if (coupon.minSubTotalValue <= subTotal) return true\n\n return false\n }\n\n private async hasProductCategories(coupon: Coupon, checkout: Partial<Checkout>): Promise<boolean> {\n if (!coupon.productsCategories || !coupon.productsCategories?.length) {\n return true\n }\n\n const couponCategories = await this.getCouponCategoriesId(coupon.productsCategories)\n const hasCategories = checkout.lineItems?.filter((item) => {\n if (item.isGift) return false\n if (!item.categories || !item.categories?.length) return true\n\n return item.categories.some((c) => couponCategories.some((cat) => cat == c))\n })\n\n return hasCategories.length ? true : false\n }\n\n private coupomUserValidation(coupon: Coupon, user: User) {\n if (!user || coupon.exclusivityType.includes(Exclusivities.ALL_USERS)) return true\n\n let userTypes: Exclusivities[] = []\n\n if (\n coupon.exclusivityType.includes(Exclusivities.COLLABORATORS) &&\n this.emailIsFromCollaborator(user.email.toLocaleLowerCase())\n )\n userTypes.push(Exclusivities.COLLABORATORS)\n\n if (\n coupon.exclusivityType.includes(Exclusivities.SPECIFIC_USER) &&\n coupon.userExclusiveEmail.includes(user.email.toLocaleLowerCase())\n )\n userTypes.push(Exclusivities.SPECIFIC_USER)\n\n if (\n coupon.exclusivityType.includes(Exclusivities.ACTIVE_SUBSCRIBER) &&\n user.isSubscriber &&\n user.subscriptionPlan != ''\n )\n userTypes.push(Exclusivities.ACTIVE_SUBSCRIBER)\n\n if (\n user.isSubscriber &&\n user.subscriptionPlan == '' &&\n coupon.exclusivityType.includes(Exclusivities.INACTIVE_SUBSCRIBER)\n )\n userTypes.push(Exclusivities.INACTIVE_SUBSCRIBER)\n\n if (coupon.exclusivityType.includes(Exclusivities.NON_SUBSCRIBER) && !user.isSubscriber)\n userTypes.push(Exclusivities.NON_SUBSCRIBER)\n\n return coupon.exclusivityType.some((r) => userTypes.includes(r))\n }\n\n private async getCouponCategoriesId(productsCategories: string[]): Promise<Array<String>> {\n const couponCategories: Array<String> = []\n\n for (let index = 0; index < productsCategories.length; index++) {\n const category: Category & { firestoreId?: string } = await this.categoryRepository.get({\n id: productsCategories[index],\n })\n\n if (category) {\n const children = await this.categoryRepository.getChildren(parseInt(productsCategories[index]))\n\n couponCategories.push(category.id, ...children.map((c) => c.id.toString()))\n }\n }\n\n return [...new Set(couponCategories)]\n }\n\n private emailIsFromCollaborator = (userEmail: string): boolean => !!userEmail?.match(/@b4a.com.br/g)\n\n private async getLineItensEligebleForDiscount(\n productsCategories: string[],\n checkout: Partial<Checkout>,\n ): Promise<LineItem[]> {\n let lineItensDiscount = []\n const couponCategories = await this.getCouponCategoriesId(productsCategories)\n\n if (productsCategories && productsCategories.length) {\n lineItensDiscount = checkout.lineItems?.filter((item) => {\n if (item.isGift) return false\n if (item.categories?.length) {\n return item.categories.some((c) => couponCategories.some((cat) => cat == c))\n }\n\n return true\n })\n } else {\n lineItensDiscount = checkout.lineItems.filter((item) => !item.isGift)\n }\n\n return lineItensDiscount\n }\n\n private calcCheckoutSubtotal(lineItens: LineItem[], user: User): number {\n return (\n lineItens\n ?.filter((item) => !item.isGift)\n .reduce(\n (acc, curr) =>\n user?.isSubscriber && curr.price.subscriberPrice\n ? acc + curr.price?.subscriberPrice * curr.quantity\n : acc + curr.pricePaid * curr.quantity,\n 0,\n ) || 0\n )\n }\n\n private async getOrdersWithCoupon(coupon: Coupon): Promise<Order[]> {\n return await this.orderRepository\n .find({\n filters: {\n coupon: { id: coupon.id },\n status: { operator: Where.NOTEQUALS, value: OrderStatus.CANCELADO },\n },\n })\n .then((result) => result.data)\n }\n\n private async getOrdersFromUser(email: string) {\n return await this.orderRepository\n .find({\n filters: {\n user: { email: { operator: Where.EQUALS, value: email } },\n status: { operator: Where.NOTEQUALS, value: OrderStatus.CANCELADO },\n },\n })\n .then((result) => result.data)\n }\n\n private countOrdersWithUser(orders: Order[], email: string): number {\n return orders.filter((o) => o.user.email == email).length\n }\n\n private getCouponUseLimits(coupon: Coupon, checkoutType: CheckoutTypes, user: User) {\n let couponUseLimits: { unlimited?: boolean; total?: number; limitedPerUser?: boolean; firstOrder?: boolean }\n if (checkoutType == CheckoutTypes.ECOMMERCE || checkoutType == CheckoutTypes.ALL) {\n if (\n coupon.exclusivityType.length === 1 &&\n (coupon.exclusivityType.at(0) === Exclusivities.SPECIFIC_USER ||\n coupon.exclusivityType.at(0) === Exclusivities.COLLABORATORS)\n )\n couponUseLimits = coupon.useLimits.non_subscriber\n else couponUseLimits = user && user.isSubscriber ? coupon.useLimits.subscriber : coupon.useLimits.non_subscriber\n } else {\n couponUseLimits = coupon.useLimits.subscription\n }\n\n return couponUseLimits\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n CheckoutSubscription,\n CheckoutSubscriptionRepository,\n CheckoutTypes,\n Coupon,\n isNil,\n pick,\n} from '@infrab4a/connect'\nimport { Observable } from 'rxjs'\nimport { concatMap } from 'rxjs/operators'\nimport { RequiredCheckoutSubscriptionData } from './types'\n\nimport { PERSISTENCE_PROVIDER } from '../consts'\nimport { DataPersistence } from '../persistence'\nimport { CouponService } from './coupon.service'\n\n@Injectable()\nexport class CheckoutSubscriptionService {\n constructor(\n @Inject('CheckoutSubscriptionRepository')\n private readonly checkoutSubscriptionRepository: CheckoutSubscriptionRepository,\n @Inject(PERSISTENCE_PROVIDER) private readonly dataPersistence: DataPersistence,\n private readonly couponService: CouponService,\n ) {}\n\n getCheckoutSubscription(checkoutData?: RequiredCheckoutSubscriptionData): Observable<CheckoutSubscription> {\n return this.dataPersistence\n .get('checkoutSubscriptionId')\n .pipe(\n concatMap((id) =>\n !isNil(id) ? this.checkoutSubscriptionRepository.get({ id }) : this.createCheckoutSubscription(checkoutData),\n ),\n )\n }\n\n clearCheckoutSubscriptionFromSession(): Observable<void> {\n return this.dataPersistence.remove('checkoutSubscriptionId')\n }\n\n checkCoupon(nickname: string, userEmail: string): Observable<Coupon> {\n return this.getCheckoutSubscription().pipe(\n concatMap((checkout) =>\n this.couponService\n .checkCoupon(nickname, CheckoutTypes.SUBSCRIPTION, checkout, checkout.subscriptionPlan.name)\n .pipe(),\n ),\n )\n }\n\n calcDiscountSubscription(coupon: Coupon) {\n return this.getCheckoutSubscription().pipe(\n concatMap((checkout) => this.couponService.calcDiscountSubscription(coupon, checkout).pipe()),\n )\n }\n\n private async createCheckoutSubscription(\n checkoutData?: RequiredCheckoutSubscriptionData,\n ): Promise<CheckoutSubscription> {\n const checkout = await this.checkoutSubscriptionRepository.create({\n createdAt: new Date(),\n ...CheckoutSubscription.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),\n })\n\n await this.dataPersistence.set('checkoutSubscriptionId', checkout.id).toPromise()\n\n return checkout\n }\n}\n","export class UtilHelper {\n static createSlug(name: string): string {\n return name\n .toLowerCase()\n .replace(/\\s+/g, '-') // Replace spaces with -\n .replace(/[ãàáäâ]/g, 'a') // Replace spaces with -\n .replace(/[ẽèéëê]/g, 'e') // Replace spaces with -\n .replace(/[ìíïî]/g, 'i') // Replace spaces with -\n .replace(/[õòóöô]/g, 'o') // Replace spaces with -\n .replace(/[ùúüû]/g, 'u') // Replace spaces with -\n .replace(/[ñ]/g, 'n') // Replace spaces with -\n .replace(/[ç]/g, 'c') // Replace spaces with -\n .replace(/[&]/g, 'and') // Replace spaces with -\n .replace(/[^\\w\\-]+/g, '') // Remove all non-word chars\n .replace(/\\-\\-+/g, '-') // Replace multiple - with single -\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n add,\n Banner,\n Category,\n CategoryRepository,\n Home,\n HomeCategoryGroup,\n HomeData,\n HomeRepository,\n pick,\n Product,\n ProductRepository,\n RequiredArgumentError,\n Shops,\n Where,\n} from '@infrab4a/connect'\nimport { forkJoin, from, Observable, of, throwError } from 'rxjs'\nimport { concatMap, map, tap } from 'rxjs/operators'\n\nimport { DEFAULT_SHOP } from '../consts'\n\ntype HomeConfigurationId = 'glamshop' | 'mens_market'\ntype BannerType = 'brand' | 'buyToWin' | 'block' | 'blog'\n\n@Injectable()\nexport class HomeShopService {\n private homeConfiguration: Home\n\n private get homeId(): HomeConfigurationId {\n if (this.defaultShop === Shops.GLAMSHOP) return 'glamshop'\n if (this.defaultShop === Shops.MENSMARKET) return 'mens_market'\n\n return null\n }\n\n constructor(\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\n @Inject('HomeRepository') private readonly homeRepository: HomeRepository,\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n ) {}\n\n getHomeData(): Observable<Home> {\n return this.getHomeConfiguration().pipe(\n map((home) => (home?.data?.expiresAt > new Date() ? home : null)),\n concatMap((home) =>\n home\n ? of(home)\n : forkJoin([\n this.getDiscoverProducts(this.gender),\n this.getFeaturedProducts(this.gender),\n this.getVerticalProducts(this.gender),\n ]).pipe(\n map(([discoverProducts, featuredProducts, verticalProducts]) => ({\n discoverProducts,\n featuredProducts,\n verticalProducts,\n })),\n concatMap((data) => this.saveHomeData(data)),\n ),\n ),\n )\n }\n\n getBanners(type: BannerType): Observable<Banner[]> {\n return this.getHomeConfiguration().pipe(\n map((home) => {\n if (type === 'brand') return home.brandsCarousel\n if (type === 'buyToWin') return [home.buyToWinBanner]\n if (type === 'block') return home.blockBanners\n if (type === 'blog') return [home.blogBanner]\n\n return []\n }),\n )\n }\n\n getMinValueForFreeShipping(): Observable<number> {\n return this.getHomeConfiguration().pipe(map((home) => home.minValueForFreeShipping))\n }\n\n private getDiscoverProducts(gender?: string): Observable<{ category: Category; products: Product[] }[]> {\n return this.getHomeConfiguration().pipe(\n concatMap((home) =>\n from(this.categoryRepository.getCategoriesForHome(home.discoverCategories, this.defaultShop)).pipe(\n map((groups) => groups.map(this.buildCategoryGroupWithRequiredData)),\n ),\n ),\n )\n }\n\n private getFeaturedProducts(gender?: string): Observable<{ category: Category; products: Product[] }[]> {\n return this.getHomeConfiguration().pipe(\n concatMap((home) =>\n from(this.categoryRepository.getCategoriesForHome(home.featuredCategories, this.defaultShop)).pipe(\n map((groups) => groups.map(this.buildCategoryGroupWithRequiredData)),\n ),\n ),\n )\n }\n\n private getVerticalProducts(gender?: string): Observable<{ category: Category; products: Product[] }[]> {\n return this.getHomeConfiguration().pipe(\n concatMap((home) =>\n forkJoin(\n home.verticalCarousels.filter(Boolean).map((id) =>\n from(this.categoryRepository.get({ id })).pipe(\n concatMap((category) =>\n from(\n this.productRepository.find({\n filters: {\n categories: { operator: Where.IN, value: [category.id] },\n ...(gender ? { tags: { operator: Where.IN, value: [gender] } } : {}),\n },\n limits: { limit: 12 },\n }),\n ).pipe(map((products) => ({ category, products }))),\n ),\n map(({ category, products }) => ({ category, products: products.data })),\n map(this.buildCategoryGroupWithRequiredData),\n ),\n ),\n ),\n ),\n )\n }\n\n private getHomeConfiguration(): Observable<Home> {\n return of(this.homeConfiguration).pipe(\n concatMap((home) =>\n home\n ? of(home)\n : !this.homeId\n ? throwError(new RequiredArgumentError(['homeId']))\n : from(this.homeRepository.get({ id: this.homeId })).pipe(\n tap((homeLoaded) => (this.homeConfiguration = homeLoaded)),\n ),\n ),\n )\n }\n\n private saveHomeData(homeData: HomeData): Observable<Home> {\n const data = {\n createdAt: new Date(),\n expiresAt: add(new Date(), { hours: 1 }),\n data: homeData,\n }\n\n return from(\n this.homeRepository.update({\n id: this.homeId,\n data,\n }),\n ).pipe(\n tap(() => (this.homeConfiguration.data = data)),\n map(() => this.homeConfiguration),\n )\n }\n\n private buildCategoryGroupWithRequiredData = (group: HomeCategoryGroup): HomeCategoryGroup => ({\n category: Category.toInstance(pick(group?.category?.toPlain() || {}, ['id', 'name', 'slug', 'conditions'])),\n products:\n group?.products?.map((product) =>\n Product.toInstance(\n pick(product?.toPlain() || {}, [\n 'id',\n 'price',\n 'reviews',\n 'hasVariants',\n 'slug',\n 'sku',\n 'stock',\n 'costPrice',\n 'images',\n 'miniatures',\n 'name',\n 'weight',\n 'rate',\n 'type',\n 'brand',\n ]),\n ),\n ) || [],\n })\n\n private get gender() {\n return this.homeId === 'mens_market' ? 'masculino' : undefined\n }\n}\n","import { Injectable, Inject } from '@angular/core'\nimport { doc, Firestore, docSnapshots } from '@angular/fire/firestore'\nimport { Order, OrderFirestoreRepository } from '@infrab4a/connect'\nimport { Subject } from 'rxjs'\nimport { map } from 'rxjs/operators'\n\n@Injectable()\nexport class OrderService {\n orderSubject = new Subject<Order>()\n\n constructor(\n private readonly angularFirestore: Firestore,\n @Inject('OrderRepository') private readonly orderRepository: OrderFirestoreRepository,\n ) {}\n\n getOrder(id: string): Subject<Order> {\n docSnapshots(doc(this.angularFirestore, `${this.orderRepository.collectionName}/${id}`))\n .pipe(map((doc) => Order.toInstance(doc.data())))\n .subscribe((doc) => this.orderSubject.next(doc))\n\n return this.orderSubject\n }\n}\n","import { Injector, ModuleWithProviders, NgModule, Type } from '@angular/core'\nimport { FirebaseApp, FirebaseOptions, getApp, initializeApp, provideFirebaseApp } from '@angular/fire/app'\nimport { AppCheckOptions, initializeAppCheck, provideAppCheck } from '@angular/fire/app-check'\nimport { getStorage, provideStorage, Storage } from '@angular/fire/storage'\nimport {\n AxiosElasticSearchConfig,\n FileUploaderService,\n FirebaseFileUploaderService,\n isNil,\n ProductsVertexSearch,\n Shops,\n UpdateUserImage,\n UserRepository,\n VertexSearchConfig,\n} from '@infrab4a/connect'\nimport { AngularElasticSeachModule } from './angular-elastic-search.module'\nimport { AngularFirebaseAuthModule } from './angular-firebase-auth.module'\nimport { AngularFirestoreModule } from './angular-firestore.module'\nimport { AngularHasuraGraphQLModule, HasuraGraphQLOptions } from './angular-hasura-graphql.module'\nimport { AngularVertexSeachModule } from './angular-vertex-search.module'\nimport {\n APP_CHECK_PROVIDER,\n BACKEND_URL,\n CATEGORY_STRUCTURE,\n DEFAULT_SHOP,\n ES_CONFIG,\n FIREBASE_APP_NAME,\n FIREBASE_OPTIONS,\n HASURA_OPTIONS,\n PERSISTENCE_PROVIDER,\n VERTEX_CONFIG,\n} from './consts'\nimport { STORAGE_BASE_URL } from './consts/storage-base-url.const'\nimport { CookieDataPersistence, DataPersistence } from './persistence'\nimport {\n AuthService,\n CartService,\n CatalogService,\n CategoryService,\n CheckoutService,\n CheckoutSubscriptionService,\n CouponService,\n HomeShopService,\n OrderService,\n WishlistService,\n} from './services'\nimport { NewCategoryStructureAdapter, OldCategoryStructureAdapter } from './services/catalog/adapters'\nimport { FirebaseAppConfig } from './types'\n\n@NgModule({\n imports: [\n provideFirebaseApp((injector: Injector) => {\n const appName = injector.get<string>(FIREBASE_APP_NAME)\n\n try {\n const app = appName ? getApp(appName) : getApp()\n\n return app\n } catch (error) {\n console.warn('Firebase app not found, initializing new app')\n\n if (error instanceof Error) console.error(error.message)\n\n return initializeApp(injector.get(FIREBASE_OPTIONS), appName)\n }\n }),\n provideAppCheck((injector: Injector) => {\n const app = injector.get(FirebaseApp)\n\n try {\n const provider = injector.get<AppCheckOptions['provider']>(APP_CHECK_PROVIDER)\n\n if (provider)\n return initializeAppCheck(app, {\n provider,\n isTokenAutoRefreshEnabled: true,\n })\n } catch (error) {\n if (error instanceof Error) console.error(error.message)\n\n return\n }\n }),\n provideStorage((injector: Injector) => getStorage(injector.get(FirebaseApp))),\n AngularElasticSeachModule,\n AngularVertexSeachModule,\n AngularFirebaseAuthModule,\n AngularFirestoreModule,\n AngularHasuraGraphQLModule,\n ],\n providers: [\n AuthService,\n CartService,\n CatalogService,\n CategoryService,\n CheckoutService,\n CheckoutSubscriptionService,\n CouponService,\n HomeShopService,\n OrderService,\n WishlistService,\n {\n provide: UpdateUserImage,\n useFactory: (userRepository: UserRepository, fileUploader: FileUploaderService) => {\n return new UpdateUserImage(userRepository, fileUploader)\n },\n deps: ['UserRepository', 'FileUploaderService'],\n },\n {\n provide: 'FileUploaderService',\n useFactory: (storage: Storage, baseUrl: string) => {\n return new FirebaseFileUploaderService(storage, baseUrl)\n },\n deps: [Storage, STORAGE_BASE_URL],\n },\n {\n provide: 'ProductSearch',\n useExisting: ProductsVertexSearch,\n },\n ],\n})\nexport class AngularConnectModule {\n static initializeApp(\n defaultShop: Shops,\n options: {\n firebase?: FirebaseOptions\n elasticSearch?: AxiosElasticSearchConfig\n vertexConfig?: VertexSearchConfig\n hasura: HasuraGraphQLOptions\n backendUrl: string\n oldCategoryStructure?: boolean\n storageBaseUrl?: string\n persistenceProvider?: Type<DataPersistence>\n appCheckProvider?: AppCheckOptions['provider']\n },\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularConnectModule> {\n return {\n ngModule: AngularConnectModule,\n providers: [\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\n { provide: APP_CHECK_PROVIDER, useValue: options.appCheckProvider },\n {\n provide: CATEGORY_STRUCTURE,\n useClass:\n isNil(options?.oldCategoryStructure) || options?.oldCategoryStructure\n ? OldCategoryStructureAdapter\n : NewCategoryStructureAdapter,\n },\n { provide: PERSISTENCE_PROVIDER, useClass: options?.persistenceProvider || CookieDataPersistence },\n ...(isNil(defaultShop) ? [] : [{ provide: DEFAULT_SHOP, useValue: defaultShop }]),\n ...(isNil(options?.firebase) ? [] : [{ provide: FIREBASE_OPTIONS, useValue: options?.firebase }]),\n ...(isNil(options?.elasticSearch) ? [] : [{ provide: ES_CONFIG, useValue: options.elasticSearch }]),\n ...(isNil(options?.vertexConfig) ? [] : [{ provide: VERTEX_CONFIG, useValue: options.vertexConfig }]),\n ...(isNil(options?.hasura) ? [] : [{ provide: HASURA_OPTIONS, useValue: options.hasura }]),\n ...(isNil(options?.backendUrl) ? [] : [{ provide: BACKEND_URL, useValue: options.backendUrl }]),\n ...(isNil(options?.storageBaseUrl) ? [] : [{ provide: STORAGE_BASE_URL, useValue: options.storageBaseUrl }]),\n ],\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.AuthService","i2.CheckoutService","i3","i1.CouponService"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAO,MAAM,SAAS,GAAG,WAAW;;MCevB,yBAAyB,CAAA;IACpC,OAAO,aAAa,CAAC,OAAiC,EAAA;QACpD,OAAO;AACL,YAAA,QAAQ,EAAE,yBAAyB;YACnC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;SACvD,CAAA;KACF;8GANU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAzB,yBAAyB,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,EATzB,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,UAAU,EAAE,CAAC,aAAuC,KAClD,IAAI,aAAa,CAAC,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC;gBACpD,IAAI,EAAE,CAAC,SAAS,CAAC;AAClB,aAAA;AACF,SAAA,EAAA,CAAA,CAAA,EAAA;;2FAEU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAVrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,UAAU,EAAE,CAAC,aAAuC,KAClD,IAAI,aAAa,CAAC,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC;4BACpD,IAAI,EAAE,CAAC,SAAS,CAAC;AAClB,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;;ACdM,MAAM,WAAW,GAAG,aAAa;;ACAjC,MAAM,kBAAkB,GAAG,oBAAoB;;ACA/C,MAAM,YAAY,GAAG,cAAc;;ACEnC,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAAC,iBAAiB,CAAC,CAAA;AAC/D,MAAM,gBAAgB,GAAG,IAAI,cAAc,CAAC,iBAAiB,CAAC,CAAA;AAC9D,MAAM,kBAAkB,GAAG,IAAI,cAAc,CAAC,kBAAkB,CAAC;;ACJjE,MAAM,cAAc,GAAG,gBAAgB;;ACAvC,MAAM,oBAAoB,GAAG,sBAAsB;;ACAnD,MAAM,aAAa,GAAG,eAAe;;MCuF/B,yBAAyB,CAAA;AACpC,IAAA,OAAO,aAAa,CAClB,OAAwB,EACxB,YAAyC,EAAA;QAEzC,OAAO;AACL,YAAA,QAAQ,EAAE,yBAAyB;AACnC,YAAA,SAAS,EAAE;AACT,gBAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE;AAChD,gBAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE;AACvD,aAAA;SACF,CAAA;KACF;8GAZU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAzB,yBAAyB,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,EA7CzB,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,gBAAgB;AACzB,gBAAA,UAAU,EAAE,CAAC,qBAA4C,EAAE,cAA8B,KAAoB;AAC3G,oBAAA,OAAO,IAAI,cAAc,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAA;iBACjE;AACD,gBAAA,IAAI,EAAE,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;AAClD,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,uBAAuB;AAChC,gBAAA,UAAU,EAAE,CAAC,eAAqB,KAA2B;AAC3D,oBAAA,OAAO,IAAI,iCAAiC,CAAC,eAAe,CAAC,CAAA;iBAC9D;gBACD,IAAI,EAAE,CAAC,IAAI,CAAC;AACb,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,UAAU;AACnB,gBAAA,UAAU,EAAE,CAAC,eAAgC,EAAE,cAA8B,KAAc;AACzF,oBAAA,OAAO,IAAI,QAAQ,CAAC,eAAe,EAAE,cAAc,CAAC,CAAA;iBACrD;AACD,gBAAA,IAAI,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;AAC5C,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,UAAU,EAAE,CAAC,eAAqB,KAAqB;AACrD,oBAAA,OAAO,IAAI,2BAA2B,CAAC,eAAe,CAAC,CAAA;iBACxD;gBACD,IAAI,EAAE,CAAC,IAAI,CAAC;AACb,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,SAAS;AAClB,gBAAA,UAAU,EAAE,CAAC,qBAA4C,KAAa;AACpE,oBAAA,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAAA;iBAC1C;gBACD,IAAI,EAAE,CAAC,uBAAuB,CAAC;AAChC,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,UAAU,EAAE,CAAC,qBAA4C,KAAsB;AAC7E,oBAAA,OAAO,IAAI,gBAAgB,CAAC,qBAAqB,CAAC,CAAA;iBACnD;gBACD,IAAI,EAAE,CAAC,uBAAuB,CAAC;AAChC,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CAzDC,WAAW,CAAC,CAAC,QAAkB,KAAI;gBACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;gBAErC,IAAI;oBACF,OAAO,cAAc,CAAC,GAAG,EAAE;AACzB,wBAAA,WAAW,EAAE,CAAC,yBAAyB,EAAE,uBAAuB,EAAE,yBAAyB,CAAC;AAC7F,qBAAA,CAAC,CAAA;AACH,iBAAA;AAAC,gBAAA,OAAO,KAAK,EAAE;oBACd,IAAI,KAAK,YAAY,KAAK;wBAAE,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;AAEnF,oBAAA,OAAO,OAAO,CAAC,GAAG,CAAC,CAAA;AACpB,iBAAA;AACH,aAAC,CAAC,CAAA,EAAA,CAAA,CAAA,EAAA;;2FA+CO,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBA7DrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;AACP,wBAAA,WAAW,CAAC,CAAC,QAAkB,KAAI;4BACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;4BAErC,IAAI;gCACF,OAAO,cAAc,CAAC,GAAG,EAAE;AACzB,oCAAA,WAAW,EAAE,CAAC,yBAAyB,EAAE,uBAAuB,EAAE,yBAAyB,CAAC;AAC7F,iCAAA,CAAC,CAAA;AACH,6BAAA;AAAC,4BAAA,OAAO,KAAK,EAAE;gCACd,IAAI,KAAK,YAAY,KAAK;oCAAE,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;AAEnF,gCAAA,OAAO,OAAO,CAAC,GAAG,CAAC,CAAA;AACpB,6BAAA;AACH,yBAAC,CAAC;AACH,qBAAA;AACD,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,gBAAgB;AACzB,4BAAA,UAAU,EAAE,CAAC,qBAA4C,EAAE,cAA8B,KAAoB;AAC3G,gCAAA,OAAO,IAAI,cAAc,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAA;6BACjE;AACD,4BAAA,IAAI,EAAE,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;AAClD,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,uBAAuB;AAChC,4BAAA,UAAU,EAAE,CAAC,eAAqB,KAA2B;AAC3D,gCAAA,OAAO,IAAI,iCAAiC,CAAC,eAAe,CAAC,CAAA;6BAC9D;4BACD,IAAI,EAAE,CAAC,IAAI,CAAC;AACb,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,UAAU;AACnB,4BAAA,UAAU,EAAE,CAAC,eAAgC,EAAE,cAA8B,KAAc;AACzF,gCAAA,OAAO,IAAI,QAAQ,CAAC,eAAe,EAAE,cAAc,CAAC,CAAA;6BACrD;AACD,4BAAA,IAAI,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;AAC5C,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,UAAU,EAAE,CAAC,eAAqB,KAAqB;AACrD,gCAAA,OAAO,IAAI,2BAA2B,CAAC,eAAe,CAAC,CAAA;6BACxD;4BACD,IAAI,EAAE,CAAC,IAAI,CAAC;AACb,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,SAAS;AAClB,4BAAA,UAAU,EAAE,CAAC,qBAA4C,KAAa;AACpE,gCAAA,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAAA;6BAC1C;4BACD,IAAI,EAAE,CAAC,uBAAuB,CAAC;AAChC,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,UAAU,EAAE,CAAC,qBAA4C,KAAsB;AAC7E,gCAAA,OAAO,IAAI,gBAAgB,CAAC,qBAAqB,CAAC,CAAA;6BACnD;4BACD,IAAI,EAAE,CAAC,uBAAuB,CAAC;AAChC,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;;MCtFY,kCAAkC,CAAA;AAC7C,IAAA,OAAO,aAAa,GAAA;QAClB,QACE,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CACzF,SAAS,EAAE,QAAQ,CACpB;AACD,aAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAG,KAAK,CAAC,IAAI,YAAY,KAAK,QAAQ,IAAI,EAAE,CAAC,CAAC,EAC9E;KACF;AACF;;MCwVY,sBAAsB,CAAA;AACjC,IAAA,OAAO,aAAa,CAClB,OAGC,EACD,YAAyC,EAAA;QAEzC,OAAO;AACL,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,SAAS,EAAE;gBACT,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE;AACzD,gBAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE;gBACtD,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE;AACxD,aAAA;SACF,CAAA;KACF;8GAhBU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YAhR/B,yBAAyB,EAAAA,IAAA,CAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA;AAgRhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,EA9PtB,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,kBAAkB;gBAC3B,UAAU,EAAE,CAAC,SAAoB,EAAE,UAAkB,MAAwB;AAC3E,oBAAA,SAAS,EAAE,IAAI,uBAAuB,CAAC,SAAS,CAAC;AACjD,oBAAA,YAAY,EAAE;AACZ,wBAAA,OAAO,EAAE,CAAC,OAA8F,KAAI;4BAC1G,IAAI,iBAAiB,CAAC,UAAU,CAAC;AAAE,gCAAA,OAAO,OAAO,CAAA;4BAEjD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAK,GAAG,EAAE,GAAG,CAAC,CAAA;AAE3C,4BAAA,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA;AAE3B,4BAAA,OAAO,OAAO,CAAA;yBACf;AACD,wBAAA,QAAQ,EAAE,CACR,QAAa,EACb,OAA8F,KAC5F;4BACF,IAAI,iBAAiB,CAAC,UAAU,CAAC;AAAE,gCAAA,OAAO,QAAQ,CAAA;AAElD,4BAAA,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AAE/B,4BAAA,OAAO,QAAQ,CAAA;yBAChB;AACF,qBAAA;iBACF,CAAC;AACF,gBAAA,IAAI,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;AAC/B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,yBAAyB;AAClC,gBAAA,UAAU,EAAE,CAAC,MAAwB,EAAE,cAAuC,KAA6B;AACzG,oBAAA,OAAO,IAAI,oCAAoC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;iBACxE;AACD,gBAAA,IAAI,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;AAC7C,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAuB;AAC3D,oBAAA,OAAO,IAAI,0BAA0B,CAAC,OAAO,CAAC,CAAA;iBAC/C;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,2BAA2B;AACpC,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAwB;AAC5D,oBAAA,OAAO,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAA;iBAChD;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAwB;AAC5D,oBAAA,OAAO,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAA;iBAChD;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,gCAAgC;AACzC,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAoC;AACxE,oBAAA,OAAO,IAAI,uCAAuC,CAAC,OAAO,CAAC,CAAA;iBAC5D;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAsB;AAC1D,oBAAA,OAAO,IAAI,yBAAyB,CAAC,OAAO,CAAC,CAAA;iBAC9C;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,2BAA2B;AACpC,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAA+B;AACnE,oBAAA,OAAO,IAAI,kCAAkC,CAAC,OAAO,CAAC,CAAA;iBACvD;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,6BAA6B;AACtC,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAiC;AACrE,oBAAA,OAAO,IAAI,oCAAoC,CAAC,OAAO,CAAC,CAAA;iBACzD;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,UAAU,EAAE,CACV,OAAyB,EACzB,sBAAuD,KAClC;AACrB,oBAAA,OAAO,IAAI,sCAAsC,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAA;iBACnF;AACD,gBAAA,IAAI,EAAE,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;AACrD,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAqB;AACzD,oBAAA,OAAO,IAAI,wBAAwB,CAAC,OAAO,CAAC,CAAA;iBAC7C;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,gBAAgB;AACzB,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAoB;AACxD,oBAAA,OAAO,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAA;iBAC5C;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,gBAAgB;AACzB,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAoB;AACxD,oBAAA,OAAO,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAA;iBAC5C;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,uBAAuB;AAChC,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAA2B;AAC/D,oBAAA,OAAO,IAAI,8BAA8B,CAAC,OAAO,CAAC,CAAA;iBACnD;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAwB;AAC5D,oBAAA,OAAO,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAA;iBAChD;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAqB;AACzD,oBAAA,OAAO,IAAI,wBAAwB,CAAC,OAAO,CAAC,CAAA;iBAC7C;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAuB;AAC3D,oBAAA,OAAO,IAAI,0BAA0B,CAAC,OAAO,CAAC,CAAA;iBAC/C;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,0BAA0B;AACnC,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAuB;AAC3D,oBAAA,OAAO,IAAI,0BAA0B,CAAC,OAAO,CAAC,CAAA;iBAC/C;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAA4B;AAChE,oBAAA,OAAO,IAAI,+BAA+B,CAAC,OAAO,CAAC,CAAA;iBACpD;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,+BAA+B;AACxC,gBAAA,UAAU,EAAE,CACV,OAAyB,EACzB,sBAAuD,KACtB;AACjC,oBAAA,OAAO,IAAI,sCAAsC,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAA;iBACnF;AACD,gBAAA,IAAI,EAAE,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;AACrD,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,4BAA4B;AACrC,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAgC;AACpE,oBAAA,OAAO,IAAI,mCAAmC,CAAC,OAAO,CAAC,CAAA;iBACxD;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,+BAA+B;AACxC,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAmC;AACvE,oBAAA,OAAO,IAAI,sCAAsC,CAAC,OAAO,CAAC,CAAA;iBAC3D;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAA4B;AAChE,oBAAA,OAAO,IAAI,+BAA+B,CAAC,OAAO,CAAC,CAAA;iBACpD;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,gBAAgB;AACzB,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAoB;AACxD,oBAAA,OAAO,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAA;iBAC5C;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,uBAAuB;AAChC,gBAAA,UAAU,EAAE,CAAC,OAAyB,EAAE,cAAuC,KAA2B;AACxG,oBAAA,OAAO,IAAI,8BAA8B,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;iBACnE;AACD,gBAAA,IAAI,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;AAC7C,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,6BAA6B;AACtC,gBAAA,UAAU,EAAE,CAAC,OAAyB,EAAE,cAAuC,KAAiC;AAC9G,oBAAA,OAAO,IAAI,oCAAoC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;iBACzE;AACD,gBAAA,IAAI,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;AAC7C,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,uCAAuC;AAChD,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAA2C;AAC/E,oBAAA,OAAO,IAAI,8CAA8C,CAAC,OAAO,CAAC,CAAA;iBACnE;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,+BAA+B;AACxC,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAmC;AACvE,oBAAA,OAAO,IAAI,sCAAsC,CAAC,OAAO,CAAC,CAAA;iBAC3D;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,iCAAiC;AAC1C,gBAAA,UAAU,EAAE,CAAC,OAAyB,EAAE,iBAA6C,KAAuB;AAC1G,oBAAA,OAAO,IAAI,iCAAiC,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;iBACzE;AACD,gBAAA,IAAI,EAAE,CAAC,kBAAkB,EAAE,0BAA0B,CAAC;AACvD,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAA4B;AAChE,oBAAA,OAAO,IAAI,+BAA+B,CAAC,OAAO,CAAC,CAAA;iBACpD;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,eAAe;AACxB,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAmB;AACvD,oBAAA,OAAO,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAA;iBAC3C;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAiC;AACrE,oBAAA,OAAO,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAA;iBAChD;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CA9QC,yBAAyB;AACzB,YAAA,gBAAgB,CAAC,CAAC,QAAkB,KAAI;gBACtC,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;gBAE5C,IAAI,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,kCAAkC,CAAC,aAAa,EAAE;oBACrF,OAAO,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;AACpD,wBAAA,yBAAyB,EAAE,IAAI;AAChC,qBAAA,CAAC,CAAA;gBAEJ,MAAM,SAAS,GAAG,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;AAC/D,oBAAA,4BAA4B,EAAE,IAAI;AAClC,oBAAA,yBAAyB,EAAE,IAAI;oBAC/B,UAAU,EAAE,gBAAgB,EAAE;AAC/B,iBAAA,CAAC,CAAA;AAEF,gBAAA,OAAO,SAAS,CAAA;AAClB,aAAC,CAAC,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAgQO,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAlRlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,yBAAyB;AACzB,wBAAA,gBAAgB,CAAC,CAAC,QAAkB,KAAI;4BACtC,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;4BAE5C,IAAI,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,kCAAkC,CAAC,aAAa,EAAE;gCACrF,OAAO,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;AACpD,oCAAA,yBAAyB,EAAE,IAAI;AAChC,iCAAA,CAAC,CAAA;4BAEJ,MAAM,SAAS,GAAG,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;AAC/D,gCAAA,4BAA4B,EAAE,IAAI;AAClC,gCAAA,yBAAyB,EAAE,IAAI;gCAC/B,UAAU,EAAE,gBAAgB,EAAE;AAC/B,6BAAA,CAAC,CAAA;AAEF,4BAAA,OAAO,SAAS,CAAA;AAClB,yBAAC,CAAC;AACH,qBAAA;AACD,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,kBAAkB;4BAC3B,UAAU,EAAE,CAAC,SAAoB,EAAE,UAAkB,MAAwB;AAC3E,gCAAA,SAAS,EAAE,IAAI,uBAAuB,CAAC,SAAS,CAAC;AACjD,gCAAA,YAAY,EAAE;AACZ,oCAAA,OAAO,EAAE,CAAC,OAA8F,KAAI;wCAC1G,IAAI,iBAAiB,CAAC,UAAU,CAAC;AAAE,4CAAA,OAAO,OAAO,CAAA;wCAEjD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAK,GAAG,EAAE,GAAG,CAAC,CAAA;AAE3C,wCAAA,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA;AAE3B,wCAAA,OAAO,OAAO,CAAA;qCACf;AACD,oCAAA,QAAQ,EAAE,CACR,QAAa,EACb,OAA8F,KAC5F;wCACF,IAAI,iBAAiB,CAAC,UAAU,CAAC;AAAE,4CAAA,OAAO,QAAQ,CAAA;AAElD,wCAAA,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AAE/B,wCAAA,OAAO,QAAQ,CAAA;qCAChB;AACF,iCAAA;6BACF,CAAC;AACF,4BAAA,IAAI,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;AAC/B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,yBAAyB;AAClC,4BAAA,UAAU,EAAE,CAAC,MAAwB,EAAE,cAAuC,KAA6B;AACzG,gCAAA,OAAO,IAAI,oCAAoC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;6BACxE;AACD,4BAAA,IAAI,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;AAC7C,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAuB;AAC3D,gCAAA,OAAO,IAAI,0BAA0B,CAAC,OAAO,CAAC,CAAA;6BAC/C;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,2BAA2B;AACpC,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAwB;AAC5D,gCAAA,OAAO,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAA;6BAChD;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,oBAAoB;AAC7B,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAwB;AAC5D,gCAAA,OAAO,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAA;6BAChD;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,gCAAgC;AACzC,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAoC;AACxE,gCAAA,OAAO,IAAI,uCAAuC,CAAC,OAAO,CAAC,CAAA;6BAC5D;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAsB;AAC1D,gCAAA,OAAO,IAAI,yBAAyB,CAAC,OAAO,CAAC,CAAA;6BAC9C;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,2BAA2B;AACpC,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAA+B;AACnE,gCAAA,OAAO,IAAI,kCAAkC,CAAC,OAAO,CAAC,CAAA;6BACvD;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,6BAA6B;AACtC,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAiC;AACrE,gCAAA,OAAO,IAAI,oCAAoC,CAAC,OAAO,CAAC,CAAA;6BACzD;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,UAAU,EAAE,CACV,OAAyB,EACzB,sBAAuD,KAClC;AACrB,gCAAA,OAAO,IAAI,sCAAsC,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAA;6BACnF;AACD,4BAAA,IAAI,EAAE,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;AACrD,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAqB;AACzD,gCAAA,OAAO,IAAI,wBAAwB,CAAC,OAAO,CAAC,CAAA;6BAC7C;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,gBAAgB;AACzB,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAoB;AACxD,gCAAA,OAAO,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAA;6BAC5C;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,gBAAgB;AACzB,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAoB;AACxD,gCAAA,OAAO,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAA;6BAC5C;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,uBAAuB;AAChC,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAA2B;AAC/D,gCAAA,OAAO,IAAI,8BAA8B,CAAC,OAAO,CAAC,CAAA;6BACnD;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,oBAAoB;AAC7B,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAwB;AAC5D,gCAAA,OAAO,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAA;6BAChD;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAqB;AACzD,gCAAA,OAAO,IAAI,wBAAwB,CAAC,OAAO,CAAC,CAAA;6BAC7C;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAuB;AAC3D,gCAAA,OAAO,IAAI,0BAA0B,CAAC,OAAO,CAAC,CAAA;6BAC/C;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,0BAA0B;AACnC,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAuB;AAC3D,gCAAA,OAAO,IAAI,0BAA0B,CAAC,OAAO,CAAC,CAAA;6BAC/C;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,wBAAwB;AACjC,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAA4B;AAChE,gCAAA,OAAO,IAAI,+BAA+B,CAAC,OAAO,CAAC,CAAA;6BACpD;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,+BAA+B;AACxC,4BAAA,UAAU,EAAE,CACV,OAAyB,EACzB,sBAAuD,KACtB;AACjC,gCAAA,OAAO,IAAI,sCAAsC,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAA;6BACnF;AACD,4BAAA,IAAI,EAAE,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;AACrD,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,4BAA4B;AACrC,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAgC;AACpE,gCAAA,OAAO,IAAI,mCAAmC,CAAC,OAAO,CAAC,CAAA;6BACxD;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,+BAA+B;AACxC,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAmC;AACvE,gCAAA,OAAO,IAAI,sCAAsC,CAAC,OAAO,CAAC,CAAA;6BAC3D;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,wBAAwB;AACjC,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAA4B;AAChE,gCAAA,OAAO,IAAI,+BAA+B,CAAC,OAAO,CAAC,CAAA;6BACpD;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,gBAAgB;AACzB,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAoB;AACxD,gCAAA,OAAO,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAA;6BAC5C;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,uBAAuB;AAChC,4BAAA,UAAU,EAAE,CAAC,OAAyB,EAAE,cAAuC,KAA2B;AACxG,gCAAA,OAAO,IAAI,8BAA8B,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;6BACnE;AACD,4BAAA,IAAI,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;AAC7C,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,6BAA6B;AACtC,4BAAA,UAAU,EAAE,CAAC,OAAyB,EAAE,cAAuC,KAAiC;AAC9G,gCAAA,OAAO,IAAI,oCAAoC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;6BACzE;AACD,4BAAA,IAAI,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;AAC7C,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,uCAAuC;AAChD,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAA2C;AAC/E,gCAAA,OAAO,IAAI,8CAA8C,CAAC,OAAO,CAAC,CAAA;6BACnE;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,+BAA+B;AACxC,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAmC;AACvE,gCAAA,OAAO,IAAI,sCAAsC,CAAC,OAAO,CAAC,CAAA;6BAC3D;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,iCAAiC;AAC1C,4BAAA,UAAU,EAAE,CAAC,OAAyB,EAAE,iBAA6C,KAAuB;AAC1G,gCAAA,OAAO,IAAI,iCAAiC,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;6BACzE;AACD,4BAAA,IAAI,EAAE,CAAC,kBAAkB,EAAE,0BAA0B,CAAC;AACvD,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,wBAAwB;AACjC,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAA4B;AAChE,gCAAA,OAAO,IAAI,+BAA+B,CAAC,OAAO,CAAC,CAAA;6BACpD;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,eAAe;AACxB,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAmB;AACvD,gCAAA,OAAO,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAA;6BAC3C;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,oBAAoB;AAC7B,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAiC;AACrE,gCAAA,OAAO,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAA;6BAChD;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;;MC9IY,0BAA0B,CAAA;IACrC,OAAO,aAAa,CAAC,OAA6B,EAAA;QAChD,OAAO;AACL,YAAA,QAAQ,EAAE,0BAA0B;YACpC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;SAC5D,CAAA;KACF;8GANU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAA1B,0BAA0B,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,EA/K1B,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,cAAc;gBACvB,UAAU,EAAE,CAAC,OAA6B,EAAE,UAAkB,MAAM;oBAClE,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,KAAK,EAAE,OAAO,CAAC,KAAK;AACpB,oBAAA,YAAY,EAAE;AACZ,wBAAA,OAAO,EAAE,CAAC,OAAyE,KAAI;4BACrF,IAAI,iBAAiB,CAAC,UAAU,CAAC;AAAE,gCAAA,OAAO,OAAO,CAAA;4BAEjD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAK,GAAG,EAAE,GAAG,CAAC,CAAA;AAE3C,4BAAA,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA;AAE3B,4BAAA,OAAO,OAAO,CAAA;yBACf;AACD,wBAAA,QAAQ,EAAE,CAAC,QAAa,EAAE,OAAyE,KAAI;4BACrG,IAAI,iBAAiB,CAAC,UAAU,CAAC;AAAE,gCAAA,OAAO,QAAQ,CAAA;AAElD,4BAAA,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AAE/B,4BAAA,OAAO,QAAQ,CAAA;yBAChB;AACF,qBAAA;iBACF,CAAC;AACF,gBAAA,IAAI,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC;AACpC,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,WAAW,EAAE,+BAA+B;AAC7C,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,+BAA+B;gBACxC,UAAU,EAAE,CACV,OAAY,EACZ,iBAAiD,EACjD,wBAA+D,KACzC;oBACtB,OAAO,IAAI,+BAA+B,CAAC,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAA;iBACjG;AACD,gBAAA,IAAI,EAAE,CAAC,cAAc,EAAE,8BAA8B,EAAE,qCAAqC,CAAC;AAC9F,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,WAAW,EAAE,8BAA8B;AAC5C,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,8BAA8B;AACvC,gBAAA,UAAU,EAAE,CAAC,YAAiB,KAAuB;AACnD,oBAAA,OAAO,IAAI,8BAA8B,CAAC,YAAY,CAAC,CAAA;iBACxD;gBACD,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,yBAAyB;AAClC,gBAAA,WAAW,EAAE,oCAAoC;AAClD,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,oCAAoC;AAC7C,gBAAA,UAAU,EAAE,CAAC,YAAiB,KAA6B;AACzD,oBAAA,OAAO,IAAI,oCAAoC,CAAC,YAAY,CAAC,CAAA;iBAC9D;gBACD,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,WAAW,EAAE,8BAA8B;AAC5C,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,8BAA8B;AACvC,gBAAA,UAAU,EAAE,CAAC,YAAiB,KAAuB;AACnD,oBAAA,OAAO,IAAI,8BAA8B,CAAC,YAAY,CAAC,CAAA;iBACxD;gBACD,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,oCAAoC;AAC7C,gBAAA,WAAW,EAAE,+CAA+C;AAC7D,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,+CAA+C;AACxD,gBAAA,UAAU,EAAE,CAAC,YAAiB,KAAwC;AACpE,oBAAA,OAAO,IAAI,+CAA+C,CAAC,YAAY,CAAC,CAAA;iBACzE;gBACD,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,0BAA0B;AACnC,gBAAA,WAAW,EAAE,qCAAqC;AACnD,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,qCAAqC;AAC9C,gBAAA,UAAU,EAAE,CAAC,OAAY,KAA8B;AACrD,oBAAA,OAAO,IAAI,qCAAqC,CAAC,OAAO,CAAC,CAAA;iBAC1D;gBACD,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,WAAW,EAAE,mCAAmC;AACjD,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,mCAAmC;AAC5C,gBAAA,UAAU,EAAE,CAAC,OAAY,KAA4B;AACnD,oBAAA,OAAO,IAAI,mCAAmC,CAAC,OAAO,CAAC,CAAA;iBACxD;gBACD,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,WAAW,EAAE,6BAA6B;AAC3C,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,6BAA6B;gBACtC,UAAU,EAAE,CACV,OAAY,EACZ,sBAA2D,EAC3D,wBAA+D,KAC3C;oBACpB,OAAO,IAAI,6BAA6B,CAAC,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,CAAC,CAAA;iBACpG;AACD,gBAAA,IAAI,EAAE,CAAC,cAAc,EAAE,mCAAmC,EAAE,qCAAqC,CAAC;AACnG,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,iDAAiD;gBAC1D,UAAU,EAAE,CAAC,OAAY,KACvB,IAAI,iDAAiD,CAAC,OAAO,CAAC;gBAChE,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,sCAAsC;AAC/C,gBAAA,WAAW,EAAE,iDAAiD;AAC/D,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,sCAAsC;AAC/C,gBAAA,UAAU,EAAE,CAAC,OAAY,KAA4C;AACnE,oBAAA,OAAO,IAAI,sCAAsC,CAAC,OAAO,CAAC,CAAA;iBAC3D;gBACD,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,2BAA2B;AACpC,gBAAA,WAAW,EAAE,sCAAsC;AACpD,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,+BAA+B;AACxC,gBAAA,UAAU,EAAE,CACV,OAAY,EACZ,yBAAiE,KAC9B;AACnC,oBAAA,OAAO,IAAI,+BAA+B,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAA;iBAC/E;AACD,gBAAA,IAAI,EAAE,CAAC,cAAc,EAAE,sCAAsC,CAAC;AAC/D,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,WAAW,EAAE,+BAA+B;AAC7C,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,oCAAoC;AAC7C,gBAAA,UAAU,EAAE,CACV,OAA+C,EAC/C,iBAAiD,KACtB;AAC3B,oBAAA,OAAO,IAAI,oCAAoC,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;iBAC5E;AACD,gBAAA,IAAI,EAAE,CAAC,cAAc,EAAE,8BAA8B,CAAC;AACvD,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,yBAAyB;AAClC,gBAAA,WAAW,EAAE,oCAAoC;AAClD,aAAA;AACF,SAAA,EAAA,CAAA,CAAA,EAAA;;2FAEU,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAhLtC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,cAAc;4BACvB,UAAU,EAAE,CAAC,OAA6B,EAAE,UAAkB,MAAM;gCAClE,QAAQ,EAAE,OAAO,CAAC,QAAQ;gCAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;gCAChC,KAAK,EAAE,OAAO,CAAC,KAAK;AACpB,gCAAA,YAAY,EAAE;AACZ,oCAAA,OAAO,EAAE,CAAC,OAAyE,KAAI;wCACrF,IAAI,iBAAiB,CAAC,UAAU,CAAC;AAAE,4CAAA,OAAO,OAAO,CAAA;wCAEjD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAK,GAAG,EAAE,GAAG,CAAC,CAAA;AAE3C,wCAAA,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA;AAE3B,wCAAA,OAAO,OAAO,CAAA;qCACf;AACD,oCAAA,QAAQ,EAAE,CAAC,QAAa,EAAE,OAAyE,KAAI;wCACrG,IAAI,iBAAiB,CAAC,UAAU,CAAC;AAAE,4CAAA,OAAO,QAAQ,CAAA;AAElD,wCAAA,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AAE/B,wCAAA,OAAO,QAAQ,CAAA;qCAChB;AACF,iCAAA;6BACF,CAAC;AACF,4BAAA,IAAI,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC;AACpC,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,oBAAoB;AAC7B,4BAAA,WAAW,EAAE,+BAA+B;AAC7C,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,+BAA+B;4BACxC,UAAU,EAAE,CACV,OAAY,EACZ,iBAAiD,EACjD,wBAA+D,KACzC;gCACtB,OAAO,IAAI,+BAA+B,CAAC,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAA;6BACjG;AACD,4BAAA,IAAI,EAAE,CAAC,cAAc,EAAE,8BAA8B,EAAE,qCAAqC,CAAC;AAC9F,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,WAAW,EAAE,8BAA8B;AAC5C,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,8BAA8B;AACvC,4BAAA,UAAU,EAAE,CAAC,YAAiB,KAAuB;AACnD,gCAAA,OAAO,IAAI,8BAA8B,CAAC,YAAY,CAAC,CAAA;6BACxD;4BACD,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,yBAAyB;AAClC,4BAAA,WAAW,EAAE,oCAAoC;AAClD,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,oCAAoC;AAC7C,4BAAA,UAAU,EAAE,CAAC,YAAiB,KAA6B;AACzD,gCAAA,OAAO,IAAI,oCAAoC,CAAC,YAAY,CAAC,CAAA;6BAC9D;4BACD,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,WAAW,EAAE,8BAA8B;AAC5C,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,8BAA8B;AACvC,4BAAA,UAAU,EAAE,CAAC,YAAiB,KAAuB;AACnD,gCAAA,OAAO,IAAI,8BAA8B,CAAC,YAAY,CAAC,CAAA;6BACxD;4BACD,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,oCAAoC;AAC7C,4BAAA,WAAW,EAAE,+CAA+C;AAC7D,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,+CAA+C;AACxD,4BAAA,UAAU,EAAE,CAAC,YAAiB,KAAwC;AACpE,gCAAA,OAAO,IAAI,+CAA+C,CAAC,YAAY,CAAC,CAAA;6BACzE;4BACD,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,0BAA0B;AACnC,4BAAA,WAAW,EAAE,qCAAqC;AACnD,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,qCAAqC;AAC9C,4BAAA,UAAU,EAAE,CAAC,OAAY,KAA8B;AACrD,gCAAA,OAAO,IAAI,qCAAqC,CAAC,OAAO,CAAC,CAAA;6BAC1D;4BACD,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,wBAAwB;AACjC,4BAAA,WAAW,EAAE,mCAAmC;AACjD,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,mCAAmC;AAC5C,4BAAA,UAAU,EAAE,CAAC,OAAY,KAA4B;AACnD,gCAAA,OAAO,IAAI,mCAAmC,CAAC,OAAO,CAAC,CAAA;6BACxD;4BACD,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAE,6BAA6B;AAC3C,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,6BAA6B;4BACtC,UAAU,EAAE,CACV,OAAY,EACZ,sBAA2D,EAC3D,wBAA+D,KAC3C;gCACpB,OAAO,IAAI,6BAA6B,CAAC,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,CAAC,CAAA;6BACpG;AACD,4BAAA,IAAI,EAAE,CAAC,cAAc,EAAE,mCAAmC,EAAE,qCAAqC,CAAC;AACnG,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,iDAAiD;4BAC1D,UAAU,EAAE,CAAC,OAAY,KACvB,IAAI,iDAAiD,CAAC,OAAO,CAAC;4BAChE,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,sCAAsC;AAC/C,4BAAA,WAAW,EAAE,iDAAiD;AAC/D,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,sCAAsC;AAC/C,4BAAA,UAAU,EAAE,CAAC,OAAY,KAA4C;AACnE,gCAAA,OAAO,IAAI,sCAAsC,CAAC,OAAO,CAAC,CAAA;6BAC3D;4BACD,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,2BAA2B;AACpC,4BAAA,WAAW,EAAE,sCAAsC;AACpD,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,+BAA+B;AACxC,4BAAA,UAAU,EAAE,CACV,OAAY,EACZ,yBAAiE,KAC9B;AACnC,gCAAA,OAAO,IAAI,+BAA+B,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAA;6BAC/E;AACD,4BAAA,IAAI,EAAE,CAAC,cAAc,EAAE,sCAAsC,CAAC;AAC/D,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,oBAAoB;AAC7B,4BAAA,WAAW,EAAE,+BAA+B;AAC7C,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,oCAAoC;AAC7C,4BAAA,UAAU,EAAE,CACV,OAA+C,EAC/C,iBAAiD,KACtB;AAC3B,gCAAA,OAAO,IAAI,oCAAoC,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;6BAC5E;AACD,4BAAA,IAAI,EAAE,CAAC,cAAc,EAAE,8BAA8B,CAAC;AACvD,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,yBAAyB;AAClC,4BAAA,WAAW,EAAE,oCAAoC;AAClD,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;;MClMY,wBAAwB,CAAA;IACnC,OAAO,aAAa,CAAC,OAA2B,EAAA;QAC9C,OAAO;AACL,YAAA,QAAQ,EAAE,wBAAwB;YAClC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;SAC3D,CAAA;KACF;8GANU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAxB,wBAAwB,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,EATxB,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,UAAU,EAAE,CAAC,aAAiC,KAC5C,IAAI,oBAAoB,CAAC,IAAI,kBAAkB,CAAC,aAAa,CAAC,CAAC;gBACjE,IAAI,EAAE,CAAC,aAAa,CAAC;AACtB,aAAA;AACF,SAAA,EAAA,CAAA,CAAA,EAAA;;2FAEU,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAVpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,oBAAoB;AAC7B,4BAAA,UAAU,EAAE,CAAC,aAAiC,KAC5C,IAAI,oBAAoB,CAAC,IAAI,kBAAkB,CAAC,aAAa,CAAC,CAAC;4BACjE,IAAI,EAAE,CAAC,aAAa,CAAC;AACtB,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;;ACdM,MAAM,gBAAgB,GAAG,kBAAkB;;MCOrC,qBAAqB,CAAA;AAChC,IAAA,GAAG,CAAC,GAAW,EAAA;QACb,OAAO,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;KAC3B;AAED,IAAA,MAAM,CAAC,GAAW,EAAA;QAChB,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;KAC9B;IAED,GAAG,CAAC,GAAW,EAAE,KAAa,EAAA;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAO,GAAC,CAAC,CAAC,CAAA;KACxD;8GAXU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAArB,qBAAqB,EAAA,CAAA,CAAA,EAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;;;MCCE,WAAW,CAAA;IACtB,WACmB,CAAA,eAAqB,EACK,cAA8B,EAAA;QADxD,IAAe,CAAA,eAAA,GAAf,eAAe,CAAM;QACK,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;KACvE;IAEJ,YAAY,GAAA;AACV,QAAA,MAAM,WAAW,GAAiD,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;AAEtG,QAAA,OAAO,aAAa,CAAC,WAAW,CAAC,CAAC,IAAI,CACpC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM;YACzB,IAAI;YACJ,WAAW,EAAE,QAAQ,EAAE,WAAW;SACnC,CAAC,CAAC,CACJ,CAAA;KACF;IAED,OAAO,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5B,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,GAAG,CAAC,EACxB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAC3G,CAAA;KACF;IAED,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAA;KAC1D;IAED,WAAW,GAAA;QACT,OAAO,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KACxE;AA9BU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,sCAGZ,gBAAgB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAHf,WAAW,EAAA,CAAA,CAAA,EAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,UAAU;;0BAIN,MAAM;2BAAC,gBAAgB,CAAA;;;MCoBf,eAAe,CAAA;IAG1B,WACiD,CAAA,kBAAsC,EAC1C,cAA8B,EAClC,WAAkB,EACV,eAAgC,EACpC,eAAgC,EACnE,IAAgB,EAAA;QALuB,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QAC1C,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAClC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAO;QACV,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QACpC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QACnE,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QARlB,IAAW,CAAA,WAAA,GAAW,IAAI,CAAA;QAUhC,IAAI,CAAC,WAAW,GAAG,CAA8B,2BAAA,EAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAA,mBAAA,CAAqB,CAAA;KACrG;AAED,IAAA,WAAW,CAAC,YAAmC,EAAA;QAC7C,OAAO,IAAI,CAAC,eAAe;aACxB,GAAG,CAAC,YAAY,CAAC;AACjB,aAAA,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;KACnH;AAED,IAAA,iBAAiB,CAAC,UAAkB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAC/D,SAAS,CAAC,CAAC,QAAQ,KACjB,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CACjG,EACD,SAAS,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,IAAI,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAC1F,CAAA;KACF;AAED,IAAA,uBAAuB,CAAC,QAA2B,EAAA;AACjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;KACrH;AAED,IAAA,kBAAkB,CAAC,QAA2B,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;KAC3G;IAED,wBAAwB,GAAA;QACtB,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;KACjD;IAED,mBAAmB,GAAA;QACjB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5B,SAAS,CAAC,CAAC,QAAQ,KACjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,oBAAA,CAAsB,EAAE;YACxD,UAAU,EAAE,QAAQ,CAAC,EAAE;AACxB,SAAA,CAAC,CACH,EACD,SAAS,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CACpC,CAAA;KACF;IAED,mBAAmB,CAAC,QAAgB,EAAE,YAA2B,EAAA;QAC/D,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5B,SAAS,CAAC,CAAC,QAAQ,KACjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,sBAAA,CAAwB,EAAE;YAC1D,UAAU,EAAE,QAAQ,CAAC,EAAE;AACvB,YAAA,MAAM,EAAE,QAAQ;YAChB,YAAY;SACb,CAAC,CACH,EACD,SAAS,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,EACnC,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,MAAM,CAAC,CACnC,CAAA;KACF;IAED,oBAAoB,GAAA;QAClB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5B,SAAS,CAAC,CAAC,QAAQ,KACjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,uBAAA,CAAyB,EAAE;YAC3D,UAAU,EAAE,QAAQ,CAAC,EAAE;AACxB,SAAA,CAAC,CACH,EACD,SAAS,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CACpC,CAAA;KACF;IAED,qBAAqB,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5B,SAAS,CAAC,CAAC,QAAQ,KACjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAIX,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,6BAAA,CAA+B,EAAE;YACrD,UAAU,EAAE,QAAQ,CAAC,EAAE;SACxB,CAAC,CACH,CACF,CAAA;KACF;AAED,IAAA,qBAAqB,CAAC,OAAoB,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5B,SAAS,CAAC,CAAC,QAAQ,KAAI;YACrB,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAC5F,CAAA;SACF,CAAC,CACH,CAAA;KACF;AAED,IAAA,8BAA8B,CAAC,eAAuC,EAAA;QACpE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,6BAAA,CAA+B,EAAE;AAClG,YAAA,UAAU,EAAE,IAAI;YAChB,eAAe;AAChB,SAAA,CAAC,CAAA;KACH;IAED,+BAA+B,GAAA;QAC7B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5B,SAAS,CAAC,CAAC,QAAQ,KACjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,6BAAA,CAA+B,EAAE;YAC3F,UAAU,EAAE,QAAQ,CAAC,EAAE;AACvB,YAAA,eAAe,EAAE,IAAI;SACtB,CAAC,CACH,CACF,CAAA;KACF;AAED,IAAA,cAAc,CAAC,MAAc,EAAA;QAC3B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5B,SAAS,CAAC,CAAC,QAAQ,KACjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,uBAAA,CAAyB,EAAE;YAC3D,UAAU,EAAE,QAAQ,CAAC,EAAE;AACvB,YAAA,cAAc,EAAE,MAAM;AACvB,SAAA,CAAC,CACH,EACD,SAAS,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CACpC,CAAA;KACF;AAED,IAAA,WAAW,CACT,eAAuC,EACvC,eAAuB,EACvB,kBAA0B,EAAA;QAE1B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAmB,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,SAAA,CAAW,EAAE;AACtE,YAAA,IAAI,EAAE;AACJ,gBAAA,GAAG,eAAe;gBAClB,kBAAkB;gBAClB,eAAe;AAChB,aAAA;AACF,SAAA,CAAC,CAAA;KACH;IAEO,MAAM,cAAc,CAAC,YAAmC,EAAA;QAC9D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;YACpD,SAAS,EAAE,IAAI,IAAI,EAAE;AACrB,YAAA,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;AACtE,YAAA,IAAI,EAAE,YAAY,EAAE,IAAI,IAAI,IAAI,CAAC,WAAW;AAC7C,SAAA,CAAC,CAAA;AAEF,QAAA,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAA;AAErE,QAAA,OAAO,QAAQ,CAAA;KAChB;8GA3JU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAIhB,oBAAoB,EACpB,EAAA,EAAA,KAAA,EAAA,gBAAgB,aAChB,YAAY,EAAA,EAAA,EAAA,KAAA,EACZ,oBAAoB,EAAA,EAAA,EAAA,KAAA,EACpB,gBAAgB,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHARf,eAAe,EAAA,CAAA,CAAA,EAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;;0BAKN,MAAM;2BAAC,oBAAoB,CAAA;;0BAC3B,MAAM;2BAAC,gBAAgB,CAAA;;0BACvB,MAAM;2BAAC,YAAY,CAAA;;0BACnB,MAAM;2BAAC,oBAAoB,CAAA;;0BAC3B,MAAM;2BAAC,gBAAgB,CAAA;;;MCtBf,WAAW,CAAA;IAItB,WACmB,CAAA,WAAwB,EACxB,eAAgC,EACV,WAAkB,EACd,eAAgC,EACnE,IAAgB,EAAA;QAJP,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QACV,IAAW,CAAA,WAAA,GAAX,WAAW,CAAO;QACd,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QACnE,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;AARlB,QAAA,IAAA,CAAA,WAAW,GAAkB,IAAI,OAAO,EAAE,CAAA;QAC1C,IAAW,CAAA,WAAA,GAAW,IAAI,CAAA;AAkG1B,QAAA,IAAA,CAAA,kBAAkB,GAAG,CAAC,KAAiB,KAC7C,KAAK,EAAE,MAAM,CACX,CAAC,IAAI,EAAE,IAAI,MAAM;AACf,YAAA,GAAG,IAAI;YACP,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC;gBAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI;AACzB,gBAAA,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;aAC/E,CAAC;AACH,SAAA,CAAC,EACF,EAA8B,CAC/B,IAAI,EAAE,CAAA;QAnGP,IAAI,CAAC,WAAW,GAAG,CAA8B,2BAAA,EAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAA,mBAAA,CAAqB,CAAA;KACrG;AAED,IAAA,OAAO,CAAC,IAAc,EAAE,QAAA,GAAmB,CAAC,EAAA;QAC1C,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5C,SAAS,CAAC,CAAC,QAAQ,KACjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,sBAAA,CAAwB,EAAE;YAC1D,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,SAAS,EAAE,IAAI,CAAC,EAAE;YAClB,QAAQ;SACT,CAAC,CACH,EACD,SAAS,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,EACnD,GAAG,CAAC,CAAC,eAAe,KAAK,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,EAC5E,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAC3C,CAAA;KACF;AAED,IAAA,YAAY,CAAC,IAAc,EAAA;QACzB,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5C,SAAS,CAAC,CAAC,QAAQ,KACjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,gCAAA,CAAkC,EAAE;YACpE,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,SAAS,EAAE,IAAI,CAAC,EAAE;AAClB,YAAA,QAAQ,EAAE,CAAC;SACZ,CAAC,CACH,EACD,SAAS,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,EACnD,GAAG,CAAC,CAAC,eAAe,KAAK,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,EAC5E,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAC3C,CAAA;KACF;AAED,IAAA,UAAU,CAAC,IAAc,EAAA;QACvB,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5C,SAAS,CAAC,CAAC,QAAQ,KACjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,8BAAA,CAAgC,EAAE;YAClE,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,SAAS,EAAE,IAAI,CAAC,EAAE;SACnB,CAAC,CACH,EACD,SAAS,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,EACnD,GAAG,CAAC,CAAC,eAAe,KAAK,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,EAC5E,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAC3C,CAAA;KACF;AAED,IAAA,cAAc,CAAC,IAAU,EAAA;QACvB,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5C,SAAS,CAAC,CAAC,QAAQ,KACjB,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAC9F,EACD,SAAS,CAAC,CAAC,QAAQ,KAAI;YACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,uBAAA,CAAyB,EAAE;gBAClE,UAAU,EAAE,QAAQ,CAAC,EAAE;AACxB,aAAA,CAAC,CAAA;SACH,CAAC,EACF,SAAS,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,EACnD,GAAG,CAAC,CAAC,eAAe,KAAI;YACtB,OAAO,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;AAC3D,SAAC,CAAC,EACF,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAC3C,CAAA;KACF;AAED,IAAA,OAAO,CAAC,QAA+B,EAAA;QACrC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAErF,OAAO,IAAI,CAAC,WAAW,CAAA;KACxB;IAED,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5C,GAAG,CAAC,CAAC,QAAQ,KAAI;AACf,YAAA,IAAI,CAAC,eAAe,CAAC,wBAAwB,EAAE,CAAA;AAC/C,YAAA,OAAO,QAAQ,CAAA;AACjB,SAAC,CAAC,EACF,SAAS,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,EACnE,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAC3C,CAAA;KACF;AAEO,IAAA,qBAAqB,CAAC,YAAmC,EAAA;AAC/D,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CACxD,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,SAAS,CAAC,EACrC,SAAS,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CACjE,CAAA;KACF;8GAlGU,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,EAAA,EAAA,KAAA,EAOZ,YAAY,EAAA,EAAA,EAAA,KAAA,EACZ,gBAAgB,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHARf,WAAW,EAAA,CAAA,CAAA,EAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,UAAU;;0BAQN,MAAM;2BAAC,YAAY,CAAA;;0BACnB,MAAM;2BAAC,gBAAgB,CAAA;;;MCnBf,2BAA2B,CAAA;AACtC,IAAA,WAAA,CAA2D,kBAAsC,EAAA;QAAtC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;KAAI;IAErG,MAAM,4BAA4B,CAAC,QAAkB,EAAA;QACnD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QAEvD,IAAI,cAAc,CAAC,YAAY;AAAE,YAAA,OAAO,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAA;QAEtG,MAAM,WAAW,GAAG,CAAC,IAAI,MAAM,IAAI,CAAC,8BAA8B,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;QAEtG,OAAO;AACL,YAAA,QAAQ,EAAE;AACR,gBAAA,EAAE,EAAE;oBACF,QAAQ,EAAE,KAAK,CAAC,EAAE;AAClB,oBAAA,KAAK,EAAE,WAAW;AACnB,iBAAA;AACF,aAAA;SACF,CAAA;KACF;IAEO,MAAM,8BAA8B,CAAC,QAAkB,EAAA;QAC7D,OAAO,IAAI,CAAC,kBAAkB;AAC3B,aAAA,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;aACzB,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;KAC9E;IAEO,MAAM,WAAW,CAAC,QAAkB,EAAA;AAC1C,QAAA,MAAM,kBAAkB,GACtB,QAAQ,CAAC,YAAY;AACrB,aAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;AAC5D,YAAA,QAAQ,CAAC,UAAU;YACnB,QAAQ,CAAC,aAAa,CAAA;QAExB,OAAO,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAA;KACxF;AAlCU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,kBAClB,oBAAoB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAD7B,2BAA2B,EAAA,CAAA,CAAA,EAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC,UAAU;;0BAEI,MAAM;2BAAC,oBAAoB,CAAA;;;MCD7B,2BAA2B,CAAA;AACtC,IAAA,WAAA,CAA2D,kBAAsC,EAAA;QAAtC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;KAAI;IAErG,MAAM,4BAA4B,CAAC,QAAkB,EAAA;AACnD,QAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,EAAE,MAAM;cACzC,QAAQ,CAAC,QAAQ;AACnB,cAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAA;AAE1G,QAAA,OAAO,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CAAA;KAC1D;AATU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,kBAClB,oBAAoB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAD7B,2BAA2B,EAAA,CAAA,CAAA,EAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC,UAAU;;0BAEI,MAAM;2BAAC,oBAAoB,CAAA;;;MCuE7B,cAAc,CAAA;IA+BzB,WACgD,CAAA,iBAAoC,EAEjE,kCAAsE,EACxC,kBAAsC,EACxC,wBAAkD,EACxD,IAAW,EACR,aAAiC,EAAA;QAN7B,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QAEjE,IAAkC,CAAA,kCAAA,GAAlC,kCAAkC,CAAoC;QACxC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QACxC,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;QACxD,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAO;QACR,IAAa,CAAA,aAAA,GAAb,aAAa,CAAoB;QArCrE,IAAc,CAAA,cAAA,GAA6B,EAAE,CAAA;QAC7C,IAAU,CAAA,UAAA,GAA6B,EAAE,CAAA;AACzC,QAAA,IAAA,CAAA,MAAM,GAAwC;YACpD,IAAI;YACJ,MAAM;YACN,MAAM;YACN,QAAQ;YACR,YAAY;YACZ,OAAO;YACP,OAAO;YACP,WAAW;YACX,MAAM;YACN,KAAK;YACL,KAAK;YACL,OAAO;YACP,WAAW;YACX,aAAa;YACb,OAAO;YACP,KAAK;YACL,MAAM;YACN,MAAM;YACN,MAAM;YACN,eAAe;YACf,QAAQ;YACR,WAAW;YACX,OAAO;YACP,QAAQ;YACR,OAAO;SACR,CAAA;AA+SO,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,EAC1B,YAAY,EACZ,MAAM,EACN,MAAM,EACN,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,aAAa,GACQ,KAAqC;YAC1D,MAAM,OAAO,GAAG,EAAqC,CAAA;YAErD,IAAI,YAAY,EAAE,MAAM;AACtB,gBAAA,GAAG,CAAC,OAAO,EAAE,oCAAoC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAA;YACjG,IAAI,MAAM,EAAE,MAAM;AAAE,gBAAA,OAAO,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;YACzE,IAAI,MAAM,EAAE,MAAM;AAAE,gBAAA,OAAO,CAAC,MAAM,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;AAC1E,YAAA,IAAI,MAAM,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG;AAC5B,gBAAA,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,eAAe,GAAG,uBAAuB,GAAG,aAAa,EAAE;AAC7E,oBAAA,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE;AAC9E,oBAAA,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE;AAC9E,iBAAA,CAAC,CAAA;AACJ,YAAA,IAAI,IAAI;AAAE,gBAAA,OAAO,CAAC,IAAI,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;YAC7D,IAAI,IAAI,EAAE,MAAM;AAAE,gBAAA,OAAO,CAAC,IAAI,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;YACtE,IAAI,aAAa,EAAE,MAAM;AAAE,gBAAA,OAAO,CAAC,OAAO,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;AAE3F,YAAA,OAAO,OAAO,CAAA;AAChB,SAAC,CAAA;AAEO,QAAA,IAAA,CAAA,cAAc,GAAG,CAAC,IAAiB,KAAgC;AACzE,YAAA,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,eAAe;AAAE,gBAAA,OAAO,EAAE,CAAA;YAEhD,IAAI,IAAI,KAAK,cAAc;gBACzB,OAAO;AACL,oBAAA,aAAa,EAAE,MAAM;AACrB,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,KAAK,EAAE,MAAM;AACb,oBAAA,IAAI,EAAE,KAAK;iBACZ,CAAA;YACH,IAAI,IAAI,KAAK,eAAe;AAAE,gBAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAS,CAAA;YAC5G,IAAI,IAAI,KAAK,cAAc;AAAE,gBAAA,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAS,CAAA;YAC1G,IAAI,IAAI,KAAK,aAAa;AAAE,gBAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;YACtG,IAAI,IAAI,KAAK,MAAM;AAAE,gBAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAA;YACjD,IAAI,IAAI,KAAK,kBAAkB;AAC7B,gBAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAS,CAAA;AAC/F,SAAC,CAAA;AAEO,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,OAA4C,KAAyC;AAC9G,YAAA,MAAM,KAAK,GAAG,OAAO,EAAE,OAAO,IAAI,EAAE,CAAA;YAEpC,OAAO;gBACL,KAAK;AACL,gBAAA,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK;aAC3C,CAAA;AACH,SAAC,CAAA;QAEO,IAAU,CAAA,UAAA,GAAG,CACnB,OAAwC,KAIrC,SAAS,IAAI,OAAO,CAAA;QAEjB,IAAO,CAAA,OAAA,GAAG,CAChB,OAAwC,KAIrC,MAAM,IAAI,OAAO,CAAA;QAEd,IAAW,CAAA,WAAA,GAAG,CACpB,OAAwC,KAIrC,UAAU,IAAI,OAAO,CAAA;AAElB,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,OAAwC,KAAY;AAC9E,YAAA,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;AAAE,gBAAA,OAAO,YAAY,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAA;AACvE,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AAAE,gBAAA,OAAO,CAAQ,KAAA,EAAA,OAAO,CAAC,IAAI,EAAE,CAAA;AACxD,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,OAAO,CAAA,QAAA,EAAW,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAE,CAAA;AAE3E,YAAA,OAAO,EAAE,CAAA;AACX,SAAC,CAAA;KAtXG;AAEJ,IAAA,MAAM,aAAa,CACjB,OAA+B,EAC/B,YAAiD,EAAA;QAEjD,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QAE5C,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,aAAa;AAC5D,YAAA,MAAM,IAAI,oBAAoB,CAAC,CAAA,sDAAA,CAAwD,CAAC,CAAA;QAC1F,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI;AACnD,YAAA,MAAM,IAAI,oBAAoB,CAAC,CAAA,6CAAA,CAA+C,CAAC,CAAA;QACjF,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,aAAa;AACzD,YAAA,MAAM,IAAI,oBAAoB,CAAC,CAAA,mDAAA,CAAqD,CAAC,CAAA;AAEvF,QAAA,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,IAAI,CAC/D,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAI;YAC3D,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;YAElD,OAAO;gBACL,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,wBAAwB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE;gBACtG,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AACtC,gBAAA,MAAM,EAAE;AACN,oBAAA,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE;AAC3F,oBAAA,eAAe,EAAE;wBACf,GAAG,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;wBACjD,GAAG,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;AAClD,qBAAA;AACF,iBAAA;gBACD,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;aACxD,CAAA;AACH,SAAC,CACF,CAAA;KACF;IAED,MAAM,8BAA8B,CAAC,IAAW,EAAE,SAAiB,EAAE,IAAY,EAAE,KAAa,EAAA;AAC9F,QAAA,OAAO,IAAI,CAAC,kCAAkC,CAAC,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;KAC9F;AAEO,IAAA,MAAM,WAAW,CACvB,OAA+B,EAC/B,MAGC,EACD,YAAiD,EAAA;AAEjD,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE;YAC7D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAEnE,OAAO,IAAI,CAAC,sCAAsC,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;AACjF,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE;YACjE,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,GAAG,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzG,YAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB;AAC7C,iBAAA,WAAW,CACV;gBACE,MAAM,EAAE,CAAC,IAAI,CAAC;AACd,gBAAA,OAAO,EAAE;oBACP,IAAI,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;oBACvC,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;AACjD,iBAAA;aACF,EACD,SAAS,EACT,YAAY,CACb;iBACA,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;AAEjE,YAAA,OAAO,IAAI,CAAC,gCAAgC,CAAC,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAA;AACvG,SAAA;AAED,QAAA,MAAM,UAAU,GAAkC;YAChD,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,YAAA,OAAO,EAAE;gBACP,IAAI,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;gBACvC,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;AACjD,aAAA;YACD,IAAI,OAAO,EAAE,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE;YACxE,MAAM;AACN,YAAA,OAAO,EAAE;gBACP,OAAO,EAAE,CAAC,OAAO,CAAC;gBAClB,OAAO,EAAE,CAAC,OAAO,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;AACtF,sBAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE;sBACvB,EAAE;AACP,aAAA;SACF,CAAA;AAED,QAAA,IAAI,CAAC,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;AAC7F,YAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC,CAAA;AAEhF,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CACvC,UAAU,EACV,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,UAAU,GAAG,MAAM,GAAG,QAAQ,EACzE,YAAY,CACb,CAAA;KACF;IAEO,MAAM,eAAe,CAAC,EAC5B,QAAQ,EACR,OAAO,EACP,IAAI,GACuB,EAAA;AAC3B,QAAA,IAAI,QAAQ;YAAE,OAAO,IAAI,CAAC,wBAAwB,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAA;AACzF,QAAA,IAAI,OAAO;AAAE,YAAA,OAAO,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAA;AACtE,QAAA,IAAI,IAAI;YACN,OAAO,IAAI,CAAC,aAAa;iBACtB,MAAM,CAAU,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AAC3E,iBAAA,IAAI,CAAC,CAAC,IAAI,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;KAChG;IAEO,MAAM,gCAAgC,CAC5C,aAAuB,EACvB,UAAoB,EACpB,OAGC,EACD,MAGC,EACD,YAAiD,EAAA;AAEjD,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAA;AAClE,QAAA,MAAM,uBAAuB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAC9E,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAC1D;YACE,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,YAAA,OAAO,EAAE;gBACP,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE;gBAC1D,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;AACjD,aAAA;AACD,YAAA,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC;AAC5C,YAAA,OAAO,EAAE;gBACP,OAAO,EAAE,CAAC,OAAO,CAAC;gBAClB,OAAO,EAAE,CAAC,OAAO,CAAC;gBAClB,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE;AACnF,aAAA;SACF,EACD,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,UAAU,GAAG,MAAM,GAAG,QAAQ,EACzE,YAAY,CACb,CAAA;AAED,QAAA,MAAM,wBAAwB,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CACtD,CAAC,OAAO,KAAK,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAC/E,CAAA;AACD,QAAA,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI;aACnC,MAAM,CAAC,CAAC,OAAO,KAAK,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;aACrF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAC5E,QAAA,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI;AAClC,aAAA,MAAM,CAAC,CAAC,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;aACxD,MAAM,CAAC,wBAAwB,CAAC,CAAA;QACnC,MAAM,qBAAqB,GAAG,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;AAChE,QAAA,MAAM,WAAW,GAAG,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;AAE5F,QAAA,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QAE9D,OAAO;AACL,YAAA,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,OAAO,EAAE,WAAW,CAAC,OAAO;AAC5B,YAAA,QAAQ,EAAE;gBACR,GAAG,WAAW,CAAC,QAAQ;gBACvB,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACvD,aAAA;SACF,CAAA;KACF;AAEO,IAAA,MAAM,sCAAsC,CAClD,UAAoB,EACpB,OAGC,EACD,MAGC,EAAA;AAED,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAA;QAClE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAC1D;AACE,YAAA,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC;AACjC,YAAA,OAAO,EAAE;gBACP,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;gBAC7C,SAAS,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE;gBAClD,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;AACjD,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,OAAO,EAAE,CAAC,OAAO,CAAC;gBAClB,OAAO,EAAE,CAAC,OAAO,CAAC;gBAClB,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE;AACnF,aAAA;SACF,EACD,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,UAAU,GAAG,MAAM,GAAG,QAAQ,CAC1E,CAAA;AACD,QAAA,MAAM,aAAa,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM;cAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAChC,cAAE,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ;AAC9B,kBAAE,QAAQ;kBACR,MAAM,CAAA;QACV,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAA;QAClF,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAA;QAClF,MAAM,qBAAqB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,KACtD,SAAS,CAAC,IAAI,CACZ,CAAC,MAAM,KACL,MAAM,CAAC,EAAE,KAAK,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CACzG,CACF,CAAA;QACD,MAAM,wBAAwB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,KACzD,SAAS,CAAC,IAAI,CACZ,CAAC,MAAM,KACL,MAAM,CAAC,EAAE,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CACzG,CACF,CAAA;QACD,MAAM,eAAe,GAAG,qBAAqB,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAA;QAC9E,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAA;QAC3G,MAAM,gBAAgB,GAAG,eAAe;aACrC,MAAM,CAAC,kBAAkB,CAAC;AAC1B,aAAA,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;AACrD,QAAA,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;QACpF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC;AAC7D,YAAA,OAAO,EAAE;gBACP,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AAC7C,aAAA;YACD,MAAM,EAAE,IAAI,CAAC,MAAM;AACpB,SAAA,CAAC,CAAA;AAEF,QAAA,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QAE9D,OAAO;AACL,YAAA,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YAC3G,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,OAAO,EAAE,WAAW,CAAC,OAAO;AAC5B,YAAA,QAAQ,EAAE;gBACR,GAAG,WAAW,CAAC,QAAQ;gBACvB,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACvD,aAAA;SACF,CAAA;KACF;AAEO,IAAA,MAAM,sBAAsB,CAAC,IAAY,EAAE,UAAmB,KAAK,EAAA;AACzE,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AAAE,YAAA,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QAE/D,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,aAAa;aACzD,MAAM,CAAgB,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AACjF,aAAA,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAC;KAC5E;AAEO,IAAA,MAAM,eAAe,CAC3B,OAA+D,EAC/D,aAAuB,EAAE,EAAA;QAEzB,OAAO,IAAI,CAAC,iBAAiB;AAC1B,aAAA,WAAW,CACV;YACE,MAAM,EAAE,CAAC,IAAI,CAAC;AACd,YAAA,OAAO,EAAE;AACP,gBAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE;gBACjF,SAAS,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE;gBAClD,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;AACjD,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,QAAQ,EAAE,CAAC,OAAO,CAAC;AACpB,aAAA;AACF,SAAA,EACD,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,UAAU,GAAG,MAAM,GAAG,QAAQ,CAC1E;AACA,aAAA,IAAI,CAAC,CAAC,MAAM,KAAI;AACf,YAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAA;AAC9B,SAAC,CAAC,CAAA;KACL;AAEO,IAAA,MAAM,aAAa,CAAC,OAAwC,EAAE,MAAgB,EAAA;AACpF,QAAA,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,MAAM,CAAA;QAE5C,IAAI,OAAO,CAAC,MAAM,CAAC;AAAE,YAAA,OAAO,OAAO,CAAC,OAAO,EAAE,MAAM,CAAA;QAEnD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,KAAK,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAA;QAEpG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAEjH,OAAO,CAAC,OAAO,GAAG;YAChB,GAAG,OAAO,CAAC,OAAO;AAClB,YAAA,MAAM,EAAE,YAAY;SACrB,CAAA;KACF;8GA1UU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAgCf,mBAAmB,EAAA,EAAA,EAAA,KAAA,EACnB,oCAAoC,EAAA,EAAA,EAAA,KAAA,EAEpC,oBAAoB,EAAA,EAAA,EAAA,KAAA,EACpB,kBAAkB,EAAA,EAAA,EAAA,KAAA,EAClB,YAAY,EAAA,EAAA,EAAA,KAAA,EACZ,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAtCd,cAAc,EAAA,CAAA,CAAA,EAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;;0BAiCN,MAAM;2BAAC,mBAAmB,CAAA;;0BAC1B,MAAM;2BAAC,oCAAoC,CAAA;;0BAE3C,MAAM;2BAAC,oBAAoB,CAAA;;0BAC3B,MAAM;2BAAC,kBAAkB,CAAA;;0BACzB,MAAM;2BAAC,YAAY,CAAA;;0BACnB,MAAM;2BAAC,eAAe,CAAA;;;MC/Fd,eAAe,CAAA;IAC1B,WACgD,CAAA,iBAAoC,EACnC,kBAAsC,EAChC,wBAAkD,EAC1D,wBAAkD,EACxD,IAAW,EAAA;QAJJ,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACnC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QAChC,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;QAC1D,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;QACxD,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAO;KAChD;AAEJ,IAAA,MAAM,WAAW,CACf,QAAkB,EAClB,OAA4B,EAC5B,YAAiD,EAAA;AAEjD,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB;AACxC,aAAA,WAAW,CACV;YACE,OAAO,EAAE,MAAM,IAAI,CAAC,wBAAwB,CAAC,4BAA4B,CAAC,QAAQ,CAAC;YACnF,MAAM,EAAE,CAAC,OAAO,CAAC;AAClB,SAAA,EACD,OAAO,EAAE,UAAU,GAAG,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,UAAU,GAAG,MAAM,GAAG,QAAQ,EAC9F,YAAY,CACb;aACA,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,KACb,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAChH,CAAA;QAEH,OAAO,IAAI,CAAC,kBAAkB;AAC3B,aAAA,IAAI,CACH,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAChG,YAAY,CACb;AACA,aAAA,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;KAC7F;AAED,IAAA,MAAM,kBAAkB,CAAC,QAAkB,EAAE,YAAiD,EAAA;QAC5F,OAAO,MAAM,IAAI,CAAC,wBAAwB;AACvC,aAAA,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,YAAY,CAAC;aAC7D,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,KAAK,cAAc,CAAC,MAAM,CAAC,CAAC,CAAA;KAC3E;8GAvCU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAEhB,mBAAmB,EACnB,EAAA,EAAA,KAAA,EAAA,oBAAoB,aACpB,0BAA0B,EAAA,EAAA,EAAA,KAAA,EAC1B,kBAAkB,EAAA,EAAA,EAAA,KAAA,EAClB,YAAY,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHANX,eAAe,EAAA,CAAA,CAAA,EAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;;0BAGN,MAAM;2BAAC,mBAAmB,CAAA;;0BAC1B,MAAM;2BAAC,oBAAoB,CAAA;;0BAC3B,MAAM;2BAAC,0BAA0B,CAAA;;0BACjC,MAAM;2BAAC,kBAAkB,CAAA;;0BACzB,MAAM;2BAAC,YAAY,CAAA;;;IC1BZ,aAQX;AARD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,YAAA,CAAA,aAAA,CAAA,GAAA,cAA4B,CAAA;AAC5B,IAAA,YAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,YAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,YAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;AACrC,IAAA,YAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EARW,YAAY,KAAZ,YAAY,GAQvB,EAAA,CAAA,CAAA;;ACJK,MAAO,gBAAiB,SAAQ,QAAQ,CAAA;AAG7C,CAAA;AADC,UAAA,CAAA;AADC,IAAA,IAAI,CAAC,MAAM,gBAAgB,CAAC;;AACA,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;;MCgBlB,eAAe,CAAA;AAI1B,IAAA,WAAA,CACiD,kBAAsC,EAC9C,IAAW,EACd,iBAAoC,EACpC,wBAAkD,EACxD,kBAAsC,EAEpE,kCAAsE,EAC5B,aAAiC,EACjC,aAA4B,EAAA;QARvB,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QAC9C,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAO;QACd,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QAK9B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAoB;QACjC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;AAEtE,QAAA,MAAM,wBAAwB,GAAG,IAAI,2BAA2B,CAAC,kBAAkB,CAAC,CAAA;AAEpF,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CACtC,iBAAiB,EACjB,kCAAkC,EAClC,kBAAkB,EAClB,wBAAwB,EACxB,IAAI,EACJ,aAAa,CACd,CAAA;AACD,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CACxC,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,wBAAwB,EACxB,IAAI,CACL,CAAA;KACF;IAED,iBAAiB,GAAA;QACf,OAAO,IAAI,CAAC,cAAc,CAAA;KAC3B;IAED,kBAAkB,GAAA;QAChB,OAAO,IAAI,CAAC,eAAe,CAAA;KAC5B;IAED,MAAM,MAAM,CAAC,EACX,QAAQ,EACR,KAAK,EACL,WAAW,EACX,SAAS,EACT,YAAY,EACZ,SAAS,EACT,KAAK,EACL,SAAS,EACT,UAAU,EACV,kBAAkB,GAYnB,EAAA;AACC,QAAA,MAAM,IAAI,GAAG;AACX,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,IAAI,EAAE,KAAK;YACX,WAAW;AACX,YAAA,SAAS,EAAE;AACT,gBAAA;oBACE,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,oBAAA,KAAK,EAAE,CAAA,EAAG,YAAY,CAAA,GAAA,EAAM,KAAK,CAAE,CAAA;AACnC,oBAAA,WAAW,EAAE,CAAA,EAAG,YAAY,CAAA,GAAA,EAAM,WAAW,CAAE,CAAA;AAChD,iBAAA;AACF,aAAA;YACD,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;YAClB,QAAQ;AACR,YAAA,UAAU,EAAE,YAAY;AACxB,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,aAAa,EAAE,KAAK;YACpB,SAAS;YACT,KAAK;YACL,SAAS;AACT,YAAA,UAAU,EAAE,UAAU,IAAI,WAAW,CAAC,IAAI;YAC1C,kBAAkB,EAAE,kBAAkB,IAAI,KAAK;SAChD,CAAA;AAED,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB;AAC9C,aAAA,IAAI,CAAC;AACJ,YAAA,OAAO,EAAE;gBACP,QAAQ;AACT,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,WAAW,EAAE,KAAK;AACnB,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,EAAE,EAAE,KAAK;AACV,aAAA;SACF,CAAC;aACD,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,CAAA;QAE1B,MAAM,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,MAAM,EAAE,IAAgB,CAAC,CAAA;QAEtE,IAAI,WAAW,CAAC,MAAM;AAAE,YAAA,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAEhD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC9D,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAA;AAElF,QAAA,OAAO,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAA;KAC/E;IAED,MAAM,MAAM,CAAC,EACX,EAAE,EACF,KAAK,EACL,WAAW,EACX,SAAS,EACT,YAAY,EACZ,SAAS,EACT,KAAK,EACL,SAAS,EACT,UAAU,EACV,kBAAkB,GAYnB,EAAA;AACC,QAAA,MAAM,IAAI,GAAG;YACX,EAAE;AACF,YAAA,IAAI,EAAE,KAAK;YACX,WAAW;YACX,SAAS;AACT,YAAA,SAAS,EAAE;AACT,gBAAA;oBACE,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,oBAAA,KAAK,EAAE,CAAA,EAAG,YAAY,CAAA,GAAA,EAAM,KAAK,CAAE,CAAA;AACnC,oBAAA,WAAW,EAAE,CAAA,EAAG,YAAY,CAAA,GAAA,EAAM,WAAW,CAAE,CAAA;AAChD,iBAAA;AACF,aAAA;AACD,YAAA,UAAU,EAAE,YAAY;AACxB,YAAA,WAAW,EAAE,SAAS;YACtB,KAAK;YACL,SAAS;AACT,YAAA,UAAU,EAAE,UAAU,IAAI,WAAW,CAAC,IAAI;YAC1C,kBAAkB,EAAE,kBAAkB,IAAI,KAAK;SAChD,CAAA;QAED,MAAM,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,MAAM,EAAE,IAAgB,CAAC,CAAA;QAEtE,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;KAC5C;IAED,MAAM,MAAM,CAAC,UAAkB,EAAA;QAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QAChD,MAAM,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AAE9D,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA;KAC1D;AAED,IAAA,iBAAiB,CAAC,IAAY,EAAA;QAC5B,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AAE5B,QAAA,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QAEnD,OAAO,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;KACvD;AAED,IAAA,oBAAoB,CAAC,QAAgB,EAAA;QACnC,OAAO,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAA;KAC7D;AAED,IAAA,MAAM,UAAU,CAAC,UAAkB,EAAE,SAAiB,EAAA;AACpD,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA;AACtE,QAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAA;QAEhE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QACpD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;AACzD,QAAA,MAAM,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC,CAAA;QAEpF,IAAI,CAAC,UAAU,EAAE;YACf,QAAQ,CAAC,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;YACrD,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;AAChE,SAAA;AAED,QAAA,OAAO,QAAQ,CAAA;KAChB;AAED,IAAA,MAAM,aAAa,CAAC,UAAkB,EAAE,SAAiB,EAAA;AACvD,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA;AACtE,QAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAA;AAEvE,QAAA,IAAI,YAAY,IAAI,CAAC,CAAC,EAAE;YACtB,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAA;YACzC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;YACpD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;AACzD,YAAA,MAAM,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,cAAc,EAAE,YAAY,EAAE,WAAW,CAAC,CAAA;YACvF,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;AACnE,SAAA;AAED,QAAA,OAAO,QAAQ,CAAA;KAChB;IAEO,MAAM,QAAQ,CAAC,EAAU,EAAA;QAC/B,OAAO,IAAI,CAAC,kBAAkB;AAC3B,aAAA,IAAI,CAAC;AACJ,YAAA,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,CAAC;AACnG,YAAA,OAAO,EAAE;gBACP,EAAE;AACH,aAAA;SACF,CAAC;AACD,aAAA,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KACjC;IAEO,MAAM,eAAe,CAAC,EAAU,EAAA;QACtC,OAAO,IAAI,CAAC,iBAAiB;AAC1B,aAAA,IAAI,CAAC;YACJ,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;AAC7C,YAAA,OAAO,EAAE;gBACP,EAAE;AACH,aAAA;SACF,CAAC;AACD,aAAA,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KACjC;AAEO,IAAA,MAAM,iBAAiB,CAAC,IAAqB,EAAE,QAAkB,EAAE,OAAiB,EAAA;AAC1F,QAAA,QAAQ,IAAI;YACV,KAAK,eAAe,CAAC,MAAM,CAAC;YAC5B,KAAK,eAAe,CAAC,MAAM,CAAC;YAC5B,KAAK,eAAe,CAAC,MAAM;AACzB,gBAAA,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AAC9B,oBAAA,UAAU,EAAE,UAAU;oBACtB,IAAI,EAAE,IAAI,IAAI,EAAE;oBAChB,SAAS,EAAE,eAAe,CAAC,MAAM,GAAG,QAAQ,GAAG,eAAe,CAAC,MAAM,GAAG,QAAQ,GAAG,QAAQ;oBAC3F,UAAU,EAAE,QAAQ,CAAC,EAAE;AACvB,oBAAA,QAAQ,EAAE;wBACR,EAAE,EAAE,QAAQ,CAAC,EAAE;wBACf,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,IAAI,EAAE,QAAQ,CAAC,IAAI;wBACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;wBACjC,SAAS,EAAE,QAAQ,CAAC,SAAS;AAC7B,wBAAA,IAAI,EAAE,IAAI;wBACV,UAAU,EAAE,QAAQ,CAAC,UAAU;wBAC/B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;wBAC3B,UAAU,EAAE,QAAQ,CAAC,UAAU;wBAC/B,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;AAChD,qBAAA;AACF,iBAAA,CAAC,CAAA;gBACF,MAAK;YAEP,KAAK,eAAe,CAAC,WAAW,CAAC;YACjC,KAAK,eAAe,CAAC,cAAc;AACjC,gBAAA,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AAC9B,oBAAA,UAAU,EAAE,UAAU;oBACtB,IAAI,EAAE,IAAI,IAAI,EAAE;AAChB,oBAAA,SAAS,EAAE,QAAQ;oBACnB,UAAU,EAAE,QAAQ,CAAC,EAAE;AACvB,oBAAA,QAAQ,EAAE;wBACR,EAAE,EAAE,QAAQ,CAAC,EAAE;wBACf,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,IAAI,EAAE,QAAQ,CAAC,IAAI;wBACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;wBACjC,SAAS,EAAE,QAAQ,CAAC,SAAS;AAC7B,wBAAA,IAAI,EAAE,IAAI;wBACV,UAAU,EAAE,QAAQ,CAAC,UAAU;wBAC/B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;wBAC3B,UAAU,EAAE,QAAQ,CAAC,UAAU;wBAC/B,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;wBAC/C,SAAS,EAAE,OAAO,CAAC,EAAE;wBACrB,UAAU,EAAE,OAAO,CAAC,GAAG;wBACvB,UAAU,EAAE,OAAO,CAAC,GAAG;wBACvB,WAAW,EAAE,OAAO,CAAC,IAAI;wBACzB,YAAY,EAAE,OAAO,CAAC,KAAK;AAC5B,qBAAA;AACF,iBAAA,CAAC,CAAA;gBACF,MAAK;AAEP,YAAA;gBACE,MAAK;AACR,SAAA;KACF;AAhSU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAKhB,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,oBAAoB,EACpB,EAAA,EAAA,KAAA,EAAA,YAAY,aACZ,mBAAmB,EAAA,EAAA,EAAA,KAAA,EACnB,0BAA0B,EAAA,EAAA,EAAA,KAAA,EAC1B,oBAAoB,EACpB,EAAA,EAAA,KAAA,EAAA,oCAAoC,EAEpC,EAAA,EAAA,KAAA,EAAA,eAAe,aACf,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAbd,eAAe,EAAA,CAAA,CAAA,EAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;;0BAMN,MAAM;2BAAC,oBAAoB,CAAA;;0BAC3B,MAAM;2BAAC,YAAY,CAAA;;0BACnB,MAAM;2BAAC,mBAAmB,CAAA;;0BAC1B,MAAM;2BAAC,0BAA0B,CAAA;;0BACjC,MAAM;2BAAC,oBAAoB,CAAA;;0BAC3B,MAAM;2BAAC,oCAAoC,CAAA;;0BAE3C,MAAM;2BAAC,eAAe,CAAA;;0BACtB,MAAM;2BAAC,eAAe,CAAA;;;MCTd,aAAa,CAAA;AACxB,IAAA,WAAA,CAC+C,gBAAkC,EACxC,WAAkB,EACb,eAAgC,EAC7B,kBAAsC,EAAA;QAHxC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QACxC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAO;QACb,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAC7B,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;AA+L/E,QAAA,IAAA,CAAA,uBAAuB,GAAG,CAAC,SAAiB,KAAc,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,CAAA;KA9LhG;AAEJ,IAAA,WAAW,CACT,QAAgB,EAChB,YAA2B,EAC3B,QAA2B,EAC3B,IAAY,EAAA;AAEZ,QAAA,OAAO,IAAI,CACT,IAAI,CAAC,gBAAgB;AAClB,aAAA,IAAI,CAAC;AACJ,YAAA,OAAO,EAAE;gBACP,QAAQ,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACrD,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE;AAChD,aAAA;SACF,CAAC;AACD,aAAA,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CACpC,CAAC,IAAI,CACJ,SAAS,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,EAClE,SAAS,CAAC,CAAC,WAAmB,KAAK,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,EACzG,GAAG,CAAC,CAAC,eAAuB,KAAK,eAAyB,CAAC,CAC5D,CAAA;KACF;AAEO,IAAA,MAAM,gBAAgB,CAAC,MAAc,EAAE,YAA2B,EAAA;AACxE,QAAA,IAAI,CAAC,MAAM;AAAE,YAAA,MAAM,iBAAiB,CAAA;AAEpC,QAAA,IAAI,MAAM,EAAE,OAAO,IAAI,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;AAAE,YAAA,MAAM,iBAAiB,CAAA;AAEhG,QAAA,IAAI,MAAM,EAAE,SAAS,IAAI,CAAC,MAAM,EAAE,SAAkB,EAAC,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;AAAE,YAAA,MAAM,iBAAiB,CAAA;AAE9G,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,KAAK,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC,gBAAgB,KAAK,IAAI,CAAC,WAAW,CAAA;AAEtG,QAAA,IAAI,CAAC,QAAQ;AAAE,YAAA,MAAM,2BAA2B,CAAA;AAEhD,QAAA,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY,KAAK,aAAa,CAAC,GAAG,IAAI,MAAM,CAAC,YAAY,KAAK,YAAY,CAAA;AAExG,QAAA,IAAI,CAAC,cAAc;AAAE,YAAA,MAAM,mCAAmC,CAAA;AAE9D,QAAA,OAAO,MAAM,CAAA;KACd;IAEO,MAAM,qBAAqB,CACjC,MAAc,EACd,YAA2B,EAC3B,QAA2B,EAC3B,IAAY,EAAA;AAEZ,QAAA,IAAI,YAAY,IAAI,aAAa,CAAC,YAAY,EAAE;AAC9C,YAAA,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE;AAAE,gBAAA,MAAM,qCAAqC,CAAA;AAEhH,YAAA,OAAO,MAAM,CAAA;AACd,SAAA;AAED,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;AAEnE,QAAA,IAAI,CAAC,SAAS;AAAE,YAAA,MAAM,uBAAuB,CAAA;AAE7C,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEpF,IAAI,eAAe,CAAC,UAAU,EAAE;AAC9B,YAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAA;YACxF,IAAI,eAAe,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC;AAAE,gBAAA,MAAM,wBAAwB,CAAA;AACzF,SAAA;QAED,IAAI,CAAC,eAAe,CAAC,SAAS,IAAI,eAAe,CAAC,cAAc,EAAE;YAChE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAA;AAE3D,YAAA,IAAI,CAAC,eAAe,CAAC,SAAS,IAAI,eAAe,CAAC,KAAK,IAAI,YAAY,CAAC,MAAM,IAAI,eAAe,CAAC,KAAK;AACrG,gBAAA,MAAM,yBAAyB,CAAA;YAEjC,IAAI,eAAe,CAAC,cAAc,EAAE;AAClC,gBAAA,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAElF,IAAI,cAAc,GAAG,CAAC;AAAE,oBAAA,MAAM,qCAAqC,CAAA;AACpE,aAAA;AACF,SAAA;QAED,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AAE9E,QAAA,IAAI,CAAC,oBAAoB;AAAE,YAAA,MAAM,2DAA2D,CAAA;QAE5F,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAElE,IAAI,CAAC,cAAc,EAAE;AACnB,YAAA,IAAI,MAAM,CAAC,kBAAkB,EAAE,MAAM,EAAE;gBACrC,MAAM,CAAA,gBAAA,EAAmB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAChG,MAAM,CAAC,gBAAgB,CACxB,CAAA,2DAAA,CAA6D,CAAA;AAC/D,aAAA;YAED,MAAM,CAAA,gBAAA,EAAmB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAChG,MAAM,CAAC,gBAAgB,CACxB,CAAA,cAAA,CAAgB,CAAA;AAClB,SAAA;AAED,QAAA,OAAO,MAAM,CAAA;KACd;IAEM,wBAAwB,CAAC,MAAc,EAAE,QAAuC,EAAA;QACrF,IAAI,QAAQ,GAAG,CAAC,CAAA;QAEhB,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,WAAW,CAAC,QAAQ;YAAE,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAA;;AACvG,YAAA,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,eAAe,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,GAAG,GAAG,CAAC,CAAA;AAEtG,QAAA,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;KACpB;AAEO,IAAA,MAAM,cAAc,CAAC,MAAc,EAAE,QAA2B,EAAA;QACtE,IAAI,CAAC,MAAM,CAAC,gBAAgB;AAAE,YAAA,OAAO,IAAI,CAAA;AAEzC,QAAA,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAA;AACzG,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;AAE5E,QAAA,IAAI,MAAM,CAAC,gBAAgB,IAAI,QAAQ;AAAE,YAAA,OAAO,IAAI,CAAA;AAEpD,QAAA,OAAO,KAAK,CAAA;KACb;AAEO,IAAA,MAAM,oBAAoB,CAAC,MAAc,EAAE,QAA2B,EAAA;QAC5E,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,EAAE;AACpE,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;QAED,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;QACpF,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,IAAI,KAAI;YACxD,IAAI,IAAI,CAAC,MAAM;AAAE,gBAAA,OAAO,KAAK,CAAA;YAC7B,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM;AAAE,gBAAA,OAAO,IAAI,CAAA;YAE7D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AAC9E,SAAC,CAAC,CAAA;QAEF,OAAO,aAAa,CAAC,MAAM,GAAG,IAAI,GAAG,KAAK,CAAA;KAC3C;IAEO,oBAAoB,CAAC,MAAc,EAAE,IAAU,EAAA;AACrD,QAAA,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC;AAAE,YAAA,OAAO,IAAI,CAAA;QAElF,IAAI,SAAS,GAAoB,EAAE,CAAA;QAEnC,IACE,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC;YAC5D,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;AAE5D,YAAA,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAA;QAE7C,IACE,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC;YAC5D,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;AAElE,YAAA,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAA;QAE7C,IACE,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC;AAChE,YAAA,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,gBAAgB,IAAI,EAAE;AAE3B,YAAA,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAA;QAEjD,IACE,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,gBAAgB,IAAI,EAAE;YAC3B,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAC;AAElE,YAAA,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAA;AAEnD,QAAA,IAAI,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY;AACrF,YAAA,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;AAE9C,QAAA,OAAO,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;KACjE;IAEO,MAAM,qBAAqB,CAAC,kBAA4B,EAAA;QAC9D,MAAM,gBAAgB,GAAkB,EAAE,CAAA;AAE1C,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAC9D,MAAM,QAAQ,GAAwC,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;AACtF,gBAAA,EAAE,EAAE,kBAAkB,CAAC,KAAK,CAAC;AAC9B,aAAA,CAAC,CAAA;AAEF,YAAA,IAAI,QAAQ,EAAE;AACZ,gBAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAE/F,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;AAC5E,aAAA;AACF,SAAA;QAED,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAA;KACtC;AAIO,IAAA,MAAM,+BAA+B,CAC3C,kBAA4B,EAC5B,QAA2B,EAAA;QAE3B,IAAI,iBAAiB,GAAG,EAAE,CAAA;QAC1B,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAA;AAE7E,QAAA,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,EAAE;YACnD,iBAAiB,GAAG,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,IAAI,KAAI;gBACtD,IAAI,IAAI,CAAC,MAAM;AAAE,oBAAA,OAAO,KAAK,CAAA;AAC7B,gBAAA,IAAI,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE;oBAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AAC7E,iBAAA;AAED,gBAAA,OAAO,IAAI,CAAA;AACb,aAAC,CAAC,CAAA;AACH,SAAA;AAAM,aAAA;AACL,YAAA,iBAAiB,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AACtE,SAAA;AAED,QAAA,OAAO,iBAAiB,CAAA;KACzB;IAEO,oBAAoB,CAAC,SAAqB,EAAE,IAAU,EAAA;AAC5D,QAAA,QACE,SAAS;cACL,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/B,aAAA,MAAM,CACL,CAAC,GAAG,EAAE,IAAI,KACR,IAAI,EAAE,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe;cAC5C,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC,QAAQ;AACnD,cAAE,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,EAC1C,CAAC,CACF,IAAI,CAAC,EACT;KACF;IAEO,MAAM,mBAAmB,CAAC,MAAc,EAAA;QAC9C,OAAO,MAAM,IAAI,CAAC,eAAe;AAC9B,aAAA,IAAI,CAAC;AACJ,YAAA,OAAO,EAAE;AACP,gBAAA,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;AACzB,gBAAA,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE;AACpE,aAAA;SACF,CAAC;aACD,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAA;KACjC;IAEO,MAAM,iBAAiB,CAAC,KAAa,EAAA;QAC3C,OAAO,MAAM,IAAI,CAAC,eAAe;AAC9B,aAAA,IAAI,CAAC;AACJ,YAAA,OAAO,EAAE;AACP,gBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;AACzD,gBAAA,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE;AACpE,aAAA;SACF,CAAC;aACD,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAA;KACjC;IAEO,mBAAmB,CAAC,MAAe,EAAE,KAAa,EAAA;AACxD,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,MAAM,CAAA;KAC1D;AAEO,IAAA,kBAAkB,CAAC,MAAc,EAAE,YAA2B,EAAE,IAAU,EAAA;AAChF,QAAA,IAAI,eAAwG,CAAA;QAC5G,IAAI,YAAY,IAAI,aAAa,CAAC,SAAS,IAAI,YAAY,IAAI,aAAa,CAAC,GAAG,EAAE;AAChF,YAAA,IACE,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;iBAClC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,aAAa;oBAC3D,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,aAAa,CAAC;AAE/D,gBAAA,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAA;;gBAC9C,eAAe,GAAG,IAAI,IAAI,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAA;AACjH,SAAA;AAAM,aAAA;AACL,YAAA,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,CAAA;AAChD,SAAA;AAED,QAAA,OAAO,eAAe,CAAA;KACvB;AApRU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,kBAEd,kBAAkB,EAAA,EAAA,EAAA,KAAA,EAClB,YAAY,EACZ,EAAA,EAAA,KAAA,EAAA,iBAAiB,aACjB,oBAAoB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AALnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAGI,MAAM;2BAAC,kBAAkB,CAAA;;0BACzB,MAAM;2BAAC,YAAY,CAAA;;0BACnB,MAAM;2BAAC,iBAAiB,CAAA;;0BACxB,MAAM;2BAAC,oBAAoB,CAAA;;;MCbnB,2BAA2B,CAAA;AACtC,IAAA,WAAA,CAEmB,8BAA8D,EAChC,eAAgC,EAC9D,aAA4B,EAAA;QAF5B,IAA8B,CAAA,8BAAA,GAA9B,8BAA8B,CAAgC;QAChC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAC9D,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAC3C;AAEJ,IAAA,uBAAuB,CAAC,YAA+C,EAAA;QACrE,OAAO,IAAI,CAAC,eAAe;aACxB,GAAG,CAAC,wBAAwB,CAAC;AAC7B,aAAA,IAAI,CACH,SAAS,CAAC,CAAC,EAAE,KACX,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAC7G,CACF,CAAA;KACJ;IAED,oCAAoC,GAAA;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAA;KAC7D;IAED,WAAW,CAAC,QAAgB,EAAE,SAAiB,EAAA;AAC7C,QAAA,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAC,IAAI,CACxC,SAAS,CAAC,CAAC,QAAQ,KACjB,IAAI,CAAC,aAAa;AACf,aAAA,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC;aAC3F,IAAI,EAAE,CACV,CACF,CAAA;KACF;AAED,IAAA,wBAAwB,CAAC,MAAc,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAC,IAAI,CACxC,SAAS,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,CAC9F,CAAA;KACF;IAEO,MAAM,0BAA0B,CACtC,YAA+C,EAAA;QAE/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC;YAChE,SAAS,EAAE,IAAI,IAAI,EAAE;AACrB,YAAA,GAAG,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;AACnF,SAAA,CAAC,CAAA;AAEF,QAAA,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,wBAAwB,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAA;AAEjF,QAAA,OAAO,QAAQ,CAAA;KAChB;8GAjDU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAE5B,gCAAgC,EAAA,EAAA,EAAA,KAAA,EAEhC,oBAAoB,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAJnB,2BAA2B,EAAA,CAAA,CAAA,EAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC,UAAU;;0BAGN,MAAM;2BAAC,gCAAgC,CAAA;;0BAEvC,MAAM;2BAAC,oBAAoB,CAAA;;;MCtBnB,UAAU,CAAA;IACrB,OAAO,UAAU,CAAC,IAAY,EAAA;AAC5B,QAAA,OAAO,IAAI;AACR,aAAA,WAAW,EAAE;AACb,aAAA,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;AACpB,aAAA,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;AACxB,aAAA,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;AACxB,aAAA,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;AACvB,aAAA,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;AACxB,aAAA,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;AACvB,aAAA,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;AACpB,aAAA,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;AACpB,aAAA,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;AACtB,aAAA,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;AACxB,aAAA,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;KAC1B;AACF;;MCUY,eAAe,CAAA;AAG1B,IAAA,IAAY,MAAM,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,QAAQ;AAAE,YAAA,OAAO,UAAU,CAAA;AAC1D,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,UAAU;AAAE,YAAA,OAAO,aAAa,CAAA;AAE/D,QAAA,OAAO,IAAI,CAAA;KACZ;AAED,IAAA,WAAA,CACiD,kBAAsC,EAC1C,cAA8B,EAC3B,iBAAoC,EAC3C,WAAkB,EAAA;QAHV,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QAC1C,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC3B,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QAC3C,IAAW,CAAA,WAAA,GAAX,WAAW,CAAO;AAwHnD,QAAA,IAAA,CAAA,kCAAkC,GAAG,CAAC,KAAwB,MAAyB;YAC7F,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;YAC3G,QAAQ,EACN,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,KAC3B,OAAO,CAAC,UAAU,CAChB,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;gBAC7B,IAAI;gBACJ,OAAO;gBACP,SAAS;gBACT,aAAa;gBACb,MAAM;gBACN,KAAK;gBACL,OAAO;gBACP,WAAW;gBACX,QAAQ;gBACR,YAAY;gBACZ,MAAM;gBACN,QAAQ;gBACR,MAAM;gBACN,MAAM;gBACN,OAAO;aACR,CAAC,CACH,CACF,IAAI,EAAE;AACV,SAAA,CAAC,CAAA;KA/IE;IAEJ,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,CACrC,GAAG,CAAC,CAAC,IAAI,MAAM,IAAI,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,EACjE,SAAS,CAAC,CAAC,IAAI,KACb,IAAI;AACF,cAAE,EAAE,CAAC,IAAI,CAAC;cACR,QAAQ,CAAC;AACP,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;AACrC,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;AACrC,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;AACtC,aAAA,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,MAAM;gBAC/D,gBAAgB;gBAChB,gBAAgB;gBAChB,gBAAgB;AACjB,aAAA,CAAC,CAAC,EACH,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAC7C,CACN,CACF,CAAA;KACF;AAED,IAAA,UAAU,CAAC,IAAgB,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,CACrC,GAAG,CAAC,CAAC,IAAI,KAAI;YACX,IAAI,IAAI,KAAK,OAAO;gBAAE,OAAO,IAAI,CAAC,cAAc,CAAA;YAChD,IAAI,IAAI,KAAK,UAAU;AAAE,gBAAA,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YACrD,IAAI,IAAI,KAAK,OAAO;gBAAE,OAAO,IAAI,CAAC,YAAY,CAAA;YAC9C,IAAI,IAAI,KAAK,MAAM;AAAE,gBAAA,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AAE7C,YAAA,OAAO,EAAE,CAAA;SACV,CAAC,CACH,CAAA;KACF;IAED,0BAA0B,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAA;KACrF;AAEO,IAAA,mBAAmB,CAAC,MAAe,EAAA;QACzC,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,CACrC,SAAS,CAAC,CAAC,IAAI,KACb,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAChG,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CACrE,CACF,CACF,CAAA;KACF;AAEO,IAAA,mBAAmB,CAAC,MAAe,EAAA;QACzC,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,CACrC,SAAS,CAAC,CAAC,IAAI,KACb,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAChG,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CACrE,CACF,CACF,CAAA;KACF;AAEO,IAAA,mBAAmB,CAAC,MAAe,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,CACrC,SAAS,CAAC,CAAC,IAAI,KACb,QAAQ,CACN,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAC5C,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAC5C,SAAS,CAAC,CAAC,QAAQ,KACjB,IAAI,CACF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC1B,YAAA,OAAO,EAAE;AACP,gBAAA,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;gBACxD,IAAI,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE;AACpE,aAAA;AACD,YAAA,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;SACtB,CAAC,CACH,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CACpD,EACD,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EACxE,GAAG,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAC7C,CACF,CACF,CACF,CACF,CAAA;KACF;IAEO,oBAAoB,GAAA;AAC1B,QAAA,OAAO,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CACpC,SAAS,CAAC,CAAC,IAAI,KACb,IAAI;AACF,cAAE,EAAE,CAAC,IAAI,CAAC;AACV,cAAE,CAAC,IAAI,CAAC,MAAM;kBACZ,UAAU,CAAC,IAAI,qBAAqB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACnD,kBAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CACrD,GAAG,CAAC,CAAC,UAAU,MAAM,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,CAAC,CAC3D,CACN,CACF,CAAA;KACF;AAEO,IAAA,YAAY,CAAC,QAAkB,EAAA;AACrC,QAAA,MAAM,IAAI,GAAG;YACX,SAAS,EAAE,IAAI,IAAI,EAAE;AACrB,YAAA,SAAS,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACxC,YAAA,IAAI,EAAE,QAAQ;SACf,CAAA;AAED,QAAA,OAAO,IAAI,CACT,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;YACzB,EAAE,EAAE,IAAI,CAAC,MAAM;YACf,IAAI;AACL,SAAA,CAAC,CACH,CAAC,IAAI,CACJ,GAAG,CAAC,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,EAC/C,GAAG,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,CAClC,CAAA;KACF;AA4BD,IAAA,IAAY,MAAM,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,MAAM,KAAK,aAAa,GAAG,WAAW,GAAG,SAAS,CAAA;KAC/D;AAlKU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,kBAWhB,oBAAoB,EAAA,EAAA,EAAA,KAAA,EACpB,gBAAgB,EAChB,EAAA,EAAA,KAAA,EAAA,mBAAmB,aACnB,YAAY,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAdX,eAAe,EAAA,CAAA,CAAA,EAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;;0BAYN,MAAM;2BAAC,oBAAoB,CAAA;;0BAC3B,MAAM;2BAAC,gBAAgB,CAAA;;0BACvB,MAAM;2BAAC,mBAAmB,CAAA;;0BAC1B,MAAM;2BAAC,YAAY,CAAA;;;MCjCX,YAAY,CAAA;IAGvB,WACmB,CAAA,gBAA2B,EACA,eAAyC,EAAA;QADpE,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAW;QACA,IAAe,CAAA,eAAA,GAAf,eAAe,CAA0B;AAJvF,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAS,CAAA;KAK/B;AAEJ,IAAA,QAAQ,CAAC,EAAU,EAAA;AACjB,QAAA,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAA,EAAG,IAAI,CAAC,eAAe,CAAC,cAAc,IAAI,EAAE,CAAA,CAAE,CAAC,CAAC;AACrF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAChD,aAAA,SAAS,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QAElD,OAAO,IAAI,CAAC,YAAY,CAAA;KACzB;AAdU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,6CAKb,iBAAiB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHALhB,YAAY,EAAA,CAAA,CAAA,EAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;;0BAMN,MAAM;2BAAC,iBAAiB,CAAA;;;MC6GhB,oBAAoB,CAAA;AAC/B,IAAA,OAAO,aAAa,CAClB,WAAkB,EAClB,OAUC,EACD,YAAyC,EAAA;QAEzC,OAAO;AACL,YAAA,QAAQ,EAAE,oBAAoB;AAC9B,YAAA,SAAS,EAAE;AACT,gBAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE;gBACtD,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,CAAC,gBAAgB,EAAE;AACnE,gBAAA;AACE,oBAAA,OAAO,EAAE,kBAAkB;oBAC3B,QAAQ,EACN,KAAK,CAAC,OAAO,EAAE,oBAAoB,CAAC,IAAI,OAAO,EAAE,oBAAoB;AACnE,0BAAE,2BAA2B;AAC7B,0BAAE,2BAA2B;AAClC,iBAAA;gBACD,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,IAAI,qBAAqB,EAAE;gBAClG,IAAI,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;gBAChF,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;gBAChG,IAAI,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;gBAClG,IAAI,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;gBACpG,IAAI,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;gBACzF,IAAI,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC9F,IAAI,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;AAC5G,aAAA;SACF,CAAA;KACF;8GAtCU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,yEArC7B,yBAAyB;YACzB,wBAAwB;YACxB,yBAAyB;YACzB,sBAAsB;YACtB,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA;AAiCjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EA/BpB,SAAA,EAAA;YACT,WAAW;YACX,WAAW;YACX,cAAc;YACd,eAAe;YACf,eAAe;YACf,2BAA2B;YAC3B,aAAa;YACb,eAAe;YACf,YAAY;YACZ,eAAe;AACf,YAAA;AACE,gBAAA,OAAO,EAAE,eAAe;AACxB,gBAAA,UAAU,EAAE,CAAC,cAA8B,EAAE,YAAiC,KAAI;AAChF,oBAAA,OAAO,IAAI,eAAe,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;iBACzD;AACD,gBAAA,IAAI,EAAE,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;AAChD,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,qBAAqB;AAC9B,gBAAA,UAAU,EAAE,CAAC,OAAgB,EAAE,OAAe,KAAI;AAChD,oBAAA,OAAO,IAAI,2BAA2B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;iBACzD;AACD,gBAAA,IAAI,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC;AAClC,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,eAAe;AACxB,gBAAA,WAAW,EAAE,oBAAoB;AAClC,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CApEC,kBAAkB,CAAC,CAAC,QAAkB,KAAI;gBACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAS,iBAAiB,CAAC,CAAA;gBAEvD,IAAI;AACF,oBAAA,MAAM,GAAG,GAAG,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE,CAAA;AAEhD,oBAAA,OAAO,GAAG,CAAA;AACX,iBAAA;AAAC,gBAAA,OAAO,KAAK,EAAE;AACd,oBAAA,OAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;oBAE5D,IAAI,KAAK,YAAY,KAAK;AAAE,wBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;oBAExD,OAAO,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC,CAAA;AAC9D,iBAAA;AACH,aAAC,CAAC;AACF,YAAA,eAAe,CAAC,CAAC,QAAkB,KAAI;gBACrC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;gBAErC,IAAI;oBACF,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAA8B,kBAAkB,CAAC,CAAA;AAE9E,oBAAA,IAAI,QAAQ;wBACV,OAAO,kBAAkB,CAAC,GAAG,EAAE;4BAC7B,QAAQ;AACR,4BAAA,yBAAyB,EAAE,IAAI;AAChC,yBAAA,CAAC,CAAA;AACL,iBAAA;AAAC,gBAAA,OAAO,KAAK,EAAE;oBACd,IAAI,KAAK,YAAY,KAAK;AAAE,wBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;oBAExD,OAAM;AACP,iBAAA;AACH,aAAC,CAAC;AACF,YAAA,cAAc,CAAC,CAAC,QAAkB,KAAK,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;YAC7E,yBAAyB;YACzB,wBAAwB;YACxB,yBAAyB;YACzB,sBAAsB;YACtB,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAiCjB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAxEhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;AACP,wBAAA,kBAAkB,CAAC,CAAC,QAAkB,KAAI;4BACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAS,iBAAiB,CAAC,CAAA;4BAEvD,IAAI;AACF,gCAAA,MAAM,GAAG,GAAG,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE,CAAA;AAEhD,gCAAA,OAAO,GAAG,CAAA;AACX,6BAAA;AAAC,4BAAA,OAAO,KAAK,EAAE;AACd,gCAAA,OAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;gCAE5D,IAAI,KAAK,YAAY,KAAK;AAAE,oCAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;gCAExD,OAAO,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC,CAAA;AAC9D,6BAAA;AACH,yBAAC,CAAC;AACF,wBAAA,eAAe,CAAC,CAAC,QAAkB,KAAI;4BACrC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;4BAErC,IAAI;gCACF,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAA8B,kBAAkB,CAAC,CAAA;AAE9E,gCAAA,IAAI,QAAQ;oCACV,OAAO,kBAAkB,CAAC,GAAG,EAAE;wCAC7B,QAAQ;AACR,wCAAA,yBAAyB,EAAE,IAAI;AAChC,qCAAA,CAAC,CAAA;AACL,6BAAA;AAAC,4BAAA,OAAO,KAAK,EAAE;gCACd,IAAI,KAAK,YAAY,KAAK;AAAE,oCAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;gCAExD,OAAM;AACP,6BAAA;AACH,yBAAC,CAAC;AACF,wBAAA,cAAc,CAAC,CAAC,QAAkB,KAAK,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;wBAC7E,yBAAyB;wBACzB,wBAAwB;wBACxB,yBAAyB;wBACzB,sBAAsB;wBACtB,0BAA0B;AAC3B,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT,WAAW;wBACX,WAAW;wBACX,cAAc;wBACd,eAAe;wBACf,eAAe;wBACf,2BAA2B;wBAC3B,aAAa;wBACb,eAAe;wBACf,YAAY;wBACZ,eAAe;AACf,wBAAA;AACE,4BAAA,OAAO,EAAE,eAAe;AACxB,4BAAA,UAAU,EAAE,CAAC,cAA8B,EAAE,YAAiC,KAAI;AAChF,gCAAA,OAAO,IAAI,eAAe,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;6BACzD;AACD,4BAAA,IAAI,EAAE,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;AAChD,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,qBAAqB;AAC9B,4BAAA,UAAU,EAAE,CAAC,OAAgB,EAAE,OAAe,KAAI;AAChD,gCAAA,OAAO,IAAI,2BAA2B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;6BACzD;AACD,4BAAA,IAAI,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC;AAClC,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,eAAe;AACxB,4BAAA,WAAW,EAAE,oBAAoB;AAClC,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;;ACxHD;;AAEG;;;;"}
|