vcomply-workflow-engine 1.0.2 → 1.1.2

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 (21) hide show
  1. package/bundles/vcomply-workflow-engine.umd.js +38 -13
  2. package/bundles/vcomply-workflow-engine.umd.js.map +1 -1
  3. package/esm2015/lib/log-an-issue/log-an-issue.component.js +17 -6
  4. package/esm2015/lib/log-an-issue/log-an-issue.component.ngfactory.js +108 -100
  5. package/esm2015/lib/log-an-issue/log-an-issue.component.ngsummary.json +1 -1
  6. package/esm2015/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.js +14 -4
  7. package/esm2015/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.ngfactory.js +46 -38
  8. package/esm2015/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.ngsummary.json +1 -1
  9. package/esm2015/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.js +2 -2
  10. package/esm2015/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.ngfactory.js +5 -4
  11. package/esm2015/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.js +3 -3
  12. package/esm2015/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.ngfactory.js +2 -2
  13. package/esm2015/lib/workflow-engine.module.ngfactory.js +1 -1
  14. package/esm2015/lib/workflow-services/log-issue.service.js +2 -3
  15. package/fesm2015/vcomply-workflow-engine.js +33 -13
  16. package/fesm2015/vcomply-workflow-engine.js.map +1 -1
  17. package/lib/log-an-issue/log-an-issue.component.d.ts +1 -0
  18. package/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.d.ts +3 -1
  19. package/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.d.ts +1 -1
  20. package/package.json +1 -1
  21. package/vcomply-workflow-engine.metadata.json +1 -1
@@ -143,7 +143,6 @@ export class LogIssueService {
143
143
  }
144
144
  payloadBuilder(issueData, optionFieldsStatus) {
145
145
  var _a, _b, _c, _d, _e;
146
- console.log(issueData);
147
146
  const selectedDate = new Date(issueData.issueDueDate);
148
147
  const dateSplit = [selectedDate.getFullYear(), selectedDate.getMonth() + 1, selectedDate.getDate()];
149
148
  const payload = {
@@ -180,7 +179,7 @@ export class LogIssueService {
180
179
  failure_cc_email: optionFieldsStatus.OVERSIGHT ? (issueData.failureCCUsers.length ? issueData.failureCCUsers.map((x) => { var _a; return { member_id: (_a = x.my_member_id) !== null && _a !== void 0 ? _a : 0, alert_enable: 1 }; }) : []) : []
181
180
  };
182
181
  payload.custom_tags = issueData === null || issueData === void 0 ? void 0 : issueData.issueCustomTag;
183
- console.log(payload);
182
+ payload.issueType = issueData === null || issueData === void 0 ? void 0 : issueData.issueType;
184
183
  return payload;
185
184
  }
186
185
  arrayToId(array, key) {
@@ -238,4 +237,4 @@ LogIssueService.ctorParameters = () => [
238
237
  { type: AuthService },
239
238
  { type: Configurations, decorators: [{ type: Optional }] }
240
239
  ];
241
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWlzc3VlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1zZXJ2aWNlcy9sb2ctaXNzdWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFNN0MsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFBb0IsSUFBZ0IsRUFBVSxXQUF3QixFQUFjLE1BQXVCO1FBQXZGLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQW9NdkUsNEJBQXVCLEdBQUcsQ0FBQyxNQUFXLEVBQUUsRUFBRTtZQUN6QyxJQUFHLE1BQU0sRUFBQztnQkFDUixNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqRyxNQUFNLEVBQUUsR0FBRyxNQUFNLEtBQUssSUFBSSxDQUFDO2dCQUMzQixNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUU3QyxPQUFPLEdBQUcsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxLQUFLLENBQUM7YUFDbkQ7aUJBQUk7Z0JBQ0gsT0FBTyxVQUFVLENBQUM7YUFDbkI7UUFFSCxDQUFDLENBQUE7UUE5TUcsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7U0FFN0I7SUFDSCxDQUFDO0lBR0QsYUFBYTtRQUNYLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUN6RixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2YsR0FBRyxDQUFRLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxHQUFHLGVBQWUsRUFBRSxFQUFDLE9BQU8sRUFBQyxDQUFDO2FBQ2pFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUN6RixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2YsR0FBRyxDQUFRLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxHQUFHLFFBQVEsRUFBRSxFQUFDLE9BQU8sRUFBQyxDQUFDO2FBQzFELElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUN6RixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2YsR0FBRyxDQUFRLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFHLHdDQUF3QyxFQUFFLEVBQUMsT0FBTyxFQUFDLENBQUM7YUFDcEYsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hCLHFHQUFxRztJQUN2RyxDQUFDO0lBQ0QsMkJBQTJCO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUN6RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFRLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLDBCQUEwQixFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0csQ0FBQztJQUNELFdBQVcsQ0FBQyxPQUFZO1FBQ3RCLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUN6RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FDMUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUNQLENBQUM7SUFDSixDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQVksRUFBQyxPQUFlO1FBQ3RDLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUN6RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFDLFFBQVEsR0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQ2xGLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FDUCxDQUFDO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FBQyxXQUFrQixFQUFFLElBQVc7UUFDaEQsOERBQThEO1FBQzlELHFJQUFxSTtRQUlySSw4Q0FBOEM7UUFDOUMsc0dBQXNHO1FBQ3RHLGNBQWM7UUFDZCxNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7UUFDdkYsSUFBRyxJQUFJLEtBQUssZ0JBQWdCLEVBQUM7WUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUSxJQUFJLENBQUMsR0FBRyxDQUFDLG1CQUFtQixHQUFDLHdDQUF3QyxHQUFDLFdBQVcsRUFBQyxFQUFDLE9BQU8sRUFBQyxDQUFDLENBQUMsSUFBSSxDQUMzSCxHQUFHLENBQUMsQ0FBQyxLQUFTLEVBQUUsRUFBRTtnQkFDYixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFRLEVBQUMsRUFBRSxDQUFBLENBQUM7b0JBQzVCLE1BQU0sRUFBRSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsU0FBUztvQkFDdkIsYUFBYSxFQUFFLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxVQUFVO29CQUMvQixlQUFlLEVBQUcsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFdBQVc7b0JBQ25DLFFBQVEsRUFBRyxnQkFBZ0I7aUJBQzVCLENBQUMsQ0FDRCxDQUFBO1lBQ04sQ0FBQyxDQUNBLENBQ0YsQ0FBQTtTQUNGO2FBQUssSUFBRyxJQUFJLEtBQUssTUFBTSxFQUFDO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUMsaUNBQWlDLEdBQUMsV0FBVyxFQUFDLEVBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3JHLEdBQUcsQ0FBQyxDQUFDLEtBQVMsRUFBRSxFQUFFO2dCQUNiLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVEsRUFBQyxFQUFFLENBQUEsQ0FBQztvQkFDNUIsTUFBTSxFQUFFLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxPQUFPO29CQUNyQixhQUFhLEVBQUUsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLGVBQWU7b0JBQ3BDLGVBQWUsRUFBRyxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsS0FBSztvQkFDN0IsUUFBUSxFQUFHLE1BQU07aUJBQ2xCLENBQUMsQ0FDRCxDQUFBO1lBQ04sQ0FBQyxDQUNBLENBQ0YsQ0FBQTtTQUNGO2FBQUk7WUFDSCxPQUFPLElBQUksQ0FBQztTQUNiO0lBRUQsQ0FBQztJQUdELFFBQVEsQ0FBQyxTQUFjLEVBQUUsVUFBZSxFQUFDLGFBQWlCO1FBQ3hELE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsSUFBSyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDcEUsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMxQjtRQUNELElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLGFBQWEsRUFBQztZQUNsRCxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDcEMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMxQjtRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFDO1lBQzFCLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDN0I7UUFDRCxJQUFJLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzNHLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUNwQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxlQUFlLENBQUMsU0FBYyxFQUFFLGtCQUF1Qjs7UUFDckQsTUFBTSxZQUFZLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RELE1BQU0sU0FBUyxHQUFHLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxFQUFFLFlBQVksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEVBQUUsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDcEcsTUFBTSxJQUFJLEdBQVEsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEYsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFeEYsTUFBTSxXQUFXLEdBQVE7WUFDdkIsNkJBQTZCLEVBQUUsU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFFLDRCQUE0QjtZQUN0RSxlQUFlLEVBQUUsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQSxDQUFDLENBQUEsRUFBRTtZQUN2RixVQUFVLEVBQUUsU0FBUyxDQUFDLFNBQVM7WUFDL0IsU0FBUyxFQUFFLEdBQUc7WUFDZCxpQkFBaUIsRUFBRSxTQUFTLENBQUMsZ0JBQWdCO1lBQzdDLFVBQVUsRUFBRSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMzRyxjQUFjLEVBQUUsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzNGLFVBQVUsRUFBRSxNQUFBLFNBQVMsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLG1DQUFJLEVBQUU7WUFDdEQsUUFBUSxFQUFFLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUUsU0FBUyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNoRixpQkFBaUIsRUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsbUNBQUksQ0FBQztZQUM5RSxjQUFjLEVBQUUsU0FBUyxDQUFDLG1CQUFtQjtZQUM3QyxZQUFZLEVBQUUsTUFBQSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLG1DQUFJLENBQUM7WUFDckUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO1lBQy9ILFdBQVcsRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQztZQUNqRSxjQUFjLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUM7WUFDbkksUUFBUSxFQUFFLEVBQUU7WUFDWixpQkFBaUIsRUFBRSxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdEgseUJBQXlCLEVBQUUsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2hJLGdCQUFnQixFQUFFLEVBQUU7WUFDcEIsdUJBQXVCLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFO1lBQzNELG9CQUFvQixFQUFFLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFFLENBQUUsQ0FBQyxDQUFDLEdBQUc7U0FDckcsQ0FBQztRQUNGLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUM7WUFDM0IsV0FBVyxDQUFDLEtBQUssR0FBRyxNQUFBLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsbUNBQUksQ0FBQyxDQUFDO1NBQ3JFO1FBRUQsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUdELGNBQWMsQ0FBQyxTQUFhLEVBQUMsa0JBQXNCOztRQUNsRCxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sWUFBWSxHQUFHLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0RCxNQUFNLFNBQVMsR0FBRyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsRUFBRSxZQUFZLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxFQUFFLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3BHLE1BQU0sT0FBTyxHQUFTO1lBQ3BCLFdBQVcsRUFBRyxFQUFFO1lBQ2hCLGVBQWUsRUFBRyxFQUFFO1lBQ3BCLGNBQWMsRUFBQyxFQUFFO1NBQ2xCLENBQUM7UUFDRixPQUFPLENBQUMsS0FBSyxHQUFHLE1BQUEsU0FBUyxDQUFDLFNBQVMsbUNBQUUsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzdGLE9BQU8sQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3JILE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUc7WUFDdkIsSUFBSSxFQUFDLE1BQUEsU0FBUyxDQUFDLGdCQUFnQixtQ0FBSSxFQUFFO1lBQ3JDLFdBQVcsRUFBQyxDQUFBLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSw0QkFBNEIsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSw0QkFBNEIsQ0FBQSxDQUFDLENBQUEsRUFBRTtTQUN4RyxDQUFBO1FBQ0QsT0FBTyxDQUFDLGNBQWMsR0FBRyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNwRyxPQUFPLENBQUMsVUFBVSxHQUFHLE1BQUEsU0FBUyxDQUFDLGVBQWUsbUNBQUksSUFBSSxDQUFDO1FBQ3ZELE9BQU8sQ0FBQyxRQUFRLEdBQUcsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBRSxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDekYsT0FBTyxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN2RyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxHQUFDO1lBQ3pCLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFBLENBQUMsQ0FBQSxFQUFFO1lBQzVFLFdBQVcsRUFBQyxFQUFFO1NBQ2YsQ0FBQTtRQUNELE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEdBQUU7WUFDMUIsSUFBSSxFQUFFLE1BQUEsU0FBUyxDQUFDLG1CQUFtQixtQ0FBRSxFQUFFO1lBQ3ZDLFdBQVcsRUFBQyxDQUFBLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSw2QkFBNkIsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSw2QkFBNkIsQ0FBQSxDQUFDLENBQUEsRUFBRTtTQUN6RyxDQUFBO1FBQ0QsT0FBTyxDQUFDLFFBQVEsR0FBRyxFQUFDLGFBQWEsRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBRSxDQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUM3RyxPQUFPLENBQUMsaUJBQWlCLEdBQUc7WUFDM0IsY0FBYyxFQUFFLE1BQUEsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsbUNBQUUsRUFBRTtZQUN4RSxjQUFjLEVBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLENBQUEsQ0FBQyxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2SixDQUFBO1FBQ0QsT0FBTyxDQUFDLFFBQVEsR0FBRztZQUNsQixRQUFRLEVBQUUsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFBLENBQUMsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUssRUFBRSxFQUFFLFdBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFBLENBQUMsQ0FBQyxZQUFZLG1DQUFJLENBQUMsRUFBRyxZQUFZLEVBQUUsQ0FBQyxFQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBLEVBQUU7WUFDbkwsZ0JBQWdCLEVBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFBLENBQUMsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUssRUFBRSxFQUFFLFdBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFBLENBQUMsQ0FBQyxZQUFZLG1DQUFHLENBQUMsRUFBRyxZQUFZLEVBQUUsQ0FBQyxFQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBLEVBQUU7U0FDN0wsQ0FBQTtRQUNELE9BQU8sQ0FBQyxXQUFXLEdBQUcsU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFFLGNBQWMsQ0FBQztRQUNoRCxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3BCLE9BQU8sT0FBTyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBVSxFQUFFLEdBQVE7UUFDL0IsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBQztZQUFDLE9BQU8sRUFBRSxDQUFDO1NBQUU7YUFDL0I7WUFDSCxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNyQjtJQUdILENBQUM7SUFlRCx1QkFBdUIsQ0FBRSxJQUFRO1FBQy9CLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9CLHNEQUFzRDtRQUN0RCxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBRSwwQ0FBMEMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFcEYsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxFQUFFLHlCQUF5QjtZQUM5QyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFFLGlDQUFpQztZQUN6RCxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVk7WUFDckQsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxlQUFlO1NBQy9DO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsMENBQTBDO0lBQ25FLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFVLEVBQUUsYUFBa0I7UUFDOUMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQU8sRUFBRSxFQUFFO1lBQ2hDLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQUMsQ0FBQyxDQUMxQixDQUFDO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUlDOzs7OztPQUtHO0lBQ0YsV0FBVyxDQUFDLE9BQVksRUFBRSxJQUFTO1FBQ2xDLElBQUk7UUFDSiwwQkFBMEI7UUFDMUIsdUJBQXVCO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixHQUFHLFFBQVEsR0FBSSxtQkFBbUIsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQWU7UUFDN0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQ3pGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUMsYUFBYSxHQUFDLE9BQU8sRUFBQyxFQUFDLE9BQU8sRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFGLENBQUM7Ozs7WUEvUEYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFUUSxVQUFVO1lBSVYsV0FBVztZQURYLGNBQWMsdUJBU29ELFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbWFwLCByZXRyeSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnMgfSBmcm9tICcuLi9jb25maWd1cmF0aW9ucyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIExvZ0lzc3VlU2VydmljZSB7XHJcbiAgZW52ICE6IGFueTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBAT3B0aW9uYWwoKSBjb25maWc/OiBDb25maWd1cmF0aW9ucykge1xyXG4gICAgaWYgKGNvbmZpZykge1xyXG4gICAgICB0aGlzLmVudiA9IGNvbmZpZy5lbnZDb25maWc7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIGdldElzc3VlVHlwZXMoKXtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAuZ2V0PGFueVtdPih0aGlzLmVudi5vcmdhbml6YXRpb25HZXQgKyAnaXNzdWVUeXBlTGlzdCcsIHtoZWFkZXJzfSlcclxuICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGdldE9yZ1Blb3BsZSgpe1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgIC5nZXQ8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdwZW9wbGUnLCB7aGVhZGVyc30pXHJcbiAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBnZXRJc3N1ZUNhdGVnb3JpZXMoKXtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAuZ2V0PGFueVtdPih0aGlzLmVudi5hc3N1cmFuY2UgKyAnSXNzdWUvQ2F0ZWdvcnkvQ2F0TGlzdD9jYXRlZ29yaWVzPXRydWUnLCB7aGVhZGVyc30pXHJcbiAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgICAvL2h0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9Bc3N1cmFuY2UvSXNzdWUvQ2F0ZWdvcnkvQ2F0TGlzdC8xP2lzQnVzaW5lc3NDeWNsZT10cnVlJmNhdGVnb3JpZXM9dHJ1ZVxyXG4gIH1cclxuICBnZXRSZXNwb25zaWJpbGl0eUNlbnRlckxpc3QoKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55W10+KHRoaXMuZW52LmNvbXBsaWFuY2VHZXQgKyAncmVzcG9uc2liaWxpdHlDZW50ZXJUcmVlJywgeyBoZWFkZXJzIH0pLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuICBjcmVhdGVJc3N1ZShwYXlsb2FkOiBhbnkpe1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmVudi5hc3N1cmFuY2UrJ0lzc3VlJywgcGF5bG9hZCwge2hlYWRlcnN9KS5waXBlKFxyXG4gICAgcmV0cnkoMilcclxuICAgICk7XHJcbiAgfVxyXG4gIHVwZGF0ZUlzc3VlKHBheWxvYWQ6IGFueSxpc3N1ZUlkOiBzdHJpbmcpe1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuZW52LmFzc3VyYW5jZSsnSXNzdWUvJytpc3N1ZUlkLCBwYXlsb2FkLCB7aGVhZGVyc30pLnBpcGUoXHJcbiAgICByZXRyeSgyKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldENvbnRyb2xSaXNrKGF1ZGl0UGxhbklkOnN0cmluZywgdHlwZTpzdHJpbmcpe1xyXG4vLyAgICAgR2V0IExpbmtlZCBBdWRpdCBQbGFuIFJlc3BvbnNpYmlsaXRpZXMgYnkgQXVkaXRfUGxhbl9JZFxyXG4vLyBVUkw6IGh0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9yZXNwb25zaWJpbGl0aWVzLz9tb2RlPW1hbmFnZV9hdWRpdF9wbGFuX3Jlc3BvbnNpYmlsaXRpZXMmaWQ9NjEwYjMyOTE0NGM4MWEwMDA5Y2JiNTk4IE1ldGhvZDogR0VUXHJcblxyXG5cclxuXHJcbi8vIEdldCBMaW5rZWQgQXVkaXQgUGxhbiBSaXNrIGJ5IEF1ZGl0X1BsYW5fSWRcclxuLy8gVVJMOiBodHRwczovL2RldmFwaS52LWNvbXBseS5jb20vcmlzay8/bW9kZT1yaXNrL21hbmFnZV9hdWRpdF9wbGFuX3Jpc2smaWQ9NjEwYjMyOTE0NGM4MWEwMDA5Y2JiNTk4XHJcbi8vIE1ldGhvZDogR0VUXHJcbmNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgaWYodHlwZSA9PT0gJ1JFU1BPTlNJQklMSVRZJyl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4odGhpcy5lbnYucmVzcG9uc2liaWxpdGllc0dldCsnbWFuYWdlX2F1ZGl0X3BsYW5fcmVzcG9uc2liaWxpdGllcyZpZD0nK2F1ZGl0UGxhbklkLHtoZWFkZXJzfSkucGlwZShcclxuICAgICAgbWFwKChpdGVtczphbnkpID0+e1xyXG4gICAgICAgICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW06YW55KT0+KHtcclxuICAgICAgICAgICAgIGl0ZW1JZDogaXRlbT8ucmVwb3J0X2lkLFxyXG4gICAgICAgICAgICAgaXRlbUNvbnRyb2xJZCA6aXRlbT8uY29udHJvbF9pZCxcclxuICAgICAgICAgICAgIGl0ZW1Db250cm9sTmFtZSA6IGl0ZW0/LnJlcG9ydF9uYW1lLFxyXG4gICAgICAgICAgICAgaXRlbVR5cGUgOiAnUkVTUE9OU0lCSUxJVFknXHJcbiAgICAgICAgICAgfSlcclxuICAgICAgICAgICApXHJcbiAgICAgIH1cclxuICAgICAgKVxyXG4gICAgKVxyXG4gIH1lbHNlIGlmKHR5cGUgPT09ICdSSVNLJyl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4odGhpcy5lbnYucmlzaysncmlzay9tYW5hZ2VfYXVkaXRfcGxhbl9yaXNrJmlkPScrYXVkaXRQbGFuSWQse2hlYWRlcnN9KS5waXBlKFxyXG4gICAgICBtYXAoKGl0ZW1zOmFueSkgPT57XHJcbiAgICAgICAgICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbTphbnkpPT4oe1xyXG4gICAgICAgICAgICAgaXRlbUlkOiBpdGVtPy5yaXNrX2lkLFxyXG4gICAgICAgICAgICAgaXRlbUNvbnRyb2xJZCA6aXRlbT8ucmlza19jb250cm9sX2lkLFxyXG4gICAgICAgICAgICAgaXRlbUNvbnRyb2xOYW1lIDogaXRlbT8udGl0bGUsXHJcbiAgICAgICAgICAgICBpdGVtVHlwZSA6ICdSSVNLJ1xyXG4gICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgKVxyXG4gICAgICB9XHJcbiAgICAgIClcclxuICAgIClcclxuICB9ZWxzZXtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgdmFsaWRhdGUoaXNzdWVEYXRhOiBhbnksIG9wZW5lZEZyb206IGFueSxpc1JDTWFuZGF0b3J5OmFueSl7XHJcbiAgICBjb25zdCBlcnJvcnMgPSBbXTtcclxuICAgIGlmICghaXNzdWVEYXRhLmlzc3VlTmFtZSAgfHwgaXNzdWVEYXRhLmlzc3VlTmFtZS50cmltKCkubGVuZ3RoID09PSAwICl7XHJcbiAgICAgIGVycm9ycy5wdXNoKCdpc3N1ZU5hbWUnKTtcclxuICAgIH1cclxuICAgIGlmIChpc3N1ZURhdGEuaXNzdWVSQy5sZW5ndGggPT09IDAgJiYgaXNSQ01hbmRhdG9yeSl7XHJcbiAgICAgIGVycm9ycy5wdXNoKCdpc3N1ZVJDJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNzdWVEYXRhLmVudHJ1c3RUby5sZW5ndGggPT09IDAgKXtcclxuICAgICAgZXJyb3JzLnB1c2goJ2VudHJ1c3RUbycpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc3N1ZURhdGEuaXNzdWVEdWVEYXRlKXtcclxuICAgICAgZXJyb3JzLnB1c2goJ2lzc3VlRHVlRGF0ZScpO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzc3VlRGF0YS5pc3N1ZVJlY29tbWVuZGF0aW9uLnJlcGxhY2UoLyZuYnNwOy9nLCAnJykucmVwbGFjZSgvXFw8YnJcXHMqW1xcL10/Pi9naSwgJycpLnRyaW0oKS5sZW5ndGggPT09IDAgKXtcclxuICAgICAgZXJyb3JzLnB1c2goJ2lzc3VlUmVjb21tZW5kYXRpb24nKTtcclxuICAgIH1cclxuICAgIHJldHVybiBlcnJvcnM7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZVBheWxvYWQoaXNzdWVEYXRhOiBhbnksIG9wdGlvbkZpZWxkc1N0YXR1czogYW55KXtcclxuICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IG5ldyBEYXRlKGlzc3VlRGF0YS5pc3N1ZUR1ZURhdGUpO1xyXG4gICAgY29uc3QgZGF0ZVNwbGl0ID0gW3NlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpLCBzZWxlY3RlZERhdGUuZ2V0TW9udGgoKSArIDEsIHNlbGVjdGVkRGF0ZS5nZXREYXRlKCldO1xyXG4gICAgY29uc3QgdGltZTogYW55ID0gdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKS5zcGxpdCgnOicpO1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGRhdGVTcGxpdFswXSwgZGF0ZVNwbGl0WzFdIC0gMSxkYXRlU3BsaXRbMl0sIHRpbWVbMF0sIHRpbWVbMV0sIDApO1xyXG5cclxuICAgIGNvbnN0IGNyZWF0ZUlzc3VlOiBhbnkgPSB7XHJcbiAgICAgIGlzc3VlX2Rlc2NyaXB0aW9uX2F0dGFjaG1lbnRzOiBpc3N1ZURhdGE/Lmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHMsXHJcbiAgICAgIGFzc29jaWF0ZWRfcmlzazogb3B0aW9uRmllbGRzU3RhdHVzLkFTU09DSUFURURfUklTS1MgPyBpc3N1ZURhdGEuaXNzdWVBc3NvY2lhdGVkUmlzazonJyxcclxuICAgICAgaXNzdWVfbmFtZTogaXNzdWVEYXRhLmlzc3VlTmFtZSxcclxuICAgICAgcmVwb3J0X2lkOiAnMCcsXHJcbiAgICAgIGlzc3VlX2Rlc2NyaXB0aW9uOiBpc3N1ZURhdGEuaXNzdWVEZXNjcmlwdGlvbixcclxuICAgICAgaXNzdWVfdHlwZTogb3B0aW9uRmllbGRzU3RhdHVzLklTU1VFX1RZUEUgPyB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuaXNzdWVUeXBlLCAnaXNzdWVfaWQnKS50b1N0cmluZygpIDogJycsXHJcbiAgICAgIGV4Y2VwdGlvbl90eXBlOiBvcHRpb25GaWVsZHNTdGF0dXMuRVhDRVBUSU9OX1RZUEUgPyBpc3N1ZURhdGEuZXhjZXB0aW9uVHlwZS50b1N0cmluZygpIDogJycsXHJcbiAgICAgIHJpc2tfY2xhc3M6IGlzc3VlRGF0YS5pc3N1ZVJpc2tSYXRpbmcudG9TdHJpbmcoKSA/PyAnJyxcclxuICAgICAgcHJpb3JpdHk6IG9wdGlvbkZpZWxkc1N0YXR1cy5QUklPUklUWSA/ICBpc3N1ZURhdGEuaXNzdWVQcmlvcml0eS50b1N0cmluZygpIDogJycsXHJcbiAgICAgIGlzc3VlX2NhdGVnb3J5X2lkOiB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuaXNzdWVDYXRlZ29yeSwgJ2NhdGVnb3J5X2lkJykgPz8gMCxcclxuICAgICAgcmVjb21tZW5kYXRpb246IGlzc3VlRGF0YS5pc3N1ZVJlY29tbWVuZGF0aW9uLFxyXG4gICAgICBlbnRydXN0ZWRfdG86IHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5lbnRydXN0VG8sICdlbXBsb3llZV9pZCcpID8/IDAsXHJcbiAgICAgIGlzc3VlX2RhdGU6IGRhdGVTcGxpdFswXSArICctJyArIGRhdGVTcGxpdFsxXSArICctJyArIGRhdGVTcGxpdFsyXSArICcgJyArIHRoaXMuY29udmVydEZyb20xMlRvMjRGb3JtYXQoaXNzdWVEYXRhLmlzc3VlRHVlVGltZSksXHJcbiAgICAgIGZhaWxlZF90aW1lOiB0aGlzLmNvbnZlcnRGcm9tMTJUbzI0Rm9ybWF0KGlzc3VlRGF0YS5pc3N1ZUR1ZVRpbWUpLFxyXG4gICAgICBpc3N1ZV9kdWVfZGF0ZTogZGF0ZVNwbGl0WzBdICsgJy0nICsgZGF0ZVNwbGl0WzFdICsgJy0nICsgZGF0ZVNwbGl0WzJdICsgJyAnICsgdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKSxcclxuICAgICAgZ3JjX2FyZWE6ICcnLFxyXG4gICAgICBjY19lbXBsb3llZV9lbWFpbDogb3B0aW9uRmllbGRzU3RhdHVzLk9WRVJTSUdIVCA/IHRoaXMuYXJyYXlUb0lEc0R0cmluZyhpc3N1ZURhdGEuaXNzdWVDQ1VzZXJzLCAnZW1wbG95ZWVfZW1haWwnKSA6ICcnLFxyXG4gICAgICBmYWlsdXJlX2NjX2VtcGxveWVlX2VtYWlsOiBvcHRpb25GaWVsZHNTdGF0dXMuT1ZFUlNJR0hUID8gdGhpcy5hcnJheVRvSURzRHRyaW5nKGlzc3VlRGF0YS5mYWlsdXJlQ0NVc2VycywgJ2VtcGxveWVlX2VtYWlsJykgOiAnJyxcclxuICAgICAgY3VzdG9tX3RhZ192YWx1ZTogJycsXHJcbiAgICAgIGlzc3VlX3Jlc29sdmVfdGltZXN0YW1wOiAoZGF0ZS5nZXRUaW1lKCkgLyAxMDAwKS50b1N0cmluZygpLFxyXG4gICAgICBldmlkZW5jZV91cGxvYWRfZmxhZzogb3B0aW9uRmllbGRzU3RhdHVzLkVWSURFTkNFID8gKGlzc3VlRGF0YS5ldmlkZW5jZVJlcXVpcmVkID8gJzEnIDogJzAnICkgIDogJzAnLFxyXG4gICAgfTtcclxuICAgIGlmIChpc3N1ZURhdGEuaXNzdWVSQy5sZW5ndGgpe1xyXG4gICAgICBjcmVhdGVJc3N1ZS5yY19pZCA9IHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5pc3N1ZVJDLCAncmNfaWQnKSA/PyAwO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjcmVhdGVJc3N1ZTtcclxuICB9XHJcblxyXG5cclxuICBwYXlsb2FkQnVpbGRlcihpc3N1ZURhdGE6YW55LG9wdGlvbkZpZWxkc1N0YXR1czphbnkpe1xyXG4gICBjb25zb2xlLmxvZyhpc3N1ZURhdGEpO1xyXG4gICBjb25zdCBzZWxlY3RlZERhdGUgPSBuZXcgRGF0ZShpc3N1ZURhdGEuaXNzdWVEdWVEYXRlKTtcclxuICAgY29uc3QgZGF0ZVNwbGl0ID0gW3NlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpLCBzZWxlY3RlZERhdGUuZ2V0TW9udGgoKSArIDEsIHNlbGVjdGVkRGF0ZS5nZXREYXRlKCldO1xyXG4gICBjb25zdCBwYXlsb2FkICA6YW55ID0ge1xyXG4gICAgIGRlc2NyaXB0aW9uIDogW10sXHJcbiAgICAgYXNzb2NpYXRlZF9yaXNrIDogW10sXHJcbiAgICAgcmVjb21tZW5kYXRpb246W11cclxuICAgfTtcclxuICAgcGF5bG9hZC50aXRsZSA9IGlzc3VlRGF0YS5pc3N1ZU5hbWU/PycnO1xyXG4gICBwYXlsb2FkLnJjX2lkID0gaXNzdWVEYXRhLmlzc3VlUkMubGVuZ3RoID8gdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmlzc3VlUkMsICdyY19pZCcpIDogbnVsbDtcclxuICAgcGF5bG9hZC5jYXRlZ29yeV9pZCA9IGlzc3VlRGF0YS5pc3N1ZUNhdGVnb3J5Lmxlbmd0aCA/IHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5pc3N1ZUNhdGVnb3J5LCAnY2F0ZWdvcnlfaWQnKSA6IG51bGw7XHJcbiAgIHBheWxvYWQuZGVzY3JpcHRpb25bMF0gPSB7XHJcbiAgICAgdGV4dDppc3N1ZURhdGEuaXNzdWVEZXNjcmlwdGlvbiA/PyAnJyxcclxuICAgICBhdHRhY2htZW50czppc3N1ZURhdGE/Lmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHMubGVuZ3RoID8gaXNzdWVEYXRhPy5pc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzOltdXHJcbiAgIH1cclxuICAgcGF5bG9hZC5leGNlcHRpb25fdHlwZSA9IG9wdGlvbkZpZWxkc1N0YXR1cy5FWENFUFRJT05fVFlQRSA/IE51bWJlcihpc3N1ZURhdGEuZXhjZXB0aW9uVHlwZSkgOiBudWxsO1xyXG4gICBwYXlsb2FkLnJpc2tfY2xhc3MgPSBpc3N1ZURhdGEuaXNzdWVSaXNrUmF0aW5nID8/IG51bGw7XHJcbiAgIHBheWxvYWQucHJpb3JpdHkgPSBvcHRpb25GaWVsZHNTdGF0dXMuUFJJT1JJVFkgPyAgTnVtYmVyKGlzc3VlRGF0YS5pc3N1ZVByaW9yaXR5KSA6IG51bGw7XHJcbiAgIHBheWxvYWQuYXNzaWduZWVfaWQgPSBpc3N1ZURhdGEuZW50cnVzdFRvID8gdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmVudHJ1c3RUbywgJ215X21lbWJlcl9pZCcpIDogbnVsbDtcclxuICAgcGF5bG9hZC5hc3NvY2lhdGVkX3Jpc2tbMF09e1xyXG4gICAgIHRleHQ6IG9wdGlvbkZpZWxkc1N0YXR1cy5BU1NPQ0lBVEVEX1JJU0tTID8gaXNzdWVEYXRhLmlzc3VlQXNzb2NpYXRlZFJpc2s6JycsXHJcbiAgICAgYXR0YWNobWVudHM6W11cclxuICAgfVxyXG4gICBwYXlsb2FkLnJlY29tbWVuZGF0aW9uWzBdID17XHJcbiAgICB0ZXh0OiBpc3N1ZURhdGEuaXNzdWVSZWNvbW1lbmRhdGlvbj8/JycsXHJcbiAgICBhdHRhY2htZW50czppc3N1ZURhdGE/LnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzLmxlbmd0aCA/IGlzc3VlRGF0YT8ucmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM6W11cclxuICAgfVxyXG4gICBwYXlsb2FkLmV2aWRlbmNlID0ge2V2aWRlbmNlX2ZsYWc6IG9wdGlvbkZpZWxkc1N0YXR1cy5FVklERU5DRSA/IChpc3N1ZURhdGEuZXZpZGVuY2VSZXF1aXJlZCA/IDEgOiAwICkgIDogMCB9XHJcbiAgIHBheWxvYWQuZnJlcXVlbmN5X2RldGFpbHMgPSB7XHJcbiAgICBmcmVxdWVuY3lfdGltZTogdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKT8/JycsXHJcbiAgICBmcmVxdWVuY3lfZGF0ZTogIGRhdGVTcGxpdFswXSArICctJyArIChkYXRlU3BsaXRbMV0gPCAxMCA/ICcwJyArIGRhdGVTcGxpdFsxXTogZGF0ZVNwbGl0WzFdKSArICctJyArIChkYXRlU3BsaXRbMl08MTA/ICcwJyArIGRhdGVTcGxpdFsyXTpkYXRlU3BsaXRbMl0pXHJcbiAgIH1cclxuICAgcGF5bG9hZC5vdmVyc2VlciA9IHtcclxuICAgIGNjX2VtYWlsOiBvcHRpb25GaWVsZHNTdGF0dXMuT1ZFUlNJR0hUID8oaXNzdWVEYXRhLmlzc3VlQ0NVc2Vycy5sZW5ndGg/IGlzc3VlRGF0YS5pc3N1ZUNDVXNlcnMubWFwKCh4OmFueSkgPT4ge3JldHVybiB7IG1lbWJlcl9pZDogeC5teV9tZW1iZXJfaWQgPz8gMCAsIGFsZXJ0X2VuYWJsZTogMX19KTpbXSkgOltdLFxyXG4gICAgZmFpbHVyZV9jY19lbWFpbDpvcHRpb25GaWVsZHNTdGF0dXMuT1ZFUlNJR0hUID8oaXNzdWVEYXRhLmZhaWx1cmVDQ1VzZXJzLmxlbmd0aD8gaXNzdWVEYXRhLmZhaWx1cmVDQ1VzZXJzLm1hcCgoeDphbnkpID0+IHtyZXR1cm4geyBtZW1iZXJfaWQ6IHgubXlfbWVtYmVyX2lkPz8gMCAsIGFsZXJ0X2VuYWJsZTogMX19KTpbXSkgOltdXHJcbiAgIH1cclxuICAgcGF5bG9hZC5jdXN0b21fdGFncyA9IGlzc3VlRGF0YT8uaXNzdWVDdXN0b21UYWc7XHJcbiAgIGNvbnNvbGUubG9nKHBheWxvYWQpXHJcbiAgIHJldHVybiBwYXlsb2FkO1xyXG4gIH1cclxuXHJcbiAgYXJyYXlUb0lkKGFycmF5OiBhbnksIGtleTogYW55KXtcclxuIGlmIChhcnJheS5sZW5ndGggPT09IDApe3JldHVybiAnJzsgfVxyXG4gZWxzZSB7XHJcbiAgIHJldHVybiBhcnJheVswXVtrZXldO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiBjb252ZXJ0RnJvbTEyVG8yNEZvcm1hdCA9ICh0aW1lMTI6IGFueSkgPT4ge1xyXG4gIGlmKHRpbWUxMil7XHJcbiAgICBjb25zdCBbc0hvdXJzLCBtaW51dGVzLCBwZXJpb2RdID0gdGltZTEyLm1hdGNoKC8oWzAtOV17MSwyfSk6KFswLTldezJ9KSAoYW18cG18QU18UE0pLykuc2xpY2UoMSk7XHJcbiAgICBjb25zdCBQTSA9IHBlcmlvZCA9PT0gJ1BNJztcclxuICAgIGNvbnN0IGhvdXJzID0gKCtzSG91cnMgJSAxMikgKyAoUE0gPyAxMiA6IDApO1xyXG5cclxuICAgIHJldHVybiBgJHsoJzAnICsgaG91cnMpLnNsaWNlKC0yKX06JHttaW51dGVzfTowMGA7XHJcbiAgfWVsc2V7XHJcbiAgICByZXR1cm4gJzIzOjU5OjAwJztcclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuY29udmVydEZyb20yNFRvMTJGb3JtYXQgKHRpbWU6YW55KSB7XHJcbiAgY29uc3QgaGhtbSA9IHRpbWUuc3BsaXQoJzonKTtcclxuICB0aW1lID0gYCR7aGhtbVswXX06JHtoaG1tWzFdfWA7XHJcbiAgLy8gQ2hlY2sgY29ycmVjdCB0aW1lIGZvcm1hdCBhbmQgc3BsaXQgaW50byBjb21wb25lbnRzXHJcbiAgdGltZSA9IHRpbWUudG9TdHJpbmcoKS5tYXRjaCAoL14oWzAxXVxcZHwyWzAtM10pKDopKFswLTVdXFxkKSg6WzAtNV1cXGQpPyQvKSB8fCBbdGltZV07XHJcblxyXG4gIGlmICh0aW1lLmxlbmd0aCA+IDEpIHsgLy8gSWYgdGltZSBmb3JtYXQgY29ycmVjdFxyXG4gICAgdGltZSA9IHRpbWUuc2xpY2UgKDEpOyAgLy8gUmVtb3ZlIGZ1bGwgc3RyaW5nIG1hdGNoIHZhbHVlXHJcbiAgICB0aW1lWzVdID0gK3RpbWVbMF0gPCAxMiA/ICcgQU0nIDogJyBQTSc7IC8vIFNldCBBTS9QTVxyXG4gICAgdGltZVswXSA9ICt0aW1lWzBdICUgMTIgfHwgMTI7IC8vIEFkanVzdCBob3Vyc1xyXG4gIH1cclxuICByZXR1cm4gdGltZS5qb2luICgnJyk7IC8vIHJldHVybiBhZGp1c3RlZCB0aW1lIG9yIG9yaWdpbmFsIHN0cmluZ1xyXG59XHJcblxyXG5hcnJheVRvSURzRHRyaW5nKGFycmF5OiBhbnksIGlkZW50aWZpZXJLZXk6IGFueSl7XHJcbiBjb25zdCBsaXN0ID0gYXJyYXkubWFwKChlbDogYW55KSA9PiB7XHJcbiAgICByZXR1cm4gZWxbaWRlbnRpZmllcktleV07IH1cclxuICAgICk7XHJcbiByZXR1cm4gbGlzdC5qb2luKCk7XHJcbn1cclxuXHJcblxyXG5cclxuICAvKipcclxuICAgKiBVcGxvYWRzIHRoZSBnaXZlbiBmaWxlIHRvIHNlcnZlclxyXG4gICAqIEBwYXJhbSBwYXlsb2FkIHBheWxvYWQgRmlsZSBkYXRhIHRvIGJlIHVwbG9hZGVkXHJcbiAgICogQHBhcmFtIHBhdGggcGF0aCBQYXRoIG9mIGZpbGUgdG8gYmUgdXBsb2FkZWRcclxuICAgKiBAcmV0dXJucyByZXNwb25zZSBhZnRlciB1cGxvYWRpbmcgYSBmaWxlXHJcbiAgICovXHJcbiAgIHVwbG9hZEZpbGVzKHBheWxvYWQ6IGFueSwgcGF0aDogYW55KSB7XHJcbiAgICAvLyB7XHJcbiAgICAvLyAgIHJlcG9ydFByb2dyZXNzOiB0cnVlLFxyXG4gICAgLy8gICBvYnNlcnZlOiAnZXZlbnRzJ31cclxuICAgIGNvbnN0IE9SR19QQVRIID0gYG8vJHtwYXRofWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5lbnYuZmlsZVVwbG9hZEVuZFBvaW50ICsgT1JHX1BBVEggICsgJyZuZ3N3LWJ5cGFzcz10cnVlJywgcGF5bG9hZCk7XHJcbiAgfVxyXG5cclxuICBnZXRJc3N1ZURldGFpbHMoaXNzdWVJZDogc3RyaW5nKXtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmVudi5hc3N1cmFuY2UrJ0lzc3VlL0VkaXQvJytpc3N1ZUlkLHtoZWFkZXJzfSkucGlwZShyZXRyeSgzKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
240
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWlzc3VlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1zZXJ2aWNlcy9sb2ctaXNzdWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFNN0MsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFBb0IsSUFBZ0IsRUFBVSxXQUF3QixFQUFjLE1BQXVCO1FBQXZGLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQW1NdkUsNEJBQXVCLEdBQUcsQ0FBQyxNQUFXLEVBQUUsRUFBRTtZQUN6QyxJQUFHLE1BQU0sRUFBQztnQkFDUixNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqRyxNQUFNLEVBQUUsR0FBRyxNQUFNLEtBQUssSUFBSSxDQUFDO2dCQUMzQixNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUU3QyxPQUFPLEdBQUcsQ0FBQyxH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QyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFGLENBQUM7Ozs7WUE5UEYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFUUSxVQUFVO1lBSVYsV0FBVztZQURYLGNBQWMsdUJBU29ELFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbWFwLCByZXRyeSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnMgfSBmcm9tICcuLi9jb25maWd1cmF0aW9ucyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIExvZ0lzc3VlU2VydmljZSB7XHJcbiAgZW52ICE6IGFueTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBAT3B0aW9uYWwoKSBjb25maWc/OiBDb25maWd1cmF0aW9ucykge1xyXG4gICAgaWYgKGNvbmZpZykge1xyXG4gICAgICB0aGlzLmVudiA9IGNvbmZpZy5lbnZDb25maWc7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIGdldElzc3VlVHlwZXMoKXtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAuZ2V0PGFueVtdPih0aGlzLmVudi5vcmdhbml6YXRpb25HZXQgKyAnaXNzdWVUeXBlTGlzdCcsIHtoZWFkZXJzfSlcclxuICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGdldE9yZ1Blb3BsZSgpe1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgIC5nZXQ8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdwZW9wbGUnLCB7aGVhZGVyc30pXHJcbiAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBnZXRJc3N1ZUNhdGVnb3JpZXMoKXtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAuZ2V0PGFueVtdPih0aGlzLmVudi5hc3N1cmFuY2UgKyAnSXNzdWUvQ2F0ZWdvcnkvQ2F0TGlzdD9jYXRlZ29yaWVzPXRydWUnLCB7aGVhZGVyc30pXHJcbiAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgICAvL2h0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9Bc3N1cmFuY2UvSXNzdWUvQ2F0ZWdvcnkvQ2F0TGlzdC8xP2lzQnVzaW5lc3NDeWNsZT10cnVlJmNhdGVnb3JpZXM9dHJ1ZVxyXG4gIH1cclxuICBnZXRSZXNwb25zaWJpbGl0eUNlbnRlckxpc3QoKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55W10+KHRoaXMuZW52LmNvbXBsaWFuY2VHZXQgKyAncmVzcG9uc2liaWxpdHlDZW50ZXJUcmVlJywgeyBoZWFkZXJzIH0pLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuICBjcmVhdGVJc3N1ZShwYXlsb2FkOiBhbnkpe1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmVudi5hc3N1cmFuY2UrJ0lzc3VlJywgcGF5bG9hZCwge2hlYWRlcnN9KS5waXBlKFxyXG4gICAgcmV0cnkoMilcclxuICAgICk7XHJcbiAgfVxyXG4gIHVwZGF0ZUlzc3VlKHBheWxvYWQ6IGFueSxpc3N1ZUlkOiBzdHJpbmcpe1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuZW52LmFzc3VyYW5jZSsnSXNzdWUvJytpc3N1ZUlkLCBwYXlsb2FkLCB7aGVhZGVyc30pLnBpcGUoXHJcbiAgICByZXRyeSgyKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldENvbnRyb2xSaXNrKGF1ZGl0UGxhbklkOnN0cmluZywgdHlwZTpzdHJpbmcpe1xyXG4vLyAgICAgR2V0IExpbmtlZCBBdWRpdCBQbGFuIFJlc3BvbnNpYmlsaXRpZXMgYnkgQXVkaXRfUGxhbl9JZFxyXG4vLyBVUkw6IGh0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9yZXNwb25zaWJpbGl0aWVzLz9tb2RlPW1hbmFnZV9hdWRpdF9wbGFuX3Jlc3BvbnNpYmlsaXRpZXMmaWQ9NjEwYjMyOTE0NGM4MWEwMDA5Y2JiNTk4IE1ldGhvZDogR0VUXHJcblxyXG5cclxuXHJcbi8vIEdldCBMaW5rZWQgQXVkaXQgUGxhbiBSaXNrIGJ5IEF1ZGl0X1BsYW5fSWRcclxuLy8gVVJMOiBodHRwczovL2RldmFwaS52LWNvbXBseS5jb20vcmlzay8/bW9kZT1yaXNrL21hbmFnZV9hdWRpdF9wbGFuX3Jpc2smaWQ9NjEwYjMyOTE0NGM4MWEwMDA5Y2JiNTk4XHJcbi8vIE1ldGhvZDogR0VUXHJcbmNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgaWYodHlwZSA9PT0gJ1JFU1BPTlNJQklMSVRZJyl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4odGhpcy5lbnYucmVzcG9uc2liaWxpdGllc0dldCsnbWFuYWdlX2F1ZGl0X3BsYW5fcmVzcG9uc2liaWxpdGllcyZpZD0nK2F1ZGl0UGxhbklkLHtoZWFkZXJzfSkucGlwZShcclxuICAgICAgbWFwKChpdGVtczphbnkpID0+e1xyXG4gICAgICAgICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW06YW55KT0+KHtcclxuICAgICAgICAgICAgIGl0ZW1JZDogaXRlbT8ucmVwb3J0X2lkLFxyXG4gICAgICAgICAgICAgaXRlbUNvbnRyb2xJZCA6aXRlbT8uY29udHJvbF9pZCxcclxuICAgICAgICAgICAgIGl0ZW1Db250cm9sTmFtZSA6IGl0ZW0/LnJlcG9ydF9uYW1lLFxyXG4gICAgICAgICAgICAgaXRlbVR5cGUgOiAnUkVTUE9OU0lCSUxJVFknXHJcbiAgICAgICAgICAgfSlcclxuICAgICAgICAgICApXHJcbiAgICAgIH1cclxuICAgICAgKVxyXG4gICAgKVxyXG4gIH1lbHNlIGlmKHR5cGUgPT09ICdSSVNLJyl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4odGhpcy5lbnYucmlzaysncmlzay9tYW5hZ2VfYXVkaXRfcGxhbl9yaXNrJmlkPScrYXVkaXRQbGFuSWQse2hlYWRlcnN9KS5waXBlKFxyXG4gICAgICBtYXAoKGl0ZW1zOmFueSkgPT57XHJcbiAgICAgICAgICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbTphbnkpPT4oe1xyXG4gICAgICAgICAgICAgaXRlbUlkOiBpdGVtPy5yaXNrX2lkLFxyXG4gICAgICAgICAgICAgaXRlbUNvbnRyb2xJZCA6aXRlbT8ucmlza19jb250cm9sX2lkLFxyXG4gICAgICAgICAgICAgaXRlbUNvbnRyb2xOYW1lIDogaXRlbT8udGl0bGUsXHJcbiAgICAgICAgICAgICBpdGVtVHlwZSA6ICdSSVNLJ1xyXG4gICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgKVxyXG4gICAgICB9XHJcbiAgICAgIClcclxuICAgIClcclxuICB9ZWxzZXtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgdmFsaWRhdGUoaXNzdWVEYXRhOiBhbnksIG9wZW5lZEZyb206IGFueSxpc1JDTWFuZGF0b3J5OmFueSl7XHJcbiAgICBjb25zdCBlcnJvcnMgPSBbXTtcclxuICAgIGlmICghaXNzdWVEYXRhLmlzc3VlTmFtZSAgfHwgaXNzdWVEYXRhLmlzc3VlTmFtZS50cmltKCkubGVuZ3RoID09PSAwICl7XHJcbiAgICAgIGVycm9ycy5wdXNoKCdpc3N1ZU5hbWUnKTtcclxuICAgIH1cclxuICAgIGlmIChpc3N1ZURhdGEuaXNzdWVSQy5sZW5ndGggPT09IDAgJiYgaXNSQ01hbmRhdG9yeSl7XHJcbiAgICAgIGVycm9ycy5wdXNoKCdpc3N1ZVJDJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNzdWVEYXRhLmVudHJ1c3RUby5sZW5ndGggPT09IDAgKXtcclxuICAgICAgZXJyb3JzLnB1c2goJ2VudHJ1c3RUbycpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc3N1ZURhdGEuaXNzdWVEdWVEYXRlKXtcclxuICAgICAgZXJyb3JzLnB1c2goJ2lzc3VlRHVlRGF0ZScpO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzc3VlRGF0YS5pc3N1ZVJlY29tbWVuZGF0aW9uLnJlcGxhY2UoLyZuYnNwOy9nLCAnJykucmVwbGFjZSgvXFw8YnJcXHMqW1xcL10/Pi9naSwgJycpLnRyaW0oKS5sZW5ndGggPT09IDAgKXtcclxuICAgICAgZXJyb3JzLnB1c2goJ2lzc3VlUmVjb21tZW5kYXRpb24nKTtcclxuICAgIH1cclxuICAgIHJldHVybiBlcnJvcnM7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZVBheWxvYWQoaXNzdWVEYXRhOiBhbnksIG9wdGlvbkZpZWxkc1N0YXR1czogYW55KXtcclxuICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IG5ldyBEYXRlKGlzc3VlRGF0YS5pc3N1ZUR1ZURhdGUpO1xyXG4gICAgY29uc3QgZGF0ZVNwbGl0ID0gW3NlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpLCBzZWxlY3RlZERhdGUuZ2V0TW9udGgoKSArIDEsIHNlbGVjdGVkRGF0ZS5nZXREYXRlKCldO1xyXG4gICAgY29uc3QgdGltZTogYW55ID0gdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKS5zcGxpdCgnOicpO1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGRhdGVTcGxpdFswXSwgZGF0ZVNwbGl0WzFdIC0gMSxkYXRlU3BsaXRbMl0sIHRpbWVbMF0sIHRpbWVbMV0sIDApO1xyXG5cclxuICAgIGNvbnN0IGNyZWF0ZUlzc3VlOiBhbnkgPSB7XHJcbiAgICAgIGlzc3VlX2Rlc2NyaXB0aW9uX2F0dGFjaG1lbnRzOiBpc3N1ZURhdGE/Lmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHMsXHJcbiAgICAgIGFzc29jaWF0ZWRfcmlzazogb3B0aW9uRmllbGRzU3RhdHVzLkFTU09DSUFURURfUklTS1MgPyBpc3N1ZURhdGEuaXNzdWVBc3NvY2lhdGVkUmlzazonJyxcclxuICAgICAgaXNzdWVfbmFtZTogaXNzdWVEYXRhLmlzc3VlTmFtZSxcclxuICAgICAgcmVwb3J0X2lkOiAnMCcsXHJcbiAgICAgIGlzc3VlX2Rlc2NyaXB0aW9uOiBpc3N1ZURhdGEuaXNzdWVEZXNjcmlwdGlvbixcclxuICAgICAgaXNzdWVfdHlwZTogb3B0aW9uRmllbGRzU3RhdHVzLklTU1VFX1RZUEUgPyB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuaXNzdWVUeXBlLCAnaXNzdWVfaWQnKS50b1N0cmluZygpIDogJycsXHJcbiAgICAgIGV4Y2VwdGlvbl90eXBlOiBvcHRpb25GaWVsZHNTdGF0dXMuRVhDRVBUSU9OX1RZUEUgPyBpc3N1ZURhdGEuZXhjZXB0aW9uVHlwZS50b1N0cmluZygpIDogJycsXHJcbiAgICAgIHJpc2tfY2xhc3M6IGlzc3VlRGF0YS5pc3N1ZVJpc2tSYXRpbmcudG9TdHJpbmcoKSA/PyAnJyxcclxuICAgICAgcHJpb3JpdHk6IG9wdGlvbkZpZWxkc1N0YXR1cy5QUklPUklUWSA/ICBpc3N1ZURhdGEuaXNzdWVQcmlvcml0eS50b1N0cmluZygpIDogJycsXHJcbiAgICAgIGlzc3VlX2NhdGVnb3J5X2lkOiB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuaXNzdWVDYXRlZ29yeSwgJ2NhdGVnb3J5X2lkJykgPz8gMCxcclxuICAgICAgcmVjb21tZW5kYXRpb246IGlzc3VlRGF0YS5pc3N1ZVJlY29tbWVuZGF0aW9uLFxyXG4gICAgICBlbnRydXN0ZWRfdG86IHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5lbnRydXN0VG8sICdlbXBsb3llZV9pZCcpID8/IDAsXHJcbiAgICAgIGlzc3VlX2RhdGU6IGRhdGVTcGxpdFswXSArICctJyArIGRhdGVTcGxpdFsxXSArICctJyArIGRhdGVTcGxpdFsyXSArICcgJyArIHRoaXMuY29udmVydEZyb20xMlRvMjRGb3JtYXQoaXNzdWVEYXRhLmlzc3VlRHVlVGltZSksXHJcbiAgICAgIGZhaWxlZF90aW1lOiB0aGlzLmNvbnZlcnRGcm9tMTJUbzI0Rm9ybWF0KGlzc3VlRGF0YS5pc3N1ZUR1ZVRpbWUpLFxyXG4gICAgICBpc3N1ZV9kdWVfZGF0ZTogZGF0ZVNwbGl0WzBdICsgJy0nICsgZGF0ZVNwbGl0WzFdICsgJy0nICsgZGF0ZVNwbGl0WzJdICsgJyAnICsgdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKSxcclxuICAgICAgZ3JjX2FyZWE6ICcnLFxyXG4gICAgICBjY19lbXBsb3llZV9lbWFpbDogb3B0aW9uRmllbGRzU3RhdHVzLk9WRVJTSUdIVCA/IHRoaXMuYXJyYXlUb0lEc0R0cmluZyhpc3N1ZURhdGEuaXNzdWVDQ1VzZXJzLCAnZW1wbG95ZWVfZW1haWwnKSA6ICcnLFxyXG4gICAgICBmYWlsdXJlX2NjX2VtcGxveWVlX2VtYWlsOiBvcHRpb25GaWVsZHNTdGF0dXMuT1ZFUlNJR0hUID8gdGhpcy5hcnJheVRvSURzRHRyaW5nKGlzc3VlRGF0YS5mYWlsdXJlQ0NVc2VycywgJ2VtcGxveWVlX2VtYWlsJykgOiAnJyxcclxuICAgICAgY3VzdG9tX3RhZ192YWx1ZTogJycsXHJcbiAgICAgIGlzc3VlX3Jlc29sdmVfdGltZXN0YW1wOiAoZGF0ZS5nZXRUaW1lKCkgLyAxMDAwKS50b1N0cmluZygpLFxyXG4gICAgICBldmlkZW5jZV91cGxvYWRfZmxhZzogb3B0aW9uRmllbGRzU3RhdHVzLkVWSURFTkNFID8gKGlzc3VlRGF0YS5ldmlkZW5jZVJlcXVpcmVkID8gJzEnIDogJzAnICkgIDogJzAnLFxyXG4gICAgfTtcclxuICAgIGlmIChpc3N1ZURhdGEuaXNzdWVSQy5sZW5ndGgpe1xyXG4gICAgICBjcmVhdGVJc3N1ZS5yY19pZCA9IHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5pc3N1ZVJDLCAncmNfaWQnKSA/PyAwO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjcmVhdGVJc3N1ZTtcclxuICB9XHJcblxyXG5cclxuICBwYXlsb2FkQnVpbGRlcihpc3N1ZURhdGE6YW55LG9wdGlvbkZpZWxkc1N0YXR1czphbnkpe1xyXG4gICBjb25zdCBzZWxlY3RlZERhdGUgPSBuZXcgRGF0ZShpc3N1ZURhdGEuaXNzdWVEdWVEYXRlKTtcclxuICAgY29uc3QgZGF0ZVNwbGl0ID0gW3NlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpLCBzZWxlY3RlZERhdGUuZ2V0TW9udGgoKSArIDEsIHNlbGVjdGVkRGF0ZS5nZXREYXRlKCldO1xyXG4gICBjb25zdCBwYXlsb2FkICA6YW55ID0ge1xyXG4gICAgIGRlc2NyaXB0aW9uIDogW10sXHJcbiAgICAgYXNzb2NpYXRlZF9yaXNrIDogW10sXHJcbiAgICAgcmVjb21tZW5kYXRpb246W11cclxuICAgfTtcclxuICAgcGF5bG9hZC50aXRsZSA9IGlzc3VlRGF0YS5pc3N1ZU5hbWU/PycnO1xyXG4gICBwYXlsb2FkLnJjX2lkID0gaXNzdWVEYXRhLmlzc3VlUkMubGVuZ3RoID8gdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmlzc3VlUkMsICdyY19pZCcpIDogbnVsbDtcclxuICAgcGF5bG9hZC5jYXRlZ29yeV9pZCA9IGlzc3VlRGF0YS5pc3N1ZUNhdGVnb3J5Lmxlbmd0aCA/IHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5pc3N1ZUNhdGVnb3J5LCAnY2F0ZWdvcnlfaWQnKSA6IG51bGw7XHJcbiAgIHBheWxvYWQuZGVzY3JpcHRpb25bMF0gPSB7XHJcbiAgICAgdGV4dDppc3N1ZURhdGEuaXNzdWVEZXNjcmlwdGlvbiA/PyAnJyxcclxuICAgICBhdHRhY2htZW50czppc3N1ZURhdGE/Lmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHMubGVuZ3RoID8gaXNzdWVEYXRhPy5pc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzOltdXHJcbiAgIH1cclxuICAgcGF5bG9hZC5leGNlcHRpb25fdHlwZSA9IG9wdGlvbkZpZWxkc1N0YXR1cy5FWENFUFRJT05fVFlQRSA/IE51bWJlcihpc3N1ZURhdGEuZXhjZXB0aW9uVHlwZSkgOiBudWxsO1xyXG4gICBwYXlsb2FkLnJpc2tfY2xhc3MgPSBpc3N1ZURhdGEuaXNzdWVSaXNrUmF0aW5nID8/IG51bGw7XHJcbiAgIHBheWxvYWQucHJpb3JpdHkgPSBvcHRpb25GaWVsZHNTdGF0dXMuUFJJT1JJVFkgPyAgTnVtYmVyKGlzc3VlRGF0YS5pc3N1ZVByaW9yaXR5KSA6IG51bGw7XHJcbiAgIHBheWxvYWQuYXNzaWduZWVfaWQgPSBpc3N1ZURhdGEuZW50cnVzdFRvID8gdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmVudHJ1c3RUbywgJ215X21lbWJlcl9pZCcpIDogbnVsbDtcclxuICAgcGF5bG9hZC5hc3NvY2lhdGVkX3Jpc2tbMF09e1xyXG4gICAgIHRleHQ6IG9wdGlvbkZpZWxkc1N0YXR1cy5BU1NPQ0lBVEVEX1JJU0tTID8gaXNzdWVEYXRhLmlzc3VlQXNzb2NpYXRlZFJpc2s6JycsXHJcbiAgICAgYXR0YWNobWVudHM6W11cclxuICAgfVxyXG4gICBwYXlsb2FkLnJlY29tbWVuZGF0aW9uWzBdID17XHJcbiAgICB0ZXh0OiBpc3N1ZURhdGEuaXNzdWVSZWNvbW1lbmRhdGlvbj8/JycsXHJcbiAgICBhdHRhY2htZW50czppc3N1ZURhdGE/LnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzLmxlbmd0aCA/IGlzc3VlRGF0YT8ucmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM6W11cclxuICAgfVxyXG4gICBwYXlsb2FkLmV2aWRlbmNlID0ge2V2aWRlbmNlX2ZsYWc6IG9wdGlvbkZpZWxkc1N0YXR1cy5FVklERU5DRSA/IChpc3N1ZURhdGEuZXZpZGVuY2VSZXF1aXJlZCA/IDEgOiAwICkgIDogMCB9XHJcbiAgIHBheWxvYWQuZnJlcXVlbmN5X2RldGFpbHMgPSB7XHJcbiAgICBmcmVxdWVuY3lfdGltZTogdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKT8/JycsXHJcbiAgICBmcmVxdWVuY3lfZGF0ZTogIGRhdGVTcGxpdFswXSArICctJyArIChkYXRlU3BsaXRbMV0gPCAxMCA/ICcwJyArIGRhdGVTcGxpdFsxXTogZGF0ZVNwbGl0WzFdKSArICctJyArIChkYXRlU3BsaXRbMl08MTA/ICcwJyArIGRhdGVTcGxpdFsyXTpkYXRlU3BsaXRbMl0pXHJcbiAgIH1cclxuICAgcGF5bG9hZC5vdmVyc2VlciA9IHtcclxuICAgIGNjX2VtYWlsOiBvcHRpb25GaWVsZHNTdGF0dXMuT1ZFUlNJR0hUID8oaXNzdWVEYXRhLmlzc3VlQ0NVc2Vycy5sZW5ndGg/IGlzc3VlRGF0YS5pc3N1ZUNDVXNlcnMubWFwKCh4OmFueSkgPT4ge3JldHVybiB7IG1lbWJlcl9pZDogeC5teV9tZW1iZXJfaWQgPz8gMCAsIGFsZXJ0X2VuYWJsZTogMX19KTpbXSkgOltdLFxyXG4gICAgZmFpbHVyZV9jY19lbWFpbDpvcHRpb25GaWVsZHNTdGF0dXMuT1ZFUlNJR0hUID8oaXNzdWVEYXRhLmZhaWx1cmVDQ1VzZXJzLmxlbmd0aD8gaXNzdWVEYXRhLmZhaWx1cmVDQ1VzZXJzLm1hcCgoeDphbnkpID0+IHtyZXR1cm4geyBtZW1iZXJfaWQ6IHgubXlfbWVtYmVyX2lkPz8gMCAsIGFsZXJ0X2VuYWJsZTogMX19KTpbXSkgOltdXHJcbiAgIH1cclxuICAgcGF5bG9hZC5jdXN0b21fdGFncyA9IGlzc3VlRGF0YT8uaXNzdWVDdXN0b21UYWc7XHJcbiAgIHBheWxvYWQuaXNzdWVUeXBlID0gaXNzdWVEYXRhPy5pc3N1ZVR5cGU7XHJcbiAgIHJldHVybiBwYXlsb2FkO1xyXG4gIH1cclxuXHJcbiAgYXJyYXlUb0lkKGFycmF5OiBhbnksIGtleTogYW55KXtcclxuIGlmIChhcnJheS5sZW5ndGggPT09IDApe3JldHVybiAnJzsgfVxyXG4gZWxzZSB7XHJcbiAgIHJldHVybiBhcnJheVswXVtrZXldO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiBjb252ZXJ0RnJvbTEyVG8yNEZvcm1hdCA9ICh0aW1lMTI6IGFueSkgPT4ge1xyXG4gIGlmKHRpbWUxMil7XHJcbiAgICBjb25zdCBbc0hvdXJzLCBtaW51dGVzLCBwZXJpb2RdID0gdGltZTEyLm1hdGNoKC8oWzAtOV17MSwyfSk6KFswLTldezJ9KSAoYW18cG18QU18UE0pLykuc2xpY2UoMSk7XHJcbiAgICBjb25zdCBQTSA9IHBlcmlvZCA9PT0gJ1BNJztcclxuICAgIGNvbnN0IGhvdXJzID0gKCtzSG91cnMgJSAxMikgKyAoUE0gPyAxMiA6IDApO1xyXG5cclxuICAgIHJldHVybiBgJHsoJzAnICsgaG91cnMpLnNsaWNlKC0yKX06JHttaW51dGVzfTowMGA7XHJcbiAgfWVsc2V7XHJcbiAgICByZXR1cm4gJzIzOjU5OjAwJztcclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuY29udmVydEZyb20yNFRvMTJGb3JtYXQgKHRpbWU6YW55KSB7XHJcbiAgY29uc3QgaGhtbSA9IHRpbWUuc3BsaXQoJzonKTtcclxuICB0aW1lID0gYCR7aGhtbVswXX06JHtoaG1tWzFdfWA7XHJcbiAgLy8gQ2hlY2sgY29ycmVjdCB0aW1lIGZvcm1hdCBhbmQgc3BsaXQgaW50byBjb21wb25lbnRzXHJcbiAgdGltZSA9IHRpbWUudG9TdHJpbmcoKS5tYXRjaCAoL14oWzAxXVxcZHwyWzAtM10pKDopKFswLTVdXFxkKSg6WzAtNV1cXGQpPyQvKSB8fCBbdGltZV07XHJcblxyXG4gIGlmICh0aW1lLmxlbmd0aCA+IDEpIHsgLy8gSWYgdGltZSBmb3JtYXQgY29ycmVjdFxyXG4gICAgdGltZSA9IHRpbWUuc2xpY2UgKDEpOyAgLy8gUmVtb3ZlIGZ1bGwgc3RyaW5nIG1hdGNoIHZhbHVlXHJcbiAgICB0aW1lWzVdID0gK3RpbWVbMF0gPCAxMiA/ICcgQU0nIDogJyBQTSc7IC8vIFNldCBBTS9QTVxyXG4gICAgdGltZVswXSA9ICt0aW1lWzBdICUgMTIgfHwgMTI7IC8vIEFkanVzdCBob3Vyc1xyXG4gIH1cclxuICByZXR1cm4gdGltZS5qb2luICgnJyk7IC8vIHJldHVybiBhZGp1c3RlZCB0aW1lIG9yIG9yaWdpbmFsIHN0cmluZ1xyXG59XHJcblxyXG5hcnJheVRvSURzRHRyaW5nKGFycmF5OiBhbnksIGlkZW50aWZpZXJLZXk6IGFueSl7XHJcbiBjb25zdCBsaXN0ID0gYXJyYXkubWFwKChlbDogYW55KSA9PiB7XHJcbiAgICByZXR1cm4gZWxbaWRlbnRpZmllcktleV07IH1cclxuICAgICk7XHJcbiByZXR1cm4gbGlzdC5qb2luKCk7XHJcbn1cclxuXHJcblxyXG5cclxuICAvKipcclxuICAgKiBVcGxvYWRzIHRoZSBnaXZlbiBmaWxlIHRvIHNlcnZlclxyXG4gICAqIEBwYXJhbSBwYXlsb2FkIHBheWxvYWQgRmlsZSBkYXRhIHRvIGJlIHVwbG9hZGVkXHJcbiAgICogQHBhcmFtIHBhdGggcGF0aCBQYXRoIG9mIGZpbGUgdG8gYmUgdXBsb2FkZWRcclxuICAgKiBAcmV0dXJucyByZXNwb25zZSBhZnRlciB1cGxvYWRpbmcgYSBmaWxlXHJcbiAgICovXHJcbiAgIHVwbG9hZEZpbGVzKHBheWxvYWQ6IGFueSwgcGF0aDogYW55KSB7XHJcbiAgICAvLyB7XHJcbiAgICAvLyAgIHJlcG9ydFByb2dyZXNzOiB0cnVlLFxyXG4gICAgLy8gICBvYnNlcnZlOiAnZXZlbnRzJ31cclxuICAgIGNvbnN0IE9SR19QQVRIID0gYG8vJHtwYXRofWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5lbnYuZmlsZVVwbG9hZEVuZFBvaW50ICsgT1JHX1BBVEggICsgJyZuZ3N3LWJ5cGFzcz10cnVlJywgcGF5bG9hZCk7XHJcbiAgfVxyXG5cclxuICBnZXRJc3N1ZURldGFpbHMoaXNzdWVJZDogc3RyaW5nKXtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmVudi5hc3N1cmFuY2UrJ0lzc3VlL0VkaXQvJytpc3N1ZUlkLHtoZWFkZXJzfSkucGlwZShyZXRyeSgzKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==