{"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}}&nbsp;</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}} &mdash; {{option.orPercentOptions!.maxValue | number }}%\n\n                        } @else {\n\n                        {{option.prefix}}{{option.minValue | number}}{{option.suffix}} &mdash; {{option.prefix}}{{option.maxValue | number }}{{option.suffix}}\n\n                        }\n                        @if (option.checkboxes?.length && option.numberChecked! > 0) {\n\n                        + &hellip;\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}}&nbsp;\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                                    &nbsp;%\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>&nbsp;&mdash;&nbsp;</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>&nbsp;&mdash;&nbsp;</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}}\">&nbsp;{{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>&nbsp;contains&nbsp;{{option.searchString}}</span>\n                                }\n                                @if (searchTypes.isSearchNumbersOption(option) && option.numberRange) {\n                                <span>&nbsp;{{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"}