@zilliz/milvus2-sdk-node 2.2.2 → 2.2.4

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 (63) hide show
  1. package/dist/milvus/Client.d.ts +0 -8
  2. package/dist/milvus/Client.js +0 -17
  3. package/dist/milvus/Client.js.map +1 -1
  4. package/dist/milvus/Collection.d.ts +225 -131
  5. package/dist/milvus/Collection.js +262 -155
  6. package/dist/milvus/Collection.js.map +1 -1
  7. package/dist/milvus/Data.d.ts +129 -125
  8. package/dist/milvus/Data.js +157 -150
  9. package/dist/milvus/Data.js.map +1 -1
  10. package/dist/milvus/MilvusIndex.d.ts +57 -53
  11. package/dist/milvus/MilvusIndex.js +61 -55
  12. package/dist/milvus/MilvusIndex.js.map +1 -1
  13. package/dist/milvus/Partition.d.ts +86 -79
  14. package/dist/milvus/Partition.js +89 -80
  15. package/dist/milvus/Partition.js.map +1 -1
  16. package/dist/milvus/Resource.d.ts +173 -0
  17. package/dist/milvus/Resource.js +356 -0
  18. package/dist/milvus/Resource.js.map +1 -0
  19. package/dist/milvus/User.d.ts +119 -93
  20. package/dist/milvus/User.js +133 -100
  21. package/dist/milvus/User.js.map +1 -1
  22. package/dist/milvus/Utils.d.ts +1 -1
  23. package/dist/milvus/const/Milvus.d.ts +272 -0
  24. package/dist/milvus/const/Milvus.js +375 -0
  25. package/dist/milvus/const/Milvus.js.map +1 -0
  26. package/dist/milvus/index.d.ts +3 -1
  27. package/dist/milvus/index.js +8 -5
  28. package/dist/milvus/index.js.map +1 -1
  29. package/dist/milvus/types/Collection.d.ts +88 -8
  30. package/dist/milvus/types/Collection.js +1 -9
  31. package/dist/milvus/types/Collection.js.map +1 -1
  32. package/dist/milvus/types/Common.d.ts +11 -267
  33. package/dist/milvus/types/Common.js +1 -369
  34. package/dist/milvus/types/Common.js.map +1 -1
  35. package/dist/milvus/types/Data.d.ts +154 -1
  36. package/dist/milvus/types/Index.d.ts +20 -1
  37. package/dist/milvus/types/Partition.d.ts +8 -1
  38. package/dist/milvus/types/Resource.d.ts +44 -0
  39. package/dist/milvus/types/{Search.js → Resource.js} +1 -1
  40. package/dist/milvus/types/Resource.js.map +1 -0
  41. package/dist/milvus/types/Response.d.ts +0 -246
  42. package/dist/milvus/types/Response.js.map +1 -1
  43. package/dist/milvus/types/User.d.ts +53 -1
  44. package/dist/milvus/types.d.ts +8 -7
  45. package/dist/milvus/types.js +2 -1
  46. package/dist/milvus/types.js.map +1 -1
  47. package/dist/milvus/utils/Format.d.ts +12 -11
  48. package/dist/milvus/utils/Format.js +27 -18
  49. package/dist/milvus/utils/Format.js.map +1 -1
  50. package/dist/milvus/utils/Validate.d.ts +12 -0
  51. package/dist/milvus/utils/Validate.js +27 -5
  52. package/dist/milvus/utils/Validate.js.map +1 -1
  53. package/dist/proto/proto/common.proto +25 -2
  54. package/dist/proto/proto/google/protobuf/descriptor.proto +30 -0
  55. package/dist/proto/proto/milvus.proto +126 -0
  56. package/dist/proto/proto/msg.proto +107 -0
  57. package/dist/sdk.json +1 -1
  58. package/dist/utils/index.d.ts +0 -6
  59. package/dist/utils/index.js +5 -32
  60. package/dist/utils/index.js.map +1 -1
  61. package/package.json +5 -10
  62. package/dist/milvus/types/Search.d.ts +0 -81
  63. package/dist/milvus/types/Search.js.map +0 -1
@@ -0,0 +1,356 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
53
+ Object.defineProperty(exports, "__esModule", { value: true });
54
+ exports.Resource = void 0;
55
+ var utils_1 = require("../utils");
56
+ var Client_1 = require("./Client");
57
+ var Milvus_1 = require("./const/Milvus");
58
+ var Resource = /** @class */ (function (_super) {
59
+ __extends(Resource, _super);
60
+ function Resource() {
61
+ return _super !== null && _super.apply(this, arguments) || this;
62
+ }
63
+ /**
64
+ * Create a resource group.
65
+ *
66
+ * @param data
67
+ * | Property | Type | Description |
68
+ * | :--- | :-- | :-- |
69
+ * | resource_group | String | Resource group name |
70
+ * | timeout? | number | An optional duration of time in millisecond to allow for the RPC. If it is set to undefined, the client keeps waiting until the server responds or error occurs. Default is undefined |
71
+ *
72
+ * @returns
73
+ * | Property | Type | Description |
74
+ * | :-- | :-- | :-- |
75
+ * | status.error_code | string | error code |
76
+ * | status.reason | string | error reason |
77
+ *
78
+ * #### Example
79
+ *
80
+ * ```
81
+ * new milvusClient(MILUVS_ADDRESS).resourceManager.createResourceGroup({
82
+ * resource_group: "vector_01",
83
+ * });
84
+ * ```
85
+ */
86
+ Resource.prototype.createResourceGroup = function (data) {
87
+ return __awaiter(this, void 0, void 0, function () {
88
+ var promise;
89
+ return __generator(this, function (_a) {
90
+ switch (_a.label) {
91
+ case 0: return [4 /*yield*/, (0, utils_1.promisify)(this.client, 'CreateResourceGroup', data, data.timeout)];
92
+ case 1:
93
+ promise = _a.sent();
94
+ return [2 /*return*/, promise];
95
+ }
96
+ });
97
+ });
98
+ };
99
+ /**
100
+ * list resource groups.
101
+ *
102
+ * @returns
103
+ * | Property | Type | Description |
104
+ * | :-- | :-- | :-- |
105
+ * | status.error_code | string | error code |
106
+ * | status.reason | string | error reason |
107
+ * | resource_groups | string[] | Resource group string array |
108
+ * | timeout? | number | An optional duration of time in millisecond to allow for the RPC. If it is set to undefined, the client keeps waiting until the server responds or error occurs. Default is undefined |
109
+ *
110
+ * #### Example
111
+ *
112
+ * ```
113
+ * new milvusClient(MILUVS_ADDRESS).resourceManager.listResourceGroups();
114
+ * ```
115
+ */
116
+ Resource.prototype.listResourceGroups = function (data) {
117
+ return __awaiter(this, void 0, void 0, function () {
118
+ var promise;
119
+ return __generator(this, function (_a) {
120
+ switch (_a.label) {
121
+ case 0: return [4 /*yield*/, (0, utils_1.promisify)(this.client, 'ListResourceGroups', {}, data === null || data === void 0 ? void 0 : data.timeout)];
122
+ case 1:
123
+ promise = _a.sent();
124
+ return [2 /*return*/, promise];
125
+ }
126
+ });
127
+ });
128
+ };
129
+ /**
130
+ * Describe a resource group.
131
+ *
132
+ * @param data
133
+ * | Property | Type | Description |
134
+ * | :--- | :-- | :-- |
135
+ * | resource_group | String | Resource group name |
136
+ * | timeout? | number | An optional duration of time in millisecond to allow for the RPC. If it is set to undefined, the client keeps waiting until the server responds or error occurs. Default is undefined |
137
+ *
138
+ * @returns
139
+ * | Property | Type | Description |
140
+ * | :-- | :-- | :-- |
141
+ * | status.error_code | string | error code |
142
+ * | status.reason | string | error reason |
143
+ * | resource_group.capacity | number | num_node which has been transfer to this rg |
144
+ * | resource_group.num_available_node | number | available node_num, some node may shutdown |
145
+ * | resource_group.num_loaded_replica | { [key: string]: number } | from collection_name to loaded replica of each collecion in this rg |
146
+ * | resource_group.num_outgoing_node | { [key: string]: number } | from collection_name to outgoging accessed node num by replica loaded in this rg |
147
+ * | resource_group.num_incoming_node | { [key: string]: number } | from collection_name to incoming accessed node num by replica loaded in other rg |
148
+ *
149
+ * #### Example
150
+ *
151
+ * ```
152
+ * new milvusClient(MILUVS_ADDRESS).resourceManager.describeResrouceGroup({
153
+ * resource_group: 'my-resource-group'
154
+ * });
155
+ * ```
156
+ */
157
+ Resource.prototype.describeResourceGroup = function (data) {
158
+ return __awaiter(this, void 0, void 0, function () {
159
+ var promise;
160
+ return __generator(this, function (_a) {
161
+ switch (_a.label) {
162
+ case 0: return [4 /*yield*/, (0, utils_1.promisify)(this.client, 'DescribeResourceGroup', data, data.timeout)];
163
+ case 1:
164
+ promise = _a.sent();
165
+ return [2 /*return*/, promise];
166
+ }
167
+ });
168
+ });
169
+ };
170
+ /**
171
+ * drop a resource group.
172
+ * @param data
173
+ * | Property | Type | Description |
174
+ * | :--- | :-- | :-- |
175
+ * | resource_group | String | Resource group name |
176
+ * | timeout? | number | An optional duration of time in millisecond to allow for the RPC. If it is set to undefined, the client keeps waiting until the server responds or error occurs. Default is undefined |
177
+ *
178
+ * @returns
179
+ * | Property | Type | Description |
180
+ * | :-- | :-- | :-- |
181
+ * | status.error_code | string | error code |
182
+ * | status.reason | string | error reason |
183
+ *
184
+ * #### Example
185
+ *
186
+ * ```
187
+ * new milvusClient(MILUVS_ADDRESS).resourceManager.dropResourceGroup({
188
+ * resource_group: 'my-resource-group'
189
+ * });
190
+ * ```
191
+ */
192
+ Resource.prototype.dropResourceGroup = function (data) {
193
+ return __awaiter(this, void 0, void 0, function () {
194
+ var promise;
195
+ return __generator(this, function (_a) {
196
+ switch (_a.label) {
197
+ case 0: return [4 /*yield*/, (0, utils_1.promisify)(this.client, 'DropResourceGroup', data, data.timeout)];
198
+ case 1:
199
+ promise = _a.sent();
200
+ return [2 /*return*/, promise];
201
+ }
202
+ });
203
+ });
204
+ };
205
+ /**
206
+ * transfer nodes from one resource group to another
207
+ * @param data
208
+ * | Property | Type | Description |
209
+ * | :--- | :-- | :-- |
210
+ * | source_resource_group | String | source resource group name |
211
+ * | target_resource_group | String | target resource group name |
212
+ * | collection_name | String | collection name |
213
+ * | num_replica | Number | number of replicas to transfer |
214
+ * | timeout? | number | An optional duration of time in millisecond to allow for the RPC. If it is set to undefined, the client keeps waiting until the server responds or error occurs. Default is undefined |
215
+ *
216
+ * @returns
217
+ * | Property | Type | Description |
218
+ * | :-- | :-- | :-- |
219
+ * | status.error_code | string | error code |
220
+ * | status.reason | string | error reason |
221
+ *
222
+ *
223
+ * #### Example
224
+ *
225
+ * ```
226
+ * new milvusClient(MILUVS_ADDRESS).resourceManager.transferNode({
227
+ * source_resource_group: 'source-resource-group',
228
+ * target_resource_group: 'target-resource-group',
229
+ * collection_name: 'my-collection',
230
+ * num_replica: 2
231
+ * });
232
+ * ```
233
+ */
234
+ /* istanbul ignore next */
235
+ Resource.prototype.transferReplica = function (data) {
236
+ return __awaiter(this, void 0, void 0, function () {
237
+ var promise;
238
+ return __generator(this, function (_a) {
239
+ switch (_a.label) {
240
+ case 0: return [4 /*yield*/, (0, utils_1.promisify)(this.client, 'TransferReplica', data, data.timeout)];
241
+ case 1:
242
+ promise = _a.sent();
243
+ return [2 /*return*/, promise];
244
+ }
245
+ });
246
+ });
247
+ };
248
+ /**
249
+ * transfer nodes from one resource group to another
250
+ * @param data
251
+ * | Property | Type | Description |
252
+ * | :--- | :-- | :-- |
253
+ * | source_resource_group | String | source resource group name |
254
+ * | target_resource_group | String | target resource group name |
255
+ * | num_node | Number | number of nodes to transfer |
256
+ * | timeout? | number | An optional duration of time in millisecond to allow for the RPC. If it is set to undefined, the client keeps waiting until the server responds or error occurs. Default is undefined |
257
+ *
258
+ * @returns
259
+ * | Property | Type | Description |
260
+ * | :-- | :-- | :-- |
261
+ * | status.error_code | string | error code |
262
+ * | status.reason | string | error reason |
263
+ *
264
+ *
265
+ * #### Example
266
+ *
267
+ * ```
268
+ * new milvusClient(MILUVS_ADDRESS).resourceManager.transferNode({
269
+ * source_resource_group: 'source-resource-group',
270
+ * target_resource_group: 'target-resource-group',
271
+ * num_node: 4
272
+ * });
273
+ * ```
274
+ */
275
+ /* istanbul ignore next */
276
+ Resource.prototype.transferNode = function (data) {
277
+ return __awaiter(this, void 0, void 0, function () {
278
+ var promise;
279
+ return __generator(this, function (_a) {
280
+ switch (_a.label) {
281
+ case 0: return [4 /*yield*/, (0, utils_1.promisify)(this.client, 'TransferNode', data, data.timeout)];
282
+ case 1:
283
+ promise = _a.sent();
284
+ return [2 /*return*/, promise];
285
+ }
286
+ });
287
+ });
288
+ };
289
+ /**
290
+ * drop all resource groups, transfer all nodes to the default group
291
+ *
292
+ * @returns
293
+ * | Property | Type | Description |
294
+ * | :-- | :-- | :-- |
295
+ * | status.error_code | string | error code |
296
+ * | status.reason | string[] | error reason |
297
+ *
298
+ * #### Example
299
+ *
300
+ * ```
301
+ * new milvusClient(MILUVS_ADDRESS).resourceManager.dropResourceGroups();
302
+ * ```
303
+ */
304
+ Resource.prototype.dropAllResourceGroups = function () {
305
+ return __awaiter(this, void 0, void 0, function () {
306
+ var resource_groups, res, i, sourceRg, detail, _a, _b;
307
+ return __generator(this, function (_c) {
308
+ switch (_c.label) {
309
+ case 0: return [4 /*yield*/, this.listResourceGroups()];
310
+ case 1:
311
+ resource_groups = (_c.sent()).resource_groups;
312
+ res = [];
313
+ i = 0;
314
+ _c.label = 2;
315
+ case 2:
316
+ if (!(i < resource_groups.length)) return [3 /*break*/, 8];
317
+ sourceRg = resource_groups[i];
318
+ if (!(sourceRg !== Milvus_1.DEFAULT_RESOURCE_GROUP)) return [3 /*break*/, 7];
319
+ return [4 /*yield*/, this.describeResourceGroup({
320
+ resource_group: sourceRg,
321
+ })];
322
+ case 3:
323
+ detail = _c.sent();
324
+ if (!(detail.resource_group.capacity > 0)) return [3 /*break*/, 5];
325
+ // istanbul ignore next
326
+ return [4 /*yield*/, this.transferNode({
327
+ source_resource_group: sourceRg,
328
+ target_resource_group: Milvus_1.DEFAULT_RESOURCE_GROUP,
329
+ num_node: detail.resource_group.capacity,
330
+ })];
331
+ case 4:
332
+ // istanbul ignore next
333
+ _c.sent();
334
+ _c.label = 5;
335
+ case 5:
336
+ // drop rg
337
+ _b = (_a = res).push;
338
+ return [4 /*yield*/, this.dropResourceGroup({
339
+ resource_group: sourceRg,
340
+ })];
341
+ case 6:
342
+ // drop rg
343
+ _b.apply(_a, [_c.sent()]);
344
+ _c.label = 7;
345
+ case 7:
346
+ i++;
347
+ return [3 /*break*/, 2];
348
+ case 8: return [2 /*return*/, Promise.all(res)];
349
+ }
350
+ });
351
+ });
352
+ };
353
+ return Resource;
354
+ }(Client_1.Client));
355
+ exports.Resource = Resource;
356
+ //# sourceMappingURL=Resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Resource.js","sourceRoot":"","sources":["../../milvus/Resource.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kCAAqC;AACrC,mCAAkC;AAElC,yCAAwD;AAYxD;IAA8B,4BAAM;IAApC;;IAyQA,CAAC;IAxQC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,sCAAmB,GAAzB,UAA0B,IAA4B;;;;;4BACpC,qBAAM,IAAA,iBAAS,EAC7B,IAAI,CAAC,MAAM,EACX,qBAAqB,EACrB,IAAI,EACJ,IAAI,CAAC,OAAO,CACb,EAAA;;wBALK,OAAO,GAAG,SAKf;wBACD,sBAAO,OAAO,EAAC;;;;KAChB;IAED;;;;;;;;;;;;;;;;OAgBG;IACG,qCAAkB,GAAxB,UACE,IAAkB;;;;;4BAEF,qBAAM,IAAA,iBAAS,EAC7B,IAAI,CAAC,MAAM,EACX,oBAAoB,EACpB,EAAE,EACF,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CACd,EAAA;;wBALK,OAAO,GAAG,SAKf;wBACD,sBAAO,OAAO,EAAC;;;;KAChB;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,wCAAqB,GAA3B,UACE,IAA8B;;;;;4BAEd,qBAAM,IAAA,iBAAS,EAC7B,IAAI,CAAC,MAAM,EACX,uBAAuB,EACvB,IAAI,EACJ,IAAI,CAAC,OAAO,CACb,EAAA;;wBALK,OAAO,GAAG,SAKf;wBACD,sBAAO,OAAO,EAAC;;;;KAChB;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,oCAAiB,GAAvB,UAAwB,IAA2B;;;;;4BACjC,qBAAM,IAAA,iBAAS,EAC7B,IAAI,CAAC,MAAM,EACX,mBAAmB,EACnB,IAAI,EACJ,IAAI,CAAC,OAAO,CACb,EAAA;;wBALK,OAAO,GAAG,SAKf;wBACD,sBAAO,OAAO,EAAC;;;;KAChB;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,0BAA0B;IACpB,kCAAe,GAArB,UAAsB,IAAwB;;;;;4BAC5B,qBAAM,IAAA,iBAAS,EAC7B,IAAI,CAAC,MAAM,EACX,iBAAiB,EACjB,IAAI,EACJ,IAAI,CAAC,OAAO,CACb,EAAA;;wBALK,OAAO,GAAG,SAKf;wBACD,sBAAO,OAAO,EAAC;;;;KAChB;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,0BAA0B;IACpB,+BAAY,GAAlB,UAAmB,IAAqB;;;;;4BACtB,qBAAM,IAAA,iBAAS,EAC7B,IAAI,CAAC,MAAM,EACX,cAAc,EACd,IAAI,EACJ,IAAI,CAAC,OAAO,CACb,EAAA;;wBALK,OAAO,GAAG,SAKf;wBACD,sBAAO,OAAO,EAAC;;;;KAChB;IAED;;;;;;;;;;;;;;OAcG;IACG,wCAAqB,GAA3B;;;;;4BAE8B,qBAAM,IAAI,CAAC,kBAAkB,EAAE,EAAA;;wBAAnD,eAAe,GAAK,CAAA,SAA+B,CAAA,gBAApC;wBAEjB,GAAG,GAAG,EAAE,CAAC;wBAKN,CAAC,GAAG,CAAC;;;6BAAE,CAAA,CAAC,GAAG,eAAe,CAAC,MAAM,CAAA;wBAClC,QAAQ,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;6BAChC,CAAA,QAAQ,KAAK,+BAAsB,CAAA,EAAnC,wBAAmC;wBAEtB,qBAAM,IAAI,CAAC,qBAAqB,CAAC;gCAC9C,cAAc,EAAE,QAAQ;6BACzB,CAAC,EAAA;;wBAFI,MAAM,GAAG,SAEb;6BAGE,CAAA,MAAM,CAAC,cAAc,CAAC,QAAQ,GAAG,CAAC,CAAA,EAAlC,wBAAkC;wBACpC,uBAAuB;wBACvB,qBAAM,IAAI,CAAC,YAAY,CAAC;gCACtB,qBAAqB,EAAE,QAAQ;gCAC/B,qBAAqB,EAAE,+BAAsB;gCAC7C,QAAQ,EAAE,MAAM,CAAC,cAAc,CAAC,QAAQ;6BACzC,CAAC,EAAA;;wBALF,uBAAuB;wBACvB,SAIE,CAAC;;;wBAGL,UAAU;wBACV,KAAA,CAAA,KAAA,GAAG,CAAA,CAAC,IAAI,CAAA;wBACN,qBAAM,IAAI,CAAC,iBAAiB,CAAC;gCAC3B,cAAc,EAAE,QAAQ;6BACzB,CAAC,EAAA;;wBAJJ,UAAU;wBACV,cACE,SAEE,EACH,CAAC;;;wBAvBsC,CAAC,EAAE,CAAA;;4BA0B/C,sBAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAC;;;;KACzB;IACH,eAAC;AAAD,CAAC,AAzQD,CAA8B,eAAM,GAyQnC;AAzQY,4BAAQ"}