@lowcodeunit/applications-flow-common 1.36.221-social-rework → 1.36.222-merge

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 (27) hide show
  1. package/esm2020/lcu.api.mjs +1 -4
  2. package/esm2020/lib/applications-flow.module.mjs +3 -18
  3. package/esm2020/lib/elements/page-header/page-header.component.mjs +3 -3
  4. package/esm2020/lib/elements/project-info-card/project-info-card.component.mjs +3 -3
  5. package/esm2020/lib/models/user-feed.model.mjs +1 -3
  6. package/esm2020/lib/services/applications-flow.service.mjs +3 -4
  7. package/esm2020/lib/services/eac.service.mjs +3 -3
  8. package/esm2020/lib/services/project.service.mjs +8 -11
  9. package/esm2020/lib/state/applications-flow.state.mjs +1 -3
  10. package/fesm2015/lowcodeunit-applications-flow-common.mjs +126 -321
  11. package/fesm2015/lowcodeunit-applications-flow-common.mjs.map +1 -1
  12. package/fesm2020/lowcodeunit-applications-flow-common.mjs +126 -319
  13. package/fesm2020/lowcodeunit-applications-flow-common.mjs.map +1 -1
  14. package/lcu.api.d.ts +0 -3
  15. package/lib/applications-flow.module.d.ts +10 -13
  16. package/lib/models/user-feed.model.d.ts +0 -6
  17. package/lib/services/applications-flow.service.d.ts +1 -1
  18. package/lib/services/eac.service.d.ts +1 -1
  19. package/lib/services/project.service.d.ts +1 -1
  20. package/lib/state/applications-flow.state.d.ts +0 -9
  21. package/package.json +1 -1
  22. package/esm2020/lib/elements/advertisement-card/advertisement-card.component.mjs +0 -24
  23. package/esm2020/lib/elements/feed-filter/feed-filter.component.mjs +0 -151
  24. package/esm2020/lib/elements/product-discovery-card/product-discovery-card.component.mjs +0 -20
  25. package/lib/elements/advertisement-card/advertisement-card.component.d.ts +0 -11
  26. package/lib/elements/feed-filter/feed-filter.component.d.ts +0 -25
  27. package/lib/elements/product-discovery-card/product-discovery-card.component.d.ts +0 -9
@@ -11,6 +11,4 @@ export class FeedItemTab {
11
11
  }
12
12
  export class FeedEntry {
13
13
  }
14
- export class ItemType {
15
- }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1mZWVkLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvbW9kZWxzL3VzZXItZmVlZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0sYUFBYSxDQUFDO0FBR25ELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxZQUFZO0NBVWpEO0FBRUQsTUFBTSxPQUFPLFFBQVE7Q0FnQ3BCO0FBRUQsTUFBTSxPQUFPLG1CQUFtQjtDQVUvQjtBQUVELE1BQU0sT0FBTyxjQUFjO0NBWTFCO0FBRUQsTUFBTSxPQUFPLFdBQVc7Q0FNdkI7QUFFRCxNQUFNLE9BQU8sU0FBUztDQTRCckI7QUFFRCxNQUFNLE9BQU8sUUFBUTtDQUVwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VSZXNwb25zZSwgU3RhdHVzIH0gZnJvbSAnQGxjdS9jb21tb24nO1xuaW1wb3J0IHsgQWR2ZXJ0aXNlbWVudCB9IGZyb20gJy4uL3N0YXRlL2FwcGxpY2F0aW9ucy1mbG93LnN0YXRlJztcblxuZXhwb3J0IGNsYXNzIFVzZXJGZWVkUmVzcG9uc2UgZXh0ZW5kcyBCYXNlUmVzcG9uc2Uge1xuICAgIHB1YmxpYyBBY3Rpb25zOiBBcnJheTxGZWVkSXRlbUFjdGlvbj47XG5cbiAgICBwdWJsaWMgQWR2ZXJ0aXNlbWVudHM6IEFycmF5PEFkdmVydGlzZW1lbnQ+O1xuXG4gICAgcHVibGljIEl0ZW1zOiBBcnJheTxGZWVkSXRlbT47XG5cbiAgICBwdWJsaWMgSXRlbVR5cGVzOiBBcnJheTxJdGVtVHlwZT47XG5cbiAgICBwdWJsaWMgU291cmNlQ29udHJvbExvb2t1cHM6IEFycmF5PHN0cmluZz47XG59XG5cbmV4cG9ydCBjbGFzcyBGZWVkSXRlbSB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuXG4gICAgcHVibGljIEFjdGlvbnM6IEFycmF5PEZlZWRJdGVtQWN0aW9uPjtcblxuICAgIHB1YmxpYyBBdmF0YXI6IHN0cmluZztcblxuICAgIHB1YmxpYyBCYWRnZTogc3RyaW5nO1xuXG4gICAgcHVibGljIENvbnRyaWJ1dG9yczogQXJyYXk8RmVlZEl0ZW1Db250cmlidXRvcj47XG5cbiAgICBwdWJsaWMgSUQ6IHN0cmluZztcblxuICAgIHB1YmxpYyBJc1Bpbm5lZDogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBJc1Nob3J0Rm9ybTogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBSZWZyZXNoTGluazogc3RyaW5nO1xuXG4gICAgcHVibGljIFN0YXR1czogU3RhdHVzO1xuXG4gICAgcHVibGljIFN1YnRleHQ6IHN0cmluZztcblxuICAgIHB1YmxpYyBTdWJ0aXRsZTogc3RyaW5nO1xuXG4gICAgcHVibGljIFRhYnM6IEFycmF5PEZlZWRJdGVtVGFiPjtcblxuICAgIHB1YmxpYyBUaW1lc3RhbXA6IERhdGU7XG5cbiAgICBwdWJsaWMgVGl0bGU6IHN0cmluZztcblxuICAgIHB1YmxpYyBUeXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBGZWVkSXRlbUNvbnRyaWJ1dG9yIHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG5cbiAgICBwdWJsaWMgU3RhdHVzOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgU3RhdHVzSWNvbjogc3RyaW5nO1xuXG4gICAgcHVibGljIFVzZXJJbWFnZTogc3RyaW5nO1xuXG4gICAgcHVibGljIFVzZXJuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBGZWVkSXRlbUFjdGlvbiB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuXG4gICAgcHVibGljIEFjdGlvbjogc3RyaW5nO1xuXG4gICAgcHVibGljIEFjdGlvblR5cGU6IHN0cmluZztcblxuICAgIHB1YmxpYyBDb2xvcjogc3RyaW5nO1xuXG4gICAgcHVibGljIEljb246IHN0cmluZztcblxuICAgIHB1YmxpYyBUZXh0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBGZWVkSXRlbVRhYiB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuXG4gICAgcHVibGljIERhdGE6IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgICBwdWJsaWMgVGl0bGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEZlZWRFbnRyeSB7XG4gICAgcHVibGljIEFjdGlvbkljb246IHN0cmluZztcblxuICAgIHB1YmxpYyBBY3Rpb25MaW5rOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgQWN0aW9uVGV4dDogc3RyaW5nO1xuXG4gICAgcHVibGljIEF2YXRhcjogc3RyaW5nO1xuXG4gICAgcHVibGljIENvbnRlbnQ6IHN0cmluZztcblxuICAgIHB1YmxpYyBFeHBpcmVzQXQ6IERhdGU7XG5cbiAgICBwdWJsaWMgT3JnYW5pemF0aW9uOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgUmVwb3NpdG9yeTogc3RyaW5nO1xuXG4gICAgcHVibGljIFNvdXJjZUJyYW5jaDogc3RyaW5nO1xuXG4gICAgcHVibGljIFNvdXJjZUNvbnRyb2xMb29rdXA6IHN0cmluZztcblxuICAgIHB1YmxpYyBTdWJ0aXRsZTogc3RyaW5nO1xuXG4gICAgcHVibGljIFRhcmdldEJyYW5jaDogc3RyaW5nO1xuXG4gICAgcHVibGljIFRpdGxlOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgVHlwZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgSXRlbVR5cGUge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cbiJdfQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1mZWVkLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvbW9kZWxzL3VzZXItZmVlZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0sYUFBYSxDQUFDO0FBRW5ELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxZQUFZO0NBTWpEO0FBRUQsTUFBTSxPQUFPLFFBQVE7Q0FnQ3BCO0FBRUQsTUFBTSxPQUFPLG1CQUFtQjtDQVUvQjtBQUVELE1BQU0sT0FBTyxjQUFjO0NBWTFCO0FBRUQsTUFBTSxPQUFPLFdBQVc7Q0FNdkI7QUFFRCxNQUFNLE9BQU8sU0FBUztDQTRCckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlUmVzcG9uc2UsIFN0YXR1cyB9IGZyb20gJ0BsY3UvY29tbW9uJztcblxuZXhwb3J0IGNsYXNzIFVzZXJGZWVkUmVzcG9uc2UgZXh0ZW5kcyBCYXNlUmVzcG9uc2Uge1xuICAgIHB1YmxpYyBBY3Rpb25zOiBBcnJheTxGZWVkSXRlbUFjdGlvbj47XG5cbiAgICBwdWJsaWMgSXRlbXM6IEFycmF5PEZlZWRJdGVtPjtcblxuICAgIHB1YmxpYyBTb3VyY2VDb250cm9sTG9va3VwczogQXJyYXk8c3RyaW5nPjtcbn1cblxuZXhwb3J0IGNsYXNzIEZlZWRJdGVtIHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG5cbiAgICBwdWJsaWMgQWN0aW9uczogQXJyYXk8RmVlZEl0ZW1BY3Rpb24+O1xuXG4gICAgcHVibGljIEF2YXRhcjogc3RyaW5nO1xuXG4gICAgcHVibGljIEJhZGdlOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgQ29udHJpYnV0b3JzOiBBcnJheTxGZWVkSXRlbUNvbnRyaWJ1dG9yPjtcblxuICAgIHB1YmxpYyBJRDogc3RyaW5nO1xuXG4gICAgcHVibGljIElzUGlubmVkOiBib29sZWFuO1xuXG4gICAgcHVibGljIElzU2hvcnRGb3JtOiBib29sZWFuO1xuXG4gICAgcHVibGljIFJlZnJlc2hMaW5rOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgU3RhdHVzOiBTdGF0dXM7XG5cbiAgICBwdWJsaWMgU3VidGV4dDogc3RyaW5nO1xuXG4gICAgcHVibGljIFN1YnRpdGxlOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgVGFiczogQXJyYXk8RmVlZEl0ZW1UYWI+O1xuXG4gICAgcHVibGljIFRpbWVzdGFtcDogRGF0ZTtcblxuICAgIHB1YmxpYyBUaXRsZTogc3RyaW5nO1xuXG4gICAgcHVibGljIFR5cGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEZlZWRJdGVtQ29udHJpYnV0b3Ige1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcblxuICAgIHB1YmxpYyBTdGF0dXM6IHN0cmluZztcblxuICAgIHB1YmxpYyBTdGF0dXNJY29uOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgVXNlckltYWdlOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgVXNlcm5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEZlZWRJdGVtQWN0aW9uIHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG5cbiAgICBwdWJsaWMgQWN0aW9uOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgQWN0aW9uVHlwZTogc3RyaW5nO1xuXG4gICAgcHVibGljIENvbG9yOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgSWNvbjogc3RyaW5nO1xuXG4gICAgcHVibGljIFRleHQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEZlZWRJdGVtVGFiIHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG5cbiAgICBwdWJsaWMgRGF0YTogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcblxuICAgIHB1YmxpYyBUaXRsZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgRmVlZEVudHJ5IHtcbiAgICBwdWJsaWMgQWN0aW9uSWNvbjogc3RyaW5nO1xuXG4gICAgcHVibGljIEFjdGlvbkxpbms6IHN0cmluZztcblxuICAgIHB1YmxpYyBBY3Rpb25UZXh0OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgQXZhdGFyOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgQ29udGVudDogc3RyaW5nO1xuXG4gICAgcHVibGljIEV4cGlyZXNBdDogRGF0ZTtcblxuICAgIHB1YmxpYyBPcmdhbml6YXRpb246IHN0cmluZztcblxuICAgIHB1YmxpYyBSZXBvc2l0b3J5OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgU291cmNlQnJhbmNoOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgU291cmNlQ29udHJvbExvb2t1cDogc3RyaW5nO1xuXG4gICAgcHVibGljIFN1YnRpdGxlOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgVGFyZ2V0QnJhbmNoOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgVGl0bGU6IHN0cmluZztcblxuICAgIHB1YmxpYyBUeXBlOiBzdHJpbmc7XG59XG4iXX0=
@@ -101,10 +101,9 @@ export class ApplicationsFlowService {
101
101
  headers: this.loadHeaders(),
102
102
  });
103
103
  }
104
- LoadUserFeed(page, pageSize, types, project, applications) {
105
- // console.log('types at LoadUserFeed: ', types);
104
+ LoadUserFeed(page, pageSize, project, applications) {
106
105
  var apps = JSON.stringify(applications || []);
107
- return this.http.get(`${this.apiRoot}/api/lowcodeunit/userfeed?page=${page}&pageSize=${pageSize}&types=${types}&project=${project}&applications=${apps}`, {
106
+ return this.http.get(`${this.apiRoot}/api/lowcodeunit/userfeed?page=${page}&pageSize=${pageSize}&project=${project}&applications=${apps}`, {
108
107
  headers: this.loadHeaders(),
109
108
  });
110
109
  }
@@ -143,4 +142,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
143
142
  providedIn: 'root',
144
143
  }]
145
144
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.LCUServiceSettings }]; } });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25zLWZsb3cuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2FwcGxpY2F0aW9ucy1mbG93LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVUzQyxNQUFNLE9BQU8sdUJBQXVCO0lBSWhDLGNBQWM7SUFFZCxlQUFlO0lBQ2YsWUFDYyxJQUFnQixFQUNoQixRQUE0QjtRQUQ1QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGFBQVEsR0FBUixRQUFRLENBQW9CO1FBRXRDLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQztJQUNwQyxDQUFDO0lBRUQsY0FBYztJQUNQLHFCQUFxQixDQUFDLFlBQW9CO1FBQzdDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ2pCLEdBQUcsSUFBSSxDQUFDLE9BQU8sMENBQTBDLFlBQVksWUFBWSxFQUNqRixFQUFFLEVBQ0Y7WUFDSSxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtTQUM5QixDQUNKLENBQUM7SUFDTixDQUFDO0lBRU0sZ0JBQWdCLENBQ25CLFlBQW9CLEVBQ3BCLFFBQWdCO1FBRWhCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ2pCLEdBQUcsSUFBSSxDQUFDLE9BQU8seUNBQXlDLFlBQVksZUFBZSxFQUNuRjtZQUNJLElBQUksRUFBRSxRQUFRO1NBQ2pCLEVBQ0Q7WUFDSSxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtTQUM5QixDQUNKLENBQUM7SUFDTixDQUFDO0lBRU0sb0JBQW9CO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ2pCLEdBQUcsSUFBSSxDQUFDLE9BQU8sMkNBQTJDLEVBQzFELEVBQUUs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QyxJQUFJLENBQ2pCLEdBQUcsSUFBSSxDQUFDLE9BQU8sNENBQTRDLEVBQzNEO1lBQ0ksc0JBQXNCLEVBQUUsZUFBZTtTQUMxQyxFQUNEO1lBQ0ksT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUU7U0FDOUIsQ0FDSixDQUFDO0lBQ04sQ0FBQztJQUVNLGVBQWUsQ0FBQyxLQUFnQjtRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNqQixHQUFHLElBQUksQ0FBQyxPQUFPLGlDQUFpQyxFQUNoRCxLQUFLLEVBQ0w7WUFDSSxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtTQUM5QixDQUNKLENBQUM7SUFDTixDQUFDO0lBRU0saUJBQWlCLENBQ3BCLEdBQTZCO1FBRTdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ2pCLEdBQUcsSUFBSSxDQUFDLE9BQU8seUNBQXlDLEVBQ3hELEdBQUcsRUFDSDtZQUNJLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFO1NBQzlCLENBQ0osQ0FBQztJQUNOLENBQUM7SUFFRCxXQUFXO0lBQ0QsV0FBVztRQUNqQixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7O29IQWpQUSx1QkFBdUI7d0hBQXZCLHVCQUF1QixjQUZwQixNQUFNOzJGQUVULHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTENVU2VydmljZVNldHRpbmdzIH0gZnJvbSAnQGxjdS9jb21tb24nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRW50ZXJwcmlzZUFzQ29kZSB9IGZyb20gJ0BzZW1hbnRpY2pzL2NvbW1vbic7XG5pbXBvcnQgeyBVbnBhY2tMb3dDb2RlVW5pdFJlcXVlc3QgfSBmcm9tICcuLi9zdGF0ZS9hcHBsaWNhdGlvbnMtZmxvdy5zdGF0ZSc7XG5pbXBvcnQgeyBGZWVkRW50cnkgfSBmcm9tICcuLi9tb2RlbHMvdXNlci1mZWVkLm1vZGVsJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25zRmxvd1NlcnZpY2Uge1xuICAgIC8vICBGaWVsZHNcbiAgICBwcm90ZWN0ZWQgYXBpUm9vdDogc3RyaW5nO1xuXG4gICAgLy8gIFByb3BlcnRpZXNcblxuICAgIC8vIENvbnN0cnVjdG9yc1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgcHJvdGVjdGVkIHNldHRpbmdzOiBMQ1VTZXJ2aWNlU2V0dGluZ3NcbiAgICApIHtcbiAgICAgICAgdGhpcy5hcGlSb290ID0gc2V0dGluZ3MuQVBJUm9vdDtcbiAgICB9XG5cbiAgICAvLyBBUEkgTWV0aG9kc1xuICAgIHB1YmxpYyBDb25maWd1cmVEZXZPcHNBY3Rpb24oYWN0aW9uTG9va3VwOiBzdHJpbmcpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXG4gICAgICAgICAgICBgJHt0aGlzLmFwaVJvb3R9L2FwaS9sb3djb2RldW5pdC9tYW5hZ2UvZGV2b3BzL2FjdGlvbnMvJHthY3Rpb25Mb29rdXB9L2NvbmZpZ3VyZWAsXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmxvYWRIZWFkZXJzKCksXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIENyZWF0ZVJlcG9zaXRvcnkoXG4gICAgICAgIG9yZ2FuaXphdGlvbjogc3RyaW5nLFxuICAgICAgICByZXBvTmFtZTogc3RyaW5nXG4gICAgKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxuICAgICAgICAgICAgYCR7dGhpcy5hcGlSb290fS9hcGkvbG93Y29kZXVuaXQvZ2l0aHViL29yZ2FuaXphdGlvbnMvJHtvcmdhbml6YXRpb259L3JlcG9zaXRvcmllc2AsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgTmFtZTogcmVwb05hbWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMubG9hZEhlYWRlcnMoKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgRW5zdXJlVXNlckVudGVycHJpc2UoKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxuICAgICAgICAgICAgYCR7dGhpcy5hcGlSb290fS9hcGkvbG93Y29kZXVuaXQvbWFuYWdlL2VudGVycHJpc2UvZW5zdXJlYCxcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMubG9hZEhlYWRlcnMoKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgRW50ZXJwcmlzZUFzQ29kZVJlbW92YWxzKFxuICAgICAgICByZW1vdmFsczogRW50ZXJwcmlzZUFzQ29kZVxuICAgICk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcbiAgICAgICAgICAgIGAke3RoaXMuYXBpUm9vdH0vYXBpL2xvd2NvZGV1bml0L3JlbW92YWxzL2VhY2AsXG4gICAgICAgICAgICByZW1vdmFscyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmxvYWRIZWFkZXJzKCksXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIEdldEFjdGl2ZUVudGVycHJpc2UoKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXG4gICAgICAgICAgICBgJHt0aGlzLmFwaVJvb3R9L2FwaS9sb3djb2RldW5pdC9tYW5hZ2UvZW50ZXJwcmlzZXMvYWN0aXZlYCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmxvYWRIZWFkZXJzKCksXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIEhhc1ZhbGlkQ29ubmVjdGlvbigpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChcbiAgICAgICAgICAgIGAke3RoaXMuYXBpUm9vdH0vYXBpL2xvd2NvZGV1bml0L2dpdGh1Yi9jb25uZWN0aW9uL3ZhbGlkYCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmxvYWRIZWFkZXJzKCksXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIExpc3RQcm9qZWN0cygpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChcbiAgICAgICAgICAgIGAke3RoaXMuYXBpUm9vdH0vYXBpL2xvd2NvZGV1bml0L21hbmFnZS9wcm9qZWN0c2AsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5sb2FkSGVhZGVycygpLFxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBMaXN0QnJhbmNoZXMoXG4gICAgICAgIG9yZ2FuaXphdGlvbjogc3RyaW5nLFxuICAgICAgICByZXBvc2l0b3J5OiBzdHJpbmdcbiAgICApOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChcbiAgICAgICAgICAgIGAke3RoaXMuYXBpUm9vdH0vYXBpL2xvd2NvZGV1bml0L2dpdGh1Yi9vcmdhbml6YXRpb25zLyR7b3JnYW5pemF0aW9ufS9yZXBvc2l0b3JpZXMvJHtyZXBvc2l0b3J5fS9icmFuY2hlc2AsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5sb2FkSGVhZGVycygpLFxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBMaXN0QnVpbGRQYXRocyhcbiAgICAgICAgb3JnYW5pemF0aW9uOiBzdHJpbmcsXG4gICAgICAgIHJlcG9zaXRvcnk6IHN0cmluZyxcbiAgICAgICAgYnJhbmNoOiBzdHJpbmcgPSAnJ1xuICAgICk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxuICAgICAgICAgICAgYCR7dGhpcy5hcGlSb290fS9hcGkvbG93Y29kZXVuaXQvZ2l0aHViL29yZ2FuaXphdGlvbnMvJHtvcmdhbml6YXRpb259L3JlcG9zaXRvcmllcy8ke3JlcG9zaXRvcnl9L2J1aWxkLXBhdGhzP2JyYW5jaD0ke2JyYW5jaH1gLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMubG9hZEhlYWRlcnMoKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgTGlzdEVudGVycHJpc2VzKCk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxuICAgICAgICAgICAgYCR7dGhpcy5hcGlSb290fS9hcGkvbG93Y29kZXVuaXQvbWFuYWdlL2VudGVycHJpc2VzL2xpc3RgLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMubG9hZEhlYWRlcnMoKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgTGlzdE9yZ2FuaXphdGlvbnMoKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXG4gICAgICAgICAgICBgJHt0aGlzLmFwaVJvb3R9L2FwaS9sb3djb2RldW5pdC9naXRodWIvb3JnYW5pemF0aW9uc2AsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5sb2FkSGVhZGVycygpLFxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBMaXN0UmVwb3NpdG9yaWVzKG9yZ2FuaXphdGlvbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXG4gICAgICAgICAgICBgJHt0aGlzLmFwaVJvb3R9L2FwaS9sb3djb2RldW5pdC9naXRodWIvb3JnYW5pemF0aW9ucy8ke29yZ2FuaXphdGlvbn0vcmVwb3NpdG9yaWVzYCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmxvYWRIZWFkZXJzKCksXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIExvYWRFbnRlcnByaXNlQXNDb2RlKCk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYXBpUm9vdH0vYXBpL2xvd2NvZGV1bml0L21hbmFnZS9lYWNgLCB7XG4gICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmxvYWRIZWFkZXJzKCksXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBMb2FkTGljZW5zZURhdGEoKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hcGlSb290fS9hcGkvbG93Y29kZXVuaXQvbWFuYWdlL2xpY2Vuc2VgLCB7XG4gICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmxvYWRIZWFkZXJzKCksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvLyBwdWJsaWMgTG9hZFByb2plY3RIb3N0aW5nRGV0YWlscyhcbiAgICAvLyAgIG9yZ2FuaXphdGlvbjogc3RyaW5nLFxuICAgIC8vICAgcmVwb3NpdG9yeTogc3RyaW5nLFxuICAgIC8vICAgYnJhbmNoOiBzdHJpbmdcbiAgICAvLyApOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgIC8vICAgYnJhbmNoID0gZW5jb2RlVVJJQ29tcG9uZW50KGJyYW5jaCk7XG5cbiAgICAvLyAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxuICAgIC8vICAgICBgJHt0aGlzLmFwaVJvb3R9L2FwaS9sb3djb2RldW5pdC9tYW5hZ2UvcHJvamVjdHMvb3JnYW5pemF0aW9ucy8ke29yZ2FuaXphdGlvbn0vcmVwb3NpdG9yaWVzLyR7cmVwb3NpdG9yeX0vYnJhbmNoZXMvJHticmFuY2h9L2hvc3RpbmcvZGV0YWlsc2AsXG4gICAgLy8gICAgIHtcbiAgICAvLyAgICAgICBoZWFkZXJzOiB0aGlzLmxvYWRIZWFkZXJzKCksXG4gICAgLy8gICAgIH1cbiAgICAvLyAgICk7XG4gICAgLy8gfVxuXG4gICAgcHVibGljIExvYWRQcm9qZWN0SG9zdGluZ0RldGFpbHMoKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXG4gICAgICAgICAgICBgJHt0aGlzLmFwaVJvb3R9L2FwaS9sb3djb2RldW5pdC9tYW5hZ2UvcHJvamVjdHMvaG9zdGluZy9kZXRhaWxzYCxcblxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMubG9hZEhlYWRlcnMoKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgTG9hZFVzZXJGZWVkKFxuICAgICAgICBwYWdlOiBudW1iZXIsXG4gICAgICAgIHBhZ2VTaXplOiBudW1iZXIsXG4gICAgICAgIHR5cGVzOiBzdHJpbmcsXG4gICAgICAgIHByb2plY3Q6IHN0cmluZyxcbiAgICAgICAgYXBwbGljYXRpb25zOiBzdHJpbmdbXVxuICAgICk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCd0eXBlcyBhdCBMb2FkVXNlckZlZWQ6ICcsIHR5cGVzKTtcbiAgICAgICAgdmFyIGFwcHMgPSBKU09OLnN0cmluZ2lmeShhcHBsaWNhdGlvbnMgfHwgW10pO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChcbiAgICAgICAgICAgIGAke3RoaXMuYXBpUm9vdH0vYXBpL2xvd2NvZGV1bml0L3VzZXJmZWVkP3BhZ2U9JHtwYWdlfSZwYWdlU2l6ZT0ke3BhZ2VTaXplfSZ0eXBlcz0ke3R5cGVzfSZwcm9qZWN0PSR7cHJvamVjdH0mYXBwbGljYXRpb25zPSR7YXBwc31gLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMubG9hZEhlYWRlcnMoKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgU2F2ZUVudGVycHJpc2VBc0NvZGUoZWFjOiBFbnRlcnByaXNlQXNDb2RlKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxuICAgICAgICAgICAgYCR7dGhpcy5hcGlSb290fS9hcGkvbG93Y29kZXVuaXQvbWFuYWdlL2VhY2AsXG4gICAgICAgICAgICBlYWMsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5sb2FkSGVhZGVycygpLFxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBTZXRBY3RpdmVFbnRlcnByaXNlKGFjdGl2ZUVudExvb2t1cDogc3RyaW5nKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxuICAgICAgICAgICAgYCR7dGhpcy5hcGlSb290fS9hcGkvbG93Y29kZXVuaXQvbWFuYWdlL2VudGVycHJpc2VzL2FjdGl2ZWAsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgQWN0aXZlRW50ZXJwcmlzZUxvb2t1cDogYWN0aXZlRW50TG9va3VwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmxvYWRIZWFkZXJzKCksXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIFN1Ym1pdEZlZWRFbnRyeShlbnRyeTogRmVlZEVudHJ5KTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxuICAgICAgICAgICAgYCR7dGhpcy5hcGlSb290fS9hcGkvbG93Y29kZXVuaXQvdXNlcmZlZWQvZW50cnlgLFxuICAgICAgICAgICAgZW50cnksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5sb2FkSGVhZGVycygpLFxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBVbnBhY2tMb3dDb2RlVW5pdChcbiAgICAgICAgcmVxOiBVbnBhY2tMb3dDb2RlVW5pdFJlcXVlc3RcbiAgICApOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXG4gICAgICAgICAgICBgJHt0aGlzLmFwaVJvb3R9L2FwaS9sb3djb2RldW5pdC9tYW5hZ2UvcHJvamVjdHMvdW5wYWNrYCxcbiAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmxvYWRIZWFkZXJzKCksXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gIEhlbHBlcnNcbiAgICBwcm90ZWN0ZWQgbG9hZEhlYWRlcnMoKTogeyBbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9IHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbn1cbiJdfQ==
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25zLWZsb3cuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2FwcGxpY2F0aW9ucy1mbG93LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVUzQyxNQUFNLE9BQU8sdUJBQXVCO0lBSWhDLGNBQWM7SUFFZCxlQUFlO0lBQ2YsWUFDYyxJQUFnQixFQUNoQixRQUE0QjtRQUQ1QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGFBQVEsR0FBUixRQUFRLENBQW9CO1FBRXRDLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQztJQUNwQyxDQUFDO0lBRUQsY0FBYztJQUNQLHFCQUFxQixDQUFDLFlBQW9CO1FBQzdDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ2pCLEdBQUcsSUFBSSxDQUFDLE9BQU8sMENBQTBDLFlBQVksWUFBWSxFQUNqRixFQUFFLEVBQ0Y7WUFDSSxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtTQUM5QixDQUNKLENBQUM7SUFDTixDQUFDO0lBRU0sZ0JBQWdCLENBQ25CLFlBQW9CLEVBQ3BCLFFBQWdCO1FBRWhCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ2pCLEdBQUcsSUFBSSxDQUFDLE9BQU8seUNBQXlDLFlBQVksZUFBZSxFQUNuRjtZQUNJLElBQUksRUFBRSxRQUFRO1NBQ2pCLEVBQ0Q7WUFDSSxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtTQUM5QixDQUNKLENBQUM7SUFDTixDQUFDO0lBRU0sb0JBQW9CO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ2pCLEdBQUcsSUFBSSxDQUFDLE9BQU8sMkNBQTJDLEVBQzFELEVBQUUs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NENBQTRDLEVBQzNEO1lBQ0ksc0JBQXNCLEVBQUUsZUFBZTtTQUMxQyxFQUNEO1lBQ0ksT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUU7U0FDOUIsQ0FDSixDQUFDO0lBQ04sQ0FBQztJQUVNLGVBQWUsQ0FBQyxLQUFnQjtRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNqQixHQUFHLElBQUksQ0FBQyxPQUFPLGlDQUFpQyxFQUNoRCxLQUFLLEVBQ0w7WUFDSSxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtTQUM5QixDQUNKLENBQUM7SUFDTixDQUFDO0lBRU0saUJBQWlCLENBQ3BCLEdBQTZCO1FBRTdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ2pCLEdBQUcsSUFBSSxDQUFDLE9BQU8seUNBQXlDLEVBQ3hELEdBQUcsRUFDSDtZQUNJLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFO1NBQzlCLENBQ0osQ0FBQztJQUNOLENBQUM7SUFFRCxXQUFXO0lBQ0QsV0FBVztRQUNqQixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7O29IQS9PUSx1QkFBdUI7d0hBQXZCLHVCQUF1QixjQUZwQixNQUFNOzJGQUVULHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTENVU2VydmljZVNldHRpbmdzIH0gZnJvbSAnQGxjdS9jb21tb24nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRW50ZXJwcmlzZUFzQ29kZSB9IGZyb20gJ0BzZW1hbnRpY2pzL2NvbW1vbic7XG5pbXBvcnQgeyBVbnBhY2tMb3dDb2RlVW5pdFJlcXVlc3QgfSBmcm9tICcuLi9zdGF0ZS9hcHBsaWNhdGlvbnMtZmxvdy5zdGF0ZSc7XG5pbXBvcnQgeyBGZWVkRW50cnkgfSBmcm9tICcuLi9tb2RlbHMvdXNlci1mZWVkLm1vZGVsJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25zRmxvd1NlcnZpY2Uge1xuICAgIC8vICBGaWVsZHNcbiAgICBwcm90ZWN0ZWQgYXBpUm9vdDogc3RyaW5nO1xuXG4gICAgLy8gIFByb3BlcnRpZXNcblxuICAgIC8vIENvbnN0cnVjdG9yc1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgcHJvdGVjdGVkIHNldHRpbmdzOiBMQ1VTZXJ2aWNlU2V0dGluZ3NcbiAgICApIHtcbiAgICAgICAgdGhpcy5hcGlSb290ID0gc2V0dGluZ3MuQVBJUm9vdDtcbiAgICB9XG5cbiAgICAvLyBBUEkgTWV0aG9kc1xuICAgIHB1YmxpYyBDb25maWd1cmVEZXZPcHNBY3Rpb24oYWN0aW9uTG9va3VwOiBzdHJpbmcpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXG4gICAgICAgICAgICBgJHt0aGlzLmFwaVJvb3R9L2FwaS9sb3djb2RldW5pdC9tYW5hZ2UvZGV2b3BzL2FjdGlvbnMvJHthY3Rpb25Mb29rdXB9L2NvbmZpZ3VyZWAsXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmxvYWRIZWFkZXJzKCksXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIENyZWF0ZVJlcG9zaXRvcnkoXG4gICAgICAgIG9yZ2FuaXphdGlvbjogc3RyaW5nLFxuICAgICAgICByZXBvTmFtZTogc3RyaW5nXG4gICAgKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxuICAgICAgICAgICAgYCR7dGhpcy5hcGlSb290fS9hcGkvbG93Y29kZXVuaXQvZ2l0aHViL29yZ2FuaXphdGlvbnMvJHtvcmdhbml6YXRpb259L3JlcG9zaXRvcmllc2AsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgTmFtZTogcmVwb05hbWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMubG9hZEhlYWRlcnMoKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgRW5zdXJlVXNlckVudGVycHJpc2UoKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxuICAgICAgICAgICAgYCR7dGhpcy5hcGlSb290fS9hcGkvbG93Y29kZXVuaXQvbWFuYWdlL2VudGVycHJpc2UvZW5zdXJlYCxcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMubG9hZEhlYWRlcnMoKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgRW50ZXJwcmlzZUFzQ29kZVJlbW92YWxzKFxuICAgICAgICByZW1vdmFsczogRW50ZXJwcmlzZUFzQ29kZVxuICAgICk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcbiAgICAgICAgICAgIGAke3RoaXMuYXBpUm9vdH0vYXBpL2xvd2NvZGV1bml0L3JlbW92YWxzL2VhY2AsXG4gICAgICAgICAgICByZW1vdmFscyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmxvYWRIZWFkZXJzKCksXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIEdldEFjdGl2ZUVudGVycHJpc2UoKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXG4gICAgICAgICAgICBgJHt0aGlzLmFwaVJvb3R9L2FwaS9sb3djb2RldW5pdC9tYW5hZ2UvZW50ZXJwcmlzZXMvYWN0aXZlYCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmxvYWRIZWFkZXJzKCksXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIEhhc1ZhbGlkQ29ubmVjdGlvbigpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChcbiAgICAgICAgICAgIGAke3RoaXMuYXBpUm9vdH0vYXBpL2xvd2NvZGV1bml0L2dpdGh1Yi9jb25uZWN0aW9uL3ZhbGlkYCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmxvYWRIZWFkZXJzKCksXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIExpc3RQcm9qZWN0cygpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChcbiAgICAgICAgICAgIGAke3RoaXMuYXBpUm9vdH0vYXBpL2xvd2NvZGV1bml0L21hbmFnZS9wcm9qZWN0c2AsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5sb2FkSGVhZGVycygpLFxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBMaXN0QnJhbmNoZXMoXG4gICAgICAgIG9yZ2FuaXphdGlvbjogc3RyaW5nLFxuICAgICAgICByZXBvc2l0b3J5OiBzdHJpbmdcbiAgICApOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChcbiAgICAgICAgICAgIGAke3RoaXMuYXBpUm9vdH0vYXBpL2xvd2NvZGV1bml0L2dpdGh1Yi9vcmdhbml6YXRpb25zLyR7b3JnYW5pemF0aW9ufS9yZXBvc2l0b3JpZXMvJHtyZXBvc2l0b3J5fS9icmFuY2hlc2AsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5sb2FkSGVhZGVycygpLFxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBMaXN0QnVpbGRQYXRocyhcbiAgICAgICAgb3JnYW5pemF0aW9uOiBzdHJpbmcsXG4gICAgICAgIHJlcG9zaXRvcnk6IHN0cmluZyxcbiAgICAgICAgYnJhbmNoOiBzdHJpbmcgPSAnJ1xuICAgICk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxuICAgICAgICAgICAgYCR7dGhpcy5hcGlSb290fS9hcGkvbG93Y29kZXVuaXQvZ2l0aHViL29yZ2FuaXphdGlvbnMvJHtvcmdhbml6YXRpb259L3JlcG9zaXRvcmllcy8ke3JlcG9zaXRvcnl9L2J1aWxkLXBhdGhzP2JyYW5jaD0ke2JyYW5jaH1gLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMubG9hZEhlYWRlcnMoKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgTGlzdEVudGVycHJpc2VzKCk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxuICAgICAgICAgICAgYCR7dGhpcy5hcGlSb290fS9hcGkvbG93Y29kZXVuaXQvbWFuYWdlL2VudGVycHJpc2VzL2xpc3RgLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMubG9hZEhlYWRlcnMoKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgTGlzdE9yZ2FuaXphdGlvbnMoKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXG4gICAgICAgICAgICBgJHt0aGlzLmFwaVJvb3R9L2FwaS9sb3djb2RldW5pdC9naXRodWIvb3JnYW5pemF0aW9uc2AsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5sb2FkSGVhZGVycygpLFxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBMaXN0UmVwb3NpdG9yaWVzKG9yZ2FuaXphdGlvbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXG4gICAgICAgICAgICBgJHt0aGlzLmFwaVJvb3R9L2FwaS9sb3djb2RldW5pdC9naXRodWIvb3JnYW5pemF0aW9ucy8ke29yZ2FuaXphdGlvbn0vcmVwb3NpdG9yaWVzYCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmxvYWRIZWFkZXJzKCksXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIExvYWRFbnRlcnByaXNlQXNDb2RlKCk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYXBpUm9vdH0vYXBpL2xvd2NvZGV1bml0L21hbmFnZS9lYWNgLCB7XG4gICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmxvYWRIZWFkZXJzKCksXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBMb2FkTGljZW5zZURhdGEoKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hcGlSb290fS9hcGkvbG93Y29kZXVuaXQvbWFuYWdlL2xpY2Vuc2VgLCB7XG4gICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmxvYWRIZWFkZXJzKCksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvLyBwdWJsaWMgTG9hZFByb2plY3RIb3N0aW5nRGV0YWlscyhcbiAgICAvLyAgIG9yZ2FuaXphdGlvbjogc3RyaW5nLFxuICAgIC8vICAgcmVwb3NpdG9yeTogc3RyaW5nLFxuICAgIC8vICAgYnJhbmNoOiBzdHJpbmdcbiAgICAvLyApOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgIC8vICAgYnJhbmNoID0gZW5jb2RlVVJJQ29tcG9uZW50KGJyYW5jaCk7XG5cbiAgICAvLyAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxuICAgIC8vICAgICBgJHt0aGlzLmFwaVJvb3R9L2FwaS9sb3djb2RldW5pdC9tYW5hZ2UvcHJvamVjdHMvb3JnYW5pemF0aW9ucy8ke29yZ2FuaXphdGlvbn0vcmVwb3NpdG9yaWVzLyR7cmVwb3NpdG9yeX0vYnJhbmNoZXMvJHticmFuY2h9L2hvc3RpbmcvZGV0YWlsc2AsXG4gICAgLy8gICAgIHtcbiAgICAvLyAgICAgICBoZWFkZXJzOiB0aGlzLmxvYWRIZWFkZXJzKCksXG4gICAgLy8gICAgIH1cbiAgICAvLyAgICk7XG4gICAgLy8gfVxuXG4gICAgcHVibGljIExvYWRQcm9qZWN0SG9zdGluZ0RldGFpbHMoKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXG4gICAgICAgICAgICBgJHt0aGlzLmFwaVJvb3R9L2FwaS9sb3djb2RldW5pdC9tYW5hZ2UvcHJvamVjdHMvaG9zdGluZy9kZXRhaWxzYCxcblxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMubG9hZEhlYWRlcnMoKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgTG9hZFVzZXJGZWVkKFxuICAgICAgICBwYWdlOiBudW1iZXIsXG4gICAgICAgIHBhZ2VTaXplOiBudW1iZXIsXG4gICAgICAgIHByb2plY3Q6IHN0cmluZyxcbiAgICAgICAgYXBwbGljYXRpb25zOiBzdHJpbmdbXVxuICAgICk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgICAgIHZhciBhcHBzID0gSlNPTi5zdHJpbmdpZnkoYXBwbGljYXRpb25zIHx8IFtdKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXG4gICAgICAgICAgICBgJHt0aGlzLmFwaVJvb3R9L2FwaS9sb3djb2RldW5pdC91c2VyZmVlZD9wYWdlPSR7cGFnZX0mcGFnZVNpemU9JHtwYWdlU2l6ZX0mcHJvamVjdD0ke3Byb2plY3R9JmFwcGxpY2F0aW9ucz0ke2FwcHN9YCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmxvYWRIZWFkZXJzKCksXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIFNhdmVFbnRlcnByaXNlQXNDb2RlKGVhYzogRW50ZXJwcmlzZUFzQ29kZSk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcbiAgICAgICAgICAgIGAke3RoaXMuYXBpUm9vdH0vYXBpL2xvd2NvZGV1bml0L21hbmFnZS9lYWNgLFxuICAgICAgICAgICAgZWFjLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMubG9hZEhlYWRlcnMoKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgU2V0QWN0aXZlRW50ZXJwcmlzZShhY3RpdmVFbnRMb29rdXA6IHN0cmluZyk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcbiAgICAgICAgICAgIGAke3RoaXMuYXBpUm9vdH0vYXBpL2xvd2NvZGV1bml0L21hbmFnZS9lbnRlcnByaXNlcy9hY3RpdmVgLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIEFjdGl2ZUVudGVycHJpc2VMb29rdXA6IGFjdGl2ZUVudExvb2t1cCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5sb2FkSGVhZGVycygpLFxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBTdWJtaXRGZWVkRW50cnkoZW50cnk6IEZlZWRFbnRyeSk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcbiAgICAgICAgICAgIGAke3RoaXMuYXBpUm9vdH0vYXBpL2xvd2NvZGV1bml0L3VzZXJmZWVkL2VudHJ5YCxcbiAgICAgICAgICAgIGVudHJ5LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMubG9hZEhlYWRlcnMoKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgVW5wYWNrTG93Q29kZVVuaXQoXG4gICAgICAgIHJlcTogVW5wYWNrTG93Q29kZVVuaXRSZXF1ZXN0XG4gICAgKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxuICAgICAgICAgICAgYCR7dGhpcy5hcGlSb290fS9hcGkvbG93Y29kZXVuaXQvbWFuYWdlL3Byb2plY3RzL3VucGFja2AsXG4gICAgICAgICAgICByZXEsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogdGhpcy5sb2FkSGVhZGVycygpLFxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vICBIZWxwZXJzXG4gICAgcHJvdGVjdGVkIGxvYWRIZWFkZXJzKCk6IHsgW2hlYWRlcjogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG59XG4iXX0=
@@ -101,8 +101,8 @@ export class EaCService {
101
101
  async GetActiveEnterprise() {
102
102
  await this.projectService.GetActiveEnterprise(this.State);
103
103
  }
104
- async LoadUserFeed(page, pageSize, forCheck = false, filterStr = '') {
105
- await this.projectService.LoadUserFeed(page, pageSize, filterStr, forCheck, this.State);
104
+ async LoadUserFeed(page, pageSize, forCheck = false) {
105
+ await this.projectService.LoadUserFeed(page, pageSize, forCheck, this.State);
106
106
  }
107
107
  GenerateRoutedApplications(applications) {
108
108
  return this.projectService.GenerateRoutedApplications(applications, this.State);
@@ -249,4 +249,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
249
249
  providedIn: 'root',
250
250
  }]
251
251
  }], ctorParameters: function () { return [{ type: i1.ProjectService }, { type: i2.HttpClient }]; } });
252
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWFjLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9lYWMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFDSCxxQkFBcUIsR0FFeEIsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQWUxQyxNQUFNLE9BQU8saUNBQWlDO0NBTTdDO0FBRUQsTUFBTSxPQUFPLDJCQUEyQjtDQVF2QztBQUVELE1BQU0sT0FBTyxpQ0FBaUM7Q0FNN0M7QUFFRCxNQUFNLE9BQU8sNkJBQTZCO0NBSXpDO0FBS0QsTUFBTSxPQUFPLFVBQVU7SUFZbkIsZ0JBQWdCO0lBQ2hCLFlBQ2MsY0FBOEIsRUFDOUIsSUFBZ0I7UUFEaEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFNBQUksR0FBSixJQUFJLENBQVk7UUFFMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUM7SUFDN0MsQ0FBQztJQWpCRCxjQUFjO0lBQ2QsSUFBVyxvQkFBb0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDdEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQztJQUMvQyxDQUFDO0lBWUQsZUFBZTtJQUNSLGlCQUFpQixDQUFDLFFBQWtCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTSxLQUFLLENBQUMsaUJBQWlCLENBQzFCLFNBQWlCLEVBQ2pCLE9BQWU7UUFFZixJQUNJLE9BQU8sQ0FBQyxnREFBZ0QsT0FBTyxJQUFJLENBQUMsRUFDdEU7WUFDRSxNQUFNLEdBQUcsR0FB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Q0FBQyxDQUFDO1FBRTNDLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7O3VHQWpaUSxVQUFVOzJHQUFWLFVBQVUsY0FGUCxNQUFNOzJGQUVULFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvamVjdFNlcnZpY2UgfSBmcm9tICcuL3Byb2plY3Quc2VydmljZSc7XG5pbXBvcnQge1xuICAgIEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSxcbiAgICBVbnBhY2tMb3dDb2RlVW5pdFJlcXVlc3QsXG59IGZyb20gJy4uL3N0YXRlL2FwcGxpY2F0aW9ucy1mbG93LnN0YXRlJztcbmltcG9ydCB7XG4gICAgRWFDQXBwbGljYXRpb25Bc0NvZGUsXG4gICAgRWFDRGF0YVRva2VuLFxuICAgIEVhQ0RGU01vZGlmaWVyLFxuICAgIEVhQ0Vudmlyb25tZW50QXNDb2RlLFxuICAgIEVhQ0hvc3QsXG4gICAgRWFDUHJvamVjdEFzQ29kZSxcbiAgICBFbnRlcnByaXNlQXNDb2RlLFxufSBmcm9tICdAc2VtYW50aWNqcy9jb21tb24nO1xuaW1wb3J0IHsgRmVlZEVudHJ5LCBGZWVkSXRlbSB9IGZyb20gJy4uL21vZGVscy91c2VyLWZlZWQubW9kZWwnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFN0YXR1cyB9IGZyb20gJ0BsY3UvY29tbW9uJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGNsYXNzIFNhdmVBcHBsaWNhdGlvbkFzQ29kZUV2ZW50UmVxdWVzdCB7XG4gICAgcHVibGljIEFwcGxpY2F0aW9uPzogRWFDQXBwbGljYXRpb25Bc0NvZGU7XG5cbiAgICBwdWJsaWMgQXBwbGljYXRpb25Mb29rdXA/OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgUHJvamVjdExvb2t1cD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFNhdmVERlNNb2RpZmllckV2ZW50UmVxdWVzdCB7XG4gICAgcHVibGljIEFwcGxpY2F0aW9uTG9va3VwPzogc3RyaW5nO1xuXG4gICAgcHVibGljIE1vZGlmaWVyPzogRWFDREZTTW9kaWZpZXI7XG5cbiAgICBwdWJsaWMgTW9kaWZpZXJMb29rdXBzPzogQXJyYXk8c3RyaW5nPjtcblxuICAgIHB1YmxpYyBQcm9qZWN0TG9va3Vwcz86IEFycmF5PHN0cmluZz47XG59XG5cbmV4cG9ydCBjbGFzcyBTYXZlRW52aXJvbm1lbnRBc0NvZGVFdmVudFJlcXVlc3Qge1xuICAgIHB1YmxpYyBFbnRlcnByaXNlRGF0YVRva2Vucz86IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDRGF0YVRva2VuIH07XG5cbiAgICBwdWJsaWMgRW52aXJvbm1lbnQ/OiBFYUNFbnZpcm9ubWVudEFzQ29kZTtcblxuICAgIHB1YmxpYyBFbnZpcm9ubWVudExvb2t1cD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFNhdmVQcm9qZWN0QXNDb2RlRXZlbnRSZXF1ZXN0IHtcbiAgICBwdWJsaWMgUHJvamVjdD86IEVhQ1Byb2plY3RBc0NvZGU7XG5cbiAgICBwdWJsaWMgUHJvamVjdExvb2t1cD86IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRWFDU2VydmljZSB7XG4gICAgLy8gIFByb3BlcnRpZXNcbiAgICBwdWJsaWMgZ2V0IEVkaXRpbmdQcm9qZWN0TG9va3VwKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb2plY3RTZXJ2aWNlLkVkaXRpbmdQcm9qZWN0TG9va3VwO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgQ3JlYXRpbmdQcm9qZWN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9qZWN0U2VydmljZS5DcmVhdGluZ1Byb2plY3Q7XG4gICAgfVxuXG4gICAgcHVibGljIFN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGU7XG5cbiAgICAvLyAgQ29uc3RydWN0b3JzXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBwcm9qZWN0U2VydmljZTogUHJvamVjdFNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50XG4gICAgKSB7XG4gICAgICAgIHRoaXMuU3RhdGUgPSBuZXcgQXBwbGljYXRpb25zRmxvd1N0YXRlKCk7XG4gICAgfVxuXG4gICAgLy8gIEFQSSBNZXRob2RzXG4gICAgcHVibGljIENoZWNrVXNlckZlZWRJdGVtKGZlZWRJdGVtOiBGZWVkSXRlbSk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGZlZWRJdGVtLlJlZnJlc2hMaW5rKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgRGVsZXRlQXBwbGljYXRpb24oXG4gICAgICAgIGFwcExvb2t1cDogc3RyaW5nLFxuICAgICAgICBhcHBOYW1lOiBzdHJpbmdcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBjb25maXJtKGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIGFwcGxpY2F0aW9uICcke2FwcE5hbWV9Jz9gKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IGVhYzogRW50ZXJwcmlzZUFzQ29kZSA9IHtcbiAgICAgICAgICAgICAgICBFbnRlcnByaXNlTG9va3VwOiB0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICAgICAgICAgIEFwcGxpY2F0aW9uczoge30sXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBlYWMuQXBwbGljYXRpb25zW2FwcExvb2t1cF0gPSB7XG4gICAgICAgICAgICAgICAgQXBwbGljYXRpb246IHt9LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuRW50ZXJwcmlzZUFzQ29kZVJlbW92YWxzKFxuICAgICAgICAgICAgICAgIHRoaXMuU3RhdGUsXG4gICAgICAgICAgICAgICAgZWFjXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIERlbGV0ZURldk9wc0FjdGlvbihcbiAgICAgICAgZG9hTG9va3VwOiBzdHJpbmcsXG4gICAgICAgIGRvYU5hbWU6IHN0cmluZ1xuICAgICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGNvbmZpcm0oXG4gICAgICAgICAgICAgICAgYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgQnVpbGQgUGlwZWxpbmUgJyR7ZG9hTmFtZX0nP2BcbiAgICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBlYWM6IEVudGVycHJpc2VBc0NvZGUgPSB7XG4gICAgICAgICAgICAgICAgRW50ZXJwcmlzZUxvb2t1cDogdGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZUxvb2t1cCxcbiAgICAgICAgICAgICAgICBFbnZpcm9ubWVudHM6IHt9LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZWFjLkVudmlyb25tZW50c1t0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlLlByaW1hcnlFbnZpcm9ubWVudF0gPSB7XG4gICAgICAgICAgICAgICAgRGV2T3BzQWN0aW9uczoge30sXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBlYWMuRW52aXJvbm1lbnRzW1xuICAgICAgICAgICAgICAgIHRoaXMuU3RhdGUuRWFDLkVudGVycHJpc2UuUHJpbWFyeUVudmlyb25tZW50XG4gICAgICAgICAgICBdLkRldk9wc0FjdGlvbnNbZG9hTG9va3VwXSA9IHt9O1xuXG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5FbnRlcnByaXNlQXNDb2RlUmVtb3ZhbHMoXG4gICAgICAgICAgICAgICAgdGhpcy5TdGF0ZSxcbiAgICAgICAgICAgICAgICBlYWNcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgRGVsZXRlTW9kaWZpZXIoXG4gICAgICAgIG1vZGlmaWVyTG9va3VwOiBzdHJpbmcsXG4gICAgICAgIG1vZGlmaWVyTmFtZTogc3RyaW5nXG4gICAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgY29uZmlybShcbiAgICAgICAgICAgICAgICBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBNb2RpZmllciAnJHttb2RpZmllck5hbWV9Jz9gXG4gICAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgZWFjOiBFbnRlcnByaXNlQXNDb2RlID0ge1xuICAgICAgICAgICAgICAgIEVudGVycHJpc2VMb29rdXA6IHRoaXMuU3RhdGUuRWFDLkVudGVycHJpc2VMb29rdXAsXG4gICAgICAgICAgICAgICAgTW9kaWZpZXJzOiB7fSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGVhYy5Nb2RpZmllcnNbbW9kaWZpZXJMb29rdXBdID0ge307XG5cbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkVudGVycHJpc2VBc0NvZGVSZW1vdmFscyhcbiAgICAgICAgICAgICAgICB0aGlzLlN0YXRlLFxuICAgICAgICAgICAgICAgIGVhY1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBEZWxldGVQcm9qZWN0KFxuICAgICAgICBwcm9qZWN0TG9va3VwOiBzdHJpbmcsXG4gICAgICAgIHByb2plY3ROYW1lOiBzdHJpbmdcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBjb25maXJtKGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIFByb2plY3QgJyR7cHJvamVjdE5hbWV9Jz9gKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IGVhYzogRW50ZXJwcmlzZUFzQ29kZSA9IHtcbiAgICAgICAgICAgICAgICBFbnRlcnByaXNlTG9va3VwOiB0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICAgICAgICAgIFByb2plY3RzOiB7fSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGVhYy5Qcm9qZWN0c1twcm9qZWN0TG9va3VwXSA9IHtcbiAgICAgICAgICAgICAgICBQcm9qZWN0OiB7fSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkVudGVycHJpc2VBc0NvZGVSZW1vdmFscyhcbiAgICAgICAgICAgICAgICB0aGlzLlN0YXRlLFxuICAgICAgICAgICAgICAgIGVhY1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBEZWxldGVTb3VyY2VDb250cm9sKFxuICAgICAgICBzcmNMb29rdXA6IHN0cmluZyxcbiAgICAgICAgc3JjTmFtZTogc3RyaW5nXG4gICAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgY29uZmlybShcbiAgICAgICAgICAgICAgICBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBTb3VyY2UgQ29udHJvbCAnJHtzcmNOYW1lfSc/YFxuICAgICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IGVhYzogRW50ZXJwcmlzZUFzQ29kZSA9IHtcbiAgICAgICAgICAgICAgICBFbnRlcnByaXNlTG9va3VwOiB0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICAgICAgICAgIEVudmlyb25tZW50czoge30sXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBlYWMuRW52aXJvbm1lbnRzW3RoaXMuU3RhdGUuRWFDLkVudGVycHJpc2UuUHJpbWFyeUVudmlyb25tZW50XSA9IHtcbiAgICAgICAgICAgICAgICBTb3VyY2VzOiB7fSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGVhYy5FbnZpcm9ubWVudHNbXG4gICAgICAgICAgICAgICAgdGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZS5QcmltYXJ5RW52aXJvbm1lbnRcbiAgICAgICAgICAgIF0uU291cmNlc1tzcmNMb29rdXBdID0ge307XG5cbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkVudGVycHJpc2VBc0NvZGVSZW1vdmFscyhcbiAgICAgICAgICAgICAgICB0aGlzLlN0YXRlLFxuICAgICAgICAgICAgICAgIGVhY1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHRoaXMuYXBwc0Zsb3dFdmVudHNTdmMuRW5zdXJlVXNlckVudGVycHJpc2VFdmVudC5zdWJzY3JpYmUoYXN5bmMgKCkgPT4ge1xuICAgIC8vICAgYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5FbnN1cmVVc2VyRW50ZXJwcmlzZSh0aGlzLlN0YXRlKTtcbiAgICAvLyB9KTtcblxuICAgIHB1YmxpYyBhc3luYyBFbnN1cmVVc2VyRW50ZXJwcmlzZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5FbnN1cmVVc2VyRW50ZXJwcmlzZSh0aGlzLlN0YXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgRW50ZXJwcmlzZUFzQ29kZVJlbW92YWxzKFxuICAgICAgICBlYWM6IEVudGVycHJpc2VBc0NvZGVcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9qZWN0U2VydmljZS5FbnRlcnByaXNlQXNDb2RlUmVtb3ZhbHModGhpcy5TdGF0ZSwgZWFjKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgR2V0QWN0aXZlRW50ZXJwcmlzZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5HZXRBY3RpdmVFbnRlcnByaXNlKHRoaXMuU3RhdGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMb2FkVXNlckZlZWQoXG4gICAgICAgIHBhZ2U6IG51bWJlcixcbiAgICAgICAgcGFnZVNpemU6IG51bWJlcixcbiAgICAgICAgZm9yQ2hlY2s6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICAgICAgZmlsdGVyU3RyOiBzdHJpbmcgPSAnJ1xuICAgICk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkxvYWRVc2VyRmVlZChcbiAgICAgICAgICAgIHBhZ2UsXG4gICAgICAgICAgICBwYWdlU2l6ZSxcbiAgICAgICAgICAgIGZpbHRlclN0cixcbiAgICAgICAgICAgIGZvckNoZWNrLFxuICAgICAgICAgICAgdGhpcy5TdGF0ZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBHZW5lcmF0ZVJvdXRlZEFwcGxpY2F0aW9ucyhhcHBsaWNhdGlvbnM6IHtcbiAgICAgICAgW2xvb2t1cDogc3RyaW5nXTogRWFDQXBwbGljYXRpb25Bc0NvZGU7XG4gICAgfSk6IHtcbiAgICAgICAgW3JvdXRlOiBzdHJpbmddOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH07XG4gICAgfSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb2plY3RTZXJ2aWNlLkdlbmVyYXRlUm91dGVkQXBwbGljYXRpb25zKFxuICAgICAgICAgICAgYXBwbGljYXRpb25zLFxuICAgICAgICAgICAgdGhpcy5TdGF0ZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBIYXNWYWxpZENvbm5lY3Rpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuSGFzVmFsaWRDb25uZWN0aW9uKHRoaXMuU3RhdGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMaXN0RW50ZXJwcmlzZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuTGlzdEVudGVycHJpc2VzKHRoaXMuU3RhdGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMb2FkRW50ZXJwcmlzZUFzQ29kZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5Mb2FkRW50ZXJwcmlzZUFzQ29kZSh0aGlzLlN0YXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgTG9hZFVzZXJJbmZvKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkxvYWRVc2VyTGljZW5zZUluZm8odGhpcy5TdGF0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIFJlbG9hZEZlZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLlN0YXRlLkZlZWRDaGVjaykge1xuICAgICAgICAgICAgdGhpcy5TdGF0ZS5GZWVkID0gdGhpcy5TdGF0ZS5GZWVkQ2hlY2suSXRlbXM7XG5cbiAgICAgICAgICAgIHRoaXMuU3RhdGUuRmVlZEFjdGlvbnMgPSB0aGlzLlN0YXRlLkZlZWRDaGVjay5BY3Rpb25zO1xuXG4gICAgICAgICAgICB0aGlzLlN0YXRlLkZlZWRTb3VyY2VDb250cm9sTG9va3VwcyA9XG4gICAgICAgICAgICAgICAgdGhpcy5TdGF0ZS5GZWVkQ2hlY2suU291cmNlQ29udHJvbExvb2t1cHM7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLlN0YXRlLkZlZWRDaGVjayA9IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIFNhdmVBcHBsaWNhdGlvbkFzQ29kZShcbiAgICAgICAgcmVxOiBTYXZlQXBwbGljYXRpb25Bc0NvZGVFdmVudFJlcXVlc3RcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5oYW5kbGVTYXZlQXBwbGljYXRpb24ocmVxKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgU2F2ZURGU01vZGlmaWVyKFxuICAgICAgICByZXE6IFNhdmVERlNNb2RpZmllckV2ZW50UmVxdWVzdFxuICAgICk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLmhhbmRsZVNhdmVERlNNb2RpZmllcihyZXEpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBTYXZlRW50ZXJwcmlzZUFzQ29kZShlYWM6IEVudGVycHJpc2VBc0NvZGUpOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5TYXZlRW50ZXJwcmlzZUFzQ29kZSh0aGlzLlN0YXRlLCBlYWMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBTYXZlRW52aXJvbm1lbnRBc0NvZGUoXG4gICAgICAgIHJlcTogU2F2ZUVudmlyb25tZW50QXNDb2RlRXZlbnRSZXF1ZXN0XG4gICAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuaGFuZGxlU2F2ZUVudmlyb25tZW50KHJlcSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIFNhdmVQcm9qZWN0QXNDb2RlKFxuICAgICAgICByZXE6IFNhdmVQcm9qZWN0QXNDb2RlRXZlbnRSZXF1ZXN0XG4gICAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuaGFuZGxlU2F2ZVByb2plY3QocmVxLlByb2plY3RMb29rdXAsIHJlcS5Qcm9qZWN0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgU2V0QWN0aXZlRW50ZXJwcmlzZShlbnRMb29rdXA6IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLnByb2plY3RTZXJ2aWNlLlNldEFjdGl2ZUVudGVycHJpc2UodGhpcy5TdGF0ZSwgZW50TG9va3VwKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgU2V0Q3JlYXRpbmdQcm9qZWN0KGNyZWF0aW5nUHJvamVjdDogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLnByb2plY3RTZXJ2aWNlLlNldENyZWF0aW5nUHJvamVjdChjcmVhdGluZ1Byb2plY3QpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBTZXRFZGl0UHJvamVjdFNldHRpbmdzKHByb2plY3RMb29rdXA6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlNldEVkaXRQcm9qZWN0U2V0dGluZ3MoXG4gICAgICAgICAgICB0aGlzLlN0YXRlLFxuICAgICAgICAgICAgcHJvamVjdExvb2t1cFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBTdWJtaXRGZWVkRW50cnkoZW50cnk6IEZlZWRFbnRyeSk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlN1Ym1pdEZlZWRFbnRyeSh0aGlzLlN0YXRlLCBlbnRyeSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIFVucGFja0xvd0NvZGVVbml0KFxuICAgICAgICByZXE6IFVucGFja0xvd0NvZGVVbml0UmVxdWVzdFxuICAgICk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBjb25maXJtKFxuICAgICAgICAgICAgICAgIGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gdW5wYWNrIGFwcGxpY2F0aW9uICcke3JlcS5BcHBsaWNhdGlvbk5hbWV9JyB3aXRoIHZlcnNpb24gJyR7cmVxLlZlcnNpb259Jz9gXG4gICAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5VbnBhY2tMb3dDb2RlVW5pdCh0aGlzLlN0YXRlLCByZXEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gIEhlbHBlcnNcbiAgICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlU2F2ZUFwcGxpY2F0aW9uKFxuICAgICAgICByZXE6IFNhdmVBcHBsaWNhdGlvbkFzQ29kZUV2ZW50UmVxdWVzdFxuICAgICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgICAgIGNvbnN0IHNhdmVFYUM6IEVudGVycHJpc2VBc0NvZGUgPSB7XG4gICAgICAgICAgICBFbnRlcnByaXNlTG9va3VwOiB0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICAgICAgQXBwbGljYXRpb25zOiB7fSxcbiAgICAgICAgICAgIFByb2plY3RzOiB7fSxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAocmVxLlByb2plY3RMb29rdXApIHtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nUHJvaiA9IHtcbiAgICAgICAgICAgICAgICBbcmVxLlByb2plY3RMb29rdXBdOiB7XG4gICAgICAgICAgICAgICAgICAgIEFwcGxpY2F0aW9uTG9va3VwczogW3JlcS5BcHBsaWNhdGlvbkxvb2t1cF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHNhdmVFYUMuUHJvamVjdHMgPSBleGlzdGluZ1Byb2o7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVxLkFwcGxpY2F0aW9uKSB7XG4gICAgICAgICAgICBzYXZlRWFDLkFwcGxpY2F0aW9uc1tyZXEuQXBwbGljYXRpb25Mb29rdXBdID0gcmVxLkFwcGxpY2F0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuU2F2ZUVudGVycHJpc2VBc0NvZGUoXG4gICAgICAgICAgICB0aGlzLlN0YXRlLFxuICAgICAgICAgICAgc2F2ZUVhQ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyBoYW5kbGVTYXZlREZTTW9kaWZpZXIoXG4gICAgICAgIHJlcTogU2F2ZURGU01vZGlmaWVyRXZlbnRSZXF1ZXN0XG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHNhdmVFYUM6IEVudGVycHJpc2VBc0NvZGUgPSB7XG4gICAgICAgICAgICBFbnRlcnByaXNlTG9va3VwOiB0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICAgICAgTW9kaWZpZXJzOiB7fSxcbiAgICAgICAgICAgIFByb2plY3RzOiB7fSxcbiAgICAgICAgICAgIEFwcGxpY2F0aW9uczoge30sXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHJlcS5Nb2RpZmllcikge1xuICAgICAgICAgICAgc2F2ZUVhQy5Nb2RpZmllcnNbcmVxLk1vZGlmaWVyTG9va3Vwc1swXV0gPSByZXEuTW9kaWZpZXI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVxLlByb2plY3RMb29rdXBzKSB7XG4gICAgICAgICAgICByZXEuUHJvamVjdExvb2t1cHMuZm9yRWFjaCgobG9va3VwKSA9PiB7XG4gICAgICAgICAgICAgICAgc2F2ZUVhQy5Qcm9qZWN0c1tsb29rdXBdID0ge1xuICAgICAgICAgICAgICAgICAgICBNb2RpZmllckxvb2t1cHM6IHJlcS5Nb2RpZmllckxvb2t1cHMsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlcS5BcHBsaWNhdGlvbkxvb2t1cCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ0FQUExPb2t1cDogJywgcmVxLkFwcGxpY2F0aW9uTG9va3VwKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzYXZlRUFDOiAnLCBzYXZlRWFDKTtcbiAgICAgICAgICAgIHNhdmVFYUMuQXBwbGljYXRpb25zW3JlcS5BcHBsaWNhdGlvbkxvb2t1cF0gPSB7XG4gICAgICAgICAgICAgICAgTW9kaWZpZXJMb29rdXBzOiByZXEuTW9kaWZpZXJMb29rdXBzLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuU2F2ZUVudGVycHJpc2VBc0NvZGUodGhpcy5TdGF0ZSwgc2F2ZUVhQyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNhdmVFbnZpcm9ubWVudChcbiAgICAgICAgcmVxOiBTYXZlRW52aXJvbm1lbnRBc0NvZGVFdmVudFJlcXVlc3RcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICBjb25zdCBzYXZlRWFDOiBFbnRlcnByaXNlQXNDb2RlID0ge1xuICAgICAgICAgICAgRW50ZXJwcmlzZUxvb2t1cDogdGhpcy5TdGF0ZT8uRWFDPy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICAgICAgRGF0YVRva2Vuczoge30sXG4gICAgICAgICAgICBFbnZpcm9ubWVudHM6IHt9LFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChyZXEuRW52aXJvbm1lbnQpIHtcbiAgICAgICAgICAgIHNhdmVFYUMuRW52aXJvbm1lbnRzW3JlcS5FbnZpcm9ubWVudExvb2t1cF0gPSByZXEuRW52aXJvbm1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVxLkVudGVycHJpc2VEYXRhVG9rZW5zKSB7XG4gICAgICAgICAgICBzYXZlRWFDLkRhdGFUb2tlbnMgPSByZXEuRW50ZXJwcmlzZURhdGFUb2tlbnM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5TYXZlRW50ZXJwcmlzZUFzQ29kZShcbiAgICAgICAgICAgIHRoaXMuU3RhdGUsXG4gICAgICAgICAgICBzYXZlRWFDXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNhdmVQcm9qZWN0KFxuICAgICAgICBwcm9qZWN0TG9va3VwOiBzdHJpbmcsXG4gICAgICAgIHByb2plY3Q6IEVhQ1Byb2plY3RBc0NvZGVcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICBjb25zdCBwcm9qSG9zdHM6IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDSG9zdCB9ID0ge307XG5cbiAgICAgICAgcHJvamVjdD8uSG9zdHM/LmZvckVhY2goKGhvc3Q6IGFueSkgPT4ge1xuICAgICAgICAgICAgcHJvakhvc3RzW2hvc3RdID0gdGhpcy5TdGF0ZS5FYUMuSG9zdHNbaG9zdF07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHNhdmVFYUM6IEVudGVycHJpc2VBc0NvZGUgPSB7XG4gICAgICAgICAgICBFbnRlcnByaXNlTG9va3VwOiB0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICAgICAgRW50ZXJwcmlzZToge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuU3RhdGUuRWFDLkVudGVycHJpc2UsXG4gICAgICAgICAgICAgICAgUHJpbWFyeUhvc3Q6IHByb2plY3QuSG9zdHNbMF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgSG9zdHM6IHByb2pIb3N0cyxcbiAgICAgICAgICAgIC8vIFByb3ZpZGVyczogdGhpcy5TdGF0ZS5FYUMuUHJvdmlkZXJzLCAgLy8gIFRPRE86ICBSZW1vdmUgYWZ0ZXIgYWxsIHByb3ZpZGVycyBBREIyQydzIGhhdmUgYmVlbiB1cGdyYWRlZFxuICAgICAgICAgICAgUHJvamVjdHM6IHt9LFxuICAgICAgICB9O1xuXG4gICAgICAgIHNhdmVFYUMuUHJvamVjdHNbcHJvamVjdExvb2t1cF0gPSBwcm9qZWN0O1xuXG4gICAgICAgIGxldCBzdGF0dXMgPSBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlNhdmVFbnRlcnByaXNlQXNDb2RlKFxuICAgICAgICAgICAgdGhpcy5TdGF0ZSxcbiAgICAgICAgICAgIHNhdmVFYUNcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLlNldEVkaXRQcm9qZWN0U2V0dGluZ3MocHJvamVjdExvb2t1cCk7XG5cbiAgICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICB9XG59XG4iXX0=
252
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWFjLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9lYWMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFDSCxxQkFBcUIsR0FFeEIsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQWUxQyxNQUFNLE9BQU8saUNBQWlDO0NBTTdDO0FBRUQsTUFBTSxPQUFPLDJCQUEyQjtDQVF2QztBQUVELE1BQU0sT0FBTyxpQ0FBaUM7Q0FNN0M7QUFFRCxNQUFNLE9BQU8sNkJBQTZCO0NBSXpDO0FBS0QsTUFBTSxPQUFPLFVBQVU7SUFZbkIsZ0JBQWdCO0lBQ2hCLFlBQ2MsY0FBOEIsRUFDOUIsSUFBZ0I7UUFEaEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFNBQUksR0FBSixJQUFJLENBQVk7UUFFMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUM7SUFDN0MsQ0FBQztJQWpCRCxjQUFjO0lBQ2QsSUFBVyxvQkFBb0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDdEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQztJQUMvQyxDQUFDO0lBWUQsZUFBZTtJQUNSLGlCQUFpQixDQUFDLFFBQWtCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTSxLQUFLLENBQUMsaUJBQWlCLENBQzFCLFNBQWlCLEVBQ2pCLE9BQWU7UUFFZixJQUNJLE9BQU8sQ0FBQyxnREFBZ0QsT0FBTyxJQUFJLENBQUMsRUFDdEU7WUFDRSxNQUFNLEdBQUcsR0FB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QUFDO0lBQ2xCLENBQUM7O3VHQS9ZUSxVQUFVOzJHQUFWLFVBQVUsY0FGUCxNQUFNOzJGQUVULFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvamVjdFNlcnZpY2UgfSBmcm9tICcuL3Byb2plY3Quc2VydmljZSc7XG5pbXBvcnQge1xuICAgIEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSxcbiAgICBVbnBhY2tMb3dDb2RlVW5pdFJlcXVlc3QsXG59IGZyb20gJy4uL3N0YXRlL2FwcGxpY2F0aW9ucy1mbG93LnN0YXRlJztcbmltcG9ydCB7XG4gICAgRWFDQXBwbGljYXRpb25Bc0NvZGUsXG4gICAgRWFDRGF0YVRva2VuLFxuICAgIEVhQ0RGU01vZGlmaWVyLFxuICAgIEVhQ0Vudmlyb25tZW50QXNDb2RlLFxuICAgIEVhQ0hvc3QsXG4gICAgRWFDUHJvamVjdEFzQ29kZSxcbiAgICBFbnRlcnByaXNlQXNDb2RlLFxufSBmcm9tICdAc2VtYW50aWNqcy9jb21tb24nO1xuaW1wb3J0IHsgRmVlZEVudHJ5LCBGZWVkSXRlbSB9IGZyb20gJy4uL21vZGVscy91c2VyLWZlZWQubW9kZWwnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFN0YXR1cyB9IGZyb20gJ0BsY3UvY29tbW9uJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGNsYXNzIFNhdmVBcHBsaWNhdGlvbkFzQ29kZUV2ZW50UmVxdWVzdCB7XG4gICAgcHVibGljIEFwcGxpY2F0aW9uPzogRWFDQXBwbGljYXRpb25Bc0NvZGU7XG5cbiAgICBwdWJsaWMgQXBwbGljYXRpb25Mb29rdXA/OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgUHJvamVjdExvb2t1cD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFNhdmVERlNNb2RpZmllckV2ZW50UmVxdWVzdCB7XG4gICAgcHVibGljIEFwcGxpY2F0aW9uTG9va3VwPzogc3RyaW5nO1xuXG4gICAgcHVibGljIE1vZGlmaWVyPzogRWFDREZTTW9kaWZpZXI7XG5cbiAgICBwdWJsaWMgTW9kaWZpZXJMb29rdXBzPzogQXJyYXk8c3RyaW5nPjtcblxuICAgIHB1YmxpYyBQcm9qZWN0TG9va3Vwcz86IEFycmF5PHN0cmluZz47XG59XG5cbmV4cG9ydCBjbGFzcyBTYXZlRW52aXJvbm1lbnRBc0NvZGVFdmVudFJlcXVlc3Qge1xuICAgIHB1YmxpYyBFbnRlcnByaXNlRGF0YVRva2Vucz86IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDRGF0YVRva2VuIH07XG5cbiAgICBwdWJsaWMgRW52aXJvbm1lbnQ/OiBFYUNFbnZpcm9ubWVudEFzQ29kZTtcblxuICAgIHB1YmxpYyBFbnZpcm9ubWVudExvb2t1cD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFNhdmVQcm9qZWN0QXNDb2RlRXZlbnRSZXF1ZXN0IHtcbiAgICBwdWJsaWMgUHJvamVjdD86IEVhQ1Byb2plY3RBc0NvZGU7XG5cbiAgICBwdWJsaWMgUHJvamVjdExvb2t1cD86IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRWFDU2VydmljZSB7XG4gICAgLy8gIFByb3BlcnRpZXNcbiAgICBwdWJsaWMgZ2V0IEVkaXRpbmdQcm9qZWN0TG9va3VwKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb2plY3RTZXJ2aWNlLkVkaXRpbmdQcm9qZWN0TG9va3VwO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgQ3JlYXRpbmdQcm9qZWN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9qZWN0U2VydmljZS5DcmVhdGluZ1Byb2plY3Q7XG4gICAgfVxuXG4gICAgcHVibGljIFN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGU7XG5cbiAgICAvLyAgQ29uc3RydWN0b3JzXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBwcm9qZWN0U2VydmljZTogUHJvamVjdFNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50XG4gICAgKSB7XG4gICAgICAgIHRoaXMuU3RhdGUgPSBuZXcgQXBwbGljYXRpb25zRmxvd1N0YXRlKCk7XG4gICAgfVxuXG4gICAgLy8gIEFQSSBNZXRob2RzXG4gICAgcHVibGljIENoZWNrVXNlckZlZWRJdGVtKGZlZWRJdGVtOiBGZWVkSXRlbSk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGZlZWRJdGVtLlJlZnJlc2hMaW5rKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgRGVsZXRlQXBwbGljYXRpb24oXG4gICAgICAgIGFwcExvb2t1cDogc3RyaW5nLFxuICAgICAgICBhcHBOYW1lOiBzdHJpbmdcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBjb25maXJtKGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIGFwcGxpY2F0aW9uICcke2FwcE5hbWV9Jz9gKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IGVhYzogRW50ZXJwcmlzZUFzQ29kZSA9IHtcbiAgICAgICAgICAgICAgICBFbnRlcnByaXNlTG9va3VwOiB0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICAgICAgICAgIEFwcGxpY2F0aW9uczoge30sXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBlYWMuQXBwbGljYXRpb25zW2FwcExvb2t1cF0gPSB7XG4gICAgICAgICAgICAgICAgQXBwbGljYXRpb246IHt9LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuRW50ZXJwcmlzZUFzQ29kZVJlbW92YWxzKFxuICAgICAgICAgICAgICAgIHRoaXMuU3RhdGUsXG4gICAgICAgICAgICAgICAgZWFjXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIERlbGV0ZURldk9wc0FjdGlvbihcbiAgICAgICAgZG9hTG9va3VwOiBzdHJpbmcsXG4gICAgICAgIGRvYU5hbWU6IHN0cmluZ1xuICAgICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGNvbmZpcm0oXG4gICAgICAgICAgICAgICAgYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgQnVpbGQgUGlwZWxpbmUgJyR7ZG9hTmFtZX0nP2BcbiAgICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBlYWM6IEVudGVycHJpc2VBc0NvZGUgPSB7XG4gICAgICAgICAgICAgICAgRW50ZXJwcmlzZUxvb2t1cDogdGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZUxvb2t1cCxcbiAgICAgICAgICAgICAgICBFbnZpcm9ubWVudHM6IHt9LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZWFjLkVudmlyb25tZW50c1t0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlLlByaW1hcnlFbnZpcm9ubWVudF0gPSB7XG4gICAgICAgICAgICAgICAgRGV2T3BzQWN0aW9uczoge30sXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBlYWMuRW52aXJvbm1lbnRzW1xuICAgICAgICAgICAgICAgIHRoaXMuU3RhdGUuRWFDLkVudGVycHJpc2UuUHJpbWFyeUVudmlyb25tZW50XG4gICAgICAgICAgICBdLkRldk9wc0FjdGlvbnNbZG9hTG9va3VwXSA9IHt9O1xuXG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5FbnRlcnByaXNlQXNDb2RlUmVtb3ZhbHMoXG4gICAgICAgICAgICAgICAgdGhpcy5TdGF0ZSxcbiAgICAgICAgICAgICAgICBlYWNcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgRGVsZXRlTW9kaWZpZXIoXG4gICAgICAgIG1vZGlmaWVyTG9va3VwOiBzdHJpbmcsXG4gICAgICAgIG1vZGlmaWVyTmFtZTogc3RyaW5nXG4gICAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgY29uZmlybShcbiAgICAgICAgICAgICAgICBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBNb2RpZmllciAnJHttb2RpZmllck5hbWV9Jz9gXG4gICAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgZWFjOiBFbnRlcnByaXNlQXNDb2RlID0ge1xuICAgICAgICAgICAgICAgIEVudGVycHJpc2VMb29rdXA6IHRoaXMuU3RhdGUuRWFDLkVudGVycHJpc2VMb29rdXAsXG4gICAgICAgICAgICAgICAgTW9kaWZpZXJzOiB7fSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGVhYy5Nb2RpZmllcnNbbW9kaWZpZXJMb29rdXBdID0ge307XG5cbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkVudGVycHJpc2VBc0NvZGVSZW1vdmFscyhcbiAgICAgICAgICAgICAgICB0aGlzLlN0YXRlLFxuICAgICAgICAgICAgICAgIGVhY1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBEZWxldGVQcm9qZWN0KFxuICAgICAgICBwcm9qZWN0TG9va3VwOiBzdHJpbmcsXG4gICAgICAgIHByb2plY3ROYW1lOiBzdHJpbmdcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBjb25maXJtKGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIFByb2plY3QgJyR7cHJvamVjdE5hbWV9Jz9gKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IGVhYzogRW50ZXJwcmlzZUFzQ29kZSA9IHtcbiAgICAgICAgICAgICAgICBFbnRlcnByaXNlTG9va3VwOiB0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICAgICAgICAgIFByb2plY3RzOiB7fSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGVhYy5Qcm9qZWN0c1twcm9qZWN0TG9va3VwXSA9IHtcbiAgICAgICAgICAgICAgICBQcm9qZWN0OiB7fSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkVudGVycHJpc2VBc0NvZGVSZW1vdmFscyhcbiAgICAgICAgICAgICAgICB0aGlzLlN0YXRlLFxuICAgICAgICAgICAgICAgIGVhY1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBEZWxldGVTb3VyY2VDb250cm9sKFxuICAgICAgICBzcmNMb29rdXA6IHN0cmluZyxcbiAgICAgICAgc3JjTmFtZTogc3RyaW5nXG4gICAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgY29uZmlybShcbiAgICAgICAgICAgICAgICBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBTb3VyY2UgQ29udHJvbCAnJHtzcmNOYW1lfSc/YFxuICAgICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IGVhYzogRW50ZXJwcmlzZUFzQ29kZSA9IHtcbiAgICAgICAgICAgICAgICBFbnRlcnByaXNlTG9va3VwOiB0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICAgICAgICAgIEVudmlyb25tZW50czoge30sXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBlYWMuRW52aXJvbm1lbnRzW3RoaXMuU3RhdGUuRWFDLkVudGVycHJpc2UuUHJpbWFyeUVudmlyb25tZW50XSA9IHtcbiAgICAgICAgICAgICAgICBTb3VyY2VzOiB7fSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGVhYy5FbnZpcm9ubWVudHNbXG4gICAgICAgICAgICAgICAgdGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZS5QcmltYXJ5RW52aXJvbm1lbnRcbiAgICAgICAgICAgIF0uU291cmNlc1tzcmNMb29rdXBdID0ge307XG5cbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkVudGVycHJpc2VBc0NvZGVSZW1vdmFscyhcbiAgICAgICAgICAgICAgICB0aGlzLlN0YXRlLFxuICAgICAgICAgICAgICAgIGVhY1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHRoaXMuYXBwc0Zsb3dFdmVudHNTdmMuRW5zdXJlVXNlckVudGVycHJpc2VFdmVudC5zdWJzY3JpYmUoYXN5bmMgKCkgPT4ge1xuICAgIC8vICAgYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5FbnN1cmVVc2VyRW50ZXJwcmlzZSh0aGlzLlN0YXRlKTtcbiAgICAvLyB9KTtcblxuICAgIHB1YmxpYyBhc3luYyBFbnN1cmVVc2VyRW50ZXJwcmlzZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5FbnN1cmVVc2VyRW50ZXJwcmlzZSh0aGlzLlN0YXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgRW50ZXJwcmlzZUFzQ29kZVJlbW92YWxzKFxuICAgICAgICBlYWM6IEVudGVycHJpc2VBc0NvZGVcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9qZWN0U2VydmljZS5FbnRlcnByaXNlQXNDb2RlUmVtb3ZhbHModGhpcy5TdGF0ZSwgZWFjKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgR2V0QWN0aXZlRW50ZXJwcmlzZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5HZXRBY3RpdmVFbnRlcnByaXNlKHRoaXMuU3RhdGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMb2FkVXNlckZlZWQoXG4gICAgICAgIHBhZ2U6IG51bWJlcixcbiAgICAgICAgcGFnZVNpemU6IG51bWJlcixcbiAgICAgICAgZm9yQ2hlY2s6IGJvb2xlYW4gPSBmYWxzZVxuICAgICk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkxvYWRVc2VyRmVlZChcbiAgICAgICAgICAgIHBhZ2UsXG4gICAgICAgICAgICBwYWdlU2l6ZSxcbiAgICAgICAgICAgIGZvckNoZWNrLFxuICAgICAgICAgICAgdGhpcy5TdGF0ZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBHZW5lcmF0ZVJvdXRlZEFwcGxpY2F0aW9ucyhhcHBsaWNhdGlvbnM6IHtcbiAgICAgICAgW2xvb2t1cDogc3RyaW5nXTogRWFDQXBwbGljYXRpb25Bc0NvZGU7XG4gICAgfSk6IHtcbiAgICAgICAgW3JvdXRlOiBzdHJpbmddOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH07XG4gICAgfSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb2plY3RTZXJ2aWNlLkdlbmVyYXRlUm91dGVkQXBwbGljYXRpb25zKFxuICAgICAgICAgICAgYXBwbGljYXRpb25zLFxuICAgICAgICAgICAgdGhpcy5TdGF0ZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBIYXNWYWxpZENvbm5lY3Rpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuSGFzVmFsaWRDb25uZWN0aW9uKHRoaXMuU3RhdGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMaXN0RW50ZXJwcmlzZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuTGlzdEVudGVycHJpc2VzKHRoaXMuU3RhdGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMb2FkRW50ZXJwcmlzZUFzQ29kZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5Mb2FkRW50ZXJwcmlzZUFzQ29kZSh0aGlzLlN0YXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgTG9hZFVzZXJJbmZvKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkxvYWRVc2VyTGljZW5zZUluZm8odGhpcy5TdGF0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIFJlbG9hZEZlZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLlN0YXRlLkZlZWRDaGVjaykge1xuICAgICAgICAgICAgdGhpcy5TdGF0ZS5GZWVkID0gdGhpcy5TdGF0ZS5GZWVkQ2hlY2suSXRlbXM7XG5cbiAgICAgICAgICAgIHRoaXMuU3RhdGUuRmVlZEFjdGlvbnMgPSB0aGlzLlN0YXRlLkZlZWRDaGVjay5BY3Rpb25zO1xuXG4gICAgICAgICAgICB0aGlzLlN0YXRlLkZlZWRTb3VyY2VDb250cm9sTG9va3VwcyA9XG4gICAgICAgICAgICAgICAgdGhpcy5TdGF0ZS5GZWVkQ2hlY2suU291cmNlQ29udHJvbExvb2t1cHM7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLlN0YXRlLkZlZWRDaGVjayA9IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIFNhdmVBcHBsaWNhdGlvbkFzQ29kZShcbiAgICAgICAgcmVxOiBTYXZlQXBwbGljYXRpb25Bc0NvZGVFdmVudFJlcXVlc3RcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5oYW5kbGVTYXZlQXBwbGljYXRpb24ocmVxKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgU2F2ZURGU01vZGlmaWVyKFxuICAgICAgICByZXE6IFNhdmVERlNNb2RpZmllckV2ZW50UmVxdWVzdFxuICAgICk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLmhhbmRsZVNhdmVERlNNb2RpZmllcihyZXEpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBTYXZlRW50ZXJwcmlzZUFzQ29kZShlYWM6IEVudGVycHJpc2VBc0NvZGUpOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5TYXZlRW50ZXJwcmlzZUFzQ29kZSh0aGlzLlN0YXRlLCBlYWMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBTYXZlRW52aXJvbm1lbnRBc0NvZGUoXG4gICAgICAgIHJlcTogU2F2ZUVudmlyb25tZW50QXNDb2RlRXZlbnRSZXF1ZXN0XG4gICAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuaGFuZGxlU2F2ZUVudmlyb25tZW50KHJlcSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIFNhdmVQcm9qZWN0QXNDb2RlKFxuICAgICAgICByZXE6IFNhdmVQcm9qZWN0QXNDb2RlRXZlbnRSZXF1ZXN0XG4gICAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuaGFuZGxlU2F2ZVByb2plY3QocmVxLlByb2plY3RMb29rdXAsIHJlcS5Qcm9qZWN0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgU2V0QWN0aXZlRW50ZXJwcmlzZShlbnRMb29rdXA6IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLnByb2plY3RTZXJ2aWNlLlNldEFjdGl2ZUVudGVycHJpc2UodGhpcy5TdGF0ZSwgZW50TG9va3VwKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgU2V0Q3JlYXRpbmdQcm9qZWN0KGNyZWF0aW5nUHJvamVjdDogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLnByb2plY3RTZXJ2aWNlLlNldENyZWF0aW5nUHJvamVjdChjcmVhdGluZ1Byb2plY3QpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBTZXRFZGl0UHJvamVjdFNldHRpbmdzKHByb2plY3RMb29rdXA6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlNldEVkaXRQcm9qZWN0U2V0dGluZ3MoXG4gICAgICAgICAgICB0aGlzLlN0YXRlLFxuICAgICAgICAgICAgcHJvamVjdExvb2t1cFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBTdWJtaXRGZWVkRW50cnkoZW50cnk6IEZlZWRFbnRyeSk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlN1Ym1pdEZlZWRFbnRyeSh0aGlzLlN0YXRlLCBlbnRyeSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIFVucGFja0xvd0NvZGVVbml0KFxuICAgICAgICByZXE6IFVucGFja0xvd0NvZGVVbml0UmVxdWVzdFxuICAgICk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBjb25maXJtKFxuICAgICAgICAgICAgICAgIGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gdW5wYWNrIGFwcGxpY2F0aW9uICcke3JlcS5BcHBsaWNhdGlvbk5hbWV9JyB3aXRoIHZlcnNpb24gJyR7cmVxLlZlcnNpb259Jz9gXG4gICAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5VbnBhY2tMb3dDb2RlVW5pdCh0aGlzLlN0YXRlLCByZXEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gIEhlbHBlcnNcbiAgICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlU2F2ZUFwcGxpY2F0aW9uKFxuICAgICAgICByZXE6IFNhdmVBcHBsaWNhdGlvbkFzQ29kZUV2ZW50UmVxdWVzdFxuICAgICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgICAgIGNvbnN0IHNhdmVFYUM6IEVudGVycHJpc2VBc0NvZGUgPSB7XG4gICAgICAgICAgICBFbnRlcnByaXNlTG9va3VwOiB0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICAgICAgQXBwbGljYXRpb25zOiB7fSxcbiAgICAgICAgICAgIFByb2plY3RzOiB7fSxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAocmVxLlByb2plY3RMb29rdXApIHtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nUHJvaiA9IHtcbiAgICAgICAgICAgICAgICBbcmVxLlByb2plY3RMb29rdXBdOiB7XG4gICAgICAgICAgICAgICAgICAgIEFwcGxpY2F0aW9uTG9va3VwczogW3JlcS5BcHBsaWNhdGlvbkxvb2t1cF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHNhdmVFYUMuUHJvamVjdHMgPSBleGlzdGluZ1Byb2o7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVxLkFwcGxpY2F0aW9uKSB7XG4gICAgICAgICAgICBzYXZlRWFDLkFwcGxpY2F0aW9uc1tyZXEuQXBwbGljYXRpb25Mb29rdXBdID0gcmVxLkFwcGxpY2F0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuU2F2ZUVudGVycHJpc2VBc0NvZGUoXG4gICAgICAgICAgICB0aGlzLlN0YXRlLFxuICAgICAgICAgICAgc2F2ZUVhQ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyBoYW5kbGVTYXZlREZTTW9kaWZpZXIoXG4gICAgICAgIHJlcTogU2F2ZURGU01vZGlmaWVyRXZlbnRSZXF1ZXN0XG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHNhdmVFYUM6IEVudGVycHJpc2VBc0NvZGUgPSB7XG4gICAgICAgICAgICBFbnRlcnByaXNlTG9va3VwOiB0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICAgICAgTW9kaWZpZXJzOiB7fSxcbiAgICAgICAgICAgIFByb2plY3RzOiB7fSxcbiAgICAgICAgICAgIEFwcGxpY2F0aW9uczoge30sXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHJlcS5Nb2RpZmllcikge1xuICAgICAgICAgICAgc2F2ZUVhQy5Nb2RpZmllcnNbcmVxLk1vZGlmaWVyTG9va3Vwc1swXV0gPSByZXEuTW9kaWZpZXI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVxLlByb2plY3RMb29rdXBzKSB7XG4gICAgICAgICAgICByZXEuUHJvamVjdExvb2t1cHMuZm9yRWFjaCgobG9va3VwKSA9PiB7XG4gICAgICAgICAgICAgICAgc2F2ZUVhQy5Qcm9qZWN0c1tsb29rdXBdID0ge1xuICAgICAgICAgICAgICAgICAgICBNb2RpZmllckxvb2t1cHM6IHJlcS5Nb2RpZmllckxvb2t1cHMsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlcS5BcHBsaWNhdGlvbkxvb2t1cCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ0FQUExPb2t1cDogJywgcmVxLkFwcGxpY2F0aW9uTG9va3VwKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzYXZlRUFDOiAnLCBzYXZlRWFDKTtcbiAgICAgICAgICAgIHNhdmVFYUMuQXBwbGljYXRpb25zW3JlcS5BcHBsaWNhdGlvbkxvb2t1cF0gPSB7XG4gICAgICAgICAgICAgICAgTW9kaWZpZXJMb29rdXBzOiByZXEuTW9kaWZpZXJMb29rdXBzLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuU2F2ZUVudGVycHJpc2VBc0NvZGUodGhpcy5TdGF0ZSwgc2F2ZUVhQyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNhdmVFbnZpcm9ubWVudChcbiAgICAgICAgcmVxOiBTYXZlRW52aXJvbm1lbnRBc0NvZGVFdmVudFJlcXVlc3RcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICBjb25zdCBzYXZlRWFDOiBFbnRlcnByaXNlQXNDb2RlID0ge1xuICAgICAgICAgICAgRW50ZXJwcmlzZUxvb2t1cDogdGhpcy5TdGF0ZT8uRWFDPy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICAgICAgRGF0YVRva2Vuczoge30sXG4gICAgICAgICAgICBFbnZpcm9ubWVudHM6IHt9LFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChyZXEuRW52aXJvbm1lbnQpIHtcbiAgICAgICAgICAgIHNhdmVFYUMuRW52aXJvbm1lbnRzW3JlcS5FbnZpcm9ubWVudExvb2t1cF0gPSByZXEuRW52aXJvbm1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVxLkVudGVycHJpc2VEYXRhVG9rZW5zKSB7XG4gICAgICAgICAgICBzYXZlRWFDLkRhdGFUb2tlbnMgPSByZXEuRW50ZXJwcmlzZURhdGFUb2tlbnM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5TYXZlRW50ZXJwcmlzZUFzQ29kZShcbiAgICAgICAgICAgIHRoaXMuU3RhdGUsXG4gICAgICAgICAgICBzYXZlRWFDXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNhdmVQcm9qZWN0KFxuICAgICAgICBwcm9qZWN0TG9va3VwOiBzdHJpbmcsXG4gICAgICAgIHByb2plY3Q6IEVhQ1Byb2plY3RBc0NvZGVcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICBjb25zdCBwcm9qSG9zdHM6IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDSG9zdCB9ID0ge307XG5cbiAgICAgICAgcHJvamVjdD8uSG9zdHM/LmZvckVhY2goKGhvc3Q6IGFueSkgPT4ge1xuICAgICAgICAgICAgcHJvakhvc3RzW2hvc3RdID0gdGhpcy5TdGF0ZS5FYUMuSG9zdHNbaG9zdF07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHNhdmVFYUM6IEVudGVycHJpc2VBc0NvZGUgPSB7XG4gICAgICAgICAgICBFbnRlcnByaXNlTG9va3VwOiB0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICAgICAgRW50ZXJwcmlzZToge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuU3RhdGUuRWFDLkVudGVycHJpc2UsXG4gICAgICAgICAgICAgICAgUHJpbWFyeUhvc3Q6IHByb2plY3QuSG9zdHNbMF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgSG9zdHM6IHByb2pIb3N0cyxcbiAgICAgICAgICAgIC8vIFByb3ZpZGVyczogdGhpcy5TdGF0ZS5FYUMuUHJvdmlkZXJzLCAgLy8gIFRPRE86ICBSZW1vdmUgYWZ0ZXIgYWxsIHByb3ZpZGVycyBBREIyQydzIGhhdmUgYmVlbiB1cGdyYWRlZFxuICAgICAgICAgICAgUHJvamVjdHM6IHt9LFxuICAgICAgICB9O1xuXG4gICAgICAgIHNhdmVFYUMuUHJvamVjdHNbcHJvamVjdExvb2t1cF0gPSBwcm9qZWN0O1xuXG4gICAgICAgIGxldCBzdGF0dXMgPSBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlNhdmVFbnRlcnByaXNlQXNDb2RlKFxuICAgICAgICAgICAgdGhpcy5TdGF0ZSxcbiAgICAgICAgICAgIHNhdmVFYUNcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLlNldEVkaXRQcm9qZWN0U2V0dGluZ3MocHJvamVjdExvb2t1cCk7XG5cbiAgICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICB9XG59XG4iXX0=
@@ -49,7 +49,7 @@ export class ProjectService {
49
49
  resolve(response.Status);
50
50
  var results = await Promise.all([
51
51
  this.LoadEnterpriseAsCode(state),
52
- this.LoadUserFeed(1, 25, 'types=all', false, state),
52
+ this.LoadUserFeed(1, 25, false, state),
53
53
  ]);
54
54
  }
55
55
  else {
@@ -204,20 +204,17 @@ export class ProjectService {
204
204
  });
205
205
  });
206
206
  }
207
- async LoadUserFeed(page, pageSize, filterStr, forCheck = false, state) {
207
+ async LoadUserFeed(page, pageSize, forCheck = false, state) {
208
208
  return new Promise((resolve, reject) => {
209
209
  state.LoadingFeed = !forCheck;
210
210
  let paramMap = this.activatedRoute.snapshot.children[0].paramMap;
211
211
  let result = this.loadApplicationsForFeed(state, paramMap);
212
212
  this.appsFlowSvc
213
- .LoadUserFeed(page, pageSize, filterStr, result?.Project, result?.Applications)
213
+ .LoadUserFeed(page, pageSize, result?.Project, result?.Applications)
214
214
  .subscribe(async (response) => {
215
215
  state.LoadingFeed = false;
216
216
  if (response.Status.Code === 0) {
217
- // console.log('user feed response: ', response);
218
217
  if (!forCheck) {
219
- state.Advertisements = response.Advertisements;
220
- state.FeedFilters = response.ItemTypes;
221
218
  state.Feed = response.Items;
222
219
  state.FeedSourceControlLookups =
223
220
  response.SourceControlLookups;
@@ -267,7 +264,7 @@ export class ProjectService {
267
264
  resolve(response.Status);
268
265
  var results = await Promise.all([
269
266
  this.LoadEnterpriseAsCode(state),
270
- this.LoadUserFeed(1, 25, 'types=all', false, state),
267
+ this.LoadUserFeed(1, 25, false, state),
271
268
  ]);
272
269
  }
273
270
  else {
@@ -290,7 +287,7 @@ export class ProjectService {
290
287
  resolve(response.Status);
291
288
  var results = await Promise.all([
292
289
  this.LoadEnterpriseAsCode(state),
293
- this.LoadUserFeed(1, 25, 'types=all', false, state),
290
+ this.LoadUserFeed(1, 25, false, state),
294
291
  ]);
295
292
  }
296
293
  else {
@@ -338,7 +335,7 @@ export class ProjectService {
338
335
  resolve(response.Status);
339
336
  var results = await Promise.all([
340
337
  this.LoadEnterpriseAsCode(state),
341
- this.LoadUserFeed(1, 25, 'types=all', false, state),
338
+ this.LoadUserFeed(1, 25, false, state),
342
339
  ]);
343
340
  }
344
341
  else {
@@ -364,7 +361,7 @@ export class ProjectService {
364
361
  resolve(response.Status);
365
362
  var results = await Promise.all([
366
363
  this.LoadEnterpriseAsCode(state),
367
- this.LoadUserFeed(1, 25, 'types=all', false, state),
364
+ this.LoadUserFeed(1, 25, false, state),
368
365
  ]);
369
366
  }
370
367
  else {
@@ -413,4 +410,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
413
410
  providedIn: 'root',
414
411
  }]
415
412
  }], ctorParameters: function () { return [{ type: i1.ApplicationsFlowService }, { type: i2.ActivatedRoute }]; } });
416
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvc2VydmljZXMvcHJvamVjdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFtQjNDLE1BQU0sT0FBTyxjQUFjO0lBS3ZCLFlBQ2MsV0FBb0MsRUFDcEMsY0FBOEI7UUFEOUIsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBQ3BDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUN6QyxDQUFDO0lBRUosK0ZBQStGO0lBQy9GLGlDQUFpQztJQUVqQyxxQkFBcUI7SUFDckIsdUNBQXVDO0lBQ3ZDLCtDQUErQztJQUMvQywwQ0FBMEM7SUFDMUMsMkNBQTJDO0lBRTNDLG1EQUFtRDtJQUNuRCxpQkFBaUI7SUFDakIsNkRBQTZEO0lBRTdELHdDQUF3QztJQUN4QyxVQUFVO0lBQ1YsVUFBVTtJQUNWLElBQUk7SUFFRyxvQkFBb0IsQ0FDdkIsS0FBNEI7UUFFNUIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNuQyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUVyQixJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLENBQUMsU0FBUyxDQUM3QyxLQUFLLEVBQUUsUUFBc0IsRUFBRSxFQUFFO2dCQUM3QixJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRTtvQkFDNUIsc0RBQXNEO29CQUV0RCxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ3JCO3FCQUFNO29CQUNILEtBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUV0QixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUV4QixPQUFPLENBQUMsR0FB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RUFBRSxFQUFFO2dCQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDeEQsQ0FBQyxDQUNKLENBQUM7WUFFRixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRTlELElBQUksV0FBVyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVwQyxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDakQ7UUFFRCxPQUFPO1lBQ0gsWUFBWSxFQUFFLFlBQVk7WUFDMUIsT0FBTyxFQUFFLE9BQU87U0FDbkIsQ0FBQztRQUNGLE1BQU07SUFDVixDQUFDOzsyR0F6b0JRLGNBQWM7K0dBQWQsY0FBYyxjQUZYLE1BQU07MkZBRVQsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlTW9kZWxlZFJlc3BvbnNlLCBCYXNlUmVzcG9uc2UsIFN0YXR1cyB9IGZyb20gJ0BsY3UvY29tbW9uJztcbmltcG9ydCB7IEVhQ0FwcGxpY2F0aW9uQXNDb2RlLCBFbnRlcnByaXNlQXNDb2RlIH0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQXBwbGljYXRpb25zRmxvd1N0YXRlLFxuICAgIExpY2Vuc2VBbmRCaWxsaW5nUmVzcG9uc2UsXG4gICAgVW5wYWNrTG93Q29kZVVuaXRSZXF1ZXN0LFxufSBmcm9tICcuLi9zdGF0ZS9hcHBsaWNhdGlvbnMtZmxvdy5zdGF0ZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbnNGbG93U2VydmljZSB9IGZyb20gJy4vYXBwbGljYXRpb25zLWZsb3cuc2VydmljZSc7XG5pbXBvcnQge1xuICAgIEZlZWRFbnRyeSxcbiAgICBGZWVkSXRlbSxcbiAgICBVc2VyRmVlZFJlc3BvbnNlLFxufSBmcm9tICcuLi9tb2RlbHMvdXNlci1mZWVkLm1vZGVsJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvamVjdFNlcnZpY2Uge1xuICAgIHB1YmxpYyBDcmVhdGluZ1Byb2plY3Q6IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgRWRpdGluZ1Byb2plY3RMb29rdXA6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgYXBwc0Zsb3dTdmM6IEFwcGxpY2F0aW9uc0Zsb3dTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlXG4gICAgKSB7fVxuXG4gICAgLy8gcHVibGljIENyZWF0ZVJlcG9zaXRvcnkoc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSwgb3JnOiBzdHJpbmcsIHJlcG9OYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyAgIHN0YXRlLkdpdEh1Yi5Mb2FkaW5nID0gdHJ1ZTtcblxuICAgIC8vICAgdGhpcy5hcHBzRmxvd1N2Y1xuICAgIC8vICAgICAuQ3JlYXRlUmVwb3NpdG9yeShvcmcsIHJlcG9OYW1lKVxuICAgIC8vICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogQmFzZVJlc3BvbnNlKSA9PiB7XG4gICAgLy8gICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgLy8gICAgICAgICB0aGlzLmxpc3RSZXBvc2l0b3JpZXMocmVwb05hbWUpO1xuXG4gICAgLy8gICAgICAgICBzdGF0ZS5HaXRIdWIuQ3JlYXRpbmdSZXBvc2l0b3J5ID0gZmFsc2U7XG4gICAgLy8gICAgICAgfSBlbHNlIHtcbiAgICAvLyAgICAgICAgIC8vICBUT0RPOiAgTmVlZCB0byBzdXJmYWNlIGFuIGVycm9yIHRvIHRoZSB1c2VyLi4uXG5cbiAgICAvLyAgICAgICAgIHN0YXRlLkdpdEh1Yi5Mb2FkaW5nID0gZmFsc2U7XG4gICAgLy8gICAgICAgfVxuICAgIC8vICAgICB9KTtcbiAgICAvLyB9XG5cbiAgICBwdWJsaWMgRW5zdXJlVXNlckVudGVycHJpc2UoXG4gICAgICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGVcbiAgICApOiBQcm9taXNlPEJhc2VSZXNwb25zZT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuRW5zdXJlVXNlckVudGVycHJpc2UoKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgYXN5bmMgKHJlc3BvbnNlOiBCYXNlUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zdCBlYWMgPSBhd2FpdCB0aGlzLkxvYWRFbnRlcnByaXNlQXNDb2RlKHN0YXRlKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIEVudGVycHJpc2VBc0NvZGVSZW1vdmFscyhcbiAgICAgICAgc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSxcbiAgICAgICAgZWFjOiBFbnRlcnByaXNlQXNDb2RlXG4gICAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgICAgICB0aGlzLmFwcHNGbG93U3ZjLkVudGVycHJpc2VBc0NvZGVSZW1vdmFscyhlYWMpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICBhc3luYyAocmVzcG9uc2U6IEJhc2VNb2RlbGVkUmVzcG9uc2U8c3RyaW5nPikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Mb2FkRW50ZXJwcmlzZUFzQ29kZShzdGF0ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Mb2FkVXNlckZlZWQoMSwgMjUsICd0eXBlcz1hbGwnLCBmYWxzZSwgc3RhdGUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIEdlbmVyYXRlUm91dGVkQXBwbGljYXRpb25zKFxuICAgICAgICBhcHBsaWNhdGlvbnM6IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDQXBwbGljYXRpb25Bc0NvZGUgfSxcbiAgICAgICAgc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZVxuICAgICk6IHtcbiAgICAgICAgW3JvdXRlOiBzdHJpbmddOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH07XG4gICAgfSB7XG4gICAgICAgIGNvbnN0IGFwcExvb2t1cHMgPSBPYmplY3Qua2V5cyhhcHBsaWNhdGlvbnMpO1xuXG4gICAgICAgIGNvbnN0IGFwcHMgPSBhcHBMb29rdXBzLm1hcCgoYXBwTG9va3VwKSA9PiBhcHBsaWNhdGlvbnNbYXBwTG9va3VwXSk7XG5cbiAgICAgICAgbGV0IGFwcFJvdXRlcyA9XG4gICAgICAgICAgICBhcHBzLm1hcCgoYXBwKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFwcD8uTG9va3VwQ29uZmlnPy5QYXRoUmVnZXgucmVwbGFjZSgnLionLCAnJyk7XG4gICAgICAgICAgICB9KSB8fCBbXTtcblxuICAgICAgICBhcHBSb3V0ZXMgPSBhcHBSb3V0ZXMuZmlsdGVyKChhcikgPT4gYXIgIT0gbnVsbCk7XG5cbiAgICAgICAgbGV0IHJvdXRlQmFzZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICAgICAgYXBwUm91dGVzLmZvckVhY2goKGFwcFJvdXRlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhcHBSb3V0ZVBhcnRzID0gYXBwUm91dGUuc3BsaXQoJy8nKTtcblxuICAgICAgICAgICAgY29uc3QgYXBwUm91dGVCYXNlID0gYC8ke2FwcFJvdXRlUGFydHNbMV19YDtcblxuICAgICAgICAgICAgaWYgKHJvdXRlQmFzZXMuaW5kZXhPZihhcHBSb3V0ZUJhc2UpIDwgMCkge1xuICAgICAgICAgICAgICAgIHJvdXRlQmFzZXMucHVzaChhcHBSb3V0ZUJhc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBsZXQgd29ya2luZ0FwcExvb2t1cHMgPSBbLi4uKGFwcExvb2t1cHMgfHwgW10pXTtcblxuICAgICAgICByb3V0ZUJhc2VzID0gcm91dGVCYXNlcy5zb3J0KChhLCBiKSA9PiBiLmxvY2FsZUNvbXBhcmUoYSkpO1xuXG4gICAgICAgIGNvbnN0IHJvdXRlU2V0ID1cbiAgICAgICAgICAgIHJvdXRlQmFzZXMucmVkdWNlKChwcmV2Um91dGVNYXAsIGN1cnJlbnRSb3V0ZUJhc2UpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByb3V0ZU1hcCA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4ucHJldlJvdXRlTWFwLFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZEFwcExvb2t1cHMgPSB3b3JraW5nQXBwTG9va3Vwcy5maWx0ZXIoKHdhbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB3YSA9IGFwcGxpY2F0aW9uc1t3YWxdO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB3YT8uTG9va3VwQ29uZmlnPy5QYXRoUmVnZXguc3RhcnRzV2l0aChcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRSb3V0ZUJhc2VcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHJvdXRlTWFwW2N1cnJlbnRSb3V0ZUJhc2VdID1cbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyZWRBcHBMb29rdXBzLnJlZHVjZSgocHJldkFwcE1hcCwgYXBwTG9va3VwKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhcHBNYXAgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJldkFwcE1hcCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcE1hcFthcHBMb29rdXBdID0gYXBwbGljYXRpb25zW2FwcExvb2t1cF07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhcHBNYXA7XG4gICAgICAgICAgICAgICAgICAgIH0sIHt9KSB8fCB7fTtcblxuICAgICAgICAgICAgICAgIHdvcmtpbmdBcHBMb29rdXBzID0gd29ya2luZ0FwcExvb2t1cHMuZmlsdGVyKCh3YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyZWRBcHBMb29rdXBzLmluZGV4T2Yod2EpIDwgMDtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHJldHVybiByb3V0ZU1hcDtcbiAgICAgICAgICAgIH0sIHt9KSB8fCB7fTtcblxuICAgICAgICBsZXQgcm91dGVTZXRLZXlzID0gT2JqZWN0LmtleXMocm91dGVTZXQpO1xuXG4gICAgICAgIHJvdXRlU2V0S2V5cyA9IHJvdXRlU2V0S2V5cy5zb3J0KChhLCBiKSA9PiBhLmxvY2FsZUNvbXBhcmUoYikpO1xuXG4gICAgICAgIGNvbnN0IHJvdXRlU2V0UmVzdWx0ID0ge307XG5cbiAgICAgICAgcm91dGVTZXRLZXlzLmZvckVhY2goKHJzaykgPT4gKHJvdXRlU2V0UmVzdWx0W3Jza10gPSByb3V0ZVNldFtyc2tdKSk7XG5cbiAgICAgICAgcmV0dXJuIHJvdXRlU2V0UmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBHZXRBY3RpdmVFbnRlcnByaXNlKFxuICAgICAgICBzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlXG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nQWN0aXZlRW50ZXJwcmlzZSA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuR2V0QWN0aXZlRW50ZXJwcmlzZSgpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICBhc3luYyAoXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlOiBCYXNlTW9kZWxlZFJlc3BvbnNlPHtcbiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU6IHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgICAgIExvb2t1cDogc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICB9PlxuICAgICAgICAgICAgICAgICkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nQWN0aXZlRW50ZXJwcmlzZSA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5TdGF0dXMuQ29kZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuQWN0aXZlRW50ZXJwcmlzZUxvb2t1cCA9IHJlc3BvbnNlLk1vZGVsPy5Mb29rdXA7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZ0FjdGl2ZUVudGVycHJpc2UgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBIYXNWYWxpZENvbm5lY3Rpb24oXG4gICAgICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUsXG4gICAgICAgIGZvcmNlRW5zdXJlVXNlcjogYm9vbGVhbiA9IGZhbHNlXG4gICAgKTogUHJvbWlzZTxFbnRlcnByaXNlQXNDb2RlPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICAgICAgdGhpcy5hcHBzRmxvd1N2Yy5IYXNWYWxpZENvbm5lY3Rpb24oKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgYXN5bmMgKHJlc3BvbnNlOiBCYXNlUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuR2l0SHViLkhhc0Nvbm5lY3Rpb24gPSByZXNwb25zZS5TdGF0dXMuQ29kZSA9PT0gMDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdGUuR2l0SHViLkhhc0Nvbm5lY3Rpb24gfHwgZm9yY2VFbnN1cmVVc2VyKSB7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHt9KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIExpc3RFbnRlcnByaXNlcyhzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlKTogUHJvbWlzZTxhbnlbXT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuTG9hZGluZ0VudGVycHJpc2VzID0gdHJ1ZTtcblxuICAgICAgICAgICAgdGhpcy5hcHBzRmxvd1N2Yy5MaXN0RW50ZXJwcmlzZXMoKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgYXN5bmMgKHJlc3BvbnNlOiBCYXNlTW9kZWxlZFJlc3BvbnNlPEFycmF5PGFueT4+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmdFbnRlcnByaXNlcyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5TdGF0dXMuQ29kZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuRW50ZXJwcmlzZXMgPSByZXNwb25zZS5Nb2RlbDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZS5Nb2RlbCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmdFbnRlcnByaXNlcyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIExvYWRFbnRlcnByaXNlQXNDb2RlKFxuICAgICAgICBzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlXG4gICAgKTogUHJvbWlzZTxFbnRlcnByaXNlQXNDb2RlPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICAgICAgdGhpcy5hcHBzRmxvd1N2Yy5Mb2FkRW50ZXJwcmlzZUFzQ29kZSgpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAocmVzcG9uc2U6IEJhc2VNb2RlbGVkUmVzcG9uc2U8RW50ZXJwcmlzZUFzQ29kZT4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5TdGF0dXMuQ29kZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuRWFDID0gcmVzcG9uc2UuTW9kZWwgfHwge307XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLkVhQyA9IHN0YXRlLkVhQyB8fCB7fTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLkNyZWF0aW5nUHJvamVjdCA9XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhzdGF0ZT8uRWFDPy5Qcm9qZWN0cyB8fCB7fSkubGVuZ3RoIDw9IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShzdGF0ZS5FYUMpO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZhdGVkUm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKChwYXJhbXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJhbXM/LmRpcmVjdCA9PSAndHJ1ZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHJvaktleXMgPSBPYmplY3Qua2V5cyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuRWFDLlByb2plY3RzIHx8IHt9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcm9qS2V5cy5sZW5ndGggPT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnRGlyZWN0aW5nIHRvIGRlZXBlciBsaW5rJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFwcEtleXMgPSBPYmplY3Qua2V5cyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkVhQy5BcHBsaWNhdGlvbnMgfHwge31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXBwS2V5cy5sZW5ndGggPT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFwcCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuRWFDLkFwcGxpY2F0aW9uc1thcHBLZXlzWzBdXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJvdXRlS2V5ID0gZW5jb2RlVVJJQ29tcG9uZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcC5Mb29rdXBDb25maWcuUGF0aFJlZ2V4Py5yZXBsYWNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLionLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgfHwgJy8nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAvZGFzaGJvYXJkL2FwcGxpY2F0aW9uLyR7YXBwS2V5c1swXX0vJHtyb3V0ZUtleX0vJHtwcm9qS2V5c1swXX1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBgL2Rhc2hib2FyZC9wcm9qZWN0LyR7cHJvaktleXNbMF19YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coc3RhdGUpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgTG9hZFVzZXJGZWVkKFxuICAgICAgICBwYWdlOiBudW1iZXIsXG4gICAgICAgIHBhZ2VTaXplOiBudW1iZXIsXG4gICAgICAgIGZpbHRlclN0cjogc3RyaW5nLFxuICAgICAgICBmb3JDaGVjazogYm9vbGVhbiA9IGZhbHNlLFxuICAgICAgICBzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlXG4gICAgKTogUHJvbWlzZTxBcnJheTxGZWVkSXRlbT4+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLkxvYWRpbmdGZWVkID0gIWZvckNoZWNrO1xuXG4gICAgICAgICAgICBsZXQgcGFyYW1NYXAgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LmNoaWxkcmVuWzBdLnBhcmFtTWFwO1xuXG4gICAgICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5sb2FkQXBwbGljYXRpb25zRm9yRmVlZChzdGF0ZSwgcGFyYW1NYXApO1xuXG4gICAgICAgICAgICB0aGlzLmFwcHNGbG93U3ZjXG4gICAgICAgICAgICAgICAgLkxvYWRVc2VyRmVlZChcbiAgICAgICAgICAgICAgICAgICAgcGFnZSxcbiAgICAgICAgICAgICAgICAgICAgcGFnZVNpemUsXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlclN0cixcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0Py5Qcm9qZWN0LFxuICAgICAgICAgICAgICAgICAgICByZXN1bHQ/LkFwcGxpY2F0aW9uc1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICBhc3luYyAocmVzcG9uc2U6IFVzZXJGZWVkUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmdGZWVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5TdGF0dXMuQ29kZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCd1c2VyIGZlZWQgcmVzcG9uc2U6ICcsIHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWZvckNoZWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkFkdmVydGlzZW1lbnRzID0gcmVzcG9uc2UuQWR2ZXJ0aXNlbWVudHM7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuRmVlZEZpbHRlcnMgPSByZXNwb25zZS5JdGVtVHlwZXM7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuRmVlZCA9IHJlc3BvbnNlLkl0ZW1zO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkZlZWRTb3VyY2VDb250cm9sTG9va3VwcyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5Tb3VyY2VDb250cm9sTG9va3VwcztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5GZWVkQWN0aW9ucyA9IHJlc3BvbnNlLkFjdGlvbnM7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuRmVlZENoZWNrID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbXMgPSByZXNwb25zZS5JdGVtcz8uZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGkpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXN0YXRlLkZlZWQ/LmZpbmQoKGYpID0+IGYuSUQgPT0gaS5JRClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbXM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkZlZWRDaGVjayA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiSVRFTVo6IFwiLCByZXNwb25zZS5JdGVtcylcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuSXRlbXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QocmVzcG9uc2UuU3RhdHVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZ0ZlZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgTG9hZFVzZXJMaWNlbnNlSW5mbyhzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlKSB7XG4gICAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuTG9hZExpY2Vuc2VEYXRhKCkuc3Vic2NyaWJlKGFzeW5jIChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nRmVlZCA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgICAgICAgICAgICAgc3RhdGUuVXNlckxpY2Vuc2VJbmZvID0gcmVzcG9uc2UuTW9kZWw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICdFcnJvciBsb2FkaW5nIHVzZXIgaW5mb3JtYXRpb246ICcsXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLlN0YXR1cy5NZXNzYWdlXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIFNldEFjdGl2ZUVudGVycHJpc2UoXG4gICAgICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUsXG4gICAgICAgIGFjdGl2ZUVudExvb2t1cDogc3RyaW5nXG4gICAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgc3RhdGUuTG9hZGluZ0ZlZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICB0aGlzLmFwcHNGbG93U3ZjLlNldEFjdGl2ZUVudGVycHJpc2UoYWN0aXZlRW50TG9va3VwKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgYXN5bmMgKHJlc3BvbnNlOiBCYXNlUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdQcm9qZWN0TG9va3VwID0gbnVsbDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2plY3Qgc2VydmljZSBhY3RpdmUgZW50OiAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZUVudExvb2t1cFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuQWN0aXZlRW50ZXJwcmlzZUxvb2t1cCA9IGFjdGl2ZUVudExvb2t1cDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2plY3Qgc2VydmljZSBTdGF0ZSBhY3RpdmUgZW50OiAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkFjdGl2ZUVudGVycHJpc2VMb29rdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Mb2FkRW50ZXJwcmlzZUFzQ29kZShzdGF0ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Mb2FkVXNlckZlZWQoMSwgMjUsICd0eXBlcz1hbGwnLCBmYWxzZSwgc3RhdGUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIFNhdmVFbnRlcnByaXNlQXNDb2RlKFxuICAgICAgICBzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlLFxuICAgICAgICBlYWM6IEVudGVycHJpc2VBc0NvZGVcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuU2F2ZUVudGVycHJpc2VBc0NvZGUoZWFjKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgYXN5bmMgKHJlc3BvbnNlOiBCYXNlTW9kZWxlZFJlc3BvbnNlPHN0cmluZz4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlLlN0YXR1cyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuTG9hZEVudGVycHJpc2VBc0NvZGUoc3RhdGUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuTG9hZFVzZXJGZWVkKDEsIDI1LCAndHlwZXM9YWxsJywgZmFsc2UsIHN0YXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBTZXRDcmVhdGluZ1Byb2plY3QoY3JlYXRpbmdQcm9qZWN0OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuQ3JlYXRpbmdQcm9qZWN0ID0gY3JlYXRpbmdQcm9qZWN0O1xuXG4gICAgICAgIHRoaXMuRWRpdGluZ1Byb2plY3RMb29rdXAgPSBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBTZXRFZGl0UHJvamVjdFNldHRpbmdzKFxuICAgICAgICBzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlLFxuICAgICAgICBwcm9qZWN0TG9va3VwOiBzdHJpbmdcbiAgICApOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgaWYgKHByb2plY3RMb29rdXAgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ1Byb2plY3RMb29rdXAgPSBudWxsO1xuXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ1Byb2plY3RMb29rdXAgPSBwcm9qZWN0TG9va3VwO1xuXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoe30pO1xuICAgICAgICAgICAgICAgIH0sIDApO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5DcmVhdGluZ1Byb2plY3QgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHN0YXRlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nUHJvamVjdExvb2t1cCA9IHByb2plY3RMb29rdXA7XG5cbiAgICAgICAgICAgICAgICB0aGlzLkNyZWF0aW5nUHJvamVjdCA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh7fSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBTdWJtaXRGZWVkRW50cnkoXG4gICAgICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUsXG4gICAgICAgIGVudHJ5OiBGZWVkRW50cnlcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuU3VibWl0RmVlZEVudHJ5KGVudHJ5KS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgYXN5bmMgKHJlc3BvbnNlOiBCYXNlTW9kZWxlZFJlc3BvbnNlPHN0cmluZz4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDAgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAxXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkxvYWRFbnRlcnByaXNlQXNDb2RlKHN0YXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkxvYWRVc2VyRmVlZCgxLCAyNSwgJ3R5cGVzPWFsbCcsIGZhbHNlLCBzdGF0ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlLlN0YXR1cyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgVG9nZ2xlQ3JlYXRlUHJvamVjdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5TZXRDcmVhdGluZ1Byb2plY3QoIXRoaXMuQ3JlYXRpbmdQcm9qZWN0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgVW5wYWNrTG93Q29kZVVuaXQoXG4gICAgICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUsXG4gICAgICAgIHJlcTogVW5wYWNrTG93Q29kZVVuaXRSZXF1ZXN0XG4gICAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgICAgICB0aGlzLmFwcHNGbG93U3ZjLlVucGFja0xvd0NvZGVVbml0KHJlcSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIGFzeW5jIChyZXNwb25zZTogQmFzZVJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5TdGF0dXMuQ29kZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkxvYWRFbnRlcnByaXNlQXNDb2RlKHN0YXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkxvYWRVc2VyRmVlZCgxLCAyNSwgJ3R5cGVzPWFsbCcsIGZhbHNlLCBzdGF0ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlLlN0YXR1cyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyAgSGVscGVyc1xuICAgIHByb3RlY3RlZCBsb2FkQXBwbGljYXRpb25zRm9yRmVlZChcbiAgICAgICAgc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSxcbiAgICAgICAgcGFyYW1NYXA6IGFueVxuICAgICkge1xuICAgICAgICAvLyB0aGlzLmFjdGl2YXRlZFJvdXRlLnBhcmFtTWFwLnN1YnNjcmliZShhc3luYyAocGFyYW1NYXApID0+IHtcbiAgICAgICAgdmFyIHByb2plY3QgPSBwYXJhbU1hcC5nZXQoJ3Byb2plY3RMb29rdXAnKSB8fCAnJztcblxuICAgICAgICB2YXIgcm91dGUgPSBwYXJhbU1hcC5nZXQoJ2FwcFJvdXRlJyk7XG5cbiAgICAgICAgdmFyIGFwcGxpY2F0aW9uID0gcGFyYW1NYXAuZ2V0KCdhcHBMb29rdXAnKTtcblxuICAgICAgICB2YXIgYXBwbGljYXRpb25zOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAgIGlmIChhcHBsaWNhdGlvbikge1xuICAgICAgICAgICAgYXBwbGljYXRpb25zLnB1c2goYXBwbGljYXRpb24pO1xuICAgICAgICB9IGVsc2UgaWYgKHJvdXRlICYmIHByb2plY3QpIHtcbiAgICAgICAgICAgIGNvbnN0IGFwcHM6IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDQXBwbGljYXRpb25Bc0NvZGUgfSA9IHt9O1xuXG4gICAgICAgICAgICBzdGF0ZS5FYUM/LlByb2plY3RzW3Byb2plY3RdLkFwcGxpY2F0aW9uTG9va3Vwcy5mb3JFYWNoKFxuICAgICAgICAgICAgICAgIChhcHBMb29rdXA6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBhcHBzW2FwcExvb2t1cF0gPSBzdGF0ZS5FYUMuQXBwbGljYXRpb25zW2FwcExvb2t1cF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgdmFyIHJvdXRlZEFwcHMgPSB0aGlzLkdlbmVyYXRlUm91dGVkQXBwbGljYXRpb25zKGFwcHMsIHN0YXRlKTtcblxuICAgICAgICAgICAgdmFyIGN1cnJlbnRBcHBzID0gcm91dGVkQXBwc1tyb3V0ZV07XG5cbiAgICAgICAgICAgIGFwcGxpY2F0aW9ucyA9IE9iamVjdC5rZXlzKGN1cnJlbnRBcHBzKSB8fCBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBBcHBsaWNhdGlvbnM6IGFwcGxpY2F0aW9ucyxcbiAgICAgICAgICAgIFByb2plY3Q6IHByb2plY3QsXG4gICAgICAgIH07XG4gICAgICAgIC8vIH0pO1xuICAgIH1cbn1cbiJdfQ==
413
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvc2VydmljZXMvcHJvamVjdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFtQjNDLE1BQU0sT0FBTyxjQUFjO0lBS3ZCLFlBQ2MsV0FBb0MsRUFDcEMsY0FBOEI7UUFEOUIsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBQ3BDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUN6QyxDQUFDO0lBRUosK0ZBQStGO0lBQy9GLGlDQUFpQztJQUVqQyxxQkFBcUI7SUFDckIsdUNBQXVDO0lBQ3ZDLCtDQUErQztJQUMvQywwQ0FBMEM7SUFDMUMsMkNBQTJDO0lBRTNDLG1EQUFtRDtJQUNuRCxpQkFBaUI7SUFDakIsNkRBQTZEO0lBRTdELHdDQUF3QztJQUN4QyxVQUFVO0lBQ1YsVUFBVTtJQUNWLElBQUk7SUFFRyxvQkFBb0IsQ0FDdkIsS0FBNEI7UUFFNUIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNuQyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUVyQixJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLENBQUMsU0FBUyxDQUM3QyxLQUFLLEVBQUUsUUFBc0IsRUFBRSxFQUFFO2dCQUM3QixJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRTtvQkFDNUIsc0RBQXNEO29CQUV0RCxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ3JCO3FCQUFNO29CQUNILEtBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUV0QixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUV4QixPQUFPLENBQUMsR0FB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LElBQUksV0FBVyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVwQyxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDakQ7UUFFRCxPQUFPO1lBQ0gsWUFBWSxFQUFFLFlBQVk7WUFDMUIsT0FBTyxFQUFFLE9BQU87U0FDbkIsQ0FBQztRQUNGLE1BQU07SUFDVixDQUFDOzsyR0Fsb0JRLGNBQWM7K0dBQWQsY0FBYyxjQUZYLE1BQU07MkZBRVQsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlTW9kZWxlZFJlc3BvbnNlLCBCYXNlUmVzcG9uc2UsIFN0YXR1cyB9IGZyb20gJ0BsY3UvY29tbW9uJztcbmltcG9ydCB7IEVhQ0FwcGxpY2F0aW9uQXNDb2RlLCBFbnRlcnByaXNlQXNDb2RlIH0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQXBwbGljYXRpb25zRmxvd1N0YXRlLFxuICAgIExpY2Vuc2VBbmRCaWxsaW5nUmVzcG9uc2UsXG4gICAgVW5wYWNrTG93Q29kZVVuaXRSZXF1ZXN0LFxufSBmcm9tICcuLi9zdGF0ZS9hcHBsaWNhdGlvbnMtZmxvdy5zdGF0ZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbnNGbG93U2VydmljZSB9IGZyb20gJy4vYXBwbGljYXRpb25zLWZsb3cuc2VydmljZSc7XG5pbXBvcnQge1xuICAgIEZlZWRFbnRyeSxcbiAgICBGZWVkSXRlbSxcbiAgICBVc2VyRmVlZFJlc3BvbnNlLFxufSBmcm9tICcuLi9tb2RlbHMvdXNlci1mZWVkLm1vZGVsJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvamVjdFNlcnZpY2Uge1xuICAgIHB1YmxpYyBDcmVhdGluZ1Byb2plY3Q6IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgRWRpdGluZ1Byb2plY3RMb29rdXA6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgYXBwc0Zsb3dTdmM6IEFwcGxpY2F0aW9uc0Zsb3dTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlXG4gICAgKSB7fVxuXG4gICAgLy8gcHVibGljIENyZWF0ZVJlcG9zaXRvcnkoc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSwgb3JnOiBzdHJpbmcsIHJlcG9OYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyAgIHN0YXRlLkdpdEh1Yi5Mb2FkaW5nID0gdHJ1ZTtcblxuICAgIC8vICAgdGhpcy5hcHBzRmxvd1N2Y1xuICAgIC8vICAgICAuQ3JlYXRlUmVwb3NpdG9yeShvcmcsIHJlcG9OYW1lKVxuICAgIC8vICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogQmFzZVJlc3BvbnNlKSA9PiB7XG4gICAgLy8gICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgLy8gICAgICAgICB0aGlzLmxpc3RSZXBvc2l0b3JpZXMocmVwb05hbWUpO1xuXG4gICAgLy8gICAgICAgICBzdGF0ZS5HaXRIdWIuQ3JlYXRpbmdSZXBvc2l0b3J5ID0gZmFsc2U7XG4gICAgLy8gICAgICAgfSBlbHNlIHtcbiAgICAvLyAgICAgICAgIC8vICBUT0RPOiAgTmVlZCB0byBzdXJmYWNlIGFuIGVycm9yIHRvIHRoZSB1c2VyLi4uXG5cbiAgICAvLyAgICAgICAgIHN0YXRlLkdpdEh1Yi5Mb2FkaW5nID0gZmFsc2U7XG4gICAgLy8gICAgICAgfVxuICAgIC8vICAgICB9KTtcbiAgICAvLyB9XG5cbiAgICBwdWJsaWMgRW5zdXJlVXNlckVudGVycHJpc2UoXG4gICAgICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGVcbiAgICApOiBQcm9taXNlPEJhc2VSZXNwb25zZT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuRW5zdXJlVXNlckVudGVycHJpc2UoKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgYXN5bmMgKHJlc3BvbnNlOiBCYXNlUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zdCBlYWMgPSBhd2FpdCB0aGlzLkxvYWRFbnRlcnByaXNlQXNDb2RlKHN0YXRlKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIEVudGVycHJpc2VBc0NvZGVSZW1vdmFscyhcbiAgICAgICAgc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSxcbiAgICAgICAgZWFjOiBFbnRlcnByaXNlQXNDb2RlXG4gICAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgICAgICB0aGlzLmFwcHNGbG93U3ZjLkVudGVycHJpc2VBc0NvZGVSZW1vdmFscyhlYWMpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICBhc3luYyAocmVzcG9uc2U6IEJhc2VNb2RlbGVkUmVzcG9uc2U8c3RyaW5nPikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Mb2FkRW50ZXJwcmlzZUFzQ29kZShzdGF0ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Mb2FkVXNlckZlZWQoMSwgMjUsIGZhbHNlLCBzdGF0ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlLlN0YXR1cyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgR2VuZXJhdGVSb3V0ZWRBcHBsaWNhdGlvbnMoXG4gICAgICAgIGFwcGxpY2F0aW9uczogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNBcHBsaWNhdGlvbkFzQ29kZSB9LFxuICAgICAgICBzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlXG4gICAgKToge1xuICAgICAgICBbcm91dGU6IHN0cmluZ106IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDQXBwbGljYXRpb25Bc0NvZGUgfTtcbiAgICB9IHtcbiAgICAgICAgY29uc3QgYXBwTG9va3VwcyA9IE9iamVjdC5rZXlzKGFwcGxpY2F0aW9ucyk7XG5cbiAgICAgICAgY29uc3QgYXBwcyA9IGFwcExvb2t1cHMubWFwKChhcHBMb29rdXApID0+IGFwcGxpY2F0aW9uc1thcHBMb29rdXBdKTtcblxuICAgICAgICBsZXQgYXBwUm91dGVzID1cbiAgICAgICAgICAgIGFwcHMubWFwKChhcHApID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXBwPy5Mb29rdXBDb25maWc/LlBhdGhSZWdleC5yZXBsYWNlKCcuKicsICcnKTtcbiAgICAgICAgICAgIH0pIHx8IFtdO1xuXG4gICAgICAgIGFwcFJvdXRlcyA9IGFwcFJvdXRlcy5maWx0ZXIoKGFyKSA9PiBhciAhPSBudWxsKTtcblxuICAgICAgICBsZXQgcm91dGVCYXNlczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgICBhcHBSb3V0ZXMuZm9yRWFjaCgoYXBwUm91dGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFwcFJvdXRlUGFydHMgPSBhcHBSb3V0ZS5zcGxpdCgnLycpO1xuXG4gICAgICAgICAgICBjb25zdCBhcHBSb3V0ZUJhc2UgPSBgLyR7YXBwUm91dGVQYXJ0c1sxXX1gO1xuXG4gICAgICAgICAgICBpZiAocm91dGVCYXNlcy5pbmRleE9mKGFwcFJvdXRlQmFzZSkgPCAwKSB7XG4gICAgICAgICAgICAgICAgcm91dGVCYXNlcy5wdXNoKGFwcFJvdXRlQmFzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGxldCB3b3JraW5nQXBwTG9va3VwcyA9IFsuLi4oYXBwTG9va3VwcyB8fCBbXSldO1xuXG4gICAgICAgIHJvdXRlQmFzZXMgPSByb3V0ZUJhc2VzLnNvcnQoKGEsIGIpID0+IGIubG9jYWxlQ29tcGFyZShhKSk7XG5cbiAgICAgICAgY29uc3Qgcm91dGVTZXQgPVxuICAgICAgICAgICAgcm91dGVCYXNlcy5yZWR1Y2UoKHByZXZSb3V0ZU1hcCwgY3VycmVudFJvdXRlQmFzZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRlTWFwID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi5wcmV2Um91dGVNYXAsXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkQXBwTG9va3VwcyA9IHdvcmtpbmdBcHBMb29rdXBzLmZpbHRlcigod2FsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdhID0gYXBwbGljYXRpb25zW3dhbF07XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdhPy5Mb29rdXBDb25maWc/LlBhdGhSZWdleC5zdGFydHNXaXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFJvdXRlQmFzZVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcm91dGVNYXBbY3VycmVudFJvdXRlQmFzZV0gPVxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZEFwcExvb2t1cHMucmVkdWNlKChwcmV2QXBwTWFwLCBhcHBMb29rdXApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGFwcE1hcCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wcmV2QXBwTWFwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwTWFwW2FwcExvb2t1cF0gPSBhcHBsaWNhdGlvbnNbYXBwTG9va3VwXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFwcE1hcDtcbiAgICAgICAgICAgICAgICAgICAgfSwge30pIHx8IHt9O1xuXG4gICAgICAgICAgICAgICAgd29ya2luZ0FwcExvb2t1cHMgPSB3b3JraW5nQXBwTG9va3Vwcy5maWx0ZXIoKHdhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJlZEFwcExvb2t1cHMuaW5kZXhPZih3YSkgPCAwO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJvdXRlTWFwO1xuICAgICAgICAgICAgfSwge30pIHx8IHt9O1xuXG4gICAgICAgIGxldCByb3V0ZVNldEtleXMgPSBPYmplY3Qua2V5cyhyb3V0ZVNldCk7XG5cbiAgICAgICAgcm91dGVTZXRLZXlzID0gcm91dGVTZXRLZXlzLnNvcnQoKGEsIGIpID0+IGEubG9jYWxlQ29tcGFyZShiKSk7XG5cbiAgICAgICAgY29uc3Qgcm91dGVTZXRSZXN1bHQgPSB7fTtcblxuICAgICAgICByb3V0ZVNldEtleXMuZm9yRWFjaCgocnNrKSA9PiAocm91dGVTZXRSZXN1bHRbcnNrXSA9IHJvdXRlU2V0W3Jza10pKTtcblxuICAgICAgICByZXR1cm4gcm91dGVTZXRSZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIEdldEFjdGl2ZUVudGVycHJpc2UoXG4gICAgICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGVcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLkxvYWRpbmdBY3RpdmVFbnRlcnByaXNlID0gdHJ1ZTtcblxuICAgICAgICAgICAgdGhpcy5hcHBzRmxvd1N2Yy5HZXRBY3RpdmVFbnRlcnByaXNlKCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIGFzeW5jIChcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2U6IEJhc2VNb2RlbGVkUmVzcG9uc2U8e1xuICAgICAgICAgICAgICAgICAgICAgICAgTmFtZTogc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgTG9va3VwOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgIH0+XG4gICAgICAgICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmdBY3RpdmVFbnRlcnByaXNlID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5BY3RpdmVFbnRlcnByaXNlTG9va3VwID0gcmVzcG9uc2UuTW9kZWw/Lkxvb2t1cDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlLlN0YXR1cyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nQWN0aXZlRW50ZXJwcmlzZSA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIEhhc1ZhbGlkQ29ubmVjdGlvbihcbiAgICAgICAgc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSxcbiAgICAgICAgZm9yY2VFbnN1cmVVc2VyOiBib29sZWFuID0gZmFsc2VcbiAgICApOiBQcm9taXNlPEVudGVycHJpc2VBc0NvZGU+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgICAgICB0aGlzLmFwcHNGbG93U3ZjLkhhc1ZhbGlkQ29ubmVjdGlvbigpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICBhc3luYyAocmVzcG9uc2U6IEJhc2VSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5HaXRIdWIuSGFzQ29ubmVjdGlvbiA9IHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5HaXRIdWIuSGFzQ29ubmVjdGlvbiB8fCBmb3JjZUVuc3VyZVVzZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoe30pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgTGlzdEVudGVycHJpc2VzKHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUpOiBQcm9taXNlPGFueVtdPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nRW50ZXJwcmlzZXMgPSB0cnVlO1xuXG4gICAgICAgICAgICB0aGlzLmFwcHNGbG93U3ZjLkxpc3RFbnRlcnByaXNlcygpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICBhc3luYyAocmVzcG9uc2U6IEJhc2VNb2RlbGVkUmVzcG9uc2U8QXJyYXk8YW55Pj4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZ0VudGVycHJpc2VzID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5FbnRlcnByaXNlcyA9IHJlc3BvbnNlLk1vZGVsO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlLk1vZGVsKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZ0VudGVycHJpc2VzID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgTG9hZEVudGVycHJpc2VBc0NvZGUoXG4gICAgICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGVcbiAgICApOiBQcm9taXNlPEVudGVycHJpc2VBc0NvZGU+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgICAgICB0aGlzLmFwcHNGbG93U3ZjLkxvYWRFbnRlcnByaXNlQXNDb2RlKCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIChyZXNwb25zZTogQmFzZU1vZGVsZWRSZXNwb25zZTxFbnRlcnByaXNlQXNDb2RlPikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5FYUMgPSByZXNwb25zZS5Nb2RlbCB8fCB7fTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXNwb25zZS5TdGF0dXMuQ29kZSA9PT0gMykge1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuRWFDID0gc3RhdGUuRWFDIHx8IHt9O1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuQ3JlYXRpbmdQcm9qZWN0ID1cbiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHN0YXRlPy5FYUM/LlByb2plY3RzIHx8IHt9KS5sZW5ndGggPD0gMDtcblxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHN0YXRlLkVhQyk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmFtcz8uZGlyZWN0ID09ICd0cnVlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwcm9qS2V5cyA9IE9iamVjdC5rZXlzKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5FYUMuUHJvamVjdHMgfHwge31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByb2pLZXlzLmxlbmd0aCA9PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdEaXJlY3RpbmcgdG8gZGVlcGVyIGxpbmsnKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXBwS2V5cyA9IE9iamVjdC5rZXlzKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuRWFDLkFwcGxpY2F0aW9ucyB8fCB7fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcHBLZXlzLmxlbmd0aCA9PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXBwID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5FYUMuQXBwbGljYXRpb25zW2FwcEtleXNbMF1dO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcm91dGVLZXkgPSBlbmNvZGVVUklDb21wb25lbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwLkxvb2t1cENvbmZpZy5QYXRoUmVnZXg/LnJlcGxhY2UoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuKicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB8fCAnLydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYC9kYXNoYm9hcmQvYXBwbGljYXRpb24vJHthcHBLZXlzWzBdfS8ke3JvdXRlS2V5fS8ke3Byb2pLZXlzWzBdfWA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAvZGFzaGJvYXJkL3Byb2plY3QvJHtwcm9qS2V5c1swXX1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhzdGF0ZSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMb2FkVXNlckZlZWQoXG4gICAgICAgIHBhZ2U6IG51bWJlcixcbiAgICAgICAgcGFnZVNpemU6IG51bWJlcixcbiAgICAgICAgZm9yQ2hlY2s6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICAgICAgc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZVxuICAgICk6IFByb21pc2U8QXJyYXk8RmVlZEl0ZW0+PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nRmVlZCA9ICFmb3JDaGVjaztcblxuICAgICAgICAgICAgbGV0IHBhcmFtTWFwID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5jaGlsZHJlblswXS5wYXJhbU1hcDtcblxuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMubG9hZEFwcGxpY2F0aW9uc0ZvckZlZWQoc3RhdGUsIHBhcmFtTWFwKTtcblxuICAgICAgICAgICAgdGhpcy5hcHBzRmxvd1N2Y1xuICAgICAgICAgICAgICAgIC5Mb2FkVXNlckZlZWQoXG4gICAgICAgICAgICAgICAgICAgIHBhZ2UsXG4gICAgICAgICAgICAgICAgICAgIHBhZ2VTaXplLFxuICAgICAgICAgICAgICAgICAgICByZXN1bHQ/LlByb2plY3QsXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdD8uQXBwbGljYXRpb25zXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgICAgIGFzeW5jIChyZXNwb25zZTogVXNlckZlZWRSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZ0ZlZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFmb3JDaGVjaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5GZWVkID0gcmVzcG9uc2UuSXRlbXM7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuRmVlZFNvdXJjZUNvbnRyb2xMb29rdXBzID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLlNvdXJjZUNvbnRyb2xMb29rdXBzO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLkZlZWRBY3Rpb25zID0gcmVzcG9uc2UuQWN0aW9ucztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5GZWVkQ2hlY2sgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpdGVtcyA9IHJlc3BvbnNlLkl0ZW1zPy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhc3RhdGUuRmVlZD8uZmluZCgoZikgPT4gZi5JRCA9PSBpLklEKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtcz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuRmVlZENoZWNrID0gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJJVEVNWjogXCIsIHJlc3BvbnNlLkl0ZW1zKVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZS5JdGVtcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChyZXNwb25zZS5TdGF0dXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nRmVlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMb2FkVXNlckxpY2Vuc2VJbmZvKHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUpIHtcbiAgICAgICAgdGhpcy5hcHBzRmxvd1N2Yy5Mb2FkTGljZW5zZURhdGEoKS5zdWJzY3JpYmUoYXN5bmMgKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLkxvYWRpbmdGZWVkID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgICAgICBzdGF0ZS5Vc2VyTGljZW5zZUluZm8gPSByZXNwb25zZS5Nb2RlbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgJ0Vycm9yIGxvYWRpbmcgdXNlciBpbmZvcm1hdGlvbjogJyxcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuU3RhdHVzLk1lc3NhZ2VcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgU2V0QWN0aXZlRW50ZXJwcmlzZShcbiAgICAgICAgc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSxcbiAgICAgICAgYWN0aXZlRW50TG9va3VwOiBzdHJpbmdcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nRmVlZCA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuU2V0QWN0aXZlRW50ZXJwcmlzZShhY3RpdmVFbnRMb29rdXApLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICBhc3luYyAocmVzcG9uc2U6IEJhc2VSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ1Byb2plY3RMb29rdXAgPSBudWxsO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvamVjdCBzZXJ2aWNlIGFjdGl2ZSBlbnQ6ICcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlRW50TG9va3VwXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5BY3RpdmVFbnRlcnByaXNlTG9va3VwID0gYWN0aXZlRW50TG9va3VwO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvamVjdCBzZXJ2aWNlIFN0YXRlIGFjdGl2ZSBlbnQ6ICcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuQWN0aXZlRW50ZXJwcmlzZUxvb2t1cFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkxvYWRFbnRlcnByaXNlQXNDb2RlKHN0YXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkxvYWRVc2VyRmVlZCgxLCAyNSwgZmFsc2UsIHN0YXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBTYXZlRW50ZXJwcmlzZUFzQ29kZShcbiAgICAgICAgc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSxcbiAgICAgICAgZWFjOiBFbnRlcnByaXNlQXNDb2RlXG4gICAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgICAgICB0aGlzLmFwcHNGbG93U3ZjLlNhdmVFbnRlcnByaXNlQXNDb2RlKGVhYykuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIGFzeW5jIChyZXNwb25zZTogQmFzZU1vZGVsZWRSZXNwb25zZTxzdHJpbmc+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5TdGF0dXMuQ29kZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkxvYWRFbnRlcnByaXNlQXNDb2RlKHN0YXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkxvYWRVc2VyRmVlZCgxLCAyNSwgZmFsc2UsIHN0YXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBTZXRDcmVhdGluZ1Byb2plY3QoY3JlYXRpbmdQcm9qZWN0OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuQ3JlYXRpbmdQcm9qZWN0ID0gY3JlYXRpbmdQcm9qZWN0O1xuXG4gICAgICAgIHRoaXMuRWRpdGluZ1Byb2plY3RMb29rdXAgPSBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBTZXRFZGl0UHJvamVjdFNldHRpbmdzKFxuICAgICAgICBzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlLFxuICAgICAgICBwcm9qZWN0TG9va3VwOiBzdHJpbmdcbiAgICApOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgaWYgKHByb2plY3RMb29rdXAgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ1Byb2plY3RMb29rdXAgPSBudWxsO1xuXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ1Byb2plY3RMb29rdXAgPSBwcm9qZWN0TG9va3VwO1xuXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoe30pO1xuICAgICAgICAgICAgICAgIH0sIDApO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5DcmVhdGluZ1Byb2plY3QgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHN0YXRlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nUHJvamVjdExvb2t1cCA9IHByb2plY3RMb29rdXA7XG5cbiAgICAgICAgICAgICAgICB0aGlzLkNyZWF0aW5nUHJvamVjdCA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh7fSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBTdWJtaXRGZWVkRW50cnkoXG4gICAgICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUsXG4gICAgICAgIGVudHJ5OiBGZWVkRW50cnlcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuU3VibWl0RmVlZEVudHJ5KGVudHJ5KS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgYXN5bmMgKHJlc3BvbnNlOiBCYXNlTW9kZWxlZFJlc3BvbnNlPHN0cmluZz4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDAgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAxXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkxvYWRFbnRlcnByaXNlQXNDb2RlKHN0YXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkxvYWRVc2VyRmVlZCgxLCAyNSwgZmFsc2UsIHN0YXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBUb2dnbGVDcmVhdGVQcm9qZWN0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLlNldENyZWF0aW5nUHJvamVjdCghdGhpcy5DcmVhdGluZ1Byb2plY3QpO1xuICAgIH1cblxuICAgIHB1YmxpYyBVbnBhY2tMb3dDb2RlVW5pdChcbiAgICAgICAgc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSxcbiAgICAgICAgcmVxOiBVbnBhY2tMb3dDb2RlVW5pdFJlcXVlc3RcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuVW5wYWNrTG93Q29kZVVuaXQocmVxKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgYXN5bmMgKHJlc3BvbnNlOiBCYXNlUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlLlN0YXR1cyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuTG9hZEVudGVycHJpc2VBc0NvZGUoc3RhdGUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuTG9hZFVzZXJGZWVkKDEsIDI1LCBmYWxzZSwgc3RhdGUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gIEhlbHBlcnNcbiAgICBwcm90ZWN0ZWQgbG9hZEFwcGxpY2F0aW9uc0ZvckZlZWQoXG4gICAgICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUsXG4gICAgICAgIHBhcmFtTWFwOiBhbnlcbiAgICApIHtcbiAgICAgICAgLy8gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5wYXJhbU1hcC5zdWJzY3JpYmUoYXN5bmMgKHBhcmFtTWFwKSA9PiB7XG4gICAgICAgIHZhciBwcm9qZWN0ID0gcGFyYW1NYXAuZ2V0KCdwcm9qZWN0TG9va3VwJykgfHwgJyc7XG5cbiAgICAgICAgdmFyIHJvdXRlID0gcGFyYW1NYXAuZ2V0KCdhcHBSb3V0ZScpO1xuXG4gICAgICAgIHZhciBhcHBsaWNhdGlvbiA9IHBhcmFtTWFwLmdldCgnYXBwTG9va3VwJyk7XG5cbiAgICAgICAgdmFyIGFwcGxpY2F0aW9uczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgICBpZiAoYXBwbGljYXRpb24pIHtcbiAgICAgICAgICAgIGFwcGxpY2F0aW9ucy5wdXNoKGFwcGxpY2F0aW9uKTtcbiAgICAgICAgfSBlbHNlIGlmIChyb3V0ZSAmJiBwcm9qZWN0KSB7XG4gICAgICAgICAgICBjb25zdCBhcHBzOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH0gPSB7fTtcblxuICAgICAgICAgICAgc3RhdGUuRWFDPy5Qcm9qZWN0c1twcm9qZWN0XS5BcHBsaWNhdGlvbkxvb2t1cHMuZm9yRWFjaChcbiAgICAgICAgICAgICAgICAoYXBwTG9va3VwOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYXBwc1thcHBMb29rdXBdID0gc3RhdGUuRWFDLkFwcGxpY2F0aW9uc1thcHBMb29rdXBdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHZhciByb3V0ZWRBcHBzID0gdGhpcy5HZW5lcmF0ZVJvdXRlZEFwcGxpY2F0aW9ucyhhcHBzLCBzdGF0ZSk7XG5cbiAgICAgICAgICAgIHZhciBjdXJyZW50QXBwcyA9IHJvdXRlZEFwcHNbcm91dGVdO1xuXG4gICAgICAgICAgICBhcHBsaWNhdGlvbnMgPSBPYmplY3Qua2V5cyhjdXJyZW50QXBwcykgfHwgW107XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgQXBwbGljYXRpb25zOiBhcHBsaWNhdGlvbnMsXG4gICAgICAgICAgICBQcm9qZWN0OiBwcm9qZWN0LFxuICAgICAgICB9O1xuICAgICAgICAvLyB9KTtcbiAgICB9XG59XG4iXX0=