@vendasta/developer-training 0.12.2 → 0.12.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,4 +5,4 @@
5
5
  // Interfaces.
6
6
  // *********************************
7
7
  export {};
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGthYmFrb3Z0b2RvLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2RldmVsb3Blcl90cmFpbmluZ19zZGsvc3JjL2xpYi9faW50ZXJuYWwvaW50ZXJmYWNlcy90a2FiYWtvdnRvZG8uaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQywyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRixjQUFjO0FBQ2Qsb0NBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBJbnRlcmZhY2VzLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbmltcG9ydCAqIGFzIGUgZnJvbSAnLi4vZW51bXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRLYWJha292QWRkVG9Eb0l0ZW1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUS2FiYWtvdkFkZFRvRG9JdGVtUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHRvZG9JdGVtPzogVEthYmFrb3ZUb0RvSXRlbUludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUS2FiYWtvdkRlbGV0ZVRvRG9JdGVtUmVxdWVzdEludGVyZmFjZSB7XG4gICAgdG9kb0lkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRLYWJha292RGVsZXRlVG9Eb0l0ZW1SZXNwb25zZUludGVyZmFjZSB7XG4gICAgdG9kb0lkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRLYWJha292R2V0VG9Eb0l0ZW1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICB0b2RvSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVEthYmFrb3ZHZXRUb0RvSXRlbVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICB0b2RvSXRlbT86IFRLYWJha292VG9Eb0l0ZW1JbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVEthYmFrb3ZMaXN0VG9Eb0l0ZW1zUmVxdWVzdEludGVyZmFjZSB7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVEthYmFrb3ZMaXN0VG9Eb0l0ZW1zUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHRvZG9JdGVtcz86IFRLYWJha292VG9Eb0l0ZW1JbnRlcmZhY2VbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUS2FiYWtvdlRvRG9JZEludGVyZmFjZSB7XG4gICAgdG9kb0lkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRLYWJha292VG9Eb0l0ZW1JbnRlcmZhY2Uge1xuICAgIHRvZG9JZD86IHN0cmluZztcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBpc0RvbmU/OiBib29sZWFuO1xuICAgIGRlbGV0ZWQ/OiBib29sZWFuO1xuICAgIGR1ZURhdGU/OiBEYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRLYWJha292VXBkYXRlVG9Eb0l0ZW1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICB0b2RvSXRlbT86IFRLYWJha292VG9Eb0l0ZW1JbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVEthYmFrb3ZVcGRhdGVUb0RvSXRlbVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICB0b2RvSXRlbT86IFRLYWJha292VG9Eb0l0ZW1JbnRlcmZhY2U7XG59XG5cbiJdfQ==
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGthYmFrb3Z0b2RvLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2RldmVsb3Blcl90cmFpbmluZ19zZGsvc3JjL2xpYi9faW50ZXJuYWwvaW50ZXJmYWNlcy90a2FiYWtvdnRvZG8uaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQywyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRixjQUFjO0FBQ2Qsb0NBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBJbnRlcmZhY2VzLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbmltcG9ydCAqIGFzIGUgZnJvbSAnLi4vZW51bXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRLYWJha292QWRkVG9Eb0l0ZW1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBkdWVEYXRlPzogRGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUS2FiYWtvdkFkZFRvRG9JdGVtUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHRvZG9JdGVtPzogVEthYmFrb3ZUb0RvSXRlbUludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUS2FiYWtvdkRlbGV0ZVRvRG9JdGVtUmVxdWVzdEludGVyZmFjZSB7XG4gICAgdG9kb0lkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRLYWJha292RGVsZXRlVG9Eb0l0ZW1SZXNwb25zZUludGVyZmFjZSB7XG4gICAgdG9kb0lkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRLYWJha292R2V0VG9Eb0l0ZW1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICB0b2RvSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVEthYmFrb3ZHZXRUb0RvSXRlbVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICB0b2RvSXRlbT86IFRLYWJha292VG9Eb0l0ZW1JbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVEthYmFrb3ZMaXN0VG9Eb0l0ZW1zUmVxdWVzdEludGVyZmFjZSB7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVEthYmFrb3ZMaXN0VG9Eb0l0ZW1zUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHRvZG9JdGVtcz86IFRLYWJha292VG9Eb0l0ZW1JbnRlcmZhY2VbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUS2FiYWtvdlRvRG9JZEludGVyZmFjZSB7XG4gICAgdG9kb0lkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRLYWJha292VG9Eb0l0ZW1JbnRlcmZhY2Uge1xuICAgIHRvZG9JZD86IHN0cmluZztcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBpc0RvbmU/OiBib29sZWFuO1xuICAgIGRlbGV0ZWQ/OiBib29sZWFuO1xuICAgIGR1ZURhdGU/OiBEYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRLYWJha292VXBkYXRlVG9Eb0l0ZW1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICB0b2RvSXRlbT86IFRLYWJha292VG9Eb0l0ZW1JbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVEthYmFrb3ZVcGRhdGVUb0RvSXRlbVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICB0b2RvSXRlbT86IFRLYWJha292VG9Eb0l0ZW1JbnRlcmZhY2U7XG59XG5cbiJdfQ==
@@ -8,6 +8,9 @@ export class TKabakovAddToDoItemRequest {
8
8
  static fromProto(proto) {
9
9
  let m = new TKabakovAddToDoItemRequest();
10
10
  m = Object.assign(m, proto);
11
+ if (proto.dueDate) {
12
+ m.dueDate = new Date(proto.dueDate);
13
+ }
11
14
  return m;
12
15
  }
13
16
  constructor(kwargs) {
@@ -24,6 +27,9 @@ export class TKabakovAddToDoItemRequest {
24
27
  if (typeof this.description !== 'undefined') {
25
28
  toReturn['description'] = this.description;
26
29
  }
30
+ if (typeof this.dueDate !== 'undefined' && this.dueDate !== null) {
31
+ toReturn['dueDate'] = 'toApiJson' in this.dueDate ? this.dueDate.toApiJson() : this.dueDate;
32
+ }
27
33
  return toReturn;
28
34
  }
29
35
  }
@@ -277,4 +283,4 @@ export class TKabakovUpdateToDoItemResponse {
277
283
  return toReturn;
278
284
  }
279
285
  }
280
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGthYmFrb3Z0b2RvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vZGV2ZWxvcGVyX3RyYWluaW5nX3Nkay9zcmMvbGliL19pbnRlcm5hbC9vYmplY3RzL3RrYWJha292dG9kby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxNQUFNLFVBQVUsaUJBQWlCLENBQUksT0FBWSxFQUFFLEtBQWE7SUFDOUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxNQUFNLE9BQU8sMEJBQTBCO0lBSW5DLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLDBCQUEwQixFQUFFLENBQUM7UUFDekMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBOEM7UUFDdEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FBQztRQUN4RSxJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUFDO1FBQzFGLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENB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QUksQ0FBQyxRQUFRLENBQUM7U0FBQztRQUMvSyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sOEJBQThCO0lBR3ZDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLDhCQUE4QixFQUFFLENBQUM7UUFDN0MsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUFDO1FBQzlFLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBa0Q7UUFDMUQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsUUFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUFDO1FBQy9LLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gT2JqZWN0cy5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaW1wb3J0ICogYXMgaSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuaW1wb3J0ICogYXMgZSBmcm9tICcuLi9lbnVtcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnVtU3RyaW5nVG9WYWx1ZTxFPihlbnVtUmVmOiBhbnksIHZhbHVlOiBzdHJpbmcpOiBFIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIGVudW1SZWZbdmFsdWVdO1xufVxuXG5leHBvcnQgY2xhc3MgVEthYmFrb3ZBZGRUb0RvSXRlbVJlcXVlc3QgaW1wbGVtZW50cyBpLlRLYWJha292QWRkVG9Eb0l0ZW1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBUS2FiYWtvdkFkZFRvRG9JdGVtUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IFRLYWJha292QWRkVG9Eb0l0ZW1SZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5US2FiYWtvdkFkZFRvRG9JdGVtUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRpdGxlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0aXRsZSddID0gdGhpcy50aXRsZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kZXNjcmlwdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGVzY3JpcHRpb24nXSA9IHRoaXMuZGVzY3JpcHRpb247fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVEthYmFrb3ZBZGRUb0RvSXRlbVJlc3BvbnNlIGltcGxlbWVudHMgaS5US2FiYWtvdkFkZFRvRG9JdGVtUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHRvZG9JdGVtOiBUS2FiYWtvdlRvRG9JdGVtO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVEthYmFrb3ZBZGRUb0RvSXRlbVJlc3BvbnNlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVEthYmFrb3ZBZGRUb0RvSXRlbVJlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnRvZG9JdGVtKSB7bS50b2RvSXRlbSA9IFRLYWJha292VG9Eb0l0ZW0uZnJvbVByb3RvKHByb3RvLnRvZG9JdGVtKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVEthYmFrb3ZBZGRUb0RvSXRlbVJlc3BvbnNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudG9kb0l0ZW0gIT09ICd1bmRlZmluZWQnICYmIHRoaXMudG9kb0l0ZW0gIT09IG51bGwpIHt0b1JldHVyblsndG9kb0l0ZW0nXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudG9kb0l0ZW0gPyAodGhpcy50b2RvSXRlbSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50b2RvSXRlbTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUS2FiYWtvdkRlbGV0ZVRvRG9JdGVtUmVxdWVzdCBpbXBsZW1lbnRzIGkuVEthYmFrb3ZEZWxldGVUb0RvSXRlbVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIHRvZG9JZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVEthYmFrb3ZEZWxldGVUb0RvSXRlbVJlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBUS2FiYWtvdkRlbGV0ZVRvRG9JdGVtUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVEthYmFrb3ZEZWxldGVUb0RvSXRlbVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50b2RvSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3RvZG9JZCddID0gdGhpcy50b2RvSWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVEthYmFrb3ZEZWxldGVUb0RvSXRlbVJlc3BvbnNlIGltcGxlbWVudHMgaS5US2FiYWtvdkRlbGV0ZVRvRG9JdGVtUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHRvZG9JZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVEthYmFrb3ZEZWxldGVUb0RvSXRlbVJlc3BvbnNlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVEthYmFrb3ZEZWxldGVUb0RvSXRlbVJlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5US2FiYWtvdkRlbGV0ZVRvRG9JdGVtUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50b2RvSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3RvZG9JZCddID0gdGhpcy50b2RvSWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVEthYmFrb3ZHZXRUb0RvSXRlbVJlcXVlc3QgaW1wbGVtZW50cyBpLlRLYWJha292R2V0VG9Eb0l0ZW1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICB0b2RvSWQ6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFRLYWJha292R2V0VG9Eb0l0ZW1SZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVEthYmFrb3ZHZXRUb0RvSXRlbVJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRLYWJha292R2V0VG9Eb0l0ZW1SZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudG9kb0lkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0b2RvSWQnXSA9IHRoaXMudG9kb0lkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRLYWJha292R2V0VG9Eb0l0ZW1SZXNwb25zZSBpbXBsZW1lbnRzIGkuVEthYmFrb3ZHZXRUb0RvSXRlbVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICB0b2RvSXRlbTogVEthYmFrb3ZUb0RvSXRlbTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFRLYWJha292R2V0VG9Eb0l0ZW1SZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IFRLYWJha292R2V0VG9Eb0l0ZW1SZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by50b2RvSXRlbSkge20udG9kb0l0ZW0gPSBUS2FiYWtvdlRvRG9JdGVtLmZyb21Qcm90byhwcm90by50b2RvSXRlbSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRLYWJha292R2V0VG9Eb0l0ZW1SZXNwb25zZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRvZG9JdGVtICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnRvZG9JdGVtICE9PSBudWxsKSB7dG9SZXR1cm5bJ3RvZG9JdGVtJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnRvZG9JdGVtID8gKHRoaXMudG9kb0l0ZW0gYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudG9kb0l0ZW07fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVEthYmFrb3ZMaXN0VG9Eb0l0ZW1zUmVxdWVzdCBpbXBsZW1lbnRzIGkuVEthYmFrb3ZMaXN0VG9Eb0l0ZW1zUmVxdWVzdEludGVyZmFjZSB7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBUS2FiYWtvdkxpc3RUb0RvSXRlbXNSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVEthYmFrb3ZMaXN0VG9Eb0l0ZW1zUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVEthYmFrb3ZMaXN0VG9Eb0l0ZW1zUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRLYWJha292TGlzdFRvRG9JdGVtc1Jlc3BvbnNlIGltcGxlbWVudHMgaS5US2FiYWtvdkxpc3RUb0RvSXRlbXNSZXNwb25zZUludGVyZmFjZSB7XG4gICAgdG9kb0l0ZW1zOiBUS2FiYWtvdlRvRG9JdGVtW107XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBUS2FiYWtvdkxpc3RUb0RvSXRlbXNSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IFRLYWJha292TGlzdFRvRG9JdGVtc1Jlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnRvZG9JdGVtcykge20udG9kb0l0ZW1zID0gcHJvdG8udG9kb0l0ZW1zLm1hcChUS2FiYWtvdlRvRG9JdGVtLmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRLYWJha292TGlzdFRvRG9JdGVtc1Jlc3BvbnNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudG9kb0l0ZW1zICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnRvZG9JdGVtcyAhPT0gbnVsbCkge3RvUmV0dXJuWyd0b2RvSXRlbXMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudG9kb0l0ZW1zID8gKHRoaXMudG9kb0l0ZW1zIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnRvZG9JdGVtczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUS2FiYWtvdlRvRG9JZCBpbXBsZW1lbnRzIGkuVEthYmFrb3ZUb0RvSWRJbnRlcmZhY2Uge1xuICAgIHRvZG9JZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVEthYmFrb3ZUb0RvSWQge1xuICAgICAgICBsZXQgbSA9IG5ldyBUS2FiYWtvdlRvRG9JZCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVEthYmFrb3ZUb0RvSWRJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50b2RvSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3RvZG9JZCddID0gdGhpcy50b2RvSWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVEthYmFrb3ZUb0RvSXRlbSBpbXBsZW1lbnRzIGkuVEthYmFrb3ZUb0RvSXRlbUludGVyZmFjZSB7XG4gICAgdG9kb0lkOiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIGlzRG9uZTogYm9vbGVhbjtcbiAgICBkZWxldGVkOiBib29sZWFuO1xuICAgIGR1ZURhdGU6IERhdGU7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBUS2FiYWtvdlRvRG9JdGVtIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVEthYmFrb3ZUb0RvSXRlbSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5kdWVEYXRlKSB7bS5kdWVEYXRlID0gbmV3IERhdGUocHJvdG8uZHVlRGF0ZSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRLYWJha292VG9Eb0l0ZW1JbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50b2RvSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3RvZG9JZCddID0gdGhpcy50b2RvSWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGl0bGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3RpdGxlJ10gPSB0aGlzLnRpdGxlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRlc2NyaXB0aW9uICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkZXNjcmlwdGlvbiddID0gdGhpcy5kZXNjcmlwdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pc0RvbmUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lzRG9uZSddID0gdGhpcy5pc0RvbmU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGVsZXRlZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGVsZXRlZCddID0gdGhpcy5kZWxldGVkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmR1ZURhdGUgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZHVlRGF0ZSAhPT0gbnVsbCkge3RvUmV0dXJuWydkdWVEYXRlJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmR1ZURhdGUgPyAodGhpcy5kdWVEYXRlIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmR1ZURhdGU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVEthYmFrb3ZVcGRhdGVUb0RvSXRlbVJlcXVlc3QgaW1wbGVtZW50cyBpLlRLYWJha292VXBkYXRlVG9Eb0l0ZW1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICB0b2RvSXRlbTogVEthYmFrb3ZUb0RvSXRlbTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFRLYWJha292VXBkYXRlVG9Eb0l0ZW1SZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVEthYmFrb3ZVcGRhdGVUb0RvSXRlbVJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8udG9kb0l0ZW0pIHttLnRvZG9JdGVtID0gVEthYmFrb3ZUb0RvSXRlbS5mcm9tUHJvdG8ocHJvdG8udG9kb0l0ZW0pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5US2FiYWtvdlVwZGF0ZVRvRG9JdGVtUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRvZG9JdGVtICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnRvZG9JdGVtICE9PSBudWxsKSB7dG9SZXR1cm5bJ3RvZG9JdGVtJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnRvZG9JdGVtID8gKHRoaXMudG9kb0l0ZW0gYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudG9kb0l0ZW07fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVEthYmFrb3ZVcGRhdGVUb0RvSXRlbVJlc3BvbnNlIGltcGxlbWVudHMgaS5US2FiYWtvdlVwZGF0ZVRvRG9JdGVtUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHRvZG9JdGVtOiBUS2FiYWtvdlRvRG9JdGVtO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVEthYmFrb3ZVcGRhdGVUb0RvSXRlbVJlc3BvbnNlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVEthYmFrb3ZVcGRhdGVUb0RvSXRlbVJlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnRvZG9JdGVtKSB7bS50b2RvSXRlbSA9IFRLYWJha292VG9Eb0l0ZW0uZnJvbVByb3RvKHByb3RvLnRvZG9JdGVtKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVEthYmFrb3ZVcGRhdGVUb0RvSXRlbVJlc3BvbnNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudG9kb0l0ZW0gIT09ICd1bmRlZmluZWQnICYmIHRoaXMudG9kb0l0ZW0gIT09IG51bGwpIHt0b1JldHVyblsndG9kb0l0ZW0nXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudG9kb0l0ZW0gPyAodGhpcy50b2RvSXRlbSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50b2RvSXRlbTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbiJdfQ==
286
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGthYmFrb3Z0b2RvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vZGV2ZWxvcGVyX3RyYWluaW5nX3Nkay9zcmMvbGliL19pbnRlcm5hbC9vYmplY3RzL3RrYWJha292dG9kby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxNQUFNLFVBQVUsaUJBQWlCLENBQUksT0FBWSxFQUFFLEtBQWE7SUFDOUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxNQUFNLE9BQU8sMEJBQTBCO0lBS25DLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLDBCQUEwQixFQUFFLENBQUM7UUFDekMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtZQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQUM7UUFDekQsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsWUFBWSxNQUE4QztRQUN0RCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFNBQVM7UUFDTCxNQUFNLFFBQVEsR0FFVixFQUFFLENBQUM7UUFFUCxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUFDO1FBQ3hFLElBQUksT0FBTyxJQUFJLENBQUMsV0FB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LEVBQUU7WUFBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxRQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQUM7UUFDL0ssT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBPYmplY3RzLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5pbXBvcnQgKiBhcyBpIGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQgKiBhcyBlIGZyb20gJy4uL2VudW1zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVudW1TdHJpbmdUb1ZhbHVlPEU+KGVudW1SZWY6IGFueSwgdmFsdWU6IHN0cmluZyk6IEUge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gZW51bVJlZlt2YWx1ZV07XG59XG5cbmV4cG9ydCBjbGFzcyBUS2FiYWtvdkFkZFRvRG9JdGVtUmVxdWVzdCBpbXBsZW1lbnRzIGkuVEthYmFrb3ZBZGRUb0RvSXRlbVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBkdWVEYXRlOiBEYXRlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVEthYmFrb3ZBZGRUb0RvSXRlbVJlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBUS2FiYWtvdkFkZFRvRG9JdGVtUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5kdWVEYXRlKSB7bS5kdWVEYXRlID0gbmV3IERhdGUocHJvdG8uZHVlRGF0ZSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRLYWJha292QWRkVG9Eb0l0ZW1SZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGl0bGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3RpdGxlJ10gPSB0aGlzLnRpdGxlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRlc2NyaXB0aW9uICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkZXNjcmlwdGlvbiddID0gdGhpcy5kZXNjcmlwdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kdWVEYXRlICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmR1ZURhdGUgIT09IG51bGwpIHt0b1JldHVyblsnZHVlRGF0ZSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5kdWVEYXRlID8gKHRoaXMuZHVlRGF0ZSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5kdWVEYXRlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRLYWJha292QWRkVG9Eb0l0ZW1SZXNwb25zZSBpbXBsZW1lbnRzIGkuVEthYmFrb3ZBZGRUb0RvSXRlbVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICB0b2RvSXRlbTogVEthYmFrb3ZUb0RvSXRlbTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFRLYWJha292QWRkVG9Eb0l0ZW1SZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IFRLYWJha292QWRkVG9Eb0l0ZW1SZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by50b2RvSXRlbSkge20udG9kb0l0ZW0gPSBUS2FiYWtvdlRvRG9JdGVtLmZyb21Qcm90byhwcm90by50b2RvSXRlbSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRLYWJha292QWRkVG9Eb0l0ZW1SZXNwb25zZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRvZG9JdGVtICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnRvZG9JdGVtICE9PSBudWxsKSB7dG9SZXR1cm5bJ3RvZG9JdGVtJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnRvZG9JdGVtID8gKHRoaXMudG9kb0l0ZW0gYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudG9kb0l0ZW07fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVEthYmFrb3ZEZWxldGVUb0RvSXRlbVJlcXVlc3QgaW1wbGVtZW50cyBpLlRLYWJha292RGVsZXRlVG9Eb0l0ZW1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICB0b2RvSWQ6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFRLYWJha292RGVsZXRlVG9Eb0l0ZW1SZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVEthYmFrb3ZEZWxldGVUb0RvSXRlbVJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRLYWJha292RGVsZXRlVG9Eb0l0ZW1SZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudG9kb0lkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0b2RvSWQnXSA9IHRoaXMudG9kb0lkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRLYWJha292RGVsZXRlVG9Eb0l0ZW1SZXNwb25zZSBpbXBsZW1lbnRzIGkuVEthYmFrb3ZEZWxldGVUb0RvSXRlbVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICB0b2RvSWQ6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFRLYWJha292RGVsZXRlVG9Eb0l0ZW1SZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IFRLYWJha292RGVsZXRlVG9Eb0l0ZW1SZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVEthYmFrb3ZEZWxldGVUb0RvSXRlbVJlc3BvbnNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudG9kb0lkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0b2RvSWQnXSA9IHRoaXMudG9kb0lkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRLYWJha292R2V0VG9Eb0l0ZW1SZXF1ZXN0IGltcGxlbWVudHMgaS5US2FiYWtvdkdldFRvRG9JdGVtUmVxdWVzdEludGVyZmFjZSB7XG4gICAgdG9kb0lkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBUS2FiYWtvdkdldFRvRG9JdGVtUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IFRLYWJha292R2V0VG9Eb0l0ZW1SZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5US2FiYWtvdkdldFRvRG9JdGVtUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRvZG9JZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndG9kb0lkJ10gPSB0aGlzLnRvZG9JZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUS2FiYWtvdkdldFRvRG9JdGVtUmVzcG9uc2UgaW1wbGVtZW50cyBpLlRLYWJha292R2V0VG9Eb0l0ZW1SZXNwb25zZUludGVyZmFjZSB7XG4gICAgdG9kb0l0ZW06IFRLYWJha292VG9Eb0l0ZW07XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBUS2FiYWtvdkdldFRvRG9JdGVtUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBUS2FiYWtvdkdldFRvRG9JdGVtUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8udG9kb0l0ZW0pIHttLnRvZG9JdGVtID0gVEthYmFrb3ZUb0RvSXRlbS5mcm9tUHJvdG8ocHJvdG8udG9kb0l0ZW0pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5US2FiYWtvdkdldFRvRG9JdGVtUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50b2RvSXRlbSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy50b2RvSXRlbSAhPT0gbnVsbCkge3RvUmV0dXJuWyd0b2RvSXRlbSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy50b2RvSXRlbSA/ICh0aGlzLnRvZG9JdGVtIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnRvZG9JdGVtO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRLYWJha292TGlzdFRvRG9JdGVtc1JlcXVlc3QgaW1wbGVtZW50cyBpLlRLYWJha292TGlzdFRvRG9JdGVtc1JlcXVlc3RJbnRlcmZhY2Uge1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVEthYmFrb3ZMaXN0VG9Eb0l0ZW1zUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IFRLYWJha292TGlzdFRvRG9JdGVtc1JlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRLYWJha292TGlzdFRvRG9JdGVtc1JlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUS2FiYWtvdkxpc3RUb0RvSXRlbXNSZXNwb25zZSBpbXBsZW1lbnRzIGkuVEthYmFrb3ZMaXN0VG9Eb0l0ZW1zUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHRvZG9JdGVtczogVEthYmFrb3ZUb0RvSXRlbVtdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVEthYmFrb3ZMaXN0VG9Eb0l0ZW1zUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBUS2FiYWtvdkxpc3RUb0RvSXRlbXNSZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by50b2RvSXRlbXMpIHttLnRvZG9JdGVtcyA9IHByb3RvLnRvZG9JdGVtcy5tYXAoVEthYmFrb3ZUb0RvSXRlbS5mcm9tUHJvdG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5US2FiYWtvdkxpc3RUb0RvSXRlbXNSZXNwb25zZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRvZG9JdGVtcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy50b2RvSXRlbXMgIT09IG51bGwpIHt0b1JldHVyblsndG9kb0l0ZW1zJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnRvZG9JdGVtcyA/ICh0aGlzLnRvZG9JdGVtcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50b2RvSXRlbXM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVEthYmFrb3ZUb0RvSWQgaW1wbGVtZW50cyBpLlRLYWJha292VG9Eb0lkSW50ZXJmYWNlIHtcbiAgICB0b2RvSWQ6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFRLYWJha292VG9Eb0lkIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVEthYmFrb3ZUb0RvSWQoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRLYWJha292VG9Eb0lkSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudG9kb0lkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0b2RvSWQnXSA9IHRoaXMudG9kb0lkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRLYWJha292VG9Eb0l0ZW0gaW1wbGVtZW50cyBpLlRLYWJha292VG9Eb0l0ZW1JbnRlcmZhY2Uge1xuICAgIHRvZG9JZDogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBpc0RvbmU6IGJvb2xlYW47XG4gICAgZGVsZXRlZDogYm9vbGVhbjtcbiAgICBkdWVEYXRlOiBEYXRlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVEthYmFrb3ZUb0RvSXRlbSB7XG4gICAgICAgIGxldCBtID0gbmV3IFRLYWJha292VG9Eb0l0ZW0oKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uZHVlRGF0ZSkge20uZHVlRGF0ZSA9IG5ldyBEYXRlKHByb3RvLmR1ZURhdGUpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5US2FiYWtvdlRvRG9JdGVtSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudG9kb0lkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0b2RvSWQnXSA9IHRoaXMudG9kb0lkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRpdGxlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0aXRsZSddID0gdGhpcy50aXRsZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kZXNjcmlwdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGVzY3JpcHRpb24nXSA9IHRoaXMuZGVzY3JpcHRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaXNEb25lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpc0RvbmUnXSA9IHRoaXMuaXNEb25lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRlbGV0ZWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2RlbGV0ZWQnXSA9IHRoaXMuZGVsZXRlZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kdWVEYXRlICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmR1ZURhdGUgIT09IG51bGwpIHt0b1JldHVyblsnZHVlRGF0ZSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5kdWVEYXRlID8gKHRoaXMuZHVlRGF0ZSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5kdWVEYXRlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRLYWJha292VXBkYXRlVG9Eb0l0ZW1SZXF1ZXN0IGltcGxlbWVudHMgaS5US2FiYWtvdlVwZGF0ZVRvRG9JdGVtUmVxdWVzdEludGVyZmFjZSB7XG4gICAgdG9kb0l0ZW06IFRLYWJha292VG9Eb0l0ZW07XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBUS2FiYWtvdlVwZGF0ZVRvRG9JdGVtUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IFRLYWJha292VXBkYXRlVG9Eb0l0ZW1SZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnRvZG9JdGVtKSB7bS50b2RvSXRlbSA9IFRLYWJha292VG9Eb0l0ZW0uZnJvbVByb3RvKHByb3RvLnRvZG9JdGVtKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVEthYmFrb3ZVcGRhdGVUb0RvSXRlbVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50b2RvSXRlbSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy50b2RvSXRlbSAhPT0gbnVsbCkge3RvUmV0dXJuWyd0b2RvSXRlbSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy50b2RvSXRlbSA/ICh0aGlzLnRvZG9JdGVtIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnRvZG9JdGVtO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRLYWJha292VXBkYXRlVG9Eb0l0ZW1SZXNwb25zZSBpbXBsZW1lbnRzIGkuVEthYmFrb3ZVcGRhdGVUb0RvSXRlbVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICB0b2RvSXRlbTogVEthYmFrb3ZUb0RvSXRlbTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFRLYWJha292VXBkYXRlVG9Eb0l0ZW1SZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IFRLYWJha292VXBkYXRlVG9Eb0l0ZW1SZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by50b2RvSXRlbSkge20udG9kb0l0ZW0gPSBUS2FiYWtvdlRvRG9JdGVtLmZyb21Qcm90byhwcm90by50b2RvSXRlbSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRLYWJha292VXBkYXRlVG9Eb0l0ZW1SZXNwb25zZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRvZG9JdGVtICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnRvZG9JdGVtICE9PSBudWxsKSB7dG9SZXR1cm5bJ3RvZG9JdGVtJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnRvZG9JdGVtID8gKHRoaXMudG9kb0l0ZW0gYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudG9kb0l0ZW07fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG4iXX0=
@@ -339,6 +339,9 @@ class TKabakovAddToDoItemRequest {
339
339
  static fromProto(proto) {
340
340
  let m = new TKabakovAddToDoItemRequest();
341
341
  m = Object.assign(m, proto);
342
+ if (proto.dueDate) {
343
+ m.dueDate = new Date(proto.dueDate);
344
+ }
342
345
  return m;
343
346
  }
344
347
  constructor(kwargs) {
@@ -355,6 +358,9 @@ class TKabakovAddToDoItemRequest {
355
358
  if (typeof this.description !== 'undefined') {
356
359
  toReturn['description'] = this.description;
357
360
  }
361
+ if (typeof this.dueDate !== 'undefined' && this.dueDate !== null) {
362
+ toReturn['dueDate'] = 'toApiJson' in this.dueDate ? this.dueDate.toApiJson() : this.dueDate;
363
+ }
358
364
  return toReturn;
359
365
  }
360
366
  }