@frontmcp/auth 1.11.2 → 1.11.3
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.
- package/README.md +2 -2
- package/authorities/authorities.context.d.ts.map +1 -1
- package/authorities/authorities.engine.d.ts +1 -1
- package/authorities/authorities.engine.d.ts.map +1 -1
- package/authorities/authorities.evaluator.d.ts.map +1 -1
- package/authorities/authorities.profiles.d.ts +1 -1
- package/authorities/authorities.profiles.d.ts.map +1 -1
- package/authorities/authorities.registry.d.ts +1 -1
- package/authorities/authorities.registry.d.ts.map +1 -1
- package/authorities/authorities.scope-mapping.d.ts +1 -1
- package/authorities/authorities.scope-mapping.d.ts.map +1 -1
- package/authorities/authorities.types.d.ts +4 -0
- package/authorities/authorities.types.d.ts.map +1 -1
- package/authorization/orchestrated.accessor.d.ts.map +1 -1
- package/authorization/public.authorization.d.ts.map +1 -1
- package/authorization/transparent.authorization.d.ts +1 -1
- package/authorization/transparent.authorization.d.ts.map +1 -1
- package/browser/authorities/authorities.context.mjs +3 -1
- package/browser/authorities/authorities.engine.mjs +32 -33
- package/browser/authorities/authorities.evaluator.mjs +42 -16
- package/browser/authorization/dcr-client.registry.mjs +1 -1
- package/browser/authorization/public.authorization.mjs +1 -1
- package/browser/authorization/transparent.authorization.mjs +1 -1
- package/browser/cimd/cimd-client-assertion.mjs +108 -0
- package/browser/cimd/cimd-redis.cache.mjs +5 -3
- package/browser/cimd/cimd.errors.mjs +11 -0
- package/browser/cimd/cimd.service.mjs +127 -31
- package/browser/cimd/cimd.types.mjs +15 -10
- package/browser/cimd/index.mjs +13 -1
- package/browser/errors/auth-internal.error.mjs +3 -2
- package/browser/errors/auth-internal.errors.mjs +8 -1
- package/browser/errors/index.mjs +2 -0
- package/browser/index.mjs +21 -1
- package/browser/jwks/index.mjs +2 -0
- package/browser/jwks/jwks.service.mjs +22 -103
- package/browser/jwks/local-token-keys.mjs +155 -0
- package/browser/options/public.schema.mjs +7 -4
- package/browser/options/shared.schemas.mjs +38 -13
- package/browser/session/federated-auth.session.mjs +2 -0
- package/browser/session/incremental-auth-ticket.mjs +24 -1
- package/browser/session/index.mjs +4 -0
- package/browser/session/redis-session.store.mjs +3 -3
- package/browser/session/session-crypto.mjs +4 -4
- package/browser/session/storage/storage-authorization-vault.mjs +3 -1
- package/browser/session/token.vault.mjs +1 -1
- package/browser/session/utils/index.mjs +9 -1
- package/browser/session/utils/session-crypto.utils.mjs +4 -0
- package/browser/ui/index.mjs +2 -0
- package/browser/ui/templates.mjs +65 -11
- package/browser/upstream/index.mjs +6 -0
- package/browser/upstream/upstream-client-registration.mjs +273 -0
- package/cimd/cimd-client-assertion.d.ts +43 -0
- package/cimd/cimd-client-assertion.d.ts.map +1 -0
- package/cimd/cimd-redis.cache.d.ts +2 -2
- package/cimd/cimd-redis.cache.d.ts.map +1 -1
- package/cimd/cimd.cache.d.ts +1 -1
- package/cimd/cimd.cache.d.ts.map +1 -1
- package/cimd/cimd.errors.d.ts +14 -0
- package/cimd/cimd.errors.d.ts.map +1 -1
- package/cimd/cimd.service.d.ts +37 -2
- package/cimd/cimd.service.d.ts.map +1 -1
- package/cimd/cimd.types.d.ts +6 -0
- package/cimd/cimd.types.d.ts.map +1 -1
- package/cimd/index.d.ts +3 -2
- package/cimd/index.d.ts.map +1 -1
- package/errors/auth-internal.error.d.ts +4 -5
- package/errors/auth-internal.error.d.ts.map +1 -1
- package/errors/auth-internal.errors.d.ts +8 -0
- package/errors/auth-internal.errors.d.ts.map +1 -1
- package/errors/index.d.ts +1 -1
- package/errors/index.d.ts.map +1 -1
- package/esm/index.mjs +54 -14
- package/esm/package.json +5 -5
- package/index.d.ts +12 -10
- package/index.d.ts.map +1 -1
- package/index.js +58 -18
- package/jwks/index.d.ts +2 -0
- package/jwks/index.d.ts.map +1 -1
- package/jwks/jwks.service.d.ts +12 -12
- package/jwks/jwks.service.d.ts.map +1 -1
- package/jwks/jwks.types.d.ts +2 -0
- package/jwks/jwks.types.d.ts.map +1 -1
- package/jwks/local-token-keys.d.ts +41 -0
- package/jwks/local-token-keys.d.ts.map +1 -0
- package/options/interfaces.d.ts +64 -15
- package/options/interfaces.d.ts.map +1 -1
- package/options/public.schema.d.ts.map +1 -1
- package/options/shared.schemas.d.ts.map +1 -1
- package/package.json +5 -5
- package/session/authorization.store.d.ts +9 -2
- package/session/authorization.store.d.ts.map +1 -1
- package/session/federated-auth.session.d.ts +8 -0
- package/session/federated-auth.session.d.ts.map +1 -1
- package/session/incremental-auth-ticket.d.ts +10 -0
- package/session/incremental-auth-ticket.d.ts.map +1 -1
- package/session/index.d.ts +2 -2
- package/session/index.d.ts.map +1 -1
- package/session/redis-session.store.d.ts +1 -1
- package/session/redis-session.store.d.ts.map +1 -1
- package/session/session-crypto.d.ts.map +1 -1
- package/session/storage/in-memory-authorization-vault.d.ts.map +1 -1
- package/session/storage/storage-authorization-vault.d.ts +2 -2
- package/session/storage/storage-authorization-vault.d.ts.map +1 -1
- package/session/storage/storage-token-store.d.ts +2 -2
- package/session/storage/storage-token-store.d.ts.map +1 -1
- package/session/token.refresh.d.ts.map +1 -1
- package/session/utils/index.d.ts +1 -1
- package/session/utils/index.d.ts.map +1 -1
- package/session/utils/session-crypto.utils.d.ts +5 -0
- package/session/utils/session-crypto.utils.d.ts.map +1 -1
- package/ui/index.d.ts +2 -2
- package/ui/index.d.ts.map +1 -1
- package/ui/templates.d.ts +33 -0
- package/ui/templates.d.ts.map +1 -1
- package/upstream/index.d.ts +3 -0
- package/upstream/index.d.ts.map +1 -0
- package/upstream/upstream-client-registration.d.ts +50 -0
- package/upstream/upstream-client-registration.d.ts.map +1 -0
- package/vault/auth-providers.accessor.d.ts +1 -1
- package/vault/auth-providers.accessor.d.ts.map +1 -1
- package/vault/auth-providers.registry.d.ts +1 -1
- package/vault/auth-providers.registry.d.ts.map +1 -1
- package/vault/credential-cache.d.ts +1 -1
- package/vault/credential-cache.d.ts.map +1 -1
- package/vault/credential-loaders/eager-loader.d.ts +2 -2
- package/vault/credential-loaders/eager-loader.d.ts.map +1 -1
package/cimd/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cimd/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,KAAK,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAK5D,OAAO,EAEL,4BAA4B,EAC5B,qBAAqB,EACrB,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,EACvB,gBAAgB,EAEhB,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAChC,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,oBAAoB,GAC1B,MAAM,cAAc,CAAC;AAKtB,OAAO,EACL,SAAS,EACT,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cimd/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,KAAK,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAK5D,OAAO,EAEL,gBAAgB,EAChB,4BAA4B,EAC5B,qBAAqB,EACrB,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,EACvB,gBAAgB,EAEhB,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAChC,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,oBAAoB,GAC1B,MAAM,cAAc,CAAC;AAKtB,OAAO,EACL,SAAS,EACT,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,EACjB,wBAAwB,EACxB,KAAK,sBAAsB,GAC5B,MAAM,eAAe,CAAC;AAKvB,OAAO,EACL,gCAAgC,EAChC,mCAAmC,EACnC,qCAAqC,EACrC,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,GAC1B,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EAEL,iBAAiB,EAEjB,eAAe,EAEf,mBAAmB,EACnB,iBAAiB,EAEjB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,GACtB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKpD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Base class for
|
|
3
|
-
*
|
|
4
|
-
* to avoid circular dependencies.
|
|
2
|
+
* Base class for @frontmcp/auth's errors. Lives here to avoid a circular dependency on the SDK, which answers
|
|
3
|
+
* a request that fails with one under its `code`, and with its message only when it `isPublic`.
|
|
5
4
|
*/
|
|
6
5
|
export declare abstract class AuthInternalError extends Error {
|
|
7
6
|
/**
|
|
@@ -9,9 +8,9 @@ export declare abstract class AuthInternalError extends Error {
|
|
|
9
8
|
*/
|
|
10
9
|
readonly errorId: string;
|
|
11
10
|
/**
|
|
12
|
-
* Whether
|
|
11
|
+
* Whether the client sees the message: true only for an error that names a setting and nothing secret.
|
|
13
12
|
*/
|
|
14
|
-
readonly isPublic
|
|
13
|
+
readonly isPublic: boolean;
|
|
15
14
|
/**
|
|
16
15
|
* HTTP status code equivalent.
|
|
17
16
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-internal.error.d.ts","sourceRoot":"","sources":["../../src/errors/auth-internal.error.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"auth-internal.error.d.ts","sourceRoot":"","sources":["../../src/errors/auth-internal.error.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,8BAAsB,iBAAkB,SAAQ,KAAK;IACnD;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAS;IAEnC;;OAEG;IACH,QAAQ,CAAC,UAAU,OAAO;IAE1B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,SAAS,aAAa,OAAO,EAAE,MAAM,EAAE,IAAI,SAAwB;IAQnE;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAK1B;;OAEG;IACH,kBAAkB,IAAI,MAAM;CAG7B"}
|
|
@@ -60,6 +60,12 @@ export declare class JwtSecretRequiredError extends AuthInternalError {
|
|
|
60
60
|
export declare class JwtSecretWeakError extends AuthInternalError {
|
|
61
61
|
constructor(byteLength: number);
|
|
62
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Thrown at startup when the configured `signKey` or `jwks` can't sign or be published.
|
|
65
|
+
*/
|
|
66
|
+
export declare class SigningKeyInvalidError extends AuthInternalError {
|
|
67
|
+
constructor(message: string);
|
|
68
|
+
}
|
|
63
69
|
/**
|
|
64
70
|
* Thrown when a credential provider is already registered.
|
|
65
71
|
*/
|
|
@@ -68,8 +74,10 @@ export declare class CredentialProviderAlreadyRegisteredError extends AuthIntern
|
|
|
68
74
|
}
|
|
69
75
|
/**
|
|
70
76
|
* Thrown when a tool reads an auth provider's credential on a server that registers no auth providers.
|
|
77
|
+
* Public: the client sees the message, which names the provider and the setting to add.
|
|
71
78
|
*/
|
|
72
79
|
export declare class AuthProvidersNotConfiguredError extends AuthInternalError {
|
|
80
|
+
readonly isPublic = true;
|
|
73
81
|
constructor(providerName?: string);
|
|
74
82
|
}
|
|
75
83
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-internal.errors.d.ts","sourceRoot":"","sources":["../../src/errors/auth-internal.errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;GAEG;AACH,qBAAa,4BAA6B,SAAQ,iBAAiB;;CAIlE;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,iBAAiB;IACnD,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC;gBAEnB,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,KAAK;CAInD;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,iBAAiB;gBAC3C,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;CAG3C;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,iBAAiB;gBAC/C,OAAO,EAAE,MAAM;CAG5B;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,iBAAiB;gBAChD,OAAO,EAAE,MAAM;CAG5B;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,iBAAiB;gBAC1C,OAAO,EAAE,MAAM;CAG5B;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,iBAAiB;gBAC/C,MAAM,EAAE,MAAM;CAG3B;AAED;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,iBAAiB;gBACnD,SAAS,EAAE,MAAM;CAG9B;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,iBAAiB;gBAC/C,IAAI,EAAE,MAAM;CAQzB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,iBAAiB;gBAC3C,UAAU,EAAE,MAAM;CAQ/B;AAED;;GAEG;AACH,qBAAa,wCAAyC,SAAQ,iBAAiB;gBACjE,IAAI,EAAE,MAAM;CAGzB;AAED
|
|
1
|
+
{"version":3,"file":"auth-internal.errors.d.ts","sourceRoot":"","sources":["../../src/errors/auth-internal.errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;GAEG;AACH,qBAAa,4BAA6B,SAAQ,iBAAiB;;CAIlE;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,iBAAiB;IACnD,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC;gBAEnB,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,KAAK;CAInD;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,iBAAiB;gBAC3C,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;CAG3C;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,iBAAiB;gBAC/C,OAAO,EAAE,MAAM;CAG5B;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,iBAAiB;gBAChD,OAAO,EAAE,MAAM;CAG5B;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,iBAAiB;gBAC1C,OAAO,EAAE,MAAM;CAG5B;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,iBAAiB;gBAC/C,MAAM,EAAE,MAAM;CAG3B;AAED;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,iBAAiB;gBACnD,SAAS,EAAE,MAAM;CAG9B;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,iBAAiB;gBAC/C,IAAI,EAAE,MAAM;CAQzB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,iBAAiB;gBAC3C,UAAU,EAAE,MAAM;CAQ/B;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,iBAAiB;gBAC/C,OAAO,EAAE,MAAM;CAG5B;AAED;;GAEG;AACH,qBAAa,wCAAyC,SAAQ,iBAAiB;gBACjE,IAAI,EAAE,MAAM;CAGzB;AAED;;;GAGG;AACH,qBAAa,+BAAgC,SAAQ,iBAAiB;IACpE,SAAkB,QAAQ,QAAQ;gBAEtB,YAAY,CAAC,EAAE,MAAM;CASlC;AAED;;GAEG;AACH,qBAAa,iCAAkC,SAAQ,iBAAiB;;CAIvE;AAED;;GAEG;AACH,qBAAa,+BAAgC,SAAQ,iBAAiB;;CAIrE;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,iBAAiB;gBAC5C,SAAS,EAAE,MAAM;CAG9B;AAED;;GAEG;AACH,qBAAa,8BAA+B,SAAQ,iBAAiB;;CAIpE;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,iBAAiB;gBACzC,UAAU,EAAE,MAAM;CAG/B;AAED;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,iBAAiB;gBACnD,SAAS,EAAE,MAAM;CAG9B;AAED;;GAEG;AACH,qBAAa,iCAAkC,SAAQ,iBAAiB;;CAIvE;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,iBAAiB;gBAC/C,OAAO,EAAE,MAAM;CAG5B;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,iBAAiB;gBAC9C,OAAO,EAAE,MAAM;CAG5B;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,iBAAiB;gBAC/C,OAAO,EAAE,MAAM;CAG5B;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,iBAAiB;gBACtC,OAAO,EAAE,MAAM,EAAE,IAAI,SAAoB;CAGtD"}
|
package/errors/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { AuthInternalError } from './auth-internal.error';
|
|
2
|
-
export { EncryptionContextNotSetError, VaultLoadError, VaultNotFoundError, TokenNotAvailableError, TokenStoreRequiredError, NoProviderIdError, TokenLeakDetectedError, JwtSecretRequiredError, JwtSecretWeakError, SessionSecretRequiredError, CredentialProviderAlreadyRegisteredError, AuthProvidersNotConfiguredError, OrchestratedAuthNotAvailableError, EncryptionKeyNotConfiguredError, SessionIdEmptyError, ElicitationSecretRequiredError, ScopeDeniedError, InMemoryStoreRequiredError, OrchestratorJwksNotAvailableError, SecureStoreConfigError, AuthInvalidInputError, CredentialStorageError, AuthFlowError, } from './auth-internal.errors';
|
|
2
|
+
export { EncryptionContextNotSetError, VaultLoadError, VaultNotFoundError, TokenNotAvailableError, TokenStoreRequiredError, NoProviderIdError, TokenLeakDetectedError, JwtSecretRequiredError, JwtSecretWeakError, SigningKeyInvalidError, SessionSecretRequiredError, CredentialProviderAlreadyRegisteredError, AuthProvidersNotConfiguredError, OrchestratedAuthNotAvailableError, EncryptionKeyNotConfiguredError, SessionIdEmptyError, ElicitationSecretRequiredError, ScopeDeniedError, InMemoryStoreRequiredError, OrchestratorJwksNotAvailableError, SecureStoreConfigError, AuthInvalidInputError, CredentialStorageError, AuthFlowError, } from './auth-internal.errors';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
package/errors/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EACL,4BAA4B,EAC5B,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,0BAA0B,EAC1B,wCAAwC,EACxC,+BAA+B,EAC/B,iCAAiC,EACjC,+BAA+B,EAC/B,mBAAmB,EACnB,8BAA8B,EAC9B,gBAAgB,EAChB,0BAA0B,EAC1B,iCAAiC,EACjC,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,GACd,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EACL,4BAA4B,EAC5B,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,wCAAwC,EACxC,+BAA+B,EAC/B,iCAAiC,EACjC,+BAA+B,EAC/B,mBAAmB,EACnB,8BAA8B,EAC9B,gBAAgB,EAChB,0BAA0B,EAC1B,iCAAiC,EACjC,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,GACd,MAAM,wBAAwB,CAAC"}
|