ng-easycommerce 0.0.683 → 0.0.684
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/README.md +9 -0
- package/bundles/ng-easycommerce.umd.js +427 -38
- package/bundles/ng-easycommerce.umd.js.map +1 -1
- package/bundles/ng-easycommerce.umd.min.js +1 -1
- package/bundles/ng-easycommerce.umd.min.js.map +1 -1
- package/esm2015/lib/ec-component/checkout-ec/dataform-ec/dataform-ec.component.js +317 -8
- package/esm2015/lib/ec-component/checkout-ec/payment-ec/payment-ec.component.js +2 -2
- package/esm2015/lib/ec-component/widgets-ec/redsys-redirect-ec/redsys-redirect-ec.component.js +41 -24
- package/esm2015/lib/services/checkout/addressing.service.js +21 -1
- package/esm2015/lib/services/checkout/shipment.service.js +5 -4
- package/esm5/lib/ec-component/checkout-ec/dataform-ec/dataform-ec.component.js +359 -8
- package/esm5/lib/ec-component/checkout-ec/payment-ec/payment-ec.component.js +2 -2
- package/esm5/lib/ec-component/widgets-ec/redsys-redirect-ec/redsys-redirect-ec.component.js +41 -24
- package/esm5/lib/services/checkout/addressing.service.js +21 -1
- package/esm5/lib/services/checkout/shipment.service.js +10 -9
- package/fesm2015/ng-easycommerce.js +380 -33
- package/fesm2015/ng-easycommerce.js.map +1 -1
- package/fesm5/ng-easycommerce.js +427 -38
- package/fesm5/ng-easycommerce.js.map +1 -1
- package/lib/ec-component/checkout-ec/dataform-ec/dataform-ec.component.d.ts +26 -0
- package/lib/ec-component/widgets-ec/redsys-redirect-ec/redsys-redirect-ec.component.d.ts +4 -3
- package/lib/services/checkout/addressing.service.d.ts +5 -0
- package/ng-easycommerce.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -179,7 +179,7 @@ var PaymentEcComponent = /** @class */ (function (_super) {
|
|
|
179
179
|
};
|
|
180
180
|
_this.verifyValidate = function () {
|
|
181
181
|
_this.setLoading();
|
|
182
|
-
|
|
182
|
+
_this.emitResult();
|
|
183
183
|
};
|
|
184
184
|
_this.setMethod = function (method) { return __awaiter(_this, void 0, void 0, function () {
|
|
185
185
|
var result, balanceCustomer, totals, isBalanceMethod, allowAny;
|
|
@@ -486,4 +486,4 @@ var PaymentEcComponent = /** @class */ (function (_super) {
|
|
|
486
486
|
return PaymentEcComponent;
|
|
487
487
|
}(ComponentHelper));
|
|
488
488
|
export { PaymentEcComponent };
|
|
489
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1lYXN5Y29tbWVyY2UvIiwic291cmNlcyI6WyJsaWIvZWMtY29tcG9uZW50L2NoZWNrb3V0LWVjL3BheW1lbnQtZWMvcGF5bWVudC1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQWlCLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBU2pEO0lBQXdDLHNDQUFlO0lBcUNuRCw0QkFBc0IsUUFBbUIsRUFBWSxNQUFvQixFQUM5RCxjQUE4QixFQUFTLGVBQWdDLEVBQ3RFLFdBQXdCLEVBQVUsTUFBaUIsRUFBVSxNQUFjO1FBRnZGLFlBR0ksaUJBQU8sU0FFVjtRQUxxQixjQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVksWUFBTSxHQUFOLE1BQU0sQ0FB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ZTtnQkFDekQsV0FBVztnQkFBa0IsU0FBUztnQkFBa0IsTUFBTTs7SUFyQzlFO1FBQVIsS0FBSyxFQUFFO3VEQUFTO0lBQ1I7UUFBUixLQUFLLEVBQUU7a0VBQXFDO0lBQ25DO1FBQVQsTUFBTSxFQUFFOzJEQUEyQztJQUN4QjtRQUEzQixTQUFTLENBQUMsZUFBZSxDQUFDO2tFQUEwQztJQUw1RCxrQkFBa0I7UUFQOUIsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQixncnJCQUF3QztZQUV4QyxTQUFTLEVBQUUsQ0FBQyxjQUFjLENBQUM7O1NBRTlCLENBQUM7T0FDVyxrQkFBa0IsQ0EyWDlCO0lBQUQseUJBQUM7Q0FBQSxBQTNYRCxDQUF3QyxlQUFlLEdBMlh0RDtTQTNYWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFJlbmRlcmVyMiwgRWxlbWVudFJlZiwgVmlld0NoaWxkLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21wb25lbnRIZWxwZXIgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2NvbXBvbmVudC1oZWxwZXInO1xuaW1wb3J0IHsgQ2hlY2tvdXREYXRhIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9jaGVja291dC1kYXRhJztcbmltcG9ydCB7IENoZWNrb3V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NoZWNrb3V0L2NoZWNrb3V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUGF5bWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jaGVja291dC9wYXltZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBDb25zdGFudHMgfSBmcm9tICcuLi8uLi8uLi9jb3JlLmNvbnN0cyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLXBheW1lbnQtZWMnLFxuICAgIHRlbXBsYXRlVXJsOiAncGF5bWVudC1lYy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ3BheW1lbnQtZWMuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtQYXltZW50U2VydmljZV1cblxufSlcbmV4cG9ydCBjbGFzcyBQYXltZW50RWNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRIZWxwZXIgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCB7XG5cbiAgICBASW5wdXQoKSBzdGVwX2lkO1xuICAgIEBJbnB1dCgpIGNvbXBhY3RQYXltZW50VmlldzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBPdXRwdXQoKSBkaXJ0eUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBAVmlld0NoaWxkKCdmb3JtQ29udGFpbmVyJykgcHJvdGVjdGVkIG1lcmNhZG9wYWdvX2J1dHRvbjogRWxlbWVudFJlZjtcbiAgICBwcm90ZWN0ZWQgbWV0aG9kRGF0YVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG4gICAgcHJpdmF0ZSBsb2FkaW5nU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByb3RlY3RlZCBwcmVmZXJlbmNlO1xuXG5cbiAgICBwdWJsaWMgbG9hZGluZ19pbnRlcm5hbCA9IGZhbHNlO1xuICAgIHB1YmxpYyBvcmRlcl9pZDtcbiAgICBwdWJsaWMgZXJyb3I7XG4gICAgcHVibGljIGxvYWRpbmcgPSB0cnVlO1xuICAgIHB1YmxpYyBsb2FkaW5nX2ludGVybmFsX21wID0gZmFsc2U7XG4gICAgcHVibGljIG1ldGhvZF9kYXRhJCA9IHRoaXMubWV0aG9kRGF0YVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHVibGljIGxvYWRpbmckID0gdGhpcy5sb2FkaW5nU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICBwdWJsaWMgdG90YWxfYW1vdW50O1xuICAgIHB1YmxpYyBhbGxvd0FueVBheW1lbnRNZXRob2Q6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcbiAgICBwdWJsaWMgYmFsYW5jZU1ldGhvZFJlamVjdGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIHNob3dNZXRob2RFcnJvciA9IGZhbHNlO1xuICAgIHB1YmxpYyBzZWxlY3RlZE1ldGhvZENvZGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyBjdXJyZW50TWV0aG9kOiBhbnkgPSBudWxsO1xuICAgIHByaXZhdGUgbGFzdEFkZHJlc3NLZXk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyB2YWxpZGF0aW5nTWV0aG9kQ29kZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIGludmFsaWRNZXRob2RzQmFsYW5jZTogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcbiAgICBwdWJsaWMgaW52YWxpZE1ldGhvZHNCYWNrZW5kOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xuICAgIHByaXZhdGUgcGF5bWVudE1ldGhvZHM6IGFueVtdID0gW107XG4gICAgcHJpdmF0ZSBiYWxhbmNlQ3VzdG9tZXI6IGFueSA9IG51bGw7XG4gICAgcHVibGljIHBheW1lbnRMb2NrZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIGF1dG9Db21wbGV0aW5nID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBsYXN0U2F2ZWRNZXRob2RDb2RlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIGlzRGlydHkgPSBmYWxzZTtcbiAgICBwcml2YXRlIHN1cHByZXNzRGlydHkgPSBmYWxzZTtcblxuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByb3RlY3RlZCB0b2FzdHI6IFRvYXN0U2VydmljZSxcbiAgICAgICAgcHVibGljIHBheW1lbnRTZXJ2aWNlOiBQYXltZW50U2VydmljZSwgcHVibGljIGNoZWNrb3V0U2VydmljZTogQ2hlY2tvdXRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSwgcHJpdmF0ZSBjb25zdHM6IENvbnN0YW50cywgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmVjT25Db25zdHJ1Y3QoKVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCkgeyB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5wYXltZW50U2VydmljZS5pbml0aWFsaXplKHRoaXMuc3RlcF9pZCk7XG4gICAgICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmFzb2NpYXRlZERhdGEkLnN1YnNjcmliZSgoZGF0YTogQ2hlY2tvdXREYXRhW10pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRvdGFsSXRlbSA9IChkYXRhIHx8IFtdKS5maW5kKGl0ZW0gPT4gaXRlbS50eXBlID09ICd0b3RhbCcpO1xuICAgICAgICAgICAgdGhpcy50b3RhbF9hbW91bnQgPSB0b3RhbEl0ZW0gPyB0b3RhbEl0ZW0uYW1vdW50IDogMDtcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAoIXRoaXMuY29tcGFjdFBheW1lbnRWaWV3KSB7XG4gICAgICAgICAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLmdldFBheW1lbnRNZXRob2RzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS5zdGF0ZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhZGRyZXNzRGF0YSA9IHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldFN0ZXBEYXRhKCdhZGRyZXNzJyk7XG4gICAgICAgICAgICAgICAgaWYgKCFhZGRyZXNzRGF0YSkgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KGFkZHJlc3NEYXRhKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sYXN0QWRkcmVzc0tleSA9PT0ga2V5KSByZXR1cm47XG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0QWRkcmVzc0tleSA9IGtleTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jaGVja291dFNlcnZpY2Uuc3RhdGUkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuY29tcGFjdFBheW1lbnRWaWV3KSByZXR1cm47XG4gICAgICAgICAgICB0aGlzLnBheW1lbnRMb2NrZWQgPSAhdGhpcy5jaGVja291dFNlcnZpY2UuaXNTdGVwUmVhZHkoJ3NoaXBtZW50Jyk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS5zdGF0ZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5jb21wYWN0UGF5bWVudFZpZXcpIHJldHVybjtcbiAgICAgICAgICAgIGlmICghdGhpcy5jaGVja291dFNlcnZpY2UuaXNTdGVwUmVhZHkoJ3BheW1lbnQnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0U2F2ZWRNZXRob2RDb2RlKG51bGwpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHN0ZXBEYXRhOiBhbnkgPSB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRTdGVwRGF0YSgncGF5bWVudCcgYXMgYW55KTtcbiAgICAgICAgICAgIGNvbnN0IGNvZGUgPSBzdGVwRGF0YT8uY29kZSB8fCBzdGVwRGF0YT8ubWV0aG9kPy5jb2RlIHx8IHN0ZXBEYXRhPy5tZXRob2RfY29kZSB8fCBudWxsO1xuICAgICAgICAgICAgaWYgKGNvZGUgJiYgdGhpcy5sYXN0U2F2ZWRNZXRob2RDb2RlICE9PSBjb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTYXZlZE1ldGhvZENvZGUoY29kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY2FydFNlcnZpY2UuYWxsb3dBbnlQYXltZW50TWV0aG9kJC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFsbG93QW55UGF5bWVudE1ldGhvZCA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wYXltZW50U2VydmljZS5tZXRob2RzJC5zdWJzY3JpYmUobWV0aG9kcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnBheW1lbnRNZXRob2RzID0gbWV0aG9kcyB8fCBbXTtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbXBhY3RQYXltZW50Vmlldykge1xuICAgICAgICAgICAgICAgIHRoaXMuaW52YWxpZE1ldGhvZHNCYWNrZW5kID0ge307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUJhbGFuY2VCYXNlZEludmFsaWRNZXRob2RzKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNhcnRTZXJ2aWNlLmJhbGFuY2VDdXN0b21lciQuc3Vic2NyaWJlKGJhbGFuY2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5iYWxhbmNlQ3VzdG9tZXIgPSBiYWxhbmNlO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVCYWxhbmNlQmFzZWRJbnZhbGlkTWV0aG9kcygpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5tZXRob2RfZGF0YSQuc3Vic2NyaWJlKG1ldGhvZCA9PiB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRNZXRob2QgPSBtZXRob2Q7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmVjT25Jbml0KClcblxuICAgIH1cblxuICAgIGFsbERhdGEgPSAoKSA9PiAoe1xuICAgICAgICAuLi50aGlzLnBheW1lbnRTZXJ2aWNlLmdldFVzZXJEYXRhKCkuc2hpcHBpbmdBZGRyZXNzLFxuICAgICAgICAuLi50aGlzLnBheW1lbnRTZXJ2aWNlLmdldFNoaXBtZW50RGF0YSgpLFxuICAgIH0pO1xuXG4gICAgZ2V0UGF5bWVudEltYWdlVXJsID0gKGltYWdlOiBhbnkpOiBzdHJpbmcgPT4ge1xuICAgICAgICBjb25zdCByYXdQYXRoID0gaW1hZ2U/LnBhdGggfHwgaW1hZ2U/LnVybCB8fCBpbWFnZT8uc3JjIHx8IGltYWdlO1xuICAgICAgICBpZiAoIXJhd1BhdGggfHwgdHlwZW9mIHJhd1BhdGggIT09ICdzdHJpbmcnKSByZXR1cm4gJyc7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRQYXRoID0gcmF3UGF0aC5zdGFydHNXaXRoKCcvbWVkaWEvaW1hZ2UvJylcbiAgICAgICAgICAgID8gcmF3UGF0aC5yZXBsYWNlKCcvbWVkaWEvaW1hZ2UvJywgJycpXG4gICAgICAgICAgICA6IHJhd1BhdGg7XG4gICAgICAgIGlmICgvXmh0dHBzPzpcXC9cXC8vaS50ZXN0KG5vcm1hbGl6ZWRQYXRoKSkgcmV0dXJuIG5vcm1hbGl6ZWRQYXRoO1xuICAgICAgICByZXR1cm4gdGhpcy5jb25zdHMubWVkaWFVcmwoKSArIG5vcm1hbGl6ZWRQYXRoO1xuICAgIH1cblxuICAgIHNldEVycm9yID0gKG1lc3NhZ2UpID0+IHtcbiAgICAgICAgdGhpcy5lcnJvciA9IG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgZW1pdFJlc3VsdCA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgbWV0aG9kRGF0YSA9IHRoaXMubWV0aG9kRGF0YVN1YmplY3QuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgYXV0b0NvbXBsZXRlID0gdGhpcy5jb21wYWN0UGF5bWVudFZpZXcgJiYgdGhpcy5pc0F1dG9Db21wbGV0ZU1ldGhvZChtZXRob2REYXRhKTtcbiAgICAgICAgY29uc3Qgc3RlcERhdGEgPSBtZXRob2REYXRhID8geyAuLi5tZXRob2REYXRhLCBhdXRvQ29tcGxldGUgfSA6IG1ldGhvZERhdGE7XG4gICAgICAgIHRoaXMucGF5bWVudFNlcnZpY2Uuc2V0U3RlcFJlYWR5KHN0ZXBEYXRhLCBudWxsKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLnNldFNhdmVkTWV0aG9kQ29kZShtZXRob2REYXRhPy5jb2RlIHx8IG51bGwpO1xuICAgICAgICAgICAgaWYgKGF1dG9Db21wbGV0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZmluYWxpemVDaGVja291dEZyb21QYXltZW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmluYWxpemVDaGVja291dEZyb21QYXltZW50ID0gKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5hdXRvQ29tcGxldGluZykgcmV0dXJuO1xuICAgICAgICB0aGlzLmF1dG9Db21wbGV0aW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jaGVja291dFNlcnZpY2UuY29tcGxldGUoKS50aGVuKFxuICAgICAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzPy5vaykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2NoZWNrb3V0L29yZGVyX3N1Y2Nlc3MnXSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdHIuc2hvdygnb3BlcmF0aW9uLWVycm9yJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0b0NvbXBsZXRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLnNob3coJ29wZXJhdGlvbi1lcnJvcicpO1xuICAgICAgICAgICAgICAgIHRoaXMuYXV0b0NvbXBsZXRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzZXRMb2FkaW5nID0gKGVzdGFkbyA9IHRydWUpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nU3ViamVjdC5uZXh0KGVzdGFkbyk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHZlcmlmeVZhbGlkYXRlID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnNldExvYWRpbmcoKVxuICAgICAgICBzZXRUaW1lb3V0KHIgPT4gdGhpcy5lbWl0UmVzdWx0KCksIDEwMDApO1xuICAgIH1cblxuICAgIHNldE1ldGhvZCA9IGFzeW5jIChtZXRob2QpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuY29tcGFjdFBheW1lbnRWaWV3ICYmIHRoaXMuc2VsZWN0ZWRNZXRob2RDb2RlID09PSBtZXRob2Q/LmNvZGUgJiYgIXRoaXMubG9hZGluZ19pbnRlcm5hbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNvbXBhY3RQYXltZW50VmlldyAmJiB0aGlzLnBheW1lbnRMb2NrZWQpIHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RyLnNob3coJ3NoaXBtZW50LW1ldGhvZC1yZXF1aXJlZCcpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNvbXBhY3RQYXltZW50VmlldyAmJiB0aGlzLmlzUGF5bWVudE1ldGhvZERpc2FibGVkKG1ldGhvZCkpIHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RyLnNob3coJ3RoaXMtcGF5bWVudC1tZXRob2QtY2Fubm90LWJlLXVzZWQnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxvYWRpbmdfaW50ZXJuYWwgPSB0cnVlO1xuICAgICAgICB0aGlzLnZhbGlkYXRpbmdNZXRob2RDb2RlID0gbWV0aG9kPy5jb2RlIHx8IG51bGw7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNZXRob2RDb2RlID0gbWV0aG9kPy5jb2RlIHx8IG51bGw7XG4gICAgICAgIHRoaXMuZXZhbHVhdGVEaXJ0eUZvclNlbGVjdGlvbihtZXRob2Q/LmNvZGUgfHwgbnVsbCk7XG4gICAgICAgIHRoaXMubWV0aG9kRGF0YVN1YmplY3QubmV4dChudWxsKTtcbiAgICAgICAgdGhpcy5zaG93TWV0aG9kRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMucGF5bWVudFNlcnZpY2UucHV0UGF5bWVudChtZXRob2QuY29kZSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGJhbGFuY2VDdXN0b21lciA9IHJlc3VsdD8uYmFsYW5jZUN1c3RvbWVyO1xuXG4gICAgICAgICAgICBjb25zdCB0b3RhbHMgPSByZXN1bHQ/LnRvdGFscztcblxuICAgICAgICAgICAgdGhpcy5jYXJ0U2VydmljZS51cGRhdGVCYWxhbmNlQXR0cmlidXRlcyhiYWxhbmNlQ3VzdG9tZXIsIHRvdGFscz8udG90YWwpO1xuXG4gICAgICAgICAgICBjb25zdCBpc0JhbGFuY2VNZXRob2QgPSB0aGlzLmlzQmFsYW5jZUluQWNjb3VudChtZXRob2QuY29kZSk7XG4gICAgICAgICAgICBjb25zdCBhbGxvd0FueSA9IGJhbGFuY2VDdXN0b21lcj8uYWxsb3dBbnlQYXltZW50TWV0aG9kO1xuXG4gICAgICAgICAgICAvLyBWYWxpZGFjaW9uZXMgZGUgZXJyb3JcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAoYmFsYW5jZUN1c3RvbWVyICYmIGFsbG93QW55ID09PSBmYWxzZSAmJiAhaXNCYWxhbmNlTWV0aG9kKSB8fCAvLyBubyBwZXJtaXRlIG90cm8gbcOpdG9kb1xuICAgICAgICAgICAgICAgIChpc0JhbGFuY2VNZXRob2QgJiYgIWJhbGFuY2VDdXN0b21lcikgLy8gc2VsZWNjaW9uw7MgY3VlbnRhIGNvcnJpZW50ZSBwZXJvIG5vIGhheSBiYWxhbmNlXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZU1ldGhvZEVycm9yKCd0aGlzLXBheW1lbnQtbWV0aG9kLWNhbm5vdC1iZS11c2VkJywgbWV0aG9kKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jb21wYWN0UGF5bWVudFZpZXcgJiYgbWV0aG9kPy5jb2RlKSB7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVmFsaWRhY2nDs24gZGUgY3LDqWRpdG8gaW5zdWZpY2llbnRlIChzaSBubyBzZSBwdWVkZSBleGNlZGVyKVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGlzQmFsYW5jZU1ldGhvZCAmJlxuICAgICAgICAgICAgICAgIGJhbGFuY2VDdXN0b21lciAmJlxuICAgICAgICAgICAgICAgIHRvdGFscyAmJlxuICAgICAgICAgICAgICAgIGJhbGFuY2VDdXN0b21lci5hbGxvd0V4Y2VlZEJhbGFuY2UgPT09IGZhbHNlICYmXG4gICAgICAgICAgICAgICAgYmFsYW5jZUN1c3RvbWVyLmNyZWRpdEFtb3VudCA8IHRvdGFscy50b3RhbFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdHIuc2hvdygnaW5zdWZmaWNpZW50X2NyZWRpdCcpO1xuICAgICAgICAgICAgICAgIHRoaXMuYmFsYW5jZU1ldGhvZFJlamVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNCYWxhbmNlTWV0aG9kKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5iYWxhbmNlTWV0aG9kUmVqZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5tZXRob2REYXRhU3ViamVjdC5uZXh0KG1ldGhvZCk7XG4gICAgICAgICAgICAvLyB0aGlzLmlzTVAobWV0aG9kLmNvZGUpICYmIHRoaXMuZ2V0UHJlZmVyZW5jZSgpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nX2ludGVybmFsID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpbmdNZXRob2RDb2RlID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBwcml2YXRlIHNldERpcnR5U3RhdGUgPSAobmV4dERpcnR5OiBib29sZWFuKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmlzRGlydHkgPT09IG5leHREaXJ0eSkgcmV0dXJuO1xuICAgICAgICB0aGlzLmlzRGlydHkgPSBuZXh0RGlydHk7XG4gICAgICAgIHRoaXMuZGlydHlDaGFuZ2UuZW1pdCh0aGlzLmlzRGlydHkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U2F2ZWRNZXRob2RDb2RlID0gKGNvZGU6IHN0cmluZyB8IG51bGwpID0+IHtcbiAgICAgICAgdGhpcy5sYXN0U2F2ZWRNZXRob2RDb2RlID0gY29kZTtcbiAgICAgICAgdGhpcy5zZXREaXJ0eVN0YXRlKGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV2YWx1YXRlRGlydHlGb3JTZWxlY3Rpb24gPSAoY29kZTogc3RyaW5nIHwgbnVsbCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuY29tcGFjdFBheW1lbnRWaWV3IHx8IHRoaXMuc3VwcHJlc3NEaXJ0eSkgcmV0dXJuO1xuICAgICAgICBpZiAoIXRoaXMuY2hlY2tvdXRTZXJ2aWNlLmlzU3RlcFJlYWR5KCdwYXltZW50JykpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0RGlydHlTdGF0ZShmYWxzZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFjb2RlIHx8ICF0aGlzLmxhc3RTYXZlZE1ldGhvZENvZGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0RGlydHlTdGF0ZShmYWxzZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXREaXJ0eVN0YXRlKGNvZGUgIT09IHRoaXMubGFzdFNhdmVkTWV0aG9kQ29kZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGRpc2NhcmRDaGFuZ2VzID0gKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuY29tcGFjdFBheW1lbnRWaWV3KSByZXR1cm47XG4gICAgICAgIGlmICghdGhpcy5sYXN0U2F2ZWRNZXRob2RDb2RlKSB7XG4gICAgICAgICAgICB0aGlzLnNldERpcnR5U3RhdGUoZmFsc2UpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1ldGhvZCA9IHRoaXMucGF5bWVudE1ldGhvZHMuZmluZChtID0+IG0/LmNvZGUgPT09IHRoaXMubGFzdFNhdmVkTWV0aG9kQ29kZSkgfHwgbnVsbDtcbiAgICAgICAgdGhpcy5zdXBwcmVzc0RpcnR5ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1ldGhvZENvZGUgPSB0aGlzLmxhc3RTYXZlZE1ldGhvZENvZGU7XG4gICAgICAgIHRoaXMubWV0aG9kRGF0YVN1YmplY3QubmV4dChtZXRob2QpO1xuICAgICAgICB0aGlzLmN1cnJlbnRNZXRob2QgPSBtZXRob2Q7XG4gICAgICAgIHRoaXMuc2hvd01ldGhvZEVycm9yID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYmFsYW5jZU1ldGhvZFJlamVjdGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMudmFsaWRhdGluZ01ldGhvZENvZGUgPSBudWxsO1xuICAgICAgICBpZiAobWV0aG9kPy5jb2RlKSB7XG4gICAgICAgICAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLnB1dFBheW1lbnQobWV0aG9kLmNvZGUpXG4gICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1cHByZXNzRGlydHkgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXREaXJ0eVN0YXRlKGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3VwcHJlc3NEaXJ0eSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldERpcnR5U3RhdGUoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3VwcHJlc3NEaXJ0eSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNldERpcnR5U3RhdGUoZmFsc2UpO1xuICAgIH1cblxuICAgIGlzUGF5bWVudE1ldGhvZERpc2FibGVkID0gKG1ldGhvZDogYW55KSA9PiB7XG4gICAgICAgIGlmICghbWV0aG9kPy5jb2RlKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIHJldHVybiAhISh0aGlzLmludmFsaWRNZXRob2RzQmFsYW5jZVttZXRob2QuY29kZV0gfHwgdGhpcy5pbnZhbGlkTWV0aG9kc0JhY2tlbmRbbWV0aG9kLmNvZGVdKTtcbiAgICB9XG5cbiAgICB1cGRhdGVCYWxhbmNlQmFzZWRJbnZhbGlkTWV0aG9kcyA9ICgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbXBhY3RQYXltZW50VmlldykgcmV0dXJuO1xuICAgICAgICBjb25zdCBiYWxhbmNlID0gdGhpcy5iYWxhbmNlQ3VzdG9tZXI7XG4gICAgICAgIGNvbnN0IG5leHQ6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XG4gICAgICAgIGlmIChiYWxhbmNlKSB7XG4gICAgICAgICAgICBpZiAoYmFsYW5jZS5hbGxvd0FueVBheW1lbnRNZXRob2QgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXltZW50TWV0aG9kcy5mb3JFYWNoKG1ldGhvZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc0JhbGFuY2VJbkFjY291bnQobWV0aG9kLmNvZGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXh0W21ldGhvZC5jb2RlXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmludmFsaWRNZXRob2RzQmFsYW5jZSA9IG5leHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVNZXRob2RFcnJvcihtZXNzYWdlOiBzdHJpbmcsIG1ldGhvZDogYW55KSB7XG4gICAgICAgIHRoaXMuc2hvd01ldGhvZEVycm9yID0gdHJ1ZTtcbiAgICAgICAgdGhpcy50b2FzdHIuc2hvdyhtZXNzYWdlKTtcbiAgICAgICAgdGhpcy5tZXRob2REYXRhU3ViamVjdC5uZXh0KG1ldGhvZCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNZXRob2RDb2RlID0gbWV0aG9kPy5jb2RlIHx8IG51bGw7XG4gICAgfVxuXG4gICAgc2V0QWN0aXZlKGUpIHtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gZS50YXJnZXQucGFyZW50RWxlbWVudC5jaGlsZHJlbjtcbiAgICAgICAgZm9yIChjb25zdCBidXR0b24gb2YgcGFyZW50KSB7XG4gICAgICAgICAgICBpZiAoYnV0dG9uLmNsYXNzTGlzdC5jb250YWlucygnYWN0aXZlJykpIHtcbiAgICAgICAgICAgICAgICBidXR0b24uY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJylcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlLnRhcmdldC5jbGFzc0xpc3QuYWRkKFwiYWN0aXZlXCIpXG4gICAgfVxuXG4gICAgc3VibWl0Rm9ybSA9IChldmVudCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcIkVWRU5UXCIsIGV2ZW50KTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coJ1NFIFJPTU9QSU8gRUwgUFJFVkVOVCBERUZBVUxUJylcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgZ2V0UEsgPSAobWV0aG9kKSA9PiAobWV0aG9kLmNvbmZpZy5wdWJsaWNfa2V5IHx8IG1ldGhvZC5wdWJsaWNfa2V5KTtcblxuICAgIGlzUmVkaXJlY3RSZWRzeXMgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygncmVkc3lzX3JlZGlyZWN0Jyk7XG5cbiAgICBpc1JlZGlyZWN0Q2VjYUJhbmsgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnY2VjYV9iYW5rX3JlZGlyZWN0Jyk7XG5cbiAgICBpc01QID0gKGNvZGU6IHN0cmluZykgPT4gY29kZSAmJiBjb2RlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ21lcmNhZG9fcGFnbycpICYmICFjb2RlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2NyZWRpdCcpO1xuXG4gICAgaXNNUFRhcmpldGFEZUNyZWRpdG8gPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnY3JlZGl0Jyk7XG5cbiAgICBpc01ldGhvZE9mZmxpbmUgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnb2ZmbGluZScpO1xuXG4gICAgaXNQZXlQYWxFeHByZXNzID0gKGNvZGU6IHN0cmluZykgPT4gY29kZSAmJiBjb2RlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ3BheXBhbCcpICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnZXhwcmVzcycpO1xuXG4gICAgaXNNb2JiZXggPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnbW9iYmV4Jyk7XG5cbiAgICBpc0JhbmNhcmQgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnYmFuY2FyZCcpO1xuXG4gICAgaXNEZWNpZGlyID0gKGNvZGU6IHN0cmluZykgPT4gY29kZSAmJiBjb2RlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2RlY2lkaXInKTtcblxuICAgIGlzQ3VscWkgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnY3VscWknKTtcblxuICAgIGlzQmFua1RyYW5zZmVyID0gKGNvZGU6IHN0cmluZykgPT4gY29kZSAmJiBjb2RlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2JhbmtfdHJhbnNmZXInKVxuXG4gICAgaXNDYXRhc3RybyA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdjYXRhc3RybycpXG5cbiAgICBpc0JhbWJvbyA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdiYW1ib28nKVxuXG4gICAgaXNQbGFjZVRvUGF5ID0gKGNvZGU6IHN0cmluZykgPT4gY29kZSAmJiBjb2RlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ3BsYWNlX3RvX3BheScpXG5cbiAgICBpc0JhbGFuY2VJbkFjY291bnQgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnYmFsYW5jZV9pbl9hY2NvdW50JylcblxuICAgIGdldFBLQ3VscWkgPSBtZXRob2QgPT4ge1xuICAgICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJ2Vhc3ljb21tZXJjZXRlY2gnKVxuICAgICAgICAgICAgPyBtZXRob2QuY29uZmlnLnB1YmxpY190ZXN0aW5nX2tleVxuICAgICAgICAgICAgOiBtZXRob2QuY29uZmlnLnB1YmxpY19wcm9kdWN0aW9uX2tleVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNBdXRvQ29tcGxldGVNZXRob2QgPSAobWV0aG9kOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKCFtZXRob2Q/LmNvZGUpIHJldHVybiBmYWxzZTtcbiAgICAgICAgY29uc3QgY29kZSA9IG1ldGhvZC5jb2RlO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5pc01QKGNvZGUpIHx8XG4gICAgICAgICAgICB0aGlzLmlzUmVkaXJlY3RSZWRzeXMoY29kZSkgfHxcbiAgICAgICAgICAgIHRoaXMuaXNSZWRpcmVjdENlY2FCYW5rKGNvZGUpIHx8XG4gICAgICAgICAgICB0aGlzLmlzUGV5UGFsRXhwcmVzcyhjb2RlKSB8fFxuICAgICAgICAgICAgdGhpcy5pc1BsYWNlVG9QYXkoY29kZSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
|
|
489
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1lYXN5Y29tbWVyY2UvIiwic291cmNlcyI6WyJsaWIvZWMtY29tcG9uZW50L2NoZWNrb3V0LWVjL3BheW1lbnQtZWMvcGF5bWVudC1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQWlCLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBU2pEO0lBQXdDLHNDQUFlO0lBcUNuRCw0QkFBc0IsUUFBbUIsRUFBWSxNQUFvQixFQUM5RCxjQUE4QixFQUFTLGVBQWdDLEVBQ3RFLFdBQXdCLEVBQVUsTUFBaUIsRUFBVSxNQUFjO1FBRnZGLFlBR0ksaUJBQU8sU0FFVjtRQUxxQixjQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVksWUFBTSxHQUFOLE1BQU0sQ0FB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QUFFO3VEQUFTO0lBQ1I7UUFBUixLQUFLLEVBQUU7a0VBQXFDO0lBQ25DO1FBQVQsTUFBTSxFQUFFOzJEQUEyQztJQUN4QjtRQUEzQixTQUFTLENBQUMsZUFBZSxDQUFDO2tFQUEwQztJQUw1RCxrQkFBa0I7UUFQOUIsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQixncnJCQUF3QztZQUV4QyxTQUFTLEVBQUUsQ0FBQyxjQUFjLENBQUM7O1NBRTlCLENBQUM7T0FDVyxrQkFBa0IsQ0EyWDlCO0lBQUQseUJBQUM7Q0FBQSxBQTNYRCxDQUF3QyxlQUFlLEdBMlh0RDtTQTNYWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFJlbmRlcmVyMiwgRWxlbWVudFJlZiwgVmlld0NoaWxkLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21wb25lbnRIZWxwZXIgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2NvbXBvbmVudC1oZWxwZXInO1xuaW1wb3J0IHsgQ2hlY2tvdXREYXRhIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9jaGVja291dC1kYXRhJztcbmltcG9ydCB7IENoZWNrb3V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NoZWNrb3V0L2NoZWNrb3V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUGF5bWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jaGVja291dC9wYXltZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBDb25zdGFudHMgfSBmcm9tICcuLi8uLi8uLi9jb3JlLmNvbnN0cyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLXBheW1lbnQtZWMnLFxuICAgIHRlbXBsYXRlVXJsOiAncGF5bWVudC1lYy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ3BheW1lbnQtZWMuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtQYXltZW50U2VydmljZV1cblxufSlcbmV4cG9ydCBjbGFzcyBQYXltZW50RWNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRIZWxwZXIgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCB7XG5cbiAgICBASW5wdXQoKSBzdGVwX2lkO1xuICAgIEBJbnB1dCgpIGNvbXBhY3RQYXltZW50VmlldzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBPdXRwdXQoKSBkaXJ0eUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBAVmlld0NoaWxkKCdmb3JtQ29udGFpbmVyJykgcHJvdGVjdGVkIG1lcmNhZG9wYWdvX2J1dHRvbjogRWxlbWVudFJlZjtcbiAgICBwcm90ZWN0ZWQgbWV0aG9kRGF0YVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG4gICAgcHJpdmF0ZSBsb2FkaW5nU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByb3RlY3RlZCBwcmVmZXJlbmNlO1xuXG5cbiAgICBwdWJsaWMgbG9hZGluZ19pbnRlcm5hbCA9IGZhbHNlO1xuICAgIHB1YmxpYyBvcmRlcl9pZDtcbiAgICBwdWJsaWMgZXJyb3I7XG4gICAgcHVibGljIGxvYWRpbmcgPSB0cnVlO1xuICAgIHB1YmxpYyBsb2FkaW5nX2ludGVybmFsX21wID0gZmFsc2U7XG4gICAgcHVibGljIG1ldGhvZF9kYXRhJCA9IHRoaXMubWV0aG9kRGF0YVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHVibGljIGxvYWRpbmckID0gdGhpcy5sb2FkaW5nU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICBwdWJsaWMgdG90YWxfYW1vdW50O1xuICAgIHB1YmxpYyBhbGxvd0FueVBheW1lbnRNZXRob2Q6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcbiAgICBwdWJsaWMgYmFsYW5jZU1ldGhvZFJlamVjdGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIHNob3dNZXRob2RFcnJvciA9IGZhbHNlO1xuICAgIHB1YmxpYyBzZWxlY3RlZE1ldGhvZENvZGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyBjdXJyZW50TWV0aG9kOiBhbnkgPSBudWxsO1xuICAgIHByaXZhdGUgbGFzdEFkZHJlc3NLZXk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyB2YWxpZGF0aW5nTWV0aG9kQ29kZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIGludmFsaWRNZXRob2RzQmFsYW5jZTogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcbiAgICBwdWJsaWMgaW52YWxpZE1ldGhvZHNCYWNrZW5kOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xuICAgIHByaXZhdGUgcGF5bWVudE1ldGhvZHM6IGFueVtdID0gW107XG4gICAgcHJpdmF0ZSBiYWxhbmNlQ3VzdG9tZXI6IGFueSA9IG51bGw7XG4gICAgcHVibGljIHBheW1lbnRMb2NrZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIGF1dG9Db21wbGV0aW5nID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBsYXN0U2F2ZWRNZXRob2RDb2RlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIGlzRGlydHkgPSBmYWxzZTtcbiAgICBwcml2YXRlIHN1cHByZXNzRGlydHkgPSBmYWxzZTtcblxuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByb3RlY3RlZCB0b2FzdHI6IFRvYXN0U2VydmljZSxcbiAgICAgICAgcHVibGljIHBheW1lbnRTZXJ2aWNlOiBQYXltZW50U2VydmljZSwgcHVibGljIGNoZWNrb3V0U2VydmljZTogQ2hlY2tvdXRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSwgcHJpdmF0ZSBjb25zdHM6IENvbnN0YW50cywgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmVjT25Db25zdHJ1Y3QoKVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCkgeyB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5wYXltZW50U2VydmljZS5pbml0aWFsaXplKHRoaXMuc3RlcF9pZCk7XG4gICAgICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmFzb2NpYXRlZERhdGEkLnN1YnNjcmliZSgoZGF0YTogQ2hlY2tvdXREYXRhW10pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRvdGFsSXRlbSA9IChkYXRhIHx8IFtdKS5maW5kKGl0ZW0gPT4gaXRlbS50eXBlID09ICd0b3RhbCcpO1xuICAgICAgICAgICAgdGhpcy50b3RhbF9hbW91bnQgPSB0b3RhbEl0ZW0gPyB0b3RhbEl0ZW0uYW1vdW50IDogMDtcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAoIXRoaXMuY29tcGFjdFBheW1lbnRWaWV3KSB7XG4gICAgICAgICAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLmdldFBheW1lbnRNZXRob2RzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS5zdGF0ZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhZGRyZXNzRGF0YSA9IHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldFN0ZXBEYXRhKCdhZGRyZXNzJyk7XG4gICAgICAgICAgICAgICAgaWYgKCFhZGRyZXNzRGF0YSkgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KGFkZHJlc3NEYXRhKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sYXN0QWRkcmVzc0tleSA9PT0ga2V5KSByZXR1cm47XG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0QWRkcmVzc0tleSA9IGtleTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jaGVja291dFNlcnZpY2Uuc3RhdGUkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuY29tcGFjdFBheW1lbnRWaWV3KSByZXR1cm47XG4gICAgICAgICAgICB0aGlzLnBheW1lbnRMb2NrZWQgPSAhdGhpcy5jaGVja291dFNlcnZpY2UuaXNTdGVwUmVhZHkoJ3NoaXBtZW50Jyk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS5zdGF0ZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5jb21wYWN0UGF5bWVudFZpZXcpIHJldHVybjtcbiAgICAgICAgICAgIGlmICghdGhpcy5jaGVja291dFNlcnZpY2UuaXNTdGVwUmVhZHkoJ3BheW1lbnQnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0U2F2ZWRNZXRob2RDb2RlKG51bGwpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHN0ZXBEYXRhOiBhbnkgPSB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRTdGVwRGF0YSgncGF5bWVudCcgYXMgYW55KTtcbiAgICAgICAgICAgIGNvbnN0IGNvZGUgPSBzdGVwRGF0YT8uY29kZSB8fCBzdGVwRGF0YT8ubWV0aG9kPy5jb2RlIHx8IHN0ZXBEYXRhPy5tZXRob2RfY29kZSB8fCBudWxsO1xuICAgICAgICAgICAgaWYgKGNvZGUgJiYgdGhpcy5sYXN0U2F2ZWRNZXRob2RDb2RlICE9PSBjb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTYXZlZE1ldGhvZENvZGUoY29kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY2FydFNlcnZpY2UuYWxsb3dBbnlQYXltZW50TWV0aG9kJC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFsbG93QW55UGF5bWVudE1ldGhvZCA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wYXltZW50U2VydmljZS5tZXRob2RzJC5zdWJzY3JpYmUobWV0aG9kcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnBheW1lbnRNZXRob2RzID0gbWV0aG9kcyB8fCBbXTtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbXBhY3RQYXltZW50Vmlldykge1xuICAgICAgICAgICAgICAgIHRoaXMuaW52YWxpZE1ldGhvZHNCYWNrZW5kID0ge307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUJhbGFuY2VCYXNlZEludmFsaWRNZXRob2RzKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNhcnRTZXJ2aWNlLmJhbGFuY2VDdXN0b21lciQuc3Vic2NyaWJlKGJhbGFuY2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5iYWxhbmNlQ3VzdG9tZXIgPSBiYWxhbmNlO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVCYWxhbmNlQmFzZWRJbnZhbGlkTWV0aG9kcygpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5tZXRob2RfZGF0YSQuc3Vic2NyaWJlKG1ldGhvZCA9PiB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRNZXRob2QgPSBtZXRob2Q7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmVjT25Jbml0KClcblxuICAgIH1cblxuICAgIGFsbERhdGEgPSAoKSA9PiAoe1xuICAgICAgICAuLi50aGlzLnBheW1lbnRTZXJ2aWNlLmdldFVzZXJEYXRhKCkuc2hpcHBpbmdBZGRyZXNzLFxuICAgICAgICAuLi50aGlzLnBheW1lbnRTZXJ2aWNlLmdldFNoaXBtZW50RGF0YSgpLFxuICAgIH0pO1xuXG4gICAgZ2V0UGF5bWVudEltYWdlVXJsID0gKGltYWdlOiBhbnkpOiBzdHJpbmcgPT4ge1xuICAgICAgICBjb25zdCByYXdQYXRoID0gaW1hZ2U/LnBhdGggfHwgaW1hZ2U/LnVybCB8fCBpbWFnZT8uc3JjIHx8IGltYWdlO1xuICAgICAgICBpZiAoIXJhd1BhdGggfHwgdHlwZW9mIHJhd1BhdGggIT09ICdzdHJpbmcnKSByZXR1cm4gJyc7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRQYXRoID0gcmF3UGF0aC5zdGFydHNXaXRoKCcvbWVkaWEvaW1hZ2UvJylcbiAgICAgICAgICAgID8gcmF3UGF0aC5yZXBsYWNlKCcvbWVkaWEvaW1hZ2UvJywgJycpXG4gICAgICAgICAgICA6IHJhd1BhdGg7XG4gICAgICAgIGlmICgvXmh0dHBzPzpcXC9cXC8vaS50ZXN0KG5vcm1hbGl6ZWRQYXRoKSkgcmV0dXJuIG5vcm1hbGl6ZWRQYXRoO1xuICAgICAgICByZXR1cm4gdGhpcy5jb25zdHMubWVkaWFVcmwoKSArIG5vcm1hbGl6ZWRQYXRoO1xuICAgIH1cblxuICAgIHNldEVycm9yID0gKG1lc3NhZ2UpID0+IHtcbiAgICAgICAgdGhpcy5lcnJvciA9IG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgZW1pdFJlc3VsdCA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgbWV0aG9kRGF0YSA9IHRoaXMubWV0aG9kRGF0YVN1YmplY3QuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgYXV0b0NvbXBsZXRlID0gdGhpcy5jb21wYWN0UGF5bWVudFZpZXcgJiYgdGhpcy5pc0F1dG9Db21wbGV0ZU1ldGhvZChtZXRob2REYXRhKTtcbiAgICAgICAgY29uc3Qgc3RlcERhdGEgPSBtZXRob2REYXRhID8geyAuLi5tZXRob2REYXRhLCBhdXRvQ29tcGxldGUgfSA6IG1ldGhvZERhdGE7XG4gICAgICAgIHRoaXMucGF5bWVudFNlcnZpY2Uuc2V0U3RlcFJlYWR5KHN0ZXBEYXRhLCBudWxsKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLnNldFNhdmVkTWV0aG9kQ29kZShtZXRob2REYXRhPy5jb2RlIHx8IG51bGwpO1xuICAgICAgICAgICAgaWYgKGF1dG9Db21wbGV0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZmluYWxpemVDaGVja291dEZyb21QYXltZW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmluYWxpemVDaGVja291dEZyb21QYXltZW50ID0gKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5hdXRvQ29tcGxldGluZykgcmV0dXJuO1xuICAgICAgICB0aGlzLmF1dG9Db21wbGV0aW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jaGVja291dFNlcnZpY2UuY29tcGxldGUoKS50aGVuKFxuICAgICAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzPy5vaykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2NoZWNrb3V0L29yZGVyX3N1Y2Nlc3MnXSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdHIuc2hvdygnb3BlcmF0aW9uLWVycm9yJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0b0NvbXBsZXRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLnNob3coJ29wZXJhdGlvbi1lcnJvcicpO1xuICAgICAgICAgICAgICAgIHRoaXMuYXV0b0NvbXBsZXRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzZXRMb2FkaW5nID0gKGVzdGFkbyA9IHRydWUpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nU3ViamVjdC5uZXh0KGVzdGFkbyk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHZlcmlmeVZhbGlkYXRlID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnNldExvYWRpbmcoKTtcbiAgICAgICAgdGhpcy5lbWl0UmVzdWx0KCk7XG4gICAgfVxuXG4gICAgc2V0TWV0aG9kID0gYXN5bmMgKG1ldGhvZCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5jb21wYWN0UGF5bWVudFZpZXcgJiYgdGhpcy5zZWxlY3RlZE1ldGhvZENvZGUgPT09IG1ldGhvZD8uY29kZSAmJiAhdGhpcy5sb2FkaW5nX2ludGVybmFsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY29tcGFjdFBheW1lbnRWaWV3ICYmIHRoaXMucGF5bWVudExvY2tlZCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdHIuc2hvdygnc2hpcG1lbnQtbWV0aG9kLXJlcXVpcmVkJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY29tcGFjdFBheW1lbnRWaWV3ICYmIHRoaXMuaXNQYXltZW50TWV0aG9kRGlzYWJsZWQobWV0aG9kKSkge1xuICAgICAgICAgICAgdGhpcy50b2FzdHIuc2hvdygndGhpcy1wYXltZW50LW1ldGhvZC1jYW5ub3QtYmUtdXNlZCcpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9hZGluZ19pbnRlcm5hbCA9IHRydWU7XG4gICAgICAgIHRoaXMudmFsaWRhdGluZ01ldGhvZENvZGUgPSBtZXRob2Q/LmNvZGUgfHwgbnVsbDtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1ldGhvZENvZGUgPSBtZXRob2Q/LmNvZGUgfHwgbnVsbDtcbiAgICAgICAgdGhpcy5ldmFsdWF0ZURpcnR5Rm9yU2VsZWN0aW9uKG1ldGhvZD8uY29kZSB8fCBudWxsKTtcbiAgICAgICAgdGhpcy5tZXRob2REYXRhU3ViamVjdC5uZXh0KG51bGwpO1xuICAgICAgICB0aGlzLnNob3dNZXRob2RFcnJvciA9IGZhbHNlO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5wYXltZW50U2VydmljZS5wdXRQYXltZW50KG1ldGhvZC5jb2RlKTtcblxuICAgICAgICAgICAgY29uc3QgYmFsYW5jZUN1c3RvbWVyID0gcmVzdWx0Py5iYWxhbmNlQ3VzdG9tZXI7XG5cbiAgICAgICAgICAgIGNvbnN0IHRvdGFscyA9IHJlc3VsdD8udG90YWxzO1xuXG4gICAgICAgICAgICB0aGlzLmNhcnRTZXJ2aWNlLnVwZGF0ZUJhbGFuY2VBdHRyaWJ1dGVzKGJhbGFuY2VDdXN0b21lciwgdG90YWxzPy50b3RhbCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGlzQmFsYW5jZU1ldGhvZCA9IHRoaXMuaXNCYWxhbmNlSW5BY2NvdW50KG1ldGhvZC5jb2RlKTtcbiAgICAgICAgICAgIGNvbnN0IGFsbG93QW55ID0gYmFsYW5jZUN1c3RvbWVyPy5hbGxvd0FueVBheW1lbnRNZXRob2Q7XG5cbiAgICAgICAgICAgIC8vIFZhbGlkYWNpb25lcyBkZSBlcnJvclxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIChiYWxhbmNlQ3VzdG9tZXIgJiYgYWxsb3dBbnkgPT09IGZhbHNlICYmICFpc0JhbGFuY2VNZXRob2QpIHx8IC8vIG5vIHBlcm1pdGUgb3RybyBtw6l0b2RvXG4gICAgICAgICAgICAgICAgKGlzQmFsYW5jZU1ldGhvZCAmJiAhYmFsYW5jZUN1c3RvbWVyKSAvLyBzZWxlY2Npb27DsyBjdWVudGEgY29ycmllbnRlIHBlcm8gbm8gaGF5IGJhbGFuY2VcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlTWV0aG9kRXJyb3IoJ3RoaXMtcGF5bWVudC1tZXRob2QtY2Fubm90LWJlLXVzZWQnLCBtZXRob2QpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbXBhY3RQYXltZW50VmlldyAmJiBtZXRob2Q/LmNvZGUpIHtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBWYWxpZGFjacOzbiBkZSBjcsOpZGl0byBpbnN1ZmljaWVudGUgKHNpIG5vIHNlIHB1ZWRlIGV4Y2VkZXIpXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgaXNCYWxhbmNlTWV0aG9kICYmXG4gICAgICAgICAgICAgICAgYmFsYW5jZUN1c3RvbWVyICYmXG4gICAgICAgICAgICAgICAgdG90YWxzICYmXG4gICAgICAgICAgICAgICAgYmFsYW5jZUN1c3RvbWVyLmFsbG93RXhjZWVkQmFsYW5jZSA9PT0gZmFsc2UgJiZcbiAgICAgICAgICAgICAgICBiYWxhbmNlQ3VzdG9tZXIuY3JlZGl0QW1vdW50IDwgdG90YWxzLnRvdGFsXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5zaG93KCdpbnN1ZmZpY2llbnRfY3JlZGl0Jyk7XG4gICAgICAgICAgICAgICAgdGhpcy5iYWxhbmNlTWV0aG9kUmVqZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpc0JhbGFuY2VNZXRob2QpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJhbGFuY2VNZXRob2RSZWplY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLm1ldGhvZERhdGFTdWJqZWN0Lm5leHQobWV0aG9kKTtcbiAgICAgICAgICAgIC8vIHRoaXMuaXNNUChtZXRob2QuY29kZSkgJiYgdGhpcy5nZXRQcmVmZXJlbmNlKCk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmdfaW50ZXJuYWwgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGluZ01ldGhvZENvZGUgPSBudWxsO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHByaXZhdGUgc2V0RGlydHlTdGF0ZSA9IChuZXh0RGlydHk6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNEaXJ0eSA9PT0gbmV4dERpcnR5KSByZXR1cm47XG4gICAgICAgIHRoaXMuaXNEaXJ0eSA9IG5leHREaXJ0eTtcbiAgICAgICAgdGhpcy5kaXJ0eUNoYW5nZS5lbWl0KHRoaXMuaXNEaXJ0eSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTYXZlZE1ldGhvZENvZGUgPSAoY29kZTogc3RyaW5nIHwgbnVsbCkgPT4ge1xuICAgICAgICB0aGlzLmxhc3RTYXZlZE1ldGhvZENvZGUgPSBjb2RlO1xuICAgICAgICB0aGlzLnNldERpcnR5U3RhdGUoZmFsc2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZXZhbHVhdGVEaXJ0eUZvclNlbGVjdGlvbiA9IChjb2RlOiBzdHJpbmcgfCBudWxsKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5jb21wYWN0UGF5bWVudFZpZXcgfHwgdGhpcy5zdXBwcmVzc0RpcnR5KSByZXR1cm47XG4gICAgICAgIGlmICghdGhpcy5jaGVja291dFNlcnZpY2UuaXNTdGVwUmVhZHkoJ3BheW1lbnQnKSkge1xuICAgICAgICAgICAgdGhpcy5zZXREaXJ0eVN0YXRlKGZhbHNlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNvZGUgfHwgIXRoaXMubGFzdFNhdmVkTWV0aG9kQ29kZSkge1xuICAgICAgICAgICAgdGhpcy5zZXREaXJ0eVN0YXRlKGZhbHNlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldERpcnR5U3RhdGUoY29kZSAhPT0gdGhpcy5sYXN0U2F2ZWRNZXRob2RDb2RlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGlzY2FyZENoYW5nZXMgPSAoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5jb21wYWN0UGF5bWVudFZpZXcpIHJldHVybjtcbiAgICAgICAgaWYgKCF0aGlzLmxhc3RTYXZlZE1ldGhvZENvZGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0RGlydHlTdGF0ZShmYWxzZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWV0aG9kID0gdGhpcy5wYXltZW50TWV0aG9kcy5maW5kKG0gPT4gbT8uY29kZSA9PT0gdGhpcy5sYXN0U2F2ZWRNZXRob2RDb2RlKSB8fCBudWxsO1xuICAgICAgICB0aGlzLnN1cHByZXNzRGlydHkgPSB0cnVlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTWV0aG9kQ29kZSA9IHRoaXMubGFzdFNhdmVkTWV0aG9kQ29kZTtcbiAgICAgICAgdGhpcy5tZXRob2REYXRhU3ViamVjdC5uZXh0KG1ldGhvZCk7XG4gICAgICAgIHRoaXMuY3VycmVudE1ldGhvZCA9IG1ldGhvZDtcbiAgICAgICAgdGhpcy5zaG93TWV0aG9kRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5iYWxhbmNlTWV0aG9kUmVqZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy52YWxpZGF0aW5nTWV0aG9kQ29kZSA9IG51bGw7XG4gICAgICAgIGlmIChtZXRob2Q/LmNvZGUpIHtcbiAgICAgICAgICAgIHRoaXMucGF5bWVudFNlcnZpY2UucHV0UGF5bWVudChtZXRob2QuY29kZSlcbiAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3VwcHJlc3NEaXJ0eSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldERpcnR5U3RhdGUoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdXBwcmVzc0RpcnR5ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0RGlydHlTdGF0ZShmYWxzZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdXBwcmVzc0RpcnR5ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2V0RGlydHlTdGF0ZShmYWxzZSk7XG4gICAgfVxuXG4gICAgaXNQYXltZW50TWV0aG9kRGlzYWJsZWQgPSAobWV0aG9kOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKCFtZXRob2Q/LmNvZGUpIHJldHVybiBmYWxzZTtcbiAgICAgICAgcmV0dXJuICEhKHRoaXMuaW52YWxpZE1ldGhvZHNCYWxhbmNlW21ldGhvZC5jb2RlXSB8fCB0aGlzLmludmFsaWRNZXRob2RzQmFja2VuZFttZXRob2QuY29kZV0pO1xuICAgIH1cblxuICAgIHVwZGF0ZUJhbGFuY2VCYXNlZEludmFsaWRNZXRob2RzID0gKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuY29tcGFjdFBheW1lbnRWaWV3KSByZXR1cm47XG4gICAgICAgIGNvbnN0IGJhbGFuY2UgPSB0aGlzLmJhbGFuY2VDdXN0b21lcjtcbiAgICAgICAgY29uc3QgbmV4dDogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcbiAgICAgICAgaWYgKGJhbGFuY2UpIHtcbiAgICAgICAgICAgIGlmIChiYWxhbmNlLmFsbG93QW55UGF5bWVudE1ldGhvZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBheW1lbnRNZXRob2RzLmZvckVhY2gobWV0aG9kID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzQmFsYW5jZUluQWNjb3VudChtZXRob2QuY29kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHRbbWV0aG9kLmNvZGVdID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW52YWxpZE1ldGhvZHNCYWxhbmNlID0gbmV4dDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZU1ldGhvZEVycm9yKG1lc3NhZ2U6IHN0cmluZywgbWV0aG9kOiBhbnkpIHtcbiAgICAgICAgdGhpcy5zaG93TWV0aG9kRXJyb3IgPSB0cnVlO1xuICAgICAgICB0aGlzLnRvYXN0ci5zaG93KG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLm1ldGhvZERhdGFTdWJqZWN0Lm5leHQobWV0aG9kKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1ldGhvZENvZGUgPSBtZXRob2Q/LmNvZGUgfHwgbnVsbDtcbiAgICB9XG5cbiAgICBzZXRBY3RpdmUoZSkge1xuICAgICAgICBjb25zdCBwYXJlbnQgPSBlLnRhcmdldC5wYXJlbnRFbGVtZW50LmNoaWxkcmVuO1xuICAgICAgICBmb3IgKGNvbnN0IGJ1dHRvbiBvZiBwYXJlbnQpIHtcbiAgICAgICAgICAgIGlmIChidXR0b24uY2xhc3NMaXN0LmNvbnRhaW5zKCdhY3RpdmUnKSkge1xuICAgICAgICAgICAgICAgIGJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGUudGFyZ2V0LmNsYXNzTGlzdC5hZGQoXCJhY3RpdmVcIilcbiAgICB9XG5cbiAgICBzdWJtaXRGb3JtID0gKGV2ZW50KSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiRVZFTlRcIiwgZXZlbnQpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy9jb25zb2xlLmxvZygnU0UgUk9NT1BJTyBFTCBQUkVWRU5UIERFRkFVTFQnKVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBnZXRQSyA9IChtZXRob2QpID0+IChtZXRob2QuY29uZmlnLnB1YmxpY19rZXkgfHwgbWV0aG9kLnB1YmxpY19rZXkpO1xuXG4gICAgaXNSZWRpcmVjdFJlZHN5cyA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdyZWRzeXNfcmVkaXJlY3QnKTtcblxuICAgIGlzUmVkaXJlY3RDZWNhQmFuayA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdjZWNhX2JhbmtfcmVkaXJlY3QnKTtcblxuICAgIGlzTVAgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnbWVyY2Fkb19wYWdvJykgJiYgIWNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnY3JlZGl0Jyk7XG5cbiAgICBpc01QVGFyamV0YURlQ3JlZGl0byA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdjcmVkaXQnKTtcblxuICAgIGlzTWV0aG9kT2ZmbGluZSA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdvZmZsaW5lJyk7XG5cbiAgICBpc1BleVBhbEV4cHJlc3MgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygncGF5cGFsJykgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdleHByZXNzJyk7XG5cbiAgICBpc01vYmJleCA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdtb2JiZXgnKTtcblxuICAgIGlzQmFuY2FyZCA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdiYW5jYXJkJyk7XG5cbiAgICBpc0RlY2lkaXIgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnZGVjaWRpcicpO1xuXG4gICAgaXNDdWxxaSA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdjdWxxaScpO1xuXG4gICAgaXNCYW5rVHJhbnNmZXIgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnYmFua190cmFuc2ZlcicpXG5cbiAgICBpc0NhdGFzdHJvID0gKGNvZGU6IHN0cmluZykgPT4gY29kZSAmJiBjb2RlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2NhdGFzdHJvJylcblxuICAgIGlzQmFtYm9vID0gKGNvZGU6IHN0cmluZykgPT4gY29kZSAmJiBjb2RlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2JhbWJvbycpXG5cbiAgICBpc1BsYWNlVG9QYXkgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygncGxhY2VfdG9fcGF5JylcblxuICAgIGlzQmFsYW5jZUluQWNjb3VudCA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdiYWxhbmNlX2luX2FjY291bnQnKVxuXG4gICAgZ2V0UEtDdWxxaSA9IG1ldGhvZCA9PiB7XG4gICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24uaHJlZi5pbmNsdWRlcygnZWFzeWNvbW1lcmNldGVjaCcpXG4gICAgICAgICAgICA/IG1ldGhvZC5jb25maWcucHVibGljX3Rlc3Rpbmdfa2V5XG4gICAgICAgICAgICA6IG1ldGhvZC5jb25maWcucHVibGljX3Byb2R1Y3Rpb25fa2V5XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0F1dG9Db21wbGV0ZU1ldGhvZCA9IChtZXRob2Q6IGFueSkgPT4ge1xuICAgICAgICBpZiAoIW1ldGhvZD8uY29kZSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjb25zdCBjb2RlID0gbWV0aG9kLmNvZGU7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmlzTVAoY29kZSkgfHxcbiAgICAgICAgICAgIHRoaXMuaXNSZWRpcmVjdFJlZHN5cyhjb2RlKSB8fFxuICAgICAgICAgICAgdGhpcy5pc1JlZGlyZWN0Q2VjYUJhbmsoY29kZSkgfHxcbiAgICAgICAgICAgIHRoaXMuaXNQZXlQYWxFeHByZXNzKGNvZGUpIHx8XG4gICAgICAgICAgICB0aGlzLmlzUGxhY2VUb1BheShjb2RlKVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -17,7 +17,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
17
17
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
18
18
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
19
19
|
};
|
|
20
|
-
import { Component, Output, OnInit, ViewChild,
|
|
20
|
+
import { Component, Output, OnInit, ViewChild, Input, Renderer2, OnChanges, EventEmitter, OnDestroy, TemplateRef, HostListener } from '@angular/core';
|
|
21
21
|
import { ActivatedRoute } from '@angular/router';
|
|
22
22
|
import { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';
|
|
23
23
|
import { ConnectionService } from '../../../api/connection.service';
|
|
@@ -27,14 +27,13 @@ import { CartService } from '../../../services/cart.service';
|
|
|
27
27
|
import { ComponentHelper } from '../../../classes/component-helper';
|
|
28
28
|
var RedSysRedirectEcComponent = /** @class */ (function (_super) {
|
|
29
29
|
__extends(RedSysRedirectEcComponent, _super);
|
|
30
|
-
function RedSysRedirectEcComponent(renderer, connection, toastrService, consts, cartService,
|
|
30
|
+
function RedSysRedirectEcComponent(renderer, connection, toastrService, consts, cartService, activedRoute, modalService) {
|
|
31
31
|
var _this = _super.call(this) || this;
|
|
32
32
|
_this.renderer = renderer;
|
|
33
33
|
_this.connection = connection;
|
|
34
34
|
_this.toastrService = toastrService;
|
|
35
35
|
_this.consts = consts;
|
|
36
36
|
_this.cartService = cartService;
|
|
37
|
-
_this.toastr = toastr;
|
|
38
37
|
_this.activedRoute = activedRoute;
|
|
39
38
|
_this.modalService = modalService;
|
|
40
39
|
_this.method = null;
|
|
@@ -44,41 +43,44 @@ var RedSysRedirectEcComponent = /** @class */ (function (_super) {
|
|
|
44
43
|
_this.loading = true;
|
|
45
44
|
_this.isDobleAuth = false;
|
|
46
45
|
_this.urls = [];
|
|
47
|
-
_this.
|
|
46
|
+
_this.closeModalReason = ''; // Renombrado para evitar confusión
|
|
48
47
|
_this.dataRedirect = function () { return _this.consts.getUrlBase() + 'shop-api/' + _this.consts.getChannel() + '/redsys/redirect/' + _this.cartService.cart_token + '/process-payment'; };
|
|
49
48
|
_this.clearStorageState = function () {
|
|
50
49
|
sessionStorage.removeItem('state');
|
|
51
50
|
localStorage.removeItem('state');
|
|
52
51
|
};
|
|
52
|
+
// Método que se llama desde la X de la cabecera del modal en el HTML
|
|
53
53
|
_this.clickClose = function () {
|
|
54
|
-
_this.
|
|
55
|
-
_this.modalRef
|
|
56
|
-
|
|
54
|
+
_this.closeModalReason = 'cancel';
|
|
55
|
+
if (_this.modalRef) {
|
|
56
|
+
_this.modalRef.hide();
|
|
57
|
+
}
|
|
58
|
+
_this.processError('Se canceló el pago con tarjeta');
|
|
57
59
|
};
|
|
58
60
|
_this.callState = function () {
|
|
59
|
-
var
|
|
60
|
-
|
|
61
|
+
var _a, _b, _c;
|
|
62
|
+
var state = _this.closeModalReason != '' ? _this.closeModalReason : sessionStorage.getItem('state');
|
|
61
63
|
if (state) {
|
|
62
|
-
|
|
63
|
-
localStorage.removeItem('state');
|
|
64
|
+
_this.clearStorageState();
|
|
64
65
|
if (state == 'ok') {
|
|
65
|
-
_this.modalRef.hide();
|
|
66
|
+
(_a = _this.modalRef) === null || _a === void 0 ? void 0 : _a.hide();
|
|
66
67
|
_this.ready.emit(true);
|
|
67
68
|
return;
|
|
68
69
|
}
|
|
69
70
|
if (state == 'menosuno') {
|
|
70
|
-
_this.modalRef.hide();
|
|
71
|
-
_this.processError('');
|
|
71
|
+
(_b = _this.modalRef) === null || _b === void 0 ? void 0 : _b.hide();
|
|
72
|
+
_this.processError('Error en el pago');
|
|
72
73
|
return;
|
|
73
74
|
}
|
|
74
75
|
if (state == 'cancel') {
|
|
75
|
-
return;
|
|
76
|
+
return; // El modal ya se escondió dentro de clickClose()
|
|
76
77
|
}
|
|
77
|
-
_this.modalRef.hide();
|
|
78
|
-
_this.processError('');
|
|
78
|
+
(_c = _this.modalRef) === null || _c === void 0 ? void 0 : _c.hide();
|
|
79
|
+
_this.processError('Error desconocido en la transacción');
|
|
79
80
|
return;
|
|
80
81
|
}
|
|
81
|
-
|
|
82
|
+
// Guardamos el timeout en una variable de clase
|
|
83
|
+
_this.stateTimeout = setTimeout(function () {
|
|
82
84
|
_this.callState();
|
|
83
85
|
}, 6000);
|
|
84
86
|
};
|
|
@@ -94,6 +96,10 @@ var RedSysRedirectEcComponent = /** @class */ (function (_super) {
|
|
|
94
96
|
};
|
|
95
97
|
RedSysRedirectEcComponent.prototype.ngOnDestroy = function () {
|
|
96
98
|
console.log("SE DESTROZA");
|
|
99
|
+
// Limpiar el setTimeout al salir del componente
|
|
100
|
+
if (this.stateTimeout) {
|
|
101
|
+
clearTimeout(this.stateTimeout);
|
|
102
|
+
}
|
|
97
103
|
};
|
|
98
104
|
RedSysRedirectEcComponent.prototype.ngOnChanges = function () {
|
|
99
105
|
console.log("SE CAMBIO");
|
|
@@ -101,17 +107,26 @@ var RedSysRedirectEcComponent = /** @class */ (function (_super) {
|
|
|
101
107
|
RedSysRedirectEcComponent.prototype.openModal = function (template) {
|
|
102
108
|
this.clearStorageState();
|
|
103
109
|
sessionStorage.setItem('dataRedirect', this.dataRedirect());
|
|
104
|
-
|
|
105
|
-
this.
|
|
110
|
+
// Abrimos el modal y guardamos la referencia en this.modalRef
|
|
111
|
+
this.modalRef = this.modalService.show(template, { class: 'modal-lg modal-dialog-centered', keyboard: false, backdrop: 'static', animated: true });
|
|
112
|
+
this.closeModalReason = '';
|
|
106
113
|
this.callState();
|
|
107
114
|
};
|
|
115
|
+
// Opcional pero recomendado: Capturar mensajes enviados desde el Iframe de Redsys
|
|
116
|
+
RedSysRedirectEcComponent.prototype.onMessage = function (event) {
|
|
117
|
+
if (event.data === 'pago_completado' || event.data === 'ok') {
|
|
118
|
+
sessionStorage.setItem('state', 'ok');
|
|
119
|
+
}
|
|
120
|
+
else if (event.data === 'pago_error' || event.data === 'menosuno') {
|
|
121
|
+
sessionStorage.setItem('state', 'menosuno');
|
|
122
|
+
}
|
|
123
|
+
};
|
|
108
124
|
RedSysRedirectEcComponent.ctorParameters = function () { return [
|
|
109
125
|
{ type: Renderer2 },
|
|
110
126
|
{ type: ConnectionService },
|
|
111
127
|
{ type: ToastService },
|
|
112
128
|
{ type: Constants },
|
|
113
129
|
{ type: CartService },
|
|
114
|
-
{ type: ToastService },
|
|
115
130
|
{ type: ActivatedRoute },
|
|
116
131
|
{ type: BsModalService }
|
|
117
132
|
]; };
|
|
@@ -130,15 +145,17 @@ var RedSysRedirectEcComponent = /** @class */ (function (_super) {
|
|
|
130
145
|
__decorate([
|
|
131
146
|
ViewChild('template')
|
|
132
147
|
], RedSysRedirectEcComponent.prototype, "template", void 0);
|
|
148
|
+
__decorate([
|
|
149
|
+
HostListener('window:message', ['$event'])
|
|
150
|
+
], RedSysRedirectEcComponent.prototype, "onMessage", null);
|
|
133
151
|
RedSysRedirectEcComponent = __decorate([
|
|
134
152
|
Component({
|
|
135
153
|
selector: 'app-redsys-redirect-ec',
|
|
136
|
-
template: "<div class=\"text-center\">\n <h3>Continuar con el pago</h3>\n <p *ngIf=\"method\" class=\"px-5\">{{ method?.description }}</p>\n <p *ngIf=\"method\" class=\"px-5\">{{ method?.instructions }}</p>\n <button class=\"btn btn-outline-secondary comprar\" (click)=\"openModal(template)\"
|
|
137
|
-
providers: [BsModalService],
|
|
154
|
+
template: "<div class=\"text-center\">\n <h3>Continuar con el pago</h3>\n <p *ngIf=\"method\" class=\"px-5\">{{ method?.description }}</p>\n <p *ngIf=\"method\" class=\"px-5\">{{ method?.instructions }}</p>\n <button class=\"btn btn-outline-secondary comprar\" (click)=\"openModal(template)\">\n Pagar con tarjeta\n </button>\n</div>\n\n<ng-template #template>\n <div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\">Pasarela de pago</h4>\n <button type=\"button\" class=\"btn-close close pull-right\" aria-label=\"Close\" (click)=\"clickClose()\">\n </button>\n </div>\n \n <div class=\"modal-body p-0\">\n <iframe src=\"../../../assets/redsysFrameRedirectBase.html\" \n frameborder=\"0\" \n class=\"iframeStyle\"\n style=\"width: 100%; height: 600px; min-height: 60vh;\">\n </iframe>\n </div>\n</ng-template>",
|
|
138
155
|
styles: [".half-width{width:49%!important}.ml-1{margin-left:1%}#card-form{height:450px}.iframeStyle{height:800px;width:100%;max-height:800px}"]
|
|
139
156
|
})
|
|
140
157
|
], RedSysRedirectEcComponent);
|
|
141
158
|
return RedSysRedirectEcComponent;
|
|
142
159
|
}(ComponentHelper));
|
|
143
160
|
export { RedSysRedirectEcComponent };
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkc3lzLXJlZGlyZWN0LWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWVhc3ljb21tZXJjZS8iLCJzb3VyY2VzIjpbImxpYi9lYy1jb21wb25lbnQvd2lkZ2V0cy1lYy9yZWRzeXMtcmVkaXJlY3QtZWMvcmVkc3lzLXJlZGlyZWN0LWVjLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVKLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQVFwRTtJQUErQyw2Q0FBZTtJQWUxRCxtQ0FBbUIsUUFBbUIsRUFDM0IsVUFBNkIsRUFDN0IsYUFBMkIsRUFDM0IsTUFBaUIsRUFDakIsV0FBd0IsRUFDeEIsTUFBb0IsRUFDcEIsWUFBNEIsRUFDNUIsWUFBNEI7UUFQdkMsWUFRSSxpQkFBTyxTQUVWO1FBVmtCLGNBQVEsR0FBUixRQUFRLENBQVc7UUFDM0IsZ0JBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLG1CQUFhLEdB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O1lBQ2xDLHdsQkFBZ0Q7WUFFaEQsU0FBUyxFQUFFLENBQUMsY0FBYyxDQUFDOztTQUM5QixDQUFDO09BQ1cseUJBQXlCLENBNEZyQztJQUFELGdDQUFDO0NBQUEsQUE1RkQsQ0FBK0MsZUFBZSxHQTRGN0Q7U0E1RlkseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIE9uSW5pdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBJbnB1dCwgUmVuZGVyZXIyLCBJbmplY3QsIE9uQ2hhbmdlcywgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCc01vZGFsU2VydmljZSwgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgQ29ubmVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hcGkvY29ubmVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vLi4vY29yZS5jb25zdHMnO1xuaW1wb3J0IHsgQ2FydFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtcmVkc3lzLXJlZGlyZWN0LWVjJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3JlZHN5cy1yZWRpcmVjdC1lYy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ3JlZHN5cy1yZWRpcmVjdC1lYy5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW0JzTW9kYWxTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBSZWRTeXNSZWRpcmVjdEVjQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50SGVscGVyIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG5cbiAgICBASW5wdXQoKSBtZXRob2QgPSBudWxsO1xuICAgIEBJbnB1dCgpIHRvdGFsX2Ftb3VudCA9IDA7XG4gICAgQE91dHB1dCgpIHJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBJbnB1dCgpIHVzZXJfZGF0YSA9IG51bGw7XG4gICAgQFZpZXdDaGlsZCgndGVtcGxhdGUnKSBwcm90ZWN0ZWQgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcHJvdGVjdGVkIG1vZGFsUmVmOiBCc01vZGFsUmVmIHwgbnVsbDtcblxuICAgIHB1YmxpYyBsb2FkaW5nID0gdHJ1ZTtcbiAgICBwdWJsaWMgaXNEb2JsZUF1dGggPSBmYWxzZTtcbiAgICBwdWJsaWMgdXJscyA9IFtdO1xuICAgIHB1YmxpYyBjbG9zZU1vZGFsID0gJydcbiAgICBwcm90ZWN0ZWQgZGF0YVJlZGlyZWN0ID0gKCkgPT4gdGhpcy5jb25zdHMuZ2V0VXJsQmFzZSgpICsnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RzLmdldENoYW5uZWwoKSArICcvcmVkc3lzL3JlZGlyZWN0LycgKyB0aGlzLmNhcnRTZXJ2aWNlLmNhcnRfdG9rZW4gKyAnL3Byb2Nlc3MtcGF5bWVudCc7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMiwgXG4gICAgICAgIHB1YmxpYyBjb25uZWN0aW9uOiBDb25uZWN0aW9uU2VydmljZSwgXG4gICAgICAgIHB1YmxpYyB0b2FzdHJTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBjb25zdHM6IENvbnN0YW50cywgXG4gICAgICAgIHB1YmxpYyBjYXJ0U2VydmljZTogQ2FydFNlcnZpY2UsIFxuICAgICAgICBwdWJsaWMgdG9hc3RyOiBUb2FzdFNlcnZpY2UsIFxuICAgICAgICBwdWJsaWMgYWN0aXZlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHVibGljIG1vZGFsU2VydmljZTogQnNNb2RhbFNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5lY09uQ29uc3RydWN0KClcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5lY09uSW5pdCgpXG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiU0UgREVTVFJPWkFcIik7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiU0UgQ0FNQklPXCIpO1xuICAgIH1cbiAgICBcbiAgICBvcGVuTW9kYWwodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICAgICAgdGhpcy5jbGVhclN0b3JhZ2VTdGF0ZSgpXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2RhdGFSZWRpcmVjdCcsdGhpcy5kYXRhUmVkaXJlY3QoKSlcbiAgICAgICAgdGhpcy5tb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLnNob3codGVtcGxhdGUsIHsgY2xhc3M6ICdtb2RhbC1sZyBtb2RhbC1kaWFsb2ctY2VudGVyZWQgJywga2V5Ym9hcmQ6IGZhbHNlLCBiYWNrZHJvcDogJ3N0YXRpYycsIGFuaW1hdGVkOiB0cnVlIH0pO1xuICAgICAgICB0aGlzLmNsb3NlTW9kYWwgPSAnJ1xuICAgICAgICB0aGlzLmNhbGxTdGF0ZSgpXG4gICAgfVxuXG4gICAgY2xlYXJTdG9yYWdlU3RhdGUgPSAoKSA9PiB7XG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ3N0YXRlJylcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3N0YXRlJylcbiAgICB9XG5cbiAgICBjbGlja0Nsb3NlID0gKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlTW9kYWwgPSAnY2FuY2VsJ1xuICAgICAgICB0aGlzLm1vZGFsUmVmLmhpZGUoKVxuICAgICAgICB0aGlzLnByb2Nlc3NFcnJvcignU2UgY2FuY2VsbyBlbCBwYWdvIGNvbiB0YXJqZXRhJylcbiAgICB9XG5cbiAgICBjYWxsU3RhdGUgPSAoKSA9PiB7XG4gICAgICAgIGxldCBzdGF0ZSA9IHRoaXMuY2xvc2VNb2RhbCAhPSAnJyA/IHRoaXMuY2xvc2VNb2RhbCA6IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3N0YXRlJylcbiAgICAgICAgY29uc29sZS5sb2coc3RhdGUpO1xuICAgICAgICBpZiAoc3RhdGUpIHtcbiAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ3N0YXRlJylcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdzdGF0ZScpXG4gICAgICAgICAgICBpZiAoc3RhdGUgPT0gJ29rJykge1xuICAgICAgICAgICAgICAgIHRoaXMubW9kYWxSZWYuaGlkZSgpXG4gICAgICAgICAgICAgICAgdGhpcy5yZWFkeS5lbWl0KHRydWUpXG4gICAgICAgICAgICAgICAgcmV0dXJuICAgXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc3RhdGUgPT0gJ21lbm9zdW5vJykge1xuICAgICAgICAgICAgICAgIHRoaXMubW9kYWxSZWYuaGlkZSgpXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzRXJyb3IoJycpXG4gICAgICAgICAgICAgICAgcmV0dXJuICAgXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc3RhdGUgPT0gJ2NhbmNlbCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gICBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMubW9kYWxSZWYuaGlkZSgpXG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NFcnJvcignJylcbiAgICAgICAgICAgIHJldHVybiAgXG4gICAgICAgIH1cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNhbGxTdGF0ZSgpXG4gICAgICAgIH0sIDYwMDApOyAgICBcbiAgICAgICAgXG4gICAgfVxuXG4gICAgcHJvY2Vzc0Vycm9yID0gKGVycikgPT4ge1xuICAgICAgICB0aGlzLnRvYXN0clNlcnZpY2Uuc2hvdyhlcnIgIT0gJycgPyBlcnIgOiAncGF5bWVudC1lcnJvcicpO1xuICAgICAgICBjb25zb2xlLmxvZyhcIkVSUk9SIEVOVklPIEJBQ0sgIFwiLCBlcnIpO1xuICAgIH1cblxufSJdfQ==
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkc3lzLXJlZGlyZWN0LWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWVhc3ljb21tZXJjZS8iLCJzb3VyY2VzIjpbImxpYi9lYy1jb21wb25lbnQvd2lkZ2V0cy1lYy9yZWRzeXMtcmVkaXJlY3QtZWMvcmVkc3lzLXJlZGlyZWN0LWVjLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEosT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBUXBFO0lBQStDLDZDQUFlO0lBaUIxRCxtQ0FDVyxRQUFtQixFQUNuQixVQUE2QixFQUM3QixhQUEyQixFQUMzQixNQUFpQixFQUNqQixXQUF3QixFQUN4QixZQUE0QixFQUM1QixZQUE0QjtRQVB2QyxZQVNJLGlCQUFPLFNBRVY7UUFWVSxjQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGdCQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixtQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMzQixZQUFN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SUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRTtZQUNqRSxjQUFjLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztTQUMvQztJQUNMLENBQUM7O2dCQS9Gb0IsU0FBUztnQkFDUCxpQkFBaUI7Z0JBQ2QsWUFBWTtnQkFDbkIsU0FBUztnQkFDSixXQUFXO2dCQUNWLGNBQWM7Z0JBQ2QsY0FBYzs7SUF0QjlCO1FBQVIsS0FBSyxFQUFFOzZEQUFlO0lBQ2Q7UUFBUixLQUFLLEVBQUU7bUVBQWtCO0lBQ2hCO1FBQVQsTUFBTSxFQUFFOzREQUE0QjtJQUM1QjtRQUFSLEtBQUssRUFBRTtnRUFBa0I7SUFDSDtRQUF0QixTQUFTLENBQUMsVUFBVSxDQUFDOytEQUFzQztJQXFHNUQ7UUFEQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQzs4REFPMUM7SUFqSFEseUJBQXlCO1FBTnJDLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSx3QkFBd0I7WUFDbEMsNjZCQUFnRDs7U0FHbkQsQ0FBQztPQUNXLHlCQUF5QixDQWtIckM7SUFBRCxnQ0FBQztDQUFBLEFBbEhELENBQStDLGVBQWUsR0FrSDdEO1NBbEhZLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBPbkluaXQsIFZpZXdDaGlsZCwgSW5wdXQsIFJlbmRlcmVyMiwgT25DaGFuZ2VzLCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgVGVtcGxhdGVSZWYsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQnNNb2RhbFNlcnZpY2UsIEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IENvbm5lY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2Nvbm5lY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi91dGlscy90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uLy4uLy4uL2NvcmUuY29uc3RzJztcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2FydC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbXBvbmVudEhlbHBlciB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvY29tcG9uZW50LWhlbHBlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLXJlZHN5cy1yZWRpcmVjdC1lYycsXG4gICAgdGVtcGxhdGVVcmw6ICdyZWRzeXMtcmVkaXJlY3QtZWMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWydyZWRzeXMtcmVkaXJlY3QtZWMuY29tcG9uZW50LnNjc3MnXVxuICAgIC8vIMKhSU1QT1JUQU5URTogU2UgaGEgZWxpbWluYWRvIFwicHJvdmlkZXJzOiBbQnNNb2RhbFNlcnZpY2VdXCIgZGUgYXF1w60hXG59KVxuZXhwb3J0IGNsYXNzIFJlZFN5c1JlZGlyZWN0RWNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRIZWxwZXIgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcblxuICAgIEBJbnB1dCgpIG1ldGhvZCA9IG51bGw7XG4gICAgQElucHV0KCkgdG90YWxfYW1vdW50ID0gMDtcbiAgICBAT3V0cHV0KCkgcmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQElucHV0KCkgdXNlcl9kYXRhID0gbnVsbDtcbiAgICBAVmlld0NoaWxkKCd0ZW1wbGF0ZScpIHByb3RlY3RlZCB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBcbiAgICBwcm90ZWN0ZWQgbW9kYWxSZWY6IEJzTW9kYWxSZWYgfCBudWxsO1xuICAgIHB1YmxpYyBsb2FkaW5nID0gdHJ1ZTtcbiAgICBwdWJsaWMgaXNEb2JsZUF1dGggPSBmYWxzZTtcbiAgICBwdWJsaWMgdXJscyA9IFtdO1xuICAgIHB1YmxpYyBjbG9zZU1vZGFsUmVhc29uID0gJyc7IC8vIFJlbm9tYnJhZG8gcGFyYSBldml0YXIgY29uZnVzacOzblxuICAgIHByaXZhdGUgc3RhdGVUaW1lb3V0OiBhbnk7IC8vIFJlZmVyZW5jaWEgcGFyYSBldml0YXIgbWVtb3J5IGxlYWtzXG5cbiAgICBwcm90ZWN0ZWQgZGF0YVJlZGlyZWN0ID0gKCkgPT4gdGhpcy5jb25zdHMuZ2V0VXJsQmFzZSgpICsnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RzLmdldENoYW5uZWwoKSArICcvcmVkc3lzL3JlZGlyZWN0LycgKyB0aGlzLmNhcnRTZXJ2aWNlLmNhcnRfdG9rZW4gKyAnL3Byb2Nlc3MtcGF5bWVudCc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsIFxuICAgICAgICBwdWJsaWMgY29ubmVjdGlvbjogQ29ubmVjdGlvblNlcnZpY2UsIFxuICAgICAgICBwdWJsaWMgdG9hc3RyU2VydmljZTogVG9hc3RTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgY29uc3RzOiBDb25zdGFudHMsIFxuICAgICAgICBwdWJsaWMgY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlLCBcbiAgICAgICAgcHVibGljIGFjdGl2ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHB1YmxpYyBtb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZWNPbkNvbnN0cnVjdCgpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmVjT25Jbml0KCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiU0UgREVTVFJPWkFcIik7XG4gICAgICAgIC8vIExpbXBpYXIgZWwgc2V0VGltZW91dCBhbCBzYWxpciBkZWwgY29tcG9uZW50ZVxuICAgICAgICBpZiAodGhpcy5zdGF0ZVRpbWVvdXQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnN0YXRlVGltZW91dCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJTRSBDQU1CSU9cIik7XG4gICAgfVxuICAgIFxuICAgIG9wZW5Nb2RhbCh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgICAgICB0aGlzLmNsZWFyU3RvcmFnZVN0YXRlKCk7XG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2RhdGFSZWRpcmVjdCcsIHRoaXMuZGF0YVJlZGlyZWN0KCkpO1xuICAgICAgICAvLyBBYnJpbW9zIGVsIG1vZGFsIHkgZ3VhcmRhbW9zIGxhIHJlZmVyZW5jaWEgZW4gdGhpcy5tb2RhbFJlZlxuICAgICAgICB0aGlzLm1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uuc2hvdyh0ZW1wbGF0ZSwgeyBjbGFzczogJ21vZGFsLWxnIG1vZGFsLWRpYWxvZy1jZW50ZXJlZCcsIGtleWJvYXJkOiBmYWxzZSwgYmFja2Ryb3A6ICdzdGF0aWMnLCBhbmltYXRlZDogdHJ1ZSB9KTtcbiAgICAgICAgdGhpcy5jbG9zZU1vZGFsUmVhc29uID0gJyc7XG4gICAgICAgIHRoaXMuY2FsbFN0YXRlKCk7XG4gICAgfVxuXG4gICAgY2xlYXJTdG9yYWdlU3RhdGUgPSAoKSA9PiB7XG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ3N0YXRlJyk7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdzdGF0ZScpO1xuICAgIH1cblxuICAgIC8vIE3DqXRvZG8gcXVlIHNlIGxsYW1hIGRlc2RlIGxhIFggZGUgbGEgY2FiZWNlcmEgZGVsIG1vZGFsIGVuIGVsIEhUTUxcbiAgICBjbGlja0Nsb3NlID0gKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlTW9kYWxSZWFzb24gPSAnY2FuY2VsJztcbiAgICAgICAgaWYgKHRoaXMubW9kYWxSZWYpIHtcbiAgICAgICAgICAgIHRoaXMubW9kYWxSZWYuaGlkZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJvY2Vzc0Vycm9yKCdTZSBjYW5jZWzDsyBlbCBwYWdvIGNvbiB0YXJqZXRhJyk7XG4gICAgfVxuXG4gICAgY2FsbFN0YXRlID0gKCkgPT4ge1xuICAgICAgICBsZXQgc3RhdGUgPSB0aGlzLmNsb3NlTW9kYWxSZWFzb24gIT0gJycgPyB0aGlzLmNsb3NlTW9kYWxSZWFzb24gOiBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdzdGF0ZScpO1xuICAgICAgICBcbiAgICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyU3RvcmFnZVN0YXRlKCk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmIChzdGF0ZSA9PSAnb2snKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb2RhbFJlZj8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVhZHkuZW1pdCh0cnVlKTtcbiAgICAgICAgICAgICAgICByZXR1cm47ICAgXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc3RhdGUgPT0gJ21lbm9zdW5vJykge1xuICAgICAgICAgICAgICAgIHRoaXMubW9kYWxSZWY/LmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NFcnJvcignRXJyb3IgZW4gZWwgcGFnbycpO1xuICAgICAgICAgICAgICAgIHJldHVybjsgICBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzdGF0ZSA9PSAnY2FuY2VsJykge1xuICAgICAgICAgICAgICAgIHJldHVybjsgLy8gRWwgbW9kYWwgeWEgc2UgZXNjb25kacOzIGRlbnRybyBkZSBjbGlja0Nsb3NlKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgdGhpcy5tb2RhbFJlZj8uaGlkZSgpO1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzRXJyb3IoJ0Vycm9yIGRlc2Nvbm9jaWRvIGVuIGxhIHRyYW5zYWNjacOzbicpO1xuICAgICAgICAgICAgcmV0dXJuOyAgXG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC8vIEd1YXJkYW1vcyBlbCB0aW1lb3V0IGVuIHVuYSB2YXJpYWJsZSBkZSBjbGFzZVxuICAgICAgICB0aGlzLnN0YXRlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jYWxsU3RhdGUoKTtcbiAgICAgICAgfSwgNjAwMCk7ICAgIFxuICAgIH1cblxuICAgIHByb2Nlc3NFcnJvciA9IChlcnIpID0+IHtcbiAgICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLnNob3coZXJyICE9ICcnID8gZXJyIDogJ3BheW1lbnQtZXJyb3InKTtcbiAgICAgICAgY29uc29sZS5sb2coXCJFUlJPUiBFTlZJTyBCQUNLICBcIiwgZXJyKTtcbiAgICB9XG5cbiAgICAvLyBPcGNpb25hbCBwZXJvIHJlY29tZW5kYWRvOiBDYXB0dXJhciBtZW5zYWplcyBlbnZpYWRvcyBkZXNkZSBlbCBJZnJhbWUgZGUgUmVkc3lzXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93Om1lc3NhZ2UnLCBbJyRldmVudCddKVxuICAgIG9uTWVzc2FnZShldmVudDogTWVzc2FnZUV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudC5kYXRhID09PSAncGFnb19jb21wbGV0YWRvJyB8fCBldmVudC5kYXRhID09PSAnb2snKSB7XG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdzdGF0ZScsICdvaycpO1xuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmRhdGEgPT09ICdwYWdvX2Vycm9yJyB8fCBldmVudC5kYXRhID09PSAnbWVub3N1bm8nKSB7XG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdzdGF0ZScsICdtZW5vc3VubycpO1xuICAgICAgICB9XG4gICAgfVxufSJdfQ==
|
|
@@ -124,6 +124,26 @@ var AddressingService = /** @class */ (function (_super) {
|
|
|
124
124
|
return new Promise(function (resolve, reject) { return reject(new Error(err.error)); });
|
|
125
125
|
}).catch(function (err) { return console.error(err); });
|
|
126
126
|
};
|
|
127
|
+
_this.setHeadquarterByIds = function (data) {
|
|
128
|
+
return _this.connection.put(_this.headquarterApi(), data)
|
|
129
|
+
.pipe(map(function (order) {
|
|
130
|
+
var _a;
|
|
131
|
+
if (order && order.error) {
|
|
132
|
+
_this.cartService.changeHaveToUpdate(false);
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
_this.checkoutService.updateAsociatedData(order);
|
|
136
|
+
_this.checkoutService.setCheckoutNotes(((_a = data) === null || _a === void 0 ? void 0 : _a.notes) || '');
|
|
137
|
+
_this.setStepReady(data, order);
|
|
138
|
+
if (_this.consts.getCheckoutView() === 'single') {
|
|
139
|
+
_this.checkoutService.prefetchPaymentMethods();
|
|
140
|
+
}
|
|
141
|
+
_this.analyticsService.callEvent('payment_info', order);
|
|
142
|
+
return order;
|
|
143
|
+
})).toPromise().then(function (res) { return res; }, function (err) {
|
|
144
|
+
return new Promise(function (resolve, reject) { return reject(new Error(err.error)); });
|
|
145
|
+
}).catch(function (err) { return console.error(err); });
|
|
146
|
+
};
|
|
127
147
|
_this.setAddress = function (user_data) {
|
|
128
148
|
user_data.locale = _this.consts.getLocale();
|
|
129
149
|
// se modifica el código postal para castearlo a String antes de enviarlo
|
|
@@ -316,4 +336,4 @@ var AddressingService = /** @class */ (function (_super) {
|
|
|
316
336
|
return AddressingService;
|
|
317
337
|
}(StepService));
|
|
318
338
|
export { AddressingService };
|
|
319
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzc2luZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2NoZWNrb3V0L2FkZHJlc3Npbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFRakU7SUFBdUMscUNBQVc7SUFpQjlDLDJCQUFvQixVQUE2QixFQUFVLE1BQWlCLEVBQVUsV0FBd0IsRUFBVSxlQUFnQyxFQUM1SSxnQkFBa0MsRUFBVSxhQUFtQztRQUQzRixZQUVJLGtCQUFNLGVBQWUsQ0FBQyxTQVl6QjtRQWRtQixnQkFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFBVSxZQUFNLEdBQU4sTUFBTSxDQUFXO1FBQVUsaUJBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxxQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFD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S0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7NEJBQ3BELFlBQVksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQzs0QkFDekMsY0FBYyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDOzRCQUMzQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzs0QkFDN0QsV0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDOzRCQUMxQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQzs0QkFDL0IsWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDOzRCQUMzQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQzs0QkFDbkMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO3lCQUNkO3dCQUNELFdBQVcsRUFBRTs0QkFDVCxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7NEJBQ3RDLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQzs0QkFDckMsV0FBVyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7NEJBQ3RFLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDOzRCQUNwRCxZQUFZLEVBQUUsQ0FB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QWhQRCxDQUF1QyxXQUFXLEdBZ1BqRDtTQWhQWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25uZWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2FwaS9jb25uZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vY29yZS5jb25zdHMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ2FydFNlcnZpY2UgfSBmcm9tICcuLi9jYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2hlY2tvdXRTZXJ2aWNlIH0gZnJvbSAnLi9jaGVja291dC5zZXJ2aWNlJztcbmltcG9ydCB7IFN0ZXBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9jaGVja291dC9zdGVwLXNlcnZpY2UnO1xuaW1wb3J0IHsgUGFyYW1ldGVyc1NlcnZpY2UgfSBmcm9tICcuLi9wYXJhbWV0ZXJzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSB9IGZyb20gJy4uL2FuYWx5dGljcy5zZXJ2aWNlJztcbmltcG9ydCB7IFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDaGFubmVsQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL2NoYW5uZWwtY29uZmlnLnNlcnZpY2UnO1xuXG50eXBlIHR5cGVGb3JtcyA9ICdFVVInIHwgJ0FSRyc7XG50eXBlIHR5cGVTZWxlY3RBZGRyZXNzID0gJ09OTFlfTE9BRF9BRERSRVNTJyB8ICdPTkxZX0FERFJFU1NfU0VMRUNUSU9OJyB8ICdMT0FEX0FERFJFU1NfQU5EX1NFTEVDVElPTic7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQWRkcmVzc2luZ1NlcnZpY2UgZXh0ZW5kcyBTdGVwU2VydmljZSB7XG5cbiAgICBiYXNlQXBpID0gKCkgPT4gJ3Nob3AtYXBpLycgKyB0aGlzLmNvbnN0cy5nZXRDaGFubmVsKCkgKyAnLycgKyAnY2hlY2tvdXQvJyArIHRoaXMuY2FydFNlcnZpY2UuZ2V0Q2FydFRva2VuKCk7XG4gICAgY291bnRyaWVzQXBpID0gKCkgPT4gJ3Nob3AtYXBpLycgKyB0aGlzLmNvbnN0cy5nZXRDaGFubmVsKCkgKyAnL2NvdW50cmllcyc7XG4gICAgem9uZXNBcGkgPSAoKSA9PiAnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RzLmdldENoYW5uZWwoKSArICcvem9uZXMnO1xuICAgIHByb3ZpbmNlc0FwaSA9ICgpID0+ICdzaG9wLWFwaS8nICsgdGhpcy5jb25zdHMuZ2V0Q2hhbm5lbCgpICsgJy9wcm92aW5jZXMnO1xuICAgIHB1dEFkZHJlc3NBcGkgPSAoKSA9PiB0aGlzLmJhc2VBcGkoKSArICcvYWRkcmVzcyc7XG4gICAgYWRkcmVzc0Jvb2tBcGkgPSAoKSA9PiAnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RzLmdldENoYW5uZWwoKSArICcvYWRkcmVzcy1ib29rJztcbiAgICBoZWFkcXVhcnRlckFwaSA9ICgpID0+ICdzaG9wLWFwaS8nICsgdGhpcy5jb25zdHMuZ2V0Q2hhbm5lbCgpICsgJy9jaGVja291dC8nICsgdGhpcy5jYXJ0U2VydmljZS5nZXRDYXJ0VG9rZW4oKSArJy9oZWFkcXVhcnRlcic7XG5cbiAgICBwdWJsaWMgdHlwZUZvcm1zOiB0eXBlRm9ybXMgPSAnQVJHJztcbiAgICBwdWJsaWMgbW9kZVNlbGVjdEFkZHJlc3M6IHR5cGVTZWxlY3RBZGRyZXNzID0gJ0xPQURfQUREUkVTU19BTkRfU0VMRUNUSU9OJztcbiAgICBwdWJsaWMgY291bnRyaWVzTGlzdCA9IFtdO1xuICAgIHB1YmxpYyBkb2N1bWVudFR5cGVzID0gW107XG4gICAgcHVibGljIHByb3ZpbmNlTGlzdCA9IFtdO1xuICAgIHB1YmxpYyBjaGVja291dE5vdGVzRmllbGQ6ICdzaG93J3wncmVxdWlyZWQnfCdoaWRlJ3x1bmRlZmluZWQ7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbm5lY3Rpb246IENvbm5lY3Rpb25TZXJ2aWNlLCBwcml2YXRlIGNvbnN0czogQ29uc3RhbnRzLCBwcml2YXRlIGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSwgcHJpdmF0ZSBjaGVja291dFNlcnZpY2U6IENoZWNrb3V0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlLCBwcml2YXRlIGNoYW5uZWxDb25maWc6IENoYW5uZWxDb25maWdTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKGNoZWNrb3V0U2VydmljZSk7XG4gICAgICAgIHRoaXMuZ2V0QWRkcmVzc2luZ0RhdGEoKS50aGVuKHJlcyA9PiB7XG4gICAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kb2N1bWVudFR5cGVzID0gKHJlcy5maW5kKHBhaXNlcyA9PiB0aGlzLmNvbnN0cy5nZXRMb2NhbGUoKS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKHBhaXNlcy5jb2RlLnRvTG9jYWxlTG93ZXJDYXNlKCkpKSk/LmRvY3VtZW50VHlwZXMgfHwgW11cbiAgICAgICAgICAgICAgICB0aGlzLnByb3ZpbmNlTGlzdCA9IChyZXMuZmluZChwYWlzZXMgPT4gdGhpcy5jb25zdHMuZ2V0TG9jYWxlKCkudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcyhwYWlzZXMuY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpKSkpPy5wcm92aW5jZXMgfHwgW11cbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50cmllc0xpc3QgPSByZXNcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgdGhpcy5jaGFubmVsQ29uZmlnLmNoYW5uZWxDb25maWckXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGNmZyA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja291dE5vdGVzRmllbGQgPSBjZmc/LmNoZWNrb3V0Tm90ZXNGaWVsZDtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuXG4gICAgfVxuXG4gICAgZ2V0QWRkcmVzc2luZ0RhdGEgPSBhc3luYyAoKSA9PlxuICAgICAgICB0aGlzLmNvbm5lY3Rpb24uZ2V0KHRoaXMuY291bnRyaWVzQXBpKCkpLnBpcGUobWFwKHJlcyA9PiByZXM/Ll9lbWJlZGRlZD8uaXRlbXMpKS50b1Byb21pc2UoKTtcblxuICAgIGdldEFkZHJlc3NCb29rID0gYXN5bmMgKCkgPT5cbiAgICAgICAgdGhpcy5jb25uZWN0aW9uLmdldCh0aGlzLmFkZHJlc3NCb29rQXBpKCkpLnBpcGUobWFwKHJlcyA9PiByZXM/Lmxlbmd0aCAmJiByZXMubWFwKGFkZHJlcyA9PiB7IHJldHVybiBhZGRyZXMgJiYgeyAuLi5hZGRyZXMsIHNlbGVjdGVkOiBhZGRyZXMuZGVmYXVsdCB9IH0pIHx8IG51bGwgKSkudG9Qcm9taXNlKCk7XG5cbiAgICBzZXRIZWFkcXVhcnRlciA9IChzZWRlOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbi5wdXQodGhpcy5oZWFkcXVhcnRlckFwaSgpLCBzZWRlLnNlbGVjdGVkKVxuICAgICAgICAgICAgLnBpcGUobWFwKG9yZGVyID0+IHtcbiAgICAgICAgICAgIGlmIChvcmRlciAmJiBvcmRlci5lcnJvcikge1xuICAgICAgICAgICAgICAgIHRoaXMuY2FydFNlcnZpY2UuY2hhbmdlSGF2ZVRvVXBkYXRlKGZhbHNlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS51cGRhdGVBc29jaWF0ZWREYXRhKG9yZGVyKTtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLnNldENoZWNrb3V0Tm90ZXMoc2VkZT8uc2VsZWN0ZWQ/Lm5vdGVzIHx8ICcnKTtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RlcFJlYWR5KHNlZGUsIG9yZGVyKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbnN0cy5nZXRDaGVja291dFZpZXcoKSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS5wcmVmZXRjaFBheW1lbnRNZXRob2RzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2UuY2FsbEV2ZW50KCdwYXltZW50X2luZm8nLCBvcmRlcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9yZGVyO1xuICAgICAgICAgICAgfSkpLnRvUHJvbWlzZSgpLnRoZW4oXG4gICAgICAgICAgICAgICAgcmVzID0+IHJlcyxcbiAgICAgICAgICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gcmVqZWN0KG5ldyBFcnJvcihlcnIuZXJyb3IpKSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApLmNhdGNoKGVyciA9PiBjb25zb2xlLmVycm9yKGVycikpXG4gICAgfVxuXG4gICAgc2V0QWRkcmVzcyA9ICh1c2VyX2RhdGE6IGFueSkgPT4ge1xuICAgICAgICB1c2VyX2RhdGEubG9jYWxlID0gdGhpcy5jb25zdHMuZ2V0TG9jYWxlKCk7XG5cbiAgICAgICAgLy8gc2UgbW9kaWZpY2EgZWwgY8OzZGlnbyBwb3N0YWwgcGFyYSBjYXN0ZWFybG8gYSBTdHJpbmcgYW50ZXMgZGUgZW52aWFybG9cbiAgICAgICAgdXNlcl9kYXRhLnNoaXBwaW5nQWRkcmVzcy5wb3N0Y29kZSA9IHVzZXJfZGF0YS5zaGlwcGluZ0FkZHJlc3MucG9zdGNvZGUudG9TdHJpbmcoKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uLnB1dCh0aGlzLnB1dEFkZHJlc3NBcGkoKSwgdXNlcl9kYXRhKS5waXBlKG1hcChvcmRlciA9PiB7XG4gICAgICAgICAgICBpZiAob3JkZXIgJiYgb3JkZXIuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhcnRTZXJ2aWNlLmNoYW5nZUhhdmVUb1VwZGF0ZShmYWxzZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jaGVja291dFNlcnZpY2UudXBkYXRlQXNvY2lhdGVkRGF0YShvcmRlcik7XG4gICAgICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS5zZXRDaGVja291dE5vdGVzKHVzZXJfZGF0YT8ubm90ZXMgfHwgJycpO1xuICAgICAgICAgICAgdGhpcy5zZXRTdGVwUmVhZHkodXNlcl9kYXRhLCBvcmRlcik7XG4gICAgICAgICAgICBpZiAodGhpcy5jb25zdHMuZ2V0Q2hlY2tvdXRWaWV3KCkgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja291dFNlcnZpY2UucHJlZmV0Y2hQYXltZW50TWV0aG9kcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLmNhbGxFdmVudCgncGF5bWVudF9pbmZvJywgb3JkZXIpO1xuICAgICAgICAgICAgcmV0dXJuIG9yZGVyO1xuICAgICAgICB9KSkudG9Qcm9taXNlKCkudGhlbihcbiAgICAgICAgICAgIHJlcyA9PiByZXMsXG4gICAgICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiByZWplY3QobmV3IEVycm9yKGVyci5lcnJvcikpKVxuICAgICAgICAgICAgfVxuICAgICAgICApLmNhdGNoKGVyciA9PiBjb25zb2xlLmVycm9yKGVycikpXG4gICAgfVxuXG4gICAgcHV0QWRkcmVzc0FuZEhhbmRsZSA9ICh1c2VyX2RhdGEsIG5leHQ/LCBvbkVycm9yPykgPT4ge1xuICAgICAgICB1c2VyX2RhdGEubG9jYWxlID0gdGhpcy5jb25zdHMuZ2V0TG9jYWxlKCk7XG4gICAgICAgIGxldCBkYXRhID0geyBzaGlwcGluZ0FkZHJlc3M6IHsgLi4udXNlcl9kYXRhLmRhdGEgfSB9O1xuICAgICAgICB0aGlzLmNvbm5lY3Rpb24ucHV0KHRoaXMucHV0QWRkcmVzc0FwaSgpLCBkYXRhKS50b1Byb21pc2UoKS50aGVuKFxuICAgICAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0ZXBSZWFkeSh1c2VyX2RhdGEsIHJlcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLmNhbGxFdmVudCgncGF5bWVudF9pbmZvJywgcmVzKTtcbiAgICAgICAgICAgICAgICBuZXh0ICYmIG5leHQoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnIgPT4gb25FcnJvciAmJiBvbkVycm9yKGVycilcbiAgICAgICAgKVxuICAgIH1cblxuICAgIGdldFR5cGVGb3JtID0gKCkgPT4ge1xuICAgICAgICBsZXQgZm9ybXNUeXBlQ29maWcgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29kZTogJ0VVUicsXG4gICAgICAgICAgICAgICAgY29uZmlnRm9ybToge1xuICAgICAgICAgICAgICAgICAgICBmb3JtQWRkcmVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaXJzdE5hbWU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3ROYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBwaG9uZU51bWJlcjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKCdbMC05XSsnKV1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW1haWw6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50VHlwZTogWycnLCBbXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudE51bWJlcjogWycnLCBbXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJlZXQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDUwKV1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeUNvZGU6IFtudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2l0eTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpbmNlQ29kZTogW251bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3N0Y29kZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlcm1zOiBbbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlczogWycnXVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBmb3JtQmlsbGluZzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3ROYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXN0TmFtZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGhvbmVOdW1iZXI6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybignWzAtOV0rJyldXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtYWlsOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLmVtYWlsXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFR5cGU6IFsnJywgW11dLFxuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnROdW1iZXI6IFsnJywgW11dLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWV0OiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCg1MCldXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlDb2RlOiBbbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNpdHk6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm92aW5jZUNvZGU6IFtudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zdGNvZGU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlczogWycnXVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB2aWV3Rm9ybXM6IHtcbiAgICAgICAgICAgICAgICAgICAgZmlyc3ROYW1lOiB7IGVuYWJsZWQ6IHRydWUsIHJlcXVpcmVkOiB0cnVlLCB2YWx1ZXM6IFtdIH0sXG4gICAgICAgICAgICAgICAgICAgIGxhc3ROYW1lOiB7IGVuYWJsZWQ6IHRydWUsIHJlcXVpcmVkOiB0cnVlLCB2YWx1ZXM6IFtdIH0sXG4gICAgICAgICAgICAgICAgICAgIHBob25lTnVtYmVyOiB7IGVuYWJsZWQ6IHRydWUsIHJlcXVpcmVkOiB0cnVlLCB2YWx1ZXM6IFtdIH0sXG4gICAgICAgICAgICAgICAgICAgIGVtYWlsOiB7IGVuYWJsZWQ6IHRydWUsIHJlcXVpcmVkOiB0cnVlLCB2YWx1ZXM6IFtdIH0sXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50VHlwZTogeyBlbmFibGVkOiB0cnVlLCByZXF1aXJlZDogZmFsc2UsIHZhbHVlczogdGhpcy5kb2N1bWVudFR5cGVzIH0sXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50TnVtYmVyOiB7IGVuYWJsZWQ6IHRydWUsIHJlcXVpcmVkOiBmYWxzZSwgdmFsdWVzOiBbXSB9LFxuICAgICAgICAgICAgICAgICAgICBzdHJlZXQ6IHsgZW5hYmxlZDogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUsIHZhbHVlczogW10gfSxcbiAgICAgICAgICAgICAgICAgICAgY291bnRyeUNvZGU6IHsgZW5hYmxlZDogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUsIHZhbHVlczogW10gfSxcbiAgICAgICAgICAgICAgICAgICAgY2l0eTogeyBlbmFibGVkOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSwgdmFsdWVzOiBbXSB9LFxuICAgICAgICAgICAgICAgICAgICBwcm92aW5jZUNvZGU6IHsgZW5hYmxlZDogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUsIHZhbHVlczogW10gfSxcbiAgICAgICAgICAgICAgICAgICAgcG9zdGNvZGU6IHsgZW5hYmxlZDogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUsIHZhbHVlczogW10gfSxcbiAgICAgICAgICAgICAgICAgICAgdGVybXM6IHsgZW5hYmxlZDogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUsIHZhbHVlczogW10gfSxcbiAgICAgICAgICAgICAgICAgICAgbm90ZXM6IHsgZW5hYmxlZDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlLCB2YWx1ZXM6IFtdIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvZGU6ICdBUkcnLFxuICAgICAgICAgICAgICAgIGNvbmZpZ0Zvcm06IHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybUFkZHJlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3ROYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXN0TmFtZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGhvbmVOdW1iZXI6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybignWzAtOV0rJyldXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtYWlsOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLmVtYWlsXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFR5cGU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50TnVtYmVyOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJlZXQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDUwKV1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeUNvZGU6IFtudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2l0eTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpbmNlQ29kZTogW251bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3N0Y29kZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGVzOiBbJyddXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGZvcm1CaWxsaW5nOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaXJzdE5hbWU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3ROYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBwaG9uZU51bWJlcjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKCdbMC05XSsnKV1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW1haWw6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50VHlwZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnROdW1iZXI6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVldDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTApXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5Q29kZTogW251bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjaXR5OiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmluY2VDb2RlOiBbbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc3Rjb2RlOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZXM6IFsnJ11cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdmlld0Zvcm1zOiB7XG4gICAgICAgICAgICAgICAgICAgIGZpcnN0TmFtZTogeyBlbmFibGVkOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSwgdmFsdWVzOiBbXSB9LFxuICAgICAgICAgICAgICAgICAgICBsYXN0TmFtZTogeyBlbmFibGVkOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSwgdmFsdWVzOiBbXSB9LFxuICAgICAgICAgICAgICAgICAgICBwaG9uZU51bWJlcjogeyBlbmFibGVkOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSwgdmFsdWVzOiBbXSB9LFxuICAgICAgICAgICAgICAgICAgICBlbWFpbDogeyBlbmFibGVkOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSwgdmFsdWVzOiBbXSB9LFxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFR5cGU6IHsgZW5hYmxlZDogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUsIHZhbHVlczogdGhpcy5kb2N1bWVudFR5cGVzfSxcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnROdW1iZXI6IHsgZW5hYmxlZDogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUsIHZhbHVlczogW10gfSxcbiAgICAgICAgICAgICAgICAgICAgc3RyZWV0OiB7IGVuYWJsZWQ6IHRydWUsIHJlcXVpcmVkOiB0cnVlLCB2YWx1ZXM6IFtdIH0sXG4gICAgICAgICAgICAgICAgICAgIGNvdW50cnlDb2RlOiB7IGVuYWJsZWQ6IHRydWUsIHJlcXVpcmVkOiB0cnVlLCB2YWx1ZXM6IFtdIH0sXG4gICAgICAgICAgICAgICAgICAgIGNpdHk6IHsgZW5hYmxlZDogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUsIHZhbHVlczogW10gfSxcbiAgICAgICAgICAgICAgICAgICAgcHJvdmluY2VDb2RlOiB7IGVuYWJsZWQ6IHRydWUsIHJlcXVpcmVkOiB0cnVlLCB2YWx1ZXM6IFtdIH0sXG4gICAgICAgICAgICAgICAgICAgIHBvc3Rjb2RlOiB7IGVuYWJsZWQ6IHRydWUsIHJlcXVpcmVkOiB0cnVlLCB2YWx1ZXM6IFtdIH0sXG4gICAgICAgICAgICAgICAgICAgIHRlcm1zOiB7IGVuYWJsZWQ6IGZhbHNlLCByZXF1aXJlZDogZmFsc2UsIHZhbHVlczogW10gfSxcbiAgICAgICAgICAgICAgICAgICAgbm90ZXM6IHsgZW5hYmxlZDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlLCB2YWx1ZXM6IFtdIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIF1cblxuICAgICAgICBjb25zdCB0eXBlQ29uZmlnID0gZm9ybXNUeXBlQ29maWcuZmluZChjdCA9PiBjdC5jb2RlID09IHRoaXMudHlwZUZvcm1zKTtcblxuICAgICAgICBzd2l0Y2ggKHRoaXMuY2hlY2tvdXROb3Rlc0ZpZWxkKSB7XG4gICAgICAgICAgICBjYXNlICdoaWRlJzpcbiAgICAgICAgICAgICAgICB0eXBlQ29uZmlnLnZpZXdGb3Jtcy5ub3Rlcy5lbmFibGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdHlwZUNvbmZpZy52aWV3Rm9ybXMubm90ZXMucmVxdWlyZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3JlcXVpcmVkJzpcbiAgICAgICAgICAgICAgICB0eXBlQ29uZmlnLnZpZXdGb3Jtcy5ub3Rlcy5lbmFibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0eXBlQ29uZmlnLnZpZXdGb3Jtcy5ub3Rlcy5yZXF1aXJlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OiAvLyAnc2hvdycgbyB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB0eXBlQ29uZmlnLnZpZXdGb3Jtcy5ub3Rlcy5lbmFibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0eXBlQ29uZmlnLnZpZXdGb3Jtcy5ub3Rlcy5yZXF1aXJlZCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgbm90ZVZhbGlkYXRvcnMgPSB0eXBlQ29uZmlnLnZpZXdGb3Jtcy5ub3Rlcy5yZXF1aXJlZFxuICAgICAgICAgICAgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgICAgICAgIDogW107XG4gICAgICAgIFxuICAgICAgICAodHlwZUNvbmZpZy5jb25maWdGb3JtLmZvcm1BZGRyZXMgYXMgYW55KS5ub3RlcyAgPSBbICcnLCBub3RlVmFsaWRhdG9ycyBdO1xuICAgICAgICAodHlwZUNvbmZpZy5jb25maWdGb3JtLmZvcm1CaWxsaW5nIGFzIGFueSkubm90ZXMgPSBbICcnLCBub3RlVmFsaWRhdG9ycyBdO1xuXG4gICAgICAgIHJldHVybiB0eXBlQ29uZmlnO1xuICAgIH1cblxuICAgIHNldFR5cGVTZWxlY3RBZGRyZXNzID0gKHR5cGU6IHR5cGVTZWxlY3RBZGRyZXNzKSA9PiB7XG4gICAgICAgIHRoaXMubW9kZVNlbGVjdEFkZHJlc3MgPSB0eXBlICYmIHR5cGUgfHwgJ0xPQURfQUREUkVTU19BTkRfU0VMRUNUSU9OJ1xuICAgIH1cblxuICAgIHNldFR5cGVGb3JtcyA9ICh0eXBlOiB0eXBlRm9ybXMpID0+IHtcbiAgICAgICAgdGhpcy50eXBlRm9ybXMgPSB0eXBlICYmIHR5cGUgfHwgJ0FSRydcbiAgICB9XG59XG4iXX0=
|
|
339
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzc2luZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2NoZWNrb3V0L2FkZHJlc3Npbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFRakU7SUFBdUMscUNBQVc7SUFpQjlDLDJCQUFvQixVQUE2QixFQUFVLE1BQWlCLEVBQVUsV0FBd0IsRUFBVSxlQUFnQyxFQUM1SSxnQkFBa0MsRUFBVSxhQUFtQztRQUQzRixZQUVJLGtCQUFNLGVBQWUsQ0FBQyxTQVl6QjtRQWRtQixnQkFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFBVSxZQUFNLEdBQU4sTUFBTSxDQUFXO1FBQVUsaUJBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxxQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFD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LEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQzs0QkFDdEUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7NEJBQ3BELFlBQVksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQzs0QkFDekMsY0FBYyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDOzRCQUMzQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzs0QkFDN0QsV0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDOzRCQUMxQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQzs0QkFDL0IsWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDOzRCQUMzQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQzs0QkFDbkMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO3lCQUNkO3dCQUNELFdBQVcsRUFBRTs0QkFDVCxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7NEJBQ3RDLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQzs0QkFDckMsV0FBVyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7NEJBQ3RFLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDOzRCQUNwRCxZQUFZLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7NEJBQ3pDLGNBQWMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQzs0QkFDM0MsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7NEJBQzdELFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQzs0QkFDMUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7NEJBQy9CLFlBQVksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQzs0QkFDM0MsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7NEJBQ25DLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQzt5QkFDZDtxQkFDSjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1AsU0FBUyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7d0JBQ3hELFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO3dCQUN2RCxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTt3QkFDMUQsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7d0JBQ3BELFlBQVksRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSSxDQUFDLGFBQWEsRUFBQzt3QkFDMUUsY0FBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7d0JBQzdELE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO3dCQUNyRCxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTt3QkFDMUQsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7d0JBQ25ELFlBQVksRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO3dCQUMzRCxRQUFRLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTt3QkFDdkQsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7d0JBQ3RELEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO3FCQUN4RDtpQkFDSjthQUNKLENBQUE7WUFFRCxJQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQUEsRUFBRSxJQUFJLE9BQUEsRUFBRSxDQUFDLElBQUksSUFBSSxLQUFJLENBQUMsU0FBUyxFQUF6QixDQUF5QixDQUFDLENBQUM7WUFFeEUsUUFBUSxLQUFJLENBQUMsa0JBQWtCLEVBQUU7Z0JBQzdCLEtBQUssTUFBTTtvQkFDUCxVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUMzQyxVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO29CQUM1QyxNQUFNO2dCQUNWLEtBQUssVUFBVTtvQkFDWCxVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO29CQUMxQyxVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO29CQUMzQyxNQUFNO2dCQUNWLFNBQVMscUJBQXFCO29CQUMxQixVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO29CQUMxQyxVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO2FBQ25EO1lBRUQsSUFBTSxjQUFjLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUTtnQkFDdEQsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztnQkFDdkIsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUVSLFVBQVUsQ0FBQyxVQUFVLENBQUMsVUFBa0IsQ0FBQyxLQUFLLEdBQUksQ0FBRSxFQUFFLEVBQUUsY0FBYyxDQUFFLENBQUM7WUFDekUsVUFBVSxDQUFDLFVBQVUsQ0FBQyxXQUFtQixDQUFDLEtBQUssR0FBRyxDQUFFLEVBQUUsRUFBRSxjQUFjLENBQUUsQ0FBQztZQUUxRSxPQUFPLFVBQVUsQ0FBQztRQUN0QixDQUFDLENBQUE7UUFFRCwwQkFBb0IsR0FBRyxVQUFDLElBQXVCO1lBQzNDLEtBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLDRCQUE0QixDQUFBO1FBQ3pFLENBQUMsQ0FBQTtRQUVELGtCQUFZLEdBQUcsVUFBQyxJQUFlO1lBQzNCLEtBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLENBQUE7UUFDMUMsQ0FBQyxDQUFBO1FBbFBHLEtBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFBLEdBQUc7O1lBQzdCLElBQUksR0FBRyxFQUFFO2dCQUNMLEtBQUksQ0FBQyxhQUFhLEdBQUcsT0FBQSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBQSxNQUFNLElBQUksT0FBQSxLQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxFQUFyRixDQUFxRixDQUFDLENBQUMsMENBQUUsYUFBYSxLQUFJLEVBQUUsQ0FBQTtnQkFDckosS0FBSSxDQUFDLFlBQVksR0FBRyxPQUFBLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFBLE1BQU0sSUFBSSxPQUFBLEtBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEVBQXJGLENBQXFGLENBQUMsQ0FBQywwQ0FBRSxTQUFTLEtBQUksRUFBRSxDQUFBO2dCQUNoSixLQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQTthQUMzQjtRQUNMLENBQUMsQ0FBQyxDQUFBO1FBQ0YsS0FBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjO2FBQzVCLFNBQVMsQ0FBQyxVQUFBLEdBQUc7O1lBQ1YsS0FBSSxDQUFDLGtCQUFrQixTQUFHLEdBQUcsMENBQUUsa0JBQWtCLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUM7O0lBQ1gsQ0FBQztJQUVELG9DQUFRLEdBQVI7SUFFQSxDQUFDOztnQkFsQitCLGlCQUFpQjtnQkFBa0IsU0FBUztnQkFBdUIsV0FBVztnQkFBMkIsZUFBZTtnQkFDMUgsZ0JBQWdCO2dCQUF5QixvQkFBb0I7OztJQWxCbEYsaUJBQWlCO1FBSDdCLFVBQVUsQ0FBQztZQUNSLFVBQVUsRUFBRSxNQUFNO1NBQ3JCLENBQUM7T0FDVyxpQkFBaUIsQ0F1UTdCOzRCQXpSRDtDQXlSQyxBQXZRRCxDQUF1QyxXQUFXLEdBdVFqRDtTQXZRWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25uZWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2FwaS9jb25uZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vY29yZS5jb25zdHMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ2FydFNlcnZpY2UgfSBmcm9tICcuLi9jYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2hlY2tvdXRTZXJ2aWNlIH0gZnJvbSAnLi9jaGVja291dC5zZXJ2aWNlJztcbmltcG9ydCB7IFN0ZXBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9jaGVja291dC9zdGVwLXNlcnZpY2UnO1xuaW1wb3J0IHsgUGFyYW1ldGVyc1NlcnZpY2UgfSBmcm9tICcuLi9wYXJhbWV0ZXJzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSB9IGZyb20gJy4uL2FuYWx5dGljcy5zZXJ2aWNlJztcbmltcG9ydCB7IFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDaGFubmVsQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL2NoYW5uZWwtY29uZmlnLnNlcnZpY2UnO1xuXG50eXBlIHR5cGVGb3JtcyA9ICdFVVInIHwgJ0FSRyc7XG50eXBlIHR5cGVTZWxlY3RBZGRyZXNzID0gJ09OTFlfTE9BRF9BRERSRVNTJyB8ICdPTkxZX0FERFJFU1NfU0VMRUNUSU9OJyB8ICdMT0FEX0FERFJFU1NfQU5EX1NFTEVDVElPTic7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQWRkcmVzc2luZ1NlcnZpY2UgZXh0ZW5kcyBTdGVwU2VydmljZSB7XG5cbiAgICBiYXNlQXBpID0gKCkgPT4gJ3Nob3AtYXBpLycgKyB0aGlzLmNvbnN0cy5nZXRDaGFubmVsKCkgKyAnLycgKyAnY2hlY2tvdXQvJyArIHRoaXMuY2FydFNlcnZpY2UuZ2V0Q2FydFRva2VuKCk7XG4gICAgY291bnRyaWVzQXBpID0gKCkgPT4gJ3Nob3AtYXBpLycgKyB0aGlzLmNvbnN0cy5nZXRDaGFubmVsKCkgKyAnL2NvdW50cmllcyc7XG4gICAgem9uZXNBcGkgPSAoKSA9PiAnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RzLmdldENoYW5uZWwoKSArICcvem9uZXMnO1xuICAgIHByb3ZpbmNlc0FwaSA9ICgpID0+ICdzaG9wLWFwaS8nICsgdGhpcy5jb25zdHMuZ2V0Q2hhbm5lbCgpICsgJy9wcm92aW5jZXMnO1xuICAgIHB1dEFkZHJlc3NBcGkgPSAoKSA9PiB0aGlzLmJhc2VBcGkoKSArICcvYWRkcmVzcyc7XG4gICAgYWRkcmVzc0Jvb2tBcGkgPSAoKSA9PiAnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RzLmdldENoYW5uZWwoKSArICcvYWRkcmVzcy1ib29rJztcbiAgICBoZWFkcXVhcnRlckFwaSA9ICgpID0+ICdzaG9wLWFwaS8nICsgdGhpcy5jb25zdHMuZ2V0Q2hhbm5lbCgpICsgJy9jaGVja291dC8nICsgdGhpcy5jYXJ0U2VydmljZS5nZXRDYXJ0VG9rZW4oKSArJy9oZWFkcXVhcnRlcic7XG5cbiAgICBwdWJsaWMgdHlwZUZvcm1zOiB0eXBlRm9ybXMgPSAnQVJHJztcbiAgICBwdWJsaWMgbW9kZVNlbGVjdEFkZHJlc3M6IHR5cGVTZWxlY3RBZGRyZXNzID0gJ0xPQURfQUREUkVTU19BTkRfU0VMRUNUSU9OJztcbiAgICBwdWJsaWMgY291bnRyaWVzTGlzdCA9IFtdO1xuICAgIHB1YmxpYyBkb2N1bWVudFR5cGVzID0gW107XG4gICAgcHVibGljIHByb3ZpbmNlTGlzdCA9IFtdO1xuICAgIHB1YmxpYyBjaGVja291dE5vdGVzRmllbGQ6ICdzaG93J3wncmVxdWlyZWQnfCdoaWRlJ3x1bmRlZmluZWQ7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbm5lY3Rpb246IENvbm5lY3Rpb25TZXJ2aWNlLCBwcml2YXRlIGNvbnN0czogQ29uc3RhbnRzLCBwcml2YXRlIGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSwgcHJpdmF0ZSBjaGVja291dFNlcnZpY2U6IENoZWNrb3V0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlLCBwcml2YXRlIGNoYW5uZWxDb25maWc6IENoYW5uZWxDb25maWdTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKGNoZWNrb3V0U2VydmljZSk7XG4gICAgICAgIHRoaXMuZ2V0QWRkcmVzc2luZ0RhdGEoKS50aGVuKHJlcyA9PiB7XG4gICAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kb2N1bWVudFR5cGVzID0gKHJlcy5maW5kKHBhaXNlcyA9PiB0aGlzLmNvbnN0cy5nZXRMb2NhbGUoKS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKHBhaXNlcy5jb2RlLnRvTG9jYWxlTG93ZXJDYXNlKCkpKSk/LmRvY3VtZW50VHlwZXMgfHwgW11cbiAgICAgICAgICAgICAgICB0aGlzLnByb3ZpbmNlTGlzdCA9IChyZXMuZmluZChwYWlzZXMgPT4gdGhpcy5jb25zdHMuZ2V0TG9jYWxlKCkudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcyhwYWlzZXMuY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpKSkpPy5wcm92aW5jZXMgfHwgW11cbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50cmllc0xpc3QgPSByZXNcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgdGhpcy5jaGFubmVsQ29uZmlnLmNoYW5uZWxDb25maWckXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGNmZyA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja291dE5vdGVzRmllbGQgPSBjZmc/LmNoZWNrb3V0Tm90ZXNGaWVsZDtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuXG4gICAgfVxuXG4gICAgZ2V0QWRkcmVzc2luZ0RhdGEgPSBhc3luYyAoKSA9PlxuICAgICAgICB0aGlzLmNvbm5lY3Rpb24uZ2V0KHRoaXMuY291bnRyaWVzQXBpKCkpLnBpcGUobWFwKHJlcyA9PiByZXM/Ll9lbWJlZGRlZD8uaXRlbXMpKS50b1Byb21pc2UoKTtcblxuICAgIGdldEFkZHJlc3NCb29rID0gYXN5bmMgKCkgPT5cbiAgICAgICAgdGhpcy5jb25uZWN0aW9uLmdldCh0aGlzLmFkZHJlc3NCb29rQXBpKCkpLnBpcGUobWFwKHJlcyA9PiByZXM/Lmxlbmd0aCAmJiByZXMubWFwKGFkZHJlcyA9PiB7IHJldHVybiBhZGRyZXMgJiYgeyAuLi5hZGRyZXMsIHNlbGVjdGVkOiBhZGRyZXMuZGVmYXVsdCB9IH0pIHx8IG51bGwgKSkudG9Qcm9taXNlKCk7XG5cbiAgICBzZXRIZWFkcXVhcnRlciA9IChzZWRlOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbi5wdXQodGhpcy5oZWFkcXVhcnRlckFwaSgpLCBzZWRlLnNlbGVjdGVkKVxuICAgICAgICAgICAgLnBpcGUobWFwKG9yZGVyID0+IHtcbiAgICAgICAgICAgIGlmIChvcmRlciAmJiBvcmRlci5lcnJvcikge1xuICAgICAgICAgICAgICAgIHRoaXMuY2FydFNlcnZpY2UuY2hhbmdlSGF2ZVRvVXBkYXRlKGZhbHNlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS51cGRhdGVBc29jaWF0ZWREYXRhKG9yZGVyKTtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLnNldENoZWNrb3V0Tm90ZXMoc2VkZT8uc2VsZWN0ZWQ/Lm5vdGVzIHx8ICcnKTtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RlcFJlYWR5KHNlZGUsIG9yZGVyKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbnN0cy5nZXRDaGVja291dFZpZXcoKSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS5wcmVmZXRjaFBheW1lbnRNZXRob2RzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2UuY2FsbEV2ZW50KCdwYXltZW50X2luZm8nLCBvcmRlcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9yZGVyO1xuICAgICAgICAgICAgfSkpLnRvUHJvbWlzZSgpLnRoZW4oXG4gICAgICAgICAgICAgICAgcmVzID0+IHJlcyxcbiAgICAgICAgICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gcmVqZWN0KG5ldyBFcnJvcihlcnIuZXJyb3IpKSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApLmNhdGNoKGVyciA9PiBjb25zb2xlLmVycm9yKGVycikpXG4gICAgfVxuXG4gICAgc2V0SGVhZHF1YXJ0ZXJCeUlkcyA9IChkYXRhOiB7IHNoaXBwaW5nQWRkcmVzc0lkOiBudW1iZXIsIGJpbGxpbmdBZGRyZXNzSWQ6IG51bWJlciwgbm90ZXM6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24ucHV0KHRoaXMuaGVhZHF1YXJ0ZXJBcGkoKSwgZGF0YSlcbiAgICAgICAgICAgIC5waXBlKG1hcChvcmRlciA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG9yZGVyICYmIG9yZGVyLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FydFNlcnZpY2UuY2hhbmdlSGF2ZVRvVXBkYXRlKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS51cGRhdGVBc29jaWF0ZWREYXRhKG9yZGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS5zZXRDaGVja291dE5vdGVzKGRhdGE/Lm5vdGVzIHx8ICcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0ZXBSZWFkeShkYXRhLCBvcmRlcik7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY29uc3RzLmdldENoZWNrb3V0VmlldygpID09PSAnc2luZ2xlJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS5wcmVmZXRjaFBheW1lbnRNZXRob2RzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5jYWxsRXZlbnQoJ3BheW1lbnRfaW5mbycsIG9yZGVyKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3JkZXI7XG4gICAgICAgICAgICB9KSkudG9Qcm9taXNlKCkudGhlbihcbiAgICAgICAgICAgICAgICByZXMgPT4gcmVzLFxuICAgICAgICAgICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiByZWplY3QobmV3IEVycm9yKGVyci5lcnJvcikpKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICkuY2F0Y2goZXJyID0+IGNvbnNvbGUuZXJyb3IoZXJyKSlcbiAgICB9XG5cbiAgICBzZXRBZGRyZXNzID0gKHVzZXJfZGF0YTogYW55KSA9PiB7XG4gICAgICAgIHVzZXJfZGF0YS5sb2NhbGUgPSB0aGlzLmNvbnN0cy5nZXRMb2NhbGUoKTtcblxuICAgICAgICAvLyBzZSBtb2RpZmljYSBlbCBjw7NkaWdvIHBvc3RhbCBwYXJhIGNhc3RlYXJsbyBhIFN0cmluZyBhbnRlcyBkZSBlbnZpYXJsb1xuICAgICAgICB1c2VyX2RhdGEuc2hpcHBpbmdBZGRyZXNzLnBvc3Rjb2RlID0gdXNlcl9kYXRhLnNoaXBwaW5nQWRkcmVzcy5wb3N0Y29kZS50b1N0cmluZygpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24ucHV0KHRoaXMucHV0QWRkcmVzc0FwaSgpLCB1c2VyX2RhdGEpLnBpcGUobWFwKG9yZGVyID0+IHtcbiAgICAgICAgICAgIGlmIChvcmRlciAmJiBvcmRlci5lcnJvcikge1xuICAgICAgICAgICAgICAgIHRoaXMuY2FydFNlcnZpY2UuY2hhbmdlSGF2ZVRvVXBkYXRlKGZhbHNlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS51cGRhdGVBc29jaWF0ZWREYXRhKG9yZGVyKTtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLnNldENoZWNrb3V0Tm90ZXModXNlcl9kYXRhPy5ub3RlcyB8fCAnJyk7XG4gICAgICAgICAgICB0aGlzLnNldFN0ZXBSZWFkeSh1c2VyX2RhdGEsIG9yZGVyKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbnN0cy5nZXRDaGVja291dFZpZXcoKSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS5wcmVmZXRjaFBheW1lbnRNZXRob2RzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2UuY2FsbEV2ZW50KCdwYXltZW50X2luZm8nLCBvcmRlcik7XG4gICAgICAgICAgICByZXR1cm4gb3JkZXI7XG4gICAgICAgIH0pKS50b1Byb21pc2UoKS50aGVuKFxuICAgICAgICAgICAgcmVzID0+IHJlcyxcbiAgICAgICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHJlamVjdChuZXcgRXJyb3IoZXJyLmVycm9yKSkpXG4gICAgICAgICAgICB9XG4gICAgICAgICkuY2F0Y2goZXJyID0+IGNvbnNvbGUuZXJyb3IoZXJyKSlcbiAgICB9XG5cbiAgICBwdXRBZGRyZXNzQW5kSGFuZGxlID0gKHVzZXJfZGF0YSwgbmV4dD8sIG9uRXJyb3I/KSA9PiB7XG4gICAgICAgIHVzZXJfZGF0YS5sb2NhbGUgPSB0aGlzLmNvbnN0cy5nZXRMb2NhbGUoKTtcbiAgICAgICAgbGV0IGRhdGEgPSB7IHNoaXBwaW5nQWRkcmVzczogeyAuLi51c2VyX2RhdGEuZGF0YSB9IH07XG4gICAgICAgIHRoaXMuY29ubmVjdGlvbi5wdXQodGhpcy5wdXRBZGRyZXNzQXBpKCksIGRhdGEpLnRvUHJvbWlzZSgpLnRoZW4oXG4gICAgICAgICAgICByZXMgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RlcFJlYWR5KHVzZXJfZGF0YSwgcmVzKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2UuY2FsbEV2ZW50KCdwYXltZW50X2luZm8nLCByZXMpO1xuICAgICAgICAgICAgICAgIG5leHQgJiYgbmV4dCgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVyciA9PiBvbkVycm9yICYmIG9uRXJyb3IoZXJyKVxuICAgICAgICApXG4gICAgfVxuXG4gICAgZ2V0VHlwZUZvcm0gPSAoKSA9PiB7XG4gICAgICAgIGxldCBmb3Jtc1R5cGVDb2ZpZyA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2RlOiAnRVVSJyxcbiAgICAgICAgICAgICAgICBjb25maWdGb3JtOiB7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1BZGRyZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0TmFtZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFzdE5hbWU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBob25lTnVtYmVyOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oJ1swLTldKycpXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBlbWFpbDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbF1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRUeXBlOiBbJycsIFtdXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50TnVtYmVyOiBbJycsIFtdXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVldDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTApXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5Q29kZTogW251bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjaXR5OiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmluY2VDb2RlOiBbbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc3Rjb2RlOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGVybXM6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGVzOiBbJyddXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGZvcm1CaWxsaW5nOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaXJzdE5hbWU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3ROYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBwaG9uZU51bWJlcjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKCdbMC05XSsnKV1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW1haWw6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50VHlwZTogWycnLCBbXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudE51bWJlcjogWycnLCBbXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJlZXQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDUwKV1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeUNvZGU6IFtudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2l0eTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpbmNlQ29kZTogW251bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3N0Y29kZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGVzOiBbJyddXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHZpZXdGb3Jtczoge1xuICAgICAgICAgICAgICAgICAgICBmaXJzdE5hbWU6IHsgZW5hYmxlZDogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUsIHZhbHVlczogW10gfSxcbiAgICAgICAgICAgICAgICAgICAgbGFzdE5hbWU6IHsgZW5hYmxlZDogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUsIHZhbHVlczogW10gfSxcbiAgICAgICAgICAgICAgICAgICAgcGhvbmVOdW1iZXI6IHsgZW5hYmxlZDogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUsIHZhbHVlczogW10gfSxcbiAgICAgICAgICAgICAgICAgICAgZW1haWw6IHsgZW5hYmxlZDogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUsIHZhbHVlczogW10gfSxcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRUeXBlOiB7IGVuYWJsZWQ6IHRydWUsIHJlcXVpcmVkOiBmYWxzZSwgdmFsdWVzOiB0aGlzLmRvY3VtZW50VHlwZXMgfSxcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnROdW1iZXI6IHsgZW5hYmxlZDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlLCB2YWx1ZXM6IFtdIH0sXG4gICAgICAgICAgICAgICAgICAgIHN0cmVldDogeyBlbmFibGVkOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSwgdmFsdWVzOiBbXSB9LFxuICAgICAgICAgICAgICAgICAgICBjb3VudHJ5Q29kZTogeyBlbmFibGVkOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSwgdmFsdWVzOiBbXSB9LFxuICAgICAgICAgICAgICAgICAgICBjaXR5OiB7IGVuYWJsZWQ6IHRydWUsIHJlcXVpcmVkOiB0cnVlLCB2YWx1ZXM6IFtdIH0sXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpbmNlQ29kZTogeyBlbmFibGVkOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSwgdmFsdWVzOiBbXSB9LFxuICAgICAgICAgICAgICAgICAgICBwb3N0Y29kZTogeyBlbmFibGVkOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSwgdmFsdWVzOiBbXSB9LFxuICAgICAgICAgICAgICAgICAgICB0ZXJtczogeyBlbmFibGVkOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSwgdmFsdWVzOiBbXSB9LFxuICAgICAgICAgICAgICAgICAgICBub3RlczogeyBlbmFibGVkOiB0cnVlLCByZXF1aXJlZDogZmFsc2UsIHZhbHVlczogW10gfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29kZTogJ0FSRycsXG4gICAgICAgICAgICAgICAgY29uZmlnRm9ybToge1xuICAgICAgICAgICAgICAgICAgICBmb3JtQWRkcmVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaXJzdE5hbWU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3ROYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBwaG9uZU51bWJlcjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKCdbMC05XSsnKV1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW1haWw6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50VHlwZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnROdW1iZXI6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVldDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTApXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5Q29kZTogW251bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjaXR5OiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmluY2VDb2RlOiBbbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc3Rjb2RlOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZXM6IFsnJ11cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZm9ybUJpbGxpbmc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0TmFtZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFzdE5hbWU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBob25lTnVtYmVyOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oJ1swLTldKycpXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBlbWFpbDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbF1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRUeXBlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudE51bWJlcjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWV0OiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCg1MCldXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlDb2RlOiBbbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNpdHk6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm92aW5jZUNvZGU6IFtudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zdGNvZGU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlczogWycnXVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB2aWV3Rm9ybXM6IHtcbiAgICAgICAgICAgICAgICAgICAgZmlyc3ROYW1lOiB7IGVuYWJsZWQ6IHRydWUsIHJlcXVpcmVkOiB0cnVlLCB2YWx1ZXM6IFtdIH0sXG4gICAgICAgICAgICAgICAgICAgIGxhc3ROYW1lOiB7IGVuYWJsZWQ6IHRydWUsIHJlcXVpcmVkOiB0cnVlLCB2YWx1ZXM6IFtdIH0sXG4gICAgICAgICAgICAgICAgICAgIHBob25lTnVtYmVyOiB7IGVuYWJsZWQ6IHRydWUsIHJlcXVpcmVkOiB0cnVlLCB2YWx1ZXM6IFtdIH0sXG4gICAgICAgICAgICAgICAgICAgIGVtYWlsOiB7IGVuYWJsZWQ6IHRydWUsIHJlcXVpcmVkOiB0cnVlLCB2YWx1ZXM6IFtdIH0sXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50VHlwZTogeyBlbmFibGVkOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSwgdmFsdWVzOiB0aGlzLmRvY3VtZW50VHlwZXN9LFxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudE51bWJlcjogeyBlbmFibGVkOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSwgdmFsdWVzOiBbXSB9LFxuICAgICAgICAgICAgICAgICAgICBzdHJlZXQ6IHsgZW5hYmxlZDogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUsIHZhbHVlczogW10gfSxcbiAgICAgICAgICAgICAgICAgICAgY291bnRyeUNvZGU6IHsgZW5hYmxlZDogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUsIHZhbHVlczogW10gfSxcbiAgICAgICAgICAgICAgICAgICAgY2l0eTogeyBlbmFibGVkOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSwgdmFsdWVzOiBbXSB9LFxuICAgICAgICAgICAgICAgICAgICBwcm92aW5jZUNvZGU6IHsgZW5hYmxlZDogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUsIHZhbHVlczogW10gfSxcbiAgICAgICAgICAgICAgICAgICAgcG9zdGNvZGU6IHsgZW5hYmxlZDogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUsIHZhbHVlczogW10gfSxcbiAgICAgICAgICAgICAgICAgICAgdGVybXM6IHsgZW5hYmxlZDogZmFsc2UsIHJlcXVpcmVkOiBmYWxzZSwgdmFsdWVzOiBbXSB9LFxuICAgICAgICAgICAgICAgICAgICBub3RlczogeyBlbmFibGVkOiB0cnVlLCByZXF1aXJlZDogZmFsc2UsIHZhbHVlczogW10gfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgXVxuXG4gICAgICAgIGNvbnN0IHR5cGVDb25maWcgPSBmb3Jtc1R5cGVDb2ZpZy5maW5kKGN0ID0+IGN0LmNvZGUgPT0gdGhpcy50eXBlRm9ybXMpO1xuXG4gICAgICAgIHN3aXRjaCAodGhpcy5jaGVja291dE5vdGVzRmllbGQpIHtcbiAgICAgICAgICAgIGNhc2UgJ2hpZGUnOlxuICAgICAgICAgICAgICAgIHR5cGVDb25maWcudmlld0Zvcm1zLm5vdGVzLmVuYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0eXBlQ29uZmlnLnZpZXdGb3Jtcy5ub3Rlcy5yZXF1aXJlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncmVxdWlyZWQnOlxuICAgICAgICAgICAgICAgIHR5cGVDb25maWcudmlld0Zvcm1zLm5vdGVzLmVuYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHR5cGVDb25maWcudmlld0Zvcm1zLm5vdGVzLnJlcXVpcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6IC8vICdzaG93JyBvIHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIHR5cGVDb25maWcudmlld0Zvcm1zLm5vdGVzLmVuYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHR5cGVDb25maWcudmlld0Zvcm1zLm5vdGVzLnJlcXVpcmVkID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBub3RlVmFsaWRhdG9ycyA9IHR5cGVDb25maWcudmlld0Zvcm1zLm5vdGVzLnJlcXVpcmVkXG4gICAgICAgICAgICA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgICAgICAgOiBbXTtcbiAgICAgICAgXG4gICAgICAgICh0eXBlQ29uZmlnLmNvbmZpZ0Zvcm0uZm9ybUFkZHJlcyBhcyBhbnkpLm5vdGVzICA9IFsgJycsIG5vdGVWYWxpZGF0b3JzIF07XG4gICAgICAgICh0eXBlQ29uZmlnLmNvbmZpZ0Zvcm0uZm9ybUJpbGxpbmcgYXMgYW55KS5ub3RlcyA9IFsgJycsIG5vdGVWYWxpZGF0b3JzIF07XG5cbiAgICAgICAgcmV0dXJuIHR5cGVDb25maWc7XG4gICAgfVxuXG4gICAgc2V0VHlwZVNlbGVjdEFkZHJlc3MgPSAodHlwZTogdHlwZVNlbGVjdEFkZHJlc3MpID0+IHtcbiAgICAgICAgdGhpcy5tb2RlU2VsZWN0QWRkcmVzcyA9IHR5cGUgJiYgdHlwZSB8fCAnTE9BRF9BRERSRVNTX0FORF9TRUxFQ1RJT04nXG4gICAgfVxuXG4gICAgc2V0VHlwZUZvcm1zID0gKHR5cGU6IHR5cGVGb3JtcykgPT4ge1xuICAgICAgICB0aGlzLnR5cGVGb3JtcyA9IHR5cGUgJiYgdHlwZSB8fCAnQVJHJ1xuICAgIH1cbn1cbiJdfQ==
|