@sphereon/oid4vci-client 0.10.4-unstable.98 → 0.12.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 (87) hide show
  1. package/README.md +7 -7
  2. package/dist/AccessTokenClient.d.ts.map +1 -1
  3. package/dist/AccessTokenClient.js +5 -6
  4. package/dist/AccessTokenClient.js.map +1 -1
  5. package/dist/AccessTokenClientV1_0_11.d.ts.map +1 -1
  6. package/dist/AccessTokenClientV1_0_11.js +3 -5
  7. package/dist/AccessTokenClientV1_0_11.js.map +1 -1
  8. package/dist/AuthorizationCodeClient.d.ts +4 -1
  9. package/dist/AuthorizationCodeClient.d.ts.map +1 -1
  10. package/dist/AuthorizationCodeClient.js +47 -8
  11. package/dist/AuthorizationCodeClient.js.map +1 -1
  12. package/dist/AuthorizationCodeClientV1_0_11.d.ts.map +1 -1
  13. package/dist/AuthorizationCodeClientV1_0_11.js +5 -3
  14. package/dist/AuthorizationCodeClientV1_0_11.js.map +1 -1
  15. package/dist/CredentialOfferClient.d.ts.map +1 -1
  16. package/dist/CredentialOfferClient.js +26 -12
  17. package/dist/CredentialOfferClient.js.map +1 -1
  18. package/dist/CredentialOfferClientV1_0_11.js +6 -7
  19. package/dist/CredentialOfferClientV1_0_11.js.map +1 -1
  20. package/dist/CredentialOfferClientV1_0_13.d.ts +10 -0
  21. package/dist/CredentialOfferClientV1_0_13.d.ts.map +1 -0
  22. package/dist/CredentialOfferClientV1_0_13.js +94 -0
  23. package/dist/CredentialOfferClientV1_0_13.js.map +1 -0
  24. package/dist/CredentialRequestClient.js +1 -1
  25. package/dist/CredentialRequestClient.js.map +1 -1
  26. package/dist/CredentialRequestClientBuilderV1_0_11.d.ts +3 -1
  27. package/dist/CredentialRequestClientBuilderV1_0_11.d.ts.map +1 -1
  28. package/dist/CredentialRequestClientBuilderV1_0_11.js +4 -0
  29. package/dist/CredentialRequestClientBuilderV1_0_11.js.map +1 -1
  30. package/dist/CredentialRequestClientV1_0_11.d.ts +9 -3
  31. package/dist/CredentialRequestClientV1_0_11.d.ts.map +1 -1
  32. package/dist/CredentialRequestClientV1_0_11.js +2 -1
  33. package/dist/CredentialRequestClientV1_0_11.js.map +1 -1
  34. package/dist/MetadataClient.d.ts +5 -5
  35. package/dist/MetadataClient.d.ts.map +1 -1
  36. package/dist/MetadataClient.js +30 -13
  37. package/dist/MetadataClient.js.map +1 -1
  38. package/dist/MetadataClientV1_0_13.d.ts +31 -0
  39. package/dist/MetadataClientV1_0_13.d.ts.map +1 -0
  40. package/dist/MetadataClientV1_0_13.js +181 -0
  41. package/dist/MetadataClientV1_0_13.js.map +1 -0
  42. package/dist/OpenID4VCIClient.d.ts +13 -24
  43. package/dist/OpenID4VCIClient.d.ts.map +1 -1
  44. package/dist/OpenID4VCIClient.js +126 -103
  45. package/dist/OpenID4VCIClient.js.map +1 -1
  46. package/dist/OpenID4VCIClientV1_0_11.d.ts +3 -2
  47. package/dist/OpenID4VCIClientV1_0_11.d.ts.map +1 -1
  48. package/dist/OpenID4VCIClientV1_0_11.js +5 -18
  49. package/dist/OpenID4VCIClientV1_0_11.js.map +1 -1
  50. package/dist/OpenID4VCIClientV1_0_13.d.ts +112 -0
  51. package/dist/OpenID4VCIClientV1_0_13.d.ts.map +1 -0
  52. package/dist/OpenID4VCIClientV1_0_13.js +478 -0
  53. package/dist/OpenID4VCIClientV1_0_13.js.map +1 -0
  54. package/dist/ProofOfPossessionBuilder.d.ts +14 -3
  55. package/dist/ProofOfPossessionBuilder.d.ts.map +1 -1
  56. package/dist/ProofOfPossessionBuilder.js +20 -20
  57. package/dist/ProofOfPossessionBuilder.js.map +1 -1
  58. package/dist/index.d.ts +5 -0
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +6 -0
  61. package/dist/index.js.map +1 -1
  62. package/lib/AccessTokenClient.ts +5 -11
  63. package/lib/AccessTokenClientV1_0_11.ts +3 -9
  64. package/lib/AuthorizationCodeClient.ts +47 -8
  65. package/lib/AuthorizationCodeClientV1_0_11.ts +8 -6
  66. package/lib/CredentialOfferClient.ts +31 -9
  67. package/lib/CredentialOfferClientV1_0_11.ts +6 -6
  68. package/lib/CredentialOfferClientV1_0_13.ts +103 -0
  69. package/lib/CredentialRequestClient.ts +1 -1
  70. package/lib/CredentialRequestClientBuilderV1_0_11.ts +7 -0
  71. package/lib/CredentialRequestClientV1_0_11.ts +9 -4
  72. package/lib/MetadataClient.ts +49 -14
  73. package/lib/MetadataClientV1_0_13.ts +188 -0
  74. package/lib/OpenID4VCIClient.ts +131 -115
  75. package/lib/OpenID4VCIClientV1_0_11.ts +9 -19
  76. package/lib/OpenID4VCIClientV1_0_13.ts +677 -0
  77. package/lib/ProofOfPossessionBuilder.ts +40 -9
  78. package/lib/__tests__/CredentialRequestClientV1_0_11.spec.ts +2 -2
  79. package/lib/__tests__/MetadataClient.spec.ts +3 -4
  80. package/lib/__tests__/MetadataMocks.ts +1 -0
  81. package/lib/__tests__/OpenID4VCIClient.spec.ts +42 -9
  82. package/lib/__tests__/OpenID4VCIClientV1_0_11.spec.ts +24 -0
  83. package/lib/__tests__/OpenID4VCIClientV1_0_13.spec.ts +204 -0
  84. package/lib/__tests__/SdJwt.spec.ts +2 -2
  85. package/lib/__tests__/SphereonE2E.spec.test.ts +4 -3
  86. package/lib/index.ts +8 -0
  87. package/package.json +4 -4
@@ -0,0 +1,112 @@
1
+ import { AccessTokenResponse, Alg, AuthorizationRequestOpts, AuthorizationResponse, AuthzFlowType, CredentialConfigurationSupportedV1_0_13, CredentialOfferRequestWithBaseUrl, CredentialResponse, EndpointMetadataResultV1_0_13, JWK, NotificationRequest, NotificationResult, OID4VCICredentialFormat, OpenId4VCIVersion, PKCEOpts, ProofOfPossessionCallbacks } from '@sphereon/oid4vci-common';
2
+ import { CredentialFormat } from '@sphereon/ssi-types';
3
+ import { CredentialRequestOpts } from './CredentialRequestClient';
4
+ export interface OpenID4VCIClientStateV1_0_13 {
5
+ credentialIssuer: string;
6
+ credentialOffer?: CredentialOfferRequestWithBaseUrl;
7
+ clientId?: string;
8
+ kid?: string;
9
+ jwk?: JWK;
10
+ alg?: Alg | string;
11
+ endpointMetadata?: EndpointMetadataResultV1_0_13;
12
+ accessTokenResponse?: AccessTokenResponse;
13
+ authorizationRequestOpts?: AuthorizationRequestOpts;
14
+ authorizationCodeResponse?: AuthorizationResponse;
15
+ pkce: PKCEOpts;
16
+ accessToken?: string;
17
+ authorizationURL?: string;
18
+ }
19
+ export declare class OpenID4VCIClientV1_0_13 {
20
+ private readonly _state;
21
+ private constructor();
22
+ static fromCredentialIssuer({ kid, alg, retrieveServerMetadata, clientId, credentialIssuer, pkce, authorizationRequest, createAuthorizationRequestURL, }: {
23
+ credentialIssuer: string;
24
+ kid?: string;
25
+ alg?: Alg | string;
26
+ retrieveServerMetadata?: boolean;
27
+ clientId?: string;
28
+ createAuthorizationRequestURL?: boolean;
29
+ authorizationRequest?: AuthorizationRequestOpts;
30
+ pkce?: PKCEOpts;
31
+ }): Promise<OpenID4VCIClientV1_0_13>;
32
+ static fromState({ state }: {
33
+ state: OpenID4VCIClientStateV1_0_13 | string;
34
+ }): Promise<OpenID4VCIClientV1_0_13>;
35
+ static fromURI({ uri, kid, alg, retrieveServerMetadata, clientId, pkce, createAuthorizationRequestURL, authorizationRequest, resolveOfferUri, }: {
36
+ uri: string;
37
+ kid?: string;
38
+ alg?: Alg | string;
39
+ retrieveServerMetadata?: boolean;
40
+ createAuthorizationRequestURL?: boolean;
41
+ resolveOfferUri?: boolean;
42
+ pkce?: PKCEOpts;
43
+ clientId?: string;
44
+ authorizationRequest?: AuthorizationRequestOpts;
45
+ }): Promise<OpenID4VCIClientV1_0_13>;
46
+ /**
47
+ * Allows you to create an Authorization Request URL when using an Authorization Code flow. This URL needs to be accessed using the front channel (browser)
48
+ *
49
+ * The Identity provider would present a login screen typically; after you authenticated, it would redirect to the provided redirectUri; which can be same device or cross-device
50
+ * @param opts
51
+ */
52
+ createAuthorizationRequestUrl(opts?: {
53
+ authorizationRequest?: AuthorizationRequestOpts;
54
+ pkce?: PKCEOpts;
55
+ }): Promise<string>;
56
+ retrieveServerMetadata(): Promise<EndpointMetadataResultV1_0_13>;
57
+ private calculatePKCEOpts;
58
+ acquireAccessToken(opts?: {
59
+ pin?: string;
60
+ clientId?: string;
61
+ codeVerifier?: string;
62
+ authorizationResponse?: string | AuthorizationResponse;
63
+ code?: string;
64
+ redirectUri?: string;
65
+ }): Promise<AccessTokenResponse>;
66
+ acquireCredentials({ credentialIdentifier, credentialTypes, context, proofCallbacks, format, kid, jwk, alg, jti, deferredCredentialAwait, deferredCredentialIntervalInMS, }: {
67
+ credentialIdentifier?: string;
68
+ credentialTypes?: string | string[];
69
+ context?: string[];
70
+ proofCallbacks: ProofOfPossessionCallbacks<any>;
71
+ format?: CredentialFormat | OID4VCICredentialFormat;
72
+ kid?: string;
73
+ jwk?: JWK;
74
+ alg?: Alg | string;
75
+ jti?: string;
76
+ deferredCredentialAwait?: boolean;
77
+ deferredCredentialIntervalInMS?: number;
78
+ experimentalHolderIssuanceSupported?: boolean;
79
+ }): Promise<CredentialResponse & {
80
+ access_token: string;
81
+ }>;
82
+ exportState(): Promise<string>;
83
+ getCredentialsSupported(format?: (OID4VCICredentialFormat | string) | (OID4VCICredentialFormat | string)[]): Record<string, CredentialConfigurationSupportedV1_0_13>;
84
+ sendNotification(credentialRequestOpts: Partial<CredentialRequestOpts>, request: NotificationRequest, accessToken?: string): Promise<NotificationResult>;
85
+ issuerSupportedFlowTypes(): AuthzFlowType[];
86
+ isFlowTypeSupported(flowType: AuthzFlowType): boolean;
87
+ hasAuthorizationURL(): boolean;
88
+ get authorizationURL(): string | undefined;
89
+ get credentialOffer(): CredentialOfferRequestWithBaseUrl | undefined;
90
+ version(): OpenId4VCIVersion;
91
+ get endpointMetadata(): EndpointMetadataResultV1_0_13;
92
+ get kid(): string;
93
+ get alg(): string;
94
+ set clientId(value: string | undefined);
95
+ get clientId(): string | undefined;
96
+ hasAccessTokenResponse(): boolean;
97
+ get accessTokenResponse(): AccessTokenResponse;
98
+ getIssuer(): string;
99
+ getAccessTokenEndpoint(): string;
100
+ getCredentialEndpoint(): string;
101
+ hasDeferredCredentialEndpoint(): boolean;
102
+ getDeferredCredentialEndpoint(): string;
103
+ /**
104
+ * Too bad we need a method like this, but EBSI is not exposing metadata
105
+ */
106
+ isEBSI(): boolean;
107
+ private assertIssuerData;
108
+ private assertServerMetadata;
109
+ private assertAccessToken;
110
+ private syncAuthorizationRequestOpts;
111
+ }
112
+ //# sourceMappingURL=OpenID4VCIClientV1_0_13.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenID4VCIClientV1_0_13.d.ts","sourceRoot":"","sources":["../lib/OpenID4VCIClientV1_0_13.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,478 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.OpenID4VCIClientV1_0_13 = void 0;
16
+ const oid4vci_common_1 = require("@sphereon/oid4vci-common");
17
+ const debug_1 = __importDefault(require("debug"));
18
+ const AccessTokenClient_1 = require("./AccessTokenClient");
19
+ const AuthorizationCodeClient_1 = require("./AuthorizationCodeClient");
20
+ const CredentialOfferClient_1 = require("./CredentialOfferClient");
21
+ const CredentialRequestClientBuilder_1 = require("./CredentialRequestClientBuilder");
22
+ const MetadataClientV1_0_13_1 = require("./MetadataClientV1_0_13");
23
+ const ProofOfPossessionBuilder_1 = require("./ProofOfPossessionBuilder");
24
+ const functions_1 = require("./functions");
25
+ const functions_2 = require("./functions");
26
+ const debug = (0, debug_1.default)('sphereon:oid4vci');
27
+ class OpenID4VCIClientV1_0_13 {
28
+ constructor({ credentialOffer, clientId, kid, alg, credentialIssuer, pkce, authorizationRequest, accessToken, jwk, endpointMetadata, accessTokenResponse, authorizationRequestOpts, authorizationCodeResponse, authorizationURL, }) {
29
+ var _a;
30
+ const issuer = credentialIssuer !== null && credentialIssuer !== void 0 ? credentialIssuer : (credentialOffer ? (0, oid4vci_common_1.getIssuerFromCredentialOfferPayload)(credentialOffer.credential_offer) : undefined);
31
+ if (!issuer) {
32
+ throw Error('No credential issuer supplied or deduced from offer');
33
+ }
34
+ this._state = {
35
+ credentialOffer,
36
+ credentialIssuer: issuer,
37
+ kid,
38
+ alg,
39
+ // TODO: We need to refactor this and always explicitly call createAuthorizationRequestUrl, so we can have a credential selection first and use the kid as a default for the client id
40
+ clientId: (_a = clientId !== null && clientId !== void 0 ? clientId : (credentialOffer && (0, oid4vci_common_1.getClientIdFromCredentialOfferPayload)(credentialOffer.credential_offer))) !== null && _a !== void 0 ? _a : kid === null || kid === void 0 ? void 0 : kid.split('#')[0],
41
+ pkce: Object.assign({ disabled: false, codeChallengeMethod: oid4vci_common_1.CodeChallengeMethod.S256 }, pkce),
42
+ authorizationRequestOpts,
43
+ authorizationCodeResponse,
44
+ accessToken,
45
+ jwk,
46
+ endpointMetadata,
47
+ accessTokenResponse,
48
+ authorizationURL,
49
+ };
50
+ // Running syncAuthorizationRequestOpts later as it is using the state
51
+ if (!this._state.authorizationRequestOpts) {
52
+ this._state.authorizationRequestOpts = this.syncAuthorizationRequestOpts(authorizationRequest);
53
+ }
54
+ debug(`Authorization req options: ${JSON.stringify(this._state.authorizationRequestOpts, null, 2)}`);
55
+ }
56
+ static fromCredentialIssuer({ kid, alg, retrieveServerMetadata, clientId, credentialIssuer, pkce, authorizationRequest, createAuthorizationRequestURL, }) {
57
+ return __awaiter(this, void 0, void 0, function* () {
58
+ const client = new OpenID4VCIClientV1_0_13({
59
+ kid,
60
+ alg,
61
+ clientId: clientId !== null && clientId !== void 0 ? clientId : authorizationRequest === null || authorizationRequest === void 0 ? void 0 : authorizationRequest.clientId,
62
+ credentialIssuer,
63
+ pkce,
64
+ authorizationRequest,
65
+ });
66
+ if (retrieveServerMetadata === undefined || retrieveServerMetadata) {
67
+ yield client.retrieveServerMetadata();
68
+ }
69
+ if (createAuthorizationRequestURL === undefined || createAuthorizationRequestURL) {
70
+ yield client.createAuthorizationRequestUrl({ authorizationRequest, pkce });
71
+ }
72
+ return client;
73
+ });
74
+ }
75
+ static fromState({ state }) {
76
+ return __awaiter(this, void 0, void 0, function* () {
77
+ const clientState = typeof state === 'string' ? JSON.parse(state) : state;
78
+ return new OpenID4VCIClientV1_0_13(clientState);
79
+ });
80
+ }
81
+ static fromURI({ uri, kid, alg, retrieveServerMetadata, clientId, pkce, createAuthorizationRequestURL, authorizationRequest, resolveOfferUri, }) {
82
+ var _a;
83
+ return __awaiter(this, void 0, void 0, function* () {
84
+ const credentialOfferClient = yield CredentialOfferClient_1.CredentialOfferClient.fromURI(uri, { resolve: resolveOfferUri });
85
+ const client = new OpenID4VCIClientV1_0_13({
86
+ credentialOffer: credentialOfferClient,
87
+ kid,
88
+ alg,
89
+ clientId: (_a = clientId !== null && clientId !== void 0 ? clientId : authorizationRequest === null || authorizationRequest === void 0 ? void 0 : authorizationRequest.clientId) !== null && _a !== void 0 ? _a : credentialOfferClient.clientId,
90
+ pkce,
91
+ authorizationRequest,
92
+ });
93
+ if (retrieveServerMetadata === undefined || retrieveServerMetadata) {
94
+ yield client.retrieveServerMetadata();
95
+ }
96
+ if (credentialOfferClient.supportedFlows.includes(oid4vci_common_1.AuthzFlowType.AUTHORIZATION_CODE_FLOW) &&
97
+ (createAuthorizationRequestURL === undefined || createAuthorizationRequestURL)) {
98
+ yield client.createAuthorizationRequestUrl({ authorizationRequest, pkce });
99
+ debug(`Authorization Request URL: ${client._state.authorizationURL}`);
100
+ }
101
+ return client;
102
+ });
103
+ }
104
+ /**
105
+ * Allows you to create an Authorization Request URL when using an Authorization Code flow. This URL needs to be accessed using the front channel (browser)
106
+ *
107
+ * The Identity provider would present a login screen typically; after you authenticated, it would redirect to the provided redirectUri; which can be same device or cross-device
108
+ * @param opts
109
+ */
110
+ createAuthorizationRequestUrl(opts) {
111
+ var _a;
112
+ return __awaiter(this, void 0, void 0, function* () {
113
+ if (!this._state.authorizationURL) {
114
+ this.calculatePKCEOpts(opts === null || opts === void 0 ? void 0 : opts.pkce);
115
+ this._state.authorizationRequestOpts = this.syncAuthorizationRequestOpts(opts === null || opts === void 0 ? void 0 : opts.authorizationRequest);
116
+ if (!this._state.authorizationRequestOpts) {
117
+ throw Error(`No Authorization Request options present or provided in this call`);
118
+ }
119
+ // todo: Probably can go with current logic in MetadataClientV1_0_13 who will always set the authorization_endpoint when found
120
+ // handling this because of the support for v1_0-08
121
+ if (((_a = this._state.endpointMetadata) === null || _a === void 0 ? void 0 : _a.credentialIssuerMetadata) &&
122
+ 'authorization_endpoint' in this._state.endpointMetadata.credentialIssuerMetadata) {
123
+ this._state.endpointMetadata.authorization_endpoint = this._state.endpointMetadata.credentialIssuerMetadata.authorization_endpoint;
124
+ }
125
+ this._state.authorizationURL = yield (0, AuthorizationCodeClient_1.createAuthorizationRequestUrl)({
126
+ pkce: this._state.pkce,
127
+ endpointMetadata: this.endpointMetadata,
128
+ authorizationRequest: this._state.authorizationRequestOpts,
129
+ credentialOffer: this.credentialOffer,
130
+ credentialConfigurationSupported: this.getCredentialsSupported(),
131
+ version: this.version(),
132
+ });
133
+ }
134
+ return this._state.authorizationURL;
135
+ });
136
+ }
137
+ retrieveServerMetadata() {
138
+ return __awaiter(this, void 0, void 0, function* () {
139
+ this.assertIssuerData();
140
+ if (!this._state.endpointMetadata) {
141
+ if (this.credentialOffer) {
142
+ this._state.endpointMetadata = yield MetadataClientV1_0_13_1.MetadataClientV1_0_13.retrieveAllMetadataFromCredentialOffer(this.credentialOffer);
143
+ }
144
+ else if (this._state.credentialIssuer) {
145
+ this._state.endpointMetadata = yield MetadataClientV1_0_13_1.MetadataClientV1_0_13.retrieveAllMetadata(this._state.credentialIssuer);
146
+ }
147
+ else {
148
+ throw Error(`Cannot retrieve issuer metadata without either a credential offer, or issuer value`);
149
+ }
150
+ }
151
+ return this.endpointMetadata;
152
+ });
153
+ }
154
+ calculatePKCEOpts(pkce) {
155
+ this._state.pkce = (0, functions_1.generateMissingPKCEOpts)(Object.assign(Object.assign({}, this._state.pkce), pkce));
156
+ }
157
+ acquireAccessToken(opts) {
158
+ var _a, _b, _c, _d, _e, _f;
159
+ return __awaiter(this, void 0, void 0, function* () {
160
+ const { pin, clientId } = opts !== null && opts !== void 0 ? opts : {};
161
+ let { redirectUri } = opts !== null && opts !== void 0 ? opts : {};
162
+ if (opts === null || opts === void 0 ? void 0 : opts.authorizationResponse) {
163
+ this._state.authorizationCodeResponse = Object.assign({}, (0, oid4vci_common_1.toAuthorizationResponsePayload)(opts.authorizationResponse));
164
+ }
165
+ else if (opts === null || opts === void 0 ? void 0 : opts.code) {
166
+ this._state.authorizationCodeResponse = { code: opts.code };
167
+ }
168
+ const code = (_a = this._state.authorizationCodeResponse) === null || _a === void 0 ? void 0 : _a.code;
169
+ if (opts === null || opts === void 0 ? void 0 : opts.codeVerifier) {
170
+ this._state.pkce.codeVerifier = opts.codeVerifier;
171
+ }
172
+ this.assertIssuerData();
173
+ if (clientId) {
174
+ this._state.clientId = clientId;
175
+ }
176
+ if (!this._state.accessTokenResponse) {
177
+ const accessTokenClient = new AccessTokenClient_1.AccessTokenClient();
178
+ if (redirectUri && redirectUri !== ((_b = this._state.authorizationRequestOpts) === null || _b === void 0 ? void 0 : _b.redirectUri)) {
179
+ console.log(`Redirect URI mismatch between access-token (${redirectUri}) and authorization request (${(_c = this._state.authorizationRequestOpts) === null || _c === void 0 ? void 0 : _c.redirectUri}). According to the specification that is not allowed.`);
180
+ }
181
+ if (((_d = this._state.authorizationRequestOpts) === null || _d === void 0 ? void 0 : _d.redirectUri) && !redirectUri) {
182
+ redirectUri = this._state.authorizationRequestOpts.redirectUri;
183
+ }
184
+ const response = yield accessTokenClient.acquireAccessToken(Object.assign(Object.assign({ credentialOffer: this.credentialOffer, metadata: this.endpointMetadata, credentialIssuer: this.getIssuer(), pin }, (!this._state.pkce.disabled && { codeVerifier: this._state.pkce.codeVerifier })), { code,
185
+ redirectUri, asOpts: { clientId: this.clientId } }));
186
+ if (response.errorBody) {
187
+ debug(`Access token error:\r\n${JSON.stringify(response.errorBody)}`);
188
+ throw Error(`Retrieving an access token from ${(_e = this._state.endpointMetadata) === null || _e === void 0 ? void 0 : _e.token_endpoint} for issuer ${this.getIssuer()} failed with status: ${response.origResponse.status}`);
189
+ }
190
+ else if (!response.successBody) {
191
+ debug(`Access token error. No success body`);
192
+ throw Error(`Retrieving an access token from ${(_f = this._state.endpointMetadata) === null || _f === void 0 ? void 0 : _f.token_endpoint} for issuer ${this.getIssuer()} failed as there was no success response body`);
193
+ }
194
+ this._state.accessTokenResponse = response.successBody;
195
+ this._state.accessToken = response.successBody.access_token;
196
+ }
197
+ return this.accessTokenResponse;
198
+ });
199
+ }
200
+ acquireCredentials({ credentialIdentifier, credentialTypes, context, proofCallbacks, format, kid, jwk, alg, jti, deferredCredentialAwait, deferredCredentialIntervalInMS, }) {
201
+ var _a, _b, _c;
202
+ return __awaiter(this, void 0, void 0, function* () {
203
+ if ([jwk, kid].filter((v) => v !== undefined).length > 1) {
204
+ throw new Error(oid4vci_common_1.KID_JWK_X5C_ERROR + `. jwk: ${jwk !== undefined}, kid: ${kid !== undefined}`);
205
+ }
206
+ if (alg)
207
+ this._state.alg = alg;
208
+ if (jwk)
209
+ this._state.jwk = jwk;
210
+ if (kid)
211
+ this._state.kid = kid;
212
+ const requestBuilder = this.credentialOffer
213
+ ? CredentialRequestClientBuilder_1.CredentialRequestClientBuilder.fromCredentialOffer({
214
+ credentialOffer: this.credentialOffer,
215
+ metadata: this.endpointMetadata,
216
+ })
217
+ : CredentialRequestClientBuilder_1.CredentialRequestClientBuilder.fromCredentialIssuer({
218
+ credentialIssuer: this.getIssuer(),
219
+ credentialIdentifier: credentialIdentifier,
220
+ metadata: this.endpointMetadata,
221
+ version: this.version(),
222
+ });
223
+ requestBuilder.withTokenFromResponse(this.accessTokenResponse);
224
+ requestBuilder.withDeferredCredentialAwait(deferredCredentialAwait !== null && deferredCredentialAwait !== void 0 ? deferredCredentialAwait : false, deferredCredentialIntervalInMS);
225
+ let subjectIssuance;
226
+ if ((_a = this.endpointMetadata) === null || _a === void 0 ? void 0 : _a.credentialIssuerMetadata) {
227
+ const metadata = this.endpointMetadata.credentialIssuerMetadata;
228
+ const types = credentialTypes ? (Array.isArray(credentialTypes) ? credentialTypes : [credentialTypes]) : undefined;
229
+ if (credentialIdentifier) {
230
+ if (typeof metadata.credential_configurations_supported !== 'object') {
231
+ throw Error(`Credentials_supported should be an object, current ${typeof metadata.credential_configurations_supported} when credential_identifier is used`);
232
+ }
233
+ const credentialsSupported = metadata.credential_configurations_supported;
234
+ if (!metadata.credential_configurations_supported || !credentialsSupported[credentialIdentifier]) {
235
+ throw new Error(`Credential type ${credentialIdentifier} is not supported by issuer ${this.getIssuer()}`);
236
+ }
237
+ }
238
+ else if (!types) {
239
+ throw Error(`If no credential_identifier is used, we expect types`);
240
+ }
241
+ else if (metadata.credentials_supported && Array.isArray(metadata.credentials_supported)) {
242
+ let typeSupported = false;
243
+ metadata.credentials_supported.forEach((supportedCredential) => {
244
+ const subTypes = (0, oid4vci_common_1.getTypesFromCredentialSupported)(supportedCredential);
245
+ if (subTypes.every((t, i) => types[i] === t) ||
246
+ (types.length === 1 && (types[0] === supportedCredential.id || subTypes.includes(types[0])))) {
247
+ typeSupported = true;
248
+ if (supportedCredential.credential_subject_issuance) {
249
+ subjectIssuance = { credential_subject_issuance: supportedCredential.credential_subject_issuance };
250
+ }
251
+ }
252
+ });
253
+ if (!typeSupported) {
254
+ console.log(`Not all credential types ${JSON.stringify(credentialTypes)} are present in metadata for ${this.getIssuer()}`);
255
+ // throw Error(`Not all credential types ${JSON.stringify(credentialTypes)} are supported by issuer ${this.getIssuer()}`);
256
+ }
257
+ }
258
+ else if (metadata.credential_configurations_supported && !Array.isArray(metadata.credential_configurations_supported)) {
259
+ const credentialsSupported = metadata.credential_configurations_supported;
260
+ if (types.some((type) => !metadata.credential_configurations_supported || !credentialsSupported[type])) {
261
+ throw Error(`Not all credential types ${JSON.stringify(credentialTypes)} are supported by issuer ${this.getIssuer()}`);
262
+ }
263
+ }
264
+ // todo: Format check? We might end up with some disjoint type / format combinations supported by the server
265
+ }
266
+ if (subjectIssuance) {
267
+ requestBuilder.withSubjectIssuance(subjectIssuance);
268
+ }
269
+ const credentialRequestClient = requestBuilder.build();
270
+ const proofBuilder = ProofOfPossessionBuilder_1.ProofOfPossessionBuilder.fromAccessTokenResponse({
271
+ accessTokenResponse: this.accessTokenResponse,
272
+ callbacks: proofCallbacks,
273
+ version: this.version(),
274
+ })
275
+ .withIssuer(this.getIssuer())
276
+ .withAlg(this.alg);
277
+ if (this._state.jwk) {
278
+ proofBuilder.withJWK(this._state.jwk);
279
+ }
280
+ if (this._state.kid) {
281
+ proofBuilder.withKid(this._state.kid);
282
+ }
283
+ if (this.clientId) {
284
+ proofBuilder.withClientId(this.clientId);
285
+ }
286
+ if (jti) {
287
+ proofBuilder.withJti(jti);
288
+ }
289
+ const response = yield credentialRequestClient.acquireCredentialsUsingProof(Object.assign({ proofInput: proofBuilder }, (credentialIdentifier ? { credentialIdentifier, subjectIssuance } : { format, context, credentialTypes, subjectIssuance })));
290
+ if (response.errorBody) {
291
+ debug(`Credential request error:\r\n${JSON.stringify(response.errorBody)}`);
292
+ throw Error(`Retrieving a credential from ${(_b = this._state.endpointMetadata) === null || _b === void 0 ? void 0 : _b.credential_endpoint} for issuer ${this.getIssuer()} failed with status: ${response.origResponse.status}`);
293
+ }
294
+ else if (!response.successBody) {
295
+ debug(`Credential request error. No success body`);
296
+ throw Error(`Retrieving a credential from ${(_c = this._state.endpointMetadata) === null || _c === void 0 ? void 0 : _c.credential_endpoint} for issuer ${this.getIssuer()} failed as there was no success response body`);
297
+ }
298
+ return Object.assign(Object.assign({}, response.successBody), { access_token: response.access_token });
299
+ });
300
+ }
301
+ exportState() {
302
+ return __awaiter(this, void 0, void 0, function* () {
303
+ return JSON.stringify(this._state);
304
+ });
305
+ }
306
+ getCredentialsSupported(format) {
307
+ return (0, oid4vci_common_1.getSupportedCredentials)({
308
+ issuerMetadata: this.endpointMetadata.credentialIssuerMetadata,
309
+ version: this.version(),
310
+ format: format,
311
+ types: undefined,
312
+ });
313
+ }
314
+ sendNotification(credentialRequestOpts, request, accessToken) {
315
+ var _a, _b;
316
+ return __awaiter(this, void 0, void 0, function* () {
317
+ return (0, functions_2.sendNotification)(credentialRequestOpts, request, (_a = accessToken !== null && accessToken !== void 0 ? accessToken : this._state.accessToken) !== null && _a !== void 0 ? _a : (_b = this._state.accessTokenResponse) === null || _b === void 0 ? void 0 : _b.access_token);
318
+ });
319
+ }
320
+ /* getCredentialOfferTypes(): string[][] {
321
+ if (!this.credentialOffer) {
322
+ return [];
323
+ } else if (this.credentialOffer.version < OpenId4VCIVersion.VER_1_0_11) {
324
+ const orig = this.credentialOffer.original_credential_offer as CredentialOfferPayloadV1_0_08;
325
+ const types: string[] = typeof orig.credential_type === 'string' ? [orig.credential_type] : orig.credential_type;
326
+ const result: string[][] = [];
327
+ result[0] = types;
328
+ return result;
329
+ } else {
330
+ return this.credentialOffer.credential_offer.credentials.map((c) => {
331
+ if (typeof c === 'string') {
332
+ return [c];
333
+ } else if ('types' in c) {
334
+ return c.types;
335
+ } else if ('vct' in c) {
336
+ return [c.vct];
337
+ } else {
338
+ return c.credential_definition.types;
339
+ }
340
+ });
341
+ }
342
+ }*/
343
+ issuerSupportedFlowTypes() {
344
+ var _a, _b, _c, _d;
345
+ return ((_b = (_a = this.credentialOffer) === null || _a === void 0 ? void 0 : _a.supportedFlows) !== null && _b !== void 0 ? _b : (((_d = (_c = this._state.endpointMetadata) === null || _c === void 0 ? void 0 : _c.credentialIssuerMetadata) === null || _d === void 0 ? void 0 : _d.authorization_endpoint) ? [oid4vci_common_1.AuthzFlowType.AUTHORIZATION_CODE_FLOW] : []));
346
+ }
347
+ isFlowTypeSupported(flowType) {
348
+ return this.issuerSupportedFlowTypes().includes(flowType);
349
+ }
350
+ hasAuthorizationURL() {
351
+ return !!this.authorizationURL;
352
+ }
353
+ get authorizationURL() {
354
+ return this._state.authorizationURL;
355
+ }
356
+ get credentialOffer() {
357
+ return this._state.credentialOffer;
358
+ }
359
+ version() {
360
+ var _a, _b;
361
+ return (_b = (_a = this.credentialOffer) === null || _a === void 0 ? void 0 : _a.version) !== null && _b !== void 0 ? _b : oid4vci_common_1.OpenId4VCIVersion.VER_1_0_13;
362
+ }
363
+ get endpointMetadata() {
364
+ this.assertServerMetadata();
365
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
366
+ return this._state.endpointMetadata;
367
+ }
368
+ get kid() {
369
+ this.assertIssuerData();
370
+ if (!this._state.kid) {
371
+ throw new Error('No value for kid is supplied');
372
+ }
373
+ return this._state.kid;
374
+ }
375
+ get alg() {
376
+ this.assertIssuerData();
377
+ if (!this._state.alg) {
378
+ throw new Error('No value for alg is supplied');
379
+ }
380
+ return this._state.alg;
381
+ }
382
+ set clientId(value) {
383
+ this._state.clientId = value;
384
+ }
385
+ get clientId() {
386
+ return this._state.clientId;
387
+ }
388
+ hasAccessTokenResponse() {
389
+ return !!this._state.accessTokenResponse;
390
+ }
391
+ get accessTokenResponse() {
392
+ this.assertAccessToken();
393
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
394
+ return this._state.accessTokenResponse;
395
+ }
396
+ getIssuer() {
397
+ this.assertIssuerData();
398
+ return this._state.credentialIssuer;
399
+ }
400
+ getAccessTokenEndpoint() {
401
+ this.assertIssuerData();
402
+ return this.endpointMetadata
403
+ ? this.endpointMetadata.token_endpoint
404
+ : AccessTokenClient_1.AccessTokenClient.determineTokenURL({ issuerOpts: { issuer: this.getIssuer() } });
405
+ }
406
+ getCredentialEndpoint() {
407
+ this.assertIssuerData();
408
+ return this.endpointMetadata ? this.endpointMetadata.credential_endpoint : `${this.getIssuer()}/credential`;
409
+ }
410
+ hasDeferredCredentialEndpoint() {
411
+ return !!this.getAccessTokenEndpoint();
412
+ }
413
+ getDeferredCredentialEndpoint() {
414
+ this.assertIssuerData();
415
+ return this.endpointMetadata ? this.endpointMetadata.credential_endpoint : `${this.getIssuer()}/credential`;
416
+ }
417
+ /**
418
+ * Too bad we need a method like this, but EBSI is not exposing metadata
419
+ */
420
+ isEBSI() {
421
+ var _a, _b, _c, _d, _e;
422
+ const credentialOffer = (_a = this.credentialOffer) === null || _a === void 0 ? void 0 : _a.credential_offer;
423
+ if (credentialOffer === null || credentialOffer === void 0 ? void 0 : credentialOffer.credential_configuration_ids) {
424
+ const credentialConfigurations = (_b = this.endpointMetadata.credentialIssuerMetadata) === null || _b === void 0 ? void 0 : _b.credential_configurations_supported;
425
+ if (credentialConfigurations) {
426
+ const isEBSITrustFramework = credentialOffer.credential_configuration_ids
427
+ .map((id) => credentialConfigurations[id])
428
+ .filter((config) =>
429
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
430
+ // @ts-ignore
431
+ config !== undefined && 'trust_framework' in config && 'name' in config.trust_framework)
432
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
433
+ // @ts-ignore
434
+ .some((config) => config.trust_framework.name.includes('ebsi'));
435
+ if (isEBSITrustFramework) {
436
+ return true;
437
+ }
438
+ }
439
+ }
440
+ this.assertIssuerData();
441
+ return (_e = (_d = (_c = this.endpointMetadata.credentialIssuerMetadata) === null || _c === void 0 ? void 0 : _c.authorization_endpoint) === null || _d === void 0 ? void 0 : _d.includes('ebsi.eu')) !== null && _e !== void 0 ? _e : false;
442
+ }
443
+ assertIssuerData() {
444
+ if (!this._state.credentialIssuer) {
445
+ throw Error(`No credential issuer value present`);
446
+ }
447
+ else if (!this._state.credentialOffer && this._state.endpointMetadata && this.issuerSupportedFlowTypes().length === 0) {
448
+ throw Error(`No issuance initiation or credential offer present`);
449
+ }
450
+ }
451
+ assertServerMetadata() {
452
+ if (!this._state.endpointMetadata) {
453
+ throw Error('No server metadata');
454
+ }
455
+ }
456
+ assertAccessToken() {
457
+ if (!this._state.accessTokenResponse) {
458
+ throw Error(`No access token present`);
459
+ }
460
+ }
461
+ syncAuthorizationRequestOpts(opts) {
462
+ var _a, _b;
463
+ let authorizationRequestOpts = Object.assign(Object.assign({}, (_a = this._state) === null || _a === void 0 ? void 0 : _a.authorizationRequestOpts), opts);
464
+ if (!authorizationRequestOpts) {
465
+ // We only set a redirectUri if no options are provided.
466
+ // Note that this only works for mobile apps, that can handle a code query param on the default openid-credential-offer deeplink.
467
+ // Provide your own options if that is not desired!
468
+ authorizationRequestOpts = { redirectUri: `${oid4vci_common_1.DefaultURISchemes.CREDENTIAL_OFFER}://` };
469
+ }
470
+ const clientId = (_b = authorizationRequestOpts.clientId) !== null && _b !== void 0 ? _b : this._state.clientId;
471
+ // sync clientId
472
+ this._state.clientId = clientId;
473
+ authorizationRequestOpts.clientId = clientId;
474
+ return authorizationRequestOpts;
475
+ }
476
+ }
477
+ exports.OpenID4VCIClientV1_0_13 = OpenID4VCIClientV1_0_13;
478
+ //# sourceMappingURL=OpenID4VCIClientV1_0_13.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenID4VCIClientV1_0_13.js","sourceRoot":"","sources":["../lib/OpenID4VCIClientV1_0_13.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DA2BkC;AAElC,kDAA0B;AAE1B,2DAAwD;AACxD,uEAA0E;AAC1E,mEAAgE;AAEhE,qFAAkF;AAClF,mEAAgE;AAChE,yEAAsE;AACtE,2CAAsD;AACtD,2CAA+C;AAE/C,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,kBAAkB,CAAC,CAAC;AAkBxC,MAAa,uBAAuB;IAGlC,YAAoB,EAClB,eAAe,EACf,QAAQ,EACR,GAAG,EACH,GAAG,EACH,gBAAgB,EAChB,IAAI,EACJ,oBAAoB,EACpB,WAAW,EACX,GAAG,EACH,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,gBAAgB,GAgBjB;;QACC,MAAM,MAAM,GAAG,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAA,oDAAmC,EAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACzI,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,CAAC,MAAM,GAAG;YACZ,eAAe;YACf,gBAAgB,EAAE,MAAM;YACxB,GAAG;YACH,GAAG;YACH,sLAAsL;YACtL,QAAQ,EAAE,MAAA,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,CAAC,eAAe,IAAI,IAAA,sDAAqC,EAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,mCAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACxI,IAAI,kBAAI,QAAQ,EAAE,KAAK,EAAE,mBAAmB,EAAE,oCAAmB,CAAC,IAAI,IAAK,IAAI,CAAE;YACjF,wBAAwB;YACxB,yBAAyB;YACzB,WAAW;YACX,GAAG;YACH,gBAAgB;YAChB,mBAAmB;YACnB,gBAAgB;SACjB,CAAC;QACF,sEAAsE;QACtE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,wBAAwB,GAAG,IAAI,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,CAAC;QACjG,CAAC;QACD,KAAK,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACvG,CAAC;IAEM,MAAM,CAAO,oBAAoB,CAAC,EACvC,GAAG,EACH,GAAG,EACH,sBAAsB,EACtB,QAAQ,EACR,gBAAgB,EAChB,IAAI,EACJ,oBAAoB,EACpB,6BAA6B,GAU9B;;YACC,MAAM,MAAM,GAAG,IAAI,uBAAuB,CAAC;gBACzC,GAAG;gBACH,GAAG;gBACH,QAAQ,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,QAAQ;gBACpD,gBAAgB;gBAChB,IAAI;gBACJ,oBAAoB;aACrB,CAAC,CAAC;YACH,IAAI,sBAAsB,KAAK,SAAS,IAAI,sBAAsB,EAAE,CAAC;gBACnE,MAAM,MAAM,CAAC,sBAAsB,EAAE,CAAC;YACxC,CAAC;YACD,IAAI,6BAA6B,KAAK,SAAS,IAAI,6BAA6B,EAAE,CAAC;gBACjF,MAAM,MAAM,CAAC,6BAA6B,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7E,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;IAEM,MAAM,CAAO,SAAS,CAAC,EAAE,KAAK,EAAoD;;YACvF,MAAM,WAAW,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAE1E,OAAO,IAAI,uBAAuB,CAAC,WAAW,CAAC,CAAC;QAClD,CAAC;KAAA;IAEM,MAAM,CAAO,OAAO,CAAC,EAC1B,GAAG,EACH,GAAG,EACH,GAAG,EACH,sBAAsB,EACtB,QAAQ,EACR,IAAI,EACJ,6BAA6B,EAC7B,oBAAoB,EACpB,eAAe,GAWhB;;;YACC,MAAM,qBAAqB,GAAG,MAAM,6CAAqB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;YACrG,MAAM,MAAM,GAAG,IAAI,uBAAuB,CAAC;gBACzC,eAAe,EAAE,qBAAqB;gBACtC,GAAG;gBACH,GAAG;gBACH,QAAQ,EAAE,MAAA,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,QAAQ,mCAAI,qBAAqB,CAAC,QAAQ;gBACtF,IAAI;gBACJ,oBAAoB;aACrB,CAAC,CAAC;YAEH,IAAI,sBAAsB,KAAK,SAAS,IAAI,sBAAsB,EAAE,CAAC;gBACnE,MAAM,MAAM,CAAC,sBAAsB,EAAE,CAAC;YACxC,CAAC;YACD,IACE,qBAAqB,CAAC,cAAc,CAAC,QAAQ,CAAC,8BAAa,CAAC,uBAAuB,CAAC;gBACpF,CAAC,6BAA6B,KAAK,SAAS,IAAI,6BAA6B,CAAC,EAC9E,CAAC;gBACD,MAAM,MAAM,CAAC,6BAA6B,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3E,KAAK,CAAC,8BAA8B,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;YACxE,CAAC;YAED,OAAO,MAAM,CAAC;;KACf;IAED;;;;;OAKG;IACU,6BAA6B,CAAC,IAA2E;;;YACpH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAClC,IAAI,CAAC,iBAAiB,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAC,CAAC;gBACnC,IAAI,CAAC,MAAM,CAAC,wBAAwB,GAAG,IAAI,CAAC,4BAA4B,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,oBAAoB,CAAC,CAAC;gBACrG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE,CAAC;oBAC1C,MAAM,KAAK,CAAC,mEAAmE,CAAC,CAAC;gBACnF,CAAC;gBAED,8HAA8H;gBAC9H,oDAAoD;gBACpD,IACE,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,0CAAE,wBAAwB;oBACtD,wBAAwB,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,wBAAwB,EACjF,CAAC;oBACD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,sBAAsB,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,sBAAgC,CAAC;gBAC/I,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,MAAM,IAAA,uDAA6B,EAAC;oBACjE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;oBACtB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;oBACvC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,wBAAwB;oBAC1D,eAAe,EAAE,IAAI,CAAC,eAAe;oBACrC,gCAAgC,EAAE,IAAI,CAAC,uBAAuB,EAAE;oBAChE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;iBACxB,CAAC,CAAC;YACL,CAAC;YACD,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;;KACrC;IAEY,sBAAsB;;YACjC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAClC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;oBACzB,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,MAAM,6CAAqB,CAAC,sCAAsC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC1H,CAAC;qBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;oBACxC,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,MAAM,6CAAqB,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;gBAC/G,CAAC;qBAAM,CAAC;oBACN,MAAM,KAAK,CAAC,oFAAoF,CAAC,CAAC;gBACpG,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC,gBAAgB,CAAC;QAC/B,CAAC;KAAA;IAEO,iBAAiB,CAAC,IAAe;QACvC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAA,mCAAuB,kCAAM,IAAI,CAAC,MAAM,CAAC,IAAI,GAAK,IAAI,EAAG,CAAC;IAC/E,CAAC;IAEY,kBAAkB,CAAC,IAO/B;;;YACC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC;YACrC,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC;YACjC,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,qBAAqB,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,CAAC,yBAAyB,qBAAQ,IAAA,+CAA8B,EAAC,IAAI,CAAC,qBAAqB,CAAC,CAAE,CAAC;YAC5G,CAAC;iBAAM,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,EAAE,CAAC;gBACtB,IAAI,CAAC,MAAM,CAAC,yBAAyB,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YAC9D,CAAC;YACD,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,MAAM,CAAC,yBAAyB,0CAAE,IAAI,CAAC;YAEzD,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACpD,CAAC;YACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAExB,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAClC,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;gBACrC,MAAM,iBAAiB,GAAG,IAAI,qCAAiB,EAAE,CAAC;gBAElD,IAAI,WAAW,IAAI,WAAW,MAAK,MAAA,IAAI,CAAC,MAAM,CAAC,wBAAwB,0CAAE,WAAW,CAAA,EAAE,CAAC;oBACrF,OAAO,CAAC,GAAG,CACT,+CAA+C,WAAW,gCAAgC,MAAA,IAAI,CAAC,MAAM,CAAC,wBAAwB,0CAAE,WAAW,wDAAwD,CACpM,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,wBAAwB,0CAAE,WAAW,KAAI,CAAC,WAAW,EAAE,CAAC;oBACtE,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,WAAW,CAAC;gBACjE,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,kBAAkB,+BACzD,eAAe,EAAE,IAAI,CAAC,eAAe,EACrC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAC/B,gBAAgB,EAAE,IAAI,CAAC,SAAS,EAAE,EAClC,GAAG,IACA,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,KAClF,IAAI;oBACJ,WAAW,EACX,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IACnC,CAAC;gBAEH,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;oBACvB,KAAK,CAAC,0BAA0B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBACtE,MAAM,KAAK,CACT,mCAAmC,MAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,0CAAE,cAAc,eAAe,IAAI,CAAC,SAAS,EAAE,wBAC5G,QAAQ,CAAC,YAAY,CAAC,MACxB,EAAE,CACH,CAAC;gBACJ,CAAC;qBAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;oBACjC,KAAK,CAAC,qCAAqC,CAAC,CAAC;oBAC7C,MAAM,KAAK,CACT,mCACE,MAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,0CAAE,cAChC,eAAe,IAAI,CAAC,SAAS,EAAE,+CAA+C,CAC/E,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,mBAAmB,GAAG,QAAQ,CAAC,WAAW,CAAC;gBACvD,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC;YAC9D,CAAC;YAED,OAAO,IAAI,CAAC,mBAAmB,CAAC;;KACjC;IAEY,kBAAkB,CAAC,EAC9B,oBAAoB,EACpB,eAAe,EACf,OAAO,EACP,cAAc,EACd,MAAM,EACN,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,uBAAuB,EACvB,8BAA8B,GAc/B;;;YACC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzD,MAAM,IAAI,KAAK,CAAC,kCAAiB,GAAG,UAAU,GAAG,KAAK,SAAS,UAAU,GAAG,KAAK,SAAS,EAAE,CAAC,CAAC;YAChG,CAAC;YAED,IAAI,GAAG;gBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;YAC/B,IAAI,GAAG;gBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;YAC/B,IAAI,GAAG;gBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;YAE/B,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe;gBACzC,CAAC,CAAC,+DAA8B,CAAC,mBAAmB,CAAC;oBACjD,eAAe,EAAE,IAAI,CAAC,eAAe;oBACrC,QAAQ,EAAE,IAAI,CAAC,gBAAgB;iBAChC,CAAC;gBACJ,CAAC,CAAC,+DAA8B,CAAC,oBAAoB,CAAC;oBAClD,gBAAgB,EAAE,IAAI,CAAC,SAAS,EAAE;oBAClC,oBAAoB,EAAE,oBAAoB;oBAC1C,QAAQ,EAAE,IAAI,CAAC,gBAAgB;oBAC/B,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;iBACxB,CAAC,CAAC;YAEP,cAAc,CAAC,qBAAqB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC/D,cAAc,CAAC,2BAA2B,CAAC,uBAAuB,aAAvB,uBAAuB,cAAvB,uBAAuB,GAAI,KAAK,EAAE,8BAA8B,CAAC,CAAC;YAC7G,IAAI,eAAwD,CAAC;YAC7D,IAAI,MAAA,IAAI,CAAC,gBAAgB,0CAAE,wBAAwB,EAAE,CAAC;gBACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC;gBAChE,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAEnH,IAAI,oBAAoB,EAAE,CAAC;oBACzB,IAAI,OAAO,QAAQ,CAAC,mCAAmC,KAAK,QAAQ,EAAE,CAAC;wBACrE,MAAM,KAAK,CACT,sDAAsD,OAAO,QAAQ,CAAC,mCAAmC,qCAAqC,CAC/I,CAAC;oBACJ,CAAC;oBACD,MAAM,oBAAoB,GAAG,QAAQ,CAAC,mCAAmC,CAAC;oBAC1E,IAAI,CAAC,QAAQ,CAAC,mCAAmC,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,EAAE,CAAC;wBACjG,MAAM,IAAI,KAAK,CAAC,mBAAmB,oBAAoB,+BAA+B,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBAC5G,CAAC;gBACH,CAAC;qBAAM,IAAI,CAAC,KAAK,EAAE,CAAC;oBAClB,MAAM,KAAK,CAAC,sDAAsD,CAAC,CAAC;gBACtE,CAAC;qBAAM,IAAI,QAAQ,CAAC,qBAAqB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBAC3F,IAAI,aAAa,GAAG,KAAK,CAAC;oBAE1B,QAAQ,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,mBAAmB,EAAE,EAAE;wBAC7D,MAAM,QAAQ,GAAG,IAAA,gDAA+B,EAAC,mBAAmB,CAAC,CAAC;wBACtE,IACE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;4BACxC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,mBAAmB,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC5F,CAAC;4BACD,aAAa,GAAG,IAAI,CAAC;4BACrB,IAAI,mBAAmB,CAAC,2BAA2B,EAAE,CAAC;gCACpD,eAAe,GAAG,EAAE,2BAA2B,EAAE,mBAAmB,CAAC,2BAA2B,EAAE,CAAC;4BACrG,CAAC;wBACH,CAAC;oBACH,CAAC,CAAC,CAAC;oBAEH,IAAI,CAAC,aAAa,EAAE,CAAC;wBACnB,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,gCAAgC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;wBAC3H,0HAA0H;oBAC5H,CAAC;gBACH,CAAC;qBAAM,IAAI,QAAQ,CAAC,mCAAmC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,mCAAmC,CAAC,EAAE,CAAC;oBACxH,MAAM,oBAAoB,GAAG,QAAQ,CAAC,mCAAmC,CAAC;oBAC1E,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,mCAAmC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;wBACvG,MAAM,KAAK,CAAC,4BAA4B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,4BAA4B,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBACzH,CAAC;gBACH,CAAC;gBACD,4GAA4G;YAC9G,CAAC;YACD,IAAI,eAAe,EAAE,CAAC;gBACpB,cAAc,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;YACtD,CAAC;YAED,MAAM,uBAAuB,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC;YACvD,MAAM,YAAY,GAAG,mDAAwB,CAAC,uBAAuB,CAAC;gBACpE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;gBAC7C,SAAS,EAAE,cAAc;gBACzB,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;aACxB,CAAC;iBACC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;iBAC5B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAErB,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;gBACpB,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACxC,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;gBACpB,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACxC,CAAC;YAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,GAAG,EAAE,CAAC;gBACR,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,4BAA4B,iBACzE,UAAU,EAAE,YAAY,IACrB,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,EAC7H,CAAC;YACH,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACvB,KAAK,CAAC,gCAAgC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAC5E,MAAM,KAAK,CACT,gCAAgC,MAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,0CAAE,mBAAmB,eAAe,IAAI,CAAC,SAAS,EAAE,wBAC9G,QAAQ,CAAC,YAAY,CAAC,MACxB,EAAE,CACH,CAAC;YACJ,CAAC;iBAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACjC,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBACnD,MAAM,KAAK,CACT,gCACE,MAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,0CAAE,mBAChC,eAAe,IAAI,CAAC,SAAS,EAAE,+CAA+C,CAC/E,CAAC;YACJ,CAAC;YACD,uCAAY,QAAQ,CAAC,WAAW,KAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,IAAG;;KACzE;IAEY,WAAW;;YACtB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;KAAA;IAED,uBAAuB,CACrB,MAAkF;QAElF,OAAO,IAAA,wCAAuB,EAAC;YAC7B,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,wBAAwB;YAC9D,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;YACvB,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,SAAS;SACjB,CAA4D,CAAC;IAChE,CAAC;IAEY,gBAAgB,CAC3B,qBAAqD,EACrD,OAA4B,EAC5B,WAAoB;;;YAEpB,OAAO,IAAA,4BAAgB,EAAC,qBAAqB,EAAE,OAAO,EAAE,MAAA,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,CAAC,MAAM,CAAC,WAAW,mCAAI,MAAA,IAAI,CAAC,MAAM,CAAC,mBAAmB,0CAAE,YAAY,CAAC,CAAC;;KAClJ;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IAEH,wBAAwB;;QACtB,OAAO,CACL,MAAA,MAAA,IAAI,CAAC,eAAe,0CAAE,cAAc,mCACpC,CAAC,CAAA,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,0CAAE,wBAAwB,0CAAE,sBAAsB,EAAC,CAAC,CAAC,CAAC,8BAAa,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAChI,CAAC;IACJ,CAAC;IAED,mBAAmB,CAAC,QAAuB;QACzC,OAAO,IAAI,CAAC,wBAAwB,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAEM,mBAAmB;QACxB,OAAO,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;IACtC,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;IACrC,CAAC;IAEM,OAAO;;QACZ,OAAO,MAAA,MAAA,IAAI,CAAC,eAAe,0CAAE,OAAO,mCAAI,kCAAiB,CAAC,UAAU,CAAC;IACvE,CAAC;IAED,IAAW,gBAAgB;QACzB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,oEAAoE;QACpE,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAiB,CAAC;IACvC,CAAC;IAED,IAAI,GAAG;QACL,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IACzB,CAAC;IAED,IAAI,GAAG;QACL,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ,CAAC,KAAyB;QACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAEM,sBAAsB;QAC3B,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAC3C,CAAC;IAED,IAAI,mBAAmB;QACrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,oEAAoE;QACpE,OAAO,IAAI,CAAC,MAAM,CAAC,mBAAoB,CAAC;IAC1C,CAAC;IAEM,SAAS;QACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;IACtC,CAAC;IAEM,sBAAsB;QAC3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,gBAAgB;YAC1B,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc;YACtC,CAAC,CAAC,qCAAiB,CAAC,iBAAiB,CAAC,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;IACxF,CAAC;IAEM,qBAAqB;QAC1B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC;IAC9G,CAAC;IAEM,6BAA6B;QAClC,OAAO,CAAC,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;IACzC,CAAC;IAEM,6BAA6B;QAClC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC;IAC9G,CAAC;IAED;;OAEG;IACI,MAAM;;QACX,MAAM,eAAe,GAAG,MAAA,IAAI,CAAC,eAAe,0CAAE,gBAAiD,CAAC;QAEhG,IAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,4BAA4B,EAAE,CAAC;YAClD,MAAM,wBAAwB,GAAG,MAAA,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,0CAAE,mCAAmC,CAAC;YAErH,IAAI,wBAAwB,EAAE,CAAC;gBAC7B,MAAM,oBAAoB,GAAG,eAAe,CAAC,4BAA4B;qBACtE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;qBACzC,MAAM,CACL,CAAC,MAAM,EAAqD,EAAE;gBAC5D,6DAA6D;gBAC7D,aAAa;gBACb,MAAM,KAAK,SAAS,IAAI,iBAAiB,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,eAAe,CAC1F;oBACD,6DAA6D;oBAC7D,aAAa;qBACZ,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBAElE,IAAI,oBAAoB,EAAE,CAAC;oBACzB,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,OAAO,MAAA,MAAA,MAAA,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,0CAAE,sBAAsB,0CAAE,QAAQ,CAAC,SAAS,CAAC,mCAAI,KAAK,CAAC;IAC9G,CAAC;IAEO,gBAAgB;QACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAClC,MAAM,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACpD,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxH,MAAM,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAEO,oBAAoB;QAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAClC,MAAM,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YACrC,MAAM,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAEO,4BAA4B,CAAC,IAA+B;;QAClE,IAAI,wBAAwB,GAAG,gCAAK,MAAA,IAAI,CAAC,MAAM,0CAAE,wBAAwB,GAAK,IAAI,CAA8B,CAAC;QACjH,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAC9B,wDAAwD;YACxD,iIAAiI;YACjI,mDAAmD;YACnD,wBAAwB,GAAG,EAAE,WAAW,EAAE,GAAG,kCAAiB,CAAC,gBAAgB,KAAK,EAAE,CAAC;QACzF,CAAC;QACD,MAAM,QAAQ,GAAG,MAAA,wBAAwB,CAAC,QAAQ,mCAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC3E,gBAAgB;QAChB,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAChC,wBAAwB,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7C,OAAO,wBAAwB,CAAC;IAClC,CAAC;CACF;AAzmBD,0DAymBC"}