@vendasta/meetings 0.86.0 → 0.88.0

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 (31) hide show
  1. package/esm2020/lib/_internal/interfaces/groups-and-services.interface.mjs +8 -0
  2. package/esm2020/lib/_internal/interfaces/index.mjs +1 -1
  3. package/esm2020/lib/_internal/interfaces/meeting-host.interface.mjs +1 -1
  4. package/esm2020/lib/_internal/interfaces/meeting-source.interface.mjs +1 -1
  5. package/esm2020/lib/_internal/meeting-host.api.service.mjs +38 -2
  6. package/esm2020/lib/_internal/objects/groups-and-services.mjs +118 -0
  7. package/esm2020/lib/_internal/objects/index.mjs +3 -2
  8. package/esm2020/lib/_internal/objects/meeting-host.mjs +324 -23
  9. package/esm2020/lib/_internal/objects/meeting-source.mjs +4 -1
  10. package/esm2020/lib/host/host.service.mjs +70 -2
  11. package/esm2020/lib/meetings.service.mjs +8 -6
  12. package/esm2020/lib/shared/groups-and-services.mjs +69 -0
  13. package/esm2020/lib/shared/index.mjs +2 -1
  14. package/fesm2015/vendasta-meetings.mjs +645 -49
  15. package/fesm2015/vendasta-meetings.mjs.map +1 -1
  16. package/fesm2020/vendasta-meetings.mjs +645 -49
  17. package/fesm2020/vendasta-meetings.mjs.map +1 -1
  18. package/lib/_internal/interfaces/groups-and-services.interface.d.ts +24 -0
  19. package/lib/_internal/interfaces/index.d.ts +2 -1
  20. package/lib/_internal/interfaces/meeting-host.interface.d.ts +55 -8
  21. package/lib/_internal/interfaces/meeting-source.interface.d.ts +1 -0
  22. package/lib/_internal/meeting-host.api.service.d.ts +10 -2
  23. package/lib/_internal/objects/groups-and-services.d.ts +35 -0
  24. package/lib/_internal/objects/index.d.ts +2 -1
  25. package/lib/_internal/objects/meeting-host.d.ts +102 -19
  26. package/lib/_internal/objects/meeting-source.d.ts +1 -0
  27. package/lib/host/host.service.d.ts +35 -1
  28. package/lib/meetings.service.d.ts +2 -2
  29. package/lib/shared/groups-and-services.d.ts +39 -0
  30. package/lib/shared/index.d.ts +1 -0
  31. package/package.json +1 -1
@@ -60,6 +60,9 @@ export class MeetingSourceListRequest {
60
60
  if (typeof this.queriedSources !== 'undefined' && this.queriedSources !== null) {
61
61
  toReturn['queriedSources'] = 'toApiJson' in this.queriedSources ? this.queriedSources.toApiJson() : this.queriedSources;
62
62
  }
63
+ if (typeof this.namespace !== 'undefined') {
64
+ toReturn['namespace'] = this.namespace;
65
+ }
63
66
  return toReturn;
64
67
  }
65
68
  }
@@ -118,4 +121,4 @@ export class MeetingSourceQuery {
118
121
  return toReturn;
119
122
  }
120
123
  }
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVldGluZy1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tZWV0aW5nc19zZGsvc3JjL2xpYi9faW50ZXJuYWwvb2JqZWN0cy9tZWV0aW5nLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEtBQUssQ0FBQyxNQUFNLFVBQVUsQ0FBQztBQUU5QixNQUFNLFVBQVUsaUJBQWlCLENBQUksT0FBWSxFQUFFLEtBQWE7SUFDOUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxNQUFNLE9BQU8saUJBQWlCO0lBSzFCLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDaEMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsaUJBQWlCLENBQWtCLENBQUMsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQUM7UUFDakcsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxpQkFBaUIsQ0FBd0IsQ0FBQyxDQUFDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUFDO1FBQzdHLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBcUM7UUFDN0MsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7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SSxPQUFPLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7U0FBQztRQUM1RyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIE9iamVjdHMuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmltcG9ydCAqIGFzIGkgZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmltcG9ydCAqIGFzIGUgZnJvbSAnLi4vZW51bXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZW51bVN0cmluZ1RvVmFsdWU8RT4oZW51bVJlZjogYW55LCB2YWx1ZTogc3RyaW5nKTogRSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHJldHVybiBlbnVtUmVmW3ZhbHVlXTtcbn1cblxuZXhwb3J0IGNsYXNzIE1lZXRpbmdTb3VyY2VJbmZvIGltcGxlbWVudHMgaS5NZWV0aW5nU291cmNlSW5mb0ludGVyZmFjZSB7XG4gICAgc291cmNlOiBlLk1lZXRpbmdTb3VyY2U7XG4gICAgc3RhdHVzOiBlLk1lZXRpbmdTb3VyY2VTdGF0dXM7XG4gICAgY29ubmVjdERpc2Nvbm5lY3RVcmw6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IE1lZXRpbmdTb3VyY2VJbmZvIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgTWVldGluZ1NvdXJjZUluZm8oKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uc291cmNlKSB7bS5zb3VyY2UgPSBlbnVtU3RyaW5nVG9WYWx1ZTxlLk1lZXRpbmdTb3VyY2U+KGUuTWVldGluZ1NvdXJjZSwgcHJvdG8uc291cmNlKTt9XG4gICAgICAgIGlmIChwcm90by5zdGF0dXMpIHttLnN0YXR1cyA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuTWVldGluZ1NvdXJjZVN0YXR1cz4oZS5NZWV0aW5nU291cmNlU3RhdHVzLCBwcm90by5zdGF0dXMpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5NZWV0aW5nU291cmNlSW5mb0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNvdXJjZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc291cmNlJ10gPSB0aGlzLnNvdXJjZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zdGF0dXMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3N0YXR1cyddID0gdGhpcy5zdGF0dXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29ubmVjdERpc2Nvbm5lY3RVcmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Nvbm5lY3REaXNjb25uZWN0VXJsJ10gPSB0aGlzLmNvbm5lY3REaXNjb25uZWN0VXJsO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1lZXRpbmdTb3VyY2VMaXN0UmVxdWVzdCBpbXBsZW1lbnRzIGkuTWVldGluZ1NvdXJjZUxpc3RSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBpYW1Vc2VySWQ6IHN0cmluZztcbiAgICBxdWVyaWVkU291cmNlczogTWVldGluZ1NvdXJjZVF1ZXJ5W107XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBNZWV0aW5nU291cmNlTGlzdFJlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBNZWV0aW5nU291cmNlTGlzdFJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8ucXVlcmllZFNvdXJjZXMpIHttLnF1ZXJpZWRTb3VyY2VzID0gcHJvdG8ucXVlcmllZFNvdXJjZXMubWFwKE1lZXRpbmdTb3VyY2VRdWVyeS5mcm9tUHJvdG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5NZWV0aW5nU291cmNlTGlzdFJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pYW1Vc2VySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lhbVVzZXJJZCddID0gdGhpcy5pYW1Vc2VySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucXVlcmllZFNvdXJjZXMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMucXVlcmllZFNvdXJjZXMgIT09IG51bGwpIHt0b1JldHVyblsncXVlcmllZFNvdXJjZXMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMucXVlcmllZFNvdXJjZXMgPyAodGhpcy5xdWVyaWVkU291cmNlcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5xdWVyaWVkU291cmNlczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNZWV0aW5nU291cmNlTGlzdFJlc3BvbnNlIGltcGxlbWVudHMgaS5NZWV0aW5nU291cmNlTGlzdFJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBpYW1Vc2VySWQ6IHN0cmluZztcbiAgICBzb3VyY2VJbmZvOiBNZWV0aW5nU291cmNlSW5mb1tdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTWVldGluZ1NvdXJjZUxpc3RSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IE1lZXRpbmdTb3VyY2VMaXN0UmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uc291cmNlSW5mbykge20uc291cmNlSW5mbyA9IHByb3RvLnNvdXJjZUluZm8ubWFwKE1lZXRpbmdTb3VyY2VJbmZvLmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLk1lZXRpbmdTb3VyY2VMaXN0UmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pYW1Vc2VySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lhbVVzZXJJZCddID0gdGhpcy5pYW1Vc2VySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc291cmNlSW5mbyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5zb3VyY2VJbmZvICE9PSBudWxsKSB7dG9SZXR1cm5bJ3NvdXJjZUluZm8nXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuc291cmNlSW5mbyA/ICh0aGlzLnNvdXJjZUluZm8gYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuc291cmNlSW5mbzt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNZWV0aW5nU291cmNlUXVlcnkgaW1wbGVtZW50cyBpLk1lZXRpbmdTb3VyY2VRdWVyeUludGVyZmFjZSB7XG4gICAgc291cmNlOiBlLk1lZXRpbmdTb3VyY2U7XG4gICAgY29ubmVjdE5leHRVcmw6IHN0cmluZztcbiAgICBkaXNjb25uZWN0TmV4dFVybDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTWVldGluZ1NvdXJjZVF1ZXJ5IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgTWVldGluZ1NvdXJjZVF1ZXJ5KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnNvdXJjZSkge20uc291cmNlID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5NZWV0aW5nU291cmNlPihlLk1lZXRpbmdTb3VyY2UsIHByb3RvLnNvdXJjZSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLk1lZXRpbmdTb3VyY2VRdWVyeUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNvdXJjZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc291cmNlJ10gPSB0aGlzLnNvdXJjZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25uZWN0TmV4dFVybCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY29ubmVjdE5leHRVcmwnXSA9IHRoaXMuY29ubmVjdE5leHRVcmw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGlzY29ubmVjdE5leHRVcmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Rpc2Nvbm5lY3ROZXh0VXJsJ10gPSB0aGlzLmRpc2Nvbm5lY3ROZXh0VXJsO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuIl19
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVldGluZy1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tZWV0aW5nc19zZGsvc3JjL2xpYi9faW50ZXJuYWwvb2JqZWN0cy9tZWV0aW5nLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEtBQUssQ0FBQyxNQUFNLFVBQVUsQ0FBQztBQUU5QixNQUFNLFVBQVUsaUJBQWlCLENBQUksT0FBWSxFQUFFLEtBQWE7SUFDOUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxNQUFNLE9BQU8saUJBQWlCO0lBSzFCLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDaEMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsaUJBQWlCLENBQWtCLENBQUMsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQUM7UUFDakcsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxpQkFBaUIsQ0FBd0IsQ0FBQyxDQUFDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUFDO1FBQzdHLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBcUM7UUFDN0MsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7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T0FBTyxJQUFJLENBQUMsY0FBYyxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7U0FBQztRQUNuRyxJQUFJLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztTQUFDO1FBQzVHLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gT2JqZWN0cy5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaW1wb3J0ICogYXMgaSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuaW1wb3J0ICogYXMgZSBmcm9tICcuLi9lbnVtcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnVtU3RyaW5nVG9WYWx1ZTxFPihlbnVtUmVmOiBhbnksIHZhbHVlOiBzdHJpbmcpOiBFIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIGVudW1SZWZbdmFsdWVdO1xufVxuXG5leHBvcnQgY2xhc3MgTWVldGluZ1NvdXJjZUluZm8gaW1wbGVtZW50cyBpLk1lZXRpbmdTb3VyY2VJbmZvSW50ZXJmYWNlIHtcbiAgICBzb3VyY2U6IGUuTWVldGluZ1NvdXJjZTtcbiAgICBzdGF0dXM6IGUuTWVldGluZ1NvdXJjZVN0YXR1cztcbiAgICBjb25uZWN0RGlzY29ubmVjdFVybDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTWVldGluZ1NvdXJjZUluZm8ge1xuICAgICAgICBsZXQgbSA9IG5ldyBNZWV0aW5nU291cmNlSW5mbygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5zb3VyY2UpIHttLnNvdXJjZSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuTWVldGluZ1NvdXJjZT4oZS5NZWV0aW5nU291cmNlLCBwcm90by5zb3VyY2UpO31cbiAgICAgICAgaWYgKHByb3RvLnN0YXR1cykge20uc3RhdHVzID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5NZWV0aW5nU291cmNlU3RhdHVzPihlLk1lZXRpbmdTb3VyY2VTdGF0dXMsIHByb3RvLnN0YXR1cyk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLk1lZXRpbmdTb3VyY2VJbmZvSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc291cmNlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzb3VyY2UnXSA9IHRoaXMuc291cmNlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN0YXR1cyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc3RhdHVzJ10gPSB0aGlzLnN0YXR1czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25uZWN0RGlzY29ubmVjdFVybCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY29ubmVjdERpc2Nvbm5lY3RVcmwnXSA9IHRoaXMuY29ubmVjdERpc2Nvbm5lY3RVcmw7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTWVldGluZ1NvdXJjZUxpc3RSZXF1ZXN0IGltcGxlbWVudHMgaS5NZWV0aW5nU291cmNlTGlzdFJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGlhbVVzZXJJZDogc3RyaW5nO1xuICAgIHF1ZXJpZWRTb3VyY2VzOiBNZWV0aW5nU291cmNlUXVlcnlbXTtcbiAgICBuYW1lc3BhY2U6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IE1lZXRpbmdTb3VyY2VMaXN0UmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IE1lZXRpbmdTb3VyY2VMaXN0UmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5xdWVyaWVkU291cmNlcykge20ucXVlcmllZFNvdXJjZXMgPSBwcm90by5xdWVyaWVkU291cmNlcy5tYXAoTWVldGluZ1NvdXJjZVF1ZXJ5LmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLk1lZXRpbmdTb3VyY2VMaXN0UmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlhbVVzZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWFtVXNlcklkJ10gPSB0aGlzLmlhbVVzZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5xdWVyaWVkU291cmNlcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5xdWVyaWVkU291cmNlcyAhPT0gbnVsbCkge3RvUmV0dXJuWydxdWVyaWVkU291cmNlcyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5xdWVyaWVkU291cmNlcyA/ICh0aGlzLnF1ZXJpZWRTb3VyY2VzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnF1ZXJpZWRTb3VyY2VzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm5hbWVzcGFjZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbmFtZXNwYWNlJ10gPSB0aGlzLm5hbWVzcGFjZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNZWV0aW5nU291cmNlTGlzdFJlc3BvbnNlIGltcGxlbWVudHMgaS5NZWV0aW5nU291cmNlTGlzdFJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBpYW1Vc2VySWQ6IHN0cmluZztcbiAgICBzb3VyY2VJbmZvOiBNZWV0aW5nU291cmNlSW5mb1tdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTWVldGluZ1NvdXJjZUxpc3RSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IE1lZXRpbmdTb3VyY2VMaXN0UmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uc291cmNlSW5mbykge20uc291cmNlSW5mbyA9IHByb3RvLnNvdXJjZUluZm8ubWFwKE1lZXRpbmdTb3VyY2VJbmZvLmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLk1lZXRpbmdTb3VyY2VMaXN0UmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pYW1Vc2VySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lhbVVzZXJJZCddID0gdGhpcy5pYW1Vc2VySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc291cmNlSW5mbyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5zb3VyY2VJbmZvICE9PSBudWxsKSB7dG9SZXR1cm5bJ3NvdXJjZUluZm8nXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuc291cmNlSW5mbyA/ICh0aGlzLnNvdXJjZUluZm8gYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuc291cmNlSW5mbzt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNZWV0aW5nU291cmNlUXVlcnkgaW1wbGVtZW50cyBpLk1lZXRpbmdTb3VyY2VRdWVyeUludGVyZmFjZSB7XG4gICAgc291cmNlOiBlLk1lZXRpbmdTb3VyY2U7XG4gICAgY29ubmVjdE5leHRVcmw6IHN0cmluZztcbiAgICBkaXNjb25uZWN0TmV4dFVybDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTWVldGluZ1NvdXJjZVF1ZXJ5IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgTWVldGluZ1NvdXJjZVF1ZXJ5KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnNvdXJjZSkge20uc291cmNlID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5NZWV0aW5nU291cmNlPihlLk1lZXRpbmdTb3VyY2UsIHByb3RvLnNvdXJjZSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLk1lZXRpbmdTb3VyY2VRdWVyeUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNvdXJjZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc291cmNlJ10gPSB0aGlzLnNvdXJjZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25uZWN0TmV4dFVybCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY29ubmVjdE5leHRVcmwnXSA9IHRoaXMuY29ubmVjdE5leHRVcmw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGlzY29ubmVjdE5leHRVcmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Rpc2Nvbm5lY3ROZXh0VXJsJ10gPSB0aGlzLmRpc2Nvbm5lY3ROZXh0VXJsO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuIl19
@@ -2,7 +2,7 @@ import { Injectable } from '@angular/core';
2
2
  import { of } from 'rxjs';
3
3
  import { map, mapTo } from 'rxjs/operators';
4
4
  import { ListBookedMeetingsRequestFilters, MeetingHostApiService, PagedRequestOptions, TimeRange, TimeZone } from '../_internal';
5
- import { CalendarFromApi, getFieldMask, meetingFromApi, MeetingTypeFromApi, MeetingTypeToApi, PagedResponse, PreferencesFromApi } from '../shared';
5
+ import { CalendarFromApi, getFieldMask, GroupFromApi, GroupTypeToAPi, meetingFromApi, MeetingTypeFromApi, MeetingTypeToApi, PagedResponse, PreferencesFromApi, ServiceFromApi, ServiceTypeToApi } from '../shared';
6
6
  import { getBookingUrlImplementation, getGeneralBookingUrlImplementation } from './url';
7
7
  import { hostUserFromApi } from '../shared/host-user';
8
8
  import { Environment, onProductionGlobal } from "../shared/environment";
@@ -313,6 +313,74 @@ export class HostService {
313
313
  sendMeetingRequestEmail(req) {
314
314
  return this.hostAPIService.sendMeetingRequestEmail(req);
315
315
  }
316
+ createService(req) {
317
+ const fieldMask = getFieldMask({ o: req.service, updateFields: req.updateFields });
318
+ if (fieldMask.paths.length === 0) {
319
+ return of();
320
+ }
321
+ return this.hostAPIService.createService({
322
+ service: ServiceTypeToApi({ service: req.service }),
323
+ fieldMask,
324
+ hostId: req.HostId
325
+ }).pipe(map(res => res.id));
326
+ }
327
+ updateService(req) {
328
+ const fieldMask = getFieldMask({ o: req.service, updateFields: req.updateFields });
329
+ if (fieldMask.paths.length === 0) {
330
+ return of();
331
+ }
332
+ return this.hostAPIService.updateService({
333
+ id: req.id,
334
+ service: ServiceTypeToApi({ service: req.service }),
335
+ fieldMask,
336
+ hostId: req.HostId
337
+ }).pipe(mapTo(undefined));
338
+ }
339
+ deleteService(req) {
340
+ return this.hostAPIService.deleteService({ id: req.id }).pipe(mapTo(undefined));
341
+ }
342
+ listServices(req) {
343
+ return this.hostAPIService.listServices({ hostId: req.hostId }).pipe(map(res => {
344
+ if (!res || !res.services) {
345
+ return [];
346
+ }
347
+ return res.services.map(service => ServiceFromApi({ serviceApi: service }));
348
+ }));
349
+ }
350
+ createGroup(req) {
351
+ const fieldMask = getFieldMask({ o: req.group, updateFields: req.updateFields });
352
+ if (fieldMask.paths.length === 0) {
353
+ return of();
354
+ }
355
+ return this.hostAPIService.createGroup({
356
+ group: GroupTypeToAPi({ group: req.group }),
357
+ fieldMask,
358
+ hostId: req.HostId
359
+ }).pipe(map(res => res.id));
360
+ }
361
+ updateGroup(req) {
362
+ const fieldMask = getFieldMask({ o: req.group, updateFields: req.updateFields });
363
+ if (fieldMask.paths.length === 0) {
364
+ return of();
365
+ }
366
+ return this.hostAPIService.updateGroup({
367
+ id: req.id,
368
+ group: GroupTypeToAPi({ group: req.group }),
369
+ fieldMask,
370
+ hostId: req.HostId
371
+ }).pipe(mapTo(undefined));
372
+ }
373
+ deleteGroup(req) {
374
+ return this.hostAPIService.deleteGroup({ id: req.id }).pipe(mapTo(undefined));
375
+ }
376
+ listGroups(req) {
377
+ return this.hostAPIService.listGroups({ hostId: req.hostId }).pipe(map(res => {
378
+ if (!res || !res.groups) {
379
+ return [];
380
+ }
381
+ return res.groups.map(group => GroupFromApi({ groupApi: group }));
382
+ }));
383
+ }
316
384
  }
317
385
  HostService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: HostService, deps: [{ token: i1.MeetingHostApiService }], target: i0.ɵɵFactoryTarget.Injectable });
318
386
  HostService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: HostService, providedIn: 'root' });
@@ -320,4 +388,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImpor
320
388
  type: Injectable,
321
389
  args: [{ providedIn: 'root' }]
322
390
  }], ctorParameters: function () { return [{ type: i1.MeetingHostApiService }]; } });
323
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbWVldGluZ3Nfc2RrL3NyYy9saWIvaG9zdC9ob3N0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFTLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQWEsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQVNILGdDQUFnQyxFQUdoQyxxQkFBcUIsRUFDckIsbUJBQW1CLEVBRW5CLFNBQVMsRUFFVCxRQUFRLEVBR1gsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUlILGVBQWUsRUFDZixZQUFZLEVBR1osY0FBYyxFQUdkLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsYUFBYSxFQUViLGtCQUFrQixFQUNyQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUMsMkJBQTJCLEVBQUUsa0NBQWtDLEVBQUMsTUFBTSxPQUFPLENBQUM7QUFDdEYsT0FBTyxFQUFXLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFBO0FBQzdELE9BQU8sRUFBQyxXQUFXLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBS3RFLE1BQU0sT0FBTyxXQUFXO0lBQ3BCLFlBQ1ksY0FBcUM7UUFBckMsbUJBQWMsR0FBZCxjQUFjLENBQXVCO0lBRWpELENBQUM7SUFFRCxrSEFBa0g7SUFDbEgsV0FBVyxDQUFDLEdBQXNGO1FBQzlGLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUM7WUFDL0IsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNO1lBQ2xCLHdGQUF3RjtZQUN4Riw0QkFBNEIsRUFBRSxHQUFHLENBQUMsNEJBQWdFO1NBQ3JHLENBQ0osQ0FBQyxJQUFJLENBQUMsR0FBRyxD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LENBQUM7O3dHQXpaUSxXQUFXOzRHQUFYLFdBQVcsY0FEQyxNQUFNOzJGQUNsQixXQUFXO2tCQUR2QixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIG1hcFRvfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICAgIENyZWF0ZUNhbGVuZGFyUmVxdWVzdEludGVyZmFjZSxcbiAgICBDcmVhdGVDYWxlbmRhclJlc3BvbnNlLFxuICAgIERheU9mV2VlayxcbiAgICBHZXRIb3N0TWVldGluZ1Jlc3BvbnNlLFxuICAgIEhvc3RCb29rTWVldGluZ1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgSG9zdEJvb2tNZWV0aW5nUmVzcG9uc2UsIElzQ2FsZW5kYXJDb25maWd1cmVkUmVxdWVzdEludGVyZmFjZSwgSXNDYWxlbmRhckNvbmZpZ3VyZWRSZXNwb25zZSxcbiAgICBJc0hvc3RDb25maWd1cmVkUmVzcG9uc2UsXG4gICAgTGlzdEF2YWlsYWJpbGl0eVJlcXVlc3RGaWx0ZXJzSW50ZXJmYWNlLFxuICAgIExpc3RCb29rZWRNZWV0aW5nc1JlcXVlc3RGaWx0ZXJzLFxuICAgIExpc3RCb29rZWRNZWV0aW5nc1JlcXVlc3RGaWx0ZXJzSW50ZXJmYWNlLFxuICAgIExpc3RCb29rZWRNZWV0aW5nc1Jlc3BvbnNlLFxuICAgIE1lZXRpbmdIb3N0QXBpU2VydmljZSxcbiAgICBQYWdlZFJlcXVlc3RPcHRpb25zLFxuICAgIFBhZ2VkUmVxdWVzdE9wdGlvbnNJbnRlcmZhY2UsIFNlbmRNZWV0aW5nUmVxdWVzdEVtYWlsUmVxdWVzdEludGVyZmFjZSxcbiAgICBUaW1lUmFuZ2UsXG4gICAgVGltZVJhbmdlSW50ZXJmYWNlLFxuICAgIFRpbWVab25lLFxuICAgIFRpbWVab25lSW50ZXJmYWNlLFxuICAgIFdlZWtkYXlBdmFpbGFiaWxpdHlcbn0gZnJvbSAnLi4vX2ludGVybmFsJztcbmltcG9ydCB7XG4gICAgQXBwbGljYXRpb25Db250ZXh0UHJvcGVydGllc1NldCxcbiAgICBBdmFpbGFiaWxpdHlSdWxlLFxuICAgIENhbGVuZGFyLFxuICAgIENhbGVuZGFyRnJvbUFwaSxcbiAgICBnZXRGaWVsZE1hc2ssXG4gICAgSG9zdFVybE1hcCxcbiAgICBNZWV0aW5nLFxuICAgIG1lZXRpbmdGcm9tQXBpLFxuICAgIE1lZXRpbmdNZXRhZGF0YSxcbiAgICBNZWV0aW5nVHlwZSxcbiAgICBNZWV0aW5nVHlwZUZyb21BcGksXG4gICAgTWVldGluZ1R5cGVUb0FwaSxcbiAgICBQYWdlZFJlc3BvbnNlLFxuICAgIFByZWZlcmVuY2VzLFxuICAgIFByZWZlcmVuY2VzRnJvbUFwaVxufSBmcm9tICcuLi9zaGFyZWQnO1xuaW1wb3J0IHtnZXRCb29raW5nVXJsSW1wbGVtZW50YXRpb24sIGdldEdlbmVyYWxCb29raW5nVXJsSW1wbGVtZW50YXRpb259IGZyb20gJy4vdXJsJztcbmltcG9ydCB7SG9zdFVzZXIsIGhvc3RVc2VyRnJvbUFwaX0gZnJvbSAnLi4vc2hhcmVkL2hvc3QtdXNlcidcbmltcG9ydCB7RW52aXJvbm1lbnQsIG9uUHJvZHVjdGlvbkdsb2JhbH0gZnJvbSBcIi4uL3NoYXJlZC9lbnZpcm9ubWVudFwiO1xuaW1wb3J0IHsgSHR0cFJlc3BvbnNlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcblxuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBIb3N0U2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaG9zdEFQSVNlcnZpY2U6IE1lZXRpbmdIb3N0QXBpU2VydmljZSxcbiAgICApIHtcbiAgICB9XG5cbiAgICAvLyBVc2UgYnVpbGRIb3N0SWQgdG8gZ2V0IGFuIGlkZW50aWZpZXIgdGhhdCBjYW4gYmUgdXNlZCBpbiBzdWJzZXF1ZW50IHJlcXVlc3RzLiBTZWUgdmVuZGFzdGFhcGlzIGZvciBtb3JlIGRldGFpbHNcbiAgICBidWlsZEhvc3RJZChyZXE6IHsgdXNlcklkOiBzdHJpbmcsIGFwcGxpY2F0aW9uQ29udGV4dFByb3BlcnRpZXM6IEFwcGxpY2F0aW9uQ29udGV4dFByb3BlcnRpZXNTZXQgfSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLmJ1aWxkSG9zdElkKHtcbiAgICAgICAgICAgICAgICB1c2VySWQ6IHJlcS51c2VySWQsXG4gICAgICAgICAgICAgICAgLy8gR3Jvc3MgdHlwZWNhc3QgZXhpc3RzIGJlY2F1c2UgSSB3YW50IHRvIHJlc3RyaWN0IHRoZSBwcm9wZXJ0aWVzIG9uIHRoZSBtYXAgKGZvciBub3cpLlxuICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uQ29udGV4dFByb3BlcnRpZXM6IHJlcS5hcHBsaWNhdGlvbkNvbnRleHRQcm9wZXJ0aWVzIGFzIGFueSBhcyB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XG4gICAgICAgICAgICB9XG4gICAgICAgICkucGlwZShtYXAocmVzID0+IHJlcy5ob3N0SWQgfHwgJycpKTtcbiAgICB9XG5cbiAgICBkb2VzQ2FsZW5kYXJFeGlzdChjYWxlbmRhcklkZW50aWZpZXI6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5kb2VzQ2FsZW5kYXJFeGlzdCh7Y2FsZW5kYXJJZGVudGlmaWVyOiBjYWxlbmRhcklkZW50aWZpZXJ9KS5waXBlKFxuICAgICAgICAgICAgbWFwKHJlc3AgPT4gcmVzcC5leGlzdHMpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0Q2FsZW5kYXIocmVxOiB7IGNhbGVuZGFySWQ6IHN0cmluZyB9KTogT2JzZXJ2YWJsZTxDYWxlbmRhcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5nZXRDYWxlbmRhcih7Y2FsZW5kYXJJZDogcmVxLmNhbGVuZGFySWR9KS5waXBlKFxuICAgICAgICAgICAgbWFwKHJlcyA9PiBDYWxlbmRhckZyb21BcGkocmVzPy5jYWxlbmRhcikpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZW5zdXJlUGVyc29uYWxDYWxlbmRhckV4aXN0cyhyZXE6IHtcbiAgICAgICAgdXNlcklkOiBzdHJpbmcsXG4gICAgICAgIGFwcGxpY2F0aW9uQ29udGV4dFByb3BlcnRpZXM6IEFwcGxpY2F0aW9uQ29udGV4dFByb3BlcnRpZXNTZXRcbiAgICB9KTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UuZW5zdXJlUGVyc29uYWxDYWxlbmRhckV4aXN0cyh7XG4gICAgICAgICAgICB1c2VySWQ6IHJlcS51c2VySWQsXG4gICAgICAgICAgICBhcHBsaWNhdGlvbkNvbnRleHRQcm9wZXJ0aWVzOiByZXEuYXBwbGljYXRpb25Db250ZXh0UHJvcGVydGllcyBhcyBhbnkgYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSxcbiAgICAgICAgfSkucGlwZShtYXAocmVzID0+IHJlcyA/IHJlcy5jYWxlbmRhcklkIDogJycpKTtcbiAgICB9XG5cbiAgICBlbnN1cmVHcm91cENhbGVuZGFyc0V4aXN0KHJlcTogeyBleHRlcm5hbElkczogc3RyaW5nW10gfSk6IE9ic2VydmFibGU8c3RyaW5nW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UuZW5zdXJlR3JvdXBDYWxlbmRhcnNFeGlzdCh7ZXh0ZXJuYWxJZHM6IHJlcS5leHRlcm5hbElkc30pLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzID0+IHJlcz8uY2FsZW5kYXJJZHMgfHwgW10pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLypcbiAgICAgY3JlYXRlQ2FsZW5kYXIgY3JlYXRlcyBhIGNhbGVuZGFyIHdoaWNoIG1lZXRpbmcgdHlwZXMgY2FuIGJlIGNyZWF0ZWQgZm9yIGFuZCBldmVudHMgY2FuIGJlIGJvb2tlZCBvblxuICAgICBUaGUgZmllbGRzIG9mIGEgY2FsZW5kYXIgYXJlIGRvY3VtZW50ZWQgaW4gaHR0cHM6Ly9naXRodWIuY29tL3ZlbmRhc3RhL3ZlbmRhc3RhYXBpcy9ibG9iL21hc3Rlci9tZWV0aW5ncy92MS9zaGFyZWQucHJvdG9cbiAgICAqL1xuICAgIGNyZWF0ZUNhbGVuZGFyKHJlcTogQ3JlYXRlQ2FsZW5kYXJSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxDcmVhdGVDYWxlbmRhclJlc3BvbnNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLmNyZWF0ZUNhbGVuZGFyKHJlcSk7XG4gICAgfVxuXG4gICAgdXBkYXRlQ2FsZW5kYXJTbHVnKGNhbGVuZGFySWQ6IHN0cmluZywgbmV3U2x1Zzogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLnVwZGF0ZUNhbGVuZGFyKHtcbiAgICAgICAgICAgIGNhbGVuZGFySWQ6IGNhbGVuZGFySWQsXG4gICAgICAgICAgICBjYWxlbmRhclVwZGF0ZToge3NsdWc6IG5ld1NsdWd9LFxuICAgICAgICAgICAgZmllbGRNYXNrOiB7cGF0aHM6IFsnc2x1ZyddfSxcbiAgICAgICAgfSkucGlwZShtYXBUbyh1bmRlZmluZWQpKTtcbiAgICB9XG5cbiAgICB1cGRhdGVDYWxlbmRhckhvc3RVc2VySURzKGNhbGVuZGFySWQ6IHN0cmluZywgcmVwbGFjZW1lbnRIb3N0VXNlcklkczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UudXBkYXRlQ2FsZW5kYXIoe1xuICAgICAgICAgICAgY2FsZW5kYXJJZDogY2FsZW5kYXJJZCxcbiAgICAgICAgICAgIGNhbGVuZGFyVXBkYXRlOiB7aG9zdFVzZXJJZHM6IHJlcGxhY2VtZW50SG9zdFVzZXJJZHN9LFxuICAgICAgICAgICAgZmllbGRNYXNrOiB7cGF0aHM6IFsnaG9zdF91c2VyX2lkcyddfSxcbiAgICAgICAgfSkucGlwZShtYXBUbyh1bmRlZmluZWQpKTtcbiAgICB9XG5cbiAgICBnZXRNZWV0aW5nVHlwZXNGb3JDYWxlbmRhcnMocmVxOiB7XG4gICAgICAgIGNhbGVuZGFySWRzOiBzdHJpbmdbXSxcbiAgICAgICAgbWV0YWRhdGE6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9XG4gICAgfSk6IE9ic2VydmFibGU8eyBbY2FsZW5kYXJJZDogc3RyaW5nXTogTWVldGluZ1R5cGVbXSB9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLmdldE1lZXRpbmdUeXBlc0ZvckNhbGVuZGFycyh7Y2FsZW5kYXJJZHM6IHJlcS5jYWxlbmRhcklkc30pLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXJlcz8uY2FsZW5kYXJNZWV0aW5nVHlwZXNNYXApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMocmVzLmNhbGVuZGFyTWVldGluZ1R5cGVzTWFwKS5yZWR1Y2UoKGNhbGVuZGFyVG9NZWV0aW5nVHlwZU1hcCwgY2FsZW5kYXJJZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtZWV0aW5nVHlwZXMgPSAocmVzLmNhbGVuZGFyTWVldGluZ1R5cGVzTWFwW2NhbGVuZGFySWRdPy5tZWV0aW5nVHlwZXMgfHwgW10pLm1hcChtdCA9PiBNZWV0aW5nVHlwZUZyb21BcGkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbWVldGluZ1R5cGVBcGk6IG10LFxuICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ6IG9uUHJvZHVjdGlvbkdsb2JhbCgpID8gRW52aXJvbm1lbnQuUFJPRCA6IEVudmlyb25tZW50LkRFTU8sXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhcklkLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGE6IHJlcS5tZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uY2FsZW5kYXJUb01lZXRpbmdUeXBlTWFwLFxuICAgICAgICAgICAgICAgICAgICAgICAgW2NhbGVuZGFySWRdOiBtZWV0aW5nVHlwZXMsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSwge30gYXMgeyBbY2FsZW5kYXJJZDogc3RyaW5nXTogTWVldGluZ1R5cGVbXSB9KVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgIH1cblxuICAgIC8qXG4gICAgIGxpc3RNZWV0aW5nVHlwZXMgcmV0dXJucyBhIGxpc3Qgb2YgbWVldGluZyB0eXBlcyBmb3IgYSBob3N0XG4gICAgIEBwYXJhbSBob3N0SWQ6IEFuIGlkZW50aWZpZXIgZm9yIGFuIGluZGl2aWR1YWwgaG9zdFxuICAgICBAcGFyYW0gbWV0YWRhdGE6IG9wdGlvbmFsIG1ldGFkYXRhIHRvIGluY2x1ZGUgb24gdGhlIG1lZXRpbmcgdHlwZSBib29raW5nIGxpbmtcbiAgICAgQHBhcmFtIGNhbGVuZGFyU2x1ZzogdXNlZCB0byByZXBsYWNlIGhvc3RJZCBpbiB0aGUgdXJsLiBVc2UgaXQgd2hlbiB5b3UgYXJlIGNvbmZpZGVudCB5b3Uga25vdyB0aGUgaG9zdCdzIHNsdWcuXG4gICAgICAgIC0gY2FsZW5kYXJTbHVnIElTIE5PVCBVU0VEIFRPIFJFVFJJRVZFIE1FRVRJTkcgVFlQRVMsIE9OTFkgVE8gTUFLRSBUSEUgQk9PS0lORyBVUkxTXG4gICAgKi9cbiAgICBsaXN0TWVldGluZ1R5cGVzKHJlcToge1xuICAgICAgICBob3N0SWQ6IHN0cmluZyxcbiAgICAgICAgbWV0YWRhdGE/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfVxuICAgICAgICBjYWxlbmRhclNsdWc/OiBzdHJpbmcsXG4gICAgfSk6IE9ic2VydmFibGU8TWVldGluZ1R5cGVbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5saXN0TWVldGluZ1R5cGVzKHJlcSkucGlwZShcbiAgICAgICAgICAgIG1hcChyZXNwID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3AgfHwgIXJlc3AubWVldGluZ1R5cGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3AubWVldGluZ1R5cGVzLm1hcChtdCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBNZWV0aW5nVHlwZUZyb21BcGkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbWVldGluZ1R5cGVBcGk6IG10LFxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJJZDogcmVxLmhvc3RJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50OiBvblByb2R1Y3Rpb25HbG9iYWwoKSA/IEVudmlyb25tZW50LlBST0QgOiBFbnZpcm9ubWVudC5ERU1PLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGE6IHJlcS5tZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyU2x1ZzogcmVxLmNhbGVuZGFyU2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgfVxuXG4gICAgLypcbiAgICAgZ2V0Qm9va2luZ1VybCByZXR1cm5zIGEgbGluayB0aGF0IGNhbiBiZSB1c2VkIHRvIGJvb2sgYSBtZWV0aW5nIHdpdGggdGhpcyBob3N0LlxuICAgICBAcGFyYW0gY2FsZW5kYXJJZDogQW4gaWRlbnRpZmllciBmb3IgYW4gaW5kaXZpZHVhbCBob3N0IG9yIGdyb3VwaW5nIG9mIGhvc3RzIChpLmUuLCB0ZWFtKS5cbiAgICAgQHBhcmFtIEBkZXByZWNhdGVkIGhvc3RJZDogQW4gaWRlbnRpZmllciBmb3IgYW4gaW5kaXZpZHVhbCBob3N0LlxuICAgICBAcGFyYW0gbWVldGluZ1R5cGVJZDogQW4gb3B0aW9uYWwgaWRlbnRpZmllciBmb3IgdGhlIG1lZXRpbmcgdHlwZS4gRGVmYXVsdDogMzAtbWludXRlcy5cbiAgICAgQHBhcmFtIG1ldGFkYXRhOiBvcHRpb25hbCBtZXRhZGF0YSB0byBpbmNsdWRlIGluIHRoZSB1cmwuXG4gICAgIC0gbWV0YWRhdGEgY2FuIGJlIHVzZWQgdG8gcHJlLWZpbGwgY2VydGFpbiBmb3JtIGZpZWxkcyBhbmQgd2lsbCBiZSBzdG9yZWQgZHVyaW5nIHRoZSBib29raW5nIHByb2Nlc3MuXG4gICAgIC0gbWV0YWRhdGEgY2FuIGJlIG9idGFpbmVkIGJ5IHN1YnNjcmliaW5nIHRvIHRoZSBib29raW5nIGV2ZW50LlxuICAgIEBwYXJhbSBjYWxlbmRhclNsdWc6IHVzZWQgdG8gcmVwbGFjZSBob3N0SWQgaW4gdGhlIHVybC4gVXNlIGl0IHdoZW4geW91IGFyZSBjb25maWRlbnQgeW91IGtub3cgdGhlIGhvc3QncyBzbHVnLlxuICAgICAqL1xuICAgIGdldEJvb2tpbmdVcmwoXG4gICAgICAgIHJlcToge1xuICAgICAgICAgICAgLy8gQGRlcHJlY2F0ZWQ6IHVzZSBjYWxlbmRhcklkIGluc3RlYWQuIGNhbGVuZGFySWQgbm90IHJlcXVpcmVkIHRvIGF2b2lkIGJyZWFraW5nIGV4aXN0aW5nIGNsaWVudHMuXG4gICAgICAgICAgICBob3N0SWQ6IHN0cmluZyxcbiAgICAgICAgICAgIGNhbGVuZGFySWQ/OiBzdHJpbmcsXG4gICAgICAgICAgICAvLyBAZGVwcmVjYXRlZDogdXNlIG1lZXRpbmdUeXBlU2x1ZyBpbnN0ZWFkXG4gICAgICAgICAgICBtZWV0aW5nVHlwZUlkPzogc3RyaW5nLFxuICAgICAgICAgICAgbWVldGluZ1R5cGVTbHVnPzogc3RyaW5nLFxuICAgICAgICAgICAgbWV0YWRhdGE/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfSxcbiAgICAgICAgICAgIGNhbGVuZGFyU2x1Zz86IHN0cmluZyxcbiAgICAgICAgfSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBvZihnZXRCb29raW5nVXJsSW1wbGVtZW50YXRpb24oe1xuICAgICAgICAgICAgICAgIC4uLnJlcSxcbiAgICAgICAgICAgICAgICBjYWxlbmRhcklkOiByZXEuY2FsZW5kYXJJZCB8fCByZXEuaG9zdElkLFxuICAgICAgICAgICAgICAgIGVudmlyb25tZW50OiBvblByb2R1Y3Rpb25HbG9iYWwoKSA/IEVudmlyb25tZW50LlBST0QgOiBFbnZpcm9ubWVudC5ERU1PLFxuICAgICAgICAgICAgICAgIGNhbGVuZGFyU2x1ZzogcmVxLmNhbGVuZGFyU2x1ZyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLypcbiAgICAgZ2V0R2VuZXJhbEJvb2tpbmdVcmwgcmV0dXJucyBhIGxpbmsgdGhhdCBjYW4gYmUgdXNlZCB0byBzZWxlY3QgYSBtZWV0aW5nIHR5cGUgdG8gYm9vayB3aXRoIHRoZSBnaXZlbiBjYWxlbmRhci5cbiAgICAgQHBhcmFtIGNhbGVuZGFySWQ6IEFuIGlkZW50aWZpZXIgZm9yIGFuIGluZGl2aWR1YWwgaG9zdCBvciBncm91cGluZyBvZiBob3N0cyAoaS5lLiwgdGVhbSkuXG4gICAgIEBwYXJhbSBtZXRhZGF0YTogb3B0aW9uYWwgbWV0YWRhdGEgdG8gaW5jbHVkZSBpbiB0aGUgdXJsLlxuICAgICAtIG1ldGFkYXRhIGNhbiBiZSB1c2VkIHRvIHByZS1maWxsIGNlcnRhaW4gZm9ybSBmaWVsZHMgYW5kIHdpbGwgYmUgc3RvcmVkIGR1cmluZyB0aGUgYm9va2luZyBwcm9jZXNzLlxuICAgICAtIG1ldGFkYXRhIGNhbiBiZSBvYnRhaW5lZCBieSBzdWJzY3JpYmluZyB0byB0aGUgYm9va2luZyBldmVudC5cbiAgICAgQHBhcmFtIGNhbGVuZGFyU2x1ZzogdXNlZCB0byByZXBsYWNlIGhvc3RJZCBpbiB0aGUgdXJsLiBVc2UgaXQgd2hlbiB5b3UgYXJlIGNvbmZpZGVudCB5b3Uga25vdyB0aGUgaG9zdCdzIHNsdWcuXG4gICAgICovXG4gICAgZ2V0R2VuZXJhbEJvb2tpbmdVcmwocmVxOiB7XG4gICAgICAgIGNhbGVuZGFySWQ6IHN0cmluZyxcbiAgICAgICAgbWV0YWRhdGE/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfSxcbiAgICAgICAgY2FsZW5kYXJTbHVnPzogc3RyaW5nLFxuICAgIH0pOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gb2YoZ2V0R2VuZXJhbEJvb2tpbmdVcmxJbXBsZW1lbnRhdGlvbih7XG4gICAgICAgICAgICBlbnZpcm9ubWVudDogb25Qcm9kdWN0aW9uR2xvYmFsKCkgPyBFbnZpcm9ubWVudC5QUk9EIDogRW52aXJvbm1lbnQuREVNTyxcbiAgICAgICAgICAgIGNhbGVuZGFySWQ6IHJlcS5jYWxlbmRhcklkLFxuICAgICAgICAgICAgbWV0YWRhdGE6IHJlcS5tZXRhZGF0YSxcbiAgICAgICAgICAgIGNhbGVuZGFyU2x1ZzogcmVxLmNhbGVuZGFyU2x1ZyxcbiAgICAgICAgfSkpXG4gICAgfVxuXG4gICAgLypcbiAgICAgZ2V0Qm9va2luZ1VybHNNdWx0aSByZXR1cm5zIGEgbWFwcGluZyBvZiBob3N0cyAtPiBldmVudCB0eXBlcyAtPiBib29raW5nIGxpbmtzLlxuICAgICBAcGFyYW0gY2FsZW5kYXJJZDogQW4gaWRlbnRpZmllciBmb3IgYW4gaW5kaXZpZHVhbCBob3N0IG9yIGdyb3VwaW5nIG9mIGhvc3RzLlxuICAgICBAcGFyYW0gbWVldGluZ1R5cGVTbHVnOiBtZWV0aW5nVHlwZVNsdWdzIGFyZSBwYXNzZWQgaW4gdGhlIGZvcm0ge2hvc3RJZDogW21lZXRpbmdUeXBlU2x1ZzEsIG1lZXRpbmdUeXBlU2x1ZzJdfVxuICAgICBAcGFyYW0gbWV0YWRhdGE6IG9wdGlvbmFsIG1ldGFkYXRhIHRvIGluY2x1ZGUgaW4gdGhlIHVybC5cbiAgICAgLSBtZXRhZGF0YSBjYW4gYmUgdXNlZCB0byBwcmUtZmlsbCBjZXJ0YWluIGZvcm0gZmllbGRzIGFuZCB3aWxsIGJlIHN0b3JlZCBkdXJpbmcgdGhlIGJvb2tpbmcgcHJvY2Vzcy5cbiAgICAgLSBtZXRhZGF0YSBjYW4gYmUgb2J0YWluZWQgYnkgc3Vic2NyaWJpbmcgdG8gdGhlIGJvb2tpbmcgZXZlbnQuXG4gICAgIEBwYXJhbSBjYWxlbmRhclNsdWc6IHVzZWQgdG8gcmVwbGFjZSBob3N0SWQgaW4gdGhlIHVybC4gVXNlIGl0IHdoZW4geW91IGFyZSBjb25maWRlbnQgeW91IGtub3cgdGhlIGhvc3QncyBzbHVnLlxuICAgICAqL1xuICAgIGdldEJvb2tpbmdVcmxzTXVsdGkoXG4gICAgICAgIHJlcTogeyBbY2FsZW5kYXJJZDogc3RyaW5nXTogc3RyaW5nW10gfSxcbiAgICAgICAgbWV0YWRhdGE/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfSxcbiAgICAgICAgY2FsZW5kYXJTbHVnPzogc3RyaW5nXG4gICAgKTogT2JzZXJ2YWJsZTxIb3N0VXJsTWFwPiB7XG4gICAgICAgIHJldHVybiBvZihPYmplY3Qua2V5cyhyZXEpLnJlZHVjZSgoaG9zdE1hcCwgY2FsZW5kYXJJZCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5ob3N0TWFwLFxuICAgICAgICAgICAgICAgIFtjYWxlbmRhcklkXTogcmVxW2NhbGVuZGFySWRdLnJlZHVjZSgobWVldGluZ1R5cGVNYXAsIG1lZXRpbmdUeXBlU2x1ZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4ubWVldGluZ1R5cGVNYXAsXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWVldGluZ1R5cGVTbHVnXTogZ2V0Qm9va2luZ1VybEltcGxlbWVudGF0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhcklkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lZXRpbmdUeXBlU2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudDogb25Qcm9kdWN0aW9uR2xvYmFsKCkgPyBFbnZpcm9ubWVudC5QUk9EIDogRW52aXJvbm1lbnQuREVNTyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhclNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0sIHt9IGFzIHsgW21lZXRpbmdUeXBlSWQ6IHN0cmluZ106IHN0cmluZyB9KVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSwge30gYXMgSG9zdFVybE1hcCkpO1xuICAgIH1cblxuICAgIGlzSG9zdENvbmZpZ3VyZWQocmVxOiB7IGhvc3RJZDogc3RyaW5nIH0pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UuaXNIb3N0Q29uZmlndXJlZChyZXEpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3A6IElzSG9zdENvbmZpZ3VyZWRSZXNwb25zZSkgPT4gcmVzcC5pc0NvbmZpZ3VyZWQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc2V0R2VuZXJhbEF2YWlsYWJpbGl0eShyZXE6IHtcbiAgICAgICAgaG9zdElkOiBzdHJpbmcsXG4gICAgICAgIG1lZXRpbmdUeXBlSWQ6IHN0cmluZyxcbiAgICAgICAgLy8gQGRlcHJlY2F0ZWQ6IHVzZSB3ZWVrZGF5c0F2YWlsYWJpbGl0eSBpbnN0ZWFkXG4gICAgICAgIGRheXM/OiBEYXlPZldlZWtbXSxcbiAgICAgICAgLy8gQGRlcHJlY2F0ZWQ6IHVzZSB3ZWVrZGF5c0F2YWlsYWJpbGl0eSBpbnN0ZWFkXG4gICAgICAgIHRpbWVTbG90PzogVGltZVJhbmdlSW50ZXJmYWNlLFxuICAgICAgICB3ZWVrZGF5c0F2YWlsYWJpbGl0eT86IFdlZWtkYXlBdmFpbGFiaWxpdHlbXSxcbiAgICAgICAgdGltZVpvbmU6IFRpbWVab25lSW50ZXJmYWNlLFxuICAgIH0pOiBPYnNlcnZhYmxlPG51bGw+IHtcbiAgICAgICAgY29uc3QgYXBpUmVxID0ge1xuICAgICAgICAgICAgLi4ucmVxLFxuICAgICAgICAgICAgdGltZVpvbmU6IG5ldyBUaW1lWm9uZShyZXEudGltZVpvbmUpLFxuICAgICAgICB9XG4gICAgICAgIGlmIChyZXEudGltZVNsb3QpIHtcbiAgICAgICAgICAgIGFwaVJlcS50aW1lU2xvdCA9IG5ldyBUaW1lUmFuZ2UocmVxLnRpbWVTbG90KVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLnNldEdlbmVyYWxBdmFpbGFiaWxpdHkoYXBpUmVxKS5waXBlKG1hcFRvKG51bGwpKVxuICAgIH1cblxuICAgIGxpc3RCb29rZWRNZWV0aW5ncyhyZXE6IHtcbiAgICAgICAgZmlsdGVyczogTGlzdEJvb2tlZE1lZXRpbmdzUmVxdWVzdEZpbHRlcnNJbnRlcmZhY2UsXG4gICAgICAgIGN1cnNvcjogc3RyaW5nLFxuICAgICAgICBwYWdlU2l6ZTogbnVtYmVyLFxuICAgICAgICB0aW1lWm9uZTogVGltZVpvbmVJbnRlcmZhY2UsXG4gICAgfSk6IE9ic2VydmFibGU8UGFnZWRSZXNwb25zZTxNZWV0aW5nPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5saXN0Qm9va2VkTWVldGluZ3Moe1xuICAgICAgICAgICAgLi4ucmVxLFxuICAgICAgICAgICAgcGFnaW5nT3B0aW9uczogbmV3IFBhZ2VkUmVxdWVzdE9wdGlvbnMoe2N1cnNvcjogcmVxLmN1cnNvciwgcGFnZVNpemU6IHJlcS5wYWdlU2l6ZX0pLFxuICAgICAgICAgICAgZmlsdGVyczogbmV3IExpc3RCb29rZWRNZWV0aW5nc1JlcXVlc3RGaWx0ZXJzKHJlcS5maWx0ZXJzKSxcbiAgICAgICAgICAgIHRpbWVab25lOiBuZXcgVGltZVpvbmUocmVxLnRpbWVab25lKSxcbiAgICAgICAgfSkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzcDogTGlzdEJvb2tlZE1lZXRpbmdzUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtZWV0aW5ncyA9IChyZXNwLm1lZXRpbmdzIHx8IFtdKS5tYXAobWVldGluZyA9PiBtZWV0aW5nRnJvbUFwaShtZWV0aW5nKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQYWdlZFJlc3BvbnNlKG1lZXRpbmdzLCByZXNwLnBhZ2luZ01ldGFkYXRhLm5leHRDdXJzb3IsIHJlc3AucGFnaW5nTWV0YWRhdGEuaGFzTW9yZSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjYW5jZWxNZWV0aW5nKHJlcToge1xuICAgICAgICBtZWV0aW5nSWQ6IHN0cmluZyxcbiAgICAgICAgY2FuY2VsbGF0aW9uUmVhc29uOiBzdHJpbmdcbiAgICB9KTogT2JzZXJ2YWJsZTxudWxsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLmNhbmNlbE1lZXRpbmcoe1xuICAgICAgICAgICAgLi4ucmVxXG4gICAgICAgIH0pLnBpcGUobWFwVG8obnVsbCkpXG4gICAgfVxuXG4gICAgcmVzY2hlZHVsZU1lZXRpbmcocmVxOiB7XG4gICAgICAgIG1lZXRpbmdJZDogc3RyaW5nLFxuICAgICAgICBzdGFydDogRGF0ZVxuICAgIH0pOiBPYnNlcnZhYmxlPG51bGw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UucmVzY2hlZHVsZU1lZXRpbmcoe1xuICAgICAgICAgICAgLi4ucmVxXG4gICAgICAgIH0pLnBpcGUobWFwVG8obnVsbCkpXG4gICAgfVxuXG4gICAgbGlzdEF2YWlsYWJpbGl0eShyZXE6IHtcbiAgICAgICAgZmlsdGVyczogTGlzdEF2YWlsYWJpbGl0eVJlcXVlc3RGaWx0ZXJzSW50ZXJmYWNlLFxuICAgICAgICBwYWdpbmdPcHRpb25zOiBQYWdlZFJlcXVlc3RPcHRpb25zSW50ZXJmYWNlLFxuICAgICAgICB0aW1lWm9uZTogVGltZVpvbmVJbnRlcmZhY2UsXG4gICAgfSk6IE9ic2VydmFibGU8UGFnZWRSZXNwb25zZTxBdmFpbGFiaWxpdHlSdWxlPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5saXN0QXZhaWxhYmlsaXR5KHJlcSkucGlwZShcbiAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0cyA9IChyZXNwb25zZS5hdmFpbGFiaWxpdHlSdWxlcyB8fCBbXSkuZmlsdGVyKEJvb2xlYW4pLm1hcChhID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvc3RJZDogYS5ob3N0SWQgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZWV0aW5nVHlwZUlkOiBhLm1lZXRpbmdUeXBlSWQgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXk6IGEuZGF5LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGltZVNsb3Q6IGEudGltZVNsb3QsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lWm9uZTogYS50aW1lWm9uZSxcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUGFnZWRSZXNwb25zZShyZXN1bHRzLCByZXNwb25zZS5tZXRhZGF0YS5uZXh0Q3Vyc29yLCByZXNwb25zZS5tZXRhZGF0YS5oYXNNb3JlKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICB9XG5cbiAgICAvKiB1cGRhdGVQcmVmZXJlbmNlcyB3aWxsIHVwZGF0ZSB0aGUgaG9zdCdzIHByZWZlcmVuY2VzLlxuICAgICAqIEl0IGlzIGd1YXJhbnRlZWQgdG8gb25seSB1cGRhdGUgdGhlIGZpZWxkcyBwcm92aWRlZC5cbiAgICAgKiBGb3IgZXhhbXBsZTpcbiAgICAgKiAgdXBkYXRlUHJlZmVyZW5jZXMoe21lZXRpbmdJbnRlZ3JhdGlvbjogTWVldGluZ1NvdXJjZS5NRUVUSU5HX1NPVVJDRV9HT09HTEVfTUVFVH0pXG4gICAgICogIHdpbGwgb25seSB1cGRhdGUgdGhlIHByZWZlcmVuY2UgbWVldGluZ0ludGVncmF0aW9uIHRvIEdvb2dsZSBNZWV0LiBLZWVwaW5nIHRoZSBvdGhlciBwcmVmZXJlbmNlcyB0aGUgc2FtZS5cbiAgICAgKlxuICAgICAqIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gcHJvdmlkZSBhIGxpc3Qgb2Yga2V5cyB0byB1cGRhdGUgYXMgdGhlIHNlY29uZCBhcmd1bWVudC5cbiAgICAgKiBGb3IgZXhhbXBsZTpcbiAgICAgKiAgIHVwZGF0ZVByZWZlcmVuY2VzKHsuLi5vYmplY3Qgd2l0aCBhbGwgZmllbGRzfSwgWydtZWV0aW5nSW50ZWdyYXRpb24nXSlcbiAgICAgKiAgIHdpbGwgb25seSB1cGRhdGUgdGhlIGZpZWxkICdtZWV0aW5nSW50ZWdyYXRpb24nIHRvIHRoZSB2YWx1ZSBpbiBwcmVmZXJlbmNlcy5cbiAgICAgKlxuICAgICAqIENhbGxpbmcgd2l0aCBhbiBlbXB0eSBvYmplY3QgYW5kIG5vIGtleXMgaXMgYSBuby1vcCwgb3IgYW4gdW5kZWZpbmVkIG9iamVjdC5cbiAgICAgKiBDYWxsaW5nIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZmllbGRzIG5vdCBpbiBgUHJlZmVyZW5jZXNgIG9yIHdpdGggdXBkYXRlRmllbGRzIG5vdCBsaW5rZWQgdG8gcHJvcGVydGllcyBpblxuICAgICAqIGBQcmVmZXJlbmNlc2AgaXMgYW4gZXJyb3IuXG4gICAgICovXG4gICAgdXBkYXRlUHJlZmVyZW5jZXMocmVxOiB7IGhvc3RJZDogc3RyaW5nLCBwcmVmZXJlbmNlczogUGFydGlhbDxQcmVmZXJlbmNlcz4sIHVwZGF0ZUZpZWxkcz86IChrZXlvZiBQcmVmZXJlbmNlcylbXSB9KTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGZpZWxkTWFzayA9IGdldEZpZWxkTWFzayh7bzogcmVxLnByZWZlcmVuY2VzLCB1cGRhdGVGaWVsZHM6IHJlcS51cGRhdGVGaWVsZHN9KTtcbiAgICAgICAgaWYgKGZpZWxkTWFzay5wYXRocy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBvZigpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLnVwZGF0ZUhvc3RQcmVmZXJlbmNlcyh7XG4gICAgICAgICAgICBob3N0SWQ6IHJlcS5ob3N0SWQsXG4gICAgICAgICAgICBwcmVmZXJlbmNlczogcmVxLnByZWZlcmVuY2VzLFxuICAgICAgICAgICAgZmllbGRNYXNrLFxuICAgICAgICB9KS5waXBlKG1hcFRvKHVuZGVmaW5lZCkpO1xuICAgIH1cblxuICAgIGdldFByZWZlcmVuY2VzKHJlcTogeyBob3N0SWQ6IHN0cmluZyB9KTogT2JzZXJ2YWJsZTxQcmVmZXJlbmNlcz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5nZXRIb3N0UHJlZmVyZW5jZXMoe1xuICAgICAgICAgICAgaG9zdElkOiByZXEuaG9zdElkXG4gICAgICAgIH0pLnBpcGUobWFwKHJlc3BvbnNlID0+IFByZWZlcmVuY2VzRnJvbUFwaShyZXNwb25zZS5wcmVmZXJlbmNlcykpKVxuICAgIH1cblxuICAgIGdldE1lZXRpbmcobWVldGluZ0lkOiBzdHJpbmcsIGxvY2F0aW9uOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE1lZXRpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UuZ2V0SG9zdE1lZXRpbmcoe1xuICAgICAgICAgICAgbWVldGluZ0lkOiBtZWV0aW5nSWQsIGxvY2F0aW9uOiBsb2NhdGlvbixcbiAgICAgICAgfSkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzcDogR2V0SG9zdE1lZXRpbmdSZXNwb25zZSkgPT4gbWVldGluZ0Zyb21BcGkocmVzcC5tZWV0aW5nKSlcbiAgICAgICAgKVxuICAgIH1cblxuICAgIHVwZGF0ZU1lZXRpbmdNZXRhZGF0YShyZXE6IHsgbWVldGluZ0lkOiBzdHJpbmcsIG1ldGFkYXRhOiBNZWV0aW5nTWV0YWRhdGEgfSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS51cGRhdGVNZWV0aW5nTWV0YWRhdGEoe1xuICAgICAgICAgICAgbWVldGluZ0lkOiByZXEubWVldGluZ0lkLFxuICAgICAgICAgICAgbWV0YWRhdGE6IHJlcS5tZXRhZGF0YVxuICAgICAgICB9KS5waXBlKG1hcFRvKHVuZGVmaW5lZCkpO1xuICAgIH1cblxuICAgIGJvb2tNZWV0aW5nKHJlcTogSG9zdEJvb2tNZWV0aW5nUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLmJvb2tNZWV0aW5nKHJlcSkucGlwZShtYXAoKHJlc3A6IEhvc3RCb29rTWVldGluZ1Jlc3BvbnNlKSA9PiByZXNwLm1lZXRpbmdJZCkpO1xuICAgIH1cblxuICAgIC8vIGNyZWF0ZURlZmF1bHRNZWV0aW5nVHlwZXMgd2lsbCBjcmVhdGUgd2hhdCBNZWV0aW5nIFNjaGVkdWxlciBkZWVtcyB0byBiZSB0aGUgZGVmYXVsdCBtZWV0aW5nIHR5cGVzLlxuICAgIC8vIElmIHRoZSBjYWxlbmRhciBhbHJlYWR5IGhhcyBtZWV0aW5nIHR5cGVzLCB0aGlzIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBuby1vcC5cbiAgICBjcmVhdGVEZWZhdWx0TWVldGluZ1R5cGVzKHJlcTogeyBjYWxlbmRhcklkczogc3RyaW5nW10sIH0pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UuY3JlYXRlRGVmYXVsdE1lZXRpbmdUeXBlcyh7Y2FsZW5kYXJJZHM6IHJlcS5jYWxlbmRhcklkc30pLnBpcGUobWFwVG8odW5kZWZpbmVkKSk7XG4gICAgfVxuXG4gICAgY3JlYXRlTWVldGluZ1R5cGUocmVxOiB7IG1lZXRpbmdUeXBlOiBNZWV0aW5nVHlwZSwgdXBkYXRlRmllbGRzPzogKGtleW9mIE1lZXRpbmdUeXBlKVtdLCBIb3N0SWQ/OiBzdHJpbmcgfSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGZpZWxkTWFzayA9IGdldEZpZWxkTWFzayh7bzogcmVxLm1lZXRpbmdUeXBlLCB1cGRhdGVGaWVsZHM6IHJlcS51cGRhdGVGaWVsZHN9KTtcbiAgICAgICAgaWYgKGZpZWxkTWFzay5wYXRocy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBvZigpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLmNyZWF0ZU1lZXRpbmdUeXBlKHtcbiAgICAgICAgICAgIG1lZXRpbmdUeXBlOiBNZWV0aW5nVHlwZVRvQXBpKHttZWV0aW5nVHlwZTogcmVxLm1lZXRpbmdUeXBlfSksXG4gICAgICAgICAgICBmaWVsZE1hc2ssXG4gICAgICAgICAgICBob3N0SWQ6IHJlcS5Ib3N0SWR9KVxuICAgICAgICAgICAgLnBpcGUobWFwKHJlcyA9PiByZXMuaWQpKTtcbiAgICB9XG5cbiAgICAvKiB1cGRhdGVNZWV0aW5nVHlwZSB3aWxsIHVwZGF0ZSB0aGUgbWVldGluZyB0eXBlIGZpZWxkcy5cbiAgICAgKiBJdCBpcyBndWFyYW50ZWVkIHRvIG9ubHkgdXBkYXRlIHRoZSBmaWVsZHMgcHJvdmlkZWQuXG4gICAgICogRm9yIGV4YW1wbGU6XG4gICAgICogIHVwZGF0ZU1lZXRpbmdUeXBlKHtuYW1lOiAnT25ib2FyZGluZyd9KVxuICAgICAqICB3aWxsIG9ubHkgdXBkYXRlIHRoZSBmaWVsZCAnbmFtZScgdG8gJ09uYm9hcmRpbmcnLiBLZWVwaW5nIHRoZSBvdGhlciBmaWVsZHMgdGhlIHNhbWUuXG4gICAgICpcbiAgICAgKiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHByb3ZpZGUgYSBsaXN0IG9mIGtleXMgdG8gdXBkYXRlIGFzIHRoZSBzZWNvbmQgYXJndW1lbnQuXG4gICAgICogRm9yIGV4YW1wbGU6XG4gICAgICogICB1cGRhdGVNZWV0aW5nVHlwZSh7Li4ub2JqZWN0IHdpdGggYWxsIGZpZWxkc30sIFsnbmFtZSddKVxuICAgICAqICAgd2lsbCBvbmx5IHVwZGF0ZSB0aGUgZmllbGQgJ25hbWUnIHRvIHRoZSB2YWx1ZSBwYXNzZWQgaW4uXG4gICAgICpcbiAgICAgKiBDYWxsaW5nIHdpdGggYW4gZW1wdHkgb2JqZWN0IGFuZCBubyBrZXlzIGlzIGEgbm8tb3AsIG9yIGFuIHVuZGVmaW5lZCBvYmplY3QuXG4gICAgICogQ2FsbGluZyB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGZpZWxkcyBub3QgaW4gYE1lZXRpbmdUeXBlYCBvciB3aXRoIHVwZGF0ZUZpZWxkcyBub3QgbGlua2VkIHRvIHByb3BlcnRpZXMgaW5cbiAgICAgKiBgTWVldGluZ1R5cGVgIGlzIGFuIGVycm9yLlxuICAgICAqL1xuICAgIHVwZGF0ZU1lZXRpbmdUeXBlKHJlcTogeyBpZDogc3RyaW5nLCBtZWV0aW5nVHlwZTogUGFydGlhbDxNZWV0aW5nVHlwZT4sIHVwZGF0ZUZpZWxkcz86IChrZXlvZiBNZWV0aW5nVHlwZSlbXSwgSG9zdElkPzogc3RyaW5nIH0pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgZmllbGRNYXNrID0gZ2V0RmllbGRNYXNrKHtvOiByZXEubWVldGluZ1R5cGUsIHVwZGF0ZUZpZWxkczogcmVxLnVwZGF0ZUZpZWxkc30pO1xuICAgICAgICBpZiAoZmllbGRNYXNrLnBhdGhzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UudXBkYXRlTWVldGluZ1R5cGUoe1xuICAgICAgICAgICAgaWQ6IHJlcS5pZCxcbiAgICAgICAgICAgIG1lZXRpbmdUeXBlOiBNZWV0aW5nVHlwZVRvQXBpKHttZWV0aW5nVHlwZTogcmVxLm1lZXRpbmdUeXBlfSksXG4gICAgICAgICAgICBmaWVsZE1hc2ssXG4gICAgICAgICAgICBob3N0SWQ6IHJlcS5Ib3N0SWRcbiAgICAgICAgfSkucGlwZShtYXBUbyh1bmRlZmluZWQpKTtcbiAgICB9XG5cbiAgICBkZWxldGVNZWV0aW5nVHlwZShyZXE6IHsgaWQ6IHN0cmluZyB9KTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLmRlbGV0ZU1lZXRpbmdUeXBlKHtpZDogcmVxLmlkfSkucGlwZShtYXBUbyh1bmRlZmluZWQpKTtcbiAgICB9XG5cbiAgICBnZXRIb3N0c0ZvckNhbGVuZGFyKHJlcTogeyBjYWxlbmRhcklkOiBzdHJpbmcgfSk6IE9ic2VydmFibGU8SG9zdFVzZXJbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5nZXRIb3N0c0ZvckNhbGVuZGFyKHtjYWxlbmRhcklkOiByZXEuY2FsZW5kYXJJZH0pLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKHJlcy5ob3N0VXNlcnMgfHwgW10pLm1hcChob3N0dXNlciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBob3N0VXNlckZyb21BcGkoaG9zdHVzZXIpXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICB9XG5cbiAgICBJc0NhbGVuZGFyQ29uZmlndXJlZChyZXE6IElzQ2FsZW5kYXJDb25maWd1cmVkUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SXNDYWxlbmRhckNvbmZpZ3VyZWRSZXNwb25zZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5pc0NhbGVuZGFyQ29uZmlndXJlZChyZXEpO1xuICAgIH1cblxuICAgIHNlbmRNZWV0aW5nUmVxdWVzdEVtYWlsKHJlcTogU2VuZE1lZXRpbmdSZXF1ZXN0RW1haWxSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2Uuc2VuZE1lZXRpbmdSZXF1ZXN0RW1haWwocmVxKTtcbiAgICB9XG5cbn1cblxuXG5cbiJdfQ==
391
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbWVldGluZ3Nfc2RrL3NyYy9saWIvaG9zdC9ob3N0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFTLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQWEsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQVNILGdDQUFnQyxFQUdoQyxxQkFBcUIsRUFDckIsbUJBQW1CLEVBRW5CLFNBQVMsRUFFVCxRQUFRLEVBR1gsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUlILGVBQWUsRUFDZixZQUFZLEVBQVMsWUFBWSxFQUFFLGNBQWMsRUFHakQsY0FBYyxFQUdkLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsYUFBYSxFQUViLGtCQUFrQixFQUFXLGNBQWMsRUFBRSxnQkFBZ0IsRUFDaEUsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFDLDJCQUEyQixFQUFFLGtDQUFrQyxFQUFDLE1BQU0sT0FBTyxDQUFDO0FBQ3RGLE9BQU8sRUFBVyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQTtBQUM3RCxPQUFPLEVBQUMsV0FBVyxFQUFFLGtCQUFrQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7OztBQUt0RSxNQUFNLE9BQU8sV0FBVztJQUNwQixZQUNZLGNBQXFDO1FBQXJDLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtJQUVqRCxDQUFDO0lBRUQsa0hBQWtIO0lBQ2xILFdBQVcsQ0FBQyxHQUFzRjtRQUM5RixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDO1lBQy9CLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTTtZQUNsQix3RkFBd0Y7WUFDeEYsNEJBQTRCLEVBQUUsR0FBRyxD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LEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3JCLE9BQU8sRUFBRSxDQUFDO2FBQ2I7WUFDRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQTtRQUNuRSxDQUFDLENBQUMsQ0FDTCxDQUFBO0lBQ0wsQ0FBQzs7d0dBbmZRLFdBQVc7NEdBQVgsV0FBVyxjQURDLE1BQU07MkZBQ2xCLFdBQVc7a0JBRHZCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgbWFwVG99IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gICAgQ3JlYXRlQ2FsZW5kYXJSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIENyZWF0ZUNhbGVuZGFyUmVzcG9uc2UsXG4gICAgRGF5T2ZXZWVrLFxuICAgIEdldEhvc3RNZWV0aW5nUmVzcG9uc2UsXG4gICAgSG9zdEJvb2tNZWV0aW5nUmVxdWVzdEludGVyZmFjZSxcbiAgICBIb3N0Qm9va01lZXRpbmdSZXNwb25zZSwgSXNDYWxlbmRhckNvbmZpZ3VyZWRSZXF1ZXN0SW50ZXJmYWNlLCBJc0NhbGVuZGFyQ29uZmlndXJlZFJlc3BvbnNlLFxuICAgIElzSG9zdENvbmZpZ3VyZWRSZXNwb25zZSxcbiAgICBMaXN0QXZhaWxhYmlsaXR5UmVxdWVzdEZpbHRlcnNJbnRlcmZhY2UsXG4gICAgTGlzdEJvb2tlZE1lZXRpbmdzUmVxdWVzdEZpbHRlcnMsXG4gICAgTGlzdEJvb2tlZE1lZXRpbmdzUmVxdWVzdEZpbHRlcnNJbnRlcmZhY2UsXG4gICAgTGlzdEJvb2tlZE1lZXRpbmdzUmVzcG9uc2UsXG4gICAgTWVldGluZ0hvc3RBcGlTZXJ2aWNlLFxuICAgIFBhZ2VkUmVxdWVzdE9wdGlvbnMsXG4gICAgUGFnZWRSZXF1ZXN0T3B0aW9uc0ludGVyZmFjZSwgU2VuZE1lZXRpbmdSZXF1ZXN0RW1haWxSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIFRpbWVSYW5nZSxcbiAgICBUaW1lUmFuZ2VJbnRlcmZhY2UsXG4gICAgVGltZVpvbmUsXG4gICAgVGltZVpvbmVJbnRlcmZhY2UsXG4gICAgV2Vla2RheUF2YWlsYWJpbGl0eVxufSBmcm9tICcuLi9faW50ZXJuYWwnO1xuaW1wb3J0IHtcbiAgICBBcHBsaWNhdGlvbkNvbnRleHRQcm9wZXJ0aWVzU2V0LFxuICAgIEF2YWlsYWJpbGl0eVJ1bGUsXG4gICAgQ2FsZW5kYXIsXG4gICAgQ2FsZW5kYXJGcm9tQXBpLFxuICAgIGdldEZpZWxkTWFzaywgR3JvdXAsIEdyb3VwRnJvbUFwaSwgR3JvdXBUeXBlVG9BUGksXG4gICAgSG9zdFVybE1hcCxcbiAgICBNZWV0aW5nLFxuICAgIG1lZXRpbmdGcm9tQXBpLFxuICAgIE1lZXRpbmdNZXRhZGF0YSxcbiAgICBNZWV0aW5nVHlwZSxcbiAgICBNZWV0aW5nVHlwZUZyb21BcGksXG4gICAgTWVldGluZ1R5cGVUb0FwaSxcbiAgICBQYWdlZFJlc3BvbnNlLFxuICAgIFByZWZlcmVuY2VzLFxuICAgIFByZWZlcmVuY2VzRnJvbUFwaSwgU2VydmljZSwgU2VydmljZUZyb21BcGksIFNlcnZpY2VUeXBlVG9BcGlcbn0gZnJvbSAnLi4vc2hhcmVkJztcbmltcG9ydCB7Z2V0Qm9va2luZ1VybEltcGxlbWVudGF0aW9uLCBnZXRHZW5lcmFsQm9va2luZ1VybEltcGxlbWVudGF0aW9ufSBmcm9tICcuL3VybCc7XG5pbXBvcnQge0hvc3RVc2VyLCBob3N0VXNlckZyb21BcGl9IGZyb20gJy4uL3NoYXJlZC9ob3N0LXVzZXInXG5pbXBvcnQge0Vudmlyb25tZW50LCBvblByb2R1Y3Rpb25HbG9iYWx9IGZyb20gXCIuLi9zaGFyZWQvZW52aXJvbm1lbnRcIjtcbmltcG9ydCB7IEh0dHBSZXNwb25zZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5cblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgSG9zdFNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGhvc3RBUElTZXJ2aWNlOiBNZWV0aW5nSG9zdEFwaVNlcnZpY2UsXG4gICAgKSB7XG4gICAgfVxuXG4gICAgLy8gVXNlIGJ1aWxkSG9zdElkIHRvIGdldCBhbiBpZGVudGlmaWVyIHRoYXQgY2FuIGJlIHVzZWQgaW4gc3Vic2VxdWVudCByZXF1ZXN0cy4gU2VlIHZlbmRhc3RhYXBpcyBmb3IgbW9yZSBkZXRhaWxzXG4gICAgYnVpbGRIb3N0SWQocmVxOiB7IHVzZXJJZDogc3RyaW5nLCBhcHBsaWNhdGlvbkNvbnRleHRQcm9wZXJ0aWVzOiBBcHBsaWNhdGlvbkNvbnRleHRQcm9wZXJ0aWVzU2V0IH0pOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5idWlsZEhvc3RJZCh7XG4gICAgICAgICAgICAgICAgdXNlcklkOiByZXEudXNlcklkLFxuICAgICAgICAgICAgICAgIC8vIEdyb3NzIHR5cGVjYXN0IGV4aXN0cyBiZWNhdXNlIEkgd2FudCB0byByZXN0cmljdCB0aGUgcHJvcGVydGllcyBvbiB0aGUgbWFwIChmb3Igbm93KS5cbiAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbkNvbnRleHRQcm9wZXJ0aWVzOiByZXEuYXBwbGljYXRpb25Db250ZXh0UHJvcGVydGllcyBhcyBhbnkgYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfVxuICAgICAgICAgICAgfVxuICAgICAgICApLnBpcGUobWFwKHJlcyA9PiByZXMuaG9zdElkIHx8ICcnKSk7XG4gICAgfVxuXG4gICAgZG9lc0NhbGVuZGFyRXhpc3QoY2FsZW5kYXJJZGVudGlmaWVyOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UuZG9lc0NhbGVuZGFyRXhpc3Qoe2NhbGVuZGFySWRlbnRpZmllcjogY2FsZW5kYXJJZGVudGlmaWVyfSkucGlwZShcbiAgICAgICAgICAgIG1hcChyZXNwID0+IHJlc3AuZXhpc3RzKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldENhbGVuZGFyKHJlcTogeyBjYWxlbmRhcklkOiBzdHJpbmcgfSk6IE9ic2VydmFibGU8Q2FsZW5kYXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UuZ2V0Q2FsZW5kYXIoe2NhbGVuZGFySWQ6IHJlcS5jYWxlbmRhcklkfSkucGlwZShcbiAgICAgICAgICAgIG1hcChyZXMgPT4gQ2FsZW5kYXJGcm9tQXBpKHJlcz8uY2FsZW5kYXIpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGVuc3VyZVBlcnNvbmFsQ2FsZW5kYXJFeGlzdHMocmVxOiB7XG4gICAgICAgIHVzZXJJZDogc3RyaW5nLFxuICAgICAgICBhcHBsaWNhdGlvbkNvbnRleHRQcm9wZXJ0aWVzOiBBcHBsaWNhdGlvbkNvbnRleHRQcm9wZXJ0aWVzU2V0XG4gICAgfSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLmVuc3VyZVBlcnNvbmFsQ2FsZW5kYXJFeGlzdHMoe1xuICAgICAgICAgICAgdXNlcklkOiByZXEudXNlcklkLFxuICAgICAgICAgICAgYXBwbGljYXRpb25Db250ZXh0UHJvcGVydGllczogcmVxLmFwcGxpY2F0aW9uQ29udGV4dFByb3BlcnRpZXMgYXMgYW55IGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sXG4gICAgICAgIH0pLnBpcGUobWFwKHJlcyA9PiByZXMgPyByZXMuY2FsZW5kYXJJZCA6ICcnKSk7XG4gICAgfVxuXG4gICAgZW5zdXJlR3JvdXBDYWxlbmRhcnNFeGlzdChyZXE6IHsgZXh0ZXJuYWxJZHM6IHN0cmluZ1tdIH0pOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLmVuc3VyZUdyb3VwQ2FsZW5kYXJzRXhpc3Qoe2V4dGVybmFsSWRzOiByZXEuZXh0ZXJuYWxJZHN9KS5waXBlKFxuICAgICAgICAgICAgbWFwKHJlcyA9PiByZXM/LmNhbGVuZGFySWRzIHx8IFtdKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qXG4gICAgIGNyZWF0ZUNhbGVuZGFyIGNyZWF0ZXMgYSBjYWxlbmRhciB3aGljaCBtZWV0aW5nIHR5cGVzIGNhbiBiZSBjcmVhdGVkIGZvciBhbmQgZXZlbnRzIGNhbiBiZSBib29rZWQgb25cbiAgICAgVGhlIGZpZWxkcyBvZiBhIGNhbGVuZGFyIGFyZSBkb2N1bWVudGVkIGluIGh0dHBzOi8vZ2l0aHViLmNvbS92ZW5kYXN0YS92ZW5kYXN0YWFwaXMvYmxvYi9tYXN0ZXIvbWVldGluZ3MvdjEvc2hhcmVkLnByb3RvXG4gICAgKi9cbiAgICBjcmVhdGVDYWxlbmRhcihyZXE6IENyZWF0ZUNhbGVuZGFyUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8Q3JlYXRlQ2FsZW5kYXJSZXNwb25zZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5jcmVhdGVDYWxlbmRhcihyZXEpO1xuICAgIH1cblxuICAgIHVwZGF0ZUNhbGVuZGFyU2x1ZyhjYWxlbmRhcklkOiBzdHJpbmcsIG5ld1NsdWc6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS51cGRhdGVDYWxlbmRhcih7XG4gICAgICAgICAgICBjYWxlbmRhcklkOiBjYWxlbmRhcklkLFxuICAgICAgICAgICAgY2FsZW5kYXJVcGRhdGU6IHtzbHVnOiBuZXdTbHVnfSxcbiAgICAgICAgICAgIGZpZWxkTWFzazoge3BhdGhzOiBbJ3NsdWcnXX0sXG4gICAgICAgIH0pLnBpcGUobWFwVG8odW5kZWZpbmVkKSk7XG4gICAgfVxuXG4gICAgdXBkYXRlQ2FsZW5kYXJIb3N0VXNlcklEcyhjYWxlbmRhcklkOiBzdHJpbmcsIHJlcGxhY2VtZW50SG9zdFVzZXJJZHM6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLnVwZGF0ZUNhbGVuZGFyKHtcbiAgICAgICAgICAgIGNhbGVuZGFySWQ6IGNhbGVuZGFySWQsXG4gICAgICAgICAgICBjYWxlbmRhclVwZGF0ZToge2hvc3RVc2VySWRzOiByZXBsYWNlbWVudEhvc3RVc2VySWRzfSxcbiAgICAgICAgICAgIGZpZWxkTWFzazoge3BhdGhzOiBbJ2hvc3RfdXNlcl9pZHMnXX0sXG4gICAgICAgIH0pLnBpcGUobWFwVG8odW5kZWZpbmVkKSk7XG4gICAgfVxuXG4gICAgZ2V0TWVldGluZ1R5cGVzRm9yQ2FsZW5kYXJzKHJlcToge1xuICAgICAgICBjYWxlbmRhcklkczogc3RyaW5nW10sXG4gICAgICAgIG1ldGFkYXRhOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfVxuICAgIH0pOiBPYnNlcnZhYmxlPHsgW2NhbGVuZGFySWQ6IHN0cmluZ106IE1lZXRpbmdUeXBlW10gfT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5nZXRNZWV0aW5nVHlwZXNGb3JDYWxlbmRhcnMoe2NhbGVuZGFySWRzOiByZXEuY2FsZW5kYXJJZHN9KS5waXBlKFxuICAgICAgICAgICAgbWFwKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXM/LmNhbGVuZGFyTWVldGluZ1R5cGVzTWFwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHJlcy5jYWxlbmRhck1lZXRpbmdUeXBlc01hcCkucmVkdWNlKChjYWxlbmRhclRvTWVldGluZ1R5cGVNYXAsIGNhbGVuZGFySWQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVldGluZ1R5cGVzID0gKHJlcy5jYWxlbmRhck1lZXRpbmdUeXBlc01hcFtjYWxlbmRhcklkXT8ubWVldGluZ1R5cGVzIHx8IFtdKS5tYXAobXQgPT4gTWVldGluZ1R5cGVGcm9tQXBpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lZXRpbmdUeXBlQXBpOiBtdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50OiBvblByb2R1Y3Rpb25HbG9iYWwoKSA/IEVudmlyb25tZW50LlBST0QgOiBFbnZpcm9ubWVudC5ERU1PLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhOiByZXEubWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmNhbGVuZGFyVG9NZWV0aW5nVHlwZU1hcCxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjYWxlbmRhcklkXTogbWVldGluZ1R5cGVzLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0sIHt9IGFzIHsgW2NhbGVuZGFySWQ6IHN0cmluZ106IE1lZXRpbmdUeXBlW10gfSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICB9XG5cbiAgICAvKlxuICAgICBsaXN0TWVldGluZ1R5cGVzIHJldHVybnMgYSBsaXN0IG9mIG1lZXRpbmcgdHlwZXMgZm9yIGEgaG9zdFxuICAgICBAcGFyYW0gaG9zdElkOiBBbiBpZGVudGlmaWVyIGZvciBhbiBpbmRpdmlkdWFsIGhvc3RcbiAgICAgQHBhcmFtIG1ldGFkYXRhOiBvcHRpb25hbCBtZXRhZGF0YSB0byBpbmNsdWRlIG9uIHRoZSBtZWV0aW5nIHR5cGUgYm9va2luZyBsaW5rXG4gICAgIEBwYXJhbSBjYWxlbmRhclNsdWc6IHVzZWQgdG8gcmVwbGFjZSBob3N0SWQgaW4gdGhlIHVybC4gVXNlIGl0IHdoZW4geW91IGFyZSBjb25maWRlbnQgeW91IGtub3cgdGhlIGhvc3QncyBzbHVnLlxuICAgICAgICAtIGNhbGVuZGFyU2x1ZyBJUyBOT1QgVVNFRCBUTyBSRVRSSUVWRSBNRUVUSU5HIFRZUEVTLCBPTkxZIFRPIE1BS0UgVEhFIEJPT0tJTkcgVVJMU1xuICAgICovXG4gICAgbGlzdE1lZXRpbmdUeXBlcyhyZXE6IHtcbiAgICAgICAgaG9zdElkOiBzdHJpbmcsXG4gICAgICAgIG1ldGFkYXRhPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH1cbiAgICAgICAgY2FsZW5kYXJTbHVnPzogc3RyaW5nLFxuICAgIH0pOiBPYnNlcnZhYmxlPE1lZXRpbmdUeXBlW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UubGlzdE1lZXRpbmdUeXBlcyhyZXEpLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzcCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXNwIHx8ICFyZXNwLm1lZXRpbmdUeXBlcykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXNwLm1lZXRpbmdUeXBlcy5tYXAobXQgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTWVldGluZ1R5cGVGcm9tQXBpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lZXRpbmdUeXBlQXBpOiBtdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFySWQ6IHJlcS5ob3N0SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudDogb25Qcm9kdWN0aW9uR2xvYmFsKCkgPyBFbnZpcm9ubWVudC5QUk9EIDogRW52aXJvbm1lbnQuREVNTyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhOiByZXEubWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhclNsdWc6IHJlcS5jYWxlbmRhclNsdWcsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgIH1cblxuICAgIC8qXG4gICAgIGdldEJvb2tpbmdVcmwgcmV0dXJucyBhIGxpbmsgdGhhdCBjYW4gYmUgdXNlZCB0byBib29rIGEgbWVldGluZyB3aXRoIHRoaXMgaG9zdC5cbiAgICAgQHBhcmFtIGNhbGVuZGFySWQ6IEFuIGlkZW50aWZpZXIgZm9yIGFuIGluZGl2aWR1YWwgaG9zdCBvciBncm91cGluZyBvZiBob3N0cyAoaS5lLiwgdGVhbSkuXG4gICAgIEBwYXJhbSBAZGVwcmVjYXRlZCBob3N0SWQ6IEFuIGlkZW50aWZpZXIgZm9yIGFuIGluZGl2aWR1YWwgaG9zdC5cbiAgICAgQHBhcmFtIG1lZXRpbmdUeXBlSWQ6IEFuIG9wdGlvbmFsIGlkZW50aWZpZXIgZm9yIHRoZSBtZWV0aW5nIHR5cGUuIERlZmF1bHQ6IDMwLW1pbnV0ZXMuXG4gICAgIEBwYXJhbSBtZXRhZGF0YTogb3B0aW9uYWwgbWV0YWRhdGEgdG8gaW5jbHVkZSBpbiB0aGUgdXJsLlxuICAgICAtIG1ldGFkYXRhIGNhbiBiZSB1c2VkIHRvIHByZS1maWxsIGNlcnRhaW4gZm9ybSBmaWVsZHMgYW5kIHdpbGwgYmUgc3RvcmVkIGR1cmluZyB0aGUgYm9va2luZyBwcm9jZXNzLlxuICAgICAtIG1ldGFkYXRhIGNhbiBiZSBvYnRhaW5lZCBieSBzdWJzY3JpYmluZyB0byB0aGUgYm9va2luZyBldmVudC5cbiAgICBAcGFyYW0gY2FsZW5kYXJTbHVnOiB1c2VkIHRvIHJlcGxhY2UgaG9zdElkIGluIHRoZSB1cmwuIFVzZSBpdCB3aGVuIHlvdSBhcmUgY29uZmlkZW50IHlvdSBrbm93IHRoZSBob3N0J3Mgc2x1Zy5cbiAgICAgKi9cbiAgICBnZXRCb29raW5nVXJsKFxuICAgICAgICByZXE6IHtcbiAgICAgICAgICAgIC8vIEBkZXByZWNhdGVkOiB1c2UgY2FsZW5kYXJJZCBpbnN0ZWFkLiBjYWxlbmRhcklkIG5vdCByZXF1aXJlZCB0byBhdm9pZCBicmVha2luZyBleGlzdGluZyBjbGllbnRzLlxuICAgICAgICAgICAgaG9zdElkOiBzdHJpbmcsXG4gICAgICAgICAgICBjYWxlbmRhcklkPzogc3RyaW5nLFxuICAgICAgICAgICAgLy8gQGRlcHJlY2F0ZWQ6IHVzZSBtZWV0aW5nVHlwZVNsdWcgaW5zdGVhZFxuICAgICAgICAgICAgbWVldGluZ1R5cGVJZD86IHN0cmluZyxcbiAgICAgICAgICAgIG1lZXRpbmdUeXBlU2x1Zz86IHN0cmluZyxcbiAgICAgICAgICAgIG1ldGFkYXRhPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH0sXG4gICAgICAgICAgICBjYWxlbmRhclNsdWc/OiBzdHJpbmcsXG4gICAgICAgIH0pOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gb2YoZ2V0Qm9va2luZ1VybEltcGxlbWVudGF0aW9uKHtcbiAgICAgICAgICAgICAgICAuLi5yZXEsXG4gICAgICAgICAgICAgICAgY2FsZW5kYXJJZDogcmVxLmNhbGVuZGFySWQgfHwgcmVxLmhvc3RJZCxcbiAgICAgICAgICAgICAgICBlbnZpcm9ubWVudDogb25Qcm9kdWN0aW9uR2xvYmFsKCkgPyBFbnZpcm9ubWVudC5QUk9EIDogRW52aXJvbm1lbnQuREVNTyxcbiAgICAgICAgICAgICAgICBjYWxlbmRhclNsdWc6IHJlcS5jYWxlbmRhclNsdWcsXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qXG4gICAgIGdldEdlbmVyYWxCb29raW5nVXJsIHJldHVybnMgYSBsaW5rIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2VsZWN0IGEgbWVldGluZyB0eXBlIHRvIGJvb2sgd2l0aCB0aGUgZ2l2ZW4gY2FsZW5kYXIuXG4gICAgIEBwYXJhbSBjYWxlbmRhcklkOiBBbiBpZGVudGlmaWVyIGZvciBhbiBpbmRpdmlkdWFsIGhvc3Qgb3IgZ3JvdXBpbmcgb2YgaG9zdHMgKGkuZS4sIHRlYW0pLlxuICAgICBAcGFyYW0gbWV0YWRhdGE6IG9wdGlvbmFsIG1ldGFkYXRhIHRvIGluY2x1ZGUgaW4gdGhlIHVybC5cbiAgICAgLSBtZXRhZGF0YSBjYW4gYmUgdXNlZCB0byBwcmUtZmlsbCBjZXJ0YWluIGZvcm0gZmllbGRzIGFuZCB3aWxsIGJlIHN0b3JlZCBkdXJpbmcgdGhlIGJvb2tpbmcgcHJvY2Vzcy5cbiAgICAgLSBtZXRhZGF0YSBjYW4gYmUgb2J0YWluZWQgYnkgc3Vic2NyaWJpbmcgdG8gdGhlIGJvb2tpbmcgZXZlbnQuXG4gICAgIEBwYXJhbSBjYWxlbmRhclNsdWc6IHVzZWQgdG8gcmVwbGFjZSBob3N0SWQgaW4gdGhlIHVybC4gVXNlIGl0IHdoZW4geW91IGFyZSBjb25maWRlbnQgeW91IGtub3cgdGhlIGhvc3QncyBzbHVnLlxuICAgICAqL1xuICAgIGdldEdlbmVyYWxCb29raW5nVXJsKHJlcToge1xuICAgICAgICBjYWxlbmRhcklkOiBzdHJpbmcsXG4gICAgICAgIG1ldGFkYXRhPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH0sXG4gICAgICAgIGNhbGVuZGFyU2x1Zz86IHN0cmluZyxcbiAgICB9KTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG9mKGdldEdlbmVyYWxCb29raW5nVXJsSW1wbGVtZW50YXRpb24oe1xuICAgICAgICAgICAgZW52aXJvbm1lbnQ6IG9uUHJvZHVjdGlvbkdsb2JhbCgpID8gRW52aXJvbm1lbnQuUFJPRCA6IEVudmlyb25tZW50LkRFTU8sXG4gICAgICAgICAgICBjYWxlbmRhcklkOiByZXEuY2FsZW5kYXJJZCxcbiAgICAgICAgICAgIG1ldGFkYXRhOiByZXEubWV0YWRhdGEsXG4gICAgICAgICAgICBjYWxlbmRhclNsdWc6IHJlcS5jYWxlbmRhclNsdWcsXG4gICAgICAgIH0pKVxuICAgIH1cblxuICAgIC8qXG4gICAgIGdldEJvb2tpbmdVcmxzTXVsdGkgcmV0dXJucyBhIG1hcHBpbmcgb2YgaG9zdHMgLT4gZXZlbnQgdHlwZXMgLT4gYm9va2luZyBsaW5rcy5cbiAgICAgQHBhcmFtIGNhbGVuZGFySWQ6IEFuIGlkZW50aWZpZXIgZm9yIGFuIGluZGl2aWR1YWwgaG9zdCBvciBncm91cGluZyBvZiBob3N0cy5cbiAgICAgQHBhcmFtIG1lZXRpbmdUeXBlU2x1ZzogbWVldGluZ1R5cGVTbHVncyBhcmUgcGFzc2VkIGluIHRoZSBmb3JtIHtob3N0SWQ6IFttZWV0aW5nVHlwZVNsdWcxLCBtZWV0aW5nVHlwZVNsdWcyXX1cbiAgICAgQHBhcmFtIG1ldGFkYXRhOiBvcHRpb25hbCBtZXRhZGF0YSB0byBpbmNsdWRlIGluIHRoZSB1cmwuXG4gICAgIC0gbWV0YWRhdGEgY2FuIGJlIHVzZWQgdG8gcHJlLWZpbGwgY2VydGFpbiBmb3JtIGZpZWxkcyBhbmQgd2lsbCBiZSBzdG9yZWQgZHVyaW5nIHRoZSBib29raW5nIHByb2Nlc3MuXG4gICAgIC0gbWV0YWRhdGEgY2FuIGJlIG9idGFpbmVkIGJ5IHN1YnNjcmliaW5nIHRvIHRoZSBib29raW5nIGV2ZW50LlxuICAgICBAcGFyYW0gY2FsZW5kYXJTbHVnOiB1c2VkIHRvIHJlcGxhY2UgaG9zdElkIGluIHRoZSB1cmwuIFVzZSBpdCB3aGVuIHlvdSBhcmUgY29uZmlkZW50IHlvdSBrbm93IHRoZSBob3N0J3Mgc2x1Zy5cbiAgICAgKi9cbiAgICBnZXRCb29raW5nVXJsc011bHRpKFxuICAgICAgICByZXE6IHsgW2NhbGVuZGFySWQ6IHN0cmluZ106IHN0cmluZ1tdIH0sXG4gICAgICAgIG1ldGFkYXRhPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH0sXG4gICAgICAgIGNhbGVuZGFyU2x1Zz86IHN0cmluZ1xuICAgICk6IE9ic2VydmFibGU8SG9zdFVybE1hcD4ge1xuICAgICAgICByZXR1cm4gb2YoT2JqZWN0LmtleXMocmVxKS5yZWR1Y2UoKGhvc3RNYXAsIGNhbGVuZGFySWQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uaG9zdE1hcCxcbiAgICAgICAgICAgICAgICBbY2FsZW5kYXJJZF06IHJlcVtjYWxlbmRhcklkXS5yZWR1Y2UoKG1lZXRpbmdUeXBlTWFwLCBtZWV0aW5nVHlwZVNsdWcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLm1lZXRpbmdUeXBlTWFwLFxuICAgICAgICAgICAgICAgICAgICAgICAgW21lZXRpbmdUeXBlU2x1Z106IGdldEJvb2tpbmdVcmxJbXBsZW1lbnRhdGlvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWV0aW5nVHlwZVNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ6IG9uUHJvZHVjdGlvbkdsb2JhbCgpID8gRW52aXJvbm1lbnQuUFJPRCA6IEVudmlyb25tZW50LkRFTU8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJTbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9LCB7fSBhcyB7IFttZWV0aW5nVHlwZUlkOiBzdHJpbmddOiBzdHJpbmcgfSlcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sIHt9IGFzIEhvc3RVcmxNYXApKTtcbiAgICB9XG5cbiAgICBpc0hvc3RDb25maWd1cmVkKHJlcTogeyBob3N0SWQ6IHN0cmluZyB9KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLmlzSG9zdENvbmZpZ3VyZWQocmVxKS5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXNwOiBJc0hvc3RDb25maWd1cmVkUmVzcG9uc2UpID0+IHJlc3AuaXNDb25maWd1cmVkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHNldEdlbmVyYWxBdmFpbGFiaWxpdHkocmVxOiB7XG4gICAgICAgIGhvc3RJZDogc3RyaW5nLFxuICAgICAgICBtZWV0aW5nVHlwZUlkOiBzdHJpbmcsXG4gICAgICAgIC8vIEBkZXByZWNhdGVkOiB1c2Ugd2Vla2RheXNBdmFpbGFiaWxpdHkgaW5zdGVhZFxuICAgICAgICBkYXlzPzogRGF5T2ZXZWVrW10sXG4gICAgICAgIC8vIEBkZXByZWNhdGVkOiB1c2Ugd2Vla2RheXNBdmFpbGFiaWxpdHkgaW5zdGVhZFxuICAgICAgICB0aW1lU2xvdD86IFRpbWVSYW5nZUludGVyZmFjZSxcbiAgICAgICAgd2Vla2RheXNBdmFpbGFiaWxpdHk/OiBXZWVrZGF5QXZhaWxhYmlsaXR5W10sXG4gICAgICAgIHRpbWVab25lOiBUaW1lWm9uZUludGVyZmFjZSxcbiAgICB9KTogT2JzZXJ2YWJsZTxudWxsPiB7XG4gICAgICAgIGNvbnN0IGFwaVJlcSA9IHtcbiAgICAgICAgICAgIC4uLnJlcSxcbiAgICAgICAgICAgIHRpbWVab25lOiBuZXcgVGltZVpvbmUocmVxLnRpbWVab25lKSxcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVxLnRpbWVTbG90KSB7XG4gICAgICAgICAgICBhcGlSZXEudGltZVNsb3QgPSBuZXcgVGltZVJhbmdlKHJlcS50aW1lU2xvdClcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5zZXRHZW5lcmFsQXZhaWxhYmlsaXR5KGFwaVJlcSkucGlwZShtYXBUbyhudWxsKSlcbiAgICB9XG5cbiAgICBsaXN0Qm9va2VkTWVldGluZ3MocmVxOiB7XG4gICAgICAgIGZpbHRlcnM6IExpc3RCb29rZWRNZWV0aW5nc1JlcXVlc3RGaWx0ZXJzSW50ZXJmYWNlLFxuICAgICAgICBjdXJzb3I6IHN0cmluZyxcbiAgICAgICAgcGFnZVNpemU6IG51bWJlcixcbiAgICAgICAgdGltZVpvbmU6IFRpbWVab25lSW50ZXJmYWNlLFxuICAgIH0pOiBPYnNlcnZhYmxlPFBhZ2VkUmVzcG9uc2U8TWVldGluZz4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UubGlzdEJvb2tlZE1lZXRpbmdzKHtcbiAgICAgICAgICAgIC4uLnJlcSxcbiAgICAgICAgICAgIHBhZ2luZ09wdGlvbnM6IG5ldyBQYWdlZFJlcXVlc3RPcHRpb25zKHtjdXJzb3I6IHJlcS5jdXJzb3IsIHBhZ2VTaXplOiByZXEucGFnZVNpemV9KSxcbiAgICAgICAgICAgIGZpbHRlcnM6IG5ldyBMaXN0Qm9va2VkTWVldGluZ3NSZXF1ZXN0RmlsdGVycyhyZXEuZmlsdGVycyksXG4gICAgICAgICAgICB0aW1lWm9uZTogbmV3IFRpbWVab25lKHJlcS50aW1lWm9uZSksXG4gICAgICAgIH0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3A6IExpc3RCb29rZWRNZWV0aW5nc1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWVldGluZ3MgPSAocmVzcC5tZWV0aW5ncyB8fCBbXSkubWFwKG1lZXRpbmcgPT4gbWVldGluZ0Zyb21BcGkobWVldGluZykpO1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUGFnZWRSZXNwb25zZShtZWV0aW5ncywgcmVzcC5wYWdpbmdNZXRhZGF0YS5uZXh0Q3Vyc29yLCByZXNwLnBhZ2luZ01ldGFkYXRhLmhhc01vcmUpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgY2FuY2VsTWVldGluZyhyZXE6IHtcbiAgICAgICAgbWVldGluZ0lkOiBzdHJpbmcsXG4gICAgICAgIGNhbmNlbGxhdGlvblJlYXNvbjogc3RyaW5nXG4gICAgfSk6IE9ic2VydmFibGU8bnVsbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5jYW5jZWxNZWV0aW5nKHtcbiAgICAgICAgICAgIC4uLnJlcVxuICAgICAgICB9KS5waXBlKG1hcFRvKG51bGwpKVxuICAgIH1cblxuICAgIHJlc2NoZWR1bGVNZWV0aW5nKHJlcToge1xuICAgICAgICBtZWV0aW5nSWQ6IHN0cmluZyxcbiAgICAgICAgc3RhcnQ6IERhdGVcbiAgICB9KTogT2JzZXJ2YWJsZTxudWxsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLnJlc2NoZWR1bGVNZWV0aW5nKHtcbiAgICAgICAgICAgIC4uLnJlcVxuICAgICAgICB9KS5waXBlKG1hcFRvKG51bGwpKVxuICAgIH1cblxuICAgIGxpc3RBdmFpbGFiaWxpdHkocmVxOiB7XG4gICAgICAgIGZpbHRlcnM6IExpc3RBdmFpbGFiaWxpdHlSZXF1ZXN0RmlsdGVyc0ludGVyZmFjZSxcbiAgICAgICAgcGFnaW5nT3B0aW9uczogUGFnZWRSZXF1ZXN0T3B0aW9uc0ludGVyZmFjZSxcbiAgICAgICAgdGltZVpvbmU6IFRpbWVab25lSW50ZXJmYWNlLFxuICAgIH0pOiBPYnNlcnZhYmxlPFBhZ2VkUmVzcG9uc2U8QXZhaWxhYmlsaXR5UnVsZT4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UubGlzdEF2YWlsYWJpbGl0eShyZXEpLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSAocmVzcG9uc2UuYXZhaWxhYmlsaXR5UnVsZXMgfHwgW10pLmZpbHRlcihCb29sZWFuKS5tYXAoYSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBob3N0SWQ6IGEuaG9zdElkIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVldGluZ1R5cGVJZDogYS5tZWV0aW5nVHlwZUlkIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF5OiBhLmRheSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVTbG90OiBhLnRpbWVTbG90LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGltZVpvbmU6IGEudGltZVpvbmUsXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFBhZ2VkUmVzcG9uc2UocmVzdWx0cywgcmVzcG9uc2UubWV0YWRhdGEubmV4dEN1cnNvciwgcmVzcG9uc2UubWV0YWRhdGEuaGFzTW9yZSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgfVxuXG4gICAgLyogdXBkYXRlUHJlZmVyZW5jZXMgd2lsbCB1cGRhdGUgdGhlIGhvc3QncyBwcmVmZXJlbmNlcy5cbiAgICAgKiBJdCBpcyBndWFyYW50ZWVkIHRvIG9ubHkgdXBkYXRlIHRoZSBmaWVsZHMgcHJvdmlkZWQuXG4gICAgICogRm9yIGV4YW1wbGU6XG4gICAgICogIHVwZGF0ZVByZWZlcmVuY2VzKHttZWV0aW5nSW50ZWdyYXRpb246IE1lZXRpbmdTb3VyY2UuTUVFVElOR19TT1VSQ0VfR09PR0xFX01FRVR9KVxuICAgICAqICB3aWxsIG9ubHkgdXBkYXRlIHRoZSBwcmVmZXJlbmNlIG1lZXRpbmdJbnRlZ3JhdGlvbiB0byBHb29nbGUgTWVldC4gS2VlcGluZyB0aGUgb3RoZXIgcHJlZmVyZW5jZXMgdGhlIHNhbWUuXG4gICAgICpcbiAgICAgKiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHByb3ZpZGUgYSBsaXN0IG9mIGtleXMgdG8gdXBkYXRlIGFzIHRoZSBzZWNvbmQgYXJndW1lbnQuXG4gICAgICogRm9yIGV4YW1wbGU6XG4gICAgICogICB1cGRhdGVQcmVmZXJlbmNlcyh7Li4ub2JqZWN0IHdpdGggYWxsIGZpZWxkc30sIFsnbWVldGluZ0ludGVncmF0aW9uJ10pXG4gICAgICogICB3aWxsIG9ubHkgdXBkYXRlIHRoZSBmaWVsZCAnbWVldGluZ0ludGVncmF0aW9uJyB0byB0aGUgdmFsdWUgaW4gcHJlZmVyZW5jZXMuXG4gICAgICpcbiAgICAgKiBDYWxsaW5nIHdpdGggYW4gZW1wdHkgb2JqZWN0IGFuZCBubyBrZXlzIGlzIGEgbm8tb3AsIG9yIGFuIHVuZGVmaW5lZCBvYmplY3QuXG4gICAgICogQ2FsbGluZyB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGZpZWxkcyBub3QgaW4gYFByZWZlcmVuY2VzYCBvciB3aXRoIHVwZGF0ZUZpZWxkcyBub3QgbGlua2VkIHRvIHByb3BlcnRpZXMgaW5cbiAgICAgKiBgUHJlZmVyZW5jZXNgIGlzIGFuIGVycm9yLlxuICAgICAqL1xuICAgIHVwZGF0ZVByZWZlcmVuY2VzKHJlcTogeyBob3N0SWQ6IHN0cmluZywgcHJlZmVyZW5jZXM6IFBhcnRpYWw8UHJlZmVyZW5jZXM+LCB1cGRhdGVGaWVsZHM/OiAoa2V5b2YgUHJlZmVyZW5jZXMpW10gfSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICBjb25zdCBmaWVsZE1hc2sgPSBnZXRGaWVsZE1hc2soe286IHJlcS5wcmVmZXJlbmNlcywgdXBkYXRlRmllbGRzOiByZXEudXBkYXRlRmllbGRzfSk7XG4gICAgICAgIGlmIChmaWVsZE1hc2sucGF0aHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS51cGRhdGVIb3N0UHJlZmVyZW5jZXMoe1xuICAgICAgICAgICAgaG9zdElkOiByZXEuaG9zdElkLFxuICAgICAgICAgICAgcHJlZmVyZW5jZXM6IHJlcS5wcmVmZXJlbmNlcyxcbiAgICAgICAgICAgIGZpZWxkTWFzayxcbiAgICAgICAgfSkucGlwZShtYXBUbyh1bmRlZmluZWQpKTtcbiAgICB9XG5cbiAgICBnZXRQcmVmZXJlbmNlcyhyZXE6IHsgaG9zdElkOiBzdHJpbmcgfSk6IE9ic2VydmFibGU8UHJlZmVyZW5jZXM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UuZ2V0SG9zdFByZWZlcmVuY2VzKHtcbiAgICAgICAgICAgIGhvc3RJZDogcmVxLmhvc3RJZFxuICAgICAgICB9KS5waXBlKG1hcChyZXNwb25zZSA9PiBQcmVmZXJlbmNlc0Zyb21BcGkocmVzcG9uc2UucHJlZmVyZW5jZXMpKSlcbiAgICB9XG5cbiAgICBnZXRNZWV0aW5nKG1lZXRpbmdJZDogc3RyaW5nLCBsb2NhdGlvbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxNZWV0aW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLmdldEhvc3RNZWV0aW5nKHtcbiAgICAgICAgICAgIG1lZXRpbmdJZDogbWVldGluZ0lkLCBsb2NhdGlvbjogbG9jYXRpb24sXG4gICAgICAgIH0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3A6IEdldEhvc3RNZWV0aW5nUmVzcG9uc2UpID0+IG1lZXRpbmdGcm9tQXBpKHJlc3AubWVldGluZykpXG4gICAgICAgIClcbiAgICB9XG5cbiAgICB1cGRhdGVNZWV0aW5nTWV0YWRhdGEocmVxOiB7IG1lZXRpbmdJZDogc3RyaW5nLCBtZXRhZGF0YTogTWVldGluZ01ldGFkYXRhIH0pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UudXBkYXRlTWVldGluZ01ldGFkYXRhKHtcbiAgICAgICAgICAgIG1lZXRpbmdJZDogcmVxLm1lZXRpbmdJZCxcbiAgICAgICAgICAgIG1ldGFkYXRhOiByZXEubWV0YWRhdGFcbiAgICAgICAgfSkucGlwZShtYXBUbyh1bmRlZmluZWQpKTtcbiAgICB9XG5cbiAgICBib29rTWVldGluZyhyZXE6IEhvc3RCb29rTWVldGluZ1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5ib29rTWVldGluZyhyZXEpLnBpcGUobWFwKChyZXNwOiBIb3N0Qm9va01lZXRpbmdSZXNwb25zZSkgPT4gcmVzcC5tZWV0aW5nSWQpKTtcbiAgICB9XG5cbiAgICAvLyBjcmVhdGVEZWZhdWx0TWVldGluZ1R5cGVzIHdpbGwgY3JlYXRlIHdoYXQgTWVldGluZyBTY2hlZHVsZXIgZGVlbXMgdG8gYmUgdGhlIGRlZmF1bHQgbWVldGluZyB0eXBlcy5cbiAgICAvLyBJZiB0aGUgY2FsZW5kYXIgYWxyZWFkeSBoYXMgbWVldGluZyB0eXBlcywgdGhpcyBpcyBndWFyYW50ZWVkIHRvIGJlIGEgbm8tb3AuXG4gICAgY3JlYXRlRGVmYXVsdE1lZXRpbmdUeXBlcyhyZXE6IHsgY2FsZW5kYXJJZHM6IHN0cmluZ1tdLCB9KTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLmNyZWF0ZURlZmF1bHRNZWV0aW5nVHlwZXMoe2NhbGVuZGFySWRzOiByZXEuY2FsZW5kYXJJZHN9KS5waXBlKG1hcFRvKHVuZGVmaW5lZCkpO1xuICAgIH1cblxuICAgIGNyZWF0ZU1lZXRpbmdUeXBlKHJlcTogeyBtZWV0aW5nVHlwZTogTWVldGluZ1R5cGUsIHVwZGF0ZUZpZWxkcz86IChrZXlvZiBNZWV0aW5nVHlwZSlbXSwgSG9zdElkPzogc3RyaW5nIH0pOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICBjb25zdCBmaWVsZE1hc2sgPSBnZXRGaWVsZE1hc2soe286IHJlcS5tZWV0aW5nVHlwZSwgdXBkYXRlRmllbGRzOiByZXEudXBkYXRlRmllbGRzfSk7XG4gICAgICAgIGlmIChmaWVsZE1hc2sucGF0aHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5jcmVhdGVNZWV0aW5nVHlwZSh7XG4gICAgICAgICAgICBtZWV0aW5nVHlwZTogTWVldGluZ1R5cGVUb0FwaSh7bWVldGluZ1R5cGU6IHJlcS5tZWV0aW5nVHlwZX0pLFxuICAgICAgICAgICAgZmllbGRNYXNrLFxuICAgICAgICAgICAgaG9zdElkOiByZXEuSG9zdElkfSlcbiAgICAgICAgICAgIC5waXBlKG1hcChyZXMgPT4gcmVzLmlkKSk7XG4gICAgfVxuXG4gICAgLyogdXBkYXRlTWVldGluZ1R5cGUgd2lsbCB1cGRhdGUgdGhlIG1lZXRpbmcgdHlwZSBmaWVsZHMuXG4gICAgICogSXQgaXMgZ3VhcmFudGVlZCB0byBvbmx5IHVwZGF0ZSB0aGUgZmllbGRzIHByb3ZpZGVkLlxuICAgICAqIEZvciBleGFtcGxlOlxuICAgICAqICB1cGRhdGVNZWV0aW5nVHlwZSh7bmFtZTogJ09uYm9hcmRpbmcnfSlcbiAgICAgKiAgd2lsbCBvbmx5IHVwZGF0ZSB0aGUgZmllbGQgJ25hbWUnIHRvICdPbmJvYXJkaW5nJy4gS2VlcGluZyB0aGUgb3RoZXIgZmllbGRzIHRoZSBzYW1lLlxuICAgICAqXG4gICAgICogQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBwcm92aWRlIGEgbGlzdCBvZiBrZXlzIHRvIHVwZGF0ZSBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50LlxuICAgICAqIEZvciBleGFtcGxlOlxuICAgICAqICAgdXBkYXRlTWVldGluZ1R5cGUoey4uLm9iamVjdCB3aXRoIGFsbCBmaWVsZHN9LCBbJ25hbWUnXSlcbiAgICAgKiAgIHdpbGwgb25seSB1cGRhdGUgdGhlIGZpZWxkICduYW1lJyB0byB0aGUgdmFsdWUgcGFzc2VkIGluLlxuICAgICAqXG4gICAgICogQ2FsbGluZyB3aXRoIGFuIGVtcHR5IG9iamVjdCBhbmQgbm8ga2V5cyBpcyBhIG5vLW9wLCBvciBhbiB1bmRlZmluZWQgb2JqZWN0LlxuICAgICAqIENhbGxpbmcgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBmaWVsZHMgbm90IGluIGBNZWV0aW5nVHlwZWAgb3Igd2l0aCB1cGRhdGVGaWVsZHMgbm90IGxpbmtlZCB0byBwcm9wZXJ0aWVzIGluXG4gICAgICogYE1lZXRpbmdUeXBlYCBpcyBhbiBlcnJvci5cbiAgICAgKi9cbiAgICB1cGRhdGVNZWV0aW5nVHlwZShyZXE6IHsgaWQ6IHN0cmluZywgbWVldGluZ1R5cGU6IFBhcnRpYWw8TWVldGluZ1R5cGU+LCB1cGRhdGVGaWVsZHM/OiAoa2V5b2YgTWVldGluZ1R5cGUpW10sIEhvc3RJZD86IHN0cmluZyB9KTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGZpZWxkTWFzayA9IGdldEZpZWxkTWFzayh7bzogcmVxLm1lZXRpbmdUeXBlLCB1cGRhdGVGaWVsZHM6IHJlcS51cGRhdGVGaWVsZHN9KTtcbiAgICAgICAgaWYgKGZpZWxkTWFzay5wYXRocy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBvZigpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLnVwZGF0ZU1lZXRpbmdUeXBlKHtcbiAgICAgICAgICAgIGlkOiByZXEuaWQsXG4gICAgICAgICAgICBtZWV0aW5nVHlwZTogTWVldGluZ1R5cGVUb0FwaSh7bWVldGluZ1R5cGU6IHJlcS5tZWV0aW5nVHlwZX0pLFxuICAgICAgICAgICAgZmllbGRNYXNrLFxuICAgICAgICAgICAgaG9zdElkOiByZXEuSG9zdElkXG4gICAgICAgIH0pLnBpcGUobWFwVG8odW5kZWZpbmVkKSk7XG4gICAgfVxuXG4gICAgZGVsZXRlTWVldGluZ1R5cGUocmVxOiB7IGlkOiBzdHJpbmcgfSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5kZWxldGVNZWV0aW5nVHlwZSh7aWQ6IHJlcS5pZH0pLnBpcGUobWFwVG8odW5kZWZpbmVkKSk7XG4gICAgfVxuXG4gICAgZ2V0SG9zdHNGb3JDYWxlbmRhcihyZXE6IHsgY2FsZW5kYXJJZDogc3RyaW5nIH0pOiBPYnNlcnZhYmxlPEhvc3RVc2VyW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UuZ2V0SG9zdHNGb3JDYWxlbmRhcih7Y2FsZW5kYXJJZDogcmVxLmNhbGVuZGFySWR9KS5waXBlKFxuICAgICAgICAgICAgbWFwKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChyZXMuaG9zdFVzZXJzIHx8IFtdKS5tYXAoaG9zdHVzZXIgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaG9zdFVzZXJGcm9tQXBpKGhvc3R1c2VyKVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgfVxuXG4gICAgSXNDYWxlbmRhckNvbmZpZ3VyZWQocmVxOiBJc0NhbGVuZGFyQ29uZmlndXJlZFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPElzQ2FsZW5kYXJDb25maWd1cmVkUmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UuaXNDYWxlbmRhckNvbmZpZ3VyZWQocmVxKTtcbiAgICB9XG5cbiAgICBzZW5kTWVldGluZ1JlcXVlc3RFbWFpbChyZXE6IFNlbmRNZWV0aW5nUmVxdWVzdEVtYWlsUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLnNlbmRNZWV0aW5nUmVxdWVzdEVtYWlsKHJlcSk7XG4gICAgfVxuXG4gICAgY3JlYXRlU2VydmljZShyZXE6IHsgc2VydmljZTogU2VydmljZSwgdXBkYXRlRmllbGRzPzogKGtleW9mIFNlcnZpY2UpW10sIEhvc3RJZD86IHN0cmluZyB9KTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgY29uc3QgZmllbGRNYXNrID0gZ2V0RmllbGRNYXNrKHtvOiByZXEuc2VydmljZSwgdXBkYXRlRmllbGRzOiByZXEudXBkYXRlRmllbGRzfSk7XG4gICAgICAgIGlmIChmaWVsZE1hc2sucGF0aHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5jcmVhdGVTZXJ2aWNlKHtcbiAgICAgICAgICAgIHNlcnZpY2U6IFNlcnZpY2VUeXBlVG9BcGkoe3NlcnZpY2U6IHJlcS5zZXJ2aWNlfSksXG4gICAgICAgICAgICBmaWVsZE1hc2ssXG4gICAgICAgICAgICBob3N0SWQ6IHJlcS5Ib3N0SWRcbiAgICAgICAgfSkucGlwZShtYXAocmVzID0+IHJlcy5pZCkpXG4gICAgfVxuXG4gICAgdXBkYXRlU2VydmljZShyZXE6IHtcbiAgICAgICAgaWQ6IHN0cmluZyxcbiAgICAgICAgc2VydmljZTogUGFydGlhbDxTZXJ2aWNlPixcbiAgICAgICAgdXBkYXRlRmllbGRzPzogKGtleW9mIFNlcnZpY2UpW10sXG4gICAgICAgIEhvc3RJZD86IHN0cmluZ1xuICAgIH0pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgZmllbGRNYXNrID0gZ2V0RmllbGRNYXNrKHtvOiByZXEuc2VydmljZSwgdXBkYXRlRmllbGRzOiByZXEudXBkYXRlRmllbGRzfSk7XG4gICAgICAgIGlmIChmaWVsZE1hc2sucGF0aHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS51cGRhdGVTZXJ2aWNlKHtcbiAgICAgICAgICAgIGlkOiByZXEuaWQsXG4gICAgICAgICAgICBzZXJ2aWNlOiBTZXJ2aWNlVHlwZVRvQXBpKHtzZXJ2aWNlOiByZXEuc2VydmljZX0pLFxuICAgICAgICAgICAgZmllbGRNYXNrLFxuICAgICAgICAgICAgaG9zdElkOiByZXEuSG9zdElkXG4gICAgICAgIH0pLnBpcGUobWFwVG8odW5kZWZpbmVkKSk7XG4gICAgfVxuXG4gICAgZGVsZXRlU2VydmljZShyZXE6IHsgaWQ6IHN0cmluZyB9KTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLmRlbGV0ZVNlcnZpY2Uoe2lkOiByZXEuaWR9KS5waXBlKG1hcFRvKHVuZGVmaW5lZCkpO1xuICAgIH1cblxuICAgIGxpc3RTZXJ2aWNlcyggcmVxOiB7IGhvc3RJZDogc3RyaW5nIH0pOiBPYnNlcnZhYmxlPFNlcnZpY2VbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5saXN0U2VydmljZXMoe2hvc3RJZDogcmVxLmhvc3RJZH0pLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXJlcyB8fCAhcmVzLnNlcnZpY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5zZXJ2aWNlcy5tYXAoc2VydmljZSA9PiBTZXJ2aWNlRnJvbUFwaSh7c2VydmljZUFwaTogc2VydmljZX0pKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgIH1cblxuICAgIGNyZWF0ZUdyb3VwKHJlcTogeyBncm91cDogR3JvdXAsIHVwZGF0ZUZpZWxkcz86IChrZXlvZiBHcm91cClbXSwgSG9zdElkPzogc3RyaW5nIH0pOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICBjb25zdCBmaWVsZE1hc2sgPSBnZXRGaWVsZE1hc2soe286IHJlcS5ncm91cCwgdXBkYXRlRmllbGRzOiByZXEudXBkYXRlRmllbGRzfSk7XG4gICAgICAgIGlmIChmaWVsZE1hc2sucGF0aHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5jcmVhdGVHcm91cCh7XG4gICAgICAgICAgICBncm91cDogR3JvdXBUeXBlVG9BUGkoe2dyb3VwOiByZXEuZ3JvdXB9KSxcbiAgICAgICAgICAgIGZpZWxkTWFzayxcbiAgICAgICAgICAgIGhvc3RJZDogcmVxLkhvc3RJZFxuICAgICAgICB9KS5waXBlKG1hcChyZXMgPT4gcmVzLmlkKSlcbiAgICB9XG5cbiAgICB1cGRhdGVHcm91cChyZXE6IHtcbiAgICAgICAgaWQ6IHN0cmluZyxcbiAgICAgICAgZ3JvdXA6IFBhcnRpYWw8R3JvdXA+LFxuICAgICAgICB1cGRhdGVGaWVsZHM/OiAoa2V5b2YgR3JvdXApW10sXG4gICAgICAgIEhvc3RJZD86IHN0cmluZ1xuICAgIH0pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgZmllbGRNYXNrID0gZ2V0RmllbGRNYXNrKHtvOiByZXEuZ3JvdXAsIHVwZGF0ZUZpZWxkczogcmVxLnVwZGF0ZUZpZWxkc30pO1xuICAgICAgICBpZiAoZmllbGRNYXNrLnBhdGhzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UudXBkYXRlR3JvdXAoe1xuICAgICAgICAgICAgaWQ6IHJlcS5pZCxcbiAgICAgICAgICAgIGdyb3VwOiBHcm91cFR5cGVUb0FQaSh7Z3JvdXA6IHJlcS5ncm91cH0pLFxuICAgICAgICAgICAgZmllbGRNYXNrLFxuICAgICAgICAgICAgaG9zdElkOiByZXEuSG9zdElkXG4gICAgICAgIH0pLnBpcGUobWFwVG8odW5kZWZpbmVkKSk7XG4gICAgfVxuXG4gICAgZGVsZXRlR3JvdXAocmVxOiB7IGlkOiBzdHJpbmcgfSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5kZWxldGVHcm91cCh7aWQ6IHJlcS5pZH0pLnBpcGUobWFwVG8odW5kZWZpbmVkKSk7XG4gICAgfVxuXG4gICAgbGlzdEdyb3VwcyggcmVxOiB7IGhvc3RJZDogc3RyaW5nIH0pOiBPYnNlcnZhYmxlPEdyb3VwW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UubGlzdEdyb3Vwcyh7aG9zdElkOiByZXEuaG9zdElkfSkucGlwZShcbiAgICAgICAgICAgIG1hcChyZXMgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghcmVzIHx8ICFyZXMuZ3JvdXBzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5ncm91cHMubWFwKGdyb3VwID0+IEdyb3VwRnJvbUFwaSh7Z3JvdXBBcGk6IGdyb3VwfSkpXG4gICAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgfVxuXG59XG5cblxuXG4iXX0=
@@ -40,15 +40,17 @@ export class MeetingsService {
40
40
  * @deprecated Use listForUser instead. This method will result in the backend grabbing the userID from the user's JWT
41
41
  * This will eventually no longer be supported because it breaks our impersonation workflows.
42
42
  */
43
- list(meetingSources) {
43
+ list(meetingSources, namespace) {
44
44
  return this._api.list({
45
- queriedSources: meetingSources
45
+ queriedSources: meetingSources,
46
+ namespace: namespace,
46
47
  });
47
48
  }
48
- listForUser(iamUserId, queriedSources) {
49
+ listForUser(iamUserId, namespace, queriedSources) {
49
50
  return this._api.list({
50
- iamUserId,
51
- queriedSources,
51
+ iamUserId: iamUserId,
52
+ namespace: namespace,
53
+ queriedSources: queriedSources,
52
54
  });
53
55
  }
54
56
  startInstantMeeting(meetingTitle, meetingAgenda, meetingSource, gMeetAttendees) {
@@ -165,4 +167,4 @@ function createMeetInstantMeetingRequest(meetingTitle, startDateTime, attendees)
165
167
  };
166
168
  return new GoogleMeetCreateMeetingRequest(req);
167
169
  }
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVldGluZ3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL21lZXRpbmdzX3Nkay9zcmMvbGliL21lZXRpbmdzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQWEsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuQyxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUV0RixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDcEUsT0FBTyxFQUFDLHlCQUF5QixFQUFFLGVBQWUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZGLE9BQU8sRUFBQyx3QkFBd0IsRUFBNEIsTUFBTSwwQkFBMEIsQ0FBQztBQUU3RixPQUFPLEVBQUMsOEJBQThCLEVBQWtDLE1BQU0saUNBQWlDLENBQUM7QUFRaEgsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDOzs7OztBQW1CekUsU0FBUyx1QkFBdUI7SUFDNUIsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLE1BQU0sZ0JBQWdCLEdBQ2xCLG9FQUFvRSxDQUFDO0lBRXpFLElBQUk7UUFDQSxNQUFNLElBQUksR0FBRyxJQUFJLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzQyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDbEIsR0FBRyxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFH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QUFFLHNCQUFzQjtTQUNwQztRQUNELGtCQUFrQixFQUFFO1lBQ2hCLEdBQUcsRUFBRTtnQkFDRCxJQUFJLEVBQUUsY0FBYzthQUN2QjtTQUNKO0tBQ0osQ0FBQTtJQUNELE1BQU0sT0FBTyxHQUErQjtRQUN4QyxPQUFPLEVBQUUsWUFBWTtRQUNyQixLQUFLLEVBQUUsS0FBSztRQUNaLEdBQUcsRUFBRSxHQUFHO1FBQ1IsY0FBYyxFQUFFLGNBQWM7UUFDOUIsU0FBUyxFQUFFLFNBQVM7S0FDdkIsQ0FBQTtJQUNELE1BQU0sR0FBRyxHQUE0QztRQUNqRCxPQUFPLEVBQUUsT0FBTztLQUNuQixDQUFBO0lBQ0QsT0FBTyxJQUFJLDhCQUE4QixDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ25ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCB0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge01lZXRpbmdTb3VyY2VBUElBcGlTZXJ2aWNlfSBmcm9tICcuL19pbnRlcm5hbC9tZWV0aW5nLXNvdXJjZS1hcGkuYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHtNZWV0aW5nU291cmNlTGlzdFJlc3BvbnNlLCBNZWV0aW5nU291cmNlUXVlcnl9IGZyb20gJy4vX2ludGVybmFsL29iamVjdHMvbWVldGluZy1zb3VyY2UnXG5pbXBvcnQge01lZXRpbmdTb3VyY2V9IGZyb20gJy4vX2ludGVybmFsL2VudW1zL21lZXRpbmctc291cmNlLmVudW0nO1xuaW1wb3J0IHtab29tTWVldGluZ1JlY3VycmVuY2VUeXBlLCBab29tTWVldGluZ1R5cGV9IGZyb20gJy4vX2ludGVybmFsL2VudW1zL3pvb20uZW51bSc7XG5pbXBvcnQge0NyZWF0ZVpvb21NZWV0aW5nUmVxdWVzdCwgQ3JlYXRlWm9vbU1lZXRpbmdSZXNwb25zZX0gZnJvbSAnLi9faW50ZXJuYWwvb2JqZWN0cy96b29tJztcbmltcG9ydCB7Q3JlYXRlWm9vbU1lZXRpbmdSZXF1ZXN0SW50ZXJmYWNlLCBab29tTWVldGluZ1JlY3VycmVuY2VJbnRlcmZhY2V9IGZyb20gJy4vX2ludGVybmFsL2ludGVyZmFjZXMvem9vbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtHb29nbGVNZWV0Q3JlYXRlTWVldGluZ1JlcXVlc3QsIEdvb2dsZU1lZXRDcmVhdGVNZWV0aW5nUmVzcG9uc2V9IGZyb20gJy4vX2ludGVybmFsL29iamVjdHMvZ29vZ2xlLW1lZXQnO1xuaW1wb3J0IHtcbiAgICBHb29nbGVNZWV0Q29uZmVyZW5jZURhdGFJbnRlcmZhY2UsXG4gICAgR29vZ2xlTWVldENyZWF0ZU1lZXRpbmdSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIEdvb2dsZU1lZXRNZWV0aW5nQXR0ZW5kZWVJbnRlcmZhY2UsXG4gICAgR29vZ2xlTWVldE1lZXRpbmdEYXRlVGltZUludGVyZmFjZSxcbiAgICBHb29nbGVNZWV0TWVldGluZ0ludGVyZmFjZVxufSBmcm9tICcuL19pbnRlcm5hbC9pbnRlcmZhY2VzL2dvb2dsZS1tZWV0LmludGVyZmFjZSc7XG5pbXBvcnQge1pvb21BcGlTZXJ2aWNlfSBmcm9tICcuL19pbnRlcm5hbC96b29tLmFwaS5zZXJ2aWNlJztcbmltcG9ydCB7R29vZ2xlTWVldEFwaVNlcnZpY2V9IGZyb20gJy4vX2ludGVybmFsL2dvb2dsZS1tZWV0LmFwaS5zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBNZWV0aW5nc1NESyB7XG4gICAgbGlzdChtZWV0aW5nU291cmNlczogTWVldGluZ1NvdXJjZVF1ZXJ5W10pOiBPYnNlcnZhYmxlPE1lZXRpbmdTb3VyY2VMaXN0UmVzcG9uc2U+O1xuXG4gICAgc3RhcnRJbnN0YW50TWVldGluZyhcbiAgICAgICAgbWVldGluZ1RpdGxlOiBzdHJpbmcsXG4gICAgICAgIG1lZXRpbmdBZ2VuZGE6IHN0cmluZyxcbiAgICAgICAgbWVldGluZ1NvdXJjZTogTWVldGluZ1NvdXJjZSxcbiAgICAgICAgZ01lZXRBdHRlbmRlZXM/OiBHb29nbGVNZWV0TWVldGluZ0F0dGVuZGVlSW50ZXJmYWNlW11cbiAgICApOiBPYnNlcnZhYmxlPFN0YXJ0TWVldGluZ1Jlc3BvbnNlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFydE1lZXRpbmdSZXNwb25zZSB7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgam9pblVSTDogc3RyaW5nO1xuICAgIHBhc3N3b3JkOiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlTWVldGluZ1Bhc3N3b3JkKCk6IHN0cmluZyB7XG4gICAgY29uc3Qgem9vbU1heExlbmd0aCA9IDEwO1xuICAgIGNvbnN0IHpvb21BbGxvd2VkQ2hhcnMgPVxuICAgICAgICAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODlALV8qJztcblxuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGludHMgPSBuZXcgVWludDhBcnJheSh6b29tTWF4TGVuZ3RoKTtcbiAgICAgICAgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhpbnRzKTtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oaW50cylcbiAgICAgICAgICAgIC5tYXAoKHY6IG51bWJlcikgPT4gem9vbUFsbG93ZWRDaGFycy5jaGFyQXQodiAlIHpvb21BbGxvd2VkQ2hhcnMubGVuZ3RoKSlcbiAgICAgICAgICAgIC5qb2luKCcnKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1VzZXIgaXMgcHJvYmFibHkgdXNpbmcgYW4gdW5zdXBwb3J0ZWQgYnJvd3Nlci4gJyArXG4gICAgICAgICAgICAnRmFsbGluZyBiYWNrIHRvIGxlc3Mgc2VjdXJlIHBhc3N3b3JkIGdlbmVyYXRpb24nLCBlKTtcbiAgICAgICAgcmV0dXJuIG5ldyBBcnJheSh6b29tTWF4TGVuZ3RoKVxuICAgICAgICAgICAgLm1hcCgoKSA9PiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiB6b29tQWxsb3dlZENoYXJzLmxlbmd0aCkpXG4gICAgICAgICAgICAuam9pbignJyk7XG4gICAgfVxufVxuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBNZWV0aW5nc1NlcnZpY2UgaW1wbGVtZW50cyBNZWV0aW5nc1NESyB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2FwaTogTWVldGluZ1NvdXJjZUFQSUFwaVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgem9vbTogWm9vbUFwaVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbWVldDogR29vZ2xlTWVldEFwaVNlcnZpY2VcbiAgICApIHtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2UgbGlzdEZvclVzZXIgaW5zdGVhZC4gVGhpcyBtZXRob2Qgd2lsbCByZXN1bHQgaW4gdGhlIGJhY2tlbmQgZ3JhYmJpbmcgdGhlIHVzZXJJRCBmcm9tIHRoZSB1c2VyJ3MgSldUXG4gICAgICogVGhpcyB3aWxsIGV2ZW50dWFsbHkgbm8gbG9uZ2VyIGJlIHN1cHBvcnRlZCBiZWNhdXNlIGl0IGJyZWFrcyBvdXIgaW1wZXJzb25hdGlvbiB3b3JrZmxvd3MuXG4gICAgICovXG4gICAgbGlzdChtZWV0aW5nU291cmNlczogTWVldGluZ1NvdXJjZVF1ZXJ5W10pOiBPYnNlcnZhYmxlPE1lZXRpbmdTb3VyY2VMaXN0UmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwaS5saXN0KHtcbiAgICAgICAgICAgIHF1ZXJpZWRTb3VyY2VzOiBtZWV0aW5nU291cmNlc1xuICAgICAgICB9KVxuICAgIH1cblxuICAgIGxpc3RGb3JVc2VyKGlhbVVzZXJJZDogc3RyaW5nLCBxdWVyaWVkU291cmNlczogTWVldGluZ1NvdXJjZVF1ZXJ5W10pOiBPYnNlcnZhYmxlPE1lZXRpbmdTb3VyY2VMaXN0UmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwaS5saXN0KHtcbiAgICAgICAgICAgIGlhbVVzZXJJZCxcbiAgICAgICAgICAgIHF1ZXJpZWRTb3VyY2VzLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzdGFydEluc3RhbnRNZWV0aW5nKFxuICAgICAgICBtZWV0aW5nVGl0bGU6IHN0cmluZyxcbiAgICAgICAgbWVldGluZ0FnZW5kYTogc3RyaW5nLFxuICAgICAgICBtZWV0aW5nU291cmNlOiBNZWV0aW5nU291cmNlLFxuICAgICAgICBnTWVldEF0dGVuZGVlcz86IEdvb2dsZU1lZXRNZWV0aW5nQXR0ZW5kZWVJbnRlcmZhY2VbXVxuICAgICk6IE9ic2VydmFibGU8U3RhcnRNZWV0aW5nUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgICAgICAgc3dpdGNoIChtZWV0aW5nU291cmNlKSB7XG4gICAgICAgICAgICBjYXNlIE1lZXRpbmdTb3VyY2UuTUVFVElOR19TT1VSQ0VfSU5WQUxJRDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcignTWVldGluZyBzb3VyY2Ugd2FzIG5vdCBzcGVjaWZpZWQnKTtcbiAgICAgICAgICAgIGNhc2UgTWVldGluZ1NvdXJjZS5NRUVUSU5HX1NPVVJDRV9aT09NOlxuICAgICAgICAgICAgICAgIGNvbnN0IHJlcSA9IGNyZWF0ZVpvb21JbnN0YW50TWVldGluZ1JlcXVlc3QobWVldGluZ1RpdGxlLCBub3csIG1lZXRpbmdBZ2VuZGEpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnpvb20uY3JlYXRlTWVldGluZyhyZXEpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIG1hcCgocmVzcDogQ3JlYXRlWm9vbU1lZXRpbmdSZXNwb25zZSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0YXJ0TWVldGluZ1Jlc3BvbnNlPnt1cmw6IHJlc3Auam9pblVybCwgcGFzc3dvcmQ6IHJlc3AucGFzc3dvcmQsIGpvaW5VUkw6IHJlc3Auam9pblVybH1cbiAgICAgICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNhc2UgTWVldGluZ1NvdXJjZS5NRUVUSU5HX1NPVVJDRV9HT09HTEVfTUVFVDpcbiAgICAgICAgICAgICAgICBpZiAoIWdNZWV0QXR0ZW5kZWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCdBdHRlbmRlZXMgYXJlIHJlcXVpcmVkIHRvIHN0YXJ0IGEgTWVldCBIYW5nb3V0JylcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgbWVldFJlcSA9IGNyZWF0ZU1lZXRJbnN0YW50TWVldGluZ1JlcXVlc3QobWVldGluZ1RpdGxlLCBub3csIGdNZWV0QXR0ZW5kZWVzKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tZWV0LmNyZWF0ZU1lZXRpbmcobWVldFJlcSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgbWFwKChyZXNwOiBHb29nbGVNZWV0Q3JlYXRlTWVldGluZ1Jlc3BvbnNlKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0YXJ0TWVldGluZ1Jlc3BvbnNlPnt1cmw6IHJlc3AubWVldGluZy5oYW5nb3V0TGluaywgam9pblVSTDogcmVzcC5tZWV0aW5nLmhhbmdvdXRMaW5rfVxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGBVbnJlY29nbml6ZWQgbWVldGluZyBzb3VyY2UgJHttZWV0aW5nU291cmNlfWApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY3JlYXRlQmFzaWNab29tU2NoZWR1bGVkTWVldGluZyh0b3BpYzogc3RyaW5nLCBhZ2VuZGE6IHN0cmluZywgc3RhcnREYXRlVGltZTogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IG51bWJlciwgdGltZXpvbmU6IHN0cmluZywgbWVldGluZ1Bhc3N3b3JkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPENyZWF0ZVpvb21NZWV0aW5nUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxOiBDcmVhdGVab29tTWVldGluZ1JlcXVlc3QgPSBuZXcgQ3JlYXRlWm9vbU1lZXRpbmdSZXF1ZXN0KHtcbiAgICAgICAgICAgIHRvcGljOiB0b3BpYyxcbiAgICAgICAgICAgIHR5cGU6IFpvb21NZWV0aW5nVHlwZS5aT09NX01FRVRJTkdfVFlQRV9TQ0hFRFVMRUQsXG4gICAgICAgICAgICBzdGFydFRpbWU6IHN0YXJ0RGF0ZVRpbWUsXG4gICAgICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXG4gICAgICAgICAgICB0aW1lem9uZTogdGltZXpvbmUsXG4gICAgICAgICAgICBwYXNzd29yZDogbWVldGluZ1Bhc3N3b3JkID8gbWVldGluZ1Bhc3N3b3JkIDogZ2VuZXJhdGVNZWV0aW5nUGFzc3dvcmQoKSxcbiAgICAgICAgICAgIGFnZW5kYTogYWdlbmRhLFxuICAgICAgICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgICAgICAgICBqb2luQmVmb3JlSG9zdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBlbmZvcmNlTG9naW46IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVjdXJyZW5jZToge1xuICAgICAgICAgICAgICAgIHR5cGU6IFpvb21NZWV0aW5nUmVjdXJyZW5jZVR5cGUuWk9PTV9NRUVUSU5HX1JFQ1VSUkVOQ0VfVFlQRV9EQUlMWVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy56b29tLmNyZWF0ZU1lZXRpbmcocmVxKTtcbiAgICB9XG5cbiAgICBjcmVhdGVCYXNpY0dvb2dsZU1lZXRpbmcoXG4gICAgICAgIHRvcGljOiBzdHJpbmcsXG4gICAgICAgIGFnZW5kYTogc3RyaW5nLFxuICAgICAgICBzdGFydERhdGVUaW1lOiBzdHJpbmcsXG4gICAgICAgIGVuZERhdGVUaW1lOiBzdHJpbmcsXG4gICAgICAgIHRpbWV6b25lOiBzdHJpbmcsXG4gICAgICAgIGF0dGVuZGVlczogR29vZ2xlTWVldE1lZXRpbmdBdHRlbmRlZUludGVyZmFjZVtdXG4gICAgKTogT2JzZXJ2YWJsZTxHb29nbGVNZWV0Q3JlYXRlTWVldGluZ1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcTogR29vZ2xlTWVldENyZWF0ZU1lZXRpbmdSZXF1ZXN0ID0gbmV3IEdvb2dsZU1lZXRDcmVhdGVNZWV0aW5nUmVxdWVzdCh7XG4gICAgICAgICAgICBtZWV0aW5nOiB7XG4gICAgICAgICAgICAgICAgYXR0ZW5kZWVzOiBhdHRlbmRlZXMsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGFnZW5kYSxcbiAgICAgICAgICAgICAgICBzdGFydDoge1xuICAgICAgICAgICAgICAgICAgICBkYXRlVGltZTogc3RhcnREYXRlVGltZSxcbiAgICAgICAgICAgICAgICAgICAgdGltZVpvbmU6IHRpbWV6b25lXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbmQ6IHtcbiAgICAgICAgICAgICAgICAgICAgZGF0ZVRpbWU6IGVuZERhdGVUaW1lLFxuICAgICAgICAgICAgICAgICAgICB0aW1lWm9uZTogdGltZXpvbmVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRvcGljXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLm1lZXQuY3JlYXRlTWVldGluZyhyZXEpO1xuICAgIH1cblxufVxuXG5mdW5jdGlvbiBjcmVhdGVab29tSW5zdGFudE1lZXRpbmdSZXF1ZXN0KFxuICAgIG1lZXRpbmdUaXRsZTogc3RyaW5nLCBub3c6IERhdGUsIG1lZXRpbmdBZ2VuZGE6IHN0cmluZyxcbik6IENyZWF0ZVpvb21NZWV0aW5nUmVxdWVzdCB7XG4gICAgY29uc3QgcmVjdXJyZW5jZTogWm9vbU1lZXRpbmdSZWN1cnJlbmNlSW50ZXJmYWNlID0ge1xuICAgICAgICB0eXBlOiBab29tTWVldGluZ1JlY3VycmVuY2VUeXBlLlpPT01fTUVFVElOR19SRUNVUlJFTkNFX1RZUEVfREFJTFksXG4gICAgICAgIHJlcGVhdEludGVydmFsOiAwLFxuICAgIH07XG4gICAgY29uc3QgcmVxOiBDcmVhdGVab29tTWVldGluZ1JlcXVlc3RJbnRlcmZhY2UgPSB7XG4gICAgICAgIHRvcGljOiBtZWV0aW5nVGl0bGUsXG4gICAgICAgIHR5cGU6IFpvb21NZWV0aW5nVHlwZS5aT09NX01FRVRJTkdfVFlQRV9JTlNUQU5ULFxuICAgICAgICBzdGFydFRpbWU6IG5vdy50b0lTT1N0cmluZygpLFxuICAgICAgICBkdXJhdGlvbjogdW5kZWZpbmVkLCAvLyBPbmx5IHVzZWQgd2l0aCBzY2hlZHVsZWQgbWVldGluZ3NcbiAgICAgICAgdGltZXpvbmU6ICdVVEMnLFxuICAgICAgICBwYXNzd29yZDogZ2VuZXJhdGVNZWV0aW5nUGFzc3dvcmQoKSxcbiAgICAgICAgYWdlbmRhOiBtZWV0aW5nQWdlbmRhLFxuICAgICAgICB0cmFja2luZ0ZpZWxkczogW10sXG4gICAgICAgIHJlY3VycmVuY2U6IHJlY3VycmVuY2UsXG4gICAgICAgIHNldHRpbmdzOiB1bmRlZmluZWQsIC8vIE9ubHkgdXNlZCB3aXRoIHJlY3VycmluZyBtZWV0aW5nc1xuICAgIH07XG4gICAgcmV0dXJuIG5ldyBDcmVhdGVab29tTWVldGluZ1JlcXVlc3QocmVxKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlTWVldEluc3RhbnRNZWV0aW5nUmVxdWVzdChcbiAgICBtZWV0aW5nVGl0bGU6IHN0cmluZywgc3RhcnREYXRlVGltZTogRGF0ZSwgYXR0ZW5kZWVzOiBHb29nbGVNZWV0TWVldGluZ0F0dGVuZGVlSW50ZXJmYWNlW10sXG4pOiBHb29nbGVNZWV0Q3JlYXRlTWVldGluZ1JlcXVlc3Qge1xuICAgIGNvbnN0IHN0YXJ0OiBHb29nbGVNZWV0TWVldGluZ0RhdGVUaW1lSW50ZXJmYWNlID0ge1xuICAgICAgICBkYXRlVGltZTogc3RhcnREYXRlVGltZS50b0lTT1N0cmluZygpLFxuICAgICAgICB0aW1lWm9uZTogJ1VUQydcbiAgICB9XG4gICAgY29uc3QgZW5kVGltZSA9IG5ldyBEYXRlKHN0YXJ0RGF0ZVRpbWUuc2V0TWludXRlcyhzdGFydERhdGVUaW1lLmdldE1pbnV0ZXMoKSArIDMwKSk7XG4gICAgY29uc3QgZW5kOiBHb29nbGVNZWV0TWVldGluZ0RhdGVUaW1lSW50ZXJmYWNlID0ge1xuICAgICAgICBkYXRlVGltZTogZW5kVGltZS50b0lTT1N0cmluZygpLFxuICAgICAgICB0aW1lWm9uZTogJ1VUQydcbiAgICB9XG4gICAgY29uc3QgY29uZmVyZW5jZURhdGE6IEdvb2dsZU1lZXRDb25mZXJlbmNlRGF0YUludGVyZmFjZSA9IHtcbiAgICAgICAgY3JlYXRlUmVxdWVzdDoge1xuICAgICAgICAgICAgcmVxdWVzdElkOiAnaW5zdGFudC1tZWV0LW1lZXRpbmcnXG4gICAgICAgIH0sXG4gICAgICAgIGNvbmZlcmVuY2VTb2x1dGlvbjoge1xuICAgICAgICAgICAga2V5OiB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ2V2ZW50SGFuZ291dCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBtZWV0aW5nOiBHb29nbGVNZWV0TWVldGluZ0ludGVyZmFjZSA9IHtcbiAgICAgICAgc3VtbWFyeTogbWVldGluZ1RpdGxlLFxuICAgICAgICBzdGFydDogc3RhcnQsXG4gICAgICAgIGVuZDogZW5kLFxuICAgICAgICBjb25mZXJlbmNlRGF0YTogY29uZmVyZW5jZURhdGEsXG4gICAgICAgIGF0dGVuZGVlczogYXR0ZW5kZWVzLFxuICAgIH1cbiAgICBjb25zdCByZXE6IEdvb2dsZU1lZXRDcmVhdGVNZWV0aW5nUmVxdWVzdEludGVyZmFjZSA9IHtcbiAgICAgICAgbWVldGluZzogbWVldGluZyxcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBHb29nbGVNZWV0Q3JlYXRlTWVldGluZ1JlcXVlc3QocmVxKTtcbn1cbiJdfQ==
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVldGluZ3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL21lZXRpbmdzX3Nkay9zcmMvbGliL21lZXRpbmdzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQWEsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuQyxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUV0RixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDcEUsT0FBTyxFQUFDLHlCQUF5QixFQUFFLGVBQWUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZGLE9BQU8sRUFBQyx3QkFBd0IsRUFBNEIsTUFBTSwwQkFBMEIsQ0FBQztBQUU3RixPQUFPLEVBQUMsOEJBQThCLEVBQWtDLE1BQU0saUNBQWlDLENBQUM7QUFRaEgsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDOzs7OztBQW1CekUsU0FBUyx1QkFBdUI7SUFDNUIsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLE1BQU0sZ0JBQWdCLEdBQ2xCLG9FQUFvRSxDQUFDO0lBRXpFLElBQUk7UUFDQSxNQUFNLElBQUksR0FBRyxJQUFJLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzQyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDbEIsR0FBRyxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFH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RUFBRTtRQUMvQixRQUFRLEVBQUUsS0FBSztLQUNsQixDQUFBO0lBQ0QsTUFBTSxjQUFjLEdBQXNDO1FBQ3RELGFBQWEsRUFBRTtZQUNYLFNBQVMsRUFBRSxzQkFBc0I7U0FDcEM7UUFDRCxrQkFBa0IsRUFBRTtZQUNoQixHQUFHLEVBQUU7Z0JBQ0QsSUFBSSxFQUFFLGNBQWM7YUFDdkI7U0FDSjtLQUNKLENBQUE7SUFDRCxNQUFNLE9BQU8sR0FBK0I7UUFDeEMsT0FBTyxFQUFFLFlBQVk7UUFDckIsS0FBSyxFQUFFLEtBQUs7UUFDWixHQUFHLEVBQUUsR0FBRztRQUNSLGNBQWMsRUFBRSxjQUFjO1FBQzlCLFNBQVMsRUFBRSxTQUFTO0tBQ3ZCLENBQUE7SUFDRCxNQUFNLEdBQUcsR0FBNEM7UUFDakQsT0FBTyxFQUFFLE9BQU87S0FDbkIsQ0FBQTtJQUNELE9BQU8sSUFBSSw4QkFBOEIsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgdGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtNZWV0aW5nU291cmNlQVBJQXBpU2VydmljZX0gZnJvbSAnLi9faW50ZXJuYWwvbWVldGluZy1zb3VyY2UtYXBpLmFwaS5zZXJ2aWNlJztcbmltcG9ydCB7TWVldGluZ1NvdXJjZUxpc3RSZXNwb25zZSwgTWVldGluZ1NvdXJjZVF1ZXJ5fSBmcm9tICcuL19pbnRlcm5hbC9vYmplY3RzL21lZXRpbmctc291cmNlJ1xuaW1wb3J0IHtNZWV0aW5nU291cmNlfSBmcm9tICcuL19pbnRlcm5hbC9lbnVtcy9tZWV0aW5nLXNvdXJjZS5lbnVtJztcbmltcG9ydCB7Wm9vbU1lZXRpbmdSZWN1cnJlbmNlVHlwZSwgWm9vbU1lZXRpbmdUeXBlfSBmcm9tICcuL19pbnRlcm5hbC9lbnVtcy96b29tLmVudW0nO1xuaW1wb3J0IHtDcmVhdGVab29tTWVldGluZ1JlcXVlc3QsIENyZWF0ZVpvb21NZWV0aW5nUmVzcG9uc2V9IGZyb20gJy4vX2ludGVybmFsL29iamVjdHMvem9vbSc7XG5pbXBvcnQge0NyZWF0ZVpvb21NZWV0aW5nUmVxdWVzdEludGVyZmFjZSwgWm9vbU1lZXRpbmdSZWN1cnJlbmNlSW50ZXJmYWNlfSBmcm9tICcuL19pbnRlcm5hbC9pbnRlcmZhY2VzL3pvb20uaW50ZXJmYWNlJztcbmltcG9ydCB7R29vZ2xlTWVldENyZWF0ZU1lZXRpbmdSZXF1ZXN0LCBHb29nbGVNZWV0Q3JlYXRlTWVldGluZ1Jlc3BvbnNlfSBmcm9tICcuL19pbnRlcm5hbC9vYmplY3RzL2dvb2dsZS1tZWV0JztcbmltcG9ydCB7XG4gICAgR29vZ2xlTWVldENvbmZlcmVuY2VEYXRhSW50ZXJmYWNlLFxuICAgIEdvb2dsZU1lZXRDcmVhdGVNZWV0aW5nUmVxdWVzdEludGVyZmFjZSxcbiAgICBHb29nbGVNZWV0TWVldGluZ0F0dGVuZGVlSW50ZXJmYWNlLFxuICAgIEdvb2dsZU1lZXRNZWV0aW5nRGF0ZVRpbWVJbnRlcmZhY2UsXG4gICAgR29vZ2xlTWVldE1lZXRpbmdJbnRlcmZhY2Vcbn0gZnJvbSAnLi9faW50ZXJuYWwvaW50ZXJmYWNlcy9nb29nbGUtbWVldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtab29tQXBpU2VydmljZX0gZnJvbSAnLi9faW50ZXJuYWwvem9vbS5hcGkuc2VydmljZSc7XG5pbXBvcnQge0dvb2dsZU1lZXRBcGlTZXJ2aWNlfSBmcm9tICcuL19pbnRlcm5hbC9nb29nbGUtbWVldC5hcGkuc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVldGluZ3NTREsge1xuICAgIGxpc3QobWVldGluZ1NvdXJjZXM6IE1lZXRpbmdTb3VyY2VRdWVyeVtdKTogT2JzZXJ2YWJsZTxNZWV0aW5nU291cmNlTGlzdFJlc3BvbnNlPjtcblxuICAgIHN0YXJ0SW5zdGFudE1lZXRpbmcoXG4gICAgICAgIG1lZXRpbmdUaXRsZTogc3RyaW5nLFxuICAgICAgICBtZWV0aW5nQWdlbmRhOiBzdHJpbmcsXG4gICAgICAgIG1lZXRpbmdTb3VyY2U6IE1lZXRpbmdTb3VyY2UsXG4gICAgICAgIGdNZWV0QXR0ZW5kZWVzPzogR29vZ2xlTWVldE1lZXRpbmdBdHRlbmRlZUludGVyZmFjZVtdXG4gICAgKTogT2JzZXJ2YWJsZTxTdGFydE1lZXRpbmdSZXNwb25zZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhcnRNZWV0aW5nUmVzcG9uc2Uge1xuICAgIHVybDogc3RyaW5nO1xuICAgIGpvaW5VUkw6IHN0cmluZztcbiAgICBwYXNzd29yZDogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBnZW5lcmF0ZU1lZXRpbmdQYXNzd29yZCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHpvb21NYXhMZW5ndGggPSAxMDtcbiAgICBjb25zdCB6b29tQWxsb3dlZENoYXJzID1cbiAgICAgICAgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5QC1fKic7XG5cbiAgICB0cnkge1xuICAgICAgICBjb25zdCBpbnRzID0gbmV3IFVpbnQ4QXJyYXkoem9vbU1heExlbmd0aCk7XG4gICAgICAgIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMoaW50cyk7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKGludHMpXG4gICAgICAgICAgICAubWFwKCh2OiBudW1iZXIpID0+IHpvb21BbGxvd2VkQ2hhcnMuY2hhckF0KHYgJSB6b29tQWxsb3dlZENoYXJzLmxlbmd0aCkpXG4gICAgICAgICAgICAuam9pbignJyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdVc2VyIGlzIHByb2JhYmx5IHVzaW5nIGFuIHVuc3VwcG9ydGVkIGJyb3dzZXIuICcgK1xuICAgICAgICAgICAgJ0ZhbGxpbmcgYmFjayB0byBsZXNzIHNlY3VyZSBwYXNzd29yZCBnZW5lcmF0aW9uJywgZSk7XG4gICAgICAgIHJldHVybiBuZXcgQXJyYXkoem9vbU1heExlbmd0aClcbiAgICAgICAgICAgIC5tYXAoKCkgPT4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogem9vbUFsbG93ZWRDaGFycy5sZW5ndGgpKVxuICAgICAgICAgICAgLmpvaW4oJycpO1xuICAgIH1cbn1cblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgTWVldGluZ3NTZXJ2aWNlIGltcGxlbWVudHMgTWVldGluZ3NTREsge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9hcGk6IE1lZXRpbmdTb3VyY2VBUElBcGlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHpvb206IFpvb21BcGlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1lZXQ6IEdvb2dsZU1lZXRBcGlTZXJ2aWNlXG4gICAgKSB7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgVXNlIGxpc3RGb3JVc2VyIGluc3RlYWQuIFRoaXMgbWV0aG9kIHdpbGwgcmVzdWx0IGluIHRoZSBiYWNrZW5kIGdyYWJiaW5nIHRoZSB1c2VySUQgZnJvbSB0aGUgdXNlcidzIEpXVFxuICAgICAqIFRoaXMgd2lsbCBldmVudHVhbGx5IG5vIGxvbmdlciBiZSBzdXBwb3J0ZWQgYmVjYXVzZSBpdCBicmVha3Mgb3VyIGltcGVyc29uYXRpb24gd29ya2Zsb3dzLlxuICAgICAqL1xuICAgIGxpc3QobWVldGluZ1NvdXJjZXM6IE1lZXRpbmdTb3VyY2VRdWVyeVtdLCBuYW1lc3BhY2U/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPE1lZXRpbmdTb3VyY2VMaXN0UmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwaS5saXN0KHtcbiAgICAgICAgICAgIHF1ZXJpZWRTb3VyY2VzOiBtZWV0aW5nU291cmNlcyxcbiAgICAgICAgICAgIG5hbWVzcGFjZTogbmFtZXNwYWNlLFxuICAgICAgICB9KVxuICAgIH1cblxuICAgIGxpc3RGb3JVc2VyKGlhbVVzZXJJZDogc3RyaW5nLCBuYW1lc3BhY2U6IHN0cmluZywgcXVlcmllZFNvdXJjZXM6IE1lZXRpbmdTb3VyY2VRdWVyeVtdKTogT2JzZXJ2YWJsZTxNZWV0aW5nU291cmNlTGlzdFJlc3BvbnNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcGkubGlzdCh7XG4gICAgICAgICAgICBpYW1Vc2VySWQ6IGlhbVVzZXJJZCxcbiAgICAgICAgICAgIG5hbWVzcGFjZTogbmFtZXNwYWNlLFxuICAgICAgICAgICAgcXVlcmllZFNvdXJjZXM6IHF1ZXJpZWRTb3VyY2VzLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzdGFydEluc3RhbnRNZWV0aW5nKFxuICAgICAgICBtZWV0aW5nVGl0bGU6IHN0cmluZyxcbiAgICAgICAgbWVldGluZ0FnZW5kYTogc3RyaW5nLFxuICAgICAgICBtZWV0aW5nU291cmNlOiBNZWV0aW5nU291cmNlLFxuICAgICAgICBnTWVldEF0dGVuZGVlcz86IEdvb2dsZU1lZXRNZWV0aW5nQXR0ZW5kZWVJbnRlcmZhY2VbXVxuICAgICk6IE9ic2VydmFibGU8U3RhcnRNZWV0aW5nUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgICAgICAgc3dpdGNoIChtZWV0aW5nU291cmNlKSB7XG4gICAgICAgICAgICBjYXNlIE1lZXRpbmdTb3VyY2UuTUVFVElOR19TT1VSQ0VfSU5WQUxJRDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcignTWVldGluZyBzb3VyY2Ugd2FzIG5vdCBzcGVjaWZpZWQnKTtcbiAgICAgICAgICAgIGNhc2UgTWVldGluZ1NvdXJjZS5NRUVUSU5HX1NPVVJDRV9aT09NOlxuICAgICAgICAgICAgICAgIGNvbnN0IHJlcSA9IGNyZWF0ZVpvb21JbnN0YW50TWVldGluZ1JlcXVlc3QobWVldGluZ1RpdGxlLCBub3csIG1lZXRpbmdBZ2VuZGEpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnpvb20uY3JlYXRlTWVldGluZyhyZXEpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIG1hcCgocmVzcDogQ3JlYXRlWm9vbU1lZXRpbmdSZXNwb25zZSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0YXJ0TWVldGluZ1Jlc3BvbnNlPnt1cmw6IHJlc3Auam9pblVybCwgcGFzc3dvcmQ6IHJlc3AucGFzc3dvcmQsIGpvaW5VUkw6IHJlc3Auam9pblVybH1cbiAgICAgICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNhc2UgTWVldGluZ1NvdXJjZS5NRUVUSU5HX1NPVVJDRV9HT09HTEVfTUVFVDpcbiAgICAgICAgICAgICAgICBpZiAoIWdNZWV0QXR0ZW5kZWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCdBdHRlbmRlZXMgYXJlIHJlcXVpcmVkIHRvIHN0YXJ0IGEgTWVldCBIYW5nb3V0JylcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgbWVldFJlcSA9IGNyZWF0ZU1lZXRJbnN0YW50TWVldGluZ1JlcXVlc3QobWVldGluZ1RpdGxlLCBub3csIGdNZWV0QXR0ZW5kZWVzKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tZWV0LmNyZWF0ZU1lZXRpbmcobWVldFJlcSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgbWFwKChyZXNwOiBHb29nbGVNZWV0Q3JlYXRlTWVldGluZ1Jlc3BvbnNlKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0YXJ0TWVldGluZ1Jlc3BvbnNlPnt1cmw6IHJlc3AubWVldGluZy5oYW5nb3V0TGluaywgam9pblVSTDogcmVzcC5tZWV0aW5nLmhhbmdvdXRMaW5rfVxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGBVbnJlY29nbml6ZWQgbWVldGluZyBzb3VyY2UgJHttZWV0aW5nU291cmNlfWApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY3JlYXRlQmFzaWNab29tU2NoZWR1bGVkTWVldGluZyh0b3BpYzogc3RyaW5nLCBhZ2VuZGE6IHN0cmluZywgc3RhcnREYXRlVGltZTogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IG51bWJlciwgdGltZXpvbmU6IHN0cmluZywgbWVldGluZ1Bhc3N3b3JkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPENyZWF0ZVpvb21NZWV0aW5nUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxOiBDcmVhdGVab29tTWVldGluZ1JlcXVlc3QgPSBuZXcgQ3JlYXRlWm9vbU1lZXRpbmdSZXF1ZXN0KHtcbiAgICAgICAgICAgIHRvcGljOiB0b3BpYyxcbiAgICAgICAgICAgIHR5cGU6IFpvb21NZWV0aW5nVHlwZS5aT09NX01FRVRJTkdfVFlQRV9TQ0hFRFVMRUQsXG4gICAgICAgICAgICBzdGFydFRpbWU6IHN0YXJ0RGF0ZVRpbWUsXG4gICAgICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXG4gICAgICAgICAgICB0aW1lem9uZTogdGltZXpvbmUsXG4gICAgICAgICAgICBwYXNzd29yZDogbWVldGluZ1Bhc3N3b3JkID8gbWVldGluZ1Bhc3N3b3JkIDogZ2VuZXJhdGVNZWV0aW5nUGFzc3dvcmQoKSxcbiAgICAgICAgICAgIGFnZW5kYTogYWdlbmRhLFxuICAgICAgICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgICAgICAgICBqb2luQmVmb3JlSG9zdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBlbmZvcmNlTG9naW46IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVjdXJyZW5jZToge1xuICAgICAgICAgICAgICAgIHR5cGU6IFpvb21NZWV0aW5nUmVjdXJyZW5jZVR5cGUuWk9PTV9NRUVUSU5HX1JFQ1VSUkVOQ0VfVFlQRV9EQUlMWVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy56b29tLmNyZWF0ZU1lZXRpbmcocmVxKTtcbiAgICB9XG5cbiAgICBjcmVhdGVCYXNpY0dvb2dsZU1lZXRpbmcoXG4gICAgICAgIHRvcGljOiBzdHJpbmcsXG4gICAgICAgIGFnZW5kYTogc3RyaW5nLFxuICAgICAgICBzdGFydERhdGVUaW1lOiBzdHJpbmcsXG4gICAgICAgIGVuZERhdGVUaW1lOiBzdHJpbmcsXG4gICAgICAgIHRpbWV6b25lOiBzdHJpbmcsXG4gICAgICAgIGF0dGVuZGVlczogR29vZ2xlTWVldE1lZXRpbmdBdHRlbmRlZUludGVyZmFjZVtdXG4gICAgKTogT2JzZXJ2YWJsZTxHb29nbGVNZWV0Q3JlYXRlTWVldGluZ1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcTogR29vZ2xlTWVldENyZWF0ZU1lZXRpbmdSZXF1ZXN0ID0gbmV3IEdvb2dsZU1lZXRDcmVhdGVNZWV0aW5nUmVxdWVzdCh7XG4gICAgICAgICAgICBtZWV0aW5nOiB7XG4gICAgICAgICAgICAgICAgYXR0ZW5kZWVzOiBhdHRlbmRlZXMsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGFnZW5kYSxcbiAgICAgICAgICAgICAgICBzdGFydDoge1xuICAgICAgICAgICAgICAgICAgICBkYXRlVGltZTogc3RhcnREYXRlVGltZSxcbiAgICAgICAgICAgICAgICAgICAgdGltZVpvbmU6IHRpbWV6b25lXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbmQ6IHtcbiAgICAgICAgICAgICAgICAgICAgZGF0ZVRpbWU6IGVuZERhdGVUaW1lLFxuICAgICAgICAgICAgICAgICAgICB0aW1lWm9uZTogdGltZXpvbmVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRvcGljXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLm1lZXQuY3JlYXRlTWVldGluZyhyZXEpO1xuICAgIH1cblxufVxuXG5mdW5jdGlvbiBjcmVhdGVab29tSW5zdGFudE1lZXRpbmdSZXF1ZXN0KFxuICAgIG1lZXRpbmdUaXRsZTogc3RyaW5nLCBub3c6IERhdGUsIG1lZXRpbmdBZ2VuZGE6IHN0cmluZyxcbik6IENyZWF0ZVpvb21NZWV0aW5nUmVxdWVzdCB7XG4gICAgY29uc3QgcmVjdXJyZW5jZTogWm9vbU1lZXRpbmdSZWN1cnJlbmNlSW50ZXJmYWNlID0ge1xuICAgICAgICB0eXBlOiBab29tTWVldGluZ1JlY3VycmVuY2VUeXBlLlpPT01fTUVFVElOR19SRUNVUlJFTkNFX1RZUEVfREFJTFksXG4gICAgICAgIHJlcGVhdEludGVydmFsOiAwLFxuICAgIH07XG4gICAgY29uc3QgcmVxOiBDcmVhdGVab29tTWVldGluZ1JlcXVlc3RJbnRlcmZhY2UgPSB7XG4gICAgICAgIHRvcGljOiBtZWV0aW5nVGl0bGUsXG4gICAgICAgIHR5cGU6IFpvb21NZWV0aW5nVHlwZS5aT09NX01FRVRJTkdfVFlQRV9JTlNUQU5ULFxuICAgICAgICBzdGFydFRpbWU6IG5vdy50b0lTT1N0cmluZygpLFxuICAgICAgICBkdXJhdGlvbjogdW5kZWZpbmVkLCAvLyBPbmx5IHVzZWQgd2l0aCBzY2hlZHVsZWQgbWVldGluZ3NcbiAgICAgICAgdGltZXpvbmU6ICdVVEMnLFxuICAgICAgICBwYXNzd29yZDogZ2VuZXJhdGVNZWV0aW5nUGFzc3dvcmQoKSxcbiAgICAgICAgYWdlbmRhOiBtZWV0aW5nQWdlbmRhLFxuICAgICAgICB0cmFja2luZ0ZpZWxkczogW10sXG4gICAgICAgIHJlY3VycmVuY2U6IHJlY3VycmVuY2UsXG4gICAgICAgIHNldHRpbmdzOiB1bmRlZmluZWQsIC8vIE9ubHkgdXNlZCB3aXRoIHJlY3VycmluZyBtZWV0aW5nc1xuICAgIH07XG4gICAgcmV0dXJuIG5ldyBDcmVhdGVab29tTWVldGluZ1JlcXVlc3QocmVxKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlTWVldEluc3RhbnRNZWV0aW5nUmVxdWVzdChcbiAgICBtZWV0aW5nVGl0bGU6IHN0cmluZywgc3RhcnREYXRlVGltZTogRGF0ZSwgYXR0ZW5kZWVzOiBHb29nbGVNZWV0TWVldGluZ0F0dGVuZGVlSW50ZXJmYWNlW10sXG4pOiBHb29nbGVNZWV0Q3JlYXRlTWVldGluZ1JlcXVlc3Qge1xuICAgIGNvbnN0IHN0YXJ0OiBHb29nbGVNZWV0TWVldGluZ0RhdGVUaW1lSW50ZXJmYWNlID0ge1xuICAgICAgICBkYXRlVGltZTogc3RhcnREYXRlVGltZS50b0lTT1N0cmluZygpLFxuICAgICAgICB0aW1lWm9uZTogJ1VUQydcbiAgICB9XG4gICAgY29uc3QgZW5kVGltZSA9IG5ldyBEYXRlKHN0YXJ0RGF0ZVRpbWUuc2V0TWludXRlcyhzdGFydERhdGVUaW1lLmdldE1pbnV0ZXMoKSArIDMwKSk7XG4gICAgY29uc3QgZW5kOiBHb29nbGVNZWV0TWVldGluZ0RhdGVUaW1lSW50ZXJmYWNlID0ge1xuICAgICAgICBkYXRlVGltZTogZW5kVGltZS50b0lTT1N0cmluZygpLFxuICAgICAgICB0aW1lWm9uZTogJ1VUQydcbiAgICB9XG4gICAgY29uc3QgY29uZmVyZW5jZURhdGE6IEdvb2dsZU1lZXRDb25mZXJlbmNlRGF0YUludGVyZmFjZSA9IHtcbiAgICAgICAgY3JlYXRlUmVxdWVzdDoge1xuICAgICAgICAgICAgcmVxdWVzdElkOiAnaW5zdGFudC1tZWV0LW1lZXRpbmcnXG4gICAgICAgIH0sXG4gICAgICAgIGNvbmZlcmVuY2VTb2x1dGlvbjoge1xuICAgICAgICAgICAga2V5OiB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ2V2ZW50SGFuZ291dCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBtZWV0aW5nOiBHb29nbGVNZWV0TWVldGluZ0ludGVyZmFjZSA9IHtcbiAgICAgICAgc3VtbWFyeTogbWVldGluZ1RpdGxlLFxuICAgICAgICBzdGFydDogc3RhcnQsXG4gICAgICAgIGVuZDogZW5kLFxuICAgICAgICBjb25mZXJlbmNlRGF0YTogY29uZmVyZW5jZURhdGEsXG4gICAgICAgIGF0dGVuZGVlczogYXR0ZW5kZWVzLFxuICAgIH1cbiAgICBjb25zdCByZXE6IEdvb2dsZU1lZXRDcmVhdGVNZWV0aW5nUmVxdWVzdEludGVyZmFjZSA9IHtcbiAgICAgICAgbWVldGluZzogbWVldGluZyxcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBHb29nbGVNZWV0Q3JlYXRlTWVldGluZ1JlcXVlc3QocmVxKTtcbn1cbiJdfQ==
@@ -0,0 +1,69 @@
1
+ export function GroupTypeToAPi(req) {
2
+ const m = req.group;
3
+ if (!m) {
4
+ return {};
5
+ }
6
+ return {
7
+ id: m.id || undefined,
8
+ name: m.name || undefined,
9
+ description: m.description || undefined,
10
+ slug: m.slug || undefined,
11
+ isPinned: m.isPinned || undefined,
12
+ associations: m.associations ? m.associations.map(AssociationTypeToApi) : undefined
13
+ };
14
+ }
15
+ export function ServiceTypeToApi(req) {
16
+ const m = req.service;
17
+ if (!m) {
18
+ return {};
19
+ }
20
+ return {
21
+ id: m.id || undefined,
22
+ name: m.name || undefined,
23
+ description: m.description || undefined,
24
+ slug: m.slug || undefined,
25
+ isPinned: m.isPinned || undefined,
26
+ associations: m.associations ? m.associations.map(AssociationTypeToApi) : undefined
27
+ };
28
+ }
29
+ export function AssociationTypeToApi(association) {
30
+ return {
31
+ id: association.id || undefined,
32
+ name: association.name || undefined,
33
+ eventType: association.eventType || undefined,
34
+ identifier: association.identifier || undefined,
35
+ isEditable: association.isEditable || true,
36
+ creatorUserName: association.creatorUserName || undefined
37
+ };
38
+ }
39
+ export function AssociationFromApi(associationApi) {
40
+ return {
41
+ id: associationApi.id || '',
42
+ name: associationApi.name || '',
43
+ eventType: associationApi.eventType || '',
44
+ identifier: associationApi.identifier || '',
45
+ isEditable: associationApi.isEditable || true,
46
+ creatorUserName: associationApi.creatorUserName || ''
47
+ };
48
+ }
49
+ export function GroupFromApi(req) {
50
+ return {
51
+ id: req.groupApi.id || '',
52
+ name: req.groupApi.name || '',
53
+ description: req.groupApi.description || '',
54
+ slug: req.groupApi.slug || '',
55
+ isPinned: req.groupApi.isPinned || false,
56
+ associations: req.groupApi.associations ? req.groupApi.associations.map(AssociationFromApi) : []
57
+ };
58
+ }
59
+ export function ServiceFromApi(req) {
60
+ return {
61
+ id: req.serviceApi.id || '',
62
+ name: req.serviceApi.name || '',
63
+ description: req.serviceApi.description || '',
64
+ slug: req.serviceApi.slug || '',
65
+ isPinned: req.serviceApi.isPinned || false,
66
+ associations: req.serviceApi.associations ? req.serviceApi.associations.map(AssociationFromApi) : []
67
+ };
68
+ }
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXBzLWFuZC1zZXJ2aWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21lZXRpbmdzX3Nkay9zcmMvbGliL3NoYXJlZC9ncm91cHMtYW5kLXNlcnZpY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtDQSxNQUFNLFVBQVUsY0FBYyxDQUFDLEdBQThCO0lBQ3pELE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7SUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRTtRQUNKLE9BQU8sRUFBRSxDQUFDO0tBQ2I7SUFDRCxPQUFPO1FBQ0gsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksU0FBUztRQUNyQixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxTQUFTO1FBQ3pCLFdBQVcsRUFBRSxDQUFDLENBQUMsV0FBVyxJQUFJLFNBQVM7UUFDdkMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksU0FBUztRQUN6QixRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsSUFBSSxTQUFTO1FBQ2pDLFlBQVksRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO0tBQ3RGLENBQUE7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEdBQWtDO0lBQy9ELE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7SUFDdEIsSUFBSSxDQUFDLENBQUMsRUFBRTtRQUNKLE9BQU8sRUFBRSxDQUFDO0tBQ2I7SUFDRCxPQUFPO1FBQ0gsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksU0FBUztRQUNyQixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxTQUFTO1FBQ3pCLFdBQVcsRUFBRSxDQUFDLENBQUMsV0FBVyxJQUFJLFNBQVM7UUFDdkMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksU0FBUztRQUN6QixRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsSUFBSSxTQUFTO1FBQ2pDLFlBQVksRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO0tBQ3RGLENBQUE7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLFdBQTZDO0lBQzlFLE9BQU87UUFDSCxFQUFFLEVBQUUsV0FBVyxDQUFDLEVBQUUsSUFBSSxTQUFTO1FBQy9CLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSSxJQUFJLFNBQVM7UUFDbkMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxTQUFTLElBQUksU0FBUztRQUM3QyxVQUFVLEVBQUUsV0FBVyxDQUFDLFVBQVUsSUFBSSxTQUFTO1FBQy9DLFVBQVUsRUFBRSxXQUFXLENBQUMsVUFBVSxJQUFJLElBQUk7UUFDMUMsZUFBZSxFQUFFLFdBQVcsQ0FBQyxlQUFlLElBQUksU0FBUztLQUM1RCxDQUFBO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxjQUF5RDtJQUN4RixPQUFPO1FBQ0gsRUFBRSxFQUFFLGNBQWMsQ0FBQyxFQUFFLElBQUksRUFBRTtRQUMzQixJQUFJLEVBQUUsY0FBYyxDQUFDLElBQUksSUFBSSxFQUFFO1FBQy9CLFNBQVMsRUFBRSxjQUFjLENBQUMsU0FBUyxJQUFJLEVBQUU7UUFDekMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxVQUFVLElBQUksRUFBRTtRQUMzQyxVQUFVLEVBQUUsY0FBYyxDQUFDLFVBQVUsSUFBSSxJQUFJO1FBQzdDLGVBQWUsRUFBRSxjQUFjLENBQUMsZUFBZSxJQUFJLEVBQUU7S0FDeEQsQ0FBQTtBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLEdBQThCO0lBQ3ZELE9BQU87UUFDSCxFQUFFLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRTtRQUN6QixJQUFJLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksRUFBRTtRQUM3QixXQUFXLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksRUFBRTtRQUMzQyxJQUFJLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksRUFBRTtRQUM3QixRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLElBQUksS0FBSztRQUN4QyxZQUFZLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO0tBQ25HLENBQUE7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxHQUFrQztJQUM3RCxPQUFPO1FBQ0gsRUFBRSxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLEVBQUU7UUFDM0IsSUFBSSxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLEVBQUU7UUFDL0IsV0FBVyxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsV0FBVyxJQUFJLEVBQUU7UUFDN0MsSUFBSSxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLEVBQUU7UUFDL0IsUUFBUSxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsUUFBUSxJQUFJLEtBQUs7UUFDMUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtLQUN2RyxDQUFBO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRXZlbnRHcm91cEFuZFNlcnZpY2VBc3NvY2lhdGlvbnNJbnRlcmZhY2UsXG4gICAgR3JvdXBJbnRlcmZhY2UsXG4gICAgU2VydmljZUludGVyZmFjZVxufSBmcm9tIFwiLi4vX2ludGVybmFsXCI7XG5cblxuZXhwb3J0IGludGVyZmFjZSBHcm91cCB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBzbHVnOiBzdHJpbmc7XG4gICAgaXNQaW5uZWQ6IGJvb2xlYW47XG4gICAgYXNzb2NpYXRpb25zOiBFdmVudEdyb3VwQW5kU2VydmljZUFzc29jaWF0aW9uc1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50R3JvdXBBbmRTZXJ2aWNlQXNzb2NpYXRpb25zIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBldmVudFR5cGU6IHN0cmluZztcbiAgICBpZGVudGlmaWVyOiBzdHJpbmc7XG4gICAgaXNFZGl0YWJsZT8gOiBib29sZWFuO1xuICAgIGNyZWF0b3JVc2VyTmFtZT8gOiBzdHJpbmc7XG4gfVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2Uge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgc2x1Zzogc3RyaW5nO1xuICAgIGlzUGlubmVkOiBib29sZWFuO1xuICAgIGFzc29jaWF0aW9uczogRXZlbnRHcm91cEFuZFNlcnZpY2VBc3NvY2lhdGlvbnNbXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEdyb3VwVHlwZVRvQVBpKHJlcTogeyBncm91cDogUGFydGlhbDxHcm91cD4gfSk6IEdyb3VwSW50ZXJmYWNlIHtcbiAgICBjb25zdCBtID0gcmVxLmdyb3VwO1xuICAgIGlmICghbSkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBtLmlkIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgbmFtZTogbS5uYW1lIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgZGVzY3JpcHRpb246IG0uZGVzY3JpcHRpb24gfHwgdW5kZWZpbmVkLFxuICAgICAgICBzbHVnOiBtLnNsdWcgfHwgdW5kZWZpbmVkLFxuICAgICAgICBpc1Bpbm5lZDogbS5pc1Bpbm5lZCB8fCB1bmRlZmluZWQsXG4gICAgICAgIGFzc29jaWF0aW9uczogbS5hc3NvY2lhdGlvbnMgPyBtLmFzc29jaWF0aW9ucy5tYXAoQXNzb2NpYXRpb25UeXBlVG9BcGkpIDogdW5kZWZpbmVkXG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gU2VydmljZVR5cGVUb0FwaShyZXE6IHsgc2VydmljZTogUGFydGlhbDxTZXJ2aWNlPiB9KTogU2VydmljZUludGVyZmFjZSB7XG4gICAgY29uc3QgbSA9IHJlcS5zZXJ2aWNlO1xuICAgIGlmICghbSkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBtLmlkIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgbmFtZTogbS5uYW1lIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgZGVzY3JpcHRpb246IG0uZGVzY3JpcHRpb24gfHwgdW5kZWZpbmVkLFxuICAgICAgICBzbHVnOiBtLnNsdWcgfHwgdW5kZWZpbmVkLFxuICAgICAgICBpc1Bpbm5lZDogbS5pc1Bpbm5lZCB8fCB1bmRlZmluZWQsXG4gICAgICAgIGFzc29jaWF0aW9uczogbS5hc3NvY2lhdGlvbnMgPyBtLmFzc29jaWF0aW9ucy5tYXAoQXNzb2NpYXRpb25UeXBlVG9BcGkpIDogdW5kZWZpbmVkXG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gQXNzb2NpYXRpb25UeXBlVG9BcGkoYXNzb2NpYXRpb246IEV2ZW50R3JvdXBBbmRTZXJ2aWNlQXNzb2NpYXRpb25zKTogRXZlbnRHcm91cEFuZFNlcnZpY2VBc3NvY2lhdGlvbnNJbnRlcmZhY2Uge1xuICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBhc3NvY2lhdGlvbi5pZCB8fCB1bmRlZmluZWQsXG4gICAgICAgIG5hbWU6IGFzc29jaWF0aW9uLm5hbWUgfHwgdW5kZWZpbmVkLFxuICAgICAgICBldmVudFR5cGU6IGFzc29jaWF0aW9uLmV2ZW50VHlwZSB8fCB1bmRlZmluZWQsXG4gICAgICAgIGlkZW50aWZpZXI6IGFzc29jaWF0aW9uLmlkZW50aWZpZXIgfHwgdW5kZWZpbmVkLFxuICAgICAgICBpc0VkaXRhYmxlOiBhc3NvY2lhdGlvbi5pc0VkaXRhYmxlIHx8IHRydWUsXG4gICAgICAgIGNyZWF0b3JVc2VyTmFtZTogYXNzb2NpYXRpb24uY3JlYXRvclVzZXJOYW1lIHx8IHVuZGVmaW5lZFxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEFzc29jaWF0aW9uRnJvbUFwaShhc3NvY2lhdGlvbkFwaTogRXZlbnRHcm91cEFuZFNlcnZpY2VBc3NvY2lhdGlvbnNJbnRlcmZhY2UpOiBFdmVudEdyb3VwQW5kU2VydmljZUFzc29jaWF0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IGFzc29jaWF0aW9uQXBpLmlkIHx8ICcnLFxuICAgICAgICBuYW1lOiBhc3NvY2lhdGlvbkFwaS5uYW1lIHx8ICcnLFxuICAgICAgICBldmVudFR5cGU6IGFzc29jaWF0aW9uQXBpLmV2ZW50VHlwZSB8fCAnJyxcbiAgICAgICAgaWRlbnRpZmllcjogYXNzb2NpYXRpb25BcGkuaWRlbnRpZmllciB8fCAnJyxcbiAgICAgICAgaXNFZGl0YWJsZTogYXNzb2NpYXRpb25BcGkuaXNFZGl0YWJsZSB8fCB0cnVlLFxuICAgICAgICBjcmVhdG9yVXNlck5hbWU6IGFzc29jaWF0aW9uQXBpLmNyZWF0b3JVc2VyTmFtZSB8fCAnJ1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEdyb3VwRnJvbUFwaShyZXE6e2dyb3VwQXBpOiBHcm91cEludGVyZmFjZX0pOiBHcm91cCB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IHJlcS5ncm91cEFwaS5pZCB8fCAnJyxcbiAgICAgICAgbmFtZTogcmVxLmdyb3VwQXBpLm5hbWUgfHwgJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiByZXEuZ3JvdXBBcGkuZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICAgIHNsdWc6IHJlcS5ncm91cEFwaS5zbHVnIHx8ICcnLFxuICAgICAgICBpc1Bpbm5lZDogcmVxLmdyb3VwQXBpLmlzUGlubmVkIHx8IGZhbHNlLFxuICAgICAgICBhc3NvY2lhdGlvbnM6IHJlcS5ncm91cEFwaS5hc3NvY2lhdGlvbnMgPyByZXEuZ3JvdXBBcGkuYXNzb2NpYXRpb25zLm1hcChBc3NvY2lhdGlvbkZyb21BcGkpIDogW11cbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBTZXJ2aWNlRnJvbUFwaShyZXE6e3NlcnZpY2VBcGk6IFNlcnZpY2VJbnRlcmZhY2V9KTogU2VydmljZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IHJlcS5zZXJ2aWNlQXBpLmlkIHx8ICcnLFxuICAgICAgICBuYW1lOiByZXEuc2VydmljZUFwaS5uYW1lIHx8ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogcmVxLnNlcnZpY2VBcGkuZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICAgIHNsdWc6IHJlcS5zZXJ2aWNlQXBpLnNsdWcgfHwgJycsXG4gICAgICAgIGlzUGlubmVkOiByZXEuc2VydmljZUFwaS5pc1Bpbm5lZCB8fCBmYWxzZSxcbiAgICAgICAgYXNzb2NpYXRpb25zOiByZXEuc2VydmljZUFwaS5hc3NvY2lhdGlvbnMgPyByZXEuc2VydmljZUFwaS5hc3NvY2lhdGlvbnMubWFwKEFzc29jaWF0aW9uRnJvbUFwaSkgOiBbXVxuICAgIH1cbn0iXX0=
@@ -11,4 +11,5 @@ export * from './duration';
11
11
  export * from './fieldmask';
12
12
  export * from './host-id';
13
13
  export * from './host-user';
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tZWV0aW5nc19zZGsvc3JjL2xpYi9zaGFyZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUE7QUFDM0IsY0FBYyxRQUFRLENBQUE7QUFDdEIsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixjQUFjLFdBQVcsQ0FBQTtBQUN6QixjQUFjLGtCQUFrQixDQUFBO0FBQ2hDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGltZS1zcGFuJ1xuZXhwb3J0ICogZnJvbSAnLi9ob3N0J1xuZXhwb3J0ICogZnJvbSAnLi9tZWV0aW5nLXR5cGUnXG5leHBvcnQgKiBmcm9tICcuL21lZXRpbmcnXG5leHBvcnQgKiBmcm9tICcuL3BhZ2VkLXJlc3BvbnNlJ1xuZXhwb3J0ICogZnJvbSAnLi9hdmFpbGFiaWxpdHknO1xuZXhwb3J0ICogZnJvbSAnLi9jYWxlbmRhcic7XG5leHBvcnQgKiBmcm9tICcuL2hvc3QtdXJsLW1hcCc7XG5leHBvcnQgKiBmcm9tICcuL3ByZWZlcmVuY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vZHVyYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9maWVsZG1hc2snO1xuZXhwb3J0ICogZnJvbSAnLi9ob3N0LWlkJztcbmV4cG9ydCAqIGZyb20gJy4vaG9zdC11c2VyJztcblxuIl19
14
+ export * from './groups-and-services';
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tZWV0aW5nc19zZGsvc3JjL2xpYi9zaGFyZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUE7QUFDM0IsY0FBYyxRQUFRLENBQUE7QUFDdEIsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixjQUFjLFdBQVcsQ0FBQTtBQUN6QixjQUFjLGtCQUFrQixDQUFBO0FBQ2hDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90aW1lLXNwYW4nXG5leHBvcnQgKiBmcm9tICcuL2hvc3QnXG5leHBvcnQgKiBmcm9tICcuL21lZXRpbmctdHlwZSdcbmV4cG9ydCAqIGZyb20gJy4vbWVldGluZydcbmV4cG9ydCAqIGZyb20gJy4vcGFnZWQtcmVzcG9uc2UnXG5leHBvcnQgKiBmcm9tICcuL2F2YWlsYWJpbGl0eSc7XG5leHBvcnQgKiBmcm9tICcuL2NhbGVuZGFyJztcbmV4cG9ydCAqIGZyb20gJy4vaG9zdC11cmwtbWFwJztcbmV4cG9ydCAqIGZyb20gJy4vcHJlZmVyZW5jZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9kdXJhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2ZpZWxkbWFzayc7XG5leHBvcnQgKiBmcm9tICcuL2hvc3QtaWQnO1xuZXhwb3J0ICogZnJvbSAnLi9ob3N0LXVzZXInO1xuZXhwb3J0ICogZnJvbSAnLi9ncm91cHMtYW5kLXNlcnZpY2VzJztcbiJdfQ==