@milkio/stargate-worker 1.0.0-beta.185 → 1.0.0-beta.186

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 (3) hide show
  1. package/index.d.ts +5 -7
  2. package/index.js +3 -16
  3. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -22,19 +22,17 @@ export declare function createStargateWorker<Generated extends {
22
22
  routeSchema: any;
23
23
  rejectCode: any;
24
24
  }>(stargateOptions: MilkioStargateOptions): Promise<{
25
- $types: {
26
- generated: Generated;
27
- };
28
25
  close(): void;
29
26
  execute<Path extends keyof Generated["routeSchema"]>(path: Path, options: Mixin<ExecuteOptions, {
30
27
  params?: Generated["routeSchema"][Path]["types"]["params"];
31
28
  }>): Promise<Generated["routeSchema"][Path]["types"]["\uD83E\uDD5B"] extends boolean ? // action
32
29
  [Partial<Generated["rejectCode"]>, null, ExecuteResultsOption] | [null, Generated["routeSchema"][Path]["types"]["result"], ExecuteResultsOption] : // stream
33
30
  [Partial<Generated["rejectCode"]>, null, ExecuteResultsOption] | [null, AsyncGenerator<[Partial<Generated["rejectCode"]>, null] | [null, GeneratorGeneric<Generated["routeSchema"][Path]["types"]["result"]>], undefined>, ExecuteResultsOption]>;
34
- types: {
35
- error<Path extends keyof Generated["routeSchema"]>(path: Path): Generated["rejectCode"];
36
- params<Path extends keyof Generated["routeSchema"]>(path: Path): Generated["routeSchema"][Path]["types"]["params"];
37
- results<Path extends keyof Generated["routeSchema"]>(path: Path): Generated["routeSchema"][Path]["types"]["\uD83E\uDD5B"] extends boolean ? Generated["routeSchema"][Path]["types"]["result"] : AsyncGenerator<[Partial<Generated["rejectCode"]>, null] | [null, GeneratorGeneric<Generated["routeSchema"][Path]["types"]["result"]>], undefined>;
31
+ $types: {
32
+ generated: Generated;
33
+ error: Generated["rejectCode"];
34
+ params: { [Path in keyof Generated["routeSchema"]]: Generated["routeSchema"][Path]["types"]["params"]; };
35
+ results: { [Path in keyof Generated["routeSchema"]]: Generated["routeSchema"][Path]["types"]["\uD83E\uDD5B"] extends boolean ? Generated["routeSchema"][Path]["types"]["result"] : AsyncGenerator<[Partial<Generated["rejectCode"]>, null] | [null, GeneratorGeneric<Generated["routeSchema"][Path]["types"]["result"]>], undefined>; };
38
36
  };
39
37
  }>;
40
38
  export type MilkioFlow<T, TReturn = any, TNext = any> = {
package/index.js CHANGED
@@ -101,9 +101,6 @@ async function createStargateWorker(stargateOptions) {
101
101
  const timer = setInterval(() => stargateOptions.port.postMessage("PING"), 42);
102
102
  });
103
103
  const stargate = {
104
- $types: {
105
- generated: undefined
106
- },
107
104
  close() {
108
105
  for (const executeId of executeIds) {
109
106
  stargateOptions.port.postMessage(`CLOSE_STREAM:${executeId}`);
@@ -180,17 +177,7 @@ async function createStargateWorker(stargateOptions) {
180
177
  }
181
178
  });
182
179
  },
183
- types: {
184
- error(path) {
185
- throw new Error("This method is used to retrieve types and cannot be actually executed.");
186
- },
187
- params(path) {
188
- throw new Error("This method is used to retrieve types and cannot be actually executed.");
189
- },
190
- results(path) {
191
- throw new Error("This method is used to retrieve types and cannot be actually executed.");
192
- }
193
- }
180
+ $types: undefined
194
181
  };
195
182
  return stargate;
196
183
  }
@@ -268,5 +255,5 @@ export {
268
255
  createFlow
269
256
  };
270
257
 
271
- //# debugId=2C06053C0869B80F64756E2164756E21
272
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi5cXHV0aWxzXFxjcmVhdGUtaWQudHMiLCAiLi5cXGluZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgInR5cGUgSWRHZW5lcmF0b3JPcHRpb25zID0ge1xyXG4gIGxlbmd0aD86IG51bWJlcjtcclxuICB0aW1lc3RhbXA6IGJvb2xlYW47XHJcbiAgc2VxdWVudGlhbDogYm9vbGVhbjtcclxufTtcclxuXHJcbmZ1bmN0aW9uIGRlZmluZUlkR2VuZXJhdG9yKG9wdGlvbnM6IElkR2VuZXJhdG9yT3B0aW9ucykge1xyXG4gIGlmICghb3B0aW9ucy5sZW5ndGgpIG9wdGlvbnMubGVuZ3RoID0gMjQ7XHJcbiAgaWYgKG9wdGlvbnMubGVuZ3RoIDwgMSkgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBsZW5ndGhcIik7XHJcbiAgaWYgKG9wdGlvbnMubGVuZ3RoID4gNjEpIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgbGVuZ3RoXCIpO1xyXG4gIGlmIChvcHRpb25zLnRpbWVzdGFtcCAmJiBvcHRpb25zLmxlbmd0aCA8IDkpIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgbGVuZ3RoXCIpO1xyXG4gIGxldCBsYXN0VGltZSA9IDA7XHJcbiAgbGV0IGxhc3REZWNpbWFsID0gMG47XHJcbiAgcmV0dXJuIHtcclxuICAgIGNyZWF0ZUlkKCkge1xyXG4gICAgICBsZXQgcmFuZExlbmd0aCA9IG9wdGlvbnMubGVuZ3RoITtcclxuICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcclxuICAgICAgbGV0IGlkID0gXCJcIjtcclxuICAgICAgaWYgKG9wdGlvbnMudGltZXN0YW1wKSB7XHJcbiAgICAgICAgcmFuZExlbmd0aCAtPSA4O1xyXG4gICAgICAgIGlkID0gYCR7aWR9JHtfX2JpZ0ludFRvU3RyaW5nKEJpZ0ludChub3cpKS5wYWRTdGFydCg4LCBcIjBcIil9YDtcclxuICAgICAgfVxyXG4gICAgICBpZiAob3B0aW9ucy5zZXF1ZW50aWFsICYmIGxhc3RUaW1lID09PSBub3cpIHtcclxuICAgICAgICBpZCA9IGAke2lkfSR7X19iaWdJbnRUb1N0cmluZygrK2xhc3REZWNpbWFsKS5wYWRTdGFydCgxLCBcIjBcIil9YDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBsYXN0VGltZSA9IG5vdztcclxuICAgICAgICBjb25zdCBtaW4gPSAwbjtcclxuICAgICAgICBjb25zdCBtYXggPSBfX2dldE1heFZhbHVlKEJpZ0ludChyYW5kTGVuZ3RoKSk7XHJcbiAgICAgICAgbGFzdERlY2ltYWwgPSBfX3NlY3VyZVJhbmRvbUJpZ0ludChtaW4sIG1heCk7XHJcbiAgICAgICAgaWQgPSBgJHtpZH0ke19fYmlnSW50VG9TdHJpbmcobGFzdERlY2ltYWwpLnBhZFN0YXJ0KHJhbmRMZW5ndGgsIFwiMFwiKX1gO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBpZDtcclxuICAgIH0sXHJcbiAgICBnZXRJZFRpbWVzdGFtcChpZDogc3RyaW5nKSB7XHJcbiAgICAgIHJldHVybiBvcHRpb25zLnRpbWVzdGFtcCA/IE51bWJlcihfX3N0cmluZ1RvQmlnSW50KGlkLnNsaWNlKDAsIDgpLnJlcGxhY2VBbGwoXCIwXCIsIFwiXCIpKSkgOiAwO1xyXG4gICAgfSxcclxuICB9O1xyXG59XHJcblxyXG5jb25zdCBFTkNPRElORyA9IFwiMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjtcclxuXHJcbmZ1bmN0aW9uIF9fc2VjdXJlUmFuZG9tQmlnSW50KG1pbjogYmlnaW50LCBtYXg6IGJpZ2ludCk6IGJpZ2ludCB7XHJcbiAgaWYgKG1pbiA+PSBtYXgpIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgcmFuZ2VcIik7XHJcblxyXG4gIGNvbnN0IHJhbmdlID0gbWF4IC0gbWluICsgMW47XHJcbiAgY29uc3QgYnl0ZUNvdW50ID0gTWF0aC5jZWlsKE51bWJlcihCaWdJbnQocmFuZ2UudG9TdHJpbmcoMikubGVuZ3RoKSkgLyA4KTtcclxuICBjb25zdCBlbnRyb3B5Qnl0ZXMgPSBuZXcgVWludDhBcnJheShieXRlQ291bnQpO1xyXG5cclxuICBsZXQgcmFuZG9tVmFsdWU6IGJpZ2ludDtcclxuICBkbyB7XHJcbiAgICBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGVudHJvcHlCeXRlcyk7XHJcbiAgICByYW5kb21WYWx1ZSA9XHJcbiAgICAgIEJpZ0ludChcclxuICAgICAgICBgMHgke0FycmF5LmZyb20oZW50cm9weUJ5dGVzKVxyXG4gICAgICAgICAgLm1hcCgoYikgPT4gYi50b1N0cmluZygxNikucGFkU3RhcnQoMiwgXCIwXCIpKVxyXG4gICAgICAgICAgLmpvaW4oXCJcIil9YCxcclxuICAgICAgKSAlIHJhbmdlO1xyXG4gIH0gd2hpbGUgKHJhbmRvbVZhbHVlIDwgMG4pO1xyXG5cclxuICByZXR1cm4gbWluICsgcmFuZG9tVmFsdWU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIF9fYmlnSW50VG9TdHJpbmcodmFsdWU6IGJpZ2ludCk6IHN0cmluZyB7XHJcbiAgY29uc3QgYmFzZSA9IEJpZ0ludChFTkNPRElORy5sZW5ndGgpO1xyXG4gIGxldCByZXN1bHQgPSBcIlwiO1xyXG4gIGxldCBjdXJyZW50ID0gdmFsdWU7XHJcblxyXG4gIGlmIChjdXJyZW50ID09PSAwbikgcmV0dXJuIEVOQ09ESU5HWzBdO1xyXG5cclxuICB3aGlsZSAoY3VycmVudCA+IDBuKSB7XHJcbiAgICBjb25zdCByZW1haW5kZXIgPSBjdXJyZW50ICUgYmFzZTtcclxuICAgIHJlc3VsdCA9IEVOQ09ESU5HW051bWJlcihyZW1haW5kZXIpXSArIHJlc3VsdDtcclxuICAgIGN1cnJlbnQgPSBjdXJyZW50IC8gYmFzZTtcclxuICB9XHJcbiAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuZnVuY3Rpb24gX19zdHJpbmdUb0JpZ0ludChzdHI6IHN0cmluZyk6IGJpZ2ludCB7XHJcbiAgY29uc3QgY2hhck1hcDogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgRU5DT0RJTkcubGVuZ3RoOyBpKyspIHtcclxuICAgIGNoYXJNYXBbRU5DT0RJTkdbaV1dID0gaTtcclxuICB9XHJcblxyXG4gIGNvbnN0IGJhc2UgPSBCaWdJbnQoRU5DT0RJTkcubGVuZ3RoKTtcclxuICBsZXQgcmVzdWx0ID0gMG47XHJcblxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjb25zdCBjaGFyID0gc3RyW2ldO1xyXG4gICAgaWYgKCEoY2hhciBpbiBjaGFyTWFwKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY2hhcmFjdGVyICcke2NoYXJ9JyBpbiBpbnB1dCBzdHJpbmdgKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHZhbHVlID0gQmlnSW50KGNoYXJNYXBbY2hhcl0pO1xyXG4gICAgcmVzdWx0ID0gcmVzdWx0ICogYmFzZSArIHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuZnVuY3Rpb24gX19nZXRNYXhWYWx1ZShuOiBiaWdpbnQpOiBiaWdpbnQge1xyXG4gIHJldHVybiBCaWdJbnQoRU5DT0RJTkcubGVuZ3RoKSAqKiBuIC0gMW47XHJcbn1cclxuXHJcbmNvbnN0IGlkR2VuZXJhdG9yID0gZGVmaW5lSWRHZW5lcmF0b3IoeyBsZW5ndGg6IDI0LCB0aW1lc3RhbXA6IGZhbHNlLCBzZXF1ZW50aWFsOiBmYWxzZSB9KTtcclxuXHJcbmV4cG9ydCBjb25zdCBfX2NyZWF0ZUlkID0gaWRHZW5lcmF0b3IuY3JlYXRlSWQ7XHJcbiIsCiAgICAiaW1wb3J0IHsgX19jcmVhdGVJZCB9IGZyb20gXCIuL3V0aWxzL2NyZWF0ZS1pZC50c1wiO1xyXG5cclxuZXhwb3J0IHR5cGUgTWlsa2lvU3RhcmdhdGVPcHRpb25zID0ge1xyXG4gICAgcG9ydDoge1xyXG4gICAgICAgIHBvc3RNZXNzYWdlOiAoZGF0YTogYW55KSA9PiB2b2lkO1xyXG4gICAgICAgIGFkZEV2ZW50TGlzdGVuZXI6IChldmVudDogXCJtZXNzYWdlXCIsIGNhbGxiYWNrOiAoZXZlbnQ6IHsgZGF0YTogYW55IH0pID0+IHZvaWQpID0+IHZvaWQ7XHJcbiAgICAgICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcjogKGV2ZW50OiBcIm1lc3NhZ2VcIiwgY2FsbGJhY2s6IChldmVudDogeyBkYXRhOiBhbnkgfSkgPT4gdm9pZCkgPT4gdm9pZDtcclxuICAgIH07XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBNaXhpbjxULCBVPiA9IFUgJiBPbWl0PFQsIGtleW9mIFU+O1xyXG5cclxuZXhwb3J0IHR5cGUgRXhlY3V0ZU9wdGlvbnMgPSB7XHJcbiAgICBwYXJhbXM/OiBSZWNvcmQ8YW55LCBhbnk+O1xyXG4gICAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBFeGVjdXRlUmVzdWx0c09wdGlvbiA9IHsgZXhlY3V0ZUlkOiBzdHJpbmcgfTtcclxuXHJcbmV4cG9ydCB0eXBlIEdlbmVyYXRvckdlbmVyaWM8VD4gPSBUIGV4dGVuZHMgQXN5bmNHZW5lcmF0b3I8aW5mZXIgST4gPyBJIDogbmV2ZXI7XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlU3RhcmdhdGVXb3JrZXI8R2VuZXJhdGVkIGV4dGVuZHMgeyByb3V0ZVNjaGVtYTogYW55OyByZWplY3RDb2RlOiBhbnkgfT4oc3RhcmdhdGVPcHRpb25zOiBNaWxraW9TdGFyZ2F0ZU9wdGlvbnMpIHtcclxuICAgIGNvbnN0IGV4ZWN1dGVJZHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuICAgIGNvbnN0IGNvbm5lY3QgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGhhbmRsZXIgPSAoZXZlbnQ6IHsgZGF0YTogYW55IH0pID0+IHtcclxuICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEgIT09IFwiUE9OR1wiKSByZXR1cm47XHJcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGltZXIpO1xyXG4gICAgICAgICAgICBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5yZW1vdmVFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBoYW5kbGVyKTtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZXIpO1xyXG4gICAgICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnBvc3RNZXNzYWdlKFwiUElOR1wiKTtcclxuICAgICAgICBjb25zdCB0aW1lciA9IHNldEludGVydmFsKCgpID0+IHN0YXJnYXRlT3B0aW9ucy5wb3J0LnBvc3RNZXNzYWdlKFwiUElOR1wiKSwgNDIpO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBzdGFyZ2F0ZSA9IHtcclxuICAgICAgICAkdHlwZXM6IHtcclxuICAgICAgICAgICAgZ2VuZXJhdGVkOiB2b2lkIDAgYXMgdW5rbm93biBhcyBHZW5lcmF0ZWQsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBjbG9zZSgpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBleGVjdXRlSWQgb2YgZXhlY3V0ZUlkcykge1xyXG4gICAgICAgICAgICAgICAgc3RhcmdhdGVPcHRpb25zLnBvcnQucG9zdE1lc3NhZ2UoYENMT1NFX1NUUkVBTToke2V4ZWN1dGVJZH1gKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5wb3N0TWVzc2FnZShcIkNMT1NFRFwiKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGFzeW5jIGV4ZWN1dGU8UGF0aCBleHRlbmRzIGtleW9mIEdlbmVyYXRlZFtcInJvdXRlU2NoZW1hXCJdPihcclxuICAgICAgICAgICAgcGF0aDogUGF0aCxcclxuICAgICAgICAgICAgb3B0aW9uczogTWl4aW48XHJcbiAgICAgICAgICAgICAgICBFeGVjdXRlT3B0aW9ucyxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM/OiBHZW5lcmF0ZWRbXCJyb3V0ZVNjaGVtYVwiXVtQYXRoXVtcInR5cGVzXCJdW1wicGFyYW1zXCJdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA+LFxyXG4gICAgICAgICk6IFByb21pc2U8XHJcbiAgICAgICAgICAgIEdlbmVyYXRlZFtcInJvdXRlU2NoZW1hXCJdW1BhdGhdW1widHlwZXNcIl1bXCLwn6WbXCJdIGV4dGVuZHMgYm9vbGVhblxyXG4gICAgICAgICAgICA/IC8vIGFjdGlvblxyXG4gICAgICAgICAgICBbUGFydGlhbDxHZW5lcmF0ZWRbXCJyZWplY3RDb2RlXCJdPiwgbnVsbCwgRXhlY3V0ZVJlc3VsdHNPcHRpb25dIHwgW251bGwsIEdlbmVyYXRlZFtcInJvdXRlU2NoZW1hXCJdW1BhdGhdW1widHlwZXNcIl1bXCJyZXN1bHRcIl0sIEV4ZWN1dGVSZXN1bHRzT3B0aW9uXVxyXG4gICAgICAgICAgICA6IC8vIHN0cmVhbVxyXG4gICAgICAgICAgICBbUGFydGlhbDxHZW5lcmF0ZWRbXCJyZWplY3RDb2RlXCJdPiwgbnVsbCwgRXhlY3V0ZVJlc3VsdHNPcHRpb25dIHwgW251bGwsIEFzeW5jR2VuZXJhdG9yPFtQYXJ0aWFsPEdlbmVyYXRlZFtcInJlamVjdENvZGVcIl0+LCBudWxsXSB8IFtudWxsLCBHZW5lcmF0b3JHZW5lcmljPEdlbmVyYXRlZFtcInJvdXRlU2NoZW1hXCJdW1BhdGhdW1widHlwZXNcIl1bXCJyZXN1bHRcIl0+XSwgdW5kZWZpbmVkPiwgRXhlY3V0ZVJlc3VsdHNPcHRpb25dXHJcbiAgICAgICAgPiB7XHJcbiAgICAgICAgICAgIC8vIG94bGludC1kaXNhYmxlLW5leHQtbGluZSBuby1hc3luYy1wcm9taXNlLWV4ZWN1dG9yXHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgY29ubmVjdDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGV4ZWN1dGVJZCA9IF9fY3JlYXRlSWQoKTtcclxuICAgICAgICAgICAgICAgIGV4ZWN1dGVJZHMuYWRkKGV4ZWN1dGVJZCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIShwYXRoIGFzIHN0cmluZykuZW5kc1dpdGgoXCJ+XCIpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFuZGxlciA9IChldmVudDogeyBkYXRhOiBhbnkgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGV2ZW50LmRhdGEgIT09IFwib2JqZWN0XCIpIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuZXhlY3V0ZUlkICE9PSBleGVjdXRlSWQpIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0ZUlkcy5kZWxldGUoZXhlY3V0ZUlkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcmdhdGVPcHRpb25zLnBvcnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgaGFuZGxlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZXZlbnQuZGF0YS5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvcjogYW55ID0ge307XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcltldmVudC5kYXRhLmVycm9yLmNvZGVdID0gZXZlbnQuZGF0YS5lcnJvci5yZWplY3Q7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKFtlcnJvciwgbnVsbCwgeyBleGVjdXRlSWQgfV0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLnN1Y2Nlc3MpIHJlc29sdmUoW251bGwsIGV2ZW50LmRhdGEuZGF0YSwgeyBleGVjdXRlSWQgfV0gYXMgYW55KTtcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnBvc3RNZXNzYWdlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0ZUlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IG9wdGlvbnM/LnBhcmFtcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogb3B0aW9ucz8uaGVhZGVycyxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGZsb3c6IFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZUZsb3c+IHwgdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhbmRsZXIgPSAoZXZlbnQ6IHsgZGF0YTogYW55IH0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBldmVudC5kYXRhICE9PSBcIm9iamVjdFwiKSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmV4ZWN1dGVJZCAhPT0gZXhlY3V0ZUlkKSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZmxvdykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvdyA9IGNyZWF0ZUZsb3coc3RhcmdhdGVPcHRpb25zLCBleGVjdXRlSWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFldmVudC5kYXRhLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvcjogYW55ID0ge307XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JbZXZlbnQuZGF0YS5lcnJvci5jb2RlXSA9IGV2ZW50LmRhdGEuZXJyb3IucmVqZWN0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoW2Vycm9yLCBudWxsLCB7IGV4ZWN1dGVJZCB9XSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5zdWNjZXNzKSByZXNvbHZlKFtudWxsLCBmbG93LCB7IGV4ZWN1dGVJZCB9XSBhcyBhbnkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuZG9uZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dGVJZHMuZGVsZXRlKGV4ZWN1dGVJZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuc3VjY2VzcykgZmxvdy5yZXR1cm4odW5kZWZpbmVkLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGZsb3cudGhyb3coZXZlbnQuZGF0YS5kYXRhPy5hdCgwKSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFldmVudC5kYXRhLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5yZW1vdmVFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBoYW5kbGVyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRlSWRzLmRlbGV0ZShleGVjdXRlSWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb3cudGhyb3coZXZlbnQuZGF0YS5kYXRhLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuZGF0YS5zdWNjZXNzKSBmbG93LmVtaXQoZXZlbnQuZGF0YS5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgc3RhcmdhdGVPcHRpb25zLnBvcnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgaGFuZGxlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RhcmdhdGVPcHRpb25zLnBvcnQucG9zdE1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRlSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtczogb3B0aW9ucz8ucGFyYW1zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBvcHRpb25zPy5oZWFkZXJzLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHR5cGVzOiB7XHJcbiAgICAgICAgICAgIGVycm9yPFBhdGggZXh0ZW5kcyBrZXlvZiBHZW5lcmF0ZWRbXCJyb3V0ZVNjaGVtYVwiXT4ocGF0aDogUGF0aCk6IEdlbmVyYXRlZFtcInJlamVjdENvZGVcIl0ge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhpcyBtZXRob2QgaXMgdXNlZCB0byByZXRyaWV2ZSB0eXBlcyBhbmQgY2Fubm90IGJlIGFjdHVhbGx5IGV4ZWN1dGVkLlwiKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgcGFyYW1zPFBhdGggZXh0ZW5kcyBrZXlvZiBHZW5lcmF0ZWRbXCJyb3V0ZVNjaGVtYVwiXT4ocGF0aDogUGF0aCk6IEdlbmVyYXRlZFtcInJvdXRlU2NoZW1hXCJdW1BhdGhdW1widHlwZXNcIl1bXCJwYXJhbXNcIl0ge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhpcyBtZXRob2QgaXMgdXNlZCB0byByZXRyaWV2ZSB0eXBlcyBhbmQgY2Fubm90IGJlIGFjdHVhbGx5IGV4ZWN1dGVkLlwiKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgcmVzdWx0czxQYXRoIGV4dGVuZHMga2V5b2YgR2VuZXJhdGVkW1wicm91dGVTY2hlbWFcIl0+KHBhdGg6IFBhdGgpOiBHZW5lcmF0ZWRbXCJyb3V0ZVNjaGVtYVwiXVtQYXRoXVtcInR5cGVzXCJdW1wi8J+lm1wiXSBleHRlbmRzIGJvb2xlYW5cclxuICAgICAgICAgICAgICAgID8gLy8gYWN0aW9uXHJcbiAgICAgICAgICAgICAgICBHZW5lcmF0ZWRbXCJyb3V0ZVNjaGVtYVwiXVtQYXRoXVtcInR5cGVzXCJdW1wicmVzdWx0XCJdXHJcbiAgICAgICAgICAgICAgICA6IC8vIHN0cmVhbVxyXG4gICAgICAgICAgICAgICAgQXN5bmNHZW5lcmF0b3I8W1BhcnRpYWw8R2VuZXJhdGVkW1wicmVqZWN0Q29kZVwiXT4sIG51bGxdIHwgW251bGwsIEdlbmVyYXRvckdlbmVyaWM8R2VuZXJhdGVkW1wicm91dGVTY2hlbWFcIl1bUGF0aF1bXCJ0eXBlc1wiXVtcInJlc3VsdFwiXT5dLCB1bmRlZmluZWQ+IHtcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gcmV0cmlldmUgdHlwZXMgYW5kIGNhbm5vdCBiZSBhY3R1YWxseSBleGVjdXRlZC5cIik7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHN0YXJnYXRlO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBNaWxraW9GbG93PFQsIFRSZXR1cm4gPSBhbnksIFROZXh0ID0gYW55PiA9IHtcclxuICAgIGVtaXQ6IChmbG93OiBUKSA9PiB2b2lkO1xyXG4gICAgW1N5bWJvbC5hc3luY0l0ZXJhdG9yXTogKCkgPT4gTWlsa2lvRmxvdzxUPjtcclxuICAgIG5leHQoLi4uW3ZhbHVlXTogW10gfCBbVE5leHRdKTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDxULCBUUmV0dXJuPj47XHJcbiAgICByZXR1cm4oZGF0YTogdW5kZWZpbmVkLCBkaXNhYmxlUG9zdENsb3NlTWVzc2FnZT86IHRydWUpOiBQcm9taXNlPEl0ZXJhdG9yUmVzdWx0PFQsIFRSZXR1cm4+PjtcclxuICAgIHRocm93KGVycm9yOiBhbnksIGRpc2FibGVQb3N0Q2xvc2VNZXNzYWdlPzogdHJ1ZSk6IFByb21pc2U8SXRlcmF0b3JSZXN1bHQ8VCwgVFJldHVybj4+O1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZsb3c8VD4oc3RhcmdhdGVPcHRpb25zOiBNaWxraW9TdGFyZ2F0ZU9wdGlvbnMsIGV4ZWN1dGVJZDogc3RyaW5nKTogTWlsa2lvRmxvdzxUPiB7XHJcbiAgICBsZXQgc3RhdHVzOiBcInBlbmRpbmdcIiB8IFwicmVzb2x2ZWRcIiB8IFwicmVqZWN0ZWRcIiA9IFwicGVuZGluZ1wiO1xyXG4gICAgY29uc3QgZmxvd3M6IEFycmF5PHtcclxuICAgICAgICBibGFuazogYm9vbGVhbjtcclxuICAgICAgICBwcm9taXNlOiBQcm9taXNlPFQ+O1xyXG4gICAgICAgIHJlc29sdmU6ICh2YWx1ZT86IFQgfCBQcm9taXNlTGlrZTxUPikgPT4gdm9pZDtcclxuICAgICAgICByZWplY3Q6IChyZWFzb24/OiBhbnkpID0+IHZvaWQ7XHJcbiAgICB9PiA9IFtdO1xyXG5cclxuICAgIGNvbnN0IGl0ZXJhdG9yID0ge1xyXG4gICAgICAgIGVtaXQ6IChmbG93OiBUKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChmbG93cy5hdCgtMSk/LmJsYW5rID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gZmxvd3MuYXQoLTEpITtcclxuICAgICAgICAgICAgICAgIGl0ZW0uYmxhbmsgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGl0ZW0ucmVzb2x2ZShmbG93KTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVycyA9IHdpdGhSZXNvbHZlcnM8VD4oKTtcclxuICAgICAgICAgICAgICAgIHJlc29sdmVycy5yZXNvbHZlKGZsb3cpO1xyXG4gICAgICAgICAgICAgICAgZmxvd3MucHVzaCh7IC4uLnJlc29sdmVycywgYmxhbms6IGZhbHNlIH0gYXMgYW55KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLi4uKHtcclxuICAgICAgICAgICAgYXN5bmMgbmV4dCgpOiBQcm9taXNlPEl0ZXJhdG9yUmVzdWx0PFQ+PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoc3RhdHVzICE9PSBcInBlbmRpbmdcIikgcmV0dXJuIHsgZG9uZTogdHJ1ZSwgdmFsdWU6IG51bGwgfTtcclxuICAgICAgICAgICAgICAgIGlmIChmbG93cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNvbHZlcnMgPSB3aXRoUmVzb2x2ZXJzPFQ+KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxvd3MucHVzaCh7IC4uLnJlc29sdmVycywgYmxhbms6IHRydWUgfSBhcyBhbnkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc3QgZmxvdyA9IGZsb3dzLmF0KDApITtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZsb3cucHJvbWlzZTtcclxuICAgICAgICAgICAgICAgIGZsb3dzLnNoaWZ0KCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkb25lOiBzdGF0dXMgIT09IFwicGVuZGluZ1wiLCB2YWx1ZTogcmVzdWx0IH07XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGFzeW5jIHJldHVybihfOiB1bmRlZmluZWQsIGRpc2FibGVQb3N0Q2xvc2VNZXNzYWdlPzogdHJ1ZSk6IFByb21pc2U8SXRlcmF0b3JSZXN1bHQ8dm9pZD4+IHtcclxuICAgICAgICAgICAgICAgIHN0YXR1cyA9IFwicmVzb2x2ZWRcIjtcclxuICAgICAgICAgICAgICAgIGlmICghZGlzYWJsZVBvc3RDbG9zZU1lc3NhZ2UpIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnBvc3RNZXNzYWdlKGBDTE9TRV9TVFJFQU06JHtleGVjdXRlSWR9YCk7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGZsb3cgb2YgZmxvd3MpIHtcclxuICAgICAgICAgICAgICAgICAgICBmbG93LmJsYW5rID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxvdy5yZXNvbHZlKHVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkb25lOiB0cnVlLCB2YWx1ZTogbnVsbCB9O1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBhc3luYyB0aHJvdyhlcnI6IGFueSwgZGlzYWJsZVBvc3RDbG9zZU1lc3NhZ2U/OiB0cnVlKTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDx2b2lkPj4ge1xyXG4gICAgICAgICAgICAgICAgc3RhdHVzID0gXCJyZWplY3RlZFwiO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFkaXNhYmxlUG9zdENsb3NlTWVzc2FnZSkgc3RhcmdhdGVPcHRpb25zLnBvcnQucG9zdE1lc3NhZ2UoYENMT1NFX1NUUkVBTToke2V4ZWN1dGVJZH1gKTtcclxuICAgICAgICAgICAgICAgIGlmIChmbG93cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNvbHZlcnMgPSB3aXRoUmVzb2x2ZXJzPFQ+KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxvd3MucHVzaCh7IC4uLnJlc29sdmVycywgYmxhbms6IHRydWUgfSBhcyBhbnkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBmbG93IG9mIGZsb3dzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxvdy5ibGFuayA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIGZsb3cucmVqZWN0KGVycik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkb25lOiB0cnVlLCB2YWx1ZTogbnVsbCB9O1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0gc2F0aXNmaWVzIEFzeW5jSXRlcmF0b3I8dW5rbm93bj4pLFxyXG4gICAgICAgIFtTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIH0sXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBpdGVyYXRvciBhcyBNaWxraW9GbG93PFQ+O1xyXG59XHJcblxyXG5mdW5jdGlvbiB3aXRoUmVzb2x2ZXJzPFQgPSBhbnk+KCk6IFByb21pc2VXaXRoUmVzb2x2ZXJzPFQ+IHtcclxuICAgIGxldCByZXNvbHZlOiBQcm9taXNlV2l0aFJlc29sdmVyczxUPltcInJlc29sdmVcIl07XHJcbiAgICBsZXQgcmVqZWN0OiBQcm9taXNlV2l0aFJlc29sdmVyczxUPltcInJlamVjdFwiXTtcclxuICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZTxUPigocmVzLCByZWopID0+IHtcclxuICAgICAgICByZXNvbHZlID0gcmVzO1xyXG4gICAgICAgIHJlamVjdCA9IHJlajtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHsgcHJvbWlzZSwgcmVzb2x2ZTogcmVzb2x2ZSEsIHJlamVjdDogcmVqZWN0ISB9O1xyXG59XHJcbiIKICBdLAogICJtYXBwaW5ncyI6ICI7QUFNQSxTQUFTLGlCQUFpQixDQUFDLFNBQTZCO0FBQUEsRUFDdEQsSUFBSSxDQUFDLFFBQVE7QUFBQSxJQUFRLFFBQVEsU0FBUztBQUFBLEVBQ3RDLElBQUksUUFBUSxTQUFTO0FBQUEsSUFBRyxNQUFNLElBQUksTUFBTSxnQkFBZ0I7QUFBQSxFQUN4RCxJQUFJLFFBQVEsU0FBUztBQUFBLElBQUksTUFBTSxJQUFJLE1BQU0sZ0JBQWdCO0FBQUEsRUFDekQsSUFBSSxRQUFRLGFBQWEsUUFBUSxTQUFTO0FBQUEsSUFBRyxNQUFNLElBQUksTUFBTSxnQkFBZ0I7QUFBQSxFQUM3RSxJQUFJLFdBQVc7QUFBQSxFQUNmLElBQUksY0FBYztBQUFBLEVBQ2xCLE9BQU87QUFBQSxJQUNMLFFBQVEsR0FBRztBQUFBLE1BQ1QsSUFBSSxhQUFhLFFBQVE7QUFBQSxNQUN6QixNQUFNLE1BQU0sS0FBSyxJQUFJO0FBQUEsTUFDckIsSUFBSSxLQUFLO0FBQUEsTUFDVCxJQUFJLFFBQVEsV0FBVztBQUFBLFFBQ3JCLGNBQWM7QUFBQSxRQUNkLEtBQUssR0FBRyxLQUFLLGlCQUFpQixPQUFPLEdBQUcsQ0FBQyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQUEsTUFDNUQ7QUFBQSxNQUNBLElBQUksUUFBUSxjQUFjLGFBQWEsS0FBSztBQUFBLFFBQzFDLEtBQUssR0FBRyxLQUFLLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUFBLE1BQzlELEVBQU87QUFBQSxRQUNMLFdBQVc7QUFBQSxRQUNYLE1BQU0sTUFBTTtBQUFBLFFBQ1osTUFB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QixLQUFLLFlBQVksZ0JBQWdCLFdBQVc7QUFBQSxRQUMxRixJQUFJLE1BQU0sV0FBVyxHQUFHO0FBQUEsVUFDcEIsTUFBTSxZQUFZLGNBQWlCO0FBQUEsVUFDbkMsTUFBTSxLQUFLLEtBQUssV0FBVyxPQUFPLEtBQUssQ0FBUTtBQUFBLFFBQ25EO0FBQUEsUUFDQSxXQUFXLFFBQVEsT0FBTztBQUFBLFVBQ3RCLEtBQUssUUFBUTtBQUFBLFVBQ2IsS0FBSyxPQUFPLEdBQUc7QUFBQSxRQUNuQjtBQUFBLFFBQ0EsT0FBTyxFQUFFLE1BQU0sTUFBTSxPQUFPLEtBQUs7QUFBQTtBQUFBLElBRXpDO0FBQUEsS0FDQyxPQUFPLGNBQWMsR0FBRztBQUFBLE1BQ3JCLE9BQU87QUFBQTtBQUFBLEVBRWY7QUFBQSxFQUVBLE9BQU87QUFBQTtBQUdYLFNBQVMsYUFBc0IsR0FBNEI7QUFBQSxFQUN2RCxJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixNQUFNLFVBQVUsSUFBSSxRQUFXLENBQUMsS0FBSyxRQUFRO0FBQUEsSUFDekMsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLEdBQ1o7QUFBQSxFQUNELE9BQU8sRUFBRSxTQUFTLFNBQW1CLE9BQWdCO0FBQUE7IiwKICAiZGVidWdJZCI6ICIyQzA2MDUzQzA4NjlCODBGNjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ==
258
+ //# debugId=1BC79B1210E27E9364756E2164756E21
259
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi5cXHV0aWxzXFxjcmVhdGUtaWQudHMiLCAiLi5cXGluZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgInR5cGUgSWRHZW5lcmF0b3JPcHRpb25zID0ge1xyXG4gIGxlbmd0aD86IG51bWJlcjtcclxuICB0aW1lc3RhbXA6IGJvb2xlYW47XHJcbiAgc2VxdWVudGlhbDogYm9vbGVhbjtcclxufTtcclxuXHJcbmZ1bmN0aW9uIGRlZmluZUlkR2VuZXJhdG9yKG9wdGlvbnM6IElkR2VuZXJhdG9yT3B0aW9ucykge1xyXG4gIGlmICghb3B0aW9ucy5sZW5ndGgpIG9wdGlvbnMubGVuZ3RoID0gMjQ7XHJcbiAgaWYgKG9wdGlvbnMubGVuZ3RoIDwgMSkgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBsZW5ndGhcIik7XHJcbiAgaWYgKG9wdGlvbnMubGVuZ3RoID4gNjEpIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgbGVuZ3RoXCIpO1xyXG4gIGlmIChvcHRpb25zLnRpbWVzdGFtcCAmJiBvcHRpb25zLmxlbmd0aCA8IDkpIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgbGVuZ3RoXCIpO1xyXG4gIGxldCBsYXN0VGltZSA9IDA7XHJcbiAgbGV0IGxhc3REZWNpbWFsID0gMG47XHJcbiAgcmV0dXJuIHtcclxuICAgIGNyZWF0ZUlkKCkge1xyXG4gICAgICBsZXQgcmFuZExlbmd0aCA9IG9wdGlvbnMubGVuZ3RoITtcclxuICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcclxuICAgICAgbGV0IGlkID0gXCJcIjtcclxuICAgICAgaWYgKG9wdGlvbnMudGltZXN0YW1wKSB7XHJcbiAgICAgICAgcmFuZExlbmd0aCAtPSA4O1xyXG4gICAgICAgIGlkID0gYCR7aWR9JHtfX2JpZ0ludFRvU3RyaW5nKEJpZ0ludChub3cpKS5wYWRTdGFydCg4LCBcIjBcIil9YDtcclxuICAgICAgfVxyXG4gICAgICBpZiAob3B0aW9ucy5zZXF1ZW50aWFsICYmIGxhc3RUaW1lID09PSBub3cpIHtcclxuICAgICAgICBpZCA9IGAke2lkfSR7X19iaWdJbnRUb1N0cmluZygrK2xhc3REZWNpbWFsKS5wYWRTdGFydCgxLCBcIjBcIil9YDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBsYXN0VGltZSA9IG5vdztcclxuICAgICAgICBjb25zdCBtaW4gPSAwbjtcclxuICAgICAgICBjb25zdCBtYXggPSBfX2dldE1heFZhbHVlKEJpZ0ludChyYW5kTGVuZ3RoKSk7XHJcbiAgICAgICAgbGFzdERlY2ltYWwgPSBfX3NlY3VyZVJhbmRvbUJpZ0ludChtaW4sIG1heCk7XHJcbiAgICAgICAgaWQgPSBgJHtpZH0ke19fYmlnSW50VG9TdHJpbmcobGFzdERlY2ltYWwpLnBhZFN0YXJ0KHJhbmRMZW5ndGgsIFwiMFwiKX1gO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBpZDtcclxuICAgIH0sXHJcbiAgICBnZXRJZFRpbWVzdGFtcChpZDogc3RyaW5nKSB7XHJcbiAgICAgIHJldHVybiBvcHRpb25zLnRpbWVzdGFtcCA/IE51bWJlcihfX3N0cmluZ1RvQmlnSW50KGlkLnNsaWNlKDAsIDgpLnJlcGxhY2VBbGwoXCIwXCIsIFwiXCIpKSkgOiAwO1xyXG4gICAgfSxcclxuICB9O1xyXG59XHJcblxyXG5jb25zdCBFTkNPRElORyA9IFwiMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjtcclxuXHJcbmZ1bmN0aW9uIF9fc2VjdXJlUmFuZG9tQmlnSW50KG1pbjogYmlnaW50LCBtYXg6IGJpZ2ludCk6IGJpZ2ludCB7XHJcbiAgaWYgKG1pbiA+PSBtYXgpIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgcmFuZ2VcIik7XHJcblxyXG4gIGNvbnN0IHJhbmdlID0gbWF4IC0gbWluICsgMW47XHJcbiAgY29uc3QgYnl0ZUNvdW50ID0gTWF0aC5jZWlsKE51bWJlcihCaWdJbnQocmFuZ2UudG9TdHJpbmcoMikubGVuZ3RoKSkgLyA4KTtcclxuICBjb25zdCBlbnRyb3B5Qnl0ZXMgPSBuZXcgVWludDhBcnJheShieXRlQ291bnQpO1xyXG5cclxuICBsZXQgcmFuZG9tVmFsdWU6IGJpZ2ludDtcclxuICBkbyB7XHJcbiAgICBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGVudHJvcHlCeXRlcyk7XHJcbiAgICByYW5kb21WYWx1ZSA9XHJcbiAgICAgIEJpZ0ludChcclxuICAgICAgICBgMHgke0FycmF5LmZyb20oZW50cm9weUJ5dGVzKVxyXG4gICAgICAgICAgLm1hcCgoYikgPT4gYi50b1N0cmluZygxNikucGFkU3RhcnQoMiwgXCIwXCIpKVxyXG4gICAgICAgICAgLmpvaW4oXCJcIil9YCxcclxuICAgICAgKSAlIHJhbmdlO1xyXG4gIH0gd2hpbGUgKHJhbmRvbVZhbHVlIDwgMG4pO1xyXG5cclxuICByZXR1cm4gbWluICsgcmFuZG9tVmFsdWU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIF9fYmlnSW50VG9TdHJpbmcodmFsdWU6IGJpZ2ludCk6IHN0cmluZyB7XHJcbiAgY29uc3QgYmFzZSA9IEJpZ0ludChFTkNPRElORy5sZW5ndGgpO1xyXG4gIGxldCByZXN1bHQgPSBcIlwiO1xyXG4gIGxldCBjdXJyZW50ID0gdmFsdWU7XHJcblxyXG4gIGlmIChjdXJyZW50ID09PSAwbikgcmV0dXJuIEVOQ09ESU5HWzBdO1xyXG5cclxuICB3aGlsZSAoY3VycmVudCA+IDBuKSB7XHJcbiAgICBjb25zdCByZW1haW5kZXIgPSBjdXJyZW50ICUgYmFzZTtcclxuICAgIHJlc3VsdCA9IEVOQ09ESU5HW051bWJlcihyZW1haW5kZXIpXSArIHJlc3VsdDtcclxuICAgIGN1cnJlbnQgPSBjdXJyZW50IC8gYmFzZTtcclxuICB9XHJcbiAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuZnVuY3Rpb24gX19zdHJpbmdUb0JpZ0ludChzdHI6IHN0cmluZyk6IGJpZ2ludCB7XHJcbiAgY29uc3QgY2hhck1hcDogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgRU5DT0RJTkcubGVuZ3RoOyBpKyspIHtcclxuICAgIGNoYXJNYXBbRU5DT0RJTkdbaV1dID0gaTtcclxuICB9XHJcblxyXG4gIGNvbnN0IGJhc2UgPSBCaWdJbnQoRU5DT0RJTkcubGVuZ3RoKTtcclxuICBsZXQgcmVzdWx0ID0gMG47XHJcblxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjb25zdCBjaGFyID0gc3RyW2ldO1xyXG4gICAgaWYgKCEoY2hhciBpbiBjaGFyTWFwKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY2hhcmFjdGVyICcke2NoYXJ9JyBpbiBpbnB1dCBzdHJpbmdgKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHZhbHVlID0gQmlnSW50KGNoYXJNYXBbY2hhcl0pO1xyXG4gICAgcmVzdWx0ID0gcmVzdWx0ICogYmFzZSArIHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuZnVuY3Rpb24gX19nZXRNYXhWYWx1ZShuOiBiaWdpbnQpOiBiaWdpbnQge1xyXG4gIHJldHVybiBCaWdJbnQoRU5DT0RJTkcubGVuZ3RoKSAqKiBuIC0gMW47XHJcbn1cclxuXHJcbmNvbnN0IGlkR2VuZXJhdG9yID0gZGVmaW5lSWRHZW5lcmF0b3IoeyBsZW5ndGg6IDI0LCB0aW1lc3RhbXA6IGZhbHNlLCBzZXF1ZW50aWFsOiBmYWxzZSB9KTtcclxuXHJcbmV4cG9ydCBjb25zdCBfX2NyZWF0ZUlkID0gaWRHZW5lcmF0b3IuY3JlYXRlSWQ7XHJcbiIsCiAgICAiaW1wb3J0IHsgX19jcmVhdGVJZCB9IGZyb20gXCIuL3V0aWxzL2NyZWF0ZS1pZC50c1wiO1xyXG5cclxuZXhwb3J0IHR5cGUgTWlsa2lvU3RhcmdhdGVPcHRpb25zID0ge1xyXG4gICAgcG9ydDoge1xyXG4gICAgICAgIHBvc3RNZXNzYWdlOiAoZGF0YTogYW55KSA9PiB2b2lkO1xyXG4gICAgICAgIGFkZEV2ZW50TGlzdGVuZXI6IChldmVudDogXCJtZXNzYWdlXCIsIGNhbGxiYWNrOiAoZXZlbnQ6IHsgZGF0YTogYW55IH0pID0+IHZvaWQpID0+IHZvaWQ7XHJcbiAgICAgICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcjogKGV2ZW50OiBcIm1lc3NhZ2VcIiwgY2FsbGJhY2s6IChldmVudDogeyBkYXRhOiBhbnkgfSkgPT4gdm9pZCkgPT4gdm9pZDtcclxuICAgIH07XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBNaXhpbjxULCBVPiA9IFUgJiBPbWl0PFQsIGtleW9mIFU+O1xyXG5cclxuZXhwb3J0IHR5cGUgRXhlY3V0ZU9wdGlvbnMgPSB7XHJcbiAgICBwYXJhbXM/OiBSZWNvcmQ8YW55LCBhbnk+O1xyXG4gICAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBFeGVjdXRlUmVzdWx0c09wdGlvbiA9IHsgZXhlY3V0ZUlkOiBzdHJpbmcgfTtcclxuXHJcbmV4cG9ydCB0eXBlIEdlbmVyYXRvckdlbmVyaWM8VD4gPSBUIGV4dGVuZHMgQXN5bmNHZW5lcmF0b3I8aW5mZXIgST4gPyBJIDogbmV2ZXI7XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlU3RhcmdhdGVXb3JrZXI8R2VuZXJhdGVkIGV4dGVuZHMgeyByb3V0ZVNjaGVtYTogYW55OyByZWplY3RDb2RlOiBhbnkgfT4oc3RhcmdhdGVPcHRpb25zOiBNaWxraW9TdGFyZ2F0ZU9wdGlvbnMpIHtcclxuICAgIGNvbnN0IGV4ZWN1dGVJZHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuICAgIGNvbnN0IGNvbm5lY3QgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGhhbmRsZXIgPSAoZXZlbnQ6IHsgZGF0YTogYW55IH0pID0+IHtcclxuICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEgIT09IFwiUE9OR1wiKSByZXR1cm47XHJcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGltZXIpO1xyXG4gICAgICAgICAgICBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5yZW1vdmVFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBoYW5kbGVyKTtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZXIpO1xyXG4gICAgICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnBvc3RNZXNzYWdlKFwiUElOR1wiKTtcclxuICAgICAgICBjb25zdCB0aW1lciA9IHNldEludGVydmFsKCgpID0+IHN0YXJnYXRlT3B0aW9ucy5wb3J0LnBvc3RNZXNzYWdlKFwiUElOR1wiKSwgNDIpO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBzdGFyZ2F0ZSA9IHtcclxuICAgICAgICBjbG9zZSgpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBleGVjdXRlSWQgb2YgZXhlY3V0ZUlkcykge1xyXG4gICAgICAgICAgICAgICAgc3RhcmdhdGVPcHRpb25zLnBvcnQucG9zdE1lc3NhZ2UoYENMT1NFX1NUUkVBTToke2V4ZWN1dGVJZH1gKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5wb3N0TWVzc2FnZShcIkNMT1NFRFwiKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGFzeW5jIGV4ZWN1dGU8UGF0aCBleHRlbmRzIGtleW9mIEdlbmVyYXRlZFtcInJvdXRlU2NoZW1hXCJdPihcclxuICAgICAgICAgICAgcGF0aDogUGF0aCxcclxuICAgICAgICAgICAgb3B0aW9uczogTWl4aW48XHJcbiAgICAgICAgICAgICAgICBFeGVjdXRlT3B0aW9ucyxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM/OiBHZW5lcmF0ZWRbXCJyb3V0ZVNjaGVtYVwiXVtQYXRoXVtcInR5cGVzXCJdW1wicGFyYW1zXCJdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA+LFxyXG4gICAgICAgICk6IFByb21pc2U8XHJcbiAgICAgICAgICAgIEdlbmVyYXRlZFtcInJvdXRlU2NoZW1hXCJdW1BhdGhdW1widHlwZXNcIl1bXCLwn6WbXCJdIGV4dGVuZHMgYm9vbGVhblxyXG4gICAgICAgICAgICA/IC8vIGFjdGlvblxyXG4gICAgICAgICAgICBbUGFydGlhbDxHZW5lcmF0ZWRbXCJyZWplY3RDb2RlXCJdPiwgbnVsbCwgRXhlY3V0ZVJlc3VsdHNPcHRpb25dIHwgW251bGwsIEdlbmVyYXRlZFtcInJvdXRlU2NoZW1hXCJdW1BhdGhdW1widHlwZXNcIl1bXCJyZXN1bHRcIl0sIEV4ZWN1dGVSZXN1bHRzT3B0aW9uXVxyXG4gICAgICAgICAgICA6IC8vIHN0cmVhbVxyXG4gICAgICAgICAgICBbUGFydGlhbDxHZW5lcmF0ZWRbXCJyZWplY3RDb2RlXCJdPiwgbnVsbCwgRXhlY3V0ZVJlc3VsdHNPcHRpb25dIHwgW251bGwsIEFzeW5jR2VuZXJhdG9yPFtQYXJ0aWFsPEdlbmVyYXRlZFtcInJlamVjdENvZGVcIl0+LCBudWxsXSB8IFtudWxsLCBHZW5lcmF0b3JHZW5lcmljPEdlbmVyYXRlZFtcInJvdXRlU2NoZW1hXCJdW1BhdGhdW1widHlwZXNcIl1bXCJyZXN1bHRcIl0+XSwgdW5kZWZpbmVkPiwgRXhlY3V0ZVJlc3VsdHNPcHRpb25dXHJcbiAgICAgICAgPiB7XHJcbiAgICAgICAgICAgIC8vIG94bGludC1kaXNhYmxlLW5leHQtbGluZSBuby1hc3luYy1wcm9taXNlLWV4ZWN1dG9yXHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgY29ubmVjdDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGV4ZWN1dGVJZCA9IF9fY3JlYXRlSWQoKTtcclxuICAgICAgICAgICAgICAgIGV4ZWN1dGVJZHMuYWRkKGV4ZWN1dGVJZCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIShwYXRoIGFzIHN0cmluZykuZW5kc1dpdGgoXCJ+XCIpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFuZGxlciA9IChldmVudDogeyBkYXRhOiBhbnkgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGV2ZW50LmRhdGEgIT09IFwib2JqZWN0XCIpIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuZXhlY3V0ZUlkICE9PSBleGVjdXRlSWQpIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0ZUlkcy5kZWxldGUoZXhlY3V0ZUlkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcmdhdGVPcHRpb25zLnBvcnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgaGFuZGxlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZXZlbnQuZGF0YS5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvcjogYW55ID0ge307XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcltldmVudC5kYXRhLmVycm9yLmNvZGVdID0gZXZlbnQuZGF0YS5lcnJvci5yZWplY3Q7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKFtlcnJvciwgbnVsbCwgeyBleGVjdXRlSWQgfV0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLnN1Y2Nlc3MpIHJlc29sdmUoW251bGwsIGV2ZW50LmRhdGEuZGF0YSwgeyBleGVjdXRlSWQgfV0gYXMgYW55KTtcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnBvc3RNZXNzYWdlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0ZUlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IG9wdGlvbnM/LnBhcmFtcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogb3B0aW9ucz8uaGVhZGVycyxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGZsb3c6IFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZUZsb3c+IHwgdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhbmRsZXIgPSAoZXZlbnQ6IHsgZGF0YTogYW55IH0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBldmVudC5kYXRhICE9PSBcIm9iamVjdFwiKSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmV4ZWN1dGVJZCAhPT0gZXhlY3V0ZUlkKSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZmxvdykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvdyA9IGNyZWF0ZUZsb3coc3RhcmdhdGVPcHRpb25zLCBleGVjdXRlSWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFldmVudC5kYXRhLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvcjogYW55ID0ge307XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JbZXZlbnQuZGF0YS5lcnJvci5jb2RlXSA9IGV2ZW50LmRhdGEuZXJyb3IucmVqZWN0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoW2Vycm9yLCBudWxsLCB7IGV4ZWN1dGVJZCB9XSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5zdWNjZXNzKSByZXNvbHZlKFtudWxsLCBmbG93LCB7IGV4ZWN1dGVJZCB9XSBhcyBhbnkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuZG9uZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dGVJZHMuZGVsZXRlKGV4ZWN1dGVJZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuc3VjY2VzcykgZmxvdy5yZXR1cm4odW5kZWZpbmVkLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGZsb3cudGhyb3coZXZlbnQuZGF0YS5kYXRhPy5hdCgwKSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFldmVudC5kYXRhLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5yZW1vdmVFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBoYW5kbGVyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRlSWRzLmRlbGV0ZShleGVjdXRlSWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb3cudGhyb3coZXZlbnQuZGF0YS5kYXRhLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuZGF0YS5zdWNjZXNzKSBmbG93LmVtaXQoZXZlbnQuZGF0YS5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgc3RhcmdhdGVPcHRpb25zLnBvcnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgaGFuZGxlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RhcmdhdGVPcHRpb25zLnBvcnQucG9zdE1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRlSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtczogb3B0aW9ucz8ucGFyYW1zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBvcHRpb25zPy5oZWFkZXJzLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgICR0eXBlczogdW5kZWZpbmVkIGFzIHVua25vd24gYXMge1xyXG4gICAgICAgICAgICBnZW5lcmF0ZWQ6IEdlbmVyYXRlZCxcclxuICAgICAgICAgICAgZXJyb3I6IEdlbmVyYXRlZFtcInJlamVjdENvZGVcIl07XHJcbiAgICAgICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgICAgICAgW1BhdGggaW4ga2V5b2YgR2VuZXJhdGVkW1wicm91dGVTY2hlbWFcIl1dOiBHZW5lcmF0ZWRbXCJyb3V0ZVNjaGVtYVwiXVtQYXRoXVtcInR5cGVzXCJdW1wicGFyYW1zXCJdXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHJlc3VsdHM6IHtcclxuICAgICAgICAgICAgICAgIFtQYXRoIGluIGtleW9mIEdlbmVyYXRlZFtcInJvdXRlU2NoZW1hXCJdXTogR2VuZXJhdGVkW1wicm91dGVTY2hlbWFcIl1bUGF0aF1bXCJ0eXBlc1wiXVtcIvCfpZtcIl0gZXh0ZW5kcyBib29sZWFuXHJcbiAgICAgICAgICAgICAgICA/IC8vIGFjdGlvblxyXG4gICAgICAgICAgICAgICAgR2VuZXJhdGVkW1wicm91dGVTY2hlbWFcIl1bUGF0aF1bXCJ0eXBlc1wiXVtcInJlc3VsdFwiXVxyXG4gICAgICAgICAgICAgICAgOiAvLyBzdHJlYW1cclxuICAgICAgICAgICAgICAgIEFzeW5jR2VuZXJhdG9yPFtQYXJ0aWFsPEdlbmVyYXRlZFtcInJlamVjdENvZGVcIl0+LCBudWxsXSB8IFtudWxsLCBHZW5lcmF0b3JHZW5lcmljPEdlbmVyYXRlZFtcInJvdXRlU2NoZW1hXCJdW1BhdGhdW1widHlwZXNcIl1bXCJyZXN1bHRcIl0+XSwgdW5kZWZpbmVkPlxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBzdGFyZ2F0ZTtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgTWlsa2lvRmxvdzxULCBUUmV0dXJuID0gYW55LCBUTmV4dCA9IGFueT4gPSB7XHJcbiAgICBlbWl0OiAoZmxvdzogVCkgPT4gdm9pZDtcclxuICAgIFtTeW1ib2wuYXN5bmNJdGVyYXRvcl06ICgpID0+IE1pbGtpb0Zsb3c8VD47XHJcbiAgICBuZXh0KC4uLlt2YWx1ZV06IFtdIHwgW1ROZXh0XSk6IFByb21pc2U8SXRlcmF0b3JSZXN1bHQ8VCwgVFJldHVybj4+O1xyXG4gICAgcmV0dXJuKGRhdGE6IHVuZGVmaW5lZCwgZGlzYWJsZVBvc3RDbG9zZU1lc3NhZ2U/OiB0cnVlKTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDxULCBUUmV0dXJuPj47XHJcbiAgICB0aHJvdyhlcnJvcjogYW55LCBkaXNhYmxlUG9zdENsb3NlTWVzc2FnZT86IHRydWUpOiBQcm9taXNlPEl0ZXJhdG9yUmVzdWx0PFQsIFRSZXR1cm4+PjtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGbG93PFQ+KHN0YXJnYXRlT3B0aW9uczogTWlsa2lvU3RhcmdhdGVPcHRpb25zLCBleGVjdXRlSWQ6IHN0cmluZyk6IE1pbGtpb0Zsb3c8VD4ge1xyXG4gICAgbGV0IHN0YXR1czogXCJwZW5kaW5nXCIgfCBcInJlc29sdmVkXCIgfCBcInJlamVjdGVkXCIgPSBcInBlbmRpbmdcIjtcclxuICAgIGNvbnN0IGZsb3dzOiBBcnJheTx7XHJcbiAgICAgICAgYmxhbms6IGJvb2xlYW47XHJcbiAgICAgICAgcHJvbWlzZTogUHJvbWlzZTxUPjtcclxuICAgICAgICByZXNvbHZlOiAodmFsdWU/OiBUIHwgUHJvbWlzZUxpa2U8VD4pID0+IHZvaWQ7XHJcbiAgICAgICAgcmVqZWN0OiAocmVhc29uPzogYW55KSA9PiB2b2lkO1xyXG4gICAgfT4gPSBbXTtcclxuXHJcbiAgICBjb25zdCBpdGVyYXRvciA9IHtcclxuICAgICAgICBlbWl0OiAoZmxvdzogVCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZmxvd3MuYXQoLTEpPy5ibGFuayA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IGZsb3dzLmF0KC0xKSE7XHJcbiAgICAgICAgICAgICAgICBpdGVtLmJsYW5rID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnJlc29sdmUoZmxvdyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByZXNvbHZlcnMgPSB3aXRoUmVzb2x2ZXJzPFQ+KCk7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlcnMucmVzb2x2ZShmbG93KTtcclxuICAgICAgICAgICAgICAgIGZsb3dzLnB1c2goeyAuLi5yZXNvbHZlcnMsIGJsYW5rOiBmYWxzZSB9IGFzIGFueSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIC4uLih7XHJcbiAgICAgICAgICAgIGFzeW5jIG5leHQoKTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDxUPj4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHN0YXR1cyAhPT0gXCJwZW5kaW5nXCIpIHJldHVybiB7IGRvbmU6IHRydWUsIHZhbHVlOiBudWxsIH07XHJcbiAgICAgICAgICAgICAgICBpZiAoZmxvd3MubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzb2x2ZXJzID0gd2l0aFJlc29sdmVyczxUPigpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZsb3dzLnB1c2goeyAuLi5yZXNvbHZlcnMsIGJsYW5rOiB0cnVlIH0gYXMgYW55KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnN0IGZsb3cgPSBmbG93cy5hdCgwKSE7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmbG93LnByb21pc2U7XHJcbiAgICAgICAgICAgICAgICBmbG93cy5zaGlmdCgpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZG9uZTogc3RhdHVzICE9PSBcInBlbmRpbmdcIiwgdmFsdWU6IHJlc3VsdCB9O1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBhc3luYyByZXR1cm4oXzogdW5kZWZpbmVkLCBkaXNhYmxlUG9zdENsb3NlTWVzc2FnZT86IHRydWUpOiBQcm9taXNlPEl0ZXJhdG9yUmVzdWx0PHZvaWQ+PiB7XHJcbiAgICAgICAgICAgICAgICBzdGF0dXMgPSBcInJlc29sdmVkXCI7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWRpc2FibGVQb3N0Q2xvc2VNZXNzYWdlKSBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5wb3N0TWVzc2FnZShgQ0xPU0VfU1RSRUFNOiR7ZXhlY3V0ZUlkfWApO1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBmbG93IG9mIGZsb3dzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxvdy5ibGFuayA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIGZsb3cucmVzb2x2ZSh1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZG9uZTogdHJ1ZSwgdmFsdWU6IG51bGwgfTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgYXN5bmMgdGhyb3coZXJyOiBhbnksIGRpc2FibGVQb3N0Q2xvc2VNZXNzYWdlPzogdHJ1ZSk6IFByb21pc2U8SXRlcmF0b3JSZXN1bHQ8dm9pZD4+IHtcclxuICAgICAgICAgICAgICAgIHN0YXR1cyA9IFwicmVqZWN0ZWRcIjtcclxuICAgICAgICAgICAgICAgIGlmICghZGlzYWJsZVBvc3RDbG9zZU1lc3NhZ2UpIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnBvc3RNZXNzYWdlKGBDTE9TRV9TVFJFQU06JHtleGVjdXRlSWR9YCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZmxvd3MubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzb2x2ZXJzID0gd2l0aFJlc29sdmVyczxUPigpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZsb3dzLnB1c2goeyAuLi5yZXNvbHZlcnMsIGJsYW5rOiB0cnVlIH0gYXMgYW55KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZmxvdyBvZiBmbG93cykge1xyXG4gICAgICAgICAgICAgICAgICAgIGZsb3cuYmxhbmsgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBmbG93LnJlamVjdChlcnIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZG9uZTogdHJ1ZSwgdmFsdWU6IG51bGwgfTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9IHNhdGlzZmllcyBBc3luY0l0ZXJhdG9yPHVua25vd24+KSxcclxuICAgICAgICBbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICB9LFxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gaXRlcmF0b3IgYXMgTWlsa2lvRmxvdzxUPjtcclxufVxyXG5cclxuZnVuY3Rpb24gd2l0aFJlc29sdmVyczxUID0gYW55PigpOiBQcm9taXNlV2l0aFJlc29sdmVyczxUPiB7XHJcbiAgICBsZXQgcmVzb2x2ZTogUHJvbWlzZVdpdGhSZXNvbHZlcnM8VD5bXCJyZXNvbHZlXCJdO1xyXG4gICAgbGV0IHJlamVjdDogUHJvbWlzZVdpdGhSZXNvbHZlcnM8VD5bXCJyZWplY3RcIl07XHJcbiAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2U8VD4oKHJlcywgcmVqKSA9PiB7XHJcbiAgICAgICAgcmVzb2x2ZSA9IHJlcztcclxuICAgICAgICByZWplY3QgPSByZWo7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB7IHByb21pc2UsIHJlc29sdmU6IHJlc29sdmUhLCByZWplY3Q6IHJlamVjdCEgfTtcclxufVxyXG4iCiAgXSwKICAibWFwcGluZ3MiOiAiO0FBTUEsU0FBUyxpQkFBaUIsQ0FBQyxTQUE2QjtBQUFBLEVBQ3RELElBQUksQ0FBQyxRQUFRO0FBQUEsSUFBUSxRQUFRLFNBQVM7QUFBQSxFQUN0QyxJQUFJLFFBQVEsU0FBUztBQUFBLElBQUcsTUFBTSxJQUFJLE1BQU0sZ0JBQWdCO0FBQUEsRUFDeEQsSUFBSSxRQUFRLFNBQVM7QUFBQSxJQUFJLE1BQU0sSUFBSSxNQUFNLGdCQUFnQjtBQUFBLEVBQ3pELElBQUksUUFBUSxhQUFhLFFBQVEsU0FBUztBQUFB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
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@milkio/stargate-worker","version":"1.0.0-beta.185","type":"module","exports":"./index.js","types":"./index.d.ts","dependencies":{}}
1
+ {"name":"@milkio/stargate-worker","version":"1.0.0-beta.186","type":"module","exports":"./index.js","types":"./index.d.ts","dependencies":{}}