{"version":3,"sources":["node_modules/@ngrx/component-store/fesm2022/ngrx-component-store.mjs","node_modules/@ngrx/operators/fesm2022/ngrx-operators.mjs","src/app/shared/stores/document.store.ts","src/app/shared/components/document-filterable-search/document-filterable-search-component.ts","src/app/shared/components/filtering-search-component-base/filtering-search.component-base.html","src/app/shared/components/documents-viewer-base/documents-viewer-base.component.ts"],"sourcesContent":["import { Observable, Subscription, asapScheduler, ReplaySubject, isObservable, of, queueScheduler, EMPTY, throwError, scheduled, combineLatest, Subject } from 'rxjs';\nimport { take, takeUntil, observeOn, tap, withLatestFrom, map, catchError, distinctUntilChanged, shareReplay } from 'rxjs/operators';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, inject, computed, isDevMode, Injectable, Optional, Inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * @license MIT License\n *\n * Copyright (c) 2017-2020 Nicholas Jamieson and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nfunction debounceSync() {\n return source => new Observable(observer => {\n let actionSubscription;\n let actionValue;\n const rootSubscription = new Subscription();\n rootSubscription.add(source.subscribe({\n complete: () => {\n if (actionSubscription) {\n observer.next(actionValue);\n }\n observer.complete();\n },\n error: error => {\n observer.error(error);\n },\n next: value => {\n actionValue = value;\n if (!actionSubscription) {\n actionSubscription = asapScheduler.schedule(() => {\n observer.next(actionValue);\n actionSubscription = undefined;\n });\n rootSubscription.add(actionSubscription);\n }\n }\n }));\n return rootSubscription;\n });\n}\n\n/**\n * Checks to see if the OnInitStore lifecycle hook\n * is defined on the ComponentStore.\n *\n * @param cs ComponentStore type\n * @returns boolean\n */\nfunction isOnStoreInitDefined(cs) {\n return typeof cs.ngrxOnStoreInit === 'function';\n}\n/**\n * Checks to see if the OnInitState lifecycle hook\n * is defined on the ComponentStore.\n *\n * @param cs ComponentStore type\n * @returns boolean\n */\nfunction isOnStateInitDefined(cs) {\n return typeof cs.ngrxOnStateInit === 'function';\n}\n/**\n * @description\n *\n * Function that returns the ComponentStore\n * class registered as a provider,\n * and uses a factory provider to instantiate the\n * ComponentStore and run the lifecycle hooks\n * defined on the ComponentStore.\n *\n * @param componentStoreClass The ComponentStore with lifecycle hooks\n * @returns Provider[]\n *\n * @usageNotes\n *\n * ```ts\n * @Injectable()\n * export class MyStore\n * extends ComponentStore<{ init: boolean }>\n * implements OnStoreInit, OnStateInit\n * {\n *\n * constructor() {\n * super({ init: true });\n * }\n *\n * ngrxOnStoreInit() {\n * // runs once after store has been instantiated\n * }\n *\n * ngrxOnStateInit() {\n * // runs once after store state has been initialized\n * }\n * }\n *\n * @Component({\n * providers: [\n * provideComponentStore(MyStore)\n * ]\n * })\n * export class MyComponent {\n * constructor(private myStore: MyStore) {}\n * }\n * ```\n */\nfunction provideComponentStore(componentStoreClass) {\n const CS_WITH_HOOKS = new InjectionToken('@ngrx/component-store ComponentStore with Hooks');\n return [{\n provide: CS_WITH_HOOKS,\n useClass: componentStoreClass\n }, {\n provide: componentStoreClass,\n useFactory: () => {\n const componentStore = inject(CS_WITH_HOOKS);\n // Set private property that CS has been provided with lifecycle hooks\n componentStore['ɵhasProvider'] = true;\n if (isOnStoreInitDefined(componentStore)) {\n componentStore.ngrxOnStoreInit();\n }\n if (isOnStateInitDefined(componentStore)) {\n componentStore.state$.pipe(take(1)).subscribe(() => componentStore.ngrxOnStateInit());\n }\n return componentStore;\n }\n }];\n}\nconst INITIAL_STATE_TOKEN = new InjectionToken('@ngrx/component-store Initial State');\nlet ComponentStore = /*#__PURE__*/(() => {\n class ComponentStore {\n constructor(defaultState) {\n // Should be used only in ngOnDestroy.\n this.destroySubject$ = new ReplaySubject(1);\n // Exposed to any extending Store to be used for the teardown.\n this.destroy$ = this.destroySubject$.asObservable();\n this.stateSubject$ = new ReplaySubject(1);\n this.isInitialized = false;\n // Needs to be after destroy$ is declared because it's used in select.\n this.state$ = this.select(s => s);\n this.state = toSignal(this.stateSubject$.pipe(takeUntil(this.destroy$)), {\n requireSync: false,\n manualCleanup: true\n });\n this.ɵhasProvider = false;\n // State can be initialized either through constructor or setState.\n if (defaultState) {\n this.initState(defaultState);\n }\n this.checkProviderForHooks();\n }\n /** Completes all relevant Observable streams. */\n ngOnDestroy() {\n this.stateSubject$.complete();\n this.destroySubject$.next();\n }\n /**\n * Creates an updater.\n *\n * Throws an error if updater is called with synchronous values (either\n * imperative value or Observable that is synchronous) before ComponentStore\n * is initialized. If called with async Observable before initialization then\n * state will not be updated and subscription would be closed.\n *\n * @param updaterFn A static updater function that takes 2 parameters (the\n * current state and an argument object) and returns a new instance of the\n * state.\n * @return A function that accepts one argument which is forwarded as the\n * second argument to `updaterFn`. Every time this function is called\n * subscribers will be notified of the state change.\n */\n updater(updaterFn) {\n return observableOrValue => {\n // We need to explicitly throw an error if a synchronous error occurs.\n // This is necessary to make synchronous errors catchable.\n let isSyncUpdate = true;\n let syncError;\n // We can receive either the value or an observable. In case it's a\n // simple value, we'll wrap it with `of` operator to turn it into\n // Observable.\n const observable$ = isObservable(observableOrValue) ? observableOrValue : of(observableOrValue);\n const subscription = observable$.pipe(\n // Push the value into queueScheduler\n observeOn(queueScheduler),\n // If the state is not initialized yet, we'll throw an error.\n tap(() => this.assertStateIsInitialized()), withLatestFrom(this.stateSubject$),\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n map(([value, currentState]) => updaterFn(currentState, value)), tap(newState => this.stateSubject$.next(newState)), catchError(error => {\n if (isSyncUpdate) {\n syncError = error;\n return EMPTY;\n }\n return throwError(error);\n }), takeUntil(this.destroy$)).subscribe();\n if (syncError) {\n throw syncError;\n }\n isSyncUpdate = false;\n return subscription;\n };\n }\n /**\n * Initializes state. If it was already initialized then it resets the\n * state.\n */\n initState(state) {\n scheduled([state], queueScheduler).subscribe(s => {\n this.isInitialized = true;\n this.stateSubject$.next(s);\n });\n }\n /**\n * Sets the state specific value.\n * @param stateOrUpdaterFn object of the same type as the state or an\n * updaterFn, returning such object.\n */\n setState(stateOrUpdaterFn) {\n if (typeof stateOrUpdaterFn !== 'function') {\n this.initState(stateOrUpdaterFn);\n } else {\n this.updater(stateOrUpdaterFn)();\n }\n }\n /**\n * Patches the state with provided partial state.\n *\n * @param partialStateOrUpdaterFn a partial state or a partial updater\n * function that accepts the state and returns the partial state.\n * @throws Error if the state is not initialized.\n */\n patchState(partialStateOrUpdaterFn) {\n const patchedState = typeof partialStateOrUpdaterFn === 'function' ? partialStateOrUpdaterFn(this.get()) : partialStateOrUpdaterFn;\n this.updater((state, partialState) => ({\n ...state,\n ...partialState\n }))(patchedState);\n }\n get(projector) {\n this.assertStateIsInitialized();\n let value;\n this.stateSubject$.pipe(take(1)).subscribe(state => {\n value = projector ? projector(state) : state;\n });\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return value;\n }\n select(...args) {\n const {\n observablesOrSelectorsObject,\n projector,\n config\n } = processSelectorArgs(args);\n const source$ = hasProjectFnOnly(observablesOrSelectorsObject, projector) ? this.stateSubject$ : combineLatest(observablesOrSelectorsObject);\n return source$.pipe(config.debounce ? debounceSync() : noopOperator(), projector ? map(projectorArgs =>\n // projectorArgs could be an Array in case where the entire state is an Array, so adding this check\n observablesOrSelectorsObject.length > 0 && Array.isArray(projectorArgs) ? projector(...projectorArgs) : projector(projectorArgs)) : noopOperator(), distinctUntilChanged(config.equal), shareReplay({\n refCount: true,\n bufferSize: 1\n }), takeUntil(this.destroy$));\n }\n selectSignal(...args) {\n const selectSignalArgs = [...args];\n const options = typeof selectSignalArgs[args.length - 1] === 'object' ? selectSignalArgs.pop() : {};\n const projector = selectSignalArgs.pop();\n const signals = selectSignalArgs;\n const computation = signals.length === 0 ? () => projector(this.state()) : () => {\n const values = signals.map(signal => signal());\n return projector(...values);\n };\n return computed(computation, options);\n }\n /**\n * Creates an effect.\n *\n * This effect is subscribed to throughout the lifecycle of the ComponentStore.\n * @param generator A function that takes an origin Observable input and\n * returns an Observable. The Observable that is returned will be\n * subscribed to for the life of the component.\n * @return A function that, when called, will trigger the origin Observable.\n */\n effect(generator) {\n const origin$ = new Subject();\n generator(origin$)\n // tied to the lifecycle 👇 of ComponentStore\n .pipe(takeUntil(this.destroy$)).subscribe();\n return observableOrValue => {\n const observable$ = isObservable(observableOrValue) ? observableOrValue : of(observableOrValue);\n return observable$.pipe(takeUntil(this.destroy$)).subscribe(value => {\n // any new 👇 value is pushed into a stream\n origin$.next(value);\n });\n };\n }\n /**\n * Used to check if lifecycle hooks are defined\n * but not used with provideComponentStore()\n */\n checkProviderForHooks() {\n asapScheduler.schedule(() => {\n if (isDevMode() && (isOnStoreInitDefined(this) || isOnStateInitDefined(this)) && !this.ɵhasProvider) {\n const warnings = [isOnStoreInitDefined(this) ? 'OnStoreInit' : '', isOnStateInitDefined(this) ? 'OnStateInit' : ''].filter(defined => defined);\n console.warn(`@ngrx/component-store: ${this.constructor.name} has the ${warnings.join(' and ')} ` + 'lifecycle hook(s) implemented without being provided using the ' + `provideComponentStore(${this.constructor.name}) function. ` + `To resolve this, provide the component store via provideComponentStore(${this.constructor.name})`);\n }\n });\n }\n assertStateIsInitialized() {\n if (!this.isInitialized) {\n throw new Error(`${this.constructor.name} has not been initialized yet. ` + `Please make sure it is initialized before updating/getting.`);\n }\n }\n /** @nocollapse */\n static {\n this.ɵfac = function ComponentStore_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ComponentStore)(i0.ɵɵinject(INITIAL_STATE_TOKEN, 8));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ComponentStore,\n factory: ComponentStore.ɵfac\n });\n }\n }\n return ComponentStore;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction processSelectorArgs(args) {\n const selectorArgs = Array.from(args);\n const defaultEqualityFn = (previous, current) => previous === current;\n // Assign default values.\n let config = {\n debounce: false,\n equal: defaultEqualityFn\n };\n // Last argument is either config or projector or selectorsObject\n if (isSelectConfig(selectorArgs[selectorArgs.length - 1])) {\n config = {\n ...config,\n ...selectorArgs.pop()\n };\n }\n // At this point selectorArgs is either projector, selectors with projector or selectorsObject\n if (selectorArgs.length === 1 && typeof selectorArgs[0] !== 'function') {\n // this is a selectorsObject\n return {\n observablesOrSelectorsObject: selectorArgs[0],\n projector: undefined,\n config\n };\n }\n const projector = selectorArgs.pop();\n // The Observables to combine, if there are any left.\n const observables = selectorArgs;\n return {\n observablesOrSelectorsObject: observables,\n projector,\n config\n };\n}\nfunction isSelectConfig(arg) {\n const typedArg = arg;\n return typeof typedArg.debounce !== 'undefined' || typeof typedArg.equal !== 'undefined';\n}\nfunction hasProjectFnOnly(observablesOrSelectorsObject, projector) {\n return Array.isArray(observablesOrSelectorsObject) && observablesOrSelectorsObject.length === 0 && projector;\n}\nfunction noopOperator() {\n return source$ => source$;\n}\n\n/**\n * DO NOT EDIT\n *\n * This file is automatically generated at build\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ComponentStore, INITIAL_STATE_TOKEN, provideComponentStore };\n","import { of, EMPTY } from 'rxjs';\nimport { concatMap, withLatestFrom, map, catchError, tap, finalize } from 'rxjs/operators';\n\n/**\n * `concatLatestFrom` combines the source value\n * and the last available value from a lazily evaluated Observable\n * in a new array\n *\n * @usageNotes\n *\n * Select the active customer from the NgRx Store\n *\n * ```ts\n * import { concatLatestFrom } from '@ngrx/operators';\n * import * as fromCustomers from '../customers';\n *\n * this.actions$.pipe(\n * concatLatestFrom(() => this.store.select(fromCustomers.selectActiveCustomer))\n * )\n * ```\n *\n * Select a customer from the NgRx Store by its id that is available on the action\n *\n * ```ts\n * import { concatLatestFrom } from '@ngrx/operators';\n * import * fromCustomers from '../customers';\n *\n * this.actions$.pipe(\n * concatLatestFrom((action) => this.store.select(fromCustomers.selectCustomer(action.customerId)))\n * )\n * ```\n */\nfunction concatLatestFrom(observablesFactory) {\n return concatMap(value => {\n const observables = observablesFactory(value);\n const observablesAsArray = Array.isArray(observables) ? observables : [observables];\n return of(value).pipe(withLatestFrom(...observablesAsArray));\n });\n}\n\n/**\n * `mapResponse` is a map operator with included error handling.\n * It is similar to `tapResponse`, but allows to map the response as well.\n *\n * The main use case is for NgRx Effects which requires an action to be dispatched.\n *\n * @usageNotes\n * ```ts\n * export const loadAllUsers = createEffect((\n * actions$ = inject(Actions),\n * usersService = inject(UsersService)\n * ) => {\n * return actions$.pipe(\n * ofType(UsersPageActions.opened),\n * exhaustMap(() => {\n * return usersService.getAll().pipe(\n * mapResponse({\n * next: (users) => UsersApiActions.usersLoadedSuccess({ users }),\n * error: (error) => UsersApiActions.usersLoadedFailure({ error }),\n * })\n * );\n * })\n * );\n * });\n * ```\n */\nfunction mapResponse(observer) {\n return source$ => source$.pipe(map(value => observer.next(value)), catchError(error => of(observer.error(error))));\n}\n\n/**\n * Handles the response in ComponentStore effects in a safe way, without\n * additional boilerplate. It enforces that the error case is handled and\n * that the effect would still be running should an error occur.\n *\n * Takes optional callbacks for `complete` and `finalize`.\n *\n * @usageNotes\n *\n * ```ts\n * readonly dismissAlert = this.effect<Alert>((alert$) => {\n * return alert$.pipe(\n * concatMap(\n * (alert) => this.alertsService.dismissAlert(alert).pipe(\n * tapResponse(\n * (dismissedAlert) => this.alertDismissed(dismissedAlert),\n * (error: { message: string }) => this.logError(error.message)\n * )\n * )\n * )\n * );\n * });\n *\n * readonly loadUsers = this.effect<void>((trigger$) => {\n * return trigger$.pipe(\n * tap(() => this.patchState({ loading: true })),\n * exhaustMap(() =>\n * this.usersService.getAll().pipe(\n * tapResponse({\n * next: (users) => this.patchState({ users }),\n * error: (error: HttpErrorResponse) => this.logError(error.message),\n * finalize: () => this.patchState({ loading: false }),\n * })\n * )\n * )\n * );\n * });\n * ```\n */\nfunction tapResponse(observerOrNext, error, complete) {\n const observer = typeof observerOrNext === 'function' ? {\n next: observerOrNext,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n error: error,\n complete\n } : observerOrNext;\n return source => source.pipe(tap({\n next: observer.next,\n complete: observer.complete\n }), catchError(error => {\n observer.error(error);\n return EMPTY;\n }), observer.finalize ? finalize(observer.finalize) : source$ => source$);\n}\n\n/**\n * DO NOT EDIT\n *\n * This file is automatically generated at build\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { concatLatestFrom, mapResponse, tapResponse };\n","import { Injectable, inject } from \"@angular/core\"\nimport { ComponentStore } from '@ngrx/component-store';\nimport { tapResponse } from '@ngrx/operators';\nimport { EntityAdapter, EntityState, createEntityAdapter } from \"@ngrx/entity\"\nimport { mergeMap, Observable, of, switchMap, tap, withLatestFrom } from \"rxjs\"\nimport { BackEndService } from \"src/app/services/backend.service\"\nimport { NamedSearchParameters } from \"src/app/shared/components/filtering-search-component-base/filtering-search-types\"\n\n\nexport interface ItemWithID {\n id: number\n snippets: string | undefined\n}\n\nexport interface ListingState {\n window: number,\n present: number,\n total: number\n}\n\nexport interface DocumentsState<Document extends ItemWithID> extends EntityState<Document> {\n loadingAt: number\n loading: boolean\n error: boolean\n listing: ListingState,\n search: NamedSearchParameters,\n}\nconst adapter: EntityAdapter<ItemWithID> = createEntityAdapter<ItemWithID>()\nconst {\n selectAll\n} = adapter.getSelectors()\n\n@Injectable()\nexport class DocumentsStore<Document extends ItemWithID> extends ComponentStore<DocumentsState<Document>> {\n protected backendService = inject(BackEndService)\n protected adapter = adapter\n\n constructor() {\n super({\n ids: [],\n entities: {},\n loading: true,\n loadingAt: 0,\n error: false,\n search: {\n parameters: {},\n order: {\n column: '',\n direction: ''\n }\n\n },\n listing: {\n window: 50,\n present: 0,\n total: 0\n }\n })\n }\n\n readonly updateSearch = this.effect<NamedSearchParameters>(\n (search$) => search$.pipe(\n tap(search => this.patchState({\n ids: [], entities: {},\n search,\n listing: {\n window: 50,\n present: 0,\n total: 0\n }\n })),\n tap(() => this.getDocuments())\n )\n )\n\n\n readonly getDocuments = this.effect<void>((trigger$) => {\n return trigger$.pipe(\n withLatestFrom(this.select(state => state)),\n mergeMap(([_void, state]) => {\n if (state.loadingAt !== state.listing.present + 1) {\n this.patchState({ loading: true, error: false, loadingAt: state.listing.present + 1})\n return this.backendService.search({\n ...state.search,\n window: {\n start: state.listing.present + 1,\n size: state.listing.window,\n },\n }).pipe(\n tapResponse(\n (result: any) => {\n state = this.adapter.upsertMany(result.articles, state)\n return this.patchState({ ...state, loading: false, error: false, listing: result.listing })\n },\n (error) => this.patchState({ loading: false, error: true }),\n )\n )\n } else {\n return of({})\n }\n }\n )\n )\n })\n\n\n readonly updateDocument = this.effect<Document>(\n (trigger$) => trigger$.pipe(\n tap((document) => {\n const state = this.get()\n this.patchState({\n ...state,\n entities: {\n ...state.entities,\n [document.id]: {\n document\n }\n }\n })\n })\n )\n )\n\n readonly removeAll = this.effect<void>(\n (trigger$) => trigger$.pipe(\n tapResponse(\n () => this.patchState({\n ids: [],\n entities: {} ,\n listing: {\n window: 50,\n present: 0,\n total: 0\n }\n }),\n (error) => error\n )\n )\n )\n\n readonly documents$: Observable<Document[]> = this.select(state => selectAll(state).sort((a, b) => a.id - b.id)) as Observable<Document[]>\n readonly loading$: Observable<boolean> = this.select(state => state.loading)\n readonly error$: Observable<boolean> = this.select(state => state.error)\n readonly listing$: Observable<ListingState> = this.select(state => state.listing)\n readonly search$: Observable<NamedSearchParameters> = this.select(state => state.search)\n}","import { Component, Input, OnInit, AfterViewInit, OnDestroy } from '@angular/core'\nimport { DatePipe, AsyncPipe, DecimalPipe, NgTemplateOutlet } from '@angular/common'\nimport { FilteringSearchComponentBase } from '../filtering-search-component-base/filtering-search.component-base'\nimport { Subscription } from 'rxjs'\nimport { openClose, optionGroupTrigger } from '../../animations/open-close-animations'\nimport { NgSelectModule } from '@ng-select/ng-select'\nimport { DateRangeComponent } from '../date-range/date-range.component'\nimport { FormsModule } from '@angular/forms'\nimport { NgxBootstrapIconsModule } from 'ngx-bootstrap-icons'\nimport { NgxSliderModule } from '@angular-slider/ngx-slider'\n\n\n@Component({\n selector: 'local-filtering-search',\n templateUrl: '../filtering-search-component-base/filtering-search.component-base.html',\n styleUrls: ['../filtering-search-component-base/filtering-search.component-base.scss'],\n animations: [\n openClose,\n optionGroupTrigger,\n ],\n imports: [\n NgxBootstrapIconsModule,\n FormsModule,\n DateRangeComponent,\n NgSelectModule,\n NgxSliderModule,\n AsyncPipe,\n DecimalPipe,\n DatePipe,\n NgTemplateOutlet\n ]\n})\n\nexport class LocalFilteringSearchComponent extends FilteringSearchComponentBase implements OnInit, AfterViewInit, OnDestroy {\n @Input() public documentsStore : any\n\n @Input() public embedded = false\n @Input() public contentSet = false\n\n loadSearchsubscription$: Subscription = new Subscription\n\n override ngOnInit(): void {\n super.ngOnInit()\n\n this.loadSearchsubscription$ = this.savedSearchService.searchToLoad$.subscribe(search => {\n this.loadSearch({ parameters: search.parameters ?? search }, true)\n this.makeSearchRequest()\n })\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy()\n this.loadSearchsubscription$.unsubscribe()\n }\n\n override makeSearchRequest(startAt: number = 1) {\n if (startAt == 1) {\n this.documentsStore.removeAll()\n }\n\n super.makeSearchRequest(startAt)\n\n this.documentsStore.updateSearch({\n area: this.area,\n parameters: {\n ...this.search.parameters!,\n ...this.requiredFilters\n },\n order: this.search.order!,\n })\n }\n\n override saveSearch(type = 'search') {\n let name = this.createSearchName()\n\n let parameters = {\n ...this.search.parameters!,\n ...this.requiredFilters\n }\n\n let area = this.area\n if (this.requiredFilters?.['articleID']) {\n area = 'situations'\n type = 'followdocs'\n name = this.requiredFilters['name'] + ' - ' + name\n parameters['id'] = this.requiredFilters?.['articleID']\n parameters['area'] = 'situations'\n }\n\n this.savedSearchService.saveSearch({\n area,\n parameters: {\n area,\n parameters,\n },\n type,\n name,\n })\n }\n override clearSearch() {\n if (this.embedded) {\n this.resetSearch()\n this.makeSearchRequest()\n } else {\n super.clearSearch()\n }\n }\n}","@if(showFilter) {\n<div class=\"search-top-level-container\">\n <div class=\"row search-box g-0 search-box-gradient\">\n <div class=\"col autocomplete-container\" (click)=\"$event.stopPropagation()\">\n @for (option of selectedOptions; track option; let i = $index) {\n\n @if (! searchTypes.isSearchShowSearchOptionGroup(option) && option.selected) {\n <div class=\"autocomplete-selected\">\n <div class=\"top-level\" [class.collapsed]=\"!option.active || option.type == searchOptionType.searchnumbers || option.type == searchOptionType.select\">\n @if ((option.type !== searchOptionType.switchoptiongroup && option.type !== searchOptionType.select && option.type !== searchOptionType.stringinput && option.type !== searchOptionType.searchnumbers) ||\n (searchTypes.isSearchStringOption(option) && option.matchingOption)) {\n <span class=\"row-toggle\" (click)=\"toggleActiveOption(i)\" [style.background-color]=\"option.colour\">\n <i-bs [name]=\"iconNames.ChevronDown\" [@openClose]=\"option.active ? 'open' : 'closed'\" class=\"d-inline-block\"></i-bs>\n </span>\n }\n @if (option.type == searchOptionType.switchoptiongroup || option.type == searchOptionType.searchnumbers || option.type === searchOptionType.select) {\n <span class=\"row-toggle\" [style.background-color]=\"option.colour\">\n <i-bs></i-bs>\n </span>\n }\n <span class=\"option-name\" (click)=\"toggleActiveOption(i)\" [style.background-color]=\"option.colour\">{{option.name}} </span>\n @if (searchTypes.isSearchCheckboxOption(option)) {\n <span class=\"option-summary\" [style.background-color]=\"option.colour\">\n @if (option.numberChecked! > 1) {\n\n ({{option.numberChecked}} of {{option.checkboxes.length}})\n\n }\n @if (option.numberChecked === 1) {\n\n <span [innerHTML]=\"getFirstChecked(option.checkboxes)\"></span>\n\n }\n </span>\n }\n @if (searchTypes.isSearchNumberRangeOption(option)) {\n <span class=\"option-summary\" [style.background-color]=\"option.colour\">\n @if (option.orPercent && option.orPercentOptions!.showPercent) {\n\n {{option.orPercentOptions!.minValue | number}} — {{option.orPercentOptions!.maxValue | number }}%\n\n } @else {\n\n {{option.prefix}}{{option.minValue | number}}{{option.suffix}} — {{option.prefix}}{{option.maxValue | number }}{{option.suffix}}\n\n }\n @if (option.checkboxes?.length && option.numberChecked! > 0) {\n\n + …\n\n }\n </span>\n }\n @if (searchTypes.isSearchDateRangeOption(option)) {\n <span class=\"option-summary\" [style.background-color]=\"option.colour\">\n <span class=\"badge text-bg-light\">{{friendlyRange(option.minDate, option.maxDate)}} </span>\n @if (option.relativeRange === '') {\n\n {{option.minDate| date: 'mediumDate' }} - {{option.maxDate| date: 'mediumDate' }}\n\n } @else {\n\n <span>\n @switch (option.relativeRange) {\n @case ('1d') {\n Last day\n }\n @case ('1w') {\n Last week\n }\n @case ('1m') {\n Last month\n }\n @case ('1y') {\n Last year\n }\n\n @case ('ytd') {\n Year To Date\n }\n }\n </span>\n\n }\n </span>\n }\n @if (searchTypes.isSearchStringOption(option)) {\n <span class=\"option-summary\" [style.background-color]=\"option.colour\">\n <input type=\"text\" class=\"form-control form-control-sm string-input-field ml-1\" [(ngModel)]=\"$any(option).searchString\" (keyup)=\"loadContent($event)\" autocomplete=\"off\">\n </span>\n }\n @if (searchTypes.isSearchNumbersOption(option)) {\n <span class=\"option-summary\" [style.background-color]=\"option.colour\">\n <input type=\"text\" class=\"form-control form-control-sm string-input-field ml-1\" [(ngModel)]=\"$any(option).numberRange\" (keyup)=\"loadContent($event)\" autocomplete=\"off\" placeholder=\"e.g 1,2-34\">\n </span>\n }\n @if (searchTypes.isSearchSelectOption(option)) {\n <span class=\"option-summary\" [style.background-color]=\"option.colour\">\n <select class=\"form-select-sm\" [(ngModel)]=\"$any(option).selectedValue\" (ngModelChange)=\"loadContent()\">\n @for (selectOption of option.selectOptions; track selectOption) {\n <option [ngValue]=\"selectOption.optionValue\">{{selectOption.label}}</option>\n }\n </select>\n </span>\n }\n @if (searchTypes.isSearchMultiAutoCompleteOption(option)) {\n <span class=\"option-summary\" [style.background-color]=\"option.colour\">\n @if (option.required.length > 1) {\n\n {{option.required.length}} parties\n\n }\n @if (option.required.length === 1) {\n\n <span [innerHTML]=\"option.required[0].title\"></span>\n @if (option.required[0].filterby) {\n\n ({{option.required[0].filterby}})\n\n }\n\n }\n </span>\n }\n <button type=\"button\" class=\"btn-close\" (click)=\"topLevelSearchOptionDeSelect(i)\"></button>\n </div>\n @if (option.active && option.type !== searchOptionType.searchnumbers && option.type !== searchOptionType.select) {\n <div [attr.id]=\"'collapse-' + option.id\" class=\"collapse second-level show\" [style.background]=\"'linear-gradient(var(--bs-body-bg), var(--bs-body-bg)) padding-box, linear-gradient(to right, ' + option.colour + ', #ccc) border-box'\"\n @optionGroupTrigger>\n <div class=\"row g-0\">\n @if (searchTypes.isSearchCheckboxOption(option) || searchTypes.isSearchStringOption(option)) {\n <ng-container *ngTemplateOutlet=\"showCheckboxesTemplate; context: { option }\"></ng-container>\n }\n @if (option.type == searchOptionType.stringinput && searchTypes.isSearchStringOption(option) && option.matchingOptionTypes) {\n <ul class=\"col list-unstyled\">\n @if (option.matchingOptionTypes.exactPhrase) {\n <li class=\"form-check\">\n <input class=\"form-check-input ms-0 me-1\" [name]=\"option.name\" type=\"radio\" [value]=\"'phrase'\" [(ngModel)]=\"$any(option).matchingOption\" [checked]=\"option.matchingOption === 'phrase'\" id=\"{{ option.name + '_phrase' }}\"\n (ngModelChange)=\"loadContent()\">\n <label class=\"form-check-label\" for=\"{{ option.name + '_phrase' }}\">Exact Phrase</label>\n </li>\n }\n @if (option.matchingOptionTypes.allWords) {\n <li class=\"form-check\">\n <input class=\"form-check-input ms-0 me-1\" [name]=\"option.name\" type=\"radio\" [value]=\"'all'\" [(ngModel)]=\"$any(option).matchingOption\" [checked]=\"option.matchingOption === 'all'\" id=\"{{ option.name + '_all' }}\"\n (ngModelChange)=\"loadContent()\">\n <label class=\"form-check-label\" for=\"{{ option.name + '_all' }}\">All words</label>\n </li>\n }\n @if (option.matchingOptionTypes.someWords) {\n <li class=\"form-check\">\n <input class=\"form-check-input ms-0 me-1\" [name]=\"option.name\" type=\"radio\" [value]=\"'some'\" [(ngModel)]=\"$any(option).matchingOption\" [checked]=\"option.matchingOption === 'some'\" id=\"{{ option.name + '_some' }}\"\n (ngModelChange)=\"loadContent()\">\n <label class=\"form-check-label\" for=\"{{ option.name + '_some' }}\">Any word</label>\n </li>\n }\n @if (option.matchingOptionTypes.booleanMode) {\n <li class=\"form-check\">\n <input class=\"form-check-input ms-0 me-1\" [name]=\"option.name\" type=\"radio\" [value]=\"'boolean'\" [(ngModel)]=\"$any(option).matchingOption\" [checked]=\"option.matchingOption === 'boolean'\"\n id=\"{{ option.name + '_boolean' }}\" (ngModelChange)=\"loadContent()\">\n <label class=\"form-check-label\" for=\"{{ option.name + '_boolean' }}\">Boolean mode</label>\n </li>\n }\n </ul>\n }\n @if (searchTypes.isSearchDateRangeOption(option)) {\n <div>\n <ul class=\"list-unstyled\">\n <li (click)=\"setDateRange( option, '1d')\">\n <span class=\"checkbox-label w-100\">\n <span class=\"badge text-bg-light\">1d</span> Past Day\n </span>\n </li>\n <li (click)=\"setDateRange( option, 'wd')\" class=\"date-range\">\n <span class=\"checkbox-label w-100\">\n <span class=\"badge text-bg-light\">wd</span> Last Week Day\n </span>\n </li>\n <li (click)=\"setDateRange(option, '1w')\">\n <span class=\"checkbox-label w-100\">\n <span class=\"badge text-bg-light\">1w</span> Past Week\n </span>\n </li>\n <li (click)=\"setDateRange(option, '1m')\">\n <span class=\"checkbox-label w-100\">\n <span class=\"badge text-bg-light\">1m</span> Past Month\n </span>\n </li>\n <li (click)=\"setDateRange(option, '1y')\">\n <span class=\"checkbox-label w-100\">\n <span class=\"badge text-bg-light\">1y</span> Past Year\n </span>\n </li>\n <li (click)=\"setDateRange(option, 'ytd')\">\n <span class=\"checkbox-label w-100\">\n <span class=\"badge text-bg-light\">ytd</span> Year To Date\n </span>\n </li>\n </ul>\n <div class=\"row\">\n <div class=\"col\">\n <date-range [(minDate)]=\"$any(option).minDate\" [(maxDate)]=\"$any(option).maxDate\" (maxDateChange)=\"loadContentAfterDateChange($event, option, $any(option).maxDate)\"\n (minDateChange)=\"loadContentAfterDateChange($event, option, $any(option).minDate)\"></date-range>\n </div>\n </div>\n </div>\n }\n @if (searchTypes.isSearchMultiAutoCompleteOption(option)) {\n <div>\n <ng-select [items]=\"option.items\" bindLabel=\"title\" [multiple]=\"true\" placeholder=\"Search by name\" [(ngModel)]=\"$any(option).required\" [loading]=\"option.searching!\" [searchFn]=\"multiAutocompleteNgSelectSearchFn\"\n (search)=\"multiAutocompleteSearch($event, option)\" (change)=\"multiAutocompleteChange($event, option)\" (add)=\"multiAutocompleteChange($event, option)\" (clear)=\"multiAutocompleteClear(option)\"\n (remove)=\"multiAutocompleteRemove($event, option)\" class=\"ng-select-multiautocomplete\">\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\n <span class=\"ng-value-label\" [innerHTML]=\"item.title\">\n\n </span>\n @if (option.filter) {\n <select (mousedown)=\"$event.stopPropagation()\" [(ngModel)]=\"$any(option).itemfilters![item.id]\">\n @for (filter of option.filter; track filter) {\n <option [value]=\"filter\">{{filter}}</option>\n }\n <option [value]=\"\"></option>\n </select>\n }\n <span class=\"ng-value-icon right\" (click)=\"clear(item)\">×</span>\n </ng-template>\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\n <span [innerHTML]=\"item.title\"></span>\n </ng-template>\n </ng-select>\n </div>\n }\n @if (searchTypes.isSearchNumberRangeOption(option)) {\n <div>\n @if (option.orPercent) {\n <div class=\"row justify-content-center mb-2 g-0\">\n <div class=\"col-auto text-nowrap\">\n {{option.prefix}} \n </div>\n <div class=\"col-auto text-nowrap\">\n <div class=\"form-switch\">\n <input class=\"form-check-input\" id=\"checkbox-{{option.id}}-or\" type=\"checkbox\" [(ngModel)]=\"$any(option).orPercentOptions!.showPercent\">\n </div>\n </div>\n <div class=\"col-auto text-nowrap\">\n %\n </div>\n </div>\n }\n @if (option.orPercent && option.orPercentOptions!.showPercent) {\n\n <div class=\"row justify-content-center g-0\">\n <div class=\"col-auto\">\n <div class=\"form-inline\">\n <input type=\"text\" class=\"form-control form-control-sm small-number\" [(ngModel)]=\"$any(option).orPercentOptions!.minValue\" (input)=\"loadContent()\">\n <label>%</label>\n </div>\n </div>\n <div class=\"col-auto\">\n <div class=\"form-inline\">\n <label> — </label>\n </div>\n </div>\n <div class=\"col-auto\">\n <div class=\"form-inline\">\n <input type=\"text\" class=\"form-control form-control-sm small-number\" [(ngModel)]=\"$any(option).orPercentOptions!.maxValue\" (input)=\"loadContent()\">\n <label>%</label>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col custom-slider\">\n <ngx-slider class=\"custom-slider\" [(value)]=\"$any(option).orPercentOptions!.minValue\" [(highValue)]=\"$any(option).orPercentOptions!.maxValue\" [options]=\"{ floor: 0, ceil: 100, logScale: false,}\"\n (valueChange)=\"loadContent()\"></ngx-slider>\n </div>\n </div>\n\n } @else {\n\n <div class=\"row justify-content-center g-0\">\n <div class=\"col-auto\">\n <div class=\"form-inline\">\n <label>{{option.prefix}}</label>\n <input type=\"text\" class=\"form-control form-control-sm larger-number\" [(ngModel)]=\"$any(option).minValue\" (input)=\"loadContent($event)\">\n <label>{{option.suffix}}</label>\n </div>\n </div>\n <div class=\"col-auto\">\n <div class=\"form-inline\">\n <label> — </label>\n </div>\n </div>\n <div class=\"col-auto\">\n <div class=\"form-inline\">\n <label>{{option.prefix}}</label>\n <input type=\"text\" class=\"form-control form-control-sm larger-number\" [(ngModel)]=\"$any(option).maxValue\" (input)=\"loadContent($event)\">\n <label>{{option.suffix}}</label>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col custom-slider\">\n <ngx-slider class=\"custom-slider\" [(value)]=\"$any(option).minValue\" [(highValue)]=\"$any(option).maxValue\" [options]=\"option.options\" (valueChange)=\"loadContent()\"></ngx-slider>\n </div>\n </div>\n\n }\n @if (option.checkboxes?.length) {\n <div class=\"row justify-content-center\">\n <div class=\"col-auto text-nowrap\">\n @for (checkbox of option.checkboxes; track checkbox; let i = $index) {\n <div class=\"form-switch\">\n <input class=\"form-check-input\" id=\"checkbox-{{option.id}}-{{i}}\" type=\"checkbox\" [value]=\"checkbox.value || checkbox.name\" [checked]=\"checkbox.checked\" (change)=\"toggleCheckBox(checkbox, option)\">\n <label class=\"form-check-label\" for=\"checkbox-{{option.id}}-{{i}}\"> {{checkbox.name}}</label>\n </div>\n }\n </div>\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n </div>\n }\n\n }\n <div class=\"form-group search-input\">\n <input #input id=\"autocomplete-input\" type=\"text\" class=\"form-control autocomplete\" (focus)=\"setupToShowAutoCompleteOptions(input.value)\" (keyup)=\"setupToShowAutoCompleteOptions(input.value)\" (paste)=\"handlePaste($event)\"\n placeholder=\"{{filterPlaceholder}}\" [(ngModel)]=\"autocompleteText\" (keydown.enter)=\"acceptText()\" autocomplete=\"off\">\n <div #autocompleteoptions class=\"autocomplete-options row\" [style.left.px]=\"leftPosition\">\n @for (optionGroup of topLevelSearchOptionGroups; track optionGroup) {\n\n @if (optionGroup.visible && allDependenciesMetForSearchOptionGroup(optionGroup) && optionGroupHasSomeVisibleElements(optionGroup)) {\n <div class=\"option-group-column col\">\n <div class=\"option-group-header text-center\" [style.color]=\"optionGroup.colour\">\n Filter by {{optionGroup.groupName}}\n </div>\n <ul>\n @for (option of optionGroup.options; track option) {\n\n @if (option.visible && !option.selected && allDependenciesMet(option)) {\n <li (click)=\"topLevelSearchOptionSelect(option)\">\n <i-bs [name]=\"option.icon\"></i-bs>\n <span class=\"name\">{{option.name}}</span>\n @if (searchTypes.isSearchStringOption(option) && option.searchString) {\n <span> contains {{option.searchString}}</span>\n }\n @if (searchTypes.isSearchNumbersOption(option) && option.numberRange) {\n <span> {{option.numberRange}}</span>\n }\n @if (searchTypes.isSearchMultiAutoCompleteOption(option)) {\n <div>\n @if (option.searching) {\n <div class=\"spinner-border spinner-border-sm\"></div>\n }\n @if (option.items.length) {\n <ul class=\"matching-options\">\n @for (item of option.items; track item) {\n\n <li (click)=\"topLevelSearchOptionSelect(option, null, item)\">\n <div class=\"matched-option\">\n <span class=\"link-arrow\"></span><span [innerHTML]=\"item.title\"></span>\n </div>\n </li>\n\n }\n </ul>\n }\n </div>\n }\n @if (searchTypes.isSearchCheckboxOption(option) && autocompleteText.length) {\n <ul class=\"matching-options\">\n @for (checkbox of option.checkboxes; track checkbox) {\n\n @if (checkboxDependenciesMet(checkbox, autocompleteText)) {\n <li (click)=\"topLevelSearchOptionSelect(option, checkbox)\">\n <div class=\"matched-option\">\n <span class=\"link-arrow\"></span>{{checkbox.name}}\n </div>\n </li>\n }\n\n }\n </ul>\n }\n </li>\n }\n\n }\n </ul>\n </div>\n }\n\n }\n <div class=\"notch\"></div>\n </div>\n </div>\n </div>\n @if ((userState$ | async)?.user?.ipuser === false) {\n <div class=\"save-container col-auto\">\n @if (allowSearchesToBeSaved && selectedOptions.length > 0) {\n <div class=\"autocomplete-selected\" (click)=\"saveSearch()\">\n <div class=\"top-level\">\n <span class=\"option-name\" class=\"row-toggle\">\n <i-bs [name]=\"iconNames.Save\"></i-bs> {{saveSearchesText}}\n </span>\n </div>\n </div>\n }\n </div>\n }\n @if (selectedOptions.length > 0) {\n <button class=\"btn col-auto btn-close clear-search\" (click)=\"clearSearch()\"></button>\n }\n </div>\n</div>\n}\n\n<ng-template #showCheckboxesTemplate let-option=\"option\" let-indent=\"indent\">\n @if (option.checkboxes?.length) {\n <ul class=\"col list-unstyled {{indent}}\" [style.columns]=\"numberOfColumns(option.checkboxes?.length)\">\n @for (checkbox of option.checkboxes; track checkbox) {\n\n @if (checkboxDependenciesMet(checkbox)) {\n <li>\n <input class=\"checkbox-option\" type=\"checkbox\" [value]=\"checkbox.value || checkbox.name\" [checked]=\"checkbox.checked\" (change)=\"toggleCheckBox(checkbox, option)\">\n <div class=\"checkbox-label\" (click)=\"changeCheckboxes(checkbox, option)\">\n <span class=\"checkbox-name text-nowrap\">\n {{checkbox.name}}\n <span style=\"visibility: hidden;\">Toggle</span>\n </span>\n <span class=\"only-all\">\n @if (checkbox.checked && option.numberChecked === 1) {\n\n All\n\n } @else {\n Only\n }\n </span>\n <span class=\"toggle\">Toggle</span>\n </div>\n </li>\n @if (checkbox.checked && checkbox.conditionalOptions) {\n <li class=\"no-hover\">\n <ng-container *ngTemplateOutlet=\"showCheckboxesTemplate; context: { option: checkbox.conditionalOptions, indent: 'ms-2' }\"></ng-container>\n </li>\n }\n }\n\n }\n </ul>\n }\n\n</ng-template>\n\n<ng-template #companyChooser let-modal>\n <div class=\"modal-header\">\n <h4 class=\"modal-title\" id=\"modal-basic-title\">{{pastedChooserHeader}}</h4>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss('Cross click')\"></button>\n </div>\n <div class=\"modal-body\">\n @if (pasteChooserLoading) {\n <div class=\"d-flex justify-content-center\">\n <div class=\"spinner-border\" role=\"status\">\n </div>\n </div>\n }\n @if (pastedChoices$ | async; as choices) {\n @for (choice of choices; track choice.id; ; let i = $index) {\n <form>\n <div class=\"row my-1\">\n <div class=\"col\">\n <select class=\"form-select\" [(ngModel)]=\"pastedChoices[i].match\" [ngModelOptions]=\"{standalone: true}\">\n <option [ngValue]=\"'contains'\">Contains \"{{choice.id}}\"</option>\n <option [ngValue]=\"'exact'\">{{choice.id}}</option>\n </select>\n </div>\n <div class=\"col-auto\">\n <input type=\"checkbox\" class=\"form-check-input\" [(ngModel)]=\"pastedChoices[i].checked\" [ngModelOptions]=\"{standalone: true}\">\n </div>\n </div>\n </form>\n }\n }\n\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-outline-secondary\" (click)=\"modal.close('Save click')\">Save</button>\n </div>\n</ng-template>","import { ChangeDetectionStrategy, Component, Input, OnInit, inject } from '@angular/core'\nimport { DocumentsStore, ItemWithID } from '../../stores/document.store'\nimport { Dictionary, SearchOption, SearchOptionGroup } from '../filtering-search-component-base/filtering-search-types'\nimport { Store } from '@ngrx/store'\nimport { selectUser } from 'src/app/state/user.reducer'\nimport { Observable } from 'rxjs'\nimport { User } from 'src/app/state/user.model'\nimport { BackEndService } from 'src/app/services/backend.service'\nimport { IconNamesEnum } from 'ngx-bootstrap-icons'\nimport { ActivatedRoute } from '@angular/router'\nimport { ToastService } from 'src/app/services/toast.service'\n\n@Component({\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\n\nexport class DocumentsViewerBase<Document extends ItemWithID> implements OnInit {\n\n public store = inject<Store<any>>(Store)\n protected backendService = inject(BackEndService)\n protected route = inject(ActivatedRoute)\n\n @Input() public requiredFilters: Dictionary<any> = {}\n @Input() public searchclasses = ''\n @Input() public showCaseInfo = true\n @Input() public contentSet: string | undefined\n\n @Input('embedded') set setType(embedded: boolean) {\n this.embedded = embedded\n if (embedded) {\n this.saveSearchesText = 'Follow'\n } else {\n this.saveSearchesText = 'Save Filters'\n }\n }\n\n @Input() public documentSearchOptionGroups: SearchOptionGroup[] = []\n @Input() public initialSearch = {\n parameters: {\n\n },\n order: {\n column: 'date',\n direction: 'desc'\n }\n }\n\n public embedded = false\n public saveSearchesText = 'Save Filters'\n\n public documents$\n public loading$\n public error$\n public listing$\n public search$\n\n public user$: Observable<User | null>\n\n public iconNames = IconNamesEnum\n\n public searchResultsColumnDefinition: Dictionary<SearchOption> = {}\n\n public toastService = inject(ToastService)\n\n constructor(protected readonly documentsStore: DocumentsStore<Document>) {\n this.documents$ = this.documentsStore.documents$\n this.loading$ = this.documentsStore.loading$\n this.error$ = this.documentsStore.error$\n this.listing$ = this.documentsStore.listing$\n this.search$ = this.documentsStore.search$\n\n this.user$ = this.store.select(selectUser)\n this.contentSet = this.contentSet ?? this.route.snapshot.data['contentSet']\n this.documentSearchOptionGroups = structuredClone(this.route.snapshot.data['searchOptionGroups'])\n }\n\n ngOnInit(): void {\n this.documentSearchOptionGroups.forEach(optionGroup => {\n optionGroup.options.forEach(option => {\n this.searchResultsColumnDefinition[option.id] = option\n })\n })\n }\n\n loadMoreDocuments() {\n this.documentsStore.getDocuments()\n }\n\n toggleOrder(search: any, column: string) {\n let direction = 'asc'\n if (search.order.column === column) {\n direction = search.order!.direction === 'asc' ? 'desc' : 'asc'\n }\n\n this.documentsStore.updateSearch({\n ...search,\n order: {\n ...search.order,\n column,\n direction\n }\n })\n }\n}"],"names":["debounceSync","source","Observable","observer","actionSubscription","actionValue","rootSubscription","Subscription","error","value","asapScheduler","isOnStoreInitDefined","cs","isOnStateInitDefined","INITIAL_STATE_TOKEN","InjectionToken","ComponentStore","defaultState","ReplaySubject","s","toSignal","takeUntil","updaterFn","observableOrValue","isSyncUpdate","syncError","subscription","isObservable","of","observeOn","queueScheduler","tap","withLatestFrom","map","value","currentState","newState","catchError","error","EMPTY","throwError","state","scheduled","stateOrUpdaterFn","partialStateOrUpdaterFn","patchedState","partialState","__spreadValues","projector","take","args","observablesOrSelectorsObject","config","processSelectorArgs","hasProjectFnOnly","combineLatest","debounceSync","noopOperator","projectorArgs","distinctUntilChanged","shareReplay","selectSignalArgs","options","signals","computation","values","signal","computed","generator","origin$","Subject","asapScheduler","isDevMode","isOnStoreInitDefined","isOnStateInitDefined","warnings","defined","__ngFactoryType__","ɵɵinject","ɵɵdefineInjectable","selectorArgs","previous","current","isSelectConfig","arg","typedArg","source$","concatLatestFrom","observablesFactory","concatMap","value","observables","observablesAsArray","of","withLatestFrom","tapResponse","observerOrNext","error","complete","observer","source","tap","catchError","EMPTY","finalize","source$","adapter","createEntityAdapter","selectAll","getSelectors","DocumentsStore","ComponentStore","backendService","inject","BackEndService","constructor","ids","entities","loading","loadingAt","error","search","parameters","order","column","direction","listing","window","present","total","updateSearch","effect","search$","pipe","tap","patchState","getDocuments","trigger$","withLatestFrom","select","state","mergeMap","_void","__spreadProps","__spreadValues","start","size","tapResponse","result","upsertMany","articles","of","updateDocument","document","get","id","removeAll","documents$","sort","a","b","loading$","error$","listing$","factory","ɵfac","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r3","ɵ$index_8_r4","ɵɵnextContext","$index","ctx_r4","ɵɵresetView","toggleActiveOption","ɵɵelement","ɵɵelementEnd","ɵɵstyleProp","option_r6","colour","ɵɵadvance","ɵɵproperty","iconNames","ChevronDown","active","ɵɵtext","ɵɵtextInterpolate2","numberChecked","checkboxes","length","getFirstChecked","ɵɵsanitizeHtml","ɵɵtemplate","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_6_Conditional_1_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_6_Conditional_2_Template","ɵɵconditional","ɵɵpipeBind1","orPercentOptions","minValue","maxValue","ɵɵtextInterpolate6","prefix","suffix","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_7_Conditional_1_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_7_Conditional_2_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_7_Conditional_3_Template","orPercent","showPercent","ɵɵpipeBind2","minDate","maxDate","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_8_Conditional_4_Case_1_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_8_Conditional_4_Case_2_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_8_Conditional_4_Case_3_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_8_Conditional_4_Case_4_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_8_Conditional_4_Case_5_Template","tmp_19_0","relativeRange","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_8_Conditional_3_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_8_Conditional_4_Template","ɵɵtextInterpolate1","friendlyRange","ɵɵtwoWayListener","$event","_r7","$implicit","i0","ɵɵtwoWayBindingSet","searchString","loadContent","ɵɵtwoWayProperty","_r8","numberRange","selectOption_r10","optionValue","ɵɵtextInterpolate","label","_r9","selectedValue","ɵɵrepeaterCreate","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_11_For_3_Template","ɵɵrepeaterTrackByIdentity","ɵɵrepeater","selectOptions","required","filterby","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_12_Conditional_2_Conditional_1_Template","title","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_12_Conditional_1_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_12_Conditional_2_Template","ɵɵelementContainer","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_14_Conditional_2_ng_container_0_Template","showCheckboxesTemplate_r11","ɵɵpureFunction1","_c0","_r12","matchingOption","ɵɵpropertyInterpolate","name","_r13","_r14","_r15","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_14_Conditional_3_Conditional_1_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_14_Conditional_3_Conditional_2_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_14_Conditional_3_Conditional_3_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_14_Conditional_3_Conditional_4_Template","matchingOptionTypes","exactPhrase","allWords","someWords","booleanMode","_r16","setDateRange","loadContentAfterDateChange","filter_r21","_r19","stopPropagation","item_r20","item","itemfilters","id","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_14_Conditional_5_ng_template_2_Conditional_1_For_2_Template","filter","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_14_Conditional_5_ng_template_2_Conditional_1_Template","ctx_r21","_r18","clear_r23","clear","item_r24","_r17","multiAutocompleteSearch","multiAutocompleteChange","multiAutocompleteClear","multiAutocompleteRemove","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_14_Conditional_5_ng_template_2_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_14_Conditional_5_ng_template_3_Template","items","searching","multiAutocompleteNgSelectSearchFn","_r25","ɵɵpropertyInterpolate1","_r26","ɵɵpureFunction0","_c1","_r27","options","checkbox_r29","_r28","toggleCheckBox","ɵɵpropertyInterpolate2","ɵ$index_328_r30","value","checked","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_14_Conditional_6_Conditional_4_For_3_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_14_Conditional_6_Conditional_1_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_14_Conditional_6_Conditional_2_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_14_Conditional_6_Conditional_3_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_14_Conditional_6_Conditional_4_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_14_Conditional_2_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_14_Conditional_3_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_14_Conditional_4_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_14_Conditional_5_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_14_Conditional_6_Template","undefined","searchTypes","isSearchCheckboxOption","isSearchStringOption","type","searchOptionType","stringinput","isSearchDateRangeOption","isSearchMultiAutoCompleteOption","isSearchNumberRangeOption","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_2_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_3_Template","_r2","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_6_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_7_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_8_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_9_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_10_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_11_Template","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_12_Template","topLevelSearchOptionDeSelect","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Conditional_14_Template","ɵɵclassProp","searchnumbers","select","switchoptiongroup","isSearchNumbersOption","isSearchSelectOption","LocalFilteringSearchComponent_Conditional_0_For_4_Conditional_0_Template","isSearchShowSearchOptionGroup","selected","option_r33","item_r35","_r34","topLevelSearchOptionSelect","LocalFilteringSearchComponent_Conditional_0_For_11_Conditional_0_For_5_Conditional_0_Conditional_6_Conditional_2_For_2_Template","LocalFilteringSearchComponent_Conditional_0_For_11_Conditional_0_For_5_Conditional_0_Conditional_6_Conditional_1_Template","LocalFilteringSearchComponent_Conditional_0_For_11_Conditional_0_For_5_Conditional_0_Conditional_6_Conditional_2_Template","_r36","checkbox_r37","LocalFilteringSearchComponent_Conditional_0_For_11_Conditional_0_For_5_Conditional_0_Conditional_7_For_2_Conditional_0_Template","checkboxDependenciesMet","autocompleteText","LocalFilteringSearchComponent_Conditional_0_For_11_Conditional_0_For_5_Conditional_0_Conditional_7_For_2_Template","_r32","LocalFilteringSearchComponent_Conditional_0_For_11_Conditional_0_For_5_Conditional_0_Conditional_4_Template","LocalFilteringSearchComponent_Conditional_0_For_11_Conditional_0_For_5_Conditional_0_Conditional_5_Template","LocalFilteringSearchComponent_Conditional_0_For_11_Conditional_0_For_5_Conditional_0_Conditional_6_Template","LocalFilteringSearchComponent_Conditional_0_For_11_Conditional_0_For_5_Conditional_0_Conditional_7_Template","icon","LocalFilteringSearchComponent_Conditional_0_For_11_Conditional_0_For_5_Conditional_0_Template","visible","allDependenciesMet","LocalFilteringSearchComponent_Conditional_0_For_11_Conditional_0_For_5_Template","optionGroup_r38","groupName","LocalFilteringSearchComponent_Conditional_0_For_11_Conditional_0_Template","allDependenciesMetForSearchOptionGroup","optionGroupHasSomeVisibleElements","_r39","saveSearch","Save","saveSearchesText","LocalFilteringSearchComponent_Conditional_0_Conditional_13_Conditional_1_Template","allowSearchesToBeSaved","selectedOptions","_r40","clearSearch","_r1","LocalFilteringSearchComponent_Conditional_0_For_4_Template","input_r31","ɵɵreference","setupToShowAutoCompleteOptions","handlePaste","acceptText","LocalFilteringSearchComponent_Conditional_0_For_11_Template","LocalFilteringSearchComponent_Conditional_0_Conditional_13_Template","LocalFilteringSearchComponent_Conditional_0_Conditional_15_Template","filterPlaceholder","leftPosition","topLevelSearchOptionGroups","tmp_10_0","userState$","user","ipuser","LocalFilteringSearchComponent_ng_template_1_Conditional_0_For_2_Conditional_0_Conditional_12_ng_container_1_Template","_c2","checkbox_r42","conditionalOptions","_r41","option_r43","option","changeCheckboxes","LocalFilteringSearchComponent_ng_template_1_Conditional_0_For_2_Conditional_0_Conditional_8_Template","LocalFilteringSearchComponent_ng_template_1_Conditional_0_For_2_Conditional_0_Conditional_9_Template","LocalFilteringSearchComponent_ng_template_1_Conditional_0_For_2_Conditional_0_Conditional_12_Template","LocalFilteringSearchComponent_ng_template_1_Conditional_0_For_2_Conditional_0_Template","LocalFilteringSearchComponent_ng_template_1_Conditional_0_For_2_Template","ɵɵclassMapInterpolate1","indent_r45","numberOfColumns","LocalFilteringSearchComponent_ng_template_1_Conditional_0_Template","ɵ$index_470_r49","_r48","pastedChoices","match","_c3","choice_r50","LocalFilteringSearchComponent_ng_template_3_Conditional_6_For_1_Template","_forTrack0","ctx","modal_r47","_r46","dismiss","LocalFilteringSearchComponent_ng_template_3_Conditional_5_Template","LocalFilteringSearchComponent_ng_template_3_Conditional_6_Template","close","pastedChooserHeader","pasteChooserLoading","tmp_6_0","pastedChoices$","LocalFilteringSearchComponent","FilteringSearchComponentBase","documentsStore","embedded","contentSet","loadSearchsubscription$","Subscription","ngOnInit","savedSearchService","searchToLoad$","subscribe","search","loadSearch","parameters","makeSearchRequest","ngOnDestroy","unsubscribe","startAt","removeAll","updateSearch","area","__spreadValues","requiredFilters","order","createSearchName","resetSearch","__ngFactoryType__","selectors","inputs","features","ɵɵInheritDefinitionFeature","decls","vars","consts","template","rf","LocalFilteringSearchComponent_Conditional_0_Template","LocalFilteringSearchComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","LocalFilteringSearchComponent_ng_template_3_Template","showFilter","NgxBootstrapIconsModule","NgxBootstrapIconsLibComponent","FormsModule","ɵNgNoValidate","NgSelectOption","ɵNgSelectMultipleOption","DefaultValueAccessor","CheckboxControlValueAccessor","SelectControlValueAccessor","RadioControlValueAccessor","NgControlStatus","NgControlStatusGroup","NgModel","NgForm","DateRangeComponent","NgSelectModule","NgSelectComponent","NgOptionTemplateDirective","NgLabelTemplateDirective","NgxSliderModule","SliderComponent","AsyncPipe","DecimalPipe","DatePipe","NgTemplateOutlet","styles","data","animation","openClose","optionGroupTrigger","DocumentsViewerBase","documentsStore","store","inject","Store","backendService","BackEndService","route","ActivatedRoute","requiredFilters","searchclasses","showCaseInfo","contentSet","setType","embedded","saveSearchesText","documentSearchOptionGroups","initialSearch","parameters","order","column","direction","documents$","loading$","error$","listing$","search$","user$","iconNames","IconNamesEnum","searchResultsColumnDefinition","toastService","ToastService","constructor","select","selectUser","snapshot","data","structuredClone","ngOnInit","forEach","optionGroup","options","option","id","loadMoreDocuments","getDocuments","toggleOrder","search","updateSearch","__spreadProps","__spreadValues","ɵɵdirectiveInject","DocumentsStore","selectors","inputs","decls","vars","template","rf","ctx","encapsulation","changeDetection"],"mappings":";;ivCA6BA,SAASA,IAAe,CACtB,OAAOC,GAAU,IAAIC,GAAWC,GAAY,CAC1C,IAAIC,EACAC,EACEC,EAAmB,IAAIC,EAC7B,OAAAD,EAAiB,IAAIL,EAAO,UAAU,CACpC,SAAU,IAAM,CACVG,GACFD,EAAS,KAAKE,CAAW,EAE3BF,EAAS,SAAS,CACpB,EACA,MAAOK,GAAS,CACdL,EAAS,MAAMK,CAAK,CACtB,EACA,KAAMC,GAAS,CACbJ,EAAcI,EACTL,IACHA,EAAqBM,GAAc,SAAS,IAAM,CAChDP,EAAS,KAAKE,CAAW,EACzBD,EAAqB,MACvB,CAAC,EACDE,EAAiB,IAAIF,CAAkB,EAE3C,CACF,CAAC,CAAC,EACKE,CACT,CAAC,CACH,CASA,SAASK,GAAqBC,EAAI,CAChC,OAAO,OAAOA,EAAG,iBAAoB,UACvC,CAQA,SAASC,GAAqBD,EAAI,CAChC,OAAO,OAAOA,EAAG,iBAAoB,UACvC,CAkEA,IAAME,GAAsB,IAAIC,GAAe,qCAAqC,EAChFC,IAA+B,IAAM,CACvC,MAAMA,CAAe,CACnB,YAAYC,EAAc,CAExB,KAAK,gBAAkB,IAAIC,EAAc,CAAC,EAE1C,KAAK,SAAW,KAAK,gBAAgB,aAAa,EAClD,KAAK,cAAgB,IAAIA,EAAc,CAAC,EACxC,KAAK,cAAgB,GAErB,KAAK,OAAS,KAAK,OAAOC,GAAKA,CAAC,EAChC,KAAK,MAAQC,GAAS,KAAK,cAAc,KAAKC,EAAU,KAAK,QAAQ,CAAC,EAAG,CACvE,YAAa,GACb,cAAe,EACjB,CAAC,EACD,KAAK,kBAAe,GAEhBJ,GACF,KAAK,UAAUA,CAAY,EAE7B,KAAK,sBAAsB,CAC7B,CAEA,aAAc,CACZ,KAAK,cAAc,SAAS,EAC5B,KAAK,gBAAgB,KAAK,CAC5B,CAgBA,QAAQK,EAAW,CACjB,OAAOC,GAAqB,CAG1B,IAAIC,EAAe,GACfC,EAKEC,GADcC,GAAaJ,CAAiB,EAAIA,EAAoBK,EAAGL,CAAiB,GAC7D,KAEjCM,GAAUC,EAAc,EAExBC,EAAI,IAAM,KAAK,yBAAyB,CAAC,EAAGC,EAAe,KAAK,aAAa,EAE7EC,EAAI,CAAC,CAACC,EAAOC,CAAY,IAAMb,EAAUa,EAAcD,CAAK,CAAC,EAAGH,EAAIK,GAAY,KAAK,cAAc,KAAKA,CAAQ,CAAC,EAAGC,EAAWC,GACzHd,GACFC,EAAYa,EACLC,GAEFC,GAAWF,CAAK,CACxB,EAAGjB,EAAU,KAAK,QAAQ,CAAC,EAAE,UAAU,EACxC,GAAII,EACF,MAAMA,EAER,OAAAD,EAAe,GACRE,CACT,CACF,CAKA,UAAUe,EAAO,CACfC,GAAU,CAACD,CAAK,EAAGX,EAAc,EAAE,UAAUX,GAAK,CAChD,KAAK,cAAgB,GACrB,KAAK,cAAc,KAAKA,CAAC,CAC3B,CAAC,CACH,CAMA,SAASwB,EAAkB,CACrB,OAAOA,GAAqB,WAC9B,KAAK,UAAUA,CAAgB,EAE/B,KAAK,QAAQA,CAAgB,EAAE,CAEnC,CAQA,WAAWC,EAAyB,CAClC,IAAMC,EAAe,OAAOD,GAA4B,WAAaA,EAAwB,KAAK,IAAI,CAAC,EAAIA,EAC3G,KAAK,QAAQ,CAACH,EAAOK,IAAkBC,IAAA,GAClCN,GACAK,EACH,EAAED,CAAY,CAClB,CACA,IAAIG,EAAW,CACb,KAAK,yBAAyB,EAC9B,IAAId,EACJ,YAAK,cAAc,KAAKe,GAAK,CAAC,CAAC,EAAE,UAAUR,GAAS,CAClDP,EAAQc,EAAYA,EAAUP,CAAK,EAAIA,CACzC,CAAC,EAEMP,CACT,CACA,UAAUgB,EAAM,CACd,GAAM,CACJ,6BAAAC,EACA,UAAAH,EACA,OAAAI,CACF,EAAIC,GAAoBH,CAAI,EAE5B,OADgBI,GAAiBH,EAA8BH,CAAS,EAAI,KAAK,cAAgBO,GAAcJ,CAA4B,GAC5H,KAAKC,EAAO,SAAWI,GAAa,EAAIC,GAAa,EAAGT,EAAYf,EAAIyB,GAEvFP,EAA6B,OAAS,GAAK,MAAM,QAAQO,CAAa,EAAIV,EAAU,GAAGU,CAAa,EAAIV,EAAUU,CAAa,CAAC,EAAID,GAAa,EAAGE,GAAqBP,EAAO,KAAK,EAAGQ,GAAY,CAClM,SAAU,GACV,WAAY,CACd,CAAC,EAAGvC,EAAU,KAAK,QAAQ,CAAC,CAC9B,CACA,gBAAgB6B,EAAM,CACpB,IAAMW,EAAmB,CAAC,GAAGX,CAAI,EAC3BY,EAAU,OAAOD,EAAiBX,EAAK,OAAS,CAAC,GAAM,SAAWW,EAAiB,IAAI,EAAI,CAAC,EAC5Fb,EAAYa,EAAiB,IAAI,EACjCE,EAAUF,EACVG,EAAcD,EAAQ,SAAW,EAAI,IAAMf,EAAU,KAAK,MAAM,CAAC,EAAI,IAAM,CAC/E,IAAMiB,EAASF,EAAQ,IAAIG,GAAUA,EAAO,CAAC,EAC7C,OAAOlB,EAAU,GAAGiB,CAAM,CAC5B,EACA,OAAOE,GAASH,EAAaF,CAAO,CACtC,CAUA,OAAOM,EAAW,CAChB,IAAMC,EAAU,IAAIC,GACpB,OAAAF,EAAUC,CAAO,EAEhB,KAAKhD,EAAU,KAAK,QAAQ,CAAC,EAAE,UAAU,EACnCE,IACeI,GAAaJ,CAAiB,EAAIA,EAAoBK,EAAGL,CAAiB,GAC3E,KAAKF,EAAU,KAAK,QAAQ,CAAC,EAAE,UAAUa,GAAS,CAEnEmC,EAAQ,KAAKnC,CAAK,CACpB,CAAC,CAEL,CAKA,uBAAwB,CACtBqC,GAAc,SAAS,IAAM,CAC3B,GAAIC,GAAU,IAAMC,GAAqB,IAAI,GAAKC,GAAqB,IAAI,IAAM,CAAC,KAAK,kBAAc,CACnG,IAAMC,EAAW,CAACF,GAAqB,IAAI,EAAI,cAAgB,GAAIC,GAAqB,IAAI,EAAI,cAAgB,EAAE,EAAE,OAAOE,GAAWA,CAAO,EAC7I,QAAQ,KAAK,0BAA0B,KAAK,YAAY,IAAI,YAAYD,EAAS,KAAK,OAAO,CAAC,yFAAmG,KAAK,YAAY,IAAI,sFAA2F,KAAK,YAAY,IAAI,GAAG,CAC3U,CACF,CAAC,CACH,CACA,0BAA2B,CACzB,GAAI,CAAC,KAAK,cACR,MAAM,IAAI,MAAM,GAAG,KAAK,YAAY,IAAI,4FAAiG,CAE7I,CAEA,MAAO,CACL,KAAK,UAAO,SAAgCE,EAAmB,CAC7D,OAAO,IAAKA,GAAqB7D,GAAmB8D,GAAShE,GAAqB,CAAC,CAAC,CACtF,CACF,CAEA,MAAO,CACL,KAAK,WAA0BiE,EAAmB,CAChD,MAAO/D,EACP,QAASA,EAAe,SAC1B,CAAC,CACH,CACF,CACA,OAAOA,CACT,GAAG,EAIH,SAASqC,GAAoBH,EAAM,CACjC,IAAM8B,EAAe,MAAM,KAAK9B,CAAI,EAGhCE,EAAS,CACX,SAAU,GACV,MAJwB,CAAC6B,EAAUC,IAAYD,IAAaC,CAK9D,EASA,GAPIC,GAAeH,EAAaA,EAAa,OAAS,CAAC,CAAC,IACtD5B,EAASL,IAAA,GACJK,GACA4B,EAAa,IAAI,IAIpBA,EAAa,SAAW,GAAK,OAAOA,EAAa,CAAC,GAAM,WAE1D,MAAO,CACL,6BAA8BA,EAAa,CAAC,EAC5C,UAAW,OACX,OAAA5B,CACF,EAEF,IAAMJ,EAAYgC,EAAa,IAAI,EAGnC,MAAO,CACL,6BAFkBA,EAGlB,UAAAhC,EACA,OAAAI,CACF,CACF,CACA,SAAS+B,GAAeC,EAAK,CAC3B,IAAMC,EAAWD,EACjB,OAAO,OAAOC,EAAS,SAAa,KAAe,OAAOA,EAAS,MAAU,GAC/E,CACA,SAAS/B,GAAiBH,EAA8BH,EAAW,CACjE,OAAO,MAAM,QAAQG,CAA4B,GAAKA,EAA6B,SAAW,GAAKH,CACrG,CACA,SAASS,IAAe,CACtB,OAAO6B,GAAWA,CACpB,CCnWA,SAASC,GAAiBC,EAAoB,CAC5C,OAAOC,GAAUC,GAAS,CACxB,IAAMC,EAAcH,EAAmBE,CAAK,EACtCE,EAAqB,MAAM,QAAQD,CAAW,EAAIA,EAAc,CAACA,CAAW,EAClF,OAAOE,EAAGH,CAAK,EAAE,KAAKI,EAAe,GAAGF,CAAkB,CAAC,CAC7D,CAAC,CACH,CAuEA,SAASG,GAAYC,EAAgBC,EAAOC,EAAU,CACpD,IAAMC,EAAW,OAAOH,GAAmB,WAAa,CACtD,KAAMA,EAEN,MAAOC,EACP,SAAAC,CACF,EAAIF,EACJ,OAAOI,GAAUA,EAAO,KAAKC,EAAI,CAC/B,KAAMF,EAAS,KACf,SAAUA,EAAS,QACrB,CAAC,EAAGG,EAAWL,IACbE,EAAS,MAAMF,CAAK,EACbM,EACR,EAAGJ,EAAS,SAAWK,GAASL,EAAS,QAAQ,EAAIM,GAAWA,CAAO,CAC1E,CChGA,IAAMC,GAAqCC,GAAmB,EACxD,CACFC,UAAAA,EAAS,EACTF,GAAQG,aAAY,EAGXC,IAA4C,IAAA,CAAnD,MAAOA,UAAoDC,EAAwC,CAC3FC,eAAiBC,EAAOC,CAAc,EACtCR,QAAUA,GAEpBS,aAAA,CACI,MAAM,CACFC,IAAK,CAAA,EACLC,SAAU,CAAA,EACVC,QAAS,GACTC,UAAW,EACXC,MAAO,GACPC,OAAQ,CACJC,WAAY,CAAA,EACZC,MAAO,CACHC,OAAQ,GACRC,UAAW,KAInBC,QAAS,CACLC,OAAQ,GACRC,QAAS,EACTC,MAAO,GAEd,CACL,CAESC,aAAe,KAAKC,OACxBC,GAAYA,EAAQC,KACjBC,EAAIb,GAAU,KAAKc,WAAW,CAC1BnB,IAAK,CAAA,EAAIC,SAAU,CAAA,EACnBI,OAAAA,EACAK,QAAS,CACLC,OAAQ,GACRC,QAAS,EACTC,MAAO,GAEd,CAAC,EACFK,EAAI,IAAM,KAAKE,aAAY,CAAE,CAAC,CACjC,EAIIA,aAAe,KAAKL,OAAcM,GAChCA,EAASJ,KACZK,EAAe,KAAKC,OAAOC,GAASA,CAAK,CAAC,EAC1CC,GAAS,CAAC,CAACC,EAAOF,CAAK,IACfA,EAAMrB,YAAcqB,EAAMd,QAAQE,QAAU,GAC5C,KAAKO,WAAW,CAAEjB,QAAS,GAAME,MAAO,GAAOD,UAAWqB,EAAMd,QAAQE,QAAU,CAAC,CAAC,EAC7E,KAAKhB,eAAeS,OAAOsB,EAAAC,EAAA,GAC3BJ,EAAMnB,QADqB,CAE9BM,OAAQ,CACJkB,MAAOL,EAAMd,QAAQE,QAAU,EAC/BkB,KAAMN,EAAMd,QAAQC,SAE3B,EAAEM,KACCc,GACKC,IACGR,EAAQ,KAAKlC,QAAQ2C,WAAWD,EAAOE,SAAUV,CAAK,EAC/C,KAAKL,WAAWQ,EAAAC,EAAA,GAAKJ,GAAL,CAAYtB,QAAS,GAAOE,MAAO,GAAOM,QAASsB,EAAOtB,OAAO,EAAE,GAE7FN,GAAU,KAAKe,WAAW,CAAEjB,QAAS,GAAOE,MAAO,EAAI,CAAE,CAAC,CAC9D,GAGE+B,EAAG,CAAA,CAAE,CAEnB,CACA,CAER,EAGQC,eAAiB,KAAKrB,OAC1BM,GAAaA,EAASJ,KACnBC,EAAKmB,GAAY,CACb,IAAMb,EAAQ,KAAKc,IAAG,EACtB,KAAKnB,WAAWQ,EAAAC,EAAA,GACTJ,GADS,CAEZvB,SAAU0B,EAAAC,EAAA,GACHJ,EAAMvB,UADH,CAEN,CAACoC,EAASE,EAAE,EAAG,CACXF,SAAAA,MAGX,CACL,CAAC,CAAC,CACL,EAGIG,UAAY,KAAKzB,OACrBM,GAAaA,EAASJ,KACnBc,GACI,IAAM,KAAKZ,WAAW,CAClBnB,IAAK,CAAA,EACLC,SAAU,CAAA,EACVS,QAAS,CACLC,OAAQ,GACRC,QAAS,EACTC,MAAO,GAEd,EACAT,GAAUA,CAAK,CACnB,CACJ,EAGIqC,WAAqC,KAAKlB,OAAOC,GAAShC,GAAUgC,CAAK,EAAEkB,KAAK,CAACC,EAAGC,IAAMD,EAAEJ,GAAKK,EAAEL,EAAE,CAAC,EACtGM,SAAgC,KAAKtB,OAAOC,GAASA,EAAMtB,OAAO,EAClE4C,OAA8B,KAAKvB,OAAOC,GAASA,EAAMpB,KAAK,EAC9D2C,SAAqC,KAAKxB,OAAOC,GAASA,EAAMd,OAAO,EACvEM,QAA6C,KAAKO,OAAOC,GAASA,EAAMnB,MAAM,6CA/G9EX,EAAc,6BAAdA,EAAcsD,QAAdtD,EAAcuD,SAAA,CAAA,SAAdvD,CAA4C,GAAA,6KEtBrCwD,EAAA,EAAA,OAAA,EAAA,EAAyBC,EAAA,QAAA,UAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAC,EAAAC,EAAA,CAAA,EAAAC,OAAAC,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAASD,EAAAE,mBAAAL,CAAA,CAAqB,CAAA,CAAA,EACnDM,EAAA,EAAA,OAAA,EAAA,EACJC,EAAA,sCAFyDC,EAAA,mBAAAC,EAAAC,MAAA,EAC/CC,EAAA,EAAAC,EAAA,OAAAT,EAAAU,UAAAC,WAAA,EAA8B,aAAAL,EAAAM,OAAA,OAAA,QAAA,6BAIxCnB,EAAA,EAAA,OAAA,EAAA,EACIU,EAAA,EAAA,MAAA,EACJC,EAAA,6BAFyBC,EAAA,mBAAAC,EAAAC,MAAA,4BASrBM,EAAA,CAAA,4BAAAC,EAAA,KAAAR,EAAAS,cAAA,OAAAT,EAAAU,WAAAC,OAAA,IAAA,4BAKAd,EAAA,EAAA,OAAA,EAAA,mCAAMM,EAAA,YAAAT,EAAAkB,gBAAAZ,EAAAU,UAAA,EAAAG,CAAA,6BARV1B,EAAA,EAAA,OAAA,EAAA,EACI2B,EAAA,EAAAC,GAAA,EAAA,CAAA,EAAiC,EAAAC,GAAA,EAAA,EAAA,OAAA,EAAA,EAUrClB,EAAA,6BAX6BC,EAAA,mBAAAC,EAAAC,MAAA,EACzBC,EAAA,EAAAe,EAAAjB,EAAAS,cAAA,EAAA,EAAA,EAAA,EAKAP,EAAA,EAAAe,EAAAjB,EAAAS,gBAAA,EAAA,EAAA,EAAA,6BAWAF,EAAA,CAAA,yDAAAC,EAAA,IAAAU,EAAA,EAAA,EAAAlB,EAAAmB,iBAAAC,QAAA,EAAA,WAAAF,EAAA,EAAA,EAAAlB,EAAAmB,iBAAAE,QAAA,EAAA,IAAA,6BAIAd,EAAA,CAAA,yDAAAe,GAAA,IAAAtB,EAAAuB,OAAA,GAAAL,EAAA,EAAA,EAAAlB,EAAAoB,QAAA,EAAA,GAAApB,EAAAwB,OAAA,WAAAxB,EAAAuB,OAAA,GAAAL,EAAA,EAAA,EAAAlB,EAAAqB,QAAA,EAAA,GAAArB,EAAAwB,OAAA,GAAA,yBAKAjB,EAAA,EAAA,YAAA,4BAZJpB,EAAA,EAAA,OAAA,EAAA,EACI2B,EAAA,EAAAW,GAAA,EAAA,CAAA,EAAgE,EAAAC,GAAA,EAAA,EAAA,EAIvD,EAAAC,GAAA,EAAA,CAAA,EAUb7B,EAAA,6BAf6BC,EAAA,mBAAAC,EAAAC,MAAA,EACzBC,EAAA,EAAAe,EAAAjB,EAAA4B,WAAA5B,EAAAmB,iBAAAU,YAAA,EAAA,CAAA,EASA3B,EAAA,CAAA,EAAAe,EAAAjB,EAAAU,YAAA,MAAAV,EAAAU,WAAAC,QAAAX,EAAAS,cAAA,EAAA,EAAA,EAAA,6BAYAF,EAAA,CAAA,qDAAAC,EAAA,IAAAsB,GAAA,EAAA,EAAA9B,EAAA+B,QAAA,YAAA,EAAA,MAAAD,GAAA,EAAA,EAAA9B,EAAAgC,QAAA,YAAA,EAAA,GAAA,yBAOIzB,EAAA,EAAA,YAAA,wBAGAA,EAAA,EAAA,aAAA,wBAGAA,EAAA,EAAA,cAAA,wBAGAA,EAAA,EAAA,aAAA,wBAIAA,EAAA,EAAA,gBAAA,4BAhBJpB,EAAA,EAAA,MAAA,EAEI2B,EAAA,EAAAmB,GAAA,EAAA,CAAA,EAAc,EAAAC,GAAA,EAAA,CAAA,EAGA,EAAAC,GAAA,EAAA,CAAA,EAGA,EAAAC,GAAA,EAAA,CAAA,EAGA,EAAAC,GAAA,EAAA,CAAA,EAQlBvC,EAAA,+BAlBII,EAAA,EAAAe,GAAAqB,EAAAtC,EAAAuC,iBAAA,KAAI,EAAAD,IAAJ,KAAI,EAAAA,IAAJ,KAAI,EAAAA,IAAJ,KAAI,EAAAA,IAAJ,MAAK,EAAA,EAAA,6BATbnD,EAAA,EAAA,OAAA,EAAA,EAAsE,EAAA,OAAA,EAAA,EAChCoB,EAAA,CAAA,EAAkDT,EAAA,EACpFgB,EAAA,EAAA0B,GAAA,EAAA,CAAA,EAAmC,EAAAC,GAAA,EAAA,EAAA,MAAA,EA4BvC3C,EAAA,oCA9B6BC,EAAA,mBAAAC,EAAAC,MAAA,EACSC,EAAA,CAAA,EAAAwC,EAAA,GAAAhD,EAAAiD,cAAA3C,EAAA+B,QAAA/B,EAAAgC,OAAA,EAAA,GAAA,EAClC9B,EAAA,EAAAe,EAAAjB,EAAAuC,gBAAA,GAAA,EAAA,CAAA,sCA+BJpD,EAAA,EAAA,OAAA,EAAA,EAAsE,EAAA,QAAA,EAAA,EACcyD,EAAA,gBAAA,SAAAC,EAAA,CAAAxD,EAAAyD,CAAA,EAAA,IAAA9C,EAAAR,EAAA,CAAA,EAAAuD,UAAAC,OAAAC,EAAAjD,EAAAkD,aAAAL,CAAA,IAAA7C,EAAAkD,aAAAL,GAAAlD,EAAAkD,CAAA,CAAA,CAAA,EAAwCzD,EAAA,QAAA,SAAAyD,EAAA,CAAAxD,EAAAyD,CAAA,EAAA,IAAApD,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAASD,EAAAyD,YAAAN,CAAA,CAAmB,CAAA,CAAA,EAApJ/C,EAAA,EAAyK,+BADhJC,EAAA,mBAAAC,EAAAC,MAAA,EACuDC,EAAA,EAAAkD,EAAA,UAAApD,EAAAkD,YAAA,sCAIpF/D,EAAA,EAAA,OAAA,EAAA,EAAsE,EAAA,QAAA,EAAA,EACcyD,EAAA,gBAAA,SAAAC,EAAA,CAAAxD,EAAAgE,CAAA,EAAA,IAAArD,EAAAR,EAAA,CAAA,EAAAuD,UAAAC,OAAAC,EAAAjD,EAAAsD,YAAAT,CAAA,IAAA7C,EAAAsD,YAAAT,GAAAlD,EAAAkD,CAAA,CAAA,CAAA,EAAuCzD,EAAA,QAAA,SAAAyD,EAAA,CAAAxD,EAAAgE,CAAA,EAAA,IAAA3D,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAASD,EAAAyD,YAAAN,CAAA,CAAmB,CAAA,CAAA,EAAnJ/C,EAAA,EAAiM,+BADxKC,EAAA,mBAAAC,EAAAC,MAAA,EACuDC,EAAA,EAAAkD,EAAA,UAAApD,EAAAsD,WAAA,6BAO5EnE,EAAA,EAAA,SAAA,EAAA,EAA6CoB,EAAA,CAAA,EAAsBT,EAAA,0BAA3DK,EAAA,UAAAoD,EAAAC,WAAA,EAAqCtD,EAAA,EAAAuD,EAAAF,EAAAG,KAAA,sCAHrDvE,EAAA,EAAA,OAAA,EAAA,EAAsE,EAAA,SAAA,EAAA,EACnCyD,EAAA,gBAAA,SAAAC,EAAA,CAAAxD,EAAAsE,CAAA,EAAA,IAAA3D,EAAAR,EAAA,CAAA,EAAAuD,UAAAC,OAAAC,EAAAjD,EAAA4D,cAAAf,CAAA,IAAA7C,EAAA4D,cAAAf,GAAAlD,EAAAkD,CAAA,CAAA,CAAA,EAAyCzD,EAAA,gBAAA,UAAA,CAAAC,EAAAsE,CAAA,EAAA,IAAAjE,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAAiBD,EAAAyD,YAAA,CAAa,CAAA,CAAA,EAClGU,EAAA,EAAAC,GAAA,EAAA,EAAA,SAAA,GAAAC,CAAA,EAGJjE,EAAA,EAAS,+BALgBC,EAAA,mBAAAC,EAAAC,MAAA,EACMC,EAAA,EAAAkD,EAAA,UAAApD,EAAA4D,aAAA,EAC3B1D,EAAA,EAAA8D,EAAAhE,EAAAiE,aAAA,4BAUJ1D,EAAA,CAAA,4BAAAmC,EAAA,IAAA1C,EAAAkE,SAAAvD,OAAA,WAAA,4BAQAJ,EAAA,CAAA,4BAAAmC,EAAA,KAAA1C,EAAAkE,SAAA,CAAA,EAAAC,SAAA,IAAA,6BAHAtE,EAAA,EAAA,OAAA,EAAA,EACAiB,EAAA,EAAAsD,GAAA,EAAA,CAAA,6BADMjE,EAAA,YAAAH,EAAAkE,SAAA,CAAA,EAAAG,MAAAxD,CAAA,EACNX,EAAA,EAAAe,EAAAjB,EAAAkE,SAAA,CAAA,EAAAC,SAAA,EAAA,EAAA,6BATJhF,EAAA,EAAA,OAAA,EAAA,EACI2B,EAAA,EAAAwD,GAAA,EAAA,CAAA,EAAkC,EAAAC,GAAA,EAAA,CAAA,EAetCzE,EAAA,6BAhB6BC,EAAA,mBAAAC,EAAAC,MAAA,EACzBC,EAAA,EAAAe,EAAAjB,EAAAkE,SAAAvD,OAAA,EAAA,EAAA,EAAA,EAKAT,EAAA,EAAAe,EAAAjB,EAAAkE,SAAAvD,SAAA,EAAA,EAAA,EAAA,yBAmBA6D,GAAA,CAAA,2BAAA1D,EAAA,EAAA2D,GAAA,EAAA,EAAA,eAAA,EAAA,4CAAetE,EAAA,mBAAAuE,CAAA,EAA0C,0BAAAC,GAAA,EAAAC,GAAA5E,CAAA,CAAA,sCAKrDb,EAAA,EAAA,KAAA,EAAA,EAAuB,EAAA,QAAA,EAAA,EAC4EyD,EAAA,gBAAA,SAAAC,EAAA,CAAAxD,EAAAwF,CAAA,EAAA,IAAA7E,EAAAR,EAAA,CAAA,EAAAuD,UAAAC,OAAAC,EAAAjD,EAAA8E,eAAAjC,CAAA,IAAA7C,EAAA8E,eAAAjC,GAAAlD,EAAAkD,CAAA,CAAA,CAAA,EAC3FzD,EAAA,gBAAA,UAAA,CAAAC,EAAAwF,CAAA,EAAA,IAAAnF,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAAiBD,EAAAyD,YAAA,CAAa,CAAA,CAAA,EADlCrD,EAAA,EAEAX,EAAA,EAAA,QAAA,EAAA,EAAoEoB,EAAA,EAAA,cAAA,EAAYT,EAAA,EAAQ,+BAFgGI,EAAA,EAAA6E,EAAA,KAAA/E,EAAAgF,KAAA,SAAA,EAA9I7E,EAAA,OAAAH,EAAAgF,IAAA,EAAoB,QAAA,QAAA,EAAiC5B,EAAA,UAAApD,EAAA8E,cAAA,EAA0C3E,EAAA,UAAAH,EAAA8E,iBAAA,QAAA,EAEzG5E,EAAA,EAAA6E,EAAA,MAAA/E,EAAAgF,KAAA,SAAA,sCAIpC7F,EAAA,EAAA,KAAA,EAAA,EAAuB,EAAA,QAAA,EAAA,EACyEyD,EAAA,gBAAA,SAAAC,EAAA,CAAAxD,EAAA4F,CAAA,EAAA,IAAAjF,EAAAR,EAAA,CAAA,EAAAuD,UAAAC,OAAAC,EAAAjD,EAAA8E,eAAAjC,CAAA,IAAA7C,EAAA8E,eAAAjC,GAAAlD,EAAAkD,CAAA,CAAA,CAAA,EACxFzD,EAAA,gBAAA,UAAA,CAAAC,EAAA4F,CAAA,EAAA,IAAAvF,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAAiBD,EAAAyD,YAAA,CAAa,CAAA,CAAA,EADlCrD,EAAA,EAEAX,EAAA,EAAA,QAAA,EAAA,EAAiEoB,EAAA,EAAA,WAAA,EAAST,EAAA,EAAQ,+BAFgGI,EAAA,EAAA6E,EAAA,KAAA/E,EAAAgF,KAAA,MAAA,EAAxI7E,EAAA,OAAAH,EAAAgF,IAAA,EAAoB,QAAA,KAAA,EAA8B5B,EAAA,UAAApD,EAAA8E,cAAA,EAA0C3E,EAAA,UAAAH,EAAA8E,iBAAA,KAAA,EAEtG5E,EAAA,EAAA6E,EAAA,MAAA/E,EAAAgF,KAAA,MAAA,sCAIpC7F,EAAA,EAAA,KAAA,EAAA,EAAuB,EAAA,QAAA,EAAA,EAC0EyD,EAAA,gBAAA,SAAAC,EAAA,CAAAxD,EAAA6F,CAAA,EAAA,IAAAlF,EAAAR,EAAA,CAAA,EAAAuD,UAAAC,OAAAC,EAAAjD,EAAA8E,eAAAjC,CAAA,IAAA7C,EAAA8E,eAAAjC,GAAAlD,EAAAkD,CAAA,CAAA,CAAA,EACzFzD,EAAA,gBAAA,UAAA,CAAAC,EAAA6F,CAAA,EAAA,IAAAxF,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAAiBD,EAAAyD,YAAA,CAAa,CAAA,CAAA,EADlCrD,EAAA,EAEAX,EAAA,EAAA,QAAA,EAAA,EAAkEoB,EAAA,EAAA,UAAA,EAAQT,EAAA,EAAQ,+BAFkGI,EAAA,EAAA6E,EAAA,KAAA/E,EAAAgF,KAAA,OAAA,EAA1I7E,EAAA,OAAAH,EAAAgF,IAAA,EAAoB,QAAA,MAAA,EAA+B5B,EAAA,UAAApD,EAAA8E,cAAA,EAA0C3E,EAAA,UAAAH,EAAA8E,iBAAA,MAAA,EAEvG5E,EAAA,EAAA6E,EAAA,MAAA/E,EAAAgF,KAAA,OAAA,sCAIpC7F,EAAA,EAAA,KAAA,EAAA,EAAuB,EAAA,QAAA,EAAA,EAC6EyD,EAAA,gBAAA,SAAAC,EAAA,CAAAxD,EAAA8F,CAAA,EAAA,IAAAnF,EAAAR,EAAA,CAAA,EAAAuD,UAAAC,OAAAC,EAAAjD,EAAA8E,eAAAjC,CAAA,IAAA7C,EAAA8E,eAAAjC,GAAAlD,EAAAkD,CAAA,CAAA,CAAA,EACxDzD,EAAA,gBAAA,UAAA,CAAAC,EAAA8F,CAAA,EAAA,IAAAzF,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAAiBD,EAAAyD,YAAA,CAAa,CAAA,CAAA,EADtErD,EAAA,EAEAX,EAAA,EAAA,QAAA,EAAA,EAAqEoB,EAAA,EAAA,cAAA,EAAYT,EAAA,EAAQ,+BADrFI,EAAA,EAAA6E,EAAA,KAAA/E,EAAAgF,KAAA,UAAA,EADsC7E,EAAA,OAAAH,EAAAgF,IAAA,EAAoB,QAAA,SAAA,EAAkC5B,EAAA,UAAApD,EAAA8E,cAAA,EAA0C3E,EAAA,UAAAH,EAAA8E,iBAAA,SAAA,EAE1G5E,EAAA,EAAA6E,EAAA,MAAA/E,EAAAgF,KAAA,UAAA,6BA1BxC7F,EAAA,EAAA,KAAA,EAAA,EACI2B,EAAA,EAAAsE,GAAA,EAAA,EAAA,KAAA,EAAA,EAA8C,EAAAC,GAAA,EAAA,EAAA,KAAA,EAAA,EAOH,EAAAC,GAAA,EAAA,EAAA,KAAA,EAAA,EAOC,EAAAC,GAAA,EAAA,EAAA,KAAA,EAAA,EAchDzF,EAAA,6BA5BII,EAAA,EAAAe,EAAAjB,EAAAwF,oBAAAC,YAAA,EAAA,EAAA,EAOAvF,EAAA,EAAAe,EAAAjB,EAAAwF,oBAAAE,SAAA,EAAA,EAAA,EAOAxF,EAAA,EAAAe,EAAAjB,EAAAwF,oBAAAG,UAAA,EAAA,EAAA,EAOAzF,EAAA,EAAAe,EAAAjB,EAAAwF,oBAAAI,YAAA,EAAA,EAAA,sCAUJzG,EAAA,EAAA,KAAA,EAAK,EAAA,KAAA,EAAA,EACyB,EAAA,KAAA,EAAA,EAClBC,EAAA,QAAA,UAAA,CAAAC,EAAAwG,CAAA,EAAA,IAAA7F,EAAAR,EAAA,CAAA,EAAAuD,UAAArD,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAASD,EAAAoG,aAAA9F,EAAsB,IAAI,CAAC,CAAA,CAAA,EACpCb,EAAA,EAAA,OAAA,EAAA,EAAmC,EAAA,OAAA,EAAA,EACGoB,EAAA,EAAA,IAAA,EAAET,EAAA,EAAQS,EAAA,EAAA,YAAA,EAChDT,EAAA,EAAO,EAEXX,EAAA,EAAA,KAAA,EAAA,EAAIC,EAAA,QAAA,UAAA,CAAAC,EAAAwG,CAAA,EAAA,IAAA7F,EAAAR,EAAA,CAAA,EAAAuD,UAAArD,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAASD,EAAAoG,aAAA9F,EAAsB,IAAI,CAAC,CAAA,CAAA,EACpCb,EAAA,EAAA,OAAA,EAAA,EAAmC,EAAA,OAAA,EAAA,EACGoB,EAAA,GAAA,IAAA,EAAET,EAAA,EAAQS,EAAA,GAAA,iBAAA,EAChDT,EAAA,EAAO,EAEXX,EAAA,GAAA,KAAA,EAAA,EAAIC,EAAA,QAAA,UAAA,CAAAC,EAAAwG,CAAA,EAAA,IAAA7F,EAAAR,EAAA,CAAA,EAAAuD,UAAArD,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAASD,EAAAoG,aAAA9F,EAAqB,IAAI,CAAC,CAAA,CAAA,EACnCb,EAAA,GAAA,OAAA,EAAA,EAAmC,GAAA,OAAA,EAAA,EACGoB,EAAA,GAAA,IAAA,EAAET,EAAA,EAAQS,EAAA,GAAA,aAAA,EAChDT,EAAA,EAAO,EAEXX,EAAA,GAAA,KAAA,EAAA,EAAIC,EAAA,QAAA,UAAA,CAAAC,EAAAwG,CAAA,EAAA,IAAA7F,EAAAR,EAAA,CAAA,EAAAuD,UAAArD,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAASD,EAAAoG,aAAA9F,EAAqB,IAAI,CAAC,CAAA,CAAA,EACnCb,EAAA,GAAA,OAAA,EAAA,EAAmC,GAAA,OAAA,EAAA,EACGoB,EAAA,GAAA,IAAA,EAAET,EAAA,EAAQS,EAAA,GAAA,cAAA,EAChDT,EAAA,EAAO,EAEXX,EAAA,GAAA,KAAA,EAAA,EAAIC,EAAA,QAAA,UAAA,CAAAC,EAAAwG,CAAA,EAAA,IAAA7F,EAAAR,EAAA,CAAA,EAAAuD,UAAArD,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAASD,EAAAoG,aAAA9F,EAAqB,IAAI,CAAC,CAAA,CAAA,EACnCb,EAAA,GAAA,OAAA,EAAA,EAAmC,GAAA,OAAA,EAAA,EACGoB,EAAA,GAAA,IAAA,EAAET,EAAA,EAAQS,EAAA,GAAA,aAAA,EAChDT,EAAA,EAAO,EAEXX,EAAA,GAAA,KAAA,EAAA,EAAIC,EAAA,QAAA,UAAA,CAAAC,EAAAwG,CAAA,EAAA,IAAA7F,EAAAR,EAAA,CAAA,EAAAuD,UAAArD,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAASD,EAAAoG,aAAA9F,EAAqB,KAAK,CAAC,CAAA,CAAA,EACpCb,EAAA,GAAA,OAAA,EAAA,EAAmC,GAAA,OAAA,EAAA,EACGoB,EAAA,GAAA,KAAA,EAAGT,EAAA,EAAQS,EAAA,GAAA,gBAAA,EACjDT,EAAA,EAAO,EACN,EAETX,EAAA,GAAA,MAAA,EAAA,EAAiB,GAAA,MAAA,EAAA,EACI,GAAA,aAAA,EAAA,EACDyD,EAAA,gBAAA,SAAAC,EAAA,CAAAxD,EAAAwG,CAAA,EAAA,IAAA7F,EAAAR,EAAA,CAAA,EAAAuD,UAAAC,OAAAC,EAAAjD,EAAA+B,QAAAc,CAAA,IAAA7C,EAAA+B,QAAAc,GAAAlD,EAAAkD,CAAA,CAAA,CAAA,EAAkC,gBAAA,SAAAA,EAAA,CAAAxD,EAAAwG,CAAA,EAAA,IAAA7F,EAAAR,EAAA,CAAA,EAAAuD,UAAAC,OAAAC,EAAAjD,EAAAgC,QAAAa,CAAA,IAAA7C,EAAAgC,QAAAa,GAAAlD,EAAAkD,CAAA,CAAA,CAAA,EAAoCzD,EAAA,gBAAA,SAAAyD,EAAA,CAAAxD,EAAAwG,CAAA,EAAA,IAAA7F,EAAAR,EAAA,CAAA,EAAAuD,UAAArD,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAAiBD,EAAAqG,2BAAAlD,EAAA7C,EAAAA,EAAAgC,OAAA,CAAgE,CAAA,CAAA,EAAC,gBAAA,SAAAa,EAAA,CAAAxD,EAAAwG,CAAA,EAAA,IAAA7F,EAAAR,EAAA,CAAA,EAAAuD,UAAArD,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAC/ID,EAAAqG,2BAAAlD,EAAA7C,EAAAA,EAAA+B,OAAA,CAAgE,CAAA,CAAA,EAAEjC,EAAA,EAAa,EAClG,EACJ,+BAHcI,EAAA,EAAA,EAAAkD,EAAA,UAAApD,EAAA+B,OAAA,EAAkC,UAAA/B,EAAAgC,OAAA,6BAkB1C7C,EAAA,EAAA,SAAA,EAAA,EAAyBoB,EAAA,CAAA,EAAUT,EAAA,0BAA3BK,EAAA,QAAA6F,CAAA,EAAiB9F,EAAA,EAAAuD,EAAAuC,CAAA,sCAF7B7G,EAAA,EAAA,SAAA,EAAA,EAAQC,EAAA,YAAA,SAAAyD,EAAA,CAAAG,OAAA3D,EAAA4G,CAAA,EAAAtG,EAAakD,EAAAqD,gBAAA,CAAwB,CAAA,CAAA,EAAEtD,EAAA,gBAAA,SAAAC,EAAA,CAAAxD,EAAA4G,CAAA,EAAA,IAAAE,EAAA3G,EAAA,EAAA4G,KAAApG,EAAAR,EAAA,CAAA,EAAAuD,UAAAC,OAAAC,EAAAjD,EAAAqG,YAAAF,EAAAG,EAAA,EAAAzD,CAAA,IAAA7C,EAAAqG,YAAAF,EAAAG,EAAA,EAAAzD,GAAAlD,EAAAkD,CAAA,CAAA,CAAA,EAC3CgB,EAAA,EAAA0C,GAAA,EAAA,EAAA,SAAA,GAAAxC,CAAA,EAGAlE,EAAA,EAAA,SAAA,EAAA,EACJC,EAAA,0CAL+CsD,EAAA,UAAApD,EAAAqG,YAAAF,EAAAG,EAAA,CAAA,EAC3CpG,EAAA,EAAA8D,EAAAhE,EAAAwG,MAAA,sCALJ3G,EAAA,EAAA,OAAA,EAAA,EAGAiB,EAAA,EAAA2F,GAAA,EAAA,EAAA,SAAA,EAAA,EAQAtH,EAAA,EAAA,OAAA,EAAA,EAAkCC,EAAA,QAAA,UAAA,CAAA,IAAAsH,EAAArH,EAAAsH,CAAA,EAAAR,EAAAO,EAAAN,KAAAQ,EAAAF,EAAAG,MAAA,OAAAlH,EAASiH,EAAAT,CAAA,CAAW,CAAA,CAAA,EAAE5F,EAAA,EAAA,MAAA,EAACT,EAAA,wCAX5BK,EAAA,YAAAgG,EAAA9B,MAAAxD,CAAA,EAG7BX,EAAA,EAAAe,EAAAjB,EAAAwG,OAAA,EAAA,EAAA,4BAWA3G,EAAA,EAAA,OAAA,EAAA,oBAAMM,EAAA,YAAA2G,EAAAzC,MAAAxD,CAAA,sCAnBlB1B,EAAA,EAAA,KAAA,EAAK,EAAA,YAAA,EAAA,EACkGyD,EAAA,gBAAA,SAAAC,EAAA,CAAAxD,EAAA0H,CAAA,EAAA,IAAA/G,EAAAR,EAAA,CAAA,EAAAuD,UAAAC,OAAAC,EAAAjD,EAAAkE,SAAArB,CAAA,IAAA7C,EAAAkE,SAAArB,GAAAlD,EAAAkD,CAAA,CAAA,CAAA,EAC/FzD,EAAA,SAAA,SAAAyD,EAAA,CAAAxD,EAAA0H,CAAA,EAAA,IAAA/G,EAAAR,EAAA,CAAA,EAAAuD,UAAArD,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAAUD,EAAAsH,wBAAAnE,EAAA7C,CAAA,CAAuC,CAAA,CAAA,EAAC,SAAA,SAAA6C,EAAA,CAAAxD,EAAA0H,CAAA,EAAA,IAAA/G,EAAAR,EAAA,CAAA,EAAAuD,UAAArD,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAAWD,EAAAuH,wBAAApE,EAAA7C,CAAA,CAAuC,CAAA,CAAA,EAAC,MAAA,SAAA6C,EAAA,CAAAxD,EAAA0H,CAAA,EAAA,IAAA/G,EAAAR,EAAA,CAAA,EAAAuD,UAAArD,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAAQD,EAAAuH,wBAAApE,EAAA7C,CAAA,CAAuC,CAAA,CAAA,EAAC,QAAA,UAAA,CAAAX,EAAA0H,CAAA,EAAA,IAAA/G,EAAAR,EAAA,CAAA,EAAAuD,UAAArD,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAAUD,EAAAwH,uBAAAlH,CAAA,CAA8B,CAAA,CAAA,EAAC,SAAA,SAAA6C,EAAA,CAAAxD,EAAA0H,CAAA,EAAA,IAAA/G,EAAAR,EAAA,CAAA,EAAAuD,UAAArD,EAAAF,EAAA,CAAA,EAAA,OAAAG,EACpLD,EAAAyH,wBAAAtE,EAAA7C,CAAA,CAAuC,CAAA,CAAA,EACjDc,EAAA,EAAAsG,GAAA,EAAA,EAAA,cAAA,EAAA,EAA4D,EAAAC,GAAA,EAAA,EAAA,cAAA,EAAA,EAiBhEvH,EAAA,EAAY,sCApBDI,EAAA,EAAAC,EAAA,QAAAH,EAAAsH,KAAA,EAAsB,WAAA,EAAA,EAAkElE,EAAA,UAAApD,EAAAkE,QAAA,EAAoC/D,EAAA,UAAAH,EAAAuH,SAAA,EAA6B,WAAA7H,EAAA8H,iCAAA,sCA0BpKrI,EAAA,EAAA,MAAA,EAAA,EAAiD,EAAA,MAAA,EAAA,EAEzCoB,EAAA,CAAA,EACJT,EAAA,EACAX,EAAA,EAAA,MAAA,EAAA,EAAkC,EAAA,MAAA,EAAA,EACL,EAAA,QAAA,EAAA,EAC0DyD,EAAA,gBAAA,SAAAC,EAAA,CAAAxD,EAAAoI,CAAA,EAAA,IAAAzH,EAAAR,EAAA,CAAA,EAAAuD,UAAAC,OAAAC,EAAAjD,EAAAmB,iBAAAU,YAAAgB,CAAA,IAAA7C,EAAAmB,iBAAAU,YAAAgB,GAAAlD,EAAAkD,CAAA,CAAA,CAAA,EAA/E/C,EAAA,EAAwI,EACtI,EAEVX,EAAA,EAAA,MAAA,EAAA,EACIoB,EAAA,EAAA,SAAA,EACJT,EAAA,EAAM,+BATFI,EAAA,CAAA,EAAAwC,EAAA,IAAA1C,EAAAuB,OAAA,OAAA,EAIoCrB,EAAA,CAAA,EAAAwH,GAAA,KAAA,YAAA1H,EAAAsG,GAAA,KAAA,EAA+ClD,EAAA,UAAApD,EAAAmB,iBAAAU,WAAA,sCAU3F1C,EAAA,EAAA,MAAA,EAAA,EAA4C,EAAA,MAAA,EAAA,EAClB,EAAA,MAAA,EAAA,EACO,EAAA,QAAA,EAAA,EACgDyD,EAAA,gBAAA,SAAAC,EAAA,CAAAxD,EAAAsI,CAAA,EAAA,IAAA3H,EAAAR,EAAA,CAAA,EAAAuD,UAAAC,OAAAC,EAAAjD,EAAAmB,iBAAAC,SAAAyB,CAAA,IAAA7C,EAAAmB,iBAAAC,SAAAyB,GAAAlD,EAAAkD,CAAA,CAAA,CAAA,EAAsDzD,EAAA,QAAA,UAAA,CAAAC,EAAAsI,CAAA,EAAA,IAAAjI,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAASD,EAAAyD,YAAA,CAAa,CAAA,CAAA,EAAjJrD,EAAA,EACAX,EAAA,EAAA,OAAA,EAAOoB,EAAA,EAAA,GAAA,EAACT,EAAA,EAAQ,EACd,EAEVX,EAAA,EAAA,MAAA,EAAA,EAAsB,EAAA,MAAA,EAAA,EACO,EAAA,OAAA,EACdoB,EAAA,EAAA,gBAAA,EAAmBT,EAAA,EAAQ,EAChC,EAEVX,EAAA,GAAA,MAAA,EAAA,EAAsB,GAAA,MAAA,EAAA,EACO,GAAA,QAAA,EAAA,EACgDyD,EAAA,gBAAA,SAAAC,EAAA,CAAAxD,EAAAsI,CAAA,EAAA,IAAA3H,EAAAR,EAAA,CAAA,EAAAuD,UAAAC,OAAAC,EAAAjD,EAAAmB,iBAAAE,SAAAwB,CAAA,IAAA7C,EAAAmB,iBAAAE,SAAAwB,GAAAlD,EAAAkD,CAAA,CAAA,CAAA,EAAsDzD,EAAA,QAAA,UAAA,CAAAC,EAAAsI,CAAA,EAAA,IAAAjI,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAASD,EAAAyD,YAAA,CAAa,CAAA,CAAA,EAAjJrD,EAAA,EACAX,EAAA,GAAA,OAAA,EAAOoB,EAAA,GAAA,GAAA,EAACT,EAAA,EAAQ,EACd,EACJ,EAEVX,EAAA,GAAA,MAAA,EAAA,EAAiB,GAAA,MAAA,EAAA,EACkB,GAAA,aAAA,EAAA,EACOyD,EAAA,cAAA,SAAAC,EAAA,CAAAxD,EAAAsI,CAAA,EAAA,IAAA3H,EAAAR,EAAA,CAAA,EAAAuD,UAAAC,OAAAC,EAAAjD,EAAAmB,iBAAAC,SAAAyB,CAAA,IAAA7C,EAAAmB,iBAAAC,SAAAyB,GAAAlD,EAAAkD,CAAA,CAAA,CAAA,EAAmD,kBAAA,SAAAA,EAAA,CAAAxD,EAAAsI,CAAA,EAAA,IAAA3H,EAAAR,EAAA,CAAA,EAAAuD,UAAAC,OAAAC,EAAAjD,EAAAmB,iBAAAE,SAAAwB,CAAA,IAAA7C,EAAAmB,iBAAAE,SAAAwB,GAAAlD,EAAAkD,CAAA,CAAA,CAAA,EACjFzD,EAAA,cAAA,UAAA,CAAAC,EAAAsI,CAAA,EAAA,IAAAjI,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAAeD,EAAAyD,YAAA,CAAa,CAAA,CAAA,EAAErD,EAAA,EAAa,EAC7C,+BApBuEI,EAAA,CAAA,EAAAkD,EAAA,UAAApD,EAAAmB,iBAAAC,QAAA,EAWAlB,EAAA,CAAA,EAAAkD,EAAA,UAAApD,EAAAmB,iBAAAE,QAAA,EAOvCnB,EAAA,CAAA,EAAAkD,EAAA,QAAApD,EAAAmB,iBAAAC,QAAA,EAAmD,YAAApB,EAAAmB,iBAAAE,QAAA,EAAyDlB,EAAA,UAAAyH,EAAA,EAAAC,EAAA,CAAA,sCAOtJ1I,EAAA,EAAA,MAAA,EAAA,EAA4C,EAAA,MAAA,EAAA,EAClB,EAAA,MAAA,EAAA,EACO,EAAA,OAAA,EACdoB,EAAA,CAAA,EAAiBT,EAAA,EACxBX,EAAA,EAAA,QAAA,EAAA,EAAsEyD,EAAA,gBAAA,SAAAC,EAAA,CAAAxD,EAAAyI,CAAA,EAAA,IAAA9H,EAAAR,EAAA,CAAA,EAAAuD,UAAAC,OAAAC,EAAAjD,EAAAoB,SAAAyB,CAAA,IAAA7C,EAAAoB,SAAAyB,GAAAlD,EAAAkD,CAAA,CAAA,CAAA,EAAoCzD,EAAA,QAAA,SAAAyD,EAAA,CAAAxD,EAAAyI,CAAA,EAAA,IAAApI,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAASD,EAAAyD,YAAAN,CAAA,CAAmB,CAAA,CAAA,EAAtI/C,EAAA,EACAX,EAAA,EAAA,OAAA,EAAOoB,EAAA,CAAA,EAAiBT,EAAA,EAAQ,EAC9B,EAEVX,EAAA,EAAA,MAAA,EAAA,EAAsB,EAAA,MAAA,EAAA,EACO,GAAA,OAAA,EACdoB,EAAA,GAAA,gBAAA,EAAmBT,EAAA,EAAQ,EAChC,EAEVX,EAAA,GAAA,MAAA,EAAA,EAAsB,GAAA,MAAA,EAAA,EACO,GAAA,OAAA,EACdoB,EAAA,EAAA,EAAiBT,EAAA,EACxBX,EAAA,GAAA,QAAA,EAAA,EAAsEyD,EAAA,gBAAA,SAAAC,EAAA,CAAAxD,EAAAyI,CAAA,EAAA,IAAA9H,EAAAR,EAAA,CAAA,EAAAuD,UAAAC,OAAAC,EAAAjD,EAAAqB,SAAAwB,CAAA,IAAA7C,EAAAqB,SAAAwB,GAAAlD,EAAAkD,CAAA,CAAA,CAAA,EAAoCzD,EAAA,QAAA,SAAAyD,EAAA,CAAAxD,EAAAyI,CAAA,EAAA,IAAApI,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAASD,EAAAyD,YAAAN,CAAA,CAAmB,CAAA,CAAA,EAAtI/C,EAAA,EACAX,EAAA,GAAA,OAAA,EAAOoB,EAAA,EAAA,EAAiBT,EAAA,EAAQ,EAC9B,EACJ,EAEVX,EAAA,GAAA,MAAA,EAAA,EAAiB,GAAA,MAAA,EAAA,EACkB,GAAA,aAAA,EAAA,EACOyD,EAAA,cAAA,SAAAC,EAAA,CAAAxD,EAAAyI,CAAA,EAAA,IAAA9H,EAAAR,EAAA,CAAA,EAAAuD,UAAAC,OAAAC,EAAAjD,EAAAoB,SAAAyB,CAAA,IAAA7C,EAAAoB,SAAAyB,GAAAlD,EAAAkD,CAAA,CAAA,CAAA,EAAiC,kBAAA,SAAAA,EAAA,CAAAxD,EAAAyI,CAAA,EAAA,IAAA9H,EAAAR,EAAA,CAAA,EAAAuD,UAAAC,OAAAC,EAAAjD,EAAAqB,SAAAwB,CAAA,IAAA7C,EAAAqB,SAAAwB,GAAAlD,EAAAkD,CAAA,CAAA,CAAA,EAAkEzD,EAAA,cAAA,UAAA,CAAAC,EAAAyI,CAAA,EAAA,IAAApI,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAAeD,EAAAyD,YAAA,CAAa,CAAA,CAAA,EAAErD,EAAA,EAAa,EAC9K,+BArBSI,EAAA,CAAA,EAAAuD,EAAAzD,EAAAuB,MAAA,EAC+DrB,EAAA,EAAAkD,EAAA,UAAApD,EAAAoB,QAAA,EAC/DlB,EAAA,CAAA,EAAAuD,EAAAzD,EAAAwB,MAAA,EAUAtB,EAAA,CAAA,EAAAuD,EAAAzD,EAAAuB,MAAA,EAC+DrB,EAAA,EAAAkD,EAAA,UAAApD,EAAAqB,QAAA,EAC/DnB,EAAA,CAAA,EAAAuD,EAAAzD,EAAAwB,MAAA,EAMuBtB,EAAA,CAAA,EAAAkD,EAAA,QAAApD,EAAAoB,QAAA,EAAiC,YAAApB,EAAAqB,QAAA,EAAuClB,EAAA,UAAAH,EAAA+H,OAAA,sCAS1G5I,EAAA,EAAA,MAAA,EAAA,EAAyB,EAAA,QAAA,EAAA,EACoIC,EAAA,SAAA,UAAA,CAAA,IAAA4I,EAAA3I,EAAA4I,CAAA,EAAAlF,UAAA/C,EAAAR,EAAA,CAAA,EAAAuD,UAAArD,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAAUD,EAAAwI,eAAAF,EAAAhI,CAAA,CAAgC,CAAA,CAAA,EAAnMF,EAAA,EACAX,EAAA,EAAA,QAAA,EAAA,EAAmEoB,EAAA,CAAA,EAAuBT,EAAA,EAAQ,wDADlEI,EAAA,EAAAiI,GAAA,KAAA,YAAAnI,EAAAsG,GAAA,IAAA8B,EAAA,EAAA,EAAkDjI,EAAA,QAAA6H,EAAAK,OAAAL,EAAAhD,IAAA,EAAyC,UAAAgD,EAAAM,OAAA,EAC3FpI,EAAA,EAAAiI,GAAA,MAAA,YAAAnI,EAAAsG,GAAA,IAAA8B,EAAA,EAAA,EAAmClI,EAAA,EAAAwC,EAAA,OAAAsF,EAAAhD,KAAA,EAAA,6BAL/E7F,EAAA,EAAA,MAAA,EAAA,EAAwC,EAAA,MAAA,EAAA,EAEhC0E,EAAA,EAAA0E,GAAA,EAAA,EAAA,MAAA,GAAAxE,CAAA,EAMJjE,EAAA,EAAM,6BANFI,EAAA,CAAA,EAAA8D,EAAAhE,EAAAU,UAAA,6BA7EZvB,EAAA,EAAA,KAAA,EACI2B,EAAA,EAAA0H,GAAA,EAAA,EAAA,MAAA,EAAA,EAAwB,EAAAC,GAAA,GAAA,CAAA,EAewC,EAAAC,GAAA,GAAA,CAAA,EA4BvD,EAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EA0Cb7I,EAAA,6BArFII,EAAA,EAAAe,EAAAjB,EAAA4B,UAAA,EAAA,EAAA,EAeA1B,EAAA,EAAAe,EAAAjB,EAAA4B,WAAA5B,EAAAmB,iBAAAU,YAAA,EAAA,CAAA,EA0DA3B,EAAA,CAAA,EAAAe,EAAAjB,EAAAU,YAAA,MAAAV,EAAAU,WAAAC,OAAA,EAAA,EAAA,6BApLZxB,EAAA,EAAA,MAAA,EAAA,EACwB,EAAA,MAAA,EAAA,EAEhB2B,EAAA,EAAA8H,GAAA,EAAA,EAAA,cAAA,EAA8F,EAAAC,GAAA,EAAA,EAAA,KAAA,EAAA,EAG+B,EAAAC,GAAA,GAAA,EAAA,KAAA,EAgC1E,EAAAC,GAAA,EAAA,EAAA,KAAA,EA0CQ,EAAAC,GAAA,EAAA,EAAA,KAAA,EAkH/DlJ,EAAA,EAAM,oCAlMkEC,EAAA,aAAA,gGAAAC,EAAAC,OAAA,oBAAA,EACxEE,EAAA,sBAAA8I,MAAA,4BAEI/I,EAAA,CAAA,EAAAe,EAAAvB,EAAAwJ,YAAAC,uBAAAnJ,CAAA,GAAAN,EAAAwJ,YAAAE,qBAAApJ,CAAA,EAAA,EAAA,EAAA,EAGAE,EAAA,EAAAe,EAAAjB,EAAAqJ,MAAA3J,EAAA4J,iBAAAC,aAAA7J,EAAAwJ,YAAAE,qBAAApJ,CAAA,GAAAA,EAAAwF,oBAAA,EAAA,EAAA,EAgCAtF,EAAA,EAAAe,EAAAvB,EAAAwJ,YAAAM,wBAAAxJ,CAAA,EAAA,EAAA,EAAA,EA0CAE,EAAA,EAAAe,EAAAvB,EAAAwJ,YAAAO,gCAAAzJ,CAAA,EAAA,EAAA,EAAA,EAyBAE,EAAA,EAAAe,EAAAvB,EAAAwJ,YAAAQ,0BAAA1J,CAAA,EAAA,EAAA,EAAA,sCAjOZb,EAAA,EAAA,MAAA,EAAA,EAAmC,EAAA,MAAA,EAAA,EAE3B2B,EAAA,EAAA6I,GAAA,EAAA,EAAA,OAAA,EAAA,EACsE,EAAAC,GAAA,EAAA,EAAA,OAAA,EAAA,EAUtEzK,EAAA,EAAA,OAAA,EAAA,EAA0BC,EAAA,QAAA,UAAA,CAAAC,EAAAwK,CAAA,EAAA,IAAAtK,EAAAC,EAAA,EAAAC,OAAAC,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAASD,EAAAE,mBAAAL,CAAA,CAAqB,CAAA,CAAA,EAA2CgB,EAAA,CAAA,EAAqBT,EAAA,EACxHgB,EAAA,EAAAgJ,GAAA,EAAA,EAAA,OAAA,EAAA,EAAkD,EAAAC,GAAA,EAAA,EAAA,OAAA,EAAA,EAcG,EAAAC,GAAA,EAAA,EAAA,OAAA,EAAA,EAkBF,EAAAC,GAAA,EAAA,EAAA,OAAA,EAAA,EAiCH,GAAAC,GAAA,EAAA,EAAA,OAAA,EAAA,EAKC,GAAAC,GAAA,EAAA,EAAA,OAAA,EAAA,EAKD,GAAAC,GAAA,EAAA,EAAA,OAAA,EAAA,EA4BhDjL,EAAA,GAAA,SAAA,EAAA,EAAwCC,EAAA,QAAA,UAAA,CAAAC,EAAAwK,CAAA,EAAA,IAAAtK,EAAAC,EAAA,EAAAC,OAAAC,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAASD,EAAA2K,6BAAA9K,CAAA,CAA+B,CAAA,CAAA,EAAEO,EAAA,EAAS,EAE/FgB,EAAA,GAAAwJ,GAAA,EAAA,EAAA,MAAA,EAAA,EAsMJxK,EAAA,qCA5T2BI,EAAA,EAAAqK,GAAA,YAAA,CAAAvK,EAAAM,QAAAN,EAAAqJ,MAAA3J,EAAA4J,iBAAAkB,eAAAxK,EAAAqJ,MAAA3J,EAAA4J,iBAAAmB,MAAA,EACnBvK,EAAA,EAAAe,EAAAjB,EAAAqJ,OAAA3J,EAAA4J,iBAAAoB,mBAAA1K,EAAAqJ,OAAA3J,EAAA4J,iBAAAmB,QAAAzK,EAAAqJ,OAAA3J,EAAA4J,iBAAAC,aAAAvJ,EAAAqJ,OAAA3J,EAAA4J,iBAAAkB,eAAA9K,EAAAwJ,YAAAE,qBAAApJ,CAAA,GAAAA,EAAA8E,eAAA,EAAA,EAAA,EAMA5E,EAAA,EAAAe,EAAAjB,EAAAqJ,MAAA3J,EAAA4J,iBAAAoB,mBAAA1K,EAAAqJ,MAAA3J,EAAA4J,iBAAAkB,eAAAxK,EAAAqJ,OAAA3J,EAAA4J,iBAAAmB,OAAA,EAAA,EAAA,EAK0DvK,EAAA,EAAAH,EAAA,mBAAAC,EAAAC,MAAA,EAAyCC,EAAA,EAAAwC,EAAA,GAAA1C,EAAAgF,KAAA,MAAA,EACnG9E,EAAA,EAAAe,EAAAvB,EAAAwJ,YAAAC,uBAAAnJ,CAAA,EAAA,EAAA,EAAA,EAcAE,EAAA,EAAAe,EAAAvB,EAAAwJ,YAAAQ,0BAAA1J,CAAA,EAAA,EAAA,EAAA,EAkBAE,EAAA,EAAAe,EAAAvB,EAAAwJ,YAAAM,wBAAAxJ,CAAA,EAAA,EAAA,EAAA,EAiCAE,EAAA,EAAAe,EAAAvB,EAAAwJ,YAAAE,qBAAApJ,CAAA,EAAA,EAAA,EAAA,EAKAE,EAAA,EAAAe,EAAAvB,EAAAwJ,YAAAyB,sBAAA3K,CAAA,EAAA,GAAA,EAAA,EAKAE,EAAA,EAAAe,EAAAvB,EAAAwJ,YAAA0B,qBAAA5K,CAAA,EAAA,GAAA,EAAA,EASAE,EAAA,EAAAe,EAAAvB,EAAAwJ,YAAAO,gCAAAzJ,CAAA,EAAA,GAAA,EAAA,EAqBJE,EAAA,CAAA,EAAAe,EAAAjB,EAAAM,QAAAN,EAAAqJ,OAAA3J,EAAA4J,iBAAAkB,eAAAxK,EAAAqJ,OAAA3J,EAAA4J,iBAAAmB,OAAA,GAAA,EAAA,4BAxHJ3J,EAAA,EAAA+J,GAAA,GAAA,GAAA,MAAA,EAAA,gCAAA5J,EAAA,CAAAvB,EAAAwJ,YAAA4B,8BAAA9K,CAAA,GAAAA,EAAA+K,SAAA,EAAA,EAAA,6BAqVoB5L,EAAA,EAAA,MAAA,EAAMoB,EAAA,CAAA,EAA2CT,EAAA,6BAA3CI,EAAA,EAAAwC,EAAA,mBAAAsI,EAAA9H,aAAA,EAAA,6BAGN/D,EAAA,EAAA,MAAA,EAAMoB,EAAA,CAAA,EAA4BT,EAAA,6BAA5BI,EAAA,EAAAwC,EAAA,OAAAsI,EAAA1H,YAAA,EAAA,yBAKFzD,EAAA,EAAA,MAAA,EAAA,qCAMIV,EAAA,EAAA,KAAA,EAAA,EAAIC,EAAA,QAAA,UAAA,CAAA,IAAA6L,EAAA5L,EAAA6L,CAAA,EAAAnI,UAAAiI,EAAAxL,EAAA,CAAA,EAAAuD,UAAArD,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAASD,EAAAyL,2BAAAH,EAAmC,KAAIC,CAAA,CAAO,CAAA,CAAA,EACvD9L,EAAA,EAAA,MAAA,EAAA,EACIU,EAAA,EAAA,OAAA,EAAA,EAAgC,EAAA,OAAA,EAAA,EACpCC,EAAA,EAAM,4BADoCI,EAAA,CAAA,EAAAC,EAAA,YAAA8K,EAAA5G,MAAAxD,CAAA,6BALlD1B,EAAA,EAAA,KAAA,EAAA,EACI0E,EAAA,EAAAuH,GAAA,EAAA,EAAA,KAAA,KAAArH,CAAA,EASJjE,EAAA,6BATII,EAAA,EAAA8D,EAAAgH,EAAA1D,KAAA,6BANRnI,EAAA,EAAA,KAAA,EACI2B,EAAA,EAAAuK,GAAA,EAAA,EAAA,MAAA,EAAA,EAAwB,EAAAC,GAAA,EAAA,EAAA,KAAA,EAAA,EAgB5BxL,EAAA,6BAhBII,EAAA,EAAAe,EAAA+J,EAAAzD,UAAA,EAAA,EAAA,EAGArH,EAAA,EAAAe,EAAA+J,EAAA1D,MAAA3G,OAAA,EAAA,EAAA,sCAoBAxB,EAAA,EAAA,KAAA,EAAA,EAAIC,EAAA,QAAA,UAAA,CAAAC,EAAAkM,CAAA,EAAA,IAAAC,EAAAhM,EAAA,EAAAuD,UAAAiI,EAAAxL,EAAA,CAAA,EAAAuD,UAAArD,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAASD,EAAAyL,2BAAAH,EAAAQ,CAAA,CAA4C,CAAA,CAAA,EACrDrM,EAAA,EAAA,MAAA,EAAA,EACIU,EAAA,EAAA,OAAA,EAAA,EAAgCU,EAAA,CAAA,EACpCT,EAAA,EAAM,8BAD8BI,EAAA,CAAA,EAAAwC,EAAA,GAAA8I,EAAAxG,KAAA,GAAA,4BAHxClE,EAAA,EAAA2K,GAAA,EAAA,EAAA,IAAA,gCAAAxK,EAAAvB,EAAAgM,wBAAAF,EAAA9L,EAAAiM,gBAAA,EAAA,EAAA,EAAA,6BAHJxM,EAAA,EAAA,KAAA,EAAA,EACI0E,EAAA,EAAA+H,GAAA,EAAA,EAAA,KAAA,KAAA7H,CAAA,EAWJjE,EAAA,6BAXII,EAAA,EAAA8D,EAAAgH,EAAAtK,UAAA,sCA/BRvB,EAAA,EAAA,KAAA,EAAA,EAAIC,EAAA,QAAA,UAAA,CAAAC,EAAAwM,CAAA,EAAA,IAAAb,EAAAxL,EAAA,EAAAuD,UAAArD,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAASD,EAAAyL,2BAAAH,CAAA,CAAkC,CAAA,CAAA,EAC3CnL,EAAA,EAAA,OAAA,EAAA,EACAV,EAAA,EAAA,OAAA,EAAA,EAAmBoB,EAAA,CAAA,EAAeT,EAAA,EAClCgB,EAAA,EAAAgL,GAAA,EAAA,EAAA,MAAA,EAAuE,EAAAC,GAAA,EAAA,EAAA,MAAA,EAGA,EAAAC,GAAA,EAAA,EAAA,KAAA,EAGZ,EAAAC,GAAA,EAAA,EAAA,KAAA,EAAA,EAmC/DnM,EAAA,qCA3CUI,EAAA,EAAAC,EAAA,OAAA6K,EAAAkB,IAAA,EACahM,EAAA,CAAA,EAAAuD,EAAAuH,EAAAhG,IAAA,EACnB9E,EAAA,EAAAe,EAAAvB,EAAAwJ,YAAAE,qBAAA4B,CAAA,GAAAA,EAAA9H,aAAA,EAAA,EAAA,EAGAhD,EAAA,EAAAe,EAAAvB,EAAAwJ,YAAAyB,sBAAAK,CAAA,GAAAA,EAAA1H,YAAA,EAAA,EAAA,EAGApD,EAAA,EAAAe,EAAAvB,EAAAwJ,YAAAO,gCAAAuB,CAAA,EAAA,EAAA,EAAA,EAoBA9K,EAAA,EAAAe,EAAAvB,EAAAwJ,YAAAC,uBAAA6B,CAAA,GAAAtL,EAAAiM,iBAAAhL,OAAA,EAAA,EAAA,4BA9BJG,EAAA,EAAAqL,GAAA,EAAA,EAAA,IAAA,gCAAAlL,EAAA+J,EAAAoB,SAAA,CAAApB,EAAAD,UAAArL,EAAA2M,mBAAArB,CAAA,EAAA,EAAA,EAAA,6BAPR7L,EAAA,EAAA,MAAA,EAAA,EAAqC,EAAA,MAAA,EAAA,EAE7BoB,EAAA,CAAA,EACJT,EAAA,EACAX,EAAA,EAAA,IAAA,EACI0E,EAAA,EAAAyI,GAAA,EAAA,EAAA,KAAA,KAAAvI,CAAA,EAmDJjE,EAAA,EAAK,4BAvDwCI,EAAA,EAAAH,EAAA,QAAAwM,EAAAtM,MAAA,EACzCC,EAAA,EAAAwC,EAAA,cAAA6J,EAAAC,UAAA,GAAA,EAGAtM,EAAA,CAAA,EAAA8D,EAAAuI,EAAAxE,OAAA,4BANRjH,EAAA,EAAA2L,GAAA,EAAA,EAAA,MAAA,EAAA,gCAAAxL,EAAAsL,EAAAH,SAAA1M,EAAAgN,uCAAAH,CAAA,GAAA7M,EAAAiN,kCAAAJ,CAAA,EAAA,EAAA,EAAA,sCAqERpN,EAAA,EAAA,MAAA,EAAA,EAAmCC,EAAA,QAAA,UAAA,CAAAC,EAAAuN,CAAA,EAAA,IAAAlN,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAASD,EAAAmN,WAAA,CAAY,CAAA,CAAA,EACpD1N,EAAA,EAAA,MAAA,EAAA,EAAuB,EAAA,OAAA,EAAA,EAEfU,EAAA,EAAA,OAAA,EAAA,EAAsCU,EAAA,CAAA,EAC1CT,EAAA,EAAO,EACL,qBAFQI,EAAA,CAAA,EAAAC,EAAA,OAAAT,EAAAU,UAAA0M,IAAA,EAAgC5M,EAAA,EAAAwC,EAAA,IAAAhD,EAAAqN,iBAAA,GAAA,6BALtD5N,EAAA,EAAA,MAAA,EAAA,EACI2B,EAAA,EAAAkM,GAAA,EAAA,EAAA,MAAA,EAAA,EASJlN,EAAA,mBATII,EAAA,EAAAe,EAAAvB,EAAAuN,wBAAAvN,EAAAwN,gBAAAvM,OAAA,EAAA,EAAA,EAAA,sCAYJxB,EAAA,EAAA,SAAA,EAAA,EAAoDC,EAAA,QAAA,UAAA,CAAAC,EAAA8N,CAAA,EAAA,IAAAzN,EAAAF,EAAA,CAAA,EAAA,OAAAG,EAASD,EAAA0N,YAAA,CAAa,CAAA,CAAA,EAAEtN,EAAA,sCA7ZpFX,EAAA,EAAA,MAAA,CAAA,EAAwC,EAAA,MAAA,CAAA,EACgB,EAAA,MAAA,CAAA,EACRC,EAAA,QAAA,SAAAyD,EAAA,CAAAG,OAAA3D,EAAAgO,CAAA,EAAA1N,EAASkD,EAAAqD,gBAAA,CAAwB,CAAA,CAAA,EACrErC,EAAA,EAAAyJ,GAAA,EAAA,EAAA,KAAA,KAAAvJ,CAAA,EAoUA5E,EAAA,EAAA,MAAA,CAAA,EAAqC,EAAA,QAAA,EAAA,CAAA,EACmDC,EAAA,QAAA,UAAA,CAAAC,EAAAgO,CAAA,EAAA,IAAAE,EAAAC,EAAA,CAAA,EAAA9N,EAAAF,EAAA,EAAA,OAAAG,EAASD,EAAA+N,+BAAAF,EAAAlF,KAAA,CAA2C,CAAA,CAAA,EAAC,QAAA,UAAA,CAAAhJ,EAAAgO,CAAA,EAAA,IAAAE,EAAAC,EAAA,CAAA,EAAA9N,EAAAF,EAAA,EAAA,OAAAG,EAAUD,EAAA+N,+BAAAF,EAAAlF,KAAA,CAA2C,CAAA,CAAA,EAAC,QAAA,SAAAxF,EAAA,CAAAxD,EAAAgO,CAAA,EAAA,IAAA3N,EAAAF,EAAA,EAAA,OAAAG,EAAUD,EAAAgO,YAAA7K,CAAA,CAAmB,CAAA,CAAA,EACpLD,EAAA,gBAAA,SAAAC,EAAA,CAAAxD,EAAAgO,CAAA,EAAA,IAAA3N,EAAAF,EAAA,EAAAwD,OAAAC,EAAAvD,EAAAiM,iBAAA9I,CAAA,IAAAnD,EAAAiM,iBAAA9I,GAAAlD,EAAAkD,CAAA,CAAA,CAAA,EAA+BzD,EAAA,gBAAA,UAAA,CAAAC,EAAAgO,CAAA,EAAA,IAAA3N,EAAAF,EAAA,EAAA,OAAAG,EAAiBD,EAAAiO,WAAA,CAAY,CAAA,CAAA,EADpG7N,EAAA,EAEAX,EAAA,EAAA,MAAA,EAAA,CAAA,EACI0E,EAAA,GAAA+J,GAAA,EAAA,EAAA,KAAA,KAAA7J,CAAA,EAgEAlE,EAAA,GAAA,MAAA,EAAA,EACJC,EAAA,EAAM,EACJ,EAEVgB,EAAA,GAAA+M,GAAA,EAAA,EAAA,MAAA,EAAA,gBAaA/M,EAAA,GAAAgN,GAAA,EAAA,EAAA,SAAA,EAAA,EAGJhO,EAAA,EAAM,sBA5ZEI,EAAA,CAAA,EAAA8D,EAAAtE,EAAAwN,eAAA,EAsUQhN,EAAA,CAAA,EAAA6E,EAAA,cAAArF,EAAAqO,iBAAA,EAAoC3K,EAAA,UAAA1D,EAAAiM,gBAAA,EACmBzL,EAAA,CAAA,EAAAH,EAAA,OAAAL,EAAAsO,aAAA,IAAA,EACvD9N,EAAA,CAAA,EAAA8D,EAAAtE,EAAAuO,0BAAA,EAoEZ/N,EAAA,CAAA,EAAAe,IAAAiN,EAAAhN,EAAA,GAAA,EAAAxB,EAAAyO,UAAA,IAAA,MAAAD,EAAAE,MAAA,KAAA,KAAAF,EAAAE,KAAAC,UAAA,GAAA,GAAA,EAAA,EAaAnO,EAAA,CAAA,EAAAe,EAAAvB,EAAAwN,gBAAAvM,OAAA,EAAA,GAAA,EAAA,yBAuBYJ,EAAA,EAAA,OAAA,wBAGAA,EAAA,EAAA,QAAA,wBAQRiE,GAAA,CAAA,4BADJrF,EAAA,EAAA,KAAA,EAAA,EACI2B,EAAA,EAAAwN,GAAA,EAAA,EAAA,eAAA,EAAA,EACJxO,EAAA,6CADmBI,EAAA,EAAAC,EAAA,mBAAAuE,CAAA,EAA0C,0BAAAC,GAAA,EAAA4J,GAAAC,EAAAC,kBAAA,CAAA,sCArB7DtP,EAAA,EAAA,IAAA,EAAI,EAAA,QAAA,EAAA,EACsHC,EAAA,SAAA,UAAA,CAAAC,EAAAqP,CAAA,EAAA,IAAAF,EAAAhP,EAAA,EAAAuD,UAAA4L,EAAAnP,EAAA,CAAA,EAAAoP,OAAAlP,EAAAF,EAAA,EAAA,OAAAG,EAAUD,EAAAwI,eAAAsG,EAAAG,CAAA,CAAgC,CAAA,CAAA,EAAhK7O,EAAA,EACAX,EAAA,EAAA,MAAA,EAAA,EAA4BC,EAAA,QAAA,UAAA,CAAAC,EAAAqP,CAAA,EAAA,IAAAF,EAAAhP,EAAA,EAAAuD,UAAA4L,EAAAnP,EAAA,CAAA,EAAAoP,OAAAlP,EAAAF,EAAA,EAAA,OAAAG,EAASD,EAAAmP,iBAAAL,EAAAG,CAAA,CAAkC,CAAA,CAAA,EACnExP,EAAA,EAAA,OAAA,EAAA,EACIoB,EAAA,CAAA,EACApB,EAAA,EAAA,OAAA,EAAA,EAAkCoB,EAAA,EAAA,QAAA,EAAMT,EAAA,EAAO,EAEnDX,EAAA,EAAA,OAAA,EAAA,EACI2B,EAAA,EAAAgO,GAAA,EAAA,CAAA,EAAsD,EAAAC,GAAA,EAAA,CAAA,EAO1DjP,EAAA,EACAX,EAAA,GAAA,OAAA,EAAA,EAAqBoB,EAAA,GAAA,QAAA,EAAMT,EAAA,EAAO,EAChC,EAEVgB,EAAA,GAAAkO,GAAA,EAAA,EAAA,KAAA,EAAA,4CAlBmD9O,EAAA,EAAAC,EAAA,QAAAqO,EAAAnG,OAAAmG,EAAAxJ,IAAA,EAAyC,UAAAwJ,EAAAlG,OAAA,EAGhFpI,EAAA,CAAA,EAAAwC,EAAA,IAAA8L,EAAAxJ,KAAA,GAAA,EAIA9E,EAAA,CAAA,EAAAe,EAAAuN,EAAAlG,SAAAqG,EAAAlO,gBAAA,EAAA,EAAA,CAAA,EAWZP,EAAA,CAAA,EAAAe,EAAAuN,EAAAlG,SAAAkG,EAAAC,mBAAA,GAAA,EAAA,4BApBA3N,EAAA,EAAAmO,GAAA,GAAA,CAAA,gCAAAhO,EAAAvB,EAAAgM,wBAAA8C,CAAA,EAAA,EAAA,EAAA,6BAHJrP,EAAA,EAAA,IAAA,EACI0E,EAAA,EAAAqL,GAAA,EAAA,EAAA,KAAA,KAAAnL,CAAA,EA8BJjE,EAAA,8CA/BIqP,GAAA,qBAAAC,EAAA,EAAA,EAAqCrP,EAAA,UAAAL,EAAA2P,gBAAAV,EAAAjO,YAAA,KAAA,KAAAiO,EAAAjO,WAAAC,MAAA,CAAA,EACrCT,EAAA,EAAA8D,EAAA2K,EAAAjO,UAAA,4BAFJI,EAAA,EAAAwO,GAAA,EAAA,EAAA,KAAA,EAAA,sBAAArO,EAAA0N,EAAAjO,YAAA,MAAAiO,EAAAjO,WAAAC,OAAA,EAAA,EAAA,0BA4CIxB,EAAA,EAAA,MAAA,EAAA,EACIU,EAAA,EAAA,MAAA,EAAA,EAEJC,EAAA,sCAIIX,EAAA,EAAA,MAAA,EAAM,EAAA,MAAA,EAAA,EACoB,EAAA,MAAA,EAAA,EACD,EAAA,SAAA,EAAA,EACeyD,EAAA,gBAAA,SAAAC,EAAA,CAAA,IAAA0M,EAAAlQ,EAAAmQ,CAAA,EAAA/P,OAAAC,EAAAF,EAAA,CAAA,EAAAwD,OAAAC,EAAAvD,EAAA+P,cAAAF,CAAA,EAAAG,MAAA7M,CAAA,IAAAnD,EAAA+P,cAAAF,CAAA,EAAAG,MAAA7M,GAAAlD,EAAAkD,CAAA,CAAA,CAAA,EACxB1D,EAAA,EAAA,SAAA,EAAA,EAA+BoB,EAAA,CAAA,EAAwBT,EAAA,EACvDX,EAAA,EAAA,SAAA,EAAA,EAA4BoB,EAAA,CAAA,EAAaT,EAAA,EAAS,EAC7C,EAEbX,EAAA,EAAA,MAAA,EAAA,EAAsB,EAAA,QAAA,EAAA,EAC8ByD,EAAA,gBAAA,SAAAC,EAAA,CAAA,IAAA0M,EAAAlQ,EAAAmQ,CAAA,EAAA/P,OAAAC,EAAAF,EAAA,CAAA,EAAAwD,OAAAC,EAAAvD,EAAA+P,cAAAF,CAAA,EAAAjH,QAAAzF,CAAA,IAAAnD,EAAA+P,cAAAF,CAAA,EAAAjH,QAAAzF,GAAAlD,EAAAkD,CAAA,CAAA,CAAA,EAAhD/C,EAAA,EAA6H,EAC3H,EACJ,8CAR8BI,EAAA,CAAA,EAAAkD,EAAA,UAAA1D,EAAA+P,cAAAF,CAAA,EAAAG,KAAA,EAAqCvP,EAAA,iBAAAyH,EAAA,EAAA+H,EAAA,CAAA,EACrDzP,EAAA,EAAAC,EAAA,UAAA,UAAA,EAAuBD,EAAA,EAAAwC,EAAA,aAAAkN,EAAAtJ,GAAA,GAAA,EACvBpG,EAAA,EAAAC,EAAA,UAAA,OAAA,EAAoBD,EAAA,EAAAuD,EAAAmM,EAAAtJ,EAAA,EAIgBpG,EAAA,CAAA,EAAAkD,EAAA,UAAA1D,EAAA+P,cAAAF,CAAA,EAAAjH,OAAA,EAAuCnI,EAAA,iBAAAyH,EAAA,EAAA+H,EAAA,CAAA,yBAVvG9L,EAAA,EAAAgM,GAAA,GAAA,GAAA,OAAA,KAAAC,EAAA,OAAA9L,EAAA+L,CAAA,qCAZJ5Q,EAAA,EAAA,MAAA,EAAA,EAA0B,EAAA,KAAA,EAAA,EACyBoB,EAAA,CAAA,EAAuBT,EAAA,EACtEX,EAAA,EAAA,SAAA,EAAA,EAA2DC,EAAA,QAAA,UAAA,CAAA,IAAA4Q,EAAA3Q,EAAA4Q,CAAA,EAAAlN,UAAA,OAAApD,EAASqQ,EAAAE,QAAc,aAAa,CAAC,CAAA,CAAA,EAAEpQ,EAAA,EAAS,EAE/GX,EAAA,EAAA,MAAA,EAAA,EACI2B,EAAA,EAAAqP,GAAA,EAAA,EAAA,MAAA,EAAA,EAA2B,EAAAC,GAAA,EAAA,CAAA,eAwB/BtQ,EAAA,EACAX,EAAA,EAAA,MAAA,EAAA,EAA0B,EAAA,SAAA,EAAA,EACkCC,EAAA,QAAA,UAAA,CAAA,IAAA4Q,EAAA3Q,EAAA4Q,CAAA,EAAAlN,UAAA,OAAApD,EAASqQ,EAAAK,MAAY,YAAY,CAAC,CAAA,CAAA,EAAE9P,EAAA,GAAA,MAAA,EAAIT,EAAA,EAAS,sBA9B1DI,EAAA,CAAA,EAAAuD,EAAA/D,EAAA4Q,mBAAA,EAI/CpQ,EAAA,CAAA,EAAAe,EAAAvB,EAAA6Q,oBAAA,EAAA,EAAA,EAMArQ,EAAA,EAAAe,GAAAuP,EAAAtP,EAAA,EAAA,EAAAxB,EAAA+Q,cAAA,GAAA,EAAA,GAAAD,CAAA,GDrbR,IAAaE,IAA8B,IAAA,CAArC,MAAOA,UAAsCC,EAA4B,CAC3DC,eAEAC,SAAW,GACXC,WAAa,GAE7BC,wBAAwC,IAAIC,EAEnCC,UAAQ,CACb,MAAMA,SAAQ,EAEd,KAAKF,wBAA0B,KAAKG,mBAAmBC,cAAcC,UAAUC,GAAS,CACpF,KAAKC,WAAW,CAAEC,WAAYF,EAAOE,YAAcF,CAAM,EAAI,EAAI,EACjE,KAAKG,kBAAiB,CAC1B,CAAC,CACL,CAESC,aAAW,CAChB,MAAMA,YAAW,EACjB,KAAKV,wBAAwBW,YAAW,CAC5C,CAESF,kBAAkBG,EAAkB,EAAC,CACtCA,GAAW,GACX,KAAKf,eAAegB,UAAS,EAGjC,MAAMJ,kBAAkBG,CAAO,EAE/B,KAAKf,eAAeiB,aAAa,CAC7BC,KAAM,KAAKA,KACXP,WAAYQ,IAAA,GACL,KAAKV,OAAOE,YACZ,KAAKS,iBAEZC,MAAO,KAAKZ,OAAOY,MACtB,CACL,CAESpF,WAAWxD,EAAO,SAAQ,CAC/B,IAAIrE,EAAO,KAAKkN,iBAAgB,EAE5BX,EAAaQ,IAAA,GACV,KAAKV,OAAOE,YACZ,KAAKS,iBAGRF,EAAO,KAAKA,KACZ,KAAKE,iBAAkB,YACvBF,EAAO,aACPzI,EAAO,aACPrE,EAAO,KAAKgN,gBAAgB,KAAU,MAAQhN,EAC9CuM,EAAW,GAAQ,KAAKS,iBAAkB,UAC1CT,EAAW,KAAU,cAGzB,KAAKL,mBAAmBrE,WAAW,CAC/BiF,KAAAA,EACAP,WAAY,CACRO,KAAAA,EACAP,WAAAA,GAEJlI,KAAAA,EACArE,KAAAA,EACH,CACL,CACSoI,aAAW,CACZ,KAAKyD,UACL,KAAKsB,YAAW,EAChB,KAAKX,kBAAiB,GAEtB,MAAMpE,YAAW,CAEzB,iEAzESsD,CAA6B,IAAA0B,GAA7B1B,CAA6B,CAAA,CAAA,GAAA,2BAA7BA,EAA6B2B,UAAA,CAAA,CAAA,wBAAA,CAAA,EAAAC,OAAA,CAAA1B,eAAA,iBAAAC,SAAA,WAAAC,WAAA,YAAA,EAAAyB,SAAA,CAAAC,EAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,OAAA,CAAA,CAAA,yBAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,EAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,MAAA,aAAA,MAAA,qBAAA,EAAA,CAAA,EAAA,MAAA,yBAAA,EAAA,OAAA,EAAA,CAAA,EAAA,aAAA,cAAA,EAAA,CAAA,KAAA,qBAAA,OAAA,OAAA,eAAA,MAAA,EAAA,eAAA,eAAA,EAAA,QAAA,QAAA,QAAA,gBAAA,gBAAA,cAAA,SAAA,EAAA,CAAA,EAAA,uBAAA,KAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,iBAAA,UAAA,EAAA,CAAA,EAAA,MAAA,WAAA,YAAA,cAAA,EAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,cAAA,EAAA,OAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,CAAA,OAAA,SAAA,EAAA,YAAA,EAAA,OAAA,EAAA,CAAA,EAAA,WAAA,eAAA,OAAA,EAAA,YAAA,EAAA,CAAA,EAAA,aAAA,EAAA,OAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,QAAA,eAAA,EAAA,CAAA,OAAA,OAAA,eAAA,MAAA,EAAA,eAAA,kBAAA,qBAAA,OAAA,EAAA,gBAAA,QAAA,SAAA,EAAA,CAAA,OAAA,OAAA,eAAA,MAAA,cAAA,aAAA,EAAA,eAAA,kBAAA,qBAAA,OAAA,EAAA,gBAAA,QAAA,SAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,gBAAA,SAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,WAAA,eAAA,MAAA,EAAA,CAAA,EAAA,MAAA,KAAA,EAAA,CAAA,EAAA,MAAA,eAAA,EAAA,CAAA,EAAA,mBAAA,yBAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,OAAA,QAAA,EAAA,mBAAA,OAAA,OAAA,EAAA,gBAAA,OAAA,QAAA,UAAA,UAAA,IAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,iBAAA,OAAA,EAAA,CAAA,EAAA,aAAA,EAAA,OAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,gBAAA,gBAAA,UAAA,SAAA,EAAA,CAAA,YAAA,QAAA,cAAA,iBAAA,EAAA,8BAAA,EAAA,gBAAA,SAAA,SAAA,MAAA,QAAA,SAAA,QAAA,WAAA,UAAA,UAAA,UAAA,EAAA,CAAA,eAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,gBAAA,QAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,gBAAA,SAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,yBAAA,OAAA,KAAA,EAAA,CAAA,EAAA,MAAA,wBAAA,EAAA,CAAA,EAAA,WAAA,aAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,OAAA,WAAA,EAAA,mBAAA,EAAA,gBAAA,KAAA,SAAA,EAAA,CAAA,EAAA,MAAA,yBAAA,KAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,OAAA,OAAA,EAAA,eAAA,kBAAA,eAAA,EAAA,gBAAA,QAAA,SAAA,EAAA,CAAA,EAAA,MAAA,eAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,cAAA,kBAAA,QAAA,YAAA,SAAA,EAAA,CAAA,OAAA,OAAA,EAAA,eAAA,kBAAA,gBAAA,EAAA,gBAAA,QAAA,SAAA,EAAA,CAAA,OAAA,WAAA,EAAA,mBAAA,EAAA,SAAA,KAAA,QAAA,SAAA,EAAA,CAAA,EAAA,sBAAA,KAAA,EAAA,CAAA,EAAA,sBAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,iBAAA,mBAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,wBAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,WAAA,YAAA,eAAA,EAAA,OAAA,EAAA,CAAA,EAAA,QAAA,SAAA,EAAA,CAAA,OAAA,WAAA,EAAA,kBAAA,EAAA,SAAA,QAAA,SAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,CAAA,EAAA,gBAAA,aAAA,EAAA,CAAA,EAAA,aAAA,QAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,KAAA,oBAAA,EAAA,aAAA,EAAA,CAAA,OAAA,SAAA,aAAA,QAAA,EAAA,YAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,SAAA,wBAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,OAAA,SAAA,EAAA,MAAA,wBAAA,EAAA,OAAA,EAAA,CAAA,OAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,MAAA,EAAA,CAAA,EAAA,cAAA,EAAA,gBAAA,UAAA,gBAAA,EAAA,CAAA,OAAA,WAAA,EAAA,mBAAA,EAAA,gBAAA,UAAA,gBAAA,CAAA,EAAAC,SAAA,SAAAC,EAAA9C,EAAA,CAAA8C,EAAA,GCjC1C/R,EAAA,EAAAgS,GAAA,GAAA,EAAA,MAAA,CAAA,EAAiB,EAAAC,GAAA,EAAA,EAAA,cAAA,KAAA,EAAAC,EAAA,EAoa4D,EAAAC,GAAA,GAAA,EAAA,cAAA,KAAA,EAAAD,EAAA,OApa7E/R,EAAA8O,EAAAmD,WAAA,EAAA,EAAA,iBDqBQC,GAAuBC,GACvBC,GAAWC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GACXC,GACAC,GAAcC,GAAAC,GAAAC,GACdC,GAAeC,GACfC,GACAC,GACAC,GACAC,EAAgB,EAAAC,OAAA,CAAA;yEAAA,EAAAC,KAAA,CAAAC,UAbR,CACRC,GACAC,EAAkB,CACrB,CAAA,CAAA,SAcQtE,CAA8B,GAAA,EEf3C,IAAauE,IAAmB,IAAA,CAA1B,MAAOA,CAAmB,CAgDCC,eA9CxBC,MAAQC,EAAmBC,EAAK,EAC7BC,eAAiBF,EAAOG,CAAc,EACtCC,MAAQJ,EAAOK,EAAc,EAEvBC,gBAAmC,CAAA,EACnCC,cAAgB,GAChBC,aAAe,GACfC,WAEhB,IAAuBC,QAAQC,EAAiB,CAC9C,KAAKA,SAAWA,EACZA,EACF,KAAKC,iBAAmB,SAExB,KAAKA,iBAAmB,cAE5B,CAEgBC,2BAAkD,CAAA,EAClDC,cAAgB,CAC9BC,WAAY,CAAA,EAGZC,MAAO,CACLC,OAAQ,OACRC,UAAW,SAIRP,SAAW,GACXC,iBAAmB,eAEnBO,WACAC,SACAC,OACAC,SACAC,QAEAC,MAEAC,UAAYC,GAEZC,8BAA0D,CAAA,EAE1DC,aAAe5B,EAAO6B,EAAY,EAEzCC,YAA+BhC,EAAwC,CAAxC,KAAAA,eAAAA,EAC7B,KAAKqB,WAAa,KAAKrB,eAAeqB,WACtC,KAAKC,SAAW,KAAKtB,eAAesB,SACpC,KAAKC,OAAS,KAAKvB,eAAeuB,OAClC,KAAKC,SAAW,KAAKxB,eAAewB,SACpC,KAAKC,QAAU,KAAKzB,eAAeyB,QAEnC,KAAKC,MAAQ,KAAKzB,MAAMgC,OAAOC,EAAU,EACzC,KAAKvB,WAAa,KAAKA,YAAc,KAAKL,MAAM6B,SAASC,KAAK,WAC9D,KAAKrB,2BAA6BsB,gBAAgB,KAAK/B,MAAM6B,SAASC,KAAK,kBAAqB,CAClG,CAEAE,UAAQ,CACN,KAAKvB,2BAA2BwB,QAAQC,GAAc,CACpDA,EAAYC,QAAQF,QAAQG,GAAS,CACnC,KAAKb,8BAA8Ba,EAAOC,EAAE,EAAID,CAClD,CAAC,CACH,CAAC,CACH,CAEAE,mBAAiB,CACf,KAAK5C,eAAe6C,aAAY,CAClC,CAEAC,YAAYC,EAAa5B,EAAc,CACrC,IAAIC,EAAY,MACZ2B,EAAO7B,MAAMC,SAAWA,IAC1BC,EAAY2B,EAAO7B,MAAOE,YAAc,MAAQ,OAAS,OAG3D,KAAKpB,eAAegD,aAAaC,EAAAC,EAAA,GAC5BH,GAD4B,CAE/B7B,MAAO+B,EAAAC,EAAA,GACFH,EAAO7B,OADL,CAELC,OAAAA,EACAC,UAAAA,KAEH,CACH,4CAtFWrB,GAAmBoD,GAAAC,EAAA,CAAA,CAAA,2BAAnBrD,EAAmBsD,UAAA,CAAA,CAAA,cAAA,CAAA,EAAAC,OAAA,CAAA9C,gBAAA,kBAAAC,cAAA,gBAAAC,aAAA,eAAAC,WAAA,aAAAC,QAAA,CAAA,EAAA,WAAA,SAAA,EAAAG,2BAAA,6BAAAC,cAAA,eAAA,EAAAuC,MAAA,EAAAC,KAAA,EAAAC,SAAA,SAAAC,EAAAC,EAAA,CAAA,EAAAC,cAAA,EAAAC,gBAAA,CAAA,CAAA,SAAnB9D,CAAmB,GAAA","debug_id":"02556c66-0e43-5009-a938-7d101f405413"}