ngx-st-sap-bp 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/sap-bp-details/sap-bp-details.component.mjs +6 -3
- package/esm2020/lib/components/sap-bp-list/sap-bp-list.component.mjs +9 -3
- package/fesm2015/ngx-st-sap-bp.mjs +13 -4
- package/fesm2015/ngx-st-sap-bp.mjs.map +1 -1
- package/fesm2020/ngx-st-sap-bp.mjs +13 -4
- package/fesm2020/ngx-st-sap-bp.mjs.map +1 -1
- package/lib/components/sap-bp-details/sap-bp-details.component.d.ts +2 -1
- package/lib/components/sap-bp-list/sap-bp-list.component.d.ts +2 -1
- package/package.json +1 -1
|
@@ -29,6 +29,7 @@ export class SapBpDetailsComponent {
|
|
|
29
29
|
this.stDialogTranslatedService = stDialogTranslatedService;
|
|
30
30
|
this.router = router;
|
|
31
31
|
this.class = 'display-flex-component';
|
|
32
|
+
this.onlyView = false;
|
|
32
33
|
this.showQryGroup = false;
|
|
33
34
|
this.bpTaxType = BpTaxTypeEnum;
|
|
34
35
|
this.initContactPersonList = [];
|
|
@@ -193,10 +194,10 @@ export class SapBpDetailsComponent {
|
|
|
193
194
|
}
|
|
194
195
|
}
|
|
195
196
|
SapBpDetailsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SapBpDetailsComponent, deps: [{ token: i1.SapBpService }, { token: i2.MatDialog }, { token: i3.TranslateService }, { token: i4.StSnackBarService }, { token: i5.SapBpHelperService }, { token: i6.StDialogTranslatedService }, { token: i7.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
196
|
-
SapBpDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SapBpDetailsComponent, selector: "ngx-st-sap-bp-details", inputs: { id: "id", userSettings: "userSettings" }, host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<div class=\"container-fluid users-list no-cut\">\r\n <div class=\"card\">\r\n <div class=\"card-header card-header-warning\">\r\n <h3 class=\"card-title\">{{ 'sapAdminBp.titleBpDetails' | translate }}</h3>\r\n </div>\r\n\r\n <div class=\"card-body\">\r\n <a class=\"back-link\" [routerLink]=\"['../../']\">\r\n <span class=\"material-icons\">keyboard_backspace</span>\r\n </a>\r\n\r\n <ngx-st-loader\r\n [showLoader]=\"showLoader\"\r\n [positionVal]=\"'fixed'\"\r\n ></ngx-st-loader>\r\n\r\n <div *ngIf=\"bpDetails\">\r\n <div\r\n class=\"actions-buttons\"\r\n *ngIf=\"\r\n (userSettings.oracleBpEdit &&\r\n (!bpDetails.frozen ||\r\n (bpDetails.frozen && bpDetails.cardType === 'C'))) ||\r\n (!userSettings.oracleBpEdit &&\r\n (!bpDetails.frozen ||\r\n (bpDetails.frozen && bpDetails.cardType === 'C')))\r\n \"\r\n >\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <a\r\n [routerLink]=\"['../../', 'edit', bpDetails.cardCode]\"\r\n mat-menu-item\r\n style=\"color: #000\"\r\n >{{ 'sapAdminBp.editBp' | translate }}</a\r\n >\r\n <a mat-menu-item (click)=\"deleteBp()\" style=\"color: #000\">{{\r\n 'sapAdminBp.deleteBp' | translate\r\n }}</a>\r\n </mat-menu>\r\n </div>\r\n\r\n <div\r\n class=\"actions-buttons converting-text\"\r\n *ngIf=\"bpDetails.frozen && bpDetails.cardType === 'L'\"\r\n >\r\n {{ 'sapAdminBp.converting' | translate }}\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'global.cardCode' | translate }}</span>\r\n <p>{{ bpDetails.cardCode || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'global.cardName' | translate }}</span>\r\n <p>{{ bpDetails.cardName || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'global.cardType' | translate }}</span>\r\n <p>{{ bpDetails.cardType || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.cardForeignName' | translate }}</span>\r\n <p>{{ bpDetails.cardForignName || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.groupCode' | translate }}</span>\r\n <p>{{ bpDetails.groupCodeName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.currency' | translate }}</span>\r\n <p>{{ bpDetails.currency || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.tel1' | translate }}</span>\r\n <p>{{ bpDetails.phone1 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.tel1' | translate }}</span>\r\n <p>{{ bpDetails.phone2 || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.cellular' | translate }}</span>\r\n <p>{{ bpDetails.cellular || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.fax' | translate }}</span>\r\n <p>{{ bpDetails.fax || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.email' | translate }}</span>\r\n <p>{{ bpDetails.email || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.webSite' | translate }}</span>\r\n <p>{{ bpDetails.webSite || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.shipType' | translate }}</span>\r\n <p>{{ bpDetails.shipTypeName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.industryCode' | translate }}</span>\r\n <p>{{ bpDetails.industryName || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.licTradNum' | translate }}</span>\r\n <p>{{ bpDetails.licTradNum || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.vatIdUnified' | translate }}</span>\r\n <p>{{ bpDetails.vatIdUnified || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.addId' | translate }}</span>\r\n <p>{{ bpDetails.addId || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.registerNo' | translate }}</span>\r\n <p>{{ bpDetails.registerNo || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.salesEmployee' | translate }}</span>\r\n <p>{{ bpDetails.salesPersonName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.technician' | translate }}</span>\r\n <p>{{ bpDetails.technicianName || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.territory' | translate }}</span>\r\n <p>{{ bpDetails.territoryName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.notes' | translate }}</span>\r\n <p>{{ bpDetails.notes || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.globalId' | translate }}</span>\r\n <p>{{ bpDetails.globalId || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.globalAccount' | translate }}</span>\r\n <p>{{ bpDetails.globalAccount || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.paymentTerms' | translate }}</span>\r\n <p>{{ bpDetails.paymentName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.priceList' | translate }}</span>\r\n <p>{{ bpDetails.pricelistName || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.deliveryInstructions' | translate }}</span>\r\n <p>{{ bpDetails.deliveryInstructions || '-' }}</p>\r\n </div>\r\n\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.freeText' | translate }}</span>\r\n <p>{{ bpDetails.freeText || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <app-sap-bp-list-contact-person\r\n [contactPersons]=\"initContactPersonList\"\r\n [detailsView]=\"true\"\r\n [canEditInDetails]=\"\r\n userSettings.oracleBpEdit &&\r\n (!bpDetails.frozen ||\r\n (bpDetails.frozen && bpDetails.cardType === 'C'))\r\n \"\r\n [disableEdit]=\"disableEditContactPerson()\"\r\n [disableAdd]=\"disableAddContactPerson()\"\r\n (contactPersonListEmitter)=\"setContactPersonsChanged($event)\"\r\n (contactPersonChangedEmitter)=\"contactPersonChanged = $event\"\r\n (deletedContactPersonEmitter)=\"contactPersonDeletedRes($event)\"\r\n ></app-sap-bp-list-contact-person>\r\n\r\n <hr />\r\n\r\n <app-sap-bp-list-address\r\n [addresses]=\"initBillToAddress || []\"\r\n [required]=\"false\"\r\n [errorText]=\"false\"\r\n [addressType]=\"'B'\"\r\n [detailsView]=\"true\"\r\n [canEditInDetails]=\"\r\n userSettings.oracleBpEdit &&\r\n (!bpDetails.frozen ||\r\n (bpDetails.frozen && bpDetails.cardType === 'C'))\r\n \"\r\n [disableEdit]=\"disableEditBillToAddress()\"\r\n [disableAdd]=\"disableAddBillToAddress()\"\r\n [userSettings]=\"userSettings\"\r\n (addressListEmitter)=\"setBillToAddress($event)\"\r\n (addressChangedEmitter)=\"setAddressChanged($event)\"\r\n (deletedAddressEmitter)=\"addressDeletedRes($event)\"\r\n ></app-sap-bp-list-address>\r\n\r\n <hr />\r\n\r\n <app-sap-bp-list-address\r\n [addresses]=\"initShipToAddress || []\"\r\n [required]=\"false\"\r\n [errorText]=\"false\"\r\n [addressType]=\"'S'\"\r\n [detailsView]=\"true\"\r\n [canEditInDetails]=\"\r\n userSettings.oracleBpEdit &&\r\n (!bpDetails.frozen ||\r\n (bpDetails.frozen && bpDetails.cardType === 'C'))\r\n \"\r\n [disableEdit]=\"disableEditShipToAddress()\"\r\n [disableAdd]=\"disableAddShipToAddress()\"\r\n [useTaxCode]=\"userSettings.bpTaxType === bpTaxType.Us\"\r\n [userSettings]=\"userSettings\"\r\n (addressListEmitter)=\"setShipToAddress($event)\"\r\n (addressChangedEmitter)=\"setAddressChanged($event)\"\r\n (deletedAddressEmitter)=\"addressDeletedRes($event)\"\r\n ></app-sap-bp-list-address>\r\n\r\n <hr />\r\n\r\n <div class=\"contact-person-container\">\r\n <div class=\"row align-items-center\">\r\n <p class=\"contact-person-title\">\r\n {{ 'sapAdminBp.qryGroup' | translate }}\r\n </p>\r\n <button\r\n color=\"primary\"\r\n mat-button\r\n (click)=\"showQryGroup = !showQryGroup\"\r\n style=\"font-weight: bold; margin-left: 10px\"\r\n >\r\n <ng-container *ngIf=\"!showQryGroup\">{{\r\n 'global.show' | translate\r\n }}</ng-container>\r\n <ng-container *ngIf=\"showQryGroup\">{{\r\n 'global.hide' | translate\r\n }}</ng-container>\r\n </button>\r\n </div>\r\n\r\n <div class=\"row\" *ngIf=\"showQryGroup\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <div\r\n class=\"row qry-group-row\"\r\n *ngFor=\"let group of bpDetails.qryGroupList | slice: 0 : 32\"\r\n >\r\n <div class=\"qry-group-name\">\r\n {{ group.name }}\r\n </div>\r\n <div class=\"qry-group-val\">\r\n {{\r\n group.value === 'Y'\r\n ? ('global.yes' | translate)\r\n : ('global.no' | translate)\r\n }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <div\r\n class=\"row qry-group-row\"\r\n *ngFor=\"let group of bpDetails.qryGroupList | slice: 32 : 64\"\r\n >\r\n <div class=\"qry-group-name\">\r\n {{ group.name }}\r\n </div>\r\n <div class=\"qry-group-val\">\r\n {{\r\n group.value === 'Y'\r\n ? ('global.yes' | translate)\r\n : ('global.no' | translate)\r\n }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".search-form button{height:40px}.search-form mat-form-field:first-child{padding-left:0}.search-form mat-form-field:last-child{padding-right:0}.search-form .clear{padding:0}.search-form .clear i{height:20px;width:20px;font-size:20px;cursor:pointer}table{width:100%}table::ng-deep thead tr{background-color:#fff9c4}table::ng-deep thead tr th{border-color:#fdd835}table::ng-deep tbody>tr{cursor:pointer}table::ng-deep tbody>tr.active{background-color:#a5d6a7}table::ng-deep tbody>tr:hover{background-color:#a5d6a7}table::ng-deep tbody>tr.disabled{cursor:not-allowed}table::ng-deep tbody>tr.disabled:hover{background-color:inherit}table::ng-deep tbody>tr.detail-row{height:0;cursor:default}table::ng-deep tbody>tr.detail-row:hover{background-color:transparent}table::ng-deep tbody>tr.detail-row .element-detail{overflow:hidden;display:flex}table::ng-deep tbody>tr.detail-row .element-detail p{padding:20px 0;margin-bottom:0;white-space:pre-wrap}table::ng-deep tbody>tr td i.active-row{color:#1b5e20;font-weight:700;font-size:25px;height:25px;width:25px;margin-top:2px}table::ng-deep tbody>tr td>div{max-height:200px;overflow:hidden;overflow-y:auto}table::ng-deep tbody>tr td a button{color:#000}table::ng-deep tbody>tr td a i{color:#333}table::ng-deep .mat-column-active{width:48px}table.no-hover::ng-deep tbody tr{cursor:default}table.no-hover::ng-deep tbody tr.active{background-color:transparent}table.no-hover::ng-deep tbody tr:hover{background-color:transparent}table.admin-table::ng-deep .actions-cell{width:100px}.card-body .actions-buttons{position:absolute;top:-30px;right:20px}.card-body .actions-buttons.converting-text{font-weight:600;color:#fbc02d}.contact-person-container{margin-top:1rem}.contact-person-container .contact-person-title{margin:0;font-weight:500}.qry-group-row{margin:5px 0}.qry-group-row .qry-group-name{width:250px;align-self:center}.qry-group-row .qry-group-val{align-self:center}\n"], dependencies: [{ kind: "directive", type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i9.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i12.LoaderComponent, selector: "ngx-st-loader", inputs: ["showLoader", "positionVal"] }, { kind: "component", type: i13.SapBpListAddressComponent, selector: "app-sap-bp-list-address", inputs: ["addresses", "errorText", "addressType", "required", "baseIndustryCode", "disableEdit", "disableAdd", "detailsView", "canEditInDetails", "useTaxCode", "userSettings"], outputs: ["addressListEmitter", "addressChangedEmitter", "deletedAddressEmitter"] }, { kind: "component", type: i14.SapBpListContactPersonComponent, selector: "app-sap-bp-list-contact-person", inputs: ["contactPersons", "disableEdit", "disableAdd", "detailsView", "canEditInDetails"], outputs: ["contactPersonChangedEmitter", "contactPersonListEmitter", "deletedContactPersonEmitter"] }, { kind: "pipe", type: i8.SlicePipe, name: "slice" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
|
|
197
|
+
SapBpDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SapBpDetailsComponent, selector: "ngx-st-sap-bp-details", inputs: { id: "id", userSettings: "userSettings", onlyView: "onlyView" }, host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<div class=\"container-fluid users-list no-cut\">\r\n <div class=\"card\">\r\n <div class=\"card-header card-header-warning\">\r\n <h3 class=\"card-title\">{{ 'sapAdminBp.titleBpDetails' | translate }}</h3>\r\n </div>\r\n\r\n <div class=\"card-body\">\r\n <a class=\"back-link\" [routerLink]=\"['../../']\">\r\n <span class=\"material-icons\">keyboard_backspace</span>\r\n </a>\r\n\r\n <ngx-st-loader\r\n [showLoader]=\"showLoader\"\r\n [positionVal]=\"'fixed'\"\r\n ></ngx-st-loader>\r\n\r\n <div *ngIf=\"bpDetails\">\r\n <div\r\n class=\"actions-buttons\"\r\n *ngIf=\"\r\n ((userSettings.oracleBpEdit &&\r\n (!bpDetails.frozen ||\r\n (bpDetails.frozen && bpDetails.cardType === 'C'))) ||\r\n (!userSettings.oracleBpEdit &&\r\n (!bpDetails.frozen ||\r\n (bpDetails.frozen && bpDetails.cardType === 'C')))) &&\r\n !onlyView\r\n \"\r\n >\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <a\r\n [routerLink]=\"['../../', 'edit', bpDetails.cardCode]\"\r\n mat-menu-item\r\n style=\"color: #000\"\r\n >{{ 'sapAdminBp.editBp' | translate }}</a\r\n >\r\n <a mat-menu-item (click)=\"deleteBp()\" style=\"color: #000\">{{\r\n 'sapAdminBp.deleteBp' | translate\r\n }}</a>\r\n </mat-menu>\r\n </div>\r\n\r\n <div\r\n class=\"actions-buttons converting-text\"\r\n *ngIf=\"bpDetails.frozen && bpDetails.cardType === 'L'\"\r\n >\r\n {{ 'sapAdminBp.converting' | translate }}\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'global.cardCode' | translate }}</span>\r\n <p>{{ bpDetails.cardCode || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'global.cardName' | translate }}</span>\r\n <p>{{ bpDetails.cardName || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'global.cardType' | translate }}</span>\r\n <p>{{ bpDetails.cardType || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.cardForeignName' | translate }}</span>\r\n <p>{{ bpDetails.cardForignName || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.groupCode' | translate }}</span>\r\n <p>{{ bpDetails.groupCodeName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.currency' | translate }}</span>\r\n <p>{{ bpDetails.currency || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.tel1' | translate }}</span>\r\n <p>{{ bpDetails.phone1 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.tel1' | translate }}</span>\r\n <p>{{ bpDetails.phone2 || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.cellular' | translate }}</span>\r\n <p>{{ bpDetails.cellular || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.fax' | translate }}</span>\r\n <p>{{ bpDetails.fax || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.email' | translate }}</span>\r\n <p>{{ bpDetails.email || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.webSite' | translate }}</span>\r\n <p>{{ bpDetails.webSite || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.shipType' | translate }}</span>\r\n <p>{{ bpDetails.shipTypeName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.industryCode' | translate }}</span>\r\n <p>{{ bpDetails.industryName || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.licTradNum' | translate }}</span>\r\n <p>{{ bpDetails.licTradNum || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.vatIdUnified' | translate }}</span>\r\n <p>{{ bpDetails.vatIdUnified || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.addId' | translate }}</span>\r\n <p>{{ bpDetails.addId || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.registerNo' | translate }}</span>\r\n <p>{{ bpDetails.registerNo || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.salesEmployee' | translate }}</span>\r\n <p>{{ bpDetails.salesPersonName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.technician' | translate }}</span>\r\n <p>{{ bpDetails.technicianName || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.territory' | translate }}</span>\r\n <p>{{ bpDetails.territoryName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.notes' | translate }}</span>\r\n <p>{{ bpDetails.notes || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.globalId' | translate }}</span>\r\n <p>{{ bpDetails.globalId || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.globalAccount' | translate }}</span>\r\n <p>{{ bpDetails.globalAccount || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.paymentTerms' | translate }}</span>\r\n <p>{{ bpDetails.paymentName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.priceList' | translate }}</span>\r\n <p>{{ bpDetails.pricelistName || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.deliveryInstructions' | translate }}</span>\r\n <p>{{ bpDetails.deliveryInstructions || '-' }}</p>\r\n </div>\r\n\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.freeText' | translate }}</span>\r\n <p>{{ bpDetails.freeText || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <app-sap-bp-list-contact-person\r\n [contactPersons]=\"initContactPersonList\"\r\n [detailsView]=\"true\"\r\n [canEditInDetails]=\"\r\n userSettings.oracleBpEdit &&\r\n (!bpDetails.frozen ||\r\n (bpDetails.frozen && bpDetails.cardType === 'C'))\r\n \"\r\n [disableEdit]=\"disableEditContactPerson()\"\r\n [disableAdd]=\"disableAddContactPerson()\"\r\n (contactPersonListEmitter)=\"setContactPersonsChanged($event)\"\r\n (contactPersonChangedEmitter)=\"contactPersonChanged = $event\"\r\n (deletedContactPersonEmitter)=\"contactPersonDeletedRes($event)\"\r\n ></app-sap-bp-list-contact-person>\r\n\r\n <hr />\r\n\r\n <app-sap-bp-list-address\r\n [addresses]=\"initBillToAddress || []\"\r\n [required]=\"false\"\r\n [errorText]=\"false\"\r\n [addressType]=\"'B'\"\r\n [detailsView]=\"true\"\r\n [canEditInDetails]=\"\r\n userSettings.oracleBpEdit &&\r\n (!bpDetails.frozen ||\r\n (bpDetails.frozen && bpDetails.cardType === 'C'))\r\n \"\r\n [disableEdit]=\"disableEditBillToAddress()\"\r\n [disableAdd]=\"disableAddBillToAddress()\"\r\n [userSettings]=\"userSettings\"\r\n (addressListEmitter)=\"setBillToAddress($event)\"\r\n (addressChangedEmitter)=\"setAddressChanged($event)\"\r\n (deletedAddressEmitter)=\"addressDeletedRes($event)\"\r\n ></app-sap-bp-list-address>\r\n\r\n <hr />\r\n\r\n <app-sap-bp-list-address\r\n [addresses]=\"initShipToAddress || []\"\r\n [required]=\"false\"\r\n [errorText]=\"false\"\r\n [addressType]=\"'S'\"\r\n [detailsView]=\"true\"\r\n [canEditInDetails]=\"\r\n userSettings.oracleBpEdit &&\r\n (!bpDetails.frozen ||\r\n (bpDetails.frozen && bpDetails.cardType === 'C'))\r\n \"\r\n [disableEdit]=\"disableEditShipToAddress()\"\r\n [disableAdd]=\"disableAddShipToAddress()\"\r\n [useTaxCode]=\"userSettings.bpTaxType === bpTaxType.Us\"\r\n [userSettings]=\"userSettings\"\r\n (addressListEmitter)=\"setShipToAddress($event)\"\r\n (addressChangedEmitter)=\"setAddressChanged($event)\"\r\n (deletedAddressEmitter)=\"addressDeletedRes($event)\"\r\n ></app-sap-bp-list-address>\r\n\r\n <hr />\r\n\r\n <div class=\"contact-person-container\">\r\n <div class=\"row align-items-center\">\r\n <p class=\"contact-person-title\">\r\n {{ 'sapAdminBp.qryGroup' | translate }}\r\n </p>\r\n <button\r\n color=\"primary\"\r\n mat-button\r\n (click)=\"showQryGroup = !showQryGroup\"\r\n style=\"font-weight: bold; margin-left: 10px\"\r\n >\r\n <ng-container *ngIf=\"!showQryGroup\">{{\r\n 'global.show' | translate\r\n }}</ng-container>\r\n <ng-container *ngIf=\"showQryGroup\">{{\r\n 'global.hide' | translate\r\n }}</ng-container>\r\n </button>\r\n </div>\r\n\r\n <div class=\"row\" *ngIf=\"showQryGroup\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <div\r\n class=\"row qry-group-row\"\r\n *ngFor=\"let group of bpDetails.qryGroupList | slice: 0 : 32\"\r\n >\r\n <div class=\"qry-group-name\">\r\n {{ group.name }}\r\n </div>\r\n <div class=\"qry-group-val\">\r\n {{\r\n group.value === 'Y'\r\n ? ('global.yes' | translate)\r\n : ('global.no' | translate)\r\n }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <div\r\n class=\"row qry-group-row\"\r\n *ngFor=\"let group of bpDetails.qryGroupList | slice: 32 : 64\"\r\n >\r\n <div class=\"qry-group-name\">\r\n {{ group.name }}\r\n </div>\r\n <div class=\"qry-group-val\">\r\n {{\r\n group.value === 'Y'\r\n ? ('global.yes' | translate)\r\n : ('global.no' | translate)\r\n }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".search-form button{height:40px}.search-form mat-form-field:first-child{padding-left:0}.search-form mat-form-field:last-child{padding-right:0}.search-form .clear{padding:0}.search-form .clear i{height:20px;width:20px;font-size:20px;cursor:pointer}table{width:100%}table::ng-deep thead tr{background-color:#fff9c4}table::ng-deep thead tr th{border-color:#fdd835}table::ng-deep tbody>tr{cursor:pointer}table::ng-deep tbody>tr.active{background-color:#a5d6a7}table::ng-deep tbody>tr:hover{background-color:#a5d6a7}table::ng-deep tbody>tr.disabled{cursor:not-allowed}table::ng-deep tbody>tr.disabled:hover{background-color:inherit}table::ng-deep tbody>tr.detail-row{height:0;cursor:default}table::ng-deep tbody>tr.detail-row:hover{background-color:transparent}table::ng-deep tbody>tr.detail-row .element-detail{overflow:hidden;display:flex}table::ng-deep tbody>tr.detail-row .element-detail p{padding:20px 0;margin-bottom:0;white-space:pre-wrap}table::ng-deep tbody>tr td i.active-row{color:#1b5e20;font-weight:700;font-size:25px;height:25px;width:25px;margin-top:2px}table::ng-deep tbody>tr td>div{max-height:200px;overflow:hidden;overflow-y:auto}table::ng-deep tbody>tr td a button{color:#000}table::ng-deep tbody>tr td a i{color:#333}table::ng-deep .mat-column-active{width:48px}table.no-hover::ng-deep tbody tr{cursor:default}table.no-hover::ng-deep tbody tr.active{background-color:transparent}table.no-hover::ng-deep tbody tr:hover{background-color:transparent}table.admin-table::ng-deep .actions-cell{width:100px}.card-body .actions-buttons{position:absolute;top:-30px;right:20px}.card-body .actions-buttons.converting-text{font-weight:600;color:#fbc02d}.contact-person-container{margin-top:1rem}.contact-person-container .contact-person-title{margin:0;font-weight:500}.qry-group-row{margin:5px 0}.qry-group-row .qry-group-name{width:250px;align-self:center}.qry-group-row .qry-group-val{align-self:center}\n"], dependencies: [{ kind: "directive", type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i9.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i12.LoaderComponent, selector: "ngx-st-loader", inputs: ["showLoader", "positionVal"] }, { kind: "component", type: i13.SapBpListAddressComponent, selector: "app-sap-bp-list-address", inputs: ["addresses", "errorText", "addressType", "required", "baseIndustryCode", "disableEdit", "disableAdd", "detailsView", "canEditInDetails", "useTaxCode", "userSettings"], outputs: ["addressListEmitter", "addressChangedEmitter", "deletedAddressEmitter"] }, { kind: "component", type: i14.SapBpListContactPersonComponent, selector: "app-sap-bp-list-contact-person", inputs: ["contactPersons", "disableEdit", "disableAdd", "detailsView", "canEditInDetails"], outputs: ["contactPersonChangedEmitter", "contactPersonListEmitter", "deletedContactPersonEmitter"] }, { kind: "pipe", type: i8.SlicePipe, name: "slice" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
|
|
197
198
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SapBpDetailsComponent, decorators: [{
|
|
198
199
|
type: Component,
|
|
199
|
-
args: [{ selector: 'ngx-st-sap-bp-details', template: "<div class=\"container-fluid users-list no-cut\">\r\n <div class=\"card\">\r\n <div class=\"card-header card-header-warning\">\r\n <h3 class=\"card-title\">{{ 'sapAdminBp.titleBpDetails' | translate }}</h3>\r\n </div>\r\n\r\n <div class=\"card-body\">\r\n <a class=\"back-link\" [routerLink]=\"['../../']\">\r\n <span class=\"material-icons\">keyboard_backspace</span>\r\n </a>\r\n\r\n <ngx-st-loader\r\n [showLoader]=\"showLoader\"\r\n [positionVal]=\"'fixed'\"\r\n ></ngx-st-loader>\r\n\r\n <div *ngIf=\"bpDetails\">\r\n <div\r\n class=\"actions-buttons\"\r\n *ngIf=\"\r\n (userSettings.oracleBpEdit &&\r\n (!bpDetails.frozen ||\r\n (bpDetails.frozen && bpDetails.cardType === 'C'))) ||\r\n (!userSettings.oracleBpEdit &&\r\n (!bpDetails.frozen ||\r\n (bpDetails.frozen && bpDetails.cardType === 'C')))\r\n \"\r\n >\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <a\r\n [routerLink]=\"['../../', 'edit', bpDetails.cardCode]\"\r\n mat-menu-item\r\n style=\"color: #000\"\r\n >{{ 'sapAdminBp.editBp' | translate }}</a\r\n >\r\n <a mat-menu-item (click)=\"deleteBp()\" style=\"color: #000\">{{\r\n 'sapAdminBp.deleteBp' | translate\r\n }}</a>\r\n </mat-menu>\r\n </div>\r\n\r\n <div\r\n class=\"actions-buttons converting-text\"\r\n *ngIf=\"bpDetails.frozen && bpDetails.cardType === 'L'\"\r\n >\r\n {{ 'sapAdminBp.converting' | translate }}\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'global.cardCode' | translate }}</span>\r\n <p>{{ bpDetails.cardCode || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'global.cardName' | translate }}</span>\r\n <p>{{ bpDetails.cardName || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'global.cardType' | translate }}</span>\r\n <p>{{ bpDetails.cardType || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.cardForeignName' | translate }}</span>\r\n <p>{{ bpDetails.cardForignName || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.groupCode' | translate }}</span>\r\n <p>{{ bpDetails.groupCodeName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.currency' | translate }}</span>\r\n <p>{{ bpDetails.currency || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.tel1' | translate }}</span>\r\n <p>{{ bpDetails.phone1 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.tel1' | translate }}</span>\r\n <p>{{ bpDetails.phone2 || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.cellular' | translate }}</span>\r\n <p>{{ bpDetails.cellular || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.fax' | translate }}</span>\r\n <p>{{ bpDetails.fax || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.email' | translate }}</span>\r\n <p>{{ bpDetails.email || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.webSite' | translate }}</span>\r\n <p>{{ bpDetails.webSite || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.shipType' | translate }}</span>\r\n <p>{{ bpDetails.shipTypeName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.industryCode' | translate }}</span>\r\n <p>{{ bpDetails.industryName || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.licTradNum' | translate }}</span>\r\n <p>{{ bpDetails.licTradNum || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.vatIdUnified' | translate }}</span>\r\n <p>{{ bpDetails.vatIdUnified || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.addId' | translate }}</span>\r\n <p>{{ bpDetails.addId || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.registerNo' | translate }}</span>\r\n <p>{{ bpDetails.registerNo || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.salesEmployee' | translate }}</span>\r\n <p>{{ bpDetails.salesPersonName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.technician' | translate }}</span>\r\n <p>{{ bpDetails.technicianName || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.territory' | translate }}</span>\r\n <p>{{ bpDetails.territoryName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.notes' | translate }}</span>\r\n <p>{{ bpDetails.notes || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.globalId' | translate }}</span>\r\n <p>{{ bpDetails.globalId || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.globalAccount' | translate }}</span>\r\n <p>{{ bpDetails.globalAccount || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.paymentTerms' | translate }}</span>\r\n <p>{{ bpDetails.paymentName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.priceList' | translate }}</span>\r\n <p>{{ bpDetails.pricelistName || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.deliveryInstructions' | translate }}</span>\r\n <p>{{ bpDetails.deliveryInstructions || '-' }}</p>\r\n </div>\r\n\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.freeText' | translate }}</span>\r\n <p>{{ bpDetails.freeText || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <app-sap-bp-list-contact-person\r\n [contactPersons]=\"initContactPersonList\"\r\n [detailsView]=\"true\"\r\n [canEditInDetails]=\"\r\n userSettings.oracleBpEdit &&\r\n (!bpDetails.frozen ||\r\n (bpDetails.frozen && bpDetails.cardType === 'C'))\r\n \"\r\n [disableEdit]=\"disableEditContactPerson()\"\r\n [disableAdd]=\"disableAddContactPerson()\"\r\n (contactPersonListEmitter)=\"setContactPersonsChanged($event)\"\r\n (contactPersonChangedEmitter)=\"contactPersonChanged = $event\"\r\n (deletedContactPersonEmitter)=\"contactPersonDeletedRes($event)\"\r\n ></app-sap-bp-list-contact-person>\r\n\r\n <hr />\r\n\r\n <app-sap-bp-list-address\r\n [addresses]=\"initBillToAddress || []\"\r\n [required]=\"false\"\r\n [errorText]=\"false\"\r\n [addressType]=\"'B'\"\r\n [detailsView]=\"true\"\r\n [canEditInDetails]=\"\r\n userSettings.oracleBpEdit &&\r\n (!bpDetails.frozen ||\r\n (bpDetails.frozen && bpDetails.cardType === 'C'))\r\n \"\r\n [disableEdit]=\"disableEditBillToAddress()\"\r\n [disableAdd]=\"disableAddBillToAddress()\"\r\n [userSettings]=\"userSettings\"\r\n (addressListEmitter)=\"setBillToAddress($event)\"\r\n (addressChangedEmitter)=\"setAddressChanged($event)\"\r\n (deletedAddressEmitter)=\"addressDeletedRes($event)\"\r\n ></app-sap-bp-list-address>\r\n\r\n <hr />\r\n\r\n <app-sap-bp-list-address\r\n [addresses]=\"initShipToAddress || []\"\r\n [required]=\"false\"\r\n [errorText]=\"false\"\r\n [addressType]=\"'S'\"\r\n [detailsView]=\"true\"\r\n [canEditInDetails]=\"\r\n userSettings.oracleBpEdit &&\r\n (!bpDetails.frozen ||\r\n (bpDetails.frozen && bpDetails.cardType === 'C'))\r\n \"\r\n [disableEdit]=\"disableEditShipToAddress()\"\r\n [disableAdd]=\"disableAddShipToAddress()\"\r\n [useTaxCode]=\"userSettings.bpTaxType === bpTaxType.Us\"\r\n [userSettings]=\"userSettings\"\r\n (addressListEmitter)=\"setShipToAddress($event)\"\r\n (addressChangedEmitter)=\"setAddressChanged($event)\"\r\n (deletedAddressEmitter)=\"addressDeletedRes($event)\"\r\n ></app-sap-bp-list-address>\r\n\r\n <hr />\r\n\r\n <div class=\"contact-person-container\">\r\n <div class=\"row align-items-center\">\r\n <p class=\"contact-person-title\">\r\n {{ 'sapAdminBp.qryGroup' | translate }}\r\n </p>\r\n <button\r\n color=\"primary\"\r\n mat-button\r\n (click)=\"showQryGroup = !showQryGroup\"\r\n style=\"font-weight: bold; margin-left: 10px\"\r\n >\r\n <ng-container *ngIf=\"!showQryGroup\">{{\r\n 'global.show' | translate\r\n }}</ng-container>\r\n <ng-container *ngIf=\"showQryGroup\">{{\r\n 'global.hide' | translate\r\n }}</ng-container>\r\n </button>\r\n </div>\r\n\r\n <div class=\"row\" *ngIf=\"showQryGroup\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <div\r\n class=\"row qry-group-row\"\r\n *ngFor=\"let group of bpDetails.qryGroupList | slice: 0 : 32\"\r\n >\r\n <div class=\"qry-group-name\">\r\n {{ group.name }}\r\n </div>\r\n <div class=\"qry-group-val\">\r\n {{\r\n group.value === 'Y'\r\n ? ('global.yes' | translate)\r\n : ('global.no' | translate)\r\n }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <div\r\n class=\"row qry-group-row\"\r\n *ngFor=\"let group of bpDetails.qryGroupList | slice: 32 : 64\"\r\n >\r\n <div class=\"qry-group-name\">\r\n {{ group.name }}\r\n </div>\r\n <div class=\"qry-group-val\">\r\n {{\r\n group.value === 'Y'\r\n ? ('global.yes' | translate)\r\n : ('global.no' | translate)\r\n }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".search-form button{height:40px}.search-form mat-form-field:first-child{padding-left:0}.search-form mat-form-field:last-child{padding-right:0}.search-form .clear{padding:0}.search-form .clear i{height:20px;width:20px;font-size:20px;cursor:pointer}table{width:100%}table::ng-deep thead tr{background-color:#fff9c4}table::ng-deep thead tr th{border-color:#fdd835}table::ng-deep tbody>tr{cursor:pointer}table::ng-deep tbody>tr.active{background-color:#a5d6a7}table::ng-deep tbody>tr:hover{background-color:#a5d6a7}table::ng-deep tbody>tr.disabled{cursor:not-allowed}table::ng-deep tbody>tr.disabled:hover{background-color:inherit}table::ng-deep tbody>tr.detail-row{height:0;cursor:default}table::ng-deep tbody>tr.detail-row:hover{background-color:transparent}table::ng-deep tbody>tr.detail-row .element-detail{overflow:hidden;display:flex}table::ng-deep tbody>tr.detail-row .element-detail p{padding:20px 0;margin-bottom:0;white-space:pre-wrap}table::ng-deep tbody>tr td i.active-row{color:#1b5e20;font-weight:700;font-size:25px;height:25px;width:25px;margin-top:2px}table::ng-deep tbody>tr td>div{max-height:200px;overflow:hidden;overflow-y:auto}table::ng-deep tbody>tr td a button{color:#000}table::ng-deep tbody>tr td a i{color:#333}table::ng-deep .mat-column-active{width:48px}table.no-hover::ng-deep tbody tr{cursor:default}table.no-hover::ng-deep tbody tr.active{background-color:transparent}table.no-hover::ng-deep tbody tr:hover{background-color:transparent}table.admin-table::ng-deep .actions-cell{width:100px}.card-body .actions-buttons{position:absolute;top:-30px;right:20px}.card-body .actions-buttons.converting-text{font-weight:600;color:#fbc02d}.contact-person-container{margin-top:1rem}.contact-person-container .contact-person-title{margin:0;font-weight:500}.qry-group-row{margin:5px 0}.qry-group-row .qry-group-name{width:250px;align-self:center}.qry-group-row .qry-group-val{align-self:center}\n"] }]
|
|
200
|
+
args: [{ selector: 'ngx-st-sap-bp-details', template: "<div class=\"container-fluid users-list no-cut\">\r\n <div class=\"card\">\r\n <div class=\"card-header card-header-warning\">\r\n <h3 class=\"card-title\">{{ 'sapAdminBp.titleBpDetails' | translate }}</h3>\r\n </div>\r\n\r\n <div class=\"card-body\">\r\n <a class=\"back-link\" [routerLink]=\"['../../']\">\r\n <span class=\"material-icons\">keyboard_backspace</span>\r\n </a>\r\n\r\n <ngx-st-loader\r\n [showLoader]=\"showLoader\"\r\n [positionVal]=\"'fixed'\"\r\n ></ngx-st-loader>\r\n\r\n <div *ngIf=\"bpDetails\">\r\n <div\r\n class=\"actions-buttons\"\r\n *ngIf=\"\r\n ((userSettings.oracleBpEdit &&\r\n (!bpDetails.frozen ||\r\n (bpDetails.frozen && bpDetails.cardType === 'C'))) ||\r\n (!userSettings.oracleBpEdit &&\r\n (!bpDetails.frozen ||\r\n (bpDetails.frozen && bpDetails.cardType === 'C')))) &&\r\n !onlyView\r\n \"\r\n >\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <a\r\n [routerLink]=\"['../../', 'edit', bpDetails.cardCode]\"\r\n mat-menu-item\r\n style=\"color: #000\"\r\n >{{ 'sapAdminBp.editBp' | translate }}</a\r\n >\r\n <a mat-menu-item (click)=\"deleteBp()\" style=\"color: #000\">{{\r\n 'sapAdminBp.deleteBp' | translate\r\n }}</a>\r\n </mat-menu>\r\n </div>\r\n\r\n <div\r\n class=\"actions-buttons converting-text\"\r\n *ngIf=\"bpDetails.frozen && bpDetails.cardType === 'L'\"\r\n >\r\n {{ 'sapAdminBp.converting' | translate }}\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'global.cardCode' | translate }}</span>\r\n <p>{{ bpDetails.cardCode || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'global.cardName' | translate }}</span>\r\n <p>{{ bpDetails.cardName || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'global.cardType' | translate }}</span>\r\n <p>{{ bpDetails.cardType || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.cardForeignName' | translate }}</span>\r\n <p>{{ bpDetails.cardForignName || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.groupCode' | translate }}</span>\r\n <p>{{ bpDetails.groupCodeName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.currency' | translate }}</span>\r\n <p>{{ bpDetails.currency || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.tel1' | translate }}</span>\r\n <p>{{ bpDetails.phone1 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.tel1' | translate }}</span>\r\n <p>{{ bpDetails.phone2 || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.cellular' | translate }}</span>\r\n <p>{{ bpDetails.cellular || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.fax' | translate }}</span>\r\n <p>{{ bpDetails.fax || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.email' | translate }}</span>\r\n <p>{{ bpDetails.email || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.webSite' | translate }}</span>\r\n <p>{{ bpDetails.webSite || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.shipType' | translate }}</span>\r\n <p>{{ bpDetails.shipTypeName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.industryCode' | translate }}</span>\r\n <p>{{ bpDetails.industryName || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.licTradNum' | translate }}</span>\r\n <p>{{ bpDetails.licTradNum || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.vatIdUnified' | translate }}</span>\r\n <p>{{ bpDetails.vatIdUnified || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.addId' | translate }}</span>\r\n <p>{{ bpDetails.addId || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.registerNo' | translate }}</span>\r\n <p>{{ bpDetails.registerNo || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.salesEmployee' | translate }}</span>\r\n <p>{{ bpDetails.salesPersonName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.technician' | translate }}</span>\r\n <p>{{ bpDetails.technicianName || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.territory' | translate }}</span>\r\n <p>{{ bpDetails.territoryName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.notes' | translate }}</span>\r\n <p>{{ bpDetails.notes || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.globalId' | translate }}</span>\r\n <p>{{ bpDetails.globalId || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.globalAccount' | translate }}</span>\r\n <p>{{ bpDetails.globalAccount || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.paymentTerms' | translate }}</span>\r\n <p>{{ bpDetails.paymentName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.priceList' | translate }}</span>\r\n <p>{{ bpDetails.pricelistName || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.deliveryInstructions' | translate }}</span>\r\n <p>{{ bpDetails.deliveryInstructions || '-' }}</p>\r\n </div>\r\n\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminBp.freeText' | translate }}</span>\r\n <p>{{ bpDetails.freeText || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <app-sap-bp-list-contact-person\r\n [contactPersons]=\"initContactPersonList\"\r\n [detailsView]=\"true\"\r\n [canEditInDetails]=\"\r\n userSettings.oracleBpEdit &&\r\n (!bpDetails.frozen ||\r\n (bpDetails.frozen && bpDetails.cardType === 'C'))\r\n \"\r\n [disableEdit]=\"disableEditContactPerson()\"\r\n [disableAdd]=\"disableAddContactPerson()\"\r\n (contactPersonListEmitter)=\"setContactPersonsChanged($event)\"\r\n (contactPersonChangedEmitter)=\"contactPersonChanged = $event\"\r\n (deletedContactPersonEmitter)=\"contactPersonDeletedRes($event)\"\r\n ></app-sap-bp-list-contact-person>\r\n\r\n <hr />\r\n\r\n <app-sap-bp-list-address\r\n [addresses]=\"initBillToAddress || []\"\r\n [required]=\"false\"\r\n [errorText]=\"false\"\r\n [addressType]=\"'B'\"\r\n [detailsView]=\"true\"\r\n [canEditInDetails]=\"\r\n userSettings.oracleBpEdit &&\r\n (!bpDetails.frozen ||\r\n (bpDetails.frozen && bpDetails.cardType === 'C'))\r\n \"\r\n [disableEdit]=\"disableEditBillToAddress()\"\r\n [disableAdd]=\"disableAddBillToAddress()\"\r\n [userSettings]=\"userSettings\"\r\n (addressListEmitter)=\"setBillToAddress($event)\"\r\n (addressChangedEmitter)=\"setAddressChanged($event)\"\r\n (deletedAddressEmitter)=\"addressDeletedRes($event)\"\r\n ></app-sap-bp-list-address>\r\n\r\n <hr />\r\n\r\n <app-sap-bp-list-address\r\n [addresses]=\"initShipToAddress || []\"\r\n [required]=\"false\"\r\n [errorText]=\"false\"\r\n [addressType]=\"'S'\"\r\n [detailsView]=\"true\"\r\n [canEditInDetails]=\"\r\n userSettings.oracleBpEdit &&\r\n (!bpDetails.frozen ||\r\n (bpDetails.frozen && bpDetails.cardType === 'C'))\r\n \"\r\n [disableEdit]=\"disableEditShipToAddress()\"\r\n [disableAdd]=\"disableAddShipToAddress()\"\r\n [useTaxCode]=\"userSettings.bpTaxType === bpTaxType.Us\"\r\n [userSettings]=\"userSettings\"\r\n (addressListEmitter)=\"setShipToAddress($event)\"\r\n (addressChangedEmitter)=\"setAddressChanged($event)\"\r\n (deletedAddressEmitter)=\"addressDeletedRes($event)\"\r\n ></app-sap-bp-list-address>\r\n\r\n <hr />\r\n\r\n <div class=\"contact-person-container\">\r\n <div class=\"row align-items-center\">\r\n <p class=\"contact-person-title\">\r\n {{ 'sapAdminBp.qryGroup' | translate }}\r\n </p>\r\n <button\r\n color=\"primary\"\r\n mat-button\r\n (click)=\"showQryGroup = !showQryGroup\"\r\n style=\"font-weight: bold; margin-left: 10px\"\r\n >\r\n <ng-container *ngIf=\"!showQryGroup\">{{\r\n 'global.show' | translate\r\n }}</ng-container>\r\n <ng-container *ngIf=\"showQryGroup\">{{\r\n 'global.hide' | translate\r\n }}</ng-container>\r\n </button>\r\n </div>\r\n\r\n <div class=\"row\" *ngIf=\"showQryGroup\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <div\r\n class=\"row qry-group-row\"\r\n *ngFor=\"let group of bpDetails.qryGroupList | slice: 0 : 32\"\r\n >\r\n <div class=\"qry-group-name\">\r\n {{ group.name }}\r\n </div>\r\n <div class=\"qry-group-val\">\r\n {{\r\n group.value === 'Y'\r\n ? ('global.yes' | translate)\r\n : ('global.no' | translate)\r\n }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <div\r\n class=\"row qry-group-row\"\r\n *ngFor=\"let group of bpDetails.qryGroupList | slice: 32 : 64\"\r\n >\r\n <div class=\"qry-group-name\">\r\n {{ group.name }}\r\n </div>\r\n <div class=\"qry-group-val\">\r\n {{\r\n group.value === 'Y'\r\n ? ('global.yes' | translate)\r\n : ('global.no' | translate)\r\n }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".search-form button{height:40px}.search-form mat-form-field:first-child{padding-left:0}.search-form mat-form-field:last-child{padding-right:0}.search-form .clear{padding:0}.search-form .clear i{height:20px;width:20px;font-size:20px;cursor:pointer}table{width:100%}table::ng-deep thead tr{background-color:#fff9c4}table::ng-deep thead tr th{border-color:#fdd835}table::ng-deep tbody>tr{cursor:pointer}table::ng-deep tbody>tr.active{background-color:#a5d6a7}table::ng-deep tbody>tr:hover{background-color:#a5d6a7}table::ng-deep tbody>tr.disabled{cursor:not-allowed}table::ng-deep tbody>tr.disabled:hover{background-color:inherit}table::ng-deep tbody>tr.detail-row{height:0;cursor:default}table::ng-deep tbody>tr.detail-row:hover{background-color:transparent}table::ng-deep tbody>tr.detail-row .element-detail{overflow:hidden;display:flex}table::ng-deep tbody>tr.detail-row .element-detail p{padding:20px 0;margin-bottom:0;white-space:pre-wrap}table::ng-deep tbody>tr td i.active-row{color:#1b5e20;font-weight:700;font-size:25px;height:25px;width:25px;margin-top:2px}table::ng-deep tbody>tr td>div{max-height:200px;overflow:hidden;overflow-y:auto}table::ng-deep tbody>tr td a button{color:#000}table::ng-deep tbody>tr td a i{color:#333}table::ng-deep .mat-column-active{width:48px}table.no-hover::ng-deep tbody tr{cursor:default}table.no-hover::ng-deep tbody tr.active{background-color:transparent}table.no-hover::ng-deep tbody tr:hover{background-color:transparent}table.admin-table::ng-deep .actions-cell{width:100px}.card-body .actions-buttons{position:absolute;top:-30px;right:20px}.card-body .actions-buttons.converting-text{font-weight:600;color:#fbc02d}.contact-person-container{margin-top:1rem}.contact-person-container .contact-person-title{margin:0;font-weight:500}.qry-group-row{margin:5px 0}.qry-group-row .qry-group-name{width:250px;align-self:center}.qry-group-row .qry-group-val{align-self:center}\n"] }]
|
|
200
201
|
}], ctorParameters: function () { return [{ type: i1.SapBpService }, { type: i2.MatDialog }, { type: i3.TranslateService }, { type: i4.StSnackBarService }, { type: i5.SapBpHelperService }, { type: i6.StDialogTranslatedService }, { type: i7.Router }]; }, propDecorators: { class: [{
|
|
201
202
|
type: HostBinding,
|
|
202
203
|
args: ['class']
|
|
@@ -204,5 +205,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
204
205
|
type: Input
|
|
205
206
|
}], userSettings: [{
|
|
206
207
|
type: Input
|
|
208
|
+
}], onlyView: [{
|
|
209
|
+
type: Input
|
|
207
210
|
}] } });
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FwLWJwLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXNhcC1icC9zcmMvbGliL2NvbXBvbmVudHMvc2FwLWJwLWRldGFpbHMvc2FwLWJwLWRldGFpbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXNhcC1icC9zcmMvbGliL2NvbXBvbmVudHMvc2FwLWJwLWRldGFpbHMvc2FwLWJwLWRldGFpbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBS3RFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUkzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd0RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBUzlELE1BQU0sT0FBTyxxQkFBcUI7SUFrQ2hDLFlBQ1UsWUFBMEIsRUFDM0IsTUFBaUIsRUFDaEIsZ0JBQWtDLEVBQ2xDLEtBQXdCLEVBQ3hCLGtCQUFzQyxFQUN0Qyx5QkFBb0QsRUFDcEQsTUFBYztRQU5kLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzNCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDaEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMkI7UUFDcEQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQXhDRixVQUFLLEdBQUcsd0JBQXdCLENBQUM7UUFVdkQsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsY0FBUyxHQUFHLGFBQWEsQ0FBQztRQUUxQiwwQkFBcUIsR0FBOEIsRUFBRSxDQUFDO1FBQ3RELHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUU3QiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFFOUIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFFdkIsc0JBQWlCLEdBQXdCLEVBQUUsQ0FBQztRQUU1Qyx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFFN0Isc0JBQWlCLEdBQXdCLEVBQUUsQ0FBQztRQUU1Qyx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFFN0IsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVYLG1CQUFjLEdBQXdCLEVBQUUsQ0FBQztRQUN6Qyx5QkFBb0IsR0FBOEIsRUFBRSxDQUFDO0lBVTFELENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFFdkIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLHlCQUF5QjthQUMzQixpQkFBaUIsRUFBRTthQUNuQixJQUFJLENBQ0gsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsMEJBQTBCLENBQUMsQ0FDMUQsQ0FBQztZQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCx3QkFBd0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsd0JBQXdCLENBQ3JELElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUMvQixJQUFJLENBQUMsVUFBVSxFQUFFLEVBQ2pCLElBQUksQ0FBQyxTQUFTLENBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRCx3QkFBd0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsd0JBQXdCLENBQ3JELElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUMvQixJQUFJLENBQUMsVUFBVSxFQUFFLEVBQ2pCLElBQUksQ0FBQyxTQUFTLENBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRCx3QkFBd0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsd0JBQXdCLENBQ3JELElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUMvQixJQUFJLENBQUMsVUFBVSxFQUFFLEVBQ2pCLElBQUksQ0FBQyxTQUFTLENBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRCx1QkFBdUI7UUFDckIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsdUJBQXVCLENBQ3BELElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUMvQixJQUFJLENBQUMsVUFBVSxFQUFFLEVBQ2pCLElBQUksQ0FBQyxTQUFTLENBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRCx1QkFBdUI7UUFDckIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsdUJBQXVCLENBQ3BELElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUMvQixJQUFJLENBQUMsVUFBVSxFQUFFLEVBQ2pCLElBQUksQ0FBQyxTQUFTLENBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRCx1QkFBdUI7UUFDckIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsdUJBQXVCLENBQ3BELElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUMvQixJQUFJLENBQUMsVUFBVSxFQUFFLEVBQ2pCLElBQUksQ0FBQyxTQUFTLENBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxLQUFnQztRQUN2RCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUU1QixJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUM5QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDakI7UUFFRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUEwQjtRQUN6QyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUUzQixJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUM3QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDakI7UUFFRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO0lBQ25DLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUEwQjtRQUN6QyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUUzQixJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUM3QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDakI7UUFFRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO0lBQ25DLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFjO1FBQzlCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxFQUEyQjtRQUNqRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxPQUEwQjtRQUMxQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRXRDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzlDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7UUFFMUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUN4QyxHQUFHLENBQUMsRUFBRTtZQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUNoQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBQ3RELENBQUM7WUFDRixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEIsQ0FBQyxFQUNELEtBQUssQ0FBQyxFQUFFO1lBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDMUIsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sVUFBVTtRQUNoQixPQUFPLElBQUksZ0JBQWdCLENBQUM7WUFDMUIsUUFBUSxFQUFFLElBQUksa0JBQWtCLENBQzlCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FDNUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sYUFBYSxDQUFDLElBQTRCO1FBQ2hELFFBQVEsSUFBSSxFQUFFO1lBQ1osS0FBSyxzQkFBc0IsQ0FBQyxRQUFRO2dCQUNsQyxPQUFPLGFBQWEsQ0FBQyxRQUFRLENBQUM7WUFDaEMsS0FBSyxzQkFBc0IsQ0FBQyxJQUFJO2dCQUM5QixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDNUIsS0FBSyxzQkFBc0IsQ0FBQyxRQUFRO2dCQUNsQyxPQUFPLGFBQWEsQ0FBQyxRQUFRLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRVMsaUJBQWlCO1FBQ3pCLE9BQU87WUFDTCxjQUFjLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjO1lBQzdDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVM7WUFDbkMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUTtZQUNqQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVO1lBQ3JDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU07WUFDN0IsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTTtZQUM3QixRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRO1lBQ2pDLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUc7WUFDdkIsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSztZQUMzQixPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPO1lBQy9CLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVk7WUFDekMsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWTtZQUN6QyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLO1lBQzNCLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVk7WUFDekMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVTtZQUNyQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLO1lBQzNCLGNBQWMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWM7WUFDN0MsZUFBZSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZTtZQUMvQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhO1lBQzNDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWE7WUFDM0MsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUTtZQUNqQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRztZQUM3QyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXO1lBQ3ZDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWE7WUFDM0Msb0JBQW9CLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0I7WUFDekQsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUTtZQUNqQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsY0FBYyxJQUFJLEVBQUU7WUFDNUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxFQUFFO1lBQzNDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxhQUFhLElBQUksRUFBRTtZQUMzQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZO1lBQ3pDLGFBQWEsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNsQyxhQUFhLEVBQUUsSUFBSSxDQUFDLG9CQUFvQjtZQUN4QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRO1lBQ2pDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVE7WUFDakMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUTtZQUNqQyxXQUFXLEVBQUUsSUFBSTtZQUNqQixtQkFBbUIsRUFBRSxLQUFLO1lBQzFCLGNBQWMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWM7WUFDN0MsZUFBZSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZTtZQUMvQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTO1lBQ25DLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU87U0FDaEMsQ0FBQztJQUNKLENBQUM7SUFFTyxNQUFNO1FBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMvQyxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQztZQUNyQixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxHQUFHLENBQUMsaUJBQWlCLENBQUM7WUFDbkQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztZQUMvQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxDQUFDLGlCQUFpQixDQUFDO1lBRS9DLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDMUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ1IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztrSEE5UFUscUJBQXFCO3NHQUFyQixxQkFBcUIsa0tDeEJsQyx1b1pBd1VBOzJGRGhUYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsdUJBQXVCO3dSQUtYLEtBQUs7c0JBQTFCLFdBQVc7dUJBQUMsT0FBTztnQkFHcEIsRUFBRTtzQkFERCxLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFNhcEJwU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NhcC1icC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2FwQnBNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zYXAtYnAubW9kZWwnO1xyXG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgU3RTbmFja0JhclNlcnZpY2UgfSBmcm9tICduZ3gtc3Qtc25hY2stYmFyJztcclxuaW1wb3J0IHsgU2FwQnBIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2FwLWJwLWhlbHBlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTYXBCcENvbnRhY3RQZXJzb25Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zYXAtYnAtY29udGFjdC1wZXJzb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBTYXBCcEFkZHJlc3NNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zYXAtYnAtYWRkcmVzcy5tb2RlbCc7XHJcbmltcG9ydCB7IFNhcEJwVHlwZVRyYW5zbGF0ZUVudW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvc2FwLWJwLXR5cGUtdHJhbnNsYXRlLmVudW0nO1xyXG5pbXBvcnQgeyBTYXBCcFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NhcC1icC10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBTYXBCcEVkaXRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zYXAtYnAtZWRpdC5tb2RlbCc7XHJcbmltcG9ydCB7IEJwVGF4VHlwZUVudW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvYnAtdGF4LXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IFN0RGlhbG9nVHJhbnNsYXRlZFNlcnZpY2UgfSBmcm9tICduZ3gtc3QtZGlhbG9nJztcclxuaW1wb3J0IHsgU2FwQnBVc2VyU2V0dGluZ3MgfSBmcm9tICcuLi9zYXAtYnAtYmFzZS1jcmVhdGUtZWRpdCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ25neC1zdC1zYXAtYnAtZGV0YWlscycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NhcC1icC1kZXRhaWxzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zYXAtYnAtZGV0YWlscy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2FwQnBEZXRhaWxzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY2xhc3MgPSAnZGlzcGxheS1mbGV4LWNvbXBvbmVudCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaWQ6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICB1c2VyU2V0dGluZ3M6IFNhcEJwVXNlclNldHRpbmdzO1xyXG5cclxuICBicERldGFpbHM6IFNhcEJwTW9kZWw7XHJcblxyXG4gIHNob3dRcnlHcm91cCA9IGZhbHNlO1xyXG4gIGJwVGF4VHlwZSA9IEJwVGF4VHlwZUVudW07XHJcblxyXG4gIGluaXRDb250YWN0UGVyc29uTGlzdDogU2FwQnBDb250YWN0UGVyc29uTW9kZWxbXSA9IFtdO1xyXG4gIGNvbnRhY3RQZXJzb25DaGFuZ2VkID0gZmFsc2U7XHJcbiAgY29udGFjdFBlcnNvbnM6IFNhcEJwQ29udGFjdFBlcnNvbk1vZGVsW107XHJcbiAgY29udGFjdFBlcnNvbnNJbml0U2V0ID0gZmFsc2U7XHJcblxyXG4gIGFkZHJlc3NDaGFuZ2VkID0gZmFsc2U7XHJcblxyXG4gIGluaXRCaWxsVG9BZGRyZXNzOiBTYXBCcEFkZHJlc3NNb2RlbFtdID0gW107XHJcbiAgYmlsbFRvQWRkcmVzczogU2FwQnBBZGRyZXNzTW9kZWxbXTtcclxuICBiaWxsVG9BZGRyZXNzSW5pdFNldCA9IGZhbHNlO1xyXG5cclxuICBpbml0U2hpcFRvQWRkcmVzczogU2FwQnBBZGRyZXNzTW9kZWxbXSA9IFtdO1xyXG4gIHNoaXBUb0FkZHJlc3M6IFNhcEJwQWRkcmVzc01vZGVsW107XHJcbiAgc2hpcFRvQWRkcmVzc0luaXRTZXQgPSBmYWxzZTtcclxuXHJcbiAgc2hvd0xvYWRlciA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIGFkZHJlc3NEZWxldGVkOiBTYXBCcEFkZHJlc3NNb2RlbFtdID0gW107XHJcbiAgcHJpdmF0ZSBjb250YWN0UGVyc29uRGVsZXRlZDogU2FwQnBDb250YWN0UGVyc29uTW9kZWxbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgc2FwQnBTZXJ2aWNlOiBTYXBCcFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNuYWNrOiBTdFNuYWNrQmFyU2VydmljZSxcclxuICAgIHByaXZhdGUgc2FwQnBIZWxwZXJTZXJ2aWNlOiBTYXBCcEhlbHBlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHN0RGlhbG9nVHJhbnNsYXRlZFNlcnZpY2U6IFN0RGlhbG9nVHJhbnNsYXRlZFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0xvYWRlciA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5sb2FkQnAoKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUJwKCkge1xyXG4gICAgdGhpcy5zdERpYWxvZ1RyYW5zbGF0ZWRTZXJ2aWNlXHJcbiAgICAgIC5zaG93RGVsZXRlV2FybmluZygpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5zYXBCcFNlcnZpY2UuZGVsZXRlKHRoaXMuaWQpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgIHRoaXMuc25hY2suc3VjY2VzcyhcclxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdzYXBBZG1pbkl0ZW0uaXRlbURlbGV0ZWQnKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuLi8uLi8nXSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZGlzYWJsZUVkaXRDb250YWN0UGVyc29uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2FwQnBIZWxwZXJTZXJ2aWNlLmRpc2FibGVFZGl0Q29udGFjdFBlcnNvbihcclxuICAgICAgdGhpcy51c2VyU2V0dGluZ3Muc2FwQnBFZGl0QXV0aCxcclxuICAgICAgdGhpcy5nZXRUbXBGb3JtKCksXHJcbiAgICAgIHRoaXMuYnBEZXRhaWxzXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGlzYWJsZUVkaXRCaWxsVG9BZGRyZXNzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2FwQnBIZWxwZXJTZXJ2aWNlLmRpc2FibGVFZGl0QmlsbFRvQWRkcmVzcyhcclxuICAgICAgdGhpcy51c2VyU2V0dGluZ3Muc2FwQnBFZGl0QXV0aCxcclxuICAgICAgdGhpcy5nZXRUbXBGb3JtKCksXHJcbiAgICAgIHRoaXMuYnBEZXRhaWxzXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGlzYWJsZUVkaXRTaGlwVG9BZGRyZXNzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2FwQnBIZWxwZXJTZXJ2aWNlLmRpc2FibGVFZGl0U2hpcFRvQWRkcmVzcyhcclxuICAgICAgdGhpcy51c2VyU2V0dGluZ3Muc2FwQnBFZGl0QXV0aCxcclxuICAgICAgdGhpcy5nZXRUbXBGb3JtKCksXHJcbiAgICAgIHRoaXMuYnBEZXRhaWxzXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGlzYWJsZUFkZFNoaXBUb0FkZHJlc3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zYXBCcEhlbHBlclNlcnZpY2UuZGlzYWJsZUFkZFNoaXBUb0FkZHJlc3MoXHJcbiAgICAgIHRoaXMudXNlclNldHRpbmdzLnNhcEJwRWRpdEF1dGgsXHJcbiAgICAgIHRoaXMuZ2V0VG1wRm9ybSgpLFxyXG4gICAgICB0aGlzLmJwRGV0YWlsc1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRpc2FibGVBZGRDb250YWN0UGVyc29uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2FwQnBIZWxwZXJTZXJ2aWNlLmRpc2FibGVBZGRDb250YWN0UGVyc29uKFxyXG4gICAgICB0aGlzLnVzZXJTZXR0aW5ncy5zYXBCcEVkaXRBdXRoLFxyXG4gICAgICB0aGlzLmdldFRtcEZvcm0oKSxcclxuICAgICAgdGhpcy5icERldGFpbHNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkaXNhYmxlQWRkQmlsbFRvQWRkcmVzcygpIHtcclxuICAgIHJldHVybiB0aGlzLnNhcEJwSGVscGVyU2VydmljZS5kaXNhYmxlQWRkQmlsbFRvQWRkcmVzcyhcclxuICAgICAgdGhpcy51c2VyU2V0dGluZ3Muc2FwQnBFZGl0QXV0aCxcclxuICAgICAgdGhpcy5nZXRUbXBGb3JtKCksXHJcbiAgICAgIHRoaXMuYnBEZXRhaWxzXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc2V0Q29udGFjdFBlcnNvbnNDaGFuZ2VkKGV2ZW50OiBTYXBCcENvbnRhY3RQZXJzb25Nb2RlbFtdKSB7XHJcbiAgICB0aGlzLmNvbnRhY3RQZXJzb25zID0gZXZlbnQ7XHJcblxyXG4gICAgaWYgKHRoaXMuY29udGFjdFBlcnNvbnNJbml0U2V0KSB7XHJcbiAgICAgIHRoaXMudXBkYXRlQnAoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNvbnRhY3RQZXJzb25zSW5pdFNldCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBzZXRTaGlwVG9BZGRyZXNzKGV2ZW50OiBTYXBCcEFkZHJlc3NNb2RlbFtdKSB7XHJcbiAgICB0aGlzLnNoaXBUb0FkZHJlc3MgPSBldmVudDtcclxuXHJcbiAgICBpZiAodGhpcy5zaGlwVG9BZGRyZXNzSW5pdFNldCkge1xyXG4gICAgICB0aGlzLnVwZGF0ZUJwKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zaGlwVG9BZGRyZXNzSW5pdFNldCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBzZXRCaWxsVG9BZGRyZXNzKGV2ZW50OiBTYXBCcEFkZHJlc3NNb2RlbFtdKSB7XHJcbiAgICB0aGlzLmJpbGxUb0FkZHJlc3MgPSBldmVudDtcclxuXHJcbiAgICBpZiAodGhpcy5iaWxsVG9BZGRyZXNzSW5pdFNldCkge1xyXG4gICAgICB0aGlzLnVwZGF0ZUJwKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5iaWxsVG9BZGRyZXNzSW5pdFNldCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBzZXRBZGRyZXNzQ2hhbmdlZChldmVudDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5hZGRyZXNzQ2hhbmdlZCA9IGV2ZW50O1xyXG4gIH1cclxuXHJcbiAgY29udGFjdFBlcnNvbkRlbGV0ZWRSZXMoY3A6IFNhcEJwQ29udGFjdFBlcnNvbk1vZGVsKSB7XHJcbiAgICB0aGlzLmNvbnRhY3RQZXJzb25EZWxldGVkLnB1c2goY3ApO1xyXG4gIH1cclxuXHJcbiAgYWRkcmVzc0RlbGV0ZWRSZXMoYWRkcmVzczogU2FwQnBBZGRyZXNzTW9kZWwpIHtcclxuICAgIHRoaXMuYWRkcmVzc0RlbGV0ZWQucHVzaChhZGRyZXNzKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUJwKCkge1xyXG4gICAgdGhpcy5zaG93TG9hZGVyID0gdHJ1ZTtcclxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnByZXBhcmVEYXRhVG9TZW5kKCk7XHJcblxyXG4gICAgZGF0YS5yZW1vdmVkQWRkcmVzc0xpc3QgPSB0aGlzLmFkZHJlc3NEZWxldGVkO1xyXG4gICAgZGF0YS5yZW1vdmVkQ29udGFjdFBlcnNvbkxpc3QgPSB0aGlzLmNvbnRhY3RQZXJzb25EZWxldGVkO1xyXG5cclxuICAgIHRoaXMuc2FwQnBTZXJ2aWNlLnVwZGF0ZUJwKGRhdGEpLnN1YnNjcmliZShcclxuICAgICAgcmVzID0+IHtcclxuICAgICAgICB0aGlzLnNuYWNrLnN1Y2Nlc3MoXHJcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnc2FwQWRtaW5CcC5icFVwZGF0ZWQnKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5sb2FkQnAoKTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3IgPT4ge1xyXG4gICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRUbXBGb3JtKCkge1xyXG4gICAgcmV0dXJuIG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcclxuICAgICAgY2FyZFR5cGU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXHJcbiAgICAgICAgdGhpcy5jb252ZXJ0QnBUeXBlKHRoaXMuYnBEZXRhaWxzLmNhcmRUeXBlKVxyXG4gICAgICApLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnZlcnRCcFR5cGUodHlwZTogU2FwQnBUeXBlVHJhbnNsYXRlRW51bSk6IFNhcEJwVHlwZUVudW0ge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgU2FwQnBUeXBlVHJhbnNsYXRlRW51bS5DdXN0b21lcjpcclxuICAgICAgICByZXR1cm4gU2FwQnBUeXBlRW51bS5DdXN0b21lcjtcclxuICAgICAgY2FzZSBTYXBCcFR5cGVUcmFuc2xhdGVFbnVtLkxlYWQ6XHJcbiAgICAgICAgcmV0dXJuIFNhcEJwVHlwZUVudW0uTGVhZDtcclxuICAgICAgY2FzZSBTYXBCcFR5cGVUcmFuc2xhdGVFbnVtLlN1cHBsaWVyOlxyXG4gICAgICAgIHJldHVybiBTYXBCcFR5cGVFbnVtLlN1cHBsaWVyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHByZXBhcmVEYXRhVG9TZW5kKCk6IFNhcEJwRWRpdE1vZGVsIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGNhcmRGb3JpZ25OYW1lOiB0aGlzLmJwRGV0YWlscy5jYXJkRm9yaWduTmFtZSxcclxuICAgICAgZ3JvdXBDb2RlOiB0aGlzLmJwRGV0YWlscy5ncm91cENvZGUsXHJcbiAgICAgIGN1cnJlbmN5OiB0aGlzLmJwRGV0YWlscy5jdXJyZW5jeSxcclxuICAgICAgbGljVHJhZE51bTogdGhpcy5icERldGFpbHMubGljVHJhZE51bSxcclxuICAgICAgcGhvbmUxOiB0aGlzLmJwRGV0YWlscy5waG9uZTEsXHJcbiAgICAgIHBob25lMjogdGhpcy5icERldGFpbHMucGhvbmUyLFxyXG4gICAgICBjZWxsdWxhcjogdGhpcy5icERldGFpbHMuY2VsbHVsYXIsXHJcbiAgICAgIGZheDogdGhpcy5icERldGFpbHMuZmF4LFxyXG4gICAgICBlbWFpbDogdGhpcy5icERldGFpbHMuZW1haWwsXHJcbiAgICAgIHdlYlNpdGU6IHRoaXMuYnBEZXRhaWxzLndlYlNpdGUsXHJcbiAgICAgIHNoaXBUeXBlQ29kZTogdGhpcy5icERldGFpbHMuc2hpcFR5cGVDb2RlLFxyXG4gICAgICBpbmR1c3RyeUNvZGU6IHRoaXMuYnBEZXRhaWxzLmluZHVzdHJ5Q29kZSxcclxuICAgICAgYWRkSWQ6IHRoaXMuYnBEZXRhaWxzLmFkZElkLFxyXG4gICAgICB2YXRJZFVuaWZpZWQ6IHRoaXMuYnBEZXRhaWxzLnZhdElkVW5pZmllZCxcclxuICAgICAgcmVnaXN0ZXJObzogdGhpcy5icERldGFpbHMucmVnaXN0ZXJObyxcclxuICAgICAgbm90ZXM6IHRoaXMuYnBEZXRhaWxzLm5vdGVzLFxyXG4gICAgICB0ZWNobmljaWFuQ29kZTogdGhpcy5icERldGFpbHMudGVjaG5pY2lhbkNvZGUsXHJcbiAgICAgIHNhbGVzUGVyc29uQ29kZTogdGhpcy5icERldGFpbHMuc2FsZXNQZXJzb25Db2RlLFxyXG4gICAgICB0ZXJyaXRvcnlDb2RlOiB0aGlzLmJwRGV0YWlscy50ZXJyaXRvcnlDb2RlLFxyXG4gICAgICBnbG9iYWxBY2NvdW50OiB0aGlzLmJwRGV0YWlscy5nbG9iYWxBY2NvdW50LFxyXG4gICAgICBnbG9iYWxJZDogdGhpcy5icERldGFpbHMuZ2xvYmFsSWQsXHJcbiAgICAgIHZhbGlkRm9yOiB0aGlzLmJwRGV0YWlscy52YWxpZEZvciA/ICdZJyA6ICdOJyxcclxuICAgICAgcGF5bWVudENvZGU6IHRoaXMuYnBEZXRhaWxzLnBheW1lbnRDb2RlLFxyXG4gICAgICBwcmljZWxpc3RDb2RlOiB0aGlzLmJwRGV0YWlscy5wcmljZWxpc3RDb2RlLFxyXG4gICAgICBkZWxpdmVyeUluc3RydWN0aW9uczogdGhpcy5icERldGFpbHMuZGVsaXZlcnlJbnN0cnVjdGlvbnMsXHJcbiAgICAgIGZyZWVUZXh0OiB0aGlzLmJwRGV0YWlscy5mcmVlVGV4dCxcclxuICAgICAgY29udGFjdFBlcnNvbkxpc3Q6IHRoaXMuY29udGFjdFBlcnNvbnMgfHwgW10sXHJcbiAgICAgIGFkZHJlc3NTaGlwVG9MaXN0OiB0aGlzLnNoaXBUb0FkZHJlc3MgfHwgW10sXHJcbiAgICAgIGFkZHJlc3NCaWxsVG9MaXN0OiB0aGlzLmJpbGxUb0FkZHJlc3MgfHwgW10sXHJcbiAgICAgIHFyeUdyb3VwTGlzdDogdGhpcy5icERldGFpbHMucXJ5R3JvdXBMaXN0LFxyXG4gICAgICBhZGRyZXNzQ2hhbmdlOiB0aGlzLmFkZHJlc3NDaGFuZ2VkLFxyXG4gICAgICBjb250YWN0Q2hhbmdlOiB0aGlzLmNvbnRhY3RQZXJzb25DaGFuZ2VkLFxyXG4gICAgICBjYXJkQ29kZTogdGhpcy5icERldGFpbHMuY2FyZENvZGUsXHJcbiAgICAgIGNhcmROYW1lOiB0aGlzLmJwRGV0YWlscy5jYXJkTmFtZSxcclxuICAgICAgY2FyZFR5cGU6IHRoaXMuYnBEZXRhaWxzLmNhcmRUeXBlLFxyXG4gICAgICBvbGRDYXJkQ29kZTogbnVsbCxcclxuICAgICAgY2FuRWRpdEJwTWFzdGVyRGF0YTogZmFsc2UsXHJcbiAgICAgIGluYWN0aXZlUmVhc29uOiB0aGlzLmJwRGV0YWlscy5pbmFjdGl2ZVJlYXNvbixcclxuICAgICAgaW5hY3RpdmVDb21tZW50OiB0aGlzLmJwRGV0YWlscy5pbmFjdGl2ZUNvbW1lbnQsXHJcbiAgICAgIHZhdFN0YXR1czogdGhpcy5icERldGFpbHMudmF0U3RhdHVzLFxyXG4gICAgICB0YXhDb2RlOiB0aGlzLmJwRGV0YWlscy50YXhDb2RlLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZEJwKCkge1xyXG4gICAgdGhpcy5zYXBCcFNlcnZpY2UuZ2V0QnAodGhpcy5pZCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMuYnBEZXRhaWxzID0gcmVzO1xyXG4gICAgICB0aGlzLmFkZHJlc3NEZWxldGVkID0gW107XHJcbiAgICAgIHRoaXMuY29udGFjdFBlcnNvbkRlbGV0ZWQgPSBbXTtcclxuICAgICAgdGhpcy5pbml0Q29udGFjdFBlcnNvbkxpc3QgPSByZXMuY29udGFjdFBlcnNvbkxpc3Q7XHJcbiAgICAgIHRoaXMuaW5pdEJpbGxUb0FkZHJlc3MgPSByZXMuYWRkcmVzc0JpbGxUb0xpc3Q7XHJcbiAgICAgIHRoaXMuaW5pdFNoaXBUb0FkZHJlc3MgPSByZXMuYWRkcmVzc1NoaXBUb0xpc3Q7XHJcblxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnNob3dMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgfSwgMCk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZCB1c2Vycy1saXN0IG5vLWN1dFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgY2FyZC1oZWFkZXItd2FybmluZ1wiPlxyXG4gICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlXCI+e3sgJ3NhcEFkbWluQnAudGl0bGVCcERldGFpbHMnIHwgdHJhbnNsYXRlIH19PC9oMz5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgPGEgY2xhc3M9XCJiYWNrLWxpbmtcIiBbcm91dGVyTGlua109XCJbJy4uLy4uLyddXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPmtleWJvYXJkX2JhY2tzcGFjZTwvc3Bhbj5cclxuICAgICAgPC9hPlxyXG5cclxuICAgICAgPG5neC1zdC1sb2FkZXJcclxuICAgICAgICBbc2hvd0xvYWRlcl09XCJzaG93TG9hZGVyXCJcclxuICAgICAgICBbcG9zaXRpb25WYWxdPVwiJ2ZpeGVkJ1wiXHJcbiAgICAgID48L25neC1zdC1sb2FkZXI+XHJcblxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiYnBEZXRhaWxzXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJhY3Rpb25zLWJ1dHRvbnNcIlxyXG4gICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgKHVzZXJTZXR0aW5ncy5vcmFjbGVCcEVkaXQgJiZcclxuICAgICAgICAgICAgICAoIWJwRGV0YWlscy5mcm96ZW4gfHxcclxuICAgICAgICAgICAgICAgIChicERldGFpbHMuZnJvemVuICYmIGJwRGV0YWlscy5jYXJkVHlwZSA9PT0gJ0MnKSkpIHx8XHJcbiAgICAgICAgICAgICghdXNlclNldHRpbmdzLm9yYWNsZUJwRWRpdCAmJlxyXG4gICAgICAgICAgICAgICghYnBEZXRhaWxzLmZyb3plbiB8fFxyXG4gICAgICAgICAgICAgICAgKGJwRGV0YWlscy5mcm96ZW4gJiYgYnBEZXRhaWxzLmNhcmRUeXBlID09PSAnQycpKSlcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cclxuICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy4uLy4uLycsICdlZGl0JywgYnBEZXRhaWxzLmNhcmRDb2RlXVwiXHJcbiAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxyXG4gICAgICAgICAgICAgIHN0eWxlPVwiY29sb3I6ICMwMDBcIlxyXG4gICAgICAgICAgICAgID57eyAnc2FwQWRtaW5CcC5lZGl0QnAnIHwgdHJhbnNsYXRlIH19PC9hXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGEgbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiZGVsZXRlQnAoKVwiIHN0eWxlPVwiY29sb3I6ICMwMDBcIj57e1xyXG4gICAgICAgICAgICAgICdzYXBBZG1pbkJwLmRlbGV0ZUJwJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICB9fTwvYT5cclxuICAgICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwiYWN0aW9ucy1idXR0b25zIGNvbnZlcnRpbmctdGV4dFwiXHJcbiAgICAgICAgICAqbmdJZj1cImJwRGV0YWlscy5mcm96ZW4gJiYgYnBEZXRhaWxzLmNhcmRUeXBlID09PSAnTCdcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7ICdzYXBBZG1pbkJwLmNvbnZlcnRpbmcnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1kZXRhaWxzIHJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyAnZ2xvYmFsLmNhcmRDb2RlJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHA+e3sgYnBEZXRhaWxzLmNhcmRDb2RlIHx8ICctJyB9fTwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyAnZ2xvYmFsLmNhcmROYW1lJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHA+e3sgYnBEZXRhaWxzLmNhcmROYW1lIHx8ICctJyB9fTwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtZGV0YWlscyByb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgJ2dsb2JhbC5jYXJkVHlwZScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxwPnt7IGJwRGV0YWlscy5jYXJkVHlwZSB8fCAnLScgfX08L3A+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgJ3NhcEFkbWluQnAuY2FyZEZvcmVpZ25OYW1lJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHA+e3sgYnBEZXRhaWxzLmNhcmRGb3JpZ25OYW1lIHx8ICctJyB9fTwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtZGV0YWlscyByb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgJ3NhcEFkbWluQnAuZ3JvdXBDb2RlJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHA+e3sgYnBEZXRhaWxzLmdyb3VwQ29kZU5hbWUgfHwgJy0nIH19PC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7ICdzYXBBZG1pbkJwLmN1cnJlbmN5JyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHA+e3sgYnBEZXRhaWxzLmN1cnJlbmN5IHx8ICctJyB9fTwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtZGV0YWlscyByb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgJ3NhcEFkbWluQnAudGVsMScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxwPnt7IGJwRGV0YWlscy5waG9uZTEgfHwgJy0nIH19PC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7ICdzYXBBZG1pbkJwLnRlbDEnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8cD57eyBicERldGFpbHMucGhvbmUyIHx8ICctJyB9fTwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtZGV0YWlscyByb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgJ3NhcEFkbWluQnAuY2VsbHVsYXInIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8cD57eyBicERldGFpbHMuY2VsbHVsYXIgfHwgJy0nIH19PC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7ICdzYXBBZG1pbkJwLmZheCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxwPnt7IGJwRGV0YWlscy5mYXggfHwgJy0nIH19PC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1kZXRhaWxzIHJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyAnc2FwQWRtaW5CcC5lbWFpbCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxwPnt7IGJwRGV0YWlscy5lbWFpbCB8fCAnLScgfX08L3A+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgJ3NhcEFkbWluQnAud2ViU2l0ZScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxwPnt7IGJwRGV0YWlscy53ZWJTaXRlIHx8ICctJyB9fTwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtZGV0YWlscyByb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgJ3NhcEFkbWluQnAuc2hpcFR5cGUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8cD57eyBicERldGFpbHMuc2hpcFR5cGVOYW1lIHx8ICctJyB9fTwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyAnc2FwQWRtaW5CcC5pbmR1c3RyeUNvZGUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8cD57eyBicERldGFpbHMuaW5kdXN0cnlOYW1lIHx8ICctJyB9fTwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtZGV0YWlscyByb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgJ3NhcEFkbWluQnAubGljVHJhZE51bScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxwPnt7IGJwRGV0YWlscy5saWNUcmFkTnVtIHx8ICctJyB9fTwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyAnc2FwQWRtaW5CcC52YXRJZFVuaWZpZWQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8cD57eyBicERldGFpbHMudmF0SWRVbmlmaWVkIHx8ICctJyB9fTwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtZGV0YWlscyByb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgJ3NhcEFkbWluQnAuYWRkSWQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8cD57eyBicERldGFpbHMuYWRkSWQgfHwgJy0nIH19PC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7ICdzYXBBZG1pbkJwLnJlZ2lzdGVyTm8nIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8cD57eyBicERldGFpbHMucmVnaXN0ZXJObyB8fCAnLScgfX08L3A+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLWRldGFpbHMgcm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7ICdzYXBBZG1pbkJwLnNhbGVzRW1wbG95ZWUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8cD57eyBicERldGFpbHMuc2FsZXNQZXJzb25OYW1lIHx8ICctJyB9fTwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyAnc2FwQWRtaW5CcC50ZWNobmljaWFuJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHA+e3sgYnBEZXRhaWxzLnRlY2huaWNpYW5OYW1lIHx8ICctJyB9fTwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtZGV0YWlscyByb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgJ3NhcEFkbWluQnAudGVycml0b3J5JyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHA+e3sgYnBEZXRhaWxzLnRlcnJpdG9yeU5hbWUgfHwgJy0nIH19PC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7ICdzYXBBZG1pbkJwLm5vdGVzJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHA+e3sgYnBEZXRhaWxzLm5vdGVzIHx8ICctJyB9fTwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtZGV0YWlscyByb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgJ3NhcEFkbWluQnAuZ2xvYmFsSWQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8cD57eyBicERldGFpbHMuZ2xvYmFsSWQgfHwgJy0nIH19PC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7ICdzYXBBZG1pbkJwLmdsb2JhbEFjY291bnQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8cD57eyBicERldGFpbHMuZ2xvYmFsQWNjb3VudCB8fCAnLScgfX08L3A+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLWRldGFpbHMgcm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7ICdzYXBBZG1pbkJwLnBheW1lbnRUZXJtcycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxwPnt7IGJwRGV0YWlscy5wYXltZW50TmFtZSB8fCAnLScgfX08L3A+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgJ3NhcEFkbWluQnAucHJpY2VMaXN0JyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHA+e3sgYnBEZXRhaWxzLnByaWNlbGlzdE5hbWUgfHwgJy0nIH19PC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1kZXRhaWxzIHJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyAnc2FwQWRtaW5CcC5kZWxpdmVyeUluc3RydWN0aW9ucycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxwPnt7IGJwRGV0YWlscy5kZWxpdmVyeUluc3RydWN0aW9ucyB8fCAnLScgfX08L3A+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7ICdzYXBBZG1pbkJwLmZyZWVUZXh0JyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHA+e3sgYnBEZXRhaWxzLmZyZWVUZXh0IHx8ICctJyB9fTwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8YXBwLXNhcC1icC1saXN0LWNvbnRhY3QtcGVyc29uXHJcbiAgICAgICAgICBbY29udGFjdFBlcnNvbnNdPVwiaW5pdENvbnRhY3RQZXJzb25MaXN0XCJcclxuICAgICAgICAgIFtkZXRhaWxzVmlld109XCJ0cnVlXCJcclxuICAgICAgICAgIFtjYW5FZGl0SW5EZXRhaWxzXT1cIlxyXG4gICAgICAgICAgICB1c2VyU2V0dGluZ3Mub3JhY2xlQnBFZGl0ICYmXHJcbiAgICAgICAgICAgICghYnBEZXRhaWxzLmZyb3plbiB8fFxyXG4gICAgICAgICAgICAgIChicERldGFpbHMuZnJvemVuICYmIGJwRGV0YWlscy5jYXJkVHlwZSA9PT0gJ0MnKSlcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICBbZGlzYWJsZUVkaXRdPVwiZGlzYWJsZUVkaXRDb250YWN0UGVyc29uKClcIlxyXG4gICAgICAgICAgW2Rpc2FibGVBZGRdPVwiZGlzYWJsZUFkZENvbnRhY3RQZXJzb24oKVwiXHJcbiAgICAgICAgICAoY29udGFjdFBlcnNvbkxpc3RFbWl0dGVyKT1cInNldENvbnRhY3RQZXJzb25zQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgICAgIChjb250YWN0UGVyc29uQ2hhbmdlZEVtaXR0ZXIpPVwiY29udGFjdFBlcnNvbkNoYW5nZWQgPSAkZXZlbnRcIlxyXG4gICAgICAgICAgKGRlbGV0ZWRDb250YWN0UGVyc29uRW1pdHRlcik9XCJjb250YWN0UGVyc29uRGVsZXRlZFJlcygkZXZlbnQpXCJcclxuICAgICAgICA+PC9hcHAtc2FwLWJwLWxpc3QtY29udGFjdC1wZXJzb24+XHJcblxyXG4gICAgICAgIDxociAvPlxyXG5cclxuICAgICAgICA8YXBwLXNhcC1icC1saXN0LWFkZHJlc3NcclxuICAgICAgICAgIFthZGRyZXNzZXNdPVwiaW5pdEJpbGxUb0FkZHJlc3MgfHwgW11cIlxyXG4gICAgICAgICAgW3JlcXVpcmVkXT1cImZhbHNlXCJcclxuICAgICAgICAgIFtlcnJvclRleHRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgW2FkZHJlc3NUeXBlXT1cIidCJ1wiXHJcbiAgICAgICAgICBbZGV0YWlsc1ZpZXddPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbY2FuRWRpdEluRGV0YWlsc109XCJcclxuICAgICAgICAgICAgdXNlclNldHRpbmdzLm9yYWNsZUJwRWRpdCAmJlxyXG4gICAgICAgICAgICAoIWJwRGV0YWlscy5mcm96ZW4gfHxcclxuICAgICAgICAgICAgICAoYnBEZXRhaWxzLmZyb3plbiAmJiBicERldGFpbHMuY2FyZFR5cGUgPT09ICdDJykpXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgICAgW2Rpc2FibGVFZGl0XT1cImRpc2FibGVFZGl0QmlsbFRvQWRkcmVzcygpXCJcclxuICAgICAgICAgIFtkaXNhYmxlQWRkXT1cImRpc2FibGVBZGRCaWxsVG9BZGRyZXNzKClcIlxyXG4gICAgICAgICAgW3VzZXJTZXR0aW5nc109XCJ1c2VyU2V0dGluZ3NcIlxyXG4gICAgICAgICAgKGFkZHJlc3NMaXN0RW1pdHRlcik9XCJzZXRCaWxsVG9BZGRyZXNzKCRldmVudClcIlxyXG4gICAgICAgICAgKGFkZHJlc3NDaGFuZ2VkRW1pdHRlcik9XCJzZXRBZGRyZXNzQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgICAgIChkZWxldGVkQWRkcmVzc0VtaXR0ZXIpPVwiYWRkcmVzc0RlbGV0ZWRSZXMoJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvYXBwLXNhcC1icC1saXN0LWFkZHJlc3M+XHJcblxyXG4gICAgICAgIDxociAvPlxyXG5cclxuICAgICAgICA8YXBwLXNhcC1icC1saXN0LWFkZHJlc3NcclxuICAgICAgICAgIFthZGRyZXNzZXNdPVwiaW5pdFNoaXBUb0FkZHJlc3MgfHwgW11cIlxyXG4gICAgICAgICAgW3JlcXVpcmVkXT1cImZhbHNlXCJcclxuICAgICAgICAgIFtlcnJvclRleHRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgW2FkZHJlc3NUeXBlXT1cIidTJ1wiXHJcbiAgICAgICAgICBbZGV0YWlsc1ZpZXddPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbY2FuRWRpdEluRGV0YWlsc109XCJcclxuICAgICAgICAgICAgdXNlclNldHRpbmdzLm9yYWNsZUJwRWRpdCAmJlxyXG4gICAgICAgICAgICAoIWJwRGV0YWlscy5mcm96ZW4gfHxcclxuICAgICAgICAgICAgICAoYnBEZXRhaWxzLmZyb3plbiAmJiBicERldGFpbHMuY2FyZFR5cGUgPT09ICdDJykpXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgICAgW2Rpc2FibGVFZGl0XT1cImRpc2FibGVFZGl0U2hpcFRvQWRkcmVzcygpXCJcclxuICAgICAgICAgIFtkaXNhYmxlQWRkXT1cImRpc2FibGVBZGRTaGlwVG9BZGRyZXNzKClcIlxyXG4gICAgICAgICAgW3VzZVRheENvZGVdPVwidXNlclNldHRpbmdzLmJwVGF4VHlwZSA9PT0gYnBUYXhUeXBlLlVzXCJcclxuICAgICAgICAgIFt1c2VyU2V0dGluZ3NdPVwidXNlclNldHRpbmdzXCJcclxuICAgICAgICAgIChhZGRyZXNzTGlzdEVtaXR0ZXIpPVwic2V0U2hpcFRvQWRkcmVzcygkZXZlbnQpXCJcclxuICAgICAgICAgIChhZGRyZXNzQ2hhbmdlZEVtaXR0ZXIpPVwic2V0QWRkcmVzc0NoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoZGVsZXRlZEFkZHJlc3NFbWl0dGVyKT1cImFkZHJlc3NEZWxldGVkUmVzKCRldmVudClcIlxyXG4gICAgICAgID48L2FwcC1zYXAtYnAtbGlzdC1hZGRyZXNzPlxyXG5cclxuICAgICAgICA8aHIgLz5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhY3QtcGVyc29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJjb250YWN0LXBlcnNvbi10aXRsZVwiPlxyXG4gICAgICAgICAgICAgIHt7ICdzYXBBZG1pbkJwLnFyeUdyb3VwJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICAgIG1hdC1idXR0b25cclxuICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd1FyeUdyb3VwID0gIXNob3dRcnlHcm91cFwiXHJcbiAgICAgICAgICAgICAgc3R5bGU9XCJmb250LXdlaWdodDogYm9sZDsgbWFyZ2luLWxlZnQ6IDEwcHhcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzaG93UXJ5R3JvdXBcIj57e1xyXG4gICAgICAgICAgICAgICAgJ2dsb2JhbC5zaG93JyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICAgIH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dRcnlHcm91cFwiPnt7XHJcbiAgICAgICAgICAgICAgICAnZ2xvYmFsLmhpZGUnIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgICAgfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJzaG93UXJ5R3JvdXBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IHFyeS1ncm91cC1yb3dcIlxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGdyb3VwIG9mIGJwRGV0YWlscy5xcnlHcm91cExpc3QgfCBzbGljZTogMCA6IDMyXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXJ5LWdyb3VwLW5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAge3sgZ3JvdXAubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXJ5LWdyb3VwLXZhbFwiPlxyXG4gICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwLnZhbHVlID09PSAnWSdcclxuICAgICAgICAgICAgICAgICAgICAgID8gKCdnbG9iYWwueWVzJyB8IHRyYW5zbGF0ZSlcclxuICAgICAgICAgICAgICAgICAgICAgIDogKCdnbG9iYWwubm8nIHwgdHJhbnNsYXRlKVxyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IHFyeS1ncm91cC1yb3dcIlxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGdyb3VwIG9mIGJwRGV0YWlscy5xcnlHcm91cExpc3QgfCBzbGljZTogMzIgOiA2NFwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInFyeS1ncm91cC1uYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7IGdyb3VwLm5hbWUgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInFyeS1ncm91cC12YWxcIj5cclxuICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICBncm91cC52YWx1ZSA9PT0gJ1knXHJcbiAgICAgICAgICAgICAgICAgICAgICA/ICgnZ2xvYmFsLnllcycgfCB0cmFuc2xhdGUpXHJcbiAgICAgICAgICAgICAgICAgICAgICA6ICgnZ2xvYmFsLm5vJyB8IHRyYW5zbGF0ZSlcclxuICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FwLWJwLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXNhcC1icC9zcmMvbGliL2NvbXBvbmVudHMvc2FwLWJwLWRldGFpbHMvc2FwLWJwLWRldGFpbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXNhcC1icC9zcmMvbGliL2NvbXBvbmVudHMvc2FwLWJwLWRldGFpbHMvc2FwLWJwLWRldGFpbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBS3RFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUkzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd0RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBUzlELE1BQU0sT0FBTyxxQkFBcUI7SUFxQ2hDLFlBQ1UsWUFBMEIsRUFDM0IsTUFBaUIsRUFDaEIsZ0JBQWtDLEVBQ2xDLEtBQXdCLEVBQ3hCLGtCQUFzQyxFQUN0Qyx5QkFBb0QsRUFDcEQsTUFBYztRQU5kLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzNCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDaEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLDhCQUF5QixHQUF6Qix5QkFB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QUM7WUFDL0IsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztZQUNuRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxDQUFDLGlCQUFpQixDQUFDO1lBQy9DLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLENBQUMsaUJBQWlCLENBQUM7WUFFL0MsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUMxQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDUixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O2tIQWpRVSxxQkFBcUI7c0dBQXJCLHFCQUFxQix3TEN4QmxDLDJxWkF5VUE7MkZEalRhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSx1QkFBdUI7d1JBS1gsS0FBSztzQkFBMUIsV0FBVzt1QkFBQyxPQUFPO2dCQUdwQixFQUFFO3NCQURELEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFNhcEJwU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NhcC1icC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2FwQnBNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zYXAtYnAubW9kZWwnO1xyXG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgU3RTbmFja0JhclNlcnZpY2UgfSBmcm9tICduZ3gtc3Qtc25hY2stYmFyJztcclxuaW1wb3J0IHsgU2FwQnBIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2FwLWJwLWhlbHBlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTYXBCcENvbnRhY3RQZXJzb25Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zYXAtYnAtY29udGFjdC1wZXJzb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBTYXBCcEFkZHJlc3NNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zYXAtYnAtYWRkcmVzcy5tb2RlbCc7XHJcbmltcG9ydCB7IFNhcEJwVHlwZVRyYW5zbGF0ZUVudW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvc2FwLWJwLXR5cGUtdHJhbnNsYXRlLmVudW0nO1xyXG5pbXBvcnQgeyBTYXBCcFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NhcC1icC10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBTYXBCcEVkaXRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zYXAtYnAtZWRpdC5tb2RlbCc7XHJcbmltcG9ydCB7IEJwVGF4VHlwZUVudW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvYnAtdGF4LXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IFN0RGlhbG9nVHJhbnNsYXRlZFNlcnZpY2UgfSBmcm9tICduZ3gtc3QtZGlhbG9nJztcclxuaW1wb3J0IHsgU2FwQnBVc2VyU2V0dGluZ3MgfSBmcm9tICcuLi9zYXAtYnAtYmFzZS1jcmVhdGUtZWRpdCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ25neC1zdC1zYXAtYnAtZGV0YWlscycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NhcC1icC1kZXRhaWxzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zYXAtYnAtZGV0YWlscy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2FwQnBEZXRhaWxzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY2xhc3MgPSAnZGlzcGxheS1mbGV4LWNvbXBvbmVudCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaWQ6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICB1c2VyU2V0dGluZ3M6IFNhcEJwVXNlclNldHRpbmdzO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG9ubHlWaWV3ID0gZmFsc2U7XHJcblxyXG4gIGJwRGV0YWlsczogU2FwQnBNb2RlbDtcclxuXHJcbiAgc2hvd1FyeUdyb3VwID0gZmFsc2U7XHJcbiAgYnBUYXhUeXBlID0gQnBUYXhUeXBlRW51bTtcclxuXHJcbiAgaW5pdENvbnRhY3RQZXJzb25MaXN0OiBTYXBCcENvbnRhY3RQZXJzb25Nb2RlbFtdID0gW107XHJcbiAgY29udGFjdFBlcnNvbkNoYW5nZWQgPSBmYWxzZTtcclxuICBjb250YWN0UGVyc29uczogU2FwQnBDb250YWN0UGVyc29uTW9kZWxbXTtcclxuICBjb250YWN0UGVyc29uc0luaXRTZXQgPSBmYWxzZTtcclxuXHJcbiAgYWRkcmVzc0NoYW5nZWQgPSBmYWxzZTtcclxuXHJcbiAgaW5pdEJpbGxUb0FkZHJlc3M6IFNhcEJwQWRkcmVzc01vZGVsW10gPSBbXTtcclxuICBiaWxsVG9BZGRyZXNzOiBTYXBCcEFkZHJlc3NNb2RlbFtdO1xyXG4gIGJpbGxUb0FkZHJlc3NJbml0U2V0ID0gZmFsc2U7XHJcblxyXG4gIGluaXRTaGlwVG9BZGRyZXNzOiBTYXBCcEFkZHJlc3NNb2RlbFtdID0gW107XHJcbiAgc2hpcFRvQWRkcmVzczogU2FwQnBBZGRyZXNzTW9kZWxbXTtcclxuICBzaGlwVG9BZGRyZXNzSW5pdFNldCA9IGZhbHNlO1xyXG5cclxuICBzaG93TG9hZGVyID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgYWRkcmVzc0RlbGV0ZWQ6IFNhcEJwQWRkcmVzc01vZGVsW10gPSBbXTtcclxuICBwcml2YXRlIGNvbnRhY3RQZXJzb25EZWxldGVkOiBTYXBCcENvbnRhY3RQZXJzb25Nb2RlbFtdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzYXBCcFNlcnZpY2U6IFNhcEJwU2VydmljZSxcclxuICAgIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgc25hY2s6IFN0U25hY2tCYXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzYXBCcEhlbHBlclNlcnZpY2U6IFNhcEJwSGVscGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgc3REaWFsb2dUcmFuc2xhdGVkU2VydmljZTogU3REaWFsb2dUcmFuc2xhdGVkU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93TG9hZGVyID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLmxvYWRCcCgpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlQnAoKSB7XHJcbiAgICB0aGlzLnN0RGlhbG9nVHJhbnNsYXRlZFNlcnZpY2VcclxuICAgICAgLnNob3dEZWxldGVXYXJuaW5nKClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLnNhcEJwU2VydmljZS5kZWxldGUodGhpcy5pZCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgdGhpcy5zbmFjay5zdWNjZXNzKFxyXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3NhcEFkbWluSXRlbS5pdGVtRGVsZXRlZCcpXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4uLy4uLyddKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBkaXNhYmxlRWRpdENvbnRhY3RQZXJzb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zYXBCcEhlbHBlclNlcnZpY2UuZGlzYWJsZUVkaXRDb250YWN0UGVyc29uKFxyXG4gICAgICB0aGlzLnVzZXJTZXR0aW5ncy5zYXBCcEVkaXRBdXRoLFxyXG4gICAgICB0aGlzLmdldFRtcEZvcm0oKSxcclxuICAgICAgdGhpcy5icERldGFpbHNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkaXNhYmxlRWRpdEJpbGxUb0FkZHJlc3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zYXBCcEhlbHBlclNlcnZpY2UuZGlzYWJsZUVkaXRCaWxsVG9BZGRyZXNzKFxyXG4gICAgICB0aGlzLnVzZXJTZXR0aW5ncy5zYXBCcEVkaXRBdXRoLFxyXG4gICAgICB0aGlzLmdldFRtcEZvcm0oKSxcclxuICAgICAgdGhpcy5icERldGFpbHNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkaXNhYmxlRWRpdFNoaXBUb0FkZHJlc3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zYXBCcEhlbHBlclNlcnZpY2UuZGlzYWJsZUVkaXRTaGlwVG9BZGRyZXNzKFxyXG4gICAgICB0aGlzLnVzZXJTZXR0aW5ncy5zYXBCcEVkaXRBdXRoLFxyXG4gICAgICB0aGlzLmdldFRtcEZvcm0oKSxcclxuICAgICAgdGhpcy5icERldGFpbHNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkaXNhYmxlQWRkU2hpcFRvQWRkcmVzcygpIHtcclxuICAgIHJldHVybiB0aGlzLnNhcEJwSGVscGVyU2VydmljZS5kaXNhYmxlQWRkU2hpcFRvQWRkcmVzcyhcclxuICAgICAgdGhpcy51c2VyU2V0dGluZ3Muc2FwQnBFZGl0QXV0aCxcclxuICAgICAgdGhpcy5nZXRUbXBGb3JtKCksXHJcbiAgICAgIHRoaXMuYnBEZXRhaWxzXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGlzYWJsZUFkZENvbnRhY3RQZXJzb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zYXBCcEhlbHBlclNlcnZpY2UuZGlzYWJsZUFkZENvbnRhY3RQZXJzb24oXHJcbiAgICAgIHRoaXMudXNlclNldHRpbmdzLnNhcEJwRWRpdEF1dGgsXHJcbiAgICAgIHRoaXMuZ2V0VG1wRm9ybSgpLFxyXG4gICAgICB0aGlzLmJwRGV0YWlsc1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRpc2FibGVBZGRCaWxsVG9BZGRyZXNzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2FwQnBIZWxwZXJTZXJ2aWNlLmRpc2FibGVBZGRCaWxsVG9BZGRyZXNzKFxyXG4gICAgICB0aGlzLnVzZXJTZXR0aW5ncy5zYXBCcEVkaXRBdXRoLFxyXG4gICAgICB0aGlzLmdldFRtcEZvcm0oKSxcclxuICAgICAgdGhpcy5icERldGFpbHNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzZXRDb250YWN0UGVyc29uc0NoYW5nZWQoZXZlbnQ6IFNhcEJwQ29udGFjdFBlcnNvbk1vZGVsW10pIHtcclxuICAgIHRoaXMuY29udGFjdFBlcnNvbnMgPSBldmVudDtcclxuXHJcbiAgICBpZiAodGhpcy5jb250YWN0UGVyc29uc0luaXRTZXQpIHtcclxuICAgICAgdGhpcy51cGRhdGVCcCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29udGFjdFBlcnNvbnNJbml0U2V0ID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHNldFNoaXBUb0FkZHJlc3MoZXZlbnQ6IFNhcEJwQWRkcmVzc01vZGVsW10pIHtcclxuICAgIHRoaXMuc2hpcFRvQWRkcmVzcyA9IGV2ZW50O1xyXG5cclxuICAgIGlmICh0aGlzLnNoaXBUb0FkZHJlc3NJbml0U2V0KSB7XHJcbiAgICAgIHRoaXMudXBkYXRlQnAoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNoaXBUb0FkZHJlc3NJbml0U2V0ID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHNldEJpbGxUb0FkZHJlc3MoZXZlbnQ6IFNhcEJwQWRkcmVzc01vZGVsW10pIHtcclxuICAgIHRoaXMuYmlsbFRvQWRkcmVzcyA9IGV2ZW50O1xyXG5cclxuICAgIGlmICh0aGlzLmJpbGxUb0FkZHJlc3NJbml0U2V0KSB7XHJcbiAgICAgIHRoaXMudXBkYXRlQnAoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmJpbGxUb0FkZHJlc3NJbml0U2V0ID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHNldEFkZHJlc3NDaGFuZ2VkKGV2ZW50OiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmFkZHJlc3NDaGFuZ2VkID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBjb250YWN0UGVyc29uRGVsZXRlZFJlcyhjcDogU2FwQnBDb250YWN0UGVyc29uTW9kZWwpIHtcclxuICAgIHRoaXMuY29udGFjdFBlcnNvbkRlbGV0ZWQucHVzaChjcCk7XHJcbiAgfVxyXG5cclxuICBhZGRyZXNzRGVsZXRlZFJlcyhhZGRyZXNzOiBTYXBCcEFkZHJlc3NNb2RlbCkge1xyXG4gICAgdGhpcy5hZGRyZXNzRGVsZXRlZC5wdXNoKGFkZHJlc3MpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQnAoKSB7XHJcbiAgICB0aGlzLnNob3dMb2FkZXIgPSB0cnVlO1xyXG4gICAgY29uc3QgZGF0YSA9IHRoaXMucHJlcGFyZURhdGFUb1NlbmQoKTtcclxuXHJcbiAgICBkYXRhLnJlbW92ZWRBZGRyZXNzTGlzdCA9IHRoaXMuYWRkcmVzc0RlbGV0ZWQ7XHJcbiAgICBkYXRhLnJlbW92ZWRDb250YWN0UGVyc29uTGlzdCA9IHRoaXMuY29udGFjdFBlcnNvbkRlbGV0ZWQ7XHJcblxyXG4gICAgdGhpcy5zYXBCcFNlcnZpY2UudXBkYXRlQnAoZGF0YSkuc3Vic2NyaWJlKFxyXG4gICAgICByZXMgPT4ge1xyXG4gICAgICAgIHRoaXMuc25hY2suc3VjY2VzcyhcclxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdzYXBBZG1pbkJwLmJwVXBkYXRlZCcpXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmxvYWRCcCgpO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvciA9PiB7XHJcbiAgICAgICAgdGhpcy5zaG93TG9hZGVyID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFRtcEZvcm0oKSB7XHJcbiAgICByZXR1cm4gbmV3IFVudHlwZWRGb3JtR3JvdXAoe1xyXG4gICAgICBjYXJkVHlwZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChcclxuICAgICAgICB0aGlzLmNvbnZlcnRCcFR5cGUodGhpcy5icERldGFpbHMuY2FyZFR5cGUpXHJcbiAgICAgICksXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29udmVydEJwVHlwZSh0eXBlOiBTYXBCcFR5cGVUcmFuc2xhdGVFbnVtKTogU2FwQnBUeXBlRW51bSB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSBTYXBCcFR5cGVUcmFuc2xhdGVFbnVtLkN1c3RvbWVyOlxyXG4gICAgICAgIHJldHVybiBTYXBCcFR5cGVFbnVtLkN1c3RvbWVyO1xyXG4gICAgICBjYXNlIFNhcEJwVHlwZVRyYW5zbGF0ZUVudW0uTGVhZDpcclxuICAgICAgICByZXR1cm4gU2FwQnBUeXBlRW51bS5MZWFkO1xyXG4gICAgICBjYXNlIFNhcEJwVHlwZVRyYW5zbGF0ZUVudW0uU3VwcGxpZXI6XHJcbiAgICAgICAgcmV0dXJuIFNhcEJwVHlwZUVudW0uU3VwcGxpZXI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcHJlcGFyZURhdGFUb1NlbmQoKTogU2FwQnBFZGl0TW9kZWwge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY2FyZEZvcmlnbk5hbWU6IHRoaXMuYnBEZXRhaWxzLmNhcmRGb3JpZ25OYW1lLFxyXG4gICAgICBncm91cENvZGU6IHRoaXMuYnBEZXRhaWxzLmdyb3VwQ29kZSxcclxuICAgICAgY3VycmVuY3k6IHRoaXMuYnBEZXRhaWxzLmN1cnJlbmN5LFxyXG4gICAgICBsaWNUcmFkTnVtOiB0aGlzLmJwRGV0YWlscy5saWNUcmFkTnVtLFxyXG4gICAgICBwaG9uZTE6IHRoaXMuYnBEZXRhaWxzLnBob25lMSxcclxuICAgICAgcGhvbmUyOiB0aGlzLmJwRGV0YWlscy5waG9uZTIsXHJcbiAgICAgIGNlbGx1bGFyOiB0aGlzLmJwRGV0YWlscy5jZWxsdWxhcixcclxuICAgICAgZmF4OiB0aGlzLmJwRGV0YWlscy5mYXgsXHJcbiAgICAgIGVtYWlsOiB0aGlzLmJwRGV0YWlscy5lbWFpbCxcclxuICAgICAgd2ViU2l0ZTogdGhpcy5icERldGFpbHMud2ViU2l0ZSxcclxuICAgICAgc2hpcFR5cGVDb2RlOiB0aGlzLmJwRGV0YWlscy5zaGlwVHlwZUNvZGUsXHJcbiAgICAgIGluZHVzdHJ5Q29kZTogdGhpcy5icERldGFpbHMuaW5kdXN0cnlDb2RlLFxyXG4gICAgICBhZGRJZDogdGhpcy5icERldGFpbHMuYWRkSWQsXHJcbiAgICAgIHZhdElkVW5pZmllZDogdGhpcy5icERldGFpbHMudmF0SWRVbmlmaWVkLFxyXG4gICAgICByZWdpc3Rlck5vOiB0aGlzLmJwRGV0YWlscy5yZWdpc3Rlck5vLFxyXG4gICAgICBub3RlczogdGhpcy5icERldGFpbHMubm90ZXMsXHJcbiAgICAgIHRlY2huaWNpYW5Db2RlOiB0aGlzLmJwRGV0YWlscy50ZWNobmljaWFuQ29kZSxcclxuICAgICAgc2FsZXNQZXJzb25Db2RlOiB0aGlzLmJwRGV0YWlscy5zYWxlc1BlcnNvbkNvZGUsXHJcbiAgICAgIHRlcnJpdG9yeUNvZGU6IHRoaXMuYnBEZXRhaWxzLnRlcnJpdG9yeUNvZGUsXHJcbiAgICAgIGdsb2JhbEFjY291bnQ6IHRoaXMuYnBEZXRhaWxzLmdsb2JhbEFjY291bnQsXHJcbiAgICAgIGdsb2JhbElkOiB0aGlzLmJwRGV0YWlscy5nbG9iYWxJZCxcclxuICAgICAgdmFsaWRGb3I6IHRoaXMuYnBEZXRhaWxzLnZhbGlkRm9yID8gJ1knIDogJ04nLFxyXG4gICAgICBwYXltZW50Q29kZTogdGhpcy5icERldGFpbHMucGF5bWVudENvZGUsXHJcbiAgICAgIHByaWNlbGlzdENvZGU6IHRoaXMuYnBEZXRhaWxzLnByaWNlbGlzdENvZGUsXHJcbiAgICAgIGRlbGl2ZXJ5SW5zdHJ1Y3Rpb25zOiB0aGlzLmJwRGV0YWlscy5kZWxpdmVyeUluc3RydWN0aW9ucyxcclxuICAgICAgZnJlZVRleHQ6IHRoaXMuYnBEZXRhaWxzLmZyZWVUZXh0LFxyXG4gICAgICBjb250YWN0UGVyc29uTGlzdDogdGhpcy5jb250YWN0UGVyc29ucyB8fCBbXSxcclxuICAgICAgYWRkcmVzc1NoaXBUb0xpc3Q6IHRoaXMuc2hpcFRvQWRkcmVzcyB8fCBbXSxcclxuICAgICAgYWRkcmVzc0JpbGxUb0xpc3Q6IHRoaXMuYmlsbFRvQWRkcmVzcyB8fCBbXSxcclxuICAgICAgcXJ5R3JvdXBMaXN0OiB0aGlzLmJwRGV0YWlscy5xcnlHcm91cExpc3QsXHJcbiAgICAgIGFkZHJlc3NDaGFuZ2U6IHRoaXMuYWRkcmVzc0NoYW5nZWQsXHJcbiAgICAgIGNvbnRhY3RDaGFuZ2U6IHRoaXMuY29udGFjdFBlcnNvbkNoYW5nZWQsXHJcbiAgICAgIGNhcmRDb2RlOiB0aGlzLmJwRGV0YWlscy5jYXJkQ29kZSxcclxuICAgICAgY2FyZE5hbWU6IHRoaXMuYnBEZXRhaWxzLmNhcmROYW1lLFxyXG4gICAgICBjYXJkVHlwZTogdGhpcy5icERldGFpbHMuY2FyZFR5cGUsXHJcbiAgICAgIG9sZENhcmRDb2RlOiBudWxsLFxyXG4gICAgICBjYW5FZGl0QnBNYXN0ZXJEYXRhOiBmYWxzZSxcclxuICAgICAgaW5hY3RpdmVSZWFzb246IHRoaXMuYnBEZXRhaWxzLmluYWN0aXZlUmVhc29uLFxyXG4gICAgICBpbmFjdGl2ZUNvbW1lbnQ6IHRoaXMuYnBEZXRhaWxzLmluYWN0aXZlQ29tbWVudCxcclxuICAgICAgdmF0U3RhdHVzOiB0aGlzLmJwRGV0YWlscy52YXRTdGF0dXMsXHJcbiAgICAgIHRheENvZGU6IHRoaXMuYnBEZXRhaWxzLnRheENvZGUsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2FkQnAoKSB7XHJcbiAgICB0aGlzLnNhcEJwU2VydmljZS5nZXRCcCh0aGlzLmlkKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgdGhpcy5icERldGFpbHMgPSByZXM7XHJcbiAgICAgIHRoaXMuYWRkcmVzc0RlbGV0ZWQgPSBbXTtcclxuICAgICAgdGhpcy5jb250YWN0UGVyc29uRGVsZXRlZCA9IFtdO1xyXG4gICAgICB0aGlzLmluaXRDb250YWN0UGVyc29uTGlzdCA9IHJlcy5jb250YWN0UGVyc29uTGlzdDtcclxuICAgICAgdGhpcy5pbml0QmlsbFRvQWRkcmVzcyA9IHJlcy5hZGRyZXNzQmlsbFRvTGlzdDtcclxuICAgICAgdGhpcy5pbml0U2hpcFRvQWRkcmVzcyA9IHJlcy5hZGRyZXNzU2hpcFRvTGlzdDtcclxuXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICB9LCAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkIHVzZXJzLWxpc3Qgbm8tY3V0XCI+XHJcbiAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBjYXJkLWhlYWRlci13YXJuaW5nXCI+XHJcbiAgICAgIDxoMyBjbGFzcz1cImNhcmQtdGl0bGVcIj57eyAnc2FwQWRtaW5CcC50aXRsZUJwRGV0YWlscycgfCB0cmFuc2xhdGUgfX08L2gzPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICA8YSBjbGFzcz1cImJhY2stbGlua1wiIFtyb3V0ZXJMaW5rXT1cIlsnLi4vLi4vJ11cIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+a2V5Ym9hcmRfYmFja3NwYWNlPC9zcGFuPlxyXG4gICAgICA8L2E+XHJcblxyXG4gICAgICA8bmd4LXN0LWxvYWRlclxyXG4gICAgICAgIFtzaG93TG9hZGVyXT1cInNob3dMb2FkZXJcIlxyXG4gICAgICAgIFtwb3NpdGlvblZhbF09XCInZml4ZWQnXCJcclxuICAgICAgPjwvbmd4LXN0LWxvYWRlcj5cclxuXHJcbiAgICAgIDxkaXYgKm5nSWY9XCJicERldGFpbHNcIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImFjdGlvbnMtYnV0dG9uc1wiXHJcbiAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAoKHVzZXJTZXR0aW5ncy5vcmFjbGVCcEVkaXQgJiZcclxuICAgICAgICAgICAgICAoIWJwRGV0YWlscy5mcm96ZW4gfHxcclxuICAgICAgICAgICAgICAgIChicERldGFpbHMuZnJvemVuICYmIGJwRGV0YWlscy5jYXJkVHlwZSA9PT0gJ0MnKSkpIHx8XHJcbiAgICAgICAgICAgICAgKCF1c2VyU2V0dGluZ3Mub3JhY2xlQnBFZGl0ICYmXHJcbiAgICAgICAgICAgICAgICAoIWJwRGV0YWlscy5mcm96ZW4gfHxcclxuICAgICAgICAgICAgICAgICAgKGJwRGV0YWlscy5mcm96ZW4gJiYgYnBEZXRhaWxzLmNhcmRUeXBlID09PSAnQycpKSkpICYmXHJcbiAgICAgICAgICAgICFvbmx5Vmlld1xyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxyXG4gICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnLi4vLi4vJywgJ2VkaXQnLCBicERldGFpbHMuY2FyZENvZGVdXCJcclxuICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtXHJcbiAgICAgICAgICAgICAgc3R5bGU9XCJjb2xvcjogIzAwMFwiXHJcbiAgICAgICAgICAgICAgPnt7ICdzYXBBZG1pbkJwLmVkaXRCcCcgfCB0cmFuc2xhdGUgfX08L2FcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8YSBtYXQtbWVudS1pdGVtIChjbGljayk9XCJkZWxldGVCcCgpXCIgc3R5bGU9XCJjb2xvcjogIzAwMFwiPnt7XHJcbiAgICAgICAgICAgICAgJ3NhcEFkbWluQnAuZGVsZXRlQnAnIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgIH19PC9hPlxyXG4gICAgICAgICAgPC9tYXQtbWVudT5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJhY3Rpb25zLWJ1dHRvbnMgY29udmVydGluZy10ZXh0XCJcclxuICAgICAgICAgICpuZ0lmPVwiYnBEZXRhaWxzLmZyb3plbiAmJiBicERldGFpbHMuY2FyZFR5cGUgPT09ICdMJ1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgJ3NhcEFkbWluQnAuY29udmVydGluZycgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLWRldGFpbHMgcm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7ICdnbG9iYWwuY2FyZENvZGUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8cD57eyBicERldGFpbHMuY2FyZENvZGUgfHwgJy0nIH19PC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7ICdnbG9iYWwuY2FyZE5hbWUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8cD57eyBicERldGFpbHMuY2FyZE5hbWUgfHwgJy0nIH19PC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1kZXRhaWxzIHJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyAnZ2xvYmFsLmNhcmRUeXBlJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHA+e3sgYnBEZXRhaWxzLmNhcmRUeXBlIHx8ICctJyB9fTwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyAnc2FwQWRtaW5CcC5jYXJkRm9yZWlnbk5hbWUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8cD57eyBicERldGFpbHMuY2FyZEZvcmlnbk5hbWUgfHwgJy0nIH19PC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1kZXRhaWxzIHJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyAnc2FwQWRtaW5CcC5ncm91cENvZGUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8cD57eyBicERldGFpbHMuZ3JvdXBDb2RlTmFtZSB8fCAnLScgfX08L3A+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgJ3NhcEFkbWluQnAuY3VycmVuY3knIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8cD57eyBicERldGFpbHMuY3VycmVuY3kgfHwgJy0nIH19PC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1kZXRhaWxzIHJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyAnc2FwQWRtaW5CcC50ZWwxJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHA+e3sgYnBEZXRhaWxzLnBob25lMSB8fCAnLScgfX08L3A+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgJ3NhcEFkbWluQnAudGVsMScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxwPnt7IGJwRGV0YWlscy5waG9uZTIgfHwgJy0nIH19PC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1kZXRhaWxzIHJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyAnc2FwQWRtaW5CcC5jZWxsdWxhcicgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxwPnt7IGJwRGV0YWlscy5jZWxsdWxhciB8fCAnLScgfX08L3A+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgJ3NhcEFkbWluQnAuZmF4JyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHA+e3sgYnBEZXRhaWxzLmZheCB8fCAnLScgfX08L3A+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLWRldGFpbHMgcm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7ICdzYXBBZG1pbkJwLmVtYWlsJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHA+e3sgYnBEZXRhaWxzLmVtYWlsIHx8ICctJyB9fTwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyAnc2FwQWRtaW5CcC53ZWJTaXRlJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHA+e3sgYnBEZXRhaWxzLndlYlNpdGUgfHwgJy0nIH19PC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1kZXRhaWxzIHJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyAnc2FwQWRtaW5CcC5zaGlwVHlwZScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxwPnt7IGJwRGV0YWlscy5zaGlwVHlwZU5hbWUgfHwgJy0nIH19PC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7ICdzYXBBZG1pbkJwLmluZHVzdHJ5Q29kZScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxwPnt7IGJwRGV0YWlscy5pbmR1c3RyeU5hbWUgfHwgJy0nIH19PC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1kZXRhaWxzIHJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyAnc2FwQWRtaW5CcC5saWNUcmFkTnVtJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHA+e3sgYnBEZXRhaWxzLmxpY1RyYWROdW0gfHwgJy0nIH19PC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7ICdzYXBBZG1pbkJwLnZhdElkVW5pZmllZCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxwPnt7IGJwRGV0YWlscy52YXRJZFVuaWZpZWQgfHwgJy0nIH19PC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1kZXRhaWxzIHJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyAnc2FwQWRtaW5CcC5hZGRJZCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxwPnt7IGJwRGV0YWlscy5hZGRJZCB8fCAnLScgfX08L3A+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgJ3NhcEFkbWluQnAucmVnaXN0ZXJObycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxwPnt7IGJwRGV0YWlscy5yZWdpc3Rlck5vIHx8ICctJyB9fTwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtZGV0YWlscyByb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgJ3NhcEFkbWluQnAuc2FsZXNFbXBsb3llZScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxwPnt7IGJwRGV0YWlscy5zYWxlc1BlcnNvbk5hbWUgfHwgJy0nIH19PC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7ICdzYXBBZG1pbkJwLnRlY2huaWNpYW4nIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8cD57eyBicERldGFpbHMudGVjaG5pY2lhbk5hbWUgfHwgJy0nIH19PC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1kZXRhaWxzIHJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyAnc2FwQWRtaW5CcC50ZXJyaXRvcnknIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8cD57eyBicERldGFpbHMudGVycml0b3J5TmFtZSB8fCAnLScgfX08L3A+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgJ3NhcEFkbWluQnAubm90ZXMnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8cD57eyBicERldGFpbHMubm90ZXMgfHwgJy0nIH19PC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1kZXRhaWxzIHJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyAnc2FwQWRtaW5CcC5nbG9iYWxJZCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxwPnt7IGJwRGV0YWlscy5nbG9iYWxJZCB8fCAnLScgfX08L3A+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgJ3NhcEFkbWluQnAuZ2xvYmFsQWNjb3VudCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxwPnt7IGJwRGV0YWlscy5nbG9iYWxBY2NvdW50IHx8ICctJyB9fTwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtZGV0YWlscyByb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgJ3NhcEFkbWluQnAucGF5bWVudFRlcm1zJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHA+e3sgYnBEZXRhaWxzLnBheW1lbnROYW1lIHx8ICctJyB9fTwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyAnc2FwQWRtaW5CcC5wcmljZUxpc3QnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8cD57eyBicERldGFpbHMucHJpY2VsaXN0TmFtZSB8fCAnLScgfX08L3A+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLWRldGFpbHMgcm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7ICdzYXBBZG1pbkJwLmRlbGl2ZXJ5SW5zdHJ1Y3Rpb25zJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHA+e3sgYnBEZXRhaWxzLmRlbGl2ZXJ5SW5zdHJ1Y3Rpb25zIHx8ICctJyB9fTwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgJ3NhcEFkbWluQnAuZnJlZVRleHQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8cD57eyBicERldGFpbHMuZnJlZVRleHQgfHwgJy0nIH19PC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxhcHAtc2FwLWJwLWxpc3QtY29udGFjdC1wZXJzb25cclxuICAgICAgICAgIFtjb250YWN0UGVyc29uc109XCJpbml0Q29udGFjdFBlcnNvbkxpc3RcIlxyXG4gICAgICAgICAgW2RldGFpbHNWaWV3XT1cInRydWVcIlxyXG4gICAgICAgICAgW2NhbkVkaXRJbkRldGFpbHNdPVwiXHJcbiAgICAgICAgICAgIHVzZXJTZXR0aW5ncy5vcmFjbGVCcEVkaXQgJiZcclxuICAgICAgICAgICAgKCFicERldGFpbHMuZnJvemVuIHx8XHJcbiAgICAgICAgICAgICAgKGJwRGV0YWlscy5mcm96ZW4gJiYgYnBEZXRhaWxzLmNhcmRUeXBlID09PSAnQycpKVxyXG4gICAgICAgICAgXCJcclxuICAgICAgICAgIFtkaXNhYmxlRWRpdF09XCJkaXNhYmxlRWRpdENvbnRhY3RQZXJzb24oKVwiXHJcbiAgICAgICAgICBbZGlzYWJsZUFkZF09XCJkaXNhYmxlQWRkQ29udGFjdFBlcnNvbigpXCJcclxuICAgICAgICAgIChjb250YWN0UGVyc29uTGlzdEVtaXR0ZXIpPVwic2V0Q29udGFjdFBlcnNvbnNDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgKGNvbnRhY3RQZXJzb25DaGFuZ2VkRW1pdHRlcik9XCJjb250YWN0UGVyc29uQ2hhbmdlZCA9ICRldmVudFwiXHJcbiAgICAgICAgICAoZGVsZXRlZENvbnRhY3RQZXJzb25FbWl0dGVyKT1cImNvbnRhY3RQZXJzb25EZWxldGVkUmVzKCRldmVudClcIlxyXG4gICAgICAgID48L2FwcC1zYXAtYnAtbGlzdC1jb250YWN0LXBlcnNvbj5cclxuXHJcbiAgICAgICAgPGhyIC8+XHJcblxyXG4gICAgICAgIDxhcHAtc2FwLWJwLWxpc3QtYWRkcmVzc1xyXG4gICAgICAgICAgW2FkZHJlc3Nlc109XCJpbml0QmlsbFRvQWRkcmVzcyB8fCBbXVwiXHJcbiAgICAgICAgICBbcmVxdWlyZWRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgW2Vycm9yVGV4dF09XCJmYWxzZVwiXHJcbiAgICAgICAgICBbYWRkcmVzc1R5cGVdPVwiJ0InXCJcclxuICAgICAgICAgIFtkZXRhaWxzVmlld109XCJ0cnVlXCJcclxuICAgICAgICAgIFtjYW5FZGl0SW5EZXRhaWxzXT1cIlxyXG4gICAgICAgICAgICB1c2VyU2V0dGluZ3Mub3JhY2xlQnBFZGl0ICYmXHJcbiAgICAgICAgICAgICghYnBEZXRhaWxzLmZyb3plbiB8fFxyXG4gICAgICAgICAgICAgIChicERldGFpbHMuZnJvemVuICYmIGJwRGV0YWlscy5jYXJkVHlwZSA9PT0gJ0MnKSlcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICBbZGlzYWJsZUVkaXRdPVwiZGlzYWJsZUVkaXRCaWxsVG9BZGRyZXNzKClcIlxyXG4gICAgICAgICAgW2Rpc2FibGVBZGRdPVwiZGlzYWJsZUFkZEJpbGxUb0FkZHJlc3MoKVwiXHJcbiAgICAgICAgICBbdXNlclNldHRpbmdzXT1cInVzZXJTZXR0aW5nc1wiXHJcbiAgICAgICAgICAoYWRkcmVzc0xpc3RFbWl0dGVyKT1cInNldEJpbGxUb0FkZHJlc3MoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoYWRkcmVzc0NoYW5nZWRFbWl0dGVyKT1cInNldEFkZHJlc3NDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgKGRlbGV0ZWRBZGRyZXNzRW1pdHRlcik9XCJhZGRyZXNzRGVsZXRlZFJlcygkZXZlbnQpXCJcclxuICAgICAgICA+PC9hcHAtc2FwLWJwLWxpc3QtYWRkcmVzcz5cclxuXHJcbiAgICAgICAgPGhyIC8+XHJcblxyXG4gICAgICAgIDxhcHAtc2FwLWJwLWxpc3QtYWRkcmVzc1xyXG4gICAgICAgICAgW2FkZHJlc3Nlc109XCJpbml0U2hpcFRvQWRkcmVzcyB8fCBbXVwiXHJcbiAgICAgICAgICBbcmVxdWlyZWRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgW2Vycm9yVGV4dF09XCJmYWxzZVwiXHJcbiAgICAgICAgICBbYWRkcmVzc1R5cGVdPVwiJ1MnXCJcclxuICAgICAgICAgIFtkZXRhaWxzVmlld109XCJ0cnVlXCJcclxuICAgICAgICAgIFtjYW5FZGl0SW5EZXRhaWxzXT1cIlxyXG4gICAgICAgICAgICB1c2VyU2V0dGluZ3Mub3JhY2xlQnBFZGl0ICYmXHJcbiAgICAgICAgICAgICghYnBEZXRhaWxzLmZyb3plbiB8fFxyXG4gICAgICAgICAgICAgIChicERldGFpbHMuZnJvemVuICYmIGJwRGV0YWlscy5jYXJkVHlwZSA9PT0gJ0MnKSlcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICBbZGlzYWJsZUVkaXRdPVwiZGlzYWJsZUVkaXRTaGlwVG9BZGRyZXNzKClcIlxyXG4gICAgICAgICAgW2Rpc2FibGVBZGRdPVwiZGlzYWJsZUFkZFNoaXBUb0FkZHJlc3MoKVwiXHJcbiAgICAgICAgICBbdXNlVGF4Q29kZV09XCJ1c2VyU2V0dGluZ3MuYnBUYXhUeXBlID09PSBicFRheFR5cGUuVXNcIlxyXG4gICAgICAgICAgW3VzZXJTZXR0aW5nc109XCJ1c2VyU2V0dGluZ3NcIlxyXG4gICAgICAgICAgKGFkZHJlc3NMaXN0RW1pdHRlcik9XCJzZXRTaGlwVG9BZGRyZXNzKCRldmVudClcIlxyXG4gICAgICAgICAgKGFkZHJlc3NDaGFuZ2VkRW1pdHRlcik9XCJzZXRBZGRyZXNzQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgICAgIChkZWxldGVkQWRkcmVzc0VtaXR0ZXIpPVwiYWRkcmVzc0RlbGV0ZWRSZXMoJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvYXBwLXNhcC1icC1saXN0LWFkZHJlc3M+XHJcblxyXG4gICAgICAgIDxociAvPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFjdC1wZXJzb24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8cCBjbGFzcz1cImNvbnRhY3QtcGVyc29uLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAge3sgJ3NhcEFkbWluQnAucXJ5R3JvdXAnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJzaG93UXJ5R3JvdXAgPSAhc2hvd1FyeUdyb3VwXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cImZvbnQtd2VpZ2h0OiBib2xkOyBtYXJnaW4tbGVmdDogMTBweFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNob3dRcnlHcm91cFwiPnt7XHJcbiAgICAgICAgICAgICAgICAnZ2xvYmFsLnNob3cnIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgICAgfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1FyeUdyb3VwXCI+e3tcclxuICAgICAgICAgICAgICAgICdnbG9iYWwuaGlkZScgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgICB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cInNob3dRcnlHcm91cFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgcXJ5LWdyb3VwLXJvd1wiXHJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgYnBEZXRhaWxzLnFyeUdyb3VwTGlzdCB8IHNsaWNlOiAwIDogMzJcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxcnktZ3JvdXAtbmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBncm91cC5uYW1lIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxcnktZ3JvdXAtdmFsXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXAudmFsdWUgPT09ICdZJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgPyAoJ2dsb2JhbC55ZXMnIHwgdHJhbnNsYXRlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgOiAoJ2dsb2JhbC5ubycgfCB0cmFuc2xhdGUpXHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgcXJ5LWdyb3VwLXJvd1wiXHJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgYnBEZXRhaWxzLnFyeUdyb3VwTGlzdCB8IHNsaWNlOiAzMiA6IDY0XCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXJ5LWdyb3VwLW5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAge3sgZ3JvdXAubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXJ5LWdyb3VwLXZhbFwiPlxyXG4gICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwLnZhbHVlID09PSAnWSdcclxuICAgICAgICAgICAgICAgICAgICAgID8gKCdnbG9iYWwueWVzJyB8IHRyYW5zbGF0ZSlcclxuICAgICAgICAgICAgICAgICAgICAgIDogKCdnbG9iYWwubm8nIHwgdHJhbnNsYXRlKVxyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|