project-cpu-mcp 0.12.4 → 0.12.6

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 (47) hide show
  1. package/README.md +3 -1
  2. package/dist/index.js +2 -2
  3. package/dist/index.js.map +1 -1
  4. package/dist/paybox/auth/constants.d.ts +7 -2
  5. package/dist/paybox/auth/constants.d.ts.map +1 -1
  6. package/dist/paybox/auth/constants.js +7 -2
  7. package/dist/paybox/auth/constants.js.map +1 -1
  8. package/dist/paybox/auth/device-authorization.client.d.ts +16 -0
  9. package/dist/paybox/auth/device-authorization.client.d.ts.map +1 -0
  10. package/dist/paybox/auth/device-authorization.client.js +122 -0
  11. package/dist/paybox/auth/device-authorization.client.js.map +1 -0
  12. package/dist/paybox/auth/device-flow.d.ts +16 -0
  13. package/dist/paybox/auth/device-flow.d.ts.map +1 -0
  14. package/dist/paybox/auth/device-flow.js +119 -0
  15. package/dist/paybox/auth/device-flow.js.map +1 -0
  16. package/dist/paybox/auth/{loopback-flow.utils.d.ts → oauth-response.utils.d.ts} +4 -3
  17. package/dist/paybox/auth/oauth-response.utils.d.ts.map +1 -0
  18. package/dist/paybox/auth/{loopback-flow.utils.js → oauth-response.utils.js} +27 -4
  19. package/dist/paybox/auth/oauth-response.utils.js.map +1 -0
  20. package/dist/paybox/auth/provisioning.utils.js +1 -1
  21. package/dist/paybox/auth/provisioning.utils.js.map +1 -1
  22. package/dist/paybox/auth/signing-key-capture.d.ts +15 -0
  23. package/dist/paybox/auth/signing-key-capture.d.ts.map +1 -0
  24. package/dist/paybox/auth/signing-key-capture.js +109 -0
  25. package/dist/paybox/auth/signing-key-capture.js.map +1 -0
  26. package/dist/paybox/auth/types.d.ts +30 -1
  27. package/dist/paybox/auth/types.d.ts.map +1 -1
  28. package/dist/paybox/auth/types.js.map +1 -1
  29. package/dist/paybox/auth/utils.d.ts +2 -1
  30. package/dist/paybox/auth/utils.d.ts.map +1 -1
  31. package/dist/paybox/auth/utils.js +27 -5
  32. package/dist/paybox/auth/utils.js.map +1 -1
  33. package/dist/paybox/types.d.ts +0 -16
  34. package/dist/paybox/types.d.ts.map +1 -1
  35. package/dist/paybox/types.js.map +1 -1
  36. package/dist/services/market/factory.d.ts.map +1 -1
  37. package/dist/services/market/factory.js +2 -1
  38. package/dist/services/market/factory.js.map +1 -1
  39. package/dist/services/market/factory.types.d.ts +2 -1
  40. package/dist/services/market/factory.types.d.ts.map +1 -1
  41. package/package.json +1 -1
  42. package/dist/paybox/auth/loopback-flow.d.ts +0 -49
  43. package/dist/paybox/auth/loopback-flow.d.ts.map +0 -1
  44. package/dist/paybox/auth/loopback-flow.js +0 -381
  45. package/dist/paybox/auth/loopback-flow.js.map +0 -1
  46. package/dist/paybox/auth/loopback-flow.utils.d.ts.map +0 -1
  47. package/dist/paybox/auth/loopback-flow.utils.js.map +0 -1
@@ -1,381 +0,0 @@
1
- import { createServer } from 'node:http';
2
- import { DEFAULT_LOOPBACK_TIMEOUT_MS, HTML_HEADERS, KEY_BODY_LIMIT_BYTES, LOOPBACK_CALLBACK_PREFIX, LOOPBACK_HOST, LOOPBACK_KEY_PREFIX, OAUTH_DISCOVERY_PATH, OAUTH_SCOPE, PAYBOX_OAUTH_CLIENT_NAME, } from './constants.js';
3
- import { oauthError, oauthTokenError, pkceChallenge, randomUrlPart } from './utils.js';
4
- import { PayboxAuthFlowError, PayboxAuthInvalidError, PayboxLoopbackUnavailableError, PayboxTemporarilyUnavailableError, } from '../errors.js';
5
- import { SystemBrowserOpener } from './browser-opener.js';
6
- import { formKey, isObject, nonEmptyString, tokenResponse, urlField } from './loopback-flow.utils.js';
7
- import { connectionCompletePage, connectionFailedPage, signingKeyPage } from './loopback-page.utils.js';
8
- import { agentKeyProvisioningUrl } from './provisioning.utils.js';
9
- import { isPbxk1 } from './signing-key.utils.js';
10
- import { classifiedPayboxError, classifiedPayboxHttpStatus } from '../sdk/utils.js';
11
- import { PayboxRequestContext, } from '../types.js';
12
- export class LoopbackAuthFlow {
13
- options;
14
- browserOpener;
15
- server = null;
16
- completion = null;
17
- rejectCompletion = null;
18
- callbackPath = null;
19
- keyPath = null;
20
- state = null;
21
- verifier = null;
22
- metadata = null;
23
- clientId = null;
24
- code = null;
25
- key = null;
26
- callbackResponse = null;
27
- provisioningUrl = null;
28
- started = false;
29
- operation = null;
30
- signal = null;
31
- abortListener = null;
32
- waiters = new Set();
33
- waiterRejectors = new Set();
34
- constructor(options, browserOpener = new SystemBrowserOpener()) {
35
- this.options = options;
36
- this.browserOpener = browserOpener;
37
- }
38
- async start(parentSignal) {
39
- if (this.started) {
40
- throw oauthError('flow already started');
41
- }
42
- this.started = true;
43
- const operation = new AbortController();
44
- const timeout = AbortSignal.timeout(this.options.timeoutMs ?? DEFAULT_LOOPBACK_TIMEOUT_MS);
45
- const signal = AbortSignal.any([parentSignal, operation.signal, timeout]);
46
- this.operation = operation;
47
- this.signal = signal;
48
- this.abortListener = () => this.abort(signal.reason);
49
- signal.addEventListener('abort', this.abortListener, { once: true });
50
- try {
51
- signal.throwIfAborted();
52
- const metadata = await this.discover(signal);
53
- signal.throwIfAborted();
54
- this.metadata = metadata;
55
- this.state = randomUrlPart();
56
- this.verifier = randomUrlPart();
57
- this.callbackPath = `${LOOPBACK_CALLBACK_PREFIX}${randomUrlPart()}`;
58
- this.keyPath = `${LOOPBACK_KEY_PREFIX}${randomUrlPart()}`;
59
- await this.listen(signal);
60
- signal.throwIfAborted();
61
- const redirectUri = this.redirectUri();
62
- const clientId = await this.register(redirectUri, signal);
63
- signal.throwIfAborted();
64
- this.clientId = clientId;
65
- const completion = new Promise((resolve, reject) => {
66
- this.rejectCompletion = reject;
67
- void this.waitForResult(resolve);
68
- });
69
- void completion.catch(() => undefined);
70
- this.completion = completion;
71
- const authorizationUrl = new URL(this.metadata.authorizationEndpoint);
72
- authorizationUrl.searchParams.set('response_type', 'code');
73
- authorizationUrl.searchParams.set('client_id', this.clientId);
74
- authorizationUrl.searchParams.set('redirect_uri', redirectUri);
75
- authorizationUrl.searchParams.set('scope', OAUTH_SCOPE);
76
- authorizationUrl.searchParams.set('state', this.state);
77
- authorizationUrl.searchParams.set('code_challenge', pkceChallenge(this.verifier));
78
- authorizationUrl.searchParams.set('code_challenge_method', 'S256');
79
- const serializedAuthorizationUrl = authorizationUrl.toString();
80
- try {
81
- this.browserOpener.open(serializedAuthorizationUrl);
82
- }
83
- catch {
84
- // Returning the URL keeps authentication usable when GUI launch is unavailable.
85
- }
86
- return { authorizationUrl: serializedAuthorizationUrl };
87
- }
88
- catch (error) {
89
- if (signal.aborted)
90
- throw this.abortError(signal.reason);
91
- if (this.signal === signal)
92
- this.reset();
93
- throw error;
94
- }
95
- }
96
- async finish() {
97
- if (this.completion === null) {
98
- throw oauthError('flow not started');
99
- }
100
- return this.completion.finally(() => this.close());
101
- }
102
- async discover(signal) {
103
- const issuer = new URL(this.options.issuerUrl);
104
- const response = await this.payboxRequest(new URL(OAUTH_DISCOVERY_PATH, issuer).toString(), { method: 'GET' }, signal);
105
- if (!response.ok) {
106
- throw classifiedPayboxHttpStatus(response.status, PayboxRequestContext.Unauthenticated);
107
- }
108
- const value = await this.responseJson(response);
109
- if (!isObject(value))
110
- throw oauthError('malformed discovery response');
111
- const authorizationEndpoint = urlField(value, 'authorization_endpoint');
112
- const registrationEndpoint = urlField(value, 'registration_endpoint');
113
- const tokenEndpoint = urlField(value, 'token_endpoint');
114
- return { authorizationEndpoint, registrationEndpoint, tokenEndpoint };
115
- }
116
- async register(redirectUri, signal) {
117
- const metadata = this.required(this.metadata, 'metadata');
118
- const response = await this.payboxRequest(metadata.registrationEndpoint, {
119
- method: 'POST',
120
- headers: { 'content-type': 'application/json' },
121
- body: JSON.stringify({
122
- client_name: PAYBOX_OAUTH_CLIENT_NAME,
123
- redirect_uris: [redirectUri],
124
- token_endpoint_auth_method: 'none',
125
- }),
126
- }, signal);
127
- if (!response.ok) {
128
- throw classifiedPayboxHttpStatus(response.status, PayboxRequestContext.Unauthenticated);
129
- }
130
- const value = await this.responseJson(response);
131
- if (!isObject(value))
132
- throw oauthError('malformed registration response');
133
- return nonEmptyString(value, 'client_id');
134
- }
135
- async listen(signal) {
136
- this.server = createServer((request, response) => this.handle(request, response));
137
- await new Promise((resolve, reject) => {
138
- const server = this.required(this.server, 'server');
139
- const onAbort = () => {
140
- cleanup();
141
- reject(this.abortError(signal.reason));
142
- };
143
- const onError = (error) => {
144
- cleanup();
145
- reject(new PayboxLoopbackUnavailableError('loopback unavailable', { cause: error }));
146
- };
147
- const cleanup = () => {
148
- signal.removeEventListener('abort', onAbort);
149
- server.off('error', onError);
150
- };
151
- signal.addEventListener('abort', onAbort, { once: true });
152
- server.once('error', onError);
153
- server.listen(0, LOOPBACK_HOST, () => {
154
- cleanup();
155
- resolve();
156
- });
157
- });
158
- }
159
- redirectUri() {
160
- const address = this.required(this.server, 'server').address();
161
- if (address === null || typeof address === 'string')
162
- throw oauthError('loopback address unavailable');
163
- return `http://${LOOPBACK_HOST}:${address.port}${this.required(this.callbackPath, 'callback path')}`;
164
- }
165
- handle(request, response) {
166
- const url = new URL(request.url ?? '/', `http://${LOOPBACK_HOST}`);
167
- if (url.pathname === this.callbackPath) {
168
- this.handleCallback(request, response, url);
169
- return;
170
- }
171
- if (url.pathname === this.keyPath) {
172
- this.handleKey(request, response);
173
- return;
174
- }
175
- this.respond(response, 404, 'Not found');
176
- }
177
- handleCallback(request, response, url) {
178
- if (request.method !== 'GET')
179
- return this.respond(response, 405, 'Method not allowed');
180
- if (url.searchParams.get('state') !== this.state || url.searchParams.get('code') === null) {
181
- return this.respond(response, 400, 'Invalid callback');
182
- }
183
- if (this.code !== null)
184
- return this.respond(response, 409, 'Already used');
185
- this.callbackResponse = response;
186
- this.code = url.searchParams.get('code');
187
- this.notifyWaiters();
188
- }
189
- handleKey(request, response) {
190
- if (request.method === 'GET') {
191
- this.respond(response, 405, 'Method not allowed');
192
- return;
193
- }
194
- if (request.method !== 'POST')
195
- return this.respond(response, 405, 'Method not allowed');
196
- if (!String(request.headers['content-type'] ?? '').startsWith('application/x-www-form-urlencoded')) {
197
- return this.respond(response, 415, 'Unsupported media type');
198
- }
199
- if (this.provisioningUrl === null) {
200
- return this.respond(response, 409, connectionFailedPage());
201
- }
202
- let body = '';
203
- let size = 0;
204
- request.on('data', (chunk) => {
205
- size += chunk.length;
206
- if (size <= KEY_BODY_LIMIT_BYTES)
207
- body += chunk.toString('utf8');
208
- });
209
- request.on('end', () => {
210
- if (size > KEY_BODY_LIMIT_BYTES)
211
- return this.respond(response, 413, 'Request too large');
212
- if (this.key !== null)
213
- return this.respond(response, 409, 'Already used');
214
- try {
215
- const key = formKey(body);
216
- if (typeof key !== 'string' || !isPbxk1(key)) {
217
- return this.respond(response, 400, signingKeyPage(this.required(this.keyPath, 'key path'), this.required(this.provisioningUrl, 'provisioning URL'), 'That is not a valid pbxk1 signing key. Copy the complete value from Paybox and try again.'));
218
- }
219
- this.key = key;
220
- this.notifyWaiters();
221
- this.respond(response, 200, connectionCompletePage());
222
- }
223
- catch {
224
- this.respond(response, 400, 'Invalid request');
225
- }
226
- });
227
- }
228
- async waitForResult(resolve) {
229
- try {
230
- const code = await this.waitFor(() => this.code);
231
- const token = await this.exchange(code, this.required(this.signal, 'signal'));
232
- const provisioningUrl = agentKeyProvisioningUrl(this.options.issuerUrl, token.accessToken);
233
- if (provisioningUrl === null)
234
- throw oauthError('signing key provisioning unavailable');
235
- this.provisioningUrl = provisioningUrl;
236
- try {
237
- this.browserOpener.open(provisioningUrl);
238
- }
239
- catch {
240
- // The local callback page keeps the provisioning URL available as a visible fallback.
241
- }
242
- this.respondCallback(200, signingKeyPage(this.required(this.keyPath, 'key path'), provisioningUrl, null));
243
- const signingKey = await this.waitFor(() => this.key);
244
- resolve({
245
- tokens: {
246
- clientId: this.required(this.clientId, 'client id'),
247
- baseUrl: this.options.issuerUrl,
248
- ...token,
249
- },
250
- signingKey,
251
- });
252
- }
253
- catch (error) {
254
- this.respondCallback(502, connectionFailedPage());
255
- if (this.started) {
256
- this.fail(error instanceof Error ? error : oauthError('authentication failed'));
257
- }
258
- }
259
- }
260
- async waitFor(read) {
261
- const value = read();
262
- if (value !== null)
263
- return value;
264
- return new Promise((resolve, reject) => {
265
- const check = () => {
266
- const next = read();
267
- if (next === null)
268
- return;
269
- this.waiters.delete(check);
270
- this.waiterRejectors.delete(reject);
271
- resolve(next);
272
- };
273
- this.waiters.add(check);
274
- this.waiterRejectors.add(reject);
275
- });
276
- }
277
- async exchange(code, signal) {
278
- const response = await this.payboxRequest(this.required(this.metadata, 'metadata').tokenEndpoint, {
279
- method: 'POST',
280
- headers: { 'content-type': 'application/x-www-form-urlencoded' },
281
- body: new URLSearchParams({
282
- grant_type: 'authorization_code',
283
- code,
284
- redirect_uri: this.redirectUri(),
285
- client_id: this.required(this.clientId, 'client id'),
286
- code_verifier: this.required(this.verifier, 'verifier'),
287
- }).toString(),
288
- }, signal);
289
- if (!response.ok)
290
- throw oauthTokenError(response.status);
291
- return tokenResponse(await this.responseJson(response));
292
- }
293
- async payboxRequest(url, init, signal) {
294
- try {
295
- return await this.options.httpClient.fetch(url, { ...init, signal });
296
- }
297
- catch (error) {
298
- if (signal.aborted)
299
- throw this.abortError(signal.reason);
300
- throw classifiedPayboxError(error, PayboxRequestContext.Unauthenticated);
301
- }
302
- }
303
- async responseJson(response) {
304
- try {
305
- return await response.json();
306
- }
307
- catch {
308
- throw oauthError('malformed response');
309
- }
310
- }
311
- close() {
312
- this.server?.close();
313
- this.server?.closeAllConnections();
314
- this.server = null;
315
- }
316
- fail(error) {
317
- const operation = this.operation;
318
- this.abort(error);
319
- operation?.abort(error);
320
- }
321
- abort(reason) {
322
- const error = this.abortError(reason);
323
- void this.completion?.catch(() => undefined);
324
- this.rejectCompletion?.(error);
325
- for (const reject of this.waiterRejectors)
326
- reject(error);
327
- this.waiters.clear();
328
- this.waiterRejectors.clear();
329
- this.reset();
330
- this.rejectCompletion = null;
331
- }
332
- abortError(reason) {
333
- if (reason instanceof PayboxAuthFlowError ||
334
- reason instanceof PayboxAuthInvalidError ||
335
- reason instanceof PayboxTemporarilyUnavailableError) {
336
- return reason;
337
- }
338
- return oauthError('cancelled');
339
- }
340
- reset() {
341
- if (this.signal !== null && this.abortListener !== null) {
342
- this.signal.removeEventListener('abort', this.abortListener);
343
- }
344
- this.close();
345
- this.started = false;
346
- this.operation = null;
347
- this.signal = null;
348
- this.abortListener = null;
349
- this.callbackPath = null;
350
- this.keyPath = null;
351
- this.state = null;
352
- this.verifier = null;
353
- this.metadata = null;
354
- this.clientId = null;
355
- this.code = null;
356
- this.key = null;
357
- this.callbackResponse = null;
358
- this.provisioningUrl = null;
359
- }
360
- notifyWaiters() {
361
- for (const waiter of this.waiters)
362
- waiter();
363
- }
364
- respond(response, status, body) {
365
- response.writeHead(status, HTML_HEADERS);
366
- response.end(body);
367
- }
368
- respondCallback(status, body) {
369
- const response = this.callbackResponse;
370
- if (response === null)
371
- return;
372
- this.callbackResponse = null;
373
- this.respond(response, status, body);
374
- }
375
- required(value, name) {
376
- if (value === null)
377
- throw oauthError(`${name} unavailable`);
378
- return value;
379
- }
380
- }
381
- //# sourceMappingURL=loopback-flow.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loopback-flow.js","sourceRoot":"","sources":["../../../src/paybox/auth/loopback-flow.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"loopback-flow.utils.d.ts","sourceRoot":"","sources":["../../../src/paybox/auth/loopback-flow.utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAQ7E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAInF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAyBhE;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGnD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"loopback-flow.utils.js","sourceRoot":"","sources":["../../../src/paybox/auth/loopback-flow.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxC,MAAM,UAAU,QAAQ,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAA8B,EAAE,IAAY;IACjE,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC;QACD,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACL,MAAM,UAAU,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAA8B,EAAE,IAAY;IACvE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,UAAU,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;IAClG,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAc;IACxC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChG,MAAM,UAAU,CAAC,0BAA0B,CAAC,CAAC;IACjD,CAAC;IACD,IACI,KAAK,CAAC,aAAa,KAAK,SAAS;QACjC,CAAC,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,EAC/E,CAAC;QACC,MAAM,UAAU,CAAC,0BAA0B,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QACtG,MAAM,UAAU,CAAC,0BAA0B,CAAC,CAAC;IACjD,CAAC;IACD,IACI,KAAK,CAAC,UAAU,KAAK,SAAS;QAC9B,CAAC,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,EACtG,CAAC;QACC,MAAM,UAAU,CAAC,0BAA0B,CAAC,CAAC;IACjD,CAAC;IACD,OAAO;QACH,WAAW,EAAE,KAAK,CAAC,YAAY;QAC/B,YAAY,EAAE,KAAK,CAAC,aAAa,IAAI,IAAI;QACzC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;QAChC,SAAS,EAAE,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,UAAU,GAAG,IAAI;KAC1F,CAAC;AACN,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAY;IAChC,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnD,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AACzC,CAAC"}