@hmcts/ccpay-web-component 5.0.7-beta44 → 5.0.7-beta45
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/bundles/hmcts-ccpay-web-component.umd.js +22 -12
- package/bundles/hmcts-ccpay-web-component.umd.js.map +1 -1
- package/bundles/hmcts-ccpay-web-component.umd.min.js +1 -1
- package/bundles/hmcts-ccpay-web-component.umd.min.js.map +1 -1
- package/esm2015/lib/components/add-remission/add-remission.component.js +9 -7
- package/esm2015/lib/components/process-refund/process-refund.component.js +8 -4
- package/esm2015/lib/components/refund-status/refund-status.component.js +8 -4
- package/esm5/lib/components/add-remission/add-remission.component.js +9 -7
- package/esm5/lib/components/process-refund/process-refund.component.js +8 -4
- package/esm5/lib/components/refund-status/refund-status.component.js +8 -4
- package/fesm2015/hmcts-ccpay-web-component.js +22 -12
- package/fesm2015/hmcts-ccpay-web-component.js.map +1 -1
- package/fesm5/hmcts-ccpay-web-component.js +22 -12
- package/fesm5/hmcts-ccpay-web-component.js.map +1 -1
- package/package.json +1 -1
|
@@ -504,14 +504,18 @@ var ProcessRefundComponent = /** @class */ (function () {
|
|
|
504
504
|
*/
|
|
505
505
|
function (payment) {
|
|
506
506
|
_this.paymentObj = payment;
|
|
507
|
-
|
|
507
|
+
_this.paymentObj.reference = paymentReference;
|
|
508
508
|
}), (/**
|
|
509
509
|
* @param {?} error
|
|
510
510
|
* @return {?}
|
|
511
511
|
*/
|
|
512
|
-
function (error) {
|
|
512
|
+
function (error) { }));
|
|
513
|
+
if (this.paymentObj != undefined && this.paymentObj != null && this.paymentObj.reference == paymentReference) {
|
|
514
|
+
return this.notificationService.getNotificationInstructionType(this.paymentObj.channel, this.paymentObj.method);
|
|
515
|
+
}
|
|
516
|
+
else {
|
|
513
517
|
return 'Template';
|
|
514
|
-
}
|
|
518
|
+
}
|
|
515
519
|
}
|
|
516
520
|
else {
|
|
517
521
|
return this.notificationService.getNotificationInstructionType(payment.channel, payment.method);
|
|
@@ -664,4 +668,4 @@ if (false) {
|
|
|
664
668
|
*/
|
|
665
669
|
ProcessRefundComponent.prototype.activeRoute;
|
|
666
670
|
}
|
|
667
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1yZWZ1bmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9wcm9jZXNzLXJlZnVuZC9wcm9jZXNzLXJlZnVuZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQVUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQWEsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUt0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN2RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFDLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR3hEO0lBd0NFLGdDQUFvQixjQUE4QixFQUM5QixrQkFBc0MsRUFDdEMsV0FBd0IsRUFDeEIsaUJBQW9DLEVBQ3BDLG1CQUF3QyxFQUN4QyxtQkFBd0MsRUFDeEMsTUFBYyxFQUNkLFdBQTJCO1FBUDNCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLFdBQU0sR0FBTixNQUFN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QWdDOztJQUNoQyxxREFBcUM7O0lBQ3JDLHdEQUE2Qzs7Ozs7SUFDakMsZ0RBQXNDOzs7OztJQUN0QyxvREFBOEM7Ozs7O0lBQzlDLDZDQUFnQzs7Ozs7SUFDaEMsbURBQTRDOzs7OztJQUM1QyxxREFBZ0Q7Ozs7O0lBQ2hELHFEQUFnRDs7Ozs7SUFDaEQsd0NBQXNCOzs7OztJQUN0Qiw2Q0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25Jbml0LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7UmVmdW5kc1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3JlZnVuZHMvcmVmdW5kcy5zZXJ2aWNlJztcbmltcG9ydCB7IElSZWZ1bmRBY3Rpb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lSZWZ1bmRBY3Rpb24nO1xuaW1wb3J0IHsgSVJlZnVuZExpc3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lSZWZ1bmRMaXN0JztcbmltcG9ydCB7IElQYXltZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUGF5bWVudCc7XG5pbXBvcnQgeyBJUmVmdW5kUmVqZWN0UmVhc29uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUmVmdW5kUmVqZWN0UmVhc29uJztcbmltcG9ydCB7IE9yZGVyc2xpc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3JkZXJzbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGF5bWVudFZpZXdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcGF5bWVudC12aWV3L3BheW1lbnQtdmlldy5zZXJ2aWNlJztcbmltcG9ydCB7IFBheW1lbnRMaWJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wYXltZW50LWxpYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElOb3RpZmljYXRpb25QcmV2aWV3IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JTm90aWZpY2F0aW9uUHJldmlldyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjcGF5LXByb2Nlc3MtcmVmdW5kJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2Nlc3MtcmVmdW5kLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvY2Vzcy1yZWZ1bmQuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFByb2Nlc3NSZWZ1bmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSByZWZ1bmRSZWZlcmVuY2U6IHN0cmluZztcbiAgQElucHV0KCkgcmVmdW5kbGlzdHNvdXJjZTogSVJlZnVuZExpc3Q7XG5cbiAgcHJvY2Vzc1JlZnVuZEZvcm06IEZvcm1Hcm91cDtcblxuICBlcnJvck1lc3NhZ2UgPSAgdGhpcy5nZXRFcnJvck1lc3NhZ2UoZmFsc2UsICcnLCAnJywgJycpO1xuICBzZW5kbWViYWNrOiBzdHJpbmcgPSBudWxsO1xuICB2aWV3U3RhdHVzOiBzdHJpbmc7XG4gIHJlZnVuZEFjdGlvbkxpc3Q6IElSZWZ1bmRBY3Rpb25bXSA9IFtdOyBcbiAgcmVmdW5kUmVqZWN0UmVhc29uTGlzdDogSVJlZnVuZFJlamVjdFJlYXNvbltdID0gW107IFxuICBpc1NlbmRNZUJhY2tDbGlja2VkOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUmVqZWN0Q2xpY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc090aGVyQ2xpY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1N1Y2Nlc3NwYWdlRW5hYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcmVmdW5kQWN0aW9uc0hhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIHJlZnVuZFJlamVjdFJlYXNvbkhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUmVhc29uRmllbGRFbXB0eTogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1JlYXNvbkZpZWxkSW52YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xuICByZWFzb25GaWVsZE1pbkhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIHJlYXNvbkZpZWxkTWF4SGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNSZWFzb25FbXB0eTogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1JlYXNvbkludmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc3VjY2Vzc01zZzogc3RyaW5nID0gbnVsbDtcbiAgbmF2aWdhdGlvbnBhZ2U6IHN0cmluZztcbiAgY2NkQ2FzZU51bWJlcjogc3RyaW5nO1xuICBpc0Zyb21SZWZ1bmRMaXN0UGFnZTogYm9vbGVhbjtcbiAgY3BvRGV0YWlsczphbnkgPSBudWxsO1xuICBpc0NQT0Rvd246IGJvb2xlYW47XG4gIGlzQ29uZmlybUJ1dHRvbmRpc2FibGVkOiBib29sZWFuID0gdHJ1ZTtcbiAgcGF5bWVudE9iajogSVBheW1lbnQ7XG4gIHRlbXBsYXRlSW5zdHJ1Y3Rpb25UeXBlOiBzdHJpbmc7XG4gIG5vdGlmaWNhdGlvblByZXZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbm90aWZpY2F0aW9uUHJldmlld09iajogSU5vdGlmaWNhdGlvblByZXZpZXc7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgUmVmdW5kc1NlcnZpY2U6IFJlZnVuZHNTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHBheW1lbnRWaWV3U2VydmljZTogUGF5bWVudFZpZXdTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBPcmRlcnNsaXN0U2VydmljZTogT3JkZXJzbGlzdFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBwYXltZW50TGliQ29tcG9uZW50OiBQYXltZW50TGliQ29tcG9uZW50LFxuICAgICAgICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIGFjdGl2ZVJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy52aWV3U3RhdHVzID0gJ1JlZnVuZFByb2Nlc3MnO1xuICAgIHRoaXMuUmVmdW5kc1NlcnZpY2UuZ2V0UmVmdW5kQWN0aW9ucyh0aGlzLnJlZnVuZFJlZmVyZW5jZSkuc3Vic2NyaWJlKFxuICAgICAgcmVmdW5kQWN0aW9uTGlzdCA9PiB7XG4gICAgICAgIHRoaXMucmVmdW5kQWN0aW9uTGlzdCA9IDxhbnk+cmVmdW5kQWN0aW9uTGlzdDtcbiAgICAgIH0sXG4gICAgICBlcnIgPT4ge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuZ2V0RXJyb3JNZXNzYWdlKHRydWUsIGVyci5zdGF0dXNDb2RlLCBlcnIuZXJyLCBlcnIpO1xuICAgICAgfVxuICAgICk7XG4gICAgdGhpcy5wcm9jZXNzUmVmdW5kRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgcmVmdW5kQWN0aW9uRmllbGQ6IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZFxuICAgICAgXSkpLFxuICAgICAgcmVmdW5kUmVqZWN0UmVhc29uRmllbGQ6IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZFxuICAgICAgXSkpLFxuICAgICAgc2VuZE1lQmFja0ZpZWxkOiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgIFZhbGlkYXRvcnMubWluTGVuZ3RoKDMpLFxuICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aCgyNTUpLFxuICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oJ14oW2EtekEtWjAtOVxcXFxzLFxcXFwuXSopJCcpLFxuXG4gICAgICBdKSksXG4gICAgICBlbnRlclJlYXNvbkZpZWxkOiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDMwKSxcbiAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKCdeKFthLXpBLVowLTkuXFxcXHNdKikkJyksXG4gICAgICBdKSksXG4gICAgfSk7XG4gICB0aGlzLmNjZENhc2VOdW1iZXIgPSB0aGlzLnJlZnVuZGxpc3Rzb3VyY2UuY2NkX2Nhc2VfbnVtYmVyO1xuXG4gICBpZigodHlwZW9mIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5UQUtFUEFZTUVOVCA9PT0gJ3N0cmluZycgJiYgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlRBS0VQQVlNRU5UID09PSAnZmFsc2UnKSB8fCAodHlwZW9mIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5UQUtFUEFZTUVOVCA9PT0gJ2Jvb2xlYW4nICYmICF0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQpICkge1xuICAgIHRoaXMuaXNGcm9tUmVmdW5kTGlzdFBhZ2UgPSB0cnVlO1xuICAgfVxuICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UuZ2V0UGFydHlEZXRhaWxzKHRoaXMuY2NkQ2FzZU51bWJlcikuc3Vic2NyaWJlKFxuICAgIHJlc3BvbnNlID0+IHtcbiAgICAgIHRoaXMuY3BvRGV0YWlscyA9IEpTT04ucGFyc2UocmVzcG9uc2UpLmNvbnRlbnRbMF07XG5cbiAgICB9LFxuICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IDxhbnk+ZXJyb3IucmVwbGFjZSgvXCIvZyxcIlwiKTtcbiAgICAgIHRoaXMuaXNDUE9Eb3duID0gdHJ1ZTtcbiAgICB9XG4gICk7XG4gIHRoaXMudGVtcGxhdGVJbnN0cnVjdGlvblR5cGUgPSB0aGlzLmdldFRlbXBsYXRlSW5zdHJ1Y3Rpb25UeXBlKHRoaXMucGF5bWVudE9iaix0aGlzLnJlZnVuZGxpc3Rzb3VyY2UucGF5bWVudF9yZWZlcmVuY2UpO1xuICB9XG4gIFxuICBjaGVja1JlZnVuZEFjdGlvbnMoY29kZTogc3RyaW5nKSB7XG4gICAgdGhpcy5yZWZ1bmRBY3Rpb25zSGFzRXJyb3IgPSBmYWxzZTtcbiAgICB0aGlzLmlzUmVhc29uRmllbGRFbXB0eSA9IGZhbHNlO1xuICAgIHRoaXMuaXNSZWFzb25FbXB0eSA9IGZhbHNlO1xuICAgIHRoaXMuaXNSZWFzb25JbnZhbGlkID0gZmFsc2U7XG4gICAgdGhpcy5yZWZ1bmRSZWplY3RSZWFzb25IYXNFcnJvciA9IGZhbHNlO1xuICAgIGlmKGNvZGUgPT09ICdSZXR1cm4gdG8gY2FzZXdvcmtlcicpIHtcbiAgICAgIHRoaXMuaXNDb25maXJtQnV0dG9uZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgdGhpcy5pc1NlbmRNZUJhY2tDbGlja2VkID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNSZWplY3RDbGlja2VkID0gZmFsc2U7XG4gICAgICB0aGlzLmlzT3RoZXJDbGlja2VkID0gZmFsc2U7XG5cbiAgICB9IGVsc2UgaWYgKGNvZGUgPT09ICdBcHByb3ZlJykge1xuICAgICAgdGhpcy5pc1NlbmRNZUJhY2tDbGlja2VkID0gZmFsc2U7XG4gICAgICB0aGlzLmlzQ29uZmlybUJ1dHRvbmRpc2FibGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmlzUmVqZWN0Q2xpY2tlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5pc090aGVyQ2xpY2tlZCA9IGZhbHNlO1xuXG4gICAgfSBlbHNlIGlmIChjb2RlID09PSAnUmVqZWN0Jykge1xuICAgICAgdGhpcy5pc1JlamVjdENsaWNrZWQgPSB0cnVlO1xuICAgICAgdGhpcy5pc1NlbmRNZUJhY2tDbGlja2VkID0gZmFsc2U7XG4gICAgICB0aGlzLmlzT3RoZXJDbGlja2VkID0gZmFsc2U7XG4gICAgICB0aGlzLlJlZnVuZHNTZXJ2aWNlLmdldFJlZnVuZFJlamVjdFJlYXNvbnMoKS5zdWJzY3JpYmUoXG4gICAgICAgIHJlZnVuZFJlamVjdFJlYXNvbkxpc3QgPT4ge1xuICAgICAgICAgIHRoaXMucmVmdW5kUmVqZWN0UmVhc29uTGlzdCA9IDxhbnk+cmVmdW5kUmVqZWN0UmVhc29uTGlzdDtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuZ2V0RXJyb3JNZXNzYWdlKHRydWUsIGVyci5zdGF0dXNDb2RlLCBlcnIuZXJyLCBlcnIpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoY29kZSA9PT0gJ1JFMDA1Jykge1xuICAgICAgdGhpcy5pc090aGVyQ2xpY2tlZCA9IHRydWU7XG4gICAgfSBlbHNlIGlmIChjb2RlICE9PSAnUkUwMDUnKSB7XG4gICAgICB0aGlzLmlzT3RoZXJDbGlja2VkID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZ2V0Tm90aWZpY2F0aW9uUHJldmlld09iaihub3RpZmljYXRpb25QcmV2aWV3T2JqIDogSU5vdGlmaWNhdGlvblByZXZpZXcpe1xuICAgIHRoaXMubm90aWZpY2F0aW9uUHJldmlld09iaiA9IG5vdGlmaWNhdGlvblByZXZpZXdPYmo7XG4gIH1cblxuICBwcm9jZXNzUmVmdW5kU3VibWl0KCkge1xuICAgIGxldCBwcm9jZXNzUmVmdW5kUmVxdWVzdDtcbiAgICBsZXQgc3RhdHVzO1xuICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2VdLCAnYWxsJyk7XG4gICAgY29uc3QgY29udHJvbHMgPSB0aGlzLnByb2Nlc3NSZWZ1bmRGb3JtLmNvbnRyb2xzO1xuICAgIGNvbnN0IHByb2Nlc3NGb3JtRXJyb3IgPSBjb250cm9scy5zZW5kTWVCYWNrRmllbGQuZXJyb3JzO1xuXG4gICAgaWYgKHRoaXMucHJvY2Vzc1JlZnVuZEZvcm0uZGlydHkgJiYgY29udHJvbHMucmVmdW5kQWN0aW9uRmllbGQudmFsaWQgXG4gICAgICAmJiAoY29udHJvbHMucmVmdW5kQWN0aW9uRmllbGQudmFsdWUgPT0gJ0FwcHJvdmUnXG4gICAgICB8fCAoY29udHJvbHMucmVmdW5kQWN0aW9uRmllbGQudmFsdWUgPT0gJ1JlamVjdCcgJiYgY29udHJvbHMucmVmdW5kUmVqZWN0UmVhc29uRmllbGQudmFsaWQgJiYgY29udHJvbHMucmVmdW5kUmVqZWN0UmVhc29uRmllbGQudmFsdWUgIT0gJ1JFMDA1JylcbiAgICAgIHx8IChjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWx1ZSA9PSAnUmVqZWN0JyAmJiBjb250cm9scy5yZWZ1bmRSZWplY3RSZWFzb25GaWVsZC52YWx1ZSA9PSAnUkUwMDUnICYmIGNvbnRyb2xzLmVudGVyUmVhc29uRmllbGQudmFsaWQpXG4gICAgICB8fCAoY29udHJvbHMucmVmdW5kQWN0aW9uRmllbGQudmFsdWUgPT0gJ1JldHVybiB0byBjYXNld29ya2VyJyAmJiBjb250cm9scy5zZW5kTWVCYWNrRmllbGQudmFsaWQpKSkge1xuICAgICAgaWYgKGNvbnRyb2xzLnJlZnVuZEFjdGlvbkZpZWxkLnZhbHVlID09PSAnQXBwcm92ZScpe1xuICAgICAgICBzdGF0dXMgPSAnQVBQUk9WRSc7XG4gICAgICAgIGlmICh0aGlzLm5vdGlmaWNhdGlvblByZXZpZXdPYmopIHtcbiAgICAgICAgICBwcm9jZXNzUmVmdW5kUmVxdWVzdCA9IHtcbiAgICAgICAgICAgIGNvZGU6ICcnLFxuICAgICAgICAgICAgcmVhc29uOiAnJyxcbiAgICAgICAgICAgIHRlbXBsYXRlX3ByZXZpZXc6IHtcbiAgICAgICAgICAgICAgYm9keTogdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3T2JqLmJvZHksXG4gICAgICAgICAgICAgIGZyb206IHtcbiAgICAgICAgICAgICAgICBmcm9tX2VtYWlsX2FkZHJlc3M6IHRoaXMubm90aWZpY2F0aW9uUHJldmlld09iai5mcm9tLmZyb21fZW1haWxfYWRkcmVzcyxcbiAgICAgICAgICAgICAgICBmcm9tX21haWxfYWRkcmVzczoge1xuICAgICAgICAgICAgICAgICAgYWRkcmVzc19saW5lOiB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXdPYmouZnJvbS5mcm9tX21haWxfYWRkcmVzcy5hZGRyZXNzX2xpbmUsXG4gICAgICAgICAgICAgICAgICBjaXR5OiB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXdPYmouZnJvbS5mcm9tX21haWxfYWRkcmVzcy5jaXR5LFxuICAgICAgICAgICAgICAgICAgY291bnRyeTogdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3T2JqLmZyb20uZnJvbV9tYWlsX2FkZHJlc3MuY291bnRyeSxcbiAgICAgICAgICAgICAgICAgIGNvdW50eTogdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3T2JqLmZyb20uZnJvbV9tYWlsX2FkZHJlc3MuY291bnR5LFxuICAgICAgICAgICAgICAgICAgcG9zdGFsX2NvZGU6IHRoaXMubm90aWZpY2F0aW9uUHJldmlld09iai5mcm9tLmZyb21fbWFpbF9hZGRyZXNzLnBvc3RhbF9jb2RlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBodG1sOiB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXdPYmouaHRtbCxcbiAgICAgICAgICAgICAgaWQ6IHRoaXMubm90aWZpY2F0aW9uUHJldmlld09iai50ZW1wbGF0ZV9pZCxcbiAgICAgICAgICAgICAgc3ViamVjdDogdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3T2JqLnN1YmplY3QsXG4gICAgICAgICAgICAgIHRlbXBsYXRlX3R5cGU6IHRoaXMubm90aWZpY2F0aW9uUHJldmlld09iai50ZW1wbGF0ZV90eXBlLFxuICAgICAgICAgICAgICB2ZXJzaW9uOiAwXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHByb2Nlc3NSZWZ1bmRSZXF1ZXN0ID0ge1xuICAgICAgICAgICAgY29kZTogJycsXG4gICAgICAgICAgICByZWFzb246ICcnXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWx1ZSA9PT0gJ1JlamVjdCcpIHtcbiAgICAgICAgc3RhdHVzID0gJ1JFSkVDVCc7XG5cbiAgICAgICAgaWYgKHRoaXMubm90aWZpY2F0aW9uUHJldmlld09iaikge1xuICAgICAgICAgIHByb2Nlc3NSZWZ1bmRSZXF1ZXN0ID0ge1xuICAgICAgICAgICAgY29kZTogY29udHJvbHMucmVmdW5kUmVqZWN0UmVhc29uRmllbGQudmFsdWUgPyBjb250cm9scy5yZWZ1bmRSZWplY3RSZWFzb25GaWVsZC52YWx1ZSA6ICcnLFxuICAgICAgICAgICAgcmVhc29uOiBjb250cm9scy5yZWZ1bmRSZWplY3RSZWFzb25GaWVsZC52YWx1ZSA9PSAnUkUwMDUnID8gY29udHJvbHMuZW50ZXJSZWFzb25GaWVsZC52YWx1ZSA6ICcnLFxuICAgICAgICAgICAgdGVtcGxhdGVfcHJldmlldzoge1xuICAgICAgICAgICAgICBib2R5OiB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXdPYmouYm9keSxcbiAgICAgICAgICAgICAgZnJvbToge1xuICAgICAgICAgICAgICAgIGZyb21fZW1haWxfYWRkcmVzczogdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3T2JqLmZyb20uZnJvbV9lbWFpbF9hZGRyZXNzLFxuICAgICAgICAgICAgICAgIGZyb21fbWFpbF9hZGRyZXNzOiB7XG4gICAgICAgICAgICAgICAgICBhZGRyZXNzX2xpbmU6IHRoaXMubm90aWZpY2F0aW9uUHJldmlld09iai5mcm9tLmZyb21fbWFpbF9hZGRyZXNzLmFkZHJlc3NfbGluZSxcbiAgICAgICAgICAgICAgICAgIGNpdHk6IHRoaXMubm90aWZpY2F0aW9uUHJldmlld09iai5mcm9tLmZyb21fbWFpbF9hZGRyZXNzLmNpdHksXG4gICAgICAgICAgICAgICAgICBjb3VudHJ5OiB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXdPYmouZnJvbS5mcm9tX21haWxfYWRkcmVzcy5jb3VudHJ5LFxuICAgICAgICAgICAgICAgICAgY291bnR5OiB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXdPYmouZnJvbS5mcm9tX21haWxfYWRkcmVzcy5jb3VudHksXG4gICAgICAgICAgICAgICAgICBwb3N0YWxfY29kZTogdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3T2JqLmZyb20uZnJvbV9tYWlsX2FkZHJlc3MucG9zdGFsX2NvZGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGh0bWw6IHRoaXMubm90aWZpY2F0aW9uUHJldmlld09iai5odG1sLFxuICAgICAgICAgICAgICBpZDogdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3T2JqLnRlbXBsYXRlX2lkLFxuICAgICAgICAgICAgICBzdWJqZWN0OiB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXdPYmouc3ViamVjdCxcbiAgICAgICAgICAgICAgdGVtcGxhdGVfdHlwZTogdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3T2JqLnRlbXBsYXRlX3R5cGUsXG4gICAgICAgICAgICAgIHZlcnNpb246IDBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHByb2Nlc3NSZWZ1bmRSZXF1ZXN0ID0ge1xuICAgICAgICAgICAgY29kZTogY29udHJvbHMucmVmdW5kUmVqZWN0UmVhc29uRmllbGQudmFsdWUgPyBjb250cm9scy5yZWZ1bmRSZWplY3RSZWFzb25GaWVsZC52YWx1ZSA6ICcnLFxuICAgICAgICAgICAgcmVhc29uOiBjb250cm9scy5yZWZ1bmRSZWplY3RSZWFzb25GaWVsZC52YWx1ZSA9PSAnUkUwMDUnID8gY29udHJvbHMuZW50ZXJSZWFzb25GaWVsZC52YWx1ZSA6ICcnXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgXG4gICAgICB9IGVsc2UgaWYgKGNvbnRyb2xzLnJlZnVuZEFjdGlvbkZpZWxkLnZhbHVlID09PSAnUmV0dXJuIHRvIGNhc2V3b3JrZXInKSB7XG4gICAgICAgIHN0YXR1cyA9ICdTRU5EQkFDSyc7XG5cbiAgICAgICAgaWYgKHRoaXMubm90aWZpY2F0aW9uUHJldmlld09iaikge1xuICAgICAgICAgIHByb2Nlc3NSZWZ1bmRSZXF1ZXN0ID0ge1xuICAgICAgICAgICAgY29kZTogJycsXG4gICAgICAgICAgICByZWFzb246IGNvbnRyb2xzLnNlbmRNZUJhY2tGaWVsZC52YWx1ZSxcbiAgICAgICAgICAgIHRlbXBsYXRlX3ByZXZpZXc6IHtcbiAgICAgICAgICAgICAgYm9keTogdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3T2JqLmJvZHksXG4gICAgICAgICAgICAgIGZyb206IHtcbiAgICAgICAgICAgICAgICBmcm9tX2VtYWlsX2FkZHJlc3M6IHRoaXMubm90aWZpY2F0aW9uUHJldmlld09iai5mcm9tLmZyb21fZW1haWxfYWRkcmVzcyxcbiAgICAgICAgICAgICAgICBmcm9tX21haWxfYWRkcmVzczoge1xuICAgICAgICAgICAgICAgICAgYWRkcmVzc19saW5lOiB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXdPYmouZnJvbS5mcm9tX21haWxfYWRkcmVzcy5hZGRyZXNzX2xpbmUsXG4gICAgICAgICAgICAgICAgICBjaXR5OiB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXdPYmouZnJvbS5mcm9tX21haWxfYWRkcmVzcy5jaXR5LFxuICAgICAgICAgICAgICAgICAgY291bnRyeTogdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3T2JqLmZyb20uZnJvbV9tYWlsX2FkZHJlc3MuY291bnRyeSxcbiAgICAgICAgICAgICAgICAgIGNvdW50eTogdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3T2JqLmZyb20uZnJvbV9tYWlsX2FkZHJlc3MuY291bnR5LFxuICAgICAgICAgICAgICAgICAgcG9zdGFsX2NvZGU6IHRoaXMubm90aWZpY2F0aW9uUHJldmlld09iai5mcm9tLmZyb21fbWFpbF9hZGRyZXNzLnBvc3RhbF9jb2RlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBodG1sOiB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXdPYmouaHRtbCxcbiAgICAgICAgICAgICAgaWQ6IHRoaXMubm90aWZpY2F0aW9uUHJldmlld09iai50ZW1wbGF0ZV9pZCxcbiAgICAgICAgICAgICAgc3ViamVjdDogdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3T2JqLnN1YmplY3QsXG4gICAgICAgICAgICAgIHRlbXBsYXRlX3R5cGU6IHRoaXMubm90aWZpY2F0aW9uUHJldmlld09iai50ZW1wbGF0ZV90eXBlLFxuICAgICAgICAgICAgICB2ZXJzaW9uOiAwXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcm9jZXNzUmVmdW5kUmVxdWVzdCA9IHtcbiAgICAgICAgICAgIGNvZGU6ICcnLFxuICAgICAgICAgICAgcmVhc29uOiBjb250cm9scy5zZW5kTWVCYWNrRmllbGQudmFsdWVcbiAgICAgICAgICB9O1xuXG4gICAgICAgIH1cblxuICAgICAgXG4gICAgICB9XG4gICAgICB0aGlzLlJlZnVuZHNTZXJ2aWNlLnBhdGNoUmVmdW5kQWN0aW9ucyhwcm9jZXNzUmVmdW5kUmVxdWVzdCwgdGhpcy5yZWZ1bmRSZWZlcmVuY2UsIHN0YXR1cykuc3Vic2NyaWJlKFxuICAgICAgICByZXNwb25zZSA9PiB7XG4gICAgICAgICAgdGhpcy5pc1N1Y2Nlc3NwYWdlRW5hYmxlID0gdHJ1ZTtcbiAgICAgICAgICAvLyB0aGlzLnN1Y2Nlc3NNc2cgPSBKU09OLnBhcnNlKHJlc3BvbnNlKVsnZGF0YSddO1xuICAgICAgICAgIHRoaXMuc3VjY2Vzc01zZyA9IHJlc3BvbnNlLnJlcGxhY2UoL1snXCJdKy9nLCAnJyk7XG4gICAgICAgIH0sXG4gICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmdldEVycm9yTWVzc2FnZSh0cnVlLCBlcnIuc3RhdHVzQ29kZSwgZXJyLmVyciwgZXJyKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYoY29udHJvbHMucmVmdW5kQWN0aW9uRmllbGQudmFsdWUgPT0gXCJcIikge1xuICAgICAgICB0aGlzLnJlc2V0Rm9ybShbdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2VdLCAnYWN0aW9uJyk7XG4gICAgICB9XG4gICAgICBpZihjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWx1ZSA9PSAnUmVqZWN0JyAmJiBjb250cm9scy5yZWZ1bmRSZWplY3RSZWFzb25GaWVsZC52YWx1ZSA9PSBcIlwiKSB7XG4gICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sICdyZWplY3RSZWFzb24nKTtcbiAgICAgIH1cbiAgICAgIGlmKGNvbnRyb2xzLnJlZnVuZEFjdGlvbkZpZWxkLnZhbHVlID09ICdSZXR1cm4gdG8gY2FzZXdvcmtlcicpIHtcbiAgICAgICAgaWYoY29udHJvbHMuc2VuZE1lQmFja0ZpZWxkLnZhbHVlID09ICcnICkge1xuICAgICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sICdhZGRBcmVhc29uJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYoY29udHJvbHMuc2VuZE1lQmFja0ZpZWxkLnZhbHVlICE9ICcnICYmIGNvbnRyb2xzLnNlbmRNZUJhY2tGaWVsZC5pbnZhbGlkICkge1xuICAgICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sICdhZGRBcmVhc29uJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYocHJvY2Vzc0Zvcm1FcnJvciAmJiBwcm9jZXNzRm9ybUVycm9yLm1pbmxlbmd0aCAmJiBwcm9jZXNzRm9ybUVycm9yLm1pbmxlbmd0aC5hY3R1YWxMZW5ndGggPCAzICkge1xuICAgICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sICdhZGRBcmVhc29uJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYocHJvY2Vzc0Zvcm1FcnJvciAmJiBwcm9jZXNzRm9ybUVycm9yLm1heGxlbmd0aCAmJiBwcm9jZXNzRm9ybUVycm9yLm1heGxlbmd0aC5hY3R1YWxMZW5ndGggPiAyNTUgKSB7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlXSwgJ2FkZEFyZWFzb24nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYoY29udHJvbHMucmVmdW5kQWN0aW9uRmllbGQudmFsdWUgPT0gJ1JlamVjdCcgJiYgY29udHJvbHMucmVmdW5kUmVqZWN0UmVhc29uRmllbGQudmFsdWUgPT0gJ1JFMDA1Jykge1xuICAgICAgICBpZihjb250cm9scy5lbnRlclJlYXNvbkZpZWxkLnZhbHVlID09PSBcIlwiKSB7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlXSwgJ2VudGVyUmVhc29uJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYoY29udHJvbHMuZW50ZXJSZWFzb25GaWVsZC52YWx1ZSE9PSBcIlwiICYmIGNvbnRyb2xzLmVudGVyUmVhc29uRmllbGQuaW52YWxpZCkge1xuICAgICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZV0sICdlbnRlclJlYXNvbicpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbiAgZ2V0RXJyb3JNZXNzYWdlKGlzRXJyb3JFeGlzdCwgc3RhdHVzLCBlcnJvck1zZywgZXJyKSB7XG4gICAgbGV0IGJvZHlUeHQgPSAnUGxlYXNlIHRyeSBhZ2FpbiBsYXRlcic7XG4gICAgaWYgKHN0YXR1cyAhPT0gNTAwKSB7XG4gICAgICBpZiAoZXJyb3JNc2cgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBib2R5VHh0ID0gZXJyb3JNc2c7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBib2R5VHh0ID0gZXJyO1xuICAgICAgfVxuICAgICAgXG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICB0aXRsZTogJ1NvbWV0aGluZyB3ZW50IHdyb25nJyxcbiAgICAgIGJvZHk6IGJvZHlUeHQsXG4gICAgICBzaG93RXJyb3I6IGlzRXJyb3JFeGlzdFxuICAgIH07XG4gIH1cbiAgbG9hZFJlZnVuZExpc3RQYWdlKCkge1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0bmF2aWdhdGlvblBhZ2VWYWx1ZSgpLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5uYXZpZ2F0aW9ucGFnZSA9IGRhdGEpO1xuICAgIGlmICh0aGlzLm5hdmlnYXRpb25wYWdlID09PSAnY2FzZXRyYW5zYWN0aW9ucycpIHtcbiAgICAgIC8vIHdpbmRvdy5sb2NhdGlvbi5ocmVmPScvcmVmdW5kLWxpc3Q/dGFrZVBheW1lbnQ9ZmFsc2UmcmVmdW5kbGlzdD10cnVlJztcbiAgICAgIC8vIC8vIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0bmF2aWdhdGlvblBhZ2UoJ2Nhc2V0cmFuc2FjdGlvbnMnKTtcbiAgICAgIC8vIC8vIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0aXNGcm9tU2VydmljZVJlcXVlc3RQYWdlKGZhbHNlKTtcbiAgICAgIC8vIC8vIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5WSUVXID0nY2FzZS10cmFuc2FjdGlvbnMnO1xuICAgICAgLy8gLy8gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ2Nhc2UtdHJhbnNhY3Rpb25zJztcbiAgICAgIC8vIC8vIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU0JTRU5BQkxFID0gdHJ1ZTtcbiAgICAgIC8vIC8vIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc1JlZnVuZFN0YXR1c1ZpZXcgPSBmYWxzZTtcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdyZWZ1bmRzdGF0dXNsaXN0JztcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc1JlZnVuZFN0YXR1c1ZpZXcgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAncmVmdW5kc3RhdHVzbGlzdCc7XG4gICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNSZWZ1bmRTdGF0dXNWaWV3ID0gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgbG9hZFJlZnVuZHNIb21lUGFnZSgpIHtcbiAgICBpZih0eXBlb2YgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlRBS0VQQVlNRU5UID09PSAnc3RyaW5nJyAmJiB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQgPT09ICdmYWxzZScpIHtcbiAgICAgIC8vd2luZG93LmxvY2F0aW9uLmhyZWY9Jy9yZWZ1bmQtbGlzdD90YWtlUGF5bWVudD1mYWxzZSZyZWZ1bmRsaXN0PXRydWUnO1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ3JlZnVuZC1saXN0JztcbiAgICAgfVxuICAgICBlbHNlIHtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0bmF2aWdhdGlvblBhZ2UoJ2Nhc2V0cmFuc2FjdGlvbnMnKTtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0aXNGcm9tU2VydmljZVJlcXVlc3RQYWdlKGZhbHNlKTtcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5WSUVXID0nY2FzZS10cmFuc2FjdGlvbnMnO1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ2Nhc2UtdHJhbnNhY3Rpb25zJztcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU0JTRU5BQkxFID0gdHJ1ZTtcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc1JlZnVuZFN0YXR1c1ZpZXcgPSBmYWxzZTtcbiAgICAgfVxuICB9XG4gcmVkaXJlY3R0b1JlZnVuZExpc3RQYWdlKCkge1xuICAgaWYoKHR5cGVvZiB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQgPT09ICdzdHJpbmcnICYmIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5UQUtFUEFZTUVOVCA9PT0gJ2ZhbHNlJykgfHwgKHR5cGVvZiB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQgPT09ICdib29sZWFuJyAmJiAhdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlRBS0VQQVlNRU5UKSApIHtcbiAgIC8vIHdpbmRvdy5sb2NhdGlvbi5ocmVmPScvcmVmdW5kLWxpc3Q/dGFrZVBheW1lbnQ9ZmFsc2UmcmVmdW5kbGlzdD10cnVlJztcbiAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdyZWZ1bmQtbGlzdCc7XG4gICB9XG4gICBlbHNlIHtcbiAgICB0aGlzLmxvYWRSZWZ1bmRMaXN0UGFnZSgpO1xuICAgfVxuICB9XG4gIGxvYWRDYXNlVHJhbnNhY3Rpb25QYWdlKCkge1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0bmF2aWdhdGlvblBhZ2UoJ2Nhc2V0cmFuc2FjdGlvbnMnKTtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldGlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZShmYWxzZSk7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ2Nhc2UtdHJhbnNhY3Rpb25zJztcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNCU0VOQUJMRSA9IHRydWU7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzUmVmdW5kU3RhdHVzVmlldyA9IGZhbHNlO1xuICB9XG5cbiAgcmVzZXRGb3JtKHZhbHMsIGZpZWxkKSB7XG4gICAgaWYoZmllbGQ9PT0nYWN0aW9uJyB8fCBmaWVsZD09PSdhbGwnKSB7XG4gICAgICB0aGlzLnJlZnVuZEFjdGlvbnNIYXNFcnJvciA9IHZhbHNbMF07XG4gICAgfVxuICAgIGlmKGZpZWxkPT09J3JlamVjdFJlYXNvbicgfHwgZmllbGQ9PT0nYWxsJykge1xuICAgICAgdGhpcy5yZWZ1bmRSZWplY3RSZWFzb25IYXNFcnJvciA9IHZhbHNbMV07XG4gICAgfVxuICAgIGlmKGZpZWxkPT09J2FkZEFyZWFzb24nIHx8IGZpZWxkPT09J2FsbCcpIHtcbiAgICAgIHRoaXMuaXNSZWFzb25GaWVsZEVtcHR5ID0gdmFsc1syXTtcbiAgICAgIHRoaXMuaXNSZWFzb25GaWVsZEludmFsaWQgPSB2YWxzWzNdO1xuICAgICAgdGhpcy5yZWFzb25GaWVsZE1pbkhhc0Vycm9yID0gdmFsc1s0XTtcbiAgICAgIHRoaXMucmVhc29uRmllbGRNYXhIYXNFcnJvciA9IHZhbHNbNV07XG4gICAgfVxuICAgIGlmKGZpZWxkPT09J2VudGVyUmVhc29uJyB8fCBmaWVsZD09PSdhbGwnKSB7XG4gICAgICB0aGlzLmlzUmVhc29uRW1wdHkgPSB2YWxzWzZdO1xuICAgICAgdGhpcy5pc1JlYXNvbkludmFsaWQgPSB2YWxzWzddO1xuICAgIH1cbiAgfVxuXG4gIGdvVG9DYXNlUmV2aWV3KCkge1xuICAgIGNvbnN0IGlzUGF5QnViYmxlID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzRnJvbVBheUJ1YmJsZTtcbiAgICBpZihpc1BheUJ1YmJsZSkge1xuICAgICAgdGhpcy5sb2FkQ2FzZVRyYW5zYWN0aW9uUGFnZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9jYXNlcy9jYXNlLWRldGFpbHMvJHt0aGlzLmNjZENhc2VOdW1iZXJ9YF0sIHtyZWxhdGl2ZVRvOiB0aGlzLmFjdGl2ZVJvdXRlfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0VGVtcGxhdGVJbnN0cnVjdGlvblR5cGUocGF5bWVudDogSVBheW1lbnQsIHBheW1lbnRSZWZlcmVuY2U6IHN0cmluZykge1xuXG4gICAgaWYgKHBheW1lbnQgPT0gdW5kZWZpbmVkIHx8IHBheW1lbnQgPT0gbnVsbCB8fCBwYXltZW50LnJlZmVyZW5jZSAhPSBwYXltZW50UmVmZXJlbmNlKSB7XG4gICAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5nZXRQYXltZW50RGV0YWlscyhwYXltZW50UmVmZXJlbmNlKS5zdWJzY3JpYmUoXG4gICAgICAgIHBheW1lbnQgPT4ge1xuICAgICAgICAgIHRoaXMucGF5bWVudE9iaiA9IHBheW1lbnQ7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5nZXROb3RpZmljYXRpb25JbnN0cnVjdGlvblR5cGUodGhpcy5wYXltZW50T2JqLmNoYW5uZWwsIHRoaXMucGF5bWVudE9iai5tZXRob2QpO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiAnVGVtcGxhdGUnO1xuICAgICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmdldE5vdGlmaWNhdGlvbkluc3RydWN0aW9uVHlwZShwYXltZW50LmNoYW5uZWwsIHBheW1lbnQubWV0aG9kKTtcbiAgICB9XG4gIH1cblxuICBzaG93Tm90aWZpY2F0aW9uUHJldmlldygpOiB2b2lkIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXcgPSB0cnVlO1xuICB9XG5cbiAgaGlkZU5vdGlmaWNhdGlvblByZXZpZXcoKTogdm9pZCB7XG4gICAgdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3ID0gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
|
|
671
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1yZWZ1bmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9wcm9jZXNzLXJlZnVuZC9wcm9jZXNzLXJlZnVuZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQVUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQWEsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUt0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN2RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFDLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR3hEO0lBd0NFLGdDQUFvQixjQUE4QixFQUM5QixrQkFBc0MsRUFDdEMsV0FBd0IsRUFDeEIsaUJBQW9DLEVBQ3BDLG1CQUF3QyxFQUN4QyxtQkFBd0MsRUFDeEMsTUFBYyxFQUNkLFdBQTJCO1FBUDNCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLFdBQU0sR0FBTixNQUFN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c0M7O0lBQ3RDLHdEQUF3Qzs7SUFDeEMsd0RBQXdDOztJQUN4QywrQ0FBK0I7O0lBQy9CLGlEQUFpQzs7SUFDakMsNENBQTBCOztJQUMxQixnREFBdUI7O0lBQ3ZCLCtDQUFzQjs7SUFDdEIsc0RBQThCOztJQUM5Qiw0Q0FBc0I7O0lBQ3RCLDJDQUFtQjs7SUFDbkIseURBQXdDOztJQUN4Qyw0Q0FBcUI7O0lBQ3JCLHlEQUFnQzs7SUFDaEMscURBQXFDOztJQUNyQyx3REFBNkM7Ozs7O0lBQ2pDLGdEQUFzQzs7Ozs7SUFDdEMsb0RBQThDOzs7OztJQUM5Qyw2Q0FBZ0M7Ozs7O0lBQ2hDLG1EQUE0Qzs7Ozs7SUFDNUMscURBQWdEOzs7OztJQUNoRCxxREFBZ0Q7Ozs7O0lBQ2hELHdDQUFzQjs7Ozs7SUFDdEIsNkNBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1JlZnVuZHNTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZWZ1bmRzL3JlZnVuZHMuc2VydmljZSc7XG5pbXBvcnQgeyBJUmVmdW5kQWN0aW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUmVmdW5kQWN0aW9uJztcbmltcG9ydCB7IElSZWZ1bmRMaXN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUmVmdW5kTGlzdCc7XG5pbXBvcnQgeyBJUGF5bWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVBheW1lbnQnO1xuaW1wb3J0IHsgSVJlZnVuZFJlamVjdFJlYXNvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVJlZnVuZFJlamVjdFJlYXNvbic7XG5pbXBvcnQgeyBPcmRlcnNsaXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29yZGVyc2xpc3Quc2VydmljZSc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFBheW1lbnRWaWV3U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BheW1lbnQtdmlldy9wYXltZW50LXZpZXcuc2VydmljZSc7XG5pbXBvcnQgeyBQYXltZW50TGliQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGF5bWVudC1saWIuY29tcG9uZW50JztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJTm90aWZpY2F0aW9uUHJldmlldyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSU5vdGlmaWNhdGlvblByZXZpZXcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY3BheS1wcm9jZXNzLXJlZnVuZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9jZXNzLXJlZnVuZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2Nlc3MtcmVmdW5kLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9jZXNzUmVmdW5kQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcmVmdW5kUmVmZXJlbmNlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlZnVuZGxpc3Rzb3VyY2U6IElSZWZ1bmRMaXN0O1xuXG4gIHByb2Nlc3NSZWZ1bmRGb3JtOiBGb3JtR3JvdXA7XG5cbiAgZXJyb3JNZXNzYWdlID0gIHRoaXMuZ2V0RXJyb3JNZXNzYWdlKGZhbHNlLCAnJywgJycsICcnKTtcbiAgc2VuZG1lYmFjazogc3RyaW5nID0gbnVsbDtcbiAgdmlld1N0YXR1czogc3RyaW5nO1xuICByZWZ1bmRBY3Rpb25MaXN0OiBJUmVmdW5kQWN0aW9uW10gPSBbXTsgXG4gIHJlZnVuZFJlamVjdFJlYXNvbkxpc3Q6IElSZWZ1bmRSZWplY3RSZWFzb25bXSA9IFtdOyBcbiAgaXNTZW5kTWVCYWNrQ2xpY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1JlamVjdENsaWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNPdGhlckNsaWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNTdWNjZXNzcGFnZUVuYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHJlZnVuZEFjdGlvbnNIYXNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICByZWZ1bmRSZWplY3RSZWFzb25IYXNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1JlYXNvbkZpZWxkRW1wdHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNSZWFzb25GaWVsZEludmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcmVhc29uRmllbGRNaW5IYXNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICByZWFzb25GaWVsZE1heEhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUmVhc29uRW1wdHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNSZWFzb25JbnZhbGlkOiBib29sZWFuID0gZmFsc2U7XG4gIHN1Y2Nlc3NNc2c6IHN0cmluZyA9IG51bGw7XG4gIG5hdmlnYXRpb25wYWdlOiBzdHJpbmc7XG4gIGNjZENhc2VOdW1iZXI6IHN0cmluZztcbiAgaXNGcm9tUmVmdW5kTGlzdFBhZ2U6IGJvb2xlYW47XG4gIGNwb0RldGFpbHM6YW55ID0gbnVsbDtcbiAgaXNDUE9Eb3duOiBib29sZWFuO1xuICBpc0NvbmZpcm1CdXR0b25kaXNhYmxlZDogYm9vbGVhbiA9IHRydWU7XG4gIHBheW1lbnRPYmo6IElQYXltZW50O1xuICB0ZW1wbGF0ZUluc3RydWN0aW9uVHlwZTogc3RyaW5nO1xuICBub3RpZmljYXRpb25QcmV2aWV3OiBib29sZWFuID0gZmFsc2U7XG4gIG5vdGlmaWNhdGlvblByZXZpZXdPYmo6IElOb3RpZmljYXRpb25QcmV2aWV3O1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIFJlZnVuZHNTZXJ2aWNlOiBSZWZ1bmRzU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBwYXltZW50Vmlld1NlcnZpY2U6IFBheW1lbnRWaWV3U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgT3JkZXJzbGlzdFNlcnZpY2U6IE9yZGVyc2xpc3RTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcGF5bWVudExpYkNvbXBvbmVudDogUGF5bWVudExpYkNvbXBvbmVudCxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBhY3RpdmVSb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudmlld1N0YXR1cyA9ICdSZWZ1bmRQcm9jZXNzJztcbiAgICB0aGlzLlJlZnVuZHNTZXJ2aWNlLmdldFJlZnVuZEFjdGlvbnModGhpcy5yZWZ1bmRSZWZlcmVuY2UpLnN1YnNjcmliZShcbiAgICAgIHJlZnVuZEFjdGlvbkxpc3QgPT4ge1xuICAgICAgICB0aGlzLnJlZnVuZEFjdGlvbkxpc3QgPSA8YW55PnJlZnVuZEFjdGlvbkxpc3Q7XG4gICAgICB9LFxuICAgICAgZXJyID0+IHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmdldEVycm9yTWVzc2FnZSh0cnVlLCBlcnIuc3RhdHVzQ29kZSwgZXJyLmVyciwgZXJyKTtcbiAgICAgIH1cbiAgICApO1xuICAgIHRoaXMucHJvY2Vzc1JlZnVuZEZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIHJlZnVuZEFjdGlvbkZpZWxkOiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICAgIF0pKSxcbiAgICAgIHJlZnVuZFJlamVjdFJlYXNvbkZpZWxkOiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICAgIF0pKSxcbiAgICAgIHNlbmRNZUJhY2tGaWVsZDogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICBWYWxpZGF0b3JzLm1pbkxlbmd0aCgzKSxcbiAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjU1KSxcbiAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKCdeKFthLXpBLVowLTlcXFxccyxcXFxcLl0qKSQnKSxcblxuICAgICAgXSkpLFxuICAgICAgZW50ZXJSZWFzb25GaWVsZDogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aCgzMCksXG4gICAgICAgIFZhbGlkYXRvcnMucGF0dGVybignXihbYS16QS1aMC05LlxcXFxzXSopJCcpLFxuICAgICAgXSkpLFxuICAgIH0pO1xuICAgdGhpcy5jY2RDYXNlTnVtYmVyID0gdGhpcy5yZWZ1bmRsaXN0c291cmNlLmNjZF9jYXNlX251bWJlcjtcblxuICAgaWYoKHR5cGVvZiB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQgPT09ICdzdHJpbmcnICYmIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5UQUtFUEFZTUVOVCA9PT0gJ2ZhbHNlJykgfHwgKHR5cGVvZiB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQgPT09ICdib29sZWFuJyAmJiAhdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlRBS0VQQVlNRU5UKSApIHtcbiAgICB0aGlzLmlzRnJvbVJlZnVuZExpc3RQYWdlID0gdHJ1ZTtcbiAgIH1cbiAgIHRoaXMucGF5bWVudFZpZXdTZXJ2aWNlLmdldFBhcnR5RGV0YWlscyh0aGlzLmNjZENhc2VOdW1iZXIpLnN1YnNjcmliZShcbiAgICByZXNwb25zZSA9PiB7XG4gICAgICB0aGlzLmNwb0RldGFpbHMgPSBKU09OLnBhcnNlKHJlc3BvbnNlKS5jb250ZW50WzBdO1xuXG4gICAgfSxcbiAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSA8YW55PmVycm9yLnJlcGxhY2UoL1wiL2csXCJcIik7XG4gICAgICB0aGlzLmlzQ1BPRG93biA9IHRydWU7XG4gICAgfVxuICApO1xuICB0aGlzLnRlbXBsYXRlSW5zdHJ1Y3Rpb25UeXBlID0gdGhpcy5nZXRUZW1wbGF0ZUluc3RydWN0aW9uVHlwZSh0aGlzLnBheW1lbnRPYmosdGhpcy5yZWZ1bmRsaXN0c291cmNlLnBheW1lbnRfcmVmZXJlbmNlKTtcbiAgfVxuICBcbiAgY2hlY2tSZWZ1bmRBY3Rpb25zKGNvZGU6IHN0cmluZykge1xuICAgIHRoaXMucmVmdW5kQWN0aW9uc0hhc0Vycm9yID0gZmFsc2U7XG4gICAgdGhpcy5pc1JlYXNvbkZpZWxkRW1wdHkgPSBmYWxzZTtcbiAgICB0aGlzLmlzUmVhc29uRW1wdHkgPSBmYWxzZTtcbiAgICB0aGlzLmlzUmVhc29uSW52YWxpZCA9IGZhbHNlO1xuICAgIHRoaXMucmVmdW5kUmVqZWN0UmVhc29uSGFzRXJyb3IgPSBmYWxzZTtcbiAgICBpZihjb2RlID09PSAnUmV0dXJuIHRvIGNhc2V3b3JrZXInKSB7XG4gICAgICB0aGlzLmlzQ29uZmlybUJ1dHRvbmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNTZW5kTWVCYWNrQ2xpY2tlZCA9IHRydWU7XG4gICAgICB0aGlzLmlzUmVqZWN0Q2xpY2tlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5pc090aGVyQ2xpY2tlZCA9IGZhbHNlO1xuXG4gICAgfSBlbHNlIGlmIChjb2RlID09PSAnQXBwcm92ZScpIHtcbiAgICAgIHRoaXMuaXNTZW5kTWVCYWNrQ2xpY2tlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5pc0NvbmZpcm1CdXR0b25kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5pc1JlamVjdENsaWNrZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNPdGhlckNsaWNrZWQgPSBmYWxzZTtcblxuICAgIH0gZWxzZSBpZiAoY29kZSA9PT0gJ1JlamVjdCcpIHtcbiAgICAgIHRoaXMuaXNSZWplY3RDbGlja2VkID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNTZW5kTWVCYWNrQ2xpY2tlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5pc090aGVyQ2xpY2tlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5SZWZ1bmRzU2VydmljZS5nZXRSZWZ1bmRSZWplY3RSZWFzb25zKCkuc3Vic2NyaWJlKFxuICAgICAgICByZWZ1bmRSZWplY3RSZWFzb25MaXN0ID0+IHtcbiAgICAgICAgICB0aGlzLnJlZnVuZFJlamVjdFJlYXNvbkxpc3QgPSA8YW55PnJlZnVuZFJlamVjdFJlYXNvbkxpc3Q7XG4gICAgICAgIH0sXG4gICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmdldEVycm9yTWVzc2FnZSh0cnVlLCBlcnIuc3RhdHVzQ29kZSwgZXJyLmVyciwgZXJyKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKGNvZGUgPT09ICdSRTAwNScpIHtcbiAgICAgIHRoaXMuaXNPdGhlckNsaWNrZWQgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoY29kZSAhPT0gJ1JFMDA1Jykge1xuICAgICAgdGhpcy5pc090aGVyQ2xpY2tlZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGdldE5vdGlmaWNhdGlvblByZXZpZXdPYmoobm90aWZpY2F0aW9uUHJldmlld09iaiA6IElOb3RpZmljYXRpb25QcmV2aWV3KXtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXdPYmogPSBub3RpZmljYXRpb25QcmV2aWV3T2JqO1xuICB9XG5cbiAgcHJvY2Vzc1JlZnVuZFN1Ym1pdCgpIHtcbiAgICBsZXQgcHJvY2Vzc1JlZnVuZFJlcXVlc3Q7XG4gICAgbGV0IHN0YXR1cztcbiAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlXSwgJ2FsbCcpO1xuICAgIGNvbnN0IGNvbnRyb2xzID0gdGhpcy5wcm9jZXNzUmVmdW5kRm9ybS5jb250cm9scztcbiAgICBjb25zdCBwcm9jZXNzRm9ybUVycm9yID0gY29udHJvbHMuc2VuZE1lQmFja0ZpZWxkLmVycm9ycztcblxuICAgIGlmICh0aGlzLnByb2Nlc3NSZWZ1bmRGb3JtLmRpcnR5ICYmIGNvbnRyb2xzLnJlZnVuZEFjdGlvbkZpZWxkLnZhbGlkIFxuICAgICAgJiYgKGNvbnRyb2xzLnJlZnVuZEFjdGlvbkZpZWxkLnZhbHVlID09ICdBcHByb3ZlJ1xuICAgICAgfHwgKGNvbnRyb2xzLnJlZnVuZEFjdGlvbkZpZWxkLnZhbHVlID09ICdSZWplY3QnICYmIGNvbnRyb2xzLnJlZnVuZFJlamVjdFJlYXNvbkZpZWxkLnZhbGlkICYmIGNvbnRyb2xzLnJlZnVuZFJlamVjdFJlYXNvbkZpZWxkLnZhbHVlICE9ICdSRTAwNScpXG4gICAgICB8fCAoY29udHJvbHMucmVmdW5kQWN0aW9uRmllbGQudmFsdWUgPT0gJ1JlamVjdCcgJiYgY29udHJvbHMucmVmdW5kUmVqZWN0UmVhc29uRmllbGQudmFsdWUgPT0gJ1JFMDA1JyAmJiBjb250cm9scy5lbnRlclJlYXNvbkZpZWxkLnZhbGlkKVxuICAgICAgfHwgKGNvbnRyb2xzLnJlZnVuZEFjdGlvbkZpZWxkLnZhbHVlID09ICdSZXR1cm4gdG8gY2FzZXdvcmtlcicgJiYgY29udHJvbHMuc2VuZE1lQmFja0ZpZWxkLnZhbGlkKSkpIHtcbiAgICAgIGlmIChjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWx1ZSA9PT0gJ0FwcHJvdmUnKXtcbiAgICAgICAgc3RhdHVzID0gJ0FQUFJPVkUnO1xuICAgICAgICBpZiAodGhpcy5ub3RpZmljYXRpb25QcmV2aWV3T2JqKSB7XG4gICAgICAgICAgcHJvY2Vzc1JlZnVuZFJlcXVlc3QgPSB7XG4gICAgICAgICAgICBjb2RlOiAnJyxcbiAgICAgICAgICAgIHJlYXNvbjogJycsXG4gICAgICAgICAgICB0ZW1wbGF0ZV9wcmV2aWV3OiB7XG4gICAgICAgICAgICAgIGJvZHk6IHRoaXMubm90aWZpY2F0aW9uUHJldmlld09iai5ib2R5LFxuICAgICAgICAgICAgICBmcm9tOiB7XG4gICAgICAgICAgICAgICAgZnJvbV9lbWFpbF9hZGRyZXNzOiB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXdPYmouZnJvbS5mcm9tX2VtYWlsX2FkZHJlc3MsXG4gICAgICAgICAgICAgICAgZnJvbV9tYWlsX2FkZHJlc3M6IHtcbiAgICAgICAgICAgICAgICAgIGFkZHJlc3NfbGluZTogdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3T2JqLmZyb20uZnJvbV9tYWlsX2FkZHJlc3MuYWRkcmVzc19saW5lLFxuICAgICAgICAgICAgICAgICAgY2l0eTogdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3T2JqLmZyb20uZnJvbV9tYWlsX2FkZHJlc3MuY2l0eSxcbiAgICAgICAgICAgICAgICAgIGNvdW50cnk6IHRoaXMubm90aWZpY2F0aW9uUHJldmlld09iai5mcm9tLmZyb21fbWFpbF9hZGRyZXNzLmNvdW50cnksXG4gICAgICAgICAgICAgICAgICBjb3VudHk6IHRoaXMubm90aWZpY2F0aW9uUHJldmlld09iai5mcm9tLmZyb21fbWFpbF9hZGRyZXNzLmNvdW50eSxcbiAgICAgICAgICAgICAgICAgIHBvc3RhbF9jb2RlOiB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXdPYmouZnJvbS5mcm9tX21haWxfYWRkcmVzcy5wb3N0YWxfY29kZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgaHRtbDogdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3T2JqLmh0bWwsXG4gICAgICAgICAgICAgIGlkOiB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXdPYmoudGVtcGxhdGVfaWQsXG4gICAgICAgICAgICAgIHN1YmplY3Q6IHRoaXMubm90aWZpY2F0aW9uUHJldmlld09iai5zdWJqZWN0LFxuICAgICAgICAgICAgICB0ZW1wbGF0ZV90eXBlOiB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXdPYmoudGVtcGxhdGVfdHlwZSxcbiAgICAgICAgICAgICAgdmVyc2lvbjogMFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcm9jZXNzUmVmdW5kUmVxdWVzdCA9IHtcbiAgICAgICAgICAgIGNvZGU6ICcnLFxuICAgICAgICAgICAgcmVhc29uOiAnJ1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY29udHJvbHMucmVmdW5kQWN0aW9uRmllbGQudmFsdWUgPT09ICdSZWplY3QnKSB7XG4gICAgICAgIHN0YXR1cyA9ICdSRUpFQ1QnO1xuXG4gICAgICAgIGlmICh0aGlzLm5vdGlmaWNhdGlvblByZXZpZXdPYmopIHtcbiAgICAgICAgICBwcm9jZXNzUmVmdW5kUmVxdWVzdCA9IHtcbiAgICAgICAgICAgIGNvZGU6IGNvbnRyb2xzLnJlZnVuZFJlamVjdFJlYXNvbkZpZWxkLnZhbHVlID8gY29udHJvbHMucmVmdW5kUmVqZWN0UmVhc29uRmllbGQudmFsdWUgOiAnJyxcbiAgICAgICAgICAgIHJlYXNvbjogY29udHJvbHMucmVmdW5kUmVqZWN0UmVhc29uRmllbGQudmFsdWUgPT0gJ1JFMDA1JyA/IGNvbnRyb2xzLmVudGVyUmVhc29uRmllbGQudmFsdWUgOiAnJyxcbiAgICAgICAgICAgIHRlbXBsYXRlX3ByZXZpZXc6IHtcbiAgICAgICAgICAgICAgYm9keTogdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3T2JqLmJvZHksXG4gICAgICAgICAgICAgIGZyb206IHtcbiAgICAgICAgICAgICAgICBmcm9tX2VtYWlsX2FkZHJlc3M6IHRoaXMubm90aWZpY2F0aW9uUHJldmlld09iai5mcm9tLmZyb21fZW1haWxfYWRkcmVzcyxcbiAgICAgICAgICAgICAgICBmcm9tX21haWxfYWRkcmVzczoge1xuICAgICAgICAgICAgICAgICAgYWRkcmVzc19saW5lOiB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXdPYmouZnJvbS5mcm9tX21haWxfYWRkcmVzcy5hZGRyZXNzX2xpbmUsXG4gICAgICAgICAgICAgICAgICBjaXR5OiB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXdPYmouZnJvbS5mcm9tX21haWxfYWRkcmVzcy5jaXR5LFxuICAgICAgICAgICAgICAgICAgY291bnRyeTogdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3T2JqLmZyb20uZnJvbV9tYWlsX2FkZHJlc3MuY291bnRyeSxcbiAgICAgICAgICAgICAgICAgIGNvdW50eTogdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3T2JqLmZyb20uZnJvbV9tYWlsX2FkZHJlc3MuY291bnR5LFxuICAgICAgICAgICAgICAgICAgcG9zdGFsX2NvZGU6IHRoaXMubm90aWZpY2F0aW9uUHJldmlld09iai5mcm9tLmZyb21fbWFpbF9hZGRyZXNzLnBvc3RhbF9jb2RlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBodG1sOiB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXdPYmouaHRtbCxcbiAgICAgICAgICAgICAgaWQ6IHRoaXMubm90aWZpY2F0aW9uUHJldmlld09iai50ZW1wbGF0ZV9pZCxcbiAgICAgICAgICAgICAgc3ViamVjdDogdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3T2JqLnN1YmplY3QsXG4gICAgICAgICAgICAgIHRlbXBsYXRlX3R5cGU6IHRoaXMubm90aWZpY2F0aW9uUHJldmlld09iai50ZW1wbGF0ZV90eXBlLFxuICAgICAgICAgICAgICB2ZXJzaW9uOiAwXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcm9jZXNzUmVmdW5kUmVxdWVzdCA9IHtcbiAgICAgICAgICAgIGNvZGU6IGNvbnRyb2xzLnJlZnVuZFJlamVjdFJlYXNvbkZpZWxkLnZhbHVlID8gY29udHJvbHMucmVmdW5kUmVqZWN0UmVhc29uRmllbGQudmFsdWUgOiAnJyxcbiAgICAgICAgICAgIHJlYXNvbjogY29udHJvbHMucmVmdW5kUmVqZWN0UmVhc29uRmllbGQudmFsdWUgPT0gJ1JFMDA1JyA/IGNvbnRyb2xzLmVudGVyUmVhc29uRmllbGQudmFsdWUgOiAnJ1xuICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgIFxuICAgICAgfSBlbHNlIGlmIChjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWx1ZSA9PT0gJ1JldHVybiB0byBjYXNld29ya2VyJykge1xuICAgICAgICBzdGF0dXMgPSAnU0VOREJBQ0snO1xuXG4gICAgICAgIGlmICh0aGlzLm5vdGlmaWNhdGlvblByZXZpZXdPYmopIHtcbiAgICAgICAgICBwcm9jZXNzUmVmdW5kUmVxdWVzdCA9IHtcbiAgICAgICAgICAgIGNvZGU6ICcnLFxuICAgICAgICAgICAgcmVhc29uOiBjb250cm9scy5zZW5kTWVCYWNrRmllbGQudmFsdWUsXG4gICAgICAgICAgICB0ZW1wbGF0ZV9wcmV2aWV3OiB7XG4gICAgICAgICAgICAgIGJvZHk6IHRoaXMubm90aWZpY2F0aW9uUHJldmlld09iai5ib2R5LFxuICAgICAgICAgICAgICBmcm9tOiB7XG4gICAgICAgICAgICAgICAgZnJvbV9lbWFpbF9hZGRyZXNzOiB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXdPYmouZnJvbS5mcm9tX2VtYWlsX2FkZHJlc3MsXG4gICAgICAgICAgICAgICAgZnJvbV9tYWlsX2FkZHJlc3M6IHtcbiAgICAgICAgICAgICAgICAgIGFkZHJlc3NfbGluZTogdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3T2JqLmZyb20uZnJvbV9tYWlsX2FkZHJlc3MuYWRkcmVzc19saW5lLFxuICAgICAgICAgICAgICAgICAgY2l0eTogdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3T2JqLmZyb20uZnJvbV9tYWlsX2FkZHJlc3MuY2l0eSxcbiAgICAgICAgICAgICAgICAgIGNvdW50cnk6IHRoaXMubm90aWZpY2F0aW9uUHJldmlld09iai5mcm9tLmZyb21fbWFpbF9hZGRyZXNzLmNvdW50cnksXG4gICAgICAgICAgICAgICAgICBjb3VudHk6IHRoaXMubm90aWZpY2F0aW9uUHJldmlld09iai5mcm9tLmZyb21fbWFpbF9hZGRyZXNzLmNvdW50eSxcbiAgICAgICAgICAgICAgICAgIHBvc3RhbF9jb2RlOiB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXdPYmouZnJvbS5mcm9tX21haWxfYWRkcmVzcy5wb3N0YWxfY29kZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgaHRtbDogdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3T2JqLmh0bWwsXG4gICAgICAgICAgICAgIGlkOiB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXdPYmoudGVtcGxhdGVfaWQsXG4gICAgICAgICAgICAgIHN1YmplY3Q6IHRoaXMubm90aWZpY2F0aW9uUHJldmlld09iai5zdWJqZWN0LFxuICAgICAgICAgICAgICB0ZW1wbGF0ZV90eXBlOiB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXdPYmoudGVtcGxhdGVfdHlwZSxcbiAgICAgICAgICAgICAgdmVyc2lvbjogMFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJvY2Vzc1JlZnVuZFJlcXVlc3QgPSB7XG4gICAgICAgICAgICBjb2RlOiAnJyxcbiAgICAgICAgICAgIHJlYXNvbjogY29udHJvbHMuc2VuZE1lQmFja0ZpZWxkLnZhbHVlXG4gICAgICAgICAgfTtcblxuICAgICAgICB9XG5cbiAgICAgIFxuICAgICAgfVxuICAgICAgdGhpcy5SZWZ1bmRzU2VydmljZS5wYXRjaFJlZnVuZEFjdGlvbnMocHJvY2Vzc1JlZnVuZFJlcXVlc3QsIHRoaXMucmVmdW5kUmVmZXJlbmNlLCBzdGF0dXMpLnN1YnNjcmliZShcbiAgICAgICAgcmVzcG9uc2UgPT4ge1xuICAgICAgICAgIHRoaXMuaXNTdWNjZXNzcGFnZUVuYWJsZSA9IHRydWU7XG4gICAgICAgICAgLy8gdGhpcy5zdWNjZXNzTXNnID0gSlNPTi5wYXJzZShyZXNwb25zZSlbJ2RhdGEnXTtcbiAgICAgICAgICB0aGlzLnN1Y2Nlc3NNc2cgPSByZXNwb25zZS5yZXBsYWNlKC9bJ1wiXSsvZywgJycpO1xuICAgICAgICB9LFxuICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5nZXRFcnJvck1lc3NhZ2UodHJ1ZSwgZXJyLnN0YXR1c0NvZGUsIGVyci5lcnIsIGVycik7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmKGNvbnRyb2xzLnJlZnVuZEFjdGlvbkZpZWxkLnZhbHVlID09IFwiXCIpIHtcbiAgICAgICAgdGhpcy5yZXNldEZvcm0oW3RydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlXSwgJ2FjdGlvbicpO1xuICAgICAgfVxuICAgICAgaWYoY29udHJvbHMucmVmdW5kQWN0aW9uRmllbGQudmFsdWUgPT0gJ1JlamVjdCcgJiYgY29udHJvbHMucmVmdW5kUmVqZWN0UmVhc29uRmllbGQudmFsdWUgPT0gXCJcIikge1xuICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2VdLCAncmVqZWN0UmVhc29uJyk7XG4gICAgICB9XG4gICAgICBpZihjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWx1ZSA9PSAnUmV0dXJuIHRvIGNhc2V3b3JrZXInKSB7XG4gICAgICAgIGlmKGNvbnRyb2xzLnNlbmRNZUJhY2tGaWVsZC52YWx1ZSA9PSAnJyApIHtcbiAgICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2VdLCAnYWRkQXJlYXNvbicpO1xuICAgICAgICB9XG4gICAgICAgIGlmKGNvbnRyb2xzLnNlbmRNZUJhY2tGaWVsZC52YWx1ZSAhPSAnJyAmJiBjb250cm9scy5zZW5kTWVCYWNrRmllbGQuaW52YWxpZCApIHtcbiAgICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2VdLCAnYWRkQXJlYXNvbicpO1xuICAgICAgICB9XG4gICAgICAgIGlmKHByb2Nlc3NGb3JtRXJyb3IgJiYgcHJvY2Vzc0Zvcm1FcnJvci5taW5sZW5ndGggJiYgcHJvY2Vzc0Zvcm1FcnJvci5taW5sZW5ndGguYWN0dWFsTGVuZ3RoIDwgMyApIHtcbiAgICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2VdLCAnYWRkQXJlYXNvbicpO1xuICAgICAgICB9XG4gICAgICAgIGlmKHByb2Nlc3NGb3JtRXJyb3IgJiYgcHJvY2Vzc0Zvcm1FcnJvci5tYXhsZW5ndGggJiYgcHJvY2Vzc0Zvcm1FcnJvci5tYXhsZW5ndGguYWN0dWFsTGVuZ3RoID4gMjU1ICkge1xuICAgICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0sICdhZGRBcmVhc29uJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmKGNvbnRyb2xzLnJlZnVuZEFjdGlvbkZpZWxkLnZhbHVlID09ICdSZWplY3QnICYmIGNvbnRyb2xzLnJlZnVuZFJlamVjdFJlYXNvbkZpZWxkLnZhbHVlID09ICdSRTAwNScpIHtcbiAgICAgICAgaWYoY29udHJvbHMuZW50ZXJSZWFzb25GaWVsZC52YWx1ZSA9PT0gXCJcIikge1xuICAgICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZV0sICdlbnRlclJlYXNvbicpO1xuICAgICAgICB9XG4gICAgICAgIGlmKGNvbnRyb2xzLmVudGVyUmVhc29uRmllbGQudmFsdWUhPT0gXCJcIiAmJiBjb250cm9scy5lbnRlclJlYXNvbkZpZWxkLmludmFsaWQpIHtcbiAgICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWVdLCAnZW50ZXJSZWFzb24nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICB9XG4gIGdldEVycm9yTWVzc2FnZShpc0Vycm9yRXhpc3QsIHN0YXR1cywgZXJyb3JNc2csIGVycikge1xuICAgIGxldCBib2R5VHh0ID0gJ1BsZWFzZSB0cnkgYWdhaW4gbGF0ZXInO1xuICAgIGlmIChzdGF0dXMgIT09IDUwMCkge1xuICAgICAgaWYgKGVycm9yTXNnICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYm9keVR4dCA9IGVycm9yTXNnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYm9keVR4dCA9IGVycjtcbiAgICAgIH1cbiAgICAgIFxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgdGl0bGU6ICdTb21ldGhpbmcgd2VudCB3cm9uZycsXG4gICAgICBib2R5OiBib2R5VHh0LFxuICAgICAgc2hvd0Vycm9yOiBpc0Vycm9yRXhpc3RcbiAgICB9O1xuICB9XG4gIGxvYWRSZWZ1bmRMaXN0UGFnZSgpIHtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLmdldG5hdmlnYXRpb25QYWdlVmFsdWUoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMubmF2aWdhdGlvbnBhZ2UgPSBkYXRhKTtcbiAgICBpZiAodGhpcy5uYXZpZ2F0aW9ucGFnZSA9PT0gJ2Nhc2V0cmFuc2FjdGlvbnMnKSB7XG4gICAgICAvLyB3aW5kb3cubG9jYXRpb24uaHJlZj0nL3JlZnVuZC1saXN0P3Rha2VQYXltZW50PWZhbHNlJnJlZnVuZGxpc3Q9dHJ1ZSc7XG4gICAgICAvLyAvLyB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldG5hdmlnYXRpb25QYWdlKCdjYXNldHJhbnNhY3Rpb25zJyk7XG4gICAgICAvLyAvLyB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldGlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZShmYWxzZSk7XG4gICAgICAvLyAvLyB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVklFVyA9J2Nhc2UtdHJhbnNhY3Rpb25zJztcbiAgICAgIC8vIC8vIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdjYXNlLXRyYW5zYWN0aW9ucyc7XG4gICAgICAvLyAvLyB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNCU0VOQUJMRSA9IHRydWU7XG4gICAgICAvLyAvLyB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNSZWZ1bmRTdGF0dXNWaWV3ID0gZmFsc2U7XG4gICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAncmVmdW5kc3RhdHVzbGlzdCc7XG4gICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNSZWZ1bmRTdGF0dXNWaWV3ID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ3JlZnVuZHN0YXR1c2xpc3QnO1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzUmVmdW5kU3RhdHVzVmlldyA9IHRydWU7XG4gICAgfVxuICB9XG4gIGxvYWRSZWZ1bmRzSG9tZVBhZ2UoKSB7XG4gICAgaWYodHlwZW9mIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5UQUtFUEFZTUVOVCA9PT0gJ3N0cmluZycgJiYgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlRBS0VQQVlNRU5UID09PSAnZmFsc2UnKSB7XG4gICAgICAvL3dpbmRvdy5sb2NhdGlvbi5ocmVmPScvcmVmdW5kLWxpc3Q/dGFrZVBheW1lbnQ9ZmFsc2UmcmVmdW5kbGlzdD10cnVlJztcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdyZWZ1bmQtbGlzdCc7XG4gICAgIH1cbiAgICAgZWxzZSB7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldG5hdmlnYXRpb25QYWdlKCdjYXNldHJhbnNhY3Rpb25zJyk7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldGlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZShmYWxzZSk7XG4gICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVklFVyA9J2Nhc2UtdHJhbnNhY3Rpb25zJztcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdjYXNlLXRyYW5zYWN0aW9ucyc7XG4gICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNCU0VOQUJMRSA9IHRydWU7XG4gICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNSZWZ1bmRTdGF0dXNWaWV3ID0gZmFsc2U7XG4gICAgIH1cbiAgfVxuIHJlZGlyZWN0dG9SZWZ1bmRMaXN0UGFnZSgpIHtcbiAgIGlmKCh0eXBlb2YgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlRBS0VQQVlNRU5UID09PSAnc3RyaW5nJyAmJiB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQgPT09ICdmYWxzZScpIHx8ICh0eXBlb2YgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlRBS0VQQVlNRU5UID09PSAnYm9vbGVhbicgJiYgIXRoaXMucGF5bWVudExpYkNvbXBvbmVudC5UQUtFUEFZTUVOVCkgKSB7XG4gICAvLyB3aW5kb3cubG9jYXRpb24uaHJlZj0nL3JlZnVuZC1saXN0P3Rha2VQYXltZW50PWZhbHNlJnJlZnVuZGxpc3Q9dHJ1ZSc7XG4gICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAncmVmdW5kLWxpc3QnO1xuICAgfVxuICAgZWxzZSB7XG4gICAgdGhpcy5sb2FkUmVmdW5kTGlzdFBhZ2UoKTtcbiAgIH1cbiAgfVxuICBsb2FkQ2FzZVRyYW5zYWN0aW9uUGFnZSgpIHtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldG5hdmlnYXRpb25QYWdlKCdjYXNldHJhbnNhY3Rpb25zJyk7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRpc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2UoZmFsc2UpO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdjYXNlLXRyYW5zYWN0aW9ucyc7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEUgPSB0cnVlO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc1JlZnVuZFN0YXR1c1ZpZXcgPSBmYWxzZTtcbiAgfVxuXG4gIHJlc2V0Rm9ybSh2YWxzLCBmaWVsZCkge1xuICAgIGlmKGZpZWxkPT09J2FjdGlvbicgfHwgZmllbGQ9PT0nYWxsJykge1xuICAgICAgdGhpcy5yZWZ1bmRBY3Rpb25zSGFzRXJyb3IgPSB2YWxzWzBdO1xuICAgIH1cbiAgICBpZihmaWVsZD09PSdyZWplY3RSZWFzb24nIHx8IGZpZWxkPT09J2FsbCcpIHtcbiAgICAgIHRoaXMucmVmdW5kUmVqZWN0UmVhc29uSGFzRXJyb3IgPSB2YWxzWzFdO1xuICAgIH1cbiAgICBpZihmaWVsZD09PSdhZGRBcmVhc29uJyB8fCBmaWVsZD09PSdhbGwnKSB7XG4gICAgICB0aGlzLmlzUmVhc29uRmllbGRFbXB0eSA9IHZhbHNbMl07XG4gICAgICB0aGlzLmlzUmVhc29uRmllbGRJbnZhbGlkID0gdmFsc1szXTtcbiAgICAgIHRoaXMucmVhc29uRmllbGRNaW5IYXNFcnJvciA9IHZhbHNbNF07XG4gICAgICB0aGlzLnJlYXNvbkZpZWxkTWF4SGFzRXJyb3IgPSB2YWxzWzVdO1xuICAgIH1cbiAgICBpZihmaWVsZD09PSdlbnRlclJlYXNvbicgfHwgZmllbGQ9PT0nYWxsJykge1xuICAgICAgdGhpcy5pc1JlYXNvbkVtcHR5ID0gdmFsc1s2XTtcbiAgICAgIHRoaXMuaXNSZWFzb25JbnZhbGlkID0gdmFsc1s3XTtcbiAgICB9XG4gIH1cblxuICBnb1RvQ2FzZVJldmlldygpIHtcbiAgICBjb25zdCBpc1BheUJ1YmJsZSA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc0Zyb21QYXlCdWJibGU7XG4gICAgaWYoaXNQYXlCdWJibGUpIHtcbiAgICAgIHRoaXMubG9hZENhc2VUcmFuc2FjdGlvblBhZ2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvY2FzZXMvY2FzZS1kZXRhaWxzLyR7dGhpcy5jY2RDYXNlTnVtYmVyfWBdLCB7cmVsYXRpdmVUbzogdGhpcy5hY3RpdmVSb3V0ZX0pO1xuICAgIH1cbiAgfVxuXG4gIGdldFRlbXBsYXRlSW5zdHJ1Y3Rpb25UeXBlKHBheW1lbnQ6IElQYXltZW50LCBwYXltZW50UmVmZXJlbmNlOiBzdHJpbmcpIHtcblxuICAgIGlmIChwYXltZW50ID09IHVuZGVmaW5lZCB8fCBwYXltZW50ID09IG51bGwgfHwgcGF5bWVudC5yZWZlcmVuY2UgIT0gcGF5bWVudFJlZmVyZW5jZSkge1xuICAgICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UuZ2V0UGF5bWVudERldGFpbHMocGF5bWVudFJlZmVyZW5jZSkuc3Vic2NyaWJlKFxuICAgICAgICBwYXltZW50ID0+IHtcbiAgICAgICAgICB0aGlzLnBheW1lbnRPYmogPSBwYXltZW50O1xuICAgICAgICAgIHRoaXMucGF5bWVudE9iai5yZWZlcmVuY2UgPSBwYXltZW50UmVmZXJlbmNlO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyb3I6IGFueSkgPT4geyB9KVxuXG4gICAgICBpZiAodGhpcy5wYXltZW50T2JqICE9IHVuZGVmaW5lZCAmJiB0aGlzLnBheW1lbnRPYmogIT0gbnVsbCAmJiB0aGlzLnBheW1lbnRPYmoucmVmZXJlbmNlID09IHBheW1lbnRSZWZlcmVuY2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5nZXROb3RpZmljYXRpb25JbnN0cnVjdGlvblR5cGUodGhpcy5wYXltZW50T2JqLmNoYW5uZWwsIHRoaXMucGF5bWVudE9iai5tZXRob2QpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuICdUZW1wbGF0ZSc7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZ2V0Tm90aWZpY2F0aW9uSW5zdHJ1Y3Rpb25UeXBlKHBheW1lbnQuY2hhbm5lbCwgcGF5bWVudC5tZXRob2QpO1xuICAgIH1cbiAgfVxuXG4gIHNob3dOb3RpZmljYXRpb25QcmV2aWV3KCk6IHZvaWQge1xuICAgIHRoaXMubm90aWZpY2F0aW9uUHJldmlldyA9IHRydWU7XG4gIH1cblxuICBoaWRlTm90aWZpY2F0aW9uUHJldmlldygpOiB2b2lkIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXcgPSBmYWxzZTtcbiAgfVxufVxuIl19
|
|
@@ -640,14 +640,18 @@ var RefundStatusComponent = /** @class */ (function () {
|
|
|
640
640
|
*/
|
|
641
641
|
function (payment) {
|
|
642
642
|
_this.paymentObj = payment;
|
|
643
|
-
|
|
643
|
+
_this.paymentObj.reference = paymentReference;
|
|
644
644
|
}), (/**
|
|
645
645
|
* @param {?} error
|
|
646
646
|
* @return {?}
|
|
647
647
|
*/
|
|
648
|
-
function (error) {
|
|
648
|
+
function (error) { }));
|
|
649
|
+
if (this.paymentObj != undefined && this.paymentObj != null && this.paymentObj.reference == paymentReference) {
|
|
650
|
+
return this.notificationService.getNotificationInstructionType(this.paymentObj.channel, this.paymentObj.method);
|
|
651
|
+
}
|
|
652
|
+
else {
|
|
649
653
|
return 'Template';
|
|
650
|
-
}
|
|
654
|
+
}
|
|
651
655
|
}
|
|
652
656
|
else {
|
|
653
657
|
return this.notificationService.getNotificationInstructionType(payment.channel, payment.method);
|
|
@@ -860,4 +864,4 @@ if (false) {
|
|
|
860
864
|
*/
|
|
861
865
|
RefundStatusComponent.prototype.paymentViewService;
|
|
862
866
|
}
|
|
863
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmdW5kLXN0YXR1cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvY2NwYXktd2ViLWNvbXBvbmVudC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3JlZnVuZC1zdGF0dXMvcmVmdW5kLXN0YXR1cy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN2RixPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdqRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUduRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7SUFJaEYsY0FBYyxHQUFHLHVCQUF1QjtBQUU5QztJQTRERSwrQkFBb0IsV0FBd0IsRUFDbEMsYUFBNkIsRUFDN0IsbUJBQXdDLEVBQ3hDLG1CQUF3QyxFQUN4QyxpQkFBb0MsRUFDcEMsa0JBQXNDO1FBTGhELGlCQUtxRDtRQUxqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFDN0Isd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFD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QUFzQzs7SUFDdEMsMkRBQTZFOztJQStEN0UsZ0RBRUM7Ozs7O0lBL0RXLDRDQUFnQzs7Ozs7SUFDMUMsOENBQXFDOzs7OztJQUNyQyxvREFBZ0Q7Ozs7O0lBQ2hELG9EQUFnRDs7Ozs7SUFDaEQsa0RBQTRDOzs7OztJQUM1QyxtREFBOEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlZnVuZHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVmdW5kcy9yZWZ1bmRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElSZWZ1bmRMaXN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUmVmdW5kTGlzdCc7XG5pbXBvcnQgeyBJUmVmdW5kc05vdGlmaWNhdGlvbnMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lSZWZ1bmRzTm90aWZpY2F0aW9ucyc7XG5pbXBvcnQgeyBPcmRlcnNsaXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29yZGVyc2xpc3Quc2VydmljZSc7XG5pbXBvcnQgeyBJUHV0Tm90aWZpY2F0aW9uUmVxdWVzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVB1dE5vdGlmaWNhdGlvblJlcXVlc3QnO1xuaW1wb3J0IHsgSVJlZnVuZENvbnRhY3REZXRhaWxzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUmVmdW5kQ29udGFjdERldGFpbHMnO1xuaW1wb3J0IHsgSVJlZnVuZFN0YXR1cyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVJlZnVuZFN0YXR1cyc7XG5pbXBvcnQgeyBJUmVzdWJtaXRSZWZ1bmRSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUmVzdWJtaXRSZWZ1bmRSZXF1ZXN0JztcbmltcG9ydCB7IFBheW1lbnRMaWJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wYXltZW50LWxpYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGF5bWVudFZpZXdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcGF5bWVudC12aWV3L3BheW1lbnQtdmlldy5zZXJ2aWNlJztcbmltcG9ydCB7IElQYXltZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUGF5bWVudCc7XG5pbXBvcnQgeyBJRmVlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JRmVlJztcbmltcG9ydCB7IElSZWZ1bmRGZWUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lSZWZ1bmRGZWUnO1xuY29uc3QgQlNfRU5BQkxFX0ZMQUcgPSAnYnVsay1zY2FuLWVuYWJsaW5nLWZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NwYXktcmVmdW5kLXN0YXR1cycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWZ1bmQtc3RhdHVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVmdW5kLXN0YXR1cy5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUmVmdW5kU3RhdHVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCdMT0dHRURJTlVTRVJST0xFUycpIExPR0dFRElOVVNFUlJPTEVTOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoJ0FQSV9ST09UJykgQVBJX1JPT1Q6IHN0cmluZztcbiAgQElucHV0KCkgY2NkQ2FzZU51bWJlcjogc3RyaW5nO1xuICBASW5wdXQoKSBpc1R1cm5PZmY6IGJvb2xlYW47XG4gIEBJbnB1dCgpIG9yZGVyUGFydHk6IHN0cmluZztcbiAgQElucHV0KCkgaXNFbGlnaW5ibGVUb0FjY2VzczogYm9vbGVhbjtcbiAgcmVmdW5kU3RhdHVzRm9ybTogRm9ybUdyb3VwO1xuICBzZWxlY3RlZFJlZnVuZFJlYXNvbjogc3RyaW5nO1xuICByZWplY3RlZFJlZnVuZExpc3Q6IElSZWZ1bmRMaXN0W10gPSBbXTtcbiAgbm90aWZpY2F0aW9uTGlzdDogYW55O1xuICBub3RpZmljYXRpb246YW55O1xuICBhcHByb3ZhbFN0YXR1cyA9ICdTZW50IGZvciBhcHByb3ZhbCc7XG4gIHJlamVjdFN0YXR1cyA9ICdVcGRhdGUgcmVxdWlyZWQnO1xuICBlcnJvck1lc3NhZ2UgPSBudWxsO1xuICB2aWV3TmFtZTogc3RyaW5nO1xuICByZWZ1bmRSZWFzb246IHN0cmluZztcbiAgcmVmdW5kbGlzdDogSVJlZnVuZExpc3Q7XG4gIGJzUGF5bWVudERjbk51bWJlcjogc3RyaW5nO1xuICBpc0NhbGxGcm9tUmVmdW5kTGlzdDogYm9vbGVhbjtcbiAgcmVmdW5kQnV0dG9uU3RhdGU6IHN0cmluZyA9ICcnO1xuICBpc0Ftb3VudEVtcHR5OiBib29sZWFuID0gZmFsc2U7XG4gIGlzUmVhc29uRW1wdHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgYW1vdW50SGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNSZW1pc3Npb25MZXNzVGhhbkZlZUVycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIHJlZnVuZEhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIHJlZnVuZFJlYXNvbnM6IGFueVtdID0gW107XG4gIHJlZnVuZFN0YXR1c0hpc3RvcmllczogSVJlZnVuZFN0YXR1c1tdO1xuICByZWZ1bmROb3RpZmljYXRpb25zOiBJUmVmdW5kU3RhdHVzW107XG4gIGlzUmVzZW5kT3BlcmF0aW9uU3VjY2VzczogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0VkaXREZXRhaWxzQ2xpY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0VkaXRBZGRyZXNzRGVhdGlsc0NsaWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgYWRkcmVzc0RldGFpbHM6IElSZWZ1bmRDb250YWN0RGV0YWlscztcbiAgcmVmdW5kUmVmZXJlbmNlOiBzdHJpbmc7XG4gIHJlZnVuZEFtb3VudDogc3RyaW5nO1xuICByZWZ1bmRDb2RlOiBzdHJpbmc7XG4gIGlzUmVmdW5kQnRuRGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBvbGRSZWZ1bmRSZWFzb246IHN0cmluZztcbiAgcmVmdW5kcmVhc29uOiBzdHJpbmc7XG4gIG5hdmlnYXRpb25wYWdlOiBzdHJpbmc7XG4gIGlzTGFzdFVwZGF0ZWRCeUN1cnJlbnRVc2VyOiBib29sZWFuID0gdHJ1ZTtcbiAgaXNQcm9jZXNzUmVmdW5kOiBib29sZWFuID0gZmFsc2U7XG4gIGNoYW5nZWRBbW91bnQ6IG51bWJlcjtcbiAgaXNSZW1pc3Npb25zTWF0Y2g6IGJvb2xlYW47XG4gIHBheW1lbnQ6IElQYXltZW50O1xuICBjaGFuZ2VSZWZ1bmRSZWFzb246IHN0cmluZztcbiAgZmVlczogSUZlZSBbXTtcbiAgcmVmdW5kRmVlczogSVJlZnVuZEZlZVtdO1xuICBwYXltZW50T2JqOiBJUGF5bWVudDtcbiAgdGVtcGxhdGVJbnN0cnVjdGlvblR5cGU6IHN0cmluZztcbiAgbm90aWZpY2F0aW9uU2VudFZpZXdJbmRleDogbnVtYmVyID0gLTE7XG4gIG5vdGlmaWNhdGlvblByZXZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbm90aWZpY2F0aW9uU2VudFZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgYWxsb3dlZFJvbGVzVG9BY2Nlc3NSZWZ1bmQgPSBbJ3BheW1lbnRzLXJlZnVuZC1hcHByb3ZlcicsICdwYXltZW50cy1yZWZ1bmQnXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHJlZnVuZFNlcnZpY2U6IFJlZnVuZHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHBheW1lbnRMaWJDb21wb25lbnQ6IFBheW1lbnRMaWJDb21wb25lbnQsXG4gICAgcHJpdmF0ZSBPcmRlcnNsaXN0U2VydmljZTogT3JkZXJzbGlzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwYXltZW50Vmlld1NlcnZpY2U6IFBheW1lbnRWaWV3U2VydmljZSkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG5cbiAgICB0aGlzLnJlc2V0UmVtaXNzaW9uRm9ybShbZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2VdLCAnQWxsJyk7XG4gICAgdGhpcy5ic1BheW1lbnREY25OdW1iZXIgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuYnNwYXltZW50ZGNuO1xuICAgIHRoaXMuaXNDYWxsRnJvbVJlZnVuZExpc3QgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNDYWxsRnJvbVJlZnVuZExpc3Q7XG4gICAgaWYgKHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc1JlZnVuZFN0YXR1c1ZpZXcpIHtcbiAgICAgIHRoaXMudmlld05hbWUgPSAncmVmdW5kdmlldyc7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLmdldFJlZnVuZFZpZXcoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMucmVmdW5kbGlzdCA9IGRhdGEpO1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5nZXRDQ0RDYXNlTnVtYmVyZm9yUmVmdW5kLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5jY2RDYXNlTnVtYmVyID0gZGF0YSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlld05hbWUgPSAncmVmdW5kc3RhdHVzbGlzdCc7XG4gICAgICBpZih0aGlzLmlzRWxpZ2luYmxlVG9BY2Nlc3MpIHtcbiAgICAgICAgdGhpcy5yZWZ1bmRTZXJ2aWNlLmdldFJlZnVuZFN0YXR1c0xpc3QodGhpcy5jY2RDYXNlTnVtYmVyKS5zdWJzY3JpYmUoXG4gICAgICAgICAgcmVmdW5kTGlzdCA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlamVjdGVkUmVmdW5kTGlzdCA9IHJlZnVuZExpc3RbJ3JlZnVuZF9saXN0J107XG4gICAgICAgICAgfVxuICAgICAgICApLFxuICAgICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyb3IucmVwbGFjZSgvXCIvZyxcIlwiKTtcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVqZWN0ZWRSZWZ1bmRMaXN0ID0gW107XG4gICAgICB9XG5cbiAgICB9XG5cblxuICAgICAgdGhpcy5yZWZ1bmRTdGF0dXNGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgIGFtb3VudDogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKCdeWzAtOV0rKFxcLlswLTldezEsMn0pPyQnKVxuICAgICAgICBdKSksXG4gICAgICAgIHJlZnVuZFJlYXNvbjogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSksXG4gICAgICAgIHJlYXNvbjogbmV3IEZvcm1Db250cm9sKClcbiAgICAgIH0pO1xuXG4gICAgICBpZih0aGlzLnJlZnVuZGxpc3QgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLmdldFJlZnVuZHNOb3RpZmljYXRpb24oKTtcbiAgICAgICAgdGhpcy5nZXRSZWZ1bmRzU3RhdHVzSGlzdG9yeUxpc3QoKTtcblxuICAgICAgICBpZiAodGhpcy5MT0dHRURJTlVTRVJST0xFUy5zb21lKGkgPT4gaS5pbmNsdWRlcygncGF5bWVudHMtcmVmdW5kLWFwcHJvdmVyJykpKSB7XG4gICAgICAgICAgdGhpcy5pc1Byb2Nlc3NSZWZ1bmQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMucmVmdW5kQnV0dG9uU3RhdGUgPSB0aGlzLnJlZnVuZGxpc3QucmVmdW5kX3N0YXR1cy5uYW1lO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLkxPR0dFRElOVVNFUlJPTEVTLnNvbWUoaSA9PiBpLmluY2x1ZGVzKCdwYXltZW50cy1yZWZ1bmQnKSkpIHtcbiAgICAgICAgICB0aGlzLmlzUHJvY2Vzc1JlZnVuZCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMucmVmdW5kQnV0dG9uU3RhdGUgPSB0aGlzLnJlZnVuZGxpc3QucmVmdW5kX3N0YXR1cy5uYW1lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgfVxuXG4gIGlzRnJvbVBheUJ1YmJsZSA9ICgpOiBib29sZWFuID0+IHsgXG4gICAgcmV0dXJuIHRoaXMuQVBJX1JPT1QgPT09ICdhcGkvcGF5bWVudC1oaXN0b3J5JztcbiAgfVxuXG4gIGdldFJlZnVuZHNTdGF0dXNIaXN0b3J5TGlzdCgpIHtcbiAgICBpZih0aGlzLnJlZnVuZGxpc3QgIT09IHVuZGVmaW5lZCkge1xuICAgIHRoaXMucmVmdW5kU2VydmljZS5nZXRSZWZ1bmRTdGF0dXNIaXN0b3J5KHRoaXMucmVmdW5kbGlzdC5yZWZ1bmRfcmVmZXJlbmNlKS5zdWJzY3JpYmUoXG4gICAgICBzdGF0dXNIaXN0b3J5TGlzdCA9PiB7XG4gICAgICAgIHRoaXMucmVmdW5kU3RhdHVzSGlzdG9yaWVzID0gc3RhdHVzSGlzdG9yeUxpc3Quc3RhdHVzX2hpc3RvcnlfZHRvX2xpc3Q7XG4gICAgICAgIHRoaXMuaXNMYXN0VXBkYXRlZEJ5Q3VycmVudFVzZXIgPSBzdGF0dXNIaXN0b3J5TGlzdC5sYXN0X3VwZGF0ZWRfYnlfY3VycmVudF91c2VyO1xuICAgICAgfVxuICAgICksXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVycm9yLnJlcGxhY2UoL1wiL2csXCJcIik7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIGdldFJlZnVuZHNOb3RpZmljYXRpb24oKSB7XG4gICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmdldFJlZnVuZE5vdGlmaWNhdGlvbih0aGlzLnJlZnVuZGxpc3QucmVmdW5kX3JlZmVyZW5jZSkuc3Vic2NyaWJlKFxuICAgICAgcmVmdW5kc05vdGlmaWNhdGlvbiA9PiB7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uTGlzdCA9IHJlZnVuZHNOb3RpZmljYXRpb25bJ25vdGlmaWNhdGlvbnMnXTtcbiAgICAgIH1cbiAgICApLFxuICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVycm9yLnJlcGxhY2UoL1wiL2csXCJcIik7XG4gICAgfTsgXG4gIH1cblxuICBnb1RvUmVmdW5kVmlldyhyZWZ1bmRsaXN0OiBJUmVmdW5kTGlzdCwgbmF2aWdhdGlvbnBhZ2U6IHN0cmluZykge1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0UmVmdW5kVmlldyhyZWZ1bmRsaXN0KTtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldENDRENhc2VOdW1iZXIodGhpcy5jY2RDYXNlTnVtYmVyKTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAncmVmdW5kc3RhdHVzbGlzdCc7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzUmVmdW5kU3RhdHVzVmlldyA9IHRydWU7XG4gICAgdGhpcy5yZWZ1bmRsaXN0ID0gcmVmdW5kbGlzdDtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldG5hdmlnYXRpb25QYWdlKG5hdmlnYXRpb25wYWdlKTtcbiAgfVxuXG4gIGxvYWRDYXNlVHJhbnNhY3Rpb25QYWdlKCkge1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0bmF2aWdhdGlvblBhZ2UoJ2Nhc2V0cmFuc2FjdGlvbnMnKTtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldGlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZShmYWxzZSk7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ2Nhc2UtdHJhbnNhY3Rpb25zJztcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNCU0VOQUJMRSA9IHRydWU7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzUmVmdW5kU3RhdHVzVmlldyA9IGZhbHNlO1xuICB9XG5cbiAgbG9hZFJlZnVuZExpc3RQYWdlKCkge1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0bmF2aWdhdGlvblBhZ2VWYWx1ZSgpLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5uYXZpZ2F0aW9ucGFnZSA9IGRhdGEpO1xuICAgIGlmICh0aGlzLm5hdmlnYXRpb25wYWdlID09PSAnY2FzZXRyYW5zYWN0aW9ucycpIHtcbiAgICAgIHRoaXMubG9hZENhc2VUcmFuc2FjdGlvblBhZ2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ3JlZnVuZC1saXN0JztcbiAgICB9XG4gIH1cblxuICBnb3RvUmV2aWV3RGV0YWlsc1BhZ2UoZXZlbnQ6YW55KSB7XG4gICAvLyBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZmFsc2U7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzUmVmdW5kU3RhdHVzVmlldyA9IHRydWU7XG4gICAgdGhpcy5uZ09uSW5pdCgpO1xuICB9XG5cbiAgZ290b1Jldmlld0FuZFJlU3VibWl0UGFnZSgpIHtcbiAgICB0aGlzLnZpZXdOYW1lID0gJ3Jldmlld2FuZHN1Ym1pdHZpZXcnO1xuICAgIHRoaXMudGVtcGxhdGVJbnN0cnVjdGlvblR5cGUgPSB0aGlzLmdldFRlbXBsYXRlSW5zdHJ1Y3Rpb25UeXBlKHRoaXMucGF5bWVudE9iaiwgdGhpcy5yZWZ1bmRsaXN0LnBheW1lbnRfcmVmZXJlbmNlKTtcbiAgICB0aGlzLm9sZFJlZnVuZFJlYXNvbiA9IHRoaXMucmVmdW5kbGlzdC5yZWFzb247XG4gICAgdGhpcy5jaGFuZ2VkQW1vdW50ID0gdGhpcy5yZWZ1bmRsaXN0LmFtb3VudDtcbiAgICB0aGlzLnJlZnVuZHJlYXNvbiA9IHRoaXMucmVmdW5kU3RhdHVzSGlzdG9yaWVzLmZpbHRlcihkYXRhID0+IGRhdGEuc3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICd1cGRhdGUgcmVxdWlyZWQnKVswXS5ub3RlcztcbiAgICB0aGlzLnJlZnVuZFNlcnZpY2UuZ2V0UmVmdW5kUmVhc29ucygpLnN1YnNjcmliZShcbiAgICAgIHJlZnVuZFJlYXNvbnMgPT4ge1xuICAgICAgICB0aGlzLnJlZnVuZFJlYXNvbnMgPSByZWZ1bmRSZWFzb25zO1xuICAgICAgfSk7XG4gIH1cbiAgZ290b1JlZnVuZFJlYXNvblBhZ2UocmVmdW5kUmVhc29uOnN0cmluZykge1xuICAgIHRoaXMuaXNSZWZ1bmRCdG5EaXNhYmxlZCA9IGZhbHNlO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5SRUZVTkRMSVNUID0gXCJ0cnVlXCI7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzRnJvbVJlZnVuZFN0YXR1c1BhZ2UgPSB0cnVlO1xuICAgIHRoaXMuY2NkQ2FzZU51bWJlciA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5DQ0RfQ0FTRV9OVU1CRVI7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBmYWxzZTtcbiAgICB0aGlzLmNoYW5nZVJlZnVuZFJlYXNvbiA9IHJlZnVuZFJlYXNvbjtcbiAgICB0aGlzLnZpZXdOYW1lID0gJ2lzc3VlcmVmdW5kcGFnZTEnO1xuICB9XG5cbiAgZ290b0Ftb3VudFBhZ2UoKSB7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBmYWxzZTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuUkVGVU5ETElTVCA9IFwidHJ1ZVwiO1xuICAgIHRoaXMuaXNSZWZ1bmRCdG5EaXNhYmxlZCA9IGZhbHNlO1xuICAgIHRoaXMuY2NkQ2FzZU51bWJlciA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5DQ0RfQ0FTRV9OVU1CRVI7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzRnJvbVJlZnVuZFN0YXR1c1BhZ2UgPSB0cnVlO1xuICAgIGlmKHRoaXMucmVmdW5kbGlzdC5yZWFzb24gPT0gJ1JldHJvc3BlY3RpdmUgcmVtaXNzaW9uJykge1xuICAgIHRoaXMudmlld05hbWUgPSAncHJvY2Vzc3JldHJvcmVtaXNzb25wYWdlJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aWV3TmFtZSA9ICdpc3N1ZXJlZnVuZCc7XG4gICAgfVxuICB9XG5cbiAgZ29Ub1Jldmlld0FuZFN1Ym1pdFZpZXcoKSB7XG4gICAgY29uc3QgcmVtaXNzaW9uY3RybHMgPSB0aGlzLnJlZnVuZFN0YXR1c0Zvcm0uY29udHJvbHNcbiAgICBpZiAodGhpcy5yZWZ1bmRTdGF0dXNGb3JtLmRpcnR5KSB7XG4gICAgICBpZiAocmVtaXNzaW9uY3RybHNbJ2Ftb3VudCddLnZhbHVlID09ICcnKSB7XG4gICAgICAgIHRoaXMucmVzZXRSZW1pc3Npb25Gb3JtKFt0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlXSwgJ2Ftb3VudCcpO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAocmVtaXNzaW9uY3RybHNbJ2Ftb3VudCddLnZhbHVlICE9ICcnICYmIHJlbWlzc2lvbmN0cmxzWydhbW91bnQnXS5pbnZhbGlkKSB7XG4gICAgICAgIHRoaXMucmVzZXRSZW1pc3Npb25Gb3JtKFtmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlXSwgJ2Ftb3VudCcpO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAocmVtaXNzaW9uY3RybHNbJ3JlYXNvbiddLnZhbHVlID09ICcnKSB7XG4gICAgICAgIHRoaXMucmVzZXRSZW1pc3Npb25Gb3JtKFtmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlXSwgJ3JlYXNvbicpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZWZ1bmRsaXN0LnJlYXNvbiA9IHJlbWlzc2lvbmN0cmxzWydyZWFzb24nXS52YWx1ZTtcbiAgICAgICAgdGhpcy52aWV3TmFtZSA9ICdyZXZpZXdhbmRzdWJtaXR2aWV3JztcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIHJlc2V0UmVtaXNzaW9uRm9ybSh2YWwsIGZpZWxkKSB7XG4gICAgaWYgKGZpZWxkID09PSAnQWxsJykge1xuICAgICAgdGhpcy5pc0Ftb3VudEVtcHR5ID0gdmFsWzBdO1xuICAgICAgdGhpcy5hbW91bnRIYXNFcnJvciA9IHZhbFsxXTtcbiAgICAgIHRoaXMuaXNSZW1pc3Npb25MZXNzVGhhbkZlZUVycm9yID0gdmFsWzJdO1xuICAgICAgdGhpcy5pc1JlYXNvbkVtcHR5ID0gdmFsWzNdO1xuICAgIH0gZWxzZSBpZiAoZmllbGQgPT09ICdhbW91bnQnIHx8IGZpZWxkID09PSAnQWxsJykge1xuICAgICAgdGhpcy5pc0Ftb3VudEVtcHR5ID0gdmFsWzBdO1xuICAgICAgdGhpcy5hbW91bnRIYXNFcnJvciA9IHZhbFsxXTtcbiAgICAgIHRoaXMuaXNSZW1pc3Npb25MZXNzVGhhbkZlZUVycm9yID0gdmFsWzJdO1xuICAgIH0gZWxzZSBpZiAoZmllbGQgPT09ICdyZWFzb24nIHx8IGZpZWxkID09PSAnQWxsJykge1xuICAgICAgdGhpcy5pc1JlYXNvbkVtcHR5ID0gdmFsWzNdO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdFJhZGlvQnV0dG9uKGtleSwgdmFsdWUpIHtcbiAgICB0aGlzLnJlZnVuZEhhc0Vycm9yID0gZmFsc2U7XG4gICAgdGhpcy5zZWxlY3RlZFJlZnVuZFJlYXNvbiA9IGtleTtcbiAgICBpZiAoa2V5ID09PSAnT3RoZXInKSB7XG4gICAgICB0aGlzLnJlZnVuZEhhc0Vycm9yID0gZmFsc2U7XG4gICAgICB0aGlzLnJlZnVuZFJlYXNvbiA9IGtleTtcbiAgICB9XG4gIH1cblxuICBnZXRSZWZ1bmRMaXN0UmVhc29uKHJlZnVuZExpc3RSZWFzb246IGFueSkge1xuICAgIGlmICh0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNGcm9tUmVmdW5kU3RhdHVzUGFnZSAmJiAhdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzY2FuY2VsQ2xpY2tlZCkge1xuICAgICAgdGhpcy5yZWZ1bmRsaXN0LnJlYXNvbiA9IHJlZnVuZExpc3RSZWFzb24ucmVhc29uO1xuICAgICAgdGhpcy5yZWZ1bmRsaXN0LmNvZGUgPSByZWZ1bmRMaXN0UmVhc29uLmNvZGU7XG4gICAgICB0aGlzLnJlZnVuZENvZGUgPSByZWZ1bmRMaXN0UmVhc29uLmNvZGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNSZWZ1bmRCdG5EaXNhYmxlZCA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMubm90aWZpY2F0aW9uUHJldmlldyA9IGZhbHNlO1xuICAgIHRoaXMudmlld05hbWUgPSAncmV2aWV3YW5kc3VibWl0dmlldyc7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LkNDRF9DQVNFX05VTUJFUiA9IHRoaXMuY2NkQ2FzZU51bWJlcjtcbiAgfVxuXG4gIGdldFJlZnVuZEFtb3VudChhbW91bnQ6IG51bWJlcikge1xuICAgIGlmICh0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNGcm9tUmVmdW5kU3RhdHVzUGFnZSAmJiAhdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzY2FuY2VsQ2xpY2tlZCkge1xuICAgICAgaWYgKGFtb3VudCA+IDApIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VkQW1vdW50ID0gYW1vdW50O1xuICAgICAgICAvLyB0aGlzLnJlZnVuZGxpc3QuYW1vdW50ID0gYW1vdW50O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzUmVmdW5kQnRuRGlzYWJsZWQgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXcgPSBmYWxzZTtcbiAgICB0aGlzLnZpZXdOYW1lID0gJ3Jldmlld2FuZHN1Ym1pdHZpZXcnO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5DQ0RfQ0FTRV9OVU1CRVIgPSB0aGlzLmNjZENhc2VOdW1iZXI7XG4gIH1cblxuICBnZXRSZWZ1bmRGZWVzKGZlZXM6IElGZWVbXSlcbiAge1xuICAgIHRoaXMuZmVlcyA9IGZlZXM7XG4gICAgdGhpcy5yZWZ1bmRGZWVzICA9IHRoaXMuZmVlcy5tYXAob2JqID0+ICh7IGZlZV9pZDogb2JqLmlkLCBjb2RlOiBvYmouY29kZSwgdmVyc2lvbjpvYmoudmVyc2lvbiwgdm9sdW1lOiBvYmoudm9sdW1lLHJlZnVuZF9hbW91bnQ6b2JqLnJlZnVuZF9hbW91bnQgfSkpO1xuICB9XG5cbiAgZ290b1Jldmlld1JlZnVuZENvbmZpcm1hdGlvblBhZ2UoKSB7XG4gICAgLy8gaWYgKHRoaXMub2xkUmVmdW5kUmVhc29uID09PSB0aGlzLnJlZnVuZGxpc3QucmVhc29uKSB7XG4gICAgLy8gICB0aGlzLnJlZnVuZENvZGUgPSAnJztcbiAgICAvLyB9XG4gICAgaWYgKHRoaXMucmVmdW5kRmVlcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnJlZnVuZEZlZXMgPSB0aGlzLnJlZnVuZGxpc3RbJ3JlZnVuZF9mZWVzJ107XG4gICAgfVxuICAgIHRoaXMucmVmdW5kQ29kZSA9IHRoaXMucmVmdW5kbGlzdC5jb2RlO1xuICAgIGNvbnN0IHJlc3VibWl0UmVxdWVzdCA9IG5ldyBJUmVzdWJtaXRSZWZ1bmRSZXF1ZXN0KHRoaXMucmVmdW5kQ29kZSwgIHRoaXMuY2hhbmdlZEFtb3VudCwgdGhpcy5yZWZ1bmRsaXN0LmNvbnRhY3RfZGV0YWlscywgdGhpcy5yZWZ1bmRGZWVzKTtcbiAgICB0aGlzLnJlZnVuZFNlcnZpY2UucGF0Y2hSZXN1Ym1pdFJlZnVuZChyZXN1Ym1pdFJlcXVlc3QsIHRoaXMucmVmdW5kbGlzdC5yZWZ1bmRfcmVmZXJlbmNlKS5zdWJzY3JpYmUoXG4gICAgICByZXNwb25zZSA9PiB7XG4gICAgICAgIGlmIChKU09OLnBhcnNlKHJlc3BvbnNlKSkge1xuICAgICAgICAgIHRoaXMucmVmdW5kUmVmZXJlbmNlID0gSlNPTi5wYXJzZShyZXNwb25zZSkucmVmdW5kX3JlZmVyZW5jZTtcbiAgICAgICAgICB0aGlzLnJlZnVuZEFtb3VudCA9IEpTT04ucGFyc2UocmVzcG9uc2UpLnJlZnVuZF9hbW91bnQ7XG4gICAgICAgICAgdGhpcy52aWV3TmFtZSA9ICdyZXZpZXdyZWZ1bmRjb25maXJtYXRpb25wYWdlJztcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyb3IucmVwbGFjZSgvXCIvZyxcIlwiKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgZ290b0VkaXRBZGRyZXNzRGV0YWlscyhub3RlOiBJUmVmdW5kc05vdGlmaWNhdGlvbnMpIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvbiA9IG5vdGU7XG4gICAgdGhpcy5pc0VkaXREZXRhaWxzQ2xpY2tlZCA9IHRydWU7XG4gICAgdGhpcy52aWV3TmFtZSA9ICdyZWZ1bmRFZGl0VmlldydcbiAgfVxuICBnZXRDb250YWN0RGV0YWlscyhvYmo6SVJlZnVuZENvbnRhY3REZXRhaWxzKSB7XG4gICAgdGhpcy5hZGRyZXNzRGV0YWlscyA9IG9iajtcbiAgICB0aGlzLnRlbXBsYXRlSW5zdHJ1Y3Rpb25UeXBlID0gdGhpcy5nZXRUZW1wbGF0ZUluc3RydWN0aW9uVHlwZSh0aGlzLnBheW1lbnRPYmosdGhpcy5yZWZ1bmRsaXN0LnBheW1lbnRfcmVmZXJlbmNlKTtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXcgPSBmYWxzZTtcbiAgICB0aGlzLnZpZXdOYW1lID0gJ3Jldmlld2VkaXRkZXRhaWxzY29uZmlybWF0aW9ucGFnZSc7XG4gIH1cbiAgZ2V0Q29udGFjdERldGFpbHNGb3JSZWZ1bmRMaXN0KG9iajpJUmVmdW5kQ29udGFjdERldGFpbHMpIHtcbiAgICB0aGlzLnJlZnVuZGxpc3QuY29udGFjdF9kZXRhaWxzID0gb2JqO1xuICAgIHRoaXMuaXNFZGl0RGV0YWlsc0NsaWNrZWQgPSBmYWxzZTtcbiAgICB0aGlzLmlzUmVmdW5kQnRuRGlzYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLnZpZXdOYW1lID0gJ3Jldmlld2FuZHN1Ym1pdHZpZXcnO1xuICB9XG4gIGdvdG9FZGl0RGV0YWlsc1BhZ2Uobm90ZT86IGFueSkge1xuICAgIGlmKG5vdGUpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uID0geyBjb250YWN0X2RldGFpbHM6IG5vdGUsIG5vdGlmaWNhdGlvbl90eXBlOiBub3RlLm5vdGlmaWNhdGlvbl90eXBlIH07XG4gICAgfVxuICAgIHRoaXMuaXNFZGl0RGV0YWlsc0NsaWNrZWQgPSB0cnVlO1xuICAgIHRoaXMudmlld05hbWUgPSAncmVmdW5kRWRpdFZpZXcnXG4gIH1cbiAgc3VibWl0RWRpdERldGFpbCgpIHtcbiAgICB0aGlzLmlzUmVzZW5kT3BlcmF0aW9uU3VjY2VzcyA9IGZhbHNlO1xuICAgIGNvbnN0IGNvbnRhY3REZXRhaWxzID0gdGhpcy5hZGRyZXNzRGV0YWlscy5ub3RpZmljYXRpb25fdHlwZSA9PT0gJ0VNQUlMJyA/IHRoaXMuYWRkcmVzc0RldGFpbHMuZW1haWwgOlxuICAgICAge1xuICAgICAgICBhZGRyZXNzX2xpbmU6IHRoaXMuYWRkcmVzc0RldGFpbHMuYWRkcmVzc19saW5lLFxuICAgICAgICBjaXR5OiB0aGlzLmFkZHJlc3NEZXRhaWxzLmNpdHksXG4gICAgICAgIGNvdW50eTogdGhpcy5hZGRyZXNzRGV0YWlscy5jb3VudHksXG4gICAgICAgIGNvdW50cnk6IHRoaXMuYWRkcmVzc0RldGFpbHMuY291bnRyeSxcbiAgICAgICAgcG9zdGFsX2NvZGU6IHRoaXMuYWRkcmVzc0RldGFpbHMucG9zdGFsX2NvZGUsXG4gICAgICB9O1xuICAgIGNvbnN0IHJlc2VuZFJlcXVlc3QgPSBuZXcgSVB1dE5vdGlmaWNhdGlvblJlcXVlc3QoY29udGFjdERldGFpbHMsIHRoaXMuYWRkcmVzc0RldGFpbHMubm90aWZpY2F0aW9uX3R5cGUpO1xuXG4gICAgdGhpcy5yZWZ1bmRTZXJ2aWNlLnB1dFJlc2VuZE9yRWRpdChyZXNlbmRSZXF1ZXN0LCB0aGlzLnJlZnVuZGxpc3QucmVmdW5kX3JlZmVyZW5jZSwgdGhpcy5hZGRyZXNzRGV0YWlscy5ub3RpZmljYXRpb25fdHlwZSkuc3Vic2NyaWJlKFxuICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuaXNSZXNlbmRPcGVyYXRpb25TdWNjZXNzID0gcmVzcG9uc2U7XG4gICAgICB9LFxuICAgICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5pc1Jlc2VuZE9wZXJhdGlvblN1Y2Nlc3MgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnJvci5yZXBsYWNlKC9cIi9nLFwiXCIpO1xuICAgICAgfVxuICAgICk7XG4gIH1cbiAgcHV0UmVzZW5kKG5vdGlmaWNhdGlvbjogSVJlZnVuZHNOb3RpZmljYXRpb25zKSB7XG4gICAgdGhpcy5pc1Jlc2VuZE9wZXJhdGlvblN1Y2Nlc3MgPSBmYWxzZTtcbiAgICBjb25zdCBjb250YWN0RGV0YWlscyA9IG5vdGlmaWNhdGlvbi5ub3RpZmljYXRpb25fdHlwZSA9PT0gJ0VNQUlMJyA/IG5vdGlmaWNhdGlvbi5jb250YWN0X2RldGFpbHMuZW1haWwgOlxuICAgICAge1xuICAgICAgICBhZGRyZXNzX2xpbmUgOm5vdGlmaWNhdGlvbi5jb250YWN0X2RldGFpbHMuYWRkcmVzc19saW5lLFxuICAgICAgICBjaXR5OiBub3RpZmljYXRpb24uY29udGFjdF9kZXRhaWxzLmNpdHksXG4gICAgICAgIGNvdW50eTogbm90aWZpY2F0aW9uLmNvbnRhY3RfZGV0YWlscy5jb3VudHksXG4gICAgICAgIGNvdW50cnk6IG5vdGlmaWNhdGlvbi5jb250YWN0X2RldGFpbHMuY291bnRyeSxcbiAgICAgICAgcG9zdGFsX2NvZGU6IG5vdGlmaWNhdGlvbi5jb250YWN0X2RldGFpbHMucG9zdGFsX2NvZGUsXG4gICAgICB9O1xuICAgIGNvbnN0IHJlc2VuZFJlcXVlc3QgPSBuZXcgSVB1dE5vdGlmaWNhdGlvblJlcXVlc3QoY29udGFjdERldGFpbHMsIG5vdGlmaWNhdGlvbi5ub3RpZmljYXRpb25fdHlwZSk7XG5cbiAgICB0aGlzLnJlZnVuZFNlcnZpY2UucHV0UmVzZW5kT3JFZGl0KHJlc2VuZFJlcXVlc3QsIHRoaXMucmVmdW5kbGlzdC5yZWZ1bmRfcmVmZXJlbmNlLCBub3RpZmljYXRpb24ubm90aWZpY2F0aW9uX3R5cGUpLnN1YnNjcmliZShcbiAgICAgIChyZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLmlzUmVzZW5kT3BlcmF0aW9uU3VjY2VzcyA9IHJlc3BvbnNlO1xuICAgICAgfSxcbiAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuaXNSZXNlbmRPcGVyYXRpb25TdWNjZXNzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyb3IucmVwbGFjZSgvXCIvZyxcIlwiKTtcbiAgICAgIH1cbiAgICApO1xuXG4gIH1cbiAgZ290b0Nhc2V0cmFuc2F0aW9uUGFnZUNhbmNlbEJ0bkNsaWNrZWQoRXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnZpZXdOYW1lICA9ICdyZWZ1bmRzdGF0dXNsaXN0JztcbiAgfVxuXG4gIGdvVG9SZWZ1bmRQcm9jZXNzQ29tcG9uZW50KHJlZnVuZFJlZmVyZW5jZTogc3RyaW5nLCByZWZ1bmRMaXN0OiBJUmVmdW5kTGlzdCkge1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5yZWZ1bmRsaXN0c291cmNlID0gcmVmdW5kTGlzdDtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQucmVmdW5kUmVmZXJlbmNlID0gcmVmdW5kUmVmZXJlbmNlO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc0Zyb21QYXlCdWJibGUgPSB0cnVlO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdwcm9jZXNzLXJlZnVuZCc7XG4gIH1cblxuICBnZXRUZW1wbGF0ZUluc3RydWN0aW9uVHlwZShwYXltZW50OiBJUGF5bWVudCwgcGF5bWVudFJlZmVyZW5jZTogc3RyaW5nKSB7XG5cbiAgICBpZiAocGF5bWVudCA9PSB1bmRlZmluZWQgfHwgcGF5bWVudCA9PSBudWxsIHx8IHBheW1lbnQucmVmZXJlbmNlICE9IHBheW1lbnRSZWZlcmVuY2UpIHtcblxuICAgICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UuZ2V0UGF5bWVudERldGFpbHMocGF5bWVudFJlZmVyZW5jZSkuc3Vic2NyaWJlKFxuICAgICAgICBwYXltZW50ID0+IHtcbiAgICAgICAgICB0aGlzLnBheW1lbnRPYmogPSBwYXltZW50O1xuICAgICAgICAgIHJldHVybiB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZ2V0Tm90aWZpY2F0aW9uSW5zdHJ1Y3Rpb25UeXBlKHRoaXMucGF5bWVudE9iai5jaGFubmVsLCB0aGlzLnBheW1lbnRPYmoubWV0aG9kKTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gJ1RlbXBsYXRlJztcbiAgICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5nZXROb3RpZmljYXRpb25JbnN0cnVjdGlvblR5cGUocGF5bWVudC5jaGFubmVsLCBwYXltZW50Lm1ldGhvZCk7XG4gICAgfVxuICB9XG5cbiAgc2hvd05vdGlmaWNhdGlvblByZXZpZXcoKTogdm9pZCB7XG4gICAgdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3ID0gdHJ1ZTtcbiAgfVxuXG4gIGhpZGVOb3RpZmljYXRpb25QcmV2aWV3KCk6IHZvaWQge1xuICAgIHRoaXMubm90aWZpY2F0aW9uUHJldmlldyA9IGZhbHNlO1xuICB9XG5cbiAgc2hvd05vdGlmaWNhdGlvblNlbnRWaWV3KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblNlbnRWaWV3SW5kZXggPSBpbmRleDtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblNlbnRWaWV3ID0gdHJ1ZTtcbiAgfVxuXG4gIGhpZGVOb3RpZmljYXRpb25TZW50VmlldygpOiB2b2lkIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblNlbnRWaWV3SW5kZXggPSAtMTtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblNlbnRWaWV3ID0gZmFsc2U7XG4gIH1cblxufVxuIl19
|
|
867
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmdW5kLXN0YXR1cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvY2NwYXktd2ViLWNvbXBvbmVudC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3JlZnVuZC1zdGF0dXMvcmVmdW5kLXN0YXR1cy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN2RixPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdqRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUduRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7SUFJaEYsY0FBYyxHQUFHLHVCQUF1QjtBQUU5QztJQTRERSwrQkFBb0IsV0FBd0IsRUFDbEMsYUFBNkIsRUFDN0IsbUJBQXdDLEVBQ3hDLG1CQUF3QyxFQUN4QyxpQkFBb0MsRUFDcEMsa0JBQXNDO1FBTGhELGlCQUtxRDtRQUxqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFDN0Isd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFD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Q0FBdUI7O0lBQ3ZCLDJEQUEyQzs7SUFDM0MsZ0RBQWlDOztJQUNqQyw4Q0FBc0I7O0lBQ3RCLGtEQUEyQjs7SUFDM0Isd0NBQWtCOztJQUNsQixtREFBMkI7O0lBQzNCLHFDQUFjOztJQUNkLDJDQUF5Qjs7SUFDekIsMkNBQXFCOztJQUNyQix3REFBZ0M7O0lBQ2hDLDBEQUF1Qzs7SUFDdkMsb0RBQXFDOztJQUNyQyxxREFBc0M7O0lBQ3RDLDJEQUE2RTs7SUErRDdFLGdEQUVDOzs7OztJQS9EVyw0Q0FBZ0M7Ozs7O0lBQzFDLDhDQUFxQzs7Ozs7SUFDckMsb0RBQWdEOzs7OztJQUNoRCxvREFBZ0Q7Ozs7O0lBQ2hELGtEQUE0Qzs7Ozs7SUFDNUMsbURBQThDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWZ1bmRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3JlZnVuZHMvcmVmdW5kcy5zZXJ2aWNlJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJUmVmdW5kTGlzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVJlZnVuZExpc3QnO1xuaW1wb3J0IHsgSVJlZnVuZHNOb3RpZmljYXRpb25zIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUmVmdW5kc05vdGlmaWNhdGlvbnMnO1xuaW1wb3J0IHsgT3JkZXJzbGlzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vcmRlcnNsaXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgSVB1dE5vdGlmaWNhdGlvblJlcXVlc3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lQdXROb3RpZmljYXRpb25SZXF1ZXN0JztcbmltcG9ydCB7IElSZWZ1bmRDb250YWN0RGV0YWlscyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVJlZnVuZENvbnRhY3REZXRhaWxzJztcbmltcG9ydCB7IElSZWZ1bmRTdGF0dXMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lSZWZ1bmRTdGF0dXMnO1xuaW1wb3J0IHsgSVJlc3VibWl0UmVmdW5kUmVxdWVzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVJlc3VibWl0UmVmdW5kUmVxdWVzdCc7XG5pbXBvcnQgeyBQYXltZW50TGliQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGF5bWVudC1saWIuY29tcG9uZW50JztcbmltcG9ydCB7IFBheW1lbnRWaWV3U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BheW1lbnQtdmlldy9wYXltZW50LXZpZXcuc2VydmljZSc7XG5pbXBvcnQgeyBJUGF5bWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVBheW1lbnQnO1xuaW1wb3J0IHsgSUZlZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSUZlZSc7XG5pbXBvcnQgeyBJUmVmdW5kRmVlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUmVmdW5kRmVlJztcbmNvbnN0IEJTX0VOQUJMRV9GTEFHID0gJ2J1bGstc2Nhbi1lbmFibGluZy1mZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjcGF5LXJlZnVuZC1zdGF0dXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVmdW5kLXN0YXR1cy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlZnVuZC1zdGF0dXMuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFJlZnVuZFN0YXR1c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgnTE9HR0VESU5VU0VSUk9MRVMnKSBMT0dHRURJTlVTRVJST0xFUzogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KCdBUElfUk9PVCcpIEFQSV9ST09UOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNjZENhc2VOdW1iZXI6IHN0cmluZztcbiAgQElucHV0KCkgaXNUdXJuT2ZmOiBib29sZWFuO1xuICBASW5wdXQoKSBvcmRlclBhcnR5OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlzRWxpZ2luYmxlVG9BY2Nlc3M6IGJvb2xlYW47XG4gIHJlZnVuZFN0YXR1c0Zvcm06IEZvcm1Hcm91cDtcbiAgc2VsZWN0ZWRSZWZ1bmRSZWFzb246IHN0cmluZztcbiAgcmVqZWN0ZWRSZWZ1bmRMaXN0OiBJUmVmdW5kTGlzdFtdID0gW107XG4gIG5vdGlmaWNhdGlvbkxpc3Q6IGFueTtcbiAgbm90aWZpY2F0aW9uOmFueTtcbiAgYXBwcm92YWxTdGF0dXMgPSAnU2VudCBmb3IgYXBwcm92YWwnO1xuICByZWplY3RTdGF0dXMgPSAnVXBkYXRlIHJlcXVpcmVkJztcbiAgZXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgdmlld05hbWU6IHN0cmluZztcbiAgcmVmdW5kUmVhc29uOiBzdHJpbmc7XG4gIHJlZnVuZGxpc3Q6IElSZWZ1bmRMaXN0O1xuICBic1BheW1lbnREY25OdW1iZXI6IHN0cmluZztcbiAgaXNDYWxsRnJvbVJlZnVuZExpc3Q6IGJvb2xlYW47XG4gIHJlZnVuZEJ1dHRvblN0YXRlOiBzdHJpbmcgPSAnJztcbiAgaXNBbW91bnRFbXB0eTogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1JlYXNvbkVtcHR5OiBib29sZWFuID0gZmFsc2U7XG4gIGFtb3VudEhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUmVtaXNzaW9uTGVzc1RoYW5GZWVFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICByZWZ1bmRIYXNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICByZWZ1bmRSZWFzb25zOiBhbnlbXSA9IFtdO1xuICByZWZ1bmRTdGF0dXNIaXN0b3JpZXM6IElSZWZ1bmRTdGF0dXNbXTtcbiAgcmVmdW5kTm90aWZpY2F0aW9uczogSVJlZnVuZFN0YXR1c1tdO1xuICBpc1Jlc2VuZE9wZXJhdGlvblN1Y2Nlc3M6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNFZGl0RGV0YWlsc0NsaWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNFZGl0QWRkcmVzc0RlYXRpbHNDbGlja2VkOiBib29sZWFuID0gZmFsc2U7XG4gIGFkZHJlc3NEZXRhaWxzOiBJUmVmdW5kQ29udGFjdERldGFpbHM7XG4gIHJlZnVuZFJlZmVyZW5jZTogc3RyaW5nO1xuICByZWZ1bmRBbW91bnQ6IHN0cmluZztcbiAgcmVmdW5kQ29kZTogc3RyaW5nO1xuICBpc1JlZnVuZEJ0bkRpc2FibGVkOiBib29sZWFuID0gdHJ1ZTtcbiAgb2xkUmVmdW5kUmVhc29uOiBzdHJpbmc7XG4gIHJlZnVuZHJlYXNvbjogc3RyaW5nO1xuICBuYXZpZ2F0aW9ucGFnZTogc3RyaW5nO1xuICBpc0xhc3RVcGRhdGVkQnlDdXJyZW50VXNlcjogYm9vbGVhbiA9IHRydWU7XG4gIGlzUHJvY2Vzc1JlZnVuZDogYm9vbGVhbiA9IGZhbHNlO1xuICBjaGFuZ2VkQW1vdW50OiBudW1iZXI7XG4gIGlzUmVtaXNzaW9uc01hdGNoOiBib29sZWFuO1xuICBwYXltZW50OiBJUGF5bWVudDtcbiAgY2hhbmdlUmVmdW5kUmVhc29uOiBzdHJpbmc7XG4gIGZlZXM6IElGZWUgW107XG4gIHJlZnVuZEZlZXM6IElSZWZ1bmRGZWVbXTtcbiAgcGF5bWVudE9iajogSVBheW1lbnQ7XG4gIHRlbXBsYXRlSW5zdHJ1Y3Rpb25UeXBlOiBzdHJpbmc7XG4gIG5vdGlmaWNhdGlvblNlbnRWaWV3SW5kZXg6IG51bWJlciA9IC0xO1xuICBub3RpZmljYXRpb25QcmV2aWV3OiBib29sZWFuID0gZmFsc2U7XG4gIG5vdGlmaWNhdGlvblNlbnRWaWV3OiBib29sZWFuID0gZmFsc2U7XG4gIGFsbG93ZWRSb2xlc1RvQWNjZXNzUmVmdW5kID0gWydwYXltZW50cy1yZWZ1bmQtYXBwcm92ZXInLCAncGF5bWVudHMtcmVmdW5kJ107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWZ1bmRTZXJ2aWNlOiBSZWZ1bmRzU2VydmljZSxcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwYXltZW50TGliQ29tcG9uZW50OiBQYXltZW50TGliQ29tcG9uZW50LFxuICAgIHByaXZhdGUgT3JkZXJzbGlzdFNlcnZpY2U6IE9yZGVyc2xpc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGF5bWVudFZpZXdTZXJ2aWNlOiBQYXltZW50Vmlld1NlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuXG4gICAgdGhpcy5yZXNldFJlbWlzc2lvbkZvcm0oW2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlXSwgJ0FsbCcpO1xuICAgIHRoaXMuYnNQYXltZW50RGNuTnVtYmVyID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmJzcGF5bWVudGRjbjtcbiAgICB0aGlzLmlzQ2FsbEZyb21SZWZ1bmRMaXN0ID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzQ2FsbEZyb21SZWZ1bmRMaXN0O1xuICAgIGlmICh0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNSZWZ1bmRTdGF0dXNWaWV3KSB7XG4gICAgICB0aGlzLnZpZXdOYW1lID0gJ3JlZnVuZHZpZXcnO1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5nZXRSZWZ1bmRWaWV3KCkuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLnJlZnVuZGxpc3QgPSBkYXRhKTtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0Q0NEQ2FzZU51bWJlcmZvclJlZnVuZC5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMuY2NkQ2FzZU51bWJlciA9IGRhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZpZXdOYW1lID0gJ3JlZnVuZHN0YXR1c2xpc3QnO1xuICAgICAgaWYodGhpcy5pc0VsaWdpbmJsZVRvQWNjZXNzKSB7XG4gICAgICAgIHRoaXMucmVmdW5kU2VydmljZS5nZXRSZWZ1bmRTdGF0dXNMaXN0KHRoaXMuY2NkQ2FzZU51bWJlcikuc3Vic2NyaWJlKFxuICAgICAgICAgIHJlZnVuZExpc3QgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWplY3RlZFJlZnVuZExpc3QgPSByZWZ1bmRMaXN0WydyZWZ1bmRfbGlzdCddO1xuICAgICAgICAgIH1cbiAgICAgICAgKSxcbiAgICAgICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVycm9yLnJlcGxhY2UoL1wiL2csXCJcIik7XG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlamVjdGVkUmVmdW5kTGlzdCA9IFtdO1xuICAgICAgfVxuXG4gICAgfVxuXG5cbiAgICAgIHRoaXMucmVmdW5kU3RhdHVzRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICBhbW91bnQ6IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtcbiAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICAgIFZhbGlkYXRvcnMucGF0dGVybignXlswLTldKyhcXC5bMC05XXsxLDJ9KT8kJylcbiAgICAgICAgXSkpLFxuICAgICAgICByZWZ1bmRSZWFzb246IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSkpLFxuICAgICAgICByZWFzb246IG5ldyBGb3JtQ29udHJvbCgpXG4gICAgICB9KTtcblxuICAgICAgaWYodGhpcy5yZWZ1bmRsaXN0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5nZXRSZWZ1bmRzTm90aWZpY2F0aW9uKCk7XG4gICAgICAgIHRoaXMuZ2V0UmVmdW5kc1N0YXR1c0hpc3RvcnlMaXN0KCk7XG5cbiAgICAgICAgaWYgKHRoaXMuTE9HR0VESU5VU0VSUk9MRVMuc29tZShpID0+IGkuaW5jbHVkZXMoJ3BheW1lbnRzLXJlZnVuZC1hcHByb3ZlcicpKSkge1xuICAgICAgICAgIHRoaXMuaXNQcm9jZXNzUmVmdW5kID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnJlZnVuZEJ1dHRvblN0YXRlID0gdGhpcy5yZWZ1bmRsaXN0LnJlZnVuZF9zdGF0dXMubmFtZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5MT0dHRURJTlVTRVJST0xFUy5zb21lKGkgPT4gaS5pbmNsdWRlcygncGF5bWVudHMtcmVmdW5kJykpKSB7XG4gICAgICAgICAgdGhpcy5pc1Byb2Nlc3NSZWZ1bmQgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnJlZnVuZEJ1dHRvblN0YXRlID0gdGhpcy5yZWZ1bmRsaXN0LnJlZnVuZF9zdGF0dXMubmFtZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gIH1cblxuICBpc0Zyb21QYXlCdWJibGUgPSAoKTogYm9vbGVhbiA9PiB7IFxuICAgIHJldHVybiB0aGlzLkFQSV9ST09UID09PSAnYXBpL3BheW1lbnQtaGlzdG9yeSc7XG4gIH1cblxuICBnZXRSZWZ1bmRzU3RhdHVzSGlzdG9yeUxpc3QoKSB7XG4gICAgaWYodGhpcy5yZWZ1bmRsaXN0ICE9PSB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnJlZnVuZFNlcnZpY2UuZ2V0UmVmdW5kU3RhdHVzSGlzdG9yeSh0aGlzLnJlZnVuZGxpc3QucmVmdW5kX3JlZmVyZW5jZSkuc3Vic2NyaWJlKFxuICAgICAgc3RhdHVzSGlzdG9yeUxpc3QgPT4ge1xuICAgICAgICB0aGlzLnJlZnVuZFN0YXR1c0hpc3RvcmllcyA9IHN0YXR1c0hpc3RvcnlMaXN0LnN0YXR1c19oaXN0b3J5X2R0b19saXN0O1xuICAgICAgICB0aGlzLmlzTGFzdFVwZGF0ZWRCeUN1cnJlbnRVc2VyID0gc3RhdHVzSGlzdG9yeUxpc3QubGFzdF91cGRhdGVkX2J5X2N1cnJlbnRfdXNlcjtcbiAgICAgIH1cbiAgICApLFxuICAgICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnJvci5yZXBsYWNlKC9cIi9nLFwiXCIpO1xuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBnZXRSZWZ1bmRzTm90aWZpY2F0aW9uKCkge1xuICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5nZXRSZWZ1bmROb3RpZmljYXRpb24odGhpcy5yZWZ1bmRsaXN0LnJlZnVuZF9yZWZlcmVuY2UpLnN1YnNjcmliZShcbiAgICAgIHJlZnVuZHNOb3RpZmljYXRpb24gPT4ge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbkxpc3QgPSByZWZ1bmRzTm90aWZpY2F0aW9uWydub3RpZmljYXRpb25zJ107XG4gICAgICB9XG4gICAgKSxcbiAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnJvci5yZXBsYWNlKC9cIi9nLFwiXCIpO1xuICAgIH07IFxuICB9XG5cbiAgZ29Ub1JlZnVuZFZpZXcocmVmdW5kbGlzdDogSVJlZnVuZExpc3QsIG5hdmlnYXRpb25wYWdlOiBzdHJpbmcpIHtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldFJlZnVuZFZpZXcocmVmdW5kbGlzdCk7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRDQ0RDYXNlTnVtYmVyKHRoaXMuY2NkQ2FzZU51bWJlcik7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ3JlZnVuZHN0YXR1c2xpc3QnO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc1JlZnVuZFN0YXR1c1ZpZXcgPSB0cnVlO1xuICAgIHRoaXMucmVmdW5kbGlzdCA9IHJlZnVuZGxpc3Q7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRuYXZpZ2F0aW9uUGFnZShuYXZpZ2F0aW9ucGFnZSk7XG4gIH1cblxuICBsb2FkQ2FzZVRyYW5zYWN0aW9uUGFnZSgpIHtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldG5hdmlnYXRpb25QYWdlKCdjYXNldHJhbnNhY3Rpb25zJyk7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRpc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2UoZmFsc2UpO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdjYXNlLXRyYW5zYWN0aW9ucyc7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEUgPSB0cnVlO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc1JlZnVuZFN0YXR1c1ZpZXcgPSBmYWxzZTtcbiAgfVxuXG4gIGxvYWRSZWZ1bmRMaXN0UGFnZSgpIHtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLmdldG5hdmlnYXRpb25QYWdlVmFsdWUoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMubmF2aWdhdGlvbnBhZ2UgPSBkYXRhKTtcbiAgICBpZiAodGhpcy5uYXZpZ2F0aW9ucGFnZSA9PT0gJ2Nhc2V0cmFuc2FjdGlvbnMnKSB7XG4gICAgICB0aGlzLmxvYWRDYXNlVHJhbnNhY3Rpb25QYWdlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdyZWZ1bmQtbGlzdCc7XG4gICAgfVxuICB9XG5cbiAgZ290b1Jldmlld0RldGFpbHNQYWdlKGV2ZW50OmFueSkge1xuICAgLy8gZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGZhbHNlO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc1JlZnVuZFN0YXR1c1ZpZXcgPSB0cnVlO1xuICAgIHRoaXMubmdPbkluaXQoKTtcbiAgfVxuXG4gIGdvdG9SZXZpZXdBbmRSZVN1Ym1pdFBhZ2UoKSB7XG4gICAgdGhpcy52aWV3TmFtZSA9ICdyZXZpZXdhbmRzdWJtaXR2aWV3JztcbiAgICB0aGlzLnRlbXBsYXRlSW5zdHJ1Y3Rpb25UeXBlID0gdGhpcy5nZXRUZW1wbGF0ZUluc3RydWN0aW9uVHlwZSh0aGlzLnBheW1lbnRPYmosIHRoaXMucmVmdW5kbGlzdC5wYXltZW50X3JlZmVyZW5jZSk7XG4gICAgdGhpcy5vbGRSZWZ1bmRSZWFzb24gPSB0aGlzLnJlZnVuZGxpc3QucmVhc29uO1xuICAgIHRoaXMuY2hhbmdlZEFtb3VudCA9IHRoaXMucmVmdW5kbGlzdC5hbW91bnQ7XG4gICAgdGhpcy5yZWZ1bmRyZWFzb24gPSB0aGlzLnJlZnVuZFN0YXR1c0hpc3Rvcmllcy5maWx0ZXIoZGF0YSA9PiBkYXRhLnN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAndXBkYXRlIHJlcXVpcmVkJylbMF0ubm90ZXM7XG4gICAgdGhpcy5yZWZ1bmRTZXJ2aWNlLmdldFJlZnVuZFJlYXNvbnMoKS5zdWJzY3JpYmUoXG4gICAgICByZWZ1bmRSZWFzb25zID0+IHtcbiAgICAgICAgdGhpcy5yZWZ1bmRSZWFzb25zID0gcmVmdW5kUmVhc29ucztcbiAgICAgIH0pO1xuICB9XG4gIGdvdG9SZWZ1bmRSZWFzb25QYWdlKHJlZnVuZFJlYXNvbjpzdHJpbmcpIHtcbiAgICB0aGlzLmlzUmVmdW5kQnRuRGlzYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuUkVGVU5ETElTVCA9IFwidHJ1ZVwiO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc0Zyb21SZWZ1bmRTdGF0dXNQYWdlID0gdHJ1ZTtcbiAgICB0aGlzLmNjZENhc2VOdW1iZXIgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuQ0NEX0NBU0VfTlVNQkVSO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZmFsc2U7XG4gICAgdGhpcy5jaGFuZ2VSZWZ1bmRSZWFzb24gPSByZWZ1bmRSZWFzb247XG4gICAgdGhpcy52aWV3TmFtZSA9ICdpc3N1ZXJlZnVuZHBhZ2UxJztcbiAgfVxuXG4gIGdvdG9BbW91bnRQYWdlKCkge1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZmFsc2U7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlJFRlVORExJU1QgPSBcInRydWVcIjtcbiAgICB0aGlzLmlzUmVmdW5kQnRuRGlzYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLmNjZENhc2VOdW1iZXIgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuQ0NEX0NBU0VfTlVNQkVSO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc0Zyb21SZWZ1bmRTdGF0dXNQYWdlID0gdHJ1ZTtcbiAgICBpZih0aGlzLnJlZnVuZGxpc3QucmVhc29uID09ICdSZXRyb3NwZWN0aXZlIHJlbWlzc2lvbicpIHtcbiAgICB0aGlzLnZpZXdOYW1lID0gJ3Byb2Nlc3NyZXRyb3JlbWlzc29ucGFnZSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlld05hbWUgPSAnaXNzdWVyZWZ1bmQnO1xuICAgIH1cbiAgfVxuXG4gIGdvVG9SZXZpZXdBbmRTdWJtaXRWaWV3KCkge1xuICAgIGNvbnN0IHJlbWlzc2lvbmN0cmxzID0gdGhpcy5yZWZ1bmRTdGF0dXNGb3JtLmNvbnRyb2xzXG4gICAgaWYgKHRoaXMucmVmdW5kU3RhdHVzRm9ybS5kaXJ0eSkge1xuICAgICAgaWYgKHJlbWlzc2lvbmN0cmxzWydhbW91bnQnXS52YWx1ZSA9PSAnJykge1xuICAgICAgICB0aGlzLnJlc2V0UmVtaXNzaW9uRm9ybShbdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sICdhbW91bnQnKTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKHJlbWlzc2lvbmN0cmxzWydhbW91bnQnXS52YWx1ZSAhPSAnJyAmJiByZW1pc3Npb25jdHJsc1snYW1vdW50J10uaW52YWxpZCkge1xuICAgICAgICB0aGlzLnJlc2V0UmVtaXNzaW9uRm9ybShbZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0sICdhbW91bnQnKTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKHJlbWlzc2lvbmN0cmxzWydyZWFzb24nXS52YWx1ZSA9PSAnJykge1xuICAgICAgICB0aGlzLnJlc2V0UmVtaXNzaW9uRm9ybShbZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZV0sICdyZWFzb24nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVmdW5kbGlzdC5yZWFzb24gPSByZW1pc3Npb25jdHJsc1sncmVhc29uJ10udmFsdWU7XG4gICAgICAgIHRoaXMudmlld05hbWUgPSAncmV2aWV3YW5kc3VibWl0dmlldyc7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICByZXNldFJlbWlzc2lvbkZvcm0odmFsLCBmaWVsZCkge1xuICAgIGlmIChmaWVsZCA9PT0gJ0FsbCcpIHtcbiAgICAgIHRoaXMuaXNBbW91bnRFbXB0eSA9IHZhbFswXTtcbiAgICAgIHRoaXMuYW1vdW50SGFzRXJyb3IgPSB2YWxbMV07XG4gICAgICB0aGlzLmlzUmVtaXNzaW9uTGVzc1RoYW5GZWVFcnJvciA9IHZhbFsyXTtcbiAgICAgIHRoaXMuaXNSZWFzb25FbXB0eSA9IHZhbFszXTtcbiAgICB9IGVsc2UgaWYgKGZpZWxkID09PSAnYW1vdW50JyB8fCBmaWVsZCA9PT0gJ0FsbCcpIHtcbiAgICAgIHRoaXMuaXNBbW91bnRFbXB0eSA9IHZhbFswXTtcbiAgICAgIHRoaXMuYW1vdW50SGFzRXJyb3IgPSB2YWxbMV07XG4gICAgICB0aGlzLmlzUmVtaXNzaW9uTGVzc1RoYW5GZWVFcnJvciA9IHZhbFsyXTtcbiAgICB9IGVsc2UgaWYgKGZpZWxkID09PSAncmVhc29uJyB8fCBmaWVsZCA9PT0gJ0FsbCcpIHtcbiAgICAgIHRoaXMuaXNSZWFzb25FbXB0eSA9IHZhbFszXTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RSYWRpb0J1dHRvbihrZXksIHZhbHVlKSB7XG4gICAgdGhpcy5yZWZ1bmRIYXNFcnJvciA9IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0ZWRSZWZ1bmRSZWFzb24gPSBrZXk7XG4gICAgaWYgKGtleSA9PT0gJ090aGVyJykge1xuICAgICAgdGhpcy5yZWZ1bmRIYXNFcnJvciA9IGZhbHNlO1xuICAgICAgdGhpcy5yZWZ1bmRSZWFzb24gPSBrZXk7XG4gICAgfVxuICB9XG5cbiAgZ2V0UmVmdW5kTGlzdFJlYXNvbihyZWZ1bmRMaXN0UmVhc29uOiBhbnkpIHtcbiAgICBpZiAodGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzRnJvbVJlZnVuZFN0YXR1c1BhZ2UgJiYgIXRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc2NhbmNlbENsaWNrZWQpIHtcbiAgICAgIHRoaXMucmVmdW5kbGlzdC5yZWFzb24gPSByZWZ1bmRMaXN0UmVhc29uLnJlYXNvbjtcbiAgICAgIHRoaXMucmVmdW5kbGlzdC5jb2RlID0gcmVmdW5kTGlzdFJlYXNvbi5jb2RlO1xuICAgICAgdGhpcy5yZWZ1bmRDb2RlID0gcmVmdW5kTGlzdFJlYXNvbi5jb2RlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzUmVmdW5kQnRuRGlzYWJsZWQgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXcgPSBmYWxzZTtcbiAgICB0aGlzLnZpZXdOYW1lID0gJ3Jldmlld2FuZHN1Ym1pdHZpZXcnO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5DQ0RfQ0FTRV9OVU1CRVIgPSB0aGlzLmNjZENhc2VOdW1iZXI7XG4gIH1cblxuICBnZXRSZWZ1bmRBbW91bnQoYW1vdW50OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzRnJvbVJlZnVuZFN0YXR1c1BhZ2UgJiYgIXRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc2NhbmNlbENsaWNrZWQpIHtcbiAgICAgIGlmIChhbW91bnQgPiAwKSB7XG4gICAgICAgIHRoaXMuY2hhbmdlZEFtb3VudCA9IGFtb3VudDtcbiAgICAgICAgLy8gdGhpcy5yZWZ1bmRsaXN0LmFtb3VudCA9IGFtb3VudDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pc1JlZnVuZEJ0bkRpc2FibGVkID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3ID0gZmFsc2U7XG4gICAgdGhpcy52aWV3TmFtZSA9ICdyZXZpZXdhbmRzdWJtaXR2aWV3JztcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuQ0NEX0NBU0VfTlVNQkVSID0gdGhpcy5jY2RDYXNlTnVtYmVyO1xuICB9XG5cbiAgZ2V0UmVmdW5kRmVlcyhmZWVzOiBJRmVlW10pXG4gIHtcbiAgICB0aGlzLmZlZXMgPSBmZWVzO1xuICAgIHRoaXMucmVmdW5kRmVlcyAgPSB0aGlzLmZlZXMubWFwKG9iaiA9PiAoeyBmZWVfaWQ6IG9iai5pZCwgY29kZTogb2JqLmNvZGUsIHZlcnNpb246b2JqLnZlcnNpb24sIHZvbHVtZTogb2JqLnZvbHVtZSxyZWZ1bmRfYW1vdW50Om9iai5yZWZ1bmRfYW1vdW50IH0pKTtcbiAgfVxuXG4gIGdvdG9SZXZpZXdSZWZ1bmRDb25maXJtYXRpb25QYWdlKCkge1xuICAgIC8vIGlmICh0aGlzLm9sZFJlZnVuZFJlYXNvbiA9PT0gdGhpcy5yZWZ1bmRsaXN0LnJlYXNvbikge1xuICAgIC8vICAgdGhpcy5yZWZ1bmRDb2RlID0gJyc7XG4gICAgLy8gfVxuICAgIGlmICh0aGlzLnJlZnVuZEZlZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5yZWZ1bmRGZWVzID0gdGhpcy5yZWZ1bmRsaXN0WydyZWZ1bmRfZmVlcyddO1xuICAgIH1cbiAgICB0aGlzLnJlZnVuZENvZGUgPSB0aGlzLnJlZnVuZGxpc3QuY29kZTtcbiAgICBjb25zdCByZXN1Ym1pdFJlcXVlc3QgPSBuZXcgSVJlc3VibWl0UmVmdW5kUmVxdWVzdCh0aGlzLnJlZnVuZENvZGUsICB0aGlzLmNoYW5nZWRBbW91bnQsIHRoaXMucmVmdW5kbGlzdC5jb250YWN0X2RldGFpbHMsIHRoaXMucmVmdW5kRmVlcyk7XG4gICAgdGhpcy5yZWZ1bmRTZXJ2aWNlLnBhdGNoUmVzdWJtaXRSZWZ1bmQocmVzdWJtaXRSZXF1ZXN0LCB0aGlzLnJlZnVuZGxpc3QucmVmdW5kX3JlZmVyZW5jZSkuc3Vic2NyaWJlKFxuICAgICAgcmVzcG9uc2UgPT4ge1xuICAgICAgICBpZiAoSlNPTi5wYXJzZShyZXNwb25zZSkpIHtcbiAgICAgICAgICB0aGlzLnJlZnVuZFJlZmVyZW5jZSA9IEpTT04ucGFyc2UocmVzcG9uc2UpLnJlZnVuZF9yZWZlcmVuY2U7XG4gICAgICAgICAgdGhpcy5yZWZ1bmRBbW91bnQgPSBKU09OLnBhcnNlKHJlc3BvbnNlKS5yZWZ1bmRfYW1vdW50O1xuICAgICAgICAgIHRoaXMudmlld05hbWUgPSAncmV2aWV3cmVmdW5kY29uZmlybWF0aW9ucGFnZSc7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVycm9yLnJlcGxhY2UoL1wiL2csXCJcIik7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGdvdG9FZGl0QWRkcmVzc0RldGFpbHMobm90ZTogSVJlZnVuZHNOb3RpZmljYXRpb25zKSB7XG4gICAgdGhpcy5ub3RpZmljYXRpb24gPSBub3RlO1xuICAgIHRoaXMuaXNFZGl0RGV0YWlsc0NsaWNrZWQgPSB0cnVlO1xuICAgIHRoaXMudmlld05hbWUgPSAncmVmdW5kRWRpdFZpZXcnXG4gIH1cbiAgZ2V0Q29udGFjdERldGFpbHMob2JqOklSZWZ1bmRDb250YWN0RGV0YWlscykge1xuICAgIHRoaXMuYWRkcmVzc0RldGFpbHMgPSBvYmo7XG4gICAgdGhpcy50ZW1wbGF0ZUluc3RydWN0aW9uVHlwZSA9IHRoaXMuZ2V0VGVtcGxhdGVJbnN0cnVjdGlvblR5cGUodGhpcy5wYXltZW50T2JqLHRoaXMucmVmdW5kbGlzdC5wYXltZW50X3JlZmVyZW5jZSk7XG4gICAgdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3ID0gZmFsc2U7XG4gICAgdGhpcy52aWV3TmFtZSA9ICdyZXZpZXdlZGl0ZGV0YWlsc2NvbmZpcm1hdGlvbnBhZ2UnO1xuICB9XG4gIGdldENvbnRhY3REZXRhaWxzRm9yUmVmdW5kTGlzdChvYmo6SVJlZnVuZENvbnRhY3REZXRhaWxzKSB7XG4gICAgdGhpcy5yZWZ1bmRsaXN0LmNvbnRhY3RfZGV0YWlscyA9IG9iajtcbiAgICB0aGlzLmlzRWRpdERldGFpbHNDbGlja2VkID0gZmFsc2U7XG4gICAgdGhpcy5pc1JlZnVuZEJ0bkRpc2FibGVkID0gZmFsc2U7XG4gICAgdGhpcy52aWV3TmFtZSA9ICdyZXZpZXdhbmRzdWJtaXR2aWV3JztcbiAgfVxuICBnb3RvRWRpdERldGFpbHNQYWdlKG5vdGU/OiBhbnkpIHtcbiAgICBpZihub3RlKSB7XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbiA9IHsgY29udGFjdF9kZXRhaWxzOiBub3RlLCBub3RpZmljYXRpb25fdHlwZTogbm90ZS5ub3RpZmljYXRpb25fdHlwZSB9O1xuICAgIH1cbiAgICB0aGlzLmlzRWRpdERldGFpbHNDbGlja2VkID0gdHJ1ZTtcbiAgICB0aGlzLnZpZXdOYW1lID0gJ3JlZnVuZEVkaXRWaWV3J1xuICB9XG4gIHN1Ym1pdEVkaXREZXRhaWwoKSB7XG4gICAgdGhpcy5pc1Jlc2VuZE9wZXJhdGlvblN1Y2Nlc3MgPSBmYWxzZTtcbiAgICBjb25zdCBjb250YWN0RGV0YWlscyA9IHRoaXMuYWRkcmVzc0RldGFpbHMubm90aWZpY2F0aW9uX3R5cGUgPT09ICdFTUFJTCcgPyB0aGlzLmFkZHJlc3NEZXRhaWxzLmVtYWlsIDpcbiAgICAgIHtcbiAgICAgICAgYWRkcmVzc19saW5lOiB0aGlzLmFkZHJlc3NEZXRhaWxzLmFkZHJlc3NfbGluZSxcbiAgICAgICAgY2l0eTogdGhpcy5hZGRyZXNzRGV0YWlscy5jaXR5LFxuICAgICAgICBjb3VudHk6IHRoaXMuYWRkcmVzc0RldGFpbHMuY291bnR5LFxuICAgICAgICBjb3VudHJ5OiB0aGlzLmFkZHJlc3NEZXRhaWxzLmNvdW50cnksXG4gICAgICAgIHBvc3RhbF9jb2RlOiB0aGlzLmFkZHJlc3NEZXRhaWxzLnBvc3RhbF9jb2RlLFxuICAgICAgfTtcbiAgICBjb25zdCByZXNlbmRSZXF1ZXN0ID0gbmV3IElQdXROb3RpZmljYXRpb25SZXF1ZXN0KGNvbnRhY3REZXRhaWxzLCB0aGlzLmFkZHJlc3NEZXRhaWxzLm5vdGlmaWNhdGlvbl90eXBlKTtcblxuICAgIHRoaXMucmVmdW5kU2VydmljZS5wdXRSZXNlbmRPckVkaXQocmVzZW5kUmVxdWVzdCwgdGhpcy5yZWZ1bmRsaXN0LnJlZnVuZF9yZWZlcmVuY2UsIHRoaXMuYWRkcmVzc0RldGFpbHMubm90aWZpY2F0aW9uX3R5cGUpLnN1YnNjcmliZShcbiAgICAgIChyZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLmlzUmVzZW5kT3BlcmF0aW9uU3VjY2VzcyA9IHJlc3BvbnNlO1xuICAgICAgfSxcbiAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuaXNSZXNlbmRPcGVyYXRpb25TdWNjZXNzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyb3IucmVwbGFjZSgvXCIvZyxcIlwiKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG4gIHB1dFJlc2VuZChub3RpZmljYXRpb246IElSZWZ1bmRzTm90aWZpY2F0aW9ucykge1xuICAgIHRoaXMuaXNSZXNlbmRPcGVyYXRpb25TdWNjZXNzID0gZmFsc2U7XG4gICAgY29uc3QgY29udGFjdERldGFpbHMgPSBub3RpZmljYXRpb24ubm90aWZpY2F0aW9uX3R5cGUgPT09ICdFTUFJTCcgPyBub3RpZmljYXRpb24uY29udGFjdF9kZXRhaWxzLmVtYWlsIDpcbiAgICAgIHtcbiAgICAgICAgYWRkcmVzc19saW5lIDpub3RpZmljYXRpb24uY29udGFjdF9kZXRhaWxzLmFkZHJlc3NfbGluZSxcbiAgICAgICAgY2l0eTogbm90aWZpY2F0aW9uLmNvbnRhY3RfZGV0YWlscy5jaXR5LFxuICAgICAgICBjb3VudHk6IG5vdGlmaWNhdGlvbi5jb250YWN0X2RldGFpbHMuY291bnR5LFxuICAgICAgICBjb3VudHJ5OiBub3RpZmljYXRpb24uY29udGFjdF9kZXRhaWxzLmNvdW50cnksXG4gICAgICAgIHBvc3RhbF9jb2RlOiBub3RpZmljYXRpb24uY29udGFjdF9kZXRhaWxzLnBvc3RhbF9jb2RlLFxuICAgICAgfTtcbiAgICBjb25zdCByZXNlbmRSZXF1ZXN0ID0gbmV3IElQdXROb3RpZmljYXRpb25SZXF1ZXN0KGNvbnRhY3REZXRhaWxzLCBub3RpZmljYXRpb24ubm90aWZpY2F0aW9uX3R5cGUpO1xuXG4gICAgdGhpcy5yZWZ1bmRTZXJ2aWNlLnB1dFJlc2VuZE9yRWRpdChyZXNlbmRSZXF1ZXN0LCB0aGlzLnJlZnVuZGxpc3QucmVmdW5kX3JlZmVyZW5jZSwgbm90aWZpY2F0aW9uLm5vdGlmaWNhdGlvbl90eXBlKS5zdWJzY3JpYmUoXG4gICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgdGhpcy5pc1Jlc2VuZE9wZXJhdGlvblN1Y2Nlc3MgPSByZXNwb25zZTtcbiAgICAgIH0sXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmlzUmVzZW5kT3BlcmF0aW9uU3VjY2VzcyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVycm9yLnJlcGxhY2UoL1wiL2csXCJcIik7XG4gICAgICB9XG4gICAgKTtcblxuICB9XG4gIGdvdG9DYXNldHJhbnNhdGlvblBhZ2VDYW5jZWxCdG5DbGlja2VkKEV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy52aWV3TmFtZSAgPSAncmVmdW5kc3RhdHVzbGlzdCc7XG4gIH1cblxuICBnb1RvUmVmdW5kUHJvY2Vzc0NvbXBvbmVudChyZWZ1bmRSZWZlcmVuY2U6IHN0cmluZywgcmVmdW5kTGlzdDogSVJlZnVuZExpc3QpIHtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQucmVmdW5kbGlzdHNvdXJjZSA9IHJlZnVuZExpc3Q7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnJlZnVuZFJlZmVyZW5jZSA9IHJlZnVuZFJlZmVyZW5jZTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNGcm9tUGF5QnViYmxlID0gdHJ1ZTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAncHJvY2Vzcy1yZWZ1bmQnO1xuICB9XG5cbiAgZ2V0VGVtcGxhdGVJbnN0cnVjdGlvblR5cGUocGF5bWVudDogSVBheW1lbnQsIHBheW1lbnRSZWZlcmVuY2U6IHN0cmluZykge1xuXG4gICAgaWYgKHBheW1lbnQgPT0gdW5kZWZpbmVkIHx8IHBheW1lbnQgPT0gbnVsbCB8fCBwYXltZW50LnJlZmVyZW5jZSAhPSBwYXltZW50UmVmZXJlbmNlKSB7XG5cbiAgICAgIHRoaXMucGF5bWVudFZpZXdTZXJ2aWNlLmdldFBheW1lbnREZXRhaWxzKHBheW1lbnRSZWZlcmVuY2UpLnN1YnNjcmliZShcbiAgICAgICAgcGF5bWVudCA9PiB7XG4gICAgICAgICAgdGhpcy5wYXltZW50T2JqID0gcGF5bWVudDtcbiAgICAgICAgICB0aGlzLnBheW1lbnRPYmoucmVmZXJlbmNlID0gcGF5bWVudFJlZmVyZW5jZTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yOiBhbnkpID0+IHt9KVxuXG4gICAgICAgIGlmICh0aGlzLnBheW1lbnRPYmogIT0gdW5kZWZpbmVkICYmIHRoaXMucGF5bWVudE9iaiAhPSBudWxsICYmIHRoaXMucGF5bWVudE9iai5yZWZlcmVuY2UgPT0gcGF5bWVudFJlZmVyZW5jZSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZ2V0Tm90aWZpY2F0aW9uSW5zdHJ1Y3Rpb25UeXBlKHRoaXMucGF5bWVudE9iai5jaGFubmVsLCB0aGlzLnBheW1lbnRPYmoubWV0aG9kKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gJ1RlbXBsYXRlJztcbiAgICAgICAgfVxuXG4gICAgICAgIFxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmdldE5vdGlmaWNhdGlvbkluc3RydWN0aW9uVHlwZShwYXltZW50LmNoYW5uZWwsIHBheW1lbnQubWV0aG9kKTtcbiAgICB9XG4gIH1cblxuICBzaG93Tm90aWZpY2F0aW9uUHJldmlldygpOiB2b2lkIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXcgPSB0cnVlO1xuICB9XG5cbiAgaGlkZU5vdGlmaWNhdGlvblByZXZpZXcoKTogdm9pZCB7XG4gICAgdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3ID0gZmFsc2U7XG4gIH1cblxuICBzaG93Tm90aWZpY2F0aW9uU2VudFZpZXcoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMubm90aWZpY2F0aW9uU2VudFZpZXdJbmRleCA9IGluZGV4O1xuICAgIHRoaXMubm90aWZpY2F0aW9uU2VudFZpZXcgPSB0cnVlO1xuICB9XG5cbiAgaGlkZU5vdGlmaWNhdGlvblNlbnRWaWV3KCk6IHZvaWQge1xuICAgIHRoaXMubm90aWZpY2F0aW9uU2VudFZpZXdJbmRleCA9IC0xO1xuICAgIHRoaXMubm90aWZpY2F0aW9uU2VudFZpZXcgPSBmYWxzZTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -2437,14 +2437,18 @@ class ProcessRefundComponent {
|
|
|
2437
2437
|
*/
|
|
2438
2438
|
payment => {
|
|
2439
2439
|
this.paymentObj = payment;
|
|
2440
|
-
|
|
2440
|
+
this.paymentObj.reference = paymentReference;
|
|
2441
2441
|
}), (/**
|
|
2442
2442
|
* @param {?} error
|
|
2443
2443
|
* @return {?}
|
|
2444
2444
|
*/
|
|
2445
|
-
(error) => {
|
|
2445
|
+
(error) => { }));
|
|
2446
|
+
if (this.paymentObj != undefined && this.paymentObj != null && this.paymentObj.reference == paymentReference) {
|
|
2447
|
+
return this.notificationService.getNotificationInstructionType(this.paymentObj.channel, this.paymentObj.method);
|
|
2448
|
+
}
|
|
2449
|
+
else {
|
|
2446
2450
|
return 'Template';
|
|
2447
|
-
}
|
|
2451
|
+
}
|
|
2448
2452
|
}
|
|
2449
2453
|
else {
|
|
2450
2454
|
return this.notificationService.getNotificationInstructionType(payment.channel, payment.method);
|
|
@@ -7982,23 +7986,25 @@ class AddRemissionComponent {
|
|
|
7982
7986
|
* @return {?}
|
|
7983
7987
|
*/
|
|
7984
7988
|
getTemplateInstructionType(paymentReference, payment) {
|
|
7985
|
-
|
|
7986
|
-
if (payment == undefined || payment == null || (paymentReference != undefined && paymentReference != null && payment.reference != paymentReference)) {
|
|
7989
|
+
if (payment == undefined || payment == null || payment.reference != paymentReference) {
|
|
7987
7990
|
this.paymentViewService.getPaymentDetails(paymentReference).subscribe((/**
|
|
7988
7991
|
* @param {?} payment
|
|
7989
7992
|
* @return {?}
|
|
7990
7993
|
*/
|
|
7991
7994
|
payment => {
|
|
7992
|
-
console.log('Payment Object received: ' + JSON.stringify(payment));
|
|
7993
7995
|
this.paymentObj = payment;
|
|
7994
|
-
|
|
7996
|
+
this.paymentObj.reference = paymentReference;
|
|
7995
7997
|
}), (/**
|
|
7996
7998
|
* @param {?} error
|
|
7997
7999
|
* @return {?}
|
|
7998
8000
|
*/
|
|
7999
|
-
(error) => {
|
|
8001
|
+
(error) => { }));
|
|
8002
|
+
if (this.paymentObj != undefined && this.paymentObj != null && this.paymentObj.reference == paymentReference) {
|
|
8003
|
+
return this.notificationService.getNotificationInstructionType(this.paymentObj.channel, this.paymentObj.method);
|
|
8004
|
+
}
|
|
8005
|
+
else {
|
|
8000
8006
|
return 'Template';
|
|
8001
|
-
}
|
|
8007
|
+
}
|
|
8002
8008
|
}
|
|
8003
8009
|
else {
|
|
8004
8010
|
return this.notificationService.getNotificationInstructionType(payment.channel, payment.method);
|
|
@@ -9484,14 +9490,18 @@ class RefundStatusComponent {
|
|
|
9484
9490
|
*/
|
|
9485
9491
|
payment => {
|
|
9486
9492
|
this.paymentObj = payment;
|
|
9487
|
-
|
|
9493
|
+
this.paymentObj.reference = paymentReference;
|
|
9488
9494
|
}), (/**
|
|
9489
9495
|
* @param {?} error
|
|
9490
9496
|
* @return {?}
|
|
9491
9497
|
*/
|
|
9492
|
-
(error) => {
|
|
9498
|
+
(error) => { }));
|
|
9499
|
+
if (this.paymentObj != undefined && this.paymentObj != null && this.paymentObj.reference == paymentReference) {
|
|
9500
|
+
return this.notificationService.getNotificationInstructionType(this.paymentObj.channel, this.paymentObj.method);
|
|
9501
|
+
}
|
|
9502
|
+
else {
|
|
9493
9503
|
return 'Template';
|
|
9494
|
-
}
|
|
9504
|
+
}
|
|
9495
9505
|
}
|
|
9496
9506
|
else {
|
|
9497
9507
|
return this.notificationService.getNotificationInstructionType(payment.channel, payment.method);
|