@sachin9822/reports-lib 0.0.214 → 0.0.216
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/esm2020/lib/components/accounting-report/accounting-report.component.mjs +19 -1
- package/esm2020/lib/components/branch-activity-send-report/branch-activity-send-report.component.mjs +21 -1
- package/esm2020/lib/components/branch-activity-send-summary-report/branch-activity-send-summary-report.component.mjs +19 -1
- package/esm2020/lib/components/cancellation-transaction-report/cancellation-transaction-report.component.mjs +21 -1
- package/esm2020/lib/components/transaction-enquiry-report/transaction-enquiry-report.component.mjs +21 -3
- package/esm2020/lib/components/transaction-monitoring-report/transaction-monitoring-report.component.mjs +26 -5
- package/esm2020/lib/components/trial-balance-accounts-report/trial-balance-accounts-report.component.mjs +23 -50
- package/esm2020/lib/models/trial-balance-accounts-report/trial-balance-accounts.models.mjs +1 -1
- package/esm2020/lib/services/report.service.mjs +4 -4
- package/esm2020/lib/shared/search-filter/search-filter.component.mjs +31 -18
- package/fesm2015/sachin9822-reports-lib.mjs +298 -76
- package/fesm2015/sachin9822-reports-lib.mjs.map +1 -1
- package/fesm2020/sachin9822-reports-lib.mjs +176 -75
- package/fesm2020/sachin9822-reports-lib.mjs.map +1 -1
- package/lib/components/cancellation-transaction-report/cancellation-transaction-report.component.d.ts +13 -0
- package/lib/components/transaction-monitoring-report/transaction-monitoring-report.component.d.ts +1 -0
- package/lib/components/trial-balance-accounts-report/trial-balance-accounts-report.component.d.ts +2 -3
- package/lib/models/trial-balance-accounts-report/trial-balance-accounts.models.d.ts +0 -1
- package/lib/services/report.service.d.ts +1 -1
- package/lib/shared/search-filter/search-filter.component.d.ts +1 -1
- package/package.json +1 -1
package/esm2020/lib/components/transaction-enquiry-report/transaction-enquiry-report.component.mjs
CHANGED
|
@@ -55,11 +55,29 @@ export class TransactionEnquiryComponent {
|
|
|
55
55
|
{ headerName: 'Send Client', field: 'sendAgent', flex: 1, minWidth: 120, tooltipField: 'sendAgent' },
|
|
56
56
|
{ headerName: 'Send Client Branch', field: 'sendAgtBranch', flex: 1, minWidth: 120, tooltipField: 'sendAgtBranch' },
|
|
57
57
|
{ headerName: 'Receive Client', field: 'recvAgent', flex: 1, minWidth: 120, tooltipField: 'recvAgent' },
|
|
58
|
-
{ headerName: 'Receive Client Branch', field: 'rcvAgtBranch', flex: 1, minWidth: 120, tooltipField: 'rcvAgtBranch' },
|
|
59
58
|
{ headerName: 'Sender Name', field: 'sendName', flex: 1, minWidth: 120, tooltipField: 'sendName' },
|
|
59
|
+
{ headerName: 'Is Sender Corporate', field: 'senderType', flex: 1, minWidth: 80,
|
|
60
|
+
valueFormatter: (params) => { if (!params.value)
|
|
61
|
+
return ''; const value = params.value.toUpperCase(); if (value === 'CORPORATE')
|
|
62
|
+
return 'YES'; if (value === 'INDIVIDUAL')
|
|
63
|
+
return 'NO'; return ''; },
|
|
64
|
+
tooltipValueGetter: (params) => { if (!params.value)
|
|
65
|
+
return ''; const value = params.value.toUpperCase(); if (value === 'CORPORATE')
|
|
66
|
+
return 'YES'; if (value === 'INDIVIDUAL')
|
|
67
|
+
return 'NO'; return ''; } },
|
|
68
|
+
{ headerName: 'Receive Client Branch', field: 'rcvAgtBranch', flex: 1, minWidth: 120, tooltipField: 'rcvAgtBranch' },
|
|
60
69
|
{ headerName: 'Sender ID Type', field: 'sendIdType', flex: 1, minWidth: 90, tooltipField: 'sendIdType' },
|
|
61
|
-
{ headerName: '
|
|
70
|
+
{ headerName: 'Is Beneficiary Corporate', field: 'beneficiaryType', flex: 1, minWidth: 80,
|
|
71
|
+
valueFormatter: (params) => { if (!params.value)
|
|
72
|
+
return ''; const value = params.value.toUpperCase(); if (value === 'CORPORATE')
|
|
73
|
+
return 'YES'; if (value === 'INDIVIDUAL')
|
|
74
|
+
return 'NO'; return ''; },
|
|
75
|
+
tooltipValueGetter: (params) => { if (!params.value)
|
|
76
|
+
return ''; const value = params.value.toUpperCase(); if (value === 'CORPORATE')
|
|
77
|
+
return 'YES'; if (value === 'INDIVIDUAL')
|
|
78
|
+
return 'NO'; return ''; } },
|
|
62
79
|
{ headerName: 'Benf. Name', field: 'benName', flex: 1, minWidth: 100, tooltipField: 'benName' },
|
|
80
|
+
{ headerName: 'Sender ID Number', field: 'sendIdNumber', flex: 1, minWidth: 85, tooltipField: 'sendIdNumber' },
|
|
63
81
|
{ headerName: 'Receive Currency', field: 'payOutCurrency', flex: 1, minWidth: 80, tooltipField: 'payOutCurrency' },
|
|
64
82
|
{ headerName: 'Receive Amount', field: 'payOutAmount', flex: 1, minWidth: 100, cellClass: 'ag-right-aligned-cell ', tooltipField: 'payOutAmount' },
|
|
65
83
|
{ headerName: 'Send Currency', field: 'payInCurrency', flex: 1, minWidth: 70, tooltipField: 'payInCurrency' },
|
|
@@ -263,4 +281,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
263
281
|
type: ViewChild,
|
|
264
282
|
args: ['agGrid']
|
|
265
283
|
}] } });
|
|
266
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tZW5xdWlyeS1yZXBvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmVwb3J0cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL3RyYW5zYWN0aW9uLWVucXVpcnktcmVwb3J0L3RyYW5zYWN0aW9uLWVucXVpcnktcmVwb3J0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcG9ydHMtbGliL3NyYy9saWIvY29tcG9uZW50cy90cmFuc2FjdGlvbi1lbnF1aXJ5LXJlcG9ydC90cmFuc2FjdGlvbi1lbnF1aXJ5LXJlcG9ydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFtQixxQkFBcUIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBRzNILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFRN0MsTUFBTSxPQUFPLDJCQUEyQjtJQXlGdEMsWUFDVSxhQUE0QixFQUM1QixhQUE0QixFQUM1QixNQUFxQjtRQUZyQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBekZ2QixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUV2QyxlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLHVCQUFrQixHQUFXLEVBQUUsQ0FBQztRQUNoQyx5QkFBb0IsR0FBVyxPQUFPLENBQUM7UUFDdkMsb0JBQWUsR0FBUyxJQUFJLElB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Q0FBQztTQUNqRCxDQUFDLENBQUM7UUFFSCxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3JHLGNBQWMsRUFBRSxFQUFFO1NBQ25CLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUseUJBQXlCLENBQUMsQ0FBQztJQUMxSCxDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQWdCO1FBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO0lBQzdCLENBQUM7O3dIQTdSVSwyQkFBMkI7NEdBQTNCLDJCQUEyQixpS0NqQnhDLDJ2REFnRE07MkZEL0JPLDJCQUEyQjtrQkFOdkMsU0FBUzsrQkFDRSx5QkFBeUI7NEpBTWQsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBZ0dyaWRBbmd1bGFyIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcclxuaW1wb3J0IHsgR3JpZE9wdGlvbnMsIENvbERlZiwgR3JpZFJlYWR5RXZlbnQsIEdyaWRBcGksIENvbHVtbkFwaSB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsIGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBSZXBvcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVwb3J0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2FjdGlvbkRhdGEsIENvbXBvbmVudExvYWRpbmdTdGF0ZSB9IGZyb20gJy4uLy4uL21vZGVscy90cmFuc2FjdGlvbi1lbnF1aXJ5LXJlcG9ydC90cmFuc2FjdGlvbi1lbnF1aXJ5Lm1vZGVsJztcclxuaW1wb3J0IHsgRXhwb3J0U2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9leHBvcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IGZvcm1hdERhdGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdHJhbnNhY3Rpb24tZW5xdWlyeScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyYW5zYWN0aW9uLWVucXVpcnktcmVwb3J0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90cmFuc2FjdGlvbi1lbnF1aXJ5LXJlcG9ydC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25FbnF1aXJ5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdhZ0dyaWQnKSBhZ0dyaWQhOiBBZ0dyaWRBbmd1bGFyO1xyXG5cclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBncmlkQXBpITogR3JpZEFwaTtcclxuICBzZWFyY2hUZXh0OiBzdHJpbmcgPSAnJztcclxuICBwYWdpbmF0aW9uUGFnZVNpemU6IG51bWJlciA9IDE1O1xyXG4gIHNlbGVjdGVkRXhwb3J0T3B0aW9uOiBzdHJpbmcgPSAnZXhjZWwnO1xyXG4gIGN1cnJlbnREYXRlVGltZTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcblxyXG4gIGV4cG9ydEZvcm1hdHMgPSBbeyBmb3JtYXROYW1lOiBcIkV4Y2VsXCIsIGNvZGU6ICdleGNlbCcgfSwgeyBmb3JtYXROYW1lOiBcIlBERlwiLCBjb2RlOiAncGRmJyB9LCB7IGZvcm1hdE5hbWU6IFwiQ1NWXCIsIGNvZGU6ICdjc3YnIH1dXHJcblxyXG4gIGxvYWRpbmdTdGF0ZTogQ29tcG9uZW50TG9hZGluZ1N0YXRlID0gQ29tcG9uZW50TG9hZGluZ1N0YXRlLkNvbXBsZXRlO1xyXG4gIENvbXBvbmVudExvYWRpbmdTdGF0ZSA9IENvbXBvbmVudExvYWRpbmdTdGF0ZTtcclxuICBpc1NlYXJjaGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGhhc1NlYXJjaGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgX2Vycm9yTWVzc2FnZTogc3RyaW5nID0gJyc7XHJcbiAgZ3JpZENvbHVtbkFwaTogQ29sdW1uQXBpO1xyXG5cclxuICB0b2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2FjY2Vzc190b2tlbicpO1xyXG4gIGFwcGxpY2F0aW9uVHlwZSA9ICdlenJlbWl0JztcclxuICBjb21wYW55Q29kZSA9ICdCSCc7XHJcbiAgc2VydmljZVVybDogc3RyaW5nO1xyXG4gIHNlYXJjaENyaXRlcmlhOiBbc3RyaW5nLCBzdHJpbmddW107XHJcblxyXG4gIHRyYW5zYWN0aW9uRGF0YTogVHJhbnNhY3Rpb25EYXRhW10gPSBbXTtcclxuICBSZXBvcnROYW1lID0gXCJUcmFuc2FjdGlvbiBFbnF1aXJ5XCI7XHJcbiAgbWV0YURhdGFPbmU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XHJcbiAgbWV0YURhdGFUd286IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XHJcbiAgZmlsdGVyZWREYXRhOiBUcmFuc2FjdGlvbkRhdGFbXSA9IFtdO1xyXG4gIHJlcG9ydFVzZXJhbmRUaW1lOiBzdHJpbmcgPSAnJztcclxuICByZXBvcnRQZXJpb2Q6IHN0cmluZyA9ICcnO1xyXG4gIHVzZXI6IGFueTtcclxuICBpc0Zvcm1WYWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvLyBBRyBHcmlkIENvbHVtbiBEZWZpbml0aW9uc1xyXG4gIGNvbHVtbkRlZnM6IENvbERlZltdID0gW1xyXG4gICAgeyBoZWFkZXJOYW1lOiAnUHJvZHVjdCcsIGZpZWxkOiAncHJvZHVjdCcsIGZsZXg6IDEsIG1pbldpZHRoOiA3MCwgdG9vbHRpcEZpZWxkOiAncHJvZHVjdCcgfSxcclxuICAgIHsgaGVhZGVyTmFtZTogJ1VzZXIgSWQnLCBmaWVsZDogJ2lkJywgZmxleDogMSwgbWluV2lkdGg6IDcwLCBjZWxsQ2xhc3M6ICcnLCB0b29sdGlwRmllbGQ6ICdpZCcgfSxcclxuICAgIHtcclxuICAgICAgaGVhZGVyTmFtZTogJ1RyYW5zYWN0aW9uIE51bWJlcicsIGZpZWxkOiAndHJhbnNhY3Rpb25OdW1iZXInLCB0b29sdGlwRmllbGQ6ICd0cmFuc2FjdGlvbk51bWJlcicsXHJcbiAgICAgIGNlbGxSZW5kZXJlcjogKHBhcmFtczogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5idWlsZFRyYW5zYWN0aW9uRGV0YWlsc1VybChwYXJhbXMudmFsdWUpO1xyXG4gICAgICAgIHJldHVybiBgPGEgaHJlZj1cIiR7dXJsfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIj4ke3BhcmFtcy52YWx1ZX08L2E+YDtcclxuICAgICAgfSxcclxuICAgICAgZmxleDogMSwgbWluV2lkdGg6IDEwMCwgY2VsbENsYXNzOiAndHJhbnNhY3Rpb24tbGluay1jZWxsJ1xyXG4gICAgfSxcclxuICAgIHsgaGVhZGVyTmFtZTogJ1RyYW5zYWN0aW9uIFJlZiBOdW1iZXInLCBmaWVsZDogJ3RyYW5zYWN0aW9uUmVmZXJlbmNlTnVtYmVyJywgZmxleDogMSwgbWluV2lkdGg6IDEwMCwgdG9vbHRpcEZpZWxkOiAndHJhbnNhY3Rpb25SZWZlcmVuY2VOdW1iZXInIH0sXHJcbiAgICB7IGhlYWRlck5hbWU6ICdUcmFuc2FjdGlvbiBEYXRlJywgZmllbGQ6ICdidXNpbmVzc0RhdGUnLCBmbGV4OiAxLCBtaW5XaWR0aDogNzUsIHRvb2x0aXBGaWVsZDogJ2J1c2luZXNzRGF0ZScgfSxcclxuICAgIHsgaGVhZGVyTmFtZTogJ1NlbmQgQ2xpZW50JywgZmllbGQ6ICdzZW5kQWdlbnQnLCBmbGV4OiAxLCBtaW5XaWR0aDogMTIwLCB0b29sdGlwRmllbGQ6ICdzZW5kQWdlbnQnIH0sXHJcbiAgICB7IGhlYWRlck5hbWU6ICdTZW5kIENsaWVudCBCcmFuY2gnLCBmaWVsZDogJ3NlbmRBZ3RCcmFuY2gnLCBmbGV4OiAxLCBtaW5XaWR0aDogMTIwLCB0b29sdGlwRmllbGQ6ICdzZW5kQWd0QnJhbmNoJyB9LFxyXG4gICAgeyBoZWFkZXJOYW1lOiAnUmVjZWl2ZSBDbGllbnQnLCBmaWVsZDogJ3JlY3ZBZ2VudCcsIGZsZXg6IDEsIG1pbldpZHRoOiAxMjAsIHRvb2x0aXBGaWVsZDogJ3JlY3ZBZ2VudCcgfSxcclxuICAgIHsgaGVhZGVyTmFtZTogJ1JlY2VpdmUgQ2xpZW50IEJyYW5jaCcsIGZpZWxkOiAncmN2QWd0QnJhbmNoJywgZmxleDogMSwgbWluV2lkdGg6IDEyMCwgdG9vbHRpcEZpZWxkOiAncmN2QWd0QnJhbmNoJyB9LFxyXG4gICAgeyBoZWFkZXJOYW1lOiAnU2VuZGVyIE5hbWUnLCBmaWVsZDogJ3NlbmROYW1lJywgZmxleDogMSwgbWluV2lkdGg6IDEyMCwgdG9vbHRpcEZpZWxkOiAnc2VuZE5hbWUnIH0sXHJcbiAgICB7IGhlYWRlck5hbWU6ICdTZW5kZXIgSUQgVHlwZScsIGZpZWxkOiAnc2VuZElkVHlwZScsIGZsZXg6IDEsIG1pbldpZHRoOiA5MCwgdG9vbHRpcEZpZWxkOiAnc2VuZElkVHlwZScgfSxcclxuICAgIHsgaGVhZGVyTmFtZTogJ1NlbmRlciBJRCBOdW1iZXInLCBmaWVsZDogJ3NlbmRJZE51bWJlcicsIGZsZXg6IDEsIG1pbldpZHRoOiA4NSwgdG9vbHRpcEZpZWxkOiAnc2VuZElkTnVtYmVyJyB9LFxyXG4gICAgeyBoZWFkZXJOYW1lOiAnQmVuZi4gTmFtZScsIGZpZWxkOiAnYmVuTmFtZScsIGZsZXg6IDEsIG1pbldpZHRoOiAxMDAsIHRvb2x0aXBGaWVsZDogJ2Jlbk5hbWUnIH0sXHJcbiAgICB7IGhlYWRlck5hbWU6ICdSZWNlaXZlIEN1cnJlbmN5JywgZmllbGQ6ICdwYXlPdXRDdXJyZW5jeScsIGZsZXg6IDEsIG1pbldpZHRoOiA4MCwgdG9vbHRpcEZpZWxkOiAncGF5T3V0Q3VycmVuY3knIH0sXHJcbiAgICB7IGhlYWRlck5hbWU6ICdSZWNlaXZlIEFtb3VudCcsIGZpZWxkOiAncGF5T3V0QW1vdW50JywgZmxleDogMSwgbWluV2lkdGg6IDEwMCwgY2VsbENsYXNzOiAnYWctcmlnaHQtYWxpZ25lZC1jZWxsICcsIHRvb2x0aXBGaWVsZDogJ3BheU91dEFtb3VudCcgfSxcclxuICAgIHsgaGVhZGVyTmFtZTogJ1NlbmQgQ3VycmVuY3knLCBmaWVsZDogJ3BheUluQ3VycmVuY3knLCBmbGV4OiAxLCBtaW5XaWR0aDogNzAsIHRvb2x0aXBGaWVsZDogJ3BheUluQ3VycmVuY3knIH0sXHJcbiAgICB7IGhlYWRlck5hbWU6ICdTZW5kIEFtb3VudCcsIGZpZWxkOiAncGF5SW5BbW91bnQnLCBmbGV4OiAxLCBtaW5XaWR0aDogMTAwLCBjZWxsQ2xhc3M6ICdhZy1yaWdodC1hbGlnbmVkLWNlbGwnLCB0b29sdGlwRmllbGQ6ICdwYXlJbkFtb3VudCcgfSxcclxuICAgIHsgaGVhZGVyTmFtZTogJ1NlcnZpY2UgRmVlJywgZmllbGQ6ICdjb21taXNzaW9uJywgZmxleDogMSwgbWluV2lkdGg6IDgwLCBjZWxsQ2xhc3M6ICdhZy1yaWdodC1hbGlnbmVkLWNlbGwnLCB0b29sdGlwRmllbGQ6ICdjb21taXNzaW9uJyB9LFxyXG4gICAgeyBoZWFkZXJOYW1lOiAnVHJhbnNhY3Rpb24gU3RhdHVzJywgZmllbGQ6ICd0cmFuc2FjdGlvblN0YXR1cycsIGZsZXg6IDEsIG1pbldpZHRoOiA5OCwgY2VsbENsYXNzOiAnc3RhdHVzLWNlbGwnLCB0b29sdGlwRmllbGQ6ICd0cmFuc2FjdGlvblN0YXR1cycgfVxyXG4gIF07XHJcblxyXG4gIGRlZmF1bHRDb2xEZWYgPSB7XHJcbiAgICBzb3J0YWJsZTogdHJ1ZSxcclxuICAgIGZpbHRlcjogdHJ1ZSxcclxuICAgIHJlc2l6YWJsZTogdHJ1ZSxcclxuICAgIG1pbndpZHRoOiA0MCxcclxuICAgIHdyYXBIZWFkZXJUZXh0OiB0cnVlLFxyXG4gICAgYXV0b0hlYWRlckhlaWdodDogdHJ1ZSxcclxuICAgIHN1cHByZXNzU2l6ZVRvRml0OiBmYWxzZSxcclxuICAgIHdyYXBUZXh0OiB0cnVlLFxyXG4gICAgYXV0b0hlaWdodDogdHJ1ZVxyXG4gIH07XHJcblxyXG5cclxuICBwcml2YXRlIGJ1aWxkVHJhbnNhY3Rpb25EZXRhaWxzVXJsKHRyYW5zYWN0aW9uTnVtYmVyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgYmFzZVVybCA9IHRoaXMuc2VydmljZVVybDtcclxuICAgIGNvbnN0IHRva2VuID0gdGhpcy50b2tlbjtcclxuICAgIGNvbnN0IHVzZXJOYW1lID0gdGhpcy51c2VyO1xyXG4gICAgY29uc3QgYXBwbGljYXRpb25UeXBlID0gdGhpcy5hcHBsaWNhdGlvblR5cGU7XHJcblxyXG4gICAgcmV0dXJuIGAke2Jhc2VVcmx9L2FwaS92MS9SZXRhaWxUcmFuc2FjdGlvbi9HZXRUcmFuc2FjdGlvbkRldGFpbHNIdG1sVmlld2AgK1xyXG4gICAgICBgP3RyYW5zYWN0aW9uTnVtYmVyPSR7dHJhbnNhY3Rpb25OdW1iZXJ9JmFwcGxpY2F0aW9uVHlwZT0ke2FwcGxpY2F0aW9uVHlwZX1gICtcclxuICAgICAgYCZhY2Nlc3NfdG9rZW49JHt0b2tlbn0mdXNlck5hbWU9JHt1c2VyTmFtZX1gO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlcG9ydFNlcnZpY2U6IFJlcG9ydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGV4cG9ydFNlcnZpY2U6IEV4cG9ydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5zZXJ2aWNlVXJsID0gdGhpcy5jb25maWcuZ2V0LnNlcnZpY2VVcmw7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVTZWFyY2goY3JpdGVyaWE6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hDcml0ZXJpYSA9IGNyaXRlcmlhLnNlYXJjaENyaXRlcmlhO1xyXG4gICAgdGhpcy5sb2FkaW5nU3RhdGUgPSBDb21wb25lbnRMb2FkaW5nU3RhdGUuTG9hZGluZztcclxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uRGF0YSA9IFtdO1xyXG4gICAgdGhpcy5oYXNTZWFyY2hlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gJyc7XHJcbiAgICB0aGlzLnNlbGVjdGVkRXhwb3J0T3B0aW9uID0gJ2V4Y2VsJztcclxuICAgIHRoaXMudXNlciA9IGNyaXRlcmlhLnN5c1VzZXJJRDtcclxuICAgIHRoaXMucmVwb3J0VXNlcmFuZFRpbWUgPSBgJHtjcml0ZXJpYS5zeXNVc2VySUR9IEAgJHtmb3JtYXREYXRlKHRoaXMuY3VycmVudERhdGVUaW1lLCAnZGQvTU0veXl5eSBoaDptbSBhJywgJ2VuLVVTJyl9YDtcclxuICAgIHRoaXMucmVwb3J0UGVyaW9kID0gY3JpdGVyaWEucmVwb3J0UGVyaW9kO1xyXG5cclxuICAgIHZhciBtb2RhbCA9IGNyaXRlcmlhLm1vZGFsO1xyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgY2xpZW50OiBtb2RhbC5jbGllbnQsXHJcbiAgICAgIGZyb21EYXRlOiBtb2RhbC5mcm9tRGF0ZSxcclxuICAgICAgdG9EYXRlOiBtb2RhbC50b0RhdGUsXHJcbiAgICAgIGJyYW5jaDogbW9kYWwuYnJhbmNoLFxyXG4gICAgICBjdXJyZW5jeTogbW9kYWwuY3VycmVuY3ksXHJcbiAgICAgIHByb2R1Y3Q6IG1vZGFsLnByb2R1Y3QsXHJcbiAgICAgIHRyYW5zYWN0aW9uU3RhdHVzOiBtb2RhbC50cmFuc2FjdGlvblN0YXR1cy5qb2luKFwiLFwiKSxcclxuICAgICAgdHJhbnNhY3Rpb25ObzogKG1vZGFsLnRyYW5zYWN0aW9uTm8gfHwgJycpLnRyaW0oKVxyXG4gICAgfVxyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHNkYXRlID0gbmV3IERhdGUocGF5bG9hZD8uZnJvbURhdGUpO1xyXG4gICAgICBjb25zdCBlZGF0ZSA9IG5ldyBEYXRlKHBheWxvYWQ/LnRvRGF0ZSk7XHJcbiAgICAgIHBheWxvYWQuZnJvbURhdGUgPSBzZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KFwiVFwiKVswXTtcclxuICAgICAgcGF5bG9hZC50b0RhdGUgPSBlZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KFwiVFwiKVswXTtcclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIERhdGVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc29sZS5sb2cocGF5bG9hZClcclxuICAgIHRoaXMubWV0YURhdGFPbmUgPSB7XHJcbiAgICAgICdSZXBvcnQgUGVyaW9kJzogY3JpdGVyaWEucmVwb3J0UGVyaW9kXHJcbiAgICB9XHJcbiAgICB0aGlzLm1ldGFEYXRhVHdvID0ge1xyXG4gICAgICAnUmVwb3J0IFVzZXIgJiBUaW1lJzogdGhpcy5yZXBvcnRVc2VyYW5kVGltZVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZWFyY2hDcml0ZXJpYSA9IGNyaXRlcmlhLnNlYXJjaENyaXRlcmlhO1xyXG5cclxuICAgIHRoaXMucmVwb3J0U2VydmljZS5zZWFyY2hUcmFuc2FjdGlvbnMocGF5bG9hZClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxyXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZ1N0YXRlID0gQ29tcG9uZW50TG9hZGluZ1N0YXRlLkNvbXBsZXRlO1xyXG4gICAgICAgICAgdGhpcy5oYXNTZWFyY2hlZCA9IHRydWU7XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiBkYXRhID0+IHtcclxuICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25EYXRhID0gQXJyYXkuaXNBcnJheShkYXRhKSA/IGRhdGEgOiBbXTtcclxuICAgICAgICAgIHRoaXMuZmlsdGVyZWREYXRhID0gWy4uLnRoaXMudHJhbnNhY3Rpb25EYXRhXTtcclxuICAgICAgICAgIGlmICh0aGlzLmdyaWRBcGkpIHtcclxuICAgICAgICAgICAgdGhpcy5ncmlkQXBpLnNldFJvd0RhdGEodGhpcy5maWx0ZXJlZERhdGEpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcignR3JpZCBBUEkgaXMgbm90IGluaXRpYWxpemVkIScpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IGVyciA9PiB7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdGYWlsZWQgdG8gZmV0Y2ggdHJhbnNhY3Rpb24gZGF0YS4gUGxlYXNlIHRyeSBhZ2Fpbi4nO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nU3RhdGUgPSBDb21wb25lbnRMb2FkaW5nU3RhdGUuRXJyb3I7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdTZWFyY2ggZXJyb3I6JywgZXJyKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZmlsdGVyKHRleHQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gdGV4dC50cmltKCk7XHJcbiAgICBpZiAodGhpcy5zZWFyY2hUZXh0Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IFsuLi50aGlzLnRyYW5zYWN0aW9uRGF0YV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IHRoaXMudHJhbnNhY3Rpb25EYXRhLmZpbHRlcihyb3cgPT5cclxuICAgICAgICBPYmplY3QudmFsdWVzKHJvdykuc29tZSh2YWwgPT5cclxuICAgICAgICAgIFN0cmluZyh2YWwpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5zZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkpXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25HcmlkUmVhZHkocGFyYW1zOiBHcmlkUmVhZHlFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5ncmlkQXBpID0gcGFyYW1zLmFwaTtcclxuICAgIHRoaXMuZ3JpZENvbHVtbkFwaSA9IHBhcmFtcy5jb2x1bW5BcGk7XHJcbiAgICB0aGlzLmdyaWRBcGkuc2l6ZUNvbHVtbnNUb0ZpdCgpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJFcnJvcigpOiB2b2lkIHtcclxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XHJcbiAgICB0aGlzLmxvYWRpbmdTdGF0ZSA9IENvbXBvbmVudExvYWRpbmdTdGF0ZS5Db21wbGV0ZTtcclxuICB9XHJcblxyXG4gIGdldCBpc0xvYWRpbmcoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nU3RhdGUgPT09IENvbXBvbmVudExvYWRpbmdTdGF0ZS5Mb2FkaW5nO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzRXJyb3IoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nU3RhdGUgPT09IENvbXBvbmVudExvYWRpbmdTdGF0ZS5FcnJvcjtcclxuICB9XHJcblxyXG4gIGdldCBlcnJvck1lc3NhZ2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9lcnJvck1lc3NhZ2U7XHJcbiAgfVxyXG5cclxuICBzZXQgZXJyb3JNZXNzYWdlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2Vycm9yTWVzc2FnZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgb25FeHBvcnRDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEV4cG9ydE9wdGlvbiA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRXhwb3J0KG9wdGlvbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkRXhwb3J0T3B0aW9uID0gb3B0aW9uO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRFeHBvcnRPcHRpb24gPT09ICdwZGYnKSB7XHJcbiAgICAgIHRoaXMuZXhwb3J0VG9QREYoKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZEV4cG9ydE9wdGlvbiA9PT0gJ2V4Y2VsJykge1xyXG4gICAgICB0aGlzLmV4cG9ydFRvRXhjZWwoKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZEV4cG9ydE9wdGlvbiA9PT0gJ2NzdicpIHtcclxuICAgICAgdGhpcy5leHBvcnRUb0NTVigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgYWxlcnQoJ1BsZWFzZSBzZWxlY3QgYSB2YWxpZCBleHBvcnQgZm9ybWF0LicpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXhwb3J0VG9QREYoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMudHJhbnNhY3Rpb25EYXRhPy5sZW5ndGgpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCB0aXRsZSA9ICdUcmFuc2FjdGlvbiBFbnF1aXJ5JztcclxuICAgIGNvbnN0IG1ldGFkYXRhID0gdGhpcy5leHBvcnRTZXJ2aWNlLmdlbmVyYXRlUmVwb3J0TWV0YWRhdGEoW1xyXG4gICAgICBbJ1JlcG9ydCBQZXJpb2QgOicsIHRoaXMucmVwb3J0UGVyaW9kXSxcclxuICAgICAgWydSZXBvcnQgVXNlciAmIFRpbWUgOicsIHRoaXMucmVwb3J0VXNlcmFuZFRpbWVdXHJcbiAgICBdKTtcclxuICAgIGNvbnN0IHsgaGVhZGVycywgcm93cyB9ID0gdGhpcy5leHBvcnRTZXJ2aWNlLnByZXBhcmVFeHBvcnRUYWJsZSh0aGlzLnRyYW5zYWN0aW9uRGF0YSwgdGhpcy5jb2x1bW5EZWZzLCB7XHJcbiAgICAgIGN1cnJlbmN5RmllbGRzOiBbXVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5leHBvcnRTZXJ2aWNlLmV4cG9ydFRvUGRmVW5pdmVyc2FsKHRpdGxlLCBtZXRhZGF0YSwgdGhpcy5zZWFyY2hDcml0ZXJpYSwgaGVhZGVycywgcm93cywgJ1RyYW5zYWN0aW9uX0VucXVpcnkucGRmJylcclxuICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdQREYgZXhwb3J0IGNvbXBsZXRlZC4nKTtcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKGVyciA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignUERGIGV4cG9ydCBmYWlsZWQ6JywgZXJyKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBleHBvcnRUb0V4Y2VsKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnRyYW5zYWN0aW9uRGF0YT8ubGVuZ3RoKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgdGl0bGUgPSAnVHJhbnNhY3Rpb24gRW5xdWlyeSc7XHJcbiAgICBjb25zdCBtZXRhZGF0YSA9IHRoaXMuZXhwb3J0U2VydmljZS5nZW5lcmF0ZVJlcG9ydE1ldGFkYXRhKFtcclxuICAgICAgWydSZXBvcnQgUGVyaW9kICcsIHRoaXMucmVwb3J0UGVyaW9kXSxcclxuICAgICAgWydSZXBvcnQgVXNlciAmIFRpbWUgJywgdGhpcy5yZXBvcnRVc2VyYW5kVGltZV1cclxuICAgIF0pO1xyXG5cclxuICAgIGNvbnN0IHsgaGVhZGVycywgcm93cyB9ID0gdGhpcy5leHBvcnRTZXJ2aWNlLnByZXBhcmVFeHBvcnRUYWJsZSh0aGlzLnRyYW5zYWN0aW9uRGF0YSwgdGhpcy5jb2x1bW5EZWZzLCB7XHJcbiAgICAgIGN1cnJlbmN5RmllbGRzOiBbXVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5leHBvcnRTZXJ2aWNlLmV4cG9ydFRvRXhjZWxVbml2ZXJzYWwodGl0bGUsIG1ldGFkYXRhLCB0aGlzLnNlYXJjaENyaXRlcmlhLCBoZWFkZXJzLCByb3dzLCAnVHJhbnNhY3Rpb25fRW5xdWlyeS54bHN4Jyk7XHJcbiAgfVxyXG5cclxuICBleHBvcnRUb0NTVigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy50cmFuc2FjdGlvbkRhdGE/Lmxlbmd0aCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHRpdGxlID0gJ1RyYW5zYWN0aW9uIEVucXVpcnknO1xyXG4gICAgY29uc3QgbWV0YWRhdGEgPSB0aGlzLmV4cG9ydFNlcnZpY2UuZ2VuZXJhdGVSZXBvcnRNZXRhZGF0YShbXHJcbiAgICAgIFsnUmVwb3J0IFBlcmlvZDogJywgdGhpcy5yZXBvcnRQZXJpb2RdLFxyXG4gICAgICBbJ1JlcG9ydCBVc2VyICYgVGltZTogJywgdGhpcy5yZXBvcnRVc2VyYW5kVGltZV1cclxuICAgIF0pO1xyXG5cclxuICAgIGNvbnN0IHsgaGVhZGVycywgcm93cyB9ID0gdGhpcy5leHBvcnRTZXJ2aWNlLnByZXBhcmVFeHBvcnRUYWJsZSh0aGlzLnRyYW5zYWN0aW9uRGF0YSwgdGhpcy5jb2x1bW5EZWZzLCB7XHJcbiAgICAgIGN1cnJlbmN5RmllbGRzOiBbXVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5leHBvcnRTZXJ2aWNlLmV4cG9ydFRvQ3N2VW5pdmVyc2FsKHRpdGxlLCBtZXRhZGF0YSwgdGhpcy5zZWFyY2hDcml0ZXJpYSwgaGVhZGVycywgcm93cywgJ1RyYW5zYWN0aW9uX0VucXVpcnkuY3N2Jyk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVGb3JtVmFsaWQoaXNWYWxpZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5pc0Zvcm1WYWxpZCA9IGlzVmFsaWQ7XHJcbiAgfVxyXG59IiwiPGxpYi1zZWFyY2gtZmlsdGVyIFxyXG4gICAgW1JlcG9ydE5hbWVdPVwiUmVwb3J0TmFtZVwiIFxyXG4gICAgKHNlYXJjaENsaWNrZWQpPVwiaGFuZGxlU2VhcmNoKCRldmVudClcIlxyXG4gICAgKGZvcm1WYWxpZCk9XCJoYW5kbGVGb3JtVmFsaWQoJGV2ZW50KVwiXHJcbiAgICA+XHJcbjwvbGliLXNlYXJjaC1maWx0ZXI+XHJcblxyXG48YXBwLWxvYWRlciAqbmdJZj1cImxvYWRpbmdTdGF0ZSA9PT0gQ29tcG9uZW50TG9hZGluZ1N0YXRlLkxvYWRpbmdcIj48L2FwcC1sb2FkZXI+XHJcblxyXG48c3BhbiAqbmdJZj1cImxvYWRpbmdTdGF0ZSA9PT0gQ29tcG9uZW50TG9hZGluZ1N0YXRlLkVycm9yXCI+e3sgZXJyb3JNZXNzYWdlIH19PC9zcGFuPlxyXG5cclxuPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LXdhcm5pbmcgbXQtM1wiICpuZ0lmPVwiaGFzU2VhcmNoZWQgJiYgdHJhbnNhY3Rpb25EYXRhLmxlbmd0aCA9PT0gMCAmJiBsb2FkaW5nU3RhdGUgPT09IENvbXBvbmVudExvYWRpbmdTdGF0ZS5Db21wbGV0ZVwiPlxyXG4gICAgTm8gdHJhbnNhY3Rpb25zIGZvdW5kIG1hdGNoaW5nIHlvdXIgc2VhcmNoIGNyaXRlcmlhLlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJ0cmFuc2FjdGlvbkRhdGEgJiYgdHJhbnNhY3Rpb25EYXRhLmxlbmd0aCA+IDAgJiYgbG9hZGluZ1N0YXRlID09PSBDb21wb25lbnRMb2FkaW5nU3RhdGUuQ29tcGxldGUgJiYgaXNGb3JtVmFsaWRcIj5cclxuXHJcbiAgPGxpYi1tZXRhZGF0YSBcclxuICAgIFtyZXBvcnROYW1lXT1cIlJlcG9ydE5hbWVcIiBcclxuICAgIFtzaG93bWV0YURhdGFPbmVdPVwidHJ1ZVwiIFxyXG4gICAgW3Nob3dtZXRhRGF0YVR3b109XCJ0cnVlXCIgXHJcbiAgICBbbWV0YURhdGFPbmVdPVwibWV0YURhdGFPbmVcIlxyXG4gICAgW21ldGFEYXRhVHdvXT1cIm1ldGFEYXRhVHdvXCIgXHJcbiAgICAoZXhwb3J0RXZlbnQpPVwiaGFuZGxlRXhwb3J0KCRldmVudClcIiBcclxuICAgIChzZWFyY2hFdmVudCk9XCJmaWx0ZXIoJGV2ZW50KVwiPlxyXG4gIDwvbGliLW1ldGFkYXRhPlxyXG5cclxuICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiICpuZ0lmPVwiZmlsdGVyZWREYXRhLmxlbmd0aCA+IDBcIj5cclxuXHJcbiAgICA8bGliLXBhZ2Utc2l6ZS1zZWxlY3RvciBcclxuICAgICAgW3RvdGFsRW50cmllc109XCJ0cmFuc2FjdGlvbkRhdGEubGVuZ3RoXCIgXHJcbiAgICAgIFtkZWZhdWx0U2l6ZV09XCInMTUnXCIgXHJcbiAgICAgIFtncmlkQXBpXT1cImdyaWRBcGlcIj5cclxuICAgIDwvbGliLXBhZ2Utc2l6ZS1zZWxlY3Rvcj5cclxuXHJcbiAgICA8YWctZ3JpZC1hbmd1bGFyIGNsYXNzPVwiYWctdGhlbWUtYWxwaW5lIHRyYW5zYWN0aW9uLWdyaWRcIiBcclxuICAgICAgW3Jvd0RhdGFdPVwiZmlsdGVyZWREYXRhXCIgXHJcbiAgICAgIFtjb2x1bW5EZWZzXT1cImNvbHVtbkRlZnNcIlxyXG4gICAgICBbZGVmYXVsdENvbERlZl09XCJkZWZhdWx0Q29sRGVmXCJcclxuICAgICAgW3Jvd0hlaWdodF09XCIyMlwiIFxyXG4gICAgICBbcGFnaW5hdGlvbl09XCJ0cnVlXCIgXHJcbiAgICAgIFtoZWFkZXJIZWlnaHRdPVwiMzBcIiBcclxuICAgICAgW3BhZ2luYXRpb25QYWdlU2l6ZV09XCJwYWdpbmF0aW9uUGFnZVNpemVcIlxyXG4gICAgICAoZ3JpZFJlYWR5KT1cIm9uR3JpZFJlYWR5KCRldmVudClcIiBcclxuICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiA0MzVweDtcIj5cclxuICAgIDwvYWctZ3JpZC1hbmd1bGFyPlxyXG4gIDwvZGl2PlxyXG5cclxuPC9kaXY+Il19
|
|
284
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tZW5xdWlyeS1yZXBvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmVwb3J0cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL3RyYW5zYWN0aW9uLWVucXVpcnktcmVwb3J0L3RyYW5zYWN0aW9uLWVucXVpcnktcmVwb3J0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcG9ydHMtbGliL3NyYy9saWIvY29tcG9uZW50cy90cmFuc2FjdGlvbi1lbnF1aXJ5LXJlcG9ydC90cmFuc2FjdGlvbi1lbnF1aXJ5LXJlcG9ydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFtQixxQkFBcUIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBRzNILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFRN0MsTUFBTSxPQUFPLDJCQUEyQjtJQStGdEMsWUFDVSxhQUE0QixFQUM1QixhQUE0QixFQUM1QixNQUFxQjtRQUZyQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBL0Z2QixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUV2QyxlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLHVCQUFrQixHQUFXLEVBQUUsQ0FBQztRQUNoQyx5QkFBb0IsR0FBVyxPQUFPLENBQUM7UUFDdkMsb0JBQWUsR0FBUyxJQUFJLElB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YW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWdHcmlkQW5ndWxhciB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XHJcbmltcG9ydCB7IEdyaWRPcHRpb25zLCBDb2xEZWYsIEdyaWRSZWFkeUV2ZW50LCBHcmlkQXBpLCBDb2x1bW5BcGkgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsLCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgUmVwb3J0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3JlcG9ydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNhY3Rpb25EYXRhLCBDb21wb25lbnRMb2FkaW5nU3RhdGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvdHJhbnNhY3Rpb24tZW5xdWlyeS1yZXBvcnQvdHJhbnNhY3Rpb24tZW5xdWlyeS5tb2RlbCc7XHJcbmltcG9ydCB7IEV4cG9ydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvZXhwb3J0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXRyYW5zYWN0aW9uLWVucXVpcnknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmFuc2FjdGlvbi1lbnF1aXJ5LXJlcG9ydC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJhbnNhY3Rpb24tZW5xdWlyeS1yZXBvcnQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uRW5xdWlyeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnYWdHcmlkJykgYWdHcmlkITogQWdHcmlkQW5ndWxhcjtcclxuXHJcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgZ3JpZEFwaSE6IEdyaWRBcGk7XHJcbiAgc2VhcmNoVGV4dDogc3RyaW5nID0gJyc7XHJcbiAgcGFnaW5hdGlvblBhZ2VTaXplOiBudW1iZXIgPSAxNTtcclxuICBzZWxlY3RlZEV4cG9ydE9wdGlvbjogc3RyaW5nID0gJ2V4Y2VsJztcclxuICBjdXJyZW50RGF0ZVRpbWU6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG5cclxuICBleHBvcnRGb3JtYXRzID0gW3sgZm9ybWF0TmFtZTogXCJFeGNlbFwiLCBjb2RlOiAnZXhjZWwnIH0sIHsgZm9ybWF0TmFtZTogXCJQREZcIiwgY29kZTogJ3BkZicgfSwgeyBmb3JtYXROYW1lOiBcIkNTVlwiLCBjb2RlOiAnY3N2JyB9XVxyXG5cclxuICBsb2FkaW5nU3RhdGU6IENvbXBvbmVudExvYWRpbmdTdGF0ZSA9IENvbXBvbmVudExvYWRpbmdTdGF0ZS5Db21wbGV0ZTtcclxuICBDb21wb25lbnRMb2FkaW5nU3RhdGUgPSBDb21wb25lbnRMb2FkaW5nU3RhdGU7XHJcbiAgaXNTZWFyY2hpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBoYXNTZWFyY2hlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIF9lcnJvck1lc3NhZ2U6IHN0cmluZyA9ICcnO1xyXG4gIGdyaWRDb2x1bW5BcGk6IENvbHVtbkFwaTtcclxuXHJcbiAgdG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdhY2Nlc3NfdG9rZW4nKTtcclxuICBhcHBsaWNhdGlvblR5cGUgPSAnZXpyZW1pdCc7XHJcbiAgY29tcGFueUNvZGUgPSAnQkgnO1xyXG4gIHNlcnZpY2VVcmw6IHN0cmluZztcclxuICBzZWFyY2hDcml0ZXJpYTogW3N0cmluZywgc3RyaW5nXVtdO1xyXG5cclxuICB0cmFuc2FjdGlvbkRhdGE6IFRyYW5zYWN0aW9uRGF0YVtdID0gW107XHJcbiAgUmVwb3J0TmFtZSA9IFwiVHJhbnNhY3Rpb24gRW5xdWlyeVwiO1xyXG4gIG1ldGFEYXRhT25lOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xyXG4gIG1ldGFEYXRhVHdvOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xyXG4gIGZpbHRlcmVkRGF0YTogVHJhbnNhY3Rpb25EYXRhW10gPSBbXTtcclxuICByZXBvcnRVc2VyYW5kVGltZTogc3RyaW5nID0gJyc7XHJcbiAgcmVwb3J0UGVyaW9kOiBzdHJpbmcgPSAnJztcclxuICB1c2VyOiBhbnk7XHJcbiAgaXNGb3JtVmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8gQUcgR3JpZCBDb2x1bW4gRGVmaW5pdGlvbnNcclxuICBjb2x1bW5EZWZzOiBDb2xEZWZbXSA9IFtcclxuICAgIHsgaGVhZGVyTmFtZTogJ1Byb2R1Y3QnLCBmaWVsZDogJ3Byb2R1Y3QnLCBmbGV4OiAxLCBtaW5XaWR0aDogNzAsIHRvb2x0aXBGaWVsZDogJ3Byb2R1Y3QnIH0sXHJcbiAgICB7IGhlYWRlck5hbWU6ICdVc2VyIElkJywgZmllbGQ6ICdpZCcsIGZsZXg6IDEsIG1pbldpZHRoOiA3MCwgY2VsbENsYXNzOiAnJywgdG9vbHRpcEZpZWxkOiAnaWQnIH0sXHJcbiAgICB7XHJcbiAgICAgIGhlYWRlck5hbWU6ICdUcmFuc2FjdGlvbiBOdW1iZXInLCBmaWVsZDogJ3RyYW5zYWN0aW9uTnVtYmVyJywgdG9vbHRpcEZpZWxkOiAndHJhbnNhY3Rpb25OdW1iZXInLFxyXG4gICAgICBjZWxsUmVuZGVyZXI6IChwYXJhbXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuYnVpbGRUcmFuc2FjdGlvbkRldGFpbHNVcmwocGFyYW1zLnZhbHVlKTtcclxuICAgICAgICByZXR1cm4gYDxhIGhyZWY9XCIke3VybH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCI+JHtwYXJhbXMudmFsdWV9PC9hPmA7XHJcbiAgICAgIH0sXHJcbiAgICAgIGZsZXg6IDEsIG1pbldpZHRoOiAxMDAsIGNlbGxDbGFzczogJ3RyYW5zYWN0aW9uLWxpbmstY2VsbCdcclxuICAgIH0sXHJcbiAgICB7IGhlYWRlck5hbWU6ICdUcmFuc2FjdGlvbiBSZWYgTnVtYmVyJywgZmllbGQ6ICd0cmFuc2FjdGlvblJlZmVyZW5jZU51bWJlcicsIGZsZXg6IDEsIG1pbldpZHRoOiAxMDAsIHRvb2x0aXBGaWVsZDogJ3RyYW5zYWN0aW9uUmVmZXJlbmNlTnVtYmVyJyB9LFxyXG4gICAgeyBoZWFkZXJOYW1lOiAnVHJhbnNhY3Rpb24gRGF0ZScsIGZpZWxkOiAnYnVzaW5lc3NEYXRlJywgZmxleDogMSwgbWluV2lkdGg6IDc1LCB0b29sdGlwRmllbGQ6ICdidXNpbmVzc0RhdGUnIH0sXHJcbiAgICB7IGhlYWRlck5hbWU6ICdTZW5kIENsaWVudCcsIGZpZWxkOiAnc2VuZEFnZW50JywgZmxleDogMSwgbWluV2lkdGg6IDEyMCwgdG9vbHRpcEZpZWxkOiAnc2VuZEFnZW50JyB9LFxyXG4gICAgeyBoZWFkZXJOYW1lOiAnU2VuZCBDbGllbnQgQnJhbmNoJywgZmllbGQ6ICdzZW5kQWd0QnJhbmNoJywgZmxleDogMSwgbWluV2lkdGg6IDEyMCwgdG9vbHRpcEZpZWxkOiAnc2VuZEFndEJyYW5jaCcgfSxcclxuICAgIHsgaGVhZGVyTmFtZTogJ1JlY2VpdmUgQ2xpZW50JywgZmllbGQ6ICdyZWN2QWdlbnQnLCBmbGV4OiAxLCBtaW5XaWR0aDogMTIwLCB0b29sdGlwRmllbGQ6ICdyZWN2QWdlbnQnIH0sXHJcbiAgICB7IGhlYWRlck5hbWU6ICdTZW5kZXIgTmFtZScsIGZpZWxkOiAnc2VuZE5hbWUnLCBmbGV4OiAxLCBtaW5XaWR0aDogMTIwLCB0b29sdGlwRmllbGQ6ICdzZW5kTmFtZScgfSxcclxuICAgIHsgaGVhZGVyTmFtZTogJ0lzIFNlbmRlciBDb3Jwb3JhdGUnLCBmaWVsZDogJ3NlbmRlclR5cGUnLCBmbGV4OiAxLCBtaW5XaWR0aDogODAsIFxyXG4gICAgICB2YWx1ZUZvcm1hdHRlcjogKHBhcmFtcykgPT4geyBpZiAoIXBhcmFtcy52YWx1ZSkgcmV0dXJuICcnOyBjb25zdCB2YWx1ZSA9IHBhcmFtcy52YWx1ZS50b1VwcGVyQ2FzZSgpOyBpZiAodmFsdWUgPT09ICdDT1JQT1JBVEUnKSByZXR1cm4gJ1lFUyc7IGlmICh2YWx1ZSA9PT0gJ0lORElWSURVQUwnKSByZXR1cm4gJ05PJzsgcmV0dXJuICcnOyB9LFxyXG4gICAgICB0b29sdGlwVmFsdWVHZXR0ZXI6IChwYXJhbXMpID0+IHsgaWYgKCFwYXJhbXMudmFsdWUpIHJldHVybiAnJzsgY29uc3QgdmFsdWUgPSBwYXJhbXMudmFsdWUudG9VcHBlckNhc2UoKTsgaWYgKHZhbHVlID09PSAnQ09SUE9SQVRFJykgcmV0dXJuICdZRVMnOyBpZiAodmFsdWUgPT09ICdJTkRJVklEVUFMJykgcmV0dXJuICdOTyc7IHJldHVybiAnJzsgfSB9LFxyXG4gICAgeyBoZWFkZXJOYW1lOiAnUmVjZWl2ZSBDbGllbnQgQnJhbmNoJywgZmllbGQ6ICdyY3ZBZ3RCcmFuY2gnLCBmbGV4OiAxLCBtaW5XaWR0aDogMTIwLCB0b29sdGlwRmllbGQ6ICdyY3ZBZ3RCcmFuY2gnIH0sXHJcbiAgICB7IGhlYWRlck5hbWU6ICdTZW5kZXIgSUQgVHlwZScsIGZpZWxkOiAnc2VuZElkVHlwZScsIGZsZXg6IDEsIG1pbldpZHRoOiA5MCwgdG9vbHRpcEZpZWxkOiAnc2VuZElkVHlwZScgfSxcclxuICAgIHsgaGVhZGVyTmFtZTogJ0lzIEJlbmVmaWNpYXJ5IENvcnBvcmF0ZScsIGZpZWxkOiAnYmVuZWZpY2lhcnlUeXBlJywgZmxleDogMSwgbWluV2lkdGg6IDgwLFxyXG4gICAgICB2YWx1ZUZvcm1hdHRlcjogKHBhcmFtcykgPT4geyBpZiAoIXBhcmFtcy52YWx1ZSkgcmV0dXJuICcnOyBjb25zdCB2YWx1ZSA9IHBhcmFtcy52YWx1ZS50b1VwcGVyQ2FzZSgpOyBpZiAodmFsdWUgPT09ICdDT1JQT1JBVEUnKSByZXR1cm4gJ1lFUyc7IGlmICh2YWx1ZSA9PT0gJ0lORElWSURVQUwnKSByZXR1cm4gJ05PJzsgcmV0dXJuICcnOyB9LFxyXG4gICAgICB0b29sdGlwVmFsdWVHZXR0ZXI6IChwYXJhbXMpID0+IHsgaWYgKCFwYXJhbXMudmFsdWUpIHJldHVybiAnJzsgY29uc3QgdmFsdWUgPSBwYXJhbXMudmFsdWUudG9VcHBlckNhc2UoKTsgaWYgKHZhbHVlID09PSAnQ09SUE9SQVRFJykgcmV0dXJuICdZRVMnOyBpZiAodmFsdWUgPT09ICdJTkRJVklEVUFMJykgcmV0dXJuICdOTyc7IHJldHVybiAnJzsgfSB9LCAgICBcclxuICAgIHsgaGVhZGVyTmFtZTogJ0JlbmYuIE5hbWUnLCBmaWVsZDogJ2Jlbk5hbWUnLCBmbGV4OiAxLCBtaW5XaWR0aDogMTAwLCB0b29sdGlwRmllbGQ6ICdiZW5OYW1lJyB9LCAgICAgIFxyXG4gICAgeyBoZWFkZXJOYW1lOiAnU2VuZGVyIElEIE51bWJlcicsIGZpZWxkOiAnc2VuZElkTnVtYmVyJywgZmxleDogMSwgbWluV2lkdGg6IDg1LCB0b29sdGlwRmllbGQ6ICdzZW5kSWROdW1iZXInIH0sXHJcbiAgICB7IGhlYWRlck5hbWU6ICdSZWNlaXZlIEN1cnJlbmN5JywgZmllbGQ6ICdwYXlPdXRDdXJyZW5jeScsIGZsZXg6IDEsIG1pbldpZHRoOiA4MCwgdG9vbHRpcEZpZWxkOiAncGF5T3V0Q3VycmVuY3knIH0sXHJcbiAgICB7IGhlYWRlck5hbWU6ICdSZWNlaXZlIEFtb3VudCcsIGZpZWxkOiAncGF5T3V0QW1vdW50JywgZmxleDogMSwgbWluV2lkdGg6IDEwMCwgY2VsbENsYXNzOiAnYWctcmlnaHQtYWxpZ25lZC1jZWxsICcsIHRvb2x0aXBGaWVsZDogJ3BheU91dEFtb3VudCcgfSxcclxuICAgIHsgaGVhZGVyTmFtZTogJ1NlbmQgQ3VycmVuY3knLCBmaWVsZDogJ3BheUluQ3VycmVuY3knLCBmbGV4OiAxLCBtaW5XaWR0aDogNzAsIHRvb2x0aXBGaWVsZDogJ3BheUluQ3VycmVuY3knIH0sXHJcbiAgICB7IGhlYWRlck5hbWU6ICdTZW5kIEFtb3VudCcsIGZpZWxkOiAncGF5SW5BbW91bnQnLCBmbGV4OiAxLCBtaW5XaWR0aDogMTAwLCBjZWxsQ2xhc3M6ICdhZy1yaWdodC1hbGlnbmVkLWNlbGwnLCB0b29sdGlwRmllbGQ6ICdwYXlJbkFtb3VudCcgfSxcclxuICAgIHsgaGVhZGVyTmFtZTogJ1NlcnZpY2UgRmVlJywgZmllbGQ6ICdjb21taXNzaW9uJywgZmxleDogMSwgbWluV2lkdGg6IDgwLCBjZWxsQ2xhc3M6ICdhZy1yaWdodC1hbGlnbmVkLWNlbGwnLCB0b29sdGlwRmllbGQ6ICdjb21taXNzaW9uJyB9LFxyXG4gICAgeyBoZWFkZXJOYW1lOiAnVHJhbnNhY3Rpb24gU3RhdHVzJywgZmllbGQ6ICd0cmFuc2FjdGlvblN0YXR1cycsIGZsZXg6IDEsIG1pbldpZHRoOiA5OCwgY2VsbENsYXNzOiAnc3RhdHVzLWNlbGwnLCB0b29sdGlwRmllbGQ6ICd0cmFuc2FjdGlvblN0YXR1cycgfVxyXG4gIF07XHJcblxyXG4gIGRlZmF1bHRDb2xEZWYgPSB7XHJcbiAgICBzb3J0YWJsZTogdHJ1ZSxcclxuICAgIGZpbHRlcjogdHJ1ZSxcclxuICAgIHJlc2l6YWJsZTogdHJ1ZSxcclxuICAgIG1pbndpZHRoOiA0MCxcclxuICAgIHdyYXBIZWFkZXJUZXh0OiB0cnVlLFxyXG4gICAgYXV0b0hlYWRlckhlaWdodDogdHJ1ZSxcclxuICAgIHN1cHByZXNzU2l6ZVRvRml0OiBmYWxzZSxcclxuICAgIHdyYXBUZXh0OiB0cnVlLFxyXG4gICAgYXV0b0hlaWdodDogdHJ1ZVxyXG4gIH07XHJcblxyXG5cclxuICBwcml2YXRlIGJ1aWxkVHJhbnNhY3Rpb25EZXRhaWxzVXJsKHRyYW5zYWN0aW9uTnVtYmVyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgYmFzZVVybCA9IHRoaXMuc2VydmljZVVybDtcclxuICAgIGNvbnN0IHRva2VuID0gdGhpcy50b2tlbjtcclxuICAgIGNvbnN0IHVzZXJOYW1lID0gdGhpcy51c2VyO1xyXG4gICAgY29uc3QgYXBwbGljYXRpb25UeXBlID0gdGhpcy5hcHBsaWNhdGlvblR5cGU7XHJcblxyXG4gICAgcmV0dXJuIGAke2Jhc2VVcmx9L2FwaS92MS9SZXRhaWxUcmFuc2FjdGlvbi9HZXRUcmFuc2FjdGlvbkRldGFpbHNIdG1sVmlld2AgK1xyXG4gICAgICBgP3RyYW5zYWN0aW9uTnVtYmVyPSR7dHJhbnNhY3Rpb25OdW1iZXJ9JmFwcGxpY2F0aW9uVHlwZT0ke2FwcGxpY2F0aW9uVHlwZX1gICtcclxuICAgICAgYCZhY2Nlc3NfdG9rZW49JHt0b2tlbn0mdXNlck5hbWU9JHt1c2VyTmFtZX1gO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlcG9ydFNlcnZpY2U6IFJlcG9ydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGV4cG9ydFNlcnZpY2U6IEV4cG9ydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5zZXJ2aWNlVXJsID0gdGhpcy5jb25maWcuZ2V0LnNlcnZpY2VVcmw7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVTZWFyY2goY3JpdGVyaWE6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hDcml0ZXJpYSA9IGNyaXRlcmlhLnNlYXJjaENyaXRlcmlhO1xyXG4gICAgdGhpcy5sb2FkaW5nU3RhdGUgPSBDb21wb25lbnRMb2FkaW5nU3RhdGUuTG9hZGluZztcclxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uRGF0YSA9IFtdO1xyXG4gICAgdGhpcy5oYXNTZWFyY2hlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gJyc7XHJcbiAgICB0aGlzLnNlbGVjdGVkRXhwb3J0T3B0aW9uID0gJ2V4Y2VsJztcclxuICAgIHRoaXMudXNlciA9IGNyaXRlcmlhLnN5c1VzZXJJRDtcclxuICAgIHRoaXMucmVwb3J0VXNlcmFuZFRpbWUgPSBgJHtjcml0ZXJpYS5zeXNVc2VySUR9IEAgJHtmb3JtYXREYXRlKHRoaXMuY3VycmVudERhdGVUaW1lLCAnZGQvTU0veXl5eSBoaDptbSBhJywgJ2VuLVVTJyl9YDtcclxuICAgIHRoaXMucmVwb3J0UGVyaW9kID0gY3JpdGVyaWEucmVwb3J0UGVyaW9kO1xyXG5cclxuICAgIHZhciBtb2RhbCA9IGNyaXRlcmlhLm1vZGFsO1xyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgY2xpZW50OiBtb2RhbC5jbGllbnQsXHJcbiAgICAgIGZyb21EYXRlOiBtb2RhbC5mcm9tRGF0ZSxcclxuICAgICAgdG9EYXRlOiBtb2RhbC50b0RhdGUsXHJcbiAgICAgIGJyYW5jaDogbW9kYWwuYnJhbmNoLFxyXG4gICAgICBjdXJyZW5jeTogbW9kYWwuY3VycmVuY3ksXHJcbiAgICAgIHByb2R1Y3Q6IG1vZGFsLnByb2R1Y3QsXHJcbiAgICAgIHRyYW5zYWN0aW9uU3RhdHVzOiBtb2RhbC50cmFuc2FjdGlvblN0YXR1cy5qb2luKFwiLFwiKSxcclxuICAgICAgdHJhbnNhY3Rpb25ObzogKG1vZGFsLnRyYW5zYWN0aW9uTm8gfHwgJycpLnRyaW0oKVxyXG4gICAgfVxyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHNkYXRlID0gbmV3IERhdGUocGF5bG9hZD8uZnJvbURhdGUpO1xyXG4gICAgICBjb25zdCBlZGF0ZSA9IG5ldyBEYXRlKHBheWxvYWQ/LnRvRGF0ZSk7XHJcbiAgICAgIHBheWxvYWQuZnJvbURhdGUgPSBzZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KFwiVFwiKVswXTtcclxuICAgICAgcGF5bG9hZC50b0RhdGUgPSBlZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KFwiVFwiKVswXTtcclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIERhdGVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc29sZS5sb2cocGF5bG9hZClcclxuICAgIHRoaXMubWV0YURhdGFPbmUgPSB7XHJcbiAgICAgICdSZXBvcnQgUGVyaW9kJzogY3JpdGVyaWEucmVwb3J0UGVyaW9kXHJcbiAgICB9XHJcbiAgICB0aGlzLm1ldGFEYXRhVHdvID0ge1xyXG4gICAgICAnUmVwb3J0IFVzZXIgJiBUaW1lJzogdGhpcy5yZXBvcnRVc2VyYW5kVGltZVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZWFyY2hDcml0ZXJpYSA9IGNyaXRlcmlhLnNlYXJjaENyaXRlcmlhO1xyXG5cclxuICAgIHRoaXMucmVwb3J0U2VydmljZS5zZWFyY2hUcmFuc2FjdGlvbnMocGF5bG9hZClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxyXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZ1N0YXRlID0gQ29tcG9uZW50TG9hZGluZ1N0YXRlLkNvbXBsZXRlO1xyXG4gICAgICAgICAgdGhpcy5oYXNTZWFyY2hlZCA9IHRydWU7XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiBkYXRhID0+IHtcclxuICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25EYXRhID0gQXJyYXkuaXNBcnJheShkYXRhKSA/IGRhdGEgOiBbXTtcclxuICAgICAgICAgIHRoaXMuZmlsdGVyZWREYXRhID0gWy4uLnRoaXMudHJhbnNhY3Rpb25EYXRhXTtcclxuICAgICAgICAgIGlmICh0aGlzLmdyaWRBcGkpIHtcclxuICAgICAgICAgICAgdGhpcy5ncmlkQXBpLnNldFJvd0RhdGEodGhpcy5maWx0ZXJlZERhdGEpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcignR3JpZCBBUEkgaXMgbm90IGluaXRpYWxpemVkIScpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IGVyciA9PiB7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdGYWlsZWQgdG8gZmV0Y2ggdHJhbnNhY3Rpb24gZGF0YS4gUGxlYXNlIHRyeSBhZ2Fpbi4nO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nU3RhdGUgPSBDb21wb25lbnRMb2FkaW5nU3RhdGUuRXJyb3I7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdTZWFyY2ggZXJyb3I6JywgZXJyKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZmlsdGVyKHRleHQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gdGV4dC50cmltKCk7XHJcbiAgICBpZiAodGhpcy5zZWFyY2hUZXh0Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IFsuLi50aGlzLnRyYW5zYWN0aW9uRGF0YV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IHRoaXMudHJhbnNhY3Rpb25EYXRhLmZpbHRlcihyb3cgPT5cclxuICAgICAgICBPYmplY3QudmFsdWVzKHJvdykuc29tZSh2YWwgPT5cclxuICAgICAgICAgIFN0cmluZyh2YWwpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5zZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkpXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25HcmlkUmVhZHkocGFyYW1zOiBHcmlkUmVhZHlFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5ncmlkQXBpID0gcGFyYW1zLmFwaTtcclxuICAgIHRoaXMuZ3JpZENvbHVtbkFwaSA9IHBhcmFtcy5jb2x1bW5BcGk7XHJcbiAgICB0aGlzLmdyaWRBcGkuc2l6ZUNvbHVtbnNUb0ZpdCgpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJFcnJvcigpOiB2b2lkIHtcclxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XHJcbiAgICB0aGlzLmxvYWRpbmdTdGF0ZSA9IENvbXBvbmVudExvYWRpbmdTdGF0ZS5Db21wbGV0ZTtcclxuICB9XHJcblxyXG4gIGdldCBpc0xvYWRpbmcoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nU3RhdGUgPT09IENvbXBvbmVudExvYWRpbmdTdGF0ZS5Mb2FkaW5nO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzRXJyb3IoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nU3RhdGUgPT09IENvbXBvbmVudExvYWRpbmdTdGF0ZS5FcnJvcjtcclxuICB9XHJcblxyXG4gIGdldCBlcnJvck1lc3NhZ2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9lcnJvck1lc3NhZ2U7XHJcbiAgfVxyXG5cclxuICBzZXQgZXJyb3JNZXNzYWdlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2Vycm9yTWVzc2FnZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgb25FeHBvcnRDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEV4cG9ydE9wdGlvbiA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRXhwb3J0KG9wdGlvbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkRXhwb3J0T3B0aW9uID0gb3B0aW9uO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRFeHBvcnRPcHRpb24gPT09ICdwZGYnKSB7XHJcbiAgICAgIHRoaXMuZXhwb3J0VG9QREYoKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZEV4cG9ydE9wdGlvbiA9PT0gJ2V4Y2VsJykge1xyXG4gICAgICB0aGlzLmV4cG9ydFRvRXhjZWwoKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZEV4cG9ydE9wdGlvbiA9PT0gJ2NzdicpIHtcclxuICAgICAgdGhpcy5leHBvcnRUb0NTVigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgYWxlcnQoJ1BsZWFzZSBzZWxlY3QgYSB2YWxpZCBleHBvcnQgZm9ybWF0LicpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXhwb3J0VG9QREYoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMudHJhbnNhY3Rpb25EYXRhPy5sZW5ndGgpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCB0aXRsZSA9ICdUcmFuc2FjdGlvbiBFbnF1aXJ5JztcclxuICAgIGNvbnN0IG1ldGFkYXRhID0gdGhpcy5leHBvcnRTZXJ2aWNlLmdlbmVyYXRlUmVwb3J0TWV0YWRhdGEoW1xyXG4gICAgICBbJ1JlcG9ydCBQZXJpb2QgOicsIHRoaXMucmVwb3J0UGVyaW9kXSxcclxuICAgICAgWydSZXBvcnQgVXNlciAmIFRpbWUgOicsIHRoaXMucmVwb3J0VXNlcmFuZFRpbWVdXHJcbiAgICBdKTtcclxuICAgIGNvbnN0IHsgaGVhZGVycywgcm93cyB9ID0gdGhpcy5leHBvcnRTZXJ2aWNlLnByZXBhcmVFeHBvcnRUYWJsZSh0aGlzLnRyYW5zYWN0aW9uRGF0YSwgdGhpcy5jb2x1bW5EZWZzLCB7XHJcbiAgICAgIGN1cnJlbmN5RmllbGRzOiBbXVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5leHBvcnRTZXJ2aWNlLmV4cG9ydFRvUGRmVW5pdmVyc2FsKHRpdGxlLCBtZXRhZGF0YSwgdGhpcy5zZWFyY2hDcml0ZXJpYSwgaGVhZGVycywgcm93cywgJ1RyYW5zYWN0aW9uX0VucXVpcnkucGRmJylcclxuICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdQREYgZXhwb3J0IGNvbXBsZXRlZC4nKTtcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKGVyciA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignUERGIGV4cG9ydCBmYWlsZWQ6JywgZXJyKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBleHBvcnRUb0V4Y2VsKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnRyYW5zYWN0aW9uRGF0YT8ubGVuZ3RoKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgdGl0bGUgPSAnVHJhbnNhY3Rpb24gRW5xdWlyeSc7XHJcbiAgICBjb25zdCBtZXRhZGF0YSA9IHRoaXMuZXhwb3J0U2VydmljZS5nZW5lcmF0ZVJlcG9ydE1ldGFkYXRhKFtcclxuICAgICAgWydSZXBvcnQgUGVyaW9kICcsIHRoaXMucmVwb3J0UGVyaW9kXSxcclxuICAgICAgWydSZXBvcnQgVXNlciAmIFRpbWUgJywgdGhpcy5yZXBvcnRVc2VyYW5kVGltZV1cclxuICAgIF0pO1xyXG5cclxuICAgIGNvbnN0IHsgaGVhZGVycywgcm93cyB9ID0gdGhpcy5leHBvcnRTZXJ2aWNlLnByZXBhcmVFeHBvcnRUYWJsZSh0aGlzLnRyYW5zYWN0aW9uRGF0YSwgdGhpcy5jb2x1bW5EZWZzLCB7XHJcbiAgICAgIGN1cnJlbmN5RmllbGRzOiBbXVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5leHBvcnRTZXJ2aWNlLmV4cG9ydFRvRXhjZWxVbml2ZXJzYWwodGl0bGUsIG1ldGFkYXRhLCB0aGlzLnNlYXJjaENyaXRlcmlhLCBoZWFkZXJzLCByb3dzLCAnVHJhbnNhY3Rpb25fRW5xdWlyeS54bHN4Jyk7XHJcbiAgfVxyXG5cclxuICBleHBvcnRUb0NTVigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy50cmFuc2FjdGlvbkRhdGE/Lmxlbmd0aCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHRpdGxlID0gJ1RyYW5zYWN0aW9uIEVucXVpcnknO1xyXG4gICAgY29uc3QgbWV0YWRhdGEgPSB0aGlzLmV4cG9ydFNlcnZpY2UuZ2VuZXJhdGVSZXBvcnRNZXRhZGF0YShbXHJcbiAgICAgIFsnUmVwb3J0IFBlcmlvZDogJywgdGhpcy5yZXBvcnRQZXJpb2RdLFxyXG4gICAgICBbJ1JlcG9ydCBVc2VyICYgVGltZTogJywgdGhpcy5yZXBvcnRVc2VyYW5kVGltZV1cclxuICAgIF0pO1xyXG5cclxuICAgIGNvbnN0IHsgaGVhZGVycywgcm93cyB9ID0gdGhpcy5leHBvcnRTZXJ2aWNlLnByZXBhcmVFeHBvcnRUYWJsZSh0aGlzLnRyYW5zYWN0aW9uRGF0YSwgdGhpcy5jb2x1bW5EZWZzLCB7XHJcbiAgICAgIGN1cnJlbmN5RmllbGRzOiBbXVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5leHBvcnRTZXJ2aWNlLmV4cG9ydFRvQ3N2VW5pdmVyc2FsKHRpdGxlLCBtZXRhZGF0YSwgdGhpcy5zZWFyY2hDcml0ZXJpYSwgaGVhZGVycywgcm93cywgJ1RyYW5zYWN0aW9uX0VucXVpcnkuY3N2Jyk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVGb3JtVmFsaWQoaXNWYWxpZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5pc0Zvcm1WYWxpZCA9IGlzVmFsaWQ7XHJcbiAgfVxyXG59IiwiPGxpYi1zZWFyY2gtZmlsdGVyIFxyXG4gICAgW1JlcG9ydE5hbWVdPVwiUmVwb3J0TmFtZVwiIFxyXG4gICAgKHNlYXJjaENsaWNrZWQpPVwiaGFuZGxlU2VhcmNoKCRldmVudClcIlxyXG4gICAgKGZvcm1WYWxpZCk9XCJoYW5kbGVGb3JtVmFsaWQoJGV2ZW50KVwiXHJcbiAgICA+XHJcbjwvbGliLXNlYXJjaC1maWx0ZXI+XHJcblxyXG48YXBwLWxvYWRlciAqbmdJZj1cImxvYWRpbmdTdGF0ZSA9PT0gQ29tcG9uZW50TG9hZGluZ1N0YXRlLkxvYWRpbmdcIj48L2FwcC1sb2FkZXI+XHJcblxyXG48c3BhbiAqbmdJZj1cImxvYWRpbmdTdGF0ZSA9PT0gQ29tcG9uZW50TG9hZGluZ1N0YXRlLkVycm9yXCI+e3sgZXJyb3JNZXNzYWdlIH19PC9zcGFuPlxyXG5cclxuPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LXdhcm5pbmcgbXQtM1wiICpuZ0lmPVwiaGFzU2VhcmNoZWQgJiYgdHJhbnNhY3Rpb25EYXRhLmxlbmd0aCA9PT0gMCAmJiBsb2FkaW5nU3RhdGUgPT09IENvbXBvbmVudExvYWRpbmdTdGF0ZS5Db21wbGV0ZVwiPlxyXG4gICAgTm8gdHJhbnNhY3Rpb25zIGZvdW5kIG1hdGNoaW5nIHlvdXIgc2VhcmNoIGNyaXRlcmlhLlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJ0cmFuc2FjdGlvbkRhdGEgJiYgdHJhbnNhY3Rpb25EYXRhLmxlbmd0aCA+IDAgJiYgbG9hZGluZ1N0YXRlID09PSBDb21wb25lbnRMb2FkaW5nU3RhdGUuQ29tcGxldGUgJiYgaXNGb3JtVmFsaWRcIj5cclxuXHJcbiAgPGxpYi1tZXRhZGF0YSBcclxuICAgIFtyZXBvcnROYW1lXT1cIlJlcG9ydE5hbWVcIiBcclxuICAgIFtzaG93bWV0YURhdGFPbmVdPVwidHJ1ZVwiIFxyXG4gICAgW3Nob3dtZXRhRGF0YVR3b109XCJ0cnVlXCIgXHJcbiAgICBbbWV0YURhdGFPbmVdPVwibWV0YURhdGFPbmVcIlxyXG4gICAgW21ldGFEYXRhVHdvXT1cIm1ldGFEYXRhVHdvXCIgXHJcbiAgICAoZXhwb3J0RXZlbnQpPVwiaGFuZGxlRXhwb3J0KCRldmVudClcIiBcclxuICAgIChzZWFyY2hFdmVudCk9XCJmaWx0ZXIoJGV2ZW50KVwiPlxyXG4gIDwvbGliLW1ldGFkYXRhPlxyXG5cclxuICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiICpuZ0lmPVwiZmlsdGVyZWREYXRhLmxlbmd0aCA+IDBcIj5cclxuXHJcbiAgICA8bGliLXBhZ2Utc2l6ZS1zZWxlY3RvciBcclxuICAgICAgW3RvdGFsRW50cmllc109XCJ0cmFuc2FjdGlvbkRhdGEubGVuZ3RoXCIgXHJcbiAgICAgIFtkZWZhdWx0U2l6ZV09XCInMTUnXCIgXHJcbiAgICAgIFtncmlkQXBpXT1cImdyaWRBcGlcIj5cclxuICAgIDwvbGliLXBhZ2Utc2l6ZS1zZWxlY3Rvcj5cclxuXHJcbiAgICA8YWctZ3JpZC1hbmd1bGFyIGNsYXNzPVwiYWctdGhlbWUtYWxwaW5lIHRyYW5zYWN0aW9uLWdyaWRcIiBcclxuICAgICAgW3Jvd0RhdGFdPVwiZmlsdGVyZWREYXRhXCIgXHJcbiAgICAgIFtjb2x1bW5EZWZzXT1cImNvbHVtbkRlZnNcIlxyXG4gICAgICBbZGVmYXVsdENvbERlZl09XCJkZWZhdWx0Q29sRGVmXCJcclxuICAgICAgW3Jvd0hlaWdodF09XCIyMlwiIFxyXG4gICAgICBbcGFnaW5hdGlvbl09XCJ0cnVlXCIgXHJcbiAgICAgIFtoZWFkZXJIZWlnaHRdPVwiMzBcIiBcclxuICAgICAgW3BhZ2luYXRpb25QYWdlU2l6ZV09XCJwYWdpbmF0aW9uUGFnZVNpemVcIlxyXG4gICAgICAoZ3JpZFJlYWR5KT1cIm9uR3JpZFJlYWR5KCRldmVudClcIiBcclxuICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiA0MzVweDtcIj5cclxuICAgIDwvYWctZ3JpZC1hbmd1bGFyPlxyXG4gIDwvZGl2PlxyXG5cclxuPC9kaXY+Il19
|
|
@@ -41,6 +41,7 @@ export class TransactionMonitoringReportComponent {
|
|
|
41
41
|
this.showMessage = false;
|
|
42
42
|
this.noDataFound = false;
|
|
43
43
|
this.isFormValid = false;
|
|
44
|
+
this.clearSearch = false;
|
|
44
45
|
this.columnDefs = [
|
|
45
46
|
{ field: 'businessDateTime', headerName: 'Business Date', flex: 1, headerClass: 'ag-left-aligned-header', minWidth: 70, wrapText: true, autoHeight: true, tooltipField: 'businessDateTime' },
|
|
46
47
|
{ field: 'transactionDateTime', headerName: 'Transaction Date', flex: 2, headerClass: 'ag-left-aligned-header', minWidth: 100, wrapText: true, autoHeight: true, tooltipField: 'transactionDateTime' },
|
|
@@ -121,7 +122,9 @@ export class TransactionMonitoringReportComponent {
|
|
|
121
122
|
receiveCountry: params['receiveCountry'],
|
|
122
123
|
toDate: params['toDate'],
|
|
123
124
|
fromDate: params['fromDate'],
|
|
124
|
-
isRealtime: params['isRealtime'] === 'true' || params['isRealtime'] === true
|
|
125
|
+
isRealtime: params['isRealtime'] === 'true' || params['isRealtime'] === true,
|
|
126
|
+
loggedInTime: params['loggedInTime'],
|
|
127
|
+
count: Number(params['count'])
|
|
125
128
|
};
|
|
126
129
|
}
|
|
127
130
|
else {
|
|
@@ -240,13 +243,27 @@ export class TransactionMonitoringReportComponent {
|
|
|
240
243
|
return '';
|
|
241
244
|
}
|
|
242
245
|
handleSearch(criteria) {
|
|
246
|
+
if (this.initialFilters != null) {
|
|
247
|
+
const realtimeStatuses = ['Paid', 'PaidCancelled', 'Cancelled', 'Void', 'Rejected'];
|
|
248
|
+
const isTerminatingStatus = realtimeStatuses.includes(this.initialFilters?.transactionStatus);
|
|
249
|
+
const isZeroCount = this.initialFilters?.count === 0;
|
|
250
|
+
// block api call
|
|
251
|
+
if (isTerminatingStatus && isZeroCount && (!criteria.modal.fromDate && !criteria.modal.toDate)) {
|
|
252
|
+
this.noDataFound = true;
|
|
253
|
+
this.showReport = true;
|
|
254
|
+
this.loadingState = ComponentLoadingStates.Complete;
|
|
255
|
+
this.clearSearch = false;
|
|
256
|
+
this.showMessage = true;
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
243
260
|
this.searchCriteria = criteria.searchCriteria;
|
|
244
261
|
this.reportDate = new Date().toISOString();
|
|
245
262
|
this.reportDate = formatDate(this.reportDate, 'dd/MM/yyyy hh:mm a', 'en-US');
|
|
246
263
|
const modal = criteria.modal;
|
|
247
264
|
this.user = criteria.sysUserID;
|
|
248
265
|
// this.fromDate = formatDate(modal.fromDate, 'dd/MM/yyyy hh:mm a', 'en-US').slice(0, 10);
|
|
249
|
-
//this.toDate = formatDate(modal.toDate, 'dd/MM/yyyy hh:mm a', 'en-US').slice(0, 10);
|
|
266
|
+
// this.toDate = formatDate(modal.toDate, 'dd/MM/yyyy hh:mm a', 'en-US').slice(0, 10);
|
|
250
267
|
this.fromDate = modal.fromDate
|
|
251
268
|
? formatDate(modal.fromDate, 'dd/MM/yyyy hh:mm a', 'en-US').slice(0, 10)
|
|
252
269
|
: null;
|
|
@@ -256,7 +273,7 @@ export class TransactionMonitoringReportComponent {
|
|
|
256
273
|
console.log(modal);
|
|
257
274
|
// Code For Meta Data
|
|
258
275
|
this.leftData = {
|
|
259
|
-
//
|
|
276
|
+
// 'Report Period': this.fromDate + " - " + this.toDate,
|
|
260
277
|
'Report Period': this.fromDate && this.toDate
|
|
261
278
|
? `${this.fromDate} - ${this.toDate}`
|
|
262
279
|
: ''
|
|
@@ -274,9 +291,11 @@ export class TransactionMonitoringReportComponent {
|
|
|
274
291
|
"PayoutCurrency": modal.receiveCurrency,
|
|
275
292
|
"TransactionType": modal.product,
|
|
276
293
|
"BranchCode": modal.branch,
|
|
277
|
-
"IsrealTime":
|
|
294
|
+
"IsrealTime": this.initialFilters?.isRealtime ?? false,
|
|
295
|
+
"LoggedInTime": this.initialFilters?.loggedInTime ?? null
|
|
278
296
|
};
|
|
279
297
|
this.showMessage = true;
|
|
298
|
+
this.clearSearch = true;
|
|
280
299
|
this.loadingState = ComponentLoadingStates.Loading;
|
|
281
300
|
this.reportService.getTransactionMonitoringReport(searchData).subscribe({
|
|
282
301
|
next: (data) => {
|
|
@@ -291,10 +310,12 @@ export class TransactionMonitoringReportComponent {
|
|
|
291
310
|
},
|
|
292
311
|
error: (err) => {
|
|
293
312
|
this.loadingState = ComponentLoadingStates.Complete;
|
|
313
|
+
this.clearSearch = false;
|
|
294
314
|
},
|
|
295
315
|
complete: () => {
|
|
296
316
|
this.loadingState = ComponentLoadingStates.Complete;
|
|
297
317
|
this.showReport = true;
|
|
318
|
+
this.clearSearch = false;
|
|
298
319
|
}
|
|
299
320
|
});
|
|
300
321
|
}
|
|
@@ -308,4 +329,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
308
329
|
type: Component,
|
|
309
330
|
args: [{ selector: 'lib-transaction-monitoring-report', template: "<lib-search-filter \r\n [ReportName]=\"ReportName\" \r\n [initialFilters]=\"initialFilters\"\r\n (searchClicked)=\"handleSearch($event)\"\r\n (formValid)=\"handleFormValid($event)\">\r\n</lib-search-filter>\r\n<app-loader class=\"\" *ngIf=\"loadingState == ComponentLoadingState.Loading\"></app-loader>\r\n\r\n<section *ngIf=\"showReport && isFormValid\" class=\"my-2\">\r\n <ng-container *ngIf=\"!noDataFound\">\r\n <lib-metadata [reportName]=\"ReportName\" [showmetaDataOne]=\"true\" [showmetaDataTwo]=\"true\" [metaDataOne]=\"leftData\" [metaDataTwo]=\"metaDataTwo\"(exportEvent)=\"handleExport($event)\" (searchEvent)=\"filter($event)\"></lib-metadata>\r\n\r\n <ngb-accordion #acc=\"ngbAccordion\" [closeOthers]=\"false\">\r\n <!-- <ng-container *ngFor=\"let item of filteredData | keyvalue; let i = index\"> -->\r\n <ng-container *ngFor=\"let item of filteredData | keyvalue: statusOrderComparator; let i = index\">\r\n <ngb-panel *ngIf=\"item.value.length > 0\" [id]=\"'panel-' + i\">\r\n\r\n <ng-template ngbPanelTitle style=\"height: 10%;\">\r\n <label\r\n class=\"panel-cls\">{{\r\n item.key }} - {{item.value.length\r\n }}</label>\r\n </ng-template>\r\n\r\n <ng-template ngbPanelContent>\r\n <div style=\"position: relative;\">\r\n <lib-page-size-selector [totalEntries]=\"item?.value?.length\"\r\n [defaultSize]=\"'15'\" [gridApi]=\"gridApis[i]\">\r\n ></lib-page-size-selector>\r\n\r\n <ag-grid-angular class=\"ag-theme-alpine transaction-grid\" style=\"width: 100%;height: 380px;\"\r\n [columnDefs]=\"columnDefs\" [defaultColDef]=\"defaultColDef\" [rowData]=\"item.value\" [rowHeight]=\"20\"\r\n [headerHeight]=\"22\"[pagination]=\"true\" [paginationPageSize]=\"paginationArray[i]\" (gridReady)=\"onGridReady($event,i)\"\r\n >\r\n </ag-grid-angular>\r\n </div>\r\n </ng-template>\r\n\r\n </ngb-panel>\r\n </ng-container>\r\n </ngb-accordion>\r\n </ng-container>\r\n <div class=\"alert alert-warning mt-3\" *ngIf=\"noDataFound\">\r\n No Data found matching your search criteria.\r\n </div>\r\n</section>", styles: [".btn-report{border-radius:4px;background-color:#8091a5;color:#fff!important;font-size:14px!important;height:32px!important;height:32px;min-width:110px;margin:0 0 0 20px!important;padding:4px 15px!important}.tooltip-block{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid #ccc!important}.dpicker{border:1px solid #ccc!important;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Noto Sans,Liberation Sans,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\"!important;font-size:12px!important;font-weight:400!important;height:32px!important}.dpicker:focus{box-shadow:0 0 5px 3px #1877f2!important}.cal{height:32px!important;background-color:#1877f2!important}.cal:focus{box-shadow:none!important}.input-group-button{background:none;border:1px solid #0081c6;background-color:#0081c6;border-radius:0 3px 3px 0;min-width:35px;margin-left:1px;cursor:pointer}.labl{font-size:11.2px;font-weight:700!important}.info{font-size:12px!important;font-weight:400;padding-left:.5rem}.label-data{font-weight:600!important;font-size:.7rem!important;line-height:1rem}.meta-td{padding:0!important}.title{text-align:center;font-size:18px;font-weight:700!important}.export-options{display:inline-flex;font-size:.75rem;height:2rem!important;width:5rem!important;margin-right:-1;margin-left:.4rem}.opt-cls{display:block;height:100%;width:5rem;border:1px solid #ccc!important;border-radius:4px!important;margin-right:1rem!important;outline:none!important}.opt-cls:focus{box-shadow:0 0 5px 3px #1877f2}.export-selector{height:2rem!important;width:100%}.search-btn{height:32px!important;height:32px;width:36px;background-color:#8091a5;border:none;border-radius:0 4px 4px 0;display:flex;justify-content:center;align-items:center}.search-btn:hover{background-color:#8091a5}.search-icon{height:16px;width:16px;object-fit:contain}.search-input{outline:none!important;border:1px solid #ccc!important;width:190px;height:32px!important;font-size:.75rem;padding:.25rem .5rem;border-top-left-radius:4px;border-bottom-left-radius:4px;border-top-right-radius:0!important;border-bottom-right-radius:0!important;text-transform:uppercase}.search-input:focus{box-shadow:0 0 5px 3px #1877f2!important}.searchBox{margin-right:auto;display:flex}table{width:100%;border-collapse:separate;margin-bottom:0!important;table-layout:fixed!important}td{padding:0 1rem 6px 0!important;border-right:0 solid #ffffff!important;background-color:#fff!important}.row-cls{height:2.5rem!important}.inputbox{padding-left:1rem;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Noto Sans,Liberation Sans,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\"}::ng-deep .ng-select.ng-select-single .ng-select-container{height:32px I!important}::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container{max-height:32px!important;overflow-x:auto!important;overflow-y:auto;white-space:nowrap!important}::ng-deep .ng-select .ng-select-multiple .ng-select-container .ng-value-container{max-height:32px!important;overflow-x:auto!important;white-space:nowrap!important}::ng-deep .ng-select .ng-select-multiple .ng-select-container .ng-value-container .ng-value{max-width:200px!important;overflow:hidden!important;text-overflow:hidden!important;white-space:nowrap!important}::ng-deep .ng-select .ng-select-container{cursor:default;display:flex;outline:none;overflow:hidden;position:relative;width:100%}::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{box-sizing:border-box;cursor:pointer;display:block;white-space:nowrap;overflow-x:scroll!important;text-overflow:clip!important}::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option::-webkit-scrollbar{display:none!important;width:0!important}::ng-deep .ng-select .ng-select-container:focus-within{box-shadow:0 0 5px 3px #1877f2!important}::ng-deep .ng-select .ng-select-container:focus{box-shadow:0 0 5px 3px #1877f2!important}::ng-deep .ng-select .ng-select-container,::ng-deep .ng-select.ng-select-single .ng-select-container,::ng-deep .ng-select.ng-select-multiple .ng-select-container{min-height:32px!important;height:32px!important;font-size:12px!important}.panel-cls{font-weight:700;font-size:13px;line-height:1.2;margin:0;padding:2px 0;color:#16181e}.transaction-grid ::ng-deep .ag-header{background-color:#f9f9f9;font-weight:600;font-size:10px;color:#000;border-right:1px solid #e0e0e0}:host ::ng-deep .ag-header-cell{padding:2px!important;align-items:center!important;justify-content:center!important;border-right:1px solid #e0e0e0;white-space:normal!important;word-break:normal!important;overflow-wrap:break-word!important;text-align:center!important}::ng-deep .ag-header-cell-label{display:flex!important;justify-content:center!important;align-items:center!important;width:100%;text-align:center!important}::ng-deep .ag-header-cell-text{text-align:center!important;width:100%!important;display:flex!important;justify-content:center!important}.transaction-grid ::ng-deep .ag-row{border-bottom:1px solid #e0e0e0}.transaction-grid ::ng-deep .ag-cell{font-size:9px;white-space:normal!important;word-break:keep-all!important;overflow-wrap:anywhere;line-height:1.4;padding:4px!important;color:#000;font-weight:500;border-right:.5px solid #e0e0e0;align-content:center;user-select:text!important;-webkit-user-select:text!important;-moz-user-select:text!important;-ms-user-select:text!important;cursor:text}::ng-deep .ag-cell-label-container{padding:0!important}.ag-theme-alpine{--ag-header-font-size: 10px;--ag-font-size: 10px;--ag-header-background-color: #fdfdfd;--ag-header-foreground-color: rgb(0, 0, 0)}::ng-deep .ag-paging-panel{height:30px!important;font-weight:500!important}\n"] }]
|
|
310
331
|
}], ctorParameters: function () { return [{ type: i1.ReportService }, { type: i0.NgZone }, { type: i2.ActivatedRoute }]; } });
|
|
311
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbW9uaXRvcmluZy1yZXBvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmVwb3J0cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL3RyYW5zYWN0aW9uLW1vbml0b3JpbmctcmVwb3J0L3RyYW5zYWN0aW9uLW1vbml0b3JpbmctcmVwb3J0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcG9ydHMtbGliL3NyYy9saWIvY29tcG9uZW50cy90cmFuc2FjdGlvbi1tb25pdG9yaW5nLXJlcG9ydC90cmFuc2FjdGlvbi1tb25pdG9yaW5nLXJlcG9ydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxRUFBcUU7QUFDckUsbUVBQW1FO0FBQ25FLDRHQUE0RztBQUM1Ryx1RUFBdUU7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELGdEQUFnRDtBQUNoRCxvRkFBb0Y7QUFDcEYsZ0ZBQWdGO0FBQ2hGLDRIQUE0SDtBQUU1SCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFHbEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7OztBQVE3QyxNQUFNLE9BQU8sb0NBQW9DO0lBa0U3QyxZQUFvQixhQUE0QixFQUFVLE1BQWMsRUFBUyxLQUFxQjtRQUFsRixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQWpFdEcsWUFBTyxHQUFrRCxFQUFFLENBQUE7UUFDM0Qs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QUFHLHNCQUFzQixDQUFDLFFBQVEsQ0FBQztZQUN4RCxDQUFDO1lBRUQsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDWCxJQUFJLENBQUMsWUFBWSxHQUFHLHNCQUFzQixDQUFDLFFBQVEsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDM0IsQ0FBQztTQUNKLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxlQUFlLENBQUMsT0FBZ0I7UUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUM7SUFDL0IsQ0FBQzs7aUlBNVRRLG9DQUFvQztxSEFBcEMsb0NBQW9DLHlFQ3hCakQsdXNFQTZDVTsyRkRyQkcsb0NBQW9DO2tCQUxoRCxTQUFTOytCQUNJLG1DQUFtQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGltcG9ydCB7IENvbXBvbmVudCwgTmdab25lLCBPbkluaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG4vLyBpbXBvcnQgeyBSZXBvcnRTZXJ2aWNlIH0gZnJvbSAnc3JjL2FwcC9zZXJ2aWNlcy9yZXBvcnQuc2VydmljZSc7XHJcbi8vIGltcG9ydCB7IEJyYW5jaEFjdGl2aXR5UmVwb3J0IH0gZnJvbSAnc3JjL2FwcC9tb2RlbHMvYnJhbmNoLWFjdGl2aXR5LXJlcG9ydC9icmFuY2gtYWN0aXZpdHktc2VuZC1yZXBvcnQnO1xyXG4vLyBpbXBvcnQgeyBDb2xEZWYsIEdyaWRBcGksIEdyaWRSZWFkeUV2ZW50IH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xyXG5pbXBvcnQgeyB0aGVtZUFscGluZSB9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS90aGVtaW5nJztcclxuLy8gaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbi8vIGltcG9ydCB7IENvbXBvbmVudExvYWRpbmdTdGF0ZXMgfSBmcm9tICdzcmMvYXBwL21vZGVscy9jb21wb25lbnQtbG9hZGluZy1zdGF0ZXMnO1xyXG4vLyBpbXBvcnQgeyBHZW5lcmljRXhwb3J0U2VydmljZSB9IGZyb20gJ3NyYy9hcHAvc2hhcmVkL2V4cG9ydC1nZW5lcmljLnNlcnZpY2UnO1xyXG4vLyBpbXBvcnQgeyBUcmFuc2FjdGlvbk1vbml0b3JpbmdSZXBvcnQgfSBmcm9tICdzcmMvYXBwL21vZGVscy90cmFuc2FjdGlvbi1tb25pdG9yaW5nLXJlcG9ydC90cmFuc2FjdGlvbi1tb25pdG9yaW5nLXJlcG9ydCc7XHJcblxyXG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgTmdab25lLCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBUcmFuc2FjdGlvbk1vbml0b3JpbmdSZXBvcnQgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3RyYW5zYWN0aW9uLW1vbml0b3JpbmctcmVwb3J0L3RyYW5zYWN0aW9uLW1vbml0b3JpbmctcmVwb3J0XCI7XHJcbmltcG9ydCB7IENvbERlZiwgR3JpZEFwaSwgR3JpZFJlYWR5RXZlbnQgfSBmcm9tIFwiYWctZ3JpZC1jb21tdW5pdHlcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50TG9hZGluZ1N0YXRlcyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29tcG9uZW50LWxvYWRpbmctc3RhdGVzXCI7XHJcbmltcG9ydCB7IEdlbmVyaWNFeHBvcnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9leHBvcnQtZ2VuZXJpYy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFJlcG9ydFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvcmVwb3J0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdsaWItdHJhbnNhY3Rpb24tbW9uaXRvcmluZy1yZXBvcnQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RyYW5zYWN0aW9uLW1vbml0b3JpbmctcmVwb3J0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3RyYW5zYWN0aW9uLW1vbml0b3JpbmctcmVwb3J0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uTW9uaXRvcmluZ1JlcG9ydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBkYXRhTWFwOiBSZWNvcmQ8c3RyaW5nLCBUcmFuc2FjdGlvbk1vbml0b3JpbmdSZXBvcnRbXT4gPSB7fVxyXG4gICAgZmlsdGVyZWREYXRhOiBSZWNvcmQ8c3RyaW5nLCBUcmFuc2FjdGlvbk1vbml0b3JpbmdSZXBvcnRbXT4gPSB7fVxyXG4gICAgcHJveHlEYXRhOiBSZWNvcmQ8c3RyaW5nLCBUcmFuc2FjdGlvbk1vbml0b3JpbmdSZXBvcnRbXT4gPSB7fVxyXG4gICAgc2hvd1JlcG9ydDogYm9vbGVhbjtcclxuICAgIHBhZ2luYXRpb25BcnJheTogYW55W107XHJcbiAgICBzZWxlY3RlZEV4cG9ydE9wdGlvbiA9ICdleGNlbCc7XHJcbiAgICBncmlkQXBpczogR3JpZEFwaVtdID0gW107XHJcbiAgICBncmlkQ29sdW1uQXBpO1xyXG4gICAgdXNlcjogc3RyaW5nID0gXCJcIjtcclxuICAgIHJlcG9ydERhdGU6IHN0cmluZztcclxuICAgIGZyb21EYXRlOiBzdHJpbmc7XHJcbiAgICB0b0RhdGU6IHN0cmluZztcclxuICAgIHNlYXJjaFRleHQ6IHN0cmluZztcclxuICAgIGJ1ZmZlcjogYW55O1xyXG4gICAgc3lzVXNlcklkOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIGxvZ29CYXNlNjQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIENvbXBvbmVudExvYWRpbmdTdGF0ZSA9IENvbXBvbmVudExvYWRpbmdTdGF0ZXM7XHJcbiAgICBsb2FkaW5nU3RhdGU6IENvbXBvbmVudExvYWRpbmdTdGF0ZXMgPSBDb21wb25lbnRMb2FkaW5nU3RhdGVzLkxvYWRpbmc7XHJcbiAgICBSZXBvcnROYW1lOiBzdHJpbmcgPSBcIlRyYW5zYWN0aW9uIE1vbml0b3JpbmdcIjtcclxuICAgIGxlZnREYXRhOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xyXG4gICAgbWV0YURhdGFUd286IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XHJcbiAgICBleHBvcnRTZXJ2aWNlOiBHZW5lcmljRXhwb3J0U2VydmljZSA9IGluamVjdChHZW5lcmljRXhwb3J0U2VydmljZSk7XHJcbiAgICBzZWFyY2hDcml0ZXJpYTogW3N0cmluZywgc3RyaW5nXVtdID0gW107XHJcbiAgICBpbml0aWFsRmlsdGVyczogYW55O1xyXG5cclxuICAgIC8vIGZsYWdzXHJcbiAgICBzaG93TWVzc2FnZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgbm9EYXRhRm91bmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGlzRm9ybVZhbGlkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY29sdW1uRGVmczogQ29sRGVmPFRyYW5zYWN0aW9uTW9uaXRvcmluZ1JlcG9ydD5bXSA9IFtcclxuICAgICAgICAgICB7IGZpZWxkOiAnYnVzaW5lc3NEYXRlVGltZScsIGhlYWRlck5hbWU6ICdCdXNpbmVzcyBEYXRlJywgZmxleDogMSwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDcwLCB3cmFwVGV4dDogdHJ1ZSwgYXV0b0hlaWdodDogdHJ1ZSwgdG9vbHRpcEZpZWxkOiAnYnVzaW5lc3NEYXRlVGltZScgfSxcclxuICAgICAgICAgICB7IGZpZWxkOiAndHJhbnNhY3Rpb25EYXRlVGltZScsIGhlYWRlck5hbWU6ICdUcmFuc2FjdGlvbiBEYXRlJywgZmxleDogMiwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDEwMCwgd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIHRvb2x0aXBGaWVsZDogJ3RyYW5zYWN0aW9uRGF0ZVRpbWUnIH0sXHJcbiAgICAgICAgICAgeyBmaWVsZDogJ3RyYW5zYWN0aW9uTnVtYmVyJywgaGVhZGVyTmFtZTogJ1RyYW5zYWN0aW9uIE51bWJlcicsIGZsZXg6IDEuOCwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDkwLCB3cmFwVGV4dDogdHJ1ZSwgYXV0b0hlaWdodDogdHJ1ZSwgY2VsbENsYXNzOiAnYWctbGVmdC1jb2xzLWNlbGwgY29tcGFjdC1jZWxsLXRyYW5zYWN0aW9uJywgdG9vbHRpcEZpZWxkOiAndHJhbnNhY3Rpb25OdW1iZXInIH0sXHJcbiAgICAgICAgICAgeyBmaWVsZDogJ3Byb2R1Y3QnLCBoZWFkZXJOYW1lOiAnUHJvZHVjdCcsIGZsZXg6IDAuNSwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDYwLCB3cmFwVGV4dDogdHJ1ZSwgYXV0b0hlaWdodDogdHJ1ZSwgdG9vbHRpcEZpZWxkOiAncHJvZHVjdCcgfSxcclxuICAgICAgICAgICB7IGZpZWxkOiAnc2VuZEFnZW50Q29kZScsIGhlYWRlck5hbWU6ICdTZW5kQ2xpZW50IENvZGUnLCBmbGV4OiAxLCBoZWFkZXJDbGFzczogJ2FnLWxlZnQtYWxpZ25lZC1oZWFkZXInLCBtaW5XaWR0aDogOTAsIHdyYXBUZXh0OiB0cnVlLCBhdXRvSGVpZ2h0OiB0cnVlLCB0b29sdGlwRmllbGQ6ICdzZW5kQWdlbnRDb2RlJyB9LFxyXG4gICAgICAgICAgIHsgZmllbGQ6ICdzZW5kQWdlbnRCcmFuY2hDb2RlJywgaGVhZGVyTmFtZTogJ1NlbmRDbGllbnQgQnJhbmNoQ29kZScsIGZsZXg6IDEsIGhlYWRlckNsYXNzOiAnYWctbGVmdC1hbGlnbmVkLWhlYWRlcicsIG1pbldpZHRoOiA5MCwgd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIHRvb2x0aXBGaWVsZDogJ3NlbmRBZ2VudEJyYW5jaENvZGUnIH0sXHJcbiAgICAgICAgICAgeyBmaWVsZDogJ3NlbmRBZ2VudEJyYW5jaE5hbWUnLCBoZWFkZXJOYW1lOiAnU2VuZENsaWVudCBCcmFuY2hOYW1lJywgZmxleDogMSwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDEyMCwgd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIHRvb2x0aXBGaWVsZDogJ3NlbmRBZ2VudEJyYW5jaE5hbWUnIH0sXHJcbiAgIFxyXG4gICAgICAgICAgIHsgZmllbGQ6ICdzZW5kZXJOYW1lJywgaGVhZGVyTmFtZTogJ1NlbmRlciBOYW1lJywgZmxleDogMSwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDEyMCwgd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIHRvb2x0aXBGaWVsZDogJ3NlbmRlck5hbWUnIH0sXHJcbiAgICAgICAgICAgeyBmaWVsZDogJ3JlY2VpdmVyTmFtZScsIGhlYWRlck5hbWU6ICdSZWNlaXZlciBOYW1lJywgZmxleDogMSwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDEwMCwgd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIHRvb2x0aXBGaWVsZDogJ3JlY2VpdmVyTmFtZScgfSxcclxuICAgICAgICAgICB7IGZpZWxkOiAncmVjZWl2ZUFnZW50Q29kZScsIGhlYWRlck5hbWU6ICdSZWNlaXZlIENsaWVudENvZGUnLCBmbGV4OiAxLCBoZWFkZXJDbGFzczogJ2FnLWxlZnQtYWxpZ25lZC1oZWFkZXInLCBtaW5XaWR0aDogOTAsIHdyYXBUZXh0OiB0cnVlLCBhdXRvSGVpZ2h0OiB0cnVlLCB0b29sdGlwRmllbGQ6ICdyZWNlaXZlQWdlbnRDb2RlJyB9LFxyXG4gICAgICAgICAgIHsgZmllbGQ6ICdwYXlvdXRDQ2NvZGUnLCBoZWFkZXJOYW1lOiAnUmVjZWl2ZUNjeSBDb2RlJywgZmxleDogMSwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDgwLCB3cmFwVGV4dDogdHJ1ZSwgYXV0b0hlaWdodDogdHJ1ZSwgdG9vbHRpcEZpZWxkOiAncGF5b3V0Q0Njb2RlJyB9LFxyXG4gICAgICAgICAgIHsgZmllbGQ6ICdwYXlvdXRBbW91bnQnLCBoZWFkZXJOYW1lOiAnUmVjZWl2ZSBBbW91bnQnLCBmbGV4OiAxLCBoZWFkZXJDbGFzczogJ2FnLWxlZnQtYWxpZ25lZC1oZWFkZXInLCBtaW5XaWR0aDogOTAsIHdyYXBUZXh0OiB0cnVlLCBhdXRvSGVpZ2h0OiB0cnVlLCBjZWxsQ2xhc3M6ICdhZy1yaWdodC1hbGlnbmVkLWNlbGwgY29tcGFjdC1jZWxsJywgdG9vbHRpcEZpZWxkOiAncGF5b3V0QW1vdW50JyB9LFxyXG4gICAgICAgICAgIHsgZmllbGQ6ICdwYXlpbkNDY29kZScsIGhlYWRlck5hbWU6ICdTZW5kQ2N5IENvZGUnLCBmbGV4OiAxLCBoZWFkZXJDbGFzczogJ2FnLWxlZnQtYWxpZ25lZC1oZWFkZXInLCBtaW5XaWR0aDogNjAsIHdyYXBUZXh0OiB0cnVlLCBhdXRvSGVpZ2h0OiB0cnVlLCB0b29sdGlwRmllbGQ6ICdwYXlpbkNDY29kZScgfSxcclxuICAgICAgICAgICB7IGZpZWxkOiAncGF5aW5BbW91bnQnLCBoZWFkZXJOYW1lOiAnU2VuZCBBbW91bnQnLCBmbGV4OiAxLCBoZWFkZXJDbGFzczogJ2FnLWxlZnQtYWxpZ25lZC1oZWFkZXInLCBtaW5XaWR0aDogODAsIHdyYXBUZXh0OiB0cnVlLCBhdXRvSGVpZ2h0OiB0cnVlLCBjZWxsQ2xhc3M6ICdhZy1yaWdodC1hbGlnbmVkLWNlbGwgY29tcGFjdC1jZWxsJywgdG9vbHRpcEZpZWxkOiAncGF5aW5BbW91bnQnIH0sXHJcbiAgICAgICAgICAgeyBmaWVsZDogJ3RyYW5zYWN0aW9uQ29tbWlzc2lvbkFtb3VudCcsIGhlYWRlck5hbWU6ICdTZXJ2aWNlIEZlZScsIGZsZXg6IDEsIGhlYWRlckNsYXNzOiAnYWctbGVmdC1hbGlnbmVkLWhlYWRlcicsIG1pbldpZHRoOiA3MCwgd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIGNlbGxDbGFzczogJ2FnLXJpZ2h0LWFsaWduZWQtY2VsbCBjb21wYWN0LWNlbGwnLCB0b29sdGlwRmllbGQ6ICd0cmFuc2FjdGlvbkNvbW1pc3Npb25BbW91bnQnIH0sXHJcbiAgICAgICAgICAgeyBmaWVsZDogJ3RheCcsIGhlYWRlck5hbWU6ICdUYXgnLCBmbGV4OiAxLCBoZWFkZXJDbGFzczogJ2FnLWxlZnQtYWxpZ25lZC1oZWFkZXInLCBtaW5XaWR0aDogNjAsIHdyYXBUZXh0OiB0cnVlLCBhdXRvSGVpZ2h0OiB0cnVlLCBjZWxsQ2xhc3M6ICdhZy1yaWdodC1hbGlnbmVkLWNlbGwgY29tcGFjdC1jZWxsJywgdG9vbHRpcEZpZWxkOiAndGF4JyB9LFxyXG4gICAgICAgICAgIHsgZmllbGQ6ICd0b3RhbFBheWluQW1vdW50JywgaGVhZGVyTmFtZTogJ1RvdGFsIFNlbmQgQW1vdW50JywgZmxleDogMSwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDEwMCwgd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIGNlbGxDbGFzczogJ2FnLXJpZ2h0LWFsaWduZWQtY2VsbCBjb21wYWN0LWNlbGwnLCB0b29sdGlwRmllbGQ6ICd0b3RhbFBheWluQW1vdW50JyB9LFxyXG4gICAgICAgICAgIHsgZmllbGQ6ICd0eG5TdGF0dXNEYXRlQW5kVGltZScsIGhlYWRlck5hbWU6ICdUeG4gU3RhdHVzIERhdGUgJiBUaW1lJywgZmxleDogMSwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDEwMCwgd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIHRvb2x0aXBGaWVsZDogJ3R4blN0YXR1c0RhdGVBbmRUaW1lJyB9XHJcbiAgICAgICBdO1xyXG4gICBcclxuXHJcbiAgICBkZWZhdWx0Q29sRGVmID0ge1xyXG4gICAgICAgIHNvcnRhYmxlOiB0cnVlLFxyXG4gICAgICAgIGZpbHRlcjogdHJ1ZSxcclxuICAgICAgICByZXNpemFibGU6IHRydWUsXHJcbiAgICAgICAgbWlud2lkdGg6IDQwLFxyXG4gICAgICAgIHdyYXBIZWFkZXJUZXh0OiB0cnVlLFxyXG4gICAgICAgIGF1dG9IZWFkZXJIZWlnaHQ6IHRydWUsXHJcbiAgICAgICAgc3VwcHJlc3NTaXplVG9GaXQ6IGZhbHNlLFxyXG4gICAgICAgIHdyYXBUZXh0OiB0cnVlXHJcbiAgICB9O1xyXG4gICAgcm93RGF0YTogVHJhbnNhY3Rpb25Nb25pdG9yaW5nUmVwb3J0W10gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcG9ydFNlcnZpY2U6IFJlcG9ydFNlcnZpY2UsIHByaXZhdGUgbmdab25lOiBOZ1pvbmUscHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUpIHsgfVxyXG5cclxuICAgIHJlcG9ydFRoZW1lID0gdGhlbWVBbHBpbmUud2l0aFBhcmFtcyh7XHJcbiAgICAgICAgaGVhZGVyRm9udFNpemU6ICcxMHB4JyxcclxuICAgICAgICBmb250RmFtaWx5OiBbJ0FyaWFsJywgJ3NhbnMtc2VyaWYnXSxcclxuICAgICAgICBmb250U2l6ZTogJzlweCdcclxuICAgIH0pO1xyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubG9hZGluZ1N0YXRlID0gQ29tcG9uZW50TG9hZGluZ1N0YXRlcy5Db21wbGV0ZTtcclxuICAgICAgICAvLyBDaGVjayBpZiBVc2VyIGlzIGZhbGNvbiB1c2VyIG9yIGZvc3NpbFVzZXJcclxuICAgICAgICBpZiAoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnZm9zc2lsdXNlcm5hbWUnKSkge1xyXG4gICAgICAgICAgICB0aGlzLnN5c1VzZXJJZCA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2Zvc3NpbHVzZXJuYW1lJylcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3lzVXNlcklkID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnZXpyZW1pdHVzZXJuYW1lJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc3lzVXNlcklkID0gdGhpcy5zeXNVc2VySWQucmVwbGFjZSgvXltcIiddKC4qKVtcIiddJC8sICckMScpO1xyXG4gICAgICAgIHRoaXMudXNlciA9IHRoaXMuc3lzVXNlcklkO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiU3lzdGVtIFVzZXIgSWQgOiBcIiArIHRoaXMuc3lzVXNlcklkKTtcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcztcclxuICAgICAgICBjb25zb2xlLmxvZyhcInBhcmFtcyBsZW5ndGg6XCIgKyBPYmplY3Qua2V5cyhwYXJhbXMpLmxlbmd0aClcclxuICAgICAgICBcclxuICAgICAgICBpZiAoT2JqZWN0LmtleXMocGFyYW1zKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbEZpbHRlcnMgPSB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblN0YXR1czogcGFyYW1zWyd0cmFuc2FjdGlvblN0YXR1cyddLFxyXG4gICAgICAgICAgICAgICAgcmVjZWl2ZUNvdW50cnk6IHBhcmFtc1sncmVjZWl2ZUNvdW50cnknXSxcclxuICAgICAgICAgICAgICAgIHRvRGF0ZTogcGFyYW1zWyd0b0RhdGUnXSxcclxuICAgICAgICAgICAgICAgIGZyb21EYXRlOiBwYXJhbXNbJ2Zyb21EYXRlJ10sXHJcbiAgICAgICAgICAgICAgICBpc1JlYWx0aW1lOiBwYXJhbXNbJ2lzUmVhbHRpbWUnXSA9PT0gJ3RydWUnIHx8IHBhcmFtc1snaXNSZWFsdGltZSddID09PSB0cnVlXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0aWFsRmlsdGVycyA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZpbHRlcih0ZXh0OiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaFRleHQgPSB0ZXh0O1xyXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaFRleHQgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaFRleHQ/Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLmRhdGFNYXApO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2VhcmNoVGV4dCA9IHRoaXMuc2VhcmNoVGV4dD8udHJpbSgpPy50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgZW50cmllc10gb2YgT2JqZWN0LmVudHJpZXModGhpcy5wcm94eURhdGEpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkRGF0YSA9IGVudHJpZXMuZmlsdGVyKGVudHJ5ID0+IE9iamVjdC52YWx1ZXMoZW50cnkpXHJcbiAgICAgICAgICAgICAgIC5zb21lKHZhbCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGE6IHN0cmluZyA9IHZhbD8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGE/LnNlYXJjaCh0aGlzLnNlYXJjaFRleHQpID09IC0xID8gZmFsc2UgOiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfSkpXHJcblxyXG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkRGF0YVtrZXldID0gZmlsdGVyZWREYXRhO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmZpbHRlcmVkRGF0YTtcclxuICAgIH1cclxuXHJcbiAgICBvbkdyaWRSZWFkeShwYXJhbXM6IEdyaWRSZWFkeUV2ZW50LCBpZDogbnVtYmVyKSB7XHJcbiAgICAgICAgcGFyYW1zLmFwaS5zaXplQ29sdW1uc1RvRml0KCk7XHJcbiAgICAgICAgdGhpcy5ncmlkQ29sdW1uQXBpID0gcGFyYW1zLmNvbHVtbkFwaTtcclxuICAgICAgICB0aGlzLmdyaWRBcGlzW2lkXSA9IHBhcmFtcy5hcGk7XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlRXhwb3J0KG9wdGlvbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEV4cG9ydE9wdGlvbiA9IG9wdGlvbjtcclxuICAgICAgICBpZiAoIXRoaXMuaGFzQW55R3JvdXBzKCkpIHtcclxuICAgICAgICAgICAgYWxlcnQoXCJUaGVyZSBpcyBubyBkYXRhIHRvIGV4cG9ydCBiYXNlZCBvbiB5b3VyIGN1cnJlbnQgZmlsdGVyLlwiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBJZiBubyBkYXRhLCBkbyBub3RoaW5nLlxyXG4gICAgICAgIGlmICghdGhpcy5maWx0ZXJlZERhdGEgfHwgT2JqZWN0LmtleXModGhpcy5maWx0ZXJlZERhdGEpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICBhbGVydChcIk5vIGRhdGEgdG8gZXhwb3J0XCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHRpdGxlID0gXCJUcmFuc2FjdGlvbiBNb25pdG9yaW5nXCI7XHJcbiAgICAgICAgY29uc3QgcmVwb3J0VGltZUZvcm1hdHRlciA9IHRoaXMuZGF0ZVZhbHVlRm9ybWF0dGVyKCdkZC9NTS95eXl5IGhoOm1tIGEnKTtcclxuICAgICAgICBjb25zdCBtZXRhZGF0YTogW3N0cmluZywgc3RyaW5nXVtdID0gW1xyXG4gICAgICAgICAgICBbJ1JlcG9ydCBQZXJpb2QgJywgdGhpcy5mcm9tRGF0ZSArIFwiIC0gXCIgKyB0aGlzLnRvRGF0ZV0sXHJcbiAgICAgICAgICAgIFsnUmVwb3J0IFVzZXIgJiBUaW1lJywgdGhpcy51c2VyID8gdGhpcy51c2VyICsgXCIgQCBcIiArIHRoaXMucmVwb3J0RGF0ZSA6ICcnICsgXCIgQCBcIiArIHRoaXMucmVwb3J0RGF0ZV0sXHJcbiAgICAgICAgXTtcclxuICAgICAgICAvLyAtLS0gc2VhcmNoIGNyaXRlcmlhIC0tLVxyXG4gICAgICAgIGNvbnN0IHNlYXJjaENyaXRlcmlhOiBbc3RyaW5nLCBzdHJpbmddW10gPSB0aGlzLnNlYXJjaENyaXRlcmlhO1xyXG4gICAgICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLmNvbHVtbkRlZnM7XHJcbiAgICAgICAvLyBjb25zdCBkYXRhID0gdGhpcy5kYXRhTWFwOyAgXHJcbiAgICAgICBjb25zdCBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnlbXT4gPSB7fTtcclxuXHJcbiAgICAgICAgT2JqZWN0LmVudHJpZXModGhpcy5kYXRhTWFwKS5mb3JFYWNoKChbc3RhdHVzLCByb3dzXSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjb3VudCA9IHJvd3MubGVuZ3RoO1xyXG4gICAgICAgICAgICBjb25zdCBuZXdLZXkgPSBgJHtzdGF0dXN9IC0gJHtjb3VudH1gO1xyXG4gICAgICAgICAgICBkYXRhW25ld0tleV0gPSByb3dzO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgIGN1cnJlbmN5RmllbGRzOiBbXHJcbiAgICAgICAgICAgICAgICAncGF5b3V0QW1vdW50JywgJ3BheWluQW1vdW50JywgJ3RyYW5zYWN0aW9uQ29tbWlzc2lvbkFtb3VudCcsICd0YXgnLCAndG90YWxQYXlpbkFtb3VudCdcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgLy8gc3BlY2lmeSBhbGwgZGF0ZSBmaWVsZHMgZXhwZWN0ZWRcclxuICAgICAgICAgICAgZGF0ZUZpZWxkczogW10sXHJcblxyXG4gICAgICAgICAgICBkYXRlRmllbGRGb3JtYXRzOiB7XHJcbiAgICAgICAgICAgICAgICB0eG5EYXRlQW5kVGltZTogJ2RkL01NL3l5eXkgaGg6bW0gYScsXHJcbiAgICAgICAgICAgICAgICBjYW5jZWxsYXRpb25CcmFuY2hEYXRlVGltZTogJ2RkL01NL3l5eXkgSEg6bW0nLFxyXG4gICAgICAgICAgICAgICAgY2FuY2VsbGF0aW9uQnVzaW5lc3NEYXRlOiAnZGQvTU0veXl5eSdcclxuICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgIHNwZWNpYWxEZWNpbWFsRmllbGRzOiB7XHJcbiAgICAgICAgICAgICAgICByYXRlOiA4ICAgICAgIC8vIGZ1dHVyZSBmaWVsZCB3aXRoIDggZGVjaW1hbCBwbGFjZXNcclxuICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgIGdyb3VwQnlLZXk6IHRydWVcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBzd2l0Y2ggKHRoaXMuc2VsZWN0ZWRFeHBvcnRPcHRpb24pIHtcclxuICAgICAgICAgICAgY2FzZSAnZXhjZWwnOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5leHBvcnRTZXJ2aWNlLmV4cG9ydFRvRXhjZWwoeyB0aXRsZSwgbWV0YWRhdGEsIHNlYXJjaENyaXRlcmlhLCBjb2x1bW5zLCBkYXRhLCBvcHRpb25zIH0pO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3BkZic6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmV4cG9ydFNlcnZpY2UuZXhwb3J0VG9QZGYoeyB0aXRsZSwgbWV0YWRhdGEsIHNlYXJjaENyaXRlcmlhLCBjb2x1bW5zLCBkYXRhLCBvcHRpb25zIH0pO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2Nzdic6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmV4cG9ydFNlcnZpY2UuZXhwb3J0VG9Dc3YoeyB0aXRsZSwgbWV0YWRhdGEsIHNlYXJjaENyaXRlcmlhLCBjb2x1bW5zLCBkYXRhLCBvcHRpb25zIH0pO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBhbGVydChcIlBsZWFzZSBzZWxlY3QgYW4gZXhwb3J0IGZvcm1hdC5cIik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGRhdGVWYWx1ZUZvcm1hdHRlcihmb3JtYXQ6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiAocGFyYW1zOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKCFwYXJhbXMudmFsdWUpIHJldHVybiAnJztcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmb3JtYXREYXRlKHBhcmFtcy52YWx1ZSwgZm9ybWF0LCAnZW4tVVMnKTtcclxuICAgICAgICAgICAgfSBjYXRjaCB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0S2V5cyhvYmo6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogc3RyaW5nW10ge1xyXG4gICAgICAgIHJldHVybiBvYmogPyBPYmplY3Qua2V5cyhvYmopIDogW107XHJcbiAgICB9XHJcblxyXG4gICAgaGFzQW55R3JvdXBzKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlcmVkRGF0YSAmJiB0aGlzLmdldEtleXModGhpcy5maWx0ZXJlZERhdGEpLmxlbmd0aCA+IDA7XHJcbiAgICB9XHJcblxyXG4gICAgZm9ybWF0QW1vdW50KHBhcmFtczogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcmFtcz8udmFsdWU7XHJcbiAgICAgICAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG51bSA9IE51bWJlcih2YWx1ZSk7XHJcbiAgICAgICAgICAgIHJldHVybiAoTWF0aC50cnVuYyhudW0gKiAxMDAwKSAvIDEwMDApLnRvRml4ZWQoMyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIHN0YXR1c09yZGVyTWFwOiBhbnkgPSB7XHJcbiAgICAgICAgUGVuZGluZ0F1dGhvcmlzYXRpb246IDEsXHJcbiAgICAgICAgQ29uZmlybWVkOiAyLFxyXG4gICAgICAgIEluQU1MUmV2aWV3OiAzLFxyXG4gICAgICAgIEluUHJvY2VzczogMyxcclxuICAgICAgICBBTUxSZWplY3RlZDogNCxcclxuICAgICAgICBEZWNsaW5lOiA0LFxyXG4gICAgICAgIFN1Ym1pdHRlZDogNSxcclxuICAgICAgICBEaXNwYXRjaGVkOiA2LFxyXG4gICAgICAgIFBhaWQ6IDcsXHJcbiAgICAgICAgQmFua1JlamVjdGVkOiA4LFxyXG4gICAgICAgIFN0b3BBcHByb3ZlZDogOSxcclxuICAgICAgICBSZWFkeXRvQ2FuY2VsOiAxMCxcclxuICAgICAgICBDYW5jZWxsZWQ6IDExLFxyXG4gICAgICAgIFBhaWRDYW5jZWxsZWQ6IDEyLFxyXG4gICAgICAgIFZvaWQ6IDEzLFxyXG4gICAgICAgIFJlamVjdGVkOiAxNFxyXG4gICAgfTtcclxuXHJcbiAgICBzdGF0dXNPcmRlckNvbXBhcmF0b3IgPSAoYTogYW55LCBiOiBhbnkpOiBudW1iZXIgPT4ge1xyXG4gICAgICAgIGNvbnN0IG9yZGVyQSA9IHRoaXMuc3RhdHVzT3JkZXJNYXBbYS5rZXldID8/IDIwO1xyXG4gICAgICAgIGNvbnN0IG9yZGVyQiA9IHRoaXMuc3RhdHVzT3JkZXJNYXBbYi5rZXldID8/IDIwO1xyXG4gICAgICAgIHJldHVybiBvcmRlckEgLSBvcmRlckI7XHJcbiAgICB9O1xyXG4gICAgaGFuZGxlU2VhcmNoKGNyaXRlcmlhOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNlYXJjaENyaXRlcmlhID0gY3JpdGVyaWEuc2VhcmNoQ3JpdGVyaWE7XHJcbiAgICAgICAgdGhpcy5yZXBvcnREYXRlID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMucmVwb3J0RGF0ZSA9IGZvcm1hdERhdGUodGhpcy5yZXBvcnREYXRlLCAnZGQvTU0veXl5eSBoaDptbSBhJywgJ2VuLVVTJyk7XHJcbiAgICAgICAgY29uc3QgbW9kYWwgPSBjcml0ZXJpYS5tb2RhbDtcclxuICAgICAgICB0aGlzLnVzZXIgPSBjcml0ZXJpYS5zeXNVc2VySUQ7XHJcbiAgICAgICAvLyB0aGlzLmZyb21EYXRlID0gZm9ybWF0RGF0ZShtb2RhbC5mcm9tRGF0ZSwgJ2RkL01NL3l5eXkgaGg6bW0gYScsICdlbi1VUycpLnNsaWNlKDAsIDEwKTtcclxuICAgICAgICAvL3RoaXMudG9EYXRlID0gZm9ybWF0RGF0ZShtb2RhbC50b0RhdGUsICdkZC9NTS95eXl5IGhoOm1tIGEnLCAnZW4tVVMnKS5zbGljZSgwLCAxMCk7XHJcbiAgICAgICAgdGhpcy5mcm9tRGF0ZSA9IG1vZGFsLmZyb21EYXRlXHJcbiAgICAgICAgICAgID8gZm9ybWF0RGF0ZShtb2RhbC5mcm9tRGF0ZSwgJ2RkL01NL3l5eXkgaGg6bW0gYScsICdlbi1VUycpLnNsaWNlKDAsIDEwKVxyXG4gICAgICAgICAgICA6IG51bGw7XHJcblxyXG4gICAgICAgIHRoaXMudG9EYXRlID0gbW9kYWwudG9EYXRlXHJcbiAgICAgICAgICAgID8gZm9ybWF0RGF0ZShtb2RhbC50b0RhdGUsICdkZC9NTS95eXl5IGhoOm1tIGEnLCAnZW4tVVMnKS5zbGljZSgwLCAxMClcclxuICAgICAgICAgICAgOiBudWxsO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGNvbnNvbGUubG9nKG1vZGFsKTtcclxuICAgICAgICAvLyBDb2RlIEZvciBNZXRhIERhdGFcclxuICAgICAgICB0aGlzLmxlZnREYXRhID0ge1xyXG4gICAgICAgICAgICAvLyAgJ1JlcG9ydCBQZXJpb2QnOiB0aGlzLmZyb21EYXRlICsgXCIgLSBcIiArIHRoaXMudG9EYXRlLFxyXG4gICAgICAgICAgICAnUmVwb3J0IFBlcmlvZCc6IHRoaXMuZnJvbURhdGUgJiYgdGhpcy50b0RhdGVcclxuICAgICAgICAgICAgICAgID8gYCR7dGhpcy5mcm9tRGF0ZX0gLSAke3RoaXMudG9EYXRlfWBcclxuICAgICAgICAgICAgICAgIDogJydcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubWV0YURhdGFUd28gPSB7XHJcbiAgICAgICAgICAgICdSZXBvcnQgVXNlciAmIFRpbWUnOiB0aGlzLnVzZXIgKyBcIiBAIFwiICsgdGhpcy5yZXBvcnREYXRlLFxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3Qgc2VhcmNoRGF0YSA9IHtcclxuICAgICAgICAgICAgXCJTdGFydERhdGVcIjogbW9kYWwuZnJvbURhdGUsXHJcbiAgICAgICAgICAgIFwiRW5kRGF0ZVwiOiBtb2RhbC50b0RhdGUsXHJcbiAgICAgICAgICAgIFwiU2VuZENvdW50cnlDb2RlXCI6IG1vZGFsLnNlbmRDb3VudHJ5LFxyXG4gICAgICAgICAgICBcIlJlY3ZDb3VudHJ5Q29kZVwiOiBtb2RhbC5yZWNlaXZlQ291bnRyeSxcclxuICAgICAgICAgICAgXCJCdXNpbmVzc1BhcnRuZXJDb2RlXCI6IG1vZGFsLmNsaWVudCxcclxuICAgICAgICAgICAgXCJUcmFuc2FjdGlvblN0YXR1c1wiOiBtb2RhbC50cmFuc2FjdGlvblN0YXR1cy5qb2luKFwiLFwiKSxcclxuICAgICAgICAgICAgXCJQYXlvdXRDdXJyZW5jeVwiOiBtb2RhbC5yZWNlaXZlQ3VycmVuY3ksXHJcbiAgICAgICAgICAgIFwiVHJhbnNhY3Rpb25UeXBlXCI6IG1vZGFsLnByb2R1Y3QsXHJcbiAgICAgICAgICAgIFwiQnJhbmNoQ29kZVwiOiBtb2RhbC5icmFuY2gsXHJcbiAgICAgICAgICAgIFwiSXNyZWFsVGltZVwiOiBjcml0ZXJpYS5pc1JlYWx0aW1lXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLnNob3dNZXNzYWdlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmxvYWRpbmdTdGF0ZSA9IENvbXBvbmVudExvYWRpbmdTdGF0ZXMuTG9hZGluZztcclxuICAgICAgICB0aGlzLnJlcG9ydFNlcnZpY2UuZ2V0VHJhbnNhY3Rpb25Nb25pdG9yaW5nUmVwb3J0KHNlYXJjaERhdGEpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YU1hcCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSBkYXRhO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub0RhdGFGb3VuZCA9IE9iamVjdC5rZXlzKHRoaXMuZmlsdGVyZWREYXRhKS5sZW5ndGggPT0gMCA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJveHlEYXRhID0gc3RydWN0dXJlZENsb25lKGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uQXJyYXkgPSBuZXcgQXJyYXkoT2JqZWN0LmtleXModGhpcy5maWx0ZXJlZERhdGEpLmxlbmd0aCkuZmlsbCgxNSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dNZXNzYWdlID0gT2JqZWN0LmtleXModGhpcy5maWx0ZXJlZERhdGEpLmxlbmd0aCA9PSAwID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zaG93UmVwb3J0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ1N0YXRlID0gQ29tcG9uZW50TG9hZGluZ1N0YXRlcy5Db21wbGV0ZTtcclxuICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmdTdGF0ZSA9IENvbXBvbmVudExvYWRpbmdTdGF0ZXMuQ29tcGxldGU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dSZXBvcnQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVGb3JtVmFsaWQoaXNWYWxpZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaXNGb3JtVmFsaWQgPSBpc1ZhbGlkO1xyXG4gICAgfVxyXG5cclxufVxyXG4iLCI8bGliLXNlYXJjaC1maWx0ZXIgXHJcbiAgICBbUmVwb3J0TmFtZV09XCJSZXBvcnROYW1lXCIgXHJcbiAgICBbaW5pdGlhbEZpbHRlcnNdPVwiaW5pdGlhbEZpbHRlcnNcIlxyXG4gICAgKHNlYXJjaENsaWNrZWQpPVwiaGFuZGxlU2VhcmNoKCRldmVudClcIlxyXG4gICAgKGZvcm1WYWxpZCk9XCJoYW5kbGVGb3JtVmFsaWQoJGV2ZW50KVwiPlxyXG48L2xpYi1zZWFyY2gtZmlsdGVyPlxyXG48YXBwLWxvYWRlciBjbGFzcz1cIlwiICpuZ0lmPVwibG9hZGluZ1N0YXRlID09IENvbXBvbmVudExvYWRpbmdTdGF0ZS5Mb2FkaW5nXCI+PC9hcHAtbG9hZGVyPlxyXG5cclxuPHNlY3Rpb24gKm5nSWY9XCJzaG93UmVwb3J0ICYmIGlzRm9ybVZhbGlkXCIgY2xhc3M9XCJteS0yXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFub0RhdGFGb3VuZFwiPlxyXG4gICAgIDxsaWItbWV0YWRhdGEgW3JlcG9ydE5hbWVdPVwiUmVwb3J0TmFtZVwiIFtzaG93bWV0YURhdGFPbmVdPVwidHJ1ZVwiIFtzaG93bWV0YURhdGFUd29dPVwidHJ1ZVwiIFttZXRhRGF0YU9uZV09XCJsZWZ0RGF0YVwiIFttZXRhRGF0YVR3b109XCJtZXRhRGF0YVR3b1wiKGV4cG9ydEV2ZW50KT1cImhhbmRsZUV4cG9ydCgkZXZlbnQpXCIgKHNlYXJjaEV2ZW50KT1cImZpbHRlcigkZXZlbnQpXCI+PC9saWItbWV0YWRhdGE+XHJcblxyXG4gIDxuZ2ItYWNjb3JkaW9uICNhY2M9XCJuZ2JBY2NvcmRpb25cIiBbY2xvc2VPdGhlcnNdPVwiZmFsc2VcIj5cclxuICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmaWx0ZXJlZERhdGEgfCBrZXl2YWx1ZTsgbGV0IGkgPSBpbmRleFwiPiAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbHRlcmVkRGF0YSB8IGtleXZhbHVlOiBzdGF0dXNPcmRlckNvbXBhcmF0b3I7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgPG5nYi1wYW5lbCAqbmdJZj1cIml0ZW0udmFsdWUubGVuZ3RoID4gMFwiIFtpZF09XCIncGFuZWwtJyArIGlcIj5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIG5nYlBhbmVsVGl0bGUgc3R5bGU9XCJoZWlnaHQ6IDEwJTtcIj5cclxuICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICBjbGFzcz1cInBhbmVsLWNsc1wiPnt7XHJcbiAgICAgICAgICAgIGl0ZW0ua2V5IH19IC0ge3tpdGVtLnZhbHVlLmxlbmd0aFxyXG4gICAgICAgICAgICB9fTwvbGFiZWw+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIG5nYlBhbmVsQ29udGVudD5cclxuICAgICAgICAgIDxkaXYgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7XCI+XHJcbiAgICAgICAgICAgIDxsaWItcGFnZS1zaXplLXNlbGVjdG9yIFt0b3RhbEVudHJpZXNdPVwiaXRlbT8udmFsdWU/Lmxlbmd0aFwiXHJcbiAgICAgICAgICAgIFtkZWZhdWx0U2l6ZV09XCInMTUnXCIgW2dyaWRBcGldPVwiZ3JpZEFwaXNbaV1cIj5cclxuICAgICAgICAgICAgPjwvbGliLXBhZ2Utc2l6ZS1zZWxlY3Rvcj5cclxuXHJcbiAgICAgICAgICAgIDxhZy1ncmlkLWFuZ3VsYXIgY2xhc3M9XCJhZy10aGVtZS1hbHBpbmUgdHJhbnNhY3Rpb24tZ3JpZFwiIHN0eWxlPVwid2lkdGg6IDEwMCU7aGVpZ2h0OiAzODBweDtcIlxyXG4gICAgICAgICAgICAgIFtjb2x1bW5EZWZzXT1cImNvbHVtbkRlZnNcIiBbZGVmYXVsdENvbERlZl09XCJkZWZhdWx0Q29sRGVmXCIgW3Jvd0RhdGFdPVwiaXRlbS52YWx1ZVwiIFtyb3dIZWlnaHRdPVwiMjBcIlxyXG4gICAgICAgICAgICAgIFtoZWFkZXJIZWlnaHRdPVwiMjJcIltwYWdpbmF0aW9uXT1cInRydWVcIiBbcGFnaW5hdGlvblBhZ2VTaXplXT1cInBhZ2luYXRpb25BcnJheVtpXVwiIChncmlkUmVhZHkpPVwib25HcmlkUmVhZHkoJGV2ZW50LGkpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvYWctZ3JpZC1hbmd1bGFyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgIDwvbmdiLXBhbmVsPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZ2ItYWNjb3JkaW9uPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC13YXJuaW5nIG10LTNcIiAqbmdJZj1cIm5vRGF0YUZvdW5kXCI+XHJcbiAgICBObyBEYXRhIGZvdW5kIG1hdGNoaW5nIHlvdXIgc2VhcmNoIGNyaXRlcmlhLlxyXG4gIDwvZGl2PlxyXG48L3NlY3Rpb24+Il19
|
|
332
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbW9uaXRvcmluZy1yZXBvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmVwb3J0cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL3RyYW5zYWN0aW9uLW1vbml0b3JpbmctcmVwb3J0L3RyYW5zYWN0aW9uLW1vbml0b3JpbmctcmVwb3J0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcG9ydHMtbGliL3NyYy9saWIvY29tcG9uZW50cy90cmFuc2FjdGlvbi1tb25pdG9yaW5nLXJlcG9ydC90cmFuc2FjdGlvbi1tb25pdG9yaW5nLXJlcG9ydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxRUFBcUU7QUFDckUsbUVBQW1FO0FBQ25FLDRHQUE0RztBQUM1Ryx1RUFBdUU7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELGdEQUFnRDtBQUNoRCxvRkFBb0Y7QUFDcEYsZ0ZBQWdGO0FBQ2hGLDRIQUE0SDtBQUU1SCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFHbEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7OztBQVE3QyxNQUFNLE9BQU8sb0NBQW9DO0lBbUU3QyxZQUFvQixhQUE0QixFQUFVLE1BQWMsRUFBUyxLQUFxQjtRQUFsRixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQWxFdEcsWUFBTyxHQUFrRCxFQUFFLENBQUE7UUFDM0Qs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N0IsQ0FBQztZQUVELFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLFlBQVksR0FBRyxzQkFBc0IsQ0FBQyxRQUFRLENBQUM7Z0JBQ3BELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2dCQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUM3QixDQUFDO1NBQ0osQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVOLGVBQWUsQ0FBQyxPQUFnQjtRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztJQUMvQixDQUFDOztpSUF4VlEsb0NBQW9DO3FIQUFwQyxvQ0FBb0MseUVDeEJqRCx1c0VBNkNVOzJGRHJCRyxvQ0FBb0M7a0JBTGhELFNBQVM7K0JBQ0ksbUNBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaW1wb3J0IHsgQ29tcG9uZW50LCBOZ1pvbmUsIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbi8vIGltcG9ydCB7IFJlcG9ydFNlcnZpY2UgfSBmcm9tICdzcmMvYXBwL3NlcnZpY2VzL3JlcG9ydC5zZXJ2aWNlJztcclxuLy8gaW1wb3J0IHsgQnJhbmNoQWN0aXZpdHlSZXBvcnQgfSBmcm9tICdzcmMvYXBwL21vZGVscy9icmFuY2gtYWN0aXZpdHktcmVwb3J0L2JyYW5jaC1hY3Rpdml0eS1zZW5kLXJlcG9ydCc7XHJcbi8vIGltcG9ydCB7IENvbERlZiwgR3JpZEFwaSwgR3JpZFJlYWR5RXZlbnQgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XHJcbmltcG9ydCB7IHRoZW1lQWxwaW5lIH0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L3RoZW1pbmcnO1xyXG4vLyBpbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuLy8gaW1wb3J0IHsgQ29tcG9uZW50TG9hZGluZ1N0YXRlcyB9IGZyb20gJ3NyYy9hcHAvbW9kZWxzL2NvbXBvbmVudC1sb2FkaW5nLXN0YXRlcyc7XHJcbi8vIGltcG9ydCB7IEdlbmVyaWNFeHBvcnRTZXJ2aWNlIH0gZnJvbSAnc3JjL2FwcC9zaGFyZWQvZXhwb3J0LWdlbmVyaWMuc2VydmljZSc7XHJcbi8vIGltcG9ydCB7IFRyYW5zYWN0aW9uTW9uaXRvcmluZ1JlcG9ydCB9IGZyb20gJ3NyYy9hcHAvbW9kZWxzL3RyYW5zYWN0aW9uLW1vbml0b3JpbmctcmVwb3J0L3RyYW5zYWN0aW9uLW1vbml0b3JpbmctcmVwb3J0JztcclxuXHJcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBOZ1pvbmUsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFRyYW5zYWN0aW9uTW9uaXRvcmluZ1JlcG9ydCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvdHJhbnNhY3Rpb24tbW9uaXRvcmluZy1yZXBvcnQvdHJhbnNhY3Rpb24tbW9uaXRvcmluZy1yZXBvcnRcIjtcclxuaW1wb3J0IHsgQ29sRGVmLCBHcmlkQXBpLCBHcmlkUmVhZHlFdmVudCB9IGZyb20gXCJhZy1ncmlkLWNvbW11bml0eVwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnRMb2FkaW5nU3RhdGVzIH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21wb25lbnQtbG9hZGluZy1zdGF0ZXNcIjtcclxuaW1wb3J0IHsgR2VuZXJpY0V4cG9ydFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2V4cG9ydC1nZW5lcmljLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUmVwb3J0U2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9yZXBvcnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2xpYi10cmFuc2FjdGlvbi1tb25pdG9yaW5nLXJlcG9ydCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdHJhbnNhY3Rpb24tbW9uaXRvcmluZy1yZXBvcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdHJhbnNhY3Rpb24tbW9uaXRvcmluZy1yZXBvcnQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25Nb25pdG9yaW5nUmVwb3J0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIGRhdGFNYXA6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uTW9uaXRvcmluZ1JlcG9ydFtdPiA9IHt9XHJcbiAgICBmaWx0ZXJlZERhdGE6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uTW9uaXRvcmluZ1JlcG9ydFtdPiA9IHt9XHJcbiAgICBwcm94eURhdGE6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uTW9uaXRvcmluZ1JlcG9ydFtdPiA9IHt9XHJcbiAgICBzaG93UmVwb3J0OiBib29sZWFuO1xyXG4gICAgcGFnaW5hdGlvbkFycmF5OiBhbnlbXTtcclxuICAgIHNlbGVjdGVkRXhwb3J0T3B0aW9uID0gJ2V4Y2VsJztcclxuICAgIGdyaWRBcGlzOiBHcmlkQXBpW10gPSBbXTtcclxuICAgIGdyaWRDb2x1bW5BcGk7XHJcbiAgICB1c2VyOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgcmVwb3J0RGF0ZTogc3RyaW5nO1xyXG4gICAgZnJvbURhdGU6IHN0cmluZztcclxuICAgIHRvRGF0ZTogc3RyaW5nO1xyXG4gICAgc2VhcmNoVGV4dDogc3RyaW5nO1xyXG4gICAgYnVmZmVyOiBhbnk7XHJcbiAgICBzeXNVc2VySWQ6IHN0cmluZztcclxuICAgIHByaXZhdGUgbG9nb0Jhc2U2NDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgQ29tcG9uZW50TG9hZGluZ1N0YXRlID0gQ29tcG9uZW50TG9hZGluZ1N0YXRlcztcclxuICAgIGxvYWRpbmdTdGF0ZTogQ29tcG9uZW50TG9hZGluZ1N0YXRlcyA9IENvbXBvbmVudExvYWRpbmdTdGF0ZXMuTG9hZGluZztcclxuICAgIFJlcG9ydE5hbWU6IHN0cmluZyA9IFwiVHJhbnNhY3Rpb24gTW9uaXRvcmluZ1wiO1xyXG4gICAgbGVmdERhdGE6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XHJcbiAgICBtZXRhRGF0YVR3bzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcclxuICAgIGV4cG9ydFNlcnZpY2U6IEdlbmVyaWNFeHBvcnRTZXJ2aWNlID0gaW5qZWN0KEdlbmVyaWNFeHBvcnRTZXJ2aWNlKTtcclxuICAgIHNlYXJjaENyaXRlcmlhOiBbc3RyaW5nLCBzdHJpbmddW10gPSBbXTtcclxuICAgIGluaXRpYWxGaWx0ZXJzOiBhbnk7XHJcblxyXG4gICAgLy8gZmxhZ3NcclxuICAgIHNob3dNZXNzYWdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBub0RhdGFGb3VuZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgaXNGb3JtVmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGNsZWFyU2VhcmNoOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY29sdW1uRGVmczogQ29sRGVmPFRyYW5zYWN0aW9uTW9uaXRvcmluZ1JlcG9ydD5bXSA9IFtcclxuICAgICAgICAgICB7IGZpZWxkOiAnYnVzaW5lc3NEYXRlVGltZScsIGhlYWRlck5hbWU6ICdCdXNpbmVzcyBEYXRlJywgZmxleDogMSwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDcwLCB3cmFwVGV4dDogdHJ1ZSwgYXV0b0hlaWdodDogdHJ1ZSwgdG9vbHRpcEZpZWxkOiAnYnVzaW5lc3NEYXRlVGltZScgfSxcclxuICAgICAgICAgICB7IGZpZWxkOiAndHJhbnNhY3Rpb25EYXRlVGltZScsIGhlYWRlck5hbWU6ICdUcmFuc2FjdGlvbiBEYXRlJywgZmxleDogMiwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDEwMCwgd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIHRvb2x0aXBGaWVsZDogJ3RyYW5zYWN0aW9uRGF0ZVRpbWUnIH0sXHJcbiAgICAgICAgICAgeyBmaWVsZDogJ3RyYW5zYWN0aW9uTnVtYmVyJywgaGVhZGVyTmFtZTogJ1RyYW5zYWN0aW9uIE51bWJlcicsIGZsZXg6IDEuOCwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDkwLCB3cmFwVGV4dDogdHJ1ZSwgYXV0b0hlaWdodDogdHJ1ZSwgY2VsbENsYXNzOiAnYWctbGVmdC1jb2xzLWNlbGwgY29tcGFjdC1jZWxsLXRyYW5zYWN0aW9uJywgdG9vbHRpcEZpZWxkOiAndHJhbnNhY3Rpb25OdW1iZXInIH0sXHJcbiAgICAgICAgICAgeyBmaWVsZDogJ3Byb2R1Y3QnLCBoZWFkZXJOYW1lOiAnUHJvZHVjdCcsIGZsZXg6IDAuNSwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDYwLCB3cmFwVGV4dDogdHJ1ZSwgYXV0b0hlaWdodDogdHJ1ZSwgdG9vbHRpcEZpZWxkOiAncHJvZHVjdCcgfSxcclxuICAgICAgICAgICB7IGZpZWxkOiAnc2VuZEFnZW50Q29kZScsIGhlYWRlck5hbWU6ICdTZW5kQ2xpZW50IENvZGUnLCBmbGV4OiAxLCBoZWFkZXJDbGFzczogJ2FnLWxlZnQtYWxpZ25lZC1oZWFkZXInLCBtaW5XaWR0aDogOTAsIHdyYXBUZXh0OiB0cnVlLCBhdXRvSGVpZ2h0OiB0cnVlLCB0b29sdGlwRmllbGQ6ICdzZW5kQWdlbnRDb2RlJyB9LFxyXG4gICAgICAgICAgIHsgZmllbGQ6ICdzZW5kQWdlbnRCcmFuY2hDb2RlJywgaGVhZGVyTmFtZTogJ1NlbmRDbGllbnQgQnJhbmNoQ29kZScsIGZsZXg6IDEsIGhlYWRlckNsYXNzOiAnYWctbGVmdC1hbGlnbmVkLWhlYWRlcicsIG1pbldpZHRoOiA5MCwgd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIHRvb2x0aXBGaWVsZDogJ3NlbmRBZ2VudEJyYW5jaENvZGUnIH0sXHJcbiAgICAgICAgICAgeyBmaWVsZDogJ3NlbmRBZ2VudEJyYW5jaE5hbWUnLCBoZWFkZXJOYW1lOiAnU2VuZENsaWVudCBCcmFuY2hOYW1lJywgZmxleDogMSwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDEyMCwgd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIHRvb2x0aXBGaWVsZDogJ3NlbmRBZ2VudEJyYW5jaE5hbWUnIH0sXHJcbiAgIFxyXG4gICAgICAgICAgIHsgZmllbGQ6ICdzZW5kZXJOYW1lJywgaGVhZGVyTmFtZTogJ1NlbmRlciBOYW1lJywgZmxleDogMSwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDEyMCwgd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIHRvb2x0aXBGaWVsZDogJ3NlbmRlck5hbWUnIH0sXHJcbiAgICAgICAgICAgeyBmaWVsZDogJ3JlY2VpdmVyTmFtZScsIGhlYWRlck5hbWU6ICdSZWNlaXZlciBOYW1lJywgZmxleDogMSwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDEwMCwgd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIHRvb2x0aXBGaWVsZDogJ3JlY2VpdmVyTmFtZScgfSxcclxuICAgICAgICAgICB7IGZpZWxkOiAncmVjZWl2ZUFnZW50Q29kZScsIGhlYWRlck5hbWU6ICdSZWNlaXZlIENsaWVudENvZGUnLCBmbGV4OiAxLCBoZWFkZXJDbGFzczogJ2FnLWxlZnQtYWxpZ25lZC1oZWFkZXInLCBtaW5XaWR0aDogOTAsIHdyYXBUZXh0OiB0cnVlLCBhdXRvSGVpZ2h0OiB0cnVlLCB0b29sdGlwRmllbGQ6ICdyZWNlaXZlQWdlbnRDb2RlJyB9LFxyXG4gICAgICAgICAgIHsgZmllbGQ6ICdwYXlvdXRDQ2NvZGUnLCBoZWFkZXJOYW1lOiAnUmVjZWl2ZUNjeSBDb2RlJywgZmxleDogMSwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDgwLCB3cmFwVGV4dDogdHJ1ZSwgYXV0b0hlaWdodDogdHJ1ZSwgdG9vbHRpcEZpZWxkOiAncGF5b3V0Q0Njb2RlJyB9LFxyXG4gICAgICAgICAgIHsgZmllbGQ6ICdwYXlvdXRBbW91bnQnLCBoZWFkZXJOYW1lOiAnUmVjZWl2ZSBBbW91bnQnLCBmbGV4OiAxLCBoZWFkZXJDbGFzczogJ2FnLWxlZnQtYWxpZ25lZC1oZWFkZXInLCBtaW5XaWR0aDogOTAsIHdyYXBUZXh0OiB0cnVlLCBhdXRvSGVpZ2h0OiB0cnVlLCBjZWxsQ2xhc3M6ICdhZy1yaWdodC1hbGlnbmVkLWNlbGwgY29tcGFjdC1jZWxsJywgdG9vbHRpcEZpZWxkOiAncGF5b3V0QW1vdW50JyB9LFxyXG4gICAgICAgICAgIHsgZmllbGQ6ICdwYXlpbkNDY29kZScsIGhlYWRlck5hbWU6ICdTZW5kQ2N5IENvZGUnLCBmbGV4OiAxLCBoZWFkZXJDbGFzczogJ2FnLWxlZnQtYWxpZ25lZC1oZWFkZXInLCBtaW5XaWR0aDogNjAsIHdyYXBUZXh0OiB0cnVlLCBhdXRvSGVpZ2h0OiB0cnVlLCB0b29sdGlwRmllbGQ6ICdwYXlpbkNDY29kZScgfSxcclxuICAgICAgICAgICB7IGZpZWxkOiAncGF5aW5BbW91bnQnLCBoZWFkZXJOYW1lOiAnU2VuZCBBbW91bnQnLCBmbGV4OiAxLCBoZWFkZXJDbGFzczogJ2FnLWxlZnQtYWxpZ25lZC1oZWFkZXInLCBtaW5XaWR0aDogODAsIHdyYXBUZXh0OiB0cnVlLCBhdXRvSGVpZ2h0OiB0cnVlLCBjZWxsQ2xhc3M6ICdhZy1yaWdodC1hbGlnbmVkLWNlbGwgY29tcGFjdC1jZWxsJywgdG9vbHRpcEZpZWxkOiAncGF5aW5BbW91bnQnIH0sXHJcbiAgICAgICAgICAgeyBmaWVsZDogJ3RyYW5zYWN0aW9uQ29tbWlzc2lvbkFtb3VudCcsIGhlYWRlck5hbWU6ICdTZXJ2aWNlIEZlZScsIGZsZXg6IDEsIGhlYWRlckNsYXNzOiAnYWctbGVmdC1hbGlnbmVkLWhlYWRlcicsIG1pbldpZHRoOiA3MCwgd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIGNlbGxDbGFzczogJ2FnLXJpZ2h0LWFsaWduZWQtY2VsbCBjb21wYWN0LWNlbGwnLCB0b29sdGlwRmllbGQ6ICd0cmFuc2FjdGlvbkNvbW1pc3Npb25BbW91bnQnIH0sXHJcbiAgICAgICAgICAgeyBmaWVsZDogJ3RheCcsIGhlYWRlck5hbWU6ICdUYXgnLCBmbGV4OiAxLCBoZWFkZXJDbGFzczogJ2FnLWxlZnQtYWxpZ25lZC1oZWFkZXInLCBtaW5XaWR0aDogNjAsIHdyYXBUZXh0OiB0cnVlLCBhdXRvSGVpZ2h0OiB0cnVlLCBjZWxsQ2xhc3M6ICdhZy1yaWdodC1hbGlnbmVkLWNlbGwgY29tcGFjdC1jZWxsJywgdG9vbHRpcEZpZWxkOiAndGF4JyB9LFxyXG4gICAgICAgICAgIHsgZmllbGQ6ICd0b3RhbFBheWluQW1vdW50JywgaGVhZGVyTmFtZTogJ1RvdGFsIFNlbmQgQW1vdW50JywgZmxleDogMSwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDEwMCwgd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIGNlbGxDbGFzczogJ2FnLXJpZ2h0LWFsaWduZWQtY2VsbCBjb21wYWN0LWNlbGwnLCB0b29sdGlwRmllbGQ6ICd0b3RhbFBheWluQW1vdW50JyB9LFxyXG4gICAgICAgICAgIHsgZmllbGQ6ICd0eG5TdGF0dXNEYXRlQW5kVGltZScsIGhlYWRlck5hbWU6ICdUeG4gU3RhdHVzIERhdGUgJiBUaW1lJywgZmxleDogMSwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDEwMCwgd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIHRvb2x0aXBGaWVsZDogJ3R4blN0YXR1c0RhdGVBbmRUaW1lJyB9XHJcbiAgICAgICBdO1xyXG4gICBcclxuXHJcbiAgICBkZWZhdWx0Q29sRGVmID0ge1xyXG4gICAgICAgIHNvcnRhYmxlOiB0cnVlLFxyXG4gICAgICAgIGZpbHRlcjogdHJ1ZSxcclxuICAgICAgICByZXNpemFibGU6IHRydWUsXHJcbiAgICAgICAgbWlud2lkdGg6IDQwLFxyXG4gICAgICAgIHdyYXBIZWFkZXJUZXh0OiB0cnVlLFxyXG4gICAgICAgIGF1dG9IZWFkZXJIZWlnaHQ6IHRydWUsXHJcbiAgICAgICAgc3VwcHJlc3NTaXplVG9GaXQ6IGZhbHNlLFxyXG4gICAgICAgIHdyYXBUZXh0OiB0cnVlXHJcbiAgICB9O1xyXG4gICAgcm93RGF0YTogVHJhbnNhY3Rpb25Nb25pdG9yaW5nUmVwb3J0W10gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcG9ydFNlcnZpY2U6IFJlcG9ydFNlcnZpY2UsIHByaXZhdGUgbmdab25lOiBOZ1pvbmUscHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUpIHsgfVxyXG5cclxuICAgIHJlcG9ydFRoZW1lID0gdGhlbWVBbHBpbmUud2l0aFBhcmFtcyh7XHJcbiAgICAgICAgaGVhZGVyRm9udFNpemU6ICcxMHB4JyxcclxuICAgICAgICBmb250RmFtaWx5OiBbJ0FyaWFsJywgJ3NhbnMtc2VyaWYnXSxcclxuICAgICAgICBmb250U2l6ZTogJzlweCdcclxuICAgIH0pO1xyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubG9hZGluZ1N0YXRlID0gQ29tcG9uZW50TG9hZGluZ1N0YXRlcy5Db21wbGV0ZTtcclxuICAgICAgICAvLyBDaGVjayBpZiBVc2VyIGlzIGZhbGNvbiB1c2VyIG9yIGZvc3NpbFVzZXJcclxuICAgICAgICBpZiAoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnZm9zc2lsdXNlcm5hbWUnKSkge1xyXG4gICAgICAgICAgICB0aGlzLnN5c1VzZXJJZCA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2Zvc3NpbHVzZXJuYW1lJylcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3lzVXNlcklkID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnZXpyZW1pdHVzZXJuYW1lJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc3lzVXNlcklkID0gdGhpcy5zeXNVc2VySWQucmVwbGFjZSgvXltcIiddKC4qKVtcIiddJC8sICckMScpO1xyXG4gICAgICAgIHRoaXMudXNlciA9IHRoaXMuc3lzVXNlcklkO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiU3lzdGVtIFVzZXIgSWQgOiBcIiArIHRoaXMuc3lzVXNlcklkKTtcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcztcclxuICAgICAgICBjb25zb2xlLmxvZyhcInBhcmFtcyBsZW5ndGg6XCIgKyBPYmplY3Qua2V5cyhwYXJhbXMpLmxlbmd0aClcclxuICAgICAgICBcclxuICAgICAgICBpZiAoT2JqZWN0LmtleXMocGFyYW1zKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbEZpbHRlcnMgPSB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblN0YXR1czogcGFyYW1zWyd0cmFuc2FjdGlvblN0YXR1cyddLFxyXG4gICAgICAgICAgICAgICAgcmVjZWl2ZUNvdW50cnk6IHBhcmFtc1sncmVjZWl2ZUNvdW50cnknXSxcclxuICAgICAgICAgICAgICAgIHRvRGF0ZTogcGFyYW1zWyd0b0RhdGUnXSxcclxuICAgICAgICAgICAgICAgIGZyb21EYXRlOiBwYXJhbXNbJ2Zyb21EYXRlJ10sXHJcbiAgICAgICAgICAgICAgICBpc1JlYWx0aW1lOiBwYXJhbXNbJ2lzUmVhbHRpbWUnXSA9PT0gJ3RydWUnIHx8IHBhcmFtc1snaXNSZWFsdGltZSddID09PSB0cnVlLFxyXG4gICAgICAgICAgICAgICAgbG9nZ2VkSW5UaW1lOnBhcmFtc1snbG9nZ2VkSW5UaW1lJ10sXHJcbiAgICAgICAgICAgICAgICBjb3VudDpOdW1iZXIocGFyYW1zWydjb3VudCddKVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbEZpbHRlcnMgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmaWx0ZXIodGV4dDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hUZXh0ID0gdGV4dDtcclxuICAgICAgICBpZiAodGhpcy5zZWFyY2hUZXh0ID09IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5zZWFyY2hUZXh0Py5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5kYXRhTWFwKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlYXJjaFRleHQgPSB0aGlzLnNlYXJjaFRleHQ/LnRyaW0oKT8udG9Mb3dlckNhc2UoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IFtrZXksIGVudHJpZXNdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMucHJveHlEYXRhKSkge1xyXG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJlZERhdGEgPSBlbnRyaWVzLmZpbHRlcihlbnRyeSA9PiBPYmplY3QudmFsdWVzKGVudHJ5KVxyXG4gICAgICAgICAgICAgICAuc29tZSh2YWwgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBhOiBzdHJpbmcgPSB2YWw/LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhPy5zZWFyY2godGhpcy5zZWFyY2hUZXh0KSA9PSAtMSA/IGZhbHNlIDogdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH0pKVxyXG5cclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZERhdGFba2V5XSA9IGZpbHRlcmVkRGF0YTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5maWx0ZXJlZERhdGE7XHJcbiAgICB9XHJcblxyXG4gICAgb25HcmlkUmVhZHkocGFyYW1zOiBHcmlkUmVhZHlFdmVudCwgaWQ6IG51bWJlcikge1xyXG4gICAgICAgIHBhcmFtcy5hcGkuc2l6ZUNvbHVtbnNUb0ZpdCgpO1xyXG4gICAgICAgIHRoaXMuZ3JpZENvbHVtbkFwaSA9IHBhcmFtcy5jb2x1bW5BcGk7XHJcbiAgICAgICAgdGhpcy5ncmlkQXBpc1tpZF0gPSBwYXJhbXMuYXBpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUV4cG9ydChvcHRpb246IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRFeHBvcnRPcHRpb24gPSBvcHRpb247XHJcbiAgICAgICAgaWYgKCF0aGlzLmhhc0FueUdyb3VwcygpKSB7XHJcbiAgICAgICAgICAgIGFsZXJ0KFwiVGhlcmUgaXMgbm8gZGF0YSB0byBleHBvcnQgYmFzZWQgb24geW91ciBjdXJyZW50IGZpbHRlci5cIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gSWYgbm8gZGF0YSwgZG8gbm90aGluZy5cclxuICAgICAgICBpZiAoIXRoaXMuZmlsdGVyZWREYXRhIHx8IE9iamVjdC5rZXlzKHRoaXMuZmlsdGVyZWREYXRhKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgYWxlcnQoXCJObyBkYXRhIHRvIGV4cG9ydFwiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB0aXRsZSA9IFwiVHJhbnNhY3Rpb24gTW9uaXRvcmluZ1wiO1xyXG4gICAgICAgIGNvbnN0IHJlcG9ydFRpbWVGb3JtYXR0ZXIgPSB0aGlzLmRhdGVWYWx1ZUZvcm1hdHRlcignZGQvTU0veXl5eSBoaDptbSBhJyk7XHJcbiAgICAgICAgY29uc3QgbWV0YWRhdGE6IFtzdHJpbmcsIHN0cmluZ11bXSA9IFtcclxuICAgICAgICAgICAgWydSZXBvcnQgUGVyaW9kICcsIHRoaXMuZnJvbURhdGUgKyBcIiAtIFwiICsgdGhpcy50b0RhdGVdLFxyXG4gICAgICAgICAgICBbJ1JlcG9ydCBVc2VyICYgVGltZScsIHRoaXMudXNlciA/IHRoaXMudXNlciArIFwiIEAgXCIgKyB0aGlzLnJlcG9ydERhdGUgOiAnJyArIFwiIEAgXCIgKyB0aGlzLnJlcG9ydERhdGVdLFxyXG4gICAgICAgIF07XHJcbiAgICAgICAgLy8gLS0tIHNlYXJjaCBjcml0ZXJpYSAtLS1cclxuICAgICAgICBjb25zdCBzZWFyY2hDcml0ZXJpYTogW3N0cmluZywgc3RyaW5nXVtdID0gdGhpcy5zZWFyY2hDcml0ZXJpYTtcclxuICAgICAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5jb2x1bW5EZWZzO1xyXG4gICAgICAgLy8gY29uc3QgZGF0YSA9IHRoaXMuZGF0YU1hcDsgIFxyXG4gICAgICAgY29uc3QgZGF0YTogUmVjb3JkPHN0cmluZywgYW55W10+ID0ge307XHJcblxyXG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuZGF0YU1hcCkuZm9yRWFjaCgoW3N0YXR1cywgcm93c10pID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY291bnQgPSByb3dzLmxlbmd0aDtcclxuICAgICAgICAgICAgY29uc3QgbmV3S2V5ID0gYCR7c3RhdHVzfSAtICR7Y291bnR9YDtcclxuICAgICAgICAgICAgZGF0YVtuZXdLZXldID0gcm93cztcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xyXG4gICAgICAgICAgICBjdXJyZW5jeUZpZWxkczogW1xyXG4gICAgICAgICAgICAgICAgJ3BheW91dEFtb3VudCcsICdwYXlpbkFtb3VudCcsICd0cmFuc2FjdGlvbkNvbW1pc3Npb25BbW91bnQnLCAndGF4JywgJ3RvdGFsUGF5aW5BbW91bnQnXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIC8vIHNwZWNpZnkgYWxsIGRhdGUgZmllbGRzIGV4cGVjdGVkXHJcbiAgICAgICAgICAgIGRhdGVGaWVsZHM6IFtdLFxyXG5cclxuICAgICAgICAgICAgZGF0ZUZpZWxkRm9ybWF0czoge1xyXG4gICAgICAgICAgICAgICAgdHhuRGF0ZUFuZFRpbWU6ICdkZC9NTS95eXl5IGhoOm1tIGEnLFxyXG4gICAgICAgICAgICAgICAgY2FuY2VsbGF0aW9uQnJhbmNoRGF0ZVRpbWU6ICdkZC9NTS95eXl5IEhIOm1tJyxcclxuICAgICAgICAgICAgICAgIGNhbmNlbGxhdGlvbkJ1c2luZXNzRGF0ZTogJ2RkL01NL3l5eXknXHJcbiAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICBzcGVjaWFsRGVjaW1hbEZpZWxkczoge1xyXG4gICAgICAgICAgICAgICAgcmF0ZTogOCAgICAgICAvLyBmdXR1cmUgZmllbGQgd2l0aCA4IGRlY2ltYWwgcGxhY2VzXHJcbiAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICBncm91cEJ5S2V5OiB0cnVlXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgc3dpdGNoICh0aGlzLnNlbGVjdGVkRXhwb3J0T3B0aW9uKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2V4Y2VsJzpcclxuICAgICAgICAgICAgICAgIHRoaXMuZXhwb3J0U2VydmljZS5leHBvcnRUb0V4Y2VsKHsgdGl0bGUsIG1ldGFkYXRhLCBzZWFyY2hDcml0ZXJpYSwgY29sdW1ucywgZGF0YSwgb3B0aW9ucyB9KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdwZGYnOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5leHBvcnRTZXJ2aWNlLmV4cG9ydFRvUGRmKHsgdGl0bGUsIG1ldGFkYXRhLCBzZWFyY2hDcml0ZXJpYSwgY29sdW1ucywgZGF0YSwgb3B0aW9ucyB9KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdjc3YnOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5leHBvcnRTZXJ2aWNlLmV4cG9ydFRvQ3N2KHsgdGl0bGUsIG1ldGFkYXRhLCBzZWFyY2hDcml0ZXJpYSwgY29sdW1ucywgZGF0YSwgb3B0aW9ucyB9KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgYWxlcnQoXCJQbGVhc2Ugc2VsZWN0IGFuIGV4cG9ydCBmb3JtYXQuXCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBkYXRlVmFsdWVGb3JtYXR0ZXIoZm9ybWF0OiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gKHBhcmFtczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghcGFyYW1zLnZhbHVlKSByZXR1cm4gJyc7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZm9ybWF0RGF0ZShwYXJhbXMudmFsdWUsIGZvcm1hdCwgJ2VuLVVTJyk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldEtleXMob2JqOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHN0cmluZ1tdIHtcclxuICAgICAgICByZXR1cm4gb2JqID8gT2JqZWN0LmtleXMob2JqKSA6IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGhhc0FueUdyb3VwcygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJlZERhdGEgJiYgdGhpcy5nZXRLZXlzKHRoaXMuZmlsdGVyZWREYXRhKS5sZW5ndGggPiAwO1xyXG4gICAgfVxyXG5cclxuICAgIGZvcm1hdEFtb3VudChwYXJhbXM6IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbXM/LnZhbHVlO1xyXG4gICAgICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSAnJykge1xyXG4gICAgICAgICAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsdWUpO1xyXG4gICAgICAgICAgICByZXR1cm4gKE1hdGgudHJ1bmMobnVtICogMTAwMCkgLyAxMDAwKS50b0ZpeGVkKDMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgICBzdGF0dXNPcmRlck1hcDogYW55ID0ge1xyXG4gICAgICAgIFBlbmRpbmdBdXRob3Jpc2F0aW9uOiAxLFxyXG4gICAgICAgIENvbmZpcm1lZDogMixcclxuICAgICAgICBJbkFNTFJldmlldzogMyxcclxuICAgICAgICBJblByb2Nlc3M6IDMsXHJcbiAgICAgICAgQU1MUmVqZWN0ZWQ6IDQsXHJcbiAgICAgICAgRGVjbGluZTogNCxcclxuICAgICAgICBTdWJtaXR0ZWQ6IDUsXHJcbiAgICAgICAgRGlzcGF0Y2hlZDogNixcclxuICAgICAgICBQYWlkOiA3LFxyXG4gICAgICAgIEJhbmtSZWplY3RlZDogOCxcclxuICAgICAgICBTdG9wQXBwcm92ZWQ6IDksXHJcbiAgICAgICAgUmVhZHl0b0NhbmNlbDogMTAsXHJcbiAgICAgICAgQ2FuY2VsbGVkOiAxMSxcclxuICAgICAgICBQYWlkQ2FuY2VsbGVkOiAxMixcclxuICAgICAgICBWb2lkOiAxMyxcclxuICAgICAgICBSZWplY3RlZDogMTRcclxuICAgIH07XHJcblxyXG4gICAgc3RhdHVzT3JkZXJDb21wYXJhdG9yID0gKGE6IGFueSwgYjogYW55KTogbnVtYmVyID0+IHtcclxuICAgICAgICBjb25zdCBvcmRlckEgPSB0aGlzLnN0YXR1c09yZGVyTWFwW2Eua2V5XSA/PyAyMDtcclxuICAgICAgICBjb25zdCBvcmRlckIgPSB0aGlzLnN0YXR1c09yZGVyTWFwW2Iua2V5XSA/PyAyMDtcclxuICAgICAgICByZXR1cm4gb3JkZXJBIC0gb3JkZXJCO1xyXG4gICAgfTtcclxuICAgICBoYW5kbGVTZWFyY2goY3JpdGVyaWE6IGFueSk6IHZvaWQge1xyXG4gICAgICAgICBpZih0aGlzLmluaXRpYWxGaWx0ZXJzICE9bnVsbClcclxuICAgICAgICAge1xyXG4gICAgICAgICAgICAgY29uc3QgcmVhbHRpbWVTdGF0dXNlcyA9IFsnUGFpZCcsICdQYWlkQ2FuY2VsbGVkJywgJ0NhbmNlbGxlZCcsICdWb2lkJywgJ1JlamVjdGVkJ107XHJcbiAgICAgICAgICAgICBjb25zdCBpc1Rlcm1pbmF0aW5nU3RhdHVzID0gcmVhbHRpbWVTdGF0dXNlcy5pbmNsdWRlcyh0aGlzLmluaXRpYWxGaWx0ZXJzPy50cmFuc2FjdGlvblN0YXR1cyk7XHJcbiAgICAgICAgICAgICBjb25zdCBpc1plcm9Db3VudCA9IHRoaXMuaW5pdGlhbEZpbHRlcnM/LmNvdW50ID09PSAwO1xyXG4gICAgICAgICAgIFxyXG4gICAgICAgICAgICAgLy8gYmxvY2sgYXBpIGNhbGxcclxuICAgICAgICAgICAgICBpZiAoaXNUZXJtaW5hdGluZ1N0YXR1cyAmJiBpc1plcm9Db3VudCAmJighY3JpdGVyaWEubW9kYWwuZnJvbURhdGUgJiYgIWNyaXRlcmlhLm1vZGFsLnRvRGF0ZSkpIFxyXG4gICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgIHRoaXMubm9EYXRhRm91bmQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgdGhpcy5zaG93UmVwb3J0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgIHRoaXMubG9hZGluZ1N0YXRlID0gQ29tcG9uZW50TG9hZGluZ1N0YXRlcy5Db21wbGV0ZTtcclxuICAgICAgICAgICAgIHRoaXMuY2xlYXJTZWFyY2ggPSBmYWxzZTtcclxuICAgICAgICAgICAgIHRoaXMuc2hvd01lc3NhZ2UgPSB0cnVlO1xyXG4gICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICB9XHJcbiAgICAgXHJcbiAgICAgICAgIH1cclxuICAgICAgICAgICAgIHRoaXMuc2VhcmNoQ3JpdGVyaWEgPSBjcml0ZXJpYS5zZWFyY2hDcml0ZXJpYTtcclxuICAgICAgICAgICAgIHRoaXMucmVwb3J0RGF0ZSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcclxuICAgICAgICAgICAgIHRoaXMucmVwb3J0RGF0ZSA9IGZvcm1hdERhdGUodGhpcy5yZXBvcnREYXRlLCAnZGQvTU0veXl5eSBoaDptbSBhJywgJ2VuLVVTJyk7XHJcbiAgICAgICAgICAgICBjb25zdCBtb2RhbCA9IGNyaXRlcmlhLm1vZGFsO1xyXG4gICAgICAgICAgICAgdGhpcy51c2VyID0gY3JpdGVyaWEuc3lzVXNlcklEO1xyXG4gICAgICAgICAgICAgLy8gdGhpcy5mcm9tRGF0ZSA9IGZvcm1hdERhdGUobW9kYWwuZnJvbURhdGUsICdkZC9NTS95eXl5IGhoOm1tIGEnLCAnZW4tVVMnKS5zbGljZSgwLCAxMCk7XHJcbiAgICAgICAgICAgICAvLyB0aGlzLnRvRGF0ZSA9IGZvcm1hdERhdGUobW9kYWwudG9EYXRlLCAnZGQvTU0veXl5eSBoaDptbSBhJywgJ2VuLVVTJykuc2xpY2UoMCwgMTApO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgIHRoaXMuZnJvbURhdGUgPSBtb2RhbC5mcm9tRGF0ZVxyXG4gICAgICAgICAgICAgICAgID8gZm9ybWF0RGF0ZShtb2RhbC5mcm9tRGF0ZSwgJ2RkL01NL3l5eXkgaGg6bW0gYScsICdlbi1VUycpLnNsaWNlKDAsIDEwKVxyXG4gICAgICAgICAgICAgICAgIDogbnVsbDtcclxuICAgICBcclxuICAgICAgICAgICAgIHRoaXMudG9EYXRlID0gbW9kYWwudG9EYXRlXHJcbiAgICAgICAgICAgICAgICAgPyBmb3JtYXREYXRlKG1vZGFsLnRvRGF0ZSwgJ2RkL01NL3l5eXkgaGg6bW0gYScsICdlbi1VUycpLnNsaWNlKDAsIDEwKVxyXG4gICAgICAgICAgICAgICAgIDogbnVsbDtcclxuICAgICBcclxuICAgICAgICAgICAgIGNvbnNvbGUubG9nKG1vZGFsKTtcclxuICAgICAgICAgICAgIC8vIENvZGUgRm9yIE1ldGEgRGF0YVxyXG4gICAgICAgICAgICAgdGhpcy5sZWZ0RGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAvLyAnUmVwb3J0IFBlcmlvZCc6IHRoaXMuZnJvbURhdGUgKyBcIiAtIFwiICsgdGhpcy50b0RhdGUsXHJcbiAgICAgICAgICAgICAgICAgJ1JlcG9ydCBQZXJpb2QnOiB0aGlzLmZyb21EYXRlICYmIHRoaXMudG9EYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgID8gYCR7dGhpcy5mcm9tRGF0ZX0gLSAke3RoaXMudG9EYXRlfWBcclxuICAgICAgICAgICAgICAgICAgICAgOiAnJ1xyXG4gICAgICAgICAgICAgfVxyXG4gICAgIFxyXG4gICAgICAgICAgICAgdGhpcy5tZXRhRGF0YVR3byA9IHtcclxuICAgICAgICAgICAgICAgICAnUmVwb3J0IFVzZXIgJiBUaW1lJzogdGhpcy51c2VyICsgXCIgQCBcIiArIHRoaXMucmVwb3J0RGF0ZSxcclxuICAgICAgICAgICAgIH1cclxuICAgICBcclxuICAgICAgICAgICAgIGNvbnN0IHNlYXJjaERhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgXCJTdGFydERhdGVcIjogbW9kYWwuZnJvbURhdGUsXHJcbiAgICAgICAgICAgICAgICAgXCJFbmREYXRlXCI6IG1vZGFsLnRvRGF0ZSxcclxuICAgICAgICAgICAgICAgICBcIlNlbmRDb3VudHJ5Q29kZVwiOiBtb2RhbC5zZW5kQ291bnRyeSxcclxuICAgICAgICAgICAgICAgICBcIlJlY3ZDb3VudHJ5Q29kZVwiOiBtb2RhbC5yZWNlaXZlQ291bnRyeSxcclxuICAgICAgICAgICAgICAgICBcIkJ1c2luZXNzUGFydG5lckNvZGVcIjogbW9kYWwuY2xpZW50LFxyXG4gICAgICAgICAgICAgICAgIFwiVHJhbnNhY3Rpb25TdGF0dXNcIjogbW9kYWwudHJhbnNhY3Rpb25TdGF0dXMuam9pbihcIixcIiksXHJcbiAgICAgICAgICAgICAgICAgXCJQYXlvdXRDdXJyZW5jeVwiOiBtb2RhbC5yZWNlaXZlQ3VycmVuY3ksXHJcbiAgICAgICAgICAgICAgICAgXCJUcmFuc2FjdGlvblR5cGVcIjogbW9kYWwucHJvZHVjdCxcclxuICAgICAgICAgICAgICAgICBcIkJyYW5jaENvZGVcIjogbW9kYWwuYnJhbmNoLFxyXG4gICAgICAgICAgICAgICAgIFwiSXNyZWFsVGltZVwiOiB0aGlzLmluaXRpYWxGaWx0ZXJzPy5pc1JlYWx0aW1lID8/IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgIFwiTG9nZ2VkSW5UaW1lXCI6IHRoaXMuaW5pdGlhbEZpbHRlcnM/LmxvZ2dlZEluVGltZSA/PyBudWxsXHJcbiAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgdGhpcy5zaG93TWVzc2FnZSA9IHRydWU7XHJcbiAgICAgICAgICAgICB0aGlzLmNsZWFyU2VhcmNoID0gdHJ1ZTtcclxuICAgICBcclxuICAgICAgICAgICAgIHRoaXMubG9hZGluZ1N0YXRlID0gQ29tcG9uZW50TG9hZGluZ1N0YXRlcy5Mb2FkaW5nO1xyXG4gICAgICAgICAgICAgdGhpcy5yZXBvcnRTZXJ2aWNlLmdldFRyYW5zYWN0aW9uTW9uaXRvcmluZ1JlcG9ydChzZWFyY2hEYXRhKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgIG5leHQ6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFNYXAgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcclxuICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSBkYXRhO1xyXG4gICAgICAgICAgICAgICAgICAgICB0aGlzLm5vRGF0YUZvdW5kID0gT2JqZWN0LmtleXModGhpcy5maWx0ZXJlZERhdGEpLmxlbmd0aCA9PSAwID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3h5RGF0YSA9IHN0cnVjdHVyZWRDbG9uZShkYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uQXJyYXkgPSBuZXcgQXJyYXkoT2JqZWN0LmtleXModGhpcy5maWx0ZXJlZERhdGEpLmxlbmd0aCkuZmlsbCgxNSk7XHJcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd01lc3NhZ2UgPSBPYmplY3Qua2V5cyh0aGlzLmZpbHRlcmVkRGF0YSkubGVuZ3RoID09IDAgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd1JlcG9ydCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmdTdGF0ZSA9IENvbXBvbmVudExvYWRpbmdTdGF0ZXMuQ29tcGxldGU7XHJcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJTZWFyY2ggPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICB9LFxyXG4gICAgIFxyXG4gICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ1N0YXRlID0gQ29tcG9uZW50TG9hZGluZ1N0YXRlcy5Db21wbGV0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93UmVwb3J0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhclNlYXJjaCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgIH1cclxuXHJcbiAgICBoYW5kbGVGb3JtVmFsaWQoaXNWYWxpZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaXNGb3JtVmFsaWQgPSBpc1ZhbGlkO1xyXG4gICAgfVxyXG5cclxufVxyXG4iLCI8bGliLXNlYXJjaC1maWx0ZXIgXHJcbiAgICBbUmVwb3J0TmFtZV09XCJSZXBvcnROYW1lXCIgXHJcbiAgICBbaW5pdGlhbEZpbHRlcnNdPVwiaW5pdGlhbEZpbHRlcnNcIlxyXG4gICAgKHNlYXJjaENsaWNrZWQpPVwiaGFuZGxlU2VhcmNoKCRldmVudClcIlxyXG4gICAgKGZvcm1WYWxpZCk9XCJoYW5kbGVGb3JtVmFsaWQoJGV2ZW50KVwiPlxyXG48L2xpYi1zZWFyY2gtZmlsdGVyPlxyXG48YXBwLWxvYWRlciBjbGFzcz1cIlwiICpuZ0lmPVwibG9hZGluZ1N0YXRlID09IENvbXBvbmVudExvYWRpbmdTdGF0ZS5Mb2FkaW5nXCI+PC9hcHAtbG9hZGVyPlxyXG5cclxuPHNlY3Rpb24gKm5nSWY9XCJzaG93UmVwb3J0ICYmIGlzRm9ybVZhbGlkXCIgY2xhc3M9XCJteS0yXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFub0RhdGFGb3VuZFwiPlxyXG4gICAgIDxsaWItbWV0YWRhdGEgW3JlcG9ydE5hbWVdPVwiUmVwb3J0TmFtZVwiIFtzaG93bWV0YURhdGFPbmVdPVwidHJ1ZVwiIFtzaG93bWV0YURhdGFUd29dPVwidHJ1ZVwiIFttZXRhRGF0YU9uZV09XCJsZWZ0RGF0YVwiIFttZXRhRGF0YVR3b109XCJtZXRhRGF0YVR3b1wiKGV4cG9ydEV2ZW50KT1cImhhbmRsZUV4cG9ydCgkZXZlbnQpXCIgKHNlYXJjaEV2ZW50KT1cImZpbHRlcigkZXZlbnQpXCI+PC9saWItbWV0YWRhdGE+XHJcblxyXG4gIDxuZ2ItYWNjb3JkaW9uICNhY2M9XCJuZ2JBY2NvcmRpb25cIiBbY2xvc2VPdGhlcnNdPVwiZmFsc2VcIj5cclxuICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmaWx0ZXJlZERhdGEgfCBrZXl2YWx1ZTsgbGV0IGkgPSBpbmRleFwiPiAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbHRlcmVkRGF0YSB8IGtleXZhbHVlOiBzdGF0dXNPcmRlckNvbXBhcmF0b3I7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgPG5nYi1wYW5lbCAqbmdJZj1cIml0ZW0udmFsdWUubGVuZ3RoID4gMFwiIFtpZF09XCIncGFuZWwtJyArIGlcIj5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIG5nYlBhbmVsVGl0bGUgc3R5bGU9XCJoZWlnaHQ6IDEwJTtcIj5cclxuICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICBjbGFzcz1cInBhbmVsLWNsc1wiPnt7XHJcbiAgICAgICAgICAgIGl0ZW0ua2V5IH19IC0ge3tpdGVtLnZhbHVlLmxlbmd0aFxyXG4gICAgICAgICAgICB9fTwvbGFiZWw+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIG5nYlBhbmVsQ29udGVudD5cclxuICAgICAgICAgIDxkaXYgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7XCI+XHJcbiAgICAgICAgICAgIDxsaWItcGFnZS1zaXplLXNlbGVjdG9yIFt0b3RhbEVudHJpZXNdPVwiaXRlbT8udmFsdWU/Lmxlbmd0aFwiXHJcbiAgICAgICAgICAgIFtkZWZhdWx0U2l6ZV09XCInMTUnXCIgW2dyaWRBcGldPVwiZ3JpZEFwaXNbaV1cIj5cclxuICAgICAgICAgICAgPjwvbGliLXBhZ2Utc2l6ZS1zZWxlY3Rvcj5cclxuXHJcbiAgICAgICAgICAgIDxhZy1ncmlkLWFuZ3VsYXIgY2xhc3M9XCJhZy10aGVtZS1hbHBpbmUgdHJhbnNhY3Rpb24tZ3JpZFwiIHN0eWxlPVwid2lkdGg6IDEwMCU7aGVpZ2h0OiAzODBweDtcIlxyXG4gICAgICAgICAgICAgIFtjb2x1bW5EZWZzXT1cImNvbHVtbkRlZnNcIiBbZGVmYXVsdENvbERlZl09XCJkZWZhdWx0Q29sRGVmXCIgW3Jvd0RhdGFdPVwiaXRlbS52YWx1ZVwiIFtyb3dIZWlnaHRdPVwiMjBcIlxyXG4gICAgICAgICAgICAgIFtoZWFkZXJIZWlnaHRdPVwiMjJcIltwYWdpbmF0aW9uXT1cInRydWVcIiBbcGFnaW5hdGlvblBhZ2VTaXplXT1cInBhZ2luYXRpb25BcnJheVtpXVwiIChncmlkUmVhZHkpPVwib25HcmlkUmVhZHkoJGV2ZW50LGkpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvYWctZ3JpZC1hbmd1bGFyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgIDwvbmdiLXBhbmVsPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZ2ItYWNjb3JkaW9uPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC13YXJuaW5nIG10LTNcIiAqbmdJZj1cIm5vRGF0YUZvdW5kXCI+XHJcbiAgICBObyBEYXRhIGZvdW5kIG1hdGNoaW5nIHlvdXIgc2VhcmNoIGNyaXRlcmlhLlxyXG4gIDwvZGl2PlxyXG48L3NlY3Rpb24+Il19
|