@ultipa-graph/ultipa-driver 6.0.11 → 6.0.14

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.
@@ -7,10 +7,26 @@ export declare enum DBType {
7
7
  NODE = 0,
8
8
  EDGE = 1
9
9
  }
10
- /** Controls the insert mode for GQL-based insert operations */
10
+ /**
11
+ * Controls the insert mode for GQL-based insert operations.
12
+ *
13
+ * - `Normal`: INSERT — error if `_id` already exists.
14
+ * - `Overwrite`: INSERT OVERWRITE — REPLACE existing entity wholesale
15
+ * on duplicate `_id`. Properties not in the write are LOST.
16
+ * - `Upsert`: UPSERT — MERGE new properties into existing entity
17
+ * on duplicate `_id`. Properties not in the write are PRESERVED;
18
+ * properties in the write OVERWRITE existing values. Falls back to
19
+ * plain insert when no `_id` matches.
20
+ *
21
+ * `Overwrite` and `Upsert` are different semantics on existing rows.
22
+ * Choose `Upsert` (merge) for partial-update workloads where you don't
23
+ * want to lose existing fields; choose `Overwrite` (replace) for
24
+ * known-clean re-ingest of an entity's full state.
25
+ */
11
26
  export declare enum InsertType {
12
27
  Normal = 0,
13
- Overwrite = 1
28
+ Overwrite = 1,
29
+ Upsert = 2
14
30
  }
15
31
  /** Label info from SHOW LABELS.
16
32
  *
@@ -18,11 +18,27 @@ var DBType;
18
18
  DBType[DBType["NODE"] = 0] = "NODE";
19
19
  DBType[DBType["EDGE"] = 1] = "EDGE";
20
20
  })(DBType || (exports.DBType = DBType = {}));
21
- /** Controls the insert mode for GQL-based insert operations */
21
+ /**
22
+ * Controls the insert mode for GQL-based insert operations.
23
+ *
24
+ * - `Normal`: INSERT — error if `_id` already exists.
25
+ * - `Overwrite`: INSERT OVERWRITE — REPLACE existing entity wholesale
26
+ * on duplicate `_id`. Properties not in the write are LOST.
27
+ * - `Upsert`: UPSERT — MERGE new properties into existing entity
28
+ * on duplicate `_id`. Properties not in the write are PRESERVED;
29
+ * properties in the write OVERWRITE existing values. Falls back to
30
+ * plain insert when no `_id` matches.
31
+ *
32
+ * `Overwrite` and `Upsert` are different semantics on existing rows.
33
+ * Choose `Upsert` (merge) for partial-update workloads where you don't
34
+ * want to lose existing fields; choose `Overwrite` (replace) for
35
+ * known-clean re-ingest of an entity's full state.
36
+ */
22
37
  var InsertType;
23
38
  (function (InsertType) {
24
39
  InsertType[InsertType["Normal"] = 0] = "Normal";
25
40
  InsertType[InsertType["Overwrite"] = 1] = "Overwrite";
41
+ InsertType[InsertType["Upsert"] = 2] = "Upsert";
26
42
  })(InsertType || (exports.InsertType = InsertType = {}));
27
43
  // ConvNode and ConvEdge have been removed.
28
44
  // Use NodeData and EdgeData from graph_models instead.
@@ -128,4 +144,4 @@ function useGraphPrefix(graphName) {
128
144
  function dbTypeToKeyword(dt) {
129
145
  return dt === DBType.EDGE ? 'EDGE' : 'NODE';
130
146
  }
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVuaWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvY29udmVuaWVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFpTEgsa0RBY0M7QUFNRCw4Q0FFQztBQUtELHdEQUlDO0FBS0QsNERBT0M7QUFLRCx3Q0FtQkM7QUFLRCxnRUFLQztBQUtELHdDQUdDO0FBS0QsMENBRUM7QUF4UUQscURBQXFEO0FBQ3JELElBQVksTUFHWDtBQUhELFdBQVksTUFBTTtJQUNoQixtQ0FBUSxDQUFBO0lBQ1IsbUNBQVEsQ0FBQTtBQUNWLENBQUMsRUFIVyxNQUFNLHNCQUFOLE1BQU0sUUFHakI7QUFFRCwrREFBK0Q7QUFDL0QsSUFBWSxVQUdYO0FBSEQsV0FBWSxVQUFVO0lBQ3BCLCtDQUFVLENBQUE7SUFDVixxREFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUhXLFVBQVUsMEJBQVYsVUFBVSxRQUdyQjtBQXVKRCwyQ0FBMkM7QUFDM0MsdURBQXVEO0FBRXZELGdGQUFnRjtBQUNoRixtQkFBbUI7QUFDbkIsZ0ZBQWdGO0FBRWhGOzs7R0FHRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLENBQVM7SUFDM0MsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNiLElBQUksQ0FBQyxDQUFDO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFFbEIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQixNQUFNLE1BQU0sR0FBc0IsRUFBRSxDQUFDO0lBQ3JDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPO1lBQUUsU0FBUztRQUN2QixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFD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R0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEUsT0FBTyxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDdEMsQ0FBQztJQUNELE9BQU8sSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUMxQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQiwwQkFBMEIsQ0FBQyxLQUEwQjtJQUNuRSxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDakMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDakUsT0FBTyxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDdEMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLFNBQWlCO0lBQzlDLElBQUksQ0FBQyxTQUFTO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDMUIsT0FBTyxhQUFhLFNBQVMsSUFBSSxDQUFDO0FBQ3BDLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxFQUFVO0lBQ3hDLE9BQU8sRUFBRSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbnZlbmllbmNlIEFQSSB0eXBlcyBmb3IgR1FMREIgTm9kZS5qcyBkcml2ZXIuXG4gKi9cblxuaW1wb3J0IHsgUHJvcGVydHlUeXBlIH0gZnJvbSAnLi9lbnVtcyc7XG5pbXBvcnQgdHlwZSB7IFJlc3BvbnNlIH0gZnJvbSAnLi4vcmVzcG9uc2UnO1xuXG4vKiogRGlzdGluZ3Vpc2hlcyBiZXR3ZWVuIG5vZGUgYW5kIGVkZ2Ugb3BlcmF0aW9ucyAqL1xuZXhwb3J0IGVudW0gREJUeXBlIHtcbiAgTk9ERSA9IDAsXG4gIEVER0UgPSAxLFxufVxuXG4vKiogQ29udHJvbHMgdGhlIGluc2VydCBtb2RlIGZvciBHUUwtYmFzZWQgaW5zZXJ0IG9wZXJhdGlvbnMgKi9cbmV4cG9ydCBlbnVtIEluc2VydFR5cGUge1xuICBOb3JtYWwgPSAwLFxuICBPdmVyd3JpdGUgPSAxLFxufVxuXG4vKiogTGFiZWwgaW5mbyBmcm9tIFNIT1cgTEFCRUxTLlxuICpcbiAqIEdRTCBzdXBwb3J0cyBtdWx0aS1sYWJlbCBub2RlcyAoZS5nLiAobjpQZXJzb246RW1wbG95ZWUpKSwgc28gdGhlXG4gKiBzZXJ2ZXIgcmV0dXJucyBsYWJlbHMgYXMgYSBsaXN0IGV2ZW4gd2hlbiB0aGVyZSBpcyBvbmx5IG9uZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYWJlbEluZm8ge1xuICBsYWJlbHM6IHN0cmluZ1tdO1xuICB0eXBlOiBzdHJpbmc7IC8vIFwiTk9ERVwiIG9yIFwiRURHRVwiXG59XG5cbi8qKiBOb2RlIHR5cGUgaW5mbyBmcm9tIFNIT1cgTk9ERSBUWVBFUyAqL1xuZXhwb3J0IGludGVyZmFjZSBOb2RlVHlwZUluZm8ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHByb3BlcnRpZXM6IENvbnZQcm9wZXJ0eURlZltdO1xufVxuXG4vKiogRWRnZSB0eXBlIGluZm8gZnJvbSBTSE9XIEVER0UgVFlQRVMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWRnZVR5cGVJbmZvIHtcbiAgbmFtZTogc3RyaW5nO1xuICBwcm9wZXJ0aWVzOiBDb252UHJvcGVydHlEZWZbXTtcbn1cblxuLyoqIExhYmVsIGRlZmluaXRpb24gdXNlZCB3aGVuIGNyZWF0aW5nIGNsb3NlZCBncmFwaHMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFiZWxEZWYge1xuICBuYW1lOiBzdHJpbmc7XG4gIHByb3BlcnRpZXM6IENvbnZQcm9wZXJ0eURlZltdO1xufVxuXG4vKiogUHJvcGVydHkgZGVmaW5pdGlvbiBmb3IgY29udmVuaWVuY2UgQVBJICh1c2VzIHN0cmluZyB0eXBlIG5hbWUpICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnZQcm9wZXJ0eURlZiB7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nOyAvLyBHUUwgdHlwZSBuYW1lOiBcIlNUUklOR1wiLCBcIklOVDY0XCIsIFwiRE9VQkxFXCIsIGV0Yy5cbn1cblxuLyoqIFByb3BlcnR5IGluIGFuIGluZGV4IGRlZmluaXRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5kZXhQcm9wZXJ0eSB7XG4gIG5hbWU6IHN0cmluZztcbiAgcHJlZml4TGVuZ3RoPzogbnVtYmVyOyAvLyAwIG9yIHVuZGVmaW5lZCA9IG5vIHByZWZpeCwgPjAgPSBwcmVmaXggbGVuZ3RoIGZvciBTVFJJTkdcbn1cblxuLyoqIEluZGV4IGluZm8gZnJvbSBTSE9XIElOREVYICovXG5leHBvcnQgaW50ZXJmYWNlIEluZGV4SW5mbyB7XG4gIGluZGV4TmFtZTogc3RyaW5nO1xuICBlbnRpdHlUeXBlOiBzdHJpbmc7IC8vIFwiTk9ERVwiIG9yIFwiRURHRVwiXG4gIGxhYmVsOiBzdHJpbmc7XG4gIHByb3BlcnR5OiBzdHJpbmc7XG4gIHByZWZpeExlbmd0aD86IG51bWJlcjtcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIHByb2dyZXNzOiBzdHJpbmc7XG4gIGluZGV4ZWRDb3VudDogbnVtYmVyO1xuICB0b3RhbENvdW50OiBudW1iZXI7XG4gIGVycm9yOiBzdHJpbmc7XG59XG5cbi8qKiBGdWxsdGV4dCBpbmRleCBpbmZvIGZyb20gU0hPVyBGVUxMVEVYVCAqL1xuZXhwb3J0IGludGVyZmFjZSBGdWxsdGV4dEluZm8ge1xuICBpbmRleE5hbWU6IHN0cmluZztcbiAgZW50aXR5VHlwZTogc3RyaW5nOyAvLyBcIk5PREVcIiBvciBcIkVER0VcIlxuICBzY2hlbWFOYW1lOiBzdHJpbmc7XG4gIHByb3BlcnRpZXM6IHN0cmluZztcbiAgYW5hbHl6ZXI6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIGRvY0NvdW50OiBudW1iZXI7XG4gIHByb2dyZXNzOiBzdHJpbmc7XG59XG5cbi8qKiBUYXNrIGluZm8gZnJvbSBTSE9XIFRBU0tTICovXG5leHBvcnQgaW50ZXJmYWNlIFRhc2tJbmZvIHtcbiAgdGFza0lkOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgcXVlcnk6IHN0cmluZztcbiAgYWxnb05hbWU6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIHN0YXJ0ZWRBdDogc3RyaW5nO1xuICBwcm9ncmVzczogc3RyaW5nO1xuICBwYXJhbWV0ZXJzOiBzdHJpbmc7XG4gIG5vZGVzV3JpdHRlbjogbnVtYmVyO1xuICBjb21wdXRlVGltZU1zOiBudW1iZXI7XG4gIHdyaXRlVGltZU1zOiBudW1iZXI7XG59XG5cbi8qKiBQcm9jZXNzIGluZm8gZnJvbSBUT1AgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc0luZm8ge1xuICBxdWVyeUlkOiBzdHJpbmc7XG4gIHF1ZXJ5VGV4dDogc3RyaW5nO1xuICBzdGFydFRpbWU6IHN0cmluZztcbiAgZHVyYXRpb25NczogbnVtYmVyO1xuICBzdGF0dXM6IHN0cmluZztcbn1cblxuLyoqIEdyYXBoIHN0YXRpc3RpY3MgZnJvbSBkYi5zdGF0cygpICovXG5leHBvcnQgaW50ZXJmYWNlIEdyYXBoU3RhdHMge1xuICBncmFwaE5hbWU6IHN0cmluZztcbiAgbm9kZUNvdW50OiBudW1iZXI7XG4gIGVkZ2VDb3VudDogbnVtYmVyO1xuICBsYWJlbENvdW50czogUmVjb3JkPHN0cmluZywgbnVtYmVyPjtcbiAgZWRnZUxhYmVsQ291bnRzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xuICBub2RlUHJvcGVydHlTdGF0czogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgbnVtYmVyPj47XG4gIGVkZ2VQcm9wZXJ0eVN0YXRzOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+Pjtcbn1cblxuLyoqIFJlc3BvbnNlIGZvciBHUUwtYmFzZWQgaW5zZXJ0IG9wZXJhdGlvbnMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zZXJ0R3FsUmVzcG9uc2Uge1xuICByb3dzQWZmZWN0ZWQ6IG51bWJlcjtcbn1cblxuLyoqIEFsZ29yaXRobSBpbmZvIGZyb20gU0hPVyBBTEdPUyAqL1xuZXhwb3J0IGludGVyZmFjZSBBbGdvSW5mbyB7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBwYXJhbWV0ZXJzOiBzdHJpbmc7XG59XG5cbi8qKlxuICogT25lIHN0YWdlIHJvdyBmcm9tIGEgQ0FMTCBhaS5yZWFkIC8gYWkuZ3FsIFlJRUxEIHN0cmVhbS5cbiAqIFN0YWdlIG5hbWVzIGluY2x1ZGU6IHN0YXJ0LCByb3V0aW5nLCBpbnRlbnRfZXh0cmFjdGlvbiwgZGVzY3JpYmVfYWxnb3JpdGhtLFxuICogZ2VuZXJhdGlvbiwgdmFsaWRhdGlvbiwgZXhlY3V0aW9uLCBmaW5hbCwgZXJyb3IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWlTdGFnZSB7XG4gIHN0YWdlOiBzdHJpbmc7XG4gIGRldGFpbDogc3RyaW5nO1xuICBlbGFwc2VkTXM6IG51bWJlcjtcbiAgdG9rZW5zSW5wdXQ6IG51bWJlcjtcbiAgdG9rZW5zT3V0cHV0OiBudW1iZXI7XG4gIHRva2Vuc0NhY2hlZDogbnVtYmVyO1xuICAvKiogU3RhZ2Utc3BlY2lmaWMgcGF5bG9hZCAocG9seW1vcnBoaWMgSlNPTiBmcm9tIHNlcnZlcikuICovXG4gIGRhdGE6IGFueTtcbn1cblxuLyoqXG4gKiBSZXN1bHQgb2YgYSBjbGllbnQuYWlSZWFkKCkgLyBjbGllbnQuYWlHcWwoKSBjYWxsLlxuICpcbiAqIEZvciBhaVJlYWQ6IGBkYXRhYCBpcyB0aGUgUmVzcG9uc2UgZnJvbSByZS1leGVjdXRpbmcgdGhlIGdlbmVyYXRlZCBHUUwuXG4gKiBGb3IgYWlHcWw6ICBgZGF0YWAgaXMgYWx3YXlzIG51bGwgKGdlbmVyYXRpb24tb25seTsgY2FsbGVyIHJlcnVucyBtYW51YWxseSkuXG4gKiBPbiBBSS1zaWRlIGVycm9ycywgYHN1Y2Nlc3M9ZmFsc2VgLCBgZXJyb3JgIGlzIHBvcHVsYXRlZCwgYW5kIGBkYXRhYCBpcyBudWxsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFpUmVhZFJlc3VsdCB7XG4gIHN0YWdlczogQWlTdGFnZVtdO1xuICBnZW5lcmF0ZWRHcWw6IHN0cmluZyB8IG51bGw7XG4gIGRhdGE6IFJlc3BvbnNlIHwgbnVsbDtcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgZXJyb3I6IHN0cmluZyB8IG51bGw7XG4gIHRvdGFsRWxhcHNlZE1zOiBudW1iZXI7XG4gIHRvdGFsVG9rZW5zSW5wdXQ6IG51bWJlcjtcbiAgdG90YWxUb2tlbnNPdXRwdXQ6IG51bWJlcjtcbiAgdG90YWxUb2tlbnNDYWNoZWQ6IG51bWJlcjtcbn1cblxuLy8gQ29udk5vZGUgYW5kIENvbnZFZGdlIGhhdmUgYmVlbiByZW1vdmVkLlxuLy8gVXNlIE5vZGVEYXRhIGFuZCBFZGdlRGF0YSBmcm9tIGdyYXBoX21vZGVscyBpbnN0ZWFkLlxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gSGVscGVyIEZ1bmN0aW9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBQYXJzZSBhIGNvbW1hLXNlcGFyYXRlZCBwcm9wZXJ0eSBkZWZpbml0aW9uIHN0cmluZyBsaWtlIFwiYWdlIElOVEVHRVIsIG5hbWUgU1RSSU5HXCJcbiAqIGludG8gYW4gYXJyYXkgb2YgQ29udlByb3BlcnR5RGVmLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VQcm9wZXJ0eVN0cmluZyhzOiBzdHJpbmcpOiBDb252UHJvcGVydHlEZWZbXSB7XG4gIHMgPSBzLnRyaW0oKTtcbiAgaWYgKCFzKSByZXR1cm4gW107XG5cbiAgY29uc3QgcGFydHMgPSBzLnNwbGl0KCcsJyk7XG4gIGNvbnN0IHJlc3VsdDogQ29udlByb3BlcnR5RGVmW10gPSBbXTtcbiAgZm9yIChjb25zdCBwYXJ0IG9mIHBhcnRzKSB7XG4gICAgY29uc3QgdHJpbW1lZCA9IHBhcnQudHJpbSgpO1xuICAgIGlmICghdHJpbW1lZCkgY29udGludWU7XG4gICAgY29uc3QgdG9rZW5zID0gdHJpbW1lZC5zcGxpdCgvXFxzKy8pO1xuICAgIGlmICh0b2tlbnMubGVuZ3RoIDwgMikgY29udGludWU7XG4gICAgcmVzdWx0LnB1c2goeyBuYW1lOiB0b2tlbnNbMF0sIHR5cGU6IHRva2Vuc1sxXS50b1VwcGVyQ2FzZSgpIH0pO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQ29udmVydCBhIENvbnZQcm9wZXJ0eURlZiB0eXBlIHN0cmluZyB0byBpdHMgR1FMIHJlcHJlc2VudGF0aW9uLlxuICogSWYgdGhlIHR5cGUgaXMgYWxyZWFkeSBhIHZhbGlkIEdRTCB0eXBlIG5hbWUsIHJldHVybnMgaXQgYXMtaXMgKHVwcGVyY2FzZWQpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvcGVydHlUeXBlVG9HUUwodHlwZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB0eXBlTmFtZS50b1VwcGVyQ2FzZSgpO1xufVxuXG4vKipcbiAqIEJ1aWxkIGEgR1FMIHByb3BlcnR5IGRlZmluaXRpb24gc3RyaW5nIGxpa2UgXCJ7YWdlIElOVDY0LCBuYW1lIFNUUklOR31cIiBmcm9tIENvbnZQcm9wZXJ0eURlZltdLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRQcm9wZXJ0eURlZlN0cmluZyhwcm9wczogQ29udlByb3BlcnR5RGVmW10pOiBzdHJpbmcge1xuICBpZiAoIXByb3BzIHx8IHByb3BzLmxlbmd0aCA9PT0gMCkgcmV0dXJuICd7fSc7XG4gIGNvbnN0IHBhcnRzID0gcHJvcHMubWFwKHAgPT4gYFxcYCR7cC5uYW1lfVxcYCAke3Byb3BlcnR5VHlwZVRvR1FMKHAudHlwZSl9YCk7XG4gIHJldHVybiAneycgKyBwYXJ0cy5qb2luKCcsICcpICsgJ30nO1xufVxuXG4vKipcbiAqIEJ1aWxkIHRoZSBwcm9wZXJ0eSBsaXN0IGZvciBDUkVBVEUgSU5ERVgsIGUuZy4gXCJwcm9wMSwgcHJvcDIoMTApXCIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEluZGV4UHJvcGVydHlTdHJpbmcocHJvcHM6IEluZGV4UHJvcGVydHlbXSk6IHN0cmluZyB7XG4gIHJldHVybiBwcm9wcy5tYXAocCA9PiB7XG4gICAgaWYgKHAucHJlZml4TGVuZ3RoICYmIHAucHJlZml4TGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGBcXGAke3AubmFtZX1cXGAoJHtwLnByZWZpeExlbmd0aH0pYDtcbiAgICB9XG4gICAgcmV0dXJuIGBcXGAke3AubmFtZX1cXGBgO1xuICB9KS5qb2luKCcsICcpO1xufVxuXG4vKipcbiAqIEZvcm1hdCBhIEphdmFTY3JpcHQgdmFsdWUgYXMgYSBHUUwgbGl0ZXJhbCBmb3IgSU5TRVJUIHN0YXRlbWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRHcWxWYWx1ZSh2OiBhbnkpOiBzdHJpbmcge1xuICBpZiAodiA9PT0gbnVsbCB8fCB2ID09PSB1bmRlZmluZWQpIHJldHVybiAnTlVMTCc7XG4gIGlmICh0eXBlb2YgdiA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25zdCBlc2NhcGVkID0gdi5yZXBsYWNlKC8nL2csIFwiXFxcXCdcIik7XG4gICAgcmV0dXJuIGAnJHtlc2NhcGVkfSdgO1xuICB9XG4gIGlmICh0eXBlb2YgdiA9PT0gJ2Jvb2xlYW4nKSByZXR1cm4gdiA/ICdUUlVFJyA6ICdGQUxTRSc7XG4gIGlmICh0eXBlb2YgdiA9PT0gJ251bWJlcicpIHJldHVybiBTdHJpbmcodik7XG4gIGlmICh0eXBlb2YgdiA9PT0gJ2JpZ2ludCcpIHJldHVybiBTdHJpbmcodik7XG4gIGlmIChBcnJheS5pc0FycmF5KHYpKSB7XG4gICAgY29uc3QgZWxlbXMgPSB2Lm1hcCgoZWxlbTogYW55KSA9PiBmb3JtYXRHcWxWYWx1ZShlbGVtKSk7XG4gICAgcmV0dXJuICdbJyArIGVsZW1zLmpvaW4oJywgJykgKyAnXSc7XG4gIH1cbiAgaWYgKHR5cGVvZiB2ID09PSAnb2JqZWN0Jykge1xuICAgIGNvbnN0IGVudHJpZXMgPSBPYmplY3QuZW50cmllcyh2KTtcbiAgICBjb25zdCBwYXJ0cyA9IGVudHJpZXMubWFwKChbaywgdmFsXSkgPT4gYCR7a306ICR7Zm9ybWF0R3FsVmFsdWUodmFsKX1gKTtcbiAgICByZXR1cm4gJ3snICsgcGFydHMuam9pbignLCAnKSArICd9JztcbiAgfVxuICByZXR1cm4gYCcke1N0cmluZyh2KX0nYDtcbn1cblxuLyoqXG4gKiBCdWlsZCBhIEdRTCBwcm9wZXJ0eSB2YWx1ZSBtYXAgbGlrZSBcIntuYW1lOiAnQWxpY2UnLCBhZ2U6IDMwfVwiIGZyb20gYSBSZWNvcmQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFByb3BlcnRpZXNWYWx1ZVN0cmluZyhwcm9wczogUmVjb3JkPHN0cmluZywgYW55Pik6IHN0cmluZyB7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhwcm9wcyk7XG4gIGlmIChrZXlzLmxlbmd0aCA9PT0gMCkgcmV0dXJuICcnO1xuICBjb25zdCBwYXJ0cyA9IGtleXMubWFwKGsgPT4gYCR7a306ICR7Zm9ybWF0R3FsVmFsdWUocHJvcHNba10pfWApO1xuICByZXR1cm4gJ3snICsgcGFydHMuam9pbignLCAnKSArICd9Jztcbn1cblxuLyoqXG4gKiBSZXR1cm4gXCJVU0UgR1JBUEggPG5hbWU+XFxuXCIgaWYgZ3JhcGhOYW1lIGlzIG5vbi1lbXB0eSwgb3RoZXJ3aXNlIFwiXCIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VHcmFwaFByZWZpeChncmFwaE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghZ3JhcGhOYW1lKSByZXR1cm4gJyc7XG4gIHJldHVybiBgVVNFIEdSQVBIICR7Z3JhcGhOYW1lfVxcbmA7XG59XG5cbi8qKlxuICogQ29udmVydCBEQlR5cGUgdG8gR1FMIGtleXdvcmQgXCJOT0RFXCIgb3IgXCJFREdFXCIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkYlR5cGVUb0tleXdvcmQoZHQ6IERCVHlwZSk6IHN0cmluZyB7XG4gIHJldHVybiBkdCA9PT0gREJUeXBlLkVER0UgPyAnRURHRScgOiAnTk9ERSc7XG59XG4iXX0=
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVuaWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvY29udmVuaWVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFpTUgsa0RBY0M7QUFNRCw4Q0FFQztBQUtELHdEQUlDO0FBS0QsNERBT0M7QUFLRCx3Q0FtQkM7QUFLRCxnRUFLQztBQUtELHdDQUdDO0FBS0QsMENBRUM7QUF4UkQscURBQXFEO0FBQ3JELElBQVksTUFHWDtBQUhELFdBQVksTUFBTTtJQUNoQixtQ0FBUSxDQUFBO0lBQ1IsbUNBQVEsQ0FBQTtBQUNWLENBQUMsRUFIVyxNQUFNLHNCQUFOLE1BQU0sUUFHakI7QUFFRDs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxJQUFZLFVBSVg7QUFKRCxXQUFZLFVBQVU7SUFDcEIsK0NBQVUsQ0FBQTtJQUNWLHFEQUFhLENBQUE7SUFDYiwrQ0FBVSxDQUFBO0FBQ1osQ0FBQyxFQUpXLFVBQVUsMEJBQVYsVUFBVSxRQUlyQjtBQXVKRCwyQ0FBMkM7QUFDM0MsdURBQXVEO0FBRXZELGdGQUFnRjtBQUNoRixtQkFBbUI7QUFDbkIsZ0ZBQWdGO0FBRWhGOzs7R0FHRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLENBQVM7SUFDM0MsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNiLElBQUksQ0FBQyxDQUFDO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFFbEIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQixNQUFNLE1BQU0sR0FBc0IsRUFBRSxDQUFDO0lBQ3JDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPO1lBQUUsU0FBUztRQUN2QixNQUFNLE1BQU0sR0FBRyxPQUFPLENB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Tm9kZS5qcyBkcml2ZXIuXG4gKi9cblxuaW1wb3J0IHsgUHJvcGVydHlUeXBlIH0gZnJvbSAnLi9lbnVtcyc7XG5pbXBvcnQgdHlwZSB7IFJlc3BvbnNlIH0gZnJvbSAnLi4vcmVzcG9uc2UnO1xuXG4vKiogRGlzdGluZ3Vpc2hlcyBiZXR3ZWVuIG5vZGUgYW5kIGVkZ2Ugb3BlcmF0aW9ucyAqL1xuZXhwb3J0IGVudW0gREJUeXBlIHtcbiAgTk9ERSA9IDAsXG4gIEVER0UgPSAxLFxufVxuXG4vKipcbiAqIENvbnRyb2xzIHRoZSBpbnNlcnQgbW9kZSBmb3IgR1FMLWJhc2VkIGluc2VydCBvcGVyYXRpb25zLlxuICpcbiAqICAgLSBgTm9ybWFsYDogICAgSU5TRVJUIOKAlCBlcnJvciBpZiBgX2lkYCBhbHJlYWR5IGV4aXN0cy5cbiAqICAgLSBgT3ZlcndyaXRlYDogSU5TRVJUIE9WRVJXUklURSDigJQgUkVQTEFDRSBleGlzdGluZyBlbnRpdHkgd2hvbGVzYWxlXG4gKiAgICAgb24gZHVwbGljYXRlIGBfaWRgLiBQcm9wZXJ0aWVzIG5vdCBpbiB0aGUgd3JpdGUgYXJlIExPU1QuXG4gKiAgIC0gYFVwc2VydGA6ICAgIFVQU0VSVCDigJQgTUVSR0UgbmV3IHByb3BlcnRpZXMgaW50byBleGlzdGluZyBlbnRpdHlcbiAqICAgICBvbiBkdXBsaWNhdGUgYF9pZGAuIFByb3BlcnRpZXMgbm90IGluIHRoZSB3cml0ZSBhcmUgUFJFU0VSVkVEO1xuICogICAgIHByb3BlcnRpZXMgaW4gdGhlIHdyaXRlIE9WRVJXUklURSBleGlzdGluZyB2YWx1ZXMuIEZhbGxzIGJhY2sgdG9cbiAqICAgICBwbGFpbiBpbnNlcnQgd2hlbiBubyBgX2lkYCBtYXRjaGVzLlxuICpcbiAqIGBPdmVyd3JpdGVgIGFuZCBgVXBzZXJ0YCBhcmUgZGlmZmVyZW50IHNlbWFudGljcyBvbiBleGlzdGluZyByb3dzLlxuICogQ2hvb3NlIGBVcHNlcnRgIChtZXJnZSkgZm9yIHBhcnRpYWwtdXBkYXRlIHdvcmtsb2FkcyB3aGVyZSB5b3UgZG9uJ3RcbiAqIHdhbnQgdG8gbG9zZSBleGlzdGluZyBmaWVsZHM7IGNob29zZSBgT3ZlcndyaXRlYCAocmVwbGFjZSkgZm9yXG4gKiBrbm93bi1jbGVhbiByZS1pbmdlc3Qgb2YgYW4gZW50aXR5J3MgZnVsbCBzdGF0ZS5cbiAqL1xuZXhwb3J0IGVudW0gSW5zZXJ0VHlwZSB7XG4gIE5vcm1hbCA9IDAsXG4gIE92ZXJ3cml0ZSA9IDEsXG4gIFVwc2VydCA9IDIsXG59XG5cbi8qKiBMYWJlbCBpbmZvIGZyb20gU0hPVyBMQUJFTFMuXG4gKlxuICogR1FMIHN1cHBvcnRzIG11bHRpLWxhYmVsIG5vZGVzIChlLmcuIChuOlBlcnNvbjpFbXBsb3llZSkpLCBzbyB0aGVcbiAqIHNlcnZlciByZXR1cm5zIGxhYmVscyBhcyBhIGxpc3QgZXZlbiB3aGVuIHRoZXJlIGlzIG9ubHkgb25lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhYmVsSW5mbyB7XG4gIGxhYmVsczogc3RyaW5nW107XG4gIHR5cGU6IHN0cmluZzsgLy8gXCJOT0RFXCIgb3IgXCJFREdFXCJcbn1cblxuLyoqIE5vZGUgdHlwZSBpbmZvIGZyb20gU0hPVyBOT0RFIFRZUEVTICovXG5leHBvcnQgaW50ZXJmYWNlIE5vZGVUeXBlSW5mbyB7XG4gIG5hbWU6IHN0cmluZztcbiAgcHJvcGVydGllczogQ29udlByb3BlcnR5RGVmW107XG59XG5cbi8qKiBFZGdlIHR5cGUgaW5mbyBmcm9tIFNIT1cgRURHRSBUWVBFUyAqL1xuZXhwb3J0IGludGVyZmFjZSBFZGdlVHlwZUluZm8ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHByb3BlcnRpZXM6IENvbnZQcm9wZXJ0eURlZltdO1xufVxuXG4vKiogTGFiZWwgZGVmaW5pdGlvbiB1c2VkIHdoZW4gY3JlYXRpbmcgY2xvc2VkIGdyYXBocyAqL1xuZXhwb3J0IGludGVyZmFjZSBMYWJlbERlZiB7XG4gIG5hbWU6IHN0cmluZztcbiAgcHJvcGVydGllczogQ29udlByb3BlcnR5RGVmW107XG59XG5cbi8qKiBQcm9wZXJ0eSBkZWZpbml0aW9uIGZvciBjb252ZW5pZW5jZSBBUEkgKHVzZXMgc3RyaW5nIHR5cGUgbmFtZSkgKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udlByb3BlcnR5RGVmIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7IC8vIEdRTCB0eXBlIG5hbWU6IFwiU1RSSU5HXCIsIFwiSU5UNjRcIiwgXCJET1VCTEVcIiwgZXRjLlxufVxuXG4vKiogUHJvcGVydHkgaW4gYW4gaW5kZXggZGVmaW5pdGlvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmRleFByb3BlcnR5IHtcbiAgbmFtZTogc3RyaW5nO1xuICBwcmVmaXhMZW5ndGg/OiBudW1iZXI7IC8vIDAgb3IgdW5kZWZpbmVkID0gbm8gcHJlZml4LCA+MCA9IHByZWZpeCBsZW5ndGggZm9yIFNUUklOR1xufVxuXG4vKiogSW5kZXggaW5mbyBmcm9tIFNIT1cgSU5ERVggKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5kZXhJbmZvIHtcbiAgaW5kZXhOYW1lOiBzdHJpbmc7XG4gIGVudGl0eVR5cGU6IHN0cmluZzsgLy8gXCJOT0RFXCIgb3IgXCJFREdFXCJcbiAgbGFiZWw6IHN0cmluZztcbiAgcHJvcGVydHk6IHN0cmluZztcbiAgcHJlZml4TGVuZ3RoPzogbnVtYmVyO1xuICBzdGF0dXM6IHN0cmluZztcbiAgcHJvZ3Jlc3M6IHN0cmluZztcbiAgaW5kZXhlZENvdW50OiBudW1iZXI7XG4gIHRvdGFsQ291bnQ6IG51bWJlcjtcbiAgZXJyb3I6IHN0cmluZztcbn1cblxuLyoqIEZ1bGx0ZXh0IGluZGV4IGluZm8gZnJvbSBTSE9XIEZVTExURVhUICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bGx0ZXh0SW5mbyB7XG4gIGluZGV4TmFtZTogc3RyaW5nO1xuICBlbnRpdHlUeXBlOiBzdHJpbmc7IC8vIFwiTk9ERVwiIG9yIFwiRURHRVwiXG4gIHNjaGVtYU5hbWU6IHN0cmluZztcbiAgcHJvcGVydGllczogc3RyaW5nO1xuICBhbmFseXplcjogc3RyaW5nO1xuICBzdGF0dXM6IHN0cmluZztcbiAgZG9jQ291bnQ6IG51bWJlcjtcbiAgcHJvZ3Jlc3M6IHN0cmluZztcbn1cblxuLyoqIFRhc2sgaW5mbyBmcm9tIFNIT1cgVEFTS1MgKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFza0luZm8ge1xuICB0YXNrSWQ6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBxdWVyeTogc3RyaW5nO1xuICBhbGdvTmFtZTogc3RyaW5nO1xuICBzdGF0dXM6IHN0cmluZztcbiAgc3RhcnRlZEF0OiBzdHJpbmc7XG4gIHByb2dyZXNzOiBzdHJpbmc7XG4gIHBhcmFtZXRlcnM6IHN0cmluZztcbiAgbm9kZXNXcml0dGVuOiBudW1iZXI7XG4gIGNvbXB1dGVUaW1lTXM6IG51bWJlcjtcbiAgd3JpdGVUaW1lTXM6IG51bWJlcjtcbn1cblxuLyoqIFByb2Nlc3MgaW5mbyBmcm9tIFRPUCAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9jZXNzSW5mbyB7XG4gIHF1ZXJ5SWQ6IHN0cmluZztcbiAgcXVlcnlUZXh0OiBzdHJpbmc7XG4gIHN0YXJ0VGltZTogc3RyaW5nO1xuICBkdXJhdGlvbk1zOiBudW1iZXI7XG4gIHN0YXR1czogc3RyaW5nO1xufVxuXG4vKiogR3JhcGggc3RhdGlzdGljcyBmcm9tIGRiLnN0YXRzKCkgKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JhcGhTdGF0cyB7XG4gIGdyYXBoTmFtZTogc3RyaW5nO1xuICBub2RlQ291bnQ6IG51bWJlcjtcbiAgZWRnZUNvdW50OiBudW1iZXI7XG4gIGxhYmVsQ291bnRzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xuICBlZGdlTGFiZWxDb3VudHM6IFJlY29yZDxzdHJpbmcsIG51bWJlcj47XG4gIG5vZGVQcm9wZXJ0eVN0YXRzOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+PjtcbiAgZWRnZVByb3BlcnR5U3RhdHM6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIG51bWJlcj4+O1xufVxuXG4vKiogUmVzcG9uc2UgZm9yIEdRTC1iYXNlZCBpbnNlcnQgb3BlcmF0aW9ucyAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnNlcnRHcWxSZXNwb25zZSB7XG4gIHJvd3NBZmZlY3RlZDogbnVtYmVyO1xufVxuXG4vKiogQWxnb3JpdGhtIGluZm8gZnJvbSBTSE9XIEFMR09TICovXG5leHBvcnQgaW50ZXJmYWNlIEFsZ29JbmZvIHtcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIHBhcmFtZXRlcnM6IHN0cmluZztcbn1cblxuLyoqXG4gKiBPbmUgc3RhZ2Ugcm93IGZyb20gYSBDQUxMIGFpLnJlYWQgLyBhaS5ncWwgWUlFTEQgc3RyZWFtLlxuICogU3RhZ2UgbmFtZXMgaW5jbHVkZTogc3RhcnQsIHJvdXRpbmcsIGludGVudF9leHRyYWN0aW9uLCBkZXNjcmliZV9hbGdvcml0aG0sXG4gKiBnZW5lcmF0aW9uLCB2YWxpZGF0aW9uLCBleGVjdXRpb24sIGZpbmFsLCBlcnJvci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBaVN0YWdlIHtcbiAgc3RhZ2U6IHN0cmluZztcbiAgZGV0YWlsOiBzdHJpbmc7XG4gIGVsYXBzZWRNczogbnVtYmVyO1xuICB0b2tlbnNJbnB1dDogbnVtYmVyO1xuICB0b2tlbnNPdXRwdXQ6IG51bWJlcjtcbiAgdG9rZW5zQ2FjaGVkOiBudW1iZXI7XG4gIC8qKiBTdGFnZS1zcGVjaWZpYyBwYXlsb2FkIChwb2x5bW9ycGhpYyBKU09OIGZyb20gc2VydmVyKS4gKi9cbiAgZGF0YTogYW55O1xufVxuXG4vKipcbiAqIFJlc3VsdCBvZiBhIGNsaWVudC5haVJlYWQoKSAvIGNsaWVudC5haUdxbCgpIGNhbGwuXG4gKlxuICogRm9yIGFpUmVhZDogYGRhdGFgIGlzIHRoZSBSZXNwb25zZSBmcm9tIHJlLWV4ZWN1dGluZyB0aGUgZ2VuZXJhdGVkIEdRTC5cbiAqIEZvciBhaUdxbDogIGBkYXRhYCBpcyBhbHdheXMgbnVsbCAoZ2VuZXJhdGlvbi1vbmx5OyBjYWxsZXIgcmVydW5zIG1hbnVhbGx5KS5cbiAqIE9uIEFJLXNpZGUgZXJyb3JzLCBgc3VjY2Vzcz1mYWxzZWAsIGBlcnJvcmAgaXMgcG9wdWxhdGVkLCBhbmQgYGRhdGFgIGlzIG51bGwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWlSZWFkUmVzdWx0IHtcbiAgc3RhZ2VzOiBBaVN0YWdlW107XG4gIGdlbmVyYXRlZEdxbDogc3RyaW5nIHwgbnVsbDtcbiAgZGF0YTogUmVzcG9uc2UgfCBudWxsO1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBlcnJvcjogc3RyaW5nIHwgbnVsbDtcbiAgdG90YWxFbGFwc2VkTXM6IG51bWJlcjtcbiAgdG90YWxUb2tlbnNJbnB1dDogbnVtYmVyO1xuICB0b3RhbFRva2Vuc091dHB1dDogbnVtYmVyO1xuICB0b3RhbFRva2Vuc0NhY2hlZDogbnVtYmVyO1xufVxuXG4vLyBDb252Tm9kZSBhbmQgQ29udkVkZ2UgaGF2ZSBiZWVuIHJlbW92ZWQuXG4vLyBVc2UgTm9kZURhdGEgYW5kIEVkZ2VEYXRhIGZyb20gZ3JhcGhfbW9kZWxzIGluc3RlYWQuXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBIZWxwZXIgRnVuY3Rpb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFBhcnNlIGEgY29tbWEtc2VwYXJhdGVkIHByb3BlcnR5IGRlZmluaXRpb24gc3RyaW5nIGxpa2UgXCJhZ2UgSU5URUdFUiwgbmFtZSBTVFJJTkdcIlxuICogaW50byBhbiBhcnJheSBvZiBDb252UHJvcGVydHlEZWYuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVByb3BlcnR5U3RyaW5nKHM6IHN0cmluZyk6IENvbnZQcm9wZXJ0eURlZltdIHtcbiAgcyA9IHMudHJpbSgpO1xuICBpZiAoIXMpIHJldHVybiBbXTtcblxuICBjb25zdCBwYXJ0cyA9IHMuc3BsaXQoJywnKTtcbiAgY29uc3QgcmVzdWx0OiBDb252UHJvcGVydHlEZWZbXSA9IFtdO1xuICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcbiAgICBjb25zdCB0cmltbWVkID0gcGFydC50cmltKCk7XG4gICAgaWYgKCF0cmltbWVkKSBjb250aW51ZTtcbiAgICBjb25zdCB0b2tlbnMgPSB0cmltbWVkLnNwbGl0KC9cXHMrLyk7XG4gICAgaWYgKHRva2Vucy5sZW5ndGggPCAyKSBjb250aW51ZTtcbiAgICByZXN1bHQucHVzaCh7IG5hbWU6IHRva2Vuc1swXSwgdHlwZTogdG9rZW5zWzFdLnRvVXBwZXJDYXNlKCkgfSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgQ29udlByb3BlcnR5RGVmIHR5cGUgc3RyaW5nIHRvIGl0cyBHUUwgcmVwcmVzZW50YXRpb24uXG4gKiBJZiB0aGUgdHlwZSBpcyBhbHJlYWR5IGEgdmFsaWQgR1FMIHR5cGUgbmFtZSwgcmV0dXJucyBpdCBhcy1pcyAodXBwZXJjYXNlZCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9wZXJ0eVR5cGVUb0dRTCh0eXBlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHR5cGVOYW1lLnRvVXBwZXJDYXNlKCk7XG59XG5cbi8qKlxuICogQnVpbGQgYSBHUUwgcHJvcGVydHkgZGVmaW5pdGlvbiBzdHJpbmcgbGlrZSBcInthZ2UgSU5UNjQsIG5hbWUgU1RSSU5HfVwiIGZyb20gQ29udlByb3BlcnR5RGVmW10uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFByb3BlcnR5RGVmU3RyaW5nKHByb3BzOiBDb252UHJvcGVydHlEZWZbXSk6IHN0cmluZyB7XG4gIGlmICghcHJvcHMgfHwgcHJvcHMubGVuZ3RoID09PSAwKSByZXR1cm4gJ3t9JztcbiAgY29uc3QgcGFydHMgPSBwcm9wcy5tYXAocCA9PiBgXFxgJHtwLm5hbWV9XFxgICR7cHJvcGVydHlUeXBlVG9HUUwocC50eXBlKX1gKTtcbiAgcmV0dXJuICd7JyArIHBhcnRzLmpvaW4oJywgJykgKyAnfSc7XG59XG5cbi8qKlxuICogQnVpbGQgdGhlIHByb3BlcnR5IGxpc3QgZm9yIENSRUFURSBJTkRFWCwgZS5nLiBcInByb3AxLCBwcm9wMigxMClcIi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkSW5kZXhQcm9wZXJ0eVN0cmluZyhwcm9wczogSW5kZXhQcm9wZXJ0eVtdKTogc3RyaW5nIHtcbiAgcmV0dXJuIHByb3BzLm1hcChwID0+IHtcbiAgICBpZiAocC5wcmVmaXhMZW5ndGggJiYgcC5wcmVmaXhMZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gYFxcYCR7cC5uYW1lfVxcYCgke3AucHJlZml4TGVuZ3RofSlgO1xuICAgIH1cbiAgICByZXR1cm4gYFxcYCR7cC5uYW1lfVxcYGA7XG4gIH0pLmpvaW4oJywgJyk7XG59XG5cbi8qKlxuICogRm9ybWF0IGEgSmF2YVNjcmlwdCB2YWx1ZSBhcyBhIEdRTCBsaXRlcmFsIGZvciBJTlNFUlQgc3RhdGVtZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEdxbFZhbHVlKHY6IGFueSk6IHN0cmluZyB7XG4gIGlmICh2ID09PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZCkgcmV0dXJuICdOVUxMJztcbiAgaWYgKHR5cGVvZiB2ID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IGVzY2FwZWQgPSB2LnJlcGxhY2UoLycvZywgXCJcXFxcJ1wiKTtcbiAgICByZXR1cm4gYCcke2VzY2FwZWR9J2A7XG4gIH1cbiAgaWYgKHR5cGVvZiB2ID09PSAnYm9vbGVhbicpIHJldHVybiB2ID8gJ1RSVUUnIDogJ0ZBTFNFJztcbiAgaWYgKHR5cGVvZiB2ID09PSAnbnVtYmVyJykgcmV0dXJuIFN0cmluZyh2KTtcbiAgaWYgKHR5cGVvZiB2ID09PSAnYmlnaW50JykgcmV0dXJuIFN0cmluZyh2KTtcbiAgaWYgKEFycmF5LmlzQXJyYXkodikpIHtcbiAgICBjb25zdCBlbGVtcyA9IHYubWFwKChlbGVtOiBhbnkpID0+IGZvcm1hdEdxbFZhbHVlKGVsZW0pKTtcbiAgICByZXR1cm4gJ1snICsgZWxlbXMuam9pbignLCAnKSArICddJztcbiAgfVxuICBpZiAodHlwZW9mIHYgPT09ICdvYmplY3QnKSB7XG4gICAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKHYpO1xuICAgIGNvbnN0IHBhcnRzID0gZW50cmllcy5tYXAoKFtrLCB2YWxdKSA9PiBgJHtrfTogJHtmb3JtYXRHcWxWYWx1ZSh2YWwpfWApO1xuICAgIHJldHVybiAneycgKyBwYXJ0cy5qb2luKCcsICcpICsgJ30nO1xuICB9XG4gIHJldHVybiBgJyR7U3RyaW5nKHYpfSdgO1xufVxuXG4vKipcbiAqIEJ1aWxkIGEgR1FMIHByb3BlcnR5IHZhbHVlIG1hcCBsaWtlIFwie25hbWU6ICdBbGljZScsIGFnZTogMzB9XCIgZnJvbSBhIFJlY29yZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUHJvcGVydGllc1ZhbHVlU3RyaW5nKHByb3BzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogc3RyaW5nIHtcbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHByb3BzKTtcbiAgaWYgKGtleXMubGVuZ3RoID09PSAwKSByZXR1cm4gJyc7XG4gIGNvbnN0IHBhcnRzID0ga2V5cy5tYXAoayA9PiBgJHtrfTogJHtmb3JtYXRHcWxWYWx1ZShwcm9wc1trXSl9YCk7XG4gIHJldHVybiAneycgKyBwYXJ0cy5qb2luKCcsICcpICsgJ30nO1xufVxuXG4vKipcbiAqIFJldHVybiBcIlVTRSBHUkFQSCA8bmFtZT5cXG5cIiBpZiBncmFwaE5hbWUgaXMgbm9uLWVtcHR5LCBvdGhlcndpc2UgXCJcIi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUdyYXBoUHJlZml4KGdyYXBoTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCFncmFwaE5hbWUpIHJldHVybiAnJztcbiAgcmV0dXJuIGBVU0UgR1JBUEggJHtncmFwaE5hbWV9XFxuYDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IERCVHlwZSB0byBHUUwga2V5d29yZCBcIk5PREVcIiBvciBcIkVER0VcIi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRiVHlwZVRvS2V5d29yZChkdDogREJUeXBlKTogc3RyaW5nIHtcbiAgcmV0dXJuIGR0ID09PSBEQlR5cGUuRURHRSA/ICdFREdFJyA6ICdOT0RFJztcbn1cbiJdfQ==
@@ -1,15 +1,38 @@
1
1
  /**
2
2
  * Graph entity types for GQLDB Node.js driver.
3
3
  */
4
- /** Graph node */
4
+ /**
5
+ * Graph node.
6
+ *
7
+ * `id` and `uuid` semantics (gqldb 6.1.147+):
8
+ *
9
+ * - `id` is the user-facing identifier — user-provided string or
10
+ * the system auto-generated form. Use this when round-tripping
11
+ * identifiers through user code or external systems.
12
+ * - `uuid` is the system numeric ID (uint64) formatted as decimal.
13
+ * Stable, opaque, always available. Use this when you need a
14
+ * stable internal handle: cache keys, log correlation, dedup
15
+ * hashes. Treated as a string here to avoid uint64 precision
16
+ * loss in JavaScript above 2^53.
17
+ *
18
+ * `uuid` is the empty string when talking to a pre-6.1.147 server
19
+ * (the wire format had no InternalID trailer). Fall back to `id`
20
+ * for identity in that case.
21
+ */
5
22
  export interface GqldbNode {
6
23
  id: string;
24
+ /** System numeric ID, decimal-formatted; '' on pre-6.1.147 servers */
25
+ uuid: string;
7
26
  labels: string[];
8
27
  properties: Record<string, any>;
9
28
  }
10
- /** Graph edge */
29
+ /**
30
+ * Graph edge. See {@link GqldbNode} for the `id` / `uuid` semantics.
31
+ */
11
32
  export interface GqldbEdge {
12
33
  id: string;
34
+ /** System numeric ID, decimal-formatted; '' on pre-6.1.147 servers */
35
+ uuid: string;
13
36
  label: string;
14
37
  fromNodeId: string;
15
38
  toNodeId: string;
@@ -33,6 +56,8 @@ export interface NodeData {
33
56
  }
34
57
  /** Data for an edge to be inserted */
35
58
  export interface EdgeData {
59
+ /** Optional custom edge ID; requires EDGE_ID enabled on the target graph (if empty, auto-generated) */
60
+ id?: string;
36
61
  label: string;
37
62
  fromNodeId: string;
38
63
  toNodeId: string;
@@ -3,4 +3,4 @@
3
3
  * Graph entity types for GQLDB Node.js driver.
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhfbW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2dyYXBoX21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdyYXBoIGVudGl0eSB0eXBlcyBmb3IgR1FMREIgTm9kZS5qcyBkcml2ZXIuXG4gKi9cblxuLyoqIEdyYXBoIG5vZGUgKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3FsZGJOb2RlIHtcbiAgaWQ6IHN0cmluZztcbiAgbGFiZWxzOiBzdHJpbmdbXTtcbiAgcHJvcGVydGllczogUmVjb3JkPHN0cmluZywgYW55Pjtcbn1cblxuLyoqIEdyYXBoIGVkZ2UgKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3FsZGJFZGdlIHtcbiAgaWQ6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgZnJvbU5vZGVJZDogc3RyaW5nO1xuICB0b05vZGVJZDogc3RyaW5nO1xuICBwcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG4vKiogR3JhcGggcGF0aCBjb25zaXN0aW5nIG9mIG5vZGVzIGFuZCBlZGdlcyAqL1xuZXhwb3J0IGludGVyZmFjZSBHcWxkYlBhdGgge1xuICBub2RlczogR3FsZGJOb2RlW107XG4gIGVkZ2VzOiBHcWxkYkVkZ2VbXTtcbn1cblxuLyoqIEVycm9yIHZhbHVlIGZyb20gVFJZL0NBVENIIGhhbmRsaW5nICovXG5leHBvcnQgaW50ZXJmYWNlIEdxbGRiRXJyb3Ige1xuICBjb2RlOiBudW1iZXI7XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqIERhdGEgZm9yIGEgbm9kZSB0byBiZSBpbnNlcnRlZCAqL1xuZXhwb3J0IGludGVyZmFjZSBOb2RlRGF0YSB7XG4gIGlkPzogc3RyaW5nO1xuICBsYWJlbHM6IHN0cmluZ1tdO1xuICBwcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG4vKiogRGF0YSBmb3IgYW4gZWRnZSB0byBiZSBpbnNlcnRlZCAqL1xuZXhwb3J0IGludGVyZmFjZSBFZGdlRGF0YSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGZyb21Ob2RlSWQ6IHN0cmluZztcbiAgdG9Ob2RlSWQ6IHN0cmluZztcbiAgcHJvcGVydGllczogUmVjb3JkPHN0cmluZywgYW55Pjtcbn1cblxuLyoqIEEgbm9kZSBleHBvcnRlZCBmcm9tIHRoZSBkYXRhYmFzZSAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHBvcnRlZE5vZGUge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbHM6IHN0cmluZ1tdO1xuICBwcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG4vKiogQW4gZWRnZSBleHBvcnRlZCBmcm9tIHRoZSBkYXRhYmFzZSAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHBvcnRlZEVkZ2Uge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICBmcm9tTm9kZUlkOiBzdHJpbmc7XG4gIHRvTm9kZUlkOiBzdHJpbmc7XG4gIHByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG4iXX0=
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhfbW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2dyYXBoX21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdyYXBoIGVudGl0eSB0eXBlcyBmb3IgR1FMREIgTm9kZS5qcyBkcml2ZXIuXG4gKi9cblxuLyoqXG4gKiBHcmFwaCBub2RlLlxuICpcbiAqIGBpZGAgYW5kIGB1dWlkYCBzZW1hbnRpY3MgKGdxbGRiIDYuMS4xNDcrKTpcbiAqXG4gKiAgIC0gYGlkYCBpcyB0aGUgdXNlci1mYWNpbmcgaWRlbnRpZmllciDigJQgdXNlci1wcm92aWRlZCBzdHJpbmcgb3JcbiAqICAgICB0aGUgc3lzdGVtIGF1dG8tZ2VuZXJhdGVkIGZvcm0uIFVzZSB0aGlzIHdoZW4gcm91bmQtdHJpcHBpbmdcbiAqICAgICBpZGVudGlmaWVycyB0aHJvdWdoIHVzZXIgY29kZSBvciBleHRlcm5hbCBzeXN0ZW1zLlxuICogICAtIGB1dWlkYCBpcyB0aGUgc3lzdGVtIG51bWVyaWMgSUQgKHVpbnQ2NCkgZm9ybWF0dGVkIGFzIGRlY2ltYWwuXG4gKiAgICAgU3RhYmxlLCBvcGFxdWUsIGFsd2F5cyBhdmFpbGFibGUuIFVzZSB0aGlzIHdoZW4geW91IG5lZWQgYVxuICogICAgIHN0YWJsZSBpbnRlcm5hbCBoYW5kbGU6IGNhY2hlIGtleXMsIGxvZyBjb3JyZWxhdGlvbiwgZGVkdXBcbiAqICAgICBoYXNoZXMuIFRyZWF0ZWQgYXMgYSBzdHJpbmcgaGVyZSB0byBhdm9pZCB1aW50NjQgcHJlY2lzaW9uXG4gKiAgICAgbG9zcyBpbiBKYXZhU2NyaXB0IGFib3ZlIDJeNTMuXG4gKlxuICogYHV1aWRgIGlzIHRoZSBlbXB0eSBzdHJpbmcgd2hlbiB0YWxraW5nIHRvIGEgcHJlLTYuMS4xNDcgc2VydmVyXG4gKiAodGhlIHdpcmUgZm9ybWF0IGhhZCBubyBJbnRlcm5hbElEIHRyYWlsZXIpLiBGYWxsIGJhY2sgdG8gYGlkYFxuICogZm9yIGlkZW50aXR5IGluIHRoYXQgY2FzZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcWxkYk5vZGUge1xuICBpZDogc3RyaW5nO1xuICAvKiogU3lzdGVtIG51bWVyaWMgSUQsIGRlY2ltYWwtZm9ybWF0dGVkOyAnJyBvbiBwcmUtNi4xLjE0NyBzZXJ2ZXJzICovXG4gIHV1aWQ6IHN0cmluZztcbiAgbGFiZWxzOiBzdHJpbmdbXTtcbiAgcHJvcGVydGllczogUmVjb3JkPHN0cmluZywgYW55Pjtcbn1cblxuLyoqXG4gKiBHcmFwaCBlZGdlLiBTZWUge0BsaW5rIEdxbGRiTm9kZX0gZm9yIHRoZSBgaWRgIC8gYHV1aWRgIHNlbWFudGljcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcWxkYkVkZ2Uge1xuICBpZDogc3RyaW5nO1xuICAvKiogU3lzdGVtIG51bWVyaWMgSUQsIGRlY2ltYWwtZm9ybWF0dGVkOyAnJyBvbiBwcmUtNi4xLjE0NyBzZXJ2ZXJzICovXG4gIHV1aWQ6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgZnJvbU5vZGVJZDogc3RyaW5nO1xuICB0b05vZGVJZDogc3RyaW5nO1xuICBwcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG4vKiogR3JhcGggcGF0aCBjb25zaXN0aW5nIG9mIG5vZGVzIGFuZCBlZGdlcyAqL1xuZXhwb3J0IGludGVyZmFjZSBHcWxkYlBhdGgge1xuICBub2RlczogR3FsZGJOb2RlW107XG4gIGVkZ2VzOiBHcWxkYkVkZ2VbXTtcbn1cblxuLyoqIEVycm9yIHZhbHVlIGZyb20gVFJZL0NBVENIIGhhbmRsaW5nICovXG5leHBvcnQgaW50ZXJmYWNlIEdxbGRiRXJyb3Ige1xuICBjb2RlOiBudW1iZXI7XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqIERhdGEgZm9yIGEgbm9kZSB0byBiZSBpbnNlcnRlZCAqL1xuZXhwb3J0IGludGVyZmFjZSBOb2RlRGF0YSB7XG4gIGlkPzogc3RyaW5nO1xuICBsYWJlbHM6IHN0cmluZ1tdO1xuICBwcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG4vKiogRGF0YSBmb3IgYW4gZWRnZSB0byBiZSBpbnNlcnRlZCAqL1xuZXhwb3J0IGludGVyZmFjZSBFZGdlRGF0YSB7XG4gIC8qKiBPcHRpb25hbCBjdXN0b20gZWRnZSBJRDsgcmVxdWlyZXMgRURHRV9JRCBlbmFibGVkIG9uIHRoZSB0YXJnZXQgZ3JhcGggKGlmIGVtcHR5LCBhdXRvLWdlbmVyYXRlZCkgKi9cbiAgaWQ/OiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGZyb21Ob2RlSWQ6IHN0cmluZztcbiAgdG9Ob2RlSWQ6IHN0cmluZztcbiAgcHJvcGVydGllczogUmVjb3JkPHN0cmluZywgYW55Pjtcbn1cblxuLyoqIEEgbm9kZSBleHBvcnRlZCBmcm9tIHRoZSBkYXRhYmFzZSAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHBvcnRlZE5vZGUge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbHM6IHN0cmluZ1tdO1xuICBwcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG4vKiogQW4gZWRnZSBleHBvcnRlZCBmcm9tIHRoZSBkYXRhYmFzZSAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHBvcnRlZEVkZ2Uge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICBmcm9tTm9kZUlkOiBzdHJpbmc7XG4gIHRvTm9kZUlkOiBzdHJpbmc7XG4gIHByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG4iXX0=