@navios/di 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/lib/browser/index.d.mts +62 -2
  3. package/lib/browser/index.d.mts.map +1 -1
  4. package/lib/browser/index.mjs +132 -15
  5. package/lib/browser/index.mjs.map +1 -1
  6. package/lib/{container-CXDYDJSM.d.mts → container-Bp1W-pWJ.d.mts} +63 -3
  7. package/lib/container-Bp1W-pWJ.d.mts.map +1 -0
  8. package/lib/{container-Bv6PZZLJ.mjs → container-DAKOvAgr.mjs} +137 -18
  9. package/lib/container-DAKOvAgr.mjs.map +1 -0
  10. package/lib/{container-BCv3XS6m.cjs → container-DENMeJ87.cjs} +137 -18
  11. package/lib/container-DENMeJ87.cjs.map +1 -0
  12. package/lib/{container-b6mDUdGq.d.cts → container-YPwvmlK2.d.cts} +63 -3
  13. package/lib/container-YPwvmlK2.d.cts.map +1 -0
  14. package/lib/index.cjs +1 -1
  15. package/lib/index.d.cts +1 -1
  16. package/lib/index.d.cts.map +1 -1
  17. package/lib/index.d.mts +1 -1
  18. package/lib/index.d.mts.map +1 -1
  19. package/lib/index.mjs +1 -1
  20. package/lib/testing/index.cjs +1 -1
  21. package/lib/testing/index.d.cts +1 -1
  22. package/lib/testing/index.d.mts +1 -1
  23. package/lib/testing/index.mjs +1 -1
  24. package/package.json +1 -1
  25. package/src/internal/context/request-context.mts +11 -0
  26. package/src/internal/core/instance-resolver.mts +11 -0
  27. package/src/internal/core/token-processor.mts +60 -1
  28. package/src/internal/holder/base-holder-manager.mts +106 -10
  29. package/src/internal/holder/request-storage.mts +7 -14
  30. package/src/internal/holder/singleton-storage.mts +3 -16
  31. package/src/token/registry.mts +21 -0
  32. package/lib/container-BCv3XS6m.cjs.map +0 -1
  33. package/lib/container-Bv6PZZLJ.mjs.map +0 -1
  34. package/lib/container-CXDYDJSM.d.mts.map +0 -1
  35. package/lib/container-b6mDUdGq.d.cts.map +0 -1
@@ -225,6 +225,16 @@ declare class Registry {
225
225
  get<Instance, Schema>(token: InjectionToken<Instance, Schema>): FactoryRecord<Instance, Schema>;
226
226
  set<Instance, Schema>(token: InjectionToken<Instance, Schema>, scope: InjectableScope, target: ClassType, type: InjectableType): void;
227
227
  delete(token: InjectionToken<any, any>): void;
228
+ /**
229
+ * Updates the scope of an already registered factory.
230
+ * This is useful when you need to dynamically change a service's scope
231
+ * (e.g., when a singleton controller has request-scoped dependencies).
232
+ *
233
+ * @param token The injection token to update
234
+ * @param scope The new scope to set
235
+ * @returns true if the scope was updated, false if the token was not found
236
+ */
237
+ updateScope(token: InjectionToken<any, any>, scope: InjectableScope): boolean;
228
238
  }
229
239
  declare const globalRegistry: Registry;
230
240
  //#endregion
@@ -447,6 +457,11 @@ type HolderReadyResult<T> = [undefined, InstanceHolder<T>] | [DIError];
447
457
  declare abstract class BaseHolderManager {
448
458
  protected readonly logger: Console | null;
449
459
  protected readonly _holders: Map<string, InstanceHolder>;
460
+ /**
461
+ * Reverse dependency index: maps a dependency name to the set of holder names that depend on it.
462
+ * This allows O(1) lookup of dependents instead of O(n) iteration.
463
+ */
464
+ protected readonly _dependents: Map<string, Set<string>>;
450
465
  constructor(logger?: Console | null);
451
466
  /**
452
467
  * Protected getter for accessing the holders map from subclasses.
@@ -466,19 +481,53 @@ declare abstract class BaseHolderManager {
466
481
  */
467
482
  abstract has(name: string): any;
468
483
  /**
469
- * Deletes a holder by name.
484
+ * Deletes a holder by name and cleans up the reverse dependency index.
470
485
  * @param name The name of the holder to delete
471
486
  * @returns true if the holder was deleted, false if it didn't exist
472
487
  */
473
488
  delete(name: string): boolean;
489
+ /**
490
+ * Registers a holder's dependencies in the reverse index.
491
+ * Call this after creating a holder with dependencies.
492
+ * @param holderName The name of the holder that has dependencies
493
+ * @param deps The set of dependency names
494
+ */
495
+ registerDependencies(holderName: string, deps: Set<string>): void;
496
+ /**
497
+ * Removes a holder from the reverse dependency index.
498
+ * @param holderName The name of the holder to remove
499
+ * @param deps The set of dependency names to clean up
500
+ */
501
+ protected removeFromDependentsIndex(holderName: string, deps: Set<string>): void;
502
+ /**
503
+ * Gets all holder names that depend on the given instance name.
504
+ * O(1) lookup using the reverse dependency index.
505
+ * @param instanceName The instance name to find dependents for
506
+ * @returns Array of holder names that depend on this instance
507
+ */
508
+ getDependents(instanceName: string): string[];
474
509
  /**
475
510
  * Filters holders based on a predicate function.
476
511
  * @param predicate Function to test each holder
477
512
  * @returns A new Map containing only the holders that match the predicate
513
+ * @deprecated Use forEachHolder() for iteration to avoid allocations
478
514
  */
479
515
  filter(predicate: (value: InstanceHolder<any>, key: string) => boolean): Map<string, InstanceHolder>;
480
516
  /**
481
- * Clears all holders from this manager.
517
+ * Iterates over holders with a callback. More efficient than filter() as it
518
+ * avoids creating intermediate arrays and Maps.
519
+ * @param callback Function called for each holder with (holder, name)
520
+ */
521
+ forEachHolder(callback: (holder: InstanceHolder<any>, name: string) => void): void;
522
+ /**
523
+ * Finds the first holder matching a predicate. More efficient than filter()
524
+ * when only one result is needed.
525
+ * @param predicate Function to test each holder
526
+ * @returns The first matching holder or undefined
527
+ */
528
+ findHolder(predicate: (holder: InstanceHolder<any>, name: string) => boolean): InstanceHolder | undefined;
529
+ /**
530
+ * Clears all holders from this manager and the reverse dependency index.
482
531
  */
483
532
  clear(): void;
484
533
  /**
@@ -607,6 +656,15 @@ interface RequestContext {
607
656
  * Checks if this manager has any holders.
608
657
  */
609
658
  isEmpty(): boolean;
659
+ /**
660
+ * Registers a holder's dependencies in the reverse index.
661
+ */
662
+ registerDependencies(holderName: string, deps: Set<string>): void;
663
+ /**
664
+ * Gets all holder names that depend on the given instance name.
665
+ * O(1) lookup using the reverse dependency index.
666
+ */
667
+ getDependents(instanceName: string): string[];
610
668
  }
611
669
  /** @deprecated Use RequestContext instead */
612
670
  type RequestContextHolder = RequestContext;
@@ -913,6 +971,7 @@ declare class Invalidator {
913
971
  */
914
972
  declare class TokenProcessor {
915
973
  private readonly logger;
974
+ private readonly instanceNameCache;
916
975
  constructor(logger?: Console | null);
917
976
  /**
918
977
  * Normalizes a token to an InjectionToken.
@@ -948,6 +1007,7 @@ declare class TokenProcessor {
948
1007
  }];
949
1008
  /**
950
1009
  * Generates a unique instance name based on token and arguments.
1010
+ * Results are cached using an LRU cache for performance.
951
1011
  */
952
1012
  generateInstanceName(token: InjectionTokenType, args: any): string;
953
1013
  /**
@@ -1148,4 +1208,4 @@ declare class Container implements IContainer {
1148
1208
  }
1149
1209
  //#endregion
1150
1210
  export { InjectRequest as $, InjectableScope as A, ClassTypeWithoutArguments as B, InstanceStatus as C, Registry as D, FactoryRecord as E, ClassTypeWithArgument as F, OptionalInjectionTokenSchemaType as G, InjectionToken as H, ClassTypeWithInstance as I, Injectors as J, FactoryContext as K, ClassTypeWithInstanceAndArgument as L, BaseInjectionTokenSchemaType as M, BoundInjectionToken as N, globalRegistry as O, ClassType as P, FactorableWithArgs as Q, ClassTypeWithInstanceAndOptionalArgument as R, InstanceHolderError as S, DIErrorCode as T, InjectionTokenSchemaType as U, FactoryInjectionToken as V, InjectionTokenType as W, IContainer as X, getInjectors as Y, Factorable as Z, InstanceEffect as _, HolderManager as a, UnionToIntersection as at, InstanceHolderCreating as b, DefaultRequestContext as c, createRequestContext as d, InjectState as et, BaseHolderManager as f, InstanceDestroyListener as g, IHolderStorage as h, Invalidator as i, UnionToArray as it, AnyInjectableType as j, InjectableType as k, RequestContext as l, HolderGetResult as m, ServiceLocator as n, Join as nt, LifecycleEventBus as o, UnionToOvlds as ot, HolderReadyResult as p, getInjectableToken as q, TokenProcessor as r, PopUnion as rt, ScopedContainer as s, Container as t, IsUnion as tt, RequestContextHolder as u, InstanceHolder as v, DIError as w, InstanceHolderDestroying as x, InstanceHolderCreated as y, ClassTypeWithOptionalArgument as z };
1151
- //# sourceMappingURL=container-CXDYDJSM.d.mts.map
1211
+ //# sourceMappingURL=container-Bp1W-pWJ.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container-Bp1W-pWJ.d.mts","names":[],"sources":["../src/utils/types.mts","../src/interfaces/factory.interface.mts","../src/interfaces/container.interface.mts","../src/utils/get-injectors.mts","../src/utils/get-injectable-token.mts","../src/internal/context/factory-context.mts","../src/token/injection-token.mts","../src/enums/injectable-scope.enum.mts","../src/enums/injectable-type.enum.mts","../src/token/registry.mts","../src/errors/di-error.mts","../src/internal/holder/instance-holder.mts","../src/internal/holder/holder-storage.interface.mts","../src/internal/holder/base-holder-manager.mts","../src/internal/context/request-context.mts","../src/container/scoped-container.mts","../src/internal/lifecycle/lifecycle-event-bus.mts","../src/internal/holder/holder-manager.mts","../src/internal/core/invalidator.mts","../src/internal/core/token-processor.mts","../src/internal/core/service-locator.mts","../src/container/container.mts"],"sourcesContent":[],"mappings":";;;KAQY,6CACV,kBAAkB,sDACD,kDAEN,+BAA+B,aAAa,KAAK,MAAM;KAMxD,0BACV,oBAAoB;AAXV,KAiBA,YAjBI,CAAA,CAAA,CAAA,GAiBc,mBAjBd,CAkBd,CAlBc,SAAA,GAAA,GAAA,CAAA,CAAA,EAkBM,CAlBN,EAAA,GAAA,IAAA,GAAA,KAAA,CAAA;AACd,KAoBU,QApBV,CAAA,CAAA,CAAA,GAqBA,YArBA,CAqBa,CArBb,CAAA,UAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,GAAA,IAAA,IAAA,CAAA,GAAA,KAAA;AAAkB,KAuBR,OAvBQ,CAAA,CAAA,CAAA,GAAA,CAuBM,CAvBN,CAAA,SAAA,CAuBkB,mBAvBlB,CAuBsC,CAvBtC,CAAA,CAAA,GAAA,KAAA,GAAA,IAAA;AACD,KAwBP,YAxBO,CAAA,CAAA,EAAA,UAAA,OAAA,EAAA,GAAA,EAAA,CAAA,GAyBjB,OAzBiB,CAyBT,CAzBS,CAAA,SAAA,IAAA,GA0Bb,YA1Ba,CA0BA,OA1BA,CA0BQ,CA1BR,EA0BW,QA1BX,CA0BoB,CA1BpB,CAAA,CAAA,EAAA,CA0B0B,QA1B1B,CA0BmC,CA1BnC,CAAA,EAAA,GA0B0C,CA1B1C,CAAA,CAAA,GAAA,CA2BZ,CA3BY,EAAA,GA2BN,CA3BM,CAAA;AAEN,KA2BD,aAAA,GA3BC;EAA+B,KAAA,EA6BtC,cA7BsC,CAAA,GAAA,CAAA,GA8BtC,mBA9BsC,CAAA,GAAA,EAAA,GAAA,CAAA,GA+BtC,qBA/BsC,CAAA,GAAA,EAAA,GAAA,CAAA,GAgCtC,SAhCsC;EAAkB,OAAA,EAiCnD,OAjCmD,CAAA,GAAA,CAAA;EAAM,SAAA,MAAA,EAAA,GAAA;EAAX,SAAA,KAAA,EAmCvC,KAnCuC,GAAA,IAAA;CAAI;AAMjD,UAiCK,WAAA,CAjCc;EAOnB,YAAA,EAAA,MAAY;EACtB,QAAA,EAAA,OAAA;EAAoB,QAAA,EA4BV,aA5BU,EAAA;;;;AAlBV,UCHK,UDGD,CAAA,CAAA,CAAA,CAAA;EACd,MAAA,CAAA,GAAA,CAAA,ECHa,cDGb,CAAA,ECH8B,ODG9B,CCHsC,CDGtC,CAAA,GCH2C,CDG3C;;AACiB,UCDF,kBDCE,CAAA,CAAA,EAAA,UCD8B,wBDC9B,CAAA,CAAA;EAEN,MAAA,CAAA,GAAA,CAAA,ECFE,cDEF,EAAA,GAAA,IAAA,EAAA,CCF4B,CAAA,CAAE,MDE9B,CCFqC,CDErC,CAAA,CAAA,CAAA,ECF2C,ODE3C,CCFmD,CDEnD,CAAA,GCFwD,CDExD;;;;;;;;;AAAiD,UEM7C,UAAA,CFN6C;EAAM;;;EAMxD,GAAA,CAAA,UEKI,SFLe,CAAA,CAAA,KAAA,EEMpB,CFNoB,CAAA,EEO1B,YFNkB,CEML,CFNK,CAAA,SEMM,UFNN,CAAA,KAAA,EAAA,CAAA,GEOjB,OFPiB,CEOT,CFPS,CAAA,GEQjB,OFRiB,CEQT,YFRS,CEQI,CFRJ,CAAA,CAAA;EAMX,GAAA,CAAA,UEII,qBFJQ,CEIc,CFJd,CAAA,EAAA,CAAA,CAAA,CAAA,KAAA,EEKb,CFLa,EAAA,IAAA,EEMd,CFNc,CAAA,EEOnB,OFPmB,CEOX,YFPW,CEOE,CFPF,CAAA,CAAA;EACtB,GAAA,CAAA,CAAA,EAAA,UEQiB,wBFRjB,CAAA,CAAA,KAAA,EESS,cFTT,CESwB,CFTxB,EES2B,CFT3B,CAAA,EAAA,IAAA,EEUQ,CAAA,CAAE,KFVV,CEUgB,CFVhB,CAAA,CAAA,EEWG,OFXH,CEWW,CFXX,CAAA;EAAoB,GAAA,CAAA,CAAA,EAAA,UEaH,wBFbG,EAAA,UAAA,OAAA,CAAA,CAAA,KAAA,EEcX,cFdW,CEcI,CFdJ,EEcO,CFdP,EEcU,CFdV,CAAA,CAAA,EEejB,CFfiB,SAAA,KAAA,GEgBhB,OFhBgB,CEgBR,CFhBQ,CAAA,GEiBhB,CFjBgB,SEiBN,OFjBM,CAAA,KAAA,KAAA,CAAA,GAAA,oCEkBsB,IFlBtB,CEmBZ,YFnBY,CAAA,MEmBO,IFnBP,CAAA,EAAA,IAAA,CAAA,EAAA,GAAA,iCAAA;EADQ,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EEyBd,cFzBc,CEyBC,CFzBD,EAAA,SAAA,CAAA,CAAA,EEyBiB,OFzBjB,CEyByB,CFzBzB,CAAA;EAAmB,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EE0BjC,mBF1BiC,CE0Bb,CF1Ba,EAAA,GAAA,CAAA,CAAA,EE0BH,OF1BG,CE0BK,CF1BL,CAAA;EAIrC,GAAA,CAAA,CAAA,CAAA,CAAA,KAAQ,EEuBJ,qBFtBd,CEsBoC,CFtBpC,EAAA,GAAY,CAAA,CAAA,EEsBkC,OFtBlC,CEsB0C,CFtB1C,CAAA;EAEF;;;EAA0B,UAAA,CAAA,OAAA,EAAA,OAAA,CAAA,EEyBN,OFzBM,CAAA,IAAA,CAAA;EAAmB;AAEzD;;EACE,YAAA,CAAA,KAAA,EAAA,GAAA,CAAA,EAAA,OAAA;EACyB;;;EAAR,OAAA,EAAA,EE+BN,OF/BM,CAAA,IAAA,CAAA;EAAmC;;;EAAhD,KAAA,EAAA,EEoCK,OFpCL,CAAA,IAAA,CAAA;EACC;;;AAEP;;;EAIM,UAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EAAA,GAAA,EAAA,IAAA,CAAA,EAAA,GAAA,CAAA,EEqCmC,CFrCnC,GAAA,IAAA;;;;AAlCc,UGiBH,SAAA,CHjBG;EACD,WAAA,CAAA,UGkBK,yBHlBL,CAAA,CAAA,KAAA,EGmBR,CHnBQ,CAAA,EGoBd,YHpBc,CGoBD,CHpBC,CAAA,SGoBU,UHpBV,CAAA,KAAA,EAAA,CAAA,GGqBb,OHrBa,CGqBL,CHrBK,CAAA,GGsBb,OHtBa,CGsBL,YHtBK,CGsBQ,CHtBR,CAAA,CAAA;EAEN,WAAA,CAAA,IAAA,EAAA,UGqBiB,qBHrBjB,CGqBuC,IHrBvC,CAAA,CAAA,CAAA,KAAA,EGsBF,CHtBE,EAAA,IAAA,EGuBH,IHvBG,CAAA,EGwBR,OHxBQ,CGwBA,YHxBA,CGwBa,CHxBb,CAAA,CAAA;EAA+B,WAAA,CAAA,eG0BzB,wBH1ByB,EAAA,CAAA,EAAA,UG4B9B,kBH5B8B,CG4BX,CH5BW,EG4BR,MH5BQ,CAAA,CAAA,CAAA,KAAA,EG8BjC,CH9BiC,EAAA,IAAA,EG+BlC,CAAA,CAAE,KH/BgC,CG+B1B,MH/B0B,CAAA,CAAA,EGgCvC,OHhCuC,CGgC/B,CHhC+B,CAAA;EAAkB,WAAA,CAAA,CAAA,EAAA,UGmCnC,wBHnCmC,CAAA,CAAA,KAAA,EGoCnD,cHpCmD,CGoCpC,CHpCoC,EGoCjC,CHpCiC,CAAA,EAAA,IAAA,EGqCpD,CAAA,CAAE,KHrCkD,CGqC5C,CHrC4C,CAAA,CAAA,EGsCzD,OHtCyD,CGsCjD,CHtCiD,CAAA;EAAM,WAAA,CAAA,CAAA,EAAA,UGwCzC,wBHxCyC,EAAA,UAAA,OAAA,CAAA,CAAA,KAAA,EGyCzD,cHzCyD,CGyC1C,CHzC0C,EGyCvC,CHzCuC,EGyCpC,CHzCoC,CAAA,CAAA,EG0C/D,CH1C+D,SAAA,KAAA,GG2C9D,OH3C8D,CG2CtD,CH3CsD,CAAA,GG4C9D,CH5C8D,SG4CpD,OH5CoD,CAAA,KAAA,KAAA,CAAA,GAAA,oCG6CxB,IH7CwB,CG8C1D,YH9C0D,CAAA,MG8CvC,IH9CuC,CAAA,EAAA,IAAA,CAAA,EAAA,GAAA,iCAAA;EAAX,WAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EGmDjC,cHnDiC,CGmDlB,CHnDkB,EAAA,SAAA,CAAA,CAAA,EGmDF,OHnDE,CGmDM,CHnDN,CAAA;EAAI,WAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EGoDrC,mBHpDqC,CGoDjB,CHpDiB,EAAA,GAAA,CAAA,CAAA,EGoDP,OHpDO,CGoDC,CHpDD,CAAA;EAMjD,WAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EG+CY,qBH9CD,CG8CuB,CH9CvB,EAAA,GAAA,CAAA,CAAA,EG8CiC,OH9CjC,CG8CyC,CH9CzC,CAAA;EAMX,MAAA,CAAA,UG0CO,yBH1CK,CAAA,CAAA,KAAA,EG2Cb,CH3Ca,CAAA,EG4CnB,YH5CmB,CG4CN,CH5CM,CAAA,SG4CK,UH5CL,CAAA,KAAA,EAAA,CAAA,GAAA,CAAA,GG4C+B,YH5C/B,CG4C4C,CH5C5C,CAAA;EACtB,MAAA,CAAA,IAAA,EAAA,UG4CuB,qBH5CvB,CG4C6C,IH5C7C,CAAA,CAAA,CAAA,KAAA,EG6CS,CH7CT,EAAA,IAAA,EG8CQ,IH9CR,CAAA,EG+CG,YH/CH,CG+CgB,CH/ChB,CAAA;EAAoB,MAAA,CAAA,eGiDH,wBHjDG,EAAA,CAAA,EAAA,UGmDR,kBHnDQ,CGmDW,CHnDX,EGmDc,MHnDd,CAAA,CAAA,CAAA,KAAA,EGqDX,CHrDW,EAAA,IAAA,EGsDZ,CAAA,CAAE,KHtDU,CGsDJ,MHtDI,CAAA,CAAA,EGuDjB,CHvDiB;EADQ,MAAA,CAAA,CAAA,EAAA,UG0DR,wBH1DQ,CAAA,CAAA,KAAA,EG2DnB,cH3DmB,CG2DJ,CH3DI,EG2DD,CH3DC,CAAA,EAAA,IAAA,EG4DpB,CAAA,CAAE,KH5DkB,CG4DZ,CH5DY,CAAA,CAAA,EG6DzB,CH7DyB;EAAmB,MAAA,CAAA,CAAA,EAAA,UG+D3B,wBH/D2B,EAAA,UAAA,OAAA,CAAA,CAAA,KAAA,EGgEtC,cHhEsC,CGgEvB,CHhEuB,EGgEpB,CHhEoB,EGgEjB,CHhEiB,CAAA,CAAA,EGiE5C,CHjE4C,SAAA,KAAA,GGkE3C,CHlE2C,GGmE3C,CHnE2C,SGmEjC,OHnEiC,CAAA,KAAA,KAAA,CAAA,GAAA,oCGoEL,IHpEK,CGqEvC,YHrEuC,CAAA,MGqEpB,IHrEoB,CAAA,EAAA,IAAA,CAAA,EAAA,GAAA,iCAAA;EAIrC,MAAA,CAAA,CAAA,CAAA,CAAA,KAAQ,EGqED,cHpEjB,CGoEgC,CHpEhC,EAAA,SAAY,CAAA,CAAA,EGoEoC,CHpEpC;EAEF,MAAA,CAAA,CAAA,CAAA,CAAO,KAAA,EGmEA,mBHnEA,CGmEoB,CHnEpB,EAAA,GAAA,CAAA,CAAA,EGmE8B,CHnE9B;EAAO,MAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EGoEP,qBHpEO,CGoEe,CHpEf,EAAA,GAAA,CAAA,CAAA,EGoEyB,CHpEzB;EAAgC;;;AAE1D;;;;;;;;;;;;;;AAKA;EAEM,QAAA,CAAA,UG+Ee,SH/Ef,CAAA,CAAA,KAAA,EGgFK,CHhFL,CAAA,EAAA,CGiFA,YHjFA,CGiFa,CHjFb,CAAA,SGiFwB,UHjFxB,CAAA,KAAA,EAAA,CAAA,GAAA,CAAA,GGiFkD,YHjFlD,CGiF+D,CHjF/D,CAAA,CAAA,GAAA,IAAA;EACA,QAAA,CAAA,CAAA,EAAA,UGiFkB,wBHjFlB,CAAA,CAAA,KAAA,EGkFK,cHlFL,CGkFoB,CHlFpB,EGkFuB,CHlFvB,CAAA,EAAA,IAAA,EGmFI,CAAA,CAAE,KHnFN,CGmFY,CHnFZ,CAAA,CAAA,EGoFD,CHpFC,GAAA,IAAA;EACA,QAAA,CAAA,CAAA,EAAA,UGoFkB,wBHpFlB,EAAA,UAAA,OAAA,CAAA,CAAA,KAAA,EGqFK,cHrFL,CGqFoB,CHrFpB,EGqFuB,CHrFvB,EGqF0B,CHrF1B,CAAA,CAAA,EGsFD,CHtFC,SAAA,KAAA,GGuFA,CHvFA,GAAA,IAAA,GGwFA,CHxFA,SGwFU,OHxFV,CAAA,KAAA,KAAA,CAAA,GAAA,oCGyFsC,IHzFtC,CG0FI,YH1FJ,CAAA,MG0FuB,IH1FvB,CAAA,EAAA,IAAA,CAAA,EAAA,GAAA,iCAAA;EACA,QAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EG6Fe,cH7Ff,CG6F8B,CH7F9B,EAAA,SAAA,CAAA,CAAA,EG6F8C,CH7F9C,GAAA,IAAA;EACK,QAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EG6FU,mBH7FV,CG6F8B,CH7F9B,EAAA,GAAA,CAAA,CAAA,EG6FwC,CH7FxC,GAAA,IAAA;EAEO,QAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EG4FG,qBH5FH,CG4FyB,CH5FzB,EAAA,GAAA,CAAA,CAAA,EG4FmC,CH5FnC,GAAA,IAAA;EAAK,YAAA,CAAA,EAAA,EAAA,GAAA,GAAA,GAAA,CAAA,EAAA,CAAA,WAAA,CAAA,EGgGH,WHhGG,EAAA,GAAA,CAAA,GAAA,EGgGmB,OHhGnB,CAAA,GAAA,CAAA,EAAA,EGgGmC,WHhGnC,CAAA;EAIN,qBAAW,CAAA,OAGhB,EG2FqB,cH3FR,GAAA,IAAA,CAAA,EG2FgC,cH3FhC,GAAA,IAAA;;iBG8FT,YAAA,CAAA,GAAY;;;iBChJZ,8BACN,YACP;;AJEH,CAAA,GIDI,cJCY,CIDG,CJCH,CAAA,GIAZ,cJAY,CIAG,CJAH,CAAA;;;;AAAhB;;;;;AAI4C,UKH3B,cAAA,CLG2B;EAAkB,MAAA,EKFpD,SLEoD,CAAA,aAAA,CAAA;EAAM;;;AAMpE;EAOY,SAAA,EKVC,ULUW;EACtB,kBAAA,EAAA,CAAA,QAAA,EAAA,GAAA,GAAA,IAAA,EAAA,GAAA,IAAA;;;;KMtBU,SAAA;ANIA,KMHA,yBAAA,GNGI,OAAA,GAAA,GAAA;AACd,KMHU,qBNGV,CAAA,GAAA,CAAA,GAAA,KAAA,GAAA,EMHiD,GNGjD,EAAA,GAAA,GAAA;AAAkB,KMFR,6BNEQ,CAAA,GAAA,CAAA,GAAA,KAAA,GAAA,CAAA,EMFwC,GNExC,EAAA,GAAA,GAAA;AACD,KMDP,qBNCO,CAAA,CAAA,CAAA,GAAA,KAAA,GAAA,IAAA,EAAA,GAAA,EAAA,EAAA,GMD4C,CNC5C;AAEN,KMFD,gCNEC,CAAA,CAAA,EAAA,GAAA,CAAA,GAAA,KAAA,GAAA,EMFoD,GNEpD,EAAA,GMF4D,CNE5D;AAA+B,KMDhC,wCNCgC,CAAA,CAAA,EAAA,GAAA,CAAA,GAAA,KAAA,GAAA,CAAA,EMApC,GNAoC,EAAA,GMCvC,CNDuC;AAAkB,KMGlD,4BAAA,GAA+B,SNHmB,GMGP,SNHO;AAAM,KMKxD,gCAAA,GACR,WNNgE,CMMpD,SNNoD,CAAA,GMOhE,WNPgE,CMOpD,SNPoD,CAAA;AAAX,KMS7C,wBAAA,GACR,4BNVqD,GMWrD,gCNXqD;AAAI,cMahD,cNbgD,CAAA,CAAA,EAAA,UMgBjD,wBNhBiD,GAAA,OAAA,GAAA,OAAA,EAAA,iBAAA,OAAA,IMkBhC,CNlBgC,SMkBtB,WNlBsB,CMkBV,SNlBU,CAAA,GAAA,KAAA,GMoBvD,CNpBuD,SMoB7C,WNpB6C,CMoBjC,SNpBiC,CAAA,GAAA,KAAA,GMsBrD,CNtBqD,SMsB3C,SNtB2C,GAAA,IAAA,GMwBnD,CNxBmD,SMwBzC,SNxByC,GAAA,IAAA,GAAA,KAAA,EAAA,CAAA;EAMjD,SAAA,IAAA,EAAA,MAAA,GAAmB,MAAA,GM0Ba,SNzBrB;EAMX,SAAA,MAAY,EMoBI,SNpBJ,GAAA,SAAA;EACtB,EAAA,EAAA,GAAA,MAAA,IAAA,MAAA,IAAA,MAAA,IAAA,MAAA,IAAA,MAAA,EAAA;EAAoB,QAAA,aAAA;EADQ,WAAA,CAAA,IAAA,EAAA,MAAA,GAAA,MAAA,GMmBc,SNnBd,EAAA,MAAA,EMoBF,SNpBE,GAAA,SAAA;EAAmB,OAAA,MAAA,CAAA,UMuBvB,SNvBuB,CAAA,CAAA,IAAA,EMwBvC,CNxBuC,CAAA,EMyB5C,cNzB4C,CMyB7B,YNzB6B,CMyBhB,CNzBgB,CAAA,EAAA,SAAA,CAAA;EAIrC,OAAA,MAAQ,CAAA,UMsBM,SNrBxB,EAAA,eMqBkD,wBNrBtC,CAAA,CAAA,IAAA,EMsBJ,CNtBI,EAAA,MAAA,EMuBF,MNvBE,CAAA,EMwBT,MNxBS,CAAA,MAAA,CAAA,CAAA,MAAA,CAAA,SAAA,aAAA,GMyBR,cNzBQ,CMyBO,YNzBP,CMyBoB,CNzBpB,CAAA,EMyBwB,MNzBxB,EAAA,KAAA,CAAA,GM0BR,cN1BQ,CM0BO,YN1BP,CM0BoB,CN1BpB,CAAA,EM0BwB,MN1BxB,EAAA,IAAA,CAAA;EAEF,OAAA,MAAO,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA,MAAA,GAAA,MAAA,CAAA,EMyBwB,cNzBxB,CMyBuC,CNzBvC,EAAA,SAAA,CAAA;EAAO,OAAA,MAAA,CAAA,CAAA,EAAA,eM0BQ,wBN1BR,CAAA,CAAA,IAAA,EAAA,MAAA,GAAA,GAAA,EAAA,MAAA,EM4Bd,MN5Bc,CAAA,EM6BrB,cN7BqB,CM6BN,CN7BM,EM6BH,MN7BG,CAAA;EAAgC,OAAA,KAAA,CAAA,CAAA,EAAA,UMmC9B,wBNnC8B,CAAA,CAAA,KAAA,EMoC/C,cNpC+C,CMoChC,CNpCgC,EMoC7B,CNpC6B,CAAA,EAAA,KAAA,EMqC/C,CAAA,CAAE,KNrC6C,CMqCvC,CNrCuC,CAAA,CAAA,EMsCrD,mBNtCqD,CMsCjC,CNtCiC,EMsC9B,CNtC8B,CAAA;EAApB,OAAA,OAAA,CAAA,CAAA,EAAA,UM0CR,wBN1CQ,CAAA,CAAA,KAAA,EM2C3B,cN3C2B,CM2CZ,CN3CY,EM2CT,CN3CS,CAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EM4CnB,cN5CmB,EAAA,GM4CA,ON5CA,CM4CQ,CAAA,CAAE,KN5CV,CM4CgB,CN5ChB,CAAA,CAAA,CAAA,EM6CjC,qBN7CiC,CM6CX,CN7CW,EM6CR,CN7CQ,CAAA;EAAmB,OAAA,UAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EMkD9C,mBNlD8C,CAAA,GAAA,EAAA,GAAA,CAAA,CAAA,EMmDpD,mBNnDoD,CMmDhC,CNnDgC,EAAA,GAAA,CAAA;EAE7C,QAAA,CAAA,CAAA,EAAA,MAAY;;AACtB,cMsEW,mBNtEX,CAAA,CAAA,EAAA,UMsE4C,wBNtE5C,CAAA,CAAA;EACyB,SAAA,KAAA,EM2EA,cN3EA,CM2Ee,CN3Ef,EM2EkB,CN3ElB,CAAA;EAAY,SAAA,KAAA,EM4EZ,CAAA,CAAE,KN5EU,CM4EJ,CN5EI,CAAA;EAAT,EAAA,EAAA,MAAA;EAAX,IAAA,EAAA,MAAA,GAAA,MAAA,GMuEc,SNvEd;EAAmC,MAAA,EMwErC,wBNxEqC;EAAT,WAAA,CAAA,KAAA,EM2ElB,cN3EkB,CM2EH,CN3EG,EM2EA,CN3EA,CAAA,EAAA,KAAA,EM4ElB,CAAA,CAAE,KN5EgB,CM4EV,CN5EU,CAAA;EAAgB,QAAA,CAAA,CAAA,EAAA,MAAA;;AACtD,cMuFM,qBNvFN,CAAA,CAAA,EAAA,UMuFyC,wBNvFzC,CAAA,CAAA;EAAM,SAAA,KAAA,EM+Fc,cN/Fd,CM+F6B,CN/F7B,EM+FgC,CN/FhC,CAAA;EAAC,SAAA,OAAA,EAAA,CAAA,GAAA,EMgGqB,cNhGrB,EAAA,GMgGwC,ONhGxC,CMgGgD,CAAA,CAAE,KNhGlD,CMgGwD,CNhGxD,CAAA,CAAA;EAEF,KAAA,CAAA,EMsFK,CAAA,CAAE,KNtFP,CMsFa,CNtFA,CAAA;EAEnB,QAAA,EAAA,OAAA;EACA,EAAA,EAAA,MAAA;EACA,IAAA,EAAA,MAAA,GAAA,MAAA,GMqF2B,SNrF3B;EACA,MAAA,EMqFW,wBNrFX;EACK,WAAA,CAAA,KAAA,EMuFgB,cNvFhB,CMuF+B,CNvF/B,EMuFkC,CNvFlC,CAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EMwFwB,cNxFxB,EAAA,GMwF2C,ONxF3C,CMwFmD,CAAA,CAAE,KNxFrD,CMwF2D,CNxF3D,CAAA,CAAA;EAEO,OAAA,CAAA,GAAA,EM6FG,cN7FH,CAAA,EM6FoB,ON7FpB,CM6F4B,CAAA,CAAE,KN7F9B,CM6FoC,CN7FpC,CAAA,CAAA;EAAK,QAAA,CAAA,CAAA,EAAA,MAAA;AAIvB;KMsGY,iBAAA,GACR,YACA,2BACA,gCACA;KAEQ,kBAAA,GACR,2BACA,gCACA;;;aClKQ,eAAA;;;APQZ;EACE,SAAA,GAAA,WAAA;EAAkB;;;EAGwB,SAAA,GAAA,WAAA;EAAkB;;;EAAD,OAAA,GAAA,SAAA;AAM7D;;;aQlBY,cAAA;;;ARQZ;;;KSJY;ETIA,KAAA,ESHH,eTGO;EACd,aAAA,ESHe,cTGf,CSH8B,QTG9B,ESHwC,MTGxC,CAAA;EAAkB,MAAA,ESFV,STEU;EACD,IAAA,ESFX,cTEW;CAEN;AAA+B,cSD/B,QAAA,CTC+B;EAAkB,iBAAA,MAAA;EAAM,iBAAA,SAAA;EAAX,WAAA,CAAA,MAAA,CAAA,ESEjB,QTFiB,GAAA,SAAA;EAAI,GAAA,CAAA,KAAA,ESIhD,cTJgD,CAAA,GAAA,EAAA,GAAA,CAAA,CAAA,EAAA,OAAA;EAMjD,GAAA,CAAA,QAAA,EAAA,MAAA,CAAA,CAAmB,KAAA,ESSpB,cTRY,CSQG,QTRH,ESQa,MTRb,CAAA,CAAA,ESSlB,aTTkB,CSSJ,QTTI,ESSM,MTTN,CAAA;EAMX,GAAA,CAAA,QAAA,EAAA,MAAY,CAAA,CAAA,KAAA,ESeb,cTfa,CSeE,QTfF,ESeY,MTfZ,CAAA,EAAA,KAAA,ESgBb,eThBa,EAAA,MAAA,ESiBZ,STjBY,EAAA,IAAA,ESkBd,cTlBc,CAAA,EAAA,IAAA;EACtB,MAAA,CAAA,KAAA,ESsBc,cTtBd,CAAA,GAAA,EAAA,GAAA,CAAA,CAAA,EAAA,IAAA;EAAoB;;;AAGtB;AAGA;;;;;EAEY,WAAA,CAAA,KAAY,ES2BH,cT3BG,CAAA,GAAA,EAAA,GAAA,CAAA,EAAA,KAAA,ES2B8B,eT3B9B,CAAA,EAAA,OAAA;;AACtB,cSuCW,cTvCX,ESuCyB,QTvCzB;;;aUnCU,WAAA;;;EVQA,gBAAI,GAAA,kBAAA;EACd,kBAAA,GAAA,oBAAA;EAAkB,kBAAA,GAAA,oBAAA;EACD,YAAA,GAAA,cAAA;;AAEyB,cUH/B,OAAA,SAAgB,KAAA,CVGe;EAAkB,SAAA,IAAA,EUCpC,WVDoC;EAAM,SAAA,OAAA,EAAA,MAAA;EAAX,SAAA,OAAA,CAAA,EUF7B,MVE6B,CAAA,MAAA,EAAA,OAAA,CAAA;EAAI,WAAA,CAAA,IAAA,EUCnC,WVDmC,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EUG/C,MVH+C,CAAA,MAAA,EAAA,OAAA,CAAA;EAMjD,OAAA,eAAmB,CAAA,IAAA,EAAA,MAC7B,CAAA,EUGsC,OVHjB;EAMX,OAAA,uBAAY,CAAA,KAAA,EAAA,MAAA,GAAA,MAAA,GAAA,OAAA,CAAA,EUK4C,OVL5C;EACtB,OAAA,gBAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EUYuC,OVZvC;EAAoB,OAAA,kBAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EUoBqB,OVpBrB;EADQ,OAAA,OAAA,CAAA,OAAA,EAAA,MAAA,GU8BR,KV9BQ,EAAA,OAAA,CAAA,EU+BhB,MV/BgB,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,EUgCzB,OVhCyB;EAAmB,OAAA,kBAAA,CAAA,KAAA,EAAA,MAAA,EAAA,CAAA,EU0CH,OV1CG;AAIjD;;;;;AArBA;AACE,aWJU,cAAA;EXIQ;EACD,OAAA,GAAA,SAAA;EAEN;EAA+B,QAAA,GAAA,UAAA;EAAkB;EAAM,UAAA,GAAA,YAAA;EAAX;EAAI,KAAA,GAAA,OAAA;AAM7D;AAOA;AACE,KWTU,cAAA,GXSV,GAAA,GAAA,IAAA;;AAD4B,KWLlB,uBAAA,GXKkB,GAAA,GAAA,IAAA,GWLqB,OXKrB,CAAA,IAAA,CAAA;;AAI9B;AAGA;;AAA0D,UWNzC,sBXMyC,CAAA,QAAA,CAAA,CAAA;EAApB,MAAA,EWL5B,cAAA,CAAe,QXKa;EAAmB,IAAA,EAAA,MAAA;EAE7C,QAAA,EAAA,IAAA;EACF,eAAA,EWLS,OXKT,CAAA,CAAA,SAAA,EWL6B,QXK7B,CAAA,CAAA,GAAA,IAAA;EAAR,cAAA,EAAA,IAAA;EACyB,IAAA,EWJnB,cXImB;EAAY,KAAA,EWH9B,eXG8B;EAAT,IAAA,EWFtB,GXEsB,CAAA,MAAA,CAAA;EAAX,gBAAA,EWDC,uBXCD,EAAA;EAAmC,SAAA,EAAA,MAAA;EAAT;EAAgB,UAAA,EWE/C,GXF+C,CAAA,MAAA,CAAA;;;;;AAG7D;AAEM,UWIW,qBXJX,CAAA,QAAA,CAAA,CAAA;EACA,MAAA,EWII,cAAA,CAAe,OXJnB;EACA,IAAA,EAAA,MAAA;EACA,QAAA,EWIM,QXJN;EACK,eAAA,EAAA,IAAA;EAEO,cAAA,EAAA,IAAA;EAAK,IAAA,EWIf,cXJe;EAIN,KAAA,EWCR,eXDmB;QWEpB;oBACY;;EVjDH;EACF,UAAA,EUmDD,GVnDC,CAAA,MAAA,CAAA;;;;;AAGf;AAAiD,UUuDhC,wBVvDgC,CAAA,QAAA,CAAA,CAAA;EAClC,MAAA,EUuDL,cAAA,CAAe,UVvDV;EAAmC,IAAA,EAAA,MAAA;EAAP,QAAA,EUyD/B,QVzD+B,GAAA,IAAA;EAAqB,eAAA,EAAA,IAAA;EAAR,cAAA,EU2DtC,OV3DsC,CAAA,IAAA,CAAA;EAAa,IAAA,EU4D7D,cV5D6D;EAAC,KAAA,EU6D7D,eV7D6D;QU8D9D;oBACY;;ETvDH;EAKD,UAAA,ESqDF,GTrDE,CAAA,MAAA,CAAA;;;;;;AAGV,USyDW,mBAAA,CTzDX;EACqB,MAAA,ESyDjB,cAAA,CAAe,KTzDE;EAAb,IAAA,EAAA,MAAA;EAAR,QAAA,ES2DM,KT3DN;EAEgC,eAAA,EAAA,IAAA;EAAtB,cAAA,EAAA,IAAA;EACL,IAAA,ES2DH,cT3DG;EACD,KAAA,ES2DD,eT3DC;EACgB,IAAA,ES2DlB,GT3DkB,CAAA,MAAA,CAAA;EAAb,gBAAA,ES4DO,uBT5DP,EAAA;EAAR,SAAA,EAAA,MAAA;EAEc;EACO,UAAA,ES4DZ,GT5DY,CAAA,MAAA,CAAA;;;;;;;;AAKA,KSgEd,cThEc,CAAA,WAAA,OAAA,CAAA,GSiEtB,sBTjEsB,CSiEC,QTjED,CAAA,GSkEtB,qBTlEsB,CSkEA,QTlEA,CAAA,GSmEtB,wBTnEsB,CSmEG,QTnEH,CAAA,GSoEtB,mBTpEsB;;;AFhC1B;;;;;;AAI8D,KYFlD,eZEkD,CAAA,IAAA,OAAA,CAAA,GAAA,CAAA,SAAA,EYD9C,cZC8C,CYD/B,CZC+B,CAAA,CAAA,GAAA,CYAzD,OZAyD,EYAhD,cZAgD,CYAjC,CZAiC,CAAA,CAAA,CAAA,GAAA,IAAA;;;;AAM9D;AAOA;;;AAA8B,UYHb,cAAA,CZGa;EAAmB;AAIjD;AAGA;EAA0B,SAAA,KAAA,EYNR,eZMQ;EAAgC;;;AAE1D;;;;;;EAEmB,GAAA,CAAA,IAAA,OAAA,CAAA,CAAA,YAAA,EAAA,MAAA,CAAA,EYKuB,eZLvB,CYKuC,CZLvC,CAAA;EAAmC;;;;;;EACxC,GAAA,CAAA,YAAA,EAAA,MAAA,EAAA,MAAA,EYYsB,cZZtB,CAAA,EAAA,IAAA;EAEF;;;;;;EAQM,MAAA,CAAA,YAAA,EAAA,MAAA,CAAA,EAAA,OAAA;EAAK;AAIvB;;;;AC9CA;;;;EAC6C,YAAA,CAAA,CAAA,CAAA,CAAA,YAAA,EAAA,MAAA,EAAA,IAAA,EWgEnC,cXhEmC,EAAA,IAAA,EWiEnC,GXjEmC,CAAA,MAAA,CAAA,CAAA,EAAA,CWmEzC,UXnE0C,CAAA,OWmExB,OAAA,CAAQ,aXnEgB,CAAA,CAAA,SAAA,EWmEU,CXnEV,CAAA,CAAA,CAAA,EWoE1C,cXjEa,CWiEE,CXjEF,CAAkB,CAAc;EAClC;;;EAAiD,OAAA,CAAA,KAAA,EWsE/C,eXtE+C,CAAA,EAAA,OAAA;EAAR;;;;;;ACQxD;;;EAOkB,OAAA,CAAA,QAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EUwEmB,cVxEnB,EAAA,GAAA,IAAA,CAAA,EAAA,IAAA;EAAb;;;;;;EAEC,cAAA,CAAA,QAAA,EAAA,OAAA,CAAA,EU+E+B,cV/E/B,GAAA,IAAA;EAEgC;;;;;;EAGjC,cAAA,CAAA,YAAA,EAAA,MAAA,CAAA,EAAA,MAAA,EAAA;;;;AFxBL;;;;AAIa,KaDD,iBbCC,CAAA,CAAA,CAAA,GAAA,CAAA,SAAA,EaDkC,cbClC,CaDiD,CbCjD,CAAA,CAAA,GAAA,CaDwD,ObCxD,CAAA;;;;;;AAMb;AAOY,uBaNU,iBAAA,CbME;EACtB,mBAAA,MAAA,EaCuC,ObDvC,GAAA,IAAA;EAAoB,mBAAA,QAAA,EaNS,GbMT,CAAA,MAAA,EaNqB,cbMrB,CAAA;EADQ;;AAI9B;AAGA;EAA0B,mBAAA,WAAA,EaPQ,GbOR,CAAA,MAAA,EaPoB,GbOpB,CAAA,MAAA,CAAA,CAAA;EAAgC,WAAA,CAAA,MAAA,CAAA,EaLjB,ObKiB,GAAA,IAAA;EAApB;;AAEtC;EACU,cAAA,OAAA,CAAA,CAAA,EaAiB,GbAjB,CAAA,MAAA,EaA6B,cbA7B,CAAA;EAAR;;;;EACiB,SAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EAAA,GAAA;EAAmC;;;EAAhD,SAAA,GAAA,CAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EaY+B,cbZ/B,CAAA,EAAA,IAAA;EACC;;;EAEK,SAAA,GAAA,CAAA,IAAa,EAAA,MAAA,CAAA,EAAA,GAAA;EAEnB;;;;;EAMY,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EAAA,OAAA;EAAK;AAIvB;;;;AC9CA;EACe,oBAAA,CAAA,UAAA,EAAA,MAAA,EAAA,IAAA,EYqEkC,GZrElC,CAAA,MAAA,CAAA,CAAA,EAAA,IAAA;EAAyB;;;;AAGxC;EAAiD,UAAA,yBAAA,CAAA,UAAA,EAAA,MAAA,EAAA,IAAA,EYkFe,GZlFf,CAAA,MAAA,CAAA,CAAA,EAAA,IAAA;EAClC;;;;;;EAAuD,aAAA,CAAA,YAAA,EAAA,MAAA,CAAA,EAAA,MAAA,EAAA;;;;ACQtE;;;EAOkB,MAAA,CAAA,SAAA,EAAA,CAAA,KAAA,EWgGK,cXhGL,CAAA,GAAA,CAAA,EAAA,GAAA,EAAA,MAAA,EAAA,GAAA,OAAA,CAAA,EWiGb,GXjGa,CAAA,MAAA,EWiGD,cXjGC,CAAA;EAAb;;;;;EAES,aAAA,CAAA,QAAA,EAAA,CAAA,MAAA,EW+GS,cX/GT,CAAA,GAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,GAAA,IAAA,CAAA,EAAA,IAAA;EAAR;;;;;;EAKO,UAAA,CAAA,SAAA,EAAA,CAAA,MAAA,EWwHW,cXxHX,CAAA,GAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,GAAA,OAAA,CAAA,EWyHR,cXzHQ,GAAA,SAAA;EAAR;;;EAGwB,KAAA,CAAA,CAAA,EAAA,IAAA;EAAlB;;;EAEE,IAAA,CAAA,CAAA,EAAA,MAAA;EAAR;;;;;;;;;EAMC,oBAAA,CAAA,QAAA,CAAA,CAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EWiJI,cXjJJ,EAAA,KAAA,EWkJK,eXlJL,EAAA,IAAA,CAAA,EWmJI,GXnJJ,CAAA,MAAA,CAAA,CAAA,EAAA,CWqJF,UXrJY,CAAA,OWqJM,OAAA,CAAQ,aXrJd,CAAA,CAAA,SAAA,EWqJwC,QXrJxC,CAAA,CAAA,CAAA,EWsJZ,cXpJyB,CWoJV,QXpJU,CAAA,CAAnB;EADkC;;;;;;;;;;EAQ5B,UAAA,mBAAA,CAAA,QAAA,CAAA,CAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EW8KF,QX9KE,EAAA,IAAA,EW+KN,cX/KM,EAAA,KAAA,EWgLL,eXhLK,EAAA,IAAA,CAAA,EWiLN,GXjLM,CAAA,MAAA,CAAA,CAAA,EWkLX,cXlLW,CWkLI,QXlLJ,CAAA;EAAwC;;;EAe3C,WAAA,CAAA,CAAA,EAAA,MAAA,EAAA;EAKF;;;mBW0LQ;;;AVxOnB;EAEwB,OAAA,CAAA,CAAA,EAAA,OAAA;EACb;;;;;;;;;EAIyC,OAAA,kBAAA,CAAA,CAAA,CAAA,CAAA,MAAA,EUsPxC,cVtPwC,CUsPzB,CVtPyB,CAAA,EAAA,YAAA,CAAA,EUuPjC,cVvPiC,EAAA,SAAA,CAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,GUwPlB,cVxPkB,GAAA,SAAA,CAAA,EUyP/C,OVzP+C,CUyPvC,iBVzPuC,CUyPrB,CVzPqB,CAAA,CAAA;;;;AHzBpD;;;;;;AAI8D,UcA7C,cAAA,CdA6C;EAAM;;;EAMxD,SAAA,SAAA,EAAA,MAAmB;EAOnB;;;EAAkB,SAAA,OAAA,EcJV,GdIU,CAAA,MAAA,EcJE,cdIF,CAAA;EAAmB;AAIjD;AAGA;;EAA0D,SAAA,QAAA,EAAA,MAAA;EAApB;;AAEtC;EACU,SAAA,QAAA,EcHW,GdGX,CAAA,MAAA,EAAA,GAAA,CAAA;EAAR;;;EAC4B,SAAA,SAAA,EAAA,MAAA;EAAX;;;EAA0C,WAAA,CAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,GAAA,EAAA,MAAA,EcSjD,cdTiD,CAAA,EAAA,IAAA;EAAvD;;;EACQ,WAAA,CAAA,KAAA,EccO,cddP,CAAA,GAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,GAAA,CAAA,EAAA,IAAA;EAEF;;;EAIN,GAAA,CAAA,YAAA,EAAA,MAAA,CAAA,EcauB,cdbvB,GAAA,SAAA;EACA;;;EAGiB,GAAA,CAAA,YAAA,EAAA,MAAA,EAAA,MAAA,Ecca,cddb,CAAA,EAAA,IAAA;EAIN;;;;EC9CA;;;EACe,KAAA,EAAA,EAAA,IAAA;EAAa;;AAG7C;EAAiD,WAAA,CAAA,GAAA,EAAA,MAAA,CAAA,EAAA,GAAA,GAAA,SAAA;EAClC;;;EAAiD,WAAA,CAAA,GAAA,EAAA,MAAA,EAAA,KAAA,EAAA,GAAA,CAAA,EAAA,IAAA;EAAR;;;4Ba+E3C,+CAGR,YAAY;;;AZ1EjB;EAKgB,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EAAA,OAAA;EACL;;;EACkB,IAAA,EAAA,EAAA,MAAA;EACf;;;EACA,OAAA,EAAA,EAAA,OAAA;EAAR;;;EAGK,oBAAA,CAAA,UAAA,EAAA,MAAA,EAAA,IAAA,EYkFsC,GZlFtC,CAAA,MAAA,CAAA,CAAA,EAAA,IAAA;EACD;;;;EAGS,aAAA,CAAA,YAAA,EAAA,MAAA,CAAA,EAAA,MAAA,EAAA;;;AACR,KYuFC,oBAAA,GAAuB,cZvFxB;;;;;;;AAKkB,cY0FhB,qBAAA,SACH,iBAAA,YACG,cZ5FgB,CAAA;EAAG,SAAA,SAAA,EAAA,MAAA;EAArB,SAAA,QAAA,EAAA,MAAA;EACN,SAAA,QAAA,EY6FqB,GZ7FrB,CAAA,MAAA,EAAA,GAAA,CAAA;EACS,SAAA,SAAA,EAAA,MAAA;EAAR,WAAA,CAAA,SAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,MAAA,EAAA,eAAA,CAAA,EYkGgB,MZlGhB,CAAA,MAAA,EAAA,GAAA,CAAA;EACA;;;EAEI,IAAA,OAAA,CAAA,CAAA,EY4GO,GZ5GP,CAAA,MAAA,EY4GmB,cZ5GnB,CAAA;EADkC;;;EAMW,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EY8GlC,cZ9GkC,GAAA,SAAA;EAAR;;;EACO,GAAA,CAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EYoH1B,cZpH0B,CAAA,EAAA,IAAA;EAAR;;;EACU,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EAAA,OAAA;EAAR,WAAA,CAAA,YAAA,EAAA,MAAA,GY+HrB,cZ/HqB,CAAA,GAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,GAAA,EAAA,MAAA,CAAA,EYiInC,cZjImC,CAAA,EAAA,IAAA;EAKhB,KAAA,CAAA,CAAA,EAAA,IAAA;EAUnB,WAAA,CAAA,GAAA,EAAA,MAAA,CAAA,EAAA,GAAA,GAAA,SAAA;EAKF,WAAA,CAAA,GAAA,EAAA,MAAA,EAAA,KAAA,EAAA,GAAA,CAAA,EAAA,IAAA;;;;;iBYkJK,oBAAA,yDAGI,sBACjB;;;;;;Ad5MH;AAOA;;;;AAAiD,ceSpC,eAAA,YAA2B,UfTS,CAAA;EAIrC,iBAAQ,MAAA;EAGR,iBAAO,QAAA;EAAO,SAAA,SAAA,EAAA,MAAA;EAAgC,iBAAA,oBAAA;EAApB,iBAAA,aAAA;EAAmB,QAAA,QAAA;EAE7C,WAAA,CAAA,MAAY,EeMK,SfNL,EAAA,QAAA,EeOO,QfPP,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EeST,MfTS,CAAA,MAAA,EAAA,GAAA,CAAA,EAAA,QAAA,CAAA,EAAA,MAAA;EACd;;;EAC6B,uBAAA,CAAA,CAAA,EeyBV,cfzBU;EAAT;;;;EAA+B,gBAAA,CAAA,CAAA,EeiCvC,cfjCuC;EAAvD;;;EACQ,YAAA,CAAA,CAAA,EAAA,MAAA;EAEF;;;EAIN,SAAA,CAAA,CAAA,EewCS,SfxCT;EACA;;;EAGiB,WAAA,CAAA,GAAA,EAAA,MAAA,CAAA,EAAA,GAAA,GAAA,SAAA;EAIN;;;;EC9CA;;;EACe,WAAA,CAAA,KAAA,EckGX,cdlGW,CAAA,GAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,GAAA,CAAA,EAAA,IAAA;EAAa;;AAG7C;;;EACkD,GAAA,CAAA,UcwGlC,SdxGkC,CAAA,CAAA,KAAA,EcyGvC,CdzGuC,CAAA,Ec0G7C,Yd1G6C,Cc0GhC,Cd1GgC,CAAA,Sc0GrB,Ud1GqB,CAAA,KAAA,EAAA,CAAA,Gc2G5C,Od3G4C,Cc2GpC,Cd3GoC,CAAA,Gc4G5C,Od5G4C,Cc4GpC,Yd5GoC,Cc4GvB,Cd5GuB,CAAA,CAAA;EAAP,GAAA,CAAA,Uc8G3B,qBd9G2B,Cc8GL,Cd9GK,CAAA,EAAA,CAAA,CAAA,CAAA,KAAA,Ec+GhC,Cd/GgC,EAAA,IAAA,EcgHjC,CdhHiC,CAAA,EciHtC,OdjHsC,CciH9B,YdjH8B,CciHjB,CdjHiB,CAAA,CAAA;EAAqB,GAAA,CAAA,CAAA,EAAA,UcmH7C,wBdnH6C,CAAA,CAAA,KAAA,EcoHrD,cdpHqD,CcoHtC,CdpHsC,EcoHnC,CdpHmC,CAAA,EAAA,IAAA,EcqHtD,CAAA,CAAE,KdrHoD,CcqH9C,CdrH8C,CAAA,CAAA,EcsH3D,OdtH2D,CcsHnD,CdtHmD,CAAA;EAAR,GAAA,CAAA,CAAA,EAAA,UcwHrC,wBdxHqC,EAAA,UAAA,OAAA,CAAA,CAAA,KAAA,EcyH7C,cdzH6C,CcyH9B,CdzH8B,EcyH3B,CdzH2B,EcyHxB,CdzHwB,CAAA,CAAA,Ec0HnD,Cd1HmD,SAAA,KAAA,Gc2HlD,Od3HkD,Cc2H1C,Cd3H0C,CAAA,Gc4HlD,Cd5HkD,Sc4HxC,Od5HwC,CAAA,KAAA,KAAA,CAAA,GAAA,oCc6HZ,Id7HY,Cc8H9C,Yd9H8C,CAAA,Mc8H3B,Id9H2B,CAAA,EAAA,IAAA,CAAA,EAAA,GAAA,iCAAA;EAAa,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EcmIrD,cdnIqD,CcmItC,CdnIsC,EAAA,SAAA,CAAA,CAAA,EcmItB,OdnIsB,CcmId,CdnIc,CAAA;EAAC,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EcoItD,mBdpIsD,CcoIlC,CdpIkC,EAAA,GAAA,CAAA,CAAA,EcoIxB,OdpIwB,CcoIhB,CdpIgB,CAAA;gBcqItD,sBAAsB,UAAU,QAAQ;;;Ab7HxD;;EAMW,UAAA,CAAA,OAAA,EAAA,OAAA,CAAA,EayJ2B,ObzJ3B,CAAA,IAAA,CAAA;EACO;;;EACJ,YAAA,CAAA,KAAA,EAAA,GAAA,CAAA,EAAA,OAAA;EAAR;;;;EAGgC,OAAA,CAAA,CAAA,EaiLnB,ObjLmB,CAAA,IAAA,CAAA;EAAtB;;;;EAGH,UAAA,CAAA,CAAA,EasLS,ObtLT,CAAA,IAAA,CAAA;EAAR;;;EAGwB,KAAA,CAAA,CAAA,Ea8MZ,Ob9MY,CAAA,IAAA,CAAA;EAAlB;;;;;;;;EAKqB,UAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EAAA,GAAA,EAAA,IAAA,CAAA,EAAA,GAAA,CAAA,EaqNS,CbrNT,GAAA,IAAA;EAArB;;;EAEL,QAAA,eAAA;EACA;;;;EACsC,QAAA,oBAAA;EAMb;;;;EACK,oBAAA,CAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,GAAA,EAAA,MAAA,Ea0RxB,cb1RwB,CAAA,EAAA,IAAA;EAApB;;;;EACA,kBAAA,CAAA,YAAA,EAAA,MAAA,CAAA,EaoSX,cbpSW,GAAA,SAAA;EAAwC;;;;EAoB7C,oBAAA,CAAA,YAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;;;;;;AFhEX;;;;AAIa,cgBCA,iBAAA,ChBDA;EAA+B,iBAAA,MAAA;EAAkB,QAAA,SAAA;EAAM,WAAA,CAAA,MAAA,CAAA,EgBG7B,OhBH6B,GAAA,IAAA;EAAX,EAAA,CAAA,cAAA,MAAA,GAAA,OAAA,MAAA,EAAA,GAAA,QAAA,MAAA,EAAA,CAAA,CAAA,EAAA,EAAA,MAAA,EAAA,KAAA,EgBO9C,KhBP8C,EAAA,QAAA,EAAA,CAAA,KAAA,EgBQnC,KhBRmC,EAAA,GAAA,IAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EAAI,IAAA,CAAA,GAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,EgBiCtB,OhBjCsB,CgBiCtB,oBhBjCsB,CAAA,GAAA,CAAA,EAAA,GAAA,SAAA,CAAA;AAM7D;;;;;;;;;AANoE,ciBCvD,aAAA,SAAsB,iBAAA,CjBDiC;EAAX,WAAA,CAAA,MAAA,CAAA,EiBEnC,OjBFmC,GAAA,IAAA;EAAI,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EAAA,CiBQvD,OjBRuD,EiBQ9C,cjBR8C,CAAA,GAAA,CiBQ3B,OjBR2B,CAAA,GAAA,CAAA,SAAA,EiBQJ,cjBRI,CAAA;EAMjD,GAAA,CAAA,IAAA,EAAA,MAAA,EAAA,MAAmB,EiBwBH,cjBvBL,CAAA,EAAA,IAAA;EAMX,GAAA,CAAA,IAAA,EAAA,MAAY,CAAA,EAAA,CiBqBF,OjBrBE,CAAA,GAAA,CAAA,SAAA,EAAA,OAAA,CAAA;EACtB;;;;AAGF;AAGA;;;;;EAEY,kBAAY,CAAA,QAAA,CAAA,CAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EiBuCV,QjBvCU,EAAA,IAAA,EiBwCd,cjBxCc,EAAA,KAAA,EiByCb,ejBzCa,EAAA,IAAA,CAAA,EiB0Cd,GjB1Cc,CAAA,MAAA,CAAA,CAAA,EiB2CnB,cjB3CmB,CiB2CJ,QjB3CI,CAAA;;;;AA1BZ,UkBCK,eAAA,ClBDD;EACd;EAAkB,SAAA,CAAA,EAAA,MAAA;EACD;EAEN,iBAAA,CAAA,EAAA,OAAA;;AAAiD,UkBI7C,mBAAA,ClBJ6C;EAAM;EAAX,UAAA,CAAA,EAAA,OAAA;EAAI;EAMjD,aAAA,CAAA,EAAA,CAAA,YAAmB,EAAA,MAC7B,EAAoB,GkBCsB,OlBDrB,CAAA,IAAA,CAAA;EAMX;EACV,OAAA,CAAA,EAAA,OAAA;EAAoB;EADQ,aAAA,CAAA,EkBDZ,GlBCY,CAAA,MAAA,CAAA;;AAI9B;AAGA;;;;;AAEA;AACU,ckBDG,WAAA,ClBCH;EAAR,iBAAA,QAAA;EACyB,iBAAA,MAAA;EAAY,iBAAA,OAAA;EAAT,WAAA,CAAA,OAAA,EkBEjB,alBFiB,EAAA,QAAA,EkBGC,iBlBHD,GAAA,IAAA,EAAA,MAAA,CAAA,EkBID,OlBJC,GAAA,IAAA;EAAX;;;;EAAb,UAAA,CAAA,OAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,MAAA,CAAA,EkBaoC,OlBbpC,CAAA,GAAA,CAAA;EACC;;;AAEP;;;;;;EAQkB,qBAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EkBiBL,clBjBK,EAAA,KAAA,CAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EkBmBL,mBlBnBK,CAAA,EkBoBb,OlBpBa,CAAA,IAAA,CAAA;EAAK;AAIvB;;;;EC9CiB,QAAA,CAAA,OAAU,CAAA,EiB2GD,ejB3GC,CAAA,EiB2GsB,OjB3GtB,CAAA,IAAA,CAAA;EACZ;;;;EAA+B,mBAAA,CAAA,OAAA,EiBmHjC,cjBnHiC,EAAA,OAAA,CAAA,EiBoHjC,ejBpHiC,CAAA,EiBqHzC,OjBrHyC,CAAA,IAAA,CAAA;EAG7B;;;EACiC,KAAA,CAAA,CAAA,EiBwJjC,OjBxJiC,CAAA,IAAA,CAAA;EAAP;;;EAA0B,gBAAA,CAAA,OAAA,EiB+JnC,cjB/JmC,CAAA,EiB+JlB,OjB/JkB,CAAA,IAAA,CAAA;EAAC;;;;ECQrD;;;EAOC,QAAA,wBAAA;EAAb;;;EACC,QAAA,wBAAA;EACqB;;;EAEW,QAAA,qBAAA;EAAtB;;;EAGU,QAAA,8CAAA;EAAb;;;;EAGgB,QAAA,qCAAA;EAAlB;;;;EAEN,QAAA,2BAAA;EAEc;;;EACa,QAAA,iBAAA;;;;;;;;;;AF5ByB,cmBoD5C,cAAA,CnBpD4C;EAAI,iBAAA,MAAA;EAMjD,iBAAA,iBAAmB;EAOnB,WAAA,CAAA,MAAY,CAAA,EmB0Ce,OnB1Cf,GAAA,IAAA;EACtB;;;;AAGF;AAGA;;EAA0D,cAAA,CAAA,KAAA,EmBgDlC,iBnBhDkC,CAAA,EmBgDd,kBnBhDc;EAApB;;AAEtC;;;;;;EAEmB,YAAA,CAAA,IAAA,OAAA,CAAA,CAAA,KAAA,EmB2DgB,kBnB3DhB,CAAA,EmB2DqC,cnB3DrC,CmB2DoD,CnB3DpD,CAAA;EAAmC;;;;;;;EAG1C,gBAAa,CAAA,IAAA,OAAA,CAAA,CAAA,KAAA,EmByEc,iBnBzEd,CAAA,EmByEkC,cnBzElC,CmByEiD,CnBzEjD,CAAA;EAEnB;;;EAGA,2BAAA,CAAA,KAAA,EmBgFK,iBnBhFL,EAAA,IAAA,CAAA,EAAA,GAAA,CAAA,EAAA,CmBmFF,OnBlFO,GAAA,SAAA,EAEO;IAAK,WAAA,EmBiFJ,kBnBjFI;IAIN,aAAW,CAAA,EAAA,GAGhB;;;ACjDZ;;;EACgC,oBAAA,CAAA,KAAA,EkB4JF,kBlB5JE,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA,MAAA;EAAa;;AAG7C;EAAiD,cAAA,CAAA,KAAA,EAAA,GAAA,CAAA,EAAA,MAAA;EAClC;;;;;EAAsD,oBAAA,CAAA,SAAA,EkBwMtD,UlBxMsD,EAAA,oBAAA,CAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,GAAA,IAAA,CAAA,EkB0MhE,clB1MgE,GAAA;IAAC,mBAAA,EAAA,GAAA,GAAA,CAAA,GAAA,GAAA,IAAA,CAAA,EAAA;UkB4M5D;;;;;;;AnBpMV;AAOA;;;;AAAiD,coBKpC,cAAA,CpBLoC;EAIrC,iBAAQ,QACL;EAEH,iBAAO,MAAA;EAAO,iBAAA,SAAA;EAAgC,iBAAA,QAAA;EAApB,iBAAA,OAAA;EAAmB,iBAAA,YAAA;EAE7C,iBAAY,cAAA;EACd,iBAAA,WAAA;EAAR,iBAAA,gBAAA;EACyB,WAAA,CAAA,QAAA,CAAA,EoBGI,QpBHJ,EAAA,MAAA,CAAA,EoBIE,OpBJF,GAAA,IAAA,EAAA,SAAA,CAAA,EoBKK,SpBLL;EAAY,WAAA,CAAA,CAAA,EoB8B1B,iBpB9B0B;EAAT,UAAA,CAAA,CAAA,EoBkClB,apBlCkB;EAAX,cAAA,CAAA,CAAA,EoBsCH,WpBtCG;EAAmC,iBAAA,CAAA,CAAA,EoB0CnC,cpB1CmC;EAAT,qBAAA,CAAA,KAAA,EoB8CP,iBpB9CO,EAAA,IAAA,CAAA,EAAA,GAAA,CAAA,EAAA,MAAA;EAAgB;;;;;AAG7D;EAEM,WAAA,CAAA,KAAA,EoByDK,iBpBzDL,EAAA,IAAA,EAAA,GAAA,EAAA,gBAAA,EoB2DgB,UpB3DhB,CAAA,EoB2D0B,OpB3D1B,CAAA,GAAA,EAAA,CAAA;EACA;;;;;;EASW,kBAAW,CAAA,QAGhB,CAAA,CAAA,KAAA,EoBmED,iBpBnEc,EAAA,IAAA,EAAA,GAAA,EAAA,gBAAA,EoBqEH,UpBrEG,CAAA,EoBsEpB,OpBtEoB,CoBsEZ,QpBtEY,CAAA;;;;ACjDzB;;;;;EAC8C,oBAAA,CAAA,KAAA,EmBuInC,iBnBvImC,EAAA,IAAA,EAAA,GAAA,EAAA,eAAA,EmByIzB,enBzIyB,CAAA,EmB0IzC,OnB1IyC,CAAA,GAAA,CAAA;EAG7B,eAAA,CAAA,QAAkB,EAAA,emBqJhB,wBnBrJgB,GAAA,SAAA,CAAA,CAAA,KAAA,EmBuJxB,iBnBvJwB,EAAA,IAAA,EmBwJzB,MnBxJyB,SmBwJV,SnBxJU,GmByJ3B,CAAA,CAAE,KnBzJyB,CmByJnB,MnBzJmB,CAAA,GmB0J3B,MnB1J2B,SmB0JZ,WnB1JY,CmB0JA,SnB1JA,CAAA,GmB2JzB,CAAA,CAAE,KnB3JuB,CmB2JjB,MnB3JiB,CAAA,GAAA,SAAA,GAAA,SAAA,EAAA,gBAAA,EmB6Jb,UnB7Ja,CAAA,EmB8J9B,QnB9J8B,GAAA,IAAA;EAAc,UAAA,CAAA,OAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,MAAA,CAAA,EmBkKP,OnBlKO,CAAA,GAAA,CAAA;EAClC;;;;;;;;qBmB6KW,kBAAuB;;AlBrKjD;;EAMW,KAAA,CAAA,CAAA,EkBsKM,OlBtKN,CAAA,IAAA,CAAA;EACO;;;;EACZ,oBAAA,CAAA,KAAA,EAAA,GAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA,MAAA;;;;;;;AFRN;AAOA;;;AAA8B,cqBWjB,SAAA,YAAqB,UrBXJ,CAAA;EAAmB,mBAAA,QAAA,EqBgBhB,QrBhBgB;EAIrC,mBAAQ,MACL,EqBYgB,OrBZ7B,GAAA,IAAY;EAEF,mBAAO,SAAA,EqBWe,SrBXf;EAAO,iBAAA,cAAA;EAAgC,iBAAA,gBAAA;EAApB,WAAA,CAAA,QAAA,CAAA,EqBSL,QrBTK,EAAA,MAAA,CAAA,EqBUP,OrBVO,GAAA,IAAA,EAAA,SAAA,CAAA,EqBWJ,SrBXI;EAAmB,QAAA,YAAA;EAE7C;;;;;;;EAE0C,GAAA,CAAA,UqBkCtC,SrBlCsC,CAAA,CAAA,KAAA,EqBmC3C,CrBnC2C,CAAA,EqBoCjD,YrBpCiD,CqBoCpC,CrBpCoC,CAAA,SqBoCzB,UrBpCyB,CAAA,KAAA,EAAA,CAAA,GqBqChD,OrBrCgD,CqBqCxC,CrBrCwC,CAAA,GqBsChD,OrBtCgD,CqBsCxC,YrBtCwC,CqBsC3B,CrBtC2B,CAAA,CAAA;EAAT,GAAA,CAAA,UqBwC7B,qBrBxC6B,CqBwCP,CrBxCO,CAAA,EAAA,CAAA,CAAA,CAAA,KAAA,EqByClC,CrBzCkC,EAAA,IAAA,EqB0CnC,CrB1CmC,CAAA,EqB2CxC,OrB3CwC,CqB2ChC,YrB3CgC,CqB2CnB,CrB3CmB,CAAA,CAAA;EAAgB,GAAA,CAAA,CAAA,EAAA,UqB8C1C,wBrB9C0C,CAAA,CAAA,KAAA,EqB+ClD,crB/CkD,CqB+CnC,CrB/CmC,EqB+ChC,CrB/CgC,CAAA,EAAA,IAAA,EqBgDnD,CAAA,CAAE,KrBhDiD,CqBgD3C,CrBhD2C,CAAA,CAAA,EqBiDxD,OrBjDwD,CqBiDhD,CrBjDgD,CAAA;EAAvD,GAAA,CAAA,CAAA,EAAA,UqBmDa,wBrBnDb,EAAA,UAAA,OAAA,CAAA,CAAA,KAAA,EqBoDK,crBpDL,CqBoDoB,CrBpDpB,EqBoDuB,CrBpDvB,EqBoD0B,CrBpD1B,CAAA,CAAA,EqBqDD,CrBrDC,SAAA,KAAA,GqBsDA,OrBtDA,CqBsDQ,CrBtDR,CAAA,GqBuDA,CrBvDA,SqBuDU,OrBvDV,CAAA,KAAA,KAAA,CAAA,GAAA,oCqBwDsC,IrBxDtC,CqByDI,YrBzDJ,CAAA,MqByDuB,IrBzDvB,CAAA,EAAA,IAAA,CAAA,EAAA,GAAA,iCAAA;EACC,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EqB6DS,crB7DT,CqB6DwB,CrB7DxB,EAAA,SAAA,CAAA,CAAA,EqB6DwC,OrB7DxC,CqB6DgD,CrB7DhD,CAAA;EAAM,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EqB8DG,mBrB9DH,CqB8DuB,CrB9DvB,EAAA,GAAA,CAAA,CAAA,EqB8DiC,OrB9DjC,CqB8DyC,CrB9DzC,CAAA;EAAC,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EqB+DE,qBrB/DF,CqB+DwB,CrB/DxB,EAAA,GAAA,CAAA,CAAA,EqB+DkC,OrB/DlC,CqB+D0C,CrB/D1C,CAAA;EAEF;;;;;;;EAQW,cAAA,CAAA,KAAA,EqB0Ff,SrB1Fe,GqB2Ff,crB3Fe,CAAA,GAAA,CAAA,GqB4Ff,mBrB5Fe,CAAA,GAAA,EAAA,GAAA,CAAA,GqB6Ff,qBrB7Fe,CAAA,GAAA,EAAA,GAAA,CAAA,EAAA,IAAA,EAAA,OAAA,EAAA,gBAAA,EqB+FD,UrB/FC,CAAA,EqBgGlB,OrBhGkB,CAAA,GAAA,CAAA;EAIN;;;;AC9CjB;;EACwC,iBAAA,CAAA,KAAA,EoByJhC,SpBzJgC,GoB0JhC,cpB1JgC,CAAA,GAAA,CAAA,GoB2JhC,mBpB3JgC,CAAA,GAAA,EAAA,GAAA,CAAA,GoB4JhC,qBpB5JgC,CAAA,GAAA,EAAA,GAAA,CAAA,EAAA,IAAA,EAAA,OAAA,EAAA,eAAA,EoB8JnB,epB9JmB,CAAA,EoB+JnC,OpB/JmC,CAAA,GAAA,CAAA;EAAR;;;EAGf,iBAAA,CAAA,CAAA,EoBuKM,cpBvKY;EAAc;;;EACN,WAAA,CAAA,CAAA,EoB6K1B,QpB7K0B;EAAqB;;;EAAM,UAAA,CAAA,OAAA,EAAA,OAAA,CAAA,EoBoLhC,OpBpLgC,CAAA,IAAA,CAAA;;;;ECQrD,QAAA,mBAAU;EAKX;;;EAEX,YAAA,CAAA,KAAA,EAAA,GAAA,CAAA,EAAA,OAAA;EAAwB;;;EAEF,OAAA,CAAA,CAAA,EmBwMR,OnBxMQ,CAAA,IAAA,CAAA;EAAb;;;EAEE,KAAA,CAAA,CAAA,EmB6MC,OnB7MD,CAAA,IAAA,CAAA;EACL;;;;;EAIQ,UAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EAAA,GAAA,EAAA,IAAA,CAAA,EAAA,GAAA,CAAA,EmBiNsB,CnBjNtB,GAAA,IAAA;EACO;;;;;;;;;;;EAKf,YAAA,CAAA,SAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EmBgOI,MnBhOJ,CAAA,MAAA,EAAA,GAAA,CAAA,EAAA,QAAA,CAAA,EAAA,MAAA,CAAA,EmBkON,enBlOM;EACN;;;;;;EAIK,mBAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,IAAA;EADkC;;;EAMW,mBAAA,CAAA,CAAA,EmB0P9B,WnB1P8B,CAAA,MAAA,CAAA;EAAR;;;EACO,gBAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,OAAA;EAAR;;;;EACE,KAAA,CAAA,CAAA,EmBuQrC,OnBvQqC,CAAA,IAAA,CAAA"}
@@ -104,6 +104,7 @@ var FactoryInjectionToken = class {
104
104
  //#endregion
105
105
  //#region src/token/registry.mts
106
106
  var Registry = class {
107
+ parent;
107
108
  factories = /* @__PURE__ */ new Map();
108
109
  constructor(parent) {
109
110
  this.parent = parent;
@@ -132,6 +133,23 @@ var Registry = class {
132
133
  delete(token) {
133
134
  this.factories.delete(token.id);
134
135
  }
136
+ /**
137
+ * Updates the scope of an already registered factory.
138
+ * This is useful when you need to dynamically change a service's scope
139
+ * (e.g., when a singleton controller has request-scoped dependencies).
140
+ *
141
+ * @param token The injection token to update
142
+ * @param scope The new scope to set
143
+ * @returns true if the scope was updated, false if the token was not found
144
+ */ updateScope(token, scope) {
145
+ const factory = this.factories.get(token.id);
146
+ if (factory) {
147
+ factory.scope = scope;
148
+ return true;
149
+ }
150
+ if (this.parent) return this.parent.updateScope(token, scope);
151
+ return false;
152
+ }
135
153
  };
136
154
  const globalRegistry = new Registry();
137
155
 
@@ -491,9 +509,14 @@ let InstanceStatus = /* @__PURE__ */ function(InstanceStatus$1) {
491
509
  */ var BaseHolderManager = class BaseHolderManager {
492
510
  logger;
493
511
  _holders;
512
+ /**
513
+ * Reverse dependency index: maps a dependency name to the set of holder names that depend on it.
514
+ * This allows O(1) lookup of dependents instead of O(n) iteration.
515
+ */ _dependents;
494
516
  constructor(logger = null) {
495
517
  this.logger = logger;
496
518
  this._holders = /* @__PURE__ */ new Map();
519
+ this._dependents = /* @__PURE__ */ new Map();
497
520
  }
498
521
  /**
499
522
  * Protected getter for accessing the holders map from subclasses.
@@ -501,23 +524,81 @@ let InstanceStatus = /* @__PURE__ */ function(InstanceStatus$1) {
501
524
  return this._holders;
502
525
  }
503
526
  /**
504
- * Deletes a holder by name.
527
+ * Deletes a holder by name and cleans up the reverse dependency index.
505
528
  * @param name The name of the holder to delete
506
529
  * @returns true if the holder was deleted, false if it didn't exist
507
530
  */ delete(name) {
531
+ const holder = this._holders.get(name);
532
+ if (holder) this.removeFromDependentsIndex(name, holder.deps);
508
533
  return this._holders.delete(name);
509
534
  }
510
535
  /**
536
+ * Registers a holder's dependencies in the reverse index.
537
+ * Call this after creating a holder with dependencies.
538
+ * @param holderName The name of the holder that has dependencies
539
+ * @param deps The set of dependency names
540
+ */ registerDependencies(holderName, deps) {
541
+ for (const dep of deps) {
542
+ let dependents = this._dependents.get(dep);
543
+ if (!dependents) {
544
+ dependents = /* @__PURE__ */ new Set();
545
+ this._dependents.set(dep, dependents);
546
+ }
547
+ dependents.add(holderName);
548
+ }
549
+ }
550
+ /**
551
+ * Removes a holder from the reverse dependency index.
552
+ * @param holderName The name of the holder to remove
553
+ * @param deps The set of dependency names to clean up
554
+ */ removeFromDependentsIndex(holderName, deps) {
555
+ for (const dep of deps) {
556
+ const dependents = this._dependents.get(dep);
557
+ if (dependents) {
558
+ dependents.delete(holderName);
559
+ if (dependents.size === 0) this._dependents.delete(dep);
560
+ }
561
+ }
562
+ }
563
+ /**
564
+ * Gets all holder names that depend on the given instance name.
565
+ * O(1) lookup using the reverse dependency index.
566
+ * @param instanceName The instance name to find dependents for
567
+ * @returns Array of holder names that depend on this instance
568
+ */ getDependents(instanceName) {
569
+ const dependents = this._dependents.get(instanceName);
570
+ return dependents ? Array.from(dependents) : [];
571
+ }
572
+ /**
511
573
  * Filters holders based on a predicate function.
512
574
  * @param predicate Function to test each holder
513
575
  * @returns A new Map containing only the holders that match the predicate
576
+ * @deprecated Use forEachHolder() for iteration to avoid allocations
514
577
  */ filter(predicate) {
515
- return new Map([...this._holders].filter(([key, value]) => predicate(value, key)));
578
+ const result = /* @__PURE__ */ new Map();
579
+ for (const [key, value] of this._holders) if (predicate(value, key)) result.set(key, value);
580
+ return result;
581
+ }
582
+ /**
583
+ * Iterates over holders with a callback. More efficient than filter() as it
584
+ * avoids creating intermediate arrays and Maps.
585
+ * @param callback Function called for each holder with (holder, name)
586
+ */ forEachHolder(callback) {
587
+ for (const [name, holder] of this._holders) callback(holder, name);
516
588
  }
517
589
  /**
518
- * Clears all holders from this manager.
590
+ * Finds the first holder matching a predicate. More efficient than filter()
591
+ * when only one result is needed.
592
+ * @param predicate Function to test each holder
593
+ * @returns The first matching holder or undefined
594
+ */ findHolder(predicate) {
595
+ for (const [name, holder] of this._holders) if (predicate(holder, name)) return holder;
596
+ }
597
+ /**
598
+ * Clears all holders from this manager and the reverse dependency index.
519
599
  */ clear() {
520
600
  this._holders.clear();
601
+ this._dependents.clear();
521
602
  }
522
603
  /**
523
604
  * Gets the number of holders currently managed.
@@ -601,12 +682,14 @@ let InstanceStatus = /* @__PURE__ */ function(InstanceStatus$1) {
601
682
  if (waiterHolder && getHolder) {
602
683
  const cycle = CircularDetector.detectCycle(waiterHolder.name, holder.name, getHolder);
603
684
  if (cycle) return [DIError.circularDependency(cycle)];
604
- waiterHolder.waitingFor.add(holder.name);
685
+ if (process.env.NODE_ENV !== "production") waiterHolder.waitingFor.add(holder.name);
605
686
  }
606
687
  try {
607
688
  await holder.creationPromise;
608
689
  } finally {
609
- if (waiterHolder) waiterHolder.waitingFor.delete(holder.name);
690
+ if (process.env.NODE_ENV !== "production") {
691
+ if (waiterHolder) waiterHolder.waitingFor.delete(holder.name);
692
+ }
610
693
  }
611
694
  return BaseHolderManager.waitForHolderReady(holder, waiterHolder, getHolder);
612
695
  case InstanceStatus.Destroying: return [DIError.instanceDestroying(holder.name)];
@@ -733,10 +816,11 @@ var RequestStorage = class {
733
816
  return null;
734
817
  }
735
818
  findDependents(instanceName) {
736
- const dependents = [];
737
- for (const [name, holder] of this.contextHolder.holders) if (holder.deps.has(instanceName)) dependents.push(name);
738
- for (const [name, holder] of this.holderManager.filter(() => true)) if (holder.deps.has(instanceName)) dependents.push(name);
739
- return dependents;
819
+ const requestDependents = this.contextHolder.getDependents(instanceName);
820
+ const singletonDependents = this.holderManager.getDependents(instanceName);
821
+ if (requestDependents.length === 0) return singletonDependents;
822
+ if (singletonDependents.length === 0) return requestDependents;
823
+ return [...requestDependents, ...singletonDependents];
740
824
  }
741
825
  };
742
826
 
@@ -942,16 +1026,13 @@ var SingletonStorage = class {
942
1026
  return this.manager.getAllNames();
943
1027
  }
944
1028
  forEach(callback) {
945
- for (const [name, holder] of this.manager.filter(() => true)) callback(name, holder);
1029
+ this.manager.forEachHolder((holder, name) => callback(name, holder));
946
1030
  }
947
1031
  findByInstance(instance) {
948
- for (const [, holder] of this.manager.filter((h) => h.instance === instance)) return holder;
949
- return null;
1032
+ return this.manager.findHolder((h) => h.instance === instance) ?? null;
950
1033
  }
951
1034
  findDependents(instanceName) {
952
- const dependents = [];
953
- for (const [name, holder] of this.manager.filter(() => true)) if (holder.deps.has(instanceName)) dependents.push(name);
954
- return dependents;
1035
+ return this.manager.getDependents(instanceName);
955
1036
  }
956
1037
  };
957
1038
 
@@ -1179,6 +1260,8 @@ var SingletonStorage = class {
1179
1260
  */ async handleInstantiationSuccess(instanceName, holder, ctx, deferred, instance, scopedContainer) {
1180
1261
  holder.instance = instance;
1181
1262
  holder.status = InstanceStatus.Created;
1263
+ if (ctx.deps.size > 0) if (scopedContainer) scopedContainer.getRequestContextHolder().registerDependencies(instanceName, ctx.deps);
1264
+ else this.manager.registerDependencies(instanceName, ctx.deps);
1182
1265
  if (ctx.deps.size > 0) ctx.deps.forEach((dependency) => {
1183
1266
  holder.destroyListeners.push(this.serviceLocator.getEventBus().on(dependency, "destroy", () => {
1184
1267
  this.logger?.log(`[InstanceResolver] Dependency ${dependency} destroyed, invalidating ${instanceName}`);
@@ -1634,12 +1717,42 @@ var SingletonStorage = class {
1634
1717
  //#endregion
1635
1718
  //#region src/internal/core/token-processor.mts
1636
1719
  /**
1720
+ * Simple LRU cache for instance name generation.
1721
+ * Uses a Map which maintains insertion order for efficient LRU eviction.
1722
+ */ var InstanceNameCache = class {
1723
+ cache = /* @__PURE__ */ new Map();
1724
+ maxSize;
1725
+ constructor(maxSize = 1e3) {
1726
+ this.maxSize = maxSize;
1727
+ }
1728
+ get(key) {
1729
+ const value = this.cache.get(key);
1730
+ if (value !== void 0) {
1731
+ this.cache.delete(key);
1732
+ this.cache.set(key, value);
1733
+ }
1734
+ return value;
1735
+ }
1736
+ set(key, value) {
1737
+ if (this.cache.has(key)) this.cache.delete(key);
1738
+ else if (this.cache.size >= this.maxSize) {
1739
+ const firstKey = this.cache.keys().next().value;
1740
+ if (firstKey !== void 0) this.cache.delete(firstKey);
1741
+ }
1742
+ this.cache.set(key, value);
1743
+ }
1744
+ clear() {
1745
+ this.cache.clear();
1746
+ }
1747
+ };
1748
+ /**
1637
1749
  * Handles token validation, normalization, and instance name generation.
1638
1750
  *
1639
1751
  * Provides utilities for resolving tokens to their underlying InjectionToken,
1640
1752
  * validating arguments against schemas, and generating unique instance identifiers.
1641
1753
  */ var TokenProcessor = class {
1642
1754
  logger;
1755
+ instanceNameCache = new InstanceNameCache();
1643
1756
  constructor(logger = null) {
1644
1757
  this.logger = logger;
1645
1758
  }
@@ -1698,10 +1811,16 @@ var SingletonStorage = class {
1698
1811
  }
1699
1812
  /**
1700
1813
  * Generates a unique instance name based on token and arguments.
1814
+ * Results are cached using an LRU cache for performance.
1701
1815
  */ generateInstanceName(token, args) {
1702
1816
  if (!args) return token.toString();
1703
- const formattedArgs = Object.entries(args).sort(([keyA], [keyB]) => keyA.localeCompare(keyB)).map(([key, value]) => `${key}=${this.formatArgValue(value)}`).join(",");
1704
- return `${token.toString()}:${formattedArgs.replaceAll(/"/g, "").replaceAll(/:/g, "=")}`;
1817
+ const tokenStr = token.toString();
1818
+ const cacheKey = `${tokenStr}:${JSON.stringify(args)}`;
1819
+ const cached = this.instanceNameCache.get(cacheKey);
1820
+ if (cached !== void 0) return cached;
1821
+ const result = `${tokenStr}:${Object.entries(args).sort(([keyA], [keyB]) => keyA.localeCompare(keyB)).map(([key, value]) => `${key}=${this.formatArgValue(value)}`).join(",").replaceAll(/"/g, "").replaceAll(/:/g, "=")}`;
1822
+ this.instanceNameCache.set(cacheKey, result);
1823
+ return result;
1705
1824
  }
1706
1825
  /**
1707
1826
  * Formats a single argument value for instance name generation.
@@ -2270,4 +2389,4 @@ var Container = class {
2270
2389
 
2271
2390
  //#endregion
2272
2391
  export { Injectable as A, getInjectableToken as C, withoutResolutionContext as D, withResolutionContext as E, FactoryInjectionToken as F, InjectionToken as I, InjectableType as L, Registry as M, globalRegistry as N, DIError as O, BoundInjectionToken as P, InjectableScope as R, wrapSyncInit as S, getCurrentResolutionContext as T, asyncInject as _, LifecycleEventBus as a, optional as b, InstanceResolver as c, RequestStorage as d, DefaultRequestContext as f, CircularDetector as g, InstanceStatus as h, HolderManager as i, InjectableTokenMeta as j, DIErrorCode as k, SingletonStorage as l, BaseHolderManager as m, ServiceLocator as n, Invalidator as o, createRequestContext as p, TokenProcessor as r, Instantiator as s, _Container as t, ScopedContainer as u, defaultInjectors as v, getInjectors as w, provideFactoryContext as x, inject as y };
2273
- //# sourceMappingURL=container-Bv6PZZLJ.mjs.map
2392
+ //# sourceMappingURL=container-DAKOvAgr.mjs.map