adminforth 3.0.0-test.1 → 3.0.0-test.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -9,7 +9,6 @@ import { AdminForthFilterOperators, AdminForthDataTypes, ActionCheckSource, } fr
9
9
  import AdminForthPlugin from './basePlugin.js';
10
10
  import ConfigValidator from './modules/configValidator.js';
11
11
  import AdminForthRestAPI, { interpretResource } from './modules/restApi.js';
12
- import QdrantConnector from './dataConnectors/qdrant.js';
13
12
  import OperationalResource from './modules/operationalResource.js';
14
13
  import SocketBroker from './modules/socketBroker.js';
15
14
  import { afLogger } from './modules/logger.js';
@@ -317,20 +316,52 @@ class AdminForth {
317
316
  return connectorModule.default;
318
317
  }
319
318
  catch (e) {
320
- throw new Error(`____________________
321
- Error while importing ${connectorName} connector: ${e}.
322
- If you want to use ${connectorName} data source, please install @adminforth/connector-${connectorName} package.
323
- ____________________
319
+ throw new Error(`
320
+ ╔════════════════════════════════════════════════════════════════════════════╗
321
+ ║ ║
322
+ ║ ❌ CONNECTOR IMPORT ERROR ║
323
+ ║ ──────────────────────────────────────────────────────────────────────── ║
324
+ ║ ║
325
+ ║ Error while importing ${connectorName} connector: ${e} ║
326
+ ║ ║
327
+ ║ 💡 SOLUTION ║
328
+ ║ Install the required package: ║
329
+ ║ ║
330
+ ║ npm install @adminforth/connector-${connectorName} ║
331
+ ║ # or ║
332
+ ║ pnpm add @adminforth/connector-${connectorName} ║
333
+ ║ ║
334
+ ╚════════════════════════════════════════════════════════════════════════════╝
324
335
  `);
325
336
  }
326
337
  }
327
338
  async discoverDatabases() {
328
339
  this.statuses.dbDiscover = 'running';
329
- const SQLiteConnector = await this.tryToImportConnector('sqlite');
330
- const PostgresConnector = await this.tryToImportConnector('postgres');
331
- const MongoConnector = await this.tryToImportConnector('mongo');
332
- const ClickhouseConnector = await this.tryToImportConnector('clickhouse');
333
- const MysqlConnector = await this.tryToImportConnector('mysql');
340
+ const dataSourcesDatabasesTypes = [];
341
+ this.config.dataSources.forEach((ds) => {
342
+ const dbType = ds.url.split(':')[0];
343
+ dataSourcesDatabasesTypes.push(dbType);
344
+ });
345
+ const uniqueDbTypes = [...new Set(dataSourcesDatabasesTypes)];
346
+ let SQLiteConnector, PostgresConnector, MongoConnector, ClickhouseConnector, MysqlConnector, QdrantConnector;
347
+ if (uniqueDbTypes.includes('sqlite')) {
348
+ SQLiteConnector = await this.tryToImportConnector('sqlite');
349
+ }
350
+ if (uniqueDbTypes.includes('postgres') || uniqueDbTypes.includes('postgresql')) {
351
+ PostgresConnector = await this.tryToImportConnector('postgres');
352
+ }
353
+ if (uniqueDbTypes.includes('mongodb')) {
354
+ MongoConnector = await this.tryToImportConnector('mongo');
355
+ }
356
+ if (uniqueDbTypes.includes('clickhouse')) {
357
+ ClickhouseConnector = await this.tryToImportConnector('clickhouse');
358
+ }
359
+ if (uniqueDbTypes.includes('mysql')) {
360
+ MysqlConnector = await this.tryToImportConnector('mysql');
361
+ }
362
+ if (uniqueDbTypes.includes('qdrant')) {
363
+ QdrantConnector = await this.tryToImportConnector('qdrant');
364
+ }
334
365
  this.connectorClasses = {
335
366
  'sqlite': SQLiteConnector,
336
367
  'postgres': PostgresConnector,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "adminforth",
3
- "version": "3.0.0-test.1",
3
+ "version": "3.0.0-test.3",
4
4
  "description": "OpenSource Agent-Native forth-generation admin panel",
5
5
  "keywords": [
6
6
  "adminforth",
@@ -87,10 +87,8 @@
87
87
  "@babel/parser": "^7.27.5",
88
88
  "@faker-js/faker": "^9.0.3",
89
89
  "@inquirer/prompts": "^7.4.1",
90
- "@qdrant/js-client-rest": "^1.17.0",
91
90
  "@scalar/express-api-reference": "^0.9.7",
92
91
  "@types/express": "^4.17.21",
93
- "adminforth": "link:",
94
92
  "ajv": "^8.18.0",
95
93
  "arg": "^5.0.2",
96
94
  "ast-types": "^0.14.2",
@@ -1,57 +0,0 @@
1
- import type { AdminForthResource, AdminForthResourceColumn, IAdminForthAndOrFilter, IAdminForthDataSourceConnector, IAdminForthSort } from '../types/Back.js';
2
- import AdminForthBaseConnector from './baseConnector.js';
3
- declare class QdrantConnector extends AdminForthBaseConnector implements IAdminForthDataSourceConnector {
4
- private static readonly MIN_SCROLL_PAGE_SIZE;
5
- setupClient(url: string): Promise<void>;
6
- private getCollectionName;
7
- private normalizePointId;
8
- private getSingleIdFilterValue;
9
- private isLocalOnlyFilter;
10
- getAllTables(): Promise<Array<string>>;
11
- discoverFields(resource: any): Promise<any>;
12
- getFieldValue(field: AdminForthResourceColumn, value: any): any;
13
- setFieldValue(_field: AdminForthResourceColumn, value: any): any;
14
- private detectColumnType;
15
- private getPointFieldValue;
16
- private normalizeComparable;
17
- private compareValues;
18
- private matchesFilter;
19
- private toQdrantMatchValue;
20
- private toQdrantFilter;
21
- private mapPointToRecord;
22
- private sortRecords;
23
- private canUseServerSideSort;
24
- private isBadRequestError;
25
- private getScrollArgs;
26
- private scrollPage;
27
- private filterPoints;
28
- private collectMatchingPoints;
29
- private getDirectIdRecords;
30
- getDataWithOriginalTypes({ resource, limit, offset, sort, filters }: {
31
- resource: AdminForthResource;
32
- limit: number;
33
- offset: number;
34
- sort: IAdminForthSort[];
35
- filters: IAdminForthAndOrFilter;
36
- }): Promise<any[]>;
37
- getCount({ resource, filters }: {
38
- resource: AdminForthResource;
39
- filters: IAdminForthAndOrFilter;
40
- }): Promise<number>;
41
- getMinMaxForColumnsWithOriginalTypes({ resource, columns }: {
42
- resource: AdminForthResource;
43
- columns: AdminForthResourceColumn[];
44
- }): Promise<{
45
- [key: string]: {
46
- min: any;
47
- max: any;
48
- };
49
- }>;
50
- createRecordOriginalValues(): Promise<string>;
51
- updateRecordOriginalValues(): Promise<void>;
52
- deleteRecord(): Promise<boolean>;
53
- deleteMany(): Promise<number>;
54
- close(): Promise<void>;
55
- }
56
- export default QdrantConnector;
57
- //# sourceMappingURL=qdrant.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"qdrant.d.ts","sourceRoot":"","sources":["../../dataConnectors/qdrant.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEX,kBAAkB,EAClB,wBAAwB,EACxB,sBAAsB,EACtB,8BAA8B,EAE9B,eAAe,EACf,MAAM,kBAAkB,CAAC;AAM1B,OAAO,uBAAuB,MAAM,oBAAoB,CAAC;AAUzD,cAAM,eAAgB,SAAQ,uBAAwB,YAAW,8BAA8B;IAC9F,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAM;IAE5C,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS7C,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,iBAAiB;IAWnB,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAMtC,cAAc,CAAC,QAAQ,KAAA;IAkB7B,aAAa,CAAC,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,GAAG;IAiBzD,aAAa,CAAC,MAAM,EAAE,wBAAwB,EAAE,KAAK,EAAE,GAAG;IAK1D,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,aAAa;IAgCrB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,cAAc;IA4DtB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,WAAW;IA6BnB,OAAO,CAAC,oBAAoB;IAyB5B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,aAAa;YAYP,UAAU;IAoCxB,OAAO,CAAC,YAAY;YAMN,qBAAqB;YAyBrB,kBAAkB;IAW1B,wBAAwB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QAC1E,QAAQ,EAAE,kBAAkB,CAAC;QAC7B,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,eAAe,EAAE,CAAC;QACxB,OAAO,EAAE,sBAAsB,CAAC;KAChC,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAsBZ,QAAQ,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;QAAE,QAAQ,EAAE,kBAAkB,CAAC;QAAC,OAAO,EAAE,sBAAsB,CAAC;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IA2BpH,oCAAoC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;QAAE,QAAQ,EAAE,kBAAkB,CAAC;QAAC,OAAO,EAAE,wBAAwB,EAAE,CAAC;KAAE,GAAG,OAAO,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,GAAG,EAAE,GAAG,CAAC;YAAC,GAAG,EAAE,GAAG,CAAC;SAAE,CAAC;KAAE,CAAC;IAyBzL,0BAA0B,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7C,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3C,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAIhC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7B,KAAK;CAGX;AAED,eAAe,eAAe,CAAC"}
@@ -1,469 +0,0 @@
1
- import { QdrantClient } from '@qdrant/js-client-rest';
2
- import dayjs from 'dayjs';
3
- import { AdminForthDataTypes, AdminForthFilterOperators, AdminForthSortDirections, } from '../types/Common.js';
4
- import AdminForthBaseConnector from './baseConnector.js';
5
- class QdrantConnector extends AdminForthBaseConnector {
6
- async setupClient(url) {
7
- const parsed = new URL(url);
8
- const apiKey = parsed.searchParams.get('apiKey');
9
- this.client = new QdrantClient(Object.assign({ url: `http://${parsed.host}` }, (apiKey ? { apiKey } : {})));
10
- }
11
- getCollectionName(resource) {
12
- return resource.table;
13
- }
14
- // Qdrant point ids can be strings or numbers
15
- normalizePointId(value) {
16
- if (typeof value === 'number') {
17
- return value;
18
- }
19
- if (typeof value === 'string') {
20
- const trimmed = value.trim();
21
- if (!trimmed) {
22
- throw new Error('Qdrant point id cannot be empty');
23
- }
24
- if (/^-?\d+$/.test(trimmed) && Number.isSafeInteger(Number(trimmed))) {
25
- return Number(trimmed);
26
- }
27
- return trimmed;
28
- }
29
- throw new Error(`Unsupported Qdrant point id type: ${typeof value}`);
30
- }
31
- // Checks if the filter is a simple equality filter on the 'id'
32
- getSingleIdFilterValue(filter) {
33
- if (filter.operator !== AdminForthFilterOperators.AND || filter.subFilters.length !== 1) {
34
- return undefined;
35
- }
36
- const single = filter.subFilters[0];
37
- if (single.field !== 'id'
38
- || single.operator !== AdminForthFilterOperators.EQ
39
- || single.rightField !== undefined
40
- || single.value === undefined) {
41
- return undefined;
42
- }
43
- return this.normalizePointId(single.value);
44
- }
45
- // check if we can use this filter in quadrant
46
- isLocalOnlyFilter(filter) {
47
- const single = filter;
48
- if (single.field || single.insecureRawNoSQL !== undefined || single.insecureRawSQL !== undefined) {
49
- return this.toQdrantFilter(filter) === undefined;
50
- }
51
- const complex = filter;
52
- return complex.subFilters.some((subFilter) => this.isLocalOnlyFilter(subFilter));
53
- }
54
- // get all collections
55
- async getAllTables() {
56
- var _a;
57
- const collections = await this.client.getCollections();
58
- return ((_a = collections.collections) !== null && _a !== void 0 ? _a : []).map((collection) => collection.name);
59
- }
60
- // discover fields
61
- async discoverFields(resource) {
62
- return resource.columns.filter((col) => !col.virtual).reduce((acc, col) => {
63
- if (!col.type) {
64
- throw new Error(`Type is not defined for column ${col.name} in resource ${resource.table}`);
65
- }
66
- acc[col.name] = {
67
- name: col.name,
68
- type: col.type,
69
- primaryKey: col.primaryKey,
70
- virtual: col.virtual,
71
- _underlineType: col._underlineType,
72
- };
73
- return acc;
74
- }, {});
75
- }
76
- // get field value
77
- getFieldValue(field, value) {
78
- if (value === undefined) {
79
- return null;
80
- }
81
- if (field.type === AdminForthDataTypes.DATETIME) {
82
- return value ? dayjs(value).toISOString() : null;
83
- }
84
- if (field.type === AdminForthDataTypes.DATE) {
85
- return value ? dayjs(value).format('YYYY-MM-DD') : null;
86
- }
87
- if (field.type === AdminForthDataTypes.BOOLEAN) {
88
- return value === null ? null : !!value;
89
- }
90
- return value;
91
- }
92
- //just passthrough
93
- setFieldValue(_field, value) {
94
- return value;
95
- }
96
- // detect column type for the discover fields
97
- detectColumnType(value) {
98
- if (value === null || value === undefined) {
99
- return AdminForthDataTypes.STRING;
100
- }
101
- if (typeof value === 'boolean') {
102
- return AdminForthDataTypes.BOOLEAN;
103
- }
104
- if (typeof value === 'number') {
105
- return Number.isInteger(value) ? AdminForthDataTypes.INTEGER : AdminForthDataTypes.FLOAT;
106
- }
107
- if (typeof value === 'string') {
108
- if (dayjs(value).isValid() && value.includes('T')) {
109
- return AdminForthDataTypes.DATETIME;
110
- }
111
- return AdminForthDataTypes.STRING;
112
- }
113
- return AdminForthDataTypes.JSON;
114
- }
115
- // get field value from point based on field name
116
- getPointFieldValue(point, fieldName) {
117
- var _a, _b, _c, _d, _e;
118
- if (fieldName === 'id') {
119
- return (_a = point.id) !== null && _a !== void 0 ? _a : null;
120
- }
121
- if (fieldName === 'payload') {
122
- return (_b = point.payload) !== null && _b !== void 0 ? _b : null;
123
- }
124
- if (fieldName === 'vector') {
125
- return (_c = point.vector) !== null && _c !== void 0 ? _c : null;
126
- }
127
- return (_e = (_d = point.payload) === null || _d === void 0 ? void 0 : _d[fieldName]) !== null && _e !== void 0 ? _e : null;
128
- }
129
- // for comparison purposes
130
- normalizeComparable(value) {
131
- if (Array.isArray(value)) {
132
- return value.map((item) => this.normalizeComparable(item));
133
- }
134
- if (value && typeof value === 'object') {
135
- return JSON.stringify(value);
136
- }
137
- return value;
138
- }
139
- // compare actual and expected values based on the operator
140
- compareValues(operator, actual, expected) {
141
- switch (operator) {
142
- case AdminForthFilterOperators.EQ:
143
- return this.normalizeComparable(actual) === this.normalizeComparable(expected);
144
- case AdminForthFilterOperators.NE:
145
- return this.normalizeComparable(actual) !== this.normalizeComparable(expected);
146
- case AdminForthFilterOperators.GT:
147
- return actual > expected;
148
- case AdminForthFilterOperators.GTE:
149
- return actual >= expected;
150
- case AdminForthFilterOperators.LT:
151
- return actual < expected;
152
- case AdminForthFilterOperators.LTE:
153
- return actual <= expected;
154
- case AdminForthFilterOperators.LIKE:
155
- return String(actual !== null && actual !== void 0 ? actual : '').includes(String(expected !== null && expected !== void 0 ? expected : ''));
156
- case AdminForthFilterOperators.ILIKE:
157
- return String(actual !== null && actual !== void 0 ? actual : '').toLowerCase().includes(String(expected !== null && expected !== void 0 ? expected : '').toLowerCase());
158
- case AdminForthFilterOperators.IN:
159
- return Array.isArray(expected) && expected.some((item) => this.normalizeComparable(item) === this.normalizeComparable(actual));
160
- case AdminForthFilterOperators.NIN:
161
- return Array.isArray(expected) && !expected.some((item) => this.normalizeComparable(item) === this.normalizeComparable(actual));
162
- case AdminForthFilterOperators.IS_EMPTY:
163
- return actual === null || actual === undefined || actual === '' || (Array.isArray(actual) && actual.length === 0);
164
- case AdminForthFilterOperators.IS_NOT_EMPTY:
165
- return !(actual === null || actual === undefined || actual === '' || (Array.isArray(actual) && actual.length === 0));
166
- default:
167
- return true;
168
- }
169
- }
170
- // check if we can use this filter in quadrant
171
- matchesFilter(point, filter) {
172
- const single = filter;
173
- if (single.field) {
174
- const actual = this.getPointFieldValue(point, single.field);
175
- const expected = single.rightField ? this.getPointFieldValue(point, single.rightField) : single.value;
176
- return this.compareValues(single.operator, actual, expected);
177
- }
178
- if (single.insecureRawNoSQL !== undefined || single.insecureRawSQL !== undefined) {
179
- return true;
180
- }
181
- const complex = filter;
182
- if (complex.operator === AdminForthFilterOperators.AND) {
183
- return complex.subFilters.every((subFilter) => this.matchesFilter(point, subFilter));
184
- }
185
- return complex.subFilters.some((subFilter) => this.matchesFilter(point, subFilter));
186
- }
187
- // transform input value to valid qdrant match value
188
- toQdrantMatchValue(value) {
189
- if (Array.isArray(value)) {
190
- const arr = value.filter((v) => ['string', 'number', 'boolean'].includes(typeof v));
191
- return arr.length ? arr : undefined;
192
- }
193
- if (['string', 'number', 'boolean'].includes(typeof value)) {
194
- return value;
195
- }
196
- return undefined;
197
- }
198
- // convert our filter format to qdrant filter format
199
- toQdrantFilter(filter) {
200
- const single = filter;
201
- if (single.insecureRawNoSQL !== undefined) {
202
- return single.insecureRawNoSQL;
203
- }
204
- if (single.insecureRawSQL !== undefined) {
205
- return undefined;
206
- }
207
- if (single.field) {
208
- if (single.rightField || single.field === 'id' || single.field === 'vector' || single.field === 'payload') {
209
- return undefined;
210
- }
211
- const matchValue = this.toQdrantMatchValue(single.value);
212
- switch (single.operator) {
213
- case AdminForthFilterOperators.EQ:
214
- if (matchValue !== undefined && !Array.isArray(matchValue)) {
215
- return { must: [{ key: single.field, match: { value: matchValue } }] };
216
- }
217
- return undefined;
218
- case AdminForthFilterOperators.NE:
219
- if (matchValue !== undefined && !Array.isArray(matchValue)) {
220
- return { must_not: [{ key: single.field, match: { value: matchValue } }] };
221
- }
222
- return undefined;
223
- case AdminForthFilterOperators.IN:
224
- if (Array.isArray(matchValue)) {
225
- return { must: [{ key: single.field, match: { any: matchValue } }] };
226
- }
227
- return undefined;
228
- case AdminForthFilterOperators.NIN:
229
- if (Array.isArray(matchValue)) {
230
- return { must_not: [{ key: single.field, match: { any: matchValue } }] };
231
- }
232
- return undefined;
233
- case AdminForthFilterOperators.GT:
234
- return { must: [{ key: single.field, range: { gt: single.value } }] };
235
- case AdminForthFilterOperators.GTE:
236
- return { must: [{ key: single.field, range: { gte: single.value } }] };
237
- case AdminForthFilterOperators.LT:
238
- return { must: [{ key: single.field, range: { lt: single.value } }] };
239
- case AdminForthFilterOperators.LTE:
240
- return { must: [{ key: single.field, range: { lte: single.value } }] };
241
- default:
242
- return undefined;
243
- }
244
- }
245
- const complex = filter;
246
- const subFilters = complex.subFilters.map((subFilter) => this.toQdrantFilter(subFilter)).filter(Boolean);
247
- if (!subFilters.length) {
248
- return undefined;
249
- }
250
- if (complex.operator === AdminForthFilterOperators.AND) {
251
- return { must: subFilters };
252
- }
253
- return { should: subFilters, min_should: 1 };
254
- }
255
- // transform qdrant point to our record format
256
- mapPointToRecord(resource, point) {
257
- const result = {};
258
- for (const column of resource.dataSourceColumns) {
259
- result[column.name] = this.getPointFieldValue(point, column.name);
260
- }
261
- return result;
262
- }
263
- // locally sort records
264
- sortRecords(records, sort) {
265
- if (!sort.length) {
266
- return records;
267
- }
268
- return [...records].sort((a, b) => {
269
- for (const sortItem of sort) {
270
- const left = a[sortItem.field];
271
- const right = b[sortItem.field];
272
- if (left === right) {
273
- continue;
274
- }
275
- if (left === null || left === undefined) {
276
- return sortItem.direction === AdminForthSortDirections.asc ? -1 : 1;
277
- }
278
- if (right === null || right === undefined) {
279
- return sortItem.direction === AdminForthSortDirections.asc ? 1 : -1;
280
- }
281
- if (left < right) {
282
- return sortItem.direction === AdminForthSortDirections.asc ? -1 : 1;
283
- }
284
- if (left > right) {
285
- return sortItem.direction === AdminForthSortDirections.asc ? 1 : -1;
286
- }
287
- }
288
- return 0;
289
- });
290
- }
291
- // check if we can sort in qdrant
292
- canUseServerSideSort(resource, sort) {
293
- if (sort.length !== 1) {
294
- return false;
295
- }
296
- const fieldName = sort[0].field;
297
- if (['id', 'payload', 'vector'].includes(fieldName)) {
298
- return false;
299
- }
300
- const column = resource.dataSourceColumns.find((item) => item.name === fieldName);
301
- if (!column) {
302
- return false;
303
- }
304
- return [
305
- AdminForthDataTypes.STRING,
306
- AdminForthDataTypes.INTEGER,
307
- AdminForthDataTypes.FLOAT,
308
- AdminForthDataTypes.BOOLEAN,
309
- AdminForthDataTypes.DATE,
310
- AdminForthDataTypes.DATETIME,
311
- ].includes(column.type);
312
- }
313
- isBadRequestError(error) {
314
- if (!(error instanceof Error)) {
315
- return false;
316
- }
317
- return /bad request/i.test(error.message);
318
- }
319
- // get scroll arguments for qdrant
320
- getScrollArgs(filters, limit, offset) {
321
- const qdrantFilter = this.toQdrantFilter(filters);
322
- return Object.assign(Object.assign(Object.assign({ limit }, (offset !== undefined ? { offset } : {})), (qdrantFilter ? { filter: qdrantFilter } : {})), { with_payload: true, with_vector: true });
323
- }
324
- // scroll request to qdrant
325
- async scrollPage(resource, filters, limit, sort, offset) {
326
- const collectionName = this.getCollectionName(resource);
327
- const canUseServerSort = this.canUseServerSideSort(resource, sort);
328
- const baseArgs = this.getScrollArgs(filters, limit, offset);
329
- if (!canUseServerSort) {
330
- return {
331
- response: await this.client.scroll(collectionName, baseArgs),
332
- usedServerSort: false,
333
- };
334
- }
335
- try {
336
- return {
337
- response: await this.client.scroll(collectionName, Object.assign(Object.assign({}, baseArgs), { order_by: {
338
- key: sort[0].field,
339
- direction: sort[0].direction === AdminForthSortDirections.asc ? 'asc' : 'desc',
340
- } })),
341
- usedServerSort: true,
342
- };
343
- }
344
- catch (error) {
345
- if (!this.isBadRequestError(error)) {
346
- throw error;
347
- }
348
- return {
349
- response: await this.client.scroll(collectionName, baseArgs),
350
- usedServerSort: false,
351
- };
352
- }
353
- }
354
- // filter points based on our filter format
355
- filterPoints(points, filters) {
356
- const qdrantFilter = this.toQdrantFilter(filters);
357
- return qdrantFilter ? points : points.filter((point) => this.matchesFilter(point, filters));
358
- }
359
- //scroll pages and filter them until we have enough matches or no more data
360
- async collectMatchingPoints(resource, filters, sort, requiredMatches) {
361
- var _a, _b, _c;
362
- let offset;
363
- let usedServerSort = false;
364
- const points = [];
365
- const pageSize = Math.max(requiredMatches, QdrantConnector.MIN_SCROLL_PAGE_SIZE);
366
- while (points.length < requiredMatches) {
367
- const page = await this.scrollPage(resource, filters, pageSize, sort, offset);
368
- usedServerSort = page.usedServerSort;
369
- const pagePoints = ((_b = (_a = page.response) === null || _a === void 0 ? void 0 : _a.points) !== null && _b !== void 0 ? _b : []);
370
- points.push(...this.filterPoints(pagePoints, filters));
371
- const nextOffset = (_c = page.response) === null || _c === void 0 ? void 0 : _c.next_page_offset;
372
- if (!nextOffset || pagePoints.length === 0) {
373
- break;
374
- }
375
- offset = nextOffset;
376
- }
377
- return { points, usedServerSort };
378
- }
379
- // get records by direct ID
380
- async getDirectIdRecords(resource, pointId, sort) {
381
- const points = await this.client.retrieve(this.getCollectionName(resource), {
382
- ids: [pointId],
383
- with_payload: true,
384
- with_vector: true,
385
- });
386
- const records = (points !== null && points !== void 0 ? points : []).map((point) => this.mapPointToRecord(resource, point));
387
- return sort.length ? this.sortRecords(records, sort) : records;
388
- }
389
- async getDataWithOriginalTypes({ resource, limit, offset, sort, filters }) {
390
- var _a, _b;
391
- const directId = this.getSingleIdFilterValue(filters);
392
- if (directId !== undefined) {
393
- const records = await this.getDirectIdRecords(resource, directId, sort);
394
- return records.slice(offset, offset + limit);
395
- }
396
- const requestedLimit = Math.max(limit + offset, 1);
397
- const localFilteringRequired = this.isLocalOnlyFilter(filters);
398
- const result = localFilteringRequired
399
- ? await this.collectMatchingPoints(resource, filters, sort, requestedLimit)
400
- : await this.scrollPage(resource, filters, requestedLimit, sort);
401
- const points = 'points' in result ? result.points : this.filterPoints(((_b = (_a = result.response) === null || _a === void 0 ? void 0 : _a.points) !== null && _b !== void 0 ? _b : []), filters);
402
- let records = points.map((point) => this.mapPointToRecord(resource, point));
403
- if (!result.usedServerSort) {
404
- records = this.sortRecords(records, sort);
405
- }
406
- return records.slice(offset, offset + limit);
407
- }
408
- async getCount({ resource, filters }) {
409
- var _a;
410
- const collectionName = this.getCollectionName(resource);
411
- const directId = this.getSingleIdFilterValue(filters);
412
- if (directId !== undefined) {
413
- const points = await this.client.retrieve(collectionName, {
414
- ids: [directId],
415
- with_payload: false,
416
- with_vector: false,
417
- });
418
- return (points !== null && points !== void 0 ? points : []).length;
419
- }
420
- const qdrantFilter = this.toQdrantFilter(filters);
421
- if (qdrantFilter || filters.subFilters.length === 0) {
422
- const result = await this.client.count(collectionName, Object.assign(Object.assign({}, (qdrantFilter ? { filter: qdrantFilter } : {})), { exact: true }));
423
- return (_a = result.count) !== null && _a !== void 0 ? _a : 0;
424
- }
425
- const allMatches = await this.collectMatchingPoints(resource, filters, [], Number.MAX_SAFE_INTEGER);
426
- return allMatches.points.length;
427
- }
428
- async getMinMaxForColumnsWithOriginalTypes({ resource, columns }) {
429
- var _a;
430
- const response = await this.client.scroll(this.getCollectionName(resource), {
431
- limit: 10000,
432
- with_payload: true,
433
- with_vector: true,
434
- });
435
- const records = ((_a = response.points) !== null && _a !== void 0 ? _a : []).map((point) => this.mapPointToRecord(resource, point));
436
- const result = {};
437
- for (const column of columns) {
438
- const values = records.map((record) => record[column.name]).filter((value) => value !== null && value !== undefined);
439
- if (!values.length) {
440
- result[column.name] = { min: null, max: null };
441
- continue;
442
- }
443
- const sorted = [...values].sort((a, b) => (a < b ? -1 : a > b ? 1 : 0));
444
- result[column.name] = {
445
- min: sorted[0],
446
- max: sorted[sorted.length - 1],
447
- };
448
- }
449
- return result;
450
- }
451
- async createRecordOriginalValues() {
452
- throw new Error('Qdrant connector is read-only for AdminForth operations');
453
- }
454
- async updateRecordOriginalValues() {
455
- throw new Error('Qdrant connector is read-only for AdminForth operations');
456
- }
457
- async deleteRecord() {
458
- throw new Error('Qdrant connector is read-only for AdminForth operations');
459
- }
460
- async deleteMany() {
461
- throw new Error('Qdrant connector is read-only for AdminForth operations');
462
- }
463
- async close() {
464
- return;
465
- }
466
- }
467
- QdrantConnector.MIN_SCROLL_PAGE_SIZE = 50;
468
- export default QdrantConnector;
469
- //# sourceMappingURL=qdrant.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"qdrant.js","sourceRoot":"","sources":["../../dataConnectors/qdrant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,OAAO,EACN,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,uBAAuB,MAAM,oBAAoB,CAAC;AAUzD,MAAM,eAAgB,SAAQ,uBAAuB;IAGpD,KAAK,CAAC,WAAW,CAAC,GAAW;QAC5B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,iBAC7B,GAAG,EAAE,UAAU,MAAM,CAAC,IAAI,EAAE,IACtB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAC/B,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,QAA4B;QACrD,OAAO,QAAQ,CAAC,KAAK,CAAC;IACvB,CAAC;IAEA,6CAA6C;IACtC,gBAAgB,CAAC,KAAU;QAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACd,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;gBACtE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;YACD,OAAO,OAAO,CAAC;QAChB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,qCAAqC,OAAO,KAAK,EAAE,CAAC,CAAC;IACtE,CAAC;IAEA,gEAAgE;IACzD,sBAAsB,CAAC,MAA8B;QAC5D,IAAI,MAAM,CAAC,QAAQ,KAAK,yBAAyB,CAAC,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzF,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAA4B,CAAC;QAC/D,IACC,MAAM,CAAC,KAAK,KAAK,IAAI;eAClB,MAAM,CAAC,QAAQ,KAAK,yBAAyB,CAAC,EAAE;eAChD,MAAM,CAAC,UAAU,KAAK,SAAS;eAC/B,MAAM,CAAC,KAAK,KAAK,SAAS,EAC5B,CAAC;YACF,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAEA,8CAA8C;IACvC,iBAAiB,CAAC,MAAwD;QACjF,MAAM,MAAM,GAAG,MAAiC,CAAC;QACjD,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YAClG,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC;QAClD,CAAC;QAED,MAAM,OAAO,GAAG,MAAgC,CAAC;QACjD,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;IAClF,CAAC;IAEA,sBAAsB;IACvB,KAAK,CAAC,YAAY;;QACjB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QACvD,OAAO,CAAC,MAAA,WAAW,CAAC,WAAW,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,UAA4B,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/F,CAAC;IAEA,mBAAmB;IACpB,KAAK,CAAC,cAAc,CAAC,QAAQ;QAC3B,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACxE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,CAAC,IAAI,gBAAgB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;YAC9F,CAAC;YAED,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,cAAc,EAAE,GAAG,CAAC,cAAc;aACnC,CAAC;YACF,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;IAEA,kBAAkB;IACnB,aAAa,CAAC,KAA+B,EAAE,KAAU;QACxD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACb,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,CAAC,QAAQ,EAAE,CAAC;YACjD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAClD,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,CAAC,IAAI,EAAE,CAAC;YAC7C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACzD,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,CAAC,OAAO,EAAE,CAAC;YAChD,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACxC,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAEA,kBAAkB;IACnB,aAAa,CAAC,MAAgC,EAAE,KAAU;QACzD,OAAO,KAAK,CAAC;IACd,CAAC;IAEA,6CAA6C;IACtC,gBAAgB,CAAC,KAAU;QAClC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC3C,OAAO,mBAAmB,CAAC,MAAM,CAAC;QACnC,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,mBAAmB,CAAC,OAAO,CAAC;QACpC,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC;QAC1F,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnD,OAAO,mBAAmB,CAAC,QAAQ,CAAC;YACrC,CAAC;YACD,OAAO,mBAAmB,CAAC,MAAM,CAAC;QACnC,CAAC;QACD,OAAO,mBAAmB,CAAC,IAAI,CAAC;IACjC,CAAC;IAEA,iDAAiD;IAC1C,kBAAkB,CAAC,KAAkB,EAAE,SAAiB;;QAC/D,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACxB,OAAO,MAAA,KAAK,CAAC,EAAE,mCAAI,IAAI,CAAC;QACzB,CAAC;QACD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,MAAA,KAAK,CAAC,OAAO,mCAAI,IAAI,CAAC;QAC9B,CAAC;QACD,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,MAAA,KAAK,CAAC,MAAM,mCAAI,IAAI,CAAC;QAC7B,CAAC;QACD,OAAO,MAAA,MAAA,KAAK,CAAC,OAAO,0CAAG,SAAS,CAAC,mCAAI,IAAI,CAAC;IAC3C,CAAC;IAEA,0BAA0B;IACnB,mBAAmB,CAAC,KAAU;QACrC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAEA,2DAA2D;IACpD,aAAa,CAAC,QAA6C,EAAE,MAAW,EAAE,QAAa;QAC9F,QAAQ,QAAQ,EAAE,CAAC;YAClB,KAAK,yBAAyB,CAAC,EAAE;gBAChC,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAChF,KAAK,yBAAyB,CAAC,EAAE;gBAChC,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAChF,KAAK,yBAAyB,CAAC,EAAE;gBAChC,OAAO,MAAM,GAAG,QAAQ,CAAC;YAC1B,KAAK,yBAAyB,CAAC,GAAG;gBACjC,OAAO,MAAM,IAAI,QAAQ,CAAC;YAC3B,KAAK,yBAAyB,CAAC,EAAE;gBAChC,OAAO,MAAM,GAAG,QAAQ,CAAC;YAC1B,KAAK,yBAAyB,CAAC,GAAG;gBACjC,OAAO,MAAM,IAAI,QAAQ,CAAC;YAC3B,KAAK,yBAAyB,CAAC,IAAI;gBAClC,OAAO,MAAM,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,CAAC,CAAC,CAAC;YAC9D,KAAK,yBAAyB,CAAC,KAAK;gBACnC,OAAO,MAAM,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YAC1F,KAAK,yBAAyB,CAAC,EAAE;gBAChC,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;YAChI,KAAK,yBAAyB,CAAC,GAAG;gBACjC,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;YACjI,KAAK,yBAAyB,CAAC,QAAQ;gBACtC,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;YACnH,KAAK,yBAAyB,CAAC,YAAY;gBAC1C,OAAO,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;YACtH;gBACC,OAAO,IAAI,CAAC;QACd,CAAC;IACF,CAAC;IAEA,8CAA8C;IACvC,aAAa,CAAC,KAAkB,EAAE,MAAwD;QACjG,MAAM,MAAM,GAAG,MAAiC,CAAC;QACjD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YACtG,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YAClF,OAAO,IAAI,CAAC;QACb,CAAC;QAED,MAAM,OAAO,GAAG,MAAgC,CAAC;QACjD,IAAI,OAAO,CAAC,QAAQ,KAAK,yBAAyB,CAAC,GAAG,EAAE,CAAC;YACxD,OAAO,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IACrF,CAAC;IAEA,oDAAoD;IAC7C,kBAAkB,CAAC,KAAU;QACpC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAuB,CAAC;YAC1G,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YAC5D,OAAO,KAAyB,CAAC;QAClC,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAEA,oDAAoD;IAC7C,cAAc,CAAC,MAAwD;QAC9E,MAAM,MAAM,GAAG,MAAiC,CAAC;QACjD,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YAC3C,OAAO,MAAM,CAAC,gBAAgB,CAAC;QAChC,CAAC;QACD,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACzC,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC3G,OAAO,SAAS,CAAC;YAClB,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzD,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACzB,KAAK,yBAAyB,CAAC,EAAE;oBAChC,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC5D,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC;oBACxE,CAAC;oBACD,OAAO,SAAS,CAAC;gBAClB,KAAK,yBAAyB,CAAC,EAAE;oBAChC,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC5D,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC;oBAC5E,CAAC;oBACD,OAAO,SAAS,CAAC;gBAClB,KAAK,yBAAyB,CAAC,EAAE;oBAChC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC/B,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC;oBACtE,CAAC;oBACD,OAAO,SAAS,CAAC;gBAClB,KAAK,yBAAyB,CAAC,GAAG;oBACjC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC/B,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC;oBAC1E,CAAC;oBACD,OAAO,SAAS,CAAC;gBAClB,KAAK,yBAAyB,CAAC,EAAE;oBAChC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;gBACvE,KAAK,yBAAyB,CAAC,GAAG;oBACjC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;gBACxE,KAAK,yBAAyB,CAAC,EAAE;oBAChC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;gBACvE,KAAK,yBAAyB,CAAC,GAAG;oBACjC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;gBACxE;oBACC,OAAO,SAAS,CAAC;YACnB,CAAC;QACF,CAAC;QAED,MAAM,OAAO,GAAG,MAAgC,CAAC;QACjD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEzG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,yBAAyB,CAAC,GAAG,EAAE,CAAC;YACxD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAC7B,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IAC9C,CAAC;IAEA,gDAAgD;IACzC,gBAAgB,CAAC,QAA4B,EAAE,KAAkB;QACxE,MAAM,MAAM,GAAwB,EAAE,CAAC;QACvC,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAEA,uBAAuB;IAChB,WAAW,CAAC,OAA8B,EAAE,IAAuB;QAC1E,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC;QAChB,CAAC;QACD,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACjC,KAAK,MAAM,QAAQ,IAAI,IAAI,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;oBACpB,SAAS;gBACV,CAAC;gBACD,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACzC,OAAO,QAAQ,CAAC,SAAS,KAAK,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrE,CAAC;gBACD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC3C,OAAO,QAAQ,CAAC,SAAS,KAAK,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrE,CAAC;gBACD,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;oBAClB,OAAO,QAAQ,CAAC,SAAS,KAAK,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrE,CAAC;gBACD,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;oBAClB,OAAO,QAAQ,CAAC,SAAS,KAAK,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrE,CAAC;YACF,CAAC;YACD,OAAO,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;IACJ,CAAC;IAEA,iCAAiC;IAC1B,oBAAoB,CAAC,QAA4B,EAAE,IAAuB;QACjF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACd,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACrD,OAAO,KAAK,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAClF,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACd,CAAC;QAED,OAAO;YACN,mBAAmB,CAAC,MAAM;YAC1B,mBAAmB,CAAC,OAAO;YAC3B,mBAAmB,CAAC,KAAK;YACzB,mBAAmB,CAAC,OAAO;YAC3B,mBAAmB,CAAC,IAAI;YACxB,mBAAmB,CAAC,QAAQ;SAC5B,CAAC,QAAQ,CAAC,MAAM,CAAC,IAA2B,CAAC,CAAC;IAChD,CAAC;IAEO,iBAAiB,CAAC,KAAc;QACvC,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACd,CAAC;QACD,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAEA,kCAAkC;IAC3B,aAAa,CAAC,OAA+B,EAAE,KAAa,EAAE,MAAsB;QAC3F,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAClD,mDACC,KAAK,IACF,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACxC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACjD,YAAY,EAAE,IAAa,EAC3B,WAAW,EAAE,IAAa,IACzB;IACH,CAAC;IAEA,2BAA2B;IACpB,KAAK,CAAC,UAAU,CAAC,QAA4B,EAAE,OAA+B,EAAE,KAAa,EAAE,IAAuB,EAAE,MAAsB;QACrJ,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAE5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACvB,OAAO;gBACN,QAAQ,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC;gBAC5D,cAAc,EAAE,KAAK;aACrB,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACJ,OAAO;gBACN,QAAQ,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,kCAC7C,QAAQ,KACX,QAAQ,EAAE;wBACT,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK;wBAClB,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;qBAC9E,IACA;gBACF,cAAc,EAAE,IAAI;aACpB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpC,MAAM,KAAK,CAAC;YACb,CAAC;YAED,OAAO;gBACN,QAAQ,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC;gBAC5D,cAAc,EAAE,KAAK;aACrB,CAAC;QACH,CAAC;IACF,CAAC;IAEA,2CAA2C;IACpC,YAAY,CAAC,MAAqB,EAAE,OAA+B;QAC1E,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7F,CAAC;IAEA,2EAA2E;IACpE,KAAK,CAAC,qBAAqB,CAAC,QAA4B,EAAE,OAA+B,EAAE,IAAuB,EAAE,eAAuB;;QAClJ,IAAI,MAAiC,CAAC;QACtC,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,MAAM,MAAM,GAAkB,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,oBAAoB,CAAC,CAAC;QAEjF,OAAO,MAAM,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAC9E,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YAErC,MAAM,UAAU,GAAG,CAAC,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,mCAAI,EAAE,CAAkB,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAEvD,MAAM,UAAU,GAAG,MAAA,IAAI,CAAC,QAAQ,0CAAE,gBAA6C,CAAC;YAChF,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5C,MAAM;YACP,CAAC;YAED,MAAM,GAAG,UAAU,CAAC;QACrB,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IACnC,CAAC;IAEA,2BAA2B;IACpB,KAAK,CAAC,kBAAkB,CAAC,QAA4B,EAAE,OAAsB,EAAE,IAAuB;QAC7G,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE;YAC3E,GAAG,EAAE,CAAC,OAAO,CAAC;YACd,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;SACjB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAI,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAmB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QACzG,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAMtE;;QACA,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YACxE,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;QACnD,MAAM,sBAAsB,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,sBAAsB;YACpC,CAAC,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC;YAC3E,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAA,MAAA,MAAM,CAAC,QAAQ,0CAAE,MAAM,mCAAI,EAAE,CAAkB,EAAE,OAAO,CAAC,CAAC;QAEjI,IAAI,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC5B,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAsE;;QACvG,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAEtD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE;gBACzD,GAAG,EAAE,CAAC,QAAQ,CAAC;gBACf,YAAY,EAAE,KAAK;gBACnB,WAAW,EAAE,KAAK;aAClB,CAAC,CAAC;YACH,OAAO,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAC9B,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAElD,IAAI,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,kCACjD,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACjD,KAAK,EAAE,IAAI,IACV,CAAC;YACH,OAAO,MAAA,MAAM,CAAC,KAAK,mCAAI,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACpG,OAAO,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,oCAAoC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAA0E;;QACvI,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE;YAC3E,KAAK,EAAE,KAAM;YACb,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,MAAM,OAAO,GAAI,CAAC,MAAA,QAAQ,CAAC,MAAM,mCAAI,EAAE,CAAmB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAClH,MAAM,MAAM,GAAgD,EAAE,CAAC;QAE/D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC;YACrH,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACpB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;gBAC/C,SAAS;YACV,CAAC;YACD,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;gBACrB,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;gBACd,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;aAC9B,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAED,KAAK,CAAC,0BAA0B;QAC/B,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,0BAA0B;QAC/B,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,YAAY;QACjB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,UAAU;QACf,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,KAAK;QACV,OAAO;IACR,CAAC;;AAzhBuB,oCAAoB,GAAG,EAAE,CAAC;AA4hBnD,eAAe,eAAe,CAAC"}