@onecx/angular-accelerator 5.23.6 → 5.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/data-list-grid/data-list-grid.component.mjs +3 -3
- package/esm2022/lib/components/data-table/data-table.component.mjs +3 -3
- package/esm2022/lib/components/data-view/data-view.component.mjs +1 -1
- package/esm2022/lib/components/interactive-data-view/interactive-data-view.component.mjs +1 -1
- package/esm2022/lib/components/search-header/search-header.component.mjs +19 -14
- package/esm2022/lib/model/data-action.mjs +1 -1
- package/fesm2022/onecx-angular-accelerator.mjs +13 -10
- package/fesm2022/onecx-angular-accelerator.mjs.map +1 -1
- package/lib/components/data-list-grid/data-list-grid.component.d.ts +3 -3
- package/lib/components/data-table/data-table.component.d.ts +3 -3
- package/lib/components/data-view/data-view.component.d.ts +3 -3
- package/lib/components/interactive-data-view/interactive-data-view.component.d.ts +4 -4
- package/lib/components/search-header/search-header.component.d.ts +4 -2
- package/lib/model/data-action.d.ts +1 -1
- package/package.json +1 -1
|
@@ -718,4 +718,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
718
718
|
}], data: [{
|
|
719
719
|
type: Input
|
|
720
720
|
}] } });
|
|
721
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUtZGF0YS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1hY2NlbGVyYXRvci9zcmMvbGliL2NvbXBvbmVudHMvaW50ZXJhY3RpdmUtZGF0YS12aWV3L2ludGVyYWN0aXZlLWRhdGEtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2ludGVyYWN0aXZlLWRhdGEtdmlldy9pbnRlcmFjdGl2ZS1kYXRhLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUdOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQ0wsZUFBZSxFQUVmLGFBQWEsRUFDYixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLEdBQUcsRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUNULGNBQWMsR0FDZixNQUFNLE1BQU0sQ0FBQTtBQUliLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBS3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFNM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBSTlELE9BQU8sRUFBRSxpQkFBaUIsRUFBMkMsTUFBTSxrQ0FBa0MsQ0FBQTtBQUU3RyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMEJBQTBCLENBQUE7Ozs7Ozs7Ozs7OztBQW9CaEQsTUFBTSxPQUFPLDRCQUE0QjtJQUV2QyxJQUFrQyxRQUFRLENBQUMsR0FBa0M7UUFDM0UsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEdBQUcsQ0FBQTtRQUM3QixJQUFJ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QyxZQUFZO3VCQUFDLGlCQUFpQjtnQkFDUSxxQkFBcUI7c0JBQTNELFlBQVk7dUJBQUMsdUJBQXVCO2dCQU1KLGVBQWU7c0JBQS9DLFlBQVk7dUJBQUMsaUJBQWlCO2dCQUNFLGVBQWU7c0JBQS9DLFlBQVk7dUJBQUMsaUJBQWlCO2dCQUNBLGFBQWE7c0JBQTNDLFlBQVk7dUJBQUMsZUFBZTtnQkFDSSxlQUFlO3NCQUEvQyxZQUFZO3VCQUFDLGlCQUFpQjtnQkFDTSxtQkFBbUI7c0JBQXZELFlBQVk7dUJBQUMscUJBQXFCO2dCQUNVLDJCQUEyQjtzQkFBdkUsWUFBWTt1QkFBQyw2QkFBNkI7Z0JBQ0ksNkJBQTZCO3NCQUEzRSxZQUFZO3VCQUFDLCtCQUErQjtnQkFDTixxQkFBcUI7c0JBQTNELFlBQVk7dUJBQUMsdUJBQXVCO2dCQUNFLHFCQUFxQjtzQkFBM0QsWUFBWTt1QkFBQyx1QkFBdUI7Z0JBTUUscUJBQXFCO3NCQUEzRCxZQUFZO3VCQUFDLHVCQUF1QjtnQkFNakMsU0FBUztzQkFEWixlQUFlO3VCQUFDLGFBQWE7Z0JBS3BCLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFFRyxzQkFBc0I7c0JBQS9CLE1BQU07Z0JBQ0cseUJBQXlCO3NCQUFsQyxNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFFRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBRUcscUJBQXFCO3NCQUE5QixNQUFNO2dCQWVILFNBQVM7c0JBRFosS0FBSztnQkFnR0YsSUFBSTtzQkFEUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgT2JzZXJ2YWJsZSxcbiAgUmVwbGF5U3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG1hcCxcbiAgc3RhcnRXaXRoLFxuICB0aW1lc3RhbXAsXG4gIHdpdGhMYXRlc3RGcm9tLFxufSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgRGF0YUFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVsL2RhdGEtYWN0aW9uJ1xuaW1wb3J0IHsgRGF0YVNvcnREaXJlY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbC9kYXRhLXNvcnQtZGlyZWN0aW9uJ1xuaW1wb3J0IHsgRGF0YVRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vLi4vbW9kZWwvZGF0YS10YWJsZS1jb2x1bW4ubW9kZWwnXG5pbXBvcnQgeyBvcmRlckFuZE1lcmdlVmFsdWVzQnlUaW1lc3RhbXAgfSBmcm9tICcuLi8uLi91dGlscy9yeGpzLXV0aWxzJ1xuaW1wb3J0IHtcbiAgQ29sdW1uR3JvdXBTZWxlY3Rpb25Db21wb25lbnRTdGF0ZSxcbiAgR3JvdXBTZWxlY3Rpb25DaGFuZ2VkRXZlbnQsXG59IGZyb20gJy4uL2NvbHVtbi1ncm91cC1zZWxlY3Rpb24vY29sdW1uLWdyb3VwLXNlbGVjdGlvbi5jb21wb25lbnQnXG5pbXBvcnQgeyBQcmltZVRlbXBsYXRlIH0gZnJvbSAncHJpbWVuZy9hcGknXG5pbXBvcnQge1xuICBBY3Rpb25Db2x1bW5DaGFuZ2VkRXZlbnQsXG4gIENvbHVtblNlbGVjdGlvbkNoYW5nZWRFdmVudCxcbiAgQ3VzdG9tR3JvdXBDb2x1bW5TZWxlY3RvckNvbXBvbmVudFN0YXRlLFxufSBmcm9tICcuLi9jdXN0b20tZ3JvdXAtY29sdW1uLXNlbGVjdG9yL2N1c3RvbS1ncm91cC1jb2x1bW4tc2VsZWN0b3IuY29tcG9uZW50J1xuaW1wb3J0IHsgU2xvdFNlcnZpY2UgfSBmcm9tICdAb25lY3gvYW5ndWxhci1yZW1vdGUtY29tcG9uZW50cydcbmltcG9ydCB7IERhdGFMYXlvdXRTZWxlY3Rpb25Db21wb25lbnRTdGF0ZSB9IGZyb20gJy4uL2RhdGEtbGF5b3V0LXNlbGVjdGlvbi9kYXRhLWxheW91dC1zZWxlY3Rpb24uY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YUxpc3RHcmlkU29ydGluZ0NvbXBvbmVudFN0YXRlIH0gZnJvbSAnLi4vZGF0YS1saXN0LWdyaWQtc29ydGluZy9kYXRhLWxpc3QtZ3JpZC1zb3J0aW5nLmNvbXBvbmVudCdcbmltcG9ydCB7IFJvdywgU29ydCB9IGZyb20gJy4uL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhVmlld0NvbXBvbmVudCwgRGF0YVZpZXdDb21wb25lbnRTdGF0ZSwgUm93TGlzdEdyaWREYXRhIH0gZnJvbSAnLi4vZGF0YS12aWV3L2RhdGEtdmlldy5jb21wb25lbnQnXG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICcuLi8uLi9tb2RlbC9maWx0ZXIubW9kZWwnXG5pbXBvcnQgeyBsaW1pdCB9IGZyb20gJy4uLy4uL3V0aWxzL2ZpbHRlci51dGlscydcbmltcG9ydCB7IEZpbHRlclZpZXdDb21wb25lbnRTdGF0ZSwgRmlsdGVyVmlld0Rpc3BsYXlNb2RlIH0gZnJvbSAnLi4vZmlsdGVyLXZpZXcvZmlsdGVyLXZpZXcuY29tcG9uZW50J1xuXG5leHBvcnQgdHlwZSBJbnRlcmFjdGl2ZURhdGFWaWV3Q29tcG9uZW50U3RhdGUgPSBDb2x1bW5Hcm91cFNlbGVjdGlvbkNvbXBvbmVudFN0YXRlICZcbiAgQ3VzdG9tR3JvdXBDb2x1bW5TZWxlY3RvckNvbXBvbmVudFN0YXRlICZcbiAgRGF0YUxheW91dFNlbGVjdGlvbkNvbXBvbmVudFN0YXRlICZcbiAgRGF0YUxpc3RHcmlkU29ydGluZ0NvbXBvbmVudFN0YXRlICZcbiAgRGF0YVZpZXdDb21wb25lbnRTdGF0ZSAmXG4gIEZpbHRlclZpZXdDb21wb25lbnRTdGF0ZVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbkdyb3VwRGF0YSB7XG4gIGFjdGl2ZUNvbHVtbnM6IERhdGFUYWJsZUNvbHVtbltdXG4gIGdyb3VwS2V5OiBzdHJpbmdcbn1cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29jeC1pbnRlcmFjdGl2ZS1kYXRhLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW50ZXJhY3RpdmUtZGF0YS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW50ZXJhY3RpdmUtZGF0YS12aWV3LmNvbXBvbmVudC5jc3MnXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiAnSW50ZXJhY3RpdmVEYXRhVmlld0NvbXBvbmVudCcsIHVzZUV4aXN0aW5nOiBJbnRlcmFjdGl2ZURhdGFWaWV3Q29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBJbnRlcmFjdGl2ZURhdGFWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgX2RhdGFWaWV3Q29tcG9uZW50OiBEYXRhVmlld0NvbXBvbmVudCB8IHVuZGVmaW5lZFxuICBAVmlld0NoaWxkKERhdGFWaWV3Q29tcG9uZW50KSBzZXQgZGF0YVZpZXcocmVmOiBEYXRhVmlld0NvbXBvbmVudCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2RhdGFWaWV3Q29tcG9uZW50ID0gcmVmXG4gICAgdGhpcy5yZWdpc3RlckV2ZW50TGlzdGVuZXJGb3JEYXRhVmlldygpXG4gIH1cbiAgZ2V0IGRhdGFWaWV3KCk6IERhdGFWaWV3Q29tcG9uZW50IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVZpZXdDb21wb25lbnRcbiAgfVxuXG4gIGNvbHVtbkdyb3VwU2VsZWN0aW9uQ29tcG9uZW50U3RhdGUkID0gbmV3IFJlcGxheVN1YmplY3Q8Q29sdW1uR3JvdXBTZWxlY3Rpb25Db21wb25lbnRTdGF0ZT4oMSlcbiAgY3VzdG9tR3JvdXBDb2x1bW5TZWxlY3RvckNvbXBvbmVudFN0YXRlJCA9IG5ldyBSZXBsYXlTdWJqZWN0PEN1c3RvbUdyb3VwQ29sdW1uU2VsZWN0b3JDb21wb25lbnRTdGF0ZT4oMSlcbiAgZGF0YUxheW91dENvbXBvbmVudFN0YXRlJCA9IG5ldyBSZXBsYXlTdWJqZWN0PERhdGFMYXlvdXRTZWxlY3Rpb25Db21wb25lbnRTdGF0ZT4oMSlcbiAgZGF0YUxpc3RHcmlkU29ydGluZ0NvbXBvbmVudFN0YXRlJCA9IG5ldyBSZXBsYXlTdWJqZWN0PERhdGFMaXN0R3JpZFNvcnRpbmdDb21wb25lbnRTdGF0ZT4oMSlcbiAgZGF0YVZpZXdDb21wb25lbnRTdGF0ZSQgPSBuZXcgUmVwbGF5U3ViamVjdDxEYXRhVmlld0NvbXBvbmVudFN0YXRlPigxKVxuICBmaWx0ZXJWaWV3Q29tcG9uZW50U3RhdGUkID0gbmV3IFJlcGxheVN1YmplY3Q8RmlsdGVyVmlld0NvbXBvbmVudFN0YXRlPigxKVxuXG4gIEBJbnB1dCgpIHNlYXJjaENvbmZpZ1Blcm1pc3Npb246IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSBkZWxldGVQZXJtaXNzaW9uOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgQElucHV0KCkgZWRpdFBlcm1pc3Npb246IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSB2aWV3UGVybWlzc2lvbjogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpIGRlbGV0ZUFjdGlvblZpc2libGVGaWVsZDogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpIGRlbGV0ZUFjdGlvbkVuYWJsZWRGaWVsZDogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpIHZpZXdBY3Rpb25WaXNpYmxlRmllbGQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSB2aWV3QWN0aW9uRW5hYmxlZEZpZWxkOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgQElucHV0KCkgZWRpdEFjdGlvblZpc2libGVGaWVsZDogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpIGVkaXRBY3Rpb25FbmFibGVkRmllbGQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSB0YWJsZVNlbGVjdGlvbkVuYWJsZWRGaWVsZDogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpIHRhYmxlQWxsb3dTZWxlY3RBbGwgPSB0cnVlXG4gIEBJbnB1dCgpIG5hbWUgPSAnRGF0YSdcbiAgQElucHV0KCkgdGl0bGVMaW5lSWQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSBzdWJ0aXRsZUxpbmVJZHM6IHN0cmluZ1tdID0gW11cbiAgQElucHV0KCkgc3VwcG9ydGVkVmlld0xheW91dHM6ICgnZ3JpZCcgfCAnbGlzdCcgfCAndGFibGUnKVtdID0gWydncmlkJywgJ2xpc3QnLCAndGFibGUnXVxuICBASW5wdXQoKSBjb2x1bW5zOiBEYXRhVGFibGVDb2x1bW5bXSA9IFtdXG4gIEBJbnB1dCgpIGVtcHR5UmVzdWx0c01lc3NhZ2U6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSBjbGllbnRTaWRlU29ydGluZyA9IHRydWVcbiAgQElucHV0KCkgY2xpZW50U2lkZUZpbHRlcmluZyA9IHRydWVcbiAgQElucHV0KCkgZmFsbGJhY2tJbWFnZSA9ICdwbGFjZWhvbGRlci5wbmcnXG4gIEBJbnB1dCgpIGZpbHRlcnM6IEZpbHRlcltdID0gW11cbiAgQElucHV0KCkgc29ydERpcmVjdGlvbjogRGF0YVNvcnREaXJlY3Rpb24gPSBEYXRhU29ydERpcmVjdGlvbi5OT05FXG4gIEBJbnB1dCgpIHNvcnRGaWVsZDogYW55ID0gJydcbiAgQElucHV0KCkgc29ydFN0YXRlczogRGF0YVNvcnREaXJlY3Rpb25bXSA9IFtcbiAgICBEYXRhU29ydERpcmVjdGlvbi5BU0NFTkRJTkcsXG4gICAgRGF0YVNvcnREaXJlY3Rpb24uREVTQ0VORElORyxcbiAgICBEYXRhU29ydERpcmVjdGlvbi5OT05FLFxuICBdXG4gIEBJbnB1dCgpIHBhZ2VTaXplczogbnVtYmVyW10gPSBbMTAsIDI1LCA1MF1cbiAgQElucHV0KCkgcGFnZVNpemU6IG51bWJlciB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSB0b3RhbFJlY29yZHNPblNlcnZlcjogbnVtYmVyIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpIGxheW91dDogJ2dyaWQnIHwgJ2xpc3QnIHwgJ3RhYmxlJyA9ICd0YWJsZSdcbiAgQElucHV0KCkgZGVmYXVsdEdyb3VwS2V5ID0gJydcbiAgQElucHV0KCkgY3VzdG9tR3JvdXBLZXkgPSAnT0NYX0lOVEVSQUNUSVZFX0RBVEFfVklFVy5DVVNUT01fR1JPVVAnXG4gIEBJbnB1dCgpIGdyb3VwU2VsZWN0aW9uTm9Hcm91cFNlbGVjdGVkS2V5ID0gJ09DWF9JTlRFUkFDVElWRV9EQVRBX1ZJRVcuTk9fR1JPVVBfU0VMRUNURUQnXG4gIEBJbnB1dCgpIGN1cnJlbnRQYWdlU2hvd2luZ0tleSA9ICdPQ1hfREFUQV9UQUJMRS5TSE9XSU5HJ1xuICBASW5wdXQoKSBjdXJyZW50UGFnZVNob3dpbmdXaXRoVG90YWxPblNlcnZlcktleSA9ICdPQ1hfREFUQV9UQUJMRS5TSE9XSU5HX1dJVEhfVE9UQUxfT05fU0VSVkVSJ1xuICBASW5wdXQoKSBhZGRpdGlvbmFsQWN0aW9uczogRGF0YUFjdGlvbltdID0gW11cbiAgQElucHV0KCkgbGlzdEdyaWRQYWdpbmF0b3IgPSB0cnVlXG4gIEBJbnB1dCgpIHRhYmxlUGFnaW5hdG9yID0gdHJ1ZVxuICBASW5wdXQoKSBkaXNhYmxlRmlsdGVyVmlldyA9IHRydWVcbiAgQElucHV0KCkgZmlsdGVyVmlld0Rpc3BsYXlNb2RlOiBGaWx0ZXJWaWV3RGlzcGxheU1vZGUgPSAnYnV0dG9uJ1xuICBASW5wdXQoKSBmaWx0ZXJWaWV3Q2hpcFN0eWxlQ2xhc3MgPSAnJ1xuICBASW5wdXQoKSBmaWx0ZXJWaWV3VGFibGVTdHlsZTogeyBba2xhc3M6IHN0cmluZ106IGFueSB9ID0geyAnbWF4LWhlaWdodCc6ICc1MHZoJyB9XG4gIEBJbnB1dCgpIGZpbHRlclZpZXdQYW5lbFN0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gPSB7ICdtYXgtd2lkdGgnOiAnOTAlJyB9XG4gIEBJbnB1dCgpIHNlbGVjdERpc3BsYXllZENoaXBzOiAoZmlsdGVyczogRmlsdGVyW10sIGNvbHVtbnM6IERhdGFUYWJsZUNvbHVtbltdKSA9PiBGaWx0ZXJbXSA9IChmaWx0ZXJzKSA9PlxuICAgIGxpbWl0KGZpbHRlcnMsIDMsIHsgcmV2ZXJzZTogdHJ1ZSB9KVxuICBASW5wdXQoKSBwYWdlID0gMFxuICBASW5wdXQoKSBzZWxlY3RlZFJvd3M6IFJvd1tdID0gW11cbiAgZGlzcGxheWVkQ29sdW1uS2V5cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdPihbXSlcbiAgZGlzcGxheWVkQ29sdW1ucyQ6IE9ic2VydmFibGU8RGF0YVRhYmxlQ29sdW1uW10+IHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNwbGF5ZWRDb2x1bW5LZXlzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5ZWRDb2x1bW5LZXlzJC5nZXRWYWx1ZSgpXG4gIH1cbiAgc2V0IGRpc3BsYXllZENvbHVtbktleXModmFsdWU6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5LZXlzJC5uZXh0KHZhbHVlKVxuICB9XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYGRpc3BsYXllZENvbHVtbktleXNgIGFuZCBwYXNzIGluIGNvbHVtbiBpZHMgaW5zdGVhZCBvZiBgRGF0YVRhYmxlQ29sdW1uYCBvYmplY3RzXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgZGlzcGxheWVkQ29sdW1ucygpOiBEYXRhVGFibGVDb2x1bW5bXSB7XG4gICAgcmV0dXJuIChcbiAgICAgICh0aGlzLmRpc3BsYXllZENvbHVtbktleXNcbiAgICAgICAgLm1hcCgoZCkgPT4gdGhpcy5jb2x1bW5zLmZpbmQoKGMpID0+IGMuaWQgPT09IGQpKVxuICAgICAgICAuZmlsdGVyKChkKSA9PiBkKSBhcyBEYXRhVGFibGVDb2x1bW5bXSkgPz8gW11cbiAgICApXG4gIH1cbiAgc2V0IGRpc3BsYXllZENvbHVtbnModmFsdWU6IERhdGFUYWJsZUNvbHVtbltdKSB7XG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5LZXlzJC5uZXh0KHZhbHVlLm1hcCgoZCkgPT4gZC5pZCkpXG4gIH1cbiAgQElucHV0KCkgZnJvemVuQWN0aW9uQ29sdW1uID0gZmFsc2VcbiAgQElucHV0KCkgYWN0aW9uQ29sdW1uUG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcgPSAncmlnaHQnXG4gIEBDb250ZW50Q2hpbGQoJ3RhYmxlQ2VsbCcpIHRhYmxlQ2VsbDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBkYXRlVGFibGVDZWxsXG4gICAqL1xuICBAQ29udGVudENoaWxkKCd0YWJsZURhdGVDZWxsJykgdGFibGVEYXRlQ2VsbDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdkYXRlVGFibGVDZWxsJykgZGF0ZVRhYmxlQ2VsbDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IHJlbGF0aXZlRGF0ZVRhYmxlQ2VsbFxuICAgKi9cbiAgQENvbnRlbnRDaGlsZCgndGFibGVSZWxhdGl2ZURhdGVDZWxsJykgdGFibGVSZWxhdGl2ZURhdGVDZWxsOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ3JlbGF0aXZlRGF0ZVRhYmxlQ2VsbCcpIHJlbGF0aXZlRGF0ZVRhYmxlQ2VsbDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IHRyYW5zbGF0aW9uS2V5VGFibGVDZWxsXG4gICAqL1xuICBAQ29udGVudENoaWxkKCd0YWJsZVRyYW5zbGF0aW9uS2V5Q2VsbCcpIHRhYmxlVHJhbnNsYXRpb25LZXlDZWxsOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ3RyYW5zbGF0aW9uS2V5VGFibGVDZWxsJykgdHJhbnNsYXRpb25LZXlUYWJsZUNlbGw6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcblxuICBAQ29udGVudENoaWxkKCdncmlkSXRlbVN1YnRpdGxlTGluZXMnKSBncmlkSXRlbVN1YnRpdGxlTGluZXM6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZCgnbGlzdEl0ZW1TdWJ0aXRsZUxpbmVzJykgbGlzdEl0ZW1TdWJ0aXRsZUxpbmVzOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ3N0cmluZ1RhYmxlQ2VsbCcpIHN0cmluZ1RhYmxlQ2VsbDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdudW1iZXJUYWJsZUNlbGwnKSBudW1iZXJUYWJsZUNlbGw6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVtb3ZlZCBhbmQgaW5zdGVhZCB0byBjaGFuZ2UgdGhlIHRlbXBsYXRlIG9mIGEgc3BlY2lmaWMgY29sdW1uXG4gICAqIHVzZSB0aGUgbmV3IGFwcHJvYWNoIGluc3RlYWQgYnkgZm9sbG93aW5nIHRoZSBuYW1pbmcgY29udmVudGlvbiBjb2x1bW4gaWQgKyBJZFRhYmxlQ2VsbFxuICAgKiBlLmcuIGZvciBhIGNvbHVtbiB3aXRoIHRoZSBpZCAnc3RhdHVzJyBpbiBEYXRhVGFibGUgdXNlIHBUZW1wbGF0ZT1cInN0YXR1c0lkVGFibGVDZWxsXCJcbiAgICovXG4gIEBDb250ZW50Q2hpbGQoJ2N1c3RvbVRhYmxlQ2VsbCcpIGN1c3RvbVRhYmxlQ2VsbDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdncmlkSXRlbScpIGdyaWRJdGVtOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ2xpc3RJdGVtJykgbGlzdEl0ZW06IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZCgndG9wQ2VudGVyJykgdG9wQ2VudGVyOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ2xpc3RWYWx1ZScpIGxpc3RWYWx1ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCd0cmFuc2xhdGlvbktleUxpc3RWYWx1ZScpIHRyYW5zbGF0aW9uS2V5TGlzdFZhbHVlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ251bWJlckxpc3RWYWx1ZScpIG51bWJlckxpc3RWYWx1ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdyZWxhdGl2ZURhdGVMaXN0VmFsdWUnKSByZWxhdGl2ZURhdGVMaXN0VmFsdWU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVtb3ZlZCBhbmQgaW5zdGVhZCB0byBjaGFuZ2UgdGhlIHRlbXBsYXRlIG9mIGEgc3BlY2lmaWMgY29sdW1uXG4gICAqIHVzZSB0aGUgbmV3IGFwcHJvYWNoIGluc3RlYWQgYnkgZm9sbG93aW5nIHRoZSBuYW1pbmcgY29udmVudGlvbiBjb2x1bW4gaWQgKyBJZExpc3RWYWx1ZVxuICAgKiBlLmcuIGZvciBhIGNvbHVtbiB3aXRoIHRoZSBpZCAnc3RhdHVzJyBEYXRhTGlzdEdyaWQgdXNlIHBUZW1wbGF0ZT1cInN0YXR1c0lkTGlzdFZhbHVlXCJcbiAgICovXG4gIEBDb250ZW50Q2hpbGQoJ2N1c3RvbUxpc3RWYWx1ZScpIGN1c3RvbUxpc3RWYWx1ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdzdHJpbmdMaXN0VmFsdWUnKSBzdHJpbmdMaXN0VmFsdWU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZCgnZGF0ZUxpc3RWYWx1ZScpIGRhdGVMaXN0VmFsdWU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZCgndGFibGVGaWx0ZXJDZWxsJykgdGFibGVGaWx0ZXJDZWxsOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ2RhdGVUYWJsZUZpbHRlckNlbGwnKSBkYXRlVGFibGVGaWx0ZXJDZWxsOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ3JlbGF0aXZlRGF0ZVRhYmxlRmlsdGVyQ2VsbCcpIHJlbGF0aXZlRGF0ZVRhYmxlRmlsdGVyQ2VsbDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCd0cmFuc2xhdGlvbktleVRhYmxlRmlsdGVyQ2VsbCcpIHRyYW5zbGF0aW9uS2V5VGFibGVGaWx0ZXJDZWxsOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ3N0cmluZ1RhYmxlRmlsdGVyQ2VsbCcpIHN0cmluZ1RhYmxlRmlsdGVyQ2VsbDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdudW1iZXJUYWJsZUZpbHRlckNlbGwnKSBudW1iZXJUYWJsZUZpbHRlckNlbGw6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVtb3ZlZCBhbmQgaW5zdGVhZCB0byBjaGFuZ2UgdGhlIHRlbXBsYXRlIG9mIGEgc3BlY2lmaWMgY29sdW1uIGZpbHRlclxuICAgKiB1c2UgdGhlIG5ldyBhcHByb2FjaCBpbnN0ZWFkIGJ5IGZvbGxvd2luZyB0aGUgbmFtaW5nIGNvbnZlbnRpb24gY29sdW1uIGlkICsgSWRUYWJsZUZpbHRlckNlbGxcbiAgICogZS5nLiBmb3IgYSBjb2x1bW4gd2l0aCB0aGUgaWQgJ3N0YXR1cycgaW4gRGF0YVRhYmxlIHVzZSBwVGVtcGxhdGU9XCJzdGF0dXNJZFRhYmxlRmlsdGVyQ2VsbFwiXG4gICAqL1xuICBAQ29udGVudENoaWxkKCdjdXN0b21UYWJsZUZpbHRlckNlbGwnKSBjdXN0b21UYWJsZUZpbHRlckNlbGw6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcblxuICB0ZW1wbGF0ZXMkOiBCZWhhdmlvclN1YmplY3Q8UXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+IHwgdW5kZWZpbmVkPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgUXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKVxuICBAQ29udGVudENoaWxkcmVuKFByaW1lVGVtcGxhdGUpXG4gIHNldCB0ZW1wbGF0ZXModmFsdWU6IFF1ZXJ5TGlzdDxQcmltZVRlbXBsYXRlPiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMudGVtcGxhdGVzJC5uZXh0KHZhbHVlKVxuICB9XG5cbiAgQE91dHB1dCgpIGZpbHRlcmVkID0gbmV3IEV2ZW50RW1pdHRlcjxGaWx0ZXJbXT4oKVxuICBAT3V0cHV0KCkgc29ydGVkID0gbmV3IEV2ZW50RW1pdHRlcjxTb3J0PigpXG4gIEBPdXRwdXQoKSBkZWxldGVJdGVtID0gbmV3IEV2ZW50RW1pdHRlcjxSb3dMaXN0R3JpZERhdGE+KClcbiAgQE91dHB1dCgpIHZpZXdJdGVtID0gbmV3IEV2ZW50RW1pdHRlcjxSb3dMaXN0R3JpZERhdGE+KClcbiAgQE91dHB1dCgpIGVkaXRJdGVtID0gbmV3IEV2ZW50RW1pdHRlcjxSb3dMaXN0R3JpZERhdGE+KClcbiAgQE91dHB1dCgpIGRhdGFWaWV3TGF5b3V0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjwnZ3JpZCcgfCAnbGlzdCcgfCAndGFibGUnPigpXG4gIC8vIFRPRE86IFJlbW92ZSBmb2xsb3dpbmcgbGluZSBvbmNlIGRpc3BsYXllZENvbHVtbnMgKGRlcHJlY2F0ZWQpIGhhcyBiZWVuIHJlbW92ZWRcbiAgQE91dHB1dCgpIGRpc3BsYXllZENvbHVtbnNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGFUYWJsZUNvbHVtbltdPigpXG4gIEBPdXRwdXQoKSBkaXNwbGF5ZWRDb2x1bW5LZXlzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKVxuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlZDogRXZlbnRFbWl0dGVyPFJvd1tdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuXG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQE91dHB1dCgpIHBhZ2VTaXplQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpXG5cbiAgQE91dHB1dCgpIGNvbXBvbmVudFN0YXRlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SW50ZXJhY3RpdmVEYXRhVmlld0NvbXBvbmVudFN0YXRlPigpXG5cbiAgc2VsZWN0ZWRHcm91cEtleSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IHVuZGVmaW5lZD4oJycpXG4gIGdldCBzZWxlY3RlZEdyb3VwS2V5KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRHcm91cEtleSQuZ2V0VmFsdWUoKVxuICB9XG4gIHNldCBzZWxlY3RlZEdyb3VwS2V5KHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnNlbGVjdGVkR3JvdXBLZXkkLm5leHQodmFsdWUpXG4gIH1cbiAgaXNEZWxldGVJdGVtT2JzZXJ2ZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWRcbiAgaXNWaWV3SXRlbU9ic2VydmVkOiBib29sZWFuIHwgdW5kZWZpbmVkXG4gIGlzRWRpdEl0ZW1PYnNlcnZlZDogYm9vbGVhbiB8IHVuZGVmaW5lZFxuICBmaXJzdENvbHVtbklkOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICBASW5wdXQoKVxuICBnZXQgcGFnaW5hdG9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxpc3RHcmlkUGFnaW5hdG9yICYmIHRoaXMudGFibGVQYWdpbmF0b3JcbiAgfVxuICBzZXQgcGFnaW5hdG9yKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5saXN0R3JpZFBhZ2luYXRvciA9IHZhbHVlXG4gICAgdGhpcy50YWJsZVBhZ2luYXRvciA9IHZhbHVlXG4gIH1cblxuICBnZXQgX2dyaWRJdGVtU3VidGl0bGVMaW5lcygpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5ncmlkSXRlbVN1YnRpdGxlTGluZXNcbiAgfVxuICBnZXQgX2xpc3RJdGVtU3VidGl0bGVMaW5lcygpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5saXN0SXRlbVN1YnRpdGxlTGluZXNcbiAgfVxuICBnZXQgX3RhYmxlQ2VsbCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZUNlbGxcbiAgfVxuICBnZXQgX3N0cmluZ1RhYmxlQ2VsbCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmdUYWJsZUNlbGxcbiAgfVxuICBnZXQgX251bWJlclRhYmxlQ2VsbCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5udW1iZXJUYWJsZUNlbGxcbiAgfVxuICBnZXQgX2N1c3RvbVRhYmxlQ2VsbCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jdXN0b21UYWJsZUNlbGxcbiAgfVxuICBnZXQgX3RhYmxlRGF0ZUNlbGwoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVRhYmxlQ2VsbCA/PyB0aGlzLnRhYmxlRGF0ZUNlbGxcbiAgfVxuICBnZXQgX2RhdGVUYWJsZUNlbGwoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVRhYmxlQ2VsbFxuICB9XG4gIGdldCBfdGFibGVSZWxhdGl2ZURhdGVDZWxsKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJlbGF0aXZlRGF0ZVRhYmxlQ2VsbCA/PyB0aGlzLnRhYmxlUmVsYXRpdmVEYXRlQ2VsbFxuICB9XG4gIGdldCBfcmVsYXRpdmVEYXRlVGFibGVDZWxsKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJlbGF0aXZlRGF0ZVRhYmxlQ2VsbFxuICB9XG4gIGdldCBfdGFibGVUcmFuc2xhdGlvbktleUNlbGwoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb25LZXlUYWJsZUNlbGwgPz8gdGhpcy50YWJsZVRyYW5zbGF0aW9uS2V5Q2VsbFxuICB9XG4gIGdldCBfdHJhbnNsYXRpb25LZXlUYWJsZUNlbGwoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb25LZXlUYWJsZUNlbGxcbiAgfVxuICBnZXQgX2dyaWRJdGVtKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmdyaWRJdGVtXG4gIH1cbiAgZ2V0IF9saXN0SXRlbSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5saXN0SXRlbVxuICB9XG4gIGdldCBfbGlzdFZhbHVlKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmxpc3RWYWx1ZVxuICB9XG4gIGdldCBfdHJhbnNsYXRpb25LZXlMaXN0VmFsdWUoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb25LZXlMaXN0VmFsdWVcbiAgfVxuICBnZXQgX251bWJlckxpc3RWYWx1ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5udW1iZXJMaXN0VmFsdWVcbiAgfVxuICBnZXQgX3JlbGF0aXZlRGF0ZUxpc3RWYWx1ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5yZWxhdGl2ZURhdGVMaXN0VmFsdWVcbiAgfVxuICBnZXQgX2N1c3RvbUxpc3RWYWx1ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jdXN0b21MaXN0VmFsdWVcbiAgfVxuICBnZXQgX3N0cmluZ0xpc3RWYWx1ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmdMaXN0VmFsdWVcbiAgfVxuICBnZXQgX2RhdGVMaXN0VmFsdWUoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZUxpc3RWYWx1ZVxuICB9XG4gIGdldCBfdGFibGVGaWx0ZXJDZWxsKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnRhYmxlRmlsdGVyQ2VsbFxuICB9XG4gIGdldCBfZGF0ZVRhYmxlRmlsdGVyQ2VsbCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5kYXRlVGFibGVGaWx0ZXJDZWxsXG4gIH1cbiAgZ2V0IF9yZWxhdGl2ZURhdGVUYWJsZUZpbHRlckNlbGwoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucmVsYXRpdmVEYXRlVGFibGVGaWx0ZXJDZWxsXG4gIH1cbiAgZ2V0IF90cmFuc2xhdGlvbktleVRhYmxlRmlsdGVyQ2VsbCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvbktleVRhYmxlRmlsdGVyQ2VsbFxuICB9XG4gIGdldCBfc3RyaW5nVGFibGVGaWx0ZXJDZWxsKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnN0cmluZ1RhYmxlRmlsdGVyQ2VsbFxuICB9XG4gIGdldCBfbnVtYmVyVGFibGVGaWx0ZXJDZWxsKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm51bWJlclRhYmxlRmlsdGVyQ2VsbFxuICB9XG4gIGdldCBfY3VzdG9tVGFibGVGaWx0ZXJDZWxsKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmN1c3RvbVRhYmxlRmlsdGVyQ2VsbFxuICB9XG5cbiAgX2RhdGE6IFJvd0xpc3RHcmlkRGF0YVtdID0gW11cbiAgQElucHV0KClcbiAgZ2V0IGRhdGEoKTogUm93TGlzdEdyaWREYXRhW10ge1xuICAgIHJldHVybiB0aGlzLl9kYXRhXG4gIH1cbiAgc2V0IGRhdGEodmFsdWU6IFJvd0xpc3RHcmlkRGF0YVtdKSB7XG4gICAgdGhpcy5fZGF0YSA9IHZhbHVlXG4gIH1cblxuICBjb2x1bW5Hcm91cFNsb3ROYW1lID0gJ29uZWN4LWNvbHVtbi1ncm91cC1zZWxlY3Rpb24nXG4gIGlzQ29sdW1uR3JvdXBTZWxlY3Rpb25Db21wb25lbnREZWZpbmVkJDogT2JzZXJ2YWJsZTxib29sZWFuPlxuICBncm91cFNlbGVjdGlvbkNoYW5nZWRTbG90RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8Q29sdW1uR3JvdXBEYXRhIHwgdW5kZWZpbmVkPigpXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzbG90U2VydmljZTogU2xvdFNlcnZpY2UpIHtcbiAgICB0aGlzLmlzQ29sdW1uR3JvdXBTZWxlY3Rpb25Db21wb25lbnREZWZpbmVkJCA9IHRoaXMuc2xvdFNlcnZpY2VcbiAgICAgIC5pc1NvbWVDb21wb25lbnREZWZpbmVkRm9yU2xvdCh0aGlzLmNvbHVtbkdyb3VwU2xvdE5hbWUpXG4gICAgICAucGlwZShzdGFydFdpdGgodHJ1ZSkpXG5cbiAgICB0aGlzLmdyb3VwU2VsZWN0aW9uQ2hhbmdlZFNsb3RFbWl0dGVyLnN1YnNjcmliZSgoZXZlbnQ6IENvbHVtbkdyb3VwRGF0YSB8IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgaWYgKGV2ZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZXZlbnQgPSB7XG4gICAgICAgICAgYWN0aXZlQ29sdW1uczogdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLFxuICAgICAgICAgIGdyb3VwS2V5OiB0aGlzLnNlbGVjdGVkR3JvdXBLZXkgPz8gdGhpcy5kZWZhdWx0R3JvdXBLZXksXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1uS2V5cyQubmV4dChldmVudC5hY3RpdmVDb2x1bW5zLm1hcCgoY29sKSA9PiBjb2wuaWQpKVxuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwS2V5JC5uZXh0KGV2ZW50Lmdyb3VwS2V5KVxuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zQ2hhbmdlLmVtaXQodGhpcy5kaXNwbGF5ZWRDb2x1bW5zKVxuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5LZXlzQ2hhbmdlLmVtaXQodGhpcy5kaXNwbGF5ZWRDb2x1bW5LZXlzKVxuICAgICAgdGhpcy5jb2x1bW5Hcm91cFNlbGVjdGlvbkNvbXBvbmVudFN0YXRlJC5uZXh0KHtcbiAgICAgICAgYWN0aXZlQ29sdW1uR3JvdXBLZXk6IGV2ZW50Lmdyb3VwS2V5LFxuICAgICAgICBkaXNwbGF5ZWRDb2x1bW5zOiBldmVudC5hY3RpdmVDb2x1bW5zLFxuICAgICAgfSlcbiAgICB9KVxuXG4gICAgdGhpcy5kYXRhVmlld0xheW91dENoYW5nZVxuICAgICAgLnBpcGUod2l0aExhdGVzdEZyb20odGhpcy5pc0NvbHVtbkdyb3VwU2VsZWN0aW9uQ29tcG9uZW50RGVmaW5lZCQpKVxuICAgICAgLnN1YnNjcmliZSgoW18sIGNvbHVtbkdyb3VwQ29tcG9uZW50RGVmaW5lZF0pID0+IHtcbiAgICAgICAgaWYgKGNvbHVtbkdyb3VwQ29tcG9uZW50RGVmaW5lZCkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICEoXG4gICAgICAgICAgICAgIHRoaXMuY29sdW1ucy5maW5kKChjKSA9PiBjLm5hbWVLZXkgPT09IHRoaXMuc2VsZWN0ZWRHcm91cEtleSkgfHxcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwS2V5ID09PSB0aGlzLmN1c3RvbUdyb3VwS2V5XG4gICAgICAgICAgICApXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkR3JvdXBLZXkkLm5leHQodW5kZWZpbmVkKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRHcm91cEtleSA9IHRoaXMuZGVmYXVsdEdyb3VwS2V5XG4gICAgaWYgKCF0aGlzLmRpc3BsYXllZENvbHVtbnMgfHwgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5LZXlzID0gdGhpcy5jb2x1bW5zLm1hcCgoY29sdW1uKSA9PiBjb2x1bW4uaWQpXG4gICAgfVxuICAgIGlmICh0aGlzLmRlZmF1bHRHcm91cEtleSAmJiB0aGlzLmRlZmF1bHRHcm91cEtleSAhPT0gdGhpcy5jdXN0b21Hcm91cEtleSkge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5LZXlzID0gdGhpcy5jb2x1bW5zXG4gICAgICAgIC5maWx0ZXIoKGNvbHVtbikgPT4gY29sdW1uLnByZWRlZmluZWRHcm91cEtleXM/LmluY2x1ZGVzKHRoaXMuZGVmYXVsdEdyb3VwS2V5KSlcbiAgICAgICAgLm1hcCgoY29sdW1uKSA9PiBjb2x1bW4uaWQpXG4gICAgfVxuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyQgPSB0aGlzLmRpc3BsYXllZENvbHVtbktleXMkLnBpcGUoXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJldiwgY3VycikgPT4gcHJldi5sZW5ndGggPT09IGN1cnIubGVuZ3RoICYmIHByZXYuZXZlcnkoKHYpID0+IGN1cnIuaW5jbHVkZXModikpKSxcbiAgICAgIG1hcChcbiAgICAgICAgKGNvbHVtbktleXMpID0+XG4gICAgICAgICAgKGNvbHVtbktleXMubWFwKChrZXkpID0+IHRoaXMuY29sdW1ucy5maW5kKChjb2wpID0+IGNvbC5pZCA9PT0ga2V5KSkuZmlsdGVyKChkKSA9PiBkKSBhcyBEYXRhVGFibGVDb2x1bW5bXSkgPz9cbiAgICAgICAgICBbXVxuICAgICAgKVxuICAgIClcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnNDaGFuZ2UuZW1pdCh0aGlzLmRpc3BsYXllZENvbHVtbnMpXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5LZXlzQ2hhbmdlLmVtaXQodGhpcy5kaXNwbGF5ZWRDb2x1bW5LZXlzKVxuICAgIGlmICghdGhpcy5ncm91cFNlbGVjdGlvbk5vR3JvdXBTZWxlY3RlZEtleSkge1xuICAgICAgdGhpcy5ncm91cFNlbGVjdGlvbk5vR3JvdXBTZWxlY3RlZEtleSA9ICdPQ1hfSU5URVJBQ1RJVkVfREFUQV9WSUVXLk5PX0dST1VQX1NFTEVDVEVEJ1xuICAgIH1cbiAgICB0aGlzLmZpcnN0Q29sdW1uSWQgPSB0aGlzLmNvbHVtbnNbMF0/LmlkXG5cbiAgICBsZXQgZGF0YUxpc3RHcmlkU29ydGluZ0NvbXBvbmVudFN0YXRlJDogT2JzZXJ2YWJsZTxEYXRhTGlzdEdyaWRTb3J0aW5nQ29tcG9uZW50U3RhdGUgfCBSZWNvcmQ8c3RyaW5nLCBuZXZlcj4+ID1cbiAgICAgIHRoaXMuZGF0YUxpc3RHcmlkU29ydGluZ0NvbXBvbmVudFN0YXRlJFxuICAgIGxldCBjb2x1bW5Hcm91cFNlbGVjdGlvbkNvbXBvbmVudFN0YXRlJDogT2JzZXJ2YWJsZTxDb2x1bW5Hcm91cFNlbGVjdGlvbkNvbXBvbmVudFN0YXRlIHwgUmVjb3JkPHN0cmluZywgbmV2ZXI+PiA9XG4gICAgICB0aGlzLmNvbHVtbkdyb3VwU2VsZWN0aW9uQ29tcG9uZW50U3RhdGUkXG4gICAgbGV0IGN1c3RvbUdyb3VwQ29sdW1uU2VsZWN0b3JDb21wb25lbnRTdGF0ZSQ6IE9ic2VydmFibGU8XG4gICAgICBDdXN0b21Hcm91cENvbHVtblNlbGVjdG9yQ29tcG9uZW50U3RhdGUgfCBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5cbiAgICA+ID0gdGhpcy5jdXN0b21Hcm91cENvbHVtblNlbGVjdG9yQ29tcG9uZW50U3RhdGUkXG5cbiAgICBpZiAodGhpcy5sYXlvdXQgPT09ICd0YWJsZScpIHtcbiAgICAgIGRhdGFMaXN0R3JpZFNvcnRpbmdDb21wb25lbnRTdGF0ZSQgPSBkYXRhTGlzdEdyaWRTb3J0aW5nQ29tcG9uZW50U3RhdGUkLnBpcGUoc3RhcnRXaXRoKHt9KSlcbiAgICB9IGVsc2Uge1xuICAgICAgY29sdW1uR3JvdXBTZWxlY3Rpb25Db21wb25lbnRTdGF0ZSQgPSBjb2x1bW5Hcm91cFNlbGVjdGlvbkNvbXBvbmVudFN0YXRlJC5waXBlKFxuICAgICAgICBzdGFydFdpdGgoe1xuICAgICAgICAgIGFjdGl2ZUNvbHVtbkdyb3VwS2V5OiB0aGlzLnNlbGVjdGVkR3JvdXBLZXksXG4gICAgICAgICAgZGlzcGxheWVkQ29sdW1uczogdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLFxuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgY3VzdG9tR3JvdXBDb2x1bW5TZWxlY3RvckNvbXBvbmVudFN0YXRlJCA9IGN1c3RvbUdyb3VwQ29sdW1uU2VsZWN0b3JDb21wb25lbnRTdGF0ZSQucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKHtcbiAgICAgICAgICBhY3Rpb25Db2x1bW5Db25maWc6IHtcbiAgICAgICAgICAgIGZyb3plbjogdGhpcy5mcm96ZW5BY3Rpb25Db2x1bW4sXG4gICAgICAgICAgICBwb3NpdGlvbjogdGhpcy5hY3Rpb25Db2x1bW5Qb3NpdGlvbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGRpc3BsYXllZENvbHVtbnM6IHRoaXMuZGlzcGxheWVkQ29sdW1ucyxcbiAgICAgICAgICBhY3RpdmVDb2x1bW5Hcm91cEtleTogdGhpcy5zZWxlY3RlZEdyb3VwS2V5LFxuICAgICAgICB9KVxuICAgICAgKVxuICAgIH1cblxuICAgIGxldCBmaWx0ZXJWaWV3Q29tcG9uZW50U3RhdGUkOiBPYnNlcnZhYmxlPEZpbHRlclZpZXdDb21wb25lbnRTdGF0ZSB8IFJlY29yZDxzdHJpbmcsIG5ldmVyPj4gPVxuICAgICAgdGhpcy5maWx0ZXJWaWV3Q29tcG9uZW50U3RhdGUkXG4gICAgaWYgKHRoaXMuZGlzYWJsZUZpbHRlclZpZXcpIHtcbiAgICAgIGZpbHRlclZpZXdDb21wb25lbnRTdGF0ZSQgPSBmaWx0ZXJWaWV3Q29tcG9uZW50U3RhdGUkLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCh7XG4gICAgICAgICAgZmlsdGVyczogdGhpcy5maWx0ZXJzLFxuICAgICAgICB9KVxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgY29sdW1uR3JvdXBTZWxlY3Rpb25Db21wb25lbnRTdGF0ZSQucGlwZSh0aW1lc3RhbXAoKSksXG4gICAgICBjdXN0b21Hcm91cENvbHVtblNlbGVjdG9yQ29tcG9uZW50U3RhdGUkLnBpcGUodGltZXN0YW1wKCkpLFxuICAgICAgdGhpcy5kYXRhTGF5b3V0Q29tcG9uZW50U3RhdGUkLnBpcGUodGltZXN0YW1wKCkpLFxuICAgICAgZGF0YUxpc3RHcmlkU29ydGluZ0NvbXBvbmVudFN0YXRlJC5waXBlKHRpbWVzdGFtcCgpKSxcbiAgICAgIHRoaXMuZGF0YVZpZXdDb21wb25lbnRTdGF0ZSQucGlwZSh0aW1lc3RhbXAoKSksXG4gICAgICBmaWx0ZXJWaWV3Q29tcG9uZW50U3RhdGUkLnBpcGUodGltZXN0YW1wKCkpLFxuICAgIF0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChjb21wb25lbnRTdGF0ZXMpID0+IHtcbiAgICAgICAgICByZXR1cm4gb3JkZXJBbmRNZXJnZVZhbHVlc0J5VGltZXN0YW1wKGNvbXBvbmVudFN0YXRlcylcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHZhbCkgPT4ge1xuICAgICAgICB0aGlzLmNvbXBvbmVudFN0YXRlQ2hhbmdlZC5lbWl0KHZhbClcbiAgICAgIH0pXG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy50ZW1wbGF0ZXMkLnZhbHVlPy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBzd2l0Y2ggKGl0ZW0uZ2V0VHlwZSgpKSB7XG4gICAgICAgIGNhc2UgJ3RhYmxlQ2VsbCc6XG4gICAgICAgICAgdGhpcy50YWJsZUNlbGwgPSBpdGVtLnRlbXBsYXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAndGFibGVEYXRlQ2VsbCc6XG4gICAgICAgICAgdGhpcy50YWJsZURhdGVDZWxsID0gaXRlbS50ZW1wbGF0ZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJ2RhdGVUYWJsZUNlbGwnOlxuICAgICAgICAgIHRoaXMuZGF0ZVRhYmxlQ2VsbCA9IGl0ZW0udGVtcGxhdGVcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICd0YWJsZVJlbGF0aXZlRGF0ZUNlbGwnOlxuICAgICAgICAgIHRoaXMudGFibGVSZWxhdGl2ZURhdGVDZWxsID0gaXRlbS50ZW1wbGF0ZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJ3JlbGF0aXZlRGF0ZVRhYmxlQ2VsbCc6XG4gICAgICAgICAgdGhpcy5yZWxhdGl2ZURhdGVUYWJsZUNlbGwgPSBpdGVtLnRlbXBsYXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAndGFibGVUcmFuc2xhdGlvbktleUNlbGwnOlxuICAgICAgICAgIHRoaXMudGFibGVUcmFuc2xhdGlvbktleUNlbGwgPSBpdGVtLnRlbXBsYXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAndHJhbnNsYXRpb25LZXlUYWJsZUNlbGwnOlxuICAgICAgICAgIHRoaXMudHJhbnNsYXRpb25LZXlUYWJsZUNlbGwgPSBpdGVtLnRlbXBsYXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnZ3JpZEl0ZW1TdWJ0aXRsZUxpbmVzJzpcbiAgICAgICAgICB0aGlzLmdyaWRJdGVtU3VidGl0bGVMaW5lcyA9IGl0ZW0udGVtcGxhdGVcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdsaXN0SXRlbVN1YnRpdGxlTGluZXMnOlxuICAgICAgICAgIHRoaXMubGlzdEl0ZW1TdWJ0aXRsZUxpbmVzID0gaXRlbS50ZW1wbGF0ZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJ3N0cmluZ1RhYmxlQ2VsbCc6XG4gICAgICAgICAgdGhpcy5zdHJpbmdUYWJsZUNlbGwgPSBpdGVtLnRlbXBsYXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnbnVtYmVyVGFibGVDZWxsJzpcbiAgICAgICAgICB0aGlzLm51bWJlclRhYmxlQ2VsbCA9IGl0ZW0udGVtcGxhdGVcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdjdXN0b21UYWJsZUNlbGwnOlxuICAgICAgICAgIHRoaXMuY3VzdG9tVGFibGVDZWxsID0gaXRlbS50ZW1wbGF0ZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJ2dyaWRJdGVtJzpcbiAgICAgICAgICB0aGlzLmdyaWRJdGVtID0gaXRlbS50ZW1wbGF0ZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJ2xpc3RJdGVtJzpcbiAgICAgICAgICB0aGlzLmxpc3RJdGVtID0gaXRlbS50ZW1wbGF0ZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJ3RvcENlbnRlcic6XG4gICAgICAgICAgdGhpcy50b3BDZW50ZXIgPSBpdGVtLnRlbXBsYXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnbGlzdFZhbHVlJzpcbiAgICAgICAgICB0aGlzLmxpc3RWYWx1ZSA9IGl0ZW0udGVtcGxhdGVcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICd0cmFuc2xhdGlvbktleUxpc3RWYWx1ZSc6XG4gICAgICAgICAgdGhpcy50cmFuc2xhdGlvbktleUxpc3RWYWx1ZSA9IGl0ZW0udGVtcGxhdGVcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdudW1iZXJMaXN0VmFsdWUnOlxuICAgICAgICAgIHRoaXMubnVtYmVyTGlzdFZhbHVlID0gaXRlbS50ZW1wbGF0ZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJ3JlbGF0aXZlRGF0ZUxpc3RWYWx1ZSc6XG4gICAgICAgICAgdGhpcy5yZWxhdGl2ZURhdGVMaXN0VmFsdWUgPSBpdGVtLnRlbXBsYXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnY3VzdG9tTGlzdFZhbHVlJzpcbiAgICAgICAgICB0aGlzLmN1c3RvbUxpc3RWYWx1ZSA9IGl0ZW0udGVtcGxhdGVcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdzdHJpbmdMaXN0VmFsdWUnOlxuICAgICAgICAgIHRoaXMuc3RyaW5nTGlzdFZhbHVlID0gaXRlbS50ZW1wbGF0ZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJ2RhdGVMaXN0VmFsdWUnOlxuICAgICAgICAgIHRoaXMuZGF0ZUxpc3RWYWx1ZSA9IGl0ZW0udGVtcGxhdGVcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICd0YWJsZUZpbHRlckNlbGwnOlxuICAgICAgICAgIHRoaXMudGFibGVGaWx0ZXJDZWxsID0gaXRlbS50ZW1wbGF0ZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJ2RhdGVUYWJsZUZpbHRlckNlbGwnOlxuICAgICAgICAgIHRoaXMuZGF0ZVRhYmxlRmlsdGVyQ2VsbCA9IGl0ZW0udGVtcGxhdGVcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdyZWxhdGl2ZURhdGVUYWJsZUZpbHRlckNlbGwnOlxuICAgICAgICAgIHRoaXMucmVsYXRpdmVEYXRlVGFibGVGaWx0ZXJDZWxsID0gaXRlbS50ZW1wbGF0ZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJ3RyYW5zbGF0aW9uS2V5VGFibGVGaWx0ZXJDZWxsJzpcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0aW9uS2V5VGFibGVGaWx0ZXJDZWxsID0gaXRlbS50ZW1wbGF0ZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJ3N0cmluZ1RhYmxlRmlsdGVyQ2VsbCc6XG4gICAgICAgICAgdGhpcy5zdHJpbmdUYWJsZUZpbHRlckNlbGwgPSBpdGVtLnRlbXBsYXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnbnVtYmVyVGFibGVGaWx0ZXJDZWxsJzpcbiAgICAgICAgICB0aGlzLm51bWJlclRhYmxlRmlsdGVyQ2VsbCA9IGl0ZW0udGVtcGxhdGVcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdjdXN0b21UYWJsZUZpbHRlckNlbGwnOlxuICAgICAgICAgIHRoaXMuY3VzdG9tVGFibGVGaWx0ZXJDZWxsID0gaXRlbS50ZW1wbGF0ZVxuICAgICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGZpbHRlcmluZyhldmVudDogYW55KSB7XG4gICAgdGhpcy5maWx0ZXJzID0gZXZlbnRcbiAgICB0aGlzLmZpbHRlcmVkLmVtaXQoZXZlbnQpXG4gIH1cblxuICBzb3J0aW5nKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNvcnREaXJlY3Rpb24gPSBldmVudC5zb3J0RGlyZWN0aW9uXG4gICAgdGhpcy5zb3J0RmllbGQgPSBldmVudC5zb3J0Q29sdW1uXG4gICAgdGhpcy5zb3J0ZWQuZW1pdChldmVudClcbiAgfVxuXG4gIG9uRGVsZXRlRWxlbWVudChlbGVtZW50OiBSb3dMaXN0R3JpZERhdGEpIHtcbiAgICBpZiAodGhpcy5pc0RlbGV0ZUl0ZW1PYnNlcnZlZCkge1xuICAgICAgdGhpcy5kZWxldGVJdGVtLmVtaXQoZWxlbWVudClcbiAgICB9XG4gIH1cblxuICBvblZpZXdFbGVtZW50KGVsZW1lbnQ6IFJvd0xpc3RHcmlkRGF0YSkge1xuICAgIGlmICh0aGlzLmlzVmlld0l0ZW1PYnNlcnZlZCkge1xuICAgICAgdGhpcy52aWV3SXRlbS5lbWl0KGVsZW1lbnQpXG4gICAgfVxuICB9XG5cbiAgb25FZGl0RWxlbWVudChlbGVtZW50OiBSb3dMaXN0R3JpZERhdGEpIHtcbiAgICBpZiAodGhpcy5pc0VkaXRJdGVtT2JzZXJ2ZWQpIHtcbiAgICAgIHRoaXMuZWRpdEl0ZW0uZW1pdChlbGVtZW50KVxuICAgIH1cbiAgfVxuXG4gIG9uRGF0YVZpZXdMYXlvdXRDaGFuZ2UobGF5b3V0OiAnZ3JpZCcgfCAnbGlzdCcgfCAndGFibGUnKSB7XG4gICAgdGhpcy5sYXlvdXQgPSBsYXlvdXRcbiAgICB0aGlzLmRhdGFWaWV3TGF5b3V0Q2hhbmdlLmVtaXQobGF5b3V0KVxuICB9XG5cbiAgb25Tb3J0Q2hhbmdlKCRldmVudDogYW55KSB7XG4gICAgdGhpcy5zb3J0RmllbGQgPSAkZXZlbnRcbiAgICB0aGlzLnNvcnRlZC5lbWl0KHsgc29ydENvbHVtbjogdGhpcy5zb3J0RmllbGQsIHNvcnREaXJlY3Rpb246IHRoaXMuc29ydERpcmVjdGlvbiB9KVxuICB9XG5cbiAgb25Tb3J0RGlyZWN0aW9uQ2hhbmdlKCRldmVudDogYW55KSB7XG4gICAgdGhpcy5zb3J0RGlyZWN0aW9uID0gJGV2ZW50XG4gICAgdGhpcy5zb3J0ZWQuZW1pdCh7IHNvcnRDb2x1bW46IHRoaXMuc29ydEZpZWxkLCBzb3J0RGlyZWN0aW9uOiB0aGlzLnNvcnREaXJlY3Rpb24gfSlcbiAgfVxuXG4gIG9uQ29sdW1uR3JvdXBTZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IEdyb3VwU2VsZWN0aW9uQ2hhbmdlZEV2ZW50KSB7XG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5LZXlzID0gZXZlbnQuYWN0aXZlQ29sdW1ucy5tYXAoKGNvbCkgPT4gY29sLmlkKVxuICAgIHRoaXMuc2VsZWN0ZWRHcm91cEtleSA9IGV2ZW50Lmdyb3VwS2V5XG4gICAgLy8gVE9ETzogUmVtb3ZlIGZvbGxvd2luZyBsaW5lIG9uY2UgZGlzcGxheWVkQ29sdW1ucyAoZGVwcmVjYXRlZCkgaGFzIGJlZW4gcmVtb3ZlZFxuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1uc0NoYW5nZS5lbWl0KHRoaXMuZGlzcGxheWVkQ29sdW1ucylcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbktleXNDaGFuZ2UuZW1pdCh0aGlzLmRpc3BsYXllZENvbHVtbktleXMpXG4gIH1cblxuICByZWdpc3RlckV2ZW50TGlzdGVuZXJGb3JEYXRhVmlldygpIHtcbiAgICBpZiAodGhpcy5kZWxldGVJdGVtLm9ic2VydmVkKSB7XG4gICAgICB0aGlzLmlzRGVsZXRlSXRlbU9ic2VydmVkID0gdHJ1ZVxuICAgICAgaWYgKCF0aGlzLl9kYXRhVmlld0NvbXBvbmVudD8uZGVsZXRlSXRlbS5vYnNlcnZlZCkge1xuICAgICAgICB0aGlzLl9kYXRhVmlld0NvbXBvbmVudD8uZGVsZXRlSXRlbS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5vbkRlbGV0ZUVsZW1lbnQoZXZlbnQpXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLnZpZXdJdGVtLm9ic2VydmVkKSB7XG4gICAgICB0aGlzLmlzVmlld0l0ZW1PYnNlcnZlZCA9IHRydWVcbiAgICAgIGlmICghdGhpcy5fZGF0YVZpZXdDb21wb25lbnQ/LnZpZXdJdGVtLm9ic2VydmVkKSB7XG4gICAgICAgIHRoaXMuX2RhdGFWaWV3Q29tcG9uZW50Py52aWV3SXRlbS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5vblZpZXdFbGVtZW50KGV2ZW50KVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5lZGl0SXRlbS5vYnNlcnZlZCkge1xuICAgICAgdGhpcy5pc0VkaXRJdGVtT2JzZXJ2ZWQgPSB0cnVlXG4gICAgICBpZiAoIXRoaXMuX2RhdGFWaWV3Q29tcG9uZW50Py5lZGl0SXRlbS5vYnNlcnZlZCkge1xuICAgICAgICB0aGlzLl9kYXRhVmlld0NvbXBvbmVudD8uZWRpdEl0ZW0uc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMub25FZGl0RWxlbWVudChldmVudClcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5vYnNlcnZlZCkge1xuICAgICAgaWYgKCF0aGlzLl9kYXRhVmlld0NvbXBvbmVudD8uc2VsZWN0aW9uQ2hhbmdlZC5vYnNlcnZlZCkge1xuICAgICAgICB0aGlzLl9kYXRhVmlld0NvbXBvbmVudD8uc2VsZWN0aW9uQ2hhbmdlZC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5vblJvd1NlbGVjdGlvbkNoYW5nZShldmVudClcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbkNvbHVtblNlbGVjdGlvbkNoYW5nZShldmVudDogQ29sdW1uU2VsZWN0aW9uQ2hhbmdlZEV2ZW50KSB7XG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5LZXlzID0gZXZlbnQuYWN0aXZlQ29sdW1ucy5tYXAoKGNvbCkgPT4gY29sLmlkKVxuICAgIHRoaXMuc2VsZWN0ZWRHcm91cEtleSA9IHRoaXMuY3VzdG9tR3JvdXBLZXlcbiAgICAvLyBUT0RPOiBSZW1vdmUgZm9sbG93aW5nIGxpbmUgb25jZSBkaXNwbGF5ZWRDb2x1bW5zIChkZXByZWNhdGVkKSBoYXMgYmVlbiByZW1vdmVkXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zQ2hhbmdlLmVtaXQodGhpcy5kaXNwbGF5ZWRDb2x1bW5zKVxuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1uS2V5c0NoYW5nZS5lbWl0KHRoaXMuZGlzcGxheWVkQ29sdW1uS2V5cylcbiAgfVxuXG4gIG9uQWN0aW9uQ29sdW1uQ29uZmlnQ2hhbmdlKGV2ZW50OiBBY3Rpb25Db2x1bW5DaGFuZ2VkRXZlbnQpIHtcbiAgICB0aGlzLmZyb3plbkFjdGlvbkNvbHVtbiA9IGV2ZW50LmZyb3plbkFjdGlvbkNvbHVtblxuICAgIHRoaXMuYWN0aW9uQ29sdW1uUG9zaXRpb24gPSBldmVudC5hY3Rpb25Db2x1bW5Qb3NpdGlvblxuICB9XG5cbiAgb25Sb3dTZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IFJvd1tdKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5vYnNlcnZlZCkge1xuICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkLmVtaXQoZXZlbnQpXG4gICAgfVxuICB9XG5cbiAgb25QYWdlQ2hhbmdlKGV2ZW50OiBudW1iZXIpIHtcbiAgICB0aGlzLnBhZ2UgPSBldmVudFxuICAgIHRoaXMucGFnZUNoYW5nZWQuZW1pdChldmVudClcbiAgfVxuXG4gIG9uUGFnZVNpemVDaGFuZ2UoZXZlbnQ6IG51bWJlcikge1xuICAgIHRoaXMucGFnZVNpemUgPSBldmVudFxuICAgIHRoaXMucGFnZVNpemVDaGFuZ2VkLmVtaXQoZXZlbnQpXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwLTMgYm9yZGVyLWJvdHRvbS0xIHN1cmZhY2UtYm9yZGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgcHktMSBnYXAtMlwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICA8b2N4LWRhdGEtbGF5b3V0LXNlbGVjdGlvblxuICAgICAgICBbc3VwcG9ydGVkVmlld0xheW91dHNdPVwic3VwcG9ydGVkVmlld0xheW91dHNcIlxuICAgICAgICBbbGF5b3V0XT1cImxheW91dFwiXG4gICAgICAgIChkYXRhVmlld0xheW91dENoYW5nZSk9XCJvbkRhdGFWaWV3TGF5b3V0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAoY29tcG9uZW50U3RhdGVDaGFuZ2VkKT1cImRhdGFMYXlvdXRDb21wb25lbnRTdGF0ZSQubmV4dCgkZXZlbnQpXCJcbiAgICAgID48L29jeC1kYXRhLWxheW91dC1zZWxlY3Rpb24+XG4gICAgICA8b2N4LWZpbHRlci12aWV3XG4gICAgICAgICpuZ0lmPVwiIWRpc2FibGVGaWx0ZXJWaWV3XCJcbiAgICAgICAgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiXG4gICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgICAgICBbdGVtcGxhdGVzXT1cInRlbXBsYXRlcyQgfCBhc3luY1wiXG4gICAgICAgIFtkaXNwbGF5TW9kZV09XCJmaWx0ZXJWaWV3RGlzcGxheU1vZGVcIlxuICAgICAgICBbc2VsZWN0RGlzcGxheWVkQ2hpcHNdPVwic2VsZWN0RGlzcGxheWVkQ2hpcHNcIlxuICAgICAgICBbY2hpcFN0eWxlQ2xhc3NdPVwiZmlsdGVyVmlld0NoaXBTdHlsZUNsYXNzXCJcbiAgICAgICAgW3RhYmxlU3R5bGVdPVwiZmlsdGVyVmlld1RhYmxlU3R5bGVcIlxuICAgICAgICAoZmlsdGVyZWQpPVwiZmlsdGVyaW5nKCRldmVudClcIlxuICAgICAgICAoY29tcG9uZW50U3RhdGVDaGFuZ2VkKT1cImZpbHRlclZpZXdDb21wb25lbnRTdGF0ZSQubmV4dCgkZXZlbnQpXCJcbiAgICAgID48L29jeC1maWx0ZXItdmlldz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCJ0b3BDZW50ZXJcIj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidG9wQ2VudGVyXCI+IDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cImxheW91dCAhPT0gJ3RhYmxlJ1wiIGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgIDxvY3gtZGF0YS1saXN0LWdyaWQtc29ydGluZ1xuICAgICAgICBbc29ydERpcmVjdGlvbl09XCJzb3J0RGlyZWN0aW9uXCJcbiAgICAgICAgW3NvcnRGaWVsZF09XCJzb3J0RmllbGRcIlxuICAgICAgICBbY29sdW1uc109XCIoZGlzcGxheWVkQ29sdW1ucyQgfCBhc3luYykgPz8gW11cIlxuICAgICAgICBbc29ydFN0YXRlc109XCJzb3J0U3RhdGVzXCJcbiAgICAgICAgKHNvcnRDaGFuZ2UpPVwib25Tb3J0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAoc29ydERpcmVjdGlvbkNoYW5nZSk9XCJvblNvcnREaXJlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIChjb21wb25lbnRTdGF0ZUNoYW5nZWQpPVwiZGF0YUxpc3RHcmlkU29ydGluZ0NvbXBvbmVudFN0YXRlJC5uZXh0KCRldmVudClcIlxuICAgICAgPjwvb2N4LWRhdGEtbGlzdC1ncmlkLXNvcnRpbmc+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICBbbmdTdHlsZV09XCJsYXlvdXQgIT09ICd0YWJsZScgPyB7XG4gICAgICAncG9zaXRpb24nOiAnYWJzb2x1dGUnXG4gICAgfSA6IHt9XCJcbiAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXdyYXAganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNDb2x1bW5Hcm91cFNlbGVjdGlvbkNvbXBvbmVudERlZmluZWQkIHwgYXN5bmM7IGVsc2UgZGVmYXVsdENvbHVtbkdyb3VwU2VsZWN0aW9uQ29tcG9uZW50XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5ZWRDb2x1bW5LZXlzJCB8IGFzeW5jIGFzIGRpc3BsYXllZENvbHVtbktleXNcIj5cbiAgICAgICAgICA8b2N4LXNsb3RcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cImxheW91dCAhPT0gJ3RhYmxlJyA/IHsnZGlzcGxheScgOiAnbm9uZSd9ICA6IHt9XCJcbiAgICAgICAgICAgICpvY3hJZlBlcm1pc3Npb249XCJzZWFyY2hDb25maWdQZXJtaXNzaW9uOyBlbHNlVGVtcGxhdGU6IGRlZmF1bHRDb2x1bW5Hcm91cFNlbGVjdGlvbkNvbXBvbmVudFwiXG4gICAgICAgICAgICBuYW1lPVwie3tjb2x1bW5Hcm91cFNsb3ROYW1lfX1cIlxuICAgICAgICAgICAgW2lucHV0c109XCJ7IHBsYWNlaG9sZGVyS2V5OiBncm91cFNlbGVjdGlvbk5vR3JvdXBTZWxlY3RlZEtleSwgZGVmYXVsdEdyb3VwS2V5OiBkZWZhdWx0R3JvdXBLZXksIGN1c3RvbUdyb3VwS2V5OiBjdXN0b21Hcm91cEtleSwgY29sdW1uczogY29sdW1ucywgc2VsZWN0ZWRHcm91cEtleTogc2VsZWN0ZWRHcm91cEtleSwgbGF5b3V0OiBsYXlvdXQsIGRpc3BsYXllZENvbHVtbnNJZHM6IGRpc3BsYXllZENvbHVtbktleXMgfVwiXG4gICAgICAgICAgICBbb3V0cHV0c109XCJ7IGdyb3VwU2VsZWN0aW9uQ2hhbmdlZDogZ3JvdXBTZWxlY3Rpb25DaGFuZ2VkU2xvdEVtaXR0ZXIgfVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNza2VsZXRvbj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICAgICAgICA8cC1za2VsZXRvbiB3aWR0aD1cIjE4cmVtXCIgaGVpZ2h0PVwiM3JlbVwiPjwvcC1za2VsZXRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvb2N4LXNsb3Q+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxvY3gtY3VzdG9tLWdyb3VwLWNvbHVtbi1zZWxlY3RvclxuICAgICAgICAqbmdJZj1cImxheW91dCA9PT0gJ3RhYmxlJ1wiXG4gICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgICAgICBbZGlzcGxheWVkQ29sdW1uc109XCIoZGlzcGxheWVkQ29sdW1ucyQgfCBhc3luYykgPz8gW11cIlxuICAgICAgICBbY3VzdG9tR3JvdXBLZXldPVwiY3VzdG9tR3JvdXBLZXlcIlxuICAgICAgICAoY29sdW1uU2VsZWN0aW9uQ2hhbmdlZCk9XCJvbkNvbHVtblNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW2Zyb3plbkFjdGlvbkNvbHVtbl09XCJmcm96ZW5BY3Rpb25Db2x1bW5cIlxuICAgICAgICBbYWN0aW9uQ29sdW1uUG9zaXRpb25dPVwiYWN0aW9uQ29sdW1uUG9zaXRpb25cIlxuICAgICAgICAoYWN0aW9uQ29sdW1uQ29uZmlnQ2hhbmdlZCk9XCJvbkFjdGlvbkNvbHVtbkNvbmZpZ0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGNvbXBvbmVudFN0YXRlQ2hhbmdlZCk9XCJjdXN0b21Hcm91cENvbHVtblNlbGVjdG9yQ29tcG9uZW50U3RhdGUkLm5leHQoJGV2ZW50KVwiXG4gICAgICA+PC9vY3gtY3VzdG9tLWdyb3VwLWNvbHVtbi1zZWxlY3Rvcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJwLTNcIj5cbiAgPG9jeC1kYXRhLXZpZXdcbiAgICBbY29sdW1uc109XCIoZGlzcGxheWVkQ29sdW1ucyQgfCBhc3luYykgPz8gW11cIlxuICAgIFtzb3J0U3RhdGVzXT1cInNvcnRTdGF0ZXNcIlxuICAgIFtzb3J0RmllbGRdPVwic29ydEZpZWxkXCJcbiAgICBbZmlsdGVyc109XCJmaWx0ZXJzXCJcbiAgICBbZGF0YV09XCJkYXRhXCJcbiAgICBbc29ydERpcmVjdGlvbl09XCJzb3J0RGlyZWN0aW9uXCJcbiAgICBbdGl0bGVMaW5lSWRdPVwidGl0bGVMaW5lSWRcIlxuICAgIFtzdWJ0aXRsZUxpbmVJZHNdPVwic3VidGl0bGVMaW5lSWRzXCJcbiAgICBbY2xpZW50U2lkZVNvcnRpbmddPVwiY2xpZW50U2lkZVNvcnRpbmdcIlxuICAgIFtjbGllbnRTaWRlRmlsdGVyaW5nXT1cImNsaWVudFNpZGVGaWx0ZXJpbmdcIlxuICAgIFtwYWdlU2l6ZXNdPVwicGFnZVNpemVzXCJcbiAgICBbcGFnZVNpemVdPVwicGFnZVNpemVcIlxuICAgIFtlbXB0eVJlc3VsdHNNZXNzYWdlXT1cImVtcHR5UmVzdWx0c01lc3NhZ2VcIlxuICAgIFtsYXlvdXRdPVwibGF5b3V0XCJcbiAgICBbbmFtZV09XCJuYW1lXCJcbiAgICBbZGVsZXRlUGVybWlzc2lvbl09XCJkZWxldGVQZXJtaXNzaW9uXCJcbiAgICBbZWRpdFBlcm1pc3Npb25dPVwiZWRpdFBlcm1pc3Npb25cIlxuICAgIFt2aWV3UGVybWlzc2lvbl09XCJ2aWV3UGVybWlzc2lvblwiXG4gICAgW2RlbGV0ZUFjdGlvbkVuYWJsZWRGaWVsZF09XCJkZWxldGVBY3Rpb25FbmFibGVkRmllbGRcIlxuICAgIFtkZWxldGVBY3Rpb25WaXNpYmxlRmllbGRdPVwiZGVsZXRlQWN0aW9uVmlzaWJsZUZpZWxkXCJcbiAgICBbZWRpdEFjdGlvbkVuYWJsZWRGaWVsZF09XCJlZGl0QWN0aW9uRW5hYmxlZEZpZWxkXCJcbiAgICBbZWRpdEFjdGlvblZpc2libGVGaWVsZF09XCJlZGl0QWN0aW9uVmlzaWJsZUZpZWxkXCJcbiAgICBbdmlld0FjdGlvbkVuYWJsZWRGaWVsZF09XCJ2aWV3QWN0aW9uRW5hYmxlZEZpZWxkXCJcbiAgICBbdmlld0FjdGlvblZpc2libGVGaWVsZF09XCJ2aWV3QWN0aW9uVmlzaWJsZUZpZWxkXCJcbiAgICBbYWRkaXRpb25hbEFjdGlvbnNdPVwiYWRkaXRpb25hbEFjdGlvbnNcIlxuICAgIFtsaXN0R3JpZFBhZ2luYXRvcl09XCJsaXN0R3JpZFBhZ2luYXRvclwiXG4gICAgW3RhYmxlUGFnaW5hdG9yXT1cInRhYmxlUGFnaW5hdG9yXCJcbiAgICBbcGFnZV09XCJwYWdlXCJcbiAgICAocGFnZUNoYW5nZWQpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxuICAgIChwYWdlU2l6ZUNoYW5nZWQpPVwib25QYWdlU2l6ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICBbc2VsZWN0ZWRSb3dzXT1cInNlbGVjdGVkUm93c1wiXG4gICAgW2Zyb3plbkFjdGlvbkNvbHVtbl09XCJmcm96ZW5BY3Rpb25Db2x1bW5cIlxuICAgIFthY3Rpb25Db2x1bW5Qb3NpdGlvbl09XCJhY3Rpb25Db2x1bW5Qb3NpdGlvblwiXG4gICAgW3N0cmluZ1RhYmxlQ2VsbFRlbXBsYXRlXT1cIl9zdHJpbmdUYWJsZUNlbGwgPyBzdHJpbmdUYWJsZUNlbGwgOiB1bmRlZmluZWRcIlxuICAgIFtudW1iZXJUYWJsZUNlbGxUZW1wbGF0ZV09XCJfbnVtYmVyVGFibGVDZWxsID8gbnVtYmVyVGFibGVDZWxsIDogdW5kZWZpbmVkXCJcbiAgICBbY3VzdG9tVGFibGVDZWxsVGVtcGxhdGVdPVwiX2N1c3RvbVRhYmxlQ2VsbCA/IGN1c3RvbVRhYmxlQ2VsbCA6IHVuZGVmaW5lZFwiXG4gICAgW2RhdGVUYWJsZUNlbGxUZW1wbGF0ZV09XCJfZGF0ZVRhYmxlQ2VsbCA/IGRhdGVUYWJsZUNlbGwgOiBfdGFibGVEYXRlQ2VsbCA/IHRhYmxlRGF0ZUNlbGwgOiB1bmRlZmluZWRcIlxuICAgIFtyZWxhdGl2ZURhdGVUYWJsZUNlbGxUZW1wbGF0ZV09XCJfcmVsYXRpdmVEYXRlVGFibGVDZWxsID8gcmVsYXRpdmVEYXRlVGFibGVDZWxsIDogX3RhYmxlUmVsYXRpdmVEYXRlQ2VsbCA/IHRhYmxlUmVsYXRpdmVEYXRlQ2VsbCA6IHVuZGVmaW5lZFwiXG4gICAgW3RhYmxlQ2VsbFRlbXBsYXRlXT1cIl90YWJsZUNlbGwgPyB0YWJsZUNlbGwgOiB1bmRlZmluZWRcIlxuICAgIFt0cmFuc2xhdGlvbktleVRhYmxlQ2VsbFRlbXBsYXRlXT1cIl90cmFuc2xhdGlvbktleVRhYmxlQ2VsbCA/IHRyYW5zbGF0aW9uS2V5VGFibGVDZWxsIDogX3RhYmxlVHJhbnNsYXRpb25LZXlDZWxsID8gdGFibGVUcmFuc2xhdGlvbktleUNlbGwgOiB1bmRlZmluZWRcIlxuICAgIFtncmlkSXRlbVN1YnRpdGxlTGluZXNUZW1wbGF0ZV09XCJfZ3JpZEl0ZW1TdWJ0aXRsZUxpbmVzID8gZ3JpZEl0ZW1TdWJ0aXRsZUxpbmVzIDogdW5kZWZpbmVkXCJcbiAgICBbbGlzdEl0ZW1TdWJ0aXRsZUxpbmVzVGVtcGxhdGVdPVwiX2xpc3RJdGVtU3VidGl0bGVMaW5lcyA/IGxpc3RJdGVtU3VidGl0bGVMaW5lcyA6IHVuZGVmaW5lZFwiXG4gICAgW2xpc3RJdGVtVGVtcGxhdGVdPVwiX2xpc3RJdGVtID8gbGlzdEl0ZW0gOiB1bmRlZmluZWRcIlxuICAgIFtsaXN0VmFsdWVUZW1wbGF0ZV09XCJfbGlzdFZhbHVlID8gbGlzdFZhbHVlIDogdW5kZWZpbmVkXCJcbiAgICBbdHJhbnNsYXRpb25LZXlMaXN0VmFsdWVUZW1wbGF0ZV09XCJfdHJhbnNsYXRpb25LZXlMaXN0VmFsdWUgPyB0cmFuc2xhdGlvbktleUxpc3RWYWx1ZSA6IHVuZGVmaW5lZFwiXG4gICAgW251bWJlckxpc3RWYWx1ZVRlbXBsYXRlXT1cIl9udW1iZXJMaXN0VmFsdWUgPyBudW1iZXJMaXN0VmFsdWUgOiB1bmRlZmluZWRcIlxuICAgIFtyZWxhdGl2ZURhdGVMaXN0VmFsdWVUZW1wbGF0ZV09XCJfcmVsYXRpdmVEYXRlTGlzdFZhbHVlID8gcmVsYXRpdmVEYXRlTGlzdFZhbHVlIDogdW5kZWZpbmVkXCJcbiAgICBbY3VzdG9tTGlzdFZhbHVlVGVtcGxhdGVdPVwiX2N1c3RvbUxpc3RWYWx1ZSA/IGN1c3RvbUxpc3RWYWx1ZSA6IHVuZGVmaW5lZFwiXG4gICAgW3N0cmluZ0xpc3RWYWx1ZVRlbXBsYXRlXT1cIl9zdHJpbmdMaXN0VmFsdWUgPyBzdHJpbmdMaXN0VmFsdWUgOiB1bmRlZmluZWRcIlxuICAgIFtkYXRlTGlzdFZhbHVlVGVtcGxhdGVdPVwiX2RhdGVMaXN0VmFsdWUgPyBkYXRlTGlzdFZhbHVlIDogdW5kZWZpbmVkXCJcbiAgICBbZ3JpZEl0ZW1UZW1wbGF0ZV09XCJfZ3JpZEl0ZW0gPyBncmlkSXRlbSAgOiB1bmRlZmluZWRcIlxuICAgIFt0YWJsZUZpbHRlckNlbGxUZW1wbGF0ZV09XCJfdGFibGVGaWx0ZXJDZWxsID8gdGFibGVGaWx0ZXJDZWxsIDogdW5kZWZpbmVkXCJcbiAgICBbZGF0ZVRhYmxlRmlsdGVyQ2VsbFRlbXBsYXRlXT1cIl9kYXRlVGFibGVGaWx0ZXJDZWxsID8gZGF0ZVRhYmxlRmlsdGVyQ2VsbCA6IHVuZGVmaW5lZFwiXG4gICAgW2N1c3RvbVRhYmxlRmlsdGVyQ2VsbFRlbXBsYXRlXT1cIl9jdXN0b21UYWJsZUZpbHRlckNlbGwgPyBjdXN0b21UYWJsZUZpbHRlckNlbGwgOiB1bmRlZmluZWRcIlxuICAgIFtudW1iZXJUYWJsZUZpbHRlckNlbGxUZW1wbGF0ZV09XCJfbnVtYmVyVGFibGVGaWx0ZXJDZWxsID8gbnVtYmVyVGFibGVGaWx0ZXJDZWxsIDogdW5kZWZpbmVkXCJcbiAgICBbc3RyaW5nVGFibGVGaWx0ZXJDZWxsVGVtcGxhdGVdPVwiX3N0cmluZ1RhYmxlRmlsdGVyQ2VsbCA/IHN0cmluZ1RhYmxlRmlsdGVyQ2VsbCA6IHVuZGVmaW5lZFwiXG4gICAgW3JlbGF0aXZlRGF0ZVRhYmxlRmlsdGVyQ2VsbFRlbXBsYXRlXT1cIl9yZWxhdGl2ZURhdGVUYWJsZUZpbHRlckNlbGwgPyByZWxhdGl2ZURhdGVUYWJsZUZpbHRlckNlbGwgOiB1bmRlZmluZWRcIlxuICAgIFt0cmFuc2xhdGlvbktleVRhYmxlRmlsdGVyQ2VsbFRlbXBsYXRlXT1cIl90cmFuc2xhdGlvbktleVRhYmxlRmlsdGVyQ2VsbCA/IHRyYW5zbGF0aW9uS2V5VGFibGVGaWx0ZXJDZWxsIDogdW5kZWZpbmVkXCJcbiAgICAoc29ydGVkKT1cInNvcnRpbmcoJGV2ZW50KVwiXG4gICAgKGZpbHRlcmVkKT1cImZpbHRlcmluZygkZXZlbnQpXCJcbiAgICBbdG90YWxSZWNvcmRzT25TZXJ2ZXJdPVwidG90YWxSZWNvcmRzT25TZXJ2ZXJcIlxuICAgIFtjdXJyZW50UGFnZVNob3dpbmdLZXldPVwiY3VycmVudFBhZ2VTaG93aW5nS2V5XCJcbiAgICBbY3VycmVudFBhZ2VTaG93aW5nV2l0aFRvdGFsT25TZXJ2ZXJLZXldPVwiY3VycmVudFBhZ2VTaG93aW5nV2l0aFRvdGFsT25TZXJ2ZXJLZXlcIlxuICAgIChjb21wb25lbnRTdGF0ZUNoYW5nZWQpPVwiZGF0YVZpZXdDb21wb25lbnRTdGF0ZSQubmV4dCgkZXZlbnQpXCJcbiAgICBbcGFyZW50VGVtcGxhdGVzXT1cInRlbXBsYXRlcyQgfCBhc3luY1wiXG4gICAgW3RhYmxlQWxsb3dTZWxlY3RBbGxdPVwidGFibGVBbGxvd1NlbGVjdEFsbFwiXG4gICAgW3RhYmxlU2VsZWN0aW9uRW5hYmxlZEZpZWxkXT1cInRhYmxlU2VsZWN0aW9uRW5hYmxlZEZpZWxkXCJcbiAgPlxuICA8L29jeC1kYXRhLXZpZXc+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Q29sdW1uR3JvdXBTZWxlY3Rpb25Db21wb25lbnQ+XG4gIDxvY3gtY29sdW1uLWdyb3VwLXNlbGVjdGlvblxuICAgICpuZ0lmPVwibGF5b3V0ID09PSAndGFibGUnXCJcbiAgICBbc2VsZWN0ZWRHcm91cEtleV09XCJzZWxlY3RlZEdyb3VwS2V5ID8/IGRlZmF1bHRHcm91cEtleVwiXG4gICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgW2RlZmF1bHRHcm91cEtleV09XCJkZWZhdWx0R3JvdXBLZXkgIT09IGN1c3RvbUdyb3VwS2V5ID8gZGVmYXVsdEdyb3VwS2V5IDogJydcIlxuICAgIFtjdXN0b21Hcm91cEtleV09XCJjdXN0b21Hcm91cEtleVwiXG4gICAgW3BsYWNlaG9sZGVyS2V5XT1cImdyb3VwU2VsZWN0aW9uTm9Hcm91cFNlbGVjdGVkS2V5XCJcbiAgICAoZ3JvdXBTZWxlY3Rpb25DaGFuZ2VkKT1cIm9uQ29sdW1uR3JvdXBTZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgKGNvbXBvbmVudFN0YXRlQ2hhbmdlZCk9XCJjb2x1bW5Hcm91cFNlbGVjdGlvbkNvbXBvbmVudFN0YXRlJC5uZXh0KCRldmVudClcIlxuICA+PC9vY3gtY29sdW1uLWdyb3VwLXNlbGVjdGlvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc3RyaW5nVGFibGVDZWxsIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIl9zdHJpbmdUYWJsZUNlbGxcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9zdHJpbmdUYWJsZUNlbGxcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7cm93T2JqZWN0OiByb3dPYmplY3QsIGNvbHVtbjpjb2x1bW59XCJcbiAgPlxuICA8L25nLWNvbnRhaW5lclxuPjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3RhYmxlRGF0ZUNlbGwgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiX3RhYmxlRGF0ZUNlbGxcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl90YWJsZURhdGVDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie3Jvd09iamVjdDpyb3dPYmplY3QsIGNvbHVtbjpjb2x1bW59XCJcbiAgPlxuICA8L25nLWNvbnRhaW5lclxuPjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2RhdGVUYWJsZUNlbGwgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiX2RhdGVUYWJsZUNlbGxcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9kYXRlVGFibGVDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie3Jvd09iamVjdDpyb3dPYmplY3QsIGNvbHVtbjpjb2x1bW59XCJcbiAgPlxuICA8L25nLWNvbnRhaW5lclxuPjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3RhYmxlUmVsYXRpdmVEYXRlQ2VsbCBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJfdGFibGVSZWxhdGl2ZURhdGVDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfdGFibGVSZWxhdGl2ZURhdGVDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie3Jvd09iamVjdDpyb3dPYmplY3QsIGNvbHVtbjpjb2x1bW59XCJcbiAgPlxuICA8L25nLWNvbnRhaW5lclxuPjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3JlbGF0aXZlRGF0ZVRhYmxlQ2VsbCBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJfcmVsYXRpdmVEYXRlVGFibGVDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfcmVsYXRpdmVEYXRlVGFibGVDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie3Jvd09iamVjdDpyb3dPYmplY3QsIGNvbHVtbjpjb2x1bW59XCJcbiAgPlxuICA8L25nLWNvbnRhaW5lclxuPjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3RhYmxlQ2VsbCBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJfdGFibGVDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfdGFibGVDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie3Jvd09iamVjdDogcm93T2JqZWN0LCBjb2x1bW46Y29sdW1ufVwiXG4gID5cbiAgPC9uZy1jb250YWluZXJcbj48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICN0YWJsZVRyYW5zbGF0aW9uS2V5Q2VsbCBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJfdGFibGVUcmFuc2xhdGlvbktleUNlbGxcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl90YWJsZVRyYW5zbGF0aW9uS2V5Q2VsbFwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6cm93T2JqZWN0LCBjb2x1bW46Y29sdW1ufVwiXG4gID5cbiAgPC9uZy1jb250YWluZXJcbj48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICN0cmFuc2xhdGlvbktleVRhYmxlQ2VsbCBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJfdHJhbnNsYXRpb25LZXlUYWJsZUNlbGxcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl90cmFuc2xhdGlvbktleVRhYmxlQ2VsbFwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6cm93T2JqZWN0LCBjb2x1bW46Y29sdW1ufVwiXG4gID5cbiAgPC9uZy1jb250YWluZXJcbj48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNncmlkSXRlbVN1YnRpdGxlTGluZXMgbGV0LWl0ZW0+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIl9ncmlkSXRlbVN1YnRpdGxlTGluZXNcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9ncmlkSXRlbVN1YnRpdGxlTGluZXNcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7JGltcGxpY2l0Oml0ZW19XCJcbiAgPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2xpc3RJdGVtU3VidGl0bGVMaW5lcyBsZXQtaXRlbT5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiX2xpc3RJdGVtU3VidGl0bGVMaW5lc1wiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2xpc3RJdGVtU3VidGl0bGVMaW5lc1wiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInskaW1wbGljaXQ6aXRlbX1cIlxuICA+XG4gIDwvbmctY29udGFpbmVyXG4+PC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZ3JpZEl0ZW0gbGV0LWl0ZW0+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJfZ3JpZEl0ZW1cIiBbbmdUZW1wbGF0ZU91dGxldF09XCJfZ3JpZEl0ZW1cIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDppdGVtfVwiPlxuICA8L25nLWNvbnRhaW5lclxuPjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2xpc3RJdGVtIGxldC1pdGVtPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiX2xpc3RJdGVtXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2xpc3RJdGVtXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInskaW1wbGljaXQ6aXRlbX1cIj5cbiAgPC9uZy1jb250YWluZXJcbj48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNsaXN0VmFsdWUgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiX2xpc3RWYWx1ZVwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2xpc3RWYWx1ZVwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6IHJvd09iamVjdCwgY29sdW1uOmNvbHVtbn1cIlxuICA+XG4gIDwvbmctY29udGFpbmVyXG4+PC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjdHJhbnNsYXRpb25LZXlMaXN0VmFsdWUgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiX3RyYW5zbGF0aW9uS2V5TGlzdFZhbHVlXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfdHJhbnNsYXRpb25LZXlMaXN0VmFsdWVcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7cm93T2JqZWN0OiByb3dPYmplY3QsIGNvbHVtbjpjb2x1bW59XCJcbiAgPlxuICA8L25nLWNvbnRhaW5lclxuPjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI251bWJlckxpc3RWYWx1ZSBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJfbnVtYmVyTGlzdFZhbHVlXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfbnVtYmVyTGlzdFZhbHVlXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie3Jvd09iamVjdDogcm93T2JqZWN0LCBjb2x1bW46Y29sdW1ufVwiXG4gID5cbiAgPC9uZy1jb250YWluZXJcbj48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNyZWxhdGl2ZURhdGVMaXN0VmFsdWUgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiX3JlbGF0aXZlRGF0ZUxpc3RWYWx1ZVwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX3JlbGF0aXZlRGF0ZUxpc3RWYWx1ZVwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6IHJvd09iamVjdCwgY29sdW1uOmNvbHVtbn1cIlxuICA+XG4gIDwvbmctY29udGFpbmVyXG4+PC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjY3VzdG9tTGlzdFZhbHVlIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIl9jdXN0b21MaXN0VmFsdWVcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9jdXN0b21MaXN0VmFsdWVcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7cm93T2JqZWN0OiByb3dPYmplY3QsIGNvbHVtbjpjb2x1bW59XCJcbiAgPlxuICA8L25nLWNvbnRhaW5lclxuPjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3N0cmluZ0xpc3RWYWx1ZSBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJfc3RyaW5nTGlzdFZhbHVlXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfc3RyaW5nTGlzdFZhbHVlXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie3Jvd09iamVjdDogcm93T2JqZWN0LCBjb2x1bW46Y29sdW1ufVwiXG4gID5cbiAgPC9uZy1jb250YWluZXJcbj48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNkYXRlTGlzdFZhbHVlIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIl9kYXRlTGlzdFZhbHVlXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfZGF0ZUxpc3RWYWx1ZVwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6IHJvd09iamVjdCwgY29sdW1uOmNvbHVtbn1cIlxuICA+XG4gIDwvbmctY29udGFpbmVyXG4+PC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzdHJpbmdUYWJsZUZpbHRlckNlbGwgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiX3N0cmluZ1RhYmxlRmlsdGVyQ2VsbFwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX3N0cmluZ1RhYmxlRmlsdGVyQ2VsbFwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6IHJvd09iamVjdCwgY29sdW1uOmNvbHVtbn1cIlxuICA+XG4gIDwvbmctY29udGFpbmVyXG4+PC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbnVtYmVyVGFibGVGaWx0ZXJDZWxsIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIl9udW1iZXJUYWJsZUZpbHRlckNlbGxcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9udW1iZXJUYWJsZUZpbHRlckNlbGxcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7cm93T2JqZWN0OiByb3dPYmplY3QsIGNvbHVtbjpjb2x1bW59XCJcbiAgPlxuICA8L25nLWNvbnRhaW5lclxuPjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2N1c3RvbVRhYmxlRmlsdGVyQ2VsbCBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJfY3VzdG9tVGFibGVGaWx0ZXJDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfY3VzdG9tVGFibGVGaWx0ZXJDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie3Jvd09iamVjdDogcm93T2JqZWN0LCBjb2x1bW46Y29sdW1ufVwiXG4gID5cbiAgPC9uZy1jb250YWluZXJcbj48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNkYXRlVGFibGVGaWx0ZXJDZWxsIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIl9kYXRlVGFibGVGaWx0ZXJDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfZGF0ZVRhYmxlRmlsdGVyQ2VsbFwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6IHJvd09iamVjdCwgY29sdW1uOmNvbHVtbn1cIlxuICA+XG4gIDwvbmctY29udGFpbmVyXG4+PC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjcmVsYXRpdmVEYXRlVGFibGVGaWx0ZXJDZWxsIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIl9yZWxhdGl2ZURhdGVUYWJsZUZpbHRlckNlbGxcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9yZWxhdGl2ZURhdGVUYWJsZUZpbHRlckNlbGxcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7cm93T2JqZWN0OiByb3dPYmplY3QsIGNvbHVtbjpjb2x1bW59XCJcbiAgPlxuICA8L25nLWNvbnRhaW5lclxuPjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3RyYW5zbGF0aW9uS2V5VGFibGVGaWx0ZXJDZWxsIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIl90cmFuc2xhdGlvbktleVRhYmxlRmlsdGVyQ2VsbFwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX3RyYW5zbGF0aW9uS2V5VGFibGVGaWx0ZXJDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie3Jvd09iamVjdDogcm93T2JqZWN0LCBjb2x1bW46Y29sdW1ufVwiXG4gID5cbiAgPC9uZy1jb250YWluZXJcbj48L25nLXRlbXBsYXRlPlxuIl19
|
|
721
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUtZGF0YS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1hY2NlbGVyYXRvci9zcmMvbGliL2NvbXBvbmVudHMvaW50ZXJhY3RpdmUtZGF0YS12aWV3L2ludGVyYWN0aXZlLWRhdGEtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2ludGVyYWN0aXZlLWRhdGEtdmlldy9pbnRlcmFjdGl2ZS1kYXRhLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUdOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQ0wsZUFBZSxFQUVmLGFBQWEsRUFDYixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLEdBQUcsRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUNULGNBQWMsR0FDZixNQUFNLE1BQU0sQ0FBQTtBQUliLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBS3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFNM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBSTlELE9BQU8sRUFBRSxpQkFBaUIsRUFBMkMsTUFBTSxrQ0FBa0MsQ0FBQTtBQUU3RyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMEJBQTBCLENBQUE7Ozs7Ozs7Ozs7OztBQW9CaEQsTUFBTSxPQUFPLDRCQUE0QjtJQUV2QyxJQUFrQyxRQUFRLENBQUMsR0FBa0M7UUFDM0UsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEdBQUcsQ0FBQTtRQUM3QixJQUFJLENBQUMsZ0NBQWdDLEVBQUUsQ0FBQTtJQUN6QyxDQUFDO0lBQ0QsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUE7SUFDaEMsQ0FBQztJQTZERCxJQUNJLG1CQUFtQjtRQUNyQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUM3QyxDQUFDO0lBQ0QsSUFBSSxtQkFBbUIsQ0FBQyxLQUFlO1FBQ3JDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUNEOztPQUVHO0lBQ0gsSUFDSSxnQkFBZ0I7UUFDbEIsT0FBTyxDQUNKLElBQUksQ0FBQyxtQkFBbUI7YUFDdEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNoRCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBdUIsSUFBSSxFQUFFLENBQ2hELENBQUE7SUFDSCxDQUFDO0lBQ0QsSUFBSSxnQkFBZ0IsQ0FBQyxLQUF3QjtRQUMzQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3hELENBQUM7SUErREQsSUFDSSxTQUFTLENBQUMsS0FBMkM7UUFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDN0IsQ0FBQztJQW1CRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUMxQyxDQUFDO0lBQ0QsSUFBSSxnQkFBZ0IsQ0FBQyxLQUF5QjtRQUM1QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3BDLENBQUM7SUFNRCxJQUNJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFBO0lBQ3RELENBQUM7SUFDRCxJQUFJLFNBQVMsQ0FBQyxLQUFjO1FBQzFCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUE7UUFDOUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUE7SUFDN0IsQ0FBQztJQUVELElBQUksc0JBQXNCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFBO0lBQ25DLENBQUM7SUFDRCxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQTtJQUNuQyxDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFBO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUE7SUFDN0IsQ0FBQztJQUNELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQTtJQUM3QixDQUFDO0lBQ0QsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFBO0lBQzdCLENBQUM7SUFDRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUE7SUFDakQsQ0FBQztJQUNELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUE7SUFDM0IsQ0FBQztJQUNELElBQUksc0JBQXNCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQTtJQUNqRSxDQUFDO0lBQ0QsSUFBSSxzQkFBc0I7UUFDeEIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUE7SUFDbkMsQ0FBQztJQUNELElBQUksd0JBQXdCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixJQUFJLElBQUksQ0FBQyx1QkFBdUIsQ0FBQTtJQUNyRSxDQUFDO0lBQ0QsSUFBSSx3QkFBd0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUE7SUFDckMsQ0FBQztJQUNELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQTtJQUN0QixDQUFDO0lBQ0QsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFBO0lBQ3RCLENBQUM7SUFDRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUE7SUFDdkIsQ0FBQztJQUNELElBQUksd0JBQXdCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFBO0lBQ3JDLENBQUM7SUFDRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUE7SUFDN0IsQ0FBQztJQUNELElBQUksc0JBQXNCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFBO0lBQ25DLENBQUM7SUFDRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUE7SUFDN0IsQ0FBQztJQUNELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQTtJQUM3QixDQUFDO0lBQ0QsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQTtJQUMzQixDQUFDO0lBQ0QsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFBO0lBQzdCLENBQUM7SUFDRCxJQUFJLG9CQUFvQjtRQUN0QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQTtJQUNqQyxDQUFDO0lBQ0QsSUFBSSw0QkFBNEI7UUFDOUIsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUE7SUFDekMsQ0FBQztJQUNELElBQUksOEJBQThCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLDZCQUE2QixDQUFBO0lBQzNDLENBQUM7SUFDRCxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQTtJQUNuQyxDQUFDO0lBQ0QsSUFBSSxzQkFBc0I7UUFDeEIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUE7SUFDbkMsQ0FBQztJQUNELElBQUksc0JBQXNCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFBO0lBQ25DLENBQUM7SUFHRCxJQUNJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUE7SUFDbkIsQ0FBQztJQUNELElBQUksSUFBSSxDQUFDLEtBQXdCO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO0lBQ3BCLENBQUM7SUFNRCxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQTFSNUMsd0NBQW1DLEdBQUcsSUFBSSxhQUFhLENBQXFDLENBQUMsQ0FBQyxDQUFBO1FBQzlGLDZDQUF3QyxHQUFHLElBQUksYUFBYSxDQUEwQyxDQUFDLENBQUMsQ0FBQTtRQUN4Ryw4QkFBeUIsR0FBRyxJQUFJLGFBQWEsQ0FBb0MsQ0FBQyxDQUFDLENBQUE7UUFDbkYsdUNBQWtDLEdBQUcsSUFBSSxhQUFhLENBQW9DLENBQUMsQ0FBQyxDQUFBO1FBQzVGLDRCQUF1QixHQUFHLElBQUksYUFBYSxDQUF5QixDQUFDLENBQUMsQ0FBQTtRQUN0RSw4QkFBeUIsR0FBRyxJQUFJLGFBQWEsQ0FBMkIsQ0FBQyxDQUFDLENBQUE7UUFhakUsd0JBQW1CLEdBQUcsSUFBSSxDQUFBO1FBQzFCLFNBQUksR0FBRyxNQUFNLENBQUE7UUFFYixvQkFBZSxHQUFhLEVBQUUsQ0FBQTtRQUM5Qix5QkFBb0IsR0FBa0MsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQy9FLFlBQU8sR0FBc0IsRUFBRSxDQUFBO1FBRS9CLHNCQUFpQixHQUFHLElBQUksQ0FBQTtRQUN4Qix3QkFBbUIsR0FBRyxJQUFJLENBQUE7UUFDMUIsa0JBQWEsR0FBRyxpQkFBaUIsQ0FBQTtRQUNqQyxZQUFPLEdBQWEsRUFBRSxDQUFBO1FBQ3RCLGtCQUFhLHVDQUE0QztRQUN6RCxjQUFTLEdBQVEsRUFBRSxDQUFBO1FBQ25CLGVBQVUsR0FBd0I7Ozs7U0FJMUMsQ0FBQTtRQUNRLGNBQVMsR0FBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFHbEMsV0FBTSxHQUE4QixPQUFPLENBQUE7UUFDM0Msb0JBQWUsR0FBRyxFQUFFLENBQUE7UUFDcEIsbUJBQWMsR0FBRyx3Q0FBd0MsQ0FBQTtRQUN6RCxxQ0FBZ0MsR0FBRyw2Q0FBNkMsQ0FBQTtRQUNoRiwwQkFBcUIsR0FBRyx3QkFBd0IsQ0FBQTtRQUNoRCwyQ0FBc0MsR0FBRyw2Q0FBNkMsQ0FBQTtRQUN0RixzQkFBaUIsR0FBaUIsRUFBRSxDQUFBO1FBQ3BDLHNCQUFpQixHQUFHLElBQUksQ0FBQTtRQUN4QixtQkFBYyxHQUFHLElBQUksQ0FBQTtRQUNyQixzQkFBaUIsR0FBRyxJQUFJLENBQUE7UUFDeEIsMEJBQXFCLEdBQTBCLFFBQVEsQ0FBQTtRQUN2RCw2QkFBd0IsR0FBRyxFQUFFLENBQUE7UUFDN0IseUJBQW9CLEdBQTZCLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxDQUFBO1FBQ3pFLHlCQUFvQixHQUE2QixFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQTtRQUN2RSx5QkFBb0IsR0FBZ0UsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUN2RyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQzdCLFNBQUksR0FBRyxDQUFDLENBQUE7UUFDUixpQkFBWSxHQUFVLEVBQUUsQ0FBQTtRQUNqQyx5QkFBb0IsR0FBRyxJQUFJLGVBQWUsQ0FBVyxFQUFFLENBQUMsQ0FBQTtRQXVCL0MsdUJBQWtCLEdBQUcsS0FBSyxDQUFBO1FBQzFCLHlCQUFvQixHQUFxQixPQUFPLENBQUE7UUEwRHpELGVBQVUsR0FBMEQsSUFBSSxlQUFlLENBRXJGLFNBQVMsQ0FBQyxDQUFBO1FBTUYsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFZLENBQUE7UUFDdkMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUE7UUFDakMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFtQixDQUFBO1FBQ2hELGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQTtRQUM5QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUE7UUFDOUMseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUE7UUFDOUUsa0ZBQWtGO1FBQ3hFLDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFxQixDQUFBO1FBQzlELDhCQUF5QixHQUFHLElBQUksWUFBWSxFQUFZLENBQUE7UUFDeEQscUJBQWdCLEdBQXdCLElBQUksWUFBWSxFQUFFLENBQUE7UUFFMUQsZ0JBQVcsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQTtRQUN0RCxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUE7UUFFNUMsMEJBQXFCLEdBQUcsSUFBSSxZQUFZLEVBQXFDLENBQUE7UUFFdkYsc0JBQWlCLEdBQUcsSUFBSSxlQUFlLENBQXFCLEVBQUUsQ0FBQyxDQUFBO1FBMEcvRCxVQUFLLEdBQXNCLEVBQUUsQ0FBQTtRQVM3Qix3QkFBbUIsR0FBRyw4QkFBOEIsQ0FBQTtRQUVwRCxxQ0FBZ0MsR0FBRyxJQUFJLFlBQVksRUFBK0IsQ0FBQTtRQUdoRixJQUFJLENBQUMsdUNBQXVDLEdBQUcsSUFBSSxDQUFDLFdBQVc7YUFDNUQsNkJBQTZCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO2FBQ3ZELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUV4QixJQUFJLENBQUMsZ0NBQWdDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBa0MsRUFBRSxFQUFFO1lBQ3JGLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUN4QixLQUFLLEdBQUc7b0JBQ04sYUFBYSxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7b0JBQ3BDLFFBQVEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGVBQWU7aUJBQ3hELENBQUE7WUFDSCxDQUFDO1lBQ0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7WUFDeEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDM0MsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtZQUN2RCxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1lBQzdELElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxJQUFJLENBQUM7Z0JBQzVDLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxRQUFRO2dCQUNwQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsYUFBYTthQUN0QyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxvQkFBb0I7YUFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsdUNBQXVDLENBQUMsQ0FBQzthQUNsRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSwyQkFBMkIsQ0FBQyxFQUFFLEVBQUU7WUFDOUMsSUFBSSwyQkFBMkIsRUFBRSxDQUFDO2dCQUNoQyxJQUNFLENBQUMsQ0FDQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7b0JBQzdELElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxJQUFJLENBQUMsY0FBYyxDQUM5QyxFQUNELENBQUM7b0JBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtnQkFDeEMsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUE7UUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ3BFLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxPQUFPO2lCQUNwQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2lCQUM5RSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUMvQixDQUFDO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQ3JELG9CQUFvQixDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUN4RyxHQUFHLENBQ0QsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUNaLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQXVCO1lBQzNHLEVBQUUsQ0FDTCxDQUNGLENBQUE7UUFDRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1FBQ3ZELElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFDN0QsSUFBSSxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxnQ0FBZ0MsR0FBRyw2Q0FBNkMsQ0FBQTtRQUN2RixDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQTtRQUV4QyxJQUFJLGtDQUFrQyxHQUNwQyxJQUFJLENBQUMsa0NBQWtDLENBQUE7UUFDekMsSUFBSSxtQ0FBbUMsR0FDckMsSUFBSSxDQUFDLG1DQUFtQyxDQUFBO1FBQzFDLElBQUksd0NBQXdDLEdBRXhDLElBQUksQ0FBQyx3Q0FBd0MsQ0FBQTtRQUVqRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDNUIsa0NBQWtDLEdBQUcsa0NBQWtDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQzdGLENBQUM7YUFBTSxDQUFDO1lBQ04sbUNBQW1DLEdBQUcsbUNBQW1DLENBQUMsSUFBSSxDQUM1RSxTQUFTLENBQUM7Z0JBQ1Isb0JBQW9CLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtnQkFDM0MsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjthQUN4QyxDQUFDLENBQ0gsQ0FBQTtZQUNELHdDQUF3QyxHQUFHLHdDQUF3QyxDQUFDLElBQUksQ0FDdEYsU0FBUyxDQUFDO2dCQUNSLGtCQUFrQixFQUFFO29CQUNsQixNQUFNLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtvQkFDL0IsUUFBUSxFQUFFLElBQUksQ0FBQyxvQkFBb0I7aUJBQ3BDO2dCQUNELGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7Z0JBQ3ZDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7YUFDNUMsQ0FBQyxDQUNILENBQUE7UUFDSCxDQUFDO1FBRUQsSUFBSSx5QkFBeUIsR0FDM0IsSUFBSSxDQUFDLHlCQUF5QixDQUFBO1FBQ2hDLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IseUJBQXlCLEdBQUcseUJBQXlCLENBQUMsSUFBSSxDQUN4RCxTQUFTLENBQUM7Z0JBQ1IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2FBQ3RCLENBQUMsQ0FDSCxDQUFBO1FBQ0gsQ0FBQztRQUVELGFBQWEsQ0FBQztZQUNaLG1DQUFtQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNyRCx3Q0FBd0MsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDMUQsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNoRCxrQ0FBa0MsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM5Qyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDNUMsQ0FBQzthQUNDLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTtZQUN0QixPQUFPLDhCQUE4QixDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBQ3hELENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDakIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUN0QyxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdEMsUUFBUSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztnQkFDdkIsS0FBSyxXQUFXO29CQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQTtvQkFDOUIsTUFBSztnQkFDUCxLQUFLLGVBQWU7b0JBQ2xCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQTtvQkFDbEMsTUFBSztnQkFDUCxLQUFLLGVBQWU7b0JBQ2xCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQTtvQkFDbEMsTUFBSztnQkFDUCxLQUFLLHVCQUF1QjtvQkFDMUIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUE7b0JBQzFDLE1BQUs7Z0JBQ1AsS0FBSyx1QkFBdUI7b0JBQzFCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFBO29CQUMxQyxNQUFLO2dCQUNQLEtBQUsseUJBQXlCO29CQUM1QixJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQTtvQkFDNUMsTUFBSztnQkFDUCxLQUFLLHlCQUF5QjtvQkFDNUIsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUE7b0JBQzVDLE1BQUs7Z0JBQ1AsS0FBSyx1QkFBdUI7b0JBQzFCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFBO29CQUMxQyxNQUFLO2dCQUNQLEtBQUssdUJBQXVCO29CQUMxQixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQTtvQkFDMUMsTUFBSztnQkFDUCxLQUFLLGlCQUFpQjtvQkFDcEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFBO29CQUNwQyxNQUFLO2dCQUNQLEtBQUssaUJBQWlCO29CQUNwQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUE7b0JBQ3BDLE1BQUs7Z0JBQ1AsS0FBSyxpQkFBaUI7b0JBQ3BCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQTtvQkFDcEMsTUFBSztnQkFDUCxLQUFLLFVBQVU7b0JBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFBO29CQUM3QixNQUFLO2dCQUNQLEtBQUssVUFBVTtvQkFDYixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUE7b0JBQzdCLE1BQUs7Z0JBQ1AsS0FBSyxXQUFXO29CQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQTtvQkFDOUIsTUFBSztnQkFDUCxLQUFLLFdBQVc7b0JBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFBO29CQUM5QixNQUFLO2dCQUNQLEtBQUsseUJBQXlCO29CQUM1QixJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQTtvQkFDNUMsTUFBSztnQkFDUCxLQUFLLGlCQUFpQjtvQkFDcEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFBO29CQUNwQyxNQUFLO2dCQUNQLEtBQUssdUJBQXVCO29CQUMxQixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQTtvQkFDMUMsTUFBSztnQkFDUCxLQUFLLGlCQUFpQjtvQkFDcEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFBO29CQUNwQyxNQUFLO2dCQUNQLEtBQUssaUJBQWlCO29CQUNwQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUE7b0JBQ3BDLE1BQUs7Z0JBQ1AsS0FBSyxlQUFlO29CQUNsQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUE7b0JBQ2xDLE1BQUs7Z0JBQ1AsS0FBSyxpQkFBaUI7b0JBQ3BCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQTtvQkFDcEMsTUFBSztnQkFDUCxLQUFLLHFCQUFxQjtvQkFDeEIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUE7b0JBQ3hDLE1BQUs7Z0JBQ1AsS0FBSyw2QkFBNkI7b0JBQ2hDLElBQUksQ0FBQywyQkFBMkIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFBO29CQUNoRCxNQUFLO2dCQUNQLEtBQUssK0JBQStCO29CQUNsQyxJQUFJLENBQUMsNkJBQTZCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQTtvQkFDbEQsTUFBSztnQkFDUCxLQUFLLHVCQUF1QjtvQkFDMUIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUE7b0JBQzFDLE1BQUs7Z0JBQ1AsS0FBSyx1QkFBdUI7b0JBQzFCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFBO29CQUMxQyxNQUFLO2dCQUNQLEtBQUssdUJBQXVCO29CQUMxQixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQTtvQkFDMUMsTUFBSztZQUNULENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBVTtRQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTtRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMzQixDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQVU7UUFDaEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFBO1FBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQTtRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN6QixDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQXdCO1FBQ3RDLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDL0IsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsT0FBd0I7UUFDcEMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxPQUF3QjtRQUNwQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRUQsc0JBQXNCLENBQUMsTUFBaUM7UUFDdEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7UUFDcEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUN4QyxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQVc7UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUE7UUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUE7SUFDckYsQ0FBQztJQUVELHFCQUFxQixDQUFDLE1BQVc7UUFDL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUE7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUE7SUFDckYsQ0FBQztJQUVELDRCQUE0QixDQUFDLEtBQWlDO1FBQzVELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ25FLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFBO1FBQ3RDLGtGQUFrRjtRQUNsRixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1FBQ3ZELElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVELGdDQUFnQztRQUM5QixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQTtZQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbEQsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDdEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtnQkFDN0IsQ0FBQyxDQUFDLENBQUE7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFBO1lBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNoRCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUNwRCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFBO2dCQUMzQixDQUFDLENBQUMsQ0FBQTtZQUNKLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUE7WUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ3BELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQzNCLENBQUMsQ0FBQyxDQUFBO1lBQ0osQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN4RCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQzVELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtnQkFDbEMsQ0FBQyxDQUFDLENBQUE7WUFDSixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxLQUFrQztRQUN4RCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNuRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQTtRQUMzQyxrRkFBa0Y7UUFDbEYsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUN2RCxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO0lBQy9ELENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxLQUErQjtRQUN4RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFBO1FBQ2xELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUMsb0JBQW9CLENBQUE7SUFDeEQsQ0FBQztJQUVELG9CQUFvQixDQUFDLEtBQVk7UUFDL0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNuQyxDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFhO1FBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFBO1FBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzlCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFhO1FBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO1FBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2xDLENBQUM7OEdBM21CVSw0QkFBNEI7a0dBQTVCLDRCQUE0Qix1N0VBRjVCLENBQUMsRUFBRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsV0FBVyxFQUFFLDRCQUE0QixFQUFFLENBQUMscWlHQTBKbEYsYUFBYSx1RUF0Sm5CLGlCQUFpQixnRENsRTlCLDYxZUFvV0E7OzJGRHBTYSw0QkFBNEI7a0JBTnhDLFNBQVM7K0JBQ0UsMkJBQTJCLGFBRzFCLENBQUMsRUFBRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsV0FBVyw4QkFBOEIsRUFBRSxDQUFDO2dGQUlqRSxRQUFRO3NCQUF6QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFlbkIsc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGdDQUFnQztzQkFBeEMsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csc0NBQXNDO3NCQUE5QyxLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFJRixtQkFBbUI7c0JBRHRCLEtBQUs7Z0JBV0YsZ0JBQWdCO3NCQURuQixLQUFLO2dCQVdHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ3FCLFNBQVM7c0JBQW5DLFlBQVk7dUJBQUMsV0FBVztnQkFJTSxhQUFhO3NCQUEzQyxZQUFZO3VCQUFDLGVBQWU7Z0JBQ0UsYUFBYTtzQkFBM0MsWUFBWTt1QkFBQyxlQUFlO2dCQUtVLHFCQUFxQjtzQkFBM0QsWUFBWTt1QkFBQyx1QkFBdUI7Z0JBQ0UscUJBQXFCO3NCQUEzRCxZQUFZO3VCQUFDLHVCQUF1QjtnQkFLSSx1QkFBdUI7c0JBQS9ELFlBQVk7dUJBQUMseUJBQXlCO2dCQUNFLHVCQUF1QjtzQkFBL0QsWUFBWTt1QkFBQyx5QkFBeUI7Z0JBRUEscUJBQXFCO3NCQUEzRCxZQUFZO3VCQUFDLHVCQUF1QjtnQkFDRSxxQkFBcUI7c0JBQTNELFlBQVk7dUJBQUMsdUJBQXVCO2dCQUNKLGVBQWU7c0JBQS9DLFlBQVk7dUJBQUMsaUJBQWlCO2dCQUNFLGVBQWU7c0JBQS9DLFlBQVk7dUJBQUMsaUJBQWlCO2dCQU1FLGVBQWU7c0JBQS9DLFlBQVk7dUJBQUMsaUJBQWlCO2dCQUNMLFFBQVE7c0JBQWpDLFlBQVk7dUJBQUMsVUFBVTtnQkFDRSxRQUFRO3NCQUFqQyxZQUFZO3VCQUFDLFVBQVU7Z0JBQ0csU0FBUztzQkFBbkMsWUFBWTt1QkFBQyxXQUFXO2dCQUNFLFNBQVM7c0JBQW5DLFlBQVk7dUJBQUMsV0FBVztnQkFDZ0IsdUJBQXVCO3NCQUEvRCxZQUFZO3VCQUFDLHlCQUF5QjtnQkFDTixlQUFlO3NCQUEvQyxZQUFZO3VCQUFDLGlCQUFpQjtnQkFDUSxxQkFBcUI7c0JBQTNELFlBQVk7dUJBQUMsdUJBQXVCO2dCQU1KLGVBQWU7c0JBQS9DLFlBQVk7dUJBQUMsaUJBQWlCO2dCQUNFLGVBQWU7c0JBQS9DLFlBQVk7dUJBQUMsaUJBQWlCO2dCQUNBLGFBQWE7c0JBQTNDLFlBQVk7dUJBQUMsZUFBZTtnQkFDSSxlQUFlO3NCQUEvQyxZQUFZO3VCQUFDLGlCQUFpQjtnQkFDTSxtQkFBbUI7c0JBQXZELFlBQVk7dUJBQUMscUJBQXFCO2dCQUNVLDJCQUEyQjtzQkFBdkUsWUFBWTt1QkFBQyw2QkFBNkI7Z0JBQ0ksNkJBQTZCO3NCQUEzRSxZQUFZO3VCQUFDLCtCQUErQjtnQkFDTixxQkFBcUI7c0JBQTNELFlBQVk7dUJBQUMsdUJBQXVCO2dCQUNFLHFCQUFxQjtzQkFBM0QsWUFBWTt1QkFBQyx1QkFBdUI7Z0JBTUUscUJBQXFCO3NCQUEzRCxZQUFZO3VCQUFDLHVCQUF1QjtnQkFNakMsU0FBUztzQkFEWixlQUFlO3VCQUFDLGFBQWE7Z0JBS3BCLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFFRyxzQkFBc0I7c0JBQS9CLE1BQU07Z0JBQ0cseUJBQXlCO3NCQUFsQyxNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFFRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBRUcscUJBQXFCO3NCQUE5QixNQUFNO2dCQWVILFNBQVM7c0JBRFosS0FBSztnQkFnR0YsSUFBSTtzQkFEUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgT2JzZXJ2YWJsZSxcbiAgUmVwbGF5U3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG1hcCxcbiAgc3RhcnRXaXRoLFxuICB0aW1lc3RhbXAsXG4gIHdpdGhMYXRlc3RGcm9tLFxufSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgRGF0YUFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVsL2RhdGEtYWN0aW9uJ1xuaW1wb3J0IHsgRGF0YVNvcnREaXJlY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbC9kYXRhLXNvcnQtZGlyZWN0aW9uJ1xuaW1wb3J0IHsgRGF0YVRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vLi4vbW9kZWwvZGF0YS10YWJsZS1jb2x1bW4ubW9kZWwnXG5pbXBvcnQgeyBvcmRlckFuZE1lcmdlVmFsdWVzQnlUaW1lc3RhbXAgfSBmcm9tICcuLi8uLi91dGlscy9yeGpzLXV0aWxzJ1xuaW1wb3J0IHtcbiAgQ29sdW1uR3JvdXBTZWxlY3Rpb25Db21wb25lbnRTdGF0ZSxcbiAgR3JvdXBTZWxlY3Rpb25DaGFuZ2VkRXZlbnQsXG59IGZyb20gJy4uL2NvbHVtbi1ncm91cC1zZWxlY3Rpb24vY29sdW1uLWdyb3VwLXNlbGVjdGlvbi5jb21wb25lbnQnXG5pbXBvcnQgeyBQcmltZVRlbXBsYXRlIH0gZnJvbSAncHJpbWVuZy9hcGknXG5pbXBvcnQge1xuICBBY3Rpb25Db2x1bW5DaGFuZ2VkRXZlbnQsXG4gIENvbHVtblNlbGVjdGlvbkNoYW5nZWRFdmVudCxcbiAgQ3VzdG9tR3JvdXBDb2x1bW5TZWxlY3RvckNvbXBvbmVudFN0YXRlLFxufSBmcm9tICcuLi9jdXN0b20tZ3JvdXAtY29sdW1uLXNlbGVjdG9yL2N1c3RvbS1ncm91cC1jb2x1bW4tc2VsZWN0b3IuY29tcG9uZW50J1xuaW1wb3J0IHsgU2xvdFNlcnZpY2UgfSBmcm9tICdAb25lY3gvYW5ndWxhci1yZW1vdGUtY29tcG9uZW50cydcbmltcG9ydCB7IERhdGFMYXlvdXRTZWxlY3Rpb25Db21wb25lbnRTdGF0ZSB9IGZyb20gJy4uL2RhdGEtbGF5b3V0LXNlbGVjdGlvbi9kYXRhLWxheW91dC1zZWxlY3Rpb24uY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YUxpc3RHcmlkU29ydGluZ0NvbXBvbmVudFN0YXRlIH0gZnJvbSAnLi4vZGF0YS1saXN0LWdyaWQtc29ydGluZy9kYXRhLWxpc3QtZ3JpZC1zb3J0aW5nLmNvbXBvbmVudCdcbmltcG9ydCB7IFJvdywgU29ydCB9IGZyb20gJy4uL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhVmlld0NvbXBvbmVudCwgRGF0YVZpZXdDb21wb25lbnRTdGF0ZSwgUm93TGlzdEdyaWREYXRhIH0gZnJvbSAnLi4vZGF0YS12aWV3L2RhdGEtdmlldy5jb21wb25lbnQnXG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICcuLi8uLi9tb2RlbC9maWx0ZXIubW9kZWwnXG5pbXBvcnQgeyBsaW1pdCB9IGZyb20gJy4uLy4uL3V0aWxzL2ZpbHRlci51dGlscydcbmltcG9ydCB7IEZpbHRlclZpZXdDb21wb25lbnRTdGF0ZSwgRmlsdGVyVmlld0Rpc3BsYXlNb2RlIH0gZnJvbSAnLi4vZmlsdGVyLXZpZXcvZmlsdGVyLXZpZXcuY29tcG9uZW50J1xuXG5leHBvcnQgdHlwZSBJbnRlcmFjdGl2ZURhdGFWaWV3Q29tcG9uZW50U3RhdGUgPSBDb2x1bW5Hcm91cFNlbGVjdGlvbkNvbXBvbmVudFN0YXRlICZcbiAgQ3VzdG9tR3JvdXBDb2x1bW5TZWxlY3RvckNvbXBvbmVudFN0YXRlICZcbiAgRGF0YUxheW91dFNlbGVjdGlvbkNvbXBvbmVudFN0YXRlICZcbiAgRGF0YUxpc3RHcmlkU29ydGluZ0NvbXBvbmVudFN0YXRlICZcbiAgRGF0YVZpZXdDb21wb25lbnRTdGF0ZSAmXG4gIEZpbHRlclZpZXdDb21wb25lbnRTdGF0ZVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbkdyb3VwRGF0YSB7XG4gIGFjdGl2ZUNvbHVtbnM6IERhdGFUYWJsZUNvbHVtbltdXG4gIGdyb3VwS2V5OiBzdHJpbmdcbn1cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29jeC1pbnRlcmFjdGl2ZS1kYXRhLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW50ZXJhY3RpdmUtZGF0YS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW50ZXJhY3RpdmUtZGF0YS12aWV3LmNvbXBvbmVudC5jc3MnXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiAnSW50ZXJhY3RpdmVEYXRhVmlld0NvbXBvbmVudCcsIHVzZUV4aXN0aW5nOiBJbnRlcmFjdGl2ZURhdGFWaWV3Q29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBJbnRlcmFjdGl2ZURhdGFWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgX2RhdGFWaWV3Q29tcG9uZW50OiBEYXRhVmlld0NvbXBvbmVudCB8IHVuZGVmaW5lZFxuICBAVmlld0NoaWxkKERhdGFWaWV3Q29tcG9uZW50KSBzZXQgZGF0YVZpZXcocmVmOiBEYXRhVmlld0NvbXBvbmVudCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2RhdGFWaWV3Q29tcG9uZW50ID0gcmVmXG4gICAgdGhpcy5yZWdpc3RlckV2ZW50TGlzdGVuZXJGb3JEYXRhVmlldygpXG4gIH1cbiAgZ2V0IGRhdGFWaWV3KCk6IERhdGFWaWV3Q29tcG9uZW50IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVZpZXdDb21wb25lbnRcbiAgfVxuXG4gIGNvbHVtbkdyb3VwU2VsZWN0aW9uQ29tcG9uZW50U3RhdGUkID0gbmV3IFJlcGxheVN1YmplY3Q8Q29sdW1uR3JvdXBTZWxlY3Rpb25Db21wb25lbnRTdGF0ZT4oMSlcbiAgY3VzdG9tR3JvdXBDb2x1bW5TZWxlY3RvckNvbXBvbmVudFN0YXRlJCA9IG5ldyBSZXBsYXlTdWJqZWN0PEN1c3RvbUdyb3VwQ29sdW1uU2VsZWN0b3JDb21wb25lbnRTdGF0ZT4oMSlcbiAgZGF0YUxheW91dENvbXBvbmVudFN0YXRlJCA9IG5ldyBSZXBsYXlTdWJqZWN0PERhdGFMYXlvdXRTZWxlY3Rpb25Db21wb25lbnRTdGF0ZT4oMSlcbiAgZGF0YUxpc3RHcmlkU29ydGluZ0NvbXBvbmVudFN0YXRlJCA9IG5ldyBSZXBsYXlTdWJqZWN0PERhdGFMaXN0R3JpZFNvcnRpbmdDb21wb25lbnRTdGF0ZT4oMSlcbiAgZGF0YVZpZXdDb21wb25lbnRTdGF0ZSQgPSBuZXcgUmVwbGF5U3ViamVjdDxEYXRhVmlld0NvbXBvbmVudFN0YXRlPigxKVxuICBmaWx0ZXJWaWV3Q29tcG9uZW50U3RhdGUkID0gbmV3IFJlcGxheVN1YmplY3Q8RmlsdGVyVmlld0NvbXBvbmVudFN0YXRlPigxKVxuXG4gIEBJbnB1dCgpIHNlYXJjaENvbmZpZ1Blcm1pc3Npb246IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpIGRlbGV0ZVBlcm1pc3Npb246IHN0cmluZyB8IHN0cmluZ1tdIHwgc3RyaW5nW10gfCB1bmRlZmluZWRcbiAgQElucHV0KCkgZWRpdFBlcm1pc3Npb246IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpIHZpZXdQZXJtaXNzaW9uOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSBkZWxldGVBY3Rpb25WaXNpYmxlRmllbGQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSBkZWxldGVBY3Rpb25FbmFibGVkRmllbGQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSB2aWV3QWN0aW9uVmlzaWJsZUZpZWxkOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgQElucHV0KCkgdmlld0FjdGlvbkVuYWJsZWRGaWVsZDogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpIGVkaXRBY3Rpb25WaXNpYmxlRmllbGQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSBlZGl0QWN0aW9uRW5hYmxlZEZpZWxkOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgQElucHV0KCkgdGFibGVTZWxlY3Rpb25FbmFibGVkRmllbGQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSB0YWJsZUFsbG93U2VsZWN0QWxsID0gdHJ1ZVxuICBASW5wdXQoKSBuYW1lID0gJ0RhdGEnXG4gIEBJbnB1dCgpIHRpdGxlTGluZUlkOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgQElucHV0KCkgc3VidGl0bGVMaW5lSWRzOiBzdHJpbmdbXSA9IFtdXG4gIEBJbnB1dCgpIHN1cHBvcnRlZFZpZXdMYXlvdXRzOiAoJ2dyaWQnIHwgJ2xpc3QnIHwgJ3RhYmxlJylbXSA9IFsnZ3JpZCcsICdsaXN0JywgJ3RhYmxlJ11cbiAgQElucHV0KCkgY29sdW1uczogRGF0YVRhYmxlQ29sdW1uW10gPSBbXVxuICBASW5wdXQoKSBlbXB0eVJlc3VsdHNNZXNzYWdlOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgQElucHV0KCkgY2xpZW50U2lkZVNvcnRpbmcgPSB0cnVlXG4gIEBJbnB1dCgpIGNsaWVudFNpZGVGaWx0ZXJpbmcgPSB0cnVlXG4gIEBJbnB1dCgpIGZhbGxiYWNrSW1hZ2UgPSAncGxhY2Vob2xkZXIucG5nJ1xuICBASW5wdXQoKSBmaWx0ZXJzOiBGaWx0ZXJbXSA9IFtdXG4gIEBJbnB1dCgpIHNvcnREaXJlY3Rpb246IERhdGFTb3J0RGlyZWN0aW9uID0gRGF0YVNvcnREaXJlY3Rpb24uTk9ORVxuICBASW5wdXQoKSBzb3J0RmllbGQ6IGFueSA9ICcnXG4gIEBJbnB1dCgpIHNvcnRTdGF0ZXM6IERhdGFTb3J0RGlyZWN0aW9uW10gPSBbXG4gICAgRGF0YVNvcnREaXJlY3Rpb24uQVNDRU5ESU5HLFxuICAgIERhdGFTb3J0RGlyZWN0aW9uLkRFU0NFTkRJTkcsXG4gICAgRGF0YVNvcnREaXJlY3Rpb24uTk9ORSxcbiAgXVxuICBASW5wdXQoKSBwYWdlU2l6ZXM6IG51bWJlcltdID0gWzEwLCAyNSwgNTBdXG4gIEBJbnB1dCgpIHBhZ2VTaXplOiBudW1iZXIgfCB1bmRlZmluZWRcbiAgQElucHV0KCkgdG90YWxSZWNvcmRzT25TZXJ2ZXI6IG51bWJlciB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSBsYXlvdXQ6ICdncmlkJyB8ICdsaXN0JyB8ICd0YWJsZScgPSAndGFibGUnXG4gIEBJbnB1dCgpIGRlZmF1bHRHcm91cEtleSA9ICcnXG4gIEBJbnB1dCgpIGN1c3RvbUdyb3VwS2V5ID0gJ09DWF9JTlRFUkFDVElWRV9EQVRBX1ZJRVcuQ1VTVE9NX0dST1VQJ1xuICBASW5wdXQoKSBncm91cFNlbGVjdGlvbk5vR3JvdXBTZWxlY3RlZEtleSA9ICdPQ1hfSU5URVJBQ1RJVkVfREFUQV9WSUVXLk5PX0dST1VQX1NFTEVDVEVEJ1xuICBASW5wdXQoKSBjdXJyZW50UGFnZVNob3dpbmdLZXkgPSAnT0NYX0RBVEFfVEFCTEUuU0hPV0lORydcbiAgQElucHV0KCkgY3VycmVudFBhZ2VTaG93aW5nV2l0aFRvdGFsT25TZXJ2ZXJLZXkgPSAnT0NYX0RBVEFfVEFCTEUuU0hPV0lOR19XSVRIX1RPVEFMX09OX1NFUlZFUidcbiAgQElucHV0KCkgYWRkaXRpb25hbEFjdGlvbnM6IERhdGFBY3Rpb25bXSA9IFtdXG4gIEBJbnB1dCgpIGxpc3RHcmlkUGFnaW5hdG9yID0gdHJ1ZVxuICBASW5wdXQoKSB0YWJsZVBhZ2luYXRvciA9IHRydWVcbiAgQElucHV0KCkgZGlzYWJsZUZpbHRlclZpZXcgPSB0cnVlXG4gIEBJbnB1dCgpIGZpbHRlclZpZXdEaXNwbGF5TW9kZTogRmlsdGVyVmlld0Rpc3BsYXlNb2RlID0gJ2J1dHRvbidcbiAgQElucHV0KCkgZmlsdGVyVmlld0NoaXBTdHlsZUNsYXNzID0gJydcbiAgQElucHV0KCkgZmlsdGVyVmlld1RhYmxlU3R5bGU6IHsgW2tsYXNzOiBzdHJpbmddOiBhbnkgfSA9IHsgJ21heC1oZWlnaHQnOiAnNTB2aCcgfVxuICBASW5wdXQoKSBmaWx0ZXJWaWV3UGFuZWxTdHlsZTogeyBba2xhc3M6IHN0cmluZ106IGFueSB9ID0geyAnbWF4LXdpZHRoJzogJzkwJScgfVxuICBASW5wdXQoKSBzZWxlY3REaXNwbGF5ZWRDaGlwczogKGZpbHRlcnM6IEZpbHRlcltdLCBjb2x1bW5zOiBEYXRhVGFibGVDb2x1bW5bXSkgPT4gRmlsdGVyW10gPSAoZmlsdGVycykgPT5cbiAgICBsaW1pdChmaWx0ZXJzLCAzLCB7IHJldmVyc2U6IHRydWUgfSlcbiAgQElucHV0KCkgcGFnZSA9IDBcbiAgQElucHV0KCkgc2VsZWN0ZWRSb3dzOiBSb3dbXSA9IFtdXG4gIGRpc3BsYXllZENvbHVtbktleXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4oW10pXG4gIGRpc3BsYXllZENvbHVtbnMkOiBPYnNlcnZhYmxlPERhdGFUYWJsZUNvbHVtbltdPiB8IHVuZGVmaW5lZFxuICBASW5wdXQoKVxuICBnZXQgZGlzcGxheWVkQ29sdW1uS2V5cygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheWVkQ29sdW1uS2V5cyQuZ2V0VmFsdWUoKVxuICB9XG4gIHNldCBkaXNwbGF5ZWRDb2x1bW5LZXlzKHZhbHVlOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1uS2V5cyQubmV4dCh2YWx1ZSlcbiAgfVxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBkaXNwbGF5ZWRDb2x1bW5LZXlzYCBhbmQgcGFzcyBpbiBjb2x1bW4gaWRzIGluc3RlYWQgb2YgYERhdGFUYWJsZUNvbHVtbmAgb2JqZWN0c1xuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGRpc3BsYXllZENvbHVtbnMoKTogRGF0YVRhYmxlQ29sdW1uW10ge1xuICAgIHJldHVybiAoXG4gICAgICAodGhpcy5kaXNwbGF5ZWRDb2x1bW5LZXlzXG4gICAgICAgIC5tYXAoKGQpID0+IHRoaXMuY29sdW1ucy5maW5kKChjKSA9PiBjLmlkID09PSBkKSlcbiAgICAgICAgLmZpbHRlcigoZCkgPT4gZCkgYXMgRGF0YVRhYmxlQ29sdW1uW10pID8/IFtdXG4gICAgKVxuICB9XG4gIHNldCBkaXNwbGF5ZWRDb2x1bW5zKHZhbHVlOiBEYXRhVGFibGVDb2x1bW5bXSkge1xuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1uS2V5cyQubmV4dCh2YWx1ZS5tYXAoKGQpID0+IGQuaWQpKVxuICB9XG4gIEBJbnB1dCgpIGZyb3plbkFjdGlvbkNvbHVtbiA9IGZhbHNlXG4gIEBJbnB1dCgpIGFjdGlvbkNvbHVtblBvc2l0aW9uOiAnbGVmdCcgfCAncmlnaHQnID0gJ3JpZ2h0J1xuICBAQ29udGVudENoaWxkKCd0YWJsZUNlbGwnKSB0YWJsZUNlbGw6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVwbGFjZWQgYnkgZGF0ZVRhYmxlQ2VsbFxuICAgKi9cbiAgQENvbnRlbnRDaGlsZCgndGFibGVEYXRlQ2VsbCcpIHRhYmxlRGF0ZUNlbGw6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZCgnZGF0ZVRhYmxlQ2VsbCcpIGRhdGVUYWJsZUNlbGw6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSByZWxhdGl2ZURhdGVUYWJsZUNlbGxcbiAgICovXG4gIEBDb250ZW50Q2hpbGQoJ3RhYmxlUmVsYXRpdmVEYXRlQ2VsbCcpIHRhYmxlUmVsYXRpdmVEYXRlQ2VsbDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdyZWxhdGl2ZURhdGVUYWJsZUNlbGwnKSByZWxhdGl2ZURhdGVUYWJsZUNlbGw6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSB0cmFuc2xhdGlvbktleVRhYmxlQ2VsbFxuICAgKi9cbiAgQENvbnRlbnRDaGlsZCgndGFibGVUcmFuc2xhdGlvbktleUNlbGwnKSB0YWJsZVRyYW5zbGF0aW9uS2V5Q2VsbDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCd0cmFuc2xhdGlvbktleVRhYmxlQ2VsbCcpIHRyYW5zbGF0aW9uS2V5VGFibGVDZWxsOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG5cbiAgQENvbnRlbnRDaGlsZCgnZ3JpZEl0ZW1TdWJ0aXRsZUxpbmVzJykgZ3JpZEl0ZW1TdWJ0aXRsZUxpbmVzOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ2xpc3RJdGVtU3VidGl0bGVMaW5lcycpIGxpc3RJdGVtU3VidGl0bGVMaW5lczogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdzdHJpbmdUYWJsZUNlbGwnKSBzdHJpbmdUYWJsZUNlbGw6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZCgnbnVtYmVyVGFibGVDZWxsJykgbnVtYmVyVGFibGVDZWxsOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQgYW5kIGluc3RlYWQgdG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBvZiBhIHNwZWNpZmljIGNvbHVtblxuICAgKiB1c2UgdGhlIG5ldyBhcHByb2FjaCBpbnN0ZWFkIGJ5IGZvbGxvd2luZyB0aGUgbmFtaW5nIGNvbnZlbnRpb24gY29sdW1uIGlkICsgSWRUYWJsZUNlbGxcbiAgICogZS5nLiBmb3IgYSBjb2x1bW4gd2l0aCB0aGUgaWQgJ3N0YXR1cycgaW4gRGF0YVRhYmxlIHVzZSBwVGVtcGxhdGU9XCJzdGF0dXNJZFRhYmxlQ2VsbFwiXG4gICAqL1xuICBAQ29udGVudENoaWxkKCdjdXN0b21UYWJsZUNlbGwnKSBjdXN0b21UYWJsZUNlbGw6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZCgnZ3JpZEl0ZW0nKSBncmlkSXRlbTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdsaXN0SXRlbScpIGxpc3RJdGVtOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ3RvcENlbnRlcicpIHRvcENlbnRlcjogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdsaXN0VmFsdWUnKSBsaXN0VmFsdWU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZCgndHJhbnNsYXRpb25LZXlMaXN0VmFsdWUnKSB0cmFuc2xhdGlvbktleUxpc3RWYWx1ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdudW1iZXJMaXN0VmFsdWUnKSBudW1iZXJMaXN0VmFsdWU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZCgncmVsYXRpdmVEYXRlTGlzdFZhbHVlJykgcmVsYXRpdmVEYXRlTGlzdFZhbHVlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQgYW5kIGluc3RlYWQgdG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBvZiBhIHNwZWNpZmljIGNvbHVtblxuICAgKiB1c2UgdGhlIG5ldyBhcHByb2FjaCBpbnN0ZWFkIGJ5IGZvbGxvd2luZyB0aGUgbmFtaW5nIGNvbnZlbnRpb24gY29sdW1uIGlkICsgSWRMaXN0VmFsdWVcbiAgICogZS5nLiBmb3IgYSBjb2x1bW4gd2l0aCB0aGUgaWQgJ3N0YXR1cycgRGF0YUxpc3RHcmlkIHVzZSBwVGVtcGxhdGU9XCJzdGF0dXNJZExpc3RWYWx1ZVwiXG4gICAqL1xuICBAQ29udGVudENoaWxkKCdjdXN0b21MaXN0VmFsdWUnKSBjdXN0b21MaXN0VmFsdWU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZCgnc3RyaW5nTGlzdFZhbHVlJykgc3RyaW5nTGlzdFZhbHVlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ2RhdGVMaXN0VmFsdWUnKSBkYXRlTGlzdFZhbHVlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ3RhYmxlRmlsdGVyQ2VsbCcpIHRhYmxlRmlsdGVyQ2VsbDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdkYXRlVGFibGVGaWx0ZXJDZWxsJykgZGF0ZVRhYmxlRmlsdGVyQ2VsbDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdyZWxhdGl2ZURhdGVUYWJsZUZpbHRlckNlbGwnKSByZWxhdGl2ZURhdGVUYWJsZUZpbHRlckNlbGw6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZCgndHJhbnNsYXRpb25LZXlUYWJsZUZpbHRlckNlbGwnKSB0cmFuc2xhdGlvbktleVRhYmxlRmlsdGVyQ2VsbDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdzdHJpbmdUYWJsZUZpbHRlckNlbGwnKSBzdHJpbmdUYWJsZUZpbHRlckNlbGw6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZCgnbnVtYmVyVGFibGVGaWx0ZXJDZWxsJykgbnVtYmVyVGFibGVGaWx0ZXJDZWxsOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQgYW5kIGluc3RlYWQgdG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBvZiBhIHNwZWNpZmljIGNvbHVtbiBmaWx0ZXJcbiAgICogdXNlIHRoZSBuZXcgYXBwcm9hY2ggaW5zdGVhZCBieSBmb2xsb3dpbmcgdGhlIG5hbWluZyBjb252ZW50aW9uIGNvbHVtbiBpZCArIElkVGFibGVGaWx0ZXJDZWxsXG4gICAqIGUuZy4gZm9yIGEgY29sdW1uIHdpdGggdGhlIGlkICdzdGF0dXMnIGluIERhdGFUYWJsZSB1c2UgcFRlbXBsYXRlPVwic3RhdHVzSWRUYWJsZUZpbHRlckNlbGxcIlxuICAgKi9cbiAgQENvbnRlbnRDaGlsZCgnY3VzdG9tVGFibGVGaWx0ZXJDZWxsJykgY3VzdG9tVGFibGVGaWx0ZXJDZWxsOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG5cbiAgdGVtcGxhdGVzJDogQmVoYXZpb3JTdWJqZWN0PFF1ZXJ5TGlzdDxQcmltZVRlbXBsYXRlPiB8IHVuZGVmaW5lZD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFF1ZXJ5TGlzdDxQcmltZVRlbXBsYXRlPiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZClcbiAgQENvbnRlbnRDaGlsZHJlbihQcmltZVRlbXBsYXRlKVxuICBzZXQgdGVtcGxhdGVzKHZhbHVlOiBRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnRlbXBsYXRlcyQubmV4dCh2YWx1ZSlcbiAgfVxuXG4gIEBPdXRwdXQoKSBmaWx0ZXJlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsdGVyW10+KClcbiAgQE91dHB1dCgpIHNvcnRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U29ydD4oKVxuICBAT3V0cHV0KCkgZGVsZXRlSXRlbSA9IG5ldyBFdmVudEVtaXR0ZXI8Um93TGlzdEdyaWREYXRhPigpXG4gIEBPdXRwdXQoKSB2aWV3SXRlbSA9IG5ldyBFdmVudEVtaXR0ZXI8Um93TGlzdEdyaWREYXRhPigpXG4gIEBPdXRwdXQoKSBlZGl0SXRlbSA9IG5ldyBFdmVudEVtaXR0ZXI8Um93TGlzdEdyaWREYXRhPigpXG4gIEBPdXRwdXQoKSBkYXRhVmlld0xheW91dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8J2dyaWQnIHwgJ2xpc3QnIHwgJ3RhYmxlJz4oKVxuICAvLyBUT0RPOiBSZW1vdmUgZm9sbG93aW5nIGxpbmUgb25jZSBkaXNwbGF5ZWRDb2x1bW5zIChkZXByZWNhdGVkKSBoYXMgYmVlbiByZW1vdmVkXG4gIEBPdXRwdXQoKSBkaXNwbGF5ZWRDb2x1bW5zQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRhVGFibGVDb2x1bW5bXT4oKVxuICBAT3V0cHV0KCkgZGlzcGxheWVkQ29sdW1uS2V5c0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KClcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxSb3dbXT4gPSBuZXcgRXZlbnRFbWl0dGVyKClcblxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBPdXRwdXQoKSBwYWdlU2l6ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKVxuXG4gIEBPdXRwdXQoKSBjb21wb25lbnRTdGF0ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEludGVyYWN0aXZlRGF0YVZpZXdDb21wb25lbnRTdGF0ZT4oKVxuXG4gIHNlbGVjdGVkR3JvdXBLZXkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCB1bmRlZmluZWQ+KCcnKVxuICBnZXQgc2VsZWN0ZWRHcm91cEtleSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkR3JvdXBLZXkkLmdldFZhbHVlKClcbiAgfVxuICBzZXQgc2VsZWN0ZWRHcm91cEtleSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwS2V5JC5uZXh0KHZhbHVlKVxuICB9XG4gIGlzRGVsZXRlSXRlbU9ic2VydmVkOiBib29sZWFuIHwgdW5kZWZpbmVkXG4gIGlzVmlld0l0ZW1PYnNlcnZlZDogYm9vbGVhbiB8IHVuZGVmaW5lZFxuICBpc0VkaXRJdGVtT2JzZXJ2ZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWRcbiAgZmlyc3RDb2x1bW5JZDogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgQElucHV0KClcbiAgZ2V0IHBhZ2luYXRvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5saXN0R3JpZFBhZ2luYXRvciAmJiB0aGlzLnRhYmxlUGFnaW5hdG9yXG4gIH1cbiAgc2V0IHBhZ2luYXRvcih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMubGlzdEdyaWRQYWdpbmF0b3IgPSB2YWx1ZVxuICAgIHRoaXMudGFibGVQYWdpbmF0b3IgPSB2YWx1ZVxuICB9XG5cbiAgZ2V0IF9ncmlkSXRlbVN1YnRpdGxlTGluZXMoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZ3JpZEl0ZW1TdWJ0aXRsZUxpbmVzXG4gIH1cbiAgZ2V0IF9saXN0SXRlbVN1YnRpdGxlTGluZXMoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMubGlzdEl0ZW1TdWJ0aXRsZUxpbmVzXG4gIH1cbiAgZ2V0IF90YWJsZUNlbGwoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMudGFibGVDZWxsXG4gIH1cbiAgZ2V0IF9zdHJpbmdUYWJsZUNlbGwoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nVGFibGVDZWxsXG4gIH1cbiAgZ2V0IF9udW1iZXJUYWJsZUNlbGwoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMubnVtYmVyVGFibGVDZWxsXG4gIH1cbiAgZ2V0IF9jdXN0b21UYWJsZUNlbGwoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY3VzdG9tVGFibGVDZWxsXG4gIH1cbiAgZ2V0IF90YWJsZURhdGVDZWxsKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmRhdGVUYWJsZUNlbGwgPz8gdGhpcy50YWJsZURhdGVDZWxsXG4gIH1cbiAgZ2V0IF9kYXRlVGFibGVDZWxsKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmRhdGVUYWJsZUNlbGxcbiAgfVxuICBnZXQgX3RhYmxlUmVsYXRpdmVEYXRlQ2VsbCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5yZWxhdGl2ZURhdGVUYWJsZUNlbGwgPz8gdGhpcy50YWJsZVJlbGF0aXZlRGF0ZUNlbGxcbiAgfVxuICBnZXQgX3JlbGF0aXZlRGF0ZVRhYmxlQ2VsbCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5yZWxhdGl2ZURhdGVUYWJsZUNlbGxcbiAgfVxuICBnZXQgX3RhYmxlVHJhbnNsYXRpb25LZXlDZWxsKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uS2V5VGFibGVDZWxsID8/IHRoaXMudGFibGVUcmFuc2xhdGlvbktleUNlbGxcbiAgfVxuICBnZXQgX3RyYW5zbGF0aW9uS2V5VGFibGVDZWxsKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uS2V5VGFibGVDZWxsXG4gIH1cbiAgZ2V0IF9ncmlkSXRlbSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5ncmlkSXRlbVxuICB9XG4gIGdldCBfbGlzdEl0ZW0oKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMubGlzdEl0ZW1cbiAgfVxuICBnZXQgX2xpc3RWYWx1ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5saXN0VmFsdWVcbiAgfVxuICBnZXQgX3RyYW5zbGF0aW9uS2V5TGlzdFZhbHVlKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uS2V5TGlzdFZhbHVlXG4gIH1cbiAgZ2V0IF9udW1iZXJMaXN0VmFsdWUoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMubnVtYmVyTGlzdFZhbHVlXG4gIH1cbiAgZ2V0IF9yZWxhdGl2ZURhdGVMaXN0VmFsdWUoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucmVsYXRpdmVEYXRlTGlzdFZhbHVlXG4gIH1cbiAgZ2V0IF9jdXN0b21MaXN0VmFsdWUoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY3VzdG9tTGlzdFZhbHVlXG4gIH1cbiAgZ2V0IF9zdHJpbmdMaXN0VmFsdWUoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nTGlzdFZhbHVlXG4gIH1cbiAgZ2V0IF9kYXRlTGlzdFZhbHVlKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmRhdGVMaXN0VmFsdWVcbiAgfVxuICBnZXQgX3RhYmxlRmlsdGVyQ2VsbCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZUZpbHRlckNlbGxcbiAgfVxuICBnZXQgX2RhdGVUYWJsZUZpbHRlckNlbGwoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVRhYmxlRmlsdGVyQ2VsbFxuICB9XG4gIGdldCBfcmVsYXRpdmVEYXRlVGFibGVGaWx0ZXJDZWxsKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJlbGF0aXZlRGF0ZVRhYmxlRmlsdGVyQ2VsbFxuICB9XG4gIGdldCBfdHJhbnNsYXRpb25LZXlUYWJsZUZpbHRlckNlbGwoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb25LZXlUYWJsZUZpbHRlckNlbGxcbiAgfVxuICBnZXQgX3N0cmluZ1RhYmxlRmlsdGVyQ2VsbCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmdUYWJsZUZpbHRlckNlbGxcbiAgfVxuICBnZXQgX251bWJlclRhYmxlRmlsdGVyQ2VsbCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5udW1iZXJUYWJsZUZpbHRlckNlbGxcbiAgfVxuICBnZXQgX2N1c3RvbVRhYmxlRmlsdGVyQ2VsbCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jdXN0b21UYWJsZUZpbHRlckNlbGxcbiAgfVxuXG4gIF9kYXRhOiBSb3dMaXN0R3JpZERhdGFbXSA9IFtdXG4gIEBJbnB1dCgpXG4gIGdldCBkYXRhKCk6IFJvd0xpc3RHcmlkRGF0YVtdIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVxuICB9XG4gIHNldCBkYXRhKHZhbHVlOiBSb3dMaXN0R3JpZERhdGFbXSkge1xuICAgIHRoaXMuX2RhdGEgPSB2YWx1ZVxuICB9XG5cbiAgY29sdW1uR3JvdXBTbG90TmFtZSA9ICdvbmVjeC1jb2x1bW4tZ3JvdXAtc2VsZWN0aW9uJ1xuICBpc0NvbHVtbkdyb3VwU2VsZWN0aW9uQ29tcG9uZW50RGVmaW5lZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj5cbiAgZ3JvdXBTZWxlY3Rpb25DaGFuZ2VkU2xvdEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPENvbHVtbkdyb3VwRGF0YSB8IHVuZGVmaW5lZD4oKVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2xvdFNlcnZpY2U6IFNsb3RTZXJ2aWNlKSB7XG4gICAgdGhpcy5pc0NvbHVtbkdyb3VwU2VsZWN0aW9uQ29tcG9uZW50RGVmaW5lZCQgPSB0aGlzLnNsb3RTZXJ2aWNlXG4gICAgICAuaXNTb21lQ29tcG9uZW50RGVmaW5lZEZvclNsb3QodGhpcy5jb2x1bW5Hcm91cFNsb3ROYW1lKVxuICAgICAgLnBpcGUoc3RhcnRXaXRoKHRydWUpKVxuXG4gICAgdGhpcy5ncm91cFNlbGVjdGlvbkNoYW5nZWRTbG90RW1pdHRlci5zdWJzY3JpYmUoKGV2ZW50OiBDb2x1bW5Hcm91cERhdGEgfCB1bmRlZmluZWQpID0+IHtcbiAgICAgIGlmIChldmVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGV2ZW50ID0ge1xuICAgICAgICAgIGFjdGl2ZUNvbHVtbnM6IHRoaXMuZGlzcGxheWVkQ29sdW1ucyxcbiAgICAgICAgICBncm91cEtleTogdGhpcy5zZWxlY3RlZEdyb3VwS2V5ID8/IHRoaXMuZGVmYXVsdEdyb3VwS2V5LFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbktleXMkLm5leHQoZXZlbnQuYWN0aXZlQ29sdW1ucy5tYXAoKGNvbCkgPT4gY29sLmlkKSlcbiAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cEtleSQubmV4dChldmVudC5ncm91cEtleSlcbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1uc0NoYW5nZS5lbWl0KHRoaXMuZGlzcGxheWVkQ29sdW1ucylcbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1uS2V5c0NoYW5nZS5lbWl0KHRoaXMuZGlzcGxheWVkQ29sdW1uS2V5cylcbiAgICAgIHRoaXMuY29sdW1uR3JvdXBTZWxlY3Rpb25Db21wb25lbnRTdGF0ZSQubmV4dCh7XG4gICAgICAgIGFjdGl2ZUNvbHVtbkdyb3VwS2V5OiBldmVudC5ncm91cEtleSxcbiAgICAgICAgZGlzcGxheWVkQ29sdW1uczogZXZlbnQuYWN0aXZlQ29sdW1ucyxcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIHRoaXMuZGF0YVZpZXdMYXlvdXRDaGFuZ2VcbiAgICAgIC5waXBlKHdpdGhMYXRlc3RGcm9tKHRoaXMuaXNDb2x1bW5Hcm91cFNlbGVjdGlvbkNvbXBvbmVudERlZmluZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKFtfLCBjb2x1bW5Hcm91cENvbXBvbmVudERlZmluZWRdKSA9PiB7XG4gICAgICAgIGlmIChjb2x1bW5Hcm91cENvbXBvbmVudERlZmluZWQpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhKFxuICAgICAgICAgICAgICB0aGlzLmNvbHVtbnMuZmluZCgoYykgPT4gYy5uYW1lS2V5ID09PSB0aGlzLnNlbGVjdGVkR3JvdXBLZXkpIHx8XG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cEtleSA9PT0gdGhpcy5jdXN0b21Hcm91cEtleVxuICAgICAgICAgICAgKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwS2V5JC5uZXh0KHVuZGVmaW5lZClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkR3JvdXBLZXkgPSB0aGlzLmRlZmF1bHRHcm91cEtleVxuICAgIGlmICghdGhpcy5kaXNwbGF5ZWRDb2x1bW5zIHx8IHRoaXMuZGlzcGxheWVkQ29sdW1ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1uS2V5cyA9IHRoaXMuY29sdW1ucy5tYXAoKGNvbHVtbikgPT4gY29sdW1uLmlkKVxuICAgIH1cbiAgICBpZiAodGhpcy5kZWZhdWx0R3JvdXBLZXkgJiYgdGhpcy5kZWZhdWx0R3JvdXBLZXkgIT09IHRoaXMuY3VzdG9tR3JvdXBLZXkpIHtcbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1uS2V5cyA9IHRoaXMuY29sdW1uc1xuICAgICAgICAuZmlsdGVyKChjb2x1bW4pID0+IGNvbHVtbi5wcmVkZWZpbmVkR3JvdXBLZXlzPy5pbmNsdWRlcyh0aGlzLmRlZmF1bHRHcm91cEtleSkpXG4gICAgICAgIC5tYXAoKGNvbHVtbikgPT4gY29sdW1uLmlkKVxuICAgIH1cbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMkID0gdGhpcy5kaXNwbGF5ZWRDb2x1bW5LZXlzJC5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHByZXYsIGN1cnIpID0+IHByZXYubGVuZ3RoID09PSBjdXJyLmxlbmd0aCAmJiBwcmV2LmV2ZXJ5KCh2KSA9PiBjdXJyLmluY2x1ZGVzKHYpKSksXG4gICAgICBtYXAoXG4gICAgICAgIChjb2x1bW5LZXlzKSA9PlxuICAgICAgICAgIChjb2x1bW5LZXlzLm1hcCgoa2V5KSA9PiB0aGlzLmNvbHVtbnMuZmluZCgoY29sKSA9PiBjb2wuaWQgPT09IGtleSkpLmZpbHRlcigoZCkgPT4gZCkgYXMgRGF0YVRhYmxlQ29sdW1uW10pID8/XG4gICAgICAgICAgW11cbiAgICAgIClcbiAgICApXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zQ2hhbmdlLmVtaXQodGhpcy5kaXNwbGF5ZWRDb2x1bW5zKVxuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1uS2V5c0NoYW5nZS5lbWl0KHRoaXMuZGlzcGxheWVkQ29sdW1uS2V5cylcbiAgICBpZiAoIXRoaXMuZ3JvdXBTZWxlY3Rpb25Ob0dyb3VwU2VsZWN0ZWRLZXkpIHtcbiAgICAgIHRoaXMuZ3JvdXBTZWxlY3Rpb25Ob0dyb3VwU2VsZWN0ZWRLZXkgPSAnT0NYX0lOVEVSQUNUSVZFX0RBVEFfVklFVy5OT19HUk9VUF9TRUxFQ1RFRCdcbiAgICB9XG4gICAgdGhpcy5maXJzdENvbHVtbklkID0gdGhpcy5jb2x1bW5zWzBdPy5pZFxuXG4gICAgbGV0IGRhdGFMaXN0R3JpZFNvcnRpbmdDb21wb25lbnRTdGF0ZSQ6IE9ic2VydmFibGU8RGF0YUxpc3RHcmlkU29ydGluZ0NvbXBvbmVudFN0YXRlIHwgUmVjb3JkPHN0cmluZywgbmV2ZXI+PiA9XG4gICAgICB0aGlzLmRhdGFMaXN0R3JpZFNvcnRpbmdDb21wb25lbnRTdGF0ZSRcbiAgICBsZXQgY29sdW1uR3JvdXBTZWxlY3Rpb25Db21wb25lbnRTdGF0ZSQ6IE9ic2VydmFibGU8Q29sdW1uR3JvdXBTZWxlY3Rpb25Db21wb25lbnRTdGF0ZSB8IFJlY29yZDxzdHJpbmcsIG5ldmVyPj4gPVxuICAgICAgdGhpcy5jb2x1bW5Hcm91cFNlbGVjdGlvbkNvbXBvbmVudFN0YXRlJFxuICAgIGxldCBjdXN0b21Hcm91cENvbHVtblNlbGVjdG9yQ29tcG9uZW50U3RhdGUkOiBPYnNlcnZhYmxlPFxuICAgICAgQ3VzdG9tR3JvdXBDb2x1bW5TZWxlY3RvckNvbXBvbmVudFN0YXRlIHwgUmVjb3JkPHN0cmluZywgbmV2ZXI+XG4gICAgPiA9IHRoaXMuY3VzdG9tR3JvdXBDb2x1bW5TZWxlY3RvckNvbXBvbmVudFN0YXRlJFxuXG4gICAgaWYgKHRoaXMubGF5b3V0ID09PSAndGFibGUnKSB7XG4gICAgICBkYXRhTGlzdEdyaWRTb3J0aW5nQ29tcG9uZW50U3RhdGUkID0gZGF0YUxpc3RHcmlkU29ydGluZ0NvbXBvbmVudFN0YXRlJC5waXBlKHN0YXJ0V2l0aCh7fSkpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbHVtbkdyb3VwU2VsZWN0aW9uQ29tcG9uZW50U3RhdGUkID0gY29sdW1uR3JvdXBTZWxlY3Rpb25Db21wb25lbnRTdGF0ZSQucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKHtcbiAgICAgICAgICBhY3RpdmVDb2x1bW5Hcm91cEtleTogdGhpcy5zZWxlY3RlZEdyb3VwS2V5LFxuICAgICAgICAgIGRpc3BsYXllZENvbHVtbnM6IHRoaXMuZGlzcGxheWVkQ29sdW1ucyxcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIGN1c3RvbUdyb3VwQ29sdW1uU2VsZWN0b3JDb21wb25lbnRTdGF0ZSQgPSBjdXN0b21Hcm91cENvbHVtblNlbGVjdG9yQ29tcG9uZW50U3RhdGUkLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCh7XG4gICAgICAgICAgYWN0aW9uQ29sdW1uQ29uZmlnOiB7XG4gICAgICAgICAgICBmcm96ZW46IHRoaXMuZnJvemVuQWN0aW9uQ29sdW1uLFxuICAgICAgICAgICAgcG9zaXRpb246IHRoaXMuYWN0aW9uQ29sdW1uUG9zaXRpb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBkaXNwbGF5ZWRDb2x1bW5zOiB0aGlzLmRpc3BsYXllZENvbHVtbnMsXG4gICAgICAgICAgYWN0aXZlQ29sdW1uR3JvdXBLZXk6IHRoaXMuc2VsZWN0ZWRHcm91cEtleSxcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICB9XG5cbiAgICBsZXQgZmlsdGVyVmlld0NvbXBvbmVudFN0YXRlJDogT2JzZXJ2YWJsZTxGaWx0ZXJWaWV3Q29tcG9uZW50U3RhdGUgfCBSZWNvcmQ8c3RyaW5nLCBuZXZlcj4+ID1cbiAgICAgIHRoaXMuZmlsdGVyVmlld0NvbXBvbmVudFN0YXRlJFxuICAgIGlmICh0aGlzLmRpc2FibGVGaWx0ZXJWaWV3KSB7XG4gICAgICBmaWx0ZXJWaWV3Q29tcG9uZW50U3RhdGUkID0gZmlsdGVyVmlld0NvbXBvbmVudFN0YXRlJC5waXBlKFxuICAgICAgICBzdGFydFdpdGgoe1xuICAgICAgICAgIGZpbHRlcnM6IHRoaXMuZmlsdGVycyxcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIGNvbHVtbkdyb3VwU2VsZWN0aW9uQ29tcG9uZW50U3RhdGUkLnBpcGUodGltZXN0YW1wKCkpLFxuICAgICAgY3VzdG9tR3JvdXBDb2x1bW5TZWxlY3RvckNvbXBvbmVudFN0YXRlJC5waXBlKHRpbWVzdGFtcCgpKSxcbiAgICAgIHRoaXMuZGF0YUxheW91dENvbXBvbmVudFN0YXRlJC5waXBlKHRpbWVzdGFtcCgpKSxcbiAgICAgIGRhdGFMaXN0R3JpZFNvcnRpbmdDb21wb25lbnRTdGF0ZSQucGlwZSh0aW1lc3RhbXAoKSksXG4gICAgICB0aGlzLmRhdGFWaWV3Q29tcG9uZW50U3RhdGUkLnBpcGUodGltZXN0YW1wKCkpLFxuICAgICAgZmlsdGVyVmlld0NvbXBvbmVudFN0YXRlJC5waXBlKHRpbWVzdGFtcCgpKSxcbiAgICBdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoY29tcG9uZW50U3RhdGVzKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG9yZGVyQW5kTWVyZ2VWYWx1ZXNCeVRpbWVzdGFtcChjb21wb25lbnRTdGF0ZXMpXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh2YWwpID0+IHtcbiAgICAgICAgdGhpcy5jb21wb25lbnRTdGF0ZUNoYW5nZWQuZW1pdCh2YWwpXG4gICAgICB9KVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMudGVtcGxhdGVzJC52YWx1ZT8uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgc3dpdGNoIChpdGVtLmdldFR5cGUoKSkge1xuICAgICAgICBjYXNlICd0YWJsZUNlbGwnOlxuICAgICAgICAgIHRoaXMudGFibGVDZWxsID0gaXRlbS50ZW1wbGF0ZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJ3RhYmxlRGF0ZUNlbGwnOlxuICAgICAgICAgIHRoaXMudGFibGVEYXRlQ2VsbCA9IGl0ZW0udGVtcGxhdGVcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdkYXRlVGFibGVDZWxsJzpcbiAgICAgICAgICB0aGlzLmRhdGVUYWJsZUNlbGwgPSBpdGVtLnRlbXBsYXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAndGFibGVSZWxhdGl2ZURhdGVDZWxsJzpcbiAgICAgICAgICB0aGlzLnRhYmxlUmVsYXRpdmVEYXRlQ2VsbCA9IGl0ZW0udGVtcGxhdGVcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdyZWxhdGl2ZURhdGVUYWJsZUNlbGwnOlxuICAgICAgICAgIHRoaXMucmVsYXRpdmVEYXRlVGFibGVDZWxsID0gaXRlbS50ZW1wbGF0ZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJ3RhYmxlVHJhbnNsYXRpb25LZXlDZWxsJzpcbiAgICAgICAgICB0aGlzLnRhYmxlVHJhbnNsYXRpb25LZXlDZWxsID0gaXRlbS50ZW1wbGF0ZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJ3RyYW5zbGF0aW9uS2V5VGFibGVDZWxsJzpcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0aW9uS2V5VGFibGVDZWxsID0gaXRlbS50ZW1wbGF0ZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJ2dyaWRJdGVtU3VidGl0bGVMaW5lcyc6XG4gICAgICAgICAgdGhpcy5ncmlkSXRlbVN1YnRpdGxlTGluZXMgPSBpdGVtLnRlbXBsYXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnbGlzdEl0ZW1TdWJ0aXRsZUxpbmVzJzpcbiAgICAgICAgICB0aGlzLmxpc3RJdGVtU3VidGl0bGVMaW5lcyA9IGl0ZW0udGVtcGxhdGVcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdzdHJpbmdUYWJsZUNlbGwnOlxuICAgICAgICAgIHRoaXMuc3RyaW5nVGFibGVDZWxsID0gaXRlbS50ZW1wbGF0ZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJ251bWJlclRhYmxlQ2VsbCc6XG4gICAgICAgICAgdGhpcy5udW1iZXJUYWJsZUNlbGwgPSBpdGVtLnRlbXBsYXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnY3VzdG9tVGFibGVDZWxsJzpcbiAgICAgICAgICB0aGlzLmN1c3RvbVRhYmxlQ2VsbCA9IGl0ZW0udGVtcGxhdGVcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdncmlkSXRlbSc6XG4gICAgICAgICAgdGhpcy5ncmlkSXRlbSA9IGl0ZW0udGVtcGxhdGVcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdsaXN0SXRlbSc6XG4gICAgICAgICAgdGhpcy5saXN0SXRlbSA9IGl0ZW0udGVtcGxhdGVcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICd0b3BDZW50ZXInOlxuICAgICAgICAgIHRoaXMudG9wQ2VudGVyID0gaXRlbS50ZW1wbGF0ZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJ2xpc3RWYWx1ZSc6XG4gICAgICAgICAgdGhpcy5saXN0VmFsdWUgPSBpdGVtLnRlbXBsYXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAndHJhbnNsYXRpb25LZXlMaXN0VmFsdWUnOlxuICAgICAgICAgIHRoaXMudHJhbnNsYXRpb25LZXlMaXN0VmFsdWUgPSBpdGVtLnRlbXBsYXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnbnVtYmVyTGlzdFZhbHVlJzpcbiAgICAgICAgICB0aGlzLm51bWJlckxpc3RWYWx1ZSA9IGl0ZW0udGVtcGxhdGVcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdyZWxhdGl2ZURhdGVMaXN0VmFsdWUnOlxuICAgICAgICAgIHRoaXMucmVsYXRpdmVEYXRlTGlzdFZhbHVlID0gaXRlbS50ZW1wbGF0ZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJ2N1c3RvbUxpc3RWYWx1ZSc6XG4gICAgICAgICAgdGhpcy5jdXN0b21MaXN0VmFsdWUgPSBpdGVtLnRlbXBsYXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnc3RyaW5nTGlzdFZhbHVlJzpcbiAgICAgICAgICB0aGlzLnN0cmluZ0xpc3RWYWx1ZSA9IGl0ZW0udGVtcGxhdGVcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdkYXRlTGlzdFZhbHVlJzpcbiAgICAgICAgICB0aGlzLmRhdGVMaXN0VmFsdWUgPSBpdGVtLnRlbXBsYXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAndGFibGVGaWx0ZXJDZWxsJzpcbiAgICAgICAgICB0aGlzLnRhYmxlRmlsdGVyQ2VsbCA9IGl0ZW0udGVtcGxhdGVcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdkYXRlVGFibGVGaWx0ZXJDZWxsJzpcbiAgICAgICAgICB0aGlzLmRhdGVUYWJsZUZpbHRlckNlbGwgPSBpdGVtLnRlbXBsYXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAncmVsYXRpdmVEYXRlVGFibGVGaWx0ZXJDZWxsJzpcbiAgICAgICAgICB0aGlzLnJlbGF0aXZlRGF0ZVRhYmxlRmlsdGVyQ2VsbCA9IGl0ZW0udGVtcGxhdGVcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICd0cmFuc2xhdGlvbktleVRhYmxlRmlsdGVyQ2VsbCc6XG4gICAgICAgICAgdGhpcy50cmFuc2xhdGlvbktleVRhYmxlRmlsdGVyQ2VsbCA9IGl0ZW0udGVtcGxhdGVcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdzdHJpbmdUYWJsZUZpbHRlckNlbGwnOlxuICAgICAgICAgIHRoaXMuc3RyaW5nVGFibGVGaWx0ZXJDZWxsID0gaXRlbS50ZW1wbGF0ZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJ251bWJlclRhYmxlRmlsdGVyQ2VsbCc6XG4gICAgICAgICAgdGhpcy5udW1iZXJUYWJsZUZpbHRlckNlbGwgPSBpdGVtLnRlbXBsYXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnY3VzdG9tVGFibGVGaWx0ZXJDZWxsJzpcbiAgICAgICAgICB0aGlzLmN1c3RvbVRhYmxlRmlsdGVyQ2VsbCA9IGl0ZW0udGVtcGxhdGVcbiAgICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBmaWx0ZXJpbmcoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZmlsdGVycyA9IGV2ZW50XG4gICAgdGhpcy5maWx0ZXJlZC5lbWl0KGV2ZW50KVxuICB9XG5cbiAgc29ydGluZyhldmVudDogYW55KSB7XG4gICAgdGhpcy5zb3J0RGlyZWN0aW9uID0gZXZlbnQuc29ydERpcmVjdGlvblxuICAgIHRoaXMuc29ydEZpZWxkID0gZXZlbnQuc29ydENvbHVtblxuICAgIHRoaXMuc29ydGVkLmVtaXQoZXZlbnQpXG4gIH1cblxuICBvbkRlbGV0ZUVsZW1lbnQoZWxlbWVudDogUm93TGlzdEdyaWREYXRhKSB7XG4gICAgaWYgKHRoaXMuaXNEZWxldGVJdGVtT2JzZXJ2ZWQpIHtcbiAgICAgIHRoaXMuZGVsZXRlSXRlbS5lbWl0KGVsZW1lbnQpXG4gICAgfVxuICB9XG5cbiAgb25WaWV3RWxlbWVudChlbGVtZW50OiBSb3dMaXN0R3JpZERhdGEpIHtcbiAgICBpZiAodGhpcy5pc1ZpZXdJdGVtT2JzZXJ2ZWQpIHtcbiAgICAgIHRoaXMudmlld0l0ZW0uZW1pdChlbGVtZW50KVxuICAgIH1cbiAgfVxuXG4gIG9uRWRpdEVsZW1lbnQoZWxlbWVudDogUm93TGlzdEdyaWREYXRhKSB7XG4gICAgaWYgKHRoaXMuaXNFZGl0SXRlbU9ic2VydmVkKSB7XG4gICAgICB0aGlzLmVkaXRJdGVtLmVtaXQoZWxlbWVudClcbiAgICB9XG4gIH1cblxuICBvbkRhdGFWaWV3TGF5b3V0Q2hhbmdlKGxheW91dDogJ2dyaWQnIHwgJ2xpc3QnIHwgJ3RhYmxlJykge1xuICAgIHRoaXMubGF5b3V0ID0gbGF5b3V0XG4gICAgdGhpcy5kYXRhVmlld0xheW91dENoYW5nZS5lbWl0KGxheW91dClcbiAgfVxuXG4gIG9uU29ydENoYW5nZSgkZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc29ydEZpZWxkID0gJGV2ZW50XG4gICAgdGhpcy5zb3J0ZWQuZW1pdCh7IHNvcnRDb2x1bW46IHRoaXMuc29ydEZpZWxkLCBzb3J0RGlyZWN0aW9uOiB0aGlzLnNvcnREaXJlY3Rpb24gfSlcbiAgfVxuXG4gIG9uU29ydERpcmVjdGlvbkNoYW5nZSgkZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc29ydERpcmVjdGlvbiA9ICRldmVudFxuICAgIHRoaXMuc29ydGVkLmVtaXQoeyBzb3J0Q29sdW1uOiB0aGlzLnNvcnRGaWVsZCwgc29ydERpcmVjdGlvbjogdGhpcy5zb3J0RGlyZWN0aW9uIH0pXG4gIH1cblxuICBvbkNvbHVtbkdyb3VwU2VsZWN0aW9uQ2hhbmdlKGV2ZW50OiBHcm91cFNlbGVjdGlvbkNoYW5nZWRFdmVudCkge1xuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1uS2V5cyA9IGV2ZW50LmFjdGl2ZUNvbHVtbnMubWFwKChjb2wpID0+IGNvbC5pZClcbiAgICB0aGlzLnNlbGVjdGVkR3JvdXBLZXkgPSBldmVudC5ncm91cEtleVxuICAgIC8vIFRPRE86IFJlbW92ZSBmb2xsb3dpbmcgbGluZSBvbmNlIGRpc3BsYXllZENvbHVtbnMgKGRlcHJlY2F0ZWQpIGhhcyBiZWVuIHJlbW92ZWRcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnNDaGFuZ2UuZW1pdCh0aGlzLmRpc3BsYXllZENvbHVtbnMpXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5LZXlzQ2hhbmdlLmVtaXQodGhpcy5kaXNwbGF5ZWRDb2x1bW5LZXlzKVxuICB9XG5cbiAgcmVnaXN0ZXJFdmVudExpc3RlbmVyRm9yRGF0YVZpZXcoKSB7XG4gICAgaWYgKHRoaXMuZGVsZXRlSXRlbS5vYnNlcnZlZCkge1xuICAgICAgdGhpcy5pc0RlbGV0ZUl0ZW1PYnNlcnZlZCA9IHRydWVcbiAgICAgIGlmICghdGhpcy5fZGF0YVZpZXdDb21wb25lbnQ/LmRlbGV0ZUl0ZW0ub2JzZXJ2ZWQpIHtcbiAgICAgICAgdGhpcy5fZGF0YVZpZXdDb21wb25lbnQ/LmRlbGV0ZUl0ZW0uc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMub25EZWxldGVFbGVtZW50KGV2ZW50KVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy52aWV3SXRlbS5vYnNlcnZlZCkge1xuICAgICAgdGhpcy5pc1ZpZXdJdGVtT2JzZXJ2ZWQgPSB0cnVlXG4gICAgICBpZiAoIXRoaXMuX2RhdGFWaWV3Q29tcG9uZW50Py52aWV3SXRlbS5vYnNlcnZlZCkge1xuICAgICAgICB0aGlzLl9kYXRhVmlld0NvbXBvbmVudD8udmlld0l0ZW0uc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMub25WaWV3RWxlbWVudChldmVudClcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuZWRpdEl0ZW0ub2JzZXJ2ZWQpIHtcbiAgICAgIHRoaXMuaXNFZGl0SXRlbU9ic2VydmVkID0gdHJ1ZVxuICAgICAgaWYgKCF0aGlzLl9kYXRhVmlld0NvbXBvbmVudD8uZWRpdEl0ZW0ub2JzZXJ2ZWQpIHtcbiAgICAgICAgdGhpcy5fZGF0YVZpZXdDb21wb25lbnQ/LmVkaXRJdGVtLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLm9uRWRpdEVsZW1lbnQoZXZlbnQpXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLnNlbGVjdGlvbkNoYW5nZWQub2JzZXJ2ZWQpIHtcbiAgICAgIGlmICghdGhpcy5fZGF0YVZpZXdDb21wb25lbnQ/LnNlbGVjdGlvbkNoYW5nZWQub2JzZXJ2ZWQpIHtcbiAgICAgICAgdGhpcy5fZGF0YVZpZXdDb21wb25lbnQ/LnNlbGVjdGlvbkNoYW5nZWQuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMub25Sb3dTZWxlY3Rpb25DaGFuZ2UoZXZlbnQpXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25Db2x1bW5TZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IENvbHVtblNlbGVjdGlvbkNoYW5nZWRFdmVudCkge1xuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1uS2V5cyA9IGV2ZW50LmFjdGl2ZUNvbHVtbnMubWFwKChjb2wpID0+IGNvbC5pZClcbiAgICB0aGlzLnNlbGVjdGVkR3JvdXBLZXkgPSB0aGlzLmN1c3RvbUdyb3VwS2V5XG4gICAgLy8gVE9ETzogUmVtb3ZlIGZvbGxvd2luZyBsaW5lIG9uY2UgZGlzcGxheWVkQ29sdW1ucyAoZGVwcmVjYXRlZCkgaGFzIGJlZW4gcmVtb3ZlZFxuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1uc0NoYW5nZS5lbWl0KHRoaXMuZGlzcGxheWVkQ29sdW1ucylcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbktleXNDaGFuZ2UuZW1pdCh0aGlzLmRpc3BsYXllZENvbHVtbktleXMpXG4gIH1cblxuICBvbkFjdGlvbkNvbHVtbkNvbmZpZ0NoYW5nZShldmVudDogQWN0aW9uQ29sdW1uQ2hhbmdlZEV2ZW50KSB7XG4gICAgdGhpcy5mcm96ZW5BY3Rpb25Db2x1bW4gPSBldmVudC5mcm96ZW5BY3Rpb25Db2x1bW5cbiAgICB0aGlzLmFjdGlvbkNvbHVtblBvc2l0aW9uID0gZXZlbnQuYWN0aW9uQ29sdW1uUG9zaXRpb25cbiAgfVxuXG4gIG9uUm93U2VsZWN0aW9uQ2hhbmdlKGV2ZW50OiBSb3dbXSkge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvbkNoYW5nZWQub2JzZXJ2ZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KGV2ZW50KVxuICAgIH1cbiAgfVxuXG4gIG9uUGFnZUNoYW5nZShldmVudDogbnVtYmVyKSB7XG4gICAgdGhpcy5wYWdlID0gZXZlbnRcbiAgICB0aGlzLnBhZ2VDaGFuZ2VkLmVtaXQoZXZlbnQpXG4gIH1cblxuICBvblBhZ2VTaXplQ2hhbmdlKGV2ZW50OiBudW1iZXIpIHtcbiAgICB0aGlzLnBhZ2VTaXplID0gZXZlbnRcbiAgICB0aGlzLnBhZ2VTaXplQ2hhbmdlZC5lbWl0KGV2ZW50KVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicC0zIGJvcmRlci1ib3R0b20tMSBzdXJmYWNlLWJvcmRlclwiPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIHB5LTEgZ2FwLTJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgPG9jeC1kYXRhLWxheW91dC1zZWxlY3Rpb25cbiAgICAgICAgW3N1cHBvcnRlZFZpZXdMYXlvdXRzXT1cInN1cHBvcnRlZFZpZXdMYXlvdXRzXCJcbiAgICAgICAgW2xheW91dF09XCJsYXlvdXRcIlxuICAgICAgICAoZGF0YVZpZXdMYXlvdXRDaGFuZ2UpPVwib25EYXRhVmlld0xheW91dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGNvbXBvbmVudFN0YXRlQ2hhbmdlZCk9XCJkYXRhTGF5b3V0Q29tcG9uZW50U3RhdGUkLm5leHQoJGV2ZW50KVwiXG4gICAgICA+PC9vY3gtZGF0YS1sYXlvdXQtc2VsZWN0aW9uPlxuICAgICAgPG9jeC1maWx0ZXItdmlld1xuICAgICAgICAqbmdJZj1cIiFkaXNhYmxlRmlsdGVyVmlld1wiXG4gICAgICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxuICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICAgICAgW3RlbXBsYXRlc109XCJ0ZW1wbGF0ZXMkIHwgYXN5bmNcIlxuICAgICAgICBbZGlzcGxheU1vZGVdPVwiZmlsdGVyVmlld0Rpc3BsYXlNb2RlXCJcbiAgICAgICAgW3NlbGVjdERpc3BsYXllZENoaXBzXT1cInNlbGVjdERpc3BsYXllZENoaXBzXCJcbiAgICAgICAgW2NoaXBTdHlsZUNsYXNzXT1cImZpbHRlclZpZXdDaGlwU3R5bGVDbGFzc1wiXG4gICAgICAgIFt0YWJsZVN0eWxlXT1cImZpbHRlclZpZXdUYWJsZVN0eWxlXCJcbiAgICAgICAgKGZpbHRlcmVkKT1cImZpbHRlcmluZygkZXZlbnQpXCJcbiAgICAgICAgKGNvbXBvbmVudFN0YXRlQ2hhbmdlZCk9XCJmaWx0ZXJWaWV3Q29tcG9uZW50U3RhdGUkLm5leHQoJGV2ZW50KVwiXG4gICAgICA+PC9vY3gtZmlsdGVyLXZpZXc+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwidG9wQ2VudGVyXCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRvcENlbnRlclwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCJsYXlvdXQgIT09ICd0YWJsZSdcIiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICA8b2N4LWRhdGEtbGlzdC1ncmlkLXNvcnRpbmdcbiAgICAgICAgW3NvcnREaXJlY3Rpb25dPVwic29ydERpcmVjdGlvblwiXG4gICAgICAgIFtzb3J0RmllbGRdPVwic29ydEZpZWxkXCJcbiAgICAgICAgW2NvbHVtbnNdPVwiKGRpc3BsYXllZENvbHVtbnMkIHwgYXN5bmMpID8/IFtdXCJcbiAgICAgICAgW3NvcnRTdGF0ZXNdPVwic29ydFN0YXRlc1wiXG4gICAgICAgIChzb3J0Q2hhbmdlKT1cIm9uU29ydENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKHNvcnREaXJlY3Rpb25DaGFuZ2UpPVwib25Tb3J0RGlyZWN0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAoY29tcG9uZW50U3RhdGVDaGFuZ2VkKT1cImRhdGFMaXN0R3JpZFNvcnRpbmdDb21wb25lbnRTdGF0ZSQubmV4dCgkZXZlbnQpXCJcbiAgICAgID48L29jeC1kYXRhLWxpc3QtZ3JpZC1zb3J0aW5nPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgW25nU3R5bGVdPVwibGF5b3V0ICE9PSAndGFibGUnID8ge1xuICAgICAgJ3Bvc2l0aW9uJzogJ2Fic29sdXRlJ1xuICAgIH0gOiB7fVwiXG4gICAgICBjbGFzcz1cImZsZXggZmxleC13cmFwIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQ29sdW1uR3JvdXBTZWxlY3Rpb25Db21wb25lbnREZWZpbmVkJCB8IGFzeW5jOyBlbHNlIGRlZmF1bHRDb2x1bW5Hcm91cFNlbGVjdGlvbkNvbXBvbmVudFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGlzcGxheWVkQ29sdW1uS2V5cyQgfCBhc3luYyBhcyBkaXNwbGF5ZWRDb2x1bW5LZXlzXCI+XG4gICAgICAgICAgPG9jeC1zbG90XG4gICAgICAgICAgICBbbmdTdHlsZV09XCJsYXlvdXQgIT09ICd0YWJsZScgPyB7J2Rpc3BsYXknIDogJ25vbmUnfSAgOiB7fVwiXG4gICAgICAgICAgICAqb2N4SWZQZXJtaXNzaW9uPVwic2VhcmNoQ29uZmlnUGVybWlzc2lvbjsgZWxzZVRlbXBsYXRlOiBkZWZhdWx0Q29sdW1uR3JvdXBTZWxlY3Rpb25Db21wb25lbnRcIlxuICAgICAgICAgICAgbmFtZT1cInt7Y29sdW1uR3JvdXBTbG90TmFtZX19XCJcbiAgICAgICAgICAgIFtpbnB1dHNdPVwieyBwbGFjZWhvbGRlcktleTogZ3JvdXBTZWxlY3Rpb25Ob0dyb3VwU2VsZWN0ZWRLZXksIGRlZmF1bHRHcm91cEtleTogZGVmYXVsdEdyb3VwS2V5LCBjdXN0b21Hcm91cEtleTogY3VzdG9tR3JvdXBLZXksIGNvbHVtbnM6IGNvbHVtbnMsIHNlbGVjdGVkR3JvdXBLZXk6IHNlbGVjdGVkR3JvdXBLZXksIGxheW91dDogbGF5b3V0LCBkaXNwbGF5ZWRDb2x1bW5zSWRzOiBkaXNwbGF5ZWRDb2x1bW5LZXlzIH1cIlxuICAgICAgICAgICAgW291dHB1dHNdPVwieyBncm91cFNlbGVjdGlvbkNoYW5nZWQ6IGdyb3VwU2VsZWN0aW9uQ2hhbmdlZFNsb3RFbWl0dGVyIH1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc2tlbGV0b24+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgICAgICAgICAgPHAtc2tlbGV0b24gd2lkdGg9XCIxOHJlbVwiIGhlaWdodD1cIjNyZW1cIj48L3Atc2tlbGV0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L29jeC1zbG90PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8b2N4LWN1c3RvbS1ncm91cC1jb2x1bW4tc2VsZWN0b3JcbiAgICAgICAgKm5nSWY9XCJsYXlvdXQgPT09ICd0YWJsZSdcIlxuICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICAgICAgW2Rpc3BsYXllZENvbHVtbnNdPVwiKGRpc3BsYXllZENvbHVtbnMkIHwgYXN5bmMpID8/IFtdXCJcbiAgICAgICAgW2N1c3RvbUdyb3VwS2V5XT1cImN1c3RvbUdyb3VwS2V5XCJcbiAgICAgICAgKGNvbHVtblNlbGVjdGlvbkNoYW5nZWQpPVwib25Db2x1bW5TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtmcm96ZW5BY3Rpb25Db2x1bW5dPVwiZnJvemVuQWN0aW9uQ29sdW1uXCJcbiAgICAgICAgW2FjdGlvbkNvbHVtblBvc2l0aW9uXT1cImFjdGlvbkNvbHVtblBvc2l0aW9uXCJcbiAgICAgICAgKGFjdGlvbkNvbHVtbkNvbmZpZ0NoYW5nZWQpPVwib25BY3Rpb25Db2x1bW5Db25maWdDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIChjb21wb25lbnRTdGF0ZUNoYW5nZWQpPVwiY3VzdG9tR3JvdXBDb2x1bW5TZWxlY3RvckNvbXBvbmVudFN0YXRlJC5uZXh0KCRldmVudClcIlxuICAgICAgPjwvb2N4LWN1c3RvbS1ncm91cC1jb2x1bW4tc2VsZWN0b3I+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicC0zXCI+XG4gIDxvY3gtZGF0YS12aWV3XG4gICAgW2NvbHVtbnNdPVwiKGRpc3BsYXllZENvbHVtbnMkIHwgYXN5bmMpID8/IFtdXCJcbiAgICBbc29ydFN0YXRlc109XCJzb3J0U3RhdGVzXCJcbiAgICBbc29ydEZpZWxkXT1cInNvcnRGaWVsZFwiXG4gICAgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiXG4gICAgW2RhdGFdPVwiZGF0YVwiXG4gICAgW3NvcnREaXJlY3Rpb25dPVwic29ydERpcmVjdGlvblwiXG4gICAgW3RpdGxlTGluZUlkXT1cInRpdGxlTGluZUlkXCJcbiAgICBbc3VidGl0bGVMaW5lSWRzXT1cInN1YnRpdGxlTGluZUlkc1wiXG4gICAgW2NsaWVudFNpZGVTb3J0aW5nXT1cImNsaWVudFNpZGVTb3J0aW5nXCJcbiAgICBbY2xpZW50U2lkZUZpbHRlcmluZ109XCJjbGllbnRTaWRlRmlsdGVyaW5nXCJcbiAgICBbcGFnZVNpemVzXT1cInBhZ2VTaXplc1wiXG4gICAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcbiAgICBbZW1wdHlSZXN1bHRzTWVzc2FnZV09XCJlbXB0eVJlc3VsdHNNZXNzYWdlXCJcbiAgICBbbGF5b3V0XT1cImxheW91dFwiXG4gICAgW25hbWVdPVwibmFtZVwiXG4gICAgW2RlbGV0ZVBlcm1pc3Npb25dPVwiZGVsZXRlUGVybWlzc2lvblwiXG4gICAgW2VkaXRQZXJtaXNzaW9uXT1cImVkaXRQZXJtaXNzaW9uXCJcbiAgICBbdmlld1Blcm1pc3Npb25dPVwidmlld1Blcm1pc3Npb25cIlxuICAgIFtkZWxldGVBY3Rpb25FbmFibGVkRmllbGRdPVwiZGVsZXRlQWN0aW9uRW5hYmxlZEZpZWxkXCJcbiAgICBbZGVsZXRlQWN0aW9uVmlzaWJsZUZpZWxkXT1cImRlbGV0ZUFjdGlvblZpc2libGVGaWVsZFwiXG4gICAgW2VkaXRBY3Rpb25FbmFibGVkRmllbGRdPVwiZWRpdEFjdGlvbkVuYWJsZWRGaWVsZFwiXG4gICAgW2VkaXRBY3Rpb25WaXNpYmxlRmllbGRdPVwiZWRpdEFjdGlvblZpc2libGVGaWVsZFwiXG4gICAgW3ZpZXdBY3Rpb25FbmFibGVkRmllbGRdPVwidmlld0FjdGlvbkVuYWJsZWRGaWVsZFwiXG4gICAgW3ZpZXdBY3Rpb25WaXNpYmxlRmllbGRdPVwidmlld0FjdGlvblZpc2libGVGaWVsZFwiXG4gICAgW2FkZGl0aW9uYWxBY3Rpb25zXT1cImFkZGl0aW9uYWxBY3Rpb25zXCJcbiAgICBbbGlzdEdyaWRQYWdpbmF0b3JdPVwibGlzdEdyaWRQYWdpbmF0b3JcIlxuICAgIFt0YWJsZVBhZ2luYXRvcl09XCJ0YWJsZVBhZ2luYXRvclwiXG4gICAgW3BhZ2VdPVwicGFnZVwiXG4gICAgKHBhZ2VDaGFuZ2VkKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAocGFnZVNpemVDaGFuZ2VkKT1cIm9uUGFnZVNpemVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW3NlbGVjdGVkUm93c109XCJzZWxlY3RlZFJvd3NcIlxuICAgIFtmcm96ZW5BY3Rpb25Db2x1bW5dPVwiZnJvemVuQWN0aW9uQ29sdW1uXCJcbiAgICBbYWN0aW9uQ29sdW1uUG9zaXRpb25dPVwiYWN0aW9uQ29sdW1uUG9zaXRpb25cIlxuICAgIFtzdHJpbmdUYWJsZUNlbGxUZW1wbGF0ZV09XCJfc3RyaW5nVGFibGVDZWxsID8gc3RyaW5nVGFibGVDZWxsIDogdW5kZWZpbmVkXCJcbiAgICBbbnVtYmVyVGFibGVDZWxsVGVtcGxhdGVdPVwiX251bWJlclRhYmxlQ2VsbCA/IG51bWJlclRhYmxlQ2VsbCA6IHVuZGVmaW5lZFwiXG4gICAgW2N1c3RvbVRhYmxlQ2VsbFRlbXBsYXRlXT1cIl9jdXN0b21UYWJsZUNlbGwgPyBjdXN0b21UYWJsZUNlbGwgOiB1bmRlZmluZWRcIlxuICAgIFtkYXRlVGFibGVDZWxsVGVtcGxhdGVdPVwiX2RhdGVUYWJsZUNlbGwgPyBkYXRlVGFibGVDZWxsIDogX3RhYmxlRGF0ZUNlbGwgPyB0YWJsZURhdGVDZWxsIDogdW5kZWZpbmVkXCJcbiAgICBbcmVsYXRpdmVEYXRlVGFibGVDZWxsVGVtcGxhdGVdPVwiX3JlbGF0aXZlRGF0ZVRhYmxlQ2VsbCA/IHJlbGF0aXZlRGF0ZVRhYmxlQ2VsbCA6IF90YWJsZVJlbGF0aXZlRGF0ZUNlbGwgPyB0YWJsZVJlbGF0aXZlRGF0ZUNlbGwgOiB1bmRlZmluZWRcIlxuICAgIFt0YWJsZUNlbGxUZW1wbGF0ZV09XCJfdGFibGVDZWxsID8gdGFibGVDZWxsIDogdW5kZWZpbmVkXCJcbiAgICBbdHJhbnNsYXRpb25LZXlUYWJsZUNlbGxUZW1wbGF0ZV09XCJfdHJhbnNsYXRpb25LZXlUYWJsZUNlbGwgPyB0cmFuc2xhdGlvbktleVRhYmxlQ2VsbCA6IF90YWJsZVRyYW5zbGF0aW9uS2V5Q2VsbCA/IHRhYmxlVHJhbnNsYXRpb25LZXlDZWxsIDogdW5kZWZpbmVkXCJcbiAgICBbZ3JpZEl0ZW1TdWJ0aXRsZUxpbmVzVGVtcGxhdGVdPVwiX2dyaWRJdGVtU3VidGl0bGVMaW5lcyA/IGdyaWRJdGVtU3VidGl0bGVMaW5lcyA6IHVuZGVmaW5lZFwiXG4gICAgW2xpc3RJdGVtU3VidGl0bGVMaW5lc1RlbXBsYXRlXT1cIl9saXN0SXRlbVN1YnRpdGxlTGluZXMgPyBsaXN0SXRlbVN1YnRpdGxlTGluZXMgOiB1bmRlZmluZWRcIlxuICAgIFtsaXN0SXRlbVRlbXBsYXRlXT1cIl9saXN0SXRlbSA/IGxpc3RJdGVtIDogdW5kZWZpbmVkXCJcbiAgICBbbGlzdFZhbHVlVGVtcGxhdGVdPVwiX2xpc3RWYWx1ZSA/IGxpc3RWYWx1ZSA6IHVuZGVmaW5lZFwiXG4gICAgW3RyYW5zbGF0aW9uS2V5TGlzdFZhbHVlVGVtcGxhdGVdPVwiX3RyYW5zbGF0aW9uS2V5TGlzdFZhbHVlID8gdHJhbnNsYXRpb25LZXlMaXN0VmFsdWUgOiB1bmRlZmluZWRcIlxuICAgIFtudW1iZXJMaXN0VmFsdWVUZW1wbGF0ZV09XCJfbnVtYmVyTGlzdFZhbHVlID8gbnVtYmVyTGlzdFZhbHVlIDogdW5kZWZpbmVkXCJcbiAgICBbcmVsYXRpdmVEYXRlTGlzdFZhbHVlVGVtcGxhdGVdPVwiX3JlbGF0aXZlRGF0ZUxpc3RWYWx1ZSA/IHJlbGF0aXZlRGF0ZUxpc3RWYWx1ZSA6IHVuZGVmaW5lZFwiXG4gICAgW2N1c3RvbUxpc3RWYWx1ZVRlbXBsYXRlXT1cIl9jdXN0b21MaXN0VmFsdWUgPyBjdXN0b21MaXN0VmFsdWUgOiB1bmRlZmluZWRcIlxuICAgIFtzdHJpbmdMaXN0VmFsdWVUZW1wbGF0ZV09XCJfc3RyaW5nTGlzdFZhbHVlID8gc3RyaW5nTGlzdFZhbHVlIDogdW5kZWZpbmVkXCJcbiAgICBbZGF0ZUxpc3RWYWx1ZVRlbXBsYXRlXT1cIl9kYXRlTGlzdFZhbHVlID8gZGF0ZUxpc3RWYWx1ZSA6IHVuZGVmaW5lZFwiXG4gICAgW2dyaWRJdGVtVGVtcGxhdGVdPVwiX2dyaWRJdGVtID8gZ3JpZEl0ZW0gIDogdW5kZWZpbmVkXCJcbiAgICBbdGFibGVGaWx0ZXJDZWxsVGVtcGxhdGVdPVwiX3RhYmxlRmlsdGVyQ2VsbCA/IHRhYmxlRmlsdGVyQ2VsbCA6IHVuZGVmaW5lZFwiXG4gICAgW2RhdGVUYWJsZUZpbHRlckNlbGxUZW1wbGF0ZV09XCJfZGF0ZVRhYmxlRmlsdGVyQ2VsbCA/IGRhdGVUYWJsZUZpbHRlckNlbGwgOiB1bmRlZmluZWRcIlxuICAgIFtjdXN0b21UYWJsZUZpbHRlckNlbGxUZW1wbGF0ZV09XCJfY3VzdG9tVGFibGVGaWx0ZXJDZWxsID8gY3VzdG9tVGFibGVGaWx0ZXJDZWxsIDogdW5kZWZpbmVkXCJcbiAgICBbbnVtYmVyVGFibGVGaWx0ZXJDZWxsVGVtcGxhdGVdPVwiX251bWJlclRhYmxlRmlsdGVyQ2VsbCA/IG51bWJlclRhYmxlRmlsdGVyQ2VsbCA6IHVuZGVmaW5lZFwiXG4gICAgW3N0cmluZ1RhYmxlRmlsdGVyQ2VsbFRlbXBsYXRlXT1cIl9zdHJpbmdUYWJsZUZpbHRlckNlbGwgPyBzdHJpbmdUYWJsZUZpbHRlckNlbGwgOiB1bmRlZmluZWRcIlxuICAgIFtyZWxhdGl2ZURhdGVUYWJsZUZpbHRlckNlbGxUZW1wbGF0ZV09XCJfcmVsYXRpdmVEYXRlVGFibGVGaWx0ZXJDZWxsID8gcmVsYXRpdmVEYXRlVGFibGVGaWx0ZXJDZWxsIDogdW5kZWZpbmVkXCJcbiAgICBbdHJhbnNsYXRpb25LZXlUYWJsZUZpbHRlckNlbGxUZW1wbGF0ZV09XCJfdHJhbnNsYXRpb25LZXlUYWJsZUZpbHRlckNlbGwgPyB0cmFuc2xhdGlvbktleVRhYmxlRmlsdGVyQ2VsbCA6IHVuZGVmaW5lZFwiXG4gICAgKHNvcnRlZCk9XCJzb3J0aW5nKCRldmVudClcIlxuICAgIChmaWx0ZXJlZCk9XCJmaWx0ZXJpbmcoJGV2ZW50KVwiXG4gICAgW3RvdGFsUmVjb3Jkc09uU2VydmVyXT1cInRvdGFsUmVjb3Jkc09uU2VydmVyXCJcbiAgICBbY3VycmVudFBhZ2VTaG93aW5nS2V5XT1cImN1cnJlbnRQYWdlU2hvd2luZ0tleVwiXG4gICAgW2N1cnJlbnRQYWdlU2hvd2luZ1dpdGhUb3RhbE9uU2VydmVyS2V5XT1cImN1cnJlbnRQYWdlU2hvd2luZ1dpdGhUb3RhbE9uU2VydmVyS2V5XCJcbiAgICAoY29tcG9uZW50U3RhdGVDaGFuZ2VkKT1cImRhdGFWaWV3Q29tcG9uZW50U3RhdGUkLm5leHQoJGV2ZW50KVwiXG4gICAgW3BhcmVudFRlbXBsYXRlc109XCJ0ZW1wbGF0ZXMkIHwgYXN5bmNcIlxuICAgIFt0YWJsZUFsbG93U2VsZWN0QWxsXT1cInRhYmxlQWxsb3dTZWxlY3RBbGxcIlxuICAgIFt0YWJsZVNlbGVjdGlvbkVuYWJsZWRGaWVsZF09XCJ0YWJsZVNlbGVjdGlvbkVuYWJsZWRGaWVsZFwiXG4gID5cbiAgPC9vY3gtZGF0YS12aWV3PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdENvbHVtbkdyb3VwU2VsZWN0aW9uQ29tcG9uZW50PlxuICA8b2N4LWNvbHVtbi1ncm91cC1zZWxlY3Rpb25cbiAgICAqbmdJZj1cImxheW91dCA9PT0gJ3RhYmxlJ1wiXG4gICAgW3NlbGVjdGVkR3JvdXBLZXldPVwic2VsZWN0ZWRHcm91cEtleSA/PyBkZWZhdWx0R3JvdXBLZXlcIlxuICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgIFtkZWZhdWx0R3JvdXBLZXldPVwiZGVmYXVsdEdyb3VwS2V5ICE9PSBjdXN0b21Hcm91cEtleSA/IGRlZmF1bHRHcm91cEtleSA6ICcnXCJcbiAgICBbY3VzdG9tR3JvdXBLZXldPVwiY3VzdG9tR3JvdXBLZXlcIlxuICAgIFtwbGFjZWhvbGRlcktleV09XCJncm91cFNlbGVjdGlvbk5vR3JvdXBTZWxlY3RlZEtleVwiXG4gICAgKGdyb3VwU2VsZWN0aW9uQ2hhbmdlZCk9XCJvbkNvbHVtbkdyb3VwU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgIChjb21wb25lbnRTdGF0ZUNoYW5nZWQpPVwiY29sdW1uR3JvdXBTZWxlY3Rpb25Db21wb25lbnRTdGF0ZSQubmV4dCgkZXZlbnQpXCJcbiAgPjwvb2N4LWNvbHVtbi1ncm91cC1zZWxlY3Rpb24+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3N0cmluZ1RhYmxlQ2VsbCBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJfc3RyaW5nVGFibGVDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfc3RyaW5nVGFibGVDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie3Jvd09iamVjdDogcm93T2JqZWN0LCBjb2x1bW46Y29sdW1ufVwiXG4gID5cbiAgPC9uZy1jb250YWluZXJcbj48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICN0YWJsZURhdGVDZWxsIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIl90YWJsZURhdGVDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfdGFibGVEYXRlQ2VsbFwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6cm93T2JqZWN0LCBjb2x1bW46Y29sdW1ufVwiXG4gID5cbiAgPC9uZy1jb250YWluZXJcbj48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNkYXRlVGFibGVDZWxsIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIl9kYXRlVGFibGVDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfZGF0ZVRhYmxlQ2VsbFwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6cm93T2JqZWN0LCBjb2x1bW46Y29sdW1ufVwiXG4gID5cbiAgPC9uZy1jb250YWluZXJcbj48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICN0YWJsZVJlbGF0aXZlRGF0ZUNlbGwgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiX3RhYmxlUmVsYXRpdmVEYXRlQ2VsbFwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX3RhYmxlUmVsYXRpdmVEYXRlQ2VsbFwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6cm93T2JqZWN0LCBjb2x1bW46Y29sdW1ufVwiXG4gID5cbiAgPC9uZy1jb250YWluZXJcbj48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNyZWxhdGl2ZURhdGVUYWJsZUNlbGwgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiX3JlbGF0aXZlRGF0ZVRhYmxlQ2VsbFwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX3JlbGF0aXZlRGF0ZVRhYmxlQ2VsbFwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6cm93T2JqZWN0LCBjb2x1bW46Y29sdW1ufVwiXG4gID5cbiAgPC9uZy1jb250YWluZXJcbj48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICN0YWJsZUNlbGwgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiX3RhYmxlQ2VsbFwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX3RhYmxlQ2VsbFwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6IHJvd09iamVjdCwgY29sdW1uOmNvbHVtbn1cIlxuICA+XG4gIDwvbmctY29udGFpbmVyXG4+PC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjdGFibGVUcmFuc2xhdGlvbktleUNlbGwgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiX3RhYmxlVHJhbnNsYXRpb25LZXlDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfdGFibGVUcmFuc2xhdGlvbktleUNlbGxcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7cm93T2JqZWN0OnJvd09iamVjdCwgY29sdW1uOmNvbHVtbn1cIlxuICA+XG4gIDwvbmctY29udGFpbmVyXG4+PC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjdHJhbnNsYXRpb25LZXlUYWJsZUNlbGwgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiX3RyYW5zbGF0aW9uS2V5VGFibGVDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfdHJhbnNsYXRpb25LZXlUYWJsZUNlbGxcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7cm93T2JqZWN0OnJvd09iamVjdCwgY29sdW1uOmNvbHVtbn1cIlxuICA+XG4gIDwvbmctY29udGFpbmVyXG4+PC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZ3JpZEl0ZW1TdWJ0aXRsZUxpbmVzIGxldC1pdGVtPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJfZ3JpZEl0ZW1TdWJ0aXRsZUxpbmVzXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfZ3JpZEl0ZW1TdWJ0aXRsZUxpbmVzXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDppdGVtfVwiXG4gID5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNsaXN0SXRlbVN1YnRpdGxlTGluZXMgbGV0LWl0ZW0+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIl9saXN0SXRlbVN1YnRpdGxlTGluZXNcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9saXN0SXRlbVN1YnRpdGxlTGluZXNcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7JGltcGxpY2l0Oml0ZW19XCJcbiAgPlxuICA8L25nLWNvbnRhaW5lclxuPjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2dyaWRJdGVtIGxldC1pdGVtPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiX2dyaWRJdGVtXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2dyaWRJdGVtXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInskaW1wbGljaXQ6aXRlbX1cIj5cbiAgPC9uZy1jb250YWluZXJcbj48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNsaXN0SXRlbSBsZXQtaXRlbT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9saXN0SXRlbVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9saXN0SXRlbVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7JGltcGxpY2l0Oml0ZW19XCI+XG4gIDwvbmctY29udGFpbmVyXG4+PC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbGlzdFZhbHVlIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIl9saXN0VmFsdWVcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9saXN0VmFsdWVcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7cm93T2JqZWN0OiByb3dPYmplY3QsIGNvbHVtbjpjb2x1bW59XCJcbiAgPlxuICA8L25nLWNvbnRhaW5lclxuPjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3RyYW5zbGF0aW9uS2V5TGlzdFZhbHVlIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIl90cmFuc2xhdGlvbktleUxpc3RWYWx1ZVwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX3RyYW5zbGF0aW9uS2V5TGlzdFZhbHVlXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie3Jvd09iamVjdDogcm93T2JqZWN0LCBjb2x1bW46Y29sdW1ufVwiXG4gID5cbiAgPC9uZy1jb250YWluZXJcbj48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNudW1iZXJMaXN0VmFsdWUgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiX251bWJlckxpc3RWYWx1ZVwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX251bWJlckxpc3RWYWx1ZVwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6IHJvd09iamVjdCwgY29sdW1uOmNvbHVtbn1cIlxuICA+XG4gIDwvbmctY29udGFpbmVyXG4+PC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjcmVsYXRpdmVEYXRlTGlzdFZhbHVlIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIl9yZWxhdGl2ZURhdGVMaXN0VmFsdWVcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9yZWxhdGl2ZURhdGVMaXN0VmFsdWVcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7cm93T2JqZWN0OiByb3dPYmplY3QsIGNvbHVtbjpjb2x1bW59XCJcbiAgPlxuICA8L25nLWNvbnRhaW5lclxuPjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2N1c3RvbUxpc3RWYWx1ZSBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJfY3VzdG9tTGlzdFZhbHVlXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfY3VzdG9tTGlzdFZhbHVlXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie3Jvd09iamVjdDogcm93T2JqZWN0LCBjb2x1bW46Y29sdW1ufVwiXG4gID5cbiAgPC9uZy1jb250YWluZXJcbj48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNzdHJpbmdMaXN0VmFsdWUgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiX3N0cmluZ0xpc3RWYWx1ZVwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX3N0cmluZ0xpc3RWYWx1ZVwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6IHJvd09iamVjdCwgY29sdW1uOmNvbHVtbn1cIlxuICA+XG4gIDwvbmctY29udGFpbmVyXG4+PC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZGF0ZUxpc3RWYWx1ZSBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJfZGF0ZUxpc3RWYWx1ZVwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2RhdGVMaXN0VmFsdWVcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7cm93T2JqZWN0OiByb3dPYmplY3QsIGNvbHVtbjpjb2x1bW59XCJcbiAgPlxuICA8L25nLWNvbnRhaW5lclxuPjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc3RyaW5nVGFibGVGaWx0ZXJDZWxsIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIl9zdHJpbmdUYWJsZUZpbHRlckNlbGxcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9zdHJpbmdUYWJsZUZpbHRlckNlbGxcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7cm93T2JqZWN0OiByb3dPYmplY3QsIGNvbHVtbjpjb2x1bW59XCJcbiAgPlxuICA8L25nLWNvbnRhaW5lclxuPjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI251bWJlclRhYmxlRmlsdGVyQ2VsbCBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJfbnVtYmVyVGFibGVGaWx0ZXJDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfbnVtYmVyVGFibGVGaWx0ZXJDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie3Jvd09iamVjdDogcm93T2JqZWN0LCBjb2x1bW46Y29sdW1ufVwiXG4gID5cbiAgPC9uZy1jb250YWluZXJcbj48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNjdXN0b21UYWJsZUZpbHRlckNlbGwgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiX2N1c3RvbVRhYmxlRmlsdGVyQ2VsbFwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2N1c3RvbVRhYmxlRmlsdGVyQ2VsbFwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6IHJvd09iamVjdCwgY29sdW1uOmNvbHVtbn1cIlxuICA+XG4gIDwvbmctY29udGFpbmVyXG4+PC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZGF0ZVRhYmxlRmlsdGVyQ2VsbCBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJfZGF0ZVRhYmxlRmlsdGVyQ2VsbFwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2RhdGVUYWJsZUZpbHRlckNlbGxcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7cm93T2JqZWN0OiByb3dPYmplY3QsIGNvbHVtbjpjb2x1bW59XCJcbiAgPlxuICA8L25nLWNvbnRhaW5lclxuPjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3JlbGF0aXZlRGF0ZVRhYmxlRmlsdGVyQ2VsbCBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJfcmVsYXRpdmVEYXRlVGFibGVGaWx0ZXJDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfcmVsYXRpdmVEYXRlVGFibGVGaWx0ZXJDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie3Jvd09iamVjdDogcm93T2JqZWN0LCBjb2x1bW46Y29sdW1ufVwiXG4gID5cbiAgPC9uZy1jb250YWluZXJcbj48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICN0cmFuc2xhdGlvbktleVRhYmxlRmlsdGVyQ2VsbCBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJfdHJhbnNsYXRpb25LZXlUYWJsZUZpbHRlckNlbGxcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl90cmFuc2xhdGlvbktleVRhYmxlRmlsdGVyQ2VsbFwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6IHJvd09iamVjdCwgY29sdW1uOmNvbHVtbn1cIlxuICA+XG4gIDwvbmctY29udGFpbmVyXG4+PC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -2,15 +2,17 @@ import { Component, ContentChild, ContentChildren, EventEmitter, Input, Output,
|
|
|
2
2
|
import { FormControlName, FormGroupDirective } from '@angular/forms';
|
|
3
3
|
import { combineLatest, debounceTime, map, of, startWith } from 'rxjs';
|
|
4
4
|
import { getLocation } from '@onecx/accelerator';
|
|
5
|
+
import { CONFIG_KEY, ConfigurationService } from '@onecx/angular-integration-interface';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular
|
|
7
|
-
import * as i2 from "
|
|
8
|
-
import * as i3 from "primeng/
|
|
9
|
-
import * as i4 from "primeng/
|
|
10
|
-
import * as i5 from "
|
|
11
|
-
import * as i6 from "
|
|
12
|
-
import * as i7 from "
|
|
13
|
-
import * as i8 from "
|
|
7
|
+
import * as i1 from "@onecx/angular-integration-interface";
|
|
8
|
+
import * as i2 from "@angular/common";
|
|
9
|
+
import * as i3 from "primeng/tooltip";
|
|
10
|
+
import * as i4 from "primeng/button";
|
|
11
|
+
import * as i5 from "primeng/skeleton";
|
|
12
|
+
import * as i6 from "@onecx/angular-remote-components";
|
|
13
|
+
import * as i7 from "../page-header/page-header.component";
|
|
14
|
+
import * as i8 from "../../directives/if-permission.directive";
|
|
15
|
+
import * as i9 from "@ngx-translate/core";
|
|
14
16
|
/**
|
|
15
17
|
* To trigger the search when Enter key is pressed inside a search parameter field,
|
|
16
18
|
* an EventListener for keyup enter event is added for HTML elements which have an input.
|
|
@@ -57,7 +59,7 @@ export class SearchHeaderComponent {
|
|
|
57
59
|
get searchConfigChangeObserved() {
|
|
58
60
|
return this.selectedSearchConfigChanged.observed;
|
|
59
61
|
}
|
|
60
|
-
constructor() {
|
|
62
|
+
constructor(configurationService) {
|
|
61
63
|
this.header = '';
|
|
62
64
|
this._viewMode = 'basic';
|
|
63
65
|
this.manualBreadcrumbs = false;
|
|
@@ -77,6 +79,7 @@ export class SearchHeaderComponent {
|
|
|
77
79
|
show: 'always',
|
|
78
80
|
};
|
|
79
81
|
this.headerActions = [];
|
|
82
|
+
this.searchButtonsReversed = false;
|
|
80
83
|
this.fieldValues$ = of({});
|
|
81
84
|
this.searchConfigChangedSlotEmitter = new EventEmitter();
|
|
82
85
|
this.searchConfigChangedSlotEmitter.subscribe((config) => {
|
|
@@ -85,6 +88,8 @@ export class SearchHeaderComponent {
|
|
|
85
88
|
});
|
|
86
89
|
this.selectedSearchConfigChanged.emit(config);
|
|
87
90
|
});
|
|
91
|
+
this.searchButtonsReversed =
|
|
92
|
+
configurationService.getProperty(CONFIG_KEY.ONECX_PORTAL_SEARCH_BUTTONS_REVERSED) === 'true';
|
|
88
93
|
}
|
|
89
94
|
ngAfterContentInit() {
|
|
90
95
|
if (this.formGroup) {
|
|
@@ -139,13 +144,13 @@ export class SearchHeaderComponent {
|
|
|
139
144
|
isVisible(control) {
|
|
140
145
|
return this.visibleFormControls.some((formControl) => formControl.name !== null && String(formControl.name) === control);
|
|
141
146
|
}
|
|
142
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SearchHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
143
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: SearchHeaderComponent, selector: "ocx-search-header", inputs: { header: "header", headline: "headline", subheader: "subheader", viewMode: "viewMode", manualBreadcrumbs: "manualBreadcrumbs", actions: "actions", searchConfigPermission: "searchConfigPermission", searchButtonDisabled: "searchButtonDisabled", resetButtonDisabled: "resetButtonDisabled", pageName: "pageName" }, outputs: { searched: "searched", resetted: "resetted", selectedSearchConfigChanged: "selectedSearchConfigChanged", viewModeChanged: "viewModeChanged", componentStateChanged: "componentStateChanged" }, providers: [], queries: [{ propertyName: "additionalToolbarContent", first: true, predicate: ["additionalToolbarContent"], descendants: true }, { propertyName: "additionalToolbarContentLeft", first: true, predicate: ["additionalToolbarContentLeft"], descendants: true }, { propertyName: "formGroup", first: true, predicate: FormGroupDirective, descendants: true }, { propertyName: "visibleFormControls", predicate: FormControlName, descendants: true }], viewQueries: [{ propertyName: "searchParameterFields", first: true, predicate: ["searchParameterFields"], descendants: true }], ngImport: i0, template: "<ocx-page-header\n [header]=\"header || ('OCX_SEARCH_HEADER.HEADER' | translate)\"\n [subheader]=\"subheader\"\n [manualBreadcrumbs]=\"manualBreadcrumbs\"\n [actions]=\"headerActions\"\n>\n <ng-template #additionalToolbarContentLeft>\n <ng-container *ngIf=\"searchConfigChangeObserved && pageName\">\n <ocx-slot\n *ocxIfPermission=\"searchConfigPermission\"\n name=\"onecx-search-config\"\n [inputs]=\"{ pageName: pageName, currentFieldValues: fieldValues$ | async, viewMode: viewMode }\"\n [outputs]=\"{ searchConfigSelected: searchConfigChangedSlotEmitter }\"\n >\n <ng-template #skeleton>\n <div class=\"flex\">\n <p-skeleton width=\"18rem\" height=\"3rem\"></p-skeleton>\n </div>\n </ng-template>\n </ocx-slot>\n </ng-container>\n <ng-container\n *ngIf=\"_additionalToolbarContentLeft\"\n [ngTemplateOutlet]=\"_additionalToolbarContentLeft\"\n ></ng-container>\n </ng-template>\n <ng-template #additionalToolbarContent>\n <ng-container *ngIf=\"_additionalToolbarContent\" [ngTemplateOutlet]=\"_additionalToolbarContent\"></ng-container>\n </ng-template>\n <div class=\"flex row-gap-3 column-gap-6 flex-wrap align-items-center\">\n <div>\n <div #searchParameterFields>\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"flex flex-wrap gap-2\">\n <p-button\n id=\"resetButton\"\n *ngIf=\"resetted.observed\"\n (onClick)=\"onResetClicked()\"\n label=\"{{ 'OCX_SEARCH_HEADER.RESET_BUTTON.TEXT' | translate }}\"\n icon=\"pi pi-eraser\"\n pTooltip=\"{{ 'OCX_SEARCH_HEADER.RESET_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [disabled]=\"resetButtonDisabled\"\n [ariaLabel]=\"'OCX_SEARCH_HEADER.RESET_BUTTON.ARIA_LABEL' | translate\"\n >\n </p-button>\n\n <p-button\n id=\"searchButton\"\n (onClick)=\"onSearchClicked()\"\n label=\"{{ 'OCX_SEARCH_HEADER.SEARCH_BUTTON.TEXT' | translate }}\"\n icon=\"pi pi-search\"\n pTooltip=\"{{ 'OCX_SEARCH_HEADER.SEARCH_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [disabled]=\"searchButtonDisabled || formGroup?.invalid\"\n [ariaLabel]=\"'OCX_SEARCH_HEADER.SEARCH_BUTTON.ARIA_LABEL' | translate\"\n >\n </p-button>\n </div>\n </div>\n</ocx-page-header>\n", dependencies: [{ kind: "directive", type:
|
|
147
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SearchHeaderComponent, deps: [{ token: i1.ConfigurationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
148
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: SearchHeaderComponent, selector: "ocx-search-header", inputs: { header: "header", headline: "headline", subheader: "subheader", viewMode: "viewMode", manualBreadcrumbs: "manualBreadcrumbs", actions: "actions", searchConfigPermission: "searchConfigPermission", searchButtonDisabled: "searchButtonDisabled", resetButtonDisabled: "resetButtonDisabled", pageName: "pageName" }, outputs: { searched: "searched", resetted: "resetted", selectedSearchConfigChanged: "selectedSearchConfigChanged", viewModeChanged: "viewModeChanged", componentStateChanged: "componentStateChanged" }, providers: [], queries: [{ propertyName: "additionalToolbarContent", first: true, predicate: ["additionalToolbarContent"], descendants: true }, { propertyName: "additionalToolbarContentLeft", first: true, predicate: ["additionalToolbarContentLeft"], descendants: true }, { propertyName: "formGroup", first: true, predicate: FormGroupDirective, descendants: true }, { propertyName: "visibleFormControls", predicate: FormControlName, descendants: true }], viewQueries: [{ propertyName: "searchParameterFields", first: true, predicate: ["searchParameterFields"], descendants: true }], ngImport: i0, template: "<ocx-page-header\n [header]=\"header || ('OCX_SEARCH_HEADER.HEADER' | translate)\"\n [subheader]=\"subheader\"\n [manualBreadcrumbs]=\"manualBreadcrumbs\"\n [actions]=\"headerActions\"\n>\n <ng-template #additionalToolbarContentLeft>\n <ng-container *ngIf=\"searchConfigChangeObserved && pageName\">\n <ocx-slot\n *ocxIfPermission=\"searchConfigPermission\"\n name=\"onecx-search-config\"\n [inputs]=\"{ pageName: pageName, currentFieldValues: fieldValues$ | async, viewMode: viewMode }\"\n [outputs]=\"{ searchConfigSelected: searchConfigChangedSlotEmitter }\"\n >\n <ng-template #skeleton>\n <div class=\"flex\">\n <p-skeleton width=\"18rem\" height=\"3rem\"></p-skeleton>\n </div>\n </ng-template>\n </ocx-slot>\n </ng-container>\n <ng-container\n *ngIf=\"_additionalToolbarContentLeft\"\n [ngTemplateOutlet]=\"_additionalToolbarContentLeft\"\n ></ng-container>\n </ng-template>\n <ng-template #additionalToolbarContent>\n <ng-container *ngIf=\"_additionalToolbarContent\" [ngTemplateOutlet]=\"_additionalToolbarContent\"></ng-container>\n </ng-template>\n <div class=\"flex row-gap-3 column-gap-6 flex-wrap align-items-center\">\n <div>\n <div #searchParameterFields>\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"flex flex-wrap gap-2\" [ngClass]=\"searchButtonsReversed ? 'flex-row-reverse' : 'flex-row'\">\n <p-button\n id=\"resetButton\"\n *ngIf=\"resetted.observed\"\n (onClick)=\"onResetClicked()\"\n label=\"{{ 'OCX_SEARCH_HEADER.RESET_BUTTON.TEXT' | translate }}\"\n icon=\"pi pi-eraser\"\n pTooltip=\"{{ 'OCX_SEARCH_HEADER.RESET_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [disabled]=\"resetButtonDisabled\"\n [ariaLabel]=\"'OCX_SEARCH_HEADER.RESET_BUTTON.ARIA_LABEL' | translate\"\n >\n </p-button>\n\n <p-button\n id=\"searchButton\"\n (onClick)=\"onSearchClicked()\"\n label=\"{{ 'OCX_SEARCH_HEADER.SEARCH_BUTTON.TEXT' | translate }}\"\n icon=\"pi pi-search\"\n pTooltip=\"{{ 'OCX_SEARCH_HEADER.SEARCH_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [disabled]=\"searchButtonDisabled || formGroup?.invalid\"\n [ariaLabel]=\"'OCX_SEARCH_HEADER.SEARCH_BUTTON.ARIA_LABEL' | translate\"\n >\n </p-button>\n </div>\n </div>\n</ocx-page-header>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i4.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: i5.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "component", type: i6.SlotComponent, selector: "ocx-slot[name]", inputs: ["name", "inputs", "outputs"] }, { kind: "component", type: i7.PageHeaderComponent, selector: "ocx-page-header", inputs: ["header", "loading", "figureBackground", "showFigure", "figureImage", "disableDefaultActions", "subheader", "actions", "objectDetails", "showBreadcrumbs", "manualBreadcrumbs", "enableGridView", "gridLayoutDesktopColumns"], outputs: ["save"] }, { kind: "directive", type: i8.IfPermissionDirective, selector: "[ocxIfPermission], [ocxIfNotPermission]", inputs: ["ocxIfPermission", "ocxIfNotPermission", "onMissingPermission", "ocxIfPermissionPermissions", "ocxIfNotPermissionPermissions", "ocxIfPermissionElseTemplate", "ocxIfNotPermissionElseTemplate"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] }); }
|
|
144
149
|
}
|
|
145
150
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SearchHeaderComponent, decorators: [{
|
|
146
151
|
type: Component,
|
|
147
|
-
args: [{ selector: 'ocx-search-header', providers: [], template: "<ocx-page-header\n [header]=\"header || ('OCX_SEARCH_HEADER.HEADER' | translate)\"\n [subheader]=\"subheader\"\n [manualBreadcrumbs]=\"manualBreadcrumbs\"\n [actions]=\"headerActions\"\n>\n <ng-template #additionalToolbarContentLeft>\n <ng-container *ngIf=\"searchConfigChangeObserved && pageName\">\n <ocx-slot\n *ocxIfPermission=\"searchConfigPermission\"\n name=\"onecx-search-config\"\n [inputs]=\"{ pageName: pageName, currentFieldValues: fieldValues$ | async, viewMode: viewMode }\"\n [outputs]=\"{ searchConfigSelected: searchConfigChangedSlotEmitter }\"\n >\n <ng-template #skeleton>\n <div class=\"flex\">\n <p-skeleton width=\"18rem\" height=\"3rem\"></p-skeleton>\n </div>\n </ng-template>\n </ocx-slot>\n </ng-container>\n <ng-container\n *ngIf=\"_additionalToolbarContentLeft\"\n [ngTemplateOutlet]=\"_additionalToolbarContentLeft\"\n ></ng-container>\n </ng-template>\n <ng-template #additionalToolbarContent>\n <ng-container *ngIf=\"_additionalToolbarContent\" [ngTemplateOutlet]=\"_additionalToolbarContent\"></ng-container>\n </ng-template>\n <div class=\"flex row-gap-3 column-gap-6 flex-wrap align-items-center\">\n <div>\n <div #searchParameterFields>\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"flex flex-wrap gap-2\">\n <p-button\n id=\"resetButton\"\n *ngIf=\"resetted.observed\"\n (onClick)=\"onResetClicked()\"\n label=\"{{ 'OCX_SEARCH_HEADER.RESET_BUTTON.TEXT' | translate }}\"\n icon=\"pi pi-eraser\"\n pTooltip=\"{{ 'OCX_SEARCH_HEADER.RESET_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [disabled]=\"resetButtonDisabled\"\n [ariaLabel]=\"'OCX_SEARCH_HEADER.RESET_BUTTON.ARIA_LABEL' | translate\"\n >\n </p-button>\n\n <p-button\n id=\"searchButton\"\n (onClick)=\"onSearchClicked()\"\n label=\"{{ 'OCX_SEARCH_HEADER.SEARCH_BUTTON.TEXT' | translate }}\"\n icon=\"pi pi-search\"\n pTooltip=\"{{ 'OCX_SEARCH_HEADER.SEARCH_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [disabled]=\"searchButtonDisabled || formGroup?.invalid\"\n [ariaLabel]=\"'OCX_SEARCH_HEADER.SEARCH_BUTTON.ARIA_LABEL' | translate\"\n >\n </p-button>\n </div>\n </div>\n</ocx-page-header>\n" }]
|
|
148
|
-
}], ctorParameters: () => [], propDecorators: { header: [{
|
|
152
|
+
args: [{ selector: 'ocx-search-header', providers: [], template: "<ocx-page-header\n [header]=\"header || ('OCX_SEARCH_HEADER.HEADER' | translate)\"\n [subheader]=\"subheader\"\n [manualBreadcrumbs]=\"manualBreadcrumbs\"\n [actions]=\"headerActions\"\n>\n <ng-template #additionalToolbarContentLeft>\n <ng-container *ngIf=\"searchConfigChangeObserved && pageName\">\n <ocx-slot\n *ocxIfPermission=\"searchConfigPermission\"\n name=\"onecx-search-config\"\n [inputs]=\"{ pageName: pageName, currentFieldValues: fieldValues$ | async, viewMode: viewMode }\"\n [outputs]=\"{ searchConfigSelected: searchConfigChangedSlotEmitter }\"\n >\n <ng-template #skeleton>\n <div class=\"flex\">\n <p-skeleton width=\"18rem\" height=\"3rem\"></p-skeleton>\n </div>\n </ng-template>\n </ocx-slot>\n </ng-container>\n <ng-container\n *ngIf=\"_additionalToolbarContentLeft\"\n [ngTemplateOutlet]=\"_additionalToolbarContentLeft\"\n ></ng-container>\n </ng-template>\n <ng-template #additionalToolbarContent>\n <ng-container *ngIf=\"_additionalToolbarContent\" [ngTemplateOutlet]=\"_additionalToolbarContent\"></ng-container>\n </ng-template>\n <div class=\"flex row-gap-3 column-gap-6 flex-wrap align-items-center\">\n <div>\n <div #searchParameterFields>\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"flex flex-wrap gap-2\" [ngClass]=\"searchButtonsReversed ? 'flex-row-reverse' : 'flex-row'\">\n <p-button\n id=\"resetButton\"\n *ngIf=\"resetted.observed\"\n (onClick)=\"onResetClicked()\"\n label=\"{{ 'OCX_SEARCH_HEADER.RESET_BUTTON.TEXT' | translate }}\"\n icon=\"pi pi-eraser\"\n pTooltip=\"{{ 'OCX_SEARCH_HEADER.RESET_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [disabled]=\"resetButtonDisabled\"\n [ariaLabel]=\"'OCX_SEARCH_HEADER.RESET_BUTTON.ARIA_LABEL' | translate\"\n >\n </p-button>\n\n <p-button\n id=\"searchButton\"\n (onClick)=\"onSearchClicked()\"\n label=\"{{ 'OCX_SEARCH_HEADER.SEARCH_BUTTON.TEXT' | translate }}\"\n icon=\"pi pi-search\"\n pTooltip=\"{{ 'OCX_SEARCH_HEADER.SEARCH_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [disabled]=\"searchButtonDisabled || formGroup?.invalid\"\n [ariaLabel]=\"'OCX_SEARCH_HEADER.SEARCH_BUTTON.ARIA_LABEL' | translate\"\n >\n </p-button>\n </div>\n </div>\n</ocx-page-header>\n" }]
|
|
153
|
+
}], ctorParameters: () => [{ type: i1.ConfigurationService }], propDecorators: { header: [{
|
|
149
154
|
type: Input
|
|
150
155
|
}], headline: [{
|
|
151
156
|
type: Input
|
|
@@ -191,4 +196,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
191
196
|
type: ViewChild,
|
|
192
197
|
args: ['searchParameterFields']
|
|
193
198
|
}] } });
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3NlYXJjaC1oZWFkZXIvc2VhcmNoLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3NlYXJjaC1oZWFkZXIvc2VhcmNoLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBRWYsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUVULFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQTtBQUV0QixPQUFPLEVBQUUsZUFBZSxFQUFhLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDL0UsT0FBTyxFQUFjLGFBQWEsRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFBOzs7Ozs7Ozs7O0FBY2hEOzs7OztHQUtHO0FBTUgsTUFBTSxPQUFPLHFCQUFxQjtJQUdoQzs7T0FFRztJQUNILElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQTtJQUNwQixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsS0FBYTtRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQTtJQUNyQixDQUFDO0lBR0QsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFBO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxRQUE4QjtRQUN6QyxJQUFJLElBQUksQ0FBQyxRQUFR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QUNILENBQUM7OEdBcEtVLHFCQUFxQjtrR0FBckIscUJBQXFCLHFqQkFGckIsRUFBRSx1VEFxRUMsa0JBQWtCLHlFQUNmLGVBQWUsZ0xDOUdsQyw2N0VBaUVBOzsyRkR2QmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG1CQUFtQixhQUVsQixFQUFFO3dEQUdKLE1BQU07c0JBQWQsS0FBSztnQkFNRixRQUFRO3NCQURYLEtBQUs7Z0JBT0csU0FBUztzQkFBakIsS0FBSztnQkFHRixRQUFRO3NCQURYLEtBQUs7Z0JBZUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUdGLE9BQU87c0JBRFYsS0FBSztnQkFRRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRywyQkFBMkI7c0JBQXBDLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBRVAsd0JBQXdCO3NCQUR2QixZQUFZO3VCQUFDLDBCQUEwQjtnQkFPeEMsNEJBQTRCO3NCQUQzQixZQUFZO3VCQUFDLDhCQUE4QjtnQkFXVixTQUFTO3NCQUExQyxZQUFZO3VCQUFDLGtCQUFrQjtnQkFDeUIsbUJBQW1CO3NCQUEzRSxlQUFlO3VCQUFDLGVBQWUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBRW5CLHFCQUFxQjtzQkFBeEQsU0FBUzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4uL3BhZ2UtaGVhZGVyL3BhZ2UtaGVhZGVyLmNvbXBvbmVudCdcbmltcG9ydCB7IEZvcm1Db250cm9sTmFtZSwgRm9ybUdyb3VwLCBGb3JtR3JvdXBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIGRlYm91bmNlVGltZSwgbWFwLCBvZiwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGdldExvY2F0aW9uIH0gZnJvbSAnQG9uZWN4L2FjY2VsZXJhdG9yJ1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaEhlYWRlckNvbXBvbmVudFN0YXRlIHtcbiAgYWN0aXZlVmlld01vZGU/OiAnYmFzaWMnIHwgJ2FkdmFuY2VkJ1xuICBzZWxlY3RlZFNlYXJjaENvbmZpZz86IHN0cmluZyB8IG51bGxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hDb25maWdEYXRhIHtcbiAgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIGZpZWxkVmFsdWVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XG4gIGRpc3BsYXllZENvbHVtbnNJZHM6IHN0cmluZ1tdXG4gIHZpZXdNb2RlOiAnYmFzaWMnIHwgJ2FkdmFuY2VkJ1xufVxuXG4vKipcbiAqIFRvIHRyaWdnZXIgdGhlIHNlYXJjaCB3aGVuIEVudGVyIGtleSBpcyBwcmVzc2VkIGluc2lkZSBhIHNlYXJjaCBwYXJhbWV0ZXIgZmllbGQsXG4gKiBhbiBFdmVudExpc3RlbmVyIGZvciBrZXl1cCBlbnRlciBldmVudCBpcyBhZGRlZCBmb3IgSFRNTCBlbGVtZW50cyB3aGljaCBoYXZlIGFuIGlucHV0LlxuICogUGxlYXNlIGFkZCB0aGUgRXZlbnRMaXN0ZW5lciB5b3Vyc2VsZiBtYW51YWxseSwgaWYgeW91IHdhbnQgdG8gaGF2ZSB0aGF0IGZ1bmN0aW9uYWxpdHkgZm9yIHNvbWUgb3RoZXIgZWxlbWVudHNcbiAqIHdoaWNoIGRvIG5vdCBoYXZlIGFuIGlucHV0IGVsZW1lbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29jeC1zZWFyY2gtaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgaGVhZGVyID0gJydcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBoZWFkZXJcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBoZWFkbGluZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmhlYWRlclxuICB9XG4gIHNldCBoZWFkbGluZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5oZWFkZXIgPSB2YWx1ZVxuICB9XG4gIEBJbnB1dCgpIHN1YmhlYWRlcjogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIF92aWV3TW9kZTogJ2Jhc2ljJyB8ICdhZHZhbmNlZCcgPSAnYmFzaWMnXG4gIEBJbnB1dCgpXG4gIGdldCB2aWV3TW9kZSgpOiAnYmFzaWMnIHwgJ2FkdmFuY2VkJyB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXdNb2RlXG4gIH1cbiAgc2V0IHZpZXdNb2RlKHZpZXdNb2RlOiAnYmFzaWMnIHwgJ2FkdmFuY2VkJykge1xuICAgIGlmICh0aGlzLnZpZXdNb2RlICE9PSB2aWV3TW9kZSkge1xuICAgICAgdGhpcy5fdmlld01vZGUgPSB2aWV3TW9kZVxuICAgICAgdGhpcy52aWV3TW9kZUNoYW5nZWQ/LmVtaXQodGhpcy52aWV3TW9kZSlcbiAgICAgIHRoaXMuY29tcG9uZW50U3RhdGVDaGFuZ2VkLmVtaXQoe1xuICAgICAgICBhY3RpdmVWaWV3TW9kZTogdGhpcy52aWV3TW9kZSxcbiAgICAgIH0pXG4gICAgICB0aGlzLnVwZGF0ZUhlYWRlckFjdGlvbnMoKVxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmFkZEtleVVwRXZlbnRMaXN0ZW5lcigpKVxuICAgIH1cbiAgfVxuICBASW5wdXQoKSBtYW51YWxCcmVhZGNydW1icyA9IGZhbHNlXG4gIF9hY3Rpb25zOiBBY3Rpb25bXSA9IFtdXG4gIEBJbnB1dCgpXG4gIGdldCBhY3Rpb25zKCkge1xuICAgIHJldHVybiB0aGlzLl9hY3Rpb25zXG4gIH1cbiAgc2V0IGFjdGlvbnModmFsdWUpIHtcbiAgICB0aGlzLl9hY3Rpb25zID0gdmFsdWVcbiAgICB0aGlzLnVwZGF0ZUhlYWRlckFjdGlvbnMoKVxuICB9XG4gIEBJbnB1dCgpIHNlYXJjaENvbmZpZ1Blcm1pc3Npb246IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSBzZWFyY2hCdXR0b25EaXNhYmxlZCA9IGZhbHNlXG4gIEBJbnB1dCgpIHJlc2V0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZVxuICBASW5wdXQoKSBwYWdlTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gZ2V0TG9jYXRpb24oKS5hcHBsaWNhdGlvblBhdGhcblxuICBAT3V0cHV0KCkgc2VhcmNoZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBPdXRwdXQoKSByZXNldHRlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQE91dHB1dCgpIHNlbGVjdGVkU2VhcmNoQ29uZmlnQ2hhbmdlZDogRXZlbnRFbWl0dGVyPFNlYXJjaENvbmZpZ0RhdGEgfCB1bmRlZmluZWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBPdXRwdXQoKSB2aWV3TW9kZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjwnYmFzaWMnIHwgJ2FkdmFuY2VkJz4gPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQE91dHB1dCgpIGNvbXBvbmVudFN0YXRlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPFNlYXJjaEhlYWRlckNvbXBvbmVudFN0YXRlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBAQ29udGVudENoaWxkKCdhZGRpdGlvbmFsVG9vbGJhckNvbnRlbnQnKVxuICBhZGRpdGlvbmFsVG9vbGJhckNvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcblxuICBnZXQgX2FkZGl0aW9uYWxUb29sYmFyQ29udGVudCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5hZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRcbiAgfVxuICBAQ29udGVudENoaWxkKCdhZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRMZWZ0JylcbiAgYWRkaXRpb25hbFRvb2xiYXJDb250ZW50TGVmdDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuXG4gIGdldCBfYWRkaXRpb25hbFRvb2xiYXJDb250ZW50TGVmdCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5hZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRMZWZ0XG4gIH1cblxuICBnZXQgc2VhcmNoQ29uZmlnQ2hhbmdlT2JzZXJ2ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRTZWFyY2hDb25maWdDaGFuZ2VkLm9ic2VydmVkXG4gIH1cblxuICBAQ29udGVudENoaWxkKEZvcm1Hcm91cERpcmVjdGl2ZSkgZm9ybUdyb3VwOiBGb3JtR3JvdXAgfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZHJlbihGb3JtQ29udHJvbE5hbWUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgdmlzaWJsZUZvcm1Db250cm9scyE6IFF1ZXJ5TGlzdDxGb3JtQ29udHJvbE5hbWU+XG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoUGFyYW1ldGVyRmllbGRzJykgc2VhcmNoUGFyYW1ldGVyRmllbGRzOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkXG5cbiAgaGFzQWR2YW5jZWQgPSBmYWxzZVxuXG4gIHNpbXBsZUFkdmFuY2VkQWN0aW9uOiBBY3Rpb24gPSB7XG4gICAgaWQ6ICdzaW1wbGVBZHZhbmNlZEJ1dHRvbicsXG4gICAgYWN0aW9uQ2FsbGJhY2s6ICgpID0+IHRoaXMudG9nZ2xlVmlld01vZGUoKSxcbiAgICBzaG93OiAnYWx3YXlzJyxcbiAgfVxuICBoZWFkZXJBY3Rpb25zOiBBY3Rpb25bXSA9IFtdXG5cbiAgZmllbGRWYWx1ZXMkOiBPYnNlcnZhYmxlPHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9PiB8IHVuZGVmaW5lZCA9IG9mKHt9KVxuICBzZWFyY2hDb25maWdDaGFuZ2VkU2xvdEVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxTZWFyY2hDb25maWdEYXRhIHwgdW5kZWZpbmVkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc2VhcmNoQ29uZmlnQ2hhbmdlZFNsb3RFbWl0dGVyLnN1YnNjcmliZSgoY29uZmlnKSA9PiB7XG4gICAgICB0aGlzLmNvbXBvbmVudFN0YXRlQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgc2VsZWN0ZWRTZWFyY2hDb25maWc6IGNvbmZpZz8ubmFtZSA/PyBudWxsLFxuICAgICAgfSlcbiAgICAgIHRoaXMuc2VsZWN0ZWRTZWFyY2hDb25maWdDaGFuZ2VkLmVtaXQoY29uZmlnKVxuICAgIH0pXG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwKSB7XG4gICAgICB0aGlzLmZpZWxkVmFsdWVzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgoe30pKSxcbiAgICAgICAgdGhpcy52aXNpYmxlRm9ybUNvbnRyb2xzLmNoYW5nZXMucGlwZShzdGFydFdpdGgobnVsbCkpLFxuICAgICAgXSkucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDEwMCksXG4gICAgICAgIG1hcCgoW3ZhbHVlcywgX10pID0+XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXModmFsdWVzID8/IHt9KS5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjLCBba2V5LCB2YWx1ZV0pID0+ICh7XG4gICAgICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAgICAgW2tleV06IHRoaXMuaXNWaXNpYmxlKGtleSkgPyB2YWx1ZSB8fCB1bmRlZmluZWQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHt9XG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYWRkS2V5VXBFdmVudExpc3RlbmVyKClcbiAgfVxuXG4gIHRvZ2dsZVZpZXdNb2RlKCkge1xuICAgIHRoaXMudmlld01vZGUgPSB0aGlzLnZpZXdNb2RlID09PSAnYmFzaWMnID8gJ2FkdmFuY2VkJyA6ICdiYXNpYydcbiAgfVxuXG4gIG9uUmVzZXRDbGlja2VkKCkge1xuICAgIHRoaXMucmVzZXR0ZWQuZW1pdCgpXG4gIH1cblxuICBvblNlYXJjaENsaWNrZWQoKSB7XG4gICAgdGhpcy5zZWFyY2hlZC5lbWl0KClcbiAgfVxuXG4gIHVwZGF0ZUhlYWRlckFjdGlvbnMoKSB7XG4gICAgY29uc3QgaGVhZGVyQWN0aW9uczogQWN0aW9uW10gPSBbXVxuICAgIGlmICh0aGlzLmhhc0FkdmFuY2VkKSB7XG4gICAgICB0aGlzLnNpbXBsZUFkdmFuY2VkQWN0aW9uLmxhYmVsS2V5ID0gdGhpcy52aWV3TW9kZSA9PT0gJ2Jhc2ljJ1xuICAgICAgPyAnT0NYX1NFQVJDSF9IRUFERVIuVE9HR0xFX0JVVFRPTi5BRFZBTkNFRC5URVhUJ1xuICAgICAgOiAnT0NYX1NFQVJDSF9IRUFERVIuVE9HR0xFX0JVVFRPTi5TSU1QTEUuVEVYVCcsXG4gICAgICB0aGlzLnNpbXBsZUFkdmFuY2VkQWN0aW9uLnRpdGxlS2V5ID0gdGhpcy52aWV3TW9kZSA9PT0gJ2Jhc2ljJ1xuICAgICAgPyAnT0NYX1NFQVJDSF9IRUFERVIuVE9HR0xFX0JVVFRPTi5BRFZBTkNFRC5ERVRBSUwnXG4gICAgICA6ICdPQ1hfU0VBUkNIX0hFQURFUi5UT0dHTEVfQlVUVE9OLlNJTVBMRS5ERVRBSUwnLFxuICAgICAgXG4gICAgICBoZWFkZXJBY3Rpb25zLnB1c2godGhpcy5zaW1wbGVBZHZhbmNlZEFjdGlvbilcbiAgICB9XG4gICAgdGhpcy5oZWFkZXJBY3Rpb25zID0gaGVhZGVyQWN0aW9ucy5jb25jYXQodGhpcy5hY3Rpb25zKVxuICB9XG5cbiAgYWRkS2V5VXBFdmVudExpc3RlbmVyKCkge1xuICAgIGNvbnN0IGlucHV0RWxlbWVudHMgPSB0aGlzLnNlYXJjaFBhcmFtZXRlckZpZWxkcz8ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dCcpXG4gICAgaW5wdXRFbGVtZW50cy5mb3JFYWNoKChpbnB1dEVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgaWYgKCFpbnB1dEVsZW1lbnQubGlzdGVuZXJBZGRlZCkge1xuICAgICAgICBpbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCAoZXZlbnQ6IGFueSkgPT4gdGhpcy5vblNlYXJjaEtleXVwKGV2ZW50KSlcbiAgICAgICAgaW5wdXRFbGVtZW50Lmxpc3RlbmVyQWRkZWQgPSB0cnVlXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIG9uU2VhcmNoS2V5dXAoZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudC5jb2RlID09PSAnRW50ZXInKSB7XG4gICAgICB0aGlzLm9uU2VhcmNoQ2xpY2tlZCgpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1Zpc2libGUoY29udHJvbDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZUZvcm1Db250cm9scy5zb21lKFxuICAgICAgKGZvcm1Db250cm9sKSA9PiBmb3JtQ29udHJvbC5uYW1lICE9PSBudWxsICYmIFN0cmluZyhmb3JtQ29udHJvbC5uYW1lKSA9PT0gY29udHJvbFxuICAgIClcbiAgfVxufVxuIiwiPG9jeC1wYWdlLWhlYWRlclxuICBbaGVhZGVyXT1cImhlYWRlciB8fCAoJ09DWF9TRUFSQ0hfSEVBREVSLkhFQURFUicgfCB0cmFuc2xhdGUpXCJcbiAgW3N1YmhlYWRlcl09XCJzdWJoZWFkZXJcIlxuICBbbWFudWFsQnJlYWRjcnVtYnNdPVwibWFudWFsQnJlYWRjcnVtYnNcIlxuICBbYWN0aW9uc109XCJoZWFkZXJBY3Rpb25zXCJcbj5cbiAgPG5nLXRlbXBsYXRlICNhZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRMZWZ0PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWFyY2hDb25maWdDaGFuZ2VPYnNlcnZlZCAmJiBwYWdlTmFtZVwiPlxuICAgICAgPG9jeC1zbG90XG4gICAgICAgICpvY3hJZlBlcm1pc3Npb249XCJzZWFyY2hDb25maWdQZXJtaXNzaW9uXCJcbiAgICAgICAgbmFtZT1cIm9uZWN4LXNlYXJjaC1jb25maWdcIlxuICAgICAgICBbaW5wdXRzXT1cInsgcGFnZU5hbWU6IHBhZ2VOYW1lLCBjdXJyZW50RmllbGRWYWx1ZXM6IGZpZWxkVmFsdWVzJCB8IGFzeW5jLCB2aWV3TW9kZTogdmlld01vZGUgfVwiXG4gICAgICAgIFtvdXRwdXRzXT1cInsgc2VhcmNoQ29uZmlnU2VsZWN0ZWQ6IHNlYXJjaENvbmZpZ0NoYW5nZWRTbG90RW1pdHRlciB9XCJcbiAgICAgID5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNza2VsZXRvbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxuICAgICAgICAgICAgPHAtc2tlbGV0b24gd2lkdGg9XCIxOHJlbVwiIGhlaWdodD1cIjNyZW1cIj48L3Atc2tlbGV0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L29jeC1zbG90PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiX2FkZGl0aW9uYWxUb29sYmFyQ29udGVudExlZnRcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2FkZGl0aW9uYWxUb29sYmFyQ29udGVudExlZnRcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNhZGRpdGlvbmFsVG9vbGJhckNvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9hZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJfYWRkaXRpb25hbFRvb2xiYXJDb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IHJvdy1nYXAtMyBjb2x1bW4tZ2FwLTYgZmxleC13cmFwIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgIDxkaXY+XG4gICAgICA8ZGl2ICNzZWFyY2hQYXJhbWV0ZXJGaWVsZHM+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBnYXAtMlwiPlxuICAgICAgPHAtYnV0dG9uXG4gICAgICAgIGlkPVwicmVzZXRCdXR0b25cIlxuICAgICAgICAqbmdJZj1cInJlc2V0dGVkLm9ic2VydmVkXCJcbiAgICAgICAgKG9uQ2xpY2spPVwib25SZXNldENsaWNrZWQoKVwiXG4gICAgICAgIGxhYmVsPVwie3sgJ09DWF9TRUFSQ0hfSEVBREVSLlJFU0VUX0JVVFRPTi5URVhUJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIGljb249XCJwaSBwaS1lcmFzZXJcIlxuICAgICAgICBwVG9vbHRpcD1cInt7ICdPQ1hfU0VBUkNIX0hFQURFUi5SRVNFVF9CVVRUT04uREVUQUlMJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgIHRvb2x0aXBFdmVudD1cImhvdmVyXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInJlc2V0QnV0dG9uRGlzYWJsZWRcIlxuICAgICAgICBbYXJpYUxhYmVsXT1cIidPQ1hfU0VBUkNIX0hFQURFUi5SRVNFVF9CVVRUT04uQVJJQV9MQUJFTCcgfCB0cmFuc2xhdGVcIlxuICAgICAgPlxuICAgICAgPC9wLWJ1dHRvbj5cblxuICAgICAgPHAtYnV0dG9uXG4gICAgICAgIGlkPVwic2VhcmNoQnV0dG9uXCJcbiAgICAgICAgKG9uQ2xpY2spPVwib25TZWFyY2hDbGlja2VkKClcIlxuICAgICAgICBsYWJlbD1cInt7ICdPQ1hfU0VBUkNIX0hFQURFUi5TRUFSQ0hfQlVUVE9OLlRFWFQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgaWNvbj1cInBpIHBpLXNlYXJjaFwiXG4gICAgICAgIHBUb29sdGlwPVwie3sgJ09DWF9TRUFSQ0hfSEVBREVSLlNFQVJDSF9CVVRUT04uREVUQUlMJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgIHRvb2x0aXBFdmVudD1cImhvdmVyXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInNlYXJjaEJ1dHRvbkRpc2FibGVkIHx8IGZvcm1Hcm91cD8uaW52YWxpZFwiXG4gICAgICAgIFthcmlhTGFiZWxdPVwiJ09DWF9TRUFSQ0hfSEVBREVSLlNFQVJDSF9CVVRUT04uQVJJQV9MQUJFTCcgfCB0cmFuc2xhdGVcIlxuICAgICAgPlxuICAgICAgPC9wLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L29jeC1wYWdlLWhlYWRlcj5cbiJdfQ==
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3NlYXJjaC1oZWFkZXIvc2VhcmNoLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3NlYXJjaC1oZWFkZXIvc2VhcmNoLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBRWYsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUVULFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQTtBQUV0QixPQUFPLEVBQUUsZUFBZSxFQUFhLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDL0UsT0FBTyxFQUFjLGFBQWEsRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTs7Ozs7Ozs7Ozs7QUFjdkY7Ozs7O0dBS0c7QUFNSCxNQUFNLE9BQU8scUJBQXFCO0lBR2hDOztPQUVHO0lBQ0gsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFBO0lBQ3BCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFhO1FBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFBO0lBQ3JCLENBQUM7SUFHRCxJQUNJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUE7SUFDdkIs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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi4vcGFnZS1oZWFkZXIvcGFnZS1oZWFkZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgRm9ybUNvbnRyb2xOYW1lLCBGb3JtR3JvdXAsIEZvcm1Hcm91cERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgZGVib3VuY2VUaW1lLCBtYXAsIG9mLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZ2V0TG9jYXRpb24gfSBmcm9tICdAb25lY3gvYWNjZWxlcmF0b3InXG5pbXBvcnQgeyBDT05GSUdfS0VZLCBDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJ0BvbmVjeC9hbmd1bGFyLWludGVncmF0aW9uLWludGVyZmFjZSdcblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hIZWFkZXJDb21wb25lbnRTdGF0ZSB7XG4gIGFjdGl2ZVZpZXdNb2RlPzogJ2Jhc2ljJyB8ICdhZHZhbmNlZCdcbiAgc2VsZWN0ZWRTZWFyY2hDb25maWc/OiBzdHJpbmcgfCBudWxsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoQ29uZmlnRGF0YSB7XG4gIG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBmaWVsZFZhbHVlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfVxuICBkaXNwbGF5ZWRDb2x1bW5zSWRzOiBzdHJpbmdbXVxuICB2aWV3TW9kZTogJ2Jhc2ljJyB8ICdhZHZhbmNlZCdcbn1cblxuLyoqXG4gKiBUbyB0cmlnZ2VyIHRoZSBzZWFyY2ggd2hlbiBFbnRlciBrZXkgaXMgcHJlc3NlZCBpbnNpZGUgYSBzZWFyY2ggcGFyYW1ldGVyIGZpZWxkLFxuICogYW4gRXZlbnRMaXN0ZW5lciBmb3Iga2V5dXAgZW50ZXIgZXZlbnQgaXMgYWRkZWQgZm9yIEhUTUwgZWxlbWVudHMgd2hpY2ggaGF2ZSBhbiBpbnB1dC5cbiAqIFBsZWFzZSBhZGQgdGhlIEV2ZW50TGlzdGVuZXIgeW91cnNlbGYgbWFudWFsbHksIGlmIHlvdSB3YW50IHRvIGhhdmUgdGhhdCBmdW5jdGlvbmFsaXR5IGZvciBzb21lIG90aGVyIGVsZW1lbnRzXG4gKiB3aGljaCBkbyBub3QgaGF2ZSBhbiBpbnB1dCBlbGVtZW50LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvY3gtc2VhcmNoLWhlYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGhlYWRlciA9ICcnXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVwbGFjZWQgYnkgaGVhZGVyXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgaGVhZGxpbmUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5oZWFkZXJcbiAgfVxuICBzZXQgaGVhZGxpbmUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuaGVhZGVyID0gdmFsdWVcbiAgfVxuICBASW5wdXQoKSBzdWJoZWFkZXI6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBfdmlld01vZGU6ICdiYXNpYycgfCAnYWR2YW5jZWQnID0gJ2Jhc2ljJ1xuICBASW5wdXQoKVxuICBnZXQgdmlld01vZGUoKTogJ2Jhc2ljJyB8ICdhZHZhbmNlZCcge1xuICAgIHJldHVybiB0aGlzLl92aWV3TW9kZVxuICB9XG4gIHNldCB2aWV3TW9kZSh2aWV3TW9kZTogJ2Jhc2ljJyB8ICdhZHZhbmNlZCcpIHtcbiAgICBpZiAodGhpcy52aWV3TW9kZSAhPT0gdmlld01vZGUpIHtcbiAgICAgIHRoaXMuX3ZpZXdNb2RlID0gdmlld01vZGVcbiAgICAgIHRoaXMudmlld01vZGVDaGFuZ2VkPy5lbWl0KHRoaXMudmlld01vZGUpXG4gICAgICB0aGlzLmNvbXBvbmVudFN0YXRlQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgYWN0aXZlVmlld01vZGU6IHRoaXMudmlld01vZGUsXG4gICAgICB9KVxuICAgICAgdGhpcy51cGRhdGVIZWFkZXJBY3Rpb25zKClcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5hZGRLZXlVcEV2ZW50TGlzdGVuZXIoKSlcbiAgICB9XG4gIH1cbiAgQElucHV0KCkgbWFudWFsQnJlYWRjcnVtYnMgPSBmYWxzZVxuICBfYWN0aW9uczogQWN0aW9uW10gPSBbXVxuICBASW5wdXQoKVxuICBnZXQgYWN0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9uc1xuICB9XG4gIHNldCBhY3Rpb25zKHZhbHVlKSB7XG4gICAgdGhpcy5fYWN0aW9ucyA9IHZhbHVlXG4gICAgdGhpcy51cGRhdGVIZWFkZXJBY3Rpb25zKClcbiAgfVxuICBASW5wdXQoKSBzZWFyY2hDb25maWdQZXJtaXNzaW9uOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSBzZWFyY2hCdXR0b25EaXNhYmxlZCA9IGZhbHNlXG4gIEBJbnB1dCgpIHJlc2V0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZVxuICBASW5wdXQoKSBwYWdlTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gZ2V0TG9jYXRpb24oKS5hcHBsaWNhdGlvblBhdGhcblxuICBAT3V0cHV0KCkgc2VhcmNoZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBPdXRwdXQoKSByZXNldHRlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQE91dHB1dCgpIHNlbGVjdGVkU2VhcmNoQ29uZmlnQ2hhbmdlZDogRXZlbnRFbWl0dGVyPFNlYXJjaENvbmZpZ0RhdGEgfCB1bmRlZmluZWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBPdXRwdXQoKSB2aWV3TW9kZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjwnYmFzaWMnIHwgJ2FkdmFuY2VkJz4gPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQE91dHB1dCgpIGNvbXBvbmVudFN0YXRlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPFNlYXJjaEhlYWRlckNvbXBvbmVudFN0YXRlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBAQ29udGVudENoaWxkKCdhZGRpdGlvbmFsVG9vbGJhckNvbnRlbnQnKVxuICBhZGRpdGlvbmFsVG9vbGJhckNvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcblxuICBnZXQgX2FkZGl0aW9uYWxUb29sYmFyQ29udGVudCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5hZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRcbiAgfVxuICBAQ29udGVudENoaWxkKCdhZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRMZWZ0JylcbiAgYWRkaXRpb25hbFRvb2xiYXJDb250ZW50TGVmdDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuXG4gIGdldCBfYWRkaXRpb25hbFRvb2xiYXJDb250ZW50TGVmdCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5hZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRMZWZ0XG4gIH1cblxuICBnZXQgc2VhcmNoQ29uZmlnQ2hhbmdlT2JzZXJ2ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRTZWFyY2hDb25maWdDaGFuZ2VkLm9ic2VydmVkXG4gIH1cblxuICBAQ29udGVudENoaWxkKEZvcm1Hcm91cERpcmVjdGl2ZSkgZm9ybUdyb3VwOiBGb3JtR3JvdXAgfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZHJlbihGb3JtQ29udHJvbE5hbWUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgdmlzaWJsZUZvcm1Db250cm9scyE6IFF1ZXJ5TGlzdDxGb3JtQ29udHJvbE5hbWU+XG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoUGFyYW1ldGVyRmllbGRzJykgc2VhcmNoUGFyYW1ldGVyRmllbGRzOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkXG5cbiAgaGFzQWR2YW5jZWQgPSBmYWxzZVxuXG4gIHNpbXBsZUFkdmFuY2VkQWN0aW9uOiBBY3Rpb24gPSB7XG4gICAgaWQ6ICdzaW1wbGVBZHZhbmNlZEJ1dHRvbicsXG4gICAgYWN0aW9uQ2FsbGJhY2s6ICgpID0+IHRoaXMudG9nZ2xlVmlld01vZGUoKSxcbiAgICBzaG93OiAnYWx3YXlzJyxcbiAgfVxuICBoZWFkZXJBY3Rpb25zOiBBY3Rpb25bXSA9IFtdXG4gIHNlYXJjaEJ1dHRvbnNSZXZlcnNlZCA9IGZhbHNlXG4gIGZpZWxkVmFsdWVzJDogT2JzZXJ2YWJsZTx7IFtrZXk6IHN0cmluZ106IHVua25vd24gfT4gfCB1bmRlZmluZWQgPSBvZih7fSlcbiAgc2VhcmNoQ29uZmlnQ2hhbmdlZFNsb3RFbWl0dGVyOiBFdmVudEVtaXR0ZXI8U2VhcmNoQ29uZmlnRGF0YSB8IHVuZGVmaW5lZD4gPSBuZXcgRXZlbnRFbWl0dGVyKClcblxuICBjb25zdHJ1Y3Rvcihjb25maWd1cmF0aW9uU2VydmljZTogQ29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICB0aGlzLnNlYXJjaENvbmZpZ0NoYW5nZWRTbG90RW1pdHRlci5zdWJzY3JpYmUoKGNvbmZpZykgPT4ge1xuICAgICAgdGhpcy5jb21wb25lbnRTdGF0ZUNoYW5nZWQuZW1pdCh7XG4gICAgICAgIHNlbGVjdGVkU2VhcmNoQ29uZmlnOiBjb25maWc/Lm5hbWUgPz8gbnVsbCxcbiAgICAgIH0pXG4gICAgICB0aGlzLnNlbGVjdGVkU2VhcmNoQ29uZmlnQ2hhbmdlZC5lbWl0KGNvbmZpZylcbiAgICB9KVxuICAgIHRoaXMuc2VhcmNoQnV0dG9uc1JldmVyc2VkID1cbiAgICAgIGNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldFByb3BlcnR5KENPTkZJR19LRVkuT05FQ1hfUE9SVEFMX1NFQVJDSF9CVVRUT05TX1JFVkVSU0VEKSA9PT0gJ3RydWUnXG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwKSB7XG4gICAgICB0aGlzLmZpZWxkVmFsdWVzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgoe30pKSxcbiAgICAgICAgdGhpcy52aXNpYmxlRm9ybUNvbnRyb2xzLmNoYW5nZXMucGlwZShzdGFydFdpdGgobnVsbCkpLFxuICAgICAgXSkucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDEwMCksXG4gICAgICAgIG1hcCgoW3ZhbHVlcywgX10pID0+XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXModmFsdWVzID8/IHt9KS5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjLCBba2V5LCB2YWx1ZV0pID0+ICh7XG4gICAgICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAgICAgW2tleV06IHRoaXMuaXNWaXNpYmxlKGtleSkgPyB2YWx1ZSB8fCB1bmRlZmluZWQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHt9XG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYWRkS2V5VXBFdmVudExpc3RlbmVyKClcbiAgfVxuXG4gIHRvZ2dsZVZpZXdNb2RlKCkge1xuICAgIHRoaXMudmlld01vZGUgPSB0aGlzLnZpZXdNb2RlID09PSAnYmFzaWMnID8gJ2FkdmFuY2VkJyA6ICdiYXNpYydcbiAgfVxuXG4gIG9uUmVzZXRDbGlja2VkKCkge1xuICAgIHRoaXMucmVzZXR0ZWQuZW1pdCgpXG4gIH1cblxuICBvblNlYXJjaENsaWNrZWQoKSB7XG4gICAgdGhpcy5zZWFyY2hlZC5lbWl0KClcbiAgfVxuXG4gIHVwZGF0ZUhlYWRlckFjdGlvbnMoKSB7XG4gICAgY29uc3QgaGVhZGVyQWN0aW9uczogQWN0aW9uW10gPSBbXVxuICAgIGlmICh0aGlzLmhhc0FkdmFuY2VkKSB7XG4gICAgICB0aGlzLnNpbXBsZUFkdmFuY2VkQWN0aW9uLmxhYmVsS2V5ID0gdGhpcy52aWV3TW9kZSA9PT0gJ2Jhc2ljJ1xuICAgICAgPyAnT0NYX1NFQVJDSF9IRUFERVIuVE9HR0xFX0JVVFRPTi5BRFZBTkNFRC5URVhUJ1xuICAgICAgOiAnT0NYX1NFQVJDSF9IRUFERVIuVE9HR0xFX0JVVFRPTi5TSU1QTEUuVEVYVCcsXG4gICAgICB0aGlzLnNpbXBsZUFkdmFuY2VkQWN0aW9uLnRpdGxlS2V5ID0gdGhpcy52aWV3TW9kZSA9PT0gJ2Jhc2ljJ1xuICAgICAgPyAnT0NYX1NFQVJDSF9IRUFERVIuVE9HR0xFX0JVVFRPTi5BRFZBTkNFRC5ERVRBSUwnXG4gICAgICA6ICdPQ1hfU0VBUkNIX0hFQURFUi5UT0dHTEVfQlVUVE9OLlNJTVBMRS5ERVRBSUwnLFxuICAgICAgXG4gICAgICBoZWFkZXJBY3Rpb25zLnB1c2godGhpcy5zaW1wbGVBZHZhbmNlZEFjdGlvbilcbiAgICB9XG4gICAgdGhpcy5oZWFkZXJBY3Rpb25zID0gaGVhZGVyQWN0aW9ucy5jb25jYXQodGhpcy5hY3Rpb25zKVxuICB9XG5cbiAgYWRkS2V5VXBFdmVudExpc3RlbmVyKCkge1xuICAgIGNvbnN0IGlucHV0RWxlbWVudHMgPSB0aGlzLnNlYXJjaFBhcmFtZXRlckZpZWxkcz8ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dCcpXG4gICAgaW5wdXRFbGVtZW50cy5mb3JFYWNoKChpbnB1dEVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgaWYgKCFpbnB1dEVsZW1lbnQubGlzdGVuZXJBZGRlZCkge1xuICAgICAgICBpbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCAoZXZlbnQ6IGFueSkgPT4gdGhpcy5vblNlYXJjaEtleXVwKGV2ZW50KSlcbiAgICAgICAgaW5wdXRFbGVtZW50Lmxpc3RlbmVyQWRkZWQgPSB0cnVlXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIG9uU2VhcmNoS2V5dXAoZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudC5jb2RlID09PSAnRW50ZXInKSB7XG4gICAgICB0aGlzLm9uU2VhcmNoQ2xpY2tlZCgpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1Zpc2libGUoY29udHJvbDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZUZvcm1Db250cm9scy5zb21lKFxuICAgICAgKGZvcm1Db250cm9sKSA9PiBmb3JtQ29udHJvbC5uYW1lICE9PSBudWxsICYmIFN0cmluZyhmb3JtQ29udHJvbC5uYW1lKSA9PT0gY29udHJvbFxuICAgIClcbiAgfVxufVxuIiwiPG9jeC1wYWdlLWhlYWRlclxuICBbaGVhZGVyXT1cImhlYWRlciB8fCAoJ09DWF9TRUFSQ0hfSEVBREVSLkhFQURFUicgfCB0cmFuc2xhdGUpXCJcbiAgW3N1YmhlYWRlcl09XCJzdWJoZWFkZXJcIlxuICBbbWFudWFsQnJlYWRjcnVtYnNdPVwibWFudWFsQnJlYWRjcnVtYnNcIlxuICBbYWN0aW9uc109XCJoZWFkZXJBY3Rpb25zXCJcbj5cbiAgPG5nLXRlbXBsYXRlICNhZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRMZWZ0PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWFyY2hDb25maWdDaGFuZ2VPYnNlcnZlZCAmJiBwYWdlTmFtZVwiPlxuICAgICAgPG9jeC1zbG90XG4gICAgICAgICpvY3hJZlBlcm1pc3Npb249XCJzZWFyY2hDb25maWdQZXJtaXNzaW9uXCJcbiAgICAgICAgbmFtZT1cIm9uZWN4LXNlYXJjaC1jb25maWdcIlxuICAgICAgICBbaW5wdXRzXT1cInsgcGFnZU5hbWU6IHBhZ2VOYW1lLCBjdXJyZW50RmllbGRWYWx1ZXM6IGZpZWxkVmFsdWVzJCB8IGFzeW5jLCB2aWV3TW9kZTogdmlld01vZGUgfVwiXG4gICAgICAgIFtvdXRwdXRzXT1cInsgc2VhcmNoQ29uZmlnU2VsZWN0ZWQ6IHNlYXJjaENvbmZpZ0NoYW5nZWRTbG90RW1pdHRlciB9XCJcbiAgICAgID5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNza2VsZXRvbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxuICAgICAgICAgICAgPHAtc2tlbGV0b24gd2lkdGg9XCIxOHJlbVwiIGhlaWdodD1cIjNyZW1cIj48L3Atc2tlbGV0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L29jeC1zbG90PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiX2FkZGl0aW9uYWxUb29sYmFyQ29udGVudExlZnRcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2FkZGl0aW9uYWxUb29sYmFyQ29udGVudExlZnRcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNhZGRpdGlvbmFsVG9vbGJhckNvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9hZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJfYWRkaXRpb25hbFRvb2xiYXJDb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IHJvdy1nYXAtMyBjb2x1bW4tZ2FwLTYgZmxleC13cmFwIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgIDxkaXY+XG4gICAgICA8ZGl2ICNzZWFyY2hQYXJhbWV0ZXJGaWVsZHM+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBnYXAtMlwiIFtuZ0NsYXNzXT1cInNlYXJjaEJ1dHRvbnNSZXZlcnNlZCA/ICdmbGV4LXJvdy1yZXZlcnNlJyA6ICdmbGV4LXJvdydcIj5cbiAgICAgIDxwLWJ1dHRvblxuICAgICAgICBpZD1cInJlc2V0QnV0dG9uXCJcbiAgICAgICAgKm5nSWY9XCJyZXNldHRlZC5vYnNlcnZlZFwiXG4gICAgICAgIChvbkNsaWNrKT1cIm9uUmVzZXRDbGlja2VkKClcIlxuICAgICAgICBsYWJlbD1cInt7ICdPQ1hfU0VBUkNIX0hFQURFUi5SRVNFVF9CVVRUT04uVEVYVCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICBpY29uPVwicGkgcGktZXJhc2VyXCJcbiAgICAgICAgcFRvb2x0aXA9XCJ7eyAnT0NYX1NFQVJDSF9IRUFERVIuUkVTRVRfQlVUVE9OLkRFVEFJTCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICB0b29sdGlwRXZlbnQ9XCJob3ZlclwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJyZXNldEJ1dHRvbkRpc2FibGVkXCJcbiAgICAgICAgW2FyaWFMYWJlbF09XCInT0NYX1NFQVJDSF9IRUFERVIuUkVTRVRfQlVUVE9OLkFSSUFfTEFCRUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgIDwvcC1idXR0b24+XG5cbiAgICAgIDxwLWJ1dHRvblxuICAgICAgICBpZD1cInNlYXJjaEJ1dHRvblwiXG4gICAgICAgIChvbkNsaWNrKT1cIm9uU2VhcmNoQ2xpY2tlZCgpXCJcbiAgICAgICAgbGFiZWw9XCJ7eyAnT0NYX1NFQVJDSF9IRUFERVIuU0VBUkNIX0JVVFRPTi5URVhUJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIGljb249XCJwaSBwaS1zZWFyY2hcIlxuICAgICAgICBwVG9vbHRpcD1cInt7ICdPQ1hfU0VBUkNIX0hFQURFUi5TRUFSQ0hfQlVUVE9OLkRFVEFJTCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICB0b29sdGlwRXZlbnQ9XCJob3ZlclwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJzZWFyY2hCdXR0b25EaXNhYmxlZCB8fCBmb3JtR3JvdXA/LmludmFsaWRcIlxuICAgICAgICBbYXJpYUxhYmVsXT1cIidPQ1hfU0VBUkNIX0hFQURFUi5TRUFSQ0hfQlVUVE9OLkFSSUFfTEFCRUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgIDwvcC1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9vY3gtcGFnZS1oZWFkZXI+XG4iXX0=
|