@gomomento/sdk-core 1.62.0 → 1.63.1

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,5 +1,5 @@
1
1
  import { IVectorIndexControlClient } from '../internal/clients';
2
- import { VectorCountItems, VectorUpsertItemBatch, VectorDeleteItemBatch, VectorSearch, VectorSearchAndFetchVectors, VectorGetItemBatch, VectorGetItemMetadataBatch } from '../messages/responses/vector';
2
+ import { VectorCountItems, VectorDeleteItemBatch, VectorGetItemBatch, VectorGetItemMetadataBatch, VectorSearch, VectorSearchAndFetchVectors, VectorUpsertItemBatch } from '../messages/responses/vector';
3
3
  import { VectorIndexItem } from '../messages/vector-index';
4
4
  import { VectorFilterExpression } from '../messages/vector-index-filters';
5
5
  /**
@@ -34,7 +34,7 @@ export interface SearchOptions {
34
34
  /**
35
35
  * A filter expression to filter results by. Defaults to no filter.
36
36
  */
37
- filterExpression?: VectorFilterExpression;
37
+ filter?: VectorFilterExpression;
38
38
  }
39
39
  export interface IVectorIndexClient extends IVectorIndexControlClient {
40
40
  countItems(indexName: string): Promise<VectorCountItems.Response>;
@@ -9,4 +9,4 @@ exports.ALL_VECTOR_METADATA = Symbol('ALL_VECTOR_METADATA');
9
9
  * The default number of results to return.
10
10
  */
11
11
  exports.VECTOR_DEFAULT_TOPK = 10;
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVZlY3RvckluZGV4Q2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudHMvSVZlY3RvckluZGV4Q2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWFBOztHQUVHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUVqRTs7R0FFRztBQUNVLFFBQUEsbUJBQW1CLEdBQUcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJVmVjdG9ySW5kZXhDb250cm9sQ2xpZW50fSBmcm9tICcuLi9pbnRlcm5hbC9jbGllbnRzJztcbmltcG9ydCB7XG4gIFZlY3RvckNvdW50SXRlbXMsXG4gIFZlY3RvclVwc2VydEl0ZW1CYXRjaCxcbiAgVmVjdG9yRGVsZXRlSXRlbUJhdGNoLFxuICBWZWN0b3JTZWFyY2gsXG4gIFZlY3RvclNlYXJjaEFuZEZldGNoVmVjdG9ycyxcbiAgVmVjdG9yR2V0SXRlbUJhdGNoLFxuICBWZWN0b3JHZXRJdGVtTWV0YWRhdGFCYXRjaCxcbn0gZnJvbSAnLi4vbWVzc2FnZXMvcmVzcG9uc2VzL3ZlY3Rvcic7XG5pbXBvcnQge1ZlY3RvckluZGV4SXRlbX0gZnJvbSAnLi4vbWVzc2FnZXMvdmVjdG9yLWluZGV4JztcbmltcG9ydCB7VmVjdG9yRmlsdGVyRXhwcmVzc2lvbn0gZnJvbSAnLi4vbWVzc2FnZXMvdmVjdG9yLWluZGV4LWZpbHRlcnMnO1xuXG4vKipcbiAqIEEgc3BlY2lhbCB2YWx1ZSB0byByZXF1ZXN0IGFsbCBtZXRhZGF0YSBmaWVsZHMuXG4gKi9cbmV4cG9ydCBjb25zdCBBTExfVkVDVE9SX01FVEFEQVRBID0gU3ltYm9sKCdBTExfVkVDVE9SX01FVEFEQVRBJyk7XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgbnVtYmVyIG9mIHJlc3VsdHMgdG8gcmV0dXJuLlxuICovXG5leHBvcnQgY29uc3QgVkVDVE9SX0RFRkFVTFRfVE9QSyA9IDEwO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBzZWFyY2ggb3BlcmF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiByZXN1bHRzIHRvIHJldHVybi4gRGVmYXVsdHMgdG8ge0BsaW5rIFZFQ1RPUl9ERUZBVUxUX1RPUEt9LlxuICAgKi9cbiAgdG9wSz86IG51bWJlcjtcbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBtZXRhZGF0YSBmaWVsZHMgdG8gcmV0dXJuIHdpdGggZWFjaCByZXN1bHQsXG4gICAqIG9yIGEgdmFsdWUgaW5kaWNhdGluZyBhbGwgbWV0YWRhdGEgc2hvdWxkIGJlIHJldHVybmVkLiBJZiBub3QgcHJvdmlkZWQsIG5vIG1ldGFkYXRhIGlzIHJldHVybmVkLiBEZWZhdWx0cyB0byBOb25lLlxuICAgKi9cbiAgbWV0YWRhdGFGaWVsZHM/OiBBcnJheTxzdHJpbmc+IHwgdHlwZW9mIEFMTF9WRUNUT1JfTUVUQURBVEE7XG4gIC8qKlxuICAgKiBBIHNjb3JlIHRocmVzaG9sZCB0byBmaWx0ZXIgcmVzdWx0cyBieS4gVGhlIHRocmVzaG9sZCBpcyBleGNsdXNpdmUuIERlZmF1bHRzIHRvIG5vIHRocmVzaG9sZC5cbiAgICogLSBGb3IgY29zaW5lIHNpbWlsYXJpdHkgYW5kIGlubmVyIHByb2R1Y3QsIHNjb3JlcyBsb3dlciB0aGFuIHRoZSB0aHJlc2hvbGRcbiAgICogICBhcmUgZXhjbHVkZWQuXG4gICAqIC0gRm9yIGV1Y2xpZGVhbiBzaW1pbGFyaXR5LCBzY29yZXMgaGlnaGVyIHRoYW4gdGhlIHRocmVzaG9sZFxuICAgKiAgIGFyZSBleGNsdWRlZC5cbiAgICovXG4gIHNjb3JlVGhyZXNob2xkPzogbnVtYmVyO1xuICAvKipcbiAgICogQSBmaWx0ZXIgZXhwcmVzc2lvbiB0byBmaWx0ZXIgcmVzdWx0cyBieS4gRGVmYXVsdHMgdG8gbm8gZmlsdGVyLlxuICAgKi9cbiAgZmlsdGVyRXhwcmVzc2lvbj86IFZlY3RvckZpbHRlckV4cHJlc3Npb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVZlY3RvckluZGV4Q2xpZW50IGV4dGVuZHMgSVZlY3RvckluZGV4Q29udHJvbENsaWVudCB7XG4gIGNvdW50SXRlbXMoaW5kZXhOYW1lOiBzdHJpbmcpOiBQcm9taXNlPFZlY3RvckNvdW50SXRlbXMuUmVzcG9uc2U+O1xuICB1cHNlcnRJdGVtQmF0Y2goXG4gICAgaW5kZXhOYW1lOiBzdHJpbmcsXG4gICAgaXRlbXM6IEFycmF5PFZlY3RvckluZGV4SXRlbT5cbiAgKTogUHJvbWlzZTxWZWN0b3JVcHNlcnRJdGVtQmF0Y2guUmVzcG9uc2U+O1xuXG4gIHNlYXJjaChcbiAgICBpbmRleE5hbWU6IHN0cmluZyxcbiAgICBxdWVyeVZlY3RvcjogQXJyYXk8bnVtYmVyPixcbiAgICBvcHRpb25zPzogU2VhcmNoT3B0aW9uc1xuICApOiBQcm9taXNlPFZlY3RvclNlYXJjaC5SZXNwb25zZT47XG5cbiAgc2VhcmNoQW5kRmV0Y2hWZWN0b3JzKFxuICAgIGluZGV4TmFtZTogc3RyaW5nLFxuICAgIHF1ZXJ5VmVjdG9yOiBBcnJheTxudW1iZXI+LFxuICAgIG9wdGlvbnM/OiBTZWFyY2hPcHRpb25zXG4gICk6IFByb21pc2U8VmVjdG9yU2VhcmNoQW5kRmV0Y2hWZWN0b3JzLlJlc3BvbnNlPjtcblxuICBkZWxldGVJdGVtQmF0Y2goXG4gICAgaW5kZXhOYW1lOiBzdHJpbmcsXG4gICAgaWRzOiBBcnJheTxzdHJpbmc+XG4gICk6IFByb21pc2U8VmVjdG9yRGVsZXRlSXRlbUJhdGNoLlJlc3BvbnNlPjtcblxuICBnZXRJdGVtQmF0Y2goXG4gICAgaW5kZXhOYW1lOiBzdHJpbmcsXG4gICAgaWRzOiBBcnJheTxzdHJpbmc+XG4gICk6IFByb21pc2U8VmVjdG9yR2V0SXRlbUJhdGNoLlJlc3BvbnNlPjtcblxuICBnZXRJdGVtTWV0YWRhdGFCYXRjaChcbiAgICBpbmRleE5hbWU6IHN0cmluZyxcbiAgICBpZHM6IEFycmF5PHN0cmluZz4sXG4gICAgbWV0YWRhdGFGaWVsZHM/OiBBcnJheTxzdHJpbmc+XG4gICk6IFByb21pc2U8VmVjdG9yR2V0SXRlbU1ldGFkYXRhQmF0Y2guUmVzcG9uc2U+O1xufVxuIl19
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVZlY3RvckluZGV4Q2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudHMvSVZlY3RvckluZGV4Q2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWFBOztHQUVHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUVqRTs7R0FFRztBQUNVLFFBQUEsbUJBQW1CLEdBQUcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJVmVjdG9ySW5kZXhDb250cm9sQ2xpZW50fSBmcm9tICcuLi9pbnRlcm5hbC9jbGllbnRzJztcbmltcG9ydCB7XG4gIFZlY3RvckNvdW50SXRlbXMsXG4gIFZlY3RvckRlbGV0ZUl0ZW1CYXRjaCxcbiAgVmVjdG9yR2V0SXRlbUJhdGNoLFxuICBWZWN0b3JHZXRJdGVtTWV0YWRhdGFCYXRjaCxcbiAgVmVjdG9yU2VhcmNoLFxuICBWZWN0b3JTZWFyY2hBbmRGZXRjaFZlY3RvcnMsXG4gIFZlY3RvclVwc2VydEl0ZW1CYXRjaCxcbn0gZnJvbSAnLi4vbWVzc2FnZXMvcmVzcG9uc2VzL3ZlY3Rvcic7XG5pbXBvcnQge1ZlY3RvckluZGV4SXRlbX0gZnJvbSAnLi4vbWVzc2FnZXMvdmVjdG9yLWluZGV4JztcbmltcG9ydCB7VmVjdG9yRmlsdGVyRXhwcmVzc2lvbn0gZnJvbSAnLi4vbWVzc2FnZXMvdmVjdG9yLWluZGV4LWZpbHRlcnMnO1xuXG4vKipcbiAqIEEgc3BlY2lhbCB2YWx1ZSB0byByZXF1ZXN0IGFsbCBtZXRhZGF0YSBmaWVsZHMuXG4gKi9cbmV4cG9ydCBjb25zdCBBTExfVkVDVE9SX01FVEFEQVRBID0gU3ltYm9sKCdBTExfVkVDVE9SX01FVEFEQVRBJyk7XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgbnVtYmVyIG9mIHJlc3VsdHMgdG8gcmV0dXJuLlxuICovXG5leHBvcnQgY29uc3QgVkVDVE9SX0RFRkFVTFRfVE9QSyA9IDEwO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBzZWFyY2ggb3BlcmF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiByZXN1bHRzIHRvIHJldHVybi4gRGVmYXVsdHMgdG8ge0BsaW5rIFZFQ1RPUl9ERUZBVUxUX1RPUEt9LlxuICAgKi9cbiAgdG9wSz86IG51bWJlcjtcbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBtZXRhZGF0YSBmaWVsZHMgdG8gcmV0dXJuIHdpdGggZWFjaCByZXN1bHQsXG4gICAqIG9yIGEgdmFsdWUgaW5kaWNhdGluZyBhbGwgbWV0YWRhdGEgc2hvdWxkIGJlIHJldHVybmVkLiBJZiBub3QgcHJvdmlkZWQsIG5vIG1ldGFkYXRhIGlzIHJldHVybmVkLiBEZWZhdWx0cyB0byBOb25lLlxuICAgKi9cbiAgbWV0YWRhdGFGaWVsZHM/OiBBcnJheTxzdHJpbmc+IHwgdHlwZW9mIEFMTF9WRUNUT1JfTUVUQURBVEE7XG4gIC8qKlxuICAgKiBBIHNjb3JlIHRocmVzaG9sZCB0byBmaWx0ZXIgcmVzdWx0cyBieS4gVGhlIHRocmVzaG9sZCBpcyBleGNsdXNpdmUuIERlZmF1bHRzIHRvIG5vIHRocmVzaG9sZC5cbiAgICogLSBGb3IgY29zaW5lIHNpbWlsYXJpdHkgYW5kIGlubmVyIHByb2R1Y3QsIHNjb3JlcyBsb3dlciB0aGFuIHRoZSB0aHJlc2hvbGRcbiAgICogICBhcmUgZXhjbHVkZWQuXG4gICAqIC0gRm9yIGV1Y2xpZGVhbiBzaW1pbGFyaXR5LCBzY29yZXMgaGlnaGVyIHRoYW4gdGhlIHRocmVzaG9sZFxuICAgKiAgIGFyZSBleGNsdWRlZC5cbiAgICovXG4gIHNjb3JlVGhyZXNob2xkPzogbnVtYmVyO1xuICAvKipcbiAgICogQSBmaWx0ZXIgZXhwcmVzc2lvbiB0byBmaWx0ZXIgcmVzdWx0cyBieS4gRGVmYXVsdHMgdG8gbm8gZmlsdGVyLlxuICAgKi9cbiAgZmlsdGVyPzogVmVjdG9yRmlsdGVyRXhwcmVzc2lvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVmVjdG9ySW5kZXhDbGllbnQgZXh0ZW5kcyBJVmVjdG9ySW5kZXhDb250cm9sQ2xpZW50IHtcbiAgY291bnRJdGVtcyhpbmRleE5hbWU6IHN0cmluZyk6IFByb21pc2U8VmVjdG9yQ291bnRJdGVtcy5SZXNwb25zZT47XG5cbiAgdXBzZXJ0SXRlbUJhdGNoKFxuICAgIGluZGV4TmFtZTogc3RyaW5nLFxuICAgIGl0ZW1zOiBBcnJheTxWZWN0b3JJbmRleEl0ZW0+XG4gICk6IFByb21pc2U8VmVjdG9yVXBzZXJ0SXRlbUJhdGNoLlJlc3BvbnNlPjtcblxuICBzZWFyY2goXG4gICAgaW5kZXhOYW1lOiBzdHJpbmcsXG4gICAgcXVlcnlWZWN0b3I6IEFycmF5PG51bWJlcj4sXG4gICAgb3B0aW9ucz86IFNlYXJjaE9wdGlvbnNcbiAgKTogUHJvbWlzZTxWZWN0b3JTZWFyY2guUmVzcG9uc2U+O1xuXG4gIHNlYXJjaEFuZEZldGNoVmVjdG9ycyhcbiAgICBpbmRleE5hbWU6IHN0cmluZyxcbiAgICBxdWVyeVZlY3RvcjogQXJyYXk8bnVtYmVyPixcbiAgICBvcHRpb25zPzogU2VhcmNoT3B0aW9uc1xuICApOiBQcm9taXNlPFZlY3RvclNlYXJjaEFuZEZldGNoVmVjdG9ycy5SZXNwb25zZT47XG5cbiAgZGVsZXRlSXRlbUJhdGNoKFxuICAgIGluZGV4TmFtZTogc3RyaW5nLFxuICAgIGlkczogQXJyYXk8c3RyaW5nPlxuICApOiBQcm9taXNlPFZlY3RvckRlbGV0ZUl0ZW1CYXRjaC5SZXNwb25zZT47XG5cbiAgZ2V0SXRlbUJhdGNoKFxuICAgIGluZGV4TmFtZTogc3RyaW5nLFxuICAgIGlkczogQXJyYXk8c3RyaW5nPlxuICApOiBQcm9taXNlPFZlY3RvckdldEl0ZW1CYXRjaC5SZXNwb25zZT47XG5cbiAgZ2V0SXRlbU1ldGFkYXRhQmF0Y2goXG4gICAgaW5kZXhOYW1lOiBzdHJpbmcsXG4gICAgaWRzOiBBcnJheTxzdHJpbmc+LFxuICAgIG1ldGFkYXRhRmllbGRzPzogQXJyYXk8c3RyaW5nPlxuICApOiBQcm9taXNlPFZlY3RvckdldEl0ZW1NZXRhZGF0YUJhdGNoLlJlc3BvbnNlPjtcbn1cbiJdfQ==
@@ -88,6 +88,11 @@ export declare class VectorFilterExpressions {
88
88
  * @returns The contains expression.
89
89
  */
90
90
  static listContains(field: string, value: string): VectorFilterListContainsExpression;
91
+ /**
92
+ * Creates a {@link VectorFilterIdInSetExpression} for a set of ids.
93
+ * @param ids The ids.
94
+ */
95
+ static idInSet(ids: string[]): VectorFilterIdInSetExpression;
91
96
  }
92
97
  /**
93
98
  * Represents an AND expression between two vector filter expressions.
@@ -254,3 +259,21 @@ export declare class VectorFilterListContainsExpression extends VectorFilterExpr
254
259
  get Value(): string;
255
260
  toString(): string;
256
261
  }
262
+ /**
263
+ * Represents an id in set expression.
264
+ * An item is considered a match if its id is in the set of ids.
265
+ */
266
+ export declare class VectorFilterIdInSetExpression extends VectorFilterExpression {
267
+ /**
268
+ * The ids to test for membership.
269
+ * @private
270
+ */
271
+ private readonly ids;
272
+ constructor(ids: string[]);
273
+ /**
274
+ * The ids to test for membership.
275
+ * @constructor
276
+ */
277
+ get Ids(): string[];
278
+ toString(): string;
279
+ }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VectorFilterListContainsExpression = exports.VectorFilterLessThanOrEqualExpression = exports.VectorFilterLessThanExpression = exports.VectorFilterGreaterThanOrEqualExpression = exports.VectorFilterGreaterThanExpression = exports.VectorFilterEqualsExpression = exports.VectorFilterNotExpression = exports.VectorFilterOrExpression = exports.VectorFilterAndExpression = exports.VectorFilterExpressions = exports.VectorFilterExpression = void 0;
3
+ exports.VectorFilterIdInSetExpression = exports.VectorFilterListContainsExpression = exports.VectorFilterLessThanOrEqualExpression = exports.VectorFilterLessThanExpression = exports.VectorFilterGreaterThanOrEqualExpression = exports.VectorFilterGreaterThanExpression = exports.VectorFilterEqualsExpression = exports.VectorFilterNotExpression = exports.VectorFilterOrExpression = exports.VectorFilterAndExpression = exports.VectorFilterExpressions = exports.VectorFilterExpression = void 0;
4
4
  /**
5
5
  * Base class for all vector index filter expressions.
6
6
  */
@@ -116,6 +116,13 @@ class VectorFilterExpressions {
116
116
  static listContains(field, value) {
117
117
  return new VectorFilterListContainsExpression(field, value);
118
118
  }
119
+ /**
120
+ * Creates a {@link VectorFilterIdInSetExpression} for a set of ids.
121
+ * @param ids The ids.
122
+ */
123
+ static idInSet(ids) {
124
+ return new VectorFilterIdInSetExpression(ids);
125
+ }
119
126
  }
120
127
  exports.VectorFilterExpressions = VectorFilterExpressions;
121
128
  /**
@@ -294,4 +301,25 @@ class VectorFilterListContainsExpression extends VectorFilterExpression {
294
301
  }
295
302
  }
296
303
  exports.VectorFilterListContainsExpression = VectorFilterListContainsExpression;
297
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVjdG9yLWluZGV4LWZpbHRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVzc2FnZXMvdmVjdG9yLWluZGV4LWZpbHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxNQUFzQixzQkFBc0I7SUFHMUM7Ozs7T0FJRztJQUNJLEdBQUcsQ0FBQyxLQUE2QjtRQUN0QyxPQUFPLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxFQUFFLENBQUMsS0FBNkI7UUFDckMsT0FBTyx1QkFBdUIsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7O09BR0c7SUFDSSxHQUFHO1FBQ1IsT0FBTyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztDQUNGO0FBNUJELHdEQTRCQztBQUVEOztHQUVHO0FBQ0gsTUFBYSx1QkFBdUI7SUFDbEMsZ0VBQWdFO0lBQ2hFLGdCQUF1QixDQUFDO0lBRXhCOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEdBQUcsQ0FDZixlQUF1QyxFQUN2QyxnQkFBd0M7UUFFeEMsT0FBTyxJQUFJLHlCQUF5QixDQUFDLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxFQUFFLENBQ2QsZUFBdUMsRUFDdkMsZ0JBQXdDO1FBRXhDLE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxHQUFHLENBQ2YsVUFBa0M7UUFFbEMsT0FBTyxJQUFJLHlCQUF5QixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7Ozs7T0FL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QztJQUVELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFZSxRQUFRO1FBQ3RCLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0NBQ0Y7QUE3QkQsc0ZBNkJDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLGtDQUFtQyxTQUFRLHNCQUFzQjtJQVk1RSxZQUFZLEtBQWEsRUFBRSxLQUFhO1FBQ3RDLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFZSxRQUFRO1FBQ3RCLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxhQUFhLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0NBQ0Y7QUE3QkQsZ0ZBNkJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBhbGwgdmVjdG9yIGluZGV4IGZpbHRlciBleHByZXNzaW9ucy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFZlY3RvckZpbHRlckV4cHJlc3Npb24ge1xuICBwdWJsaWMgYWJzdHJhY3QgdG9TdHJpbmcoKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIEFORCBleHByZXNzaW9uIGJldHdlZW4gdGhpcyBleHByZXNzaW9uIGFuZCBhbm90aGVyIG9uZS5cbiAgICogQHBhcmFtIG90aGVyIFRoZSBvdGhlciBleHByZXNzaW9uLlxuICAgKiBAcmV0dXJucyBUaGUgQU5EIGV4cHJlc3Npb24uXG4gICAqL1xuICBwdWJsaWMgYW5kKG90aGVyOiBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uKTogVmVjdG9yRmlsdGVyQW5kRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIFZlY3RvckZpbHRlckV4cHJlc3Npb25zLmFuZCh0aGlzLCBvdGhlcik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBPUiBleHByZXNzaW9uIGJldHdlZW4gdGhpcyBleHByZXNzaW9uIGFuZCBhbm90aGVyIG9uZS5cbiAgICogQHBhcmFtIG90aGVyIFRoZSBvdGhlciBleHByZXNzaW9uLlxuICAgKiBAcmV0dXJucyBUaGUgT1IgZXhwcmVzc2lvbi5cbiAgICovXG4gIHB1YmxpYyBvcihvdGhlcjogVmVjdG9yRmlsdGVyRXhwcmVzc2lvbik6IFZlY3RvckZpbHRlck9yRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIFZlY3RvckZpbHRlckV4cHJlc3Npb25zLm9yKHRoaXMsIG90aGVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOZWdhdGVzIHRoaXMgZXhwcmVzc2lvbi5cbiAgICogQHJldHVybnMgVGhlIG5lZ2F0ZWQgZXhwcmVzc2lvbi5cbiAgICovXG4gIHB1YmxpYyBub3QoKTogVmVjdG9yRmlsdGVyTm90RXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIFZlY3RvckZpbHRlckV4cHJlc3Npb25zLm5vdCh0aGlzKTtcbiAgfVxufVxuXG4vKipcbiAqIEZhY3RvcnkgZm9yIGNyZWF0aW5nIHZlY3RvciBmaWx0ZXIgZXhwcmVzc2lvbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBWZWN0b3JGaWx0ZXJFeHByZXNzaW9ucyB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4ge0BsaW5rIFZlY3RvckZpbHRlckFuZEV4cHJlc3Npb259IGJldHdlZW4gdHdvIHZlY3RvciBmaWx0ZXIgZXhwcmVzc2lvbnMuXG4gICAqIEBwYXJhbSBmaXJzdEV4cHJlc3Npb24gVGhlIGZpcnN0IGV4cHJlc3Npb24uXG4gICAqIEBwYXJhbSBzZWNvbmRFeHByZXNzaW9uIFRoZSBzZWNvbmQgZXhwcmVzc2lvbi5cbiAgICogQHJldHVybnMgVGhlIEFORCBleHByZXNzaW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhbmQoXG4gICAgZmlyc3RFeHByZXNzaW9uOiBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uLFxuICAgIHNlY29uZEV4cHJlc3Npb246IFZlY3RvckZpbHRlckV4cHJlc3Npb25cbiAgKTogVmVjdG9yRmlsdGVyQW5kRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIG5ldyBWZWN0b3JGaWx0ZXJBbmRFeHByZXNzaW9uKGZpcnN0RXhwcmVzc2lvbiwgc2Vjb25kRXhwcmVzc2lvbik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiB7QGxpbmsgVmVjdG9yRmlsdGVyT3JFeHByZXNzaW9ufSBiZXR3ZWVuIHR3byB2ZWN0b3IgZmlsdGVyIGV4cHJlc3Npb25zLlxuICAgKiBAcGFyYW0gZmlyc3RFeHByZXNzaW9uIFRoZSBmaXJzdCBleHByZXNzaW9uLlxuICAgKiBAcGFyYW0gc2Vjb25kRXhwcmVzc2lvbiBUaGUgc2Vjb25kIGV4cHJlc3Npb24uXG4gICAqIEByZXR1cm5zIFRoZSBPUiBleHByZXNzaW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvcihcbiAgICBmaXJzdEV4cHJlc3Npb246IFZlY3RvckZpbHRlckV4cHJlc3Npb24sXG4gICAgc2Vjb25kRXhwcmVzc2lvbjogVmVjdG9yRmlsdGVyRXhwcmVzc2lvblxuICApOiBWZWN0b3JGaWx0ZXJPckV4cHJlc3Npb24ge1xuICAgIHJldHVybiBuZXcgVmVjdG9yRmlsdGVyT3JFeHByZXNzaW9uKGZpcnN0RXhwcmVzc2lvbiwgc2Vjb25kRXhwcmVzc2lvbik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHtAbGluayBWZWN0b3JGaWx0ZXJOb3RFeHByZXNzaW9ufSBleHByZXNzaW9uIG9mIGEgdmVjdG9yIGZpbHRlciBleHByZXNzaW9uLlxuICAgKiBAcGFyYW0gZXhwcmVzc2lvbiBUaGUgZXhwcmVzc2lvbi5cbiAgICogQHJldHVybnMgVGhlIE5PVCBleHByZXNzaW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBub3QoXG4gICAgZXhwcmVzc2lvbjogVmVjdG9yRmlsdGVyRXhwcmVzc2lvblxuICApOiBWZWN0b3JGaWx0ZXJOb3RFeHByZXNzaW9uIHtcbiAgICByZXR1cm4gbmV3IFZlY3RvckZpbHRlck5vdEV4cHJlc3Npb24oZXhwcmVzc2lvbik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHtAbGluayBWZWN0b3JGaWx0ZXJFcXVhbHNFeHByZXNzaW9ufSBiZXR3ZWVuIGEgZmllbGQgYW5kIGEgdmFsdWUuXG4gICAqIEBwYXJhbSBmaWVsZCBUaGUgZmllbGQuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUuXG4gICAqIEByZXR1cm5zIFRoZSBlcXVhbHMgZXhwcmVzc2lvbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZXF1YWxzKFxuICAgIGZpZWxkOiBzdHJpbmcsXG4gICAgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW5cbiAgKTogVmVjdG9yRmlsdGVyRXF1YWxzRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIG5ldyBWZWN0b3JGaWx0ZXJFcXVhbHNFeHByZXNzaW9uKGZpZWxkLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHtAbGluayBWZWN0b3JGaWx0ZXJHcmVhdGVyVGhhbkV4cHJlc3Npb259IGJldHdlZW4gYSBmaWVsZCBhbmQgYSB2YWx1ZS5cbiAgICogQHBhcmFtIGZpZWxkIFRoZSBmaWVsZC5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZS5cbiAgICogQHJldHVybnMgVGhlIGdyZWF0ZXIgdGhhbiBleHByZXNzaW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBncmVhdGVyVGhhbihcbiAgICBmaWVsZDogc3RyaW5nLFxuICAgIHZhbHVlOiBudW1iZXJcbiAgKTogVmVjdG9yRmlsdGVyR3JlYXRlclRoYW5FeHByZXNzaW9uIHtcbiAgICByZXR1cm4gbmV3IFZlY3RvckZpbHRlckdyZWF0ZXJUaGFuRXhwcmVzc2lvbihmaWVsZCwgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSB7QGxpbmsgVmVjdG9yRmlsdGVyR3JlYXRlclRoYW5PckVxdWFsRXhwcmVzc2lvbn0gYmV0d2VlbiBhIGZpZWxkIGFuZCBhIHZhbHVlLlxuICAgKiBAcGFyYW0gZmllbGQgVGhlIGZpZWxkLlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlLlxuICAgKiBAcmV0dXJucyBUaGUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIGV4cHJlc3Npb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdyZWF0ZXJUaGFuT3JFcXVhbChcbiAgICBmaWVsZDogc3RyaW5nLFxuICAgIHZhbHVlOiBudW1iZXJcbiAgKTogVmVjdG9yRmlsdGVyR3JlYXRlclRoYW5PckVxdWFsRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIG5ldyBWZWN0b3JGaWx0ZXJHcmVhdGVyVGhhbk9yRXF1YWxFeHByZXNzaW9uKGZpZWxkLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHtAbGluayBWZWN0b3JGaWx0ZXJMZXNzVGhhbkV4cHJlc3Npb259IGJldHdlZW4gYSBmaWVsZCBhbmQgYSB2YWx1ZS5cbiAgICogQHBhcmFtIGZpZWxkIFRoZSBmaWVsZC5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZS5cbiAgICogQHJldHVybnMgVGhlIGxlc3MgdGhhbiBleHByZXNzaW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBsZXNzVGhhbihcbiAgICBmaWVsZDogc3RyaW5nLFxuICAgIHZhbHVlOiBudW1iZXJcbiAgKTogVmVjdG9yRmlsdGVyTGVzc1RoYW5FeHByZXNzaW9uIHtcbiAgICByZXR1cm4gbmV3IFZlY3RvckZpbHRlckxlc3NUaGFuRXhwcmVzc2lvbihmaWVsZCwgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSB7QGxpbmsgVmVjdG9yRmlsdGVyTGVzc1RoYW5PckVxdWFsRXhwcmVzc2lvbn0gYmV0d2VlbiBhIGZpZWxkIGFuZCBhIHZhbHVlLlxuICAgKiBAcGFyYW0gZmllbGQgVGhlIGZpZWxkLlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlLlxuICAgKiBAcmV0dXJucyBUaGUgbGVzcyB0aGFuIG9yIGVxdWFsIGV4cHJlc3Npb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGxlc3NUaGFuT3JFcXVhbChcbiAgICBmaWVsZDogc3RyaW5nLFxuICAgIHZhbHVlOiBudW1iZXJcbiAgKTogVmVjdG9yRmlsdGVyTGVzc1RoYW5PckVxdWFsRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIG5ldyBWZWN0b3JGaWx0ZXJMZXNzVGhhbk9yRXF1YWxFeHByZXNzaW9uKGZpZWxkLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHtAbGluayBWZWN0b3JGaWx0ZXJMaXN0Q29udGFpbnNFeHByZXNzaW9ufSBiZXR3ZWVuIGEgbGlzdC12YWx1ZWQgZmllbGQgYW5kIGEgdmFsdWUuXG4gICAqIEBwYXJhbSBmaWVsZCBUaGUgZmllbGQuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUuXG4gICAqIEByZXR1cm5zIFRoZSBjb250YWlucyBleHByZXNzaW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBsaXN0Q29udGFpbnMoXG4gICAgZmllbGQ6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nXG4gICk6IFZlY3RvckZpbHRlckxpc3RDb250YWluc0V4cHJlc3Npb24ge1xuICAgIHJldHVybiBuZXcgVmVjdG9yRmlsdGVyTGlzdENvbnRhaW5zRXhwcmVzc2lvbihmaWVsZCwgdmFsdWUpO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBBTkQgZXhwcmVzc2lvbiBiZXR3ZWVuIHR3byB2ZWN0b3IgZmlsdGVyIGV4cHJlc3Npb25zLlxuICovXG5leHBvcnQgY2xhc3MgVmVjdG9yRmlsdGVyQW5kRXhwcmVzc2lvbiBleHRlbmRzIFZlY3RvckZpbHRlckV4cHJlc3Npb24ge1xuICAvKipcbiAgICogVGhlIGZpcnN0IGV4cHJlc3Npb24gdG8gQU5ELlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBmaXJzdEV4cHJlc3Npb246IFZlY3RvckZpbHRlckV4cHJlc3Npb247XG4gIC8qKlxuICAgKiBUaGUgc2Vjb25kIGV4cHJlc3Npb24gdG8gQU5ELlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBzZWNvbmRFeHByZXNzaW9uOiBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGZpcnN0RXhwcmVzc2lvbjogVmVjdG9yRmlsdGVyRXhwcmVzc2lvbixcbiAgICBzZWNvbmRFeHByZXNzaW9uOiBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5maXJzdEV4cHJlc3Npb24gPSBmaXJzdEV4cHJlc3Npb247XG4gICAgdGhpcy5zZWNvbmRFeHByZXNzaW9uID0gc2Vjb25kRXhwcmVzc2lvbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgRmlyc3RFeHByZXNzaW9uKCk6IFZlY3RvckZpbHRlckV4cHJlc3Npb24ge1xuICAgIHJldHVybiB0aGlzLmZpcnN0RXhwcmVzc2lvbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgU2Vjb25kRXhwcmVzc2lvbigpOiBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uIHtcbiAgICByZXR1cm4gdGhpcy5zZWNvbmRFeHByZXNzaW9uO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAoJHt0aGlzLmZpcnN0RXhwcmVzc2lvbi50b1N0cmluZygpfSBBTkQgJHt0aGlzLnNlY29uZEV4cHJlc3Npb24udG9TdHJpbmcoKX0pYDtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gT1IgZXhwcmVzc2lvbiBiZXR3ZWVuIHR3byB2ZWN0b3IgZmlsdGVyIGV4cHJlc3Npb25zLlxuICovXG5leHBvcnQgY2xhc3MgVmVjdG9yRmlsdGVyT3JFeHByZXNzaW9uIGV4dGVuZHMgVmVjdG9yRmlsdGVyRXhwcmVzc2lvbiB7XG4gIC8qKlxuICAgKiBUaGUgZmlyc3QgZXhwcmVzc2lvbiB0byBPUi5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZmlyc3RFeHByZXNzaW9uOiBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uO1xuICAvKipcbiAgICogVGhlIHNlY29uZCBleHByZXNzaW9uIHRvIE9SLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBzZWNvbmRFeHByZXNzaW9uOiBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGZpcnN0RXhwcmVzc2lvbjogVmVjdG9yRmlsdGVyRXhwcmVzc2lvbixcbiAgICBzZWNvbmRFeHByZXNzaW9uOiBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5maXJzdEV4cHJlc3Npb24gPSBmaXJzdEV4cHJlc3Npb247XG4gICAgdGhpcy5zZWNvbmRFeHByZXNzaW9uID0gc2Vjb25kRXhwcmVzc2lvbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgRmlyc3RFeHByZXNzaW9uKCk6IFZlY3RvckZpbHRlckV4cHJlc3Npb24ge1xuICAgIHJldHVybiB0aGlzLmZpcnN0RXhwcmVzc2lvbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgU2Vjb25kRXhwcmVzc2lvbigpOiBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uIHtcbiAgICByZXR1cm4gdGhpcy5zZWNvbmRFeHByZXNzaW9uO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAoJHt0aGlzLmZpcnN0RXhwcmVzc2lvbi50b1N0cmluZygpfSBPUiAke3RoaXMuc2Vjb25kRXhwcmVzc2lvbi50b1N0cmluZygpfSlgO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIE5PVCBleHByZXNzaW9uIG9mIGEgdmVjdG9yIGZpbHRlciBleHByZXNzaW9uLlxuICovXG5leHBvcnQgY2xhc3MgVmVjdG9yRmlsdGVyTm90RXhwcmVzc2lvbiBleHRlbmRzIFZlY3RvckZpbHRlckV4cHJlc3Npb24ge1xuICAvKipcbiAgICogVGhlIGV4cHJlc3Npb24gdG8gbmVnYXRlLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBleHByZXNzaW9uOiBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uO1xuXG4gIGNvbnN0cnVjdG9yKGV4cHJlc3Npb246IFZlY3RvckZpbHRlckV4cHJlc3Npb24pIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZXhwcmVzc2lvbiA9IGV4cHJlc3Npb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IEV4cHJlc3Npb24oKTogVmVjdG9yRmlsdGVyRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIHRoaXMuZXhwcmVzc2lvbjtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgTk9UICR7dGhpcy5leHByZXNzaW9uLnRvU3RyaW5nKCl9YDtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gZXF1YWxzIGV4cHJlc3Npb24gYmV0d2VlbiBhIGZpZWxkIGFuZCBhIHZhbHVlLlxuICovXG5leHBvcnQgY2xhc3MgVmVjdG9yRmlsdGVyRXF1YWxzRXhwcmVzc2lvbiBleHRlbmRzIFZlY3RvckZpbHRlckV4cHJlc3Npb24ge1xuICAvKipcbiAgICogVGhlIGZpZWxkIHRvIGNvbXBhcmUuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGZpZWxkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgdG8gdGVzdCBmb3IgZXF1YWxpdHkuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmZpZWxkID0gZmllbGQ7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBGaWVsZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZpZWxkO1xuICB9XG5cbiAgcHVibGljIGdldCBWYWx1ZSgpOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmZpZWxkfT0ke3RoaXMudmFsdWUudG9TdHJpbmcoKX1gO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGdyZWF0ZXIgdGhhbiBleHByZXNzaW9uIGJldHdlZW4gYSBmaWVsZCBhbmQgYSB2YWx1ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFZlY3RvckZpbHRlckdyZWF0ZXJUaGFuRXhwcmVzc2lvbiBleHRlbmRzIFZlY3RvckZpbHRlckV4cHJlc3Npb24ge1xuICAvKipcbiAgICogVGhlIGZpZWxkIHRvIGNvbXBhcmUuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGZpZWxkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgdG8gdGVzdCBmb3IgZ3JlYXRlciB0aGFuLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSB2YWx1ZTogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZmllbGQgPSBmaWVsZDtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IEZpZWxkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IFZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5maWVsZH0gPiAke3RoaXMudmFsdWUudG9TdHJpbmcoKX1gO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCBleHByZXNzaW9uIGJldHdlZW4gYSBmaWVsZCBhbmQgYSB2YWx1ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFZlY3RvckZpbHRlckdyZWF0ZXJUaGFuT3JFcXVhbEV4cHJlc3Npb24gZXh0ZW5kcyBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uIHtcbiAgLyoqXG4gICAqIFRoZSBmaWVsZCB0byBjb21wYXJlLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBmaWVsZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHZhbHVlIHRvIHRlc3QgZm9yIGdyZWF0ZXIgdGhhbiBvciBlcXVhbC5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgdmFsdWU6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihmaWVsZDogc3RyaW5nLCB2YWx1ZTogbnVtYmVyKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmZpZWxkID0gZmllbGQ7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBGaWVsZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZpZWxkO1xuICB9XG5cbiAgcHVibGljIGdldCBWYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuZmllbGR9ID49ICR7dGhpcy52YWx1ZS50b1N0cmluZygpfWA7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbGVzcyB0aGFuIGV4cHJlc3Npb24gYmV0d2VlbiBhIGZpZWxkIGFuZCBhIHZhbHVlLlxuICovXG5leHBvcnQgY2xhc3MgVmVjdG9yRmlsdGVyTGVzc1RoYW5FeHByZXNzaW9uIGV4dGVuZHMgVmVjdG9yRmlsdGVyRXhwcmVzc2lvbiB7XG4gIC8qKlxuICAgKiBUaGUgZmllbGQgdG8gY29tcGFyZS5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZmllbGQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSB0byB0ZXN0IGZvciBsZXNzIHRoYW4uXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHZhbHVlOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoZmllbGQ6IHN0cmluZywgdmFsdWU6IG51bWJlcikge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5maWVsZCA9IGZpZWxkO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgRmllbGQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgVmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmZpZWxkfSA8ICR7dGhpcy52YWx1ZS50b1N0cmluZygpfWA7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbGVzcyB0aGFuIG9yIGVxdWFsIGV4cHJlc3Npb24gYmV0d2VlbiBhIGZpZWxkIGFuZCBhIHZhbHVlLlxuICovXG5leHBvcnQgY2xhc3MgVmVjdG9yRmlsdGVyTGVzc1RoYW5PckVxdWFsRXhwcmVzc2lvbiBleHRlbmRzIFZlY3RvckZpbHRlckV4cHJlc3Npb24ge1xuICAvKipcbiAgICogVGhlIGZpZWxkIHRvIGNvbXBhcmUuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGZpZWxkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgdG8gdGVzdCBmb3IgbGVzcyB0aGFuIG9yIGVxdWFsLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSB2YWx1ZTogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZmllbGQgPSBmaWVsZDtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IEZpZWxkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IFZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5maWVsZH0gPD0gJHt0aGlzLnZhbHVlLnRvU3RyaW5nKCl9YDtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjb250YWlucyBleHByZXNzaW9uIGJldHdlZW4gYSBsaXN0LXZhbHVlZCBmaWVsZCBhbmQgYSB2YWx1ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFZlY3RvckZpbHRlckxpc3RDb250YWluc0V4cHJlc3Npb24gZXh0ZW5kcyBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uIHtcbiAgLyoqXG4gICAqIFRoZSBmaWVsZCB0byBjb21wYXJlLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBmaWVsZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHZhbHVlIHRvIHRlc3QgZm9yIGNvbnRhaW5tZW50LCBpZSBkb2VzIHRoZSBsaXN0IGNvbnRhaW4gdGhpcyB2YWx1ZS5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihmaWVsZDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmZpZWxkID0gZmllbGQ7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBGaWVsZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZpZWxkO1xuICB9XG5cbiAgcHVibGljIGdldCBWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuZmllbGR9IGNvbnRhaW5zICR7dGhpcy52YWx1ZS50b1N0cmluZygpfWA7XG4gIH1cbn1cbiJdfQ==
304
+ /**
305
+ * Represents an id in set expression.
306
+ * An item is considered a match if its id is in the set of ids.
307
+ */
308
+ class VectorFilterIdInSetExpression extends VectorFilterExpression {
309
+ constructor(ids) {
310
+ super();
311
+ this.ids = ids;
312
+ }
313
+ /**
314
+ * The ids to test for membership.
315
+ * @constructor
316
+ */
317
+ get Ids() {
318
+ return this.ids;
319
+ }
320
+ toString() {
321
+ return `id in [${this.ids.join(', ')}]`;
322
+ }
323
+ }
324
+ exports.VectorFilterIdInSetExpression = VectorFilterIdInSetExpression;
325
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVjdG9yLWluZGV4LWZpbHRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVzc2FnZXMvdmVjdG9yLWluZGV4LWZpbHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxNQUFzQixzQkFBc0I7SUFHMUM7Ozs7T0FJRztJQUNJLEdBQUcsQ0FBQyxLQUE2QjtRQUN0QyxPQUFPLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxFQUFFLENBQUMsS0FBNkI7UUFDckMsT0FBTyx1QkFBdUIsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7O09BR0c7SUFDSSxHQUFHO1FBQ1IsT0FBTyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztDQUNGO0FBNUJELHdEQTRCQztBQUVEOztHQUVHO0FBQ0gsTUFBYSx1QkFBdUI7SUFDbEMsZ0VBQWdFO0lBQ2hFLGdCQUF1QixDQUFDO0lBRXhCOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEdBQUcsQ0FDZixlQUF1QyxFQUN2QyxnQkFBd0M7UUFFeEMsT0FBTyxJQUFJLHlCQUF5QixDQUFDLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxFQUFFLENBQ2QsZUFBdUMsRUFDdkMsZ0JBQXdDO1FBRXhDLE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxHQUFHLENBQ2YsVUFBa0M7UUFFbEMsT0FBTyxJQUFJLHlCQUF5QixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7Ozs7T0FL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QztJQUNsQixDQUFDO0lBRWUsUUFBUTtRQUN0QixPQUFPLFVBQVUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUMxQyxDQUFDO0NBQ0Y7QUF2QkQsc0VBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBhbGwgdmVjdG9yIGluZGV4IGZpbHRlciBleHByZXNzaW9ucy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFZlY3RvckZpbHRlckV4cHJlc3Npb24ge1xuICBwdWJsaWMgYWJzdHJhY3QgdG9TdHJpbmcoKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIEFORCBleHByZXNzaW9uIGJldHdlZW4gdGhpcyBleHByZXNzaW9uIGFuZCBhbm90aGVyIG9uZS5cbiAgICogQHBhcmFtIG90aGVyIFRoZSBvdGhlciBleHByZXNzaW9uLlxuICAgKiBAcmV0dXJucyBUaGUgQU5EIGV4cHJlc3Npb24uXG4gICAqL1xuICBwdWJsaWMgYW5kKG90aGVyOiBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uKTogVmVjdG9yRmlsdGVyQW5kRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIFZlY3RvckZpbHRlckV4cHJlc3Npb25zLmFuZCh0aGlzLCBvdGhlcik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBPUiBleHByZXNzaW9uIGJldHdlZW4gdGhpcyBleHByZXNzaW9uIGFuZCBhbm90aGVyIG9uZS5cbiAgICogQHBhcmFtIG90aGVyIFRoZSBvdGhlciBleHByZXNzaW9uLlxuICAgKiBAcmV0dXJucyBUaGUgT1IgZXhwcmVzc2lvbi5cbiAgICovXG4gIHB1YmxpYyBvcihvdGhlcjogVmVjdG9yRmlsdGVyRXhwcmVzc2lvbik6IFZlY3RvckZpbHRlck9yRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIFZlY3RvckZpbHRlckV4cHJlc3Npb25zLm9yKHRoaXMsIG90aGVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOZWdhdGVzIHRoaXMgZXhwcmVzc2lvbi5cbiAgICogQHJldHVybnMgVGhlIG5lZ2F0ZWQgZXhwcmVzc2lvbi5cbiAgICovXG4gIHB1YmxpYyBub3QoKTogVmVjdG9yRmlsdGVyTm90RXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIFZlY3RvckZpbHRlckV4cHJlc3Npb25zLm5vdCh0aGlzKTtcbiAgfVxufVxuXG4vKipcbiAqIEZhY3RvcnkgZm9yIGNyZWF0aW5nIHZlY3RvciBmaWx0ZXIgZXhwcmVzc2lvbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBWZWN0b3JGaWx0ZXJFeHByZXNzaW9ucyB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4ge0BsaW5rIFZlY3RvckZpbHRlckFuZEV4cHJlc3Npb259IGJldHdlZW4gdHdvIHZlY3RvciBmaWx0ZXIgZXhwcmVzc2lvbnMuXG4gICAqIEBwYXJhbSBmaXJzdEV4cHJlc3Npb24gVGhlIGZpcnN0IGV4cHJlc3Npb24uXG4gICAqIEBwYXJhbSBzZWNvbmRFeHByZXNzaW9uIFRoZSBzZWNvbmQgZXhwcmVzc2lvbi5cbiAgICogQHJldHVybnMgVGhlIEFORCBleHByZXNzaW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhbmQoXG4gICAgZmlyc3RFeHByZXNzaW9uOiBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uLFxuICAgIHNlY29uZEV4cHJlc3Npb246IFZlY3RvckZpbHRlckV4cHJlc3Npb25cbiAgKTogVmVjdG9yRmlsdGVyQW5kRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIG5ldyBWZWN0b3JGaWx0ZXJBbmRFeHByZXNzaW9uKGZpcnN0RXhwcmVzc2lvbiwgc2Vjb25kRXhwcmVzc2lvbik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiB7QGxpbmsgVmVjdG9yRmlsdGVyT3JFeHByZXNzaW9ufSBiZXR3ZWVuIHR3byB2ZWN0b3IgZmlsdGVyIGV4cHJlc3Npb25zLlxuICAgKiBAcGFyYW0gZmlyc3RFeHByZXNzaW9uIFRoZSBmaXJzdCBleHByZXNzaW9uLlxuICAgKiBAcGFyYW0gc2Vjb25kRXhwcmVzc2lvbiBUaGUgc2Vjb25kIGV4cHJlc3Npb24uXG4gICAqIEByZXR1cm5zIFRoZSBPUiBleHByZXNzaW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvcihcbiAgICBmaXJzdEV4cHJlc3Npb246IFZlY3RvckZpbHRlckV4cHJlc3Npb24sXG4gICAgc2Vjb25kRXhwcmVzc2lvbjogVmVjdG9yRmlsdGVyRXhwcmVzc2lvblxuICApOiBWZWN0b3JGaWx0ZXJPckV4cHJlc3Npb24ge1xuICAgIHJldHVybiBuZXcgVmVjdG9yRmlsdGVyT3JFeHByZXNzaW9uKGZpcnN0RXhwcmVzc2lvbiwgc2Vjb25kRXhwcmVzc2lvbik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHtAbGluayBWZWN0b3JGaWx0ZXJOb3RFeHByZXNzaW9ufSBleHByZXNzaW9uIG9mIGEgdmVjdG9yIGZpbHRlciBleHByZXNzaW9uLlxuICAgKiBAcGFyYW0gZXhwcmVzc2lvbiBUaGUgZXhwcmVzc2lvbi5cbiAgICogQHJldHVybnMgVGhlIE5PVCBleHByZXNzaW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBub3QoXG4gICAgZXhwcmVzc2lvbjogVmVjdG9yRmlsdGVyRXhwcmVzc2lvblxuICApOiBWZWN0b3JGaWx0ZXJOb3RFeHByZXNzaW9uIHtcbiAgICByZXR1cm4gbmV3IFZlY3RvckZpbHRlck5vdEV4cHJlc3Npb24oZXhwcmVzc2lvbik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHtAbGluayBWZWN0b3JGaWx0ZXJFcXVhbHNFeHByZXNzaW9ufSBiZXR3ZWVuIGEgZmllbGQgYW5kIGEgdmFsdWUuXG4gICAqIEBwYXJhbSBmaWVsZCBUaGUgZmllbGQuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUuXG4gICAqIEByZXR1cm5zIFRoZSBlcXVhbHMgZXhwcmVzc2lvbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZXF1YWxzKFxuICAgIGZpZWxkOiBzdHJpbmcsXG4gICAgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW5cbiAgKTogVmVjdG9yRmlsdGVyRXF1YWxzRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIG5ldyBWZWN0b3JGaWx0ZXJFcXVhbHNFeHByZXNzaW9uKGZpZWxkLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHtAbGluayBWZWN0b3JGaWx0ZXJHcmVhdGVyVGhhbkV4cHJlc3Npb259IGJldHdlZW4gYSBmaWVsZCBhbmQgYSB2YWx1ZS5cbiAgICogQHBhcmFtIGZpZWxkIFRoZSBmaWVsZC5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZS5cbiAgICogQHJldHVybnMgVGhlIGdyZWF0ZXIgdGhhbiBleHByZXNzaW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBncmVhdGVyVGhhbihcbiAgICBmaWVsZDogc3RyaW5nLFxuICAgIHZhbHVlOiBudW1iZXJcbiAgKTogVmVjdG9yRmlsdGVyR3JlYXRlclRoYW5FeHByZXNzaW9uIHtcbiAgICByZXR1cm4gbmV3IFZlY3RvckZpbHRlckdyZWF0ZXJUaGFuRXhwcmVzc2lvbihmaWVsZCwgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSB7QGxpbmsgVmVjdG9yRmlsdGVyR3JlYXRlclRoYW5PckVxdWFsRXhwcmVzc2lvbn0gYmV0d2VlbiBhIGZpZWxkIGFuZCBhIHZhbHVlLlxuICAgKiBAcGFyYW0gZmllbGQgVGhlIGZpZWxkLlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlLlxuICAgKiBAcmV0dXJucyBUaGUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIGV4cHJlc3Npb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdyZWF0ZXJUaGFuT3JFcXVhbChcbiAgICBmaWVsZDogc3RyaW5nLFxuICAgIHZhbHVlOiBudW1iZXJcbiAgKTogVmVjdG9yRmlsdGVyR3JlYXRlclRoYW5PckVxdWFsRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIG5ldyBWZWN0b3JGaWx0ZXJHcmVhdGVyVGhhbk9yRXF1YWxFeHByZXNzaW9uKGZpZWxkLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHtAbGluayBWZWN0b3JGaWx0ZXJMZXNzVGhhbkV4cHJlc3Npb259IGJldHdlZW4gYSBmaWVsZCBhbmQgYSB2YWx1ZS5cbiAgICogQHBhcmFtIGZpZWxkIFRoZSBmaWVsZC5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZS5cbiAgICogQHJldHVybnMgVGhlIGxlc3MgdGhhbiBleHByZXNzaW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBsZXNzVGhhbihcbiAgICBmaWVsZDogc3RyaW5nLFxuICAgIHZhbHVlOiBudW1iZXJcbiAgKTogVmVjdG9yRmlsdGVyTGVzc1RoYW5FeHByZXNzaW9uIHtcbiAgICByZXR1cm4gbmV3IFZlY3RvckZpbHRlckxlc3NUaGFuRXhwcmVzc2lvbihmaWVsZCwgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSB7QGxpbmsgVmVjdG9yRmlsdGVyTGVzc1RoYW5PckVxdWFsRXhwcmVzc2lvbn0gYmV0d2VlbiBhIGZpZWxkIGFuZCBhIHZhbHVlLlxuICAgKiBAcGFyYW0gZmllbGQgVGhlIGZpZWxkLlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlLlxuICAgKiBAcmV0dXJucyBUaGUgbGVzcyB0aGFuIG9yIGVxdWFsIGV4cHJlc3Npb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGxlc3NUaGFuT3JFcXVhbChcbiAgICBmaWVsZDogc3RyaW5nLFxuICAgIHZhbHVlOiBudW1iZXJcbiAgKTogVmVjdG9yRmlsdGVyTGVzc1RoYW5PckVxdWFsRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIG5ldyBWZWN0b3JGaWx0ZXJMZXNzVGhhbk9yRXF1YWxFeHByZXNzaW9uKGZpZWxkLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHtAbGluayBWZWN0b3JGaWx0ZXJMaXN0Q29udGFpbnNFeHByZXNzaW9ufSBiZXR3ZWVuIGEgbGlzdC12YWx1ZWQgZmllbGQgYW5kIGEgdmFsdWUuXG4gICAqIEBwYXJhbSBmaWVsZCBUaGUgZmllbGQuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUuXG4gICAqIEByZXR1cm5zIFRoZSBjb250YWlucyBleHByZXNzaW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBsaXN0Q29udGFpbnMoXG4gICAgZmllbGQ6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nXG4gICk6IFZlY3RvckZpbHRlckxpc3RDb250YWluc0V4cHJlc3Npb24ge1xuICAgIHJldHVybiBuZXcgVmVjdG9yRmlsdGVyTGlzdENvbnRhaW5zRXhwcmVzc2lvbihmaWVsZCwgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSB7QGxpbmsgVmVjdG9yRmlsdGVySWRJblNldEV4cHJlc3Npb259IGZvciBhIHNldCBvZiBpZHMuXG4gICAqIEBwYXJhbSBpZHMgVGhlIGlkcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaWRJblNldChpZHM6IHN0cmluZ1tdKTogVmVjdG9yRmlsdGVySWRJblNldEV4cHJlc3Npb24ge1xuICAgIHJldHVybiBuZXcgVmVjdG9yRmlsdGVySWRJblNldEV4cHJlc3Npb24oaWRzKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gQU5EIGV4cHJlc3Npb24gYmV0d2VlbiB0d28gdmVjdG9yIGZpbHRlciBleHByZXNzaW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIFZlY3RvckZpbHRlckFuZEV4cHJlc3Npb24gZXh0ZW5kcyBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uIHtcbiAgLyoqXG4gICAqIFRoZSBmaXJzdCBleHByZXNzaW9uIHRvIEFORC5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZmlyc3RFeHByZXNzaW9uOiBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uO1xuICAvKipcbiAgICogVGhlIHNlY29uZCBleHByZXNzaW9uIHRvIEFORC5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgc2Vjb25kRXhwcmVzc2lvbjogVmVjdG9yRmlsdGVyRXhwcmVzc2lvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBmaXJzdEV4cHJlc3Npb246IFZlY3RvckZpbHRlckV4cHJlc3Npb24sXG4gICAgc2Vjb25kRXhwcmVzc2lvbjogVmVjdG9yRmlsdGVyRXhwcmVzc2lvblxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZmlyc3RFeHByZXNzaW9uID0gZmlyc3RFeHByZXNzaW9uO1xuICAgIHRoaXMuc2Vjb25kRXhwcmVzc2lvbiA9IHNlY29uZEV4cHJlc3Npb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IEZpcnN0RXhwcmVzc2lvbigpOiBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uIHtcbiAgICByZXR1cm4gdGhpcy5maXJzdEV4cHJlc3Npb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IFNlY29uZEV4cHJlc3Npb24oKTogVmVjdG9yRmlsdGVyRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIHRoaXMuc2Vjb25kRXhwcmVzc2lvbjtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgKCR7dGhpcy5maXJzdEV4cHJlc3Npb24udG9TdHJpbmcoKX0gQU5EICR7dGhpcy5zZWNvbmRFeHByZXNzaW9uLnRvU3RyaW5nKCl9KWA7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIE9SIGV4cHJlc3Npb24gYmV0d2VlbiB0d28gdmVjdG9yIGZpbHRlciBleHByZXNzaW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIFZlY3RvckZpbHRlck9yRXhwcmVzc2lvbiBleHRlbmRzIFZlY3RvckZpbHRlckV4cHJlc3Npb24ge1xuICAvKipcbiAgICogVGhlIGZpcnN0IGV4cHJlc3Npb24gdG8gT1IuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGZpcnN0RXhwcmVzc2lvbjogVmVjdG9yRmlsdGVyRXhwcmVzc2lvbjtcbiAgLyoqXG4gICAqIFRoZSBzZWNvbmQgZXhwcmVzc2lvbiB0byBPUi5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgc2Vjb25kRXhwcmVzc2lvbjogVmVjdG9yRmlsdGVyRXhwcmVzc2lvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBmaXJzdEV4cHJlc3Npb246IFZlY3RvckZpbHRlckV4cHJlc3Npb24sXG4gICAgc2Vjb25kRXhwcmVzc2lvbjogVmVjdG9yRmlsdGVyRXhwcmVzc2lvblxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZmlyc3RFeHByZXNzaW9uID0gZmlyc3RFeHByZXNzaW9uO1xuICAgIHRoaXMuc2Vjb25kRXhwcmVzc2lvbiA9IHNlY29uZEV4cHJlc3Npb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IEZpcnN0RXhwcmVzc2lvbigpOiBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uIHtcbiAgICByZXR1cm4gdGhpcy5maXJzdEV4cHJlc3Npb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IFNlY29uZEV4cHJlc3Npb24oKTogVmVjdG9yRmlsdGVyRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIHRoaXMuc2Vjb25kRXhwcmVzc2lvbjtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgKCR7dGhpcy5maXJzdEV4cHJlc3Npb24udG9TdHJpbmcoKX0gT1IgJHt0aGlzLnNlY29uZEV4cHJlc3Npb24udG9TdHJpbmcoKX0pYDtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBOT1QgZXhwcmVzc2lvbiBvZiBhIHZlY3RvciBmaWx0ZXIgZXhwcmVzc2lvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFZlY3RvckZpbHRlck5vdEV4cHJlc3Npb24gZXh0ZW5kcyBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uIHtcbiAgLyoqXG4gICAqIFRoZSBleHByZXNzaW9uIHRvIG5lZ2F0ZS5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZXhwcmVzc2lvbjogVmVjdG9yRmlsdGVyRXhwcmVzc2lvbjtcblxuICBjb25zdHJ1Y3RvcihleHByZXNzaW9uOiBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmV4cHJlc3Npb24gPSBleHByZXNzaW9uO1xuICB9XG5cbiAgcHVibGljIGdldCBFeHByZXNzaW9uKCk6IFZlY3RvckZpbHRlckV4cHJlc3Npb24ge1xuICAgIHJldHVybiB0aGlzLmV4cHJlc3Npb247XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYE5PVCAke3RoaXMuZXhwcmVzc2lvbi50b1N0cmluZygpfWA7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGVxdWFscyBleHByZXNzaW9uIGJldHdlZW4gYSBmaWVsZCBhbmQgYSB2YWx1ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFZlY3RvckZpbHRlckVxdWFsc0V4cHJlc3Npb24gZXh0ZW5kcyBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uIHtcbiAgLyoqXG4gICAqIFRoZSBmaWVsZCB0byBjb21wYXJlLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBmaWVsZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHZhbHVlIHRvIHRlc3QgZm9yIGVxdWFsaXR5LlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihmaWVsZDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbikge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5maWVsZCA9IGZpZWxkO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgRmllbGQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgVmFsdWUoKTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5maWVsZH09JHt0aGlzLnZhbHVlLnRvU3RyaW5nKCl9YDtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBncmVhdGVyIHRoYW4gZXhwcmVzc2lvbiBiZXR3ZWVuIGEgZmllbGQgYW5kIGEgdmFsdWUuXG4gKi9cbmV4cG9ydCBjbGFzcyBWZWN0b3JGaWx0ZXJHcmVhdGVyVGhhbkV4cHJlc3Npb24gZXh0ZW5kcyBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uIHtcbiAgLyoqXG4gICAqIFRoZSBmaWVsZCB0byBjb21wYXJlLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBmaWVsZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHZhbHVlIHRvIHRlc3QgZm9yIGdyZWF0ZXIgdGhhbi5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgdmFsdWU6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihmaWVsZDogc3RyaW5nLCB2YWx1ZTogbnVtYmVyKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmZpZWxkID0gZmllbGQ7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBGaWVsZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZpZWxkO1xuICB9XG5cbiAgcHVibGljIGdldCBWYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuZmllbGR9ID4gJHt0aGlzLnZhbHVlLnRvU3RyaW5nKCl9YDtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgZXhwcmVzc2lvbiBiZXR3ZWVuIGEgZmllbGQgYW5kIGEgdmFsdWUuXG4gKi9cbmV4cG9ydCBjbGFzcyBWZWN0b3JGaWx0ZXJHcmVhdGVyVGhhbk9yRXF1YWxFeHByZXNzaW9uIGV4dGVuZHMgVmVjdG9yRmlsdGVyRXhwcmVzc2lvbiB7XG4gIC8qKlxuICAgKiBUaGUgZmllbGQgdG8gY29tcGFyZS5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZmllbGQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSB0byB0ZXN0IGZvciBncmVhdGVyIHRoYW4gb3IgZXF1YWwuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHZhbHVlOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoZmllbGQ6IHN0cmluZywgdmFsdWU6IG51bWJlcikge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5maWVsZCA9IGZpZWxkO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgRmllbGQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgVmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmZpZWxkfSA+PSAke3RoaXMudmFsdWUudG9TdHJpbmcoKX1gO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGxlc3MgdGhhbiBleHByZXNzaW9uIGJldHdlZW4gYSBmaWVsZCBhbmQgYSB2YWx1ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFZlY3RvckZpbHRlckxlc3NUaGFuRXhwcmVzc2lvbiBleHRlbmRzIFZlY3RvckZpbHRlckV4cHJlc3Npb24ge1xuICAvKipcbiAgICogVGhlIGZpZWxkIHRvIGNvbXBhcmUuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGZpZWxkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgdG8gdGVzdCBmb3IgbGVzcyB0aGFuLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSB2YWx1ZTogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZmllbGQgPSBmaWVsZDtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IEZpZWxkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IFZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5maWVsZH0gPCAke3RoaXMudmFsdWUudG9TdHJpbmcoKX1gO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGxlc3MgdGhhbiBvciBlcXVhbCBleHByZXNzaW9uIGJldHdlZW4gYSBmaWVsZCBhbmQgYSB2YWx1ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFZlY3RvckZpbHRlckxlc3NUaGFuT3JFcXVhbEV4cHJlc3Npb24gZXh0ZW5kcyBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uIHtcbiAgLyoqXG4gICAqIFRoZSBmaWVsZCB0byBjb21wYXJlLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBmaWVsZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHZhbHVlIHRvIHRlc3QgZm9yIGxlc3MgdGhhbiBvciBlcXVhbC5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgdmFsdWU6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihmaWVsZDogc3RyaW5nLCB2YWx1ZTogbnVtYmVyKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmZpZWxkID0gZmllbGQ7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBGaWVsZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZpZWxkO1xuICB9XG5cbiAgcHVibGljIGdldCBWYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuZmllbGR9IDw9ICR7dGhpcy52YWx1ZS50b1N0cmluZygpfWA7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgY29udGFpbnMgZXhwcmVzc2lvbiBiZXR3ZWVuIGEgbGlzdC12YWx1ZWQgZmllbGQgYW5kIGEgdmFsdWUuXG4gKi9cbmV4cG9ydCBjbGFzcyBWZWN0b3JGaWx0ZXJMaXN0Q29udGFpbnNFeHByZXNzaW9uIGV4dGVuZHMgVmVjdG9yRmlsdGVyRXhwcmVzc2lvbiB7XG4gIC8qKlxuICAgKiBUaGUgZmllbGQgdG8gY29tcGFyZS5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZmllbGQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSB0byB0ZXN0IGZvciBjb250YWlubWVudCwgaWUgZG9lcyB0aGUgbGlzdCBjb250YWluIHRoaXMgdmFsdWUuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoZmllbGQ6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5maWVsZCA9IGZpZWxkO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgRmllbGQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgVmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmZpZWxkfSBjb250YWlucyAke3RoaXMudmFsdWUudG9TdHJpbmcoKX1gO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBpZCBpbiBzZXQgZXhwcmVzc2lvbi5cbiAqIEFuIGl0ZW0gaXMgY29uc2lkZXJlZCBhIG1hdGNoIGlmIGl0cyBpZCBpcyBpbiB0aGUgc2V0IG9mIGlkcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFZlY3RvckZpbHRlcklkSW5TZXRFeHByZXNzaW9uIGV4dGVuZHMgVmVjdG9yRmlsdGVyRXhwcmVzc2lvbiB7XG4gIC8qKlxuICAgKiBUaGUgaWRzIHRvIHRlc3QgZm9yIG1lbWJlcnNoaXAuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGlkczogc3RyaW5nW107XG5cbiAgY29uc3RydWN0b3IoaWRzOiBzdHJpbmdbXSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5pZHMgPSBpZHM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGlkcyB0byB0ZXN0IGZvciBtZW1iZXJzaGlwLlxuICAgKiBAY29uc3RydWN0b3JcbiAgICovXG4gIHB1YmxpYyBnZXQgSWRzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5pZHM7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGlkIGluIFske3RoaXMuaWRzLmpvaW4oJywgJyl9XWA7XG4gIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gomomento/sdk-core",
3
- "version": "1.62.0",
3
+ "version": "1.63.1",
4
4
  "description": "Common code for Momento JS SDKs",
5
5
  "main": "dist/src/index.js",
6
6
  "files": [