@unifylib/ui-lib 1.1.4 → 1.1.6
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.
- package/esm2022/lib/base-model/field-info.mjs +2 -1
- package/esm2022/lib/components/action-confirmation/action-confirmation.component.mjs +3 -3
- package/esm2022/lib/components/activity-report-form/activity-report-form.component.mjs +2 -2
- package/esm2022/lib/components/advanced-filter/filter-builder/filter-builder.component.mjs +23 -4
- package/esm2022/lib/components/base-form/base-form.component.mjs +2 -2
- package/esm2022/lib/components/base-form-canvas/base-form-canvas.component.mjs +3 -3
- package/esm2022/lib/components/base-input-dialog/base-input-dialog.component.mjs +2 -2
- package/esm2022/lib/components/base-table/base-table.component.mjs +48 -5
- package/esm2022/lib/components/editable-base-table/editable-base-table.component.mjs +2 -2
- package/esm2022/lib/components/item-line-editor/item-line-editor.component.mjs +2 -2
- package/esm2022/lib/components/paginator/paginator.component.mjs +49 -8
- package/esm2022/lib/components/rejection-comment/action-comment.component.mjs +88 -0
- package/esm2022/lib/components/report-form/report-form.component.mjs +2 -2
- package/esm2022/lib/components/title-bar/title-bar.component.mjs +6 -3
- package/fesm2022/iq-ui-lib.mjs +143 -35
- package/fesm2022/iq-ui-lib.mjs.map +1 -1
- package/fesm2022/unifylib-ui-lib.mjs +143 -35
- package/fesm2022/unifylib-ui-lib.mjs.map +1 -1
- package/lib/base-model/field-info.d.ts +1 -0
- package/lib/components/advanced-filter/filter-builder/filter-builder.component.d.ts +5 -1
- package/lib/components/base-table/base-table.component.d.ts +9 -0
- package/lib/components/paginator/paginator.component.d.ts +3 -0
- package/lib/components/rejection-comment/action-comment.component.d.ts +24 -0
- package/lib/components/title-bar/title-bar.component.d.ts +2 -1
- package/package.json +2 -4
|
@@ -52,6 +52,7 @@ export class FieldInfo {
|
|
|
52
52
|
this.validationMessages = fieldInfo.validationMessages;
|
|
53
53
|
this.hideLabel = fieldInfo.hideLabel;
|
|
54
54
|
this.searchOperator = fieldInfo.searchOperator || 'EQUALS';
|
|
55
|
+
this.showSearchIcon = fieldInfo.showSearchIcon;
|
|
55
56
|
}
|
|
56
57
|
}
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtaW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludm9pY2VxL3VpLWxpYi9zcmMvbGliL2Jhc2UtbW9kZWwvZmllbGQtaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sU0FBUztJQW1EcEIsWUFBWSxTQUFvQjtRQWxEOUIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixtQkFBYyxHQUFZLEVBQUUsQ0FBQztRQUU3QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLFNBQUksR0FBMlcsTUFBTSxDQUFDO1FBRXRYLGFBQVEsR0FBYSxLQUFLLENBQUM7UUFFM0IsVUFBSyxHQUFZLEVBQUUsQ0FBQztRQWlCcEIsY0FBUyxHQUFhLEtBQUssQ0FBQztRQUc1QixZQUFPLEdBQWEsSUFBSSxDQUFDO1FBdUJyQixJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFDbkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUMsY0FBYyxDQUFDO1FBQy9DLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztRQUNuQyxJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDO1FBQ25DLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUM7UUFDckMsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO1FBQzVGLElBQUksQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQztRQUN6QixJQUFJ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bGlkYXRvckZufSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gXCIuL2ZpbHRlci5tb2RlbFwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEZpZWxkSW5mbyB7XHJcbiAgICBwcm9wZXJ0eTogc3RyaW5nID0gXCJcIjtcclxuICAgIHRhcmdldFByb3BlcnR5Pzogc3RyaW5nID0gXCJcIjtcclxuICAgIHJvdzogbnVtYmVyO1xyXG4gICAgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHR5cGU6ICd0ZXh0JyB8ICdhbW91bnQnIHwnY29sb3ItcGlja2VyJyB8ICdjdXJyZW5jeScgfCAnZGF0ZScgfCAnbnVtYmVyJyB8ICdzZXF1ZW5jZScgfCAnbGlzdCcgfCdsb29rdXAnfCAnbXVsdGktc2VsZWN0JyB8ICdwYXNzd29yZCd8ICdyaWNoLXRleHQnfCdyYWRpby1idXR0b24nfCAncGhvbmUtbnVtYmVyJ3wgJ2liYW4tdGV4dCd8J2NoZWNrYm94JyB8J3RleHRhcmVhJyB8J2J1dHRvbid8J3NwYWNlcicgfCAnYXR0YWNobWVudCd8ICdzZWN0aW9uLXRpdGxlJ3wgJ2NoaXAtbGlzdCcgfCd0aW1lJyB8ICdkaXZpZGVyJyB8ICdoeXBlci10ZXh0JyB8J3N0YXRlVHlwZSd8J3N0YXR1cycgfCAneWVhcicgfCAnZXF1YXRpb24tYnVpbGRlcicgPSAndGV4dCc7XHJcbiAgICB0ZXh0Rm9ybWF0PzogJ2pzb24nO1xyXG4gICAgcmVhZG9ubHk/OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICB2aWV3b25seT86IGJvb2xlYW4gO1xyXG4gICAgbGFiZWw/OiBzdHJpbmcgPSAnJztcclxuICAgIGN1cnJlbmN5Pzogc3RyaW5nO1xyXG4gICAgbG9va3VwQXBpUGF0aD86IHN0cmluZztcclxuICAgIG11bHRpPzpib29sZWFuO1xyXG4gICAgc3VwcG9ydGVkVHlwZXM/OnN0cmluZztcclxuICAgIGNhc2NhZGVkQnk/OiBzdHJpbmc7XHJcbiAgICBjYXNjYWRlZEJ5UHJvcGVydHk/OiBzdHJpbmc7XHJcbiAgICBwYXRoUGFyYW1zPzogc3RyaW5nO1xyXG4gICAgbGlzdE9wdGlvbnM/OiBhbnlbXTtcclxuICAgIG9wZXJhdG9ycz86IGFueVtdO1xyXG4gICAgZmllbGRzQXBpPzogc3RyaW5nO1xyXG4gICAgcmVwb3J0RmlsdGVyPzpzdHJpbmc7XHJcbiAgICB1cGRhdGVPbmx5PzogYm9vbGVhbjtcclxuICAgIGZpZWxkU2l6ZSA/OiBudW1iZXIgIDtcclxuICAgIGluY2x1ZGVBbGxPcHRpb24/OiBib29sZWFuO1xyXG4gICAgZGVmYXVsdExpc3RPcHRpb24/OiBhbnk7XHJcbiAgICBhY2NlcHROZXdJdGVtPzogYm9vbGVhbjtcclxuICAgIHRyYW5zbGF0ZT86IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHZhbGlkYXRvcnM/OiBWYWxpZGF0b3JGbltdO1xyXG4gICAgcGxhY2Vob2xkZXI/OiBhbnk7XHJcbiAgICB2aXNpYmxlPzogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBwYXR0ZXJuPzogc3RyaW5nO1xyXG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gICAgYWR2YW5jZWRGaWx0ZXI/OiBib29sZWFuO1xyXG4gICAgZmlsdGVyT3BlcmF0b3I/OiAnR1JFQVRFUl9USEFOX0VRVUFMJ3wnR1JFQVRFUl9USEFOJ3wgJ0xFU1NfVEhBTid8J0xFU1NfVEhBTl9FUVVBTCd8ICdFUVVBTFMnfCAnTElLRSd8ICdOT1RfRVEnfCAnSU4nIDtcclxuICAgIHdvcmtmbG93TWFuYWdlZD86IGJvb2xlYW47XHJcbiAgICB3b3JrZmxvd0Nhc2NhZGluZ0ZpZWxkPzogc3RyaW5nO1xyXG4gICAgYXR0YWNobWVudFR5cGU/OiBzdHJpbmc7XHJcbiAgICBsb29rdXBGaWx0ZXJMaXN0PzogRmlsdGVyW107XHJcbiAgICBidXR0b25UeXBlPzogc3RyaW5nO1xyXG4gICAgaGlkZUZpbGVzPzogYm9vbGVhbjtcclxuICAgIGJlaGF2aW9yYWxOYW1lPzogc3RyaW5nO1xyXG4gICAgZmxhdHRlbkJ5U3ViQXR0cmlidXRlPzogc3RyaW5nO1xyXG4gICAgZGVmYXVsdFZhbHVlPzphbnk7XHJcbiAgICBleHRyYUxvb2t1cHNDb2x1bW5zPzogc3RyaW5nW107XHJcbiAgICBkaXNwbGF5Q29sdW1uPzogc3RyaW5nO1xyXG4gICAgc2VhcmNoQXR0cmlidXRlPzpzdHJpbmc7XHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZXM/OiBhbnk7XHJcbiAgICBoaWRlTGFiZWw/OmJvb2xlYW47XHJcbiAgICBzZWFyY2hPcGVyYXRvcj86XCJHUkVBVEVSX1RIQU5fRVFVQUxcIiB8IFwiR1JFQVRFUl9USEFOXCIgfCBcIkxFU1NfVEhBTlwiIHwgXCJMRVNTX1RIQU5fRVFVQUxcIiB8IFwiRVFVQUxTXCIgfCBcIkxJS0VcIiB8IFwiTk9UX0VRXCIgfCBcIklOXCIgfCBcIk5PVF9OVUxMXCI7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihmaWVsZEluZm86IEZpZWxkSW5mbykge1xyXG4gICAgICAgIHRoaXMucHJvcGVydHkgPSBmaWVsZEluZm8ucHJvcGVydHk7XHJcbiAgICAgICAgdGhpcy50YXJnZXRQcm9wZXJ0eSA9IGZpZWxkSW5mby50YXJnZXRQcm9wZXJ0eTtcclxuICAgICAgICB0aGlzLnJlcXVpcmVkID0gZmllbGRJbmZvLnJlcXVpcmVkO1xyXG4gICAgICAgIHRoaXMudHlwZSA9IGZpZWxkSW5mby50eXBlO1xyXG4gICAgICAgIHRoaXMucmVhZG9ubHkgPSBmaWVsZEluZm8ucmVhZG9ubHk7XHJcbiAgICAgICAgdGhpcy5sYWJlbCA9IGZpZWxkSW5mby5sYWJlbDtcclxuICAgICAgICB0aGlzLmZpZWxkU2l6ZSA9IGZpZWxkSW5mby5maWVsZFNpemU7XHJcbiAgICAgICAgdGhpcy5sb29rdXBBcGlQYXRoID0gZmllbGRJbmZvLmxvb2t1cEFwaVBhdGggPyBmaWVsZEluZm8ubG9va3VwQXBpUGF0aCA6IGZpZWxkSW5mby5wcm9wZXJ0eTtcclxuICAgICAgICB0aGlzLnJvdyA9IGZpZWxkSW5mby5yb3c7XHJcbiAgICAgICAgdGhpcy5zdXBwb3J0ZWRUeXBlcyA9IGZpZWxkSW5mby5zdXBwb3J0ZWRUeXBlcztcclxuICAgICAgICB0aGlzLmxpc3RPcHRpb25zID0gZmllbGRJbmZvLmxpc3RPcHRpb25zO1xyXG4gICAgICAgIHRoaXMucGF0aFBhcmFtcyA9IGZpZWxkSW5mby5wYXRoUGFyYW1zO1xyXG4gICAgICAgIHRoaXMudmlld29ubHkgPSBmaWVsZEluZm8udmlld29ubHk7XHJcbiAgICAgICAgdGhpcy5tdWx0aSA9IGZpZWxkSW5mby5tdWx0aTtcclxuICAgICAgICB0aGlzLnVwZGF0ZU9ubHkgPSBmaWVsZEluZm8udXBkYXRlT25seTtcclxuICAgICAgICB0aGlzLmluY2x1ZGVBbGxPcHRpb24gPSBmaWVsZEluZm8uaW5jbHVkZUFsbE9wdGlvbjtcclxuICAgICAgICB0aGlzLmRlZmF1bHRMaXN0T3B0aW9uID0gZmllbGRJbmZvLmRlZmF1bHRMaXN0T3B0aW9uO1xyXG4gICAgICAgIHRoaXMuYWNjZXB0TmV3SXRlbSA9IGZpZWxkSW5mby5hY2NlcHROZXdJdGVtO1xyXG4gICAgICAgIHRoaXMuY2FzY2FkZWRCeSA9IGZpZWxkSW5mby5jYXNjYWRlZEJ5O1xyXG4gICAgICAgIHRoaXMuY2FzY2FkZWRCeVByb3BlcnR5ID0gZmllbGRJbmZvLmNhc2NhZGVkQnlQcm9wZXJ0eSA/IGZpZWxkSW5mby5jYXNjYWRlZEJ5UHJvcGVydHkgOiAgZmllbGRJbmZvLmNhc2NhZGVkQnk7XHJcbiAgICAgICAgdGhpcy5jdXJyZW5jeSA9IGZpZWxkSW5mby5jdXJyZW5jeTtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZSA9IGZpZWxkSW5mby50cmFuc2xhdGU7XHJcbiAgICAgICAgdGhpcy5hZHZhbmNlZEZpbHRlciA9IGZpZWxkSW5mby5hZHZhbmNlZEZpbHRlcjtcclxuICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gZmllbGRJbmZvLnBsYWNlaG9sZGVyO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdG9ycyA9IGZpZWxkSW5mby52YWxpZGF0b3JzO1xyXG4gICAgICAgIHRoaXMuZmlsdGVyT3BlcmF0b3IgPSBmaWVsZEluZm8uZmlsdGVyT3BlcmF0b3I7XHJcbiAgICAgICAgdGhpcy5wYXR0ZXJuID0gZmllbGRJbmZvLnBhdHRlcm47XHJcbiAgICAgICAgdGhpcy53b3JrZmxvd01hbmFnZWQgPSBmaWVsZEluZm8ud29ya2Zsb3dNYW5hZ2VkO1xyXG4gICAgICAgIHRoaXMud29ya2Zsb3dDYXNjYWRpbmdGaWVsZCA9IGZpZWxkSW5mby53b3JrZmxvd0Nhc2NhZGluZ0ZpZWxkO1xyXG4gICAgICAgIHRoaXMudmlzaWJsZSA9IGZpZWxkSW5mby52aXNpYmxlID09PSB1bmRlZmluZWQgfHwgZmllbGRJbmZvLnZpc2libGU7XHJcbiAgICAgICAgdGhpcy5hdHRhY2htZW50VHlwZSA9IGZpZWxkSW5mby5hdHRhY2htZW50VHlwZTtcclxuICAgICAgICB0aGlzLmxvb2t1cEZpbHRlckxpc3QgPSBmaWVsZEluZm8ubG9va3VwRmlsdGVyTGlzdDtcclxuICAgICAgICB0aGlzLmV4dHJhTG9va3Vwc0NvbHVtbnMgPSBmaWVsZEluZm8uZXh0cmFMb29rdXBzQ29sdW1ucztcclxuICAgICAgICB0aGlzLmRpc3BsYXlDb2x1bW4gPSBmaWVsZEluZm8uZGlzcGxheUNvbHVtbjtcclxuICAgICAgICB0aGlzLnRleHRGb3JtYXQgPSBmaWVsZEluZm8udGV4dEZvcm1hdDtcclxuICAgICAgICB0aGlzLmJ1dHRvblR5cGUgPSBmaWVsZEluZm8uYnV0dG9uVHlwZTtcclxuICAgICAgICB0aGlzLmhpZGVGaWxlcyA9IGZpZWxkSW5mby5oaWRlRmlsZXM7XHJcbiAgICAgICAgdGhpcy5iZWhhdmlvcmFsTmFtZSA9IGZpZWxkSW5mby5iZWhhdmlvcmFsTmFtZTtcclxuICAgICAgICB0aGlzLmZsYXR0ZW5CeVN1YkF0dHJpYnV0ZSA9IGZpZWxkSW5mby5mbGF0dGVuQnlTdWJBdHRyaWJ1dGU7XHJcbiAgICAgICAgdGhpcy5kZWZhdWx0VmFsdWUgPSBmaWVsZEluZm8uZGVmYXVsdFZhbHVlO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoQXR0cmlidXRlID0gZmllbGRJbmZvLnNlYXJjaEF0dHJpYnV0ZSB8fCB0aGlzLnByb3BlcnR5O1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2VzID0gZmllbGRJbmZvLnZhbGlkYXRpb25NZXNzYWdlcztcclxuICAgICAgICB0aGlzLmhpZGVMYWJlbCA9IGZpZWxkSW5mby5oaWRlTGFiZWw7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hPcGVyYXRvciA9IGZpZWxkSW5mby5zZWFyY2hPcGVyYXRvciB8fCAnRVFVQUxTJztcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtaW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludm9pY2VxL3VpLWxpYi9zcmMvbGliL2Jhc2UtbW9kZWwvZmllbGQtaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sU0FBUztJQW9EcEIsWUFBWSxTQUFvQjtRQW5EOUIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixtQkFBYyxHQUFZLEVBQUUsQ0FBQztRQUU3QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLFNBQUksR0FBMlcsTUFBTSxDQUFDO1FBRXRYLGFBQVEsR0FBYSxLQUFLLENBQUM7UUFFM0IsVUFBSyxHQUFZLEVBQUUsQ0FBQztRQWlCcEIsY0FBUyxHQUFhLEtBQUssQ0FBQztRQUc1QixZQUFPLEdBQWEsSUFBSSxDQUFDO1FBd0JyQixJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFDbkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUMsY0FBYyxDQUFDO1FBQy9DLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztRQUNuQyxJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDO1FBQ25DLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUM7UUFDckMsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO1FBQzVGLElBQUksQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQztRQUN6QixJQUFJ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SUFDckQsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtWYWxpZGF0b3JGbn0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7RmlsdGVyfSBmcm9tIFwiLi9maWx0ZXIubW9kZWxcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBGaWVsZEluZm8ge1xyXG4gICAgcHJvcGVydHk6IHN0cmluZyA9IFwiXCI7XHJcbiAgICB0YXJnZXRQcm9wZXJ0eT86IHN0cmluZyA9IFwiXCI7XHJcbiAgICByb3c6IG51bWJlcjtcclxuICAgIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICB0eXBlOiAndGV4dCcgfCAnYW1vdW50JyB8J2NvbG9yLXBpY2tlcicgfCAnY3VycmVuY3knIHwgJ2RhdGUnIHwgJ251bWJlcicgfCAnc2VxdWVuY2UnIHwgJ2xpc3QnIHwnbG9va3VwJ3wgJ211bHRpLXNlbGVjdCcgfCAncGFzc3dvcmQnfCAncmljaC10ZXh0J3wncmFkaW8tYnV0dG9uJ3wgJ3Bob25lLW51bWJlcid8ICdpYmFuLXRleHQnfCdjaGVja2JveCcgfCd0ZXh0YXJlYScgfCdidXR0b24nfCdzcGFjZXInIHwgJ2F0dGFjaG1lbnQnfCAnc2VjdGlvbi10aXRsZSd8ICdjaGlwLWxpc3QnIHwndGltZScgfCAnZGl2aWRlcicgfCAnaHlwZXItdGV4dCcgfCdzdGF0ZVR5cGUnfCdzdGF0dXMnIHwgJ3llYXInIHwgJ2VxdWF0aW9uLWJ1aWxkZXInID0gJ3RleHQnO1xyXG4gICAgdGV4dEZvcm1hdD86ICdqc29uJztcclxuICAgIHJlYWRvbmx5PzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgdmlld29ubHk/OiBib29sZWFuIDtcclxuICAgIGxhYmVsPzogc3RyaW5nID0gJyc7XHJcbiAgICBjdXJyZW5jeT86IHN0cmluZztcclxuICAgIGxvb2t1cEFwaVBhdGg/OiBzdHJpbmc7XHJcbiAgICBtdWx0aT86Ym9vbGVhbjtcclxuICAgIHN1cHBvcnRlZFR5cGVzPzpzdHJpbmc7XHJcbiAgICBjYXNjYWRlZEJ5Pzogc3RyaW5nO1xyXG4gICAgY2FzY2FkZWRCeVByb3BlcnR5Pzogc3RyaW5nO1xyXG4gICAgcGF0aFBhcmFtcz86IHN0cmluZztcclxuICAgIGxpc3RPcHRpb25zPzogYW55W107XHJcbiAgICBvcGVyYXRvcnM/OiBhbnlbXTtcclxuICAgIGZpZWxkc0FwaT86IHN0cmluZztcclxuICAgIHJlcG9ydEZpbHRlcj86c3RyaW5nO1xyXG4gICAgdXBkYXRlT25seT86IGJvb2xlYW47XHJcbiAgICBmaWVsZFNpemUgPzogbnVtYmVyICA7XHJcbiAgICBpbmNsdWRlQWxsT3B0aW9uPzogYm9vbGVhbjtcclxuICAgIGRlZmF1bHRMaXN0T3B0aW9uPzogYW55O1xyXG4gICAgYWNjZXB0TmV3SXRlbT86IGJvb2xlYW47XHJcbiAgICB0cmFuc2xhdGU/OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICB2YWxpZGF0b3JzPzogVmFsaWRhdG9yRm5bXTtcclxuICAgIHBsYWNlaG9sZGVyPzogYW55O1xyXG4gICAgdmlzaWJsZT86IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgcGF0dGVybj86IHN0cmluZztcclxuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICAgIGFkdmFuY2VkRmlsdGVyPzogYm9vbGVhbjtcclxuICAgIGZpbHRlck9wZXJhdG9yPzogJ0dSRUFURVJfVEhBTl9FUVVBTCd8J0dSRUFURVJfVEhBTid8ICdMRVNTX1RIQU4nfCdMRVNTX1RIQU5fRVFVQUwnfCAnRVFVQUxTJ3wgJ0xJS0UnfCAnTk9UX0VRJ3wgJ0lOJyA7XHJcbiAgICB3b3JrZmxvd01hbmFnZWQ/OiBib29sZWFuO1xyXG4gICAgd29ya2Zsb3dDYXNjYWRpbmdGaWVsZD86IHN0cmluZztcclxuICAgIGF0dGFjaG1lbnRUeXBlPzogc3RyaW5nO1xyXG4gICAgbG9va3VwRmlsdGVyTGlzdD86IEZpbHRlcltdO1xyXG4gICAgYnV0dG9uVHlwZT86IHN0cmluZztcclxuICAgIGhpZGVGaWxlcz86IGJvb2xlYW47XHJcbiAgICBiZWhhdmlvcmFsTmFtZT86IHN0cmluZztcclxuICAgIGZsYXR0ZW5CeVN1YkF0dHJpYnV0ZT86IHN0cmluZztcclxuICAgIGRlZmF1bHRWYWx1ZT86YW55O1xyXG4gICAgZXh0cmFMb29rdXBzQ29sdW1ucz86IHN0cmluZ1tdO1xyXG4gICAgZGlzcGxheUNvbHVtbj86IHN0cmluZztcclxuICAgIHNlYXJjaEF0dHJpYnV0ZT86c3RyaW5nO1xyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VzPzogYW55O1xyXG4gICAgaGlkZUxhYmVsPzpib29sZWFuO1xyXG4gICAgc2VhcmNoT3BlcmF0b3I/OlwiR1JFQVRFUl9USEFOX0VRVUFMXCIgfCBcIkdSRUFURVJfVEhBTlwiIHwgXCJMRVNTX1RIQU5cIiB8IFwiTEVTU19USEFOX0VRVUFMXCIgfCBcIkVRVUFMU1wiIHwgXCJMSUtFXCIgfCBcIk5PVF9FUVwiIHwgXCJJTlwiIHwgXCJOT1RfTlVMTFwiO1xyXG4gICAgc2hvd1NlYXJjaEljb24/OiBib29sZWFuO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoZmllbGRJbmZvOiBGaWVsZEluZm8pIHtcclxuICAgICAgICB0aGlzLnByb3BlcnR5ID0gZmllbGRJbmZvLnByb3BlcnR5O1xyXG4gICAgICAgIHRoaXMudGFyZ2V0UHJvcGVydHkgPSBmaWVsZEluZm8udGFyZ2V0UHJvcGVydHk7XHJcbiAgICAgICAgdGhpcy5yZXF1aXJlZCA9IGZpZWxkSW5mby5yZXF1aXJlZDtcclxuICAgICAgICB0aGlzLnR5cGUgPSBmaWVsZEluZm8udHlwZTtcclxuICAgICAgICB0aGlzLnJlYWRvbmx5ID0gZmllbGRJbmZvLnJlYWRvbmx5O1xyXG4gICAgICAgIHRoaXMubGFiZWwgPSBmaWVsZEluZm8ubGFiZWw7XHJcbiAgICAgICAgdGhpcy5maWVsZFNpemUgPSBmaWVsZEluZm8uZmllbGRTaXplO1xyXG4gICAgICAgIHRoaXMubG9va3VwQXBpUGF0aCA9IGZpZWxkSW5mby5sb29rdXBBcGlQYXRoID8gZmllbGRJbmZvLmxvb2t1cEFwaVBhdGggOiBmaWVsZEluZm8ucHJvcGVydHk7XHJcbiAgICAgICAgdGhpcy5yb3cgPSBmaWVsZEluZm8ucm93O1xyXG4gICAgICAgIHRoaXMuc3VwcG9ydGVkVHlwZXMgPSBmaWVsZEluZm8uc3VwcG9ydGVkVHlwZXM7XHJcbiAgICAgICAgdGhpcy5saXN0T3B0aW9ucyA9IGZpZWxkSW5mby5saXN0T3B0aW9ucztcclxuICAgICAgICB0aGlzLnBhdGhQYXJhbXMgPSBmaWVsZEluZm8ucGF0aFBhcmFtcztcclxuICAgICAgICB0aGlzLnZpZXdvbmx5ID0gZmllbGRJbmZvLnZpZXdvbmx5O1xyXG4gICAgICAgIHRoaXMubXVsdGkgPSBmaWVsZEluZm8ubXVsdGk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVPbmx5ID0gZmllbGRJbmZvLnVwZGF0ZU9ubHk7XHJcbiAgICAgICAgdGhpcy5pbmNsdWRlQWxsT3B0aW9uID0gZmllbGRJbmZvLmluY2x1ZGVBbGxPcHRpb247XHJcbiAgICAgICAgdGhpcy5kZWZhdWx0TGlzdE9wdGlvbiA9IGZpZWxkSW5mby5kZWZhdWx0TGlzdE9wdGlvbjtcclxuICAgICAgICB0aGlzLmFjY2VwdE5ld0l0ZW0gPSBmaWVsZEluZm8uYWNjZXB0TmV3SXRlbTtcclxuICAgICAgICB0aGlzLmNhc2NhZGVkQnkgPSBmaWVsZEluZm8uY2FzY2FkZWRCeTtcclxuICAgICAgICB0aGlzLmNhc2NhZGVkQnlQcm9wZXJ0eSA9IGZpZWxkSW5mby5jYXNjYWRlZEJ5UHJvcGVydHkgPyBmaWVsZEluZm8uY2FzY2FkZWRCeVByb3BlcnR5IDogIGZpZWxkSW5mby5jYXNjYWRlZEJ5O1xyXG4gICAgICAgIHRoaXMuY3VycmVuY3kgPSBmaWVsZEluZm8uY3VycmVuY3k7XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGUgPSBmaWVsZEluZm8udHJhbnNsYXRlO1xyXG4gICAgICAgIHRoaXMuYWR2YW5jZWRGaWx0ZXIgPSBmaWVsZEluZm8uYWR2YW5jZWRGaWx0ZXI7XHJcbiAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IGZpZWxkSW5mby5wbGFjZWhvbGRlcjtcclxuICAgICAgICB0aGlzLnZhbGlkYXRvcnMgPSBmaWVsZEluZm8udmFsaWRhdG9ycztcclxuICAgICAgICB0aGlzLmZpbHRlck9wZXJhdG9yID0gZmllbGRJbmZvLmZpbHRlck9wZXJhdG9yO1xyXG4gICAgICAgIHRoaXMucGF0dGVybiA9IGZpZWxkSW5mby5wYXR0ZXJuO1xyXG4gICAgICAgIHRoaXMud29ya2Zsb3dNYW5hZ2VkID0gZmllbGRJbmZvLndvcmtmbG93TWFuYWdlZDtcclxuICAgICAgICB0aGlzLndvcmtmbG93Q2FzY2FkaW5nRmllbGQgPSBmaWVsZEluZm8ud29ya2Zsb3dDYXNjYWRpbmdGaWVsZDtcclxuICAgICAgICB0aGlzLnZpc2libGUgPSBmaWVsZEluZm8udmlzaWJsZSA9PT0gdW5kZWZpbmVkIHx8IGZpZWxkSW5mby52aXNpYmxlO1xyXG4gICAgICAgIHRoaXMuYXR0YWNobWVudFR5cGUgPSBmaWVsZEluZm8uYXR0YWNobWVudFR5cGU7XHJcbiAgICAgICAgdGhpcy5sb29rdXBGaWx0ZXJMaXN0ID0gZmllbGRJbmZvLmxvb2t1cEZpbHRlckxpc3Q7XHJcbiAgICAgICAgdGhpcy5leHRyYUxvb2t1cHNDb2x1bW5zID0gZmllbGRJbmZvLmV4dHJhTG9va3Vwc0NvbHVtbnM7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5Q29sdW1uID0gZmllbGRJbmZvLmRpc3BsYXlDb2x1bW47XHJcbiAgICAgICAgdGhpcy50ZXh0Rm9ybWF0ID0gZmllbGRJbmZvLnRleHRGb3JtYXQ7XHJcbiAgICAgICAgdGhpcy5idXR0b25UeXBlID0gZmllbGRJbmZvLmJ1dHRvblR5cGU7XHJcbiAgICAgICAgdGhpcy5oaWRlRmlsZXMgPSBmaWVsZEluZm8uaGlkZUZpbGVzO1xyXG4gICAgICAgIHRoaXMuYmVoYXZpb3JhbE5hbWUgPSBmaWVsZEluZm8uYmVoYXZpb3JhbE5hbWU7XHJcbiAgICAgICAgdGhpcy5mbGF0dGVuQnlTdWJBdHRyaWJ1dGUgPSBmaWVsZEluZm8uZmxhdHRlbkJ5U3ViQXR0cmlidXRlO1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gZmllbGRJbmZvLmRlZmF1bHRWYWx1ZTtcclxuICAgICAgICB0aGlzLnNlYXJjaEF0dHJpYnV0ZSA9IGZpZWxkSW5mby5zZWFyY2hBdHRyaWJ1dGUgfHwgdGhpcy5wcm9wZXJ0eTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlcyA9IGZpZWxkSW5mby52YWxpZGF0aW9uTWVzc2FnZXM7XHJcbiAgICAgICAgdGhpcy5oaWRlTGFiZWwgPSBmaWVsZEluZm8uaGlkZUxhYmVsO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoT3BlcmF0b3IgPSBmaWVsZEluZm8uc2VhcmNoT3BlcmF0b3IgfHwgJ0VRVUFMUyc7XHJcbiAgICAgICAgdGhpcy5zaG93U2VhcmNoSWNvbiA9IGZpZWxkSW5mby5zaG93U2VhcmNoSWNvbjtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -35,7 +35,7 @@ export class ActionConfirmationComponent {
|
|
|
35
35
|
this.dialogRef.close();
|
|
36
36
|
}
|
|
37
37
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionConfirmationComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ActionConfirmationComponent, isStandalone: true, selector: "app-action-confirmation", host: { listeners: { "window:keyup.esc": "onKeyUp()" } }, ngImport: i0, template: "<div class=\"confirm-dialog\" [dir]=\"currentDirection\">\r\n\r\n <div class=\"header-row\">\r\n <h2 class=\"title\">{{ titleMsg | translate }}</h2>\r\n <button mat-icon-button class=\"close-btn\" (click)=\"cancel()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <p class=\"message\">\r\n {{ subMsg | translate }}\r\n </p>\r\n\r\n <div class=\"actions\">\r\n <button\r\n mat-stroked-button\r\n class=\"btn-none-background-primary btn-cancel\"\r\n (click)=\"cancel()\"\r\n id=\"rejectActionLabel\">\r\n {{ rejectActionLabel | translate }}\r\n </button>\r\n\r\n <button\r\n mat-flat-button\r\n class=\"btn-background-primary btn-confirm\"\r\n (click)=\"commentAndClose()\"\r\n id=\"acceptActionLabel\">\r\n {{ acceptActionLabel | translate }}\r\n </button>\r\n </div>\r\n\r\n</div>\r\n", styles: [".confirm-dialog{padding:32px;min-width:500px;box-sizing:border-box}.header-row{display:flex;justify-content:space-between;align-items:center}.title{margin:0;font-size:20px;font-weight:700;color:#222}.close-btn mat-icon{font-size:24px;color:#333}.message{margin-top:20px;font-size:16px;color:#333}.actions{display:flex;justify-content:flex-end;gap:16px;margin-top:40px}.btn-cancel{width:121px!important;margin:0!important}.btn-confirm{width:
|
|
38
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ActionConfirmationComponent, isStandalone: true, selector: "app-action-confirmation", host: { listeners: { "window:keyup.esc": "onKeyUp()" } }, ngImport: i0, template: "<div class=\"confirm-dialog\" [dir]=\"currentDirection\">\r\n\r\n <div class=\"header-row\">\r\n <h2 class=\"title\">{{ titleMsg | translate }}</h2>\r\n <button mat-icon-button class=\"close-btn\" (click)=\"cancel()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <p class=\"message\">\r\n {{ subMsg | translate }}\r\n </p>\r\n\r\n <div class=\"actions\">\r\n <button\r\n mat-stroked-button\r\n class=\"btn-none-background-primary btn-cancel\"\r\n (click)=\"cancel()\"\r\n id=\"rejectActionLabel\">\r\n {{ rejectActionLabel | translate }}\r\n </button>\r\n\r\n <button\r\n mat-flat-button\r\n class=\"btn-background-primary btn-confirm\"\r\n (click)=\"commentAndClose()\"\r\n id=\"acceptActionLabel\">\r\n {{ acceptActionLabel | translate }}\r\n </button>\r\n </div>\r\n\r\n</div>\r\n", styles: [".confirm-dialog{padding:32px;min-width:500px;box-sizing:border-box}.header-row{display:flex;justify-content:space-between;align-items:center}.title{margin:0;font-size:20px;font-weight:700;color:#222}.close-btn mat-icon{font-size:24px;color:#333}.message{margin-top:20px;font-size:16px;color:#333}.actions{display:flex;justify-content:flex-end;gap:16px;margin-top:40px}.btn-cancel{width:121px!important;margin:0!important}.btn-confirm{width:auto!important;margin:0!important}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
39
39
|
}
|
|
40
40
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionConfirmationComponent, decorators: [{
|
|
41
41
|
type: Component,
|
|
@@ -44,7 +44,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
44
44
|
MatButton,
|
|
45
45
|
MatIconButton,
|
|
46
46
|
MatIcon
|
|
47
|
-
], template: "<div class=\"confirm-dialog\" [dir]=\"currentDirection\">\r\n\r\n <div class=\"header-row\">\r\n <h2 class=\"title\">{{ titleMsg | translate }}</h2>\r\n <button mat-icon-button class=\"close-btn\" (click)=\"cancel()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <p class=\"message\">\r\n {{ subMsg | translate }}\r\n </p>\r\n\r\n <div class=\"actions\">\r\n <button\r\n mat-stroked-button\r\n class=\"btn-none-background-primary btn-cancel\"\r\n (click)=\"cancel()\"\r\n id=\"rejectActionLabel\">\r\n {{ rejectActionLabel | translate }}\r\n </button>\r\n\r\n <button\r\n mat-flat-button\r\n class=\"btn-background-primary btn-confirm\"\r\n (click)=\"commentAndClose()\"\r\n id=\"acceptActionLabel\">\r\n {{ acceptActionLabel | translate }}\r\n </button>\r\n </div>\r\n\r\n</div>\r\n", styles: [".confirm-dialog{padding:32px;min-width:500px;box-sizing:border-box}.header-row{display:flex;justify-content:space-between;align-items:center}.title{margin:0;font-size:20px;font-weight:700;color:#222}.close-btn mat-icon{font-size:24px;color:#333}.message{margin-top:20px;font-size:16px;color:#333}.actions{display:flex;justify-content:flex-end;gap:16px;margin-top:40px}.btn-cancel{width:121px!important;margin:0!important}.btn-confirm{width:
|
|
47
|
+
], template: "<div class=\"confirm-dialog\" [dir]=\"currentDirection\">\r\n\r\n <div class=\"header-row\">\r\n <h2 class=\"title\">{{ titleMsg | translate }}</h2>\r\n <button mat-icon-button class=\"close-btn\" (click)=\"cancel()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <p class=\"message\">\r\n {{ subMsg | translate }}\r\n </p>\r\n\r\n <div class=\"actions\">\r\n <button\r\n mat-stroked-button\r\n class=\"btn-none-background-primary btn-cancel\"\r\n (click)=\"cancel()\"\r\n id=\"rejectActionLabel\">\r\n {{ rejectActionLabel | translate }}\r\n </button>\r\n\r\n <button\r\n mat-flat-button\r\n class=\"btn-background-primary btn-confirm\"\r\n (click)=\"commentAndClose()\"\r\n id=\"acceptActionLabel\">\r\n {{ acceptActionLabel | translate }}\r\n </button>\r\n </div>\r\n\r\n</div>\r\n", styles: [".confirm-dialog{padding:32px;min-width:500px;box-sizing:border-box}.header-row{display:flex;justify-content:space-between;align-items:center}.title{margin:0;font-size:20px;font-weight:700;color:#222}.close-btn mat-icon{font-size:24px;color:#333}.message{margin-top:20px;font-size:16px;color:#333}.actions{display:flex;justify-content:flex-end;gap:16px;margin-top:40px}.btn-cancel{width:121px!important;margin:0!important}.btn-confirm{width:auto!important;margin:0!important}\n"] }]
|
|
48
48
|
}], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
49
49
|
type: Inject,
|
|
50
50
|
args: [MAT_DIALOG_DATA]
|
|
@@ -52,4 +52,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
52
52
|
type: HostListener,
|
|
53
53
|
args: ['window:keyup.esc']
|
|
54
54
|
}] } });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWNvbmZpcm1hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZvaWNlcS91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2FjdGlvbi1jb25maXJtYXRpb24vYWN0aW9uLWNvbmZpcm1hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZvaWNlcS91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2FjdGlvbi1jb25maXJtYXRpb24vYWN0aW9uLWNvbmZpcm1hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFlLFlBQVksRUFBRSxNQUFNLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUNMLGVBQWUsRUFLaEIsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFjL0MsTUFBTSxPQUFPLDJCQUEyQjtJQU10QyxZQUFtQixTQUFvRCxFQUMzQixJQUFTO1FBRGxDLGNBQVMsR0FBVCxTQUFTLENBQTJDO1FBQzNCLFNBQUksR0FBSixJQUFJLENBQUs7UUFOckQsc0JBQWlCLEdBQVcsRUFBRSxDQUFBO1FBQzlCLHNCQUFpQixHQUFXLEVBQUUsQ0FBQTtRQUM5QixXQUFNLEdBQVksRUFBRSxDQUFDO1FBQ3JCLGFBQVEsR0FBWSxFQUFFLENBQUM7UUFDdkIscUJBQWdCLEdBQWtCLEtBQUssQ0FBQztRQUd0QyxTQUFTLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUNoQyxDQUFDO0lBQ2lDLE9BQU87UUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixJQUFJLFFBQVEsQ0FBRTtRQUNsRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxRQUFRLENBQUM7UUFDakUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLGdCQUFnQixHQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQy9DLENBQUM7SUFHRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFL0IsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQzsrR0E5QlUsMkJBQTJCLDhDQU9sQixlQUFlO21HQVB4QiwyQkFBMkIsNklDekJ4QywwM0JBZ0NBLHFoQkRmSSxlQUFlLDRGQUNmLFNBQVMsaUxBQ1QsYUFBYSw2RkFDYixPQUFPOzs0RkFLRSwyQkFBMkI7a0JBWnZDLFNBQVM7K0JBQ0UseUJBQXlCLGNBQ3ZCLElBQUksV0FDUDt3QkFDUCxlQUFlO3dCQUNmLFNBQVM7d0JBQ1QsYUFBYTt3QkFDYixPQUFPO3FCQUNSOzswQkFXWSxNQUFNOzJCQUFDLGVBQWU7eUNBR0QsT0FBTztzQkFBeEMsWUFBWTt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIE1BVF9ESUFMT0dfREFUQSxcclxuICBNYXREaWFsb2dBY3Rpb25zLFxyXG4gIE1hdERpYWxvZ0NvbnRlbnQsXHJcbiAgTWF0RGlhbG9nUmVmLFxyXG4gIE1hdERpYWxvZ1RpdGxlXHJcbn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQge01hdEZvcm1GaWVsZH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcclxuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcbmltcG9ydCB7TWF0QnV0dG9uLCBNYXRJY29uQnV0dG9ufSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uXCI7XHJcbmltcG9ydCB7TWF0SWNvbn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWFjdGlvbi1jb25maXJtYXRpb24nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uLFxyXG4gICAgTWF0SWNvbkJ1dHRvbixcclxuICAgIE1hdEljb25cclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb24tY29uZmlybWF0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYWN0aW9uLWNvbmZpcm1hdGlvbi5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWN0aW9uQ29uZmlybWF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBhY2NlcHRBY3Rpb25MYWJlbCA6IHN0cmluZyA9JydcclxuICByZWplY3RBY3Rpb25MYWJlbCA6IHN0cmluZyA9JydcclxuICBzdWJNc2cgOiBzdHJpbmcgPSAnJztcclxuICB0aXRsZU1zZyA6IHN0cmluZyA9ICcnO1xyXG4gIGN1cnJlbnREaXJlY3Rpb246ICdsdHInIHwgJ3J0bCcgPSAnbHRyJztcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8QWN0aW9uQ29uZmlybWF0aW9uQ29tcG9uZW50PixcclxuICAgICAgICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSkge1xyXG4gICAgZGlhbG9nUmVmLmRpc2FibGVDbG9zZSA9IHRydWU7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXl1cC5lc2MnKSBvbktleVVwKCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFjY2VwdEFjdGlvbkxhYmVsID0gdGhpcy5kYXRhLmFjY2VwdEFjdGlvbkxhYmVsIHx8ICdhY2NlcHQnIDtcclxuICAgIHRoaXMucmVqZWN0QWN0aW9uTGFiZWwgPSB0aGlzLmRhdGEucmVqZWN0QWN0aW9uTGFiZWwgfHwgJ3JlamVjdCc7XHJcbiAgICB0aGlzLnN1Yk1zZyA9IHRoaXMuZGF0YS53YXJuaW5nTXNnIHx8ICcnO1xyXG4gICAgdGhpcy50aXRsZU1zZyA9IHRoaXMuZGF0YS5jb25maXJtTXNnIHx8ICcnO1xyXG4gICAgdGhpcy5jdXJyZW50RGlyZWN0aW9uICA9IHRoaXMuZGF0YS5kaXJlY3Rpb247XHJcbiAgfVxyXG5cclxuXHJcbiAgY29tbWVudEFuZENsb3NlKCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoJ2FjY2VwdCcpO1xyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsKCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb25maXJtLWRpYWxvZ1wiIFtkaXJdPVwiY3VycmVudERpcmVjdGlvblwiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXJvd1wiPlxyXG4gICAgPGgyIGNsYXNzPVwidGl0bGVcIj57eyB0aXRsZU1zZyB8IHRyYW5zbGF0ZSB9fTwvaDI+XHJcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cImNsb3NlLWJ0blwiIChjbGljayk9XCJjYW5jZWwoKVwiPlxyXG4gICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxwIGNsYXNzPVwibWVzc2FnZVwiPlxyXG4gICAge3sgc3ViTXNnIHwgdHJhbnNsYXRlIH19XHJcbiAgPC9wPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBtYXQtc3Ryb2tlZC1idXR0b25cclxuICAgICAgY2xhc3M9XCJidG4tbm9uZS1iYWNrZ3JvdW5kLXByaW1hcnkgYnRuLWNhbmNlbFwiXHJcbiAgICAgIChjbGljayk9XCJjYW5jZWwoKVwiXHJcbiAgICAgIGlkPVwicmVqZWN0QWN0aW9uTGFiZWxcIj5cclxuICAgICAge3sgcmVqZWN0QWN0aW9uTGFiZWwgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxidXR0b25cclxuICAgICAgbWF0LWZsYXQtYnV0dG9uXHJcbiAgICAgIGNsYXNzPVwiYnRuLWJhY2tncm91bmQtcHJpbWFyeSBidG4tY29uZmlybVwiXHJcbiAgICAgIChjbGljayk9XCJjb21tZW50QW5kQ2xvc2UoKVwiXHJcbiAgICAgIGlkPVwiYWNjZXB0QWN0aW9uTGFiZWxcIj5cclxuICAgICAge3sgYWNjZXB0QWN0aW9uTGFiZWwgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -460,7 +460,7 @@ export class ActivityReportFormComponent {
|
|
|
460
460
|
return !groupByValues.some(v => value.includes(v) && value.length >= v.length);
|
|
461
461
|
}
|
|
462
462
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActivityReportFormComponent, deps: [{ token: i1.TranslateService }, { token: i2.BackendService }, { token: i3.ActivatedRoute }, { token: i0.Injector }, { token: i3.Router }, { token: i3.ActivatedRoute }, { token: i4.MatDialog }, { token: i5.Directionality }, { token: i6.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
463
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ActivityReportFormComponent, isStandalone: true, selector: "app-report-form", inputs: { showDetails: "showDetails", showExtractButton: "showExtractButton", columns: "columns", actionRequestCallback: "actionRequestCallback", enrichDrillDownReportRequest: "enrichDrillDownReportRequest", enrichHyperLinkReportRequest: "enrichHyperLinkReportRequest", enrichJuniorReportRequest: "enrichJuniorReportRequest" }, outputs: { userAction: "userAction" }, ngImport: i0, template: "<div class=\"page-container\">\r\n\r\n <div class=\"row row-center-start mb-10px full-width\">\r\n <app-title-bar [pageTitle]=\"getTitle()\" [newAction]=\"false\"></app-title-bar>\r\n <mat-icon *ngIf=\"pageInfo?.hasHint\"\r\n [matTooltip]=\"pageInfo.labelsSection + '.hint' | translate\"\r\n matTooltipPosition=\"right\"\r\n color=\"primary\"\r\n class=\"help-icon\"\r\n matTooltipClass=\"custom-tooltip\">\r\n help_outline\r\n </mat-icon>\r\n </div>\r\n\r\n <app-base-form-canvas\r\n [pageInfo]=\"pageInfo\"\r\n [fields]=\"fields\"\r\n [editable]=\"isEditable\"\r\n [errors]=\"errors\"\r\n [item]=\"reportForm?.value || {}\"\r\n (formUpdated)=\"updateForm($event)\">\r\n </app-base-form-canvas>\r\n\r\n <div class=\"row main-form-canvas mt-3vh\">\r\n <div class=\"column flex-49\">\r\n <div class=\"row row-center-start\">\r\n <button *ngIf=\"activeLevel === 1\" color=\"primary\" mat-flat-button (click)=\"doAction(x)\"\r\n [disabled]=\"!isValidForm()\" class=\"action-button\" id=\"activity-generate-btn\">\r\n {{ 'REPORTS.generate' | translate }}\r\n </button>\r\n <button mat-raised-button [matMenuTriggerFor]=\"menu\" [disabled]=\"getIsEmptyList()\"\r\n color=\"primary\" class=\"btn-none-background-primary action-button\" id=\"activity-extract-trigger\">\r\n {{ 'extract' | translate }}\r\n <mat-icon class=\"expand_more actionButton__expand\">expand_more</mat-icon>\r\n </button>\r\n <button mat-flat-button (click)=\"clear()\"\r\n [disabled]=\"isFormEmpty() || activeLevel > 1\"\r\n class=\"action-button\" id=\"activity-clear-btn\">\r\n {{ 'REPORTS.clear' | translate }}\r\n </button>\r\n <button *ngIf=\"activeLevel === 1 && drillDownEnabled()\" color=\"warn\" mat-flat-button\r\n (click)=\"drillDown()\" class=\"action-button\" id=\"activity-drilldown-btn\">\r\n {{ drillDownLabel() | translate }}\r\n </button>\r\n <button *ngIf=\"activeLevel > 1 && !(isComparisonReport && activeLevel == 2)\" color=\"warn\"\r\n mat-flat-button (click)=\"goUp()\" class=\"action-button\" id=\"activity-up-btn\">\r\n {{ 'REPORTS.up' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"column flex-49\"></div>\r\n </div>\r\n\r\n <!-- Base tables -->\r\n <ng-container *ngIf=\"activeLevel === 1\">\r\n <div class=\"row main-form-canvas mt-3vh\">\r\n <div class=\"column flex-100\">\r\n <app-base-table [pageInfo]=\"pageInfo\" [columns]=\"columnsDefinition\" [enforceRefresh]=\"reloadData\"\r\n id=\"parent\" [reportRequest]=\"reportRequest\"\r\n (userAction)=\"emitUserAction($event)\"\r\n (hyperLinkAction)=\"emitHyperLinkAction($event)\">\r\n </app-base-table>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"activeLevel === 2\">\r\n <div class=\"row main-form-canvas mt-3vh\">\r\n <div class=\"column flex-100\">\r\n <app-base-table [pageInfo]=\"drillDownPageInfo\" [columns]=\"drillDownColumns\" id=\"child\"\r\n [reportRequest]=\"reportRequest\"\r\n (userAction)=\"emitUserAction($event)\"\r\n (hyperLinkAction)=\"emitHyperLinkAction($event)\">\r\n </app-base-table>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"activeLevel === 3\">\r\n <div class=\"row main-form-canvas mt-3vh\">\r\n <div class=\"column flex-100\">\r\n <app-base-table [pageInfo]=\"drillDownPageInfo\" [columns]=\"drillDownColumns\" id=\"junior\"\r\n [reportRequest]=\"reportRequest\"\r\n (userAction)=\"emitUserAction($event)\"\r\n (hyperLinkAction)=\"emitHyperLinkAction($event)\">\r\n </app-base-table>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"activeLevel === 4\">\r\n <div class=\"row main-form-canvas mt-3vh\">\r\n <div class=\"column flex-100\">\r\n <app-base-table [pageInfo]=\"drillDownPageInfo\" [columns]=\"drillDownColumns\"\r\n [reportRequest]=\"reportRequest\"\r\n (userAction)=\"emitUserAction($event)\"\r\n (hyperLinkAction)=\"emitHyperLinkAction($event)\">\r\n </app-base-table>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n</div>\r\n\r\n<!-- Menu -->\r\n<mat-menu #menu=\"matMenu\">\r\n <button type=\"button\" mat-menu-item *ngFor=\"let type of types\" (click)=\"extractReport(type)\" [attr.id]=\"'activity-extract-item-' + type\">\r\n {{ type }}\r\n </button>\r\n</mat-menu>\r\n", styles: [".page-container{display:flex;flex-direction:column;width:100%}.row{display:flex;flex-direction:row;gap:10px;flex-wrap:wrap;width:100%}.column{display:flex;flex-direction:column}.flex-49{flex:0 0 49%}.flex-100{flex:0 0 100%}.row-center-start{align-items:center;justify-content:flex-start}.mt-3vh{margin-top:3vh}.mb-10px{margin-bottom:10px}.action-button{font-weight:700;min-width:140px;max-width:200px;margin:0 10px}.help-icon{cursor:pointer;margin-left:10px}@media (max-width: 960px){.flex-49,.flex-100{flex:1 1 100%}}@media (max-width: 600px){.row{flex-direction:column;align-items:center}.action-button{width:100%;max-width:300px;margin:5px 0}.help-icon{margin-left:0;margin-top:5px}}\n"], dependencies: [{ kind: "component", type: TitleBarComponent, selector: "app-title-bar", inputs: ["pageTitle", "showExtractButton", "totalElements", "titleMode", "subTitle", "statusDesc", "newAction", "extraButton", "showDetails", "showImport", "showButton", "extraData", "titleCorporateAdmin", "hideBackButton", "buttons"], outputs: ["newActionClicked", "extraButtonClicked", "extractReport", "buttonClicked"] }, { kind: "component", type: BaseFormCanvasComponent, selector: "app-base-form-canvas", inputs: ["pageInfo", "currency", "fields", "errors", "workflowEditableFields", "isWorkflowEditableManaged", "supportingAttributes", "editable", "emitOnValueChanges", "item", "equationSuggestedFields", "currentEquationValue"], outputs: ["attachmentEmitter", "actionEmitter", "formUpdated", "hyperTextEvent", "currentEquationValueChange"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: BaseTableComponent, selector: "app-base-table", inputs: ["filterFields", "noDataFoundIcon", "noDataFoundTitle", "noDataFoundSubtitle", "pageInfo", "enablePagination", "data", "listAction", "columns", "filters", "pathParam", "extraButton", "enforceRefresh", "isPending", "trigger", "reportRequest", "separateEndpointData", "manageablePages", "totalPagesCount", "currentPageIndex", "customizedData"], outputs: ["pageChange", "userAction", "hyperLinkAction", "extraAction", "selectedColumn", "listActionClicked", "showDialog", "clickRoutePage"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
|
|
463
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ActivityReportFormComponent, isStandalone: true, selector: "app-report-form", inputs: { showDetails: "showDetails", showExtractButton: "showExtractButton", columns: "columns", actionRequestCallback: "actionRequestCallback", enrichDrillDownReportRequest: "enrichDrillDownReportRequest", enrichHyperLinkReportRequest: "enrichHyperLinkReportRequest", enrichJuniorReportRequest: "enrichJuniorReportRequest" }, outputs: { userAction: "userAction" }, ngImport: i0, template: "<div class=\"page-container\">\r\n\r\n <div class=\"row row-center-start mb-10px full-width\">\r\n <app-title-bar [pageTitle]=\"getTitle()\" [newAction]=\"false\"></app-title-bar>\r\n <mat-icon *ngIf=\"pageInfo?.hasHint\"\r\n [matTooltip]=\"pageInfo.labelsSection + '.hint' | translate\"\r\n matTooltipPosition=\"right\"\r\n color=\"primary\"\r\n class=\"help-icon\"\r\n matTooltipClass=\"custom-tooltip\">\r\n help_outline\r\n </mat-icon>\r\n </div>\r\n\r\n <app-base-form-canvas\r\n [pageInfo]=\"pageInfo\"\r\n [fields]=\"fields\"\r\n [editable]=\"isEditable\"\r\n [errors]=\"errors\"\r\n [item]=\"reportForm?.value || {}\"\r\n (formUpdated)=\"updateForm($event)\">\r\n </app-base-form-canvas>\r\n\r\n <div class=\"row main-form-canvas mt-3vh\">\r\n <div class=\"column flex-49\">\r\n <div class=\"row row-center-start\">\r\n <button *ngIf=\"activeLevel === 1\" color=\"primary\" mat-flat-button (click)=\"doAction(x)\"\r\n [disabled]=\"!isValidForm()\" class=\"action-button\" id=\"activity-generate-btn\">\r\n {{ 'REPORTS.generate' | translate }}\r\n </button>\r\n <button mat-raised-button [matMenuTriggerFor]=\"menu\" [disabled]=\"getIsEmptyList()\"\r\n color=\"primary\" class=\"btn-none-background-primary action-button\" id=\"activity-extract-trigger\">\r\n {{ 'extract' | translate }}\r\n <mat-icon class=\"expand_more actionButton__expand\">expand_more</mat-icon>\r\n </button>\r\n <button mat-flat-button (click)=\"clear()\"\r\n [disabled]=\"isFormEmpty() || activeLevel > 1\"\r\n class=\"action-button\" id=\"activity-clear-btn\">\r\n {{ 'REPORTS.clear' | translate }}\r\n </button>\r\n <button *ngIf=\"activeLevel === 1 && drillDownEnabled()\" color=\"warn\" mat-flat-button\r\n (click)=\"drillDown()\" class=\"action-button\" id=\"activity-drilldown-btn\">\r\n {{ drillDownLabel() | translate }}\r\n </button>\r\n <button *ngIf=\"activeLevel > 1 && !(isComparisonReport && activeLevel == 2)\" color=\"warn\"\r\n mat-flat-button (click)=\"goUp()\" class=\"action-button\" id=\"activity-up-btn\">\r\n {{ 'REPORTS.up' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"column flex-49\"></div>\r\n </div>\r\n\r\n <!-- Base tables -->\r\n <ng-container *ngIf=\"activeLevel === 1\">\r\n <div class=\"row main-form-canvas mt-3vh\">\r\n <div class=\"column flex-100\">\r\n <app-base-table [pageInfo]=\"pageInfo\" [columns]=\"columnsDefinition\" [enforceRefresh]=\"reloadData\"\r\n id=\"parent\" [reportRequest]=\"reportRequest\"\r\n (userAction)=\"emitUserAction($event)\"\r\n (hyperLinkAction)=\"emitHyperLinkAction($event)\">\r\n </app-base-table>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"activeLevel === 2\">\r\n <div class=\"row main-form-canvas mt-3vh\">\r\n <div class=\"column flex-100\">\r\n <app-base-table [pageInfo]=\"drillDownPageInfo\" [columns]=\"drillDownColumns\" id=\"child\"\r\n [reportRequest]=\"reportRequest\"\r\n (userAction)=\"emitUserAction($event)\"\r\n (hyperLinkAction)=\"emitHyperLinkAction($event)\">\r\n </app-base-table>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"activeLevel === 3\">\r\n <div class=\"row main-form-canvas mt-3vh\">\r\n <div class=\"column flex-100\">\r\n <app-base-table [pageInfo]=\"drillDownPageInfo\" [columns]=\"drillDownColumns\" id=\"junior\"\r\n [reportRequest]=\"reportRequest\"\r\n (userAction)=\"emitUserAction($event)\"\r\n (hyperLinkAction)=\"emitHyperLinkAction($event)\">\r\n </app-base-table>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"activeLevel === 4\">\r\n <div class=\"row main-form-canvas mt-3vh\">\r\n <div class=\"column flex-100\">\r\n <app-base-table [pageInfo]=\"drillDownPageInfo\" [columns]=\"drillDownColumns\"\r\n [reportRequest]=\"reportRequest\"\r\n (userAction)=\"emitUserAction($event)\"\r\n (hyperLinkAction)=\"emitHyperLinkAction($event)\">\r\n </app-base-table>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n</div>\r\n\r\n<!-- Menu -->\r\n<mat-menu #menu=\"matMenu\">\r\n <button type=\"button\" mat-menu-item *ngFor=\"let type of types\" (click)=\"extractReport(type)\" [attr.id]=\"'activity-extract-item-' + type\">\r\n {{ type }}\r\n </button>\r\n</mat-menu>\r\n", styles: [".page-container{display:flex;flex-direction:column;width:100%}.row{display:flex;flex-direction:row;gap:10px;flex-wrap:wrap;width:100%}.column{display:flex;flex-direction:column}.flex-49{flex:0 0 49%}.flex-100{flex:0 0 100%}.row-center-start{align-items:center;justify-content:flex-start}.mt-3vh{margin-top:3vh}.mb-10px{margin-bottom:10px}.action-button{font-weight:700;min-width:140px;max-width:200px;margin:0 10px}.help-icon{cursor:pointer;margin-left:10px}@media (max-width: 960px){.flex-49,.flex-100{flex:1 1 100%}}@media (max-width: 600px){.row{flex-direction:column;align-items:center}.action-button{width:100%;max-width:300px;margin:5px 0}.help-icon{margin-left:0;margin-top:5px}}\n"], dependencies: [{ kind: "component", type: TitleBarComponent, selector: "app-title-bar", inputs: ["pageTitle", "showExtractButton", "totalElements", "titleMode", "subTitle", "statusDesc", "newAction", "extraButton", "showDetails", "showImport", "showButton", "extraData", "titleCorporateAdmin", "hideBackButton", "buttons", "buttonsDisplayMode"], outputs: ["newActionClicked", "extraButtonClicked", "extractReport", "buttonClicked"] }, { kind: "component", type: BaseFormCanvasComponent, selector: "app-base-form-canvas", inputs: ["pageInfo", "currency", "fields", "errors", "workflowEditableFields", "isWorkflowEditableManaged", "supportingAttributes", "editable", "emitOnValueChanges", "item", "equationSuggestedFields", "currentEquationValue"], outputs: ["attachmentEmitter", "actionEmitter", "formUpdated", "hyperTextEvent", "currentEquationValueChange"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: BaseTableComponent, selector: "app-base-table", inputs: ["filterFields", "noDataFoundIcon", "noDataFoundTitle", "noDataFoundSubtitle", "pageInfo", "enablePagination", "data", "listAction", "columns", "filters", "pathParam", "extraButton", "enforceRefresh", "isPending", "trigger", "reportRequest", "separateEndpointData", "manageablePages", "totalPagesCount", "currentPageIndex", "customizedData"], outputs: ["pageChange", "userAction", "hyperLinkAction", "extraAction", "selectedColumn", "listActionClicked", "showDialog", "clickRoutePage"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
|
|
464
464
|
}
|
|
465
465
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActivityReportFormComponent, decorators: [{
|
|
466
466
|
type: Component,
|
|
@@ -496,4 +496,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
496
496
|
}], userAction: [{
|
|
497
497
|
type: Output
|
|
498
498
|
}] } });
|
|
499
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktcmVwb3J0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52b2ljZXEvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpdml0eS1yZXBvcnQtZm9ybS9hY3Rpdml0eS1yZXBvcnQtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZvaWNlcS91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2FjdGl2aXR5LXJlcG9ydC1mb3JtL2FjdGl2aXR5LXJlcG9ydC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLEtBQUssRUFFTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGVBQWUsRUFBVyxNQUFNLDRCQUE0QixDQUFDO0FBR3JFLE9BQU8sRUFBQyxlQUFlLEVBQW1CLE1BQU0scUJBQXFCLENBQUM7QUFJdEUsT0FBTyxFQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDNUUsT0FBTyxFQUFDLFNBQVMsRUFBRSxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN0RSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sK0JBQStC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QWlCO3dCQUNqQix1QkFBdUI7d0JBQ3ZCLE9BQU87d0JBQ1AsV0FBVzt3QkFDWCxPQUFPO3dCQUNQLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsSUFBSTt3QkFDSixhQUFhO3dCQUNiLFNBQVM7d0JBQ1QsVUFBVTtxQkFDWDt1U0FNRCxXQUFXO3NCQURWLEtBQUs7Z0JBSU4saUJBQWlCO3NCQURoQixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFLRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csNEJBQTRCO3NCQUFwQyxLQUFLO2dCQUNHLDRCQUE0QjtzQkFBcEMsS0FBSztnQkFDRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBR04sVUFBVTtzQkFEVCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtGaWVsZEluZm99IGZyb20gXCIuLi8uLi9iYXNlLW1vZGVsL2ZpZWxkLWluZm9cIjtcclxuaW1wb3J0IHtFTVBUWV9QQUdFX0lORk8sIFBhZ2VJbmZvfSBmcm9tIFwiLi4vLi4vYmFzZS1tb2RlbC9wYWdlLWluZm9cIjtcclxuaW1wb3J0IHtUYWJsZUNvbHVtbn0gZnJvbSBcIi4uLy4uL2Jhc2UtbW9kZWwvdGFibGUtY29sdW1uLmludGVyZmFjZVwiO1xyXG5pbXBvcnQge0ZpZWxkTWVzc2FnZX0gZnJvbSBcIi4uLy4uL2Jhc2UtbW9kZWwvYXBpLXJlc3BvbnNlXCI7XHJcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQge0JhY2tlbmRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvYmFja2VuZC1zZXJ2aWNlXCI7XHJcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQge0Zvcm1CdWlsZGVyLCBGb3JtR3JvdXB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge2Zvcm1hdERhdGUsIE5nRm9yT2YsIE5nSWZ9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtNYXRNZW51LCBNYXRNZW51SXRlbSwgTWF0TWVudVRyaWdnZXJ9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9tZW51XCI7XHJcbmltcG9ydCB7TWF0QnV0dG9uLCBNYXRCdXR0b25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcclxuaW1wb3J0IHtCYXNlVGFibGVDb21wb25lbnR9IGZyb20gXCIuLi9iYXNlLXRhYmxlL2Jhc2UtdGFibGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcclxuaW1wb3J0IHtGaWx0ZXJSZXF1ZXN0fSBmcm9tIFwiLi4vLi4vYmFzZS1tb2RlbC9maWx0ZXItcmVxdWVzdFwiO1xyXG5pbXBvcnQge1JlcG9ydFJlcXVlc3R9IGZyb20gXCIuLi8uLi9iYXNlLW1vZGVsL3JlcG9ydC1yZXF1ZXN0Lm1vZGVsXCI7XHJcbmltcG9ydCB7RmlsdGVyfSBmcm9tIFwiLi4vLi4vYmFzZS1tb2RlbC9maWx0ZXIubW9kZWxcIjtcclxuaW1wb3J0IHtUaXRsZUJhckNvbXBvbmVudH0gZnJvbSBcIi4uL3RpdGxlLWJhci90aXRsZS1iYXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7QmFzZUZvcm1DYW52YXNDb21wb25lbnR9IGZyb20gXCIuLi9iYXNlLWZvcm0tY2FudmFzL2Jhc2UtZm9ybS1jYW52YXMuY29tcG9uZW50XCI7XHJcbmltcG9ydCBDbGFzc2ljRWRpdG9yIGZyb20gXCJAY2tlZGl0b3IvY2tlZGl0b3I1LWJ1aWxkLWNsYXNzaWNcIjtcclxuaW1wb3J0IHtEUklMTF9ET1dOX0FDVElPTiwgSlVOSU9SX0RPV05fQUNUSU9OLCBTbmFja01lc3NhZ2UsIFRhYmxlUGFnZVVzZXJBY3Rpb259IGZyb20gXCIuLi8uLi9iYXNlLW1vZGVsXCI7XHJcbmltcG9ydCB7fSBmcm9tIFwiLi4vYXVkaXQtbG9nLWRldGFpbHMtZGlhbG9nL2F1ZGl0LWxvZy1kZXRhaWxzLWRpYWxvZy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtNYXREaWFsb2d9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHtSZXBvcnREZXRhaWxzRGlhbG9nQ29tcG9uZW50fSBmcm9tIFwiLi4vcmVwb3J0LWRldGFpbHMtZGlhbG9nL3JlcG9ydC1kZXRhaWxzLWRpYWxvZy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHtEaXJlY3Rpb25hbGl0eX0gZnJvbSBcIkBhbmd1bGFyL2Nkay9iaWRpXCI7XHJcbmltcG9ydCB7TWF0VG9vbHRpcH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXBcIjtcclxuXHJcblxyXG5jb25zdCBOT05fUkVQT1JUX0NPTFVNTlMgPSBbJ2xpc3RBY3Rpb24nLCAnYnV0dG9uJywgJ2NoZWNrYm94J107XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1yZXBvcnQtZm9ybScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBUaXRsZUJhckNvbXBvbmVudCxcclxuICAgIEJhc2VGb3JtQ2FudmFzQ29tcG9uZW50LFxyXG4gICAgTWF0TWVudSxcclxuICAgIE1hdE1lbnVJdGVtLFxyXG4gICAgTmdGb3JPZixcclxuICAgIE1hdE1lbnVUcmlnZ2VyLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgQmFzZVRhYmxlQ29tcG9uZW50LFxyXG4gICAgTmdJZixcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRCdXR0b24sXHJcbiAgICBNYXRUb29sdGlwXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aXZpdHktcmVwb3J0LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9hY3Rpdml0eS1yZXBvcnQtZm9ybS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEFjdGl2aXR5UmVwb3J0Rm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBASW5wdXQoKVxyXG4gIHNob3dEZXRhaWxzIDogYW55ID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd0V4dHJhY3RCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGNvbHVtbnM6IFRhYmxlQ29sdW1uPGFueT5bXSA9W107XHJcbiAgcHJpdmF0ZSBvcmlnaW5hbENvbHVtbnM6IGFueVtdID0gW107XHJcblxyXG5cclxuICBASW5wdXQoKSBhY3Rpb25SZXF1ZXN0Q2FsbGJhY2shOiAoYWN0aW9uUmVxdWVzdDogVGFibGVQYWdlVXNlckFjdGlvbikgPT4gVGFibGVQYWdlVXNlckFjdGlvbjtcclxuICBASW5wdXQoKSBlbnJpY2hEcmlsbERvd25SZXBvcnRSZXF1ZXN0ITogKGFjdGlvblJlcXVlc3Q6IFRhYmxlUGFnZVVzZXJBY3Rpb24sIHJlcG9ydFJlcXVlc3Q6IFJlcG9ydFJlcXVlc3QpID0+IFRhYmxlUGFnZVVzZXJBY3Rpb247XHJcbiAgQElucHV0KCkgZW5yaWNoSHlwZXJMaW5rUmVwb3J0UmVxdWVzdCE6IChhY3Rpb25SZXF1ZXN0OiBUYWJsZVBhZ2VVc2VyQWN0aW9uLCByZXBvcnRSZXF1ZXN0OiBSZXBvcnRSZXF1ZXN0KSA9PiBUYWJsZVBhZ2VVc2VyQWN0aW9uO1xyXG4gIEBJbnB1dCgpIGVucmljaEp1bmlvclJlcG9ydFJlcXVlc3QhOiAoYWN0aW9uUmVxdWVzdDogVGFibGVQYWdlVXNlckFjdGlvbiwgcmVwb3J0UmVxdWVzdDogUmVwb3J0UmVxdWVzdCkgPT4gVGFibGVQYWdlVXNlckFjdGlvbjtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgdXNlckFjdGlvbjogRXZlbnRFbWl0dGVyPFRhYmxlUGFnZVVzZXJBY3Rpb24+ID0gbmV3IEV2ZW50RW1pdHRlcjxUYWJsZVBhZ2VVc2VyQWN0aW9uPigpO1xyXG4gIGFjdGl2ZUxldmVsOiBudW1iZXIgPSAxO1xyXG4gIGl0ZW1zID0gWzQsIDUsNiw3XTtcclxuICBwcml2YXRlIGZpbHRlclJlcXVlc3Q6IEZpbHRlclJlcXVlc3Q7XHJcbiAgeDogYW55O1xyXG4gIGlzRWRpdGFibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGZpZWxkczogRmllbGRJbmZvW10gPSBbXTtcclxuICBwYWdlSW5mbzogUGFnZUluZm8gPSBFTVBUWV9QQUdFX0lORk87XHJcbiAgZHJpbGxEb3duUGFnZUluZm86IFBhZ2VJbmZvID0gRU1QVFlfUEFHRV9JTkZPO1xyXG4gIGRyaWxsRG93bkNvbHVtbnM6IFRhYmxlQ29sdW1uPGFueT5bXSA9IFtdO1xyXG4gIGhpZGVEcmlsbERvd25CdXR0b246IGZhbHNlO1xyXG5cclxuICBqdW5pb3JQYWdlSW5mbzogUGFnZUluZm8gPSBFTVBUWV9QQUdFX0lORk87XHJcbiAganVuaW9yQ29sdW1uczogVGFibGVDb2x1bW48YW55PltdID0gW107XHJcblxyXG4gIGNvbHVtbnNEZWZpbml0aW9uOiBUYWJsZUNvbHVtbjxhbnk+W10gPSBbXTtcclxuICB0eXBlczogc3RyaW5nW10gPSBbXCJwZGZcIiwgXCJjc3ZcIiwgXCJ4bHN4XCJdXHJcbiAgc2VhcmNoU3RyOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgZXJyb3JzOiBGaWVsZE1lc3NhZ2VbXSA9IFtdO1xyXG5cclxuICByZWxvYWREYXRhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZHJpbGxEb3duUmVxdWVzdFN0YWNrOiBhbnlbXSA9IFtdO1xyXG4gIHJlcG9ydFJlcXVlc3Q6IFJlcG9ydFJlcXVlc3QgPSBuZXcgUmVwb3J0UmVxdWVzdCh7fSk7XHJcbiAgY2hpbGRSZXBvcnRSZXF1ZXN0OiBSZXBvcnRSZXF1ZXN0ID0gbmV3IFJlcG9ydFJlcXVlc3Qoe30pO1xyXG4gIGp1bmlvclJlcG9ydFJlcXVlc3Q6IFJlcG9ydFJlcXVlc3QgPSBuZXcgUmVwb3J0UmVxdWVzdCh7fSk7XHJcbiAgcHVibGljIHJlcG9ydEZvcm06IEZvcm1Hcm91cDtcclxuICByZWFkeVRvU2VhcmNoID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBwYWdlU2l6ZTogYW55O1xyXG4gIHByaXZhdGUgZGlhbG9nUmVwb3J0UmVxdWVzdDogYW55O1xyXG4gIGN1cnJlbnREaXJlY3Rpb246ICdsdHInIHwgJ3J0bCc7XHJcbiAgcHJvdGVjdGVkIGlzQ29tcGFyaXNvblJlcG9ydDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgICAgICAgICAgICBwdWJsaWMgYmFja2VuZFNlcnZpY2U6IEJhY2tlbmRTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgICAgICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgZGlyZWN0aW9uYWxpdHk6IERpcmVjdGlvbmFsaXR5LFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XHJcbiAgICBDbGFzc2ljRWRpdG9yLmRlZmF1bHRDb25maWcgPSB7XHJcbiAgICAgIHRvb2xiYXI6IHtcclxuICAgICAgICBpdGVtczogWydoZWFkaW5nJywgJ3wnLCAnYm9sZCcsICdpdGFsaWMnLCAnfCcsICdidWxsZXRlZExpc3QnLCAnbnVtYmVyZWRMaXN0J11cclxuICAgICAgfSxcclxuICAgICAgaW1hZ2U6IHtcclxuICAgICAgICB0b29sYmFyOiBbJ2ltYWdlU3R5bGU6c2lkZScsICd8JywgJ2ltYWdlVGV4dEFsdGVybmF0aXZlJ11cclxuICAgICAgfSxcclxuICAgICAgdGFibGU6IHtcclxuICAgICAgICBjb250ZW50VG9vbGJhcjogWyAndGFibGVDb2x1bW4nLCAndGFibGVSb3cnLCAnbWVyZ2VUYWJsZUNlbGxzJyBdXHJcbiAgICAgIH0sXHJcbiAgICAgIGxhbmd1YWdlOiAnZW4nXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgdGhpcy5jdXJyZW50RGlyZWN0aW9uID0gdGhpcy5kaXJlY3Rpb25hbGl0eS52YWx1ZTtcclxuICAgIHRoaXMuZGlyZWN0aW9uYWxpdHkuY2hhbmdlLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgdGhpcy5jdXJyZW50RGlyZWN0aW9uID0gdmFsdWU7XHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMuYWN0aXZhdGVkUm91dGUuZGF0YS5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgIHRoaXMucGFnZUluZm8gPSBkYXRhWydwYWdlSW5mbyddO1xyXG4gICAgICB0aGlzLnBhZ2VTaXplID0gdGhpcy5wYWdlSW5mby5wYWdlU2l6ZSA/PyAxMDtcclxuICAgICAgdGhpcy5maWx0ZXJSZXF1ZXN0PSBuZXcgRmlsdGVyUmVxdWVzdCh0aGlzLnBhZ2VTaXplKTtcclxuICAgICAgZGF0YVsncGFnZUluZm8nXS5sYXp5TG9hZERhdGEgPSB0cnVlO1xyXG4gICAgICB0aGlzLmRyaWxsRG93blBhZ2VJbmZvID0gZGF0YVsnZHJpbGxEb3duUGFnZUluZm8nXTtcclxuICAgICAgdGhpcy5kcmlsbERvd25Db2x1bW5zID0gZGF0YVsnZHJpbGxEb3duQ29sdW1ucyddO1xyXG4gICAgICB0aGlzLm9yaWdpbmFsQ29sdW1ucyA9IFsuLi50aGlzLmRyaWxsRG93bkNvbHVtbnNdO1xyXG4gICAgICB0aGlzLmhpZGVEcmlsbERvd25CdXR0b24gPSBkYXRhWydoaWRlRHJpbGxEb3duQnV0dG9uJ10gPz8gZmFsc2U7XHJcbiAgICAgIHRoaXMuanVuaW9yUGFnZUluZm8gPSBkYXRhWydqdW5pb3JQYWdlSW5mbyddO1xyXG4gICAgICB0aGlzLmp1bmlvckNvbHVtbnMgPSBkYXRhWydqdW5pb3JDb2x1bW5zJ107XHJcbiAgICAgIHRoaXMuY29sdW1uc0RlZmluaXRpb24gPSBkYXRhWydjb2x1bW5zRGVmaW5pdGlvbiddLmZpbHRlcihjID0+ICh0aGlzLmRyaWxsRG93blBhZ2VJbmZvICYmIHRoaXMuZHJpbGxEb3duQ29sdW1ucyB8fCAoIU5PTl9SRVBPUlRfQ09MVU1OUy5pbmNsdWRlcyhjLnR5cGUpKSkpO1xyXG4gICAgICB0aGlzLmZpZWxkcyA9IGRhdGFbJ2ZpZWxkcyddO1xyXG4gICAgICBpZiAoZGF0YVsnZW5yaWNoRHJpbGxEb3duUmVwb3J0UmVxdWVzdCddKSB7XHJcbiAgICAgICAgdGhpcy5lbnJpY2hEcmlsbERvd25SZXBvcnRSZXF1ZXN0ID0gZGF0YVsnZW5yaWNoRHJpbGxEb3duUmVwb3J0UmVxdWVzdCddKHRoaXMuaW5qZWN0b3IpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChkYXRhWydlbnJpY2hKdW5pb3JSZXBvcnRSZXF1ZXN0J10pIHtcclxuICAgICAgICB0aGlzLmVucmljaEp1bmlvclJlcG9ydFJlcXVlc3QgPSBkYXRhWydlbnJpY2hKdW5pb3JSZXBvcnRSZXF1ZXN0J10odGhpcy5pbmplY3Rvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChkYXRhWydlbnJpY2hIeXBlckxpbmtSZXBvcnRSZXF1ZXN0J10pIHtcclxuICAgICAgICB0aGlzLmVucmljaEh5cGVyTGlua1JlcG9ydFJlcXVlc3QgPSBkYXRhWydlbnJpY2hIeXBlckxpbmtSZXBvcnRSZXF1ZXN0J10odGhpcy5pbmplY3Rvcik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucm91dGUucXVlcnlQYXJhbU1hcC5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgdGhpcy5pc0NvbXBhcmlzb25SZXBvcnQgPSBwYXJhbXMuZ2V0KCdjb21wYXJpc29uUmVwb3J0JykgPT09ICd0cnVlJztcclxuICAgICAgaWYgKCF0aGlzLmlzQ29tcGFyaXNvblJlcG9ydCkgcmV0dXJuO1xyXG5cclxuICAgICAgY29uc3QgY29tcGFyaXNvblN0ciA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2NvbXBhcmlzb25SZXBvcnRQYWdlSW5mbycpO1xyXG4gICAgICBpZiAoIWNvbXBhcmlzb25TdHIpIHJldHVybjtcclxuXHJcbiAgICAgIGNvbnN0IGNvbXBhcmlzb25EYXRhID0gSlNPTi5wYXJzZShjb21wYXJpc29uU3RyKTtcclxuICAgICAgdGhpcy5pbml0aWFsaXplQ29tcGFyaXNvblJlcG9ydChjb21wYXJpc29uRGF0YSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUNvbXBhcmlzb25SZXBvcnQoZGF0YTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLmxhenlMb2FkRGF0YSA9IGRhdGEubGF6eUxvYWREYXRhID8/IGZhbHNlO1xyXG4gICAgdGhpcy5hY3RpdmVMZXZlbCA9IGRhdGEuYWN0aXZlTGV2ZWwgPz8gMjtcclxuICAgIHRoaXMuaXNFZGl0YWJsZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5kcmlsbERvd25QYWdlSW5mbyA9IGRhdGEuZHJpbGxEb3duUGFnZUluZm87XHJcbiAgICB0aGlzLmRyaWxsRG93bkNvbHVtbnMgPSBkYXRhLmRyaWxsRG93bkNvbHVtbnM7XHJcblxyXG4gICAgY29uc3QgcmVwb3J0UmVxdWVzdCA9IGRhdGEucmVwb3J0UmVxdWVzdDtcclxuXHJcbiAgICB0aGlzLnJlcG9ydFJlcXVlc3QgPSB0aGlzLmJhY2tlbmRTZXJ2aWNlLmJ1aWxkUmVwb3J0UmVxdWVzdChcclxuICAgICAgdGhpcy5kcmlsbERvd25Db2x1bW5zLFxyXG4gICAgICBgJHt0aGlzLmRyaWxsRG93blBhZ2VJbmZvLmxhYmVsc1NlY3Rpb259LiR7dGhpcy5kcmlsbERvd25QYWdlSW5mby5pZH1gLFxyXG4gICAgICByZXBvcnRSZXF1ZXN0LFxyXG4gICAgICAnJyxcclxuICAgICAgdGhpcy5kcmlsbERvd25QYWdlSW5mbyxcclxuICAgICAgJ0xBTkRTQ0FQRSdcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5zZXR1cEZvcm0oZGF0YS5mb3JtKTtcclxuICAgIHRoaXMucmVtb3ZlQ2hlY2tib3hGaWVsZHMoKTtcclxuICAgIHRoaXMuc2V0dXBGaWx0ZXJzKGRhdGEucmVwb3J0UmVxdWVzdCwgZGF0YS5pdGVtKTtcclxuICAgIHRoaXMuc2V0dXBKdW5pb3JSZXBvcnRSZXF1ZXN0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwRm9ybShmb3JtRGF0YTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnJlcG9ydEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgZGlyZWN0b3JhdGU6IFtbXV0sXHJcbiAgICAgIGZyb21EYXRlOiBbJyddLFxyXG4gICAgICB0b0RhdGU6IFsnJ10sXHJcbiAgICAgIHNlY3Rvcjoge30sXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoZm9ybURhdGEpIHtcclxuICAgICAgdGhpcy5yZXBvcnRGb3JtLnBhdGNoVmFsdWUoZm9ybURhdGEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW1vdmVDaGVja2JveEZpZWxkcygpOiB2b2lkIHtcclxuICAgIHRoaXMuZmllbGRzID0gdGhpcy5maWVsZHMuZmlsdGVyKGZpZWxkID0+IGZpZWxkLnR5cGUgIT09ICdjaGVja2JveCcpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXR1cEZpbHRlcnMocmVwb3J0UmVxdWVzdDogYW55LCBpdGVtOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsdGVyUmVxdWVzdC5maWx0ZXJzID0gW107XHJcblxyXG4gICAgdGhpcy5hZGRPclVwZGF0ZUZpbHRlcihyZXBvcnRSZXF1ZXN0LCB7XHJcbiAgICAgIGtleTogJ2lTZWNMZXZlbCcsXHJcbiAgICAgIGZpZWxkTmFtZTogJ2lTZWNMZXZlbCcsXHJcbiAgICAgIHZhbHVlOiB0aGlzLmFjdGl2ZUxldmVsXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZE9yVXBkYXRlRmlsdGVyKHJlcG9ydFJlcXVlc3QsIHtcclxuICAgICAgaWQ6ICdpU2VjVmFsdWUnLFxyXG4gICAgICBrZXk6ICdpU2VjVmFsdWUnLFxyXG4gICAgICBmaWVsZE5hbWU6ICdpU2VjVmFsdWUnLFxyXG4gICAgICB2YWx1ZTogaXRlbT8uaXNlY192YWx1ZVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRPclVwZGF0ZUZpbHRlcihyZXBvcnRSZXF1ZXN0LCB7XHJcbiAgICAgIGlkOiAncGVyaW9kJyxcclxuICAgICAga2V5OiAncGVyaW9kJyxcclxuICAgICAgZmllbGROYW1lOiAncGVyaW9kJyxcclxuICAgICAgdmFsdWU6IGl0ZW0/LnBlcmlvZFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRPclVwZGF0ZUZpbHRlcihyZXBvcnRSZXF1ZXN0LCB7XHJcbiAgICAgIGlkOiAneWVhcicsXHJcbiAgICAgIGtleTogJ3llYXInLFxyXG4gICAgICBmaWVsZE5hbWU6ICd5ZWFyJyxcclxuICAgICAgdmFsdWU6IGl0ZW0/LnllYXJcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucmVwb3J0UmVxdWVzdC5maWx0ZXJSZXF1ZXN0ID0gcmVwb3J0UmVxdWVzdDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBKdW5pb3JSZXBvcnRSZXF1ZXN0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5qdW5pb3JSZXBvcnRSZXF1ZXN0ID0gdGhpcy5iYWNrZW5kU2VydmljZS5idWlsZFJlcG9ydFJlcXVlc3QoXHJcbiAgICAgIHRoaXMuanVuaW9yQ29sdW1ucyxcclxuICAgICAgYCR7dGhpcy5qdW5pb3JQYWdlSW5mby5sYWJlbHNTZWN0aW9ufS4ke3RoaXMuanVuaW9yUGFnZUluZm8uaWR9YCxcclxuICAgICAgdGhpcy5yZXBvcnRSZXF1ZXN0LmZpbHRlclJlcXVlc3QsXHJcbiAgICAgICcnLFxyXG4gICAgICB0aGlzLmp1bmlvclBhZ2VJbmZvLFxyXG4gICAgICAnTEFORFNDQVBFJ1xyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmp1bmlvclJlcG9ydFJlcXVlc3QuZmlsdGVyUmVxdWVzdC5wYWdlU2l6ZSA9IDUwMDtcclxuICB9XHJcblxyXG4gIGlzTWF0Y2hIZWlnaHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wYWdlSW5mby5wYWdlSGVpZ2h0ID09PSAnbWF0Y2gnO1xyXG4gIH1cclxuXHJcblxyXG4gIGRvQWN0aW9uKHR5cGU6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS52YWxpZCkge1xyXG4gICAgICB0aGlzLnJlbG9hZERhdGEgPSAhdGhpcy5yZWxvYWREYXRhO1xyXG4gICAgICBjb25zdCBmaWx0ZXJSZXF1ZXN0OiBGaWx0ZXJSZXF1ZXN0ID0gbmV3IEZpbHRlclJlcXVlc3QodGhpcy5wYWdlU2l6ZSk7XHJcbiAgICAgIGZpbHRlclJlcXVlc3QuZmlsdGVycyA9IFtdO1xyXG4gICAgICB0aGlzLmFkZE9yVXBkYXRlRmlsdGVyKGZpbHRlclJlcXVlc3QsIHtcclxuICAgICAgICBrZXk6ICdpU2VjTGV2ZWwnLFxyXG4gICAgICAgIGZpZWxkTmFtZTogJ2lTZWNMZXZlbCcsXHJcbiAgICAgICAgdmFsdWU6IHRoaXMuYWN0aXZlTGV2ZWxcclxuICAgICAgfSk7XHJcbiAgICAgIGxldCBwYXJhbXNTdHJpbmc6IHN0cmluZ1tdID0gW107XHJcbiAgICAgIHRoaXMuZmllbGRzLmZpbHRlcih4ID0+IHgudHlwZSAhPT0gJ3NwYWNlcicpLmZvckVhY2goZiA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuZ2V0UGFyYW1WYWx1ZShmKSAhPSBudWxsICYmIHRoaXMuZ2V0UGFyYW1WYWx1ZShmKS50b1N0cmluZygpLnRyaW0oKSAhPT0gJycpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaWYgKGYudHlwZSA9PT0gJ211bHRpLXNlbGVjdCcgfHwgZi50eXBlID09PSAnbG9va3VwJykge1xyXG4gICAgICAgICAgICAvLyBkbyBub3QgZmlsdGVyIGlmIHRoaXMgZmllbGQgYXMgY2FzY2FkaW5nIGZvciBhbm90aGVyIG9uZSBhbmQgdGhlIG90aGVyIG9uZSBnb3Qgc2VsZWN0ZWQgdmFsdWVzXHJcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkRmllbGRJZHggPSB0aGlzLmZpZWxkcy5maW5kSW5kZXgoZmllbGQgPT4gZmllbGQuY2FzY2FkZWRCeSA9PT0gZi5wcm9wZXJ0eSk7XHJcbiAgICAgICAgICAgIGlmIChjaGlsZEZpZWxkSWR4ID4gLTEgJiYgdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldCh0aGlzLmZpZWxkc1tjaGlsZEZpZWxkSWR4XS5wcm9wZXJ0eSk/LnZhbHVlPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGlkejogbnVtYmVyW10gPSBbXTtcclxuICAgICAgICAgICAgY29uc3QgcGFyYW06IHN0cmluZ1tdID0gW107XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0uZ2V0KGYucHJvcGVydHkpPy52YWx1ZSAmJiBBcnJheS5pc0FycmF5KHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS5nZXQoZi5wcm9wZXJ0eSk/LnZhbHVlKVxyXG4gICAgICAgICAgICAgICYmIHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS5nZXQoZi5wcm9wZXJ0eSk/LnZhbHVlLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0uZ2V0KGYucHJvcGVydHkpPy52YWx1ZS5mb3JFYWNoKChhOiB7XHJcbiAgICAgICAgICAgICAgICBjaGFubmVsSWQ6IG51bWJlcjtcclxuICAgICAgICAgICAgICAgIGVuZ2xpc2hOYW1lOiBzdHJpbmc7XHJcbiAgICAgICAgICAgICAgICBpZDogbnVtYmVyO1xyXG4gICAgICAgICAgICAgIH0pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChmLmZsYXR0ZW5CeVN1YkF0dHJpYnV0ZSkge1xyXG4gICAgICAgICAgICAgICAgICBpZHoucHVzaChhW2YuZmxhdHRlbkJ5U3ViQXR0cmlidXRlXSk7XHJcbiAgICAgICAgICAgICAgICAgIHBhcmFtLnB1c2goYVtmLmZsYXR0ZW5CeVN1YkF0dHJpYnV0ZV0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZpZWxkcy5maW5kKHMgPT4gcy5wcm9wZXJ0eSA9PT0gJ3Rlcm1pbmFsSWQnKSkge1xyXG4gICAgICAgICAgICAgICAgICBpZHoucHVzaChhLmNoYW5uZWxJZCk7XHJcbiAgICAgICAgICAgICAgICAgIHBhcmFtLnB1c2goYS5lbmdsaXNoTmFtZSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBpZHoucHVzaChhLmlkKTtcclxuICAgICAgICAgICAgICAgICAgcGFyYW0ucHVzaChhLmVuZ2xpc2hOYW1lKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIGZpbHRlclJlcXVlc3QuZmlsdGVycz8ucHVzaChuZXcgRmlsdGVyKHtcclxuICAgICAgICAgICAgICAgIGlkOiBmLnByb3BlcnR5LCBmaWVsZE5hbWU6IGYucHJvcGVydHksIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChmLmxhYmVsKSxcclxuICAgICAgICAgICAgICAgIGZpbHRlclR5cGU6ICdGSUxFRF9GSUxURVInLCBvcGVyYXRvcjogZi5maWx0ZXJPcGVyYXRvcixcclxuICAgICAgICAgICAgICAgIHZhbHVlT2JqZWN0OiBpZHpcclxuICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgICAgcGFyYW1zU3RyaW5nLnB1c2godGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZi5sYWJlbCkgKyAnIDogJyArIHBhcmFtLmpvaW4oJywnKSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChmLnByb3BlcnR5KT8udmFsdWUgJiYgZi5mbGF0dGVuQnlTdWJBdHRyaWJ1dGUpIHtcclxuICAgICAgICAgICAgICBmaWx0ZXJSZXF1ZXN0LmZpbHRlcnM/LnB1c2gobmV3IEZpbHRlcih7XHJcbiAgICAgICAgICAgICAgICBpZDogZi5wcm9wZXJ0eSwgZmllbGROYW1lOiBmLnByb3BlcnR5LCBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZi5sYWJlbCksXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJUeXBlOiAnRklMRURfRklMVEVSJywgb3BlcmF0b3I6IGYuZmlsdGVyT3BlcmF0b3IsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZU9iamVjdDogdGhpcy5nZXRQYXJhbVZhbHVlKGYpW2YuZmxhdHRlbkJ5U3ViQXR0cmlidXRlXVxyXG4gICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS5nZXQoZi5wcm9wZXJ0eSk/LnZhbHVlICE9PSBudWxsICYmXHJcbiAgICAgICAgICAgICAgdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChmLnByb3BlcnR5KT8udmFsdWUgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgICAgICAgIHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS5nZXQoZi5wcm9wZXJ0eSk/LnZhbHVlICE9PSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgZmlsdGVyUmVxdWVzdC5maWx0ZXJzPy5wdXNoKG5ldyBGaWx0ZXIoe1xyXG4gICAgICAgICAgICAgICAgaWQ6IGYucHJvcGVydHksIGZpZWxkTmFtZTogZi5wcm9wZXJ0eSwgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGYubGFiZWwpLFxyXG4gICAgICAgICAgICAgICAgZmlsdGVyVHlwZTogJ0ZJTEVEX0ZJTFRFUicsIG9wZXJhdG9yOiBmLmZpbHRlck9wZXJhdG9yLFxyXG4gICAgICAgICAgICAgICAgdmFsdWVPYmplY3Q6IHRoaXMuZ2V0UGFyYW1WYWx1ZShmKVxyXG4gICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBwYXJhbXNTdHJpbmcucHVzaCh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChmLmxhYmVsKSArICcgOiAnICsgdGhpcy5nZXRQYXJhbVZhbHVlTGFiZWwoZikpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH19KVxyXG4gICAgICBjb25zdCByZXBvcnRSZXF1ZXN0ID0gdGhpcy5iYWNrZW5kU2VydmljZS5idWlsZFJlcG9ydFJlcXVlc3QodGhpcy5jb2x1bW5zRGVmaW5pdGlvbiwgdGhpcy5wYWdlSW5mby5sYWJlbHNTZWN0aW9uICsgJy4nICsgdGhpcy5wYWdlSW5mby5pZCxcclxuICAgICAgICBmaWx0ZXJSZXF1ZXN0LCB0eXBlLCB0aGlzLnBhZ2VJbmZvLCAnTEFORFNDQVBFJyk7XHJcbiAgICAgIHJlcG9ydFJlcXVlc3Quc2VhcmNoU3RyID0gcGFyYW1zU3RyaW5nLmpvaW4oJyAsICcpO1xyXG4gICAgICB0aGlzLnJlcG9ydFJlcXVlc3QgPSByZXBvcnRSZXF1ZXN0O1xyXG4gICAgICAvLyB0aGlzLmFjdGl2ZUxldmVsID0gMTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYmFja2VuZFNlcnZpY2UudG9wUGFuZWxNZXNzYWdlJC5uZXh0KG5ldyBTbmFja01lc3NhZ2UoJ0lOVkFMSURfUkVQT1JUX0ZPUk0nLCB0cnVlLCAnZXJyb3InKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFBhcmFtVmFsdWUoZjogRmllbGRJbmZvKSB7XHJcbiAgICBpZiAoZi50eXBlID09PSAnZGF0ZScgJiYgdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChmLnByb3BlcnR5KT8udmFsdWUpIHtcclxuICAgICAgcmV0dXJuIGZvcm1hdERhdGUodGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChmLnByb3BlcnR5KT8udmFsdWUsICd5eXl5LU1NLWRkJywgJ2VuX1VTJylcclxuICAgIH1lbHNlIGlmIChmLnR5cGUgPT09ICdjaGVja2JveCcpIHtcclxuICAgICAgcmV0dXJuICEhdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChmLnByb3BlcnR5KT8udmFsdWU7XHJcbiAgICB9ZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0uZ2V0KGYucHJvcGVydHkpPy52YWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UGFyYW1WYWx1ZUxhYmVsKGY6IEZpZWxkSW5mbykge1xyXG4gICAgaWYgKGYudHlwZSA9PT0gJ2NoZWNrYm94Jykge1xyXG4gICAgICByZXR1cm4gdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChmLnByb3BlcnR5KT8udmFsdWUgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgneWVzJykgOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnbm8nKTtcclxuICAgIH1lbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS5nZXQoZi5wcm9wZXJ0eSk/LnZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VGl0bGUoKSB7XHJcbiAgICBjb25zdCBwYWdlSW5mb01hcCA9IHtcclxuICAgICAgMTogdGhpcy5wYWdlSW5mbyxcclxuICAgICAgMjogdGhpcy5kcmlsbERvd25QYWdlSW5mbyxcclxuICAgICAgMzogdGhpcy5qdW5pb3JQYWdlSW5mb1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBjdXJyZW50SW5mbyA9IHBhZ2VJbmZvTWFwW3RoaXMuYWN0aXZlTGV2ZWxdIHx8IHRoaXMucGFnZUluZm87XHJcbiAgICByZXR1cm4gYCR7Y3VycmVudEluZm8ubGFiZWxzU2VjdGlvbn0uJHtjdXJyZW50SW5mby5pZH1gO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRm9ybSgkZXZlbnQ6IEZvcm1Hcm91cCkge1xyXG4gICAgdGhpcy5yZXBvcnRGb3JtID0gJGV2ZW50O1xyXG4gICAgdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtID0gJGV2ZW50O1xyXG4gICAgdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgdGhpcy5yZWFkeVRvU2VhcmNoID0gdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLnZhbGlkO1xyXG4gICAgICB9XHJcblxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGlzVmFsaWRGb3JtKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucmVhZHlUb1NlYXJjaCA7XHJcblxyXG4gIH1cclxuXHJcblxyXG5cclxuICBlbWl0VXNlckFjdGlvbigkZXZlbnQ6IFRhYmxlUGFnZVVzZXJBY3Rpb24pIHtcclxuICAgICRldmVudC5wYWdlSW5mbyA9IHRoaXMucGFnZUluZm87XHJcbiAgICB0aGlzLmRvQURyaWxsRG93bkFjdGlvbigkZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgZW1pdEh5cGVyTGlua0FjdGlvbigkZXZlbnQ6IFRhYmxlUGFnZVVzZXJBY3Rpb24pIHtcclxuICAgIGlmICh0aGlzLnNob3VsZFByb2Nlc3NFdmVudEl0ZW0oJGV2ZW50Lml0ZW0pKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVwb3J0UmVxdWVzdCA9IGNsb25lRGVlcCh0aGlzLnJlcG9ydFJlcXVlc3QpO1xyXG4gICAgICBjb25zdCByZXBvcnRSZXF1ZXN0MSA9IHRoaXMuYmFja2VuZFNlcnZpY2UuYnVpbGRSZXBvcnRSZXF1ZXN0KFxyXG4gICAgICAgIHRoaXMuanVuaW9yQ29sdW1ucyxcclxuICAgICAgICB0aGlzLmp1bmlvclBhZ2VJbmZvLmxhYmVsc1NlY3Rpb24gKyAnLicgKyB0aGlzLmp1bmlvclBhZ2VJbmZvLmlkLFxyXG4gICAgICAgIHsgLi4udGhpcy5kaWFsb2dSZXBvcnRSZXF1ZXN0LmZpbHRlclJlcXVlc3QgfSxcclxuICAgICAgICAnJyxcclxuICAgICAgICB0aGlzLmp1bmlvclBhZ2VJbmZvLFxyXG4gICAgICAgICdMQU5EU0NBUEUnXHJcbiAgICAgICk7XHJcbiAgICAgIHJlcG9ydFJlcXVlc3QxLmZpbHRlclJlcXVlc3QucGFnZUluZGV4ID0gMFxyXG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFJlcG9ydERldGFpbHNEaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICBwYWdlSW5mbzogdGhpcy5qdW5pb3JQYWdlSW5mbyxcclxuICAgICAgICAgIHJlcXVlc3Q6IHJlcG9ydFJlcXVlc3QxLFxyXG4gICAgICAgICAgY29sdW1uczogdGhpcy5qdW5pb3JDb2x1bW5zLFxyXG4gICAgICAgICAgaXRlbSA6JGV2ZW50Lml0ZW1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGhlaWdodDogJzUwdncnLFxyXG4gICAgICAgIG1heFdpZHRoOiAnMTIwdncnLFxyXG4gICAgICAgIGRpcmVjdGlvbjogdGhpcy5jdXJyZW50RGlyZWN0aW9uLFxyXG4gICAgICAgIGRpc2FibGVDbG9zZTogZmFsc2UsXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgZGlhbG9nUmVmLmFmdGVyT3BlbmVkKCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmRvSHlwZXJMaW5rQWN0aW9uKCRldmVudCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGVtaXRKdW5pb3JBY3Rpb24oJGV2ZW50OiBUYWJsZVBhZ2VVc2VyQWN0aW9uKSB7XHJcbiAgICBjb25zb2xlLmxvZygnJGV2ZW50IGNhbGwganVuaW9yJywgJGV2ZW50KTtcclxuICAgIGNvbnN0IGp1bmlvckFjdGlvbiA9IEpVTklPUl9ET1dOX0FDVElPTjtcclxuICAgIGp1bmlvckFjdGlvbi5wYWdlSW5mbyA9IHRoaXMuZHJpbGxEb3duUGFnZUluZm87XHJcbiAgICB0aGlzLmRvSnVuaW9yQWN0aW9uKCRldmVudCk7XHJcbiAgfVxyXG5cclxuICBkcmlsbERvd24oKSB7XHJcbiAgICBjb25zdCBkcmlsbGRvd25hY3Rpb24gPSBEUklMTF9ET1dOX0FDVElPTjtcclxuICAgIGRyaWxsZG93bmFjdGlvbi5wYWdlSW5mbyA9IHRoaXMuZHJpbGxEb3duUGFnZUluZm87XHJcbiAgICB0aGlzLmRvQURyaWxsRG93bkFjdGlvbihkcmlsbGRvd25hY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkb0p1bmlvckFjdGlvbigkZXZlbnQ6IFRhYmxlUGFnZVVzZXJBY3Rpb24pIHtcclxuICAgIHRoaXMuanVuaW9yQ29sdW1ucyA9IHRoaXMub3JpZ2luYWxDb2x1bW5zXHJcbiAgICBpZiAodGhpcy5qdW5pb3JDb2x1bW5zICYmIHRoaXMuanVuaW9yUGFnZUluZm8pIHtcclxuICAgICAgaWYgKHRoaXMuZW5yaWNoSnVuaW9yUmVwb3J0UmVxdWVzdCkge1xyXG5cclxuICAgICAgICB0aGlzLmlzRWRpdGFibGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmp1bmlvclJlcG9ydFJlcXVlc3QgPSB0aGlzLmJhY2tlbmRTZXJ2aWNlLmJ1aWxkUmVwb3J0UmVxdWVzdCh0aGlzLmp1bmlvckNvbHVtbnMsXHJcbiAgICAgICAgICB0aGlzLmp1bmlvclBhZ2VJbmZvLmxhYmVsc1NlY3Rpb24gKyAnLicgKyB0aGlzLmp1bmlvclBhZ2VJbmZvLmlkLFxyXG4gICAgICAgICAgdGhpcy5yZXBvcnRSZXF1ZXN0LmZpbHRlclJlcXVlc3QsICcnLCB0aGlzLmp1bmlvclBhZ2VJbmZvLCAnTEFORFNDQVBFJyk7XHJcbiAgICAgICAgdGhpcy5lbnJpY2hKdW5pb3JSZXBvcnRSZXF1ZXN0KCRldmVudCwgdGhpcy5qdW5pb3JSZXBvcnRSZXF1ZXN0KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmFjdGl2ZUxldmVsID0gdGhpcy5hY3RpdmVMZXZlbCArMTtcclxuICAgICAgdGhpcy5hZGRPclVwZGF0ZUZpbHRlcih0aGlzLnJlcG9ydFJlcXVlc3QuZmlsdGVyUmVxdWVzdCwge1xyXG4gICAgICAgIGtleTogJ2lTZWNMZXZlbCcsXHJcbiAgICAgICAgZmllbGROYW1lOiAnaVNlY0xldmVsJyxcclxuICAgICAgICB2YWx1ZTogdGhpcy5hY3RpdmVMZXZlbFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBkb0FEcmlsbERvd25BY3Rpb24oJGV2ZW50OiBUYWJsZVBhZ2VVc2VyQWN0aW9uKSB7XHJcblxyXG4gICAgaWYgKHRoaXMuZHJpbGxEb3duQ29sdW1ucyAmJiB0aGlzLmRyaWxsRG93blBhZ2VJbmZvKSB7XHJcbiAgICAgIHRoaXMuZHJpbGxEb3duUmVxdWVzdFN0YWNrLnB1c2goY2xvbmVEZWVwKHRoaXMucmVwb3J0UmVxdWVzdCkpO1xyXG4gICAgICBpZiAodGhpcy5lbnJpY2hEcmlsbERvd25SZXBvcnRSZXF1ZXN0KSB7XHJcbiAgICAgICAgdGhpcy5pc0VkaXRhYmxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jaGlsZFJlcG9ydFJlcXVlc3QgPSB0aGlzLmJhY2tlbmRTZXJ2aWNlLmJ1aWxkUmVwb3J0UmVxdWVzdCh0aGlzLmRyaWxsRG93bkNvbHVtbnMsXHJcbiAgICAgICAgICB0aGlzLmRyaWxsRG93blBhZ2VJbmZvLmxhYmVsc1NlY3Rpb24gKyAnLicgKyB0aGlzLmRyaWxsRG93blBhZ2VJbmZvLmlkLFxyXG4gICAgICAgICAgdGhpcy5yZXBvcnRSZXF1ZXN0LmZpbHRlclJlcXVlc3QsICcnLCB0aGlzLmRyaWxsRG93blBhZ2VJbmZvLCAnTEFORFNDQVBFJyk7XHJcbiAgICAgICAgdGhpcy5lbnJpY2hEcmlsbERvd25SZXBvcnRSZXF1ZXN0KCRldmVudCwgdGhpcy5jaGlsZFJlcG9ydFJlcXVlc3QpO1xyXG5cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNoaWxkUmVwb3J0UmVxdWVzdC5maWx0ZXJSZXF1ZXN0LnBhZ2VTaXplID0gNTAwXHJcbiAgICAgIHRoaXMuYWN0aXZlTGV2ZWwgPSB0aGlzLmFjdGl2ZUxldmVsICsxO1xyXG4gICAgICB0aGlzLmFkZE9yVXBkYXRlRmlsdGVyKHRoaXMucmVwb3J0UmVxdWVzdC5maWx0ZXJSZXF1ZXN0LCB7XHJcbiAgICAgICAga2V5OiAnaVNlY0xldmVsJyxcclxuICAgICAgICBmaWVsZE5hbWU6ICdpU2VjTGV2ZWwnLFxyXG4gICAgICAgIHZhbHVlOiB0aGlzLmFjdGl2ZUxldmVsXHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAodGhpcy5pc0NvbXBhcmlzb25SZXBvcnQpe1xyXG4gICAgICAgIHRoaXMuYWRkT3JVcGRhdGVGaWx0ZXIodGhpcy5yZXBvcnRSZXF1ZXN0LmZpbHRlclJlcXVlc3QsIHtcclxuICAgICAgICAgIGlkOiAnaVNlY1ZhbHVlJyxcclxuICAgICAgICAgIGtleTogJ2lTZWNWYWx1ZScsXHJcbiAgICAgICAgICBmaWVsZE5hbWU6ICdpU2VjVmFsdWUnLFxyXG4gICAgICAgICAgdmFsdWU6ICRldmVudC5pdGVtLmlzZWNfdmFsdWVcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuYWN0aXZlTGV2ZWwgPT09IDQpIHtcclxuICAgICAgICB0aGlzLmRyaWxsRG93bkNvbHVtbnMgPSB0aGlzLmRyaWxsRG93bkNvbHVtbnMuZmlsdGVyKGl0ZW0gPT4gaXRlbS50eXBlICE9PSAnYnV0dG9uJyk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yZWxvYWREYXRhID0gdHJ1ZVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRPclVwZGF0ZUZpbHRlcihcclxuICAgIGZpbHRlclJlcXVlc3Q6IEZpbHRlclJlcXVlc3QsXHJcbiAgICBvcHRpb25zOiB7XHJcbiAgICAgIGlkPzogc3RyaW5nO1xyXG4gICAgICBrZXk6IHN0cmluZztcclxuICAgICAgZmllbGROYW1lOiBzdHJpbmc7XHJcbiAgICAgIHZhbHVlOiBhbnk7XHJcbiAgICB9XHJcbiAgKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IGlkLCBrZXksIGZpZWxkTmFtZSwgdmFsdWUgfSA9IG9wdGlvbnM7XHJcblxyXG4gICAgY29uc3QgZXhpc3RpbmdGaWx0ZXJJbmRleCA9IGZpbHRlclJlcXVlc3QuZmlsdGVycy5maW5kSW5kZXgoKGZpbHRlcjogRmlsdGVyKSA9PlxyXG4gICAgICBpZCA/IGZpbHRlci5pZCA9PT0gaWQgOiBmaWx0ZXIua2V5ID09PSBrZXlcclxuICAgICk7XHJcblxyXG4gICAgY29uc3QgbmV3RmlsdGVyID0gbmV3IEZpbHRlcih7XHJcbiAgICAgIC4uLihpZCAmJiB7IGlkIH0pLFxyXG4gICAgICBrZXksXHJcbiAgICAgIGZpZWxkTmFtZSxcclxuICAgICAgbGFiZWw6ICcnLFxyXG4gICAgICBmaWx0ZXJUeXBlOiAnRklMRURfRklMVEVSJyxcclxuICAgICAgb3BlcmF0b3I6ICdFUVVBTFMnLFxyXG4gICAgICB2YWx1ZU9iamVjdDogdmFsdWVcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChleGlzdGluZ0ZpbHRlckluZGV4ICE9PSAtMSkge1xyXG4gICAgICBmaWx0ZXJSZXF1ZXN0LmZpbHRlcnNbZXhpc3RpbmdGaWx0ZXJJbmRleF0gPSBuZXdGaWx0ZXI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBmaWx0ZXJSZXF1ZXN0LmZpbHRlcnMucHVzaChuZXdGaWx0ZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkb0h5cGVyTGlua0FjdGlvbigkZXZlbnQ6IFRhYmxlUGFnZVVzZXJBY3Rpb24pIHtcclxuICAgIGlmICh0aGlzLmVucmljaEh5cGVyTGlua1JlcG9ydFJlcXVlc3QpIHtcclxuICAgICAgdGhpcy5qdW5pb3JSZXBvcnRSZXF1ZXN0ID0gdGhpcy5iYWNrZW5kU2VydmljZS5idWlsZFJlcG9ydFJlcXVlc3QodGhpcy5qdW5pb3JDb2x1bW5zLFxyXG4gICAgICAgIHRoaXMuanVuaW9yUGFnZUluZm8ubGFiZWxzU2VjdGlvbiArICcuJyArIHRoaXMuanVuaW9yUGFnZUluZm8uaWQsXHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZXBvcnRSZXF1ZXN0LmZpbHRlclJlcXVlc3QsICcnLCB0aGlzLmp1bmlvclBhZ2VJbmZvLCAnTEFORFNDQVBFJyk7XHJcbiAgICAgIHRoaXMuZW5yaWNoSHlwZXJMaW5rUmVwb3J0UmVxdWVzdCgkZXZlbnQsIHRoaXMuanVuaW9yUmVwb3J0UmVxdWVzdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBleHRyYWN0UmVwb3J0KHJlcG9ydFR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5yZXBvcnRSZXF1ZXN0LnJlcG9ydFR5cGUgPSByZXBvcnRUeXBlO1xyXG4gICAgdGhpcy5iYWNrZW5kU2VydmljZS5kb3dubG9hZFJlcG9ydCh0aGlzLnJlcG9ydFJlcXVlc3QsIHRoaXMuZHJpbGxEb3duUGFnZUluZm8uYXBpVXJpICk7XHJcblxyXG4gIH1cclxuXHJcbiAgZ29VcCgpIHtcclxuICAgIE9iamVjdC5rZXlzKHRoaXMucmVwb3J0Rm9ybS5jb250cm9scykuZm9yRWFjaChjb250cm9sTmFtZSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLnJlcG9ydEZvcm0uZ2V0KGNvbnRyb2xOYW1lKTtcclxuICAgICAgY29udHJvbD8uY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICAgIGNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5pc0VkaXRhYmxlID0gdHJ1ZTtcclxuICAgIHRoaXMuYWN0aXZlTGV2ZWwgPSB0aGlzLmFjdGl2ZUxldmVsIC0gMTtcclxuICAgIGlmICh0aGlzLmFjdGl2ZUxldmVsID4gMSApIHtcclxuICAgICAgdGhpcy5pc0VkaXRhYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRvQWN0aW9uKHRoaXMueCk7XHJcbiAgICB0aGlzLnJlcG9ydFJlcXVlc3QgPSB0aGlzLmRyaWxsRG93blJlcXVlc3RTdGFjay5wb3AoKTtcclxuICAgIHRoaXMuYWRkT3JVcGRhdGVGaWx0ZXIodGhpcy5yZXBvcnRSZXF1ZXN0LmZpbHRlclJlcXVlc3QsIHtcclxuICAgICAga2V5OiAnaVNlY0xldmVsJyxcclxuICAgICAgZmllbGROYW1lOiAnaVNlY0xldmVsJyxcclxuICAgICAgdmFsdWU6IHRoaXMuYWN0aXZlTGV2ZWxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5yZWxvYWREYXRhID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmFjdGl2ZUxldmVsICE9PSA0KSB7XHJcbiAgICAgIHRoaXMuZHJpbGxEb3duQ29sdW1ucyA9IFsuLi50aGlzLm9yaWdpbmFsQ29sdW1uc107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZHJpbGxEb3duRW5hYmxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRyaWxsRG93blBhZ2VJbmZvICYmICF0aGlzLmhpZGVEcmlsbERvd25CdXR0b24gJiYgIXRoaXMuZ2V0SXNFbXB0eUxpc3QoKTtcclxuICB9XHJcblxyXG4gIGRyaWxsRG93bkxhYmVsKCkge1xyXG4gICAgcmV0dXJuIGAke3RoaXMucGFnZUluZm8ubGFiZWxzU2VjdGlvbn0uZHJpbGxEb3duTGFiZWxgIDtcclxuICB9XHJcbiAgZ2V0SXNFbXB0eUxpc3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kU2VydmljZS5pc0VtcHR5SXRlbXM7XHJcbiAgfVxyXG4gIGNsZWFyKCkge1xyXG4gICAgY29uc3QgY3VycmVudFVybCA9IHRoaXMucm91dGVyLnVybDtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy8nLCB7IHNraXBMb2NhdGlvbkNoYW5nZTogdHJ1ZSB9KS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2N1cnJlbnRVcmxdKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIGlzRm9ybUVtcHR5KCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLnJlcG9ydEZvcm0gfHwgIXRoaXMucmVwb3J0Rm9ybS52YWx1ZSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLnJlcG9ydEZvcm0udmFsdWUpLmV2ZXJ5KHZhbHVlID0+IHtcclxuICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMDtcclxuXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNob3VsZFByb2Nlc3NFdmVudEl0ZW0oaXRlbTogYW55KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBncm91cEJ5UHJvcCA9IHRoaXMucGFnZUluZm8/Lmdyb3VwQnlQcm9wZXJ0eTtcclxuICAgIGNvbnN0IGdyb3VwQnlWYWx1ZXMgPSB0aGlzLnBhZ2VJbmZvPy5ncm91cEJ5VmFsdWU7XHJcblxyXG4gICAgaWYgKCFncm91cEJ5UHJvcCB8fCAhZ3JvdXBCeVZhbHVlcyB8fCAhaXRlbVtncm91cEJ5UHJvcF0pIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdmFsdWUgPSBpdGVtW2dyb3VwQnlQcm9wXS50b1N0cmluZygpO1xyXG5cclxuICAgIHJldHVybiAhZ3JvdXBCeVZhbHVlcy5zb21lKHYgPT4gdmFsdWUuaW5jbHVkZXModikgJiYgdmFsdWUubGVuZ3RoID49IHYubGVuZ3RoKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwYWdlLWNvbnRhaW5lclwiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwicm93IHJvdy1jZW50ZXItc3RhcnQgbWItMTBweCBmdWxsLXdpZHRoXCI+XHJcbiAgICA8YXBwLXRpdGxlLWJhciBbcGFnZVRpdGxlXT1cImdldFRpdGxlKClcIiBbbmV3QWN0aW9uXT1cImZhbHNlXCI+PC9hcHAtdGl0bGUtYmFyPlxyXG4gICAgPG1hdC1pY29uICpuZ0lmPVwicGFnZUluZm8/Lmhhc0hpbnRcIlxyXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInBhZ2VJbmZvLmxhYmVsc1NlY3Rpb24gKyAnLmhpbnQnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJyaWdodFwiXHJcbiAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImhlbHAtaWNvblwiXHJcbiAgICAgICAgICAgICAgbWF0VG9vbHRpcENsYXNzPVwiY3VzdG9tLXRvb2x0aXBcIj5cclxuICAgICAgaGVscF9vdXRsaW5lXHJcbiAgICA8L21hdC1pY29uPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8YXBwLWJhc2UtZm9ybS1jYW52YXNcclxuICAgIFtwYWdlSW5mb109XCJwYWdlSW5mb1wiXHJcbiAgICBbZmllbGRzXT1cImZpZWxkc1wiXHJcbiAgICBbZWRpdGFibGVdPVwiaXNFZGl0YWJsZVwiXHJcbiAgICBbZXJyb3JzXT1cImVycm9yc1wiXHJcbiAgICBbaXRlbV09XCJyZXBvcnRGb3JtPy52YWx1ZSB8fCB7fVwiXHJcbiAgICAoZm9ybVVwZGF0ZWQpPVwidXBkYXRlRm9ybSgkZXZlbnQpXCI+XHJcbiAgPC9hcHAtYmFzZS1mb3JtLWNhbnZhcz5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInJvdyBtYWluLWZvcm0tY2FudmFzIG10LTN2aFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbHVtbiBmbGV4LTQ5XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcm93LWNlbnRlci1zdGFydFwiPlxyXG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJhY3RpdmVMZXZlbCA9PT0gMVwiIGNvbG9yPVwicHJpbWFyeVwiIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwiZG9BY3Rpb24oeClcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc1ZhbGlkRm9ybSgpXCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgaWQ9XCJhY3Rpdml0eS1nZW5lcmF0ZS1idG5cIj5cclxuICAgICAgICAgIHt7ICdSRVBPUlRTLmdlbmVyYXRlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBbZGlzYWJsZWRdPVwiZ2V0SXNFbXB0eUxpc3QoKVwiXHJcbiAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIiBjbGFzcz1cImJ0bi1ub25lLWJhY2tncm91bmQtcHJpbWFyeSBhY3Rpb24tYnV0dG9uXCIgaWQ9XCJhY3Rpdml0eS1leHRyYWN0LXRyaWdnZXJcIj5cclxuICAgICAgICAgIHt7ICdleHRyYWN0JyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZXhwYW5kX21vcmUgYWN0aW9uQnV0dG9uX19leHBhbmRcIj5leHBhbmRfbW9yZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cImNsZWFyKClcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRm9ybUVtcHR5KCkgfHwgYWN0aXZlTGV2ZWwgPiAxXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiIGlkPVwiYWN0aXZpdHktY2xlYXItYnRuXCI+XHJcbiAgICAgICAgICB7eyAnUkVQT1JUUy5jbGVhcicgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiYWN0aXZlTGV2ZWwgPT09IDEgJiYgZHJpbGxEb3duRW5hYmxlZCgpXCIgY29sb3I9XCJ3YXJuXCIgbWF0LWZsYXQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZHJpbGxEb3duKClcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIiBpZD1cImFjdGl2aXR5LWRyaWxsZG93bi1idG5cIj5cclxuICAgICAgICAgIHt7IGRyaWxsRG93bkxhYmVsKCkgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiYWN0aXZlTGV2ZWwgPiAxICYmICEoaXNDb21wYXJpc29uUmVwb3J0ICYmIGFjdGl2ZUxldmVsID09IDIpXCIgY29sb3I9XCJ3YXJuXCJcclxuICAgICAgICAgICAgICAgIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwiZ29VcCgpXCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgaWQ9XCJhY3Rpdml0eS11cC1idG5cIj5cclxuICAgICAgICAgIHt7ICdSRVBPUlRTLnVwJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbHVtbiBmbGV4LTQ5XCI+PC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gQmFzZSB0YWJsZXMgLS0+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZUxldmVsID09PSAxXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG1haW4tZm9ybS1jYW52YXMgbXQtM3ZoXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4gZmxleC0xMDBcIj5cclxuICAgICAgICA8YXBwLWJhc2UtdGFibGUgW3BhZ2VJbmZvXT1cInBhZ2VJbmZvXCIgW2NvbHVtbnNdPVwiY29sdW1uc0RlZmluaXRpb25cIiBbZW5mb3JjZVJlZnJlc2hdPVwicmVsb2FkRGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwicGFyZW50XCIgW3JlcG9ydFJlcXVlc3RdPVwicmVwb3J0UmVxdWVzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICh1c2VyQWN0aW9uKT1cImVtaXRVc2VyQWN0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoaHlwZXJMaW5rQWN0aW9uKT1cImVtaXRIeXBlckxpbmtBY3Rpb24oJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvYXBwLWJhc2UtdGFibGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3RpdmVMZXZlbCA9PT0gMlwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBtYWluLWZvcm0tY2FudmFzIG10LTN2aFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uIGZsZXgtMTAwXCI+XHJcbiAgICAgICAgPGFwcC1iYXNlLXRhYmxlIFtwYWdlSW5mb109XCJkcmlsbERvd25QYWdlSW5mb1wiIFtjb2x1bW5zXT1cImRyaWxsRG93bkNvbHVtbnNcIiBpZD1cImNoaWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlcG9ydFJlcXVlc3RdPVwicmVwb3J0UmVxdWVzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICh1c2VyQWN0aW9uKT1cImVtaXRVc2VyQWN0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoaHlwZXJMaW5rQWN0aW9uKT1cImVtaXRIeXBlckxpbmtBY3Rpb24oJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvYXBwLWJhc2UtdGFibGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3RpdmVMZXZlbCA9PT0gM1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBtYWluLWZvcm0tY2FudmFzIG10LTN2aFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uIGZsZXgtMTAwXCI+XHJcbiAgICAgICAgPGFwcC1iYXNlLXRhYmxlIFtwYWdlSW5mb109XCJkcmlsbERvd25QYWdlSW5mb1wiIFtjb2x1bW5zXT1cImRyaWxsRG93bkNvbHVtbnNcIiBpZD1cImp1bmlvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyZXBvcnRSZXF1ZXN0XT1cInJlcG9ydFJlcXVlc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAodXNlckFjdGlvbik9XCJlbWl0VXNlckFjdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGh5cGVyTGlua0FjdGlvbik9XCJlbWl0SHlwZXJMaW5rQWN0aW9uKCRldmVudClcIj5cclxuICAgICAgICA8L2FwcC1iYXNlLXRhYmxlPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aXZlTGV2ZWwgPT09IDRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWFpbi1mb3JtLWNhbnZhcyBtdC0zdmhcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbiBmbGV4LTEwMFwiPlxyXG4gICAgICAgIDxhcHAtYmFzZS10YWJsZSBbcGFnZUluZm9dPVwiZHJpbGxEb3duUGFnZUluZm9cIiBbY29sdW1uc109XCJkcmlsbERvd25Db2x1bW5zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlcG9ydFJlcXVlc3RdPVwicmVwb3J0UmVxdWVzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICh1c2VyQWN0aW9uKT1cImVtaXRVc2VyQWN0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoaHlwZXJMaW5rQWN0aW9uKT1cImVtaXRIeXBlckxpbmtBY3Rpb24oJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvYXBwLWJhc2UtdGFibGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG48L2Rpdj5cclxuXHJcbjwhLS0gTWVudSAtLT5cclxuPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxyXG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1tZW51LWl0ZW0gKm5nRm9yPVwibGV0IHR5cGUgb2YgdHlwZXNcIiAoY2xpY2spPVwiZXh0cmFjdFJlcG9ydCh0eXBlKVwiIFthdHRyLmlkXT1cIidhY3Rpdml0eS1leHRyYWN0LWl0ZW0tJyArIHR5cGVcIj5cclxuICAgIHt7IHR5cGUgfX1cclxuICA8L2J1dHRvbj5cclxuPC9tYXQtbWVudT5cclxuIl19
|
|
499
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktcmVwb3J0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52b2ljZXEvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpdml0eS1yZXBvcnQtZm9ybS9hY3Rpdml0eS1yZXBvcnQtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZvaWNlcS91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2FjdGl2aXR5LXJlcG9ydC1mb3JtL2FjdGl2aXR5LXJlcG9ydC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLEtBQUssRUFFTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGVBQWUsRUFBVyxNQUFNLDRCQUE0QixDQUFDO0FBR3JFLE9BQU8sRUFBQyxlQUFlLEVBQW1CLE1BQU0scUJBQXFCLENBQUM7QUFJdEUsT0FBTyxFQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDNUUsT0FBTyxFQUFDLFNBQVMsRUFBRSxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN0RSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sK0JBQStC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QWlCO3dCQUNqQix1QkFBdUI7d0JBQ3ZCLE9BQU87d0JBQ1AsV0FBVzt3QkFDWCxPQUFPO3dCQUNQLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsSUFBSTt3QkFDSixhQUFhO3dCQUNiLFNBQVM7d0JBQ1QsVUFBVTtxQkFDWDt1U0FNRCxXQUFXO3NCQURWLEtBQUs7Z0JBSU4saUJBQWlCO3NCQURoQixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFLRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csNEJBQTRCO3NCQUFwQyxLQUFLO2dCQUNHLDRCQUE0QjtzQkFBcEMsS0FBSztnQkFDRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBR04sVUFBVTtzQkFEVCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtGaWVsZEluZm99IGZyb20gXCIuLi8uLi9iYXNlLW1vZGVsL2ZpZWxkLWluZm9cIjtcclxuaW1wb3J0IHtFTVBUWV9QQUdFX0lORk8sIFBhZ2VJbmZvfSBmcm9tIFwiLi4vLi4vYmFzZS1tb2RlbC9wYWdlLWluZm9cIjtcclxuaW1wb3J0IHtUYWJsZUNvbHVtbn0gZnJvbSBcIi4uLy4uL2Jhc2UtbW9kZWwvdGFibGUtY29sdW1uLmludGVyZmFjZVwiO1xyXG5pbXBvcnQge0ZpZWxkTWVzc2FnZX0gZnJvbSBcIi4uLy4uL2Jhc2UtbW9kZWwvYXBpLXJlc3BvbnNlXCI7XHJcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQge0JhY2tlbmRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvYmFja2VuZC1zZXJ2aWNlXCI7XHJcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQge0Zvcm1CdWlsZGVyLCBGb3JtR3JvdXB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge2Zvcm1hdERhdGUsIE5nRm9yT2YsIE5nSWZ9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtNYXRNZW51LCBNYXRNZW51SXRlbSwgTWF0TWVudVRyaWdnZXJ9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9tZW51XCI7XHJcbmltcG9ydCB7TWF0QnV0dG9uLCBNYXRCdXR0b25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcclxuaW1wb3J0IHtCYXNlVGFibGVDb21wb25lbnR9IGZyb20gXCIuLi9iYXNlLXRhYmxlL2Jhc2UtdGFibGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcclxuaW1wb3J0IHtGaWx0ZXJSZXF1ZXN0fSBmcm9tIFwiLi4vLi4vYmFzZS1tb2RlbC9maWx0ZXItcmVxdWVzdFwiO1xyXG5pbXBvcnQge1JlcG9ydFJlcXVlc3R9IGZyb20gXCIuLi8uLi9iYXNlLW1vZGVsL3JlcG9ydC1yZXF1ZXN0Lm1vZGVsXCI7XHJcbmltcG9ydCB7RmlsdGVyfSBmcm9tIFwiLi4vLi4vYmFzZS1tb2RlbC9maWx0ZXIubW9kZWxcIjtcclxuaW1wb3J0IHtUaXRsZUJhckNvbXBvbmVudH0gZnJvbSBcIi4uL3RpdGxlLWJhci90aXRsZS1iYXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7QmFzZUZvcm1DYW52YXNDb21wb25lbnR9IGZyb20gXCIuLi9iYXNlLWZvcm0tY2FudmFzL2Jhc2UtZm9ybS1jYW52YXMuY29tcG9uZW50XCI7XHJcbmltcG9ydCBDbGFzc2ljRWRpdG9yIGZyb20gXCJAY2tlZGl0b3IvY2tlZGl0b3I1LWJ1aWxkLWNsYXNzaWNcIjtcclxuaW1wb3J0IHtEUklMTF9ET1dOX0FDVElPTiwgSlVOSU9SX0RPV05fQUNUSU9OLCBTbmFja01lc3NhZ2UsIFRhYmxlUGFnZVVzZXJBY3Rpb259IGZyb20gXCIuLi8uLi9iYXNlLW1vZGVsXCI7XHJcbmltcG9ydCB7fSBmcm9tIFwiLi4vYXVkaXQtbG9nLWRldGFpbHMtZGlhbG9nL2F1ZGl0LWxvZy1kZXRhaWxzLWRpYWxvZy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtNYXREaWFsb2d9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHtSZXBvcnREZXRhaWxzRGlhbG9nQ29tcG9uZW50fSBmcm9tIFwiLi4vcmVwb3J0LWRldGFpbHMtZGlhbG9nL3JlcG9ydC1kZXRhaWxzLWRpYWxvZy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHtEaXJlY3Rpb25hbGl0eX0gZnJvbSBcIkBhbmd1bGFyL2Nkay9iaWRpXCI7XHJcbmltcG9ydCB7TWF0VG9vbHRpcH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXBcIjtcclxuXHJcblxyXG5jb25zdCBOT05fUkVQT1JUX0NPTFVNTlMgPSBbJ2xpc3RBY3Rpb24nLCAnYnV0dG9uJywgJ2NoZWNrYm94J107XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1yZXBvcnQtZm9ybScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBUaXRsZUJhckNvbXBvbmVudCxcclxuICAgIEJhc2VGb3JtQ2FudmFzQ29tcG9uZW50LFxyXG4gICAgTWF0TWVudSxcclxuICAgIE1hdE1lbnVJdGVtLFxyXG4gICAgTmdGb3JPZixcclxuICAgIE1hdE1lbnVUcmlnZ2VyLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgQmFzZVRhYmxlQ29tcG9uZW50LFxyXG4gICAgTmdJZixcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRCdXR0b24sXHJcbiAgICBNYXRUb29sdGlwXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aXZpdHktcmVwb3J0LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9hY3Rpdml0eS1yZXBvcnQtZm9ybS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEFjdGl2aXR5UmVwb3J0Rm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBASW5wdXQoKVxyXG4gIHNob3dEZXRhaWxzIDogYW55ID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd0V4dHJhY3RCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGNvbHVtbnM6IFRhYmxlQ29sdW1uPGFueT5bXSA9W107XHJcbiAgcHJpdmF0ZSBvcmlnaW5hbENvbHVtbnM6IGFueVtdID0gW107XHJcblxyXG5cclxuICBASW5wdXQoKSBhY3Rpb25SZXF1ZXN0Q2FsbGJhY2shOiAoYWN0aW9uUmVxdWVzdDogVGFibGVQYWdlVXNlckFjdGlvbikgPT4gVGFibGVQYWdlVXNlckFjdGlvbjtcclxuICBASW5wdXQoKSBlbnJpY2hEcmlsbERvd25SZXBvcnRSZXF1ZXN0ITogKGFjdGlvblJlcXVlc3Q6IFRhYmxlUGFnZVVzZXJBY3Rpb24sIHJlcG9ydFJlcXVlc3Q6IFJlcG9ydFJlcXVlc3QpID0+IFRhYmxlUGFnZVVzZXJBY3Rpb247XHJcbiAgQElucHV0KCkgZW5yaWNoSHlwZXJMaW5rUmVwb3J0UmVxdWVzdCE6IChhY3Rpb25SZXF1ZXN0OiBUYWJsZVBhZ2VVc2VyQWN0aW9uLCByZXBvcnRSZXF1ZXN0OiBSZXBvcnRSZXF1ZXN0KSA9PiBUYWJsZVBhZ2VVc2VyQWN0aW9uO1xyXG4gIEBJbnB1dCgpIGVucmljaEp1bmlvclJlcG9ydFJlcXVlc3QhOiAoYWN0aW9uUmVxdWVzdDogVGFibGVQYWdlVXNlckFjdGlvbiwgcmVwb3J0UmVxdWVzdDogUmVwb3J0UmVxdWVzdCkgPT4gVGFibGVQYWdlVXNlckFjdGlvbjtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgdXNlckFjdGlvbjogRXZlbnRFbWl0dGVyPFRhYmxlUGFnZVVzZXJBY3Rpb24+ID0gbmV3IEV2ZW50RW1pdHRlcjxUYWJsZVBhZ2VVc2VyQWN0aW9uPigpO1xyXG4gIGFjdGl2ZUxldmVsOiBudW1iZXIgPSAxO1xyXG4gIGl0ZW1zID0gWzQsIDUsNiw3XTtcclxuICBwcml2YXRlIGZpbHRlclJlcXVlc3Q6IEZpbHRlclJlcXVlc3Q7XHJcbiAgeDogYW55O1xyXG4gIGlzRWRpdGFibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGZpZWxkczogRmllbGRJbmZvW10gPSBbXTtcclxuICBwYWdlSW5mbzogUGFnZUluZm8gPSBFTVBUWV9QQUdFX0lORk87XHJcbiAgZHJpbGxEb3duUGFnZUluZm86IFBhZ2VJbmZvID0gRU1QVFlfUEFHRV9JTkZPO1xyXG4gIGRyaWxsRG93bkNvbHVtbnM6IFRhYmxlQ29sdW1uPGFueT5bXSA9IFtdO1xyXG4gIGhpZGVEcmlsbERvd25CdXR0b246IGZhbHNlO1xyXG5cclxuICBqdW5pb3JQYWdlSW5mbzogUGFnZUluZm8gPSBFTVBUWV9QQUdFX0lORk87XHJcbiAganVuaW9yQ29sdW1uczogVGFibGVDb2x1bW48YW55PltdID0gW107XHJcblxyXG4gIGNvbHVtbnNEZWZpbml0aW9uOiBUYWJsZUNvbHVtbjxhbnk+W10gPSBbXTtcclxuICB0eXBlczogc3RyaW5nW10gPSBbXCJwZGZcIiwgXCJjc3ZcIiwgXCJ4bHN4XCJdXHJcbiAgc2VhcmNoU3RyOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgZXJyb3JzOiBGaWVsZE1lc3NhZ2VbXSA9IFtdO1xyXG5cclxuICByZWxvYWREYXRhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZHJpbGxEb3duUmVxdWVzdFN0YWNrOiBhbnlbXSA9IFtdO1xyXG4gIHJlcG9ydFJlcXVlc3Q6IFJlcG9ydFJlcXVlc3QgPSBuZXcgUmVwb3J0UmVxdWVzdCh7fSk7XHJcbiAgY2hpbGRSZXBvcnRSZXF1ZXN0OiBSZXBvcnRSZXF1ZXN0ID0gbmV3IFJlcG9ydFJlcXVlc3Qoe30pO1xyXG4gIGp1bmlvclJlcG9ydFJlcXVlc3Q6IFJlcG9ydFJlcXVlc3QgPSBuZXcgUmVwb3J0UmVxdWVzdCh7fSk7XHJcbiAgcHVibGljIHJlcG9ydEZvcm06IEZvcm1Hcm91cDtcclxuICByZWFkeVRvU2VhcmNoID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBwYWdlU2l6ZTogYW55O1xyXG4gIHByaXZhdGUgZGlhbG9nUmVwb3J0UmVxdWVzdDogYW55O1xyXG4gIGN1cnJlbnREaXJlY3Rpb246ICdsdHInIHwgJ3J0bCc7XHJcbiAgcHJvdGVjdGVkIGlzQ29tcGFyaXNvblJlcG9ydDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgICAgICAgICAgICBwdWJsaWMgYmFja2VuZFNlcnZpY2U6IEJhY2tlbmRTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgICAgICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgZGlyZWN0aW9uYWxpdHk6IERpcmVjdGlvbmFsaXR5LFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XHJcbiAgICBDbGFzc2ljRWRpdG9yLmRlZmF1bHRDb25maWcgPSB7XHJcbiAgICAgIHRvb2xiYXI6IHtcclxuICAgICAgICBpdGVtczogWydoZWFkaW5nJywgJ3wnLCAnYm9sZCcsICdpdGFsaWMnLCAnfCcsICdidWxsZXRlZExpc3QnLCAnbnVtYmVyZWRMaXN0J11cclxuICAgICAgfSxcclxuICAgICAgaW1hZ2U6IHtcclxuICAgICAgICB0b29sYmFyOiBbJ2ltYWdlU3R5bGU6c2lkZScsICd8JywgJ2ltYWdlVGV4dEFsdGVybmF0aXZlJ11cclxuICAgICAgfSxcclxuICAgICAgdGFibGU6IHtcclxuICAgICAgICBjb250ZW50VG9vbGJhcjogWyAndGFibGVDb2x1bW4nLCAndGFibGVSb3cnLCAnbWVyZ2VUYWJsZUNlbGxzJyBdXHJcbiAgICAgIH0sXHJcbiAgICAgIGxhbmd1YWdlOiAnZW4nXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgdGhpcy5jdXJyZW50RGlyZWN0aW9uID0gdGhpcy5kaXJlY3Rpb25hbGl0eS52YWx1ZTtcclxuICAgIHRoaXMuZGlyZWN0aW9uYWxpdHkuY2hhbmdlLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgdGhpcy5jdXJyZW50RGlyZWN0aW9uID0gdmFsdWU7XHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMuYWN0aXZhdGVkUm91dGUuZGF0YS5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgIHRoaXMucGFnZUluZm8gPSBkYXRhWydwYWdlSW5mbyddO1xyXG4gICAgICB0aGlzLnBhZ2VTaXplID0gdGhpcy5wYWdlSW5mby5wYWdlU2l6ZSA/PyAxMDtcclxuICAgICAgdGhpcy5maWx0ZXJSZXF1ZXN0PSBuZXcgRmlsdGVyUmVxdWVzdCh0aGlzLnBhZ2VTaXplKTtcclxuICAgICAgZGF0YVsncGFnZUluZm8nXS5sYXp5TG9hZERhdGEgPSB0cnVlO1xyXG4gICAgICB0aGlzLmRyaWxsRG93blBhZ2VJbmZvID0gZGF0YVsnZHJpbGxEb3duUGFnZUluZm8nXTtcclxuICAgICAgdGhpcy5kcmlsbERvd25Db2x1bW5zID0gZGF0YVsnZHJpbGxEb3duQ29sdW1ucyddO1xyXG4gICAgICB0aGlzLm9yaWdpbmFsQ29sdW1ucyA9IFsuLi50aGlzLmRyaWxsRG93bkNvbHVtbnNdO1xyXG4gICAgICB0aGlzLmhpZGVEcmlsbERvd25CdXR0b24gPSBkYXRhWydoaWRlRHJpbGxEb3duQnV0dG9uJ10gPz8gZmFsc2U7XHJcbiAgICAgIHRoaXMuanVuaW9yUGFnZUluZm8gPSBkYXRhWydqdW5pb3JQYWdlSW5mbyddO1xyXG4gICAgICB0aGlzLmp1bmlvckNvbHVtbnMgPSBkYXRhWydqdW5pb3JDb2x1bW5zJ107XHJcbiAgICAgIHRoaXMuY29sdW1uc0RlZmluaXRpb24gPSBkYXRhWydjb2x1bW5zRGVmaW5pdGlvbiddLmZpbHRlcihjID0+ICh0aGlzLmRyaWxsRG93blBhZ2VJbmZvICYmIHRoaXMuZHJpbGxEb3duQ29sdW1ucyB8fCAoIU5PTl9SRVBPUlRfQ09MVU1OUy5pbmNsdWRlcyhjLnR5cGUpKSkpO1xyXG4gICAgICB0aGlzLmZpZWxkcyA9IGRhdGFbJ2ZpZWxkcyddO1xyXG4gICAgICBpZiAoZGF0YVsnZW5yaWNoRHJpbGxEb3duUmVwb3J0UmVxdWVzdCddKSB7XHJcbiAgICAgICAgdGhpcy5lbnJpY2hEcmlsbERvd25SZXBvcnRSZXF1ZXN0ID0gZGF0YVsnZW5yaWNoRHJpbGxEb3duUmVwb3J0UmVxdWVzdCddKHRoaXMuaW5qZWN0b3IpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChkYXRhWydlbnJpY2hKdW5pb3JSZXBvcnRSZXF1ZXN0J10pIHtcclxuICAgICAgICB0aGlzLmVucmljaEp1bmlvclJlcG9ydFJlcXVlc3QgPSBkYXRhWydlbnJpY2hKdW5pb3JSZXBvcnRSZXF1ZXN0J10odGhpcy5pbmplY3Rvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChkYXRhWydlbnJpY2hIeXBlckxpbmtSZXBvcnRSZXF1ZXN0J10pIHtcclxuICAgICAgICB0aGlzLmVucmljaEh5cGVyTGlua1JlcG9ydFJlcXVlc3QgPSBkYXRhWydlbnJpY2hIeXBlckxpbmtSZXBvcnRSZXF1ZXN0J10odGhpcy5pbmplY3Rvcik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucm91dGUucXVlcnlQYXJhbU1hcC5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgdGhpcy5pc0NvbXBhcmlzb25SZXBvcnQgPSBwYXJhbXMuZ2V0KCdjb21wYXJpc29uUmVwb3J0JykgPT09ICd0cnVlJztcclxuICAgICAgaWYgKCF0aGlzLmlzQ29tcGFyaXNvblJlcG9ydCkgcmV0dXJuO1xyXG5cclxuICAgICAgY29uc3QgY29tcGFyaXNvblN0ciA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2NvbXBhcmlzb25SZXBvcnRQYWdlSW5mbycpO1xyXG4gICAgICBpZiAoIWNvbXBhcmlzb25TdHIpIHJldHVybjtcclxuXHJcbiAgICAgIGNvbnN0IGNvbXBhcmlzb25EYXRhID0gSlNPTi5wYXJzZShjb21wYXJpc29uU3RyKTtcclxuICAgICAgdGhpcy5pbml0aWFsaXplQ29tcGFyaXNvblJlcG9ydChjb21wYXJpc29uRGF0YSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUNvbXBhcmlzb25SZXBvcnQoZGF0YTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLmxhenlMb2FkRGF0YSA9IGRhdGEubGF6eUxvYWREYXRhID8/IGZhbHNlO1xyXG4gICAgdGhpcy5hY3RpdmVMZXZlbCA9IGRhdGEuYWN0aXZlTGV2ZWwgPz8gMjtcclxuICAgIHRoaXMuaXNFZGl0YWJsZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5kcmlsbERvd25QYWdlSW5mbyA9IGRhdGEuZHJpbGxEb3duUGFnZUluZm87XHJcbiAgICB0aGlzLmRyaWxsRG93bkNvbHVtbnMgPSBkYXRhLmRyaWxsRG93bkNvbHVtbnM7XHJcblxyXG4gICAgY29uc3QgcmVwb3J0UmVxdWVzdCA9IGRhdGEucmVwb3J0UmVxdWVzdDtcclxuXHJcbiAgICB0aGlzLnJlcG9ydFJlcXVlc3QgPSB0aGlzLmJhY2tlbmRTZXJ2aWNlLmJ1aWxkUmVwb3J0UmVxdWVzdChcclxuICAgICAgdGhpcy5kcmlsbERvd25Db2x1bW5zLFxyXG4gICAgICBgJHt0aGlzLmRyaWxsRG93blBhZ2VJbmZvLmxhYmVsc1NlY3Rpb259LiR7dGhpcy5kcmlsbERvd25QYWdlSW5mby5pZH1gLFxyXG4gICAgICByZXBvcnRSZXF1ZXN0LFxyXG4gICAgICAnJyxcclxuICAgICAgdGhpcy5kcmlsbERvd25QYWdlSW5mbyxcclxuICAgICAgJ0xBTkRTQ0FQRSdcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5zZXR1cEZvcm0oZGF0YS5mb3JtKTtcclxuICAgIHRoaXMucmVtb3ZlQ2hlY2tib3hGaWVsZHMoKTtcclxuICAgIHRoaXMuc2V0dXBGaWx0ZXJzKGRhdGEucmVwb3J0UmVxdWVzdCwgZGF0YS5pdGVtKTtcclxuICAgIHRoaXMuc2V0dXBKdW5pb3JSZXBvcnRSZXF1ZXN0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwRm9ybShmb3JtRGF0YTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnJlcG9ydEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgZGlyZWN0b3JhdGU6IFtbXV0sXHJcbiAgICAgIGZyb21EYXRlOiBbJyddLFxyXG4gICAgICB0b0RhdGU6IFsnJ10sXHJcbiAgICAgIHNlY3Rvcjoge30sXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoZm9ybURhdGEpIHtcclxuICAgICAgdGhpcy5yZXBvcnRGb3JtLnBhdGNoVmFsdWUoZm9ybURhdGEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW1vdmVDaGVja2JveEZpZWxkcygpOiB2b2lkIHtcclxuICAgIHRoaXMuZmllbGRzID0gdGhpcy5maWVsZHMuZmlsdGVyKGZpZWxkID0+IGZpZWxkLnR5cGUgIT09ICdjaGVja2JveCcpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXR1cEZpbHRlcnMocmVwb3J0UmVxdWVzdDogYW55LCBpdGVtOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsdGVyUmVxdWVzdC5maWx0ZXJzID0gW107XHJcblxyXG4gICAgdGhpcy5hZGRPclVwZGF0ZUZpbHRlcihyZXBvcnRSZXF1ZXN0LCB7XHJcbiAgICAgIGtleTogJ2lTZWNMZXZlbCcsXHJcbiAgICAgIGZpZWxkTmFtZTogJ2lTZWNMZXZlbCcsXHJcbiAgICAgIHZhbHVlOiB0aGlzLmFjdGl2ZUxldmVsXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZE9yVXBkYXRlRmlsdGVyKHJlcG9ydFJlcXVlc3QsIHtcclxuICAgICAgaWQ6ICdpU2VjVmFsdWUnLFxyXG4gICAgICBrZXk6ICdpU2VjVmFsdWUnLFxyXG4gICAgICBmaWVsZE5hbWU6ICdpU2VjVmFsdWUnLFxyXG4gICAgICB2YWx1ZTogaXRlbT8uaXNlY192YWx1ZVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRPclVwZGF0ZUZpbHRlcihyZXBvcnRSZXF1ZXN0LCB7XHJcbiAgICAgIGlkOiAncGVyaW9kJyxcclxuICAgICAga2V5OiAncGVyaW9kJyxcclxuICAgICAgZmllbGROYW1lOiAncGVyaW9kJyxcclxuICAgICAgdmFsdWU6IGl0ZW0/LnBlcmlvZFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRPclVwZGF0ZUZpbHRlcihyZXBvcnRSZXF1ZXN0LCB7XHJcbiAgICAgIGlkOiAneWVhcicsXHJcbiAgICAgIGtleTogJ3llYXInLFxyXG4gICAgICBmaWVsZE5hbWU6ICd5ZWFyJyxcclxuICAgICAgdmFsdWU6IGl0ZW0/LnllYXJcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucmVwb3J0UmVxdWVzdC5maWx0ZXJSZXF1ZXN0ID0gcmVwb3J0UmVxdWVzdDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBKdW5pb3JSZXBvcnRSZXF1ZXN0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5qdW5pb3JSZXBvcnRSZXF1ZXN0ID0gdGhpcy5iYWNrZW5kU2VydmljZS5idWlsZFJlcG9ydFJlcXVlc3QoXHJcbiAgICAgIHRoaXMuanVuaW9yQ29sdW1ucyxcclxuICAgICAgYCR7dGhpcy5qdW5pb3JQYWdlSW5mby5sYWJlbHNTZWN0aW9ufS4ke3RoaXMuanVuaW9yUGFnZUluZm8uaWR9YCxcclxuICAgICAgdGhpcy5yZXBvcnRSZXF1ZXN0LmZpbHRlclJlcXVlc3QsXHJcbiAgICAgICcnLFxyXG4gICAgICB0aGlzLmp1bmlvclBhZ2VJbmZvLFxyXG4gICAgICAnTEFORFNDQVBFJ1xyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmp1bmlvclJlcG9ydFJlcXVlc3QuZmlsdGVyUmVxdWVzdC5wYWdlU2l6ZSA9IDUwMDtcclxuICB9XHJcblxyXG4gIGlzTWF0Y2hIZWlnaHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wYWdlSW5mby5wYWdlSGVpZ2h0ID09PSAnbWF0Y2gnO1xyXG4gIH1cclxuXHJcblxyXG4gIGRvQWN0aW9uKHR5cGU6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS52YWxpZCkge1xyXG4gICAgICB0aGlzLnJlbG9hZERhdGEgPSAhdGhpcy5yZWxvYWREYXRhO1xyXG4gICAgICBjb25zdCBmaWx0ZXJSZXF1ZXN0OiBGaWx0ZXJSZXF1ZXN0ID0gbmV3IEZpbHRlclJlcXVlc3QodGhpcy5wYWdlU2l6ZSk7XHJcbiAgICAgIGZpbHRlclJlcXVlc3QuZmlsdGVycyA9IFtdO1xyXG4gICAgICB0aGlzLmFkZE9yVXBkYXRlRmlsdGVyKGZpbHRlclJlcXVlc3QsIHtcclxuICAgICAgICBrZXk6ICdpU2VjTGV2ZWwnLFxyXG4gICAgICAgIGZpZWxkTmFtZTogJ2lTZWNMZXZlbCcsXHJcbiAgICAgICAgdmFsdWU6IHRoaXMuYWN0aXZlTGV2ZWxcclxuICAgICAgfSk7XHJcbiAgICAgIGxldCBwYXJhbXNTdHJpbmc6IHN0cmluZ1tdID0gW107XHJcbiAgICAgIHRoaXMuZmllbGRzLmZpbHRlcih4ID0+IHgudHlwZSAhPT0gJ3NwYWNlcicpLmZvckVhY2goZiA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuZ2V0UGFyYW1WYWx1ZShmKSAhPSBudWxsICYmIHRoaXMuZ2V0UGFyYW1WYWx1ZShmKS50b1N0cmluZygpLnRyaW0oKSAhPT0gJycpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaWYgKGYudHlwZSA9PT0gJ211bHRpLXNlbGVjdCcgfHwgZi50eXBlID09PSAnbG9va3VwJykge1xyXG4gICAgICAgICAgICAvLyBkbyBub3QgZmlsdGVyIGlmIHRoaXMgZmllbGQgYXMgY2FzY2FkaW5nIGZvciBhbm90aGVyIG9uZSBhbmQgdGhlIG90aGVyIG9uZSBnb3Qgc2VsZWN0ZWQgdmFsdWVzXHJcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkRmllbGRJZHggPSB0aGlzLmZpZWxkcy5maW5kSW5kZXgoZmllbGQgPT4gZmllbGQuY2FzY2FkZWRCeSA9PT0gZi5wcm9wZXJ0eSk7XHJcbiAgICAgICAgICAgIGlmIChjaGlsZEZpZWxkSWR4ID4gLTEgJiYgdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldCh0aGlzLmZpZWxkc1tjaGlsZEZpZWxkSWR4XS5wcm9wZXJ0eSk/LnZhbHVlPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGlkejogbnVtYmVyW10gPSBbXTtcclxuICAgICAgICAgICAgY29uc3QgcGFyYW06IHN0cmluZ1tdID0gW107XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0uZ2V0KGYucHJvcGVydHkpPy52YWx1ZSAmJiBBcnJheS5pc0FycmF5KHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS5nZXQoZi5wcm9wZXJ0eSk/LnZhbHVlKVxyXG4gICAgICAgICAgICAgICYmIHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS5nZXQoZi5wcm9wZXJ0eSk/LnZhbHVlLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0uZ2V0KGYucHJvcGVydHkpPy52YWx1ZS5mb3JFYWNoKChhOiB7XHJcbiAgICAgICAgICAgICAgICBjaGFubmVsSWQ6IG51bWJlcjtcclxuICAgICAgICAgICAgICAgIGVuZ2xpc2hOYW1lOiBzdHJpbmc7XHJcbiAgICAgICAgICAgICAgICBpZDogbnVtYmVyO1xyXG4gICAgICAgICAgICAgIH0pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChmLmZsYXR0ZW5CeVN1YkF0dHJpYnV0ZSkge1xyXG4gICAgICAgICAgICAgICAgICBpZHoucHVzaChhW2YuZmxhdHRlbkJ5U3ViQXR0cmlidXRlXSk7XHJcbiAgICAgICAgICAgICAgICAgIHBhcmFtLnB1c2goYVtmLmZsYXR0ZW5CeVN1YkF0dHJpYnV0ZV0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZpZWxkcy5maW5kKHMgPT4gcy5wcm9wZXJ0eSA9PT0gJ3Rlcm1pbmFsSWQnKSkge1xyXG4gICAgICAgICAgICAgICAgICBpZHoucHVzaChhLmNoYW5uZWxJZCk7XHJcbiAgICAgICAgICAgICAgICAgIHBhcmFtLnB1c2goYS5lbmdsaXNoTmFtZSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBpZHoucHVzaChhLmlkKTtcclxuICAgICAgICAgICAgICAgICAgcGFyYW0ucHVzaChhLmVuZ2xpc2hOYW1lKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIGZpbHRlclJlcXVlc3QuZmlsdGVycz8ucHVzaChuZXcgRmlsdGVyKHtcclxuICAgICAgICAgICAgICAgIGlkOiBmLnByb3BlcnR5LCBmaWVsZE5hbWU6IGYucHJvcGVydHksIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChmLmxhYmVsKSxcclxuICAgICAgICAgICAgICAgIGZpbHRlclR5cGU6ICdGSUxFRF9GSUxURVInLCBvcGVyYXRvcjogZi5maWx0ZXJPcGVyYXRvcixcclxuICAgICAgICAgICAgICAgIHZhbHVlT2JqZWN0OiBpZHpcclxuICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgICAgcGFyYW1zU3RyaW5nLnB1c2godGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZi5sYWJlbCkgKyAnIDogJyArIHBhcmFtLmpvaW4oJywnKSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChmLnByb3BlcnR5KT8udmFsdWUgJiYgZi5mbGF0dGVuQnlTdWJBdHRyaWJ1dGUpIHtcclxuICAgICAgICAgICAgICBmaWx0ZXJSZXF1ZXN0LmZpbHRlcnM/LnB1c2gobmV3IEZpbHRlcih7XHJcbiAgICAgICAgICAgICAgICBpZDogZi5wcm9wZXJ0eSwgZmllbGROYW1lOiBmLnByb3BlcnR5LCBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZi5sYWJlbCksXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJUeXBlOiAnRklMRURfRklMVEVSJywgb3BlcmF0b3I6IGYuZmlsdGVyT3BlcmF0b3IsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZU9iamVjdDogdGhpcy5nZXRQYXJhbVZhbHVlKGYpW2YuZmxhdHRlbkJ5U3ViQXR0cmlidXRlXVxyXG4gICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS5nZXQoZi5wcm9wZXJ0eSk/LnZhbHVlICE9PSBudWxsICYmXHJcbiAgICAgICAgICAgICAgdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChmLnByb3BlcnR5KT8udmFsdWUgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgICAgICAgIHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS5nZXQoZi5wcm9wZXJ0eSk/LnZhbHVlICE9PSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgZmlsdGVyUmVxdWVzdC5maWx0ZXJzPy5wdXNoKG5ldyBGaWx0ZXIoe1xyXG4gICAgICAgICAgICAgICAgaWQ6IGYucHJvcGVydHksIGZpZWxkTmFtZTogZi5wcm9wZXJ0eSwgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGYubGFiZWwpLFxyXG4gICAgICAgICAgICAgICAgZmlsdGVyVHlwZTogJ0ZJTEVEX0ZJTFRFUicsIG9wZXJhdG9yOiBmLmZpbHRlck9wZXJhdG9yLFxyXG4gICAgICAgICAgICAgICAgdmFsdWVPYmplY3Q6IHRoaXMuZ2V0UGFyYW1WYWx1ZShmKVxyXG4gICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBwYXJhbXNTdHJpbmcucHVzaCh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChmLmxhYmVsKSArICcgOiAnICsgdGhpcy5nZXRQYXJhbVZhbHVlTGFiZWwoZikpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH19KVxyXG4gICAgICBjb25zdCByZXBvcnRSZXF1ZXN0ID0gdGhpcy5iYWNrZW5kU2VydmljZS5idWlsZFJlcG9ydFJlcXVlc3QodGhpcy5jb2x1bW5zRGVmaW5pdGlvbiwgdGhpcy5wYWdlSW5mby5sYWJlbHNTZWN0aW9uICsgJy4nICsgdGhpcy5wYWdlSW5mby5pZCxcclxuICAgICAgICBmaWx0ZXJSZXF1ZXN0LCB0eXBlLCB0aGlzLnBhZ2VJbmZvLCAnTEFORFNDQVBFJyk7XHJcbiAgICAgIHJlcG9ydFJlcXVlc3Quc2VhcmNoU3RyID0gcGFyYW1zU3RyaW5nLmpvaW4oJyAsICcpO1xyXG4gICAgICB0aGlzLnJlcG9ydFJlcXVlc3QgPSByZXBvcnRSZXF1ZXN0O1xyXG4gICAgICAvLyB0aGlzLmFjdGl2ZUxldmVsID0gMTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYmFja2VuZFNlcnZpY2UudG9wUGFuZWxNZXNzYWdlJC5uZXh0KG5ldyBTbmFja01lc3NhZ2UoJ0lOVkFMSURfUkVQT1JUX0ZPUk0nLCB0cnVlLCAnZXJyb3InKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFBhcmFtVmFsdWUoZjogRmllbGRJbmZvKSB7XHJcbiAgICBpZiAoZi50eXBlID09PSAnZGF0ZScgJiYgdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChmLnByb3BlcnR5KT8udmFsdWUpIHtcclxuICAgICAgcmV0dXJuIGZvcm1hdERhdGUodGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChmLnByb3BlcnR5KT8udmFsdWUsICd5eXl5LU1NLWRkJywgJ2VuX1VTJylcclxuICAgIH1lbHNlIGlmIChmLnR5cGUgPT09ICdjaGVja2JveCcpIHtcclxuICAgICAgcmV0dXJuICEhdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChmLnByb3BlcnR5KT8udmFsdWU7XHJcbiAgICB9ZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmJhY2tlbmRTZXJ2aWNlLnBhcmVudEZvcm0uZ2V0KGYucHJvcGVydHkpPy52YWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UGFyYW1WYWx1ZUxhYmVsKGY6IEZpZWxkSW5mbykge1xyXG4gICAgaWYgKGYudHlwZSA9PT0gJ2NoZWNrYm94Jykge1xyXG4gICAgICByZXR1cm4gdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLmdldChmLnByb3BlcnR5KT8udmFsdWUgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgneWVzJykgOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnbm8nKTtcclxuICAgIH1lbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuYmFja2VuZFNlcnZpY2UucGFyZW50Rm9ybS5nZXQoZi5wcm9wZXJ0eSk/LnZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VGl0bGUoKSB7XHJcbiAgICBjb25zdCBwYWdlSW5mb01hcCA9IHtcclxuICAgICAgMTogdGhpcy5wYWdlSW5mbyxcclxuICAgICAgMjogdGhpcy5kcmlsbERvd25QYWdlSW5mbyxcclxuICAgICAgMzogdGhpcy5qdW5pb3JQYWdlSW5mb1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBjdXJyZW50SW5mbyA9IHBhZ2VJbmZvTWFwW3RoaXMuYWN0aXZlTGV2ZWxdIHx8IHRoaXMucGFnZUluZm87XHJcbiAgICByZXR1cm4gYCR7Y3VycmVudEluZm8ubGFiZWxzU2VjdGlvbn0uJHtjdXJyZW50SW5mby5pZH1gO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRm9ybSgkZXZlbnQ6IEZvcm1Hcm91cCkge1xyXG4gICAgdGhpcy5yZXBvcnRGb3JtID0gJGV2ZW50O1xyXG4gICAgdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtID0gJGV2ZW50O1xyXG4gICAgdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgdGhpcy5yZWFkeVRvU2VhcmNoID0gdGhpcy5iYWNrZW5kU2VydmljZS5wYXJlbnRGb3JtLnZhbGlkO1xyXG4gICAgICB9XHJcblxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGlzVmFsaWRGb3JtKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucmVhZHlUb1NlYXJjaCA7XHJcblxyXG4gIH1cclxuXHJcblxyXG5cclxuICBlbWl0VXNlckFjdGlvbigkZXZlbnQ6IFRhYmxlUGFnZVVzZXJBY3Rpb24pIHtcclxuICAgICRldmVudC5wYWdlSW5mbyA9IHRoaXMucGFnZUluZm87XHJcbiAgICB0aGlzLmRvQURyaWxsRG93bkFjdGlvbigkZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgZW1pdEh5cGVyTGlua0FjdGlvbigkZXZlbnQ6IFRhYmxlUGFnZVVzZXJBY3Rpb24pIHtcclxuICAgIGlmICh0aGlzLnNob3VsZFByb2Nlc3NFdmVudEl0ZW0oJGV2ZW50Lml0ZW0pKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVwb3J0UmVxdWVzdCA9IGNsb25lRGVlcCh0aGlzLnJlcG9ydFJlcXVlc3QpO1xyXG4gICAgICBjb25zdCByZXBvcnRSZXF1ZXN0MSA9IHRoaXMuYmFja2VuZFNlcnZpY2UuYnVpbGRSZXBvcnRSZXF1ZXN0KFxyXG4gICAgICAgIHRoaXMuanVuaW9yQ29sdW1ucyxcclxuICAgICAgICB0aGlzLmp1bmlvclBhZ2VJbmZvLmxhYmVsc1NlY3Rpb24gKyAnLicgKyB0aGlzLmp1bmlvclBhZ2VJbmZvLmlkLFxyXG4gICAgICAgIHsgLi4udGhpcy5kaWFsb2dSZXBvcnRSZXF1ZXN0LmZpbHRlclJlcXVlc3QgfSxcclxuICAgICAgICAnJyxcclxuICAgICAgICB0aGlzLmp1bmlvclBhZ2VJbmZvLFxyXG4gICAgICAgICdMQU5EU0NBUEUnXHJcbiAgICAgICk7XHJcbiAgICAgIHJlcG9ydFJlcXVlc3QxLmZpbHRlclJlcXVlc3QucGFnZUluZGV4ID0gMFxyXG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFJlcG9ydERldGFpbHNEaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICBwYWdlSW5mbzogdGhpcy5qdW5pb3JQYWdlSW5mbyxcclxuICAgICAgICAgIHJlcXVlc3Q6IHJlcG9ydFJlcXVlc3QxLFxyXG4gICAgICAgICAgY29sdW1uczogdGhpcy5qdW5pb3JDb2x1bW5zLFxyXG4gICAgICAgICAgaXRlbSA6JGV2ZW50Lml0ZW1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGhlaWdodDogJzUwdncnLFxyXG4gICAgICAgIG1heFdpZHRoOiAnMTIwdncnLFxyXG4gICAgICAgIGRpcmVjdGlvbjogdGhpcy5jdXJyZW50RGlyZWN0aW9uLFxyXG4gICAgICAgIGRpc2FibGVDbG9zZTogZmFsc2UsXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgZGlhbG9nUmVmLmFmdGVyT3BlbmVkKCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmRvSHlwZXJMaW5rQWN0aW9uKCRldmVudCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGVtaXRKdW5pb3JBY3Rpb24oJGV2ZW50OiBUYWJsZVBhZ2VVc2VyQWN0aW9uKSB7XHJcbiAgICBjb25zb2xlLmxvZygnJGV2ZW50IGNhbGwganVuaW9yJywgJGV2ZW50KTtcclxuICAgIGNvbnN0IGp1bmlvckFjdGlvbiA9IEpVTklPUl9ET1dOX0FDVElPTjtcclxuICAgIGp1bmlvckFjdGlvbi5wYWdlSW5mbyA9IHRoaXMuZHJpbGxEb3duUGFnZUluZm87XHJcbiAgICB0aGlzLmRvSnVuaW9yQWN0aW9uKCRldmVudCk7XHJcbiAgfVxyXG5cclxuICBkcmlsbERvd24oKSB7XHJcbiAgICBjb25zdCBkcmlsbGRvd25hY3Rpb24gPSBEUklMTF9ET1dOX0FDVElPTjtcclxuICAgIGRyaWxsZG93bmFjdGlvbi5wYWdlSW5mbyA9IHRoaXMuZHJpbGxEb3duUGFnZUluZm87XHJcbiAgICB0aGlzLmRvQURyaWxsRG93bkFjdGlvbihkcmlsbGRvd25hY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkb0p1bmlvckFjdGlvbigkZXZlbnQ6IFRhYmxlUGFnZVVzZXJBY3Rpb24pIHtcclxuICAgIHRoaXMuanVuaW9yQ29sdW1ucyA9IHRoaXMub3JpZ2luYWxDb2x1bW5zXHJcbiAgICBpZiAodGhpcy5qdW5pb3JDb2x1bW5zICYmIHRoaXMuanVuaW9yUGFnZUluZm8pIHtcclxuICAgICAgaWYgKHRoaXMuZW5yaWNoSnVuaW9yUmVwb3J0UmVxdWVzdCkge1xyXG5cclxuICAgICAgICB0aGlzLmlzRWRpdGFibGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmp1bmlvclJlcG9ydFJlcXVlc3QgPSB0aGlzLmJhY2tlbmRTZXJ2aWNlLmJ1aWxkUmVwb3J0UmVxdWVzdCh0aGlzLmp1bmlvckNvbHVtbnMsXHJcbiAgICAgICAgICB0aGlzLmp1bmlvclBhZ2VJbmZvLmxhYmVsc1NlY3Rpb24gKyAnLicgKyB0aGlzLmp1bmlvclBhZ2VJbmZvLmlkLFxyXG4gICAgICAgICAgdGhpcy5yZXBvcnRSZXF1ZXN0LmZpbHRlclJlcXVlc3QsICcnLCB0aGlzLmp1bmlvclBhZ2VJbmZvLCAnTEFORFNDQVBFJyk7XHJcbiAgICAgICAgdGhpcy5lbnJpY2hKdW5pb3JSZXBvcnRSZXF1ZXN0KCRldmVudCwgdGhpcy5qdW5pb3JSZXBvcnRSZXF1ZXN0KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmFjdGl2ZUxldmVsID0gdGhpcy5hY3RpdmVMZXZlbCArMTtcclxuICAgICAgdGhpcy5hZGRPclVwZGF0ZUZpbHRlcih0aGlzLnJlcG9ydFJlcXVlc3QuZmlsdGVyUmVxdWVzdCwge1xyXG4gICAgICAgIGtleTogJ2lTZWNMZXZlbCcsXHJcbiAgICAgICAgZmllbGROYW1lOiAnaVNlY0xldmVsJyxcclxuICAgICAgICB2YWx1ZTogdGhpcy5hY3RpdmVMZXZlbFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBkb0FEcmlsbERvd25BY3Rpb24oJGV2ZW50OiBUYWJsZVBhZ2VVc2VyQWN0aW9uKSB7XHJcblxyXG4gICAgaWYgKHRoaXMuZHJpbGxEb3duQ29sdW1ucyAmJiB0aGlzLmRyaWxsRG93blBhZ2VJbmZvKSB7XHJcbiAgICAgIHRoaXMuZHJpbGxEb3duUmVxdWVzdFN0YWNrLnB1c2goY2xvbmVEZWVwKHRoaXMucmVwb3J0UmVxdWVzdCkpO1xyXG4gICAgICBpZiAodGhpcy5lbnJpY2hEcmlsbERvd25SZXBvcnRSZXF1ZXN0KSB7XHJcbiAgICAgICAgdGhpcy5pc0VkaXRhYmxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jaGlsZFJlcG9ydFJlcXVlc3QgPSB0aGlzLmJhY2tlbmRTZXJ2aWNlLmJ1aWxkUmVwb3J0UmVxdWVzdCh0aGlzLmRyaWxsRG93bkNvbHVtbnMsXHJcbiAgICAgICAgICB0aGlzLmRyaWxsRG93blBhZ2VJbmZvLmxhYmVsc1NlY3Rpb24gKyAnLicgKyB0aGlzLmRyaWxsRG93blBhZ2VJbmZvLmlkLFxyXG4gICAgICAgICAgdGhpcy5yZXBvcnRSZXF1ZXN0LmZpbHRlclJlcXVlc3QsICcnLCB0aGlzLmRyaWxsRG93blBhZ2VJbmZvLCAnTEFORFNDQVBFJyk7XHJcbiAgICAgICAgdGhpcy5lbnJpY2hEcmlsbERvd25SZXBvcnRSZXF1ZXN0KCRldmVudCwgdGhpcy5jaGlsZFJlcG9ydFJlcXVlc3QpO1xyXG5cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNoaWxkUmVwb3J0UmVxdWVzdC5maWx0ZXJSZXF1ZXN0LnBhZ2VTaXplID0gNTAwXHJcbiAgICAgIHRoaXMuYWN0aXZlTGV2ZWwgPSB0aGlzLmFjdGl2ZUxldmVsICsxO1xyXG4gICAgICB0aGlzLmFkZE9yVXBkYXRlRmlsdGVyKHRoaXMucmVwb3J0UmVxdWVzdC5maWx0ZXJSZXF1ZXN0LCB7XHJcbiAgICAgICAga2V5OiAnaVNlY0xldmVsJyxcclxuICAgICAgICBmaWVsZE5hbWU6ICdpU2VjTGV2ZWwnLFxyXG4gICAgICAgIHZhbHVlOiB0aGlzLmFjdGl2ZUxldmVsXHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAodGhpcy5pc0NvbXBhcmlzb25SZXBvcnQpe1xyXG4gICAgICAgIHRoaXMuYWRkT3JVcGRhdGVGaWx0ZXIodGhpcy5yZXBvcnRSZXF1ZXN0LmZpbHRlclJlcXVlc3QsIHtcclxuICAgICAgICAgIGlkOiAnaVNlY1ZhbHVlJyxcclxuICAgICAgICAgIGtleTogJ2lTZWNWYWx1ZScsXHJcbiAgICAgICAgICBmaWVsZE5hbWU6ICdpU2VjVmFsdWUnLFxyXG4gICAgICAgICAgdmFsdWU6ICRldmVudC5pdGVtLmlzZWNfdmFsdWVcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuYWN0aXZlTGV2ZWwgPT09IDQpIHtcclxuICAgICAgICB0aGlzLmRyaWxsRG93bkNvbHVtbnMgPSB0aGlzLmRyaWxsRG93bkNvbHVtbnMuZmlsdGVyKGl0ZW0gPT4gaXRlbS50eXBlICE9PSAnYnV0dG9uJyk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yZWxvYWREYXRhID0gdHJ1ZVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRPclVwZGF0ZUZpbHRlcihcclxuICAgIGZpbHRlclJlcXVlc3Q6IEZpbHRlclJlcXVlc3QsXHJcbiAgICBvcHRpb25zOiB7XHJcbiAgICAgIGlkPzogc3RyaW5nO1xyXG4gICAgICBrZXk6IHN0cmluZztcclxuICAgICAgZmllbGROYW1lOiBzdHJpbmc7XHJcbiAgICAgIHZhbHVlOiBhbnk7XHJcbiAgICB9XHJcbiAgKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IGlkLCBrZXksIGZpZWxkTmFtZSwgdmFsdWUgfSA9IG9wdGlvbnM7XHJcblxyXG4gICAgY29uc3QgZXhpc3RpbmdGaWx0ZXJJbmRleCA9IGZpbHRlclJlcXVlc3QuZmlsdGVycy5maW5kSW5kZXgoKGZpbHRlcjogRmlsdGVyKSA9PlxyXG4gICAgICBpZCA/IGZpbHRlci5pZCA9PT0gaWQgOiBmaWx0ZXIua2V5ID09PSBrZXlcclxuICAgICk7XHJcblxyXG4gICAgY29uc3QgbmV3RmlsdGVyID0gbmV3IEZpbHRlcih7XHJcbiAgICAgIC4uLihpZCAmJiB7IGlkIH0pLFxyXG4gICAgICBrZXksXHJcbiAgICAgIGZpZWxkTmFtZSxcclxuICAgICAgbGFiZWw6ICcnLFxyXG4gICAgICBmaWx0ZXJUeXBlOiAnRklMRURfRklMVEVSJyxcclxuICAgICAgb3BlcmF0b3I6ICdFUVVBTFMnLFxyXG4gICAgICB2YWx1ZU9iamVjdDogdmFsdWVcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChleGlzdGluZ0ZpbHRlckluZGV4ICE9PSAtMSkge1xyXG4gICAgICBmaWx0ZXJSZXF1ZXN0LmZpbHRlcnNbZXhpc3RpbmdGaWx0ZXJJbmRleF0gPSBuZXdGaWx0ZXI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBmaWx0ZXJSZXF1ZXN0LmZpbHRlcnMucHVzaChuZXdGaWx0ZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkb0h5cGVyTGlua0FjdGlvbigkZXZlbnQ6IFRhYmxlUGFnZVVzZXJBY3Rpb24pIHtcclxuICAgIGlmICh0aGlzLmVucmljaEh5cGVyTGlua1JlcG9ydFJlcXVlc3QpIHtcclxuICAgICAgdGhpcy5qdW5pb3JSZXBvcnRSZXF1ZXN0ID0gdGhpcy5iYWNrZW5kU2VydmljZS5idWlsZFJlcG9ydFJlcXVlc3QodGhpcy5qdW5pb3JDb2x1bW5zLFxyXG4gICAgICAgIHRoaXMuanVuaW9yUGFnZUluZm8ubGFiZWxzU2VjdGlvbiArICcuJyArIHRoaXMuanVuaW9yUGFnZUluZm8uaWQsXHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZXBvcnRSZXF1ZXN0LmZpbHRlclJlcXVlc3QsICcnLCB0aGlzLmp1bmlvclBhZ2VJbmZvLCAnTEFORFNDQVBFJyk7XHJcbiAgICAgIHRoaXMuZW5yaWNoSHlwZXJMaW5rUmVwb3J0UmVxdWVzdCgkZXZlbnQsIHRoaXMuanVuaW9yUmVwb3J0UmVxdWVzdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBleHRyYWN0UmVwb3J0KHJlcG9ydFR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5yZXBvcnRSZXF1ZXN0LnJlcG9ydFR5cGUgPSByZXBvcnRUeXBlO1xyXG4gICAgdGhpcy5iYWNrZW5kU2VydmljZS5kb3dubG9hZFJlcG9ydCh0aGlzLnJlcG9ydFJlcXVlc3QsIHRoaXMuZHJpbGxEb3duUGFnZUluZm8uYXBpVXJpICk7XHJcblxyXG4gIH1cclxuXHJcbiAgZ29VcCgpIHtcclxuICAgIE9iamVjdC5rZXlzKHRoaXMucmVwb3J0Rm9ybS5jb250cm9scykuZm9yRWFjaChjb250cm9sTmFtZSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLnJlcG9ydEZvcm0uZ2V0KGNvbnRyb2xOYW1lKTtcclxuICAgICAgY29udHJvbD8uY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICAgIGNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5pc0VkaXRhYmxlID0gdHJ1ZTtcclxuICAgIHRoaXMuYWN0aXZlTGV2ZWwgPSB0aGlzLmFjdGl2ZUxldmVsIC0gMTtcclxuICAgIGlmICh0aGlzLmFjdGl2ZUxldmVsID4gMSApIHtcclxuICAgICAgdGhpcy5pc0VkaXRhYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRvQWN0aW9uKHRoaXMueCk7XHJcbiAgICB0aGlzLnJlcG9ydFJlcXVlc3QgPSB0aGlzLmRyaWxsRG93blJlcXVlc3RTdGFjay5wb3AoKTtcclxuICAgIHRoaXMuYWRkT3JVcGRhdGVGaWx0ZXIodGhpcy5yZXBvcnRSZXF1ZXN0LmZpbHRlclJlcXVlc3QsIHtcclxuICAgICAga2V5OiAnaVNlY0xldmVsJyxcclxuICAgICAgZmllbGROYW1lOiAnaVNlY0xldmVsJyxcclxuICAgICAgdmFsdWU6IHRoaXMuYWN0aXZlTGV2ZWxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5yZWxvYWREYXRhID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmFjdGl2ZUxldmVsICE9PSA0KSB7XHJcbiAgICAgIHRoaXMuZHJpbGxEb3duQ29sdW1ucyA9IFsuLi50aGlzLm9yaWdpbmFsQ29sdW1uc107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZHJpbGxEb3duRW5hYmxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRyaWxsRG93blBhZ2VJbmZvICYmICF0aGlzLmhpZGVEcmlsbERvd25CdXR0b24gJiYgIXRoaXMuZ2V0SXNFbXB0eUxpc3QoKTtcclxuICB9XHJcblxyXG4gIGRyaWxsRG93bkxhYmVsKCkge1xyXG4gICAgcmV0dXJuIGAke3RoaXMucGFnZUluZm8ubGFiZWxzU2VjdGlvbn0uZHJpbGxEb3duTGFiZWxgIDtcclxuICB9XHJcbiAgZ2V0SXNFbXB0eUxpc3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kU2VydmljZS5pc0VtcHR5SXRlbXM7XHJcbiAgfVxyXG4gIGNsZWFyKCkge1xyXG4gICAgY29uc3QgY3VycmVudFVybCA9IHRoaXMucm91dGVyLnVybDtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy8nLCB7IHNraXBMb2NhdGlvbkNoYW5nZTogdHJ1ZSB9KS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2N1cnJlbnRVcmxdKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIGlzRm9ybUVtcHR5KCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLnJlcG9ydEZvcm0gfHwgIXRoaXMucmVwb3J0Rm9ybS52YWx1ZSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLnJlcG9ydEZvcm0udmFsdWUpLmV2ZXJ5KHZhbHVlID0+IHtcclxuICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMDtcclxuXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNob3VsZFByb2Nlc3NFdmVudEl0ZW0oaXRlbTogYW55KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBncm91cEJ5UHJvcCA9IHRoaXMucGFnZUluZm8/Lmdyb3VwQnlQcm9wZXJ0eTtcclxuICAgIGNvbnN0IGdyb3VwQnlWYWx1ZXMgPSB0aGlzLnBhZ2VJbmZvPy5ncm91cEJ5VmFsdWU7XHJcblxyXG4gICAgaWYgKCFncm91cEJ5UHJvcCB8fCAhZ3JvdXBCeVZhbHVlcyB8fCAhaXRlbVtncm91cEJ5UHJvcF0pIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdmFsdWUgPSBpdGVtW2dyb3VwQnlQcm9wXS50b1N0cmluZygpO1xyXG5cclxuICAgIHJldHVybiAhZ3JvdXBCeVZhbHVlcy5zb21lKHYgPT4gdmFsdWUuaW5jbHVkZXModikgJiYgdmFsdWUubGVuZ3RoID49IHYubGVuZ3RoKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwYWdlLWNvbnRhaW5lclwiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwicm93IHJvdy1jZW50ZXItc3RhcnQgbWItMTBweCBmdWxsLXdpZHRoXCI+XHJcbiAgICA8YXBwLXRpdGxlLWJhciBbcGFnZVRpdGxlXT1cImdldFRpdGxlKClcIiBbbmV3QWN0aW9uXT1cImZhbHNlXCI+PC9hcHAtdGl0bGUtYmFyPlxyXG4gICAgPG1hdC1pY29uICpuZ0lmPVwicGFnZUluZm8/Lmhhc0hpbnRcIlxyXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInBhZ2VJbmZvLmxhYmVsc1NlY3Rpb24gKyAnLmhpbnQnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJyaWdodFwiXHJcbiAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImhlbHAtaWNvblwiXHJcbiAgICAgICAgICAgICAgbWF0VG9vbHRpcENsYXNzPVwiY3VzdG9tLXRvb2x0aXBcIj5cclxuICAgICAgaGVscF9vdXRsaW5lXHJcbiAgICA8L21hdC1pY29uPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8YXBwLWJhc2UtZm9ybS1jYW52YXNcclxuICAgIFtwYWdlSW5mb109XCJwYWdlSW5mb1wiXHJcbiAgICBbZmllbGRzXT1cImZpZWxkc1wiXHJcbiAgICBbZWRpdGFibGVdPVwiaXNFZGl0YWJsZVwiXHJcbiAgICBbZXJyb3JzXT1cImVycm9yc1wiXHJcbiAgICBbaXRlbV09XCJyZXBvcnRGb3JtPy52YWx1ZSB8fCB7fVwiXHJcbiAgICAoZm9ybVVwZGF0ZWQpPVwidXBkYXRlRm9ybSgkZXZlbnQpXCI+XHJcbiAgPC9hcHAtYmFzZS1mb3JtLWNhbnZhcz5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInJvdyBtYWluLWZvcm0tY2FudmFzIG10LTN2aFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbHVtbiBmbGV4LTQ5XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcm93LWNlbnRlci1zdGFydFwiPlxyXG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJhY3RpdmVMZXZlbCA9PT0gMVwiIGNvbG9yPVwicHJpbWFyeVwiIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwiZG9BY3Rpb24oeClcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc1ZhbGlkRm9ybSgpXCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgaWQ9XCJhY3Rpdml0eS1nZW5lcmF0ZS1idG5cIj5cclxuICAgICAgICAgIHt7ICdSRVBPUlRTLmdlbmVyYXRlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBbZGlzYWJsZWRdPVwiZ2V0SXNFbXB0eUxpc3QoKVwiXHJcbiAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIiBjbGFzcz1cImJ0bi1ub25lLWJhY2tncm91bmQtcHJpbWFyeSBhY3Rpb24tYnV0dG9uXCIgaWQ9XCJhY3Rpdml0eS1leHRyYWN0LXRyaWdnZXJcIj5cclxuICAgICAgICAgIHt7ICdleHRyYWN0JyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZXhwYW5kX21vcmUgYWN0aW9uQnV0dG9uX19leHBhbmRcIj5leHBhbmRfbW9yZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cImNsZWFyKClcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRm9ybUVtcHR5KCkgfHwgYWN0aXZlTGV2ZWwgPiAxXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiIGlkPVwiYWN0aXZpdHktY2xlYXItYnRuXCI+XHJcbiAgICAgICAgICB7eyAnUkVQT1JUUy5jbGVhcicgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiYWN0aXZlTGV2ZWwgPT09IDEgJiYgZHJpbGxEb3duRW5hYmxlZCgpXCIgY29sb3I9XCJ3YXJuXCIgbWF0LWZsYXQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZHJpbGxEb3duKClcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIiBpZD1cImFjdGl2aXR5LWRyaWxsZG93bi1idG5cIj5cclxuICAgICAgICAgIHt7IGRyaWxsRG93bkxhYmVsKCkgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiYWN0aXZlTGV2ZWwgPiAxICYmICEoaXNDb21wYXJpc29uUmVwb3J0ICYmIGFjdGl2ZUxldmVsID09IDIpXCIgY29sb3I9XCJ3YXJuXCJcclxuICAgICAgICAgICAgICAgIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwiZ29VcCgpXCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgaWQ9XCJhY3Rpdml0eS11cC1idG5cIj5cclxuICAgICAgICAgIHt7ICdSRVBPUlRTLnVwJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbHVtbiBmbGV4LTQ5XCI+PC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gQmFzZSB0YWJsZXMgLS0+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZUxldmVsID09PSAxXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG1haW4tZm9ybS1jYW52YXMgbXQtM3ZoXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4gZmxleC0xMDBcIj5cclxuICAgICAgICA8YXBwLWJhc2UtdGFibGUgW3BhZ2VJbmZvXT1cInBhZ2VJbmZvXCIgW2NvbHVtbnNdPVwiY29sdW1uc0RlZmluaXRpb25cIiBbZW5mb3JjZVJlZnJlc2hdPVwicmVsb2FkRGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwicGFyZW50XCIgW3JlcG9ydFJlcXVlc3RdPVwicmVwb3J0UmVxdWVzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICh1c2VyQWN0aW9uKT1cImVtaXRVc2VyQWN0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoaHlwZXJMaW5rQWN0aW9uKT1cImVtaXRIeXBlckxpbmtBY3Rpb24oJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvYXBwLWJhc2UtdGFibGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3RpdmVMZXZlbCA9PT0gMlwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBtYWluLWZvcm0tY2FudmFzIG10LTN2aFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uIGZsZXgtMTAwXCI+XHJcbiAgICAgICAgPGFwcC1iYXNlLXRhYmxlIFtwYWdlSW5mb109XCJkcmlsbERvd25QYWdlSW5mb1wiIFtjb2x1bW5zXT1cImRyaWxsRG93bkNvbHVtbnNcIiBpZD1cImNoaWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlcG9ydFJlcXVlc3RdPVwicmVwb3J0UmVxdWVzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICh1c2VyQWN0aW9uKT1cImVtaXRVc2VyQWN0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoaHlwZXJMaW5rQWN0aW9uKT1cImVtaXRIeXBlckxpbmtBY3Rpb24oJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvYXBwLWJhc2UtdGFibGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3RpdmVMZXZlbCA9PT0gM1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBtYWluLWZvcm0tY2FudmFzIG10LTN2aFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uIGZsZXgtMTAwXCI+XHJcbiAgICAgICAgPGFwcC1iYXNlLXRhYmxlIFtwYWdlSW5mb109XCJkcmlsbERvd25QYWdlSW5mb1wiIFtjb2x1bW5zXT1cImRyaWxsRG93bkNvbHVtbnNcIiBpZD1cImp1bmlvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyZXBvcnRSZXF1ZXN0XT1cInJlcG9ydFJlcXVlc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAodXNlckFjdGlvbik9XCJlbWl0VXNlckFjdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGh5cGVyTGlua0FjdGlvbik9XCJlbWl0SHlwZXJMaW5rQWN0aW9uKCRldmVudClcIj5cclxuICAgICAgICA8L2FwcC1iYXNlLXRhYmxlPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aXZlTGV2ZWwgPT09IDRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWFpbi1mb3JtLWNhbnZhcyBtdC0zdmhcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbiBmbGV4LTEwMFwiPlxyXG4gICAgICAgIDxhcHAtYmFzZS10YWJsZSBbcGFnZUluZm9dPVwiZHJpbGxEb3duUGFnZUluZm9cIiBbY29sdW1uc109XCJkcmlsbERvd25Db2x1bW5zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlcG9ydFJlcXVlc3RdPVwicmVwb3J0UmVxdWVzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICh1c2VyQWN0aW9uKT1cImVtaXRVc2VyQWN0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoaHlwZXJMaW5rQWN0aW9uKT1cImVtaXRIeXBlckxpbmtBY3Rpb24oJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvYXBwLWJhc2UtdGFibGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG48L2Rpdj5cclxuXHJcbjwhLS0gTWVudSAtLT5cclxuPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxyXG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1tZW51LWl0ZW0gKm5nRm9yPVwibGV0IHR5cGUgb2YgdHlwZXNcIiAoY2xpY2spPVwiZXh0cmFjdFJlcG9ydCh0eXBlKVwiIFthdHRyLmlkXT1cIidhY3Rpdml0eS1leHRyYWN0LWl0ZW0tJyArIHR5cGVcIj5cclxuICAgIHt7IHR5cGUgfX1cclxuICA8L2J1dHRvbj5cclxuPC9tYXQtbWVudT5cclxuIl19
|