ngx-st-sap-bp 18.0.2 → 18.0.3

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.
@@ -77,7 +77,7 @@ export class SapBpCreateAddressComponent {
77
77
  countryName: this.data.address.countryName,
78
78
  streetNo: this.data.address.streetNo,
79
79
  building: this.data.address.building,
80
- industryCode: this.data.address.industryCode || this.data.baseIndustryCode,
80
+ industryCode: this.data.address.industryCode || this.data.baseIndustryCode || null,
81
81
  industryName: this.data.address.industryName,
82
82
  status: this.data.address.status,
83
83
  salesPerson1: this.data.address.salesPerson1 || '',
@@ -223,4 +223,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
223
223
  type: Component,
224
224
  args: [{ selector: 'app-sap-bp-create-address', template: "<h1 mat-dialog-title>{{ 'sapAdminBp.address' | translate }}</h1>\r\n<div mat-dialog-content>\r\n @if (form) {\r\n <form [formGroup]=\"form\" id=\"address-create-form\" (ngSubmit)=\"save()\">\r\n <mat-form-field>\r\n <mat-label>{{ 'sapAdminBp.address' | translate }}</mat-label>\r\n <input\r\n type=\"text\"\r\n matInput\r\n formControlName=\"address\"\r\n required\r\n [maxLength]=\"50\"\r\n />\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{ 'sapAdminBp.address2' | translate }}</mat-label>\r\n <input\r\n type=\"text\"\r\n matInput\r\n formControlName=\"address2\"\r\n [maxLength]=\"50\"\r\n />\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{ 'sapAdminBp.address3' | translate }}</mat-label>\r\n <input\r\n type=\"text\"\r\n matInput\r\n formControlName=\"address3\"\r\n [maxLength]=\"50\"\r\n />\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{ 'sapAdminBp.street' | translate }}</mat-label>\r\n <input\r\n type=\"text\"\r\n matInput\r\n formControlName=\"street\"\r\n required\r\n [maxLength]=\"100\"\r\n />\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{ 'sapAdminBp.block' | translate }}</mat-label>\r\n <input type=\"text\" matInput formControlName=\"block\" [maxLength]=\"100\" />\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{ 'sapAdminBp.city' | translate }}</mat-label>\r\n <input\r\n type=\"text\"\r\n matInput\r\n formControlName=\"city\"\r\n required\r\n [maxLength]=\"100\"\r\n />\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{ 'sapAdminBp.zipCode' | translate }}</mat-label>\r\n <input\r\n type=\"text\"\r\n matInput\r\n formControlName=\"zipCode\"\r\n required\r\n [maxLength]=\"20\"\r\n />\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{ 'sapAdminBp.county' | translate }}</mat-label>\r\n <input\r\n type=\"text\"\r\n matInput\r\n formControlName=\"county\"\r\n [maxLength]=\"100\"\r\n />\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{ 'sapAdminBp.streetNo' | translate }}</mat-label>\r\n <input\r\n type=\"text\"\r\n matInput\r\n formControlName=\"streetNo\"\r\n [maxLength]=\"100\"\r\n />\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{ 'sapAdminBp.building' | translate }}</mat-label>\r\n <input\r\n type=\"text\"\r\n matInput\r\n formControlName=\"building\"\r\n [maxLength]=\"256000\"\r\n />\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{ 'sapAdminBp.territory' | translate }}</mat-label>\r\n <mat-select formControlName=\"territory\" [required]=\"!data.address\">\r\n @for (territory of territoriesList(); track territory.territoryId) {\r\n <mat-option [value]=\"territory.territoryId\">{{ territory.territoryName }}</mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{ 'sapAdminBp.industryCode' | translate }}</mat-label>\r\n <mat-select formControlName=\"industryCode\" [required]=\"!data.address\">\r\n <mat-option [value]=\"''\">{{\r\n 'sapAdminBp.empty' | translate\r\n }}</mat-option>\r\n @for (industry of industryList(); track industry) {\r\n <mat-option [value]=\"industry.id\">{{ industry.name }}</mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n @if (\r\n data.userSettings.bpEditSalesPersonOnAddress && data.addressType === 'S'\r\n ) {\r\n <div class=\"row\">\r\n <mat-form-field class=\"col\" style=\"padding-left: 0 !important\">\r\n <mat-label>{{ 'sapAdminBp.salesPerson1' | translate }}</mat-label>\r\n <mat-select formControlName=\"salesPerson1\">\r\n @for (salesEmployee of salesEmployeeList(); track salesEmployee) {\r\n <mat-option [value]=\"salesEmployee.name\">{{\r\n salesEmployee.name\r\n }}</mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'sapAdminBp.refreshFromSap' | translate\"\r\n (click)=\"loadSalesEmployee(true)\"\r\n [disabled]=\"refreshingDataFromSap()\"\r\n >\r\n <mat-icon>refresh</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n @if (\r\n data.userSettings.bpEditSalesPersonOnAddress && data.addressType === 'S'\r\n ) {\r\n <div class=\"row\">\r\n <mat-form-field class=\"col\" style=\"padding-left: 0 !important\">\r\n <mat-label>{{ 'sapAdminBp.salesPerson2' | translate }}</mat-label>\r\n <mat-select formControlName=\"salesPerson2\">\r\n @for (salesEmployee of salesEmployeeList(); track salesEmployee) {\r\n <mat-option [value]=\"salesEmployee.name\">{{\r\n salesEmployee.name\r\n }}</mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'sapAdminBp.refreshFromSap' | translate\"\r\n (click)=\"loadSalesEmployee(true)\"\r\n [disabled]=\"refreshingDataFromSap()\"\r\n >\r\n <mat-icon>refresh</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n @if (data.useTaxCode) {\r\n <div class=\"row\">\r\n <mat-form-field class=\"col\" style=\"padding-left: 0 !important\">\r\n <mat-label>{{ 'sapAdminBp.taxCode' | translate }}</mat-label>\r\n <mat-select formControlName=\"taxCode\">\r\n @for (tax of taxesList(); track tax) {\r\n <mat-option [value]=\"tax.code\"\r\n >{{ tax.name }}: {{ tax.rate }}</mat-option\r\n >\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'sapAdminBp.refresh' | translate\"\r\n (click)=\"loadTaxes(true)\"\r\n [disabled]=\"refreshingTax()\"\r\n >\r\n <mat-icon>refresh</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n <mat-form-field>\r\n <mat-label>{{ 'sapAdminBp.status' | translate }}</mat-label>\r\n <mat-select formControlName=\"status\">\r\n <mat-option [value]=\"null\">{{\r\n 'sapAdminBp.empty' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'Active'\">{{\r\n 'sapAdminBp.active' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'Inactive'\">{{\r\n 'sapAdminBp.inactive' | translate\r\n }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <ngx-st-select-table\r\n [initSelected]=\"initSelectedCountry()\"\r\n [initSearchVal]=\"initSearchCountry()\"\r\n [tableData]=\"countryList()\"\r\n [setInitColumns]=\"{\r\n id: ('sapAdminBp.id' | translate),\r\n name: ('sapAdminBp.name' | translate)\r\n }\"\r\n [title]=\"'sapAdminBp.country' | translate\"\r\n [required]=\"true\"\r\n [validError]=\"form.get('countryCode')!.invalid\"\r\n [searchLabel]=\"'sapAdminBp.search' | translate\"\r\n [selectedLabel]=\"'sapAdminBp.selected' | translate\"\r\n (returnRowSelected)=\"countryCodeChanged($event)\"\r\n >\r\n </ngx-st-select-table>\r\n @if (notFoundStates()) {\r\n <div class=\"alert alert-warning\" role=\"alert\">\r\n {{ 'sapAdminBp.notFoundStates' | translate }}\r\n </div>\r\n }\r\n <ngx-st-select-table\r\n [initSelected]=\"initSelectedState()\"\r\n [initSearchVal]=\"initSearchState()\"\r\n [tableData]=\"stateList()\"\r\n [setInitColumns]=\"{\r\n id: ('sapAdminBp.id' | translate),\r\n name: ('sapAdminBp.name' | translate)\r\n }\"\r\n [title]=\"'sapAdminBp.state' | translate\"\r\n [required]=\"false\"\r\n [validError]=\"false\"\r\n [searchLabel]=\"'sapAdminBp.search' | translate\"\r\n [selectedLabel]=\"'sapAdminBp.selected' | translate\"\r\n (returnRowSelected)=\"stateChanged($event)\"\r\n >\r\n </ngx-st-select-table>\r\n </form>\r\n }\r\n</div>\r\n<div class=\"row justify-content-between action-row\" mat-dialog-actions>\r\n <button mat-button (click)=\"cancel()\">\r\n {{ 'sapAdminBp.cancel' | translate }}\r\n </button>\r\n <div class=\"row align-items-center\">\r\n <button\r\n mat-raised-button\r\n color=\"primary\"\r\n type=\"submit\"\r\n form=\"address-create-form\"\r\n >\r\n {{ 'sapAdminBp.save' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n" }]
225
225
  }], ctorParameters: () => [] });
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FwLWJwLWNyZWF0ZS1hZGRyZXNzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdC1zYXAtYnAvc3JjL2xpYi9jb21wb25lbnRzL3NhcC1icC1jcmVhdGUtYWRkcmVzcy9zYXAtYnAtY3JlYXRlLWFkZHJlc3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXNhcC1icC9zcmMvbGliL2NvbXBvbmVudHMvc2FwLWJwLWNyZWF0ZS1hZGRyZXNzL3NhcC1icC1jcmVhdGUtYWRkcmVzcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBUyxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUk3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUt2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBUXpFLE1BQU0sT0FBTywyQkFBMkI7SUEwRHRDO1FBekRBLFNBQUksR0FBRyxNQUFNLENBQUMsZUFBZSxDQU01QixDQUFDO1FBQ0YsY0FBUyxHQUFHLE1BQU0sQ0FBQyxDQUFBLFlBQXlDLENBQUEsQ0FBQyxDQUFDO1FBQ3RELGlCQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BDLGFBQVEsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNyQyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JB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QUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQzVDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxZQUFZLENBQ3pDLENBQUM7WUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdEUsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLENBQUM7SUFDSCxDQUFDOytHQWhQVSwyQkFBMkI7bUdBQTNCLDJCQUEyQixpRUNyQnhDLHN3U0EyUEE7OzRGRHRPYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTm9uTnVsbGFibGVGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU2FwQnBBZGRyZXNzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2FwLWJwLWFkZHJlc3MubW9kZWwnO1xyXG5pbXBvcnQgeyBTYXBCcFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zYXAtYnAuc2VydmljZSc7XHJcbmltcG9ydCB7IFNhcEJwQWRkckNvdW50cnlNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zYXAtYnAtYWRkci1jb3VudHJ5Lm1vZGVsJztcclxuaW1wb3J0IHsgU2FwQnBBZGRyU3RhdGVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zYXAtYnAtYWRkci1zdGF0ZS5tb2RlbCc7XHJcbmltcG9ydCB7IFNhcEJwQWRkcmVzc0RpYWxvZ01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NhcC1icC1hZGRyZXNzLWRpYWxvZy5tb2RlbCc7XHJcbmltcG9ydCB7IFN0U25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnbmd4LXN0LXNuYWNrLWJhcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgU2FwQnBJbmR1c3RyeU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NhcC1icC1pbmR1c3RyeS5tb2RlbCc7XHJcbmltcG9ydCB7IFNhcEJwU2FsZXNFbXBsb3llZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NhcC1icC1zYWxlcy1lbXBsb3llZS5tb2RlbCc7XHJcbmltcG9ydCB7IFNhcEJwVGF4IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NhcC1icC10YXgubW9kZWwnO1xyXG5pbXBvcnQgeyBTYXBCcFVzZXJTZXR0aW5ncyB9IGZyb20gJy4uL3NhcC1icC1iYXNlLWNyZWF0ZS1lZGl0JztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBTYXBCcEFkZHJlc3NUZXJyaXRvcnlNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zYXAtYnAtYWRkcmVzcy10ZXJyaXRvcnkubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtc2FwLWJwLWNyZWF0ZS1hZGRyZXNzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2FwLWJwLWNyZWF0ZS1hZGRyZXNzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zYXAtYnAtY3JlYXRlLWFkZHJlc3MuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNhcEJwQ3JlYXRlQWRkcmVzc0NvbXBvbmVudCB7XHJcbiAgZGF0YSA9IGluamVjdChNQVRfRElBTE9HX0RBVEEpIGFzIHtcclxuICAgIGFkZHJlc3M6IFNhcEJwQWRkcmVzc01vZGVsO1xyXG4gICAgYmFzZUluZHVzdHJ5Q29kZTogbnVtYmVyO1xyXG4gICAgYWRkcmVzc1R5cGU6ICdCJyB8ICdTJztcclxuICAgIHVzZVRheENvZGU6IGJvb2xlYW47XHJcbiAgICB1c2VyU2V0dGluZ3M6IFNhcEJwVXNlclNldHRpbmdzO1xyXG4gIH07XHJcbiAgZGlhbG9nUmVmID0gaW5qZWN0KE1hdERpYWxvZ1JlZjxTYXBCcENyZWF0ZUFkZHJlc3NDb21wb25lbnQ+KTtcclxuICBwcml2YXRlIHNhcEJwU2VydmljZSA9IGluamVjdChTYXBCcFNlcnZpY2UpO1xyXG4gIHByaXZhdGUgc25hY2tCYXIgPSBpbmplY3QoU3RTbmFja0JhclNlcnZpY2UpO1xyXG4gIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcclxuICBwcml2YXRlIGZiID0gaW5qZWN0KE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIpO1xyXG5cclxuICBmb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICBhZGRyZXNzOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgYWRkcmVzczI6ICcnLFxyXG4gICAgYWRkcmVzczM6ICcnLFxyXG4gICAgc3RyZWV0OiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgYmxvY2s6ICcnLFxyXG4gICAgY2l0eTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgIHppcENvZGU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICBjb3VudHk6ICcnLFxyXG4gICAgdGVycml0b3J5OiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgc3RhdGVDb2RlOiAnJyxcclxuICAgIHN0YXRlTmFtZTogJycsXHJcbiAgICBjb3VudHJ5Q29kZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgIGNvdW50cnlOYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgc3RyZWV0Tm86ICcnLFxyXG4gICAgYnVpbGRpbmc6ICcnLFxyXG4gICAgaW5kdXN0cnlDb2RlOiBbPG51bWJlciB8IG51bGw+bnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICBpbmR1c3RyeU5hbWU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICBzdGF0dXM6IDxzdHJpbmcgfCBudWxsPicnLFxyXG4gICAgc2FsZXNQZXJzb24xOiAnJyxcclxuICAgIHNhbGVzUGVyc29uMjogJycsXHJcbiAgICB0YXhDb2RlOiAnJyxcclxuICB9KTtcclxuXHJcbiAgY291bnRyeUxpc3QgPSBzaWduYWw8U2FwQnBBZGRyQ291bnRyeU1vZGVsW10+KFtdKTtcclxuICBzdGF0ZUxpc3QgPSBzaWduYWw8U2FwQnBBZGRyU3RhdGVNb2RlbFtdPihbXSk7XHJcbiAgaW5kdXN0cnlMaXN0ID0gc2lnbmFsPFNhcEJwSW5kdXN0cnlNb2RlbFtdPihbXSk7XHJcblxyXG4gIGluaXRTZWxlY3RlZENvdW50cnkgPSBzaWduYWw8U2FwQnBBZGRyQ291bnRyeU1vZGVsIHwgbnVsbD4obnVsbCk7XHJcbiAgaW5pdFNlYXJjaENvdW50cnkgPSBzaWduYWw8c3RyaW5nPignJyk7XHJcblxyXG4gIGluaXRTZWxlY3RlZFN0YXRlID0gc2lnbmFsPFNhcEJwQWRkclN0YXRlTW9kZWwgfCBudWxsPihudWxsKTtcclxuICBpbml0U2VhcmNoU3RhdGUgPSBzaWduYWw8c3RyaW5nPignJyk7XHJcblxyXG4gIG5vdEZvdW5kU3RhdGVzID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcbiAgdGVycml0b3JpZXNMaXN0ID0gc2lnbmFsPFNhcEJwQWRkcmVzc1RlcnJpdG9yeU1vZGVsW10+KFtdKTtcclxuXHJcbiAgcmVmcmVzaGluZ0RhdGFGcm9tU2FwID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuICBzYWxlc0VtcGxveWVlTGlzdCA9IHNpZ25hbDxTYXBCcFNhbGVzRW1wbG95ZWVNb2RlbFtdPihbXSk7XHJcblxyXG4gIHRheGVzTGlzdCA9IHNpZ25hbDxTYXBCcFRheFtdPihbXSk7XHJcbiAgcmVmcmVzaGluZ1RheCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgaWYgKHRoaXMuZGF0YSAmJiB0aGlzLmRhdGEuYWRkcmVzcykge1xyXG4gICAgICB0aGlzLmZvcm0uc2V0VmFsdWUoe1xyXG4gICAgICAgIGFkZHJlc3M6IHRoaXMuZGF0YS5hZGRyZXNzLmFkZHJlc3MsXHJcbiAgICAgICAgYWRkcmVzczI6IHRoaXMuZGF0YS5hZGRyZXNzLmFkZHJlc3MyLFxyXG4gICAgICAgIGFkZHJlc3MzOiB0aGlzLmRhdGEuYWRkcmVzcy5hZGRyZXNzMyxcclxuICAgICAgICBzdHJlZXQ6IHRoaXMuZGF0YS5hZGRyZXNzLnN0cmVldCxcclxuICAgICAgICBibG9jazogdGhpcy5kYXRhLmFkZHJlc3MuYmxvY2ssXHJcbiAgICAgICAgY2l0eTogdGhpcy5kYXRhLmFkZHJlc3MuY2l0eSxcclxuICAgICAgICB6aXBDb2RlOiB0aGlzLmRhdGEuYWRkcmVzcy56aXBDb2RlLFxyXG4gICAgICAgIGNvdW50eTogdGhpcy5kYXRhLmFkZHJlc3MuY291bnR5LFxyXG4gICAgICAgIHRlcnJpdG9yeTogdGhpcy5kYXRhLmFkZHJlc3MudGVycml0b3J5LFxyXG4gICAgICAgIHN0YXRlQ29kZTogdGhpcy5kYXRhLmFkZHJlc3Muc3RhdGVDb2RlLFxyXG4gICAgICAgIHN0YXRlTmFtZTogdGhpcy5kYXRhLmFkZHJlc3Muc3RhdGVOYW1lLFxyXG4gICAgICAgIGNvdW50cnlDb2RlOiB0aGlzLmRhdGEuYWRkcmVzcy5jb3VudHJ5Q29kZSxcclxuICAgICAgICBjb3VudHJ5TmFtZTogdGhpcy5kYXRhLmFkZHJlc3MuY291bnRyeU5hbWUsXHJcbiAgICAgICAgc3RyZWV0Tm86IHRoaXMuZGF0YS5hZGRyZXNzLnN0cmVldE5vLFxyXG4gICAgICAgIGJ1aWxkaW5nOiB0aGlzLmRhdGEuYWRkcmVzcy5idWlsZGluZyxcclxuICAgICAgICBpbmR1c3RyeUNvZGU6XHJcbiAgICAgICAgICB0aGlzLmRhdGEuYWRkcmVzcy5pbmR1c3RyeUNvZGUgfHwgdGhpcy5kYXRhLmJhc2VJbmR1c3RyeUNvZGUsXHJcbiAgICAgICAgaW5kdXN0cnlOYW1lOiB0aGlzLmRhdGEuYWRkcmVzcy5pbmR1c3RyeU5hbWUsXHJcbiAgICAgICAgc3RhdHVzOiB0aGlzLmRhdGEuYWRkcmVzcy5zdGF0dXMsXHJcbiAgICAgICAgc2FsZXNQZXJzb24xOiB0aGlzLmRhdGEuYWRkcmVzcy5zYWxlc1BlcnNvbjEgfHwgJycsXHJcbiAgICAgICAgc2FsZXNQZXJzb24yOiB0aGlzLmRhdGEuYWRkcmVzcy5zYWxlc1BlcnNvbjIgfHwgJycsXHJcbiAgICAgICAgdGF4Q29kZTogdGhpcy5kYXRhLmFkZHJlc3MudGF4Q29kZSB8fCAnJyxcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMuaW5kdXN0cnlDb2RlLnNldFZhbGlkYXRvcnMobnVsbCk7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9scy5pbmR1c3RyeU5hbWUuc2V0VmFsaWRhdG9ycyhudWxsKTtcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnRlcnJpdG9yeS5zZXRWYWxpZGF0b3JzKG51bGwpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmRhdGEuYmFzZUluZHVzdHJ5Q29kZSkge1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMuaW5kdXN0cnlDb2RlLnNldFZhbHVlKHRoaXMuZGF0YS5iYXNlSW5kdXN0cnlDb2RlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kYXRhLnVzZVRheENvZGUpIHtcclxuICAgICAgdGhpcy5sb2FkVGF4ZXMoZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubG9hZENvdW50cmllcyhmYWxzZSwgISF0aGlzLmRhdGE/LmFkZHJlc3M/LmNvdW50cnlDb2RlKTtcclxuICAgIHRoaXMubG9hZEluZHVzdHJ5KGZhbHNlKTtcclxuICAgIHRoaXMubG9hZFRlcnJpdG9yaWVzTGlzdChmYWxzZSk7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuZGF0YS51c2VyU2V0dGluZ3MuYnBFZGl0U2FsZXNQZXJzb25PbkFkZHJlc3MgJiZcclxuICAgICAgdGhpcy5kYXRhLmFkZHJlc3NUeXBlID09PSAnUydcclxuICAgICkge1xyXG4gICAgICB0aGlzLmxvYWRTYWxlc0VtcGxveWVlKGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kYXRhPy5hZGRyZXNzPy5jb3VudHJ5Q29kZSkge1xyXG4gICAgICB0aGlzLmxvYWRTdGF0ZXMoZmFsc2UsICEhdGhpcy5kYXRhPy5hZGRyZXNzPy5zdGF0ZUNvZGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZm9ybS5nZXQoJ2NvdW50cnlDb2RlJykhLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgIHRoaXMubG9hZFN0YXRlcygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdpbmR1c3RyeUNvZGUnKSEudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLnNldEluZHVzdHJ5TmFtZSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgY291bnRyeUNvZGVDaGFuZ2VkKHZhbDogU2FwQnBBZGRyQ291bnRyeU1vZGVsW10pIHtcclxuICAgIGlmICh2YWw/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgaWYgKHZhbFswXS5pZCAhPT0gdGhpcy5mb3JtLmNvbnRyb2xzLmNvdW50cnlDb2RlLnZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmNvdW50cnlDb2RlLnNldFZhbHVlKHZhbFswXS5pZCk7XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmNvdW50cnlOYW1lLnNldFZhbHVlKHZhbFswXS5uYW1lKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmNvdW50cnlDb2RlLnNldFZhbHVlKCcnKTtcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmNvdW50cnlOYW1lLnNldFZhbHVlKCcnKTtcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnN0YXRlQ29kZS5zZXRWYWx1ZSgnJyk7XHJcbiAgICAgIHRoaXMuc3RhdGVMaXN0LnNldChbXSk7XHJcbiAgICAgIHRoaXMubm90Rm91bmRTdGF0ZXMuc2V0KGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0YXRlQ2hhbmdlZCh2YWw6IFNhcEJwQWRkclN0YXRlTW9kZWxbXSkge1xyXG4gICAgaWYgKHZhbD8ubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMuc3RhdGVDb2RlLnNldFZhbHVlKHZhbFswXS5pZCk7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9scy5zdGF0ZU5hbWUuc2V0VmFsdWUodmFsWzBdLm5hbWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnN0YXRlQ29kZS5zZXRWYWx1ZSgnJyk7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9scy5zdGF0ZU5hbWUuc2V0VmFsdWUoJycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbG9hZFNhbGVzRW1wbG95ZWUocmVmcmVzaCA9IGZhbHNlKSB7XHJcbiAgICB0aGlzLnJlZnJlc2hpbmdEYXRhRnJvbVNhcC5zZXQodHJ1ZSk7XHJcbiAgICB0aGlzLnNhcEJwU2VydmljZS5nZXRTYWxlc0VtcGxveWVlKHJlZnJlc2gpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLnNhbGVzRW1wbG95ZWVMaXN0LnNldChyZXMpO1xyXG4gICAgICB0aGlzLnJlZnJlc2hpbmdEYXRhRnJvbVNhcC5zZXQoZmFsc2UpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsb2FkVGF4ZXMocmVmcmVzaCA9IGZhbHNlKSB7XHJcbiAgICB0aGlzLnJlZnJlc2hpbmdUYXguc2V0KHRydWUpO1xyXG4gICAgdGhpcy5zYXBCcFNlcnZpY2UuZ2V0VGF4ZXMocmVmcmVzaCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMudGF4ZXNMaXN0LnNldChyZXMpO1xyXG4gICAgICB0aGlzLnJlZnJlc2hpbmdUYXguc2V0KGZhbHNlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2F2ZSgpIHtcclxuICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcclxuICAgICAgY29uc3QgdmFsdWVzOiBTYXBCcEFkZHJlc3NEaWFsb2dNb2RlbCA9XHJcbiAgICAgICAgdGhpcy5mb3JtLmdldFJhd1ZhbHVlKCkgYXMgU2FwQnBBZGRyZXNzRGlhbG9nTW9kZWw7XHJcblxyXG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSg8U2FwQnBBZGRyZXNzRGlhbG9nTW9kZWw+e1xyXG4gICAgICAgIC4uLnZhbHVlcyxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNuYWNrQmFyLndhcm5pbmcoXHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3NhcEFkbWluQnAuZmlsbFJlcXVpcmVkRmllbGRzJylcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxvYWRDb3VudHJpZXMocmVmcmVzaCA9IGZhbHNlLCBzZXRJbml0RGF0YSA9IGZhbHNlKSB7XHJcbiAgICB0aGlzLnNhcEJwU2VydmljZS5nZXRBZGRyQ291bnRyeShyZWZyZXNoKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgdGhpcy5jb3VudHJ5TGlzdC5zZXQocmVzKTtcclxuXHJcbiAgICAgIGlmIChzZXRJbml0RGF0YSAmJiB0aGlzLmRhdGE/LmFkZHJlc3M/LmNvdW50cnlDb2RlKSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRDb3VudHJ5ID1cclxuICAgICAgICAgIHJlcy5maW5kKGNvdW50cnkgPT4gY291bnRyeS5pZCA9PT0gdGhpcy5kYXRhLmFkZHJlc3MuY291bnRyeUNvZGUpIHx8XHJcbiAgICAgICAgICBudWxsO1xyXG4gICAgICAgIHRoaXMuaW5pdFNlbGVjdGVkQ291bnRyeS5zZXQoc2VsZWN0ZWRDb3VudHJ5KTtcclxuICAgICAgICB0aGlzLmluaXRTZWFyY2hDb3VudHJ5LnNldChzZWxlY3RlZENvdW50cnk/Lm5hbWUgfHwgJycpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkQ291bnRyeSA9XHJcbiAgICAgICAgICByZXMuZmluZChjb3VudHJ5ID0+IGNvdW50cnkuaWQgPT09IHRoaXMuZGF0YS51c2VyU2V0dGluZ3MuY291bnRyeSkgfHxcclxuICAgICAgICAgIG51bGw7XHJcbiAgICAgICAgdGhpcy5pbml0U2VsZWN0ZWRDb3VudHJ5LnNldChzZWxlY3RlZENvdW50cnkpO1xyXG4gICAgICAgIHRoaXMuaW5pdFNlYXJjaENvdW50cnkuc2V0KHNlbGVjdGVkQ291bnRyeT8ubmFtZSB8fCAnJyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbG9hZEluZHVzdHJ5KHJlZnJlc2ggPSBmYWxzZSkge1xyXG4gICAgdGhpcy5zYXBCcFNlcnZpY2UuZ2V0SW5kdXN0cnkocmVmcmVzaCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMuaW5kdXN0cnlMaXN0LnNldChyZXMpO1xyXG4gICAgICB0aGlzLnNldEluZHVzdHJ5TmFtZSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsb2FkVGVycml0b3JpZXNMaXN0KHJlZnJlc2g6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc2FwQnBTZXJ2aWNlLmdldEFkZHJlc3NUZXJyaXRvcnkocmVmcmVzaCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMudGVycml0b3JpZXNMaXN0LnNldChyZXMpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsb2FkU3RhdGVzKHJlc2ZyZXNoID0gZmFsc2UsIHNldEluaXREYXRhID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IGNvdW50cnkgPSB0aGlzLmZvcm0uY29udHJvbHMuY291bnRyeUNvZGUudmFsdWU7XHJcbiAgICB0aGlzLnNhcEJwU2VydmljZS5nZXRBZGRyU3RhdGUocmVzZnJlc2gsIGNvdW50cnkpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLnN0YXRlTGlzdC5zZXQocmVzKTtcclxuICAgICAgdGhpcy5ub3RGb3VuZFN0YXRlcy5zZXQoIShyZXM/Lmxlbmd0aCA+IDApKTtcclxuXHJcbiAgICAgIGlmIChzZXRJbml0RGF0YSkge1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkU3RhdGUgPVxyXG4gICAgICAgICAgcmVzLmZpbmQoc3RhdGUgPT4gc3RhdGUuaWQgPT09IHRoaXMuZGF0YS5hZGRyZXNzLnN0YXRlQ29kZSkgfHwgbnVsbDtcclxuICAgICAgICB0aGlzLmluaXRTZWxlY3RlZFN0YXRlLnNldChzZWxlY3RlZFN0YXRlKTtcclxuICAgICAgICB0aGlzLmluaXRTZWFyY2hTdGF0ZS5zZXQoc2VsZWN0ZWRTdGF0ZT8ubmFtZSB8fCAnJyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRJbmR1c3RyeU5hbWUoKSB7XHJcbiAgICBjb25zdCBpbmR1c3RyeUNvZGUgPSB0aGlzLmZvcm0uY29udHJvbHMuaW5kdXN0cnlDb2RlLnZhbHVlO1xyXG5cclxuICAgIGlmIChpbmR1c3RyeUNvZGUpIHtcclxuICAgICAgY29uc3QgZm91bmRJbmR1c3RyeSA9IHRoaXMuaW5kdXN0cnlMaXN0KCkuZmluZChcclxuICAgICAgICBpbmR1c3RyeSA9PiBpbmR1c3RyeS5pZCA9PT0gaW5kdXN0cnlDb2RlXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9scy5pbmR1c3RyeU5hbWUuc2V0VmFsdWUoZm91bmRJbmR1c3RyeT8ubmFtZSB8fCAnJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMuaW5kdXN0cnlOYW1lLnNldFZhbHVlKCcnKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGgxIG1hdC1kaWFsb2ctdGl0bGU+e3sgJ3NhcEFkbWluQnAuYWRkcmVzcycgfCB0cmFuc2xhdGUgfX08L2gxPlxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cclxuICBAaWYgKGZvcm0pIHtcclxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGlkPVwiYWRkcmVzcy1jcmVhdGUtZm9ybVwiIChuZ1N1Ym1pdCk9XCJzYXZlKClcIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+e3sgJ3NhcEFkbWluQnAuYWRkcmVzcycgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhZGRyZXNzXCJcclxuICAgICAgICAgIHJlcXVpcmVkXHJcbiAgICAgICAgICBbbWF4TGVuZ3RoXT1cIjUwXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57eyAnc2FwQWRtaW5CcC5hZGRyZXNzMicgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhZGRyZXNzMlwiXHJcbiAgICAgICAgICBbbWF4TGVuZ3RoXT1cIjUwXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57eyAnc2FwQWRtaW5CcC5hZGRyZXNzMycgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhZGRyZXNzM1wiXHJcbiAgICAgICAgICBbbWF4TGVuZ3RoXT1cIjUwXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57eyAnc2FwQWRtaW5CcC5zdHJlZXQnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic3RyZWV0XCJcclxuICAgICAgICAgIHJlcXVpcmVkXHJcbiAgICAgICAgICBbbWF4TGVuZ3RoXT1cIjEwMFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+e3sgJ3NhcEFkbWluQnAuYmxvY2snIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiYmxvY2tcIiBbbWF4TGVuZ3RoXT1cIjEwMFwiIC8+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LWxhYmVsPnt7ICdzYXBBZG1pbkJwLmNpdHknIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY2l0eVwiXHJcbiAgICAgICAgICByZXF1aXJlZFxyXG4gICAgICAgICAgW21heExlbmd0aF09XCIxMDBcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LWxhYmVsPnt7ICdzYXBBZG1pbkJwLnppcENvZGUnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiemlwQ29kZVwiXHJcbiAgICAgICAgICByZXF1aXJlZFxyXG4gICAgICAgICAgW21heExlbmd0aF09XCIyMFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+e3sgJ3NhcEFkbWluQnAuY291bnR5JyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvdW50eVwiXHJcbiAgICAgICAgICBbbWF4TGVuZ3RoXT1cIjEwMFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+e3sgJ3NhcEFkbWluQnAuc3RyZWV0Tm8nIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic3RyZWV0Tm9cIlxyXG4gICAgICAgICAgW21heExlbmd0aF09XCIxMDBcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LWxhYmVsPnt7ICdzYXBBZG1pbkJwLmJ1aWxkaW5nJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImJ1aWxkaW5nXCJcclxuICAgICAgICAgIFttYXhMZW5ndGhdPVwiMjU2MDAwXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57eyAnc2FwQWRtaW5CcC50ZXJyaXRvcnknIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwidGVycml0b3J5XCIgW3JlcXVpcmVkXT1cIiFkYXRhLmFkZHJlc3NcIj5cclxuICAgICAgICAgIEBmb3IgKHRlcnJpdG9yeSBvZiB0ZXJyaXRvcmllc0xpc3QoKTsgdHJhY2sgdGVycml0b3J5LnRlcnJpdG9yeUlkKSB7XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJ0ZXJyaXRvcnkudGVycml0b3J5SWRcIj57eyB0ZXJyaXRvcnkudGVycml0b3J5TmFtZSB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LWxhYmVsPnt7ICdzYXBBZG1pbkJwLmluZHVzdHJ5Q29kZScgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJpbmR1c3RyeUNvZGVcIiBbcmVxdWlyZWRdPVwiIWRhdGEuYWRkcmVzc1wiPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIicnXCI+e3tcclxuICAgICAgICAgICAgJ3NhcEFkbWluQnAuZW1wdHknIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIEBmb3IgKGluZHVzdHJ5IG9mIGluZHVzdHJ5TGlzdCgpOyB0cmFjayBpbmR1c3RyeSkge1xyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiaW5kdXN0cnkuaWRcIj57eyBpbmR1c3RyeS5uYW1lIH19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgQGlmIChcclxuICAgICAgICBkYXRhLnVzZXJTZXR0aW5ncy5icEVkaXRTYWxlc1BlcnNvbk9uQWRkcmVzcyAmJiBkYXRhLmFkZHJlc3NUeXBlID09PSAnUydcclxuICAgICAgKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiY29sXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudFwiPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7ICdzYXBBZG1pbkJwLnNhbGVzUGVyc29uMScgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwic2FsZXNQZXJzb24xXCI+XHJcbiAgICAgICAgICAgICAgQGZvciAoc2FsZXNFbXBsb3llZSBvZiBzYWxlc0VtcGxveWVlTGlzdCgpOyB0cmFjayBzYWxlc0VtcGxveWVlKSB7XHJcbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwic2FsZXNFbXBsb3llZS5uYW1lXCI+e3tcclxuICAgICAgICAgICAgICAgICAgc2FsZXNFbXBsb3llZS5uYW1lXHJcbiAgICAgICAgICAgICAgICB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCInc2FwQWRtaW5CcC5yZWZyZXNoRnJvbVNhcCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwibG9hZFNhbGVzRW1wbG95ZWUodHJ1ZSlcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwicmVmcmVzaGluZ0RhdGFGcm9tU2FwKClcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bWF0LWljb24+cmVmcmVzaDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKFxyXG4gICAgICAgIGRhdGEudXNlclNldHRpbmdzLmJwRWRpdFNhbGVzUGVyc29uT25BZGRyZXNzICYmIGRhdGEuYWRkcmVzc1R5cGUgPT09ICdTJ1xyXG4gICAgICApIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJjb2xcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50XCI+XHJcbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgJ3NhcEFkbWluQnAuc2FsZXNQZXJzb24yJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJzYWxlc1BlcnNvbjJcIj5cclxuICAgICAgICAgICAgICBAZm9yIChzYWxlc0VtcGxveWVlIG9mIHNhbGVzRW1wbG95ZWVMaXN0KCk7IHRyYWNrIHNhbGVzRW1wbG95ZWUpIHtcclxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJzYWxlc0VtcGxveWVlLm5hbWVcIj57e1xyXG4gICAgICAgICAgICAgICAgICBzYWxlc0VtcGxveWVlLm5hbWVcclxuICAgICAgICAgICAgICAgIH19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidzYXBBZG1pbkJwLnJlZnJlc2hGcm9tU2FwJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJsb2FkU2FsZXNFbXBsb3llZSh0cnVlKVwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWZyZXNoaW5nRGF0YUZyb21TYXAoKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5yZWZyZXNoPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoZGF0YS51c2VUYXhDb2RlKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiY29sXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudFwiPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7ICdzYXBBZG1pbkJwLnRheENvZGUnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInRheENvZGVcIj5cclxuICAgICAgICAgICAgICBAZm9yICh0YXggb2YgdGF4ZXNMaXN0KCk7IHRyYWNrIHRheCkge1xyXG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInRheC5jb2RlXCJcclxuICAgICAgICAgICAgICAgICAgPnt7IHRheC5uYW1lIH19OiB7eyB0YXgucmF0ZSB9fTwvbWF0LW9wdGlvblxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidzYXBBZG1pbkJwLnJlZnJlc2gnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImxvYWRUYXhlcyh0cnVlKVwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWZyZXNoaW5nVGF4KClcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bWF0LWljb24+cmVmcmVzaDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57eyAnc2FwQWRtaW5CcC5zdGF0dXMnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwic3RhdHVzXCI+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwibnVsbFwiPnt7XHJcbiAgICAgICAgICAgICdzYXBBZG1pbkJwLmVtcHR5JyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiJ0FjdGl2ZSdcIj57e1xyXG4gICAgICAgICAgICAnc2FwQWRtaW5CcC5hY3RpdmUnIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCInSW5hY3RpdmUnXCI+e3tcclxuICAgICAgICAgICAgJ3NhcEFkbWluQnAuaW5hY3RpdmUnIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxuZ3gtc3Qtc2VsZWN0LXRhYmxlXHJcbiAgICAgICAgW2luaXRTZWxlY3RlZF09XCJpbml0U2VsZWN0ZWRDb3VudHJ5KClcIlxyXG4gICAgICAgIFtpbml0U2VhcmNoVmFsXT1cImluaXRTZWFyY2hDb3VudHJ5KClcIlxyXG4gICAgICAgIFt0YWJsZURhdGFdPVwiY291bnRyeUxpc3QoKVwiXHJcbiAgICAgICAgW3NldEluaXRDb2x1bW5zXT1cIntcclxuICAgICAgICAgIGlkOiAoJ3NhcEFkbWluQnAuaWQnIHwgdHJhbnNsYXRlKSxcclxuICAgICAgICAgIG5hbWU6ICgnc2FwQWRtaW5CcC5uYW1lJyB8IHRyYW5zbGF0ZSlcclxuICAgICAgICB9XCJcclxuICAgICAgICBbdGl0bGVdPVwiJ3NhcEFkbWluQnAuY291bnRyeScgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcclxuICAgICAgICBbdmFsaWRFcnJvcl09XCJmb3JtLmdldCgnY291bnRyeUNvZGUnKSEuaW52YWxpZFwiXHJcbiAgICAgICAgW3NlYXJjaExhYmVsXT1cIidzYXBBZG1pbkJwLnNlYXJjaCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIFtzZWxlY3RlZExhYmVsXT1cIidzYXBBZG1pbkJwLnNlbGVjdGVkJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgKHJldHVyblJvd1NlbGVjdGVkKT1cImNvdW50cnlDb2RlQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgPlxyXG4gICAgICA8L25neC1zdC1zZWxlY3QtdGFibGU+XHJcbiAgICAgIEBpZiAobm90Rm91bmRTdGF0ZXMoKSkge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC13YXJuaW5nXCIgcm9sZT1cImFsZXJ0XCI+XHJcbiAgICAgICAgICB7eyAnc2FwQWRtaW5CcC5ub3RGb3VuZFN0YXRlcycgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgICA8bmd4LXN0LXNlbGVjdC10YWJsZVxyXG4gICAgICAgIFtpbml0U2VsZWN0ZWRdPVwiaW5pdFNlbGVjdGVkU3RhdGUoKVwiXHJcbiAgICAgICAgW2luaXRTZWFyY2hWYWxdPVwiaW5pdFNlYXJjaFN0YXRlKClcIlxyXG4gICAgICAgIFt0YWJsZURhdGFdPVwic3RhdGVMaXN0KClcIlxyXG4gICAgICAgIFtzZXRJbml0Q29sdW1uc109XCJ7XHJcbiAgICAgICAgICBpZDogKCdzYXBBZG1pbkJwLmlkJyB8IHRyYW5zbGF0ZSksXHJcbiAgICAgICAgICBuYW1lOiAoJ3NhcEFkbWluQnAubmFtZScgfCB0cmFuc2xhdGUpXHJcbiAgICAgICAgfVwiXHJcbiAgICAgICAgW3RpdGxlXT1cIidzYXBBZG1pbkJwLnN0YXRlJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgW3JlcXVpcmVkXT1cImZhbHNlXCJcclxuICAgICAgICBbdmFsaWRFcnJvcl09XCJmYWxzZVwiXHJcbiAgICAgICAgW3NlYXJjaExhYmVsXT1cIidzYXBBZG1pbkJwLnNlYXJjaCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIFtzZWxlY3RlZExhYmVsXT1cIidzYXBBZG1pbkJwLnNlbGVjdGVkJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgKHJldHVyblJvd1NlbGVjdGVkKT1cInN0YXRlQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgPlxyXG4gICAgICA8L25neC1zdC1zZWxlY3QtdGFibGU+XHJcbiAgICA8L2Zvcm0+XHJcbiAgfVxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhY3Rpb24tcm93XCIgbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4gIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwiY2FuY2VsKClcIj5cclxuICAgIHt7ICdzYXBBZG1pbkJwLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cclxuICA8L2J1dHRvbj5cclxuICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBtYXQtcmFpc2VkLWJ1dHRvblxyXG4gICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICB0eXBlPVwic3VibWl0XCJcclxuICAgICAgZm9ybT1cImFkZHJlc3MtY3JlYXRlLWZvcm1cIlxyXG4gICAgPlxyXG4gICAgICB7eyAnc2FwQWRtaW5CcC5zYXZlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FwLWJwLWNyZWF0ZS1hZGRyZXNzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdC1zYXAtYnAvc3JjL2xpYi9jb21wb25lbnRzL3NhcC1icC1jcmVhdGUtYWRkcmVzcy9zYXAtYnAtY3JlYXRlLWFkZHJlc3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXNhcC1icC9zcmMvbGliL2NvbXBvbmVudHMvc2FwLWJwLWNyZWF0ZS1hZGRyZXNzL3NhcC1icC1jcmVhdGUtYWRkcmVzcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBUyxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUk3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUt2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBUXpFLE1BQU0sT0FBTywyQkFBMkI7SUEwRHRDO1FBekRBLFNBQUksR0FBRyxNQUFNLENBQUMsZUFBZSxDQU01QixDQUFDO1FBQ0YsY0FBUyxHQUFHLE1BQU0sQ0FBQyxDQUFBLFlBQXlDLENBQUEsQ0FBQyxDQUFDO1FBQ3RELGlCQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BDLGFBQVEsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNyQyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JB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QUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUM1QyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssWUFBWSxDQUN6QyxDQUFDO1lBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvQyxDQUFDO0lBQ0gsQ0FBQzsrR0FoUFUsMkJBQTJCO21HQUEzQiwyQkFBMkIsaUVDckJ4Qyxzd1NBMlBBOzs0RkR0T2EsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFNhcEJwQWRkcmVzc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NhcC1icC1hZGRyZXNzLm1vZGVsJztcclxuaW1wb3J0IHsgU2FwQnBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2FwLWJwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTYXBCcEFkZHJDb3VudHJ5TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2FwLWJwLWFkZHItY291bnRyeS5tb2RlbCc7XHJcbmltcG9ydCB7IFNhcEJwQWRkclN0YXRlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2FwLWJwLWFkZHItc3RhdGUubW9kZWwnO1xyXG5pbXBvcnQgeyBTYXBCcEFkZHJlc3NEaWFsb2dNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zYXAtYnAtYWRkcmVzcy1kaWFsb2cubW9kZWwnO1xyXG5pbXBvcnQgeyBTdFNuYWNrQmFyU2VydmljZSB9IGZyb20gJ25neC1zdC1zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IFNhcEJwSW5kdXN0cnlNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zYXAtYnAtaW5kdXN0cnkubW9kZWwnO1xyXG5pbXBvcnQgeyBTYXBCcFNhbGVzRW1wbG95ZWVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zYXAtYnAtc2FsZXMtZW1wbG95ZWUubW9kZWwnO1xyXG5pbXBvcnQgeyBTYXBCcFRheCB9IGZyb20gJy4uLy4uL21vZGVscy9zYXAtYnAtdGF4Lm1vZGVsJztcclxuaW1wb3J0IHsgU2FwQnBVc2VyU2V0dGluZ3MgfSBmcm9tICcuLi9zYXAtYnAtYmFzZS1jcmVhdGUtZWRpdCc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgU2FwQnBBZGRyZXNzVGVycml0b3J5TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2FwLWJwLWFkZHJlc3MtdGVycml0b3J5Lm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXNhcC1icC1jcmVhdGUtYWRkcmVzcycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NhcC1icC1jcmVhdGUtYWRkcmVzcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2FwLWJwLWNyZWF0ZS1hZGRyZXNzLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYXBCcENyZWF0ZUFkZHJlc3NDb21wb25lbnQge1xyXG4gIGRhdGEgPSBpbmplY3QoTUFUX0RJQUxPR19EQVRBKSBhcyB7XHJcbiAgICBhZGRyZXNzOiBTYXBCcEFkZHJlc3NNb2RlbDtcclxuICAgIGJhc2VJbmR1c3RyeUNvZGU6IG51bWJlcjtcclxuICAgIGFkZHJlc3NUeXBlOiAnQicgfCAnUyc7XHJcbiAgICB1c2VUYXhDb2RlOiBib29sZWFuO1xyXG4gICAgdXNlclNldHRpbmdzOiBTYXBCcFVzZXJTZXR0aW5ncztcclxuICB9O1xyXG4gIGRpYWxvZ1JlZiA9IGluamVjdChNYXREaWFsb2dSZWY8U2FwQnBDcmVhdGVBZGRyZXNzQ29tcG9uZW50Pik7XHJcbiAgcHJpdmF0ZSBzYXBCcFNlcnZpY2UgPSBpbmplY3QoU2FwQnBTZXJ2aWNlKTtcclxuICBwcml2YXRlIHNuYWNrQmFyID0gaW5qZWN0KFN0U25hY2tCYXJTZXJ2aWNlKTtcclxuICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBmYiA9IGluamVjdChOb25OdWxsYWJsZUZvcm1CdWlsZGVyKTtcclxuXHJcbiAgZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgYWRkcmVzczogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgIGFkZHJlc3MyOiAnJyxcclxuICAgIGFkZHJlc3MzOiAnJyxcclxuICAgIHN0cmVldDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgIGJsb2NrOiAnJyxcclxuICAgIGNpdHk6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICB6aXBDb2RlOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgY291bnR5OiAnJyxcclxuICAgIHRlcnJpdG9yeTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgIHN0YXRlQ29kZTogJycsXHJcbiAgICBzdGF0ZU5hbWU6ICcnLFxyXG4gICAgY291bnRyeUNvZGU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICBjb3VudHJ5TmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgIHN0cmVldE5vOiAnJyxcclxuICAgIGJ1aWxkaW5nOiAnJyxcclxuICAgIGluZHVzdHJ5Q29kZTogWzxudW1iZXIgfCBudWxsPm51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgaW5kdXN0cnlOYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgc3RhdHVzOiA8c3RyaW5nIHwgbnVsbD4nJyxcclxuICAgIHNhbGVzUGVyc29uMTogJycsXHJcbiAgICBzYWxlc1BlcnNvbjI6ICcnLFxyXG4gICAgdGF4Q29kZTogJycsXHJcbiAgfSk7XHJcblxyXG4gIGNvdW50cnlMaXN0ID0gc2lnbmFsPFNhcEJwQWRkckNvdW50cnlNb2RlbFtdPihbXSk7XHJcbiAgc3RhdGVMaXN0ID0gc2lnbmFsPFNhcEJwQWRkclN0YXRlTW9kZWxbXT4oW10pO1xyXG4gIGluZHVzdHJ5TGlzdCA9IHNpZ25hbDxTYXBCcEluZHVzdHJ5TW9kZWxbXT4oW10pO1xyXG5cclxuICBpbml0U2VsZWN0ZWRDb3VudHJ5ID0gc2lnbmFsPFNhcEJwQWRkckNvdW50cnlNb2RlbCB8IG51bGw+KG51bGwpO1xyXG4gIGluaXRTZWFyY2hDb3VudHJ5ID0gc2lnbmFsPHN0cmluZz4oJycpO1xyXG5cclxuICBpbml0U2VsZWN0ZWRTdGF0ZSA9IHNpZ25hbDxTYXBCcEFkZHJTdGF0ZU1vZGVsIHwgbnVsbD4obnVsbCk7XHJcbiAgaW5pdFNlYXJjaFN0YXRlID0gc2lnbmFsPHN0cmluZz4oJycpO1xyXG5cclxuICBub3RGb3VuZFN0YXRlcyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIHRlcnJpdG9yaWVzTGlzdCA9IHNpZ25hbDxTYXBCcEFkZHJlc3NUZXJyaXRvcnlNb2RlbFtdPihbXSk7XHJcblxyXG4gIHJlZnJlc2hpbmdEYXRhRnJvbVNhcCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcbiAgc2FsZXNFbXBsb3llZUxpc3QgPSBzaWduYWw8U2FwQnBTYWxlc0VtcGxveWVlTW9kZWxbXT4oW10pO1xyXG5cclxuICB0YXhlc0xpc3QgPSBzaWduYWw8U2FwQnBUYXhbXT4oW10pO1xyXG4gIHJlZnJlc2hpbmdUYXggPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIGlmICh0aGlzLmRhdGEgJiYgdGhpcy5kYXRhLmFkZHJlc3MpIHtcclxuICAgICAgdGhpcy5mb3JtLnNldFZhbHVlKHtcclxuICAgICAgICBhZGRyZXNzOiB0aGlzLmRhdGEuYWRkcmVzcy5hZGRyZXNzLFxyXG4gICAgICAgIGFkZHJlc3MyOiB0aGlzLmRhdGEuYWRkcmVzcy5hZGRyZXNzMixcclxuICAgICAgICBhZGRyZXNzMzogdGhpcy5kYXRhLmFkZHJlc3MuYWRkcmVzczMsXHJcbiAgICAgICAgc3RyZWV0OiB0aGlzLmRhdGEuYWRkcmVzcy5zdHJlZXQsXHJcbiAgICAgICAgYmxvY2s6IHRoaXMuZGF0YS5hZGRyZXNzLmJsb2NrLFxyXG4gICAgICAgIGNpdHk6IHRoaXMuZGF0YS5hZGRyZXNzLmNpdHksXHJcbiAgICAgICAgemlwQ29kZTogdGhpcy5kYXRhLmFkZHJlc3MuemlwQ29kZSxcclxuICAgICAgICBjb3VudHk6IHRoaXMuZGF0YS5hZGRyZXNzLmNvdW50eSxcclxuICAgICAgICB0ZXJyaXRvcnk6IHRoaXMuZGF0YS5hZGRyZXNzLnRlcnJpdG9yeSxcclxuICAgICAgICBzdGF0ZUNvZGU6IHRoaXMuZGF0YS5hZGRyZXNzLnN0YXRlQ29kZSxcclxuICAgICAgICBzdGF0ZU5hbWU6IHRoaXMuZGF0YS5hZGRyZXNzLnN0YXRlTmFtZSxcclxuICAgICAgICBjb3VudHJ5Q29kZTogdGhpcy5kYXRhLmFkZHJlc3MuY291bnRyeUNvZGUsXHJcbiAgICAgICAgY291bnRyeU5hbWU6IHRoaXMuZGF0YS5hZGRyZXNzLmNvdW50cnlOYW1lLFxyXG4gICAgICAgIHN0cmVldE5vOiB0aGlzLmRhdGEuYWRkcmVzcy5zdHJlZXRObyxcclxuICAgICAgICBidWlsZGluZzogdGhpcy5kYXRhLmFkZHJlc3MuYnVpbGRpbmcsXHJcbiAgICAgICAgaW5kdXN0cnlDb2RlOlxyXG4gICAgICAgICAgdGhpcy5kYXRhLmFkZHJlc3MuaW5kdXN0cnlDb2RlIHx8IHRoaXMuZGF0YS5iYXNlSW5kdXN0cnlDb2RlIHx8IG51bGwsXHJcbiAgICAgICAgaW5kdXN0cnlOYW1lOiB0aGlzLmRhdGEuYWRkcmVzcy5pbmR1c3RyeU5hbWUsXHJcbiAgICAgICAgc3RhdHVzOiB0aGlzLmRhdGEuYWRkcmVzcy5zdGF0dXMsXHJcbiAgICAgICAgc2FsZXNQZXJzb24xOiB0aGlzLmRhdGEuYWRkcmVzcy5zYWxlc1BlcnNvbjEgfHwgJycsXHJcbiAgICAgICAgc2FsZXNQZXJzb24yOiB0aGlzLmRhdGEuYWRkcmVzcy5zYWxlc1BlcnNvbjIgfHwgJycsXHJcbiAgICAgICAgdGF4Q29kZTogdGhpcy5kYXRhLmFkZHJlc3MudGF4Q29kZSB8fCAnJyxcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMuaW5kdXN0cnlDb2RlLnNldFZhbGlkYXRvcnMobnVsbCk7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9scy5pbmR1c3RyeU5hbWUuc2V0VmFsaWRhdG9ycyhudWxsKTtcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnRlcnJpdG9yeS5zZXRWYWxpZGF0b3JzKG51bGwpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmRhdGEuYmFzZUluZHVzdHJ5Q29kZSkge1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMuaW5kdXN0cnlDb2RlLnNldFZhbHVlKHRoaXMuZGF0YS5iYXNlSW5kdXN0cnlDb2RlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kYXRhLnVzZVRheENvZGUpIHtcclxuICAgICAgdGhpcy5sb2FkVGF4ZXMoZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubG9hZENvdW50cmllcyhmYWxzZSwgISF0aGlzLmRhdGE/LmFkZHJlc3M/LmNvdW50cnlDb2RlKTtcclxuICAgIHRoaXMubG9hZEluZHVzdHJ5KGZhbHNlKTtcclxuICAgIHRoaXMubG9hZFRlcnJpdG9yaWVzTGlzdChmYWxzZSk7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuZGF0YS51c2VyU2V0dGluZ3MuYnBFZGl0U2FsZXNQZXJzb25PbkFkZHJlc3MgJiZcclxuICAgICAgdGhpcy5kYXRhLmFkZHJlc3NUeXBlID09PSAnUydcclxuICAgICkge1xyXG4gICAgICB0aGlzLmxvYWRTYWxlc0VtcGxveWVlKGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kYXRhPy5hZGRyZXNzPy5jb3VudHJ5Q29kZSkge1xyXG4gICAgICB0aGlzLmxvYWRTdGF0ZXMoZmFsc2UsICEhdGhpcy5kYXRhPy5hZGRyZXNzPy5zdGF0ZUNvZGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZm9ybS5nZXQoJ2NvdW50cnlDb2RlJykhLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgIHRoaXMubG9hZFN0YXRlcygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdpbmR1c3RyeUNvZGUnKSEudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLnNldEluZHVzdHJ5TmFtZSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgY291bnRyeUNvZGVDaGFuZ2VkKHZhbDogU2FwQnBBZGRyQ291bnRyeU1vZGVsW10pIHtcclxuICAgIGlmICh2YWw/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgaWYgKHZhbFswXS5pZCAhPT0gdGhpcy5mb3JtLmNvbnRyb2xzLmNvdW50cnlDb2RlLnZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmNvdW50cnlDb2RlLnNldFZhbHVlKHZhbFswXS5pZCk7XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmNvdW50cnlOYW1lLnNldFZhbHVlKHZhbFswXS5uYW1lKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmNvdW50cnlDb2RlLnNldFZhbHVlKCcnKTtcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmNvdW50cnlOYW1lLnNldFZhbHVlKCcnKTtcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnN0YXRlQ29kZS5zZXRWYWx1ZSgnJyk7XHJcbiAgICAgIHRoaXMuc3RhdGVMaXN0LnNldChbXSk7XHJcbiAgICAgIHRoaXMubm90Rm91bmRTdGF0ZXMuc2V0KGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0YXRlQ2hhbmdlZCh2YWw6IFNhcEJwQWRkclN0YXRlTW9kZWxbXSkge1xyXG4gICAgaWYgKHZhbD8ubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMuc3RhdGVDb2RlLnNldFZhbHVlKHZhbFswXS5pZCk7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9scy5zdGF0ZU5hbWUuc2V0VmFsdWUodmFsWzBdLm5hbWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnN0YXRlQ29kZS5zZXRWYWx1ZSgnJyk7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9scy5zdGF0ZU5hbWUuc2V0VmFsdWUoJycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbG9hZFNhbGVzRW1wbG95ZWUocmVmcmVzaCA9IGZhbHNlKSB7XHJcbiAgICB0aGlzLnJlZnJlc2hpbmdEYXRhRnJvbVNhcC5zZXQodHJ1ZSk7XHJcbiAgICB0aGlzLnNhcEJwU2VydmljZS5nZXRTYWxlc0VtcGxveWVlKHJlZnJlc2gpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLnNhbGVzRW1wbG95ZWVMaXN0LnNldChyZXMpO1xyXG4gICAgICB0aGlzLnJlZnJlc2hpbmdEYXRhRnJvbVNhcC5zZXQoZmFsc2UpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsb2FkVGF4ZXMocmVmcmVzaCA9IGZhbHNlKSB7XHJcbiAgICB0aGlzLnJlZnJlc2hpbmdUYXguc2V0KHRydWUpO1xyXG4gICAgdGhpcy5zYXBCcFNlcnZpY2UuZ2V0VGF4ZXMocmVmcmVzaCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMudGF4ZXNMaXN0LnNldChyZXMpO1xyXG4gICAgICB0aGlzLnJlZnJlc2hpbmdUYXguc2V0KGZhbHNlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2F2ZSgpIHtcclxuICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcclxuICAgICAgY29uc3QgdmFsdWVzOiBTYXBCcEFkZHJlc3NEaWFsb2dNb2RlbCA9XHJcbiAgICAgICAgdGhpcy5mb3JtLmdldFJhd1ZhbHVlKCkgYXMgU2FwQnBBZGRyZXNzRGlhbG9nTW9kZWw7XHJcblxyXG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSg8U2FwQnBBZGRyZXNzRGlhbG9nTW9kZWw+e1xyXG4gICAgICAgIC4uLnZhbHVlcyxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNuYWNrQmFyLndhcm5pbmcoXHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3NhcEFkbWluQnAuZmlsbFJlcXVpcmVkRmllbGRzJylcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxvYWRDb3VudHJpZXMocmVmcmVzaCA9IGZhbHNlLCBzZXRJbml0RGF0YSA9IGZhbHNlKSB7XHJcbiAgICB0aGlzLnNhcEJwU2VydmljZS5nZXRBZGRyQ291bnRyeShyZWZyZXNoKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgdGhpcy5jb3VudHJ5TGlzdC5zZXQocmVzKTtcclxuXHJcbiAgICAgIGlmIChzZXRJbml0RGF0YSAmJiB0aGlzLmRhdGE/LmFkZHJlc3M/LmNvdW50cnlDb2RlKSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRDb3VudHJ5ID1cclxuICAgICAgICAgIHJlcy5maW5kKGNvdW50cnkgPT4gY291bnRyeS5pZCA9PT0gdGhpcy5kYXRhLmFkZHJlc3MuY291bnRyeUNvZGUpIHx8XHJcbiAgICAgICAgICBudWxsO1xyXG4gICAgICAgIHRoaXMuaW5pdFNlbGVjdGVkQ291bnRyeS5zZXQoc2VsZWN0ZWRDb3VudHJ5KTtcclxuICAgICAgICB0aGlzLmluaXRTZWFyY2hDb3VudHJ5LnNldChzZWxlY3RlZENvdW50cnk/Lm5hbWUgfHwgJycpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkQ291bnRyeSA9XHJcbiAgICAgICAgICByZXMuZmluZChjb3VudHJ5ID0+IGNvdW50cnkuaWQgPT09IHRoaXMuZGF0YS51c2VyU2V0dGluZ3MuY291bnRyeSkgfHxcclxuICAgICAgICAgIG51bGw7XHJcbiAgICAgICAgdGhpcy5pbml0U2VsZWN0ZWRDb3VudHJ5LnNldChzZWxlY3RlZENvdW50cnkpO1xyXG4gICAgICAgIHRoaXMuaW5pdFNlYXJjaENvdW50cnkuc2V0KHNlbGVjdGVkQ291bnRyeT8ubmFtZSB8fCAnJyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbG9hZEluZHVzdHJ5KHJlZnJlc2ggPSBmYWxzZSkge1xyXG4gICAgdGhpcy5zYXBCcFNlcnZpY2UuZ2V0SW5kdXN0cnkocmVmcmVzaCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMuaW5kdXN0cnlMaXN0LnNldChyZXMpO1xyXG4gICAgICB0aGlzLnNldEluZHVzdHJ5TmFtZSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsb2FkVGVycml0b3JpZXNMaXN0KHJlZnJlc2g6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc2FwQnBTZXJ2aWNlLmdldEFkZHJlc3NUZXJyaXRvcnkocmVmcmVzaCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMudGVycml0b3JpZXNMaXN0LnNldChyZXMpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsb2FkU3RhdGVzKHJlc2ZyZXNoID0gZmFsc2UsIHNldEluaXREYXRhID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IGNvdW50cnkgPSB0aGlzLmZvcm0uY29udHJvbHMuY291bnRyeUNvZGUudmFsdWU7XHJcbiAgICB0aGlzLnNhcEJwU2VydmljZS5nZXRBZGRyU3RhdGUocmVzZnJlc2gsIGNvdW50cnkpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLnN0YXRlTGlzdC5zZXQocmVzKTtcclxuICAgICAgdGhpcy5ub3RGb3VuZFN0YXRlcy5zZXQoIShyZXM/Lmxlbmd0aCA+IDApKTtcclxuXHJcbiAgICAgIGlmIChzZXRJbml0RGF0YSkge1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkU3RhdGUgPVxyXG4gICAgICAgICAgcmVzLmZpbmQoc3RhdGUgPT4gc3RhdGUuaWQgPT09IHRoaXMuZGF0YS5hZGRyZXNzLnN0YXRlQ29kZSkgfHwgbnVsbDtcclxuICAgICAgICB0aGlzLmluaXRTZWxlY3RlZFN0YXRlLnNldChzZWxlY3RlZFN0YXRlKTtcclxuICAgICAgICB0aGlzLmluaXRTZWFyY2hTdGF0ZS5zZXQoc2VsZWN0ZWRTdGF0ZT8ubmFtZSB8fCAnJyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRJbmR1c3RyeU5hbWUoKSB7XHJcbiAgICBjb25zdCBpbmR1c3RyeUNvZGUgPSB0aGlzLmZvcm0uY29udHJvbHMuaW5kdXN0cnlDb2RlLnZhbHVlO1xyXG5cclxuICAgIGlmIChpbmR1c3RyeUNvZGUpIHtcclxuICAgICAgY29uc3QgZm91bmRJbmR1c3RyeSA9IHRoaXMuaW5kdXN0cnlMaXN0KCkuZmluZChcclxuICAgICAgICBpbmR1c3RyeSA9PiBpbmR1c3RyeS5pZCA9PT0gaW5kdXN0cnlDb2RlXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9scy5pbmR1c3RyeU5hbWUuc2V0VmFsdWUoZm91bmRJbmR1c3RyeT8ubmFtZSB8fCAnJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMuaW5kdXN0cnlOYW1lLnNldFZhbHVlKCcnKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGgxIG1hdC1kaWFsb2ctdGl0bGU+e3sgJ3NhcEFkbWluQnAuYWRkcmVzcycgfCB0cmFuc2xhdGUgfX08L2gxPlxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cclxuICBAaWYgKGZvcm0pIHtcclxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGlkPVwiYWRkcmVzcy1jcmVhdGUtZm9ybVwiIChuZ1N1Ym1pdCk9XCJzYXZlKClcIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+e3sgJ3NhcEFkbWluQnAuYWRkcmVzcycgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhZGRyZXNzXCJcclxuICAgICAgICAgIHJlcXVpcmVkXHJcbiAgICAgICAgICBbbWF4TGVuZ3RoXT1cIjUwXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57eyAnc2FwQWRtaW5CcC5hZGRyZXNzMicgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhZGRyZXNzMlwiXHJcbiAgICAgICAgICBbbWF4TGVuZ3RoXT1cIjUwXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57eyAnc2FwQWRtaW5CcC5hZGRyZXNzMycgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhZGRyZXNzM1wiXHJcbiAgICAgICAgICBbbWF4TGVuZ3RoXT1cIjUwXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57eyAnc2FwQWRtaW5CcC5zdHJlZXQnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic3RyZWV0XCJcclxuICAgICAgICAgIHJlcXVpcmVkXHJcbiAgICAgICAgICBbbWF4TGVuZ3RoXT1cIjEwMFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+e3sgJ3NhcEFkbWluQnAuYmxvY2snIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiYmxvY2tcIiBbbWF4TGVuZ3RoXT1cIjEwMFwiIC8+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LWxhYmVsPnt7ICdzYXBBZG1pbkJwLmNpdHknIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY2l0eVwiXHJcbiAgICAgICAgICByZXF1aXJlZFxyXG4gICAgICAgICAgW21heExlbmd0aF09XCIxMDBcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LWxhYmVsPnt7ICdzYXBBZG1pbkJwLnppcENvZGUnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiemlwQ29kZVwiXHJcbiAgICAgICAgICByZXF1aXJlZFxyXG4gICAgICAgICAgW21heExlbmd0aF09XCIyMFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+e3sgJ3NhcEFkbWluQnAuY291bnR5JyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvdW50eVwiXHJcbiAgICAgICAgICBbbWF4TGVuZ3RoXT1cIjEwMFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+e3sgJ3NhcEFkbWluQnAuc3RyZWV0Tm8nIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic3RyZWV0Tm9cIlxyXG4gICAgICAgICAgW21heExlbmd0aF09XCIxMDBcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LWxhYmVsPnt7ICdzYXBBZG1pbkJwLmJ1aWxkaW5nJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImJ1aWxkaW5nXCJcclxuICAgICAgICAgIFttYXhMZW5ndGhdPVwiMjU2MDAwXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57eyAnc2FwQWRtaW5CcC50ZXJyaXRvcnknIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwidGVycml0b3J5XCIgW3JlcXVpcmVkXT1cIiFkYXRhLmFkZHJlc3NcIj5cclxuICAgICAgICAgIEBmb3IgKHRlcnJpdG9yeSBvZiB0ZXJyaXRvcmllc0xpc3QoKTsgdHJhY2sgdGVycml0b3J5LnRlcnJpdG9yeUlkKSB7XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJ0ZXJyaXRvcnkudGVycml0b3J5SWRcIj57eyB0ZXJyaXRvcnkudGVycml0b3J5TmFtZSB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LWxhYmVsPnt7ICdzYXBBZG1pbkJwLmluZHVzdHJ5Q29kZScgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJpbmR1c3RyeUNvZGVcIiBbcmVxdWlyZWRdPVwiIWRhdGEuYWRkcmVzc1wiPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIicnXCI+e3tcclxuICAgICAgICAgICAgJ3NhcEFkbWluQnAuZW1wdHknIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIEBmb3IgKGluZHVzdHJ5IG9mIGluZHVzdHJ5TGlzdCgpOyB0cmFjayBpbmR1c3RyeSkge1xyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiaW5kdXN0cnkuaWRcIj57eyBpbmR1c3RyeS5uYW1lIH19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgQGlmIChcclxuICAgICAgICBkYXRhLnVzZXJTZXR0aW5ncy5icEVkaXRTYWxlc1BlcnNvbk9uQWRkcmVzcyAmJiBkYXRhLmFkZHJlc3NUeXBlID09PSAnUydcclxuICAgICAgKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiY29sXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudFwiPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7ICdzYXBBZG1pbkJwLnNhbGVzUGVyc29uMScgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwic2FsZXNQZXJzb24xXCI+XHJcbiAgICAgICAgICAgICAgQGZvciAoc2FsZXNFbXBsb3llZSBvZiBzYWxlc0VtcGxveWVlTGlzdCgpOyB0cmFjayBzYWxlc0VtcGxveWVlKSB7XHJcbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwic2FsZXNFbXBsb3llZS5uYW1lXCI+e3tcclxuICAgICAgICAgICAgICAgICAgc2FsZXNFbXBsb3llZS5uYW1lXHJcbiAgICAgICAgICAgICAgICB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCInc2FwQWRtaW5CcC5yZWZyZXNoRnJvbVNhcCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwibG9hZFNhbGVzRW1wbG95ZWUodHJ1ZSlcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwicmVmcmVzaGluZ0RhdGFGcm9tU2FwKClcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bWF0LWljb24+cmVmcmVzaDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKFxyXG4gICAgICAgIGRhdGEudXNlclNldHRpbmdzLmJwRWRpdFNhbGVzUGVyc29uT25BZGRyZXNzICYmIGRhdGEuYWRkcmVzc1R5cGUgPT09ICdTJ1xyXG4gICAgICApIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJjb2xcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50XCI+XHJcbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgJ3NhcEFkbWluQnAuc2FsZXNQZXJzb24yJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJzYWxlc1BlcnNvbjJcIj5cclxuICAgICAgICAgICAgICBAZm9yIChzYWxlc0VtcGxveWVlIG9mIHNhbGVzRW1wbG95ZWVMaXN0KCk7IHRyYWNrIHNhbGVzRW1wbG95ZWUpIHtcclxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJzYWxlc0VtcGxveWVlLm5hbWVcIj57e1xyXG4gICAgICAgICAgICAgICAgICBzYWxlc0VtcGxveWVlLm5hbWVcclxuICAgICAgICAgICAgICAgIH19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidzYXBBZG1pbkJwLnJlZnJlc2hGcm9tU2FwJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJsb2FkU2FsZXNFbXBsb3llZSh0cnVlKVwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWZyZXNoaW5nRGF0YUZyb21TYXAoKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5yZWZyZXNoPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoZGF0YS51c2VUYXhDb2RlKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiY29sXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudFwiPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7ICdzYXBBZG1pbkJwLnRheENvZGUnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInRheENvZGVcIj5cclxuICAgICAgICAgICAgICBAZm9yICh0YXggb2YgdGF4ZXNMaXN0KCk7IHRyYWNrIHRheCkge1xyXG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInRheC5jb2RlXCJcclxuICAgICAgICAgICAgICAgICAgPnt7IHRheC5uYW1lIH19OiB7eyB0YXgucmF0ZSB9fTwvbWF0LW9wdGlvblxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidzYXBBZG1pbkJwLnJlZnJlc2gnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImxvYWRUYXhlcyh0cnVlKVwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWZyZXNoaW5nVGF4KClcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bWF0LWljb24+cmVmcmVzaDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57eyAnc2FwQWRtaW5CcC5zdGF0dXMnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwic3RhdHVzXCI+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwibnVsbFwiPnt7XHJcbiAgICAgICAgICAgICdzYXBBZG1pbkJwLmVtcHR5JyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiJ0FjdGl2ZSdcIj57e1xyXG4gICAgICAgICAgICAnc2FwQWRtaW5CcC5hY3RpdmUnIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCInSW5hY3RpdmUnXCI+e3tcclxuICAgICAgICAgICAgJ3NhcEFkbWluQnAuaW5hY3RpdmUnIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxuZ3gtc3Qtc2VsZWN0LXRhYmxlXHJcbiAgICAgICAgW2luaXRTZWxlY3RlZF09XCJpbml0U2VsZWN0ZWRDb3VudHJ5KClcIlxyXG4gICAgICAgIFtpbml0U2VhcmNoVmFsXT1cImluaXRTZWFyY2hDb3VudHJ5KClcIlxyXG4gICAgICAgIFt0YWJsZURhdGFdPVwiY291bnRyeUxpc3QoKVwiXHJcbiAgICAgICAgW3NldEluaXRDb2x1bW5zXT1cIntcclxuICAgICAgICAgIGlkOiAoJ3NhcEFkbWluQnAuaWQnIHwgdHJhbnNsYXRlKSxcclxuICAgICAgICAgIG5hbWU6ICgnc2FwQWRtaW5CcC5uYW1lJyB8IHRyYW5zbGF0ZSlcclxuICAgICAgICB9XCJcclxuICAgICAgICBbdGl0bGVdPVwiJ3NhcEFkbWluQnAuY291bnRyeScgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcclxuICAgICAgICBbdmFsaWRFcnJvcl09XCJmb3JtLmdldCgnY291bnRyeUNvZGUnKSEuaW52YWxpZFwiXHJcbiAgICAgICAgW3NlYXJjaExhYmVsXT1cIidzYXBBZG1pbkJwLnNlYXJjaCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIFtzZWxlY3RlZExhYmVsXT1cIidzYXBBZG1pbkJwLnNlbGVjdGVkJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgKHJldHVyblJvd1NlbGVjdGVkKT1cImNvdW50cnlDb2RlQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgPlxyXG4gICAgICA8L25neC1zdC1zZWxlY3QtdGFibGU+XHJcbiAgICAgIEBpZiAobm90Rm91bmRTdGF0ZXMoKSkge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC13YXJuaW5nXCIgcm9sZT1cImFsZXJ0XCI+XHJcbiAgICAgICAgICB7eyAnc2FwQWRtaW5CcC5ub3RGb3VuZFN0YXRlcycgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgICA8bmd4LXN0LXNlbGVjdC10YWJsZVxyXG4gICAgICAgIFtpbml0U2VsZWN0ZWRdPVwiaW5pdFNlbGVjdGVkU3RhdGUoKVwiXHJcbiAgICAgICAgW2luaXRTZWFyY2hWYWxdPVwiaW5pdFNlYXJjaFN0YXRlKClcIlxyXG4gICAgICAgIFt0YWJsZURhdGFdPVwic3RhdGVMaXN0KClcIlxyXG4gICAgICAgIFtzZXRJbml0Q29sdW1uc109XCJ7XHJcbiAgICAgICAgICBpZDogKCdzYXBBZG1pbkJwLmlkJyB8IHRyYW5zbGF0ZSksXHJcbiAgICAgICAgICBuYW1lOiAoJ3NhcEFkbWluQnAubmFtZScgfCB0cmFuc2xhdGUpXHJcbiAgICAgICAgfVwiXHJcbiAgICAgICAgW3RpdGxlXT1cIidzYXBBZG1pbkJwLnN0YXRlJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgW3JlcXVpcmVkXT1cImZhbHNlXCJcclxuICAgICAgICBbdmFsaWRFcnJvcl09XCJmYWxzZVwiXHJcbiAgICAgICAgW3NlYXJjaExhYmVsXT1cIidzYXBBZG1pbkJwLnNlYXJjaCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIFtzZWxlY3RlZExhYmVsXT1cIidzYXBBZG1pbkJwLnNlbGVjdGVkJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgKHJldHVyblJvd1NlbGVjdGVkKT1cInN0YXRlQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgPlxyXG4gICAgICA8L25neC1zdC1zZWxlY3QtdGFibGU+XHJcbiAgICA8L2Zvcm0+XHJcbiAgfVxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhY3Rpb24tcm93XCIgbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4gIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwiY2FuY2VsKClcIj5cclxuICAgIHt7ICdzYXBBZG1pbkJwLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cclxuICA8L2J1dHRvbj5cclxuICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBtYXQtcmFpc2VkLWJ1dHRvblxyXG4gICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICB0eXBlPVwic3VibWl0XCJcclxuICAgICAgZm9ybT1cImFkZHJlc3MtY3JlYXRlLWZvcm1cIlxyXG4gICAgPlxyXG4gICAgICB7eyAnc2FwQWRtaW5CcC5zYXZlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1107,7 +1107,7 @@ class SapBpCreateAddressComponent {
1107
1107
  countryName: this.data.address.countryName,
1108
1108
  streetNo: this.data.address.streetNo,
1109
1109
  building: this.data.address.building,
1110
- industryCode: this.data.address.industryCode || this.data.baseIndustryCode,
1110
+ industryCode: this.data.address.industryCode || this.data.baseIndustryCode || null,
1111
1111
  industryName: this.data.address.industryName,
1112
1112
  status: this.data.address.status,
1113
1113
  salesPerson1: this.data.address.salesPerson1 || '',