@achieveai/azuredevops-mcp 1.3.17 → 1.3.18

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 (114) hide show
  1. package/dist/Interfaces/Common.js +10 -1
  2. package/dist/Interfaces/Common.js.map +1 -1
  3. package/dist/Services/AzureDevOpsService.js +234 -32
  4. package/dist/Services/AzureDevOpsService.js.map +1 -1
  5. package/dist/Services/BoardsSprintsService.js +105 -13
  6. package/dist/Services/BoardsSprintsService.js.map +1 -1
  7. package/dist/Services/BuildService.js +151 -24
  8. package/dist/Services/BuildService.js.map +1 -1
  9. package/dist/Services/GitService.js +26 -3
  10. package/dist/Services/GitService.js.map +1 -1
  11. package/dist/Services/ProjectService.js +47 -6
  12. package/dist/Services/ProjectService.js.map +1 -1
  13. package/dist/Services/WorkItemService.js +183 -142
  14. package/dist/Services/WorkItemService.js.map +1 -1
  15. package/dist/Tools/BoardsSprintsTools.js +2 -8
  16. package/dist/Tools/BoardsSprintsTools.js.map +1 -1
  17. package/dist/Tools/BuildTools.js +5 -8
  18. package/dist/Tools/BuildTools.js.map +1 -1
  19. package/dist/Tools/WorkItemTools.js +111 -74
  20. package/dist/Tools/WorkItemTools.js.map +1 -1
  21. package/dist/index.js +22 -12
  22. package/dist/index.js.map +1 -1
  23. package/dist/utils/formatHelpers.js +15 -0
  24. package/dist/utils/formatHelpers.js.map +1 -1
  25. package/package.json +2 -2
  26. package/dist/Services/BuildService.project.test.js +0 -91
  27. package/dist/Services/BuildService.project.test.js.map +0 -1
  28. package/dist/Services/GitService.project.test.js +0 -407
  29. package/dist/Services/GitService.project.test.js.map +0 -1
  30. package/dist/package.json +0 -59
  31. package/dist/src/Interfaces/AIAssisted.js +0 -3
  32. package/dist/src/Interfaces/AIAssisted.js.map +0 -1
  33. package/dist/src/Interfaces/ArtifactManagement.js +0 -3
  34. package/dist/src/Interfaces/ArtifactManagement.js.map +0 -1
  35. package/dist/src/Interfaces/AzureDevOps.js +0 -3
  36. package/dist/src/Interfaces/AzureDevOps.js.map +0 -1
  37. package/dist/src/Interfaces/BoardsAndSprints.js +0 -3
  38. package/dist/src/Interfaces/BoardsAndSprints.js.map +0 -1
  39. package/dist/src/Interfaces/CodeAndRepositories.js +0 -3
  40. package/dist/src/Interfaces/CodeAndRepositories.js.map +0 -1
  41. package/dist/src/Interfaces/Common.js +0 -134
  42. package/dist/src/Interfaces/Common.js.map +0 -1
  43. package/dist/src/Interfaces/CostResourceManagement.js +0 -3
  44. package/dist/src/Interfaces/CostResourceManagement.js.map +0 -1
  45. package/dist/src/Interfaces/DevSecOps.js +0 -3
  46. package/dist/src/Interfaces/DevSecOps.js.map +0 -1
  47. package/dist/src/Interfaces/ExternalIntegrations.js +0 -3
  48. package/dist/src/Interfaces/ExternalIntegrations.js.map +0 -1
  49. package/dist/src/Interfaces/HybridCrossPlatform.js +0 -3
  50. package/dist/src/Interfaces/HybridCrossPlatform.js.map +0 -1
  51. package/dist/src/Interfaces/Pipelines.js +0 -3
  52. package/dist/src/Interfaces/Pipelines.js.map +0 -1
  53. package/dist/src/Interfaces/ProjectManagement.js +0 -3
  54. package/dist/src/Interfaces/ProjectManagement.js.map +0 -1
  55. package/dist/src/Interfaces/TestingCapabilities.js +0 -3
  56. package/dist/src/Interfaces/TestingCapabilities.js.map +0 -1
  57. package/dist/src/Interfaces/Wiki.js +0 -3
  58. package/dist/src/Interfaces/Wiki.js.map +0 -1
  59. package/dist/src/Interfaces/WorkItems.js +0 -3
  60. package/dist/src/Interfaces/WorkItems.js.map +0 -1
  61. package/dist/src/Services/AIAssistedDevelopmentService.js +0 -195
  62. package/dist/src/Services/AIAssistedDevelopmentService.js.map +0 -1
  63. package/dist/src/Services/ArtifactManagementService.js +0 -346
  64. package/dist/src/Services/ArtifactManagementService.js.map +0 -1
  65. package/dist/src/Services/AzureDevOpsService.js +0 -385
  66. package/dist/src/Services/AzureDevOpsService.js.map +0 -1
  67. package/dist/src/Services/BoardsSprintsService.js +0 -339
  68. package/dist/src/Services/BoardsSprintsService.js.map +0 -1
  69. package/dist/src/Services/BuildService.js +0 -405
  70. package/dist/src/Services/BuildService.js.map +0 -1
  71. package/dist/src/Services/DevSecOpsService.js +0 -307
  72. package/dist/src/Services/DevSecOpsService.js.map +0 -1
  73. package/dist/src/Services/EntraAuthHandler.js +0 -337
  74. package/dist/src/Services/EntraAuthHandler.js.map +0 -1
  75. package/dist/src/Services/GitService.js +0 -1595
  76. package/dist/src/Services/GitService.js.map +0 -1
  77. package/dist/src/Services/ProjectService.js +0 -257
  78. package/dist/src/Services/ProjectService.js.map +0 -1
  79. package/dist/src/Services/TestingCapabilitiesService.js +0 -149
  80. package/dist/src/Services/TestingCapabilitiesService.js.map +0 -1
  81. package/dist/src/Services/WikiService.js +0 -90
  82. package/dist/src/Services/WikiService.js.map +0 -1
  83. package/dist/src/Services/WorkItemService.js +0 -885
  84. package/dist/src/Services/WorkItemService.js.map +0 -1
  85. package/dist/src/Tools/AIAssistedDevelopmentTools.js +0 -137
  86. package/dist/src/Tools/AIAssistedDevelopmentTools.js.map +0 -1
  87. package/dist/src/Tools/ArtifactManagementTools.js +0 -140
  88. package/dist/src/Tools/ArtifactManagementTools.js.map +0 -1
  89. package/dist/src/Tools/BoardsSprintsTools.js +0 -338
  90. package/dist/src/Tools/BoardsSprintsTools.js.map +0 -1
  91. package/dist/src/Tools/BuildTools.js +0 -468
  92. package/dist/src/Tools/BuildTools.js.map +0 -1
  93. package/dist/src/Tools/DevSecOpsTools.js +0 -147
  94. package/dist/src/Tools/DevSecOpsTools.js.map +0 -1
  95. package/dist/src/Tools/GitTools.js +0 -1475
  96. package/dist/src/Tools/GitTools.js.map +0 -1
  97. package/dist/src/Tools/ProjectTools.js +0 -360
  98. package/dist/src/Tools/ProjectTools.js.map +0 -1
  99. package/dist/src/Tools/TestingCapabilitiesTools.js +0 -157
  100. package/dist/src/Tools/TestingCapabilitiesTools.js.map +0 -1
  101. package/dist/src/Tools/WikiTools.js +0 -137
  102. package/dist/src/Tools/WikiTools.js.map +0 -1
  103. package/dist/src/Tools/WorkItemTools.js +0 -862
  104. package/dist/src/Tools/WorkItemTools.js.map +0 -1
  105. package/dist/src/config.js +0 -176
  106. package/dist/src/config.js.map +0 -1
  107. package/dist/src/index.js +0 -1716
  108. package/dist/src/index.js.map +0 -1
  109. package/dist/src/utils/formatHelpers.js +0 -257
  110. package/dist/src/utils/formatHelpers.js.map +0 -1
  111. package/dist/src/utils/getClassMethods.js +0 -8
  112. package/dist/src/utils/getClassMethods.js.map +0 -1
  113. package/dist/src/utils/repositoryResolver.js +0 -40
  114. package/dist/src/utils/repositoryResolver.js.map +0 -1
@@ -1,405 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BuildService = void 0;
4
- const BuildInterfaces_1 = require("azure-devops-node-api/interfaces/BuildInterfaces");
5
- const AzureDevOpsService_1 = require("./AzureDevOpsService");
6
- class BuildService extends AzureDevOpsService_1.AzureDevOpsService {
7
- constructor(config) {
8
- super(config);
9
- }
10
- async getBuildApi() {
11
- return await this.connection.getBuildApi();
12
- }
13
- /**
14
- * List builds with optional filters.
15
- */
16
- async getBuilds(params) {
17
- const buildApi = await this.getBuildApi();
18
- const project = params.project || this.config.project;
19
- const statusFilter = params.statusFilter ? this.parseBuildStatus(params.statusFilter) : undefined;
20
- const resultFilter = params.resultFilter ? this.parseBuildResult(params.resultFilter) : undefined;
21
- const queryOrder = params.queryOrder === 'startTimeAscending'
22
- ? BuildInterfaces_1.BuildQueryOrder.StartTimeAscending
23
- : BuildInterfaces_1.BuildQueryOrder.StartTimeDescending;
24
- const builds = await this.withAuthRetry(() => buildApi.getBuilds(project, params.definitions, // definitions
25
- undefined, // queues
26
- undefined, // buildNumber
27
- undefined, // minTime
28
- undefined, // maxTime
29
- params.requestedFor, // requestedFor
30
- undefined, // reasonFilter
31
- statusFilter, // statusFilter
32
- resultFilter, // resultFilter
33
- params.tagFilters, // tagFilters
34
- undefined, // properties
35
- params.top || 25, // top
36
- undefined, // continuationToken
37
- undefined, // maxBuildsPerDefinition
38
- undefined, // deletedFilter
39
- queryOrder, // queryOrder
40
- params.branchName, // branchName
41
- undefined, // buildIds
42
- params.repositoryId, // repositoryId
43
- params.repositoryType), {
44
- operationName: 'builds.list',
45
- details: {
46
- project,
47
- top: params.top || 25,
48
- branchName: params.branchName,
49
- repositoryId: params.repositoryId,
50
- statusFilter: params.statusFilter,
51
- resultFilter: params.resultFilter,
52
- },
53
- });
54
- return builds || [];
55
- }
56
- /**
57
- * Get a single build by ID.
58
- */
59
- async getBuild(params) {
60
- const buildApi = await this.getBuildApi();
61
- const project = params.project || this.config.project;
62
- return await this.withAuthRetry(() => buildApi.getBuild(project, params.buildId), {
63
- operationName: 'builds.get',
64
- details: {
65
- project,
66
- buildId: params.buildId,
67
- },
68
- });
69
- }
70
- /**
71
- * Get build logs. If logId is provided, returns specific log lines; otherwise returns log metadata list.
72
- */
73
- async getBuildLogs(params) {
74
- const buildApi = await this.getBuildApi();
75
- const project = params.project || this.config.project;
76
- if (params.logId !== undefined) {
77
- // Get specific log lines
78
- const logId = params.logId;
79
- const lines = await this.withAuthRetry(() => buildApi.getBuildLogLines(project, params.buildId, logId, params.startLine, params.endLine), {
80
- operationName: 'builds.logs.lines',
81
- details: {
82
- project,
83
- buildId: params.buildId,
84
- logId,
85
- },
86
- });
87
- return { logId, lines: lines || [] };
88
- }
89
- // Get all log metadata
90
- const logs = await this.withAuthRetry(() => buildApi.getBuildLogs(project, params.buildId), {
91
- operationName: 'builds.logs.list',
92
- details: {
93
- project,
94
- buildId: params.buildId,
95
- },
96
- });
97
- return logs || [];
98
- }
99
- /**
100
- * Get changes (commits) associated with a build.
101
- */
102
- async getBuildChanges(params) {
103
- const buildApi = await this.getBuildApi();
104
- const project = params.project || this.config.project;
105
- const changes = await this.withAuthRetry(() => buildApi.getBuildChanges(project, params.buildId, undefined, // continuationToken
106
- params.top || 50), {
107
- operationName: 'builds.changes.list',
108
- details: {
109
- project,
110
- buildId: params.buildId,
111
- top: params.top || 50,
112
- },
113
- });
114
- return changes || [];
115
- }
116
- /**
117
- * List build/pipeline definitions.
118
- */
119
- async getDefinitions(params) {
120
- const buildApi = await this.getBuildApi();
121
- const project = params.project || this.config.project;
122
- const definitions = await this.withAuthRetry(() => buildApi.getDefinitions(project, params.name, // name filter
123
- params.repositoryId, // repositoryId
124
- params.repositoryType, // repositoryType
125
- undefined, // queryOrder
126
- params.top || 25, // top
127
- undefined, // continuationToken
128
- undefined, // minMetricsTime
129
- undefined, // definitionIds
130
- params.path, // path
131
- undefined, // builtAfter
132
- undefined, // notBuiltAfter
133
- undefined, // includeAllProperties
134
- params.includeLatestBuilds), {
135
- operationName: 'builds.definitions.list',
136
- details: {
137
- project,
138
- top: params.top || 25,
139
- repositoryId: params.repositoryId,
140
- path: params.path,
141
- name: params.name,
142
- },
143
- });
144
- return definitions || [];
145
- }
146
- /**
147
- * Get a single build definition by ID.
148
- */
149
- async getDefinition(params) {
150
- const buildApi = await this.getBuildApi();
151
- const project = params.project || this.config.project;
152
- return await this.withAuthRetry(() => buildApi.getDefinition(project, params.definitionId, undefined, // revision
153
- undefined, // minMetricsTime
154
- undefined, // propertyFilters
155
- params.includeLatestBuilds), {
156
- operationName: 'builds.definitions.get',
157
- details: {
158
- project,
159
- definitionId: params.definitionId,
160
- },
161
- });
162
- }
163
- /**
164
- * Queue/trigger a build run.
165
- */
166
- async runPipeline(params) {
167
- const buildApi = await this.getBuildApi();
168
- const project = params.project || this.config.project;
169
- const build = {
170
- definition: { id: params.definitionId },
171
- ...(params.sourceBranch && { sourceBranch: params.sourceBranch }),
172
- ...(params.parameters && { parameters: JSON.stringify(params.parameters) }),
173
- };
174
- return await this.withAuthRetry(() => buildApi.queueBuild(build, project), {
175
- operationName: 'builds.queue',
176
- details: {
177
- project,
178
- definitionId: params.definitionId,
179
- sourceBranch: params.sourceBranch,
180
- },
181
- });
182
- }
183
- /**
184
- * List artifacts for a build.
185
- */
186
- async getBuildArtifacts(params) {
187
- const buildApi = await this.getBuildApi();
188
- const project = params.project || this.config.project;
189
- const artifacts = await this.withAuthRetry(() => buildApi.getArtifacts(project, params.buildId), {
190
- operationName: 'builds.artifacts.list',
191
- details: {
192
- project,
193
- buildId: params.buildId,
194
- },
195
- });
196
- return artifacts || [];
197
- }
198
- /**
199
- * Get build timeline (stages, jobs, tasks).
200
- */
201
- async getBuildTimeline(params) {
202
- const buildApi = await this.getBuildApi();
203
- const project = params.project || this.config.project;
204
- return await this.withAuthRetry(() => buildApi.getBuildTimeline(project, params.buildId), {
205
- operationName: 'builds.timeline.get',
206
- details: {
207
- project,
208
- buildId: params.buildId,
209
- },
210
- });
211
- }
212
- /**
213
- * Get work items associated with a build.
214
- */
215
- async getBuildWorkItems(params) {
216
- const throttleNotices = [];
217
- const buildApi = await this.getBuildApi();
218
- const project = params.project || this.config.project;
219
- const refs = await this.withAuthRetry(() => buildApi.getBuildWorkItemsRefs(project, params.buildId, params.top || 50), {
220
- operationName: 'builds.workItems.refs',
221
- details: {
222
- project,
223
- buildId: params.buildId,
224
- top: params.top || 50,
225
- },
226
- }, throttleNotices);
227
- const workItems = await this.hydrateWorkItemRefs(refs || [], {
228
- fields: params.fields,
229
- operationName: 'builds.workItems.batchHydrate',
230
- project,
231
- throttleAccumulator: throttleNotices,
232
- });
233
- return {
234
- workItems,
235
- count: workItems.length,
236
- throttleInfo: AzureDevOpsService_1.AzureDevOpsService.buildThrottleInfo(throttleNotices),
237
- };
238
- }
239
- /**
240
- * Get builds associated with a pull request via policy evaluations.
241
- * Extracts build IDs from build validation policies and fetches build details.
242
- */
243
- async getPullRequestBuilds(params) {
244
- const buildApi = await this.getBuildApi();
245
- const project = params.project || this.config.project;
246
- // Get policy evaluations to find build IDs
247
- const policyApi = await this.connection.getPolicyApi();
248
- const coreApi = await this.connection.getCoreApi();
249
- const projectDetails = await this.withAuthRetry(() => coreApi.getProject(project), {
250
- operationName: 'builds.pullRequest.project',
251
- details: {
252
- project,
253
- pullRequestId: params.pullRequestId,
254
- },
255
- });
256
- const projectId = projectDetails?.id;
257
- if (!projectId) {
258
- throw new Error(`Could not resolve project ID for "${project}"`);
259
- }
260
- const artifactId = `vstfs:///CodeReview/CodeReviewId/${projectId}%2F${params.pullRequestId}`;
261
- const evaluations = await this.withAuthRetry(() => policyApi.getPolicyEvaluations(project, artifactId), {
262
- operationName: 'builds.pullRequest.policyEvaluations',
263
- details: {
264
- project,
265
- pullRequestId: params.pullRequestId,
266
- },
267
- });
268
- // Extract build IDs from build validation policy evaluations
269
- const buildInfos = [];
270
- for (const evaluation of (evaluations || [])) {
271
- const config = evaluation.configuration;
272
- if (!config?.type?.id)
273
- continue;
274
- // Build validation policy type ID: 0609b952-1397-4640-95ec-e00a01b2c241
275
- const policyTypeId = config.type.id;
276
- if (policyTypeId !== '0609b952-1397-4640-95ec-e00a01b2c241')
277
- continue;
278
- const settings = config.settings;
279
- if (!settings)
280
- continue;
281
- const buildDefinitionId = settings.buildDefinitionId;
282
- const displayName = settings.displayName || config.type.displayName || `Definition ${buildDefinitionId}`;
283
- // The most recent build ID is in the evaluation context
284
- const context = evaluation.context;
285
- const buildId = context?.buildId;
286
- if (buildId) {
287
- buildInfos.push({
288
- buildId,
289
- definitionName: displayName,
290
- status: String(evaluation.status ?? 'unknown'),
291
- });
292
- }
293
- else if (buildDefinitionId) {
294
- // No build yet — find most recent build for this definition on the PR branch
295
- try {
296
- const gitApi = await this.connection.getGitApi();
297
- const repositoryId = await this.resolveRepositoryId(params.repository, project);
298
- const pr = await gitApi.getPullRequest(repositoryId, params.pullRequestId, project);
299
- const branchName = pr.sourceRefName;
300
- if (branchName) {
301
- const builds = await this.withAuthRetry(() => buildApi.getBuilds(project, [buildDefinitionId], undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 1, // top=1, most recent
302
- undefined, undefined, undefined, BuildInterfaces_1.BuildQueryOrder.StartTimeDescending, branchName), {
303
- operationName: 'builds.pullRequest.validationBuilds',
304
- details: {
305
- project,
306
- pullRequestId: params.pullRequestId,
307
- definitionId: buildDefinitionId,
308
- },
309
- });
310
- if (builds && builds.length > 0) {
311
- buildInfos.push({
312
- buildId: builds[0].id,
313
- definitionName: displayName,
314
- status: String(evaluation.status ?? 'unknown'),
315
- });
316
- }
317
- }
318
- }
319
- catch {
320
- // Skip if we can't find the build
321
- }
322
- }
323
- }
324
- // Fetch build details and optionally timeline for each build (parallel)
325
- const builds = await Promise.all(buildInfos.map(async (info) => {
326
- try {
327
- const build = await this.withAuthRetry(() => buildApi.getBuild(project, info.buildId), {
328
- operationName: 'builds.pullRequest.buildDetails',
329
- details: {
330
- project,
331
- buildId: info.buildId,
332
- pullRequestId: params.pullRequestId,
333
- },
334
- });
335
- const buildResult = {
336
- ...build,
337
- policyDefinitionName: info.definitionName,
338
- policyStatus: info.status,
339
- };
340
- if (params.includeTimeline) {
341
- try {
342
- const timeline = await this.withAuthRetry(() => buildApi.getBuildTimeline(project, info.buildId), {
343
- operationName: 'builds.pullRequest.timeline',
344
- details: {
345
- project,
346
- buildId: info.buildId,
347
- },
348
- });
349
- buildResult.timeline = timeline;
350
- }
351
- catch {
352
- buildResult.timeline = null;
353
- }
354
- }
355
- if (params.includeLogs) {
356
- try {
357
- const logs = await this.withAuthRetry(() => buildApi.getBuildLogs(project, info.buildId), {
358
- operationName: 'builds.pullRequest.logs',
359
- details: {
360
- project,
361
- buildId: info.buildId,
362
- },
363
- });
364
- buildResult.logMetadata = logs;
365
- }
366
- catch {
367
- buildResult.logMetadata = null;
368
- }
369
- }
370
- return buildResult;
371
- }
372
- catch (error) {
373
- return {
374
- buildId: info.buildId,
375
- policyDefinitionName: info.definitionName,
376
- policyStatus: info.status,
377
- error: `Failed to fetch build details: ${error}`,
378
- };
379
- }
380
- }));
381
- return { builds, totalPolicyBuilds: buildInfos.length };
382
- }
383
- parseBuildStatus(status) {
384
- const map = {
385
- 'inprogress': BuildInterfaces_1.BuildStatus.InProgress,
386
- 'completed': BuildInterfaces_1.BuildStatus.Completed,
387
- 'cancelling': BuildInterfaces_1.BuildStatus.Cancelling,
388
- 'postponed': BuildInterfaces_1.BuildStatus.Postponed,
389
- 'notstarted': BuildInterfaces_1.BuildStatus.NotStarted,
390
- 'all': BuildInterfaces_1.BuildStatus.All,
391
- };
392
- return map[status.toLowerCase()];
393
- }
394
- parseBuildResult(result) {
395
- const map = {
396
- 'succeeded': BuildInterfaces_1.BuildResult.Succeeded,
397
- 'partiallysucceeded': BuildInterfaces_1.BuildResult.PartiallySucceeded,
398
- 'failed': BuildInterfaces_1.BuildResult.Failed,
399
- 'canceled': BuildInterfaces_1.BuildResult.Canceled,
400
- };
401
- return map[result.toLowerCase()];
402
- }
403
- }
404
- exports.BuildService = BuildService;
405
- //# sourceMappingURL=BuildService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BuildService.js","sourceRoot":"","sources":["../../../src/Services/BuildService.ts"],"names":[],"mappings":";;;AACA,sFAA6G;AAE7G,6DAA0D;AAe1D,MAAa,YAAa,SAAQ,uCAAkB;IAClD,YAAY,MAAyB;QACnC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,WAAW;QACvB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,SAAS,CAAC,MAAwB;QAC7C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAEtD,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClG,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClG,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,KAAK,oBAAoB;YAC3D,CAAC,CAAC,iCAAe,CAAC,kBAAkB;YACpC,CAAC,CAAC,iCAAe,CAAC,mBAAmB,CAAC;QAExC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAC9D,OAAO,EACP,MAAM,CAAC,WAAW,EAAQ,cAAc;QACxC,SAAS,EAAiB,SAAS;QACnC,SAAS,EAAiB,cAAc;QACxC,SAAS,EAAiB,UAAU;QACpC,SAAS,EAAiB,UAAU;QACpC,MAAM,CAAC,YAAY,EAAO,eAAe;QACzC,SAAS,EAAiB,eAAe;QACzC,YAAY,EAAc,eAAe;QACzC,YAAY,EAAc,eAAe;QACzC,MAAM,CAAC,UAAU,EAAS,aAAa;QACvC,SAAS,EAAiB,aAAa;QACvC,MAAM,CAAC,GAAG,IAAI,EAAE,EAAU,MAAM;QAChC,SAAS,EAAiB,oBAAoB;QAC9C,SAAS,EAAiB,yBAAyB;QACnD,SAAS,EAAiB,gBAAgB;QAC1C,UAAU,EAAgB,aAAa;QACvC,MAAM,CAAC,UAAU,EAAS,aAAa;QACvC,SAAS,EAAiB,WAAW;QACrC,MAAM,CAAC,YAAY,EAAO,eAAe;QACzC,MAAM,CAAC,cAAc,CACtB,EAAE;YACD,aAAa,EAAE,aAAa;YAC5B,OAAO,EAAE;gBACP,OAAO;gBACP,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE;gBACrB,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,YAAY,EAAE,MAAM,CAAC,YAAY;aAClC;SACF,CAAC,CAAC;QAEH,OAAO,MAAM,IAAI,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,QAAQ,CAAC,MAAsB;QAC1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QACtD,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;YAChF,aAAa,EAAE,YAAY;YAC3B,OAAO,EAAE;gBACP,OAAO;gBACP,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB;SACF,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,YAAY,CAAC,MAAyB;QACjD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAEtD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,yBAAyB;YACzB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CACpE,OAAO,EACP,MAAM,CAAC,OAAO,EACd,KAAK,EACL,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,OAAO,CACf,EAAE;gBACD,aAAa,EAAE,mBAAmB;gBAClC,OAAO,EAAE;oBACP,OAAO;oBACP,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,KAAK;iBACN;aACF,CAAC,CAAC;YACH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;QACvC,CAAC;QAED,uBAAuB;QACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;YAC1F,aAAa,EAAE,kBAAkB;YACjC,OAAO,EAAE;gBACP,OAAO;gBACP,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB;SACF,CAAC,CAAC;QACH,OAAO,IAAI,IAAI,EAAE,CAAC;IACpB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,eAAe,CAAC,MAA6B;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAEtD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,eAAe,CACrE,OAAO,EACP,MAAM,CAAC,OAAO,EACd,SAAS,EAAQ,oBAAoB;QACrC,MAAM,CAAC,GAAG,IAAI,EAAE,CACjB,EAAE;YACD,aAAa,EAAE,qBAAqB;YACpC,OAAO,EAAE;gBACP,OAAO;gBACP,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE;aACtB;SACF,CAAC,CAAC;QACH,OAAO,OAAO,IAAI,EAAE,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,cAAc,CAAC,MAA6B;QACvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAEtD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CACxE,OAAO,EACP,MAAM,CAAC,IAAI,EAAe,cAAc;QACxC,MAAM,CAAC,YAAY,EAAO,eAAe;QACzC,MAAM,CAAC,cAAc,EAAK,iBAAiB;QAC3C,SAAS,EAAiB,aAAa;QACvC,MAAM,CAAC,GAAG,IAAI,EAAE,EAAU,MAAM;QAChC,SAAS,EAAiB,oBAAoB;QAC9C,SAAS,EAAiB,iBAAiB;QAC3C,SAAS,EAAiB,gBAAgB;QAC1C,MAAM,CAAC,IAAI,EAAe,OAAO;QACjC,SAAS,EAAiB,aAAa;QACvC,SAAS,EAAiB,gBAAgB;QAC1C,SAAS,EAAiB,uBAAuB;QACjD,MAAM,CAAC,mBAAmB,CAC3B,EAAE;YACD,aAAa,EAAE,yBAAyB;YACxC,OAAO,EAAE;gBACP,OAAO;gBACP,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE;gBACrB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB;SACF,CAAC,CAAC;QACH,OAAO,WAAW,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,aAAa,CAAC,MAA2B;QACpD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAEtD,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAC1D,OAAO,EACP,MAAM,CAAC,YAAY,EACnB,SAAS,EAAoB,WAAW;QACxC,SAAS,EAAoB,iBAAiB;QAC9C,SAAS,EAAoB,kBAAkB;QAC/C,MAAM,CAAC,mBAAmB,CAC3B,EAAE;YACD,aAAa,EAAE,wBAAwB;YACvC,OAAO,EAAE;gBACP,OAAO;gBACP,YAAY,EAAE,MAAM,CAAC,YAAY;aAClC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,WAAW,CAAC,MAAyB;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAEtD,MAAM,KAAK,GAAQ;YACjB,UAAU,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,YAAY,EAAE;YACvC,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;YACjE,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;SAC5E,CAAC;QAEF,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;YACzE,aAAa,EAAE,cAAc;YAC7B,OAAO,EAAE;gBACP,OAAO;gBACP,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,YAAY,EAAE,MAAM,CAAC,YAAY;aAClC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,iBAAiB,CAAC,MAAgC;QAC7D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QACtD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;YAC/F,aAAa,EAAE,uBAAuB;YACtC,OAAO,EAAE;gBACP,OAAO;gBACP,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB;SACF,CAAC,CAAC;QACH,OAAO,SAAS,IAAI,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,gBAAgB,CAAC,MAA8B;QAC1D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QACtD,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;YACxF,aAAa,EAAE,qBAAqB;YACpC,OAAO,EAAE;gBACP,OAAO;gBACP,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB;SACF,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,iBAAiB,CAAC,MAA+B;QAC5D,MAAM,eAAe,GAAoD,EAAE,CAAC;QAC5E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QACtD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;YACrH,aAAa,EAAE,uBAAuB;YACtC,OAAO,EAAE;gBACP,OAAO;gBACP,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE;aACtB;SACF,EAAE,eAAe,CAAC,CAAC;QAEpB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,IAAI,EAAE,EAAE;YAC3D,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,aAAa,EAAE,+BAA+B;YAC9C,OAAO;YACP,mBAAmB,EAAE,eAAe;SACrC,CAAC,CAAC;QAEH,OAAO;YACL,SAAS;YACT,KAAK,EAAE,SAAS,CAAC,MAAM;YACvB,YAAY,EAAE,uCAAkB,CAAC,iBAAiB,CAAC,eAAe,CAAC;SACpE,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,oBAAoB,CAAC,MAAkC;QAClE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAEtD,2CAA2C;QAC3C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;QACvD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QACnD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YACjF,aAAa,EAAE,4BAA4B;YAC3C,OAAO,EAAE;gBACP,OAAO;gBACP,aAAa,EAAE,MAAM,CAAC,aAAa;aACpC;SACF,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,cAAc,EAAE,EAAE,CAAC;QACrC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,qCAAqC,OAAO,GAAG,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,UAAU,GAAG,oCAAoC,SAAS,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;QAC7F,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;YACtG,aAAa,EAAE,sCAAsC;YACrD,OAAO,EAAE;gBACP,OAAO;gBACP,aAAa,EAAE,MAAM,CAAC,aAAa;aACpC;SACF,CAAC,CAAC;QAEH,6DAA6D;QAC7D,MAAM,UAAU,GAAmF,EAAE,CAAC;QACtG,KAAK,MAAM,UAAU,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC;YACxC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;gBAAE,SAAS;YAEhC,wEAAwE;YACxE,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,IAAI,YAAY,KAAK,sCAAsC;gBAAE,SAAS;YAEtE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YACjC,IAAI,CAAC,QAAQ;gBAAE,SAAS;YAExB,MAAM,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;YACrD,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,cAAc,iBAAiB,EAAE,CAAC;YAEzG,wDAAwD;YACxD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAc,CAAC;YAC1C,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;YAEjC,IAAI,OAAO,EAAE,CAAC;gBACZ,UAAU,CAAC,IAAI,CAAC;oBACd,OAAO;oBACP,cAAc,EAAE,WAAW;oBAC3B,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,SAAS,CAAC;iBAC/C,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,iBAAiB,EAAE,CAAC;gBAC7B,6EAA6E;gBAC7E,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;oBACjD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;oBAChF,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;oBACpF,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC;oBACpC,IAAI,UAAU,EAAE,CAAC;wBACf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAC9D,OAAO,EACP,CAAC,iBAAiB,CAAC,EACnB,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAChE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAC1C,CAAC,EAAE,qBAAqB;wBACxB,SAAS,EAAE,SAAS,EAAE,SAAS,EAC/B,iCAAe,CAAC,mBAAmB,EACnC,UAAU,CACX,EAAE;4BACD,aAAa,EAAE,qCAAqC;4BACpD,OAAO,EAAE;gCACP,OAAO;gCACP,aAAa,EAAE,MAAM,CAAC,aAAa;gCACnC,YAAY,EAAE,iBAAiB;6BAChC;yBACF,CAAC,CAAC;wBACH,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAChC,UAAU,CAAC,IAAI,CAAC;gCACd,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAG;gCACtB,cAAc,EAAE,WAAW;gCAC3B,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,SAAS,CAAC;6BAC/C,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,kCAAkC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC;QAED,wEAAwE;QACxE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAC7D,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;oBACrF,aAAa,EAAE,iCAAiC;oBAChD,OAAO,EAAE;wBACP,OAAO;wBACP,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,aAAa,EAAE,MAAM,CAAC,aAAa;qBACpC;iBACF,CAAC,CAAC;gBACH,MAAM,WAAW,GAAQ;oBACvB,GAAG,KAAK;oBACR,oBAAoB,EAAE,IAAI,CAAC,cAAc;oBACzC,YAAY,EAAE,IAAI,CAAC,MAAM;iBAC1B,CAAC;gBAEF,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;oBAC3B,IAAI,CAAC;wBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;4BAChG,aAAa,EAAE,6BAA6B;4BAC5C,OAAO,EAAE;gCACP,OAAO;gCACP,OAAO,EAAE,IAAI,CAAC,OAAO;6BACtB;yBACF,CAAC,CAAC;wBACH,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBAClC,CAAC;oBAAC,MAAM,CAAC;wBACP,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;oBAC9B,CAAC;gBACH,CAAC;gBAED,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;oBACvB,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;4BACxF,aAAa,EAAE,yBAAyB;4BACxC,OAAO,EAAE;gCACP,OAAO;gCACP,OAAO,EAAE,IAAI,CAAC,OAAO;6BACtB;yBACF,CAAC,CAAC;wBACH,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC;oBACjC,CAAC;oBAAC,MAAM,CAAC;wBACP,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC;oBACjC,CAAC;gBACH,CAAC;gBAED,OAAO,WAAW,CAAC;YACrB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,oBAAoB,EAAE,IAAI,CAAC,cAAc;oBACzC,YAAY,EAAE,IAAI,CAAC,MAAM;oBACzB,KAAK,EAAE,kCAAkC,KAAK,EAAE;iBACjD,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC,CAAC;QAEJ,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;IAC1D,CAAC;IAEO,gBAAgB,CAAC,MAAc;QACrC,MAAM,GAAG,GAAgC;YACvC,YAAY,EAAE,6BAAW,CAAC,UAAU;YACpC,WAAW,EAAE,6BAAW,CAAC,SAAS;YAClC,YAAY,EAAE,6BAAW,CAAC,UAAU;YACpC,WAAW,EAAE,6BAAW,CAAC,SAAS;YAClC,YAAY,EAAE,6BAAW,CAAC,UAAU;YACpC,KAAK,EAAE,6BAAW,CAAC,GAAG;SACvB,CAAC;QACF,OAAO,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACnC,CAAC;IAEO,gBAAgB,CAAC,MAAc;QACrC,MAAM,GAAG,GAAgC;YACvC,WAAW,EAAE,6BAAW,CAAC,SAAS;YAClC,oBAAoB,EAAE,6BAAW,CAAC,kBAAkB;YACpD,QAAQ,EAAE,6BAAW,CAAC,MAAM;YAC5B,UAAU,EAAE,6BAAW,CAAC,QAAQ;SACjC,CAAC;QACF,OAAO,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACnC,CAAC;CACF;AAxcD,oCAwcC"}