bpm-core 0.0.52 → 0.0.53
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/esm2022/lib/app/app.component.mjs +20 -9
- package/esm2022/lib/components/app-component-sections/previous-requests/previous-requests.component.mjs +3 -5
- package/esm2022/lib/components/app-component-sections/service-header/service-header.component.mjs +7 -5
- package/esm2022/lib/components/shared-components/action-buttons/action-buttons.component.mjs +4 -6
- package/esm2022/lib/components/shared-components/dialogs/delete-dialog/delete-dialog.component.mjs +5 -4
- package/esm2022/lib/components/shared-components/form-field/add-attachment-section/add-attachment-section.component.mjs +76 -51
- package/esm2022/lib/components/shared-components/form-field/attachment-section/attachment-section.component.mjs +151 -110
- package/esm2022/lib/components/shared-components/form-field/checkbox/checkbox.component.mjs +6 -7
- package/esm2022/lib/components/shared-components/form-field/control-value-accessor.directive.mjs +12 -5
- package/esm2022/lib/components/shared-components/form-field/custom-searchable-autocomplete/custom-searchable.component.mjs +2 -1
- package/esm2022/lib/components/shared-components/form-field/date-range-picker/date-range-picker.component.mjs +3 -4
- package/esm2022/lib/components/shared-components/form-field/doc-uploader/docs-uploader.component.mjs +139 -206
- package/esm2022/lib/components/shared-components/form-field/index.mjs +2 -1
- package/esm2022/lib/components/shared-components/form-field/info-item/info-item.component.mjs +3 -3
- package/esm2022/lib/components/shared-components/form-field/input-mask/input-mask.component.mjs +14 -7
- package/esm2022/lib/components/shared-components/form-field/radio/radio.component.mjs +6 -4
- package/esm2022/lib/components/shared-components/form-field/search-employee/search-employee.component.mjs +43 -101
- package/esm2022/lib/components/shared-components/index.mjs +1 -3
- package/esm2022/lib/i18n/ar.mjs +4 -2
- package/esm2022/lib/i18n/en.mjs +4 -2
- package/esm2022/lib/services/core.service.ts.mjs +11 -1
- package/esm2022/lib/services/i18n.service.mjs +3 -3
- package/esm2022/lib/testComponent/request-details-section/request-details-section.component.mjs +24 -23
- package/esm2022/lib/testComponent/services/i18n.service.mjs +3 -3
- package/fesm2022/bpm-core.mjs +582 -663
- package/fesm2022/bpm-core.mjs.map +1 -1
- package/lib/app/app.component.d.ts +5 -2
- package/lib/components/app-component-sections/service-header/service-header.component.d.ts +2 -2
- package/lib/components/shared-components/action-buttons/action-buttons.component.d.ts +3 -4
- package/lib/components/shared-components/form-field/add-attachment-section/add-attachment-section.component.d.ts +12 -3
- package/lib/components/shared-components/form-field/attachment-section/attachment-section.component.d.ts +23 -12
- package/lib/components/shared-components/form-field/control-value-accessor.directive.d.ts +5 -2
- package/lib/components/shared-components/form-field/doc-uploader/docs-uploader.component.d.ts +14 -12
- package/lib/components/shared-components/form-field/index.d.ts +1 -0
- package/lib/components/shared-components/form-field/info-item/info-item.component.d.ts +1 -1
- package/lib/components/shared-components/form-field/search-employee/search-employee.component.d.ts +1 -7
- package/lib/components/shared-components/index.d.ts +0 -2
- package/lib/i18n/ar.d.ts +2 -0
- package/lib/i18n/en.d.ts +2 -0
- package/lib/services/core.service.ts.d.ts +1 -0
- package/lib/testComponent/request-details-section/request-details-section.component.d.ts +0 -2
- package/package.json +2 -2
- package/src/lib/assets/images/user.svg +6 -0
- package/src/lib/assets/scss/_general.scss +4 -1
- package/src/lib/assets/scss/_upgrade.scss +2 -2
- package/esm2022/lib/components/shared-components/confirmation-popup/confirmation-popup.component.mjs +0 -39
- package/esm2022/lib/components/shared-components/delete-popup/delete-popup.component.mjs +0 -19
- package/esm2022/lib/components/shared-components/doc-uploader/docs-uploader.component.mjs +0 -686
- package/lib/components/shared-components/confirmation-popup/confirmation-popup.component.d.ts +0 -25
- package/lib/components/shared-components/delete-popup/delete-popup.component.d.ts +0 -6
- package/lib/components/shared-components/doc-uploader/docs-uploader.component.d.ts +0 -144
package/esm2022/lib/components/app-component-sections/service-header/service-header.component.mjs
CHANGED
|
@@ -36,6 +36,7 @@ export class ServiceHeaderComponent {
|
|
|
36
36
|
form;
|
|
37
37
|
showHistory = false;
|
|
38
38
|
isLoading = false;
|
|
39
|
+
isReadOnly = false;
|
|
39
40
|
showApprovalHistory = false;
|
|
40
41
|
approvalHistory;
|
|
41
42
|
creationDate;
|
|
@@ -43,7 +44,6 @@ export class ServiceHeaderComponent {
|
|
|
43
44
|
section;
|
|
44
45
|
serviceFaq = [];
|
|
45
46
|
approvals = [];
|
|
46
|
-
feedBackIcon = null;
|
|
47
47
|
flagPriority;
|
|
48
48
|
constructor(cdRef, coreService, i18n, feedBackService, dialog, sidenavService, toasterService) {
|
|
49
49
|
this.cdRef = cdRef;
|
|
@@ -228,9 +228,9 @@ export class ServiceHeaderComponent {
|
|
|
228
228
|
this.sidenavService.publish('open', PreviousRequestsComponent);
|
|
229
229
|
}
|
|
230
230
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ServiceHeaderComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.CoreService }, { token: i1.CoreI18nService }, { token: i1.FeedBackService }, { token: i2.MatDialog }, { token: i1.SidenavService }, { token: i3.ToastrService }], target: i0.ɵɵFactoryTarget.Component });
|
|
231
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: ServiceHeaderComponent, isStandalone: true, selector: "core-service-header", inputs: { form: "form", showHistory: "showHistory", isLoading: "isLoading", showApprovalHistory: "showApprovalHistory", approvalHistory: "approvalHistory", creationDate: "creationDate", formTitle: "formTitle", section: "section", serviceFaq: "serviceFaq" }, providers: [FeedBackService,
|
|
231
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: ServiceHeaderComponent, isStandalone: true, selector: "core-service-header", inputs: { form: "form", showHistory: "showHistory", isLoading: "isLoading", isReadOnly: "isReadOnly", showApprovalHistory: "showApprovalHistory", approvalHistory: "approvalHistory", creationDate: "creationDate", formTitle: "formTitle", section: "section", serviceFaq: "serviceFaq" }, providers: [FeedBackService,
|
|
232
232
|
{ provide: MAT_DIALOG_DATA, useValue: {} },
|
|
233
|
-
], ngImport: i0, template: "@if (form?.header?.status?.['key'] === 'NEW') {\r\n <section\r\n class=\"main-sidenav main-sidenav-full mb-4\"\r\n\r\n >\r\n <div class=\"sidenav-title\">\r\n <div class=\"d-flex align-items-center gap-3 w-100\">\r\n <!-- <ds-button icon class=\"rotate-arrow\" size=\"small\" (click)=\"goBack()\" *ngIf=\"!isInMobileApp() && showBack\">\r\n <ds-icon icon=\"arrow-right\" class=\"fs-19 fc-black\"></ds-icon>\r\n </ds-button>-->\r\n\r\n <!-- <h3 class=\"flex-grow-0\">\r\n {{ formTitle }}\r\n </h3>-->\r\n\r\n <section>\r\n <h6 class=\"fs-14 fs-md-12 fw-normal fc-dark-gray mb-0\">\r\n {{ i18n.translate('Hello') }}\r\n {{ coreService.getShortName(form?.header?.requesterName) }}, {{ i18n.translate('welcomeBack') }}!\r\n </h6>\r\n <h1 class=\"fs-26 fs-md-20 fw-bold fc-black d-flex align-items-center gap-2 mb-1\">\r\n {{ formTitle }}\r\n @if (serviceFaq.length) {\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n }\r\n </h1>\r\n </section>\r\n <div class=\"d-flex align-items-center justify-content-end gap-2 flex-grow-1\">\r\n @if (serviceFaq.length) {\r\n <ds-button size=\"small\" icon>\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n </ds-button>\r\n }\r\n <!-- <ds-button size=\"small\" icon (click)=\"openWorkflow()\">\r\n <ds-icon icon=\"bell-2-o\" class=\"fs-20 fc-coral\"></ds-icon>\r\n </ds-button> -->\r\n <ds-button size=\"small\" icon (click)=\"showPreviousRequests()\" >\r\n <ds-icon icon=\"clock\" class=\"fs-20 fc-coral\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <!-- <header class=\"mb-4 mt-4 d-flex align-items-center justify-content-between align-items-end gap-2\">\r\n <section>\r\n <h6 class=\"fs-14 fs-md-12 fw-normal fc-dark-gray mb-0\">\r\n {{ i18n.translate('Hello') }}\r\n {{ coreService.getShortName(form?.header?.requesterName) }}, {{ i18n.translate('welcomeBack') }}!\r\n </h6>\r\n <h1 class=\"fs-26 fs-md-20 fw-bold fc-black d-flex align-items-center gap-2 mb-1\">\r\n {{ formTitle }}\r\n @if (serviceFaq.length) {\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n }\r\n </h1>\r\n </section>\r\n </header>-->\r\n} @else {\r\n\r\n <div class=\"w-100\">\r\n <section class=\"request-main-info {{statusClass(form?.header?.status?.['key'])}}\">\r\n <section class=\"request-info\">\r\n <div class=\"request-info--body\">\r\n <div class=\"d-flex align-items-center gap-2 flex-grow-1\">\r\n <img\r\n alt=\"\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMjkiIHZpZXdCb3g9IjAgMCAzMCAyOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI1LjEgMEg0LjlDMi4yIDAgMCAyLjIgMCA0LjlWMjguNkgyNS4xQzI3LjggMjguNiAzMCAyNi40IDMwIDIzLjdWNC45QzMwIDIuMiAyNy44IDAgMjUuMSAwWk0yIDQuOUMyIDMuMyAzLjMgMiA0LjkgMkgyNS4xQzI2LjcgMiAyOCAzLjMgMjggNC45VjIzLjdDMjggMjUuMyAyNi43IDI2LjYgMjUuMSAyNi42SDJWNC45Wk0xMS41IDYuM0M3LjEgNi4zIDMuNSA5LjkgMy41IDE0LjNDMy41IDE4LjcgNy4xIDIyLjMgMTEuNSAyMi4zQzE1LjkgMjIuMyAxOS41IDE4LjcgMTkuNSAxNC4zQzE5LjUgOS45IDE1LjkgNi4zIDExLjUgNi4zWk0xNS4xIDE5QzE0LjEgMTkuOCAxMi44IDIwLjIgMTEuNSAyMC4yQzEwLjIgMjAuMiA4LjkgMTkuOCA3LjkgMTlDOC43IDE3LjcgMTAgMTcgMTEuNSAxN0MxMyAxNyAxNC40IDE3LjggMTUuMSAxOVpNMTMuMSAxMy40QzEzLjEgMTQuMyAxMi40IDE1IDExLjUgMTVDMTAuNiAxNSA5LjkgMTQuMyA5LjkgMTMuNEM5LjkgMTIuNSAxMC42IDExLjggMTEuNSAxMS44QzEyLjQgMTEuOCAxMy4xIDEyLjUgMTMuMSAxMy40Wk0xNS4xIDEzLjRDMTUuMSAxMS40IDEzLjUgOS44IDExLjUgOS44QzkuNSA5LjggNy45IDExLjQgNy45IDEzLjRDNy45IDE0LjIgOC4yIDE1IDguNyAxNS43QzcuOCAxNi4xIDcuMSAxNi44IDYuNSAxNy42QzUuOCAxNi42IDUuNSAxNS41IDUuNSAxNC4zQzUuNSAxMSA4LjIgOC4zIDExLjUgOC4zQzE0LjggOC4zIDE3LjUgMTEgMTcuNSAxNC4zQzE3LjUgMTUuNSAxNy4yIDE2LjYgMTYuNSAxNy42QzE1LjkgMTYuOCAxNS4yIDE2LjIgMTQuMyAxNS43QzE0LjggMTUuMSAxNS4xIDE0LjIgMTUuMSAxMy40Wk0yMSA5LjFDMjEgOC42IDIxLjQgOC4xIDIyIDguMUgyNS41QzI2IDguMSAyNi41IDguNSAyNi41IDkuMUMyNi41IDkuNiAyNi4xIDEwLjEgMjUuNSAxMC4xSDIyQzIxLjQgMTAuMSAyMSA5LjYgMjEgOS4xWk0yMSAxMi41QzIxIDEyIDIxLjQgMTEuNSAyMiAxMS41SDI1LjVDMjYgMTEuNSAyNi41IDExLjkgMjYuNSAxMi41QzI2LjUgMTMgMjYuMSAxMy41IDI1LjUgMTMuNUgyMkMyMS40IDEzLjUgMjEgMTMuMSAyMSAxMi41Wk0yMSAxNkMyMSAxNS41IDIxLjQgMTUgMjIgMTVIMjUuNUMyNiAxNSAyNi41IDE1LjQgMjYuNSAxNkMyNi41IDE2LjUgMjYuMSAxNyAyNS41IDE3SDIyQzIxLjQgMTcgMjEgMTYuNiAyMSAxNlpNMjUuNSAyMC41SDIyQzIxLjUgMjAuNSAyMSAyMC4xIDIxIDE5LjVDMjEgMTguOSAyMS40IDE4LjUgMjIgMTguNUgyNS41QzI2IDE4LjUgMjYuNSAxOC45IDI2LjUgMTkuNUMyNi41IDIwLjEgMjYuMSAyMC41IDI1LjUgMjAuNVoiIGZpbGw9IiNGRjM3NUUiLz4KPC9zdmc+Cg==\"/>\r\n <h4 class=\"fs-22 fs-md-16 fc-black fw-medium mb-0 flex-grow-1 line-height-1-2\">\r\n {{ formTitle }}\r\n </h4>\r\n </div>\r\n <div class=\"d-flex align-items-center gap-2 request-info--status-action\">\r\n <div class=\"d-inline-flex flex-column align-items-end\">\r\n @if (!isLoading) {\r\n <ds-status\r\n status=\"{{statusClass(form?.header?.status?.['key'])}}\" class=\"header-status\">{{ form?.header?.status?.['value'] }}\r\n </ds-status>\r\n }\r\n </div>\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <!-- <ds-button\r\n *ngIf=\"form?.inboxItem && (form?.inboxItem?.canRequestFeedback =='true'|| form?.inboxItem?.hasFeedback=='true')\"\r\n square icon size=\"small\">\r\n <ds-icon icon=\"chat-o\" class=\"fs-20 fs-md-17 fc-coral\">\r\n <!– [ngClass]=\"{'fc-green':feedBackIcon == 'feedbackResponded' , 'fc-red': feedBackIcon == 'respondToFeedback' , 'fc-yellow': feedBackIcon == 'waitingFeedback'}\"–>\r\n </ds-icon>\r\n </ds-button>-->\r\n <!-- history-->\r\n <ds-button\r\n *ngIf=\"form?.commentsDrop?.length > 0 && !isLoading\" square icon size=\"small\"\r\n (click)=\"onCommentsFormClick()\" class=\"has-comments\">\r\n <ds-icon icon=\"clock\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </ds-button>\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"request-info--footer\">\r\n @if (!isLoading) {\r\n <ds-avatar\r\n image=\"{{form?.header?.requesterPhoto}}\" size=\"xx-small\"\r\n class=\"d-inline-flex cursor-pointer\" (click)=\"showUserInfo()\"></ds-avatar>\r\n }\r\n <div\r\n class=\"d-flex align-items-center flex-wrap flex-grow-1 gap-1 gap-sm-2 line-height-1 request-info--header__details\">\r\n <span\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\"\r\n class=\"fs-12 fw-medium d-none d-sm-inline-block\">{{ coreService.getShortName(form?.header?.['requesterName']) }}</span>\r\n <span class=\"fs-20\">•</span>\r\n <span class=\"fs-12\" [ngClass]=\"{'loading-bg loading-width': isLoading}\"> {{ form?.header?.formId }}</span>\r\n <span class=\"fs-20\" *ngIf=\"creationDate\">•</span>\r\n <span class=\"fs-12\" [ngClass]=\"{'loading-bg loading-width': isLoading}\"> {{ creationDate }}</span>\r\n </div>\r\n </div>\r\n </section>\r\n </section>\r\n\r\n </div>\r\n\r\n\r\n <!--<ng-container>\r\n <div class=\"d-flex align-items-center justify-content-end gap-2 my-2\">\r\n <ds-button\r\n *ngIf=\"form?.inboxItem && !form.sections[form.sections.length -1].header.readOnly && !isLoading\"\r\n square\r\n icon\r\n size=\"small\"\r\n [matMenuTriggerFor]=\"menu\"\r\n class=\"icon-btn-shadow\">\r\n <ds-icon\r\n [ngClass]=\"{'fc-purple' : (flagPriority === '0' || flagPriority === null),'fc-yellow' : flagPriority === '1','fc-green' : flagPriority === '2','fc-coral' : flagPriority === '3'}\"\r\n icon=\"flag-o\" class=\"fs-20 fs-md-17 fc-purple\">\r\n </ds-icon>\r\n </ds-button>\r\n <mat-menu #menu=\"matMenu\" panelClass=\"action-menu\">\r\n <button mat-menu-item (click)=\"setFlagPriority('0')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-purple fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('1')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-yellow fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('2')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-green fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('3')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n </mat-menu>\r\n\r\n <ng-content></ng-content>\r\n </div>\r\n <header class=\"service-header bc-white p-3 p-sm-4 py-4 gap-3 {{statusClass(form?.header?.status?.['key'])}}\">\r\n\r\n <div class=\"service-header-icon\">\r\n <img\r\n alt=\"\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMjkiIHZpZXdCb3g9IjAgMCAzMCAyOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI1LjEgMEg0LjlDMi4yIDAgMCAyLjIgMCA0LjlWMjguNkgyNS4xQzI3LjggMjguNiAzMCAyNi40IDMwIDIzLjdWNC45QzMwIDIuMiAyNy44IDAgMjUuMSAwWk0yIDQuOUMyIDMuMyAzLjMgMiA0LjkgMkgyNS4xQzI2LjcgMiAyOCAzLjMgMjggNC45VjIzLjdDMjggMjUuMyAyNi43IDI2LjYgMjUuMSAyNi42SDJWNC45Wk0xMS41IDYuM0M3LjEgNi4zIDMuNSA5LjkgMy41IDE0LjNDMy41IDE4LjcgNy4xIDIyLjMgMTEuNSAyMi4zQzE1LjkgMjIuMyAxOS41IDE4LjcgMTkuNSAxNC4zQzE5LjUgOS45IDE1LjkgNi4zIDExLjUgNi4zWk0xNS4xIDE5QzE0LjEgMTkuOCAxMi44IDIwLjIgMTEuNSAyMC4yQzEwLjIgMjAuMiA4LjkgMTkuOCA3LjkgMTlDOC43IDE3LjcgMTAgMTcgMTEuNSAxN0MxMyAxNyAxNC40IDE3LjggMTUuMSAxOVpNMTMuMSAxMy40QzEzLjEgMTQuMyAxMi40IDE1IDExLjUgMTVDMTAuNiAxNSA5LjkgMTQuMyA5LjkgMTMuNEM5LjkgMTIuNSAxMC42IDExLjggMTEuNSAxMS44QzEyLjQgMTEuOCAxMy4xIDEyLjUgMTMuMSAxMy40Wk0xNS4xIDEzLjRDMTUuMSAxMS40IDEzLjUgOS44IDExLjUgOS44QzkuNSA5LjggNy45IDExLjQgNy45IDEzLjRDNy45IDE0LjIgOC4yIDE1IDguNyAxNS43QzcuOCAxNi4xIDcuMSAxNi44IDYuNSAxNy42QzUuOCAxNi42IDUuNSAxNS41IDUuNSAxNC4zQzUuNSAxMSA4LjIgOC4zIDExLjUgOC4zQzE0LjggOC4zIDE3LjUgMTEgMTcuNSAxNC4zQzE3LjUgMTUuNSAxNy4yIDE2LjYgMTYuNSAxNy42QzE1LjkgMTYuOCAxNS4yIDE2LjIgMTQuMyAxNS43QzE0LjggMTUuMSAxNS4xIDE0LjIgMTUuMSAxMy40Wk0yMSA5LjFDMjEgOC42IDIxLjQgOC4xIDIyIDguMUgyNS41QzI2IDguMSAyNi41IDguNSAyNi41IDkuMUMyNi41IDkuNiAyNi4xIDEwLjEgMjUuNSAxMC4xSDIyQzIxLjQgMTAuMSAyMSA5LjYgMjEgOS4xWk0yMSAxMi41QzIxIDEyIDIxLjQgMTEuNSAyMiAxMS41SDI1LjVDMjYgMTEuNSAyNi41IDExLjkgMjYuNSAxMi41QzI2LjUgMTMgMjYuMSAxMy41IDI1LjUgMTMuNUgyMkMyMS40IDEzLjUgMjEgMTMuMSAyMSAxMi41Wk0yMSAxNkMyMSAxNS41IDIxLjQgMTUgMjIgMTVIMjUuNUMyNiAxNSAyNi41IDE1LjQgMjYuNSAxNkMyNi41IDE2LjUgMjYuMSAxNyAyNS41IDE3SDIyQzIxLjQgMTcgMjEgMTYuNiAyMSAxNlpNMjUuNSAyMC41SDIyQzIxLjUgMjAuNSAyMSAyMC4xIDIxIDE5LjVDMjEgMTguOSAyMS40IDE4LjUgMjIgMTguNUgyNS41QzI2IDE4LjUgMjYuNSAxOC45IDI2LjUgMTkuNUMyNi41IDIwLjEgMjYuMSAyMC41IDI1LjUgMjAuNVoiIGZpbGw9IiNGRjM3NUUiLz4KPC9zdmc+Cg==\"/>\r\n </div>\r\n\r\n <div class=\"flex-grow-1 d-flex flex-column flex-sm-row align-items-sm-center gap-2\">\r\n <div class=\"flex-grow-1\">\r\n <h1 class=\"fs-20 fs-md-16 fw-bold fc-black header-title m-0\">{{ formTitle }}\r\n @if (serviceFaq.length) {\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n }\r\n </h1>\r\n <div class=\"header-user d-flex align-items-sm-center gap-2 mt-sm-1\">\r\n @if (!isLoading) {\r\n <ds-avatar\r\n image=\"{{form?.header?.requesterPhoto}}\" size=\"xx-small\"\r\n class=\"d-inline-flex cursor-pointer\" (click)=\"showUserInfo()\"></ds-avatar>\r\n }\r\n <span\r\n class=\"fs-12 text-truncate d-sm-block cursor-pointer\" (click)=\"showUserInfo()\"\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ coreService.getShortName(form?.header?.requesterName) }}</span>\r\n <mat-divider class=\"divider circle mx-2 d-none d-sm-block\"></mat-divider>\r\n <span class=\"fs-12\" [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ form?.header?.formId }}</span>\r\n @if (creationDate) {\r\n <mat-divider class=\"divider circle mx-2 d-none d-sm-block\"></mat-divider>\r\n <span class=\"fs-14\" [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ creationDate }}</span>\r\n }\r\n </div>\r\n\r\n </div>\r\n <div class=\"header-actions d-flex flex-row flex-sm-column justify-content-between justify-content-sm-center gap-2 mt-2 mt-sm-0\">\r\n @if (!isLoading) {\r\n <ds-status\r\n status=\"{{statusClass(form?.header?.status?.['key'])}}\" class=\"header-status\">{{ form?.header?.status?.['value'] }}\r\n </ds-status>\r\n }\r\n <div class=\"d-flex align-items-center justify-content-end gap-2\">\r\n <!– feedback–>\r\n <!– *ngIf=\"form?.inboxItem && (form?.inboxItem?.canRequestFeedback ==='true'|| form?.inboxItem?.hasFeedback==='true') && !isLoading\"–>\r\n <!– <ds-button\r\n square icon size=\"small\" (click)=\"feedback()\">\r\n <ds-icon\r\n icon=\"chat-o\" class=\"fs-20 fs-md-17 fc-coral\"\r\n [ngClass]=\"{'fc-green':feedBackIcon === 'feedbackResponded' , 'fc-red': feedBackIcon === 'respondToFeedback' , 'fc-yellow': feedBackIcon === 'waitingFeedback'}\">\r\n </ds-icon>\r\n </ds-button>–>\r\n <ds-button\r\n *ngIf=\"form?.commentsDrop?.length > 0 && !isLoading\" square icon size=\"small\"\r\n (click)=\"onCommentsFormClick()\" class=\"has-comments\">\r\n <ds-icon icon=\"clock\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </ds-button>\r\n @if (showApprovalHistory) {\r\n <ng-container>\r\n <ds-button\r\n color=\"white\" shape=\"text\" square size=\"small\" [satPopoverAnchor]=\"workflow\"\r\n #workflowAnchor=\"satPopoverAnchor\" (click)=\"workflowAnchor.popover.open()\">\r\n <slot name=\"prefix\">\r\n <ds-icon icon=\"workflow\" class=\"fs-24\"></ds-icon>\r\n </slot>\r\n </ds-button>\r\n <sat-popover\r\n #workflow [anchor]=\"workflowAnchor\" [hasBackdrop]=\"true\" verticalAlign=\"below\"\r\n horizontalAlign=\"end\">\r\n <div class=\"default-popover p-3\" style=\"min-width: 330px;\">\r\n <ds-approvals *ngIf=\"approvalHistory\" class=\"popover-approvals\" approvalsData=\"{{approvals}}\">\r\n </ds-approvals>\r\n </div>\r\n </sat-popover>\r\n </ng-container>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </header>\r\n </ng-container>-->\r\n}\r\n", styles: [".loading-width{min-width:100px;width:40px;flex-grow:1}.request-main-info{--item-bg: var(--light-gray);--item-fc: var(--black);--status-container-bc: #e8ebec;--status-container-brc: var(--dark-gray)}.request-main-info.warning{--item-bg: var(--yellow);--status-container-bc: #fff8d9;--status-container-brc: var(--yellow)}.request-main-info.pending{--item-bg: #eff0f1;--status-container-bc: #e8ebec;--status-container-brc: #c8ced1}.request-main-info.expired{--item-bg: var(--dark-gray);--status-container-bc: #e8ebec;--status-container-brc: var(--dark-gray)}.request-main-info.success{--item-bg: var(--green);--status-container-bc: #e6f9f4;--status-container-brc: var(--green)}.request-main-info.info{--item-bg: var(--sea-light);--status-container-bc: #fff8d9;--status-container-brc: var(--sea-light)}.request-main-info.danger{--item-bg: var(--red);--status-container-bc: #fae9ec;--status-container-brc: var(--red)}.request-main-info.orange,.request-main-info.send_back{--item-bg: var(--orange);--status-container-bc: #fff0eb;--status-container-brc: var(--orange)}.request-info{border-radius:0;box-shadow:var(--box-shadow);background-color:var(--white);border-top:5px solid var(--item-bg)}.request-info--footer{padding:.3rem 2rem;min-height:45px;display:flex;align-items:center;gap:.75rem;border-top:1px solid var(--light-gray)}@media (max-width: 578px){.request-info--footer{padding:.3rem 1rem}}.request-info--footer__details{color:var(--item-fc)}.request-info--body{padding:2rem;display:flex;align-items:center;gap:.75rem;background-color:#fff}@media (max-width: 578px){.request-info--body{padding:1rem;flex-direction:column;align-items:stretch}}.request-info--body figure{min-width:30px;width:30px;text-align:center}.request-info--body figure svg{width:100%}@media (max-width: 578px){.request-info--status-action{justify-content:space-between}}.request-info--history{margin-top:-.5rem}.request-info--comment{background-color:#fff0eb;color:var(--orange);border-radius:0 0 4px 4px}.status-container{min-height:40px;padding:.5rem 1rem;display:flex;flex-direction:column;justify-content:center;gap:.5rem;margin-bottom:1.5rem}.status-container.danger{--item-bg: var(--red);--status-container-bc: #fae9ec;--status-container-brc: var(--red)}.status-container ::ng-deep ds-avatar .avatar{--default-size: 18px}.circle-status::part(base){--status-radius: 50%;--status-size: 19px;--status-fs: 100%}ds-button[square]::part(base){--btn-padding: 0;--default-size-sm: 30px}.send-back-container{background-color:#fff0eb;color:var(--orange);padding:.5rem;border-radius:4px}object,iframe,embed{height:79vh}::ng-deep .history-popup{--popup-width: 100vw;--popup-max-width: 100vw;--popup-radius: 15px 15px 0 0;position:absolute!important;bottom:0}:host ::ng-deep .mat-expansion-panel-content{background:#fff!important}:host .main-sidenav.main-sidenav-full .sidenav-title{border-bottom:transparent!important}:host .main-sidenav .sidenav-title{background-color:transparent!important}:host .main-sidenav{height:60px;min-height:10px!important}:host .mat-expansion-panel-content{background:#fff!important}:host .approval-panel-container{display:grid;grid-template-columns:40% calc(60% - 45px) 20px;grid-template-areas:\"title details toggle\";gap:.75rem;place-content:space-between;align-items:center;flex-grow:1;width:100%}@media (max-width: 991px){:host .approval-panel-container{grid-template-columns:calc(100% - 45px) 20px;grid-template-areas:\"title toggle\" \"details details\"}}:host .approval-panel-container .approval-panel-title{grid-area:title}:host .approval-panel-container .panel-user-name{max-width:120px}@media (max-width: 768px){:host .approval-panel-container .panel-user-name.panel-ueser-only{max-width:140px}:host .approval-panel-container .panel-user-name:not(.panel-ueser-only){max-width:90px}}:host .approval-panel-container .approval-panel-details{display:flex;align-items:center;justify-content:space-between;grid-area:details}:host .approval-panel-container .approval-panel-toggle{grid-area:toggle;display:flex;align-items:center;justify-content:center;width:20px}:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 25px}@media (min-width: 768px){:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 31px;--avatar-border: 3px solid var(--light-gray)}}@media (min-width: 768px){:host ::ng-deep .user-avatar-name{padding-inline-end:1rem!important}}:host .circle-status::part(base){--status-radius: 50%;--status-size: 18px;--status-fs: 80% }:host .panel-title{min-width:40%;width:40%}@media (max-width: 576px){:host .panel-title{min-width:100%!important;width:100%!important}}:host .panel-user-status{min-width:60%;width:60%;display:flex;align-items:center;justify-content:space-between}@media (max-width: 576px){:host .panel-user-status{min-width:100%!important;width:100%!important}:host .panel-user-status .user-delegate{min-width:auto}:host .panel-user-status .main-status::part(base){--status-width: 50px}}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: SatPopoverModule }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
233
|
+
], ngImport: i0, template: "@if (form?.header?.status?.['key'] === 'NEW') {\r\n <section\r\n class=\"main-sidenav main-sidenav-full mb-4\"\r\n\r\n >\r\n <div class=\"sidenav-title\">\r\n <div class=\"d-flex align-items-center gap-3 w-100\">\r\n <!-- <ds-button icon class=\"rotate-arrow\" size=\"small\" (click)=\"goBack()\" *ngIf=\"!isInMobileApp() && showBack\">\r\n <ds-icon icon=\"arrow-right\" class=\"fs-19 fc-black\"></ds-icon>\r\n </ds-button>-->\r\n\r\n <!-- <h3 class=\"flex-grow-0\">\r\n {{ formTitle }}\r\n </h3>-->\r\n\r\n <section>\r\n <h6 class=\"fs-14 fs-md-12 fw-normal fc-dark-gray mb-0\">\r\n {{ i18n.translate('Hello') }}\r\n {{ coreService.getShortName(form?.header?.requesterName) }}, {{ i18n.translate('welcomeBack') }}!\r\n </h6>\r\n <h1 class=\"fs-26 fs-md-20 fw-bold fc-black d-flex align-items-center gap-2 mb-1\">\r\n {{ formTitle }}\r\n @if (serviceFaq.length) {\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n }\r\n </h1>\r\n </section>\r\n <div class=\"d-flex align-items-center justify-content-end gap-2 flex-grow-1\">\r\n @if (serviceFaq.length) {\r\n <ds-button size=\"small\" icon>\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n </ds-button>\r\n }\r\n <!-- <ds-button size=\"small\" icon (click)=\"openWorkflow()\">\r\n <ds-icon icon=\"bell-2-o\" class=\"fs-20 fc-coral\"></ds-icon>\r\n </ds-button> -->\r\n @if (!isReadOnly) {\r\n <ds-button size=\"small\" icon (click)=\"showPreviousRequests()\">\r\n <ds-icon icon=\"clock\" class=\"fs-20 fc-coral\"></ds-icon>\r\n </ds-button>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <!-- <header class=\"mb-4 mt-4 d-flex align-items-center justify-content-between align-items-end gap-2\">\r\n <section>\r\n <h6 class=\"fs-14 fs-md-12 fw-normal fc-dark-gray mb-0\">\r\n {{ i18n.translate('Hello') }}\r\n {{ coreService.getShortName(form?.header?.requesterName) }}, {{ i18n.translate('welcomeBack') }}!\r\n </h6>\r\n <h1 class=\"fs-26 fs-md-20 fw-bold fc-black d-flex align-items-center gap-2 mb-1\">\r\n {{ formTitle }}\r\n @if (serviceFaq.length) {\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n }\r\n </h1>\r\n </section>\r\n </header>-->\r\n} @else {\r\n\r\n <div class=\"w-100\">\r\n <section class=\"request-main-info {{statusClass(form?.header?.status?.['key'])}}\">\r\n <section class=\"request-info\">\r\n <div class=\"request-info--body\">\r\n <div class=\"d-flex align-items-center gap-2 flex-grow-1\">\r\n <img\r\n alt=\"\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMjkiIHZpZXdCb3g9IjAgMCAzMCAyOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI1LjEgMEg0LjlDMi4yIDAgMCAyLjIgMCA0LjlWMjguNkgyNS4xQzI3LjggMjguNiAzMCAyNi40IDMwIDIzLjdWNC45QzMwIDIuMiAyNy44IDAgMjUuMSAwWk0yIDQuOUMyIDMuMyAzLjMgMiA0LjkgMkgyNS4xQzI2LjcgMiAyOCAzLjMgMjggNC45VjIzLjdDMjggMjUuMyAyNi43IDI2LjYgMjUuMSAyNi42SDJWNC45Wk0xMS41IDYuM0M3LjEgNi4zIDMuNSA5LjkgMy41IDE0LjNDMy41IDE4LjcgNy4xIDIyLjMgMTEuNSAyMi4zQzE1LjkgMjIuMyAxOS41IDE4LjcgMTkuNSAxNC4zQzE5LjUgOS45IDE1LjkgNi4zIDExLjUgNi4zWk0xNS4xIDE5QzE0LjEgMTkuOCAxMi44IDIwLjIgMTEuNSAyMC4yQzEwLjIgMjAuMiA4LjkgMTkuOCA3LjkgMTlDOC43IDE3LjcgMTAgMTcgMTEuNSAxN0MxMyAxNyAxNC40IDE3LjggMTUuMSAxOVpNMTMuMSAxMy40QzEzLjEgMTQuMyAxMi40IDE1IDExLjUgMTVDMTAuNiAxNSA5LjkgMTQuMyA5LjkgMTMuNEM5LjkgMTIuNSAxMC42IDExLjggMTEuNSAxMS44QzEyLjQgMTEuOCAxMy4xIDEyLjUgMTMuMSAxMy40Wk0xNS4xIDEzLjRDMTUuMSAxMS40IDEzLjUgOS44IDExLjUgOS44QzkuNSA5LjggNy45IDExLjQgNy45IDEzLjRDNy45IDE0LjIgOC4yIDE1IDguNyAxNS43QzcuOCAxNi4xIDcuMSAxNi44IDYuNSAxNy42QzUuOCAxNi42IDUuNSAxNS41IDUuNSAxNC4zQzUuNSAxMSA4LjIgOC4zIDExLjUgOC4zQzE0LjggOC4zIDE3LjUgMTEgMTcuNSAxNC4zQzE3LjUgMTUuNSAxNy4yIDE2LjYgMTYuNSAxNy42QzE1LjkgMTYuOCAxNS4yIDE2LjIgMTQuMyAxNS43QzE0LjggMTUuMSAxNS4xIDE0LjIgMTUuMSAxMy40Wk0yMSA5LjFDMjEgOC42IDIxLjQgOC4xIDIyIDguMUgyNS41QzI2IDguMSAyNi41IDguNSAyNi41IDkuMUMyNi41IDkuNiAyNi4xIDEwLjEgMjUuNSAxMC4xSDIyQzIxLjQgMTAuMSAyMSA5LjYgMjEgOS4xWk0yMSAxMi41QzIxIDEyIDIxLjQgMTEuNSAyMiAxMS41SDI1LjVDMjYgMTEuNSAyNi41IDExLjkgMjYuNSAxMi41QzI2LjUgMTMgMjYuMSAxMy41IDI1LjUgMTMuNUgyMkMyMS40IDEzLjUgMjEgMTMuMSAyMSAxMi41Wk0yMSAxNkMyMSAxNS41IDIxLjQgMTUgMjIgMTVIMjUuNUMyNiAxNSAyNi41IDE1LjQgMjYuNSAxNkMyNi41IDE2LjUgMjYuMSAxNyAyNS41IDE3SDIyQzIxLjQgMTcgMjEgMTYuNiAyMSAxNlpNMjUuNSAyMC41SDIyQzIxLjUgMjAuNSAyMSAyMC4xIDIxIDE5LjVDMjEgMTguOSAyMS40IDE4LjUgMjIgMTguNUgyNS41QzI2IDE4LjUgMjYuNSAxOC45IDI2LjUgMTkuNUMyNi41IDIwLjEgMjYuMSAyMC41IDI1LjUgMjAuNVoiIGZpbGw9IiNGRjM3NUUiLz4KPC9zdmc+Cg==\"/>\r\n <h4 class=\"fs-22 fs-md-16 fc-black fw-medium mb-0 flex-grow-1 line-height-1-2\">\r\n {{ formTitle }}\r\n </h4>\r\n </div>\r\n <div class=\"d-flex align-items-center gap-2 request-info--status-action\">\r\n <div class=\"d-inline-flex flex-column align-items-end\">\r\n @if (!isLoading) {\r\n <ds-status\r\n status=\"{{statusClass(form?.header?.status?.['key'])}}\" class=\"header-status\">{{ form?.header?.status?.['value'] }}\r\n </ds-status>\r\n }\r\n </div>\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <!-- <ds-button\r\n *ngIf=\"form?.inboxItem && (form?.inboxItem?.canRequestFeedback =='true'|| form?.inboxItem?.hasFeedback=='true')\"\r\n square icon size=\"small\">\r\n <ds-icon icon=\"chat-o\" class=\"fs-20 fs-md-17 fc-coral\">\r\n <!– [ngClass]=\"{'fc-green':feedBackIcon == 'feedbackResponded' , 'fc-red': feedBackIcon == 'respondToFeedback' , 'fc-yellow': feedBackIcon == 'waitingFeedback'}\"–>\r\n </ds-icon>\r\n </ds-button>-->\r\n <!-- history-->\r\n <ds-button\r\n *ngIf=\"form?.commentsDrop?.length > 0 && !isLoading\" square icon size=\"small\"\r\n (click)=\"onCommentsFormClick()\" class=\"has-comments\">\r\n <ds-icon icon=\"clock\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </ds-button>\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"request-info--footer\">\r\n @if (!isLoading) {\r\n <ds-avatar\r\n image=\"{{form?.header?.requesterPhoto}}\" size=\"xx-small\"\r\n class=\"d-inline-flex cursor-pointer\" (click)=\"showUserInfo()\"></ds-avatar>\r\n }\r\n <div\r\n class=\"d-flex align-items-center flex-wrap flex-grow-1 gap-1 gap-sm-2 line-height-1 request-info--header__details\">\r\n <span\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\"\r\n class=\"fs-12 fw-medium d-none d-sm-inline-block\">{{ coreService.getShortName(form?.header?.['requesterName']) }}</span>\r\n <span class=\"fs-20\">•</span>\r\n <span class=\"fs-12\" [ngClass]=\"{'loading-bg loading-width': isLoading}\"> {{ form?.header?.formId }}</span>\r\n <span class=\"fs-20\" *ngIf=\"creationDate\">•</span>\r\n <span class=\"fs-12\" [ngClass]=\"{'loading-bg loading-width': isLoading}\"> {{ creationDate }}</span>\r\n </div>\r\n </div>\r\n </section>\r\n </section>\r\n\r\n </div>\r\n\r\n\r\n <!--<ng-container>\r\n <div class=\"d-flex align-items-center justify-content-end gap-2 my-2\">\r\n <ds-button\r\n *ngIf=\"form?.inboxItem && !form.sections[form.sections.length -1].header.readOnly && !isLoading\"\r\n square\r\n icon\r\n size=\"small\"\r\n [matMenuTriggerFor]=\"menu\"\r\n class=\"icon-btn-shadow\">\r\n <ds-icon\r\n [ngClass]=\"{'fc-purple' : (flagPriority === '0' || flagPriority === null),'fc-yellow' : flagPriority === '1','fc-green' : flagPriority === '2','fc-coral' : flagPriority === '3'}\"\r\n icon=\"flag-o\" class=\"fs-20 fs-md-17 fc-purple\">\r\n </ds-icon>\r\n </ds-button>\r\n <mat-menu #menu=\"matMenu\" panelClass=\"action-menu\">\r\n <button mat-menu-item (click)=\"setFlagPriority('0')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-purple fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('1')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-yellow fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('2')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-green fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('3')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n </mat-menu>\r\n\r\n <ng-content></ng-content>\r\n </div>\r\n <header class=\"service-header bc-white p-3 p-sm-4 py-4 gap-3 {{statusClass(form?.header?.status?.['key'])}}\">\r\n\r\n <div class=\"service-header-icon\">\r\n <img\r\n alt=\"\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMjkiIHZpZXdCb3g9IjAgMCAzMCAyOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI1LjEgMEg0LjlDMi4yIDAgMCAyLjIgMCA0LjlWMjguNkgyNS4xQzI3LjggMjguNiAzMCAyNi40IDMwIDIzLjdWNC45QzMwIDIuMiAyNy44IDAgMjUuMSAwWk0yIDQuOUMyIDMuMyAzLjMgMiA0LjkgMkgyNS4xQzI2LjcgMiAyOCAzLjMgMjggNC45VjIzLjdDMjggMjUuMyAyNi43IDI2LjYgMjUuMSAyNi42SDJWNC45Wk0xMS41IDYuM0M3LjEgNi4zIDMuNSA5LjkgMy41IDE0LjNDMy41IDE4LjcgNy4xIDIyLjMgMTEuNSAyMi4zQzE1LjkgMjIuMyAxOS41IDE4LjcgMTkuNSAxNC4zQzE5LjUgOS45IDE1LjkgNi4zIDExLjUgNi4zWk0xNS4xIDE5QzE0LjEgMTkuOCAxMi44IDIwLjIgMTEuNSAyMC4yQzEwLjIgMjAuMiA4LjkgMTkuOCA3LjkgMTlDOC43IDE3LjcgMTAgMTcgMTEuNSAxN0MxMyAxNyAxNC40IDE3LjggMTUuMSAxOVpNMTMuMSAxMy40QzEzLjEgMTQuMyAxMi40IDE1IDExLjUgMTVDMTAuNiAxNSA5LjkgMTQuMyA5LjkgMTMuNEM5LjkgMTIuNSAxMC42IDExLjggMTEuNSAxMS44QzEyLjQgMTEuOCAxMy4xIDEyLjUgMTMuMSAxMy40Wk0xNS4xIDEzLjRDMTUuMSAxMS40IDEzLjUgOS44IDExLjUgOS44QzkuNSA5LjggNy45IDExLjQgNy45IDEzLjRDNy45IDE0LjIgOC4yIDE1IDguNyAxNS43QzcuOCAxNi4xIDcuMSAxNi44IDYuNSAxNy42QzUuOCAxNi42IDUuNSAxNS41IDUuNSAxNC4zQzUuNSAxMSA4LjIgOC4zIDExLjUgOC4zQzE0LjggOC4zIDE3LjUgMTEgMTcuNSAxNC4zQzE3LjUgMTUuNSAxNy4yIDE2LjYgMTYuNSAxNy42QzE1LjkgMTYuOCAxNS4yIDE2LjIgMTQuMyAxNS43QzE0LjggMTUuMSAxNS4xIDE0LjIgMTUuMSAxMy40Wk0yMSA5LjFDMjEgOC42IDIxLjQgOC4xIDIyIDguMUgyNS41QzI2IDguMSAyNi41IDguNSAyNi41IDkuMUMyNi41IDkuNiAyNi4xIDEwLjEgMjUuNSAxMC4xSDIyQzIxLjQgMTAuMSAyMSA5LjYgMjEgOS4xWk0yMSAxMi41QzIxIDEyIDIxLjQgMTEuNSAyMiAxMS41SDI1LjVDMjYgMTEuNSAyNi41IDExLjkgMjYuNSAxMi41QzI2LjUgMTMgMjYuMSAxMy41IDI1LjUgMTMuNUgyMkMyMS40IDEzLjUgMjEgMTMuMSAyMSAxMi41Wk0yMSAxNkMyMSAxNS41IDIxLjQgMTUgMjIgMTVIMjUuNUMyNiAxNSAyNi41IDE1LjQgMjYuNSAxNkMyNi41IDE2LjUgMjYuMSAxNyAyNS41IDE3SDIyQzIxLjQgMTcgMjEgMTYuNiAyMSAxNlpNMjUuNSAyMC41SDIyQzIxLjUgMjAuNSAyMSAyMC4xIDIxIDE5LjVDMjEgMTguOSAyMS40IDE4LjUgMjIgMTguNUgyNS41QzI2IDE4LjUgMjYuNSAxOC45IDI2LjUgMTkuNUMyNi41IDIwLjEgMjYuMSAyMC41IDI1LjUgMjAuNVoiIGZpbGw9IiNGRjM3NUUiLz4KPC9zdmc+Cg==\"/>\r\n </div>\r\n\r\n <div class=\"flex-grow-1 d-flex flex-column flex-sm-row align-items-sm-center gap-2\">\r\n <div class=\"flex-grow-1\">\r\n <h1 class=\"fs-20 fs-md-16 fw-bold fc-black header-title m-0\">{{ formTitle }}\r\n @if (serviceFaq.length) {\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n }\r\n </h1>\r\n <div class=\"header-user d-flex align-items-sm-center gap-2 mt-sm-1\">\r\n @if (!isLoading) {\r\n <ds-avatar\r\n image=\"{{form?.header?.requesterPhoto}}\" size=\"xx-small\"\r\n class=\"d-inline-flex cursor-pointer\" (click)=\"showUserInfo()\"></ds-avatar>\r\n }\r\n <span\r\n class=\"fs-12 text-truncate d-sm-block cursor-pointer\" (click)=\"showUserInfo()\"\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ coreService.getShortName(form?.header?.requesterName) }}</span>\r\n <mat-divider class=\"divider circle mx-2 d-none d-sm-block\"></mat-divider>\r\n <span class=\"fs-12\" [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ form?.header?.formId }}</span>\r\n @if (creationDate) {\r\n <mat-divider class=\"divider circle mx-2 d-none d-sm-block\"></mat-divider>\r\n <span class=\"fs-14\" [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ creationDate }}</span>\r\n }\r\n </div>\r\n\r\n </div>\r\n <div class=\"header-actions d-flex flex-row flex-sm-column justify-content-between justify-content-sm-center gap-2 mt-2 mt-sm-0\">\r\n @if (!isLoading) {\r\n <ds-status\r\n status=\"{{statusClass(form?.header?.status?.['key'])}}\" class=\"header-status\">{{ form?.header?.status?.['value'] }}\r\n </ds-status>\r\n }\r\n <div class=\"d-flex align-items-center justify-content-end gap-2\">\r\n <!– feedback–>\r\n <!– *ngIf=\"form?.inboxItem && (form?.inboxItem?.canRequestFeedback ==='true'|| form?.inboxItem?.hasFeedback==='true') && !isLoading\"–>\r\n <!– <ds-button\r\n square icon size=\"small\" (click)=\"feedback()\">\r\n <ds-icon\r\n icon=\"chat-o\" class=\"fs-20 fs-md-17 fc-coral\"\r\n [ngClass]=\"{'fc-green':feedBackIcon === 'feedbackResponded' , 'fc-red': feedBackIcon === 'respondToFeedback' , 'fc-yellow': feedBackIcon === 'waitingFeedback'}\">\r\n </ds-icon>\r\n </ds-button>–>\r\n <ds-button\r\n *ngIf=\"form?.commentsDrop?.length > 0 && !isLoading\" square icon size=\"small\"\r\n (click)=\"onCommentsFormClick()\" class=\"has-comments\">\r\n <ds-icon icon=\"clock\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </ds-button>\r\n @if (showApprovalHistory) {\r\n <ng-container>\r\n <ds-button\r\n color=\"white\" shape=\"text\" square size=\"small\" [satPopoverAnchor]=\"workflow\"\r\n #workflowAnchor=\"satPopoverAnchor\" (click)=\"workflowAnchor.popover.open()\">\r\n <slot name=\"prefix\">\r\n <ds-icon icon=\"workflow\" class=\"fs-24\"></ds-icon>\r\n </slot>\r\n </ds-button>\r\n <sat-popover\r\n #workflow [anchor]=\"workflowAnchor\" [hasBackdrop]=\"true\" verticalAlign=\"below\"\r\n horizontalAlign=\"end\">\r\n <div class=\"default-popover p-3\" style=\"min-width: 330px;\">\r\n <ds-approvals *ngIf=\"approvalHistory\" class=\"popover-approvals\" approvalsData=\"{{approvals}}\">\r\n </ds-approvals>\r\n </div>\r\n </sat-popover>\r\n </ng-container>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </header>\r\n </ng-container>-->\r\n}\r\n", styles: [".loading-width{min-width:100px;width:40px;flex-grow:1}.request-main-info{--item-bg: var(--light-gray);--item-fc: var(--black);--status-container-bc: #e8ebec;--status-container-brc: var(--dark-gray)}.request-main-info.warning{--item-bg: var(--yellow);--status-container-bc: #fff8d9;--status-container-brc: var(--yellow)}.request-main-info.pending{--item-bg: #eff0f1;--status-container-bc: #e8ebec;--status-container-brc: #c8ced1}.request-main-info.expired{--item-bg: var(--dark-gray);--status-container-bc: #e8ebec;--status-container-brc: var(--dark-gray)}.request-main-info.success{--item-bg: var(--green);--status-container-bc: #e6f9f4;--status-container-brc: var(--green)}.request-main-info.info{--item-bg: var(--sea-light);--status-container-bc: #fff8d9;--status-container-brc: var(--sea-light)}.request-main-info.danger{--item-bg: var(--red);--status-container-bc: #fae9ec;--status-container-brc: var(--red)}.request-main-info.orange,.request-main-info.send_back{--item-bg: var(--orange);--status-container-bc: #fff0eb;--status-container-brc: var(--orange)}.request-info{border-radius:0;box-shadow:var(--box-shadow);background-color:var(--white);border-top:5px solid var(--item-bg)}.request-info--footer{padding:.3rem 2rem;min-height:45px;display:flex;align-items:center;gap:.75rem;border-top:1px solid var(--light-gray)}@media (max-width: 578px){.request-info--footer{padding:.3rem 1rem}}.request-info--footer__details{color:var(--item-fc)}.request-info--body{padding:2rem;display:flex;align-items:center;gap:.75rem;background-color:#fff}@media (max-width: 578px){.request-info--body{padding:1rem;flex-direction:column;align-items:stretch}}.request-info--body figure{min-width:30px;width:30px;text-align:center}.request-info--body figure svg{width:100%}@media (max-width: 578px){.request-info--status-action{justify-content:space-between}}.request-info--history{margin-top:-.5rem}.request-info--comment{background-color:#fff0eb;color:var(--orange);border-radius:0 0 4px 4px}.status-container{min-height:40px;padding:.5rem 1rem;display:flex;flex-direction:column;justify-content:center;gap:.5rem;margin-bottom:1.5rem}.status-container.danger{--item-bg: var(--red);--status-container-bc: #fae9ec;--status-container-brc: var(--red)}.status-container ::ng-deep ds-avatar .avatar{--default-size: 18px}.circle-status::part(base){--status-radius: 50%;--status-size: 19px;--status-fs: 100%}ds-button[square]::part(base){--btn-padding: 0;--default-size-sm: 30px}.send-back-container{background-color:#fff0eb;color:var(--orange);padding:.5rem;border-radius:4px}object,iframe,embed{height:79vh}::ng-deep .history-popup{--popup-width: 100vw;--popup-max-width: 100vw;--popup-radius: 15px 15px 0 0;position:absolute!important;bottom:0}:host ::ng-deep .mat-expansion-panel-content{background:#fff!important}:host .main-sidenav.main-sidenav-full .sidenav-title{border-bottom:transparent!important}:host .main-sidenav .sidenav-title{background-color:transparent!important}:host .main-sidenav{height:60px;min-height:10px!important}:host .mat-expansion-panel-content{background:#fff!important}:host .approval-panel-container{display:grid;grid-template-columns:40% calc(60% - 45px) 20px;grid-template-areas:\"title details toggle\";gap:.75rem;place-content:space-between;align-items:center;flex-grow:1;width:100%}@media (max-width: 991px){:host .approval-panel-container{grid-template-columns:calc(100% - 45px) 20px;grid-template-areas:\"title toggle\" \"details details\"}}:host .approval-panel-container .approval-panel-title{grid-area:title}:host .approval-panel-container .panel-user-name{max-width:120px}@media (max-width: 768px){:host .approval-panel-container .panel-user-name.panel-ueser-only{max-width:140px}:host .approval-panel-container .panel-user-name:not(.panel-ueser-only){max-width:90px}}:host .approval-panel-container .approval-panel-details{display:flex;align-items:center;justify-content:space-between;grid-area:details}:host .approval-panel-container .approval-panel-toggle{grid-area:toggle;display:flex;align-items:center;justify-content:center;width:20px}:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 25px}@media (min-width: 768px){:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 31px;--avatar-border: 3px solid var(--light-gray)}}@media (min-width: 768px){:host ::ng-deep .user-avatar-name{padding-inline-end:1rem!important}}:host .circle-status::part(base){--status-radius: 50%;--status-size: 18px;--status-fs: 80% }:host .panel-title{min-width:40%;width:40%}@media (max-width: 576px){:host .panel-title{min-width:100%!important;width:100%!important}}:host .panel-user-status{min-width:60%;width:60%;display:flex;align-items:center;justify-content:space-between}@media (max-width: 576px){:host .panel-user-status{min-width:100%!important;width:100%!important}:host .panel-user-status .user-delegate{min-width:auto}:host .panel-user-status .main-status::part(base){--status-width: 50px}}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: SatPopoverModule }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
234
234
|
}
|
|
235
235
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ServiceHeaderComponent, decorators: [{
|
|
236
236
|
type: Component,
|
|
@@ -244,13 +244,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
244
244
|
MatMenuItem
|
|
245
245
|
], schemas: [CUSTOM_ELEMENTS_SCHEMA], providers: [FeedBackService,
|
|
246
246
|
{ provide: MAT_DIALOG_DATA, useValue: {} },
|
|
247
|
-
], template: "@if (form?.header?.status?.['key'] === 'NEW') {\r\n <section\r\n class=\"main-sidenav main-sidenav-full mb-4\"\r\n\r\n >\r\n <div class=\"sidenav-title\">\r\n <div class=\"d-flex align-items-center gap-3 w-100\">\r\n <!-- <ds-button icon class=\"rotate-arrow\" size=\"small\" (click)=\"goBack()\" *ngIf=\"!isInMobileApp() && showBack\">\r\n <ds-icon icon=\"arrow-right\" class=\"fs-19 fc-black\"></ds-icon>\r\n </ds-button>-->\r\n\r\n <!-- <h3 class=\"flex-grow-0\">\r\n {{ formTitle }}\r\n </h3>-->\r\n\r\n <section>\r\n <h6 class=\"fs-14 fs-md-12 fw-normal fc-dark-gray mb-0\">\r\n {{ i18n.translate('Hello') }}\r\n {{ coreService.getShortName(form?.header?.requesterName) }}, {{ i18n.translate('welcomeBack') }}!\r\n </h6>\r\n <h1 class=\"fs-26 fs-md-20 fw-bold fc-black d-flex align-items-center gap-2 mb-1\">\r\n {{ formTitle }}\r\n @if (serviceFaq.length) {\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n }\r\n </h1>\r\n </section>\r\n <div class=\"d-flex align-items-center justify-content-end gap-2 flex-grow-1\">\r\n @if (serviceFaq.length) {\r\n <ds-button size=\"small\" icon>\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n </ds-button>\r\n }\r\n <!-- <ds-button size=\"small\" icon (click)=\"openWorkflow()\">\r\n <ds-icon icon=\"bell-2-o\" class=\"fs-20 fc-coral\"></ds-icon>\r\n </ds-button> -->\r\n <ds-button size=\"small\" icon (click)=\"showPreviousRequests()\" >\r\n <ds-icon icon=\"clock\" class=\"fs-20 fc-coral\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <!-- <header class=\"mb-4 mt-4 d-flex align-items-center justify-content-between align-items-end gap-2\">\r\n <section>\r\n <h6 class=\"fs-14 fs-md-12 fw-normal fc-dark-gray mb-0\">\r\n {{ i18n.translate('Hello') }}\r\n {{ coreService.getShortName(form?.header?.requesterName) }}, {{ i18n.translate('welcomeBack') }}!\r\n </h6>\r\n <h1 class=\"fs-26 fs-md-20 fw-bold fc-black d-flex align-items-center gap-2 mb-1\">\r\n {{ formTitle }}\r\n @if (serviceFaq.length) {\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n }\r\n </h1>\r\n </section>\r\n </header>-->\r\n} @else {\r\n\r\n <div class=\"w-100\">\r\n <section class=\"request-main-info {{statusClass(form?.header?.status?.['key'])}}\">\r\n <section class=\"request-info\">\r\n <div class=\"request-info--body\">\r\n <div class=\"d-flex align-items-center gap-2 flex-grow-1\">\r\n <img\r\n alt=\"\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMjkiIHZpZXdCb3g9IjAgMCAzMCAyOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI1LjEgMEg0LjlDMi4yIDAgMCAyLjIgMCA0LjlWMjguNkgyNS4xQzI3LjggMjguNiAzMCAyNi40IDMwIDIzLjdWNC45QzMwIDIuMiAyNy44IDAgMjUuMSAwWk0yIDQuOUMyIDMuMyAzLjMgMiA0LjkgMkgyNS4xQzI2LjcgMiAyOCAzLjMgMjggNC45VjIzLjdDMjggMjUuMyAyNi43IDI2LjYgMjUuMSAyNi42SDJWNC45Wk0xMS41IDYuM0M3LjEgNi4zIDMuNSA5LjkgMy41IDE0LjNDMy41IDE4LjcgNy4xIDIyLjMgMTEuNSAyMi4zQzE1LjkgMjIuMyAxOS41IDE4LjcgMTkuNSAxNC4zQzE5LjUgOS45IDE1LjkgNi4zIDExLjUgNi4zWk0xNS4xIDE5QzE0LjEgMTkuOCAxMi44IDIwLjIgMTEuNSAyMC4yQzEwLjIgMjAuMiA4LjkgMTkuOCA3LjkgMTlDOC43IDE3LjcgMTAgMTcgMTEuNSAxN0MxMyAxNyAxNC40IDE3LjggMTUuMSAxOVpNMTMuMSAxMy40QzEzLjEgMTQuMyAxMi40IDE1IDExLjUgMTVDMTAuNiAxNSA5LjkgMTQuMyA5LjkgMTMuNEM5LjkgMTIuNSAxMC42IDExLjggMTEuNSAxMS44QzEyLjQgMTEuOCAxMy4xIDEyLjUgMTMuMSAxMy40Wk0xNS4xIDEzLjRDMTUuMSAxMS40IDEzLjUgOS44IDExLjUgOS44QzkuNSA5LjggNy45IDExLjQgNy45IDEzLjRDNy45IDE0LjIgOC4yIDE1IDguNyAxNS43QzcuOCAxNi4xIDcuMSAxNi44IDYuNSAxNy42QzUuOCAxNi42IDUuNSAxNS41IDUuNSAxNC4zQzUuNSAxMSA4LjIgOC4zIDExLjUgOC4zQzE0LjggOC4zIDE3LjUgMTEgMTcuNSAxNC4zQzE3LjUgMTUuNSAxNy4yIDE2LjYgMTYuNSAxNy42QzE1LjkgMTYuOCAxNS4yIDE2LjIgMTQuMyAxNS43QzE0LjggMTUuMSAxNS4xIDE0LjIgMTUuMSAxMy40Wk0yMSA5LjFDMjEgOC42IDIxLjQgOC4xIDIyIDguMUgyNS41QzI2IDguMSAyNi41IDguNSAyNi41IDkuMUMyNi41IDkuNiAyNi4xIDEwLjEgMjUuNSAxMC4xSDIyQzIxLjQgMTAuMSAyMSA5LjYgMjEgOS4xWk0yMSAxMi41QzIxIDEyIDIxLjQgMTEuNSAyMiAxMS41SDI1LjVDMjYgMTEuNSAyNi41IDExLjkgMjYuNSAxMi41QzI2LjUgMTMgMjYuMSAxMy41IDI1LjUgMTMuNUgyMkMyMS40IDEzLjUgMjEgMTMuMSAyMSAxMi41Wk0yMSAxNkMyMSAxNS41IDIxLjQgMTUgMjIgMTVIMjUuNUMyNiAxNSAyNi41IDE1LjQgMjYuNSAxNkMyNi41IDE2LjUgMjYuMSAxNyAyNS41IDE3SDIyQzIxLjQgMTcgMjEgMTYuNiAyMSAxNlpNMjUuNSAyMC41SDIyQzIxLjUgMjAuNSAyMSAyMC4xIDIxIDE5LjVDMjEgMTguOSAyMS40IDE4LjUgMjIgMTguNUgyNS41QzI2IDE4LjUgMjYuNSAxOC45IDI2LjUgMTkuNUMyNi41IDIwLjEgMjYuMSAyMC41IDI1LjUgMjAuNVoiIGZpbGw9IiNGRjM3NUUiLz4KPC9zdmc+Cg==\"/>\r\n <h4 class=\"fs-22 fs-md-16 fc-black fw-medium mb-0 flex-grow-1 line-height-1-2\">\r\n {{ formTitle }}\r\n </h4>\r\n </div>\r\n <div class=\"d-flex align-items-center gap-2 request-info--status-action\">\r\n <div class=\"d-inline-flex flex-column align-items-end\">\r\n @if (!isLoading) {\r\n <ds-status\r\n status=\"{{statusClass(form?.header?.status?.['key'])}}\" class=\"header-status\">{{ form?.header?.status?.['value'] }}\r\n </ds-status>\r\n }\r\n </div>\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <!-- <ds-button\r\n *ngIf=\"form?.inboxItem && (form?.inboxItem?.canRequestFeedback =='true'|| form?.inboxItem?.hasFeedback=='true')\"\r\n square icon size=\"small\">\r\n <ds-icon icon=\"chat-o\" class=\"fs-20 fs-md-17 fc-coral\">\r\n <!– [ngClass]=\"{'fc-green':feedBackIcon == 'feedbackResponded' , 'fc-red': feedBackIcon == 'respondToFeedback' , 'fc-yellow': feedBackIcon == 'waitingFeedback'}\"–>\r\n </ds-icon>\r\n </ds-button>-->\r\n <!-- history-->\r\n <ds-button\r\n *ngIf=\"form?.commentsDrop?.length > 0 && !isLoading\" square icon size=\"small\"\r\n (click)=\"onCommentsFormClick()\" class=\"has-comments\">\r\n <ds-icon icon=\"clock\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </ds-button>\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"request-info--footer\">\r\n @if (!isLoading) {\r\n <ds-avatar\r\n image=\"{{form?.header?.requesterPhoto}}\" size=\"xx-small\"\r\n class=\"d-inline-flex cursor-pointer\" (click)=\"showUserInfo()\"></ds-avatar>\r\n }\r\n <div\r\n class=\"d-flex align-items-center flex-wrap flex-grow-1 gap-1 gap-sm-2 line-height-1 request-info--header__details\">\r\n <span\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\"\r\n class=\"fs-12 fw-medium d-none d-sm-inline-block\">{{ coreService.getShortName(form?.header?.['requesterName']) }}</span>\r\n <span class=\"fs-20\">•</span>\r\n <span class=\"fs-12\" [ngClass]=\"{'loading-bg loading-width': isLoading}\"> {{ form?.header?.formId }}</span>\r\n <span class=\"fs-20\" *ngIf=\"creationDate\">•</span>\r\n <span class=\"fs-12\" [ngClass]=\"{'loading-bg loading-width': isLoading}\"> {{ creationDate }}</span>\r\n </div>\r\n </div>\r\n </section>\r\n </section>\r\n\r\n </div>\r\n\r\n\r\n <!--<ng-container>\r\n <div class=\"d-flex align-items-center justify-content-end gap-2 my-2\">\r\n <ds-button\r\n *ngIf=\"form?.inboxItem && !form.sections[form.sections.length -1].header.readOnly && !isLoading\"\r\n square\r\n icon\r\n size=\"small\"\r\n [matMenuTriggerFor]=\"menu\"\r\n class=\"icon-btn-shadow\">\r\n <ds-icon\r\n [ngClass]=\"{'fc-purple' : (flagPriority === '0' || flagPriority === null),'fc-yellow' : flagPriority === '1','fc-green' : flagPriority === '2','fc-coral' : flagPriority === '3'}\"\r\n icon=\"flag-o\" class=\"fs-20 fs-md-17 fc-purple\">\r\n </ds-icon>\r\n </ds-button>\r\n <mat-menu #menu=\"matMenu\" panelClass=\"action-menu\">\r\n <button mat-menu-item (click)=\"setFlagPriority('0')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-purple fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('1')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-yellow fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('2')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-green fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('3')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n </mat-menu>\r\n\r\n <ng-content></ng-content>\r\n </div>\r\n <header class=\"service-header bc-white p-3 p-sm-4 py-4 gap-3 {{statusClass(form?.header?.status?.['key'])}}\">\r\n\r\n <div class=\"service-header-icon\">\r\n <img\r\n alt=\"\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMjkiIHZpZXdCb3g9IjAgMCAzMCAyOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI1LjEgMEg0LjlDMi4yIDAgMCAyLjIgMCA0LjlWMjguNkgyNS4xQzI3LjggMjguNiAzMCAyNi40IDMwIDIzLjdWNC45QzMwIDIuMiAyNy44IDAgMjUuMSAwWk0yIDQuOUMyIDMuMyAzLjMgMiA0LjkgMkgyNS4xQzI2LjcgMiAyOCAzLjMgMjggNC45VjIzLjdDMjggMjUuMyAyNi43IDI2LjYgMjUuMSAyNi42SDJWNC45Wk0xMS41IDYuM0M3LjEgNi4zIDMuNSA5LjkgMy41IDE0LjNDMy41IDE4LjcgNy4xIDIyLjMgMTEuNSAyMi4zQzE1LjkgMjIuMyAxOS41IDE4LjcgMTkuNSAxNC4zQzE5LjUgOS45IDE1LjkgNi4zIDExLjUgNi4zWk0xNS4xIDE5QzE0LjEgMTkuOCAxMi44IDIwLjIgMTEuNSAyMC4yQzEwLjIgMjAuMiA4LjkgMTkuOCA3LjkgMTlDOC43IDE3LjcgMTAgMTcgMTEuNSAxN0MxMyAxNyAxNC40IDE3LjggMTUuMSAxOVpNMTMuMSAxMy40QzEzLjEgMTQuMyAxMi40IDE1IDExLjUgMTVDMTAuNiAxNSA5LjkgMTQuMyA5LjkgMTMuNEM5LjkgMTIuNSAxMC42IDExLjggMTEuNSAxMS44QzEyLjQgMTEuOCAxMy4xIDEyLjUgMTMuMSAxMy40Wk0xNS4xIDEzLjRDMTUuMSAxMS40IDEzLjUgOS44IDExLjUgOS44QzkuNSA5LjggNy45IDExLjQgNy45IDEzLjRDNy45IDE0LjIgOC4yIDE1IDguNyAxNS43QzcuOCAxNi4xIDcuMSAxNi44IDYuNSAxNy42QzUuOCAxNi42IDUuNSAxNS41IDUuNSAxNC4zQzUuNSAxMSA4LjIgOC4zIDExLjUgOC4zQzE0LjggOC4zIDE3LjUgMTEgMTcuNSAxNC4zQzE3LjUgMTUuNSAxNy4yIDE2LjYgMTYuNSAxNy42QzE1LjkgMTYuOCAxNS4yIDE2LjIgMTQuMyAxNS43QzE0LjggMTUuMSAxNS4xIDE0LjIgMTUuMSAxMy40Wk0yMSA5LjFDMjEgOC42IDIxLjQgOC4xIDIyIDguMUgyNS41QzI2IDguMSAyNi41IDguNSAyNi41IDkuMUMyNi41IDkuNiAyNi4xIDEwLjEgMjUuNSAxMC4xSDIyQzIxLjQgMTAuMSAyMSA5LjYgMjEgOS4xWk0yMSAxMi41QzIxIDEyIDIxLjQgMTEuNSAyMiAxMS41SDI1LjVDMjYgMTEuNSAyNi41IDExLjkgMjYuNSAxMi41QzI2LjUgMTMgMjYuMSAxMy41IDI1LjUgMTMuNUgyMkMyMS40IDEzLjUgMjEgMTMuMSAyMSAxMi41Wk0yMSAxNkMyMSAxNS41IDIxLjQgMTUgMjIgMTVIMjUuNUMyNiAxNSAyNi41IDE1LjQgMjYuNSAxNkMyNi41IDE2LjUgMjYuMSAxNyAyNS41IDE3SDIyQzIxLjQgMTcgMjEgMTYuNiAyMSAxNlpNMjUuNSAyMC41SDIyQzIxLjUgMjAuNSAyMSAyMC4xIDIxIDE5LjVDMjEgMTguOSAyMS40IDE4LjUgMjIgMTguNUgyNS41QzI2IDE4LjUgMjYuNSAxOC45IDI2LjUgMTkuNUMyNi41IDIwLjEgMjYuMSAyMC41IDI1LjUgMjAuNVoiIGZpbGw9IiNGRjM3NUUiLz4KPC9zdmc+Cg==\"/>\r\n </div>\r\n\r\n <div class=\"flex-grow-1 d-flex flex-column flex-sm-row align-items-sm-center gap-2\">\r\n <div class=\"flex-grow-1\">\r\n <h1 class=\"fs-20 fs-md-16 fw-bold fc-black header-title m-0\">{{ formTitle }}\r\n @if (serviceFaq.length) {\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n }\r\n </h1>\r\n <div class=\"header-user d-flex align-items-sm-center gap-2 mt-sm-1\">\r\n @if (!isLoading) {\r\n <ds-avatar\r\n image=\"{{form?.header?.requesterPhoto}}\" size=\"xx-small\"\r\n class=\"d-inline-flex cursor-pointer\" (click)=\"showUserInfo()\"></ds-avatar>\r\n }\r\n <span\r\n class=\"fs-12 text-truncate d-sm-block cursor-pointer\" (click)=\"showUserInfo()\"\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ coreService.getShortName(form?.header?.requesterName) }}</span>\r\n <mat-divider class=\"divider circle mx-2 d-none d-sm-block\"></mat-divider>\r\n <span class=\"fs-12\" [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ form?.header?.formId }}</span>\r\n @if (creationDate) {\r\n <mat-divider class=\"divider circle mx-2 d-none d-sm-block\"></mat-divider>\r\n <span class=\"fs-14\" [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ creationDate }}</span>\r\n }\r\n </div>\r\n\r\n </div>\r\n <div class=\"header-actions d-flex flex-row flex-sm-column justify-content-between justify-content-sm-center gap-2 mt-2 mt-sm-0\">\r\n @if (!isLoading) {\r\n <ds-status\r\n status=\"{{statusClass(form?.header?.status?.['key'])}}\" class=\"header-status\">{{ form?.header?.status?.['value'] }}\r\n </ds-status>\r\n }\r\n <div class=\"d-flex align-items-center justify-content-end gap-2\">\r\n <!– feedback–>\r\n <!– *ngIf=\"form?.inboxItem && (form?.inboxItem?.canRequestFeedback ==='true'|| form?.inboxItem?.hasFeedback==='true') && !isLoading\"–>\r\n <!– <ds-button\r\n square icon size=\"small\" (click)=\"feedback()\">\r\n <ds-icon\r\n icon=\"chat-o\" class=\"fs-20 fs-md-17 fc-coral\"\r\n [ngClass]=\"{'fc-green':feedBackIcon === 'feedbackResponded' , 'fc-red': feedBackIcon === 'respondToFeedback' , 'fc-yellow': feedBackIcon === 'waitingFeedback'}\">\r\n </ds-icon>\r\n </ds-button>–>\r\n <ds-button\r\n *ngIf=\"form?.commentsDrop?.length > 0 && !isLoading\" square icon size=\"small\"\r\n (click)=\"onCommentsFormClick()\" class=\"has-comments\">\r\n <ds-icon icon=\"clock\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </ds-button>\r\n @if (showApprovalHistory) {\r\n <ng-container>\r\n <ds-button\r\n color=\"white\" shape=\"text\" square size=\"small\" [satPopoverAnchor]=\"workflow\"\r\n #workflowAnchor=\"satPopoverAnchor\" (click)=\"workflowAnchor.popover.open()\">\r\n <slot name=\"prefix\">\r\n <ds-icon icon=\"workflow\" class=\"fs-24\"></ds-icon>\r\n </slot>\r\n </ds-button>\r\n <sat-popover\r\n #workflow [anchor]=\"workflowAnchor\" [hasBackdrop]=\"true\" verticalAlign=\"below\"\r\n horizontalAlign=\"end\">\r\n <div class=\"default-popover p-3\" style=\"min-width: 330px;\">\r\n <ds-approvals *ngIf=\"approvalHistory\" class=\"popover-approvals\" approvalsData=\"{{approvals}}\">\r\n </ds-approvals>\r\n </div>\r\n </sat-popover>\r\n </ng-container>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </header>\r\n </ng-container>-->\r\n}\r\n", styles: [".loading-width{min-width:100px;width:40px;flex-grow:1}.request-main-info{--item-bg: var(--light-gray);--item-fc: var(--black);--status-container-bc: #e8ebec;--status-container-brc: var(--dark-gray)}.request-main-info.warning{--item-bg: var(--yellow);--status-container-bc: #fff8d9;--status-container-brc: var(--yellow)}.request-main-info.pending{--item-bg: #eff0f1;--status-container-bc: #e8ebec;--status-container-brc: #c8ced1}.request-main-info.expired{--item-bg: var(--dark-gray);--status-container-bc: #e8ebec;--status-container-brc: var(--dark-gray)}.request-main-info.success{--item-bg: var(--green);--status-container-bc: #e6f9f4;--status-container-brc: var(--green)}.request-main-info.info{--item-bg: var(--sea-light);--status-container-bc: #fff8d9;--status-container-brc: var(--sea-light)}.request-main-info.danger{--item-bg: var(--red);--status-container-bc: #fae9ec;--status-container-brc: var(--red)}.request-main-info.orange,.request-main-info.send_back{--item-bg: var(--orange);--status-container-bc: #fff0eb;--status-container-brc: var(--orange)}.request-info{border-radius:0;box-shadow:var(--box-shadow);background-color:var(--white);border-top:5px solid var(--item-bg)}.request-info--footer{padding:.3rem 2rem;min-height:45px;display:flex;align-items:center;gap:.75rem;border-top:1px solid var(--light-gray)}@media (max-width: 578px){.request-info--footer{padding:.3rem 1rem}}.request-info--footer__details{color:var(--item-fc)}.request-info--body{padding:2rem;display:flex;align-items:center;gap:.75rem;background-color:#fff}@media (max-width: 578px){.request-info--body{padding:1rem;flex-direction:column;align-items:stretch}}.request-info--body figure{min-width:30px;width:30px;text-align:center}.request-info--body figure svg{width:100%}@media (max-width: 578px){.request-info--status-action{justify-content:space-between}}.request-info--history{margin-top:-.5rem}.request-info--comment{background-color:#fff0eb;color:var(--orange);border-radius:0 0 4px 4px}.status-container{min-height:40px;padding:.5rem 1rem;display:flex;flex-direction:column;justify-content:center;gap:.5rem;margin-bottom:1.5rem}.status-container.danger{--item-bg: var(--red);--status-container-bc: #fae9ec;--status-container-brc: var(--red)}.status-container ::ng-deep ds-avatar .avatar{--default-size: 18px}.circle-status::part(base){--status-radius: 50%;--status-size: 19px;--status-fs: 100%}ds-button[square]::part(base){--btn-padding: 0;--default-size-sm: 30px}.send-back-container{background-color:#fff0eb;color:var(--orange);padding:.5rem;border-radius:4px}object,iframe,embed{height:79vh}::ng-deep .history-popup{--popup-width: 100vw;--popup-max-width: 100vw;--popup-radius: 15px 15px 0 0;position:absolute!important;bottom:0}:host ::ng-deep .mat-expansion-panel-content{background:#fff!important}:host .main-sidenav.main-sidenav-full .sidenav-title{border-bottom:transparent!important}:host .main-sidenav .sidenav-title{background-color:transparent!important}:host .main-sidenav{height:60px;min-height:10px!important}:host .mat-expansion-panel-content{background:#fff!important}:host .approval-panel-container{display:grid;grid-template-columns:40% calc(60% - 45px) 20px;grid-template-areas:\"title details toggle\";gap:.75rem;place-content:space-between;align-items:center;flex-grow:1;width:100%}@media (max-width: 991px){:host .approval-panel-container{grid-template-columns:calc(100% - 45px) 20px;grid-template-areas:\"title toggle\" \"details details\"}}:host .approval-panel-container .approval-panel-title{grid-area:title}:host .approval-panel-container .panel-user-name{max-width:120px}@media (max-width: 768px){:host .approval-panel-container .panel-user-name.panel-ueser-only{max-width:140px}:host .approval-panel-container .panel-user-name:not(.panel-ueser-only){max-width:90px}}:host .approval-panel-container .approval-panel-details{display:flex;align-items:center;justify-content:space-between;grid-area:details}:host .approval-panel-container .approval-panel-toggle{grid-area:toggle;display:flex;align-items:center;justify-content:center;width:20px}:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 25px}@media (min-width: 768px){:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 31px;--avatar-border: 3px solid var(--light-gray)}}@media (min-width: 768px){:host ::ng-deep .user-avatar-name{padding-inline-end:1rem!important}}:host .circle-status::part(base){--status-radius: 50%;--status-size: 18px;--status-fs: 80% }:host .panel-title{min-width:40%;width:40%}@media (max-width: 576px){:host .panel-title{min-width:100%!important;width:100%!important}}:host .panel-user-status{min-width:60%;width:60%;display:flex;align-items:center;justify-content:space-between}@media (max-width: 576px){:host .panel-user-status{min-width:100%!important;width:100%!important}:host .panel-user-status .user-delegate{min-width:auto}:host .panel-user-status .main-status::part(base){--status-width: 50px}}\n"] }]
|
|
247
|
+
], template: "@if (form?.header?.status?.['key'] === 'NEW') {\r\n <section\r\n class=\"main-sidenav main-sidenav-full mb-4\"\r\n\r\n >\r\n <div class=\"sidenav-title\">\r\n <div class=\"d-flex align-items-center gap-3 w-100\">\r\n <!-- <ds-button icon class=\"rotate-arrow\" size=\"small\" (click)=\"goBack()\" *ngIf=\"!isInMobileApp() && showBack\">\r\n <ds-icon icon=\"arrow-right\" class=\"fs-19 fc-black\"></ds-icon>\r\n </ds-button>-->\r\n\r\n <!-- <h3 class=\"flex-grow-0\">\r\n {{ formTitle }}\r\n </h3>-->\r\n\r\n <section>\r\n <h6 class=\"fs-14 fs-md-12 fw-normal fc-dark-gray mb-0\">\r\n {{ i18n.translate('Hello') }}\r\n {{ coreService.getShortName(form?.header?.requesterName) }}, {{ i18n.translate('welcomeBack') }}!\r\n </h6>\r\n <h1 class=\"fs-26 fs-md-20 fw-bold fc-black d-flex align-items-center gap-2 mb-1\">\r\n {{ formTitle }}\r\n @if (serviceFaq.length) {\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n }\r\n </h1>\r\n </section>\r\n <div class=\"d-flex align-items-center justify-content-end gap-2 flex-grow-1\">\r\n @if (serviceFaq.length) {\r\n <ds-button size=\"small\" icon>\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n </ds-button>\r\n }\r\n <!-- <ds-button size=\"small\" icon (click)=\"openWorkflow()\">\r\n <ds-icon icon=\"bell-2-o\" class=\"fs-20 fc-coral\"></ds-icon>\r\n </ds-button> -->\r\n @if (!isReadOnly) {\r\n <ds-button size=\"small\" icon (click)=\"showPreviousRequests()\">\r\n <ds-icon icon=\"clock\" class=\"fs-20 fc-coral\"></ds-icon>\r\n </ds-button>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <!-- <header class=\"mb-4 mt-4 d-flex align-items-center justify-content-between align-items-end gap-2\">\r\n <section>\r\n <h6 class=\"fs-14 fs-md-12 fw-normal fc-dark-gray mb-0\">\r\n {{ i18n.translate('Hello') }}\r\n {{ coreService.getShortName(form?.header?.requesterName) }}, {{ i18n.translate('welcomeBack') }}!\r\n </h6>\r\n <h1 class=\"fs-26 fs-md-20 fw-bold fc-black d-flex align-items-center gap-2 mb-1\">\r\n {{ formTitle }}\r\n @if (serviceFaq.length) {\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n }\r\n </h1>\r\n </section>\r\n </header>-->\r\n} @else {\r\n\r\n <div class=\"w-100\">\r\n <section class=\"request-main-info {{statusClass(form?.header?.status?.['key'])}}\">\r\n <section class=\"request-info\">\r\n <div class=\"request-info--body\">\r\n <div class=\"d-flex align-items-center gap-2 flex-grow-1\">\r\n <img\r\n alt=\"\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMjkiIHZpZXdCb3g9IjAgMCAzMCAyOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI1LjEgMEg0LjlDMi4yIDAgMCAyLjIgMCA0LjlWMjguNkgyNS4xQzI3LjggMjguNiAzMCAyNi40IDMwIDIzLjdWNC45QzMwIDIuMiAyNy44IDAgMjUuMSAwWk0yIDQuOUMyIDMuMyAzLjMgMiA0LjkgMkgyNS4xQzI2LjcgMiAyOCAzLjMgMjggNC45VjIzLjdDMjggMjUuMyAyNi43IDI2LjYgMjUuMSAyNi42SDJWNC45Wk0xMS41IDYuM0M3LjEgNi4zIDMuNSA5LjkgMy41IDE0LjNDMy41IDE4LjcgNy4xIDIyLjMgMTEuNSAyMi4zQzE1LjkgMjIuMyAxOS41IDE4LjcgMTkuNSAxNC4zQzE5LjUgOS45IDE1LjkgNi4zIDExLjUgNi4zWk0xNS4xIDE5QzE0LjEgMTkuOCAxMi44IDIwLjIgMTEuNSAyMC4yQzEwLjIgMjAuMiA4LjkgMTkuOCA3LjkgMTlDOC43IDE3LjcgMTAgMTcgMTEuNSAxN0MxMyAxNyAxNC40IDE3LjggMTUuMSAxOVpNMTMuMSAxMy40QzEzLjEgMTQuMyAxMi40IDE1IDExLjUgMTVDMTAuNiAxNSA5LjkgMTQuMyA5LjkgMTMuNEM5LjkgMTIuNSAxMC42IDExLjggMTEuNSAxMS44QzEyLjQgMTEuOCAxMy4xIDEyLjUgMTMuMSAxMy40Wk0xNS4xIDEzLjRDMTUuMSAxMS40IDEzLjUgOS44IDExLjUgOS44QzkuNSA5LjggNy45IDExLjQgNy45IDEzLjRDNy45IDE0LjIgOC4yIDE1IDguNyAxNS43QzcuOCAxNi4xIDcuMSAxNi44IDYuNSAxNy42QzUuOCAxNi42IDUuNSAxNS41IDUuNSAxNC4zQzUuNSAxMSA4LjIgOC4zIDExLjUgOC4zQzE0LjggOC4zIDE3LjUgMTEgMTcuNSAxNC4zQzE3LjUgMTUuNSAxNy4yIDE2LjYgMTYuNSAxNy42QzE1LjkgMTYuOCAxNS4yIDE2LjIgMTQuMyAxNS43QzE0LjggMTUuMSAxNS4xIDE0LjIgMTUuMSAxMy40Wk0yMSA5LjFDMjEgOC42IDIxLjQgOC4xIDIyIDguMUgyNS41QzI2IDguMSAyNi41IDguNSAyNi41IDkuMUMyNi41IDkuNiAyNi4xIDEwLjEgMjUuNSAxMC4xSDIyQzIxLjQgMTAuMSAyMSA5LjYgMjEgOS4xWk0yMSAxMi41QzIxIDEyIDIxLjQgMTEuNSAyMiAxMS41SDI1LjVDMjYgMTEuNSAyNi41IDExLjkgMjYuNSAxMi41QzI2LjUgMTMgMjYuMSAxMy41IDI1LjUgMTMuNUgyMkMyMS40IDEzLjUgMjEgMTMuMSAyMSAxMi41Wk0yMSAxNkMyMSAxNS41IDIxLjQgMTUgMjIgMTVIMjUuNUMyNiAxNSAyNi41IDE1LjQgMjYuNSAxNkMyNi41IDE2LjUgMjYuMSAxNyAyNS41IDE3SDIyQzIxLjQgMTcgMjEgMTYuNiAyMSAxNlpNMjUuNSAyMC41SDIyQzIxLjUgMjAuNSAyMSAyMC4xIDIxIDE5LjVDMjEgMTguOSAyMS40IDE4LjUgMjIgMTguNUgyNS41QzI2IDE4LjUgMjYuNSAxOC45IDI2LjUgMTkuNUMyNi41IDIwLjEgMjYuMSAyMC41IDI1LjUgMjAuNVoiIGZpbGw9IiNGRjM3NUUiLz4KPC9zdmc+Cg==\"/>\r\n <h4 class=\"fs-22 fs-md-16 fc-black fw-medium mb-0 flex-grow-1 line-height-1-2\">\r\n {{ formTitle }}\r\n </h4>\r\n </div>\r\n <div class=\"d-flex align-items-center gap-2 request-info--status-action\">\r\n <div class=\"d-inline-flex flex-column align-items-end\">\r\n @if (!isLoading) {\r\n <ds-status\r\n status=\"{{statusClass(form?.header?.status?.['key'])}}\" class=\"header-status\">{{ form?.header?.status?.['value'] }}\r\n </ds-status>\r\n }\r\n </div>\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <!-- <ds-button\r\n *ngIf=\"form?.inboxItem && (form?.inboxItem?.canRequestFeedback =='true'|| form?.inboxItem?.hasFeedback=='true')\"\r\n square icon size=\"small\">\r\n <ds-icon icon=\"chat-o\" class=\"fs-20 fs-md-17 fc-coral\">\r\n <!– [ngClass]=\"{'fc-green':feedBackIcon == 'feedbackResponded' , 'fc-red': feedBackIcon == 'respondToFeedback' , 'fc-yellow': feedBackIcon == 'waitingFeedback'}\"–>\r\n </ds-icon>\r\n </ds-button>-->\r\n <!-- history-->\r\n <ds-button\r\n *ngIf=\"form?.commentsDrop?.length > 0 && !isLoading\" square icon size=\"small\"\r\n (click)=\"onCommentsFormClick()\" class=\"has-comments\">\r\n <ds-icon icon=\"clock\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </ds-button>\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"request-info--footer\">\r\n @if (!isLoading) {\r\n <ds-avatar\r\n image=\"{{form?.header?.requesterPhoto}}\" size=\"xx-small\"\r\n class=\"d-inline-flex cursor-pointer\" (click)=\"showUserInfo()\"></ds-avatar>\r\n }\r\n <div\r\n class=\"d-flex align-items-center flex-wrap flex-grow-1 gap-1 gap-sm-2 line-height-1 request-info--header__details\">\r\n <span\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\"\r\n class=\"fs-12 fw-medium d-none d-sm-inline-block\">{{ coreService.getShortName(form?.header?.['requesterName']) }}</span>\r\n <span class=\"fs-20\">•</span>\r\n <span class=\"fs-12\" [ngClass]=\"{'loading-bg loading-width': isLoading}\"> {{ form?.header?.formId }}</span>\r\n <span class=\"fs-20\" *ngIf=\"creationDate\">•</span>\r\n <span class=\"fs-12\" [ngClass]=\"{'loading-bg loading-width': isLoading}\"> {{ creationDate }}</span>\r\n </div>\r\n </div>\r\n </section>\r\n </section>\r\n\r\n </div>\r\n\r\n\r\n <!--<ng-container>\r\n <div class=\"d-flex align-items-center justify-content-end gap-2 my-2\">\r\n <ds-button\r\n *ngIf=\"form?.inboxItem && !form.sections[form.sections.length -1].header.readOnly && !isLoading\"\r\n square\r\n icon\r\n size=\"small\"\r\n [matMenuTriggerFor]=\"menu\"\r\n class=\"icon-btn-shadow\">\r\n <ds-icon\r\n [ngClass]=\"{'fc-purple' : (flagPriority === '0' || flagPriority === null),'fc-yellow' : flagPriority === '1','fc-green' : flagPriority === '2','fc-coral' : flagPriority === '3'}\"\r\n icon=\"flag-o\" class=\"fs-20 fs-md-17 fc-purple\">\r\n </ds-icon>\r\n </ds-button>\r\n <mat-menu #menu=\"matMenu\" panelClass=\"action-menu\">\r\n <button mat-menu-item (click)=\"setFlagPriority('0')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-purple fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('1')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-yellow fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('2')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-green fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('3')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n </mat-menu>\r\n\r\n <ng-content></ng-content>\r\n </div>\r\n <header class=\"service-header bc-white p-3 p-sm-4 py-4 gap-3 {{statusClass(form?.header?.status?.['key'])}}\">\r\n\r\n <div class=\"service-header-icon\">\r\n <img\r\n alt=\"\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMjkiIHZpZXdCb3g9IjAgMCAzMCAyOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI1LjEgMEg0LjlDMi4yIDAgMCAyLjIgMCA0LjlWMjguNkgyNS4xQzI3LjggMjguNiAzMCAyNi40IDMwIDIzLjdWNC45QzMwIDIuMiAyNy44IDAgMjUuMSAwWk0yIDQuOUMyIDMuMyAzLjMgMiA0LjkgMkgyNS4xQzI2LjcgMiAyOCAzLjMgMjggNC45VjIzLjdDMjggMjUuMyAyNi43IDI2LjYgMjUuMSAyNi42SDJWNC45Wk0xMS41IDYuM0M3LjEgNi4zIDMuNSA5LjkgMy41IDE0LjNDMy41IDE4LjcgNy4xIDIyLjMgMTEuNSAyMi4zQzE1LjkgMjIuMyAxOS41IDE4LjcgMTkuNSAxNC4zQzE5LjUgOS45IDE1LjkgNi4zIDExLjUgNi4zWk0xNS4xIDE5QzE0LjEgMTkuOCAxMi44IDIwLjIgMTEuNSAyMC4yQzEwLjIgMjAuMiA4LjkgMTkuOCA3LjkgMTlDOC43IDE3LjcgMTAgMTcgMTEuNSAxN0MxMyAxNyAxNC40IDE3LjggMTUuMSAxOVpNMTMuMSAxMy40QzEzLjEgMTQuMyAxMi40IDE1IDExLjUgMTVDMTAuNiAxNSA5LjkgMTQuMyA5LjkgMTMuNEM5LjkgMTIuNSAxMC42IDExLjggMTEuNSAxMS44QzEyLjQgMTEuOCAxMy4xIDEyLjUgMTMuMSAxMy40Wk0xNS4xIDEzLjRDMTUuMSAxMS40IDEzLjUgOS44IDExLjUgOS44QzkuNSA5LjggNy45IDExLjQgNy45IDEzLjRDNy45IDE0LjIgOC4yIDE1IDguNyAxNS43QzcuOCAxNi4xIDcuMSAxNi44IDYuNSAxNy42QzUuOCAxNi42IDUuNSAxNS41IDUuNSAxNC4zQzUuNSAxMSA4LjIgOC4zIDExLjUgOC4zQzE0LjggOC4zIDE3LjUgMTEgMTcuNSAxNC4zQzE3LjUgMTUuNSAxNy4yIDE2LjYgMTYuNSAxNy42QzE1LjkgMTYuOCAxNS4yIDE2LjIgMTQuMyAxNS43QzE0LjggMTUuMSAxNS4xIDE0LjIgMTUuMSAxMy40Wk0yMSA5LjFDMjEgOC42IDIxLjQgOC4xIDIyIDguMUgyNS41QzI2IDguMSAyNi41IDguNSAyNi41IDkuMUMyNi41IDkuNiAyNi4xIDEwLjEgMjUuNSAxMC4xSDIyQzIxLjQgMTAuMSAyMSA5LjYgMjEgOS4xWk0yMSAxMi41QzIxIDEyIDIxLjQgMTEuNSAyMiAxMS41SDI1LjVDMjYgMTEuNSAyNi41IDExLjkgMjYuNSAxMi41QzI2LjUgMTMgMjYuMSAxMy41IDI1LjUgMTMuNUgyMkMyMS40IDEzLjUgMjEgMTMuMSAyMSAxMi41Wk0yMSAxNkMyMSAxNS41IDIxLjQgMTUgMjIgMTVIMjUuNUMyNiAxNSAyNi41IDE1LjQgMjYuNSAxNkMyNi41IDE2LjUgMjYuMSAxNyAyNS41IDE3SDIyQzIxLjQgMTcgMjEgMTYuNiAyMSAxNlpNMjUuNSAyMC41SDIyQzIxLjUgMjAuNSAyMSAyMC4xIDIxIDE5LjVDMjEgMTguOSAyMS40IDE4LjUgMjIgMTguNUgyNS41QzI2IDE4LjUgMjYuNSAxOC45IDI2LjUgMTkuNUMyNi41IDIwLjEgMjYuMSAyMC41IDI1LjUgMjAuNVoiIGZpbGw9IiNGRjM3NUUiLz4KPC9zdmc+Cg==\"/>\r\n </div>\r\n\r\n <div class=\"flex-grow-1 d-flex flex-column flex-sm-row align-items-sm-center gap-2\">\r\n <div class=\"flex-grow-1\">\r\n <h1 class=\"fs-20 fs-md-16 fw-bold fc-black header-title m-0\">{{ formTitle }}\r\n @if (serviceFaq.length) {\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n }\r\n </h1>\r\n <div class=\"header-user d-flex align-items-sm-center gap-2 mt-sm-1\">\r\n @if (!isLoading) {\r\n <ds-avatar\r\n image=\"{{form?.header?.requesterPhoto}}\" size=\"xx-small\"\r\n class=\"d-inline-flex cursor-pointer\" (click)=\"showUserInfo()\"></ds-avatar>\r\n }\r\n <span\r\n class=\"fs-12 text-truncate d-sm-block cursor-pointer\" (click)=\"showUserInfo()\"\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ coreService.getShortName(form?.header?.requesterName) }}</span>\r\n <mat-divider class=\"divider circle mx-2 d-none d-sm-block\"></mat-divider>\r\n <span class=\"fs-12\" [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ form?.header?.formId }}</span>\r\n @if (creationDate) {\r\n <mat-divider class=\"divider circle mx-2 d-none d-sm-block\"></mat-divider>\r\n <span class=\"fs-14\" [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ creationDate }}</span>\r\n }\r\n </div>\r\n\r\n </div>\r\n <div class=\"header-actions d-flex flex-row flex-sm-column justify-content-between justify-content-sm-center gap-2 mt-2 mt-sm-0\">\r\n @if (!isLoading) {\r\n <ds-status\r\n status=\"{{statusClass(form?.header?.status?.['key'])}}\" class=\"header-status\">{{ form?.header?.status?.['value'] }}\r\n </ds-status>\r\n }\r\n <div class=\"d-flex align-items-center justify-content-end gap-2\">\r\n <!– feedback–>\r\n <!– *ngIf=\"form?.inboxItem && (form?.inboxItem?.canRequestFeedback ==='true'|| form?.inboxItem?.hasFeedback==='true') && !isLoading\"–>\r\n <!– <ds-button\r\n square icon size=\"small\" (click)=\"feedback()\">\r\n <ds-icon\r\n icon=\"chat-o\" class=\"fs-20 fs-md-17 fc-coral\"\r\n [ngClass]=\"{'fc-green':feedBackIcon === 'feedbackResponded' , 'fc-red': feedBackIcon === 'respondToFeedback' , 'fc-yellow': feedBackIcon === 'waitingFeedback'}\">\r\n </ds-icon>\r\n </ds-button>–>\r\n <ds-button\r\n *ngIf=\"form?.commentsDrop?.length > 0 && !isLoading\" square icon size=\"small\"\r\n (click)=\"onCommentsFormClick()\" class=\"has-comments\">\r\n <ds-icon icon=\"clock\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </ds-button>\r\n @if (showApprovalHistory) {\r\n <ng-container>\r\n <ds-button\r\n color=\"white\" shape=\"text\" square size=\"small\" [satPopoverAnchor]=\"workflow\"\r\n #workflowAnchor=\"satPopoverAnchor\" (click)=\"workflowAnchor.popover.open()\">\r\n <slot name=\"prefix\">\r\n <ds-icon icon=\"workflow\" class=\"fs-24\"></ds-icon>\r\n </slot>\r\n </ds-button>\r\n <sat-popover\r\n #workflow [anchor]=\"workflowAnchor\" [hasBackdrop]=\"true\" verticalAlign=\"below\"\r\n horizontalAlign=\"end\">\r\n <div class=\"default-popover p-3\" style=\"min-width: 330px;\">\r\n <ds-approvals *ngIf=\"approvalHistory\" class=\"popover-approvals\" approvalsData=\"{{approvals}}\">\r\n </ds-approvals>\r\n </div>\r\n </sat-popover>\r\n </ng-container>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </header>\r\n </ng-container>-->\r\n}\r\n", styles: [".loading-width{min-width:100px;width:40px;flex-grow:1}.request-main-info{--item-bg: var(--light-gray);--item-fc: var(--black);--status-container-bc: #e8ebec;--status-container-brc: var(--dark-gray)}.request-main-info.warning{--item-bg: var(--yellow);--status-container-bc: #fff8d9;--status-container-brc: var(--yellow)}.request-main-info.pending{--item-bg: #eff0f1;--status-container-bc: #e8ebec;--status-container-brc: #c8ced1}.request-main-info.expired{--item-bg: var(--dark-gray);--status-container-bc: #e8ebec;--status-container-brc: var(--dark-gray)}.request-main-info.success{--item-bg: var(--green);--status-container-bc: #e6f9f4;--status-container-brc: var(--green)}.request-main-info.info{--item-bg: var(--sea-light);--status-container-bc: #fff8d9;--status-container-brc: var(--sea-light)}.request-main-info.danger{--item-bg: var(--red);--status-container-bc: #fae9ec;--status-container-brc: var(--red)}.request-main-info.orange,.request-main-info.send_back{--item-bg: var(--orange);--status-container-bc: #fff0eb;--status-container-brc: var(--orange)}.request-info{border-radius:0;box-shadow:var(--box-shadow);background-color:var(--white);border-top:5px solid var(--item-bg)}.request-info--footer{padding:.3rem 2rem;min-height:45px;display:flex;align-items:center;gap:.75rem;border-top:1px solid var(--light-gray)}@media (max-width: 578px){.request-info--footer{padding:.3rem 1rem}}.request-info--footer__details{color:var(--item-fc)}.request-info--body{padding:2rem;display:flex;align-items:center;gap:.75rem;background-color:#fff}@media (max-width: 578px){.request-info--body{padding:1rem;flex-direction:column;align-items:stretch}}.request-info--body figure{min-width:30px;width:30px;text-align:center}.request-info--body figure svg{width:100%}@media (max-width: 578px){.request-info--status-action{justify-content:space-between}}.request-info--history{margin-top:-.5rem}.request-info--comment{background-color:#fff0eb;color:var(--orange);border-radius:0 0 4px 4px}.status-container{min-height:40px;padding:.5rem 1rem;display:flex;flex-direction:column;justify-content:center;gap:.5rem;margin-bottom:1.5rem}.status-container.danger{--item-bg: var(--red);--status-container-bc: #fae9ec;--status-container-brc: var(--red)}.status-container ::ng-deep ds-avatar .avatar{--default-size: 18px}.circle-status::part(base){--status-radius: 50%;--status-size: 19px;--status-fs: 100%}ds-button[square]::part(base){--btn-padding: 0;--default-size-sm: 30px}.send-back-container{background-color:#fff0eb;color:var(--orange);padding:.5rem;border-radius:4px}object,iframe,embed{height:79vh}::ng-deep .history-popup{--popup-width: 100vw;--popup-max-width: 100vw;--popup-radius: 15px 15px 0 0;position:absolute!important;bottom:0}:host ::ng-deep .mat-expansion-panel-content{background:#fff!important}:host .main-sidenav.main-sidenav-full .sidenav-title{border-bottom:transparent!important}:host .main-sidenav .sidenav-title{background-color:transparent!important}:host .main-sidenav{height:60px;min-height:10px!important}:host .mat-expansion-panel-content{background:#fff!important}:host .approval-panel-container{display:grid;grid-template-columns:40% calc(60% - 45px) 20px;grid-template-areas:\"title details toggle\";gap:.75rem;place-content:space-between;align-items:center;flex-grow:1;width:100%}@media (max-width: 991px){:host .approval-panel-container{grid-template-columns:calc(100% - 45px) 20px;grid-template-areas:\"title toggle\" \"details details\"}}:host .approval-panel-container .approval-panel-title{grid-area:title}:host .approval-panel-container .panel-user-name{max-width:120px}@media (max-width: 768px){:host .approval-panel-container .panel-user-name.panel-ueser-only{max-width:140px}:host .approval-panel-container .panel-user-name:not(.panel-ueser-only){max-width:90px}}:host .approval-panel-container .approval-panel-details{display:flex;align-items:center;justify-content:space-between;grid-area:details}:host .approval-panel-container .approval-panel-toggle{grid-area:toggle;display:flex;align-items:center;justify-content:center;width:20px}:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 25px}@media (min-width: 768px){:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 31px;--avatar-border: 3px solid var(--light-gray)}}@media (min-width: 768px){:host ::ng-deep .user-avatar-name{padding-inline-end:1rem!important}}:host .circle-status::part(base){--status-radius: 50%;--status-size: 18px;--status-fs: 80% }:host .panel-title{min-width:40%;width:40%}@media (max-width: 576px){:host .panel-title{min-width:100%!important;width:100%!important}}:host .panel-user-status{min-width:60%;width:60%;display:flex;align-items:center;justify-content:space-between}@media (max-width: 576px){:host .panel-user-status{min-width:100%!important;width:100%!important}:host .panel-user-status .user-delegate{min-width:auto}:host .panel-user-status .main-status::part(base){--status-width: 50px}}\n"] }]
|
|
248
248
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.CoreService }, { type: i1.CoreI18nService }, { type: i1.FeedBackService }, { type: i2.MatDialog }, { type: i1.SidenavService }, { type: i3.ToastrService }], propDecorators: { form: [{
|
|
249
249
|
type: Input
|
|
250
250
|
}], showHistory: [{
|
|
251
251
|
type: Input
|
|
252
252
|
}], isLoading: [{
|
|
253
253
|
type: Input
|
|
254
|
+
}], isReadOnly: [{
|
|
255
|
+
type: Input
|
|
254
256
|
}], showApprovalHistory: [{
|
|
255
257
|
type: Input
|
|
256
258
|
}], approvalHistory: [{
|
|
@@ -264,4 +266,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
264
266
|
}], serviceFaq: [{
|
|
265
267
|
type: Input
|
|
266
268
|
}] } });
|
|
267
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQtc2VjdGlvbnMvc2VydmljZS1oZWFkZXIvc2VydmljZS1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQtc2VjdGlvbnMvc2VydmljZS1oZWFkZXIvc2VydmljZS1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQyxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpHLE9BQU8sS0FBSyxTQUFTLE1BQU0sOEJBQThCLENBQUM7QUFDMUQsT0FBTyxFQUFDLGVBQWUsRUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BFLE9BQU8sRUFBK0IsZUFBZSxFQUFpQixNQUFNLG1CQUFtQixDQUFDO0FBQ2hHLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ3JGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ3hGLE9BQU8sRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzVFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxt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QUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtGb3JtLCBTZWN0aW9ufSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0ICogYXMgQ29uc3RhbnRzIGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9jb25zdGFudHMnO1xyXG5pbXBvcnQge01BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQge0NvcmVJMThuU2VydmljZSwgQ29yZVNlcnZpY2UsIEZlZWRCYWNrU2VydmljZSwgU2lkZW5hdlNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHtQcm9maWxlU2VjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi4vcHJvZmlsZS1zZWN0aW9uL3Byb2ZpbGUtc2VjdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQge0ZlZWRiYWNrU2VjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi4vZmVlZGJhY2stc2VjdGlvbi9mZWVkYmFjay1zZWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7TmdDbGFzcywgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtTYXRQb3BvdmVyTW9kdWxlfSBmcm9tICdAbmNzdGF0ZS9zYXQtcG9wb3Zlcic7XHJcbmltcG9ydCB7TWF0RGl2aWRlcn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XHJcbmltcG9ydCB7TWF0TWVudSwgTWF0TWVudUl0ZW0sIE1hdE1lbnVUcmlnZ2VyfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHtGYXFTaWRlbmF2Q29tcG9uZW50fSBmcm9tICcuLi9mYXEtc2lkZW5hdi9mYXEtc2lkZW5hdi5jb21wb25lbnQnO1xyXG5pbXBvcnQge0FjdGl2aXRpZXNDb21wb25lbnR9IGZyb20gJy4uL2FjdGl2aXRpZXMvYWN0aXZpdGllcy5jb21wb25lbnQnO1xyXG5pbXBvcnQge2Zvcm1hdH0gZnJvbSAnZGF0ZS1mbnMnO1xyXG5pbXBvcnQge1RvYXN0clNlcnZpY2V9IGZyb20gXCJuZ3gtdG9hc3RyXCI7XHJcbmltcG9ydCB7UHJldmlvdXNSZXF1ZXN0c0NvbXBvbmVudH0gZnJvbSBcIi4uL3ByZXZpb3VzLXJlcXVlc3RzL3ByZXZpb3VzLXJlcXVlc3RzLmNvbXBvbmVudFwiO1xyXG5cclxuY29uc3QgU3RhdHVzTWFwID0ge1xyXG4gIFtDb25zdGFudHMuRk9STV9TVEFUVVNfUkVKRUNURURdOiB7Y2xhc3M6ICdkYW5nZXInLCBpY29uOiAnY2xvc2UnfSxcclxuICBbQ29uc3RhbnRzLkZPUk1fU1RBVFVTX0NBTkNFTExFRF06IHtjbGFzczogJ2RhbmdlcicsIGljb246ICdjbG9zZSd9LFxyXG4gIFtDb25zdGFudHMuRk9STV9TVEFUVVNfUkVKRUNUXToge2NsYXNzOiAnZGFuZ2VyJywgaWNvbjogJ2Nsb3NlJ30sXHJcbiAgW0NvbnN0YW50cy5TRUNUSU9OX1NUQVRVU19VTlNBVElTRklFRF06IHtjbGFzczogJ2RhbmdlcicsIGljb246ICdjbG9zZSd9LFxyXG4gIFtDb25zdGFudHMuRk9STV9TVEFUVVNfQ0FOQ0VMXToge2NsYXNzOiAnZGFuZ2VyJywgaWNvbjogJ2Nsb3NlJ30sXHJcbiAgW0NvbnN0YW50cy5GT1JNX1NUQVRVU19QRU5ESU5HXToge2NsYXNzOiAnd2FybmluZycsIGljb246ICdjbG9jayd9LFxyXG4gICdkZWZhdWx0Jzoge2NsYXNzOiAnc3VjY2VzcycsIGljb246ICdjaGVjayd9XHJcbn1cclxuXHJcbmludGVyZmFjZSBBcHByb3ZhbEhpc3RvcnlJdGVtIHtcclxuICBhcHByb3Zlcjoge1xyXG4gICAgcGVyc29uTmFtZTogc3RyaW5nO1xyXG4gICAgcGVyc29uRW1haWw6IHN0cmluZztcclxuICB9O1xyXG4gIHBvc2l0aW9uVHlwZTogc3RyaW5nO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtc2VydmljZS1oZWFkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZXJ2aWNlLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2VydmljZS1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE5nSWYsXHJcbiAgICBTYXRQb3BvdmVyTW9kdWxlLFxyXG4gICAgTWF0RGl2aWRlcixcclxuICAgIE1hdE1lbnVUcmlnZ2VyLFxyXG4gICAgTmdDbGFzcyxcclxuICAgIE1hdE1lbnUsXHJcbiAgICBNYXRNZW51SXRlbVxyXG4gIF0sXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxyXG4gIHByb3ZpZGVyczogW0ZlZWRCYWNrU2VydmljZSxcclxuICAgIHtwcm92aWRlOiBNQVRfRElBTE9HX0RBVEEsIHVzZVZhbHVlOiB7fX0sXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VydmljZUhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIGZvcm06IEZvcm07XHJcbiAgQElucHV0KCkgc2hvd0hpc3RvcnkgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc0xvYWRpbmcgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93QXBwcm92YWxIaXN0b3J5ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgYXBwcm92YWxIaXN0b3J5OiBhbnk7XHJcbiAgQElucHV0KCkgY3JlYXRpb25EYXRlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZm9ybVRpdGxlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2VjdGlvbjogU2VjdGlvbjtcclxuICBASW5wdXQoKSBzZXJ2aWNlRmFxOiBhbnlbXSA9IFtdO1xyXG4gIGFwcHJvdmFsczogYW55W10gPSBbXTtcclxuICBwdWJsaWMgZmVlZEJhY2tJY29uOiBzdHJpbmcgPSBudWxsO1xyXG4gIGZsYWdQcmlvcml0eTogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIGNvcmVTZXJ2aWNlOiBDb3JlU2VydmljZSxcclxuICAgIHB1YmxpYyBpMThuOiBDb3JlSTE4blNlcnZpY2UsIHByaXZhdGUgcmVhZG9ubHkgZmVlZEJhY2tTZXJ2aWNlOiBGZWVkQmFja1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZzogTWF0RGlhbG9nLCBwcml2YXRlIHJlYWRvbmx5IHNpZGVuYXZTZXJ2aWNlOiBTaWRlbmF2U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9hc3RlclNlcnZpY2U6IFRvYXN0clNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4ZWN1dGVzIGFmdGVyIHRoZSB2aWV3IGhhcyBiZWVuIGZ1bGx5IGluaXRpYWxpemVkLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7dm9pZH1cclxuICAgKi9cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmdldEFwcHJvdmFsSGlzdG9yeSh0aGlzLmFwcHJvdmFsSGlzdG9yeSk7XHJcbiAgICBpZiAodGhpcy5mb3JtPy5oZWFkZXI/LmNyZWF0aW9uRGF0ZSkge1xyXG4gICAgICB0aGlzLmNyZWF0aW9uRGF0ZSA9IGZvcm1hdChuZXcgRGF0ZSh0aGlzLmZvcm0/LmhlYWRlcj8uY3JlYXRpb25EYXRlKSwgXCJkZC9NTS95eXl5IGhoOm1tOnNzXCIpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHRoZSBjbGljayBldmVudCBvbiB0aGUgY29tbWVudHMgZm9ybS5cclxuICAgKiBSZXRyaWV2ZXMgY29tbWVudHMgZnJvbSB0aGUgZm9ybSwgdHJhbnNmb3JtcyB0aGVtLCBhbmQgdXBkYXRlcyBhY3Rpdml0aWVzIGluIHRoZSBjb3JlIHNlcnZpY2UuXHJcbiAgICogRmluYWxseSwgcHVibGlzaGVzIGFuICdvcGVuJyBldmVudCB0byB0aGUgc2lkZW5hdiBzZXJ2aWNlIHRvIG9wZW4gdGhlIEFjdGl2aXRpZXNDb21wb25lbnQuXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHt2b2lkfVxyXG4gICAqL1xyXG4gIG9uQ29tbWVudHNGb3JtQ2xpY2soKSB7XHJcbiAgICBjb25zdCBmb3JtQ29tbWVudHM6IGFueSA9IHRoaXMuZm9ybS5jb21tZW50c0Ryb3A7XHJcbiAgICBjb25zdCB0cmFuc2Zvcm1lZENvbW1lbnRzID0gW107XHJcbiAgICBmb3IgKGNvbnN0IGNvbW1lbnQgb2YgZm9ybUNvbW1lbnRzKSB7XHJcbiAgICAgIHRyYW5zZm9ybWVkQ29tbWVudHMucHVzaCh0aGlzLnRyYW5zZm9ybUNvbW1lbnRJdGVtKGNvbW1lbnQpKTtcclxuICAgIH1cclxuICAgIHRoaXMuY29yZVNlcnZpY2UuYWN0aXZpdGllcyA9IHRyYW5zZm9ybWVkQ29tbWVudHM7XHJcbiAgICB0aGlzLnNpZGVuYXZTZXJ2aWNlLnB1Ymxpc2goJ29wZW4nLCBBY3Rpdml0aWVzQ29tcG9uZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRyYW5zZm9ybXMgYSBjb21tZW50IGl0ZW0gaW50byBhIGRpZmZlcmVudCBmb3JtYXQgZm9yIGRpc3BsYXkuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge09iamVjdH0gaXRlbSAtIFRoZSBvcmlnaW5hbCBjb21tZW50IGl0ZW0gdG8gdHJhbnNmb3JtLlxyXG4gICAqIEByZXR1cm4ge09iamVjdH0gLSBUaGUgdHJhbnNmb3JtZWQgY29tbWVudCBpdGVtIHdpdGggc3BlY2lmaWMgcHJvcGVydGllcyBpbmNsdWRpbmcgbmFtZSwgdGl0bGUsIGltYWdlLCBkYXRlLCB0aW1lLCBjb21tZW50LCBhbmQgYXR0YWNobWVudHMuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB0cmFuc2Zvcm1Db21tZW50SXRlbShpdGVtKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuYW1lOiBpdGVtWydlbXBsb3llZU5hbWUnXSxcclxuICAgICAgdGl0bGU6IGl0ZW0uam9iUG9zaXRpb24sXHJcbiAgICAgIGltYWdlOiBpdGVtWydwcm9maWxlUGljdHVyZSddLFxyXG4gICAgICBkYXRlOiBmb3JtYXQobmV3IERhdGUoaXRlbVsnY29tbWVudERhdGUnXSksICd5eXl5LU1NLWRkJyksXHJcbiAgICAgIHRpbWU6IGZvcm1hdChuZXcgRGF0ZShpdGVtWydjb21tZW50RGF0ZSddKSwgJ2g6bW0gYScpLFxyXG4gICAgICBjb21tZW50OiBpdGVtWydjb21tZW50Qm9keSddLFxyXG4gICAgICBhdHRhY2htZW50czogaXRlbVsnYXR0YWNobWVudCddXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3BlbnMgYSBkaWFsb2cgZm9yIHByb3ZpZGluZyBmZWVkYmFjay5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICovXHJcbiAgZmVlZGJhY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZy5vcGVuKEZlZWRiYWNrU2VjdGlvbkNvbXBvbmVudCwge1xyXG4gICAgICBwYW5lbENsYXNzOiBbJ21haW4tcG9wdXAnXSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIHByb2ZpbGU6IHRoaXMuZm9ybS5wcm9maWxlSW5mb0Ryb3AsXHJcbiAgICAgICAgaW5ib3hJdGVtOiB0aGlzLmZvcm0uaW5ib3hJdGVtLFxyXG4gICAgICAgIGZvcm06IHRoaXMuZm9ybVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIHNpZGVuYXYgd2l0aCB1c2VyIHByb2ZpbGUgaW5mb3JtYXRpb24gaWYgbm90IGFscmVhZHkgbG9hZGluZy5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICovXHJcbiAgc2hvd1VzZXJJbmZvKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmlzTG9hZGluZykge1xyXG4gICAgICB0aGlzLnNpZGVuYXZTZXJ2aWNlLmRhdGEgPSB0aGlzLmZvcm0/LnByb2ZpbGVJbmZvRHJvcDtcclxuICAgICAgdGhpcy5zaWRlbmF2U2VydmljZS5wdWJsaXNoKCdvcGVuJywgUHJvZmlsZVNlY3Rpb25Db21wb25lbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IHRoZSBwcmlvcml0eSBmbGFnIGZvciB0aGUgaW5ib3ggaXRlbSB3aXRoIHRoZSBwcm92aWRlZCBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBpZCAtIFRoZSBJRCBvZiB0aGUgcHJpb3JpdHkgZmxhZyB0byBiZSBzZXQgZm9yIHRoZSBpbmJveCBpdGVtLlxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICovXHJcbiAgc2V0RmxhZ1ByaW9yaXR5KGlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZmxhZ1ByaW9yaXR5ID0gaWQ7XHJcbiAgICB0aGlzLmZvcm0uaW5ib3hJdGVtLmZsYWdQcmlvcml0eSA9IGlkO1xyXG4gICAgdGhpcy5zdWJzY3JpYmVUb1NldEZsYWdQcmlvcml0eShpZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdWJzY3JpYmUgdG8gc2V0IGZsYWcgcHJpb3JpdHkgZm9yIGEgc3BlY2lmaWMgaWRlbnRpZmllci5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBpZCAtIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBmbGFnIHRvIHNldCBwcmlvcml0eSBmb3IuXHJcbiAgICogQHJldHVybiB7dm9pZH1cclxuICAgKi9cclxuICBzdWJzY3JpYmVUb1NldEZsYWdQcmlvcml0eShpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvcmVTZXJ2aWNlLnNldEZsYWdQcmlvcml0eShpZCkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXNwb25zZSkge1xyXG4gICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2Uuc3VjY2Vzcyh0aGlzLmkxOG4udHJhbnNsYXRlKCdmbGFnU3RhdHVzVXBkYXRlZCcpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBDU1MgY2xhc3MgYXNzb2NpYXRlZCB3aXRoIHRoZSBpbnB1dCBzdGF0dXMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RhdHVzIC0gVGhlIHN0YXR1cyBmb3Igd2hpY2ggdGhlIENTUyBjbGFzcyBpcyBuZWVkZWQuXHJcbiAgICogQHJldHVybiB7c3RyaW5nfSAtIFRoZSBDU1MgY2xhc3MgY29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4gc3RhdHVzLlxyXG4gICAqL1xyXG4gIHN0YXR1c0NsYXNzKHN0YXR1czogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIC8vIHN0YXR1cyA9IHN0YXR1cyA/IHN0YXR1cy50b0xvd2VyQ2FzZSgpIDogJyc7XHJcbiAgICBsZXQgc3RhdHVzU3RyYXRlZ3kgPSBTdGF0dXNNYXBbc3RhdHVzXSB8fCBTdGF0dXNNYXBbJ2RlZmF1bHQnXTtcclxuICAgIHJldHVybiBzdGF0dXNTdHJhdGVneS5jbGFzcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wZW5zIHRoZSBGQVEgc2lkZSBuYXZpZ2F0aW9uLlxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICovXHJcbiAgb3BlbkZhcSgpIHtcclxuICAgIHRoaXMuc2lkZW5hdlNlcnZpY2UucHVibGlzaCgnb3BlbicsIEZhcVNpZGVuYXZDb21wb25lbnQsICdlbmQnLCAnb3ZlcicsIHRoaXMuc2VydmljZUZhcSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYXBwcm92YWwgaGlzdG9yeSBpbmZvcm1hdGlvbiBmb3IgZWFjaCBhcHByb3ZhbCBpdGVtIGluIHRoZSBwcm92aWRlZCBhcnJheS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7QXBwcm92YWxIaXN0b3J5SXRlbVtdfSBhcHByb3ZhbEhpc3RvcnkgLSBUaGUgYXJyYXkgY29udGFpbmluZyBhcHByb3ZhbCBoaXN0b3J5IGl0ZW1zLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7dm9pZH0gLSBUaGlzIG1ldGhvZCBkb2VzIG5vdCByZXR1cm4gYW55IHZhbHVlLiBJdCB1cGRhdGVzIHRoZSBpbnRlcm5hbCAnYXBwcm92YWxzJyBhcnJheS5cclxuICAgKi9cclxuICBnZXRBcHByb3ZhbEhpc3RvcnkoYXBwcm92YWxIaXN0b3J5OiBBcHByb3ZhbEhpc3RvcnlJdGVtW10pIHtcclxuICAgIGFwcHJvdmFsSGlzdG9yeT8uZm9yRWFjaCgoYXBwcm92YWxJdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICBsZXQgYXBwcm92YWxTdGF0dXMgPSB0aGlzLmdldEFwcHJvdmFsU3RhdHVzKGluZGV4KTtcclxuICAgICAgbGV0IGFwcHJvdmFsU3RhdHVzTGFiZWwgPSB0aGlzLmdldEFwcHJvdmFsU3RhdHVzTGFiZWwoaW5kZXgpO1xyXG4gICAgICBjb25zdCBvYmogPSB7XHJcbiAgICAgICAgaWQ6IGluZGV4ICsgMSxcclxuICAgICAgICBuYW1lOiBhcHByb3ZhbEl0ZW0uYXBwcm92ZXIucGVyc29uTmFtZSxcclxuICAgICAgICB0aXRsZTogYXBwcm92YWxJdGVtLnBvc2l0aW9uVHlwZSxcclxuICAgICAgICBpbWFnZTogdGhpcy5nZXRJbWFnZVVybChhcHByb3ZhbEl0ZW0uYXBwcm92ZXIucGVyc29uRW1haWwpLFxyXG4gICAgICAgIHN0YXR1czogYXBwcm92YWxTdGF0dXMsXHJcbiAgICAgICAgc3RhdHVzTGFiZWw6IGFwcHJvdmFsU3RhdHVzTGFiZWwsXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuYXBwcm92YWxzLnB1c2gob2JqKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBhcHByb3ZhbCBzdGF0dXMgZm9yIGEgc3BlY2lmaWMgc2VjdGlvbiBpbiB0aGUgZm9ybS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleCAtIFRoZSBpbmRleCBvZiB0aGUgc2VjdGlvbiBmb3Igd2hpY2ggdGhlIGFwcHJvdmFsIHN0YXR1cyBpcyByZXF1aXJlZC5cclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBhcHByb3ZhbCBzdGF0dXMgb2YgdGhlIHNwZWNpZmllZCBzZWN0aW9uLiBSZXR1cm5zIGFuIGVtcHR5IHN0cmluZyBpZiB0aGUgc2VjdGlvbiBkb2VzIG5vdCBleGlzdC5cclxuICAgKi9cclxuICBwcml2YXRlIGdldEFwcHJvdmFsU3RhdHVzKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgbGV0IHN0YXR1cyA9ICcnO1xyXG4gICAgaWYgKHRoaXMuZm9ybS5zZWN0aW9uc1tpbmRleCArIDFdKSB7XHJcbiAgICAgIHN0YXR1cyA9IHRoaXMuc3RhdHVzQ2xhc3ModGhpcy5mb3JtLnNlY3Rpb25zW2luZGV4ICsgMV0uYm9keS5kZXRhaWxzLmRlY2lzaW9uLmtleSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3RhdHVzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBhcHByb3ZhbCBzdGF0dXMgbGFiZWwgZnJvbSB0aGUgZm9ybSBzZWN0aW9uIGJhc2VkIG9uIHRoZSBnaXZlbiBpbmRleC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleCAtIFRoZSBpbmRleCBvZiB0aGUgZm9ybSBzZWN0aW9uIGZvciB3aGljaCB0aGUgYXBwcm92YWwgc3RhdHVzIGxhYmVsIHdpbGwgYmUgcmV0cmlldmVkLlxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGFwcHJvdmFsIHN0YXR1cyBsYWJlbCByZXRyaWV2ZWQgZnJvbSB0aGUgc3BlY2lmaWVkIGZvcm0gc2VjdGlvbi5cclxuICAgKi9cclxuICBwcml2YXRlIGdldEFwcHJvdmFsU3RhdHVzTGFiZWwoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBsZXQgc3RhdHVzTGFiZWwgPSAnJztcclxuICAgIGlmICh0aGlzLmZvcm0uc2VjdGlvbnNbaW5kZXggKyAxXSkge1xyXG4gICAgICBzdGF0dXNMYWJlbCA9IHRoaXMuZm9ybS5zZWN0aW9uc1tpbmRleCArIDFdLmJvZHkuZGV0YWlscy5kZWNpc2lvbi52YWx1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBzdGF0dXNMYWJlbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgVVJMIG9mIHRoZSB1c2VyJ3MgcG9ydHJhaXQgaW1hZ2UgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGVtYWlsLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGVtYWlsIC0gVGhlIGVtYWlsIGFkZHJlc3Mgb2YgdGhlIHVzZXIgZm9yIHdob20gdGhlIHBvcnRyYWl0IFVSTCBpcyB0byBiZSByZXRyaWV2ZWQuXHJcbiAgICogQHJldHVybiB7c3RyaW5nfSAtIFRoZSBVUkwgdXNlZCB0byBmZXRjaCB0aGUgdXNlcidzIHBvcnRyYWl0IGltYWdlLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0SW1hZ2VVcmwoZW1haWw6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJy9ncm91cC9pLWdhdGUvd20tYnBtL2Zvcm1zLy0vcHJveHkvcG9ydHJhaXQ/ZW1haWw9JyArIGVtYWlsO1xyXG4gIH1cclxuXHJcbiAgc2hvd1ByZXZpb3VzUmVxdWVzdHMoKSB7XHJcbiAgICB0aGlzLnNpZGVuYXZTZXJ2aWNlLnB1Ymxpc2goJ29wZW4nLCBQcmV2aW91c1JlcXVlc3RzQ29tcG9uZW50KTtcclxuICB9XHJcbn1cclxuIiwiQGlmIChmb3JtPy5oZWFkZXI/LnN0YXR1cz8uWydrZXknXSA9PT0gJ05FVycpIHtcclxuICA8c2VjdGlvblxyXG4gICAgY2xhc3M9XCJtYWluLXNpZGVuYXYgbWFpbi1zaWRlbmF2LWZ1bGwgbWItNFwiXHJcblxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJzaWRlbmF2LXRpdGxlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zIHctMTAwXCI+XHJcbiAgICAgICAgPCEtLSA8ZHMtYnV0dG9uIGljb24gY2xhc3M9XCJyb3RhdGUtYXJyb3dcIiBzaXplPVwic21hbGxcIiAoY2xpY2spPVwiZ29CYWNrKClcIiAqbmdJZj1cIiFpc0luTW9iaWxlQXBwKCkgJiYgc2hvd0JhY2tcIj5cclxuICAgICAgICAgICA8ZHMtaWNvbiBpY29uPVwiYXJyb3ctcmlnaHRcIiBjbGFzcz1cImZzLTE5IGZjLWJsYWNrXCI+PC9kcy1pY29uPlxyXG4gICAgICAgICA8L2RzLWJ1dHRvbj4tLT5cclxuXHJcbiAgICAgICAgPCEtLSAgPGgzIGNsYXNzPVwiZmxleC1ncm93LTBcIj5cclxuICAgICAgICAgICAge3sgZm9ybVRpdGxlIH19XHJcbiAgICAgICAgICA8L2gzPi0tPlxyXG5cclxuICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgIDxoNiBjbGFzcz1cImZzLTE0IGZzLW1kLTEyIGZ3LW5vcm1hbCBmYy1kYXJrLWdyYXkgbWItMFwiPlxyXG4gICAgICAgICAgICB7eyBpMThuLnRyYW5zbGF0ZSgnSGVsbG8nKSB9fVxyXG4gICAgICAgICAgICB7eyBjb3JlU2VydmljZS5nZXRTaG9ydE5hbWUoZm9ybT8uaGVhZGVyPy5yZXF1ZXN0ZXJOYW1lKSB9fSwge3sgaTE4bi50cmFuc2xhdGUoJ3dlbGNvbWVCYWNrJykgfX0hXHJcbiAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgPGgxIGNsYXNzPVwiZnMtMjYgZnMtbWQtMjAgZnctYm9sZCBmYy1ibGFjayBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIG1iLTFcIj5cclxuICAgICAgICAgICAge3sgZm9ybVRpdGxlIH19XHJcbiAgICAgICAgICAgIEBpZiAoc2VydmljZUZhcS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICA8ZHMtaWNvbiBpY29uPVwiaW5mb1wiIGNsYXNzPVwiZnMtMjIgZmMtZGFyay1ncmF5IGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9wZW5GYXEoKVwiPlxyXG4gICAgICAgICAgICAgIDwvZHMtaWNvbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9oMT5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWVuZCBnYXAtMiBmbGV4LWdyb3ctMVwiPlxyXG4gICAgICAgICAgQGlmIChzZXJ2aWNlRmFxLmxlbmd0aCkge1xyXG4gICAgICAgICAgICA8ZHMtYnV0dG9uIHNpemU9XCJzbWFsbFwiIGljb24+XHJcbiAgICAgICAgICAgICAgPGRzLWljb24gaWNvbj1cImluZm9cIiBjbGFzcz1cImZzLTIyIGZjLWRhcmstZ3JheSBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvcGVuRmFxKClcIj5cclxuICAgICAgICAgICAgICA8L2RzLWljb24+XHJcbiAgICAgICAgICAgIDwvZHMtYnV0dG9uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgPCEtLSA8ZHMtYnV0dG9uIHNpemU9XCJzbWFsbFwiIGljb24gKGNsaWNrKT1cIm9wZW5Xb3JrZmxvdygpXCI+XHJcbiAgICAgICAgICAgIDxkcy1pY29uIGljb249XCJiZWxsLTItb1wiIGNsYXNzPVwiZnMtMjAgZmMtY29yYWxcIj48L2RzLWljb24+XHJcbiAgICAgICAgICA8L2RzLWJ1dHRvbj4gLS0+XHJcbiAgICAgICAgICA8ZHMtYnV0dG9uIHNpemU9XCJzbWFsbFwiIGljb24gKGNsaWNrKT1cInNob3dQcmV2aW91c1JlcXVlc3RzKClcIiA+XHJcbiAgICAgICAgICAgIDxkcy1pY29uIGljb249XCJjbG9ja1wiIGNsYXNzPVwiZnMtMjAgZmMtY29yYWxcIj48L2RzLWljb24+XHJcbiAgICAgICAgICA8L2RzLWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L3NlY3Rpb24+XHJcblxyXG4gIDwhLS0gIDxoZWFkZXIgY2xhc3M9XCJtYi00IG10LTQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1lbmQgZ2FwLTJcIj5cclxuICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgPGg2IGNsYXNzPVwiZnMtMTQgZnMtbWQtMTIgZnctbm9ybWFsIGZjLWRhcmstZ3JheSBtYi0wXCI+XHJcbiAgICAgICAgICB7eyBpMThuLnRyYW5zbGF0ZSgnSGVsbG8nKSB9fVxyXG4gICAgICAgICAge3sgY29yZVNlcnZpY2UuZ2V0U2hvcnROYW1lKGZvcm0/LmhlYWRlcj8ucmVxdWVzdGVyTmFtZSkgfX0sIHt7IGkxOG4udHJhbnNsYXRlKCd3ZWxjb21lQmFjaycpIH19IVxyXG4gICAgICAgIDwvaDY+XHJcbiAgICAgICAgPGgxIGNsYXNzPVwiZnMtMjYgZnMtbWQtMjAgZnctYm9sZCBmYy1ibGFjayBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIG1iLTFcIj5cclxuICAgICAgICAgIHt7IGZvcm1UaXRsZSB9fVxyXG4gICAgICAgICAgQGlmIChzZXJ2aWNlRmFxLmxlbmd0aCkge1xyXG4gICAgICAgICAgICA8ZHMtaWNvbiBpY29uPVwiaW5mb1wiIGNsYXNzPVwiZnMtMjIgZmMtZGFyay1ncmF5IGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9wZW5GYXEoKVwiPlxyXG4gICAgICAgICAgICA8L2RzLWljb24+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9oMT5cclxuICAgICAgPC9zZWN0aW9uPlxyXG4gICAgPC9oZWFkZXI+LS0+XHJcbn0gQGVsc2Uge1xyXG5cclxuICA8ZGl2IGNsYXNzPVwidy0xMDBcIj5cclxuICAgIDxzZWN0aW9uIGNsYXNzPVwicmVxdWVzdC1tYWluLWluZm8gIHt7c3RhdHVzQ2xhc3MoZm9ybT8uaGVhZGVyPy5zdGF0dXM/Llsna2V5J10pfX1cIj5cclxuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJyZXF1ZXN0LWluZm9cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWVzdC1pbmZvLS1ib2R5XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBmbGV4LWdyb3ctMVwiPlxyXG4gICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgICAgICBzcmM9XCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIzYVdSMGFEMGlNekFpSUdobGFXZG9kRDBpTWpraUlIWnBaWGRDYjNnOUlqQWdNQ0F6TUNBeU9TSWdabWxzYkQwaWJtOXVaU0lnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JajRLUEhCaGRHZ2daRDBpVFRJMUxqRWdNRWcwTGpsRE1pNHlJREFnTUNBeUxqSWdNQ0EwTGpsV01qZ3VOa2d5TlM0eFF6STNMamdnTWpndU5pQXpNQ0F5Tmk0MElETXdJREl6TGpkV05DNDVRek13SURJdU1pQXlOeTQ0SURBZ01qVXVNU0F3V2sweUlEUXVPVU15SURNdU15QXpMak1nTWlBMExqa2dNa2d5TlM0eFF6STJMamNnTWlBeU9DQXpMak1nTWpnZ05DNDVWakl6TGpkRE1qZ2dNalV1TXlBeU5pNDNJREkyTGpZZ01qVXVNU0F5Tmk0MlNESldOQzQ1V2sweE1TNDFJRFl1TTBNM0xqRWdOaTR6SURNdU5TQTVMamtnTXk0MUlERTBMak5ETXk0MUlERTRMamNnTnk0eElESXlMak1nTVRFdU5TQXlNaTR6UXpFMUxqa2dNakl1TXlBeE9TNDFJREU0TGpjZ01Ua3VOU0F4TkM0elF6RTVMalVnT1M0NUlERTFMamtnTmk0eklERXhMalVnTmk0eldrMHhOUzR4SURFNVF6RTBMakVnTVRrdU9DQXhNaTQ0SURJd0xqSWdNVEV1TlNBeU1DNHlRekV3TGpJZ01qQXVNaUE0TGprZ01Ua3VPQ0EzTGprZ01UbERPQzQzSURFM0xqY2dNVEFnTVRjZ01URXVOU0F4TjBNeE15QXhOeUF4TkM0MElERTNMamdnTVRVdU1TQXhPVnBOTVRNdU1TQXhNeTQwUXpFekxqRWdNVFF1TXlBeE1pNDBJREUxSURFeExqVWdNVFZETVRBdU5pQXhOU0E1TGprZ01UUXVNeUE1TGprZ01UTXVORU01TGprZ01USXVOU0F4TUM0MklERXhMamdnTVRFdU5TQXhNUzQ0UXpFeUxqUWdNVEV1T0NBeE15NHhJREV5TGpVZ01UTXVNU0F4TXk0MFdrMHhOUzR4SURFekxqUkRNVFV1TVNBeE1TNDBJREV6TGpVZ09TNDRJREV4TGpVZ09TNDRRemt1TlNBNUxqZ2dOeTQ1SURFeExqUWdOeTQ1SURFekxqUkROeTQ1SURFMExqSWdPQzR5SURFMUlEZ3VOeUF4TlM0M1F6Y3VPQ0F4Tmk0eElEY3VNU0F4Tmk0NElEWXVOU0F4Tnk0MlF6VXVPQ0F4Tmk0MklEVXVOU0F4TlM0MUlEVXVOU0F4TkM0elF6VXVOU0F4TVNBNExqSWdPQzR6SURFeExqVWdPQzR6UXpFMExqZ2dPQzR6SURFM0xqVWdNVEVnTVRjdU5TQXhOQzR6UXpFM0xqVWdNVFV1TlNBeE55NHlJREUyTGpZZ01UWXVOU0F4Tnk0MlF6RTFMamtnTVRZdU9DQXhOUzR5SURFMkxqSWdNVFF1TXlBeE5TNDNRekUwTGpnZ01UVXVNU0F4TlM0eElERTBMaklnTVRVdU1TQXhNeTQwV2sweU1TQTVMakZETWpFZ09DNDJJREl4TGpRZ09DNHhJREl5SURndU1VZ3lOUzQxUXpJMklEZ3VNU0F5Tmk0MUlEZ3VOU0F5Tmk0MUlEa3VNVU15Tmk0MUlEa3VOaUF5Tmk0eElERXdMakVnTWpVdU5TQXhNQzR4U0RJeVF6SXhMalFnTVRBdU1TQXlNU0E1TGpZZ01qRWdPUzR4V2sweU1TQXhNaTQxUXpJeElERXlJREl4TGpRZ01URXVOU0F5TWlBeE1TNDFTREkxTGpWRE1qWWdNVEV1TlNBeU5pNDFJREV4TGprZ01qWXVOU0F4TWk0MVF6STJMalVnTVRNZ01qWXVNU0F4TXk0MUlESTFMalVnTVRNdU5VZ3lNa015TVM0MElERXpMalVnTWpFZ01UTXVNU0F5TVNBeE1pNDFXazB5TVNBeE5rTXlNU0F4TlM0MUlESXhMalFnTVRVZ01qSWdNVFZJTWpVdU5VTXlOaUF4TlNBeU5pNDFJREUxTGpRZ01qWXVOU0F4TmtNeU5pNDFJREUyTGpVZ01qWXVNU0F4TnlBeU5TNDFJREUzU0RJeVF6SXhMalFnTVRjZ01qRWdNVFl1TmlBeU1TQXhObHBOTWpVdU5TQXlNQzQxU0RJeVF6SXhMalVnTWpBdU5TQXlNU0F5TUM0eElESXhJREU1TGpWRE1qRWdNVGd1T1NBeU1TNDBJREU0TGpVZ01qSWdNVGd1TlVneU5TNDFRekkySURFNExqVWdNall1TlNBeE9DNDVJREkyTGpVZ01Ua3VOVU15Tmk0MUlESXdMakVnTWpZdU1TQXlNQzQxSURJMUxqVWdNakF1TlZvaUlHWnBiR3c5SWlOR1JqTTNOVVVpTHo0S1BDOXpkbWMrQ2c9PVwiLz5cclxuICAgICAgICAgICAgPGg0IGNsYXNzPVwiZnMtMjIgZnMtbWQtMTYgZmMtYmxhY2sgZnctbWVkaXVtIG1iLTAgZmxleC1ncm93LTEgbGluZS1oZWlnaHQtMS0yXCI+XHJcbiAgICAgICAgICAgICAge3sgZm9ybVRpdGxlIH19XHJcbiAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIHJlcXVlc3QtaW5mby0tc3RhdHVzLWFjdGlvblwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1pbmxpbmUtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1lbmRcIj5cclxuICAgICAgICAgICAgICBAaWYgKCFpc0xvYWRpbmcpIHtcclxuICAgICAgICAgICAgICAgIDxkcy1zdGF0dXNcclxuICAgICAgICAgICAgICAgICAgc3RhdHVzPVwie3tzdGF0dXNDbGFzcyhmb3JtPy5oZWFkZXI/LnN0YXR1cz8uWydrZXknXSl9fVwiIGNsYXNzPVwiaGVhZGVyLXN0YXR1c1wiPnt7IGZvcm0/LmhlYWRlcj8uc3RhdHVzPy5bJ3ZhbHVlJ10gfX1cclxuICAgICAgICAgICAgICAgIDwvZHMtc3RhdHVzPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgPCEtLSA8ZHMtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgKm5nSWY9XCJmb3JtPy5pbmJveEl0ZW0gJiYgKGZvcm0/LmluYm94SXRlbT8uY2FuUmVxdWVzdEZlZWRiYWNrID09J3RydWUnfHwgZm9ybT8uaW5ib3hJdGVtPy5oYXNGZWVkYmFjaz09J3RydWUnKVwiXHJcbiAgICAgICAgICAgICAgICAgc3F1YXJlIGljb24gc2l6ZT1cInNtYWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgPGRzLWljb24gaWNvbj1cImNoYXQtb1wiIGNsYXNzPVwiZnMtMjAgZnMtbWQtMTcgZmMtY29yYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICZsdDshJm5kYXNoOyAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZmMtZ3JlZW4nOmZlZWRCYWNrSWNvbiA9PSAnZmVlZGJhY2tSZXNwb25kZWQnICwgJ2ZjLXJlZCc6IGZlZWRCYWNrSWNvbiA9PSAncmVzcG9uZFRvRmVlZGJhY2snICwgJ2ZjLXllbGxvdyc6IGZlZWRCYWNrSWNvbiA9PSAnd2FpdGluZ0ZlZWRiYWNrJ31cIiZuZGFzaDsmZ3Q7XHJcbiAgICAgICAgICAgICAgICAgPC9kcy1pY29uPlxyXG4gICAgICAgICAgICAgICA8L2RzLWJ1dHRvbj4tLT5cclxuICAgICAgICAgICAgICA8IS0tIGhpc3RvcnktLT5cclxuICAgICAgICAgICAgICA8ZHMtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImZvcm0/LmNvbW1lbnRzRHJvcD8ubGVuZ3RoID4gMCAmJiAhaXNMb2FkaW5nXCIgc3F1YXJlIGljb24gc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNvbW1lbnRzRm9ybUNsaWNrKClcIiBjbGFzcz1cImhhcy1jb21tZW50c1wiPlxyXG4gICAgICAgICAgICAgICAgPGRzLWljb24gaWNvbj1cImNsb2NrXCIgY2xhc3M9XCJmYy1jb3JhbCBmcy0yMCBmcy1tZC0xN1wiPjwvZHMtaWNvbj5cclxuICAgICAgICAgICAgICA8L2RzLWJ1dHRvbj5cclxuICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZXF1ZXN0LWluZm8tLWZvb3RlclwiPlxyXG4gICAgICAgICAgQGlmICghaXNMb2FkaW5nKSB7XHJcbiAgICAgICAgICAgIDxkcy1hdmF0YXJcclxuICAgICAgICAgICAgICBpbWFnZT1cInt7Zm9ybT8uaGVhZGVyPy5yZXF1ZXN0ZXJQaG90b319XCIgc2l6ZT1cInh4LXNtYWxsXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImQtaW5saW5lLWZsZXggY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic2hvd1VzZXJJbmZvKClcIj48L2RzLWF2YXRhcj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtd3JhcCBmbGV4LWdyb3ctMSBnYXAtMSBnYXAtc20tMiBsaW5lLWhlaWdodC0xIHJlcXVlc3QtaW5mby0taGVhZGVyX19kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydsb2FkaW5nLWJnIGxvYWRpbmctd2lkdGgnOiBpc0xvYWRpbmd9XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZzLTEyIGZ3LW1lZGl1bSBkLW5vbmUgZC1zbS1pbmxpbmUtYmxvY2tcIj57eyBjb3JlU2VydmljZS5nZXRTaG9ydE5hbWUoZm9ybT8uaGVhZGVyPy5bJ3JlcXVlc3Rlck5hbWUnXSkgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnMtMjBcIj4mIzgyMjY7PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLTEyXCIgW25nQ2xhc3NdPVwieydsb2FkaW5nLWJnIGxvYWRpbmctd2lkdGgnOiBpc0xvYWRpbmd9XCI+IHt7IGZvcm0/LmhlYWRlcj8uZm9ybUlkIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLTIwXCIgKm5nSWY9XCJjcmVhdGlvbkRhdGVcIj4mIzgyMjY7PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLTEyXCIgW25nQ2xhc3NdPVwieydsb2FkaW5nLWJnIGxvYWRpbmctd2lkdGgnOiBpc0xvYWRpbmd9XCI+IHt7IGNyZWF0aW9uRGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L3NlY3Rpb24+XHJcbiAgICA8L3NlY3Rpb24+XHJcblxyXG4gIDwvZGl2PlxyXG5cclxuXHJcbiAgPCEtLTxuZy1jb250YWluZXI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtZW5kIGdhcC0yIG15LTJcIj5cclxuICAgICAgPGRzLWJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwiZm9ybT8uaW5ib3hJdGVtICYmICFmb3JtLnNlY3Rpb25zW2Zvcm0uc2VjdGlvbnMubGVuZ3RoIC0xXS5oZWFkZXIucmVhZE9ubHkgJiYgIWlzTG9hZGluZ1wiXHJcbiAgICAgICAgc3F1YXJlXHJcbiAgICAgICAgaWNvblxyXG4gICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIlxyXG4gICAgICAgIGNsYXNzPVwiaWNvbi1idG4tc2hhZG93XCI+XHJcbiAgICAgICAgPGRzLWljb25cclxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZmMtcHVycGxlJyA6IChmbGFnUHJpb3JpdHkgPT09ICcwJyB8fCAgZmxhZ1ByaW9yaXR5ID09PSBudWxsKSwnZmMteWVsbG93JyA6IGZsYWdQcmlvcml0eSA9PT0gJzEnLCdmYy1ncmVlbicgOiBmbGFnUHJpb3JpdHkgPT09ICcyJywnZmMtY29yYWwnIDogZmxhZ1ByaW9yaXR5ID09PSAnMyd9XCJcclxuICAgICAgICAgIGljb249XCJmbGFnLW9cIiBjbGFzcz1cImZzLTIwIGZzLW1kLTE3IGZjLXB1cnBsZVwiPlxyXG4gICAgICAgIDwvZHMtaWNvbj5cclxuICAgICAgPC9kcy1idXR0b24+XHJcbiAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIiBwYW5lbENsYXNzPVwiYWN0aW9uLW1lbnVcIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cInNldEZsYWdQcmlvcml0eSgnMCcpXCI+XHJcbiAgICAgICAgICA8ZHMtaWNvbiBpY29uPVwiZmxhZy1vXCIgY2xhc3M9XCJmYy1wdXJwbGUgZnMtMjAgZnMtbWQtMTdcIj48L2RzLWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJzZXRGbGFnUHJpb3JpdHkoJzEnKVwiPlxyXG4gICAgICAgICAgPGRzLWljb24gaWNvbj1cImZsYWctb1wiIGNsYXNzPVwiZmMteWVsbG93IGZzLTIwIGZzLW1kLTE3XCI+PC9kcy1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwic2V0RmxhZ1ByaW9yaXR5KCcyJylcIj5cclxuICAgICAgICAgIDxkcy1pY29uIGljb249XCJmbGFnLW9cIiBjbGFzcz1cImZjLWdyZWVuIGZzLTIwIGZzLW1kLTE3XCI+PC9kcy1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwic2V0RmxhZ1ByaW9yaXR5KCczJylcIj5cclxuICAgICAgICAgIDxkcy1pY29uIGljb249XCJmbGFnLW9cIiBjbGFzcz1cImZjLWNvcmFsIGZzLTIwIGZzLW1kLTE3XCI+PC9kcy1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L21hdC1tZW51PlxyXG5cclxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8aGVhZGVyIGNsYXNzPVwic2VydmljZS1oZWFkZXIgYmMtd2hpdGUgcC0zIHAtc20tNCBweS00IGdhcC0zIHt7c3RhdHVzQ2xhc3MoZm9ybT8uaGVhZGVyPy5zdGF0dXM/Llsna2V5J10pfX1cIj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWhlYWRlci1pY29uXCI+XHJcbiAgICAgICAgPGltZ1xyXG4gICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgIHNyYz1cImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjNhV1IwYUQwaU16QWlJR2hsYVdkb2REMGlNamtpSUhacFpYZENiM2c5SWpBZ01DQXpNQ0F5T1NJZ1ptbHNiRDBpYm05dVpTSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklqNEtQSEJoZEdnZ1pEMGlUVEkxTGpFZ01FZzBMamxETWk0eUlEQWdNQ0F5TGpJZ01DQTBMamxXTWpndU5rZ3lOUzR4UXpJM0xqZ2dNamd1TmlBek1DQXlOaTQwSURNd0lESXpMamRXTkM0NVF6TXdJREl1TWlBeU55NDRJREFnTWpVdU1TQXdXazB5SURRdU9VTXlJRE11TXlBekxqTWdNaUEwTGprZ01rZ3lOUzR4UXpJMkxqY2dNaUF5T0NBekxqTWdNamdnTkM0NVZqSXpMamRETWpnZ01qVXVNeUF5Tmk0M0lESTJMallnTWpVdU1TQXlOaTQyU0RKV05DNDVXazB4TVM0MUlEWXVNME0zTGpFZ05pNHpJRE11TlNBNUxqa2dNeTQxSURFMExqTkRNeTQxSURFNExqY2dOeTR4SURJeUxqTWdNVEV1TlNBeU1pNHpRekUxTGprZ01qSXVNeUF4T1M0MUlERTRMamNnTVRrdU5TQXhOQzR6UXpFNUxqVWdPUzQ1SURFMUxqa2dOaTR6SURFeExqVWdOaTR6V2sweE5TNHhJREU1UXpFMExqRWdNVGt1T0NBeE1pNDRJREl3TGpJZ01URXVOU0F5TUM0eVF6RXdMaklnTWpBdU1pQTRMamtnTVRrdU9DQTNMamtnTVRsRE9DNDNJREUzTGpjZ01UQWdNVGNnTVRFdU5TQXhOME14TXlBeE55QXhOQzQwSURFM0xqZ2dNVFV1TVNBeE9WcE5NVE11TVNBeE15NDBRekV6TGpFZ01UUXVNeUF4TWk0MElERTFJREV4TGpVZ01UVkRNVEF1TmlBeE5TQTVMamtnTVRRdU15QTVMamtnTVRNdU5FTTVMamtnTVRJdU5TQXhNQzQySURFeExqZ2dNVEV1TlNBeE1TNDRRekV5TGpRZ01URXVPQ0F4TXk0eElERXlMalVnTVRNdU1TQXhNeTQwV2sweE5TNHhJREV6TGpSRE1UVXVNU0F4TVM0MElERXpMalVnT1M0NElERXhMalVnT1M0NFF6a3VOU0E1TGpnZ055NDVJREV4TGpRZ055NDVJREV6TGpSRE55NDVJREUwTGpJZ09DNHlJREUxSURndU55QXhOUzQzUXpjdU9DQXhOaTR4SURjdU1TQXhOaTQ0SURZdU5TQXhOeTQyUXpVdU9DQXhOaTQySURVdU5TQXhOUzQxSURVdU5TQXhOQzR6UXpVdU5TQXhNU0E0TGpJZ09DNHpJREV4TGpVZ09DNHpRekUwTGpnZ09DNHpJREUzTGpVZ01URWdNVGN1TlNBeE5DNHpRekUzTGpVZ01UVXVOU0F4Tnk0eUlERTJMallnTVRZdU5TQXhOeTQyUXpFMUxqa2dNVFl1T0NBeE5TNHlJREUyTGpJZ01UUXVNeUF4TlM0M1F6RTBMamdnTVRVdU1TQXhOUzR4SURFMExqSWdNVFV1TVNBeE15NDBXazB5TVNBNUxqRkRNakVnT0M0MklESXhMalFnT0M0eElESXlJRGd1TVVneU5TNDFRekkySURndU1TQXlOaTQxSURndU5TQXlOaTQxSURrdU1VTXlOaTQxSURrdU5pQXlOaTR4SURFd0xqRWdNalV1TlNBeE1DNHhTREl5UXpJeExqUWdNVEF1TVNBeU1TQTVMallnTWpFZ09TNHhXazB5TVNBeE1pNDFRekl4SURFeUlESXhMalFnTVRFdU5TQXlNaUF4TVM0MVNESTFMalZETWpZZ01URXVOU0F5Tmk0MUlERXhMamtnTWpZdU5TQXhNaTQxUXpJMkxqVWdNVE1nTWpZdU1TQXhNeTQxSURJMUxqVWdNVE11TlVneU1rTXlNUzQwSURFekxqVWdNakVnTVRNdU1TQXlNU0F4TWk0MVdrMHlNU0F4TmtNeU1TQXhOUzQxSURJeExqUWdNVFVnTWpJZ01UVklNalV1TlVNeU5pQXhOU0F5Tmk0MUlERTFMalFnTWpZdU5TQXhOa015Tmk0MUlERTJMalVnTWpZdU1TQXhOeUF5TlM0MUlERTNTREl5UXpJeExqUWdNVGNnTWpFZ01UWXVOaUF5TVNBeE5scE5NalV1TlNBeU1DNDFTREl5UXpJeExqVWdNakF1TlNBeU1TQXlNQzR4SURJeElERTVMalZETWpFZ01UZ3VPU0F5TVM0MElERTRMalVnTWpJZ01UZ3VOVWd5TlM0MVF6STJJREU0TGpVZ01qWXVOU0F4T0M0NUlESTJMalVnTVRrdU5VTXlOaTQxSURJd0xqRWdNall1TVNBeU1DNDFJREkxTGpVZ01qQXVOVm9pSUdacGJHdzlJaU5HUmpNM05VVWlMejRLUEM5emRtYytDZz09XCIvPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMSBkLWZsZXggZmxleC1jb2x1bW4gZmxleC1zbS1yb3cgYWxpZ24taXRlbXMtc20tY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICA8aDEgY2xhc3M9XCJmcy0yMCBmcy1tZC0xNiBmdy1ib2xkIGZjLWJsYWNrIGhlYWRlci10aXRsZSBtLTBcIj57eyBmb3JtVGl0bGUgfX1cclxuICAgICAgICAgICAgQGlmIChzZXJ2aWNlRmFxLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIDxkcy1pY29uIGljb249XCJpbmZvXCIgY2xhc3M9XCJmcy0yMiBmYy1kYXJrLWdyYXkgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib3BlbkZhcSgpXCI+XHJcbiAgICAgICAgICAgICAgPC9kcy1pY29uPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2gxPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci11c2VyIGQtZmxleCBhbGlnbi1pdGVtcy1zbS1jZW50ZXIgZ2FwLTIgbXQtc20tMVwiPlxyXG4gICAgICAgICAgICBAaWYgKCFpc0xvYWRpbmcpIHtcclxuICAgICAgICAgICAgICA8ZHMtYXZhdGFyXHJcbiAgICAgICAgICAgICAgICBpbWFnZT1cInt7Zm9ybT8uaGVhZGVyPy5yZXF1ZXN0ZXJQaG90b319XCIgc2l6ZT1cInh4LXNtYWxsXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1pbmxpbmUtZmxleCBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJzaG93VXNlckluZm8oKVwiPjwvZHMtYXZhdGFyPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmcy0xMiB0ZXh0LXRydW5jYXRlIGQtc20tYmxvY2sgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic2hvd1VzZXJJbmZvKClcIlxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnbG9hZGluZy1iZyBsb2FkaW5nLXdpZHRoJzogaXNMb2FkaW5nfVwiPnt7IGNvcmVTZXJ2aWNlLmdldFNob3J0TmFtZShmb3JtPy5oZWFkZXI/LnJlcXVlc3Rlck5hbWUpIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8bWF0LWRpdmlkZXIgY2xhc3M9XCJkaXZpZGVyIGNpcmNsZSBteC0yIGQtbm9uZSBkLXNtLWJsb2NrXCI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmcy0xMlwiIFtuZ0NsYXNzXT1cInsnbG9hZGluZy1iZyBsb2FkaW5nLXdpZHRoJzogaXNMb2FkaW5nfVwiPnt7IGZvcm0/LmhlYWRlcj8uZm9ybUlkIH19PC9zcGFuPlxyXG4gICAgICAgICAgICBAaWYgKGNyZWF0aW9uRGF0ZSkge1xyXG4gICAgICAgICAgICAgIDxtYXQtZGl2aWRlciBjbGFzcz1cImRpdmlkZXIgY2lyY2xlIG14LTIgZC1ub25lIGQtc20tYmxvY2tcIj48L21hdC1kaXZpZGVyPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnMtMTRcIiBbbmdDbGFzc109XCJ7J2xvYWRpbmctYmcgbG9hZGluZy13aWR0aCc6IGlzTG9hZGluZ31cIj57eyBjcmVhdGlvbkRhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWFjdGlvbnMgZC1mbGV4IGZsZXgtcm93IGZsZXgtc20tY29sdW1uIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGp1c3RpZnktY29udGVudC1zbS1jZW50ZXIgZ2FwLTIgbXQtMiBtdC1zbS0wXCI+XHJcbiAgICAgICAgICBAaWYgKCFpc0xvYWRpbmcpIHtcclxuICAgICAgICAgICAgPGRzLXN0YXR1c1xyXG4gICAgICAgICAgICAgIHN0YXR1cz1cInt7c3RhdHVzQ2xhc3MoZm9ybT8uaGVhZGVyPy5zdGF0dXM/Llsna2V5J10pfX1cIiBjbGFzcz1cImhlYWRlci1zdGF0dXNcIj57eyBmb3JtPy5oZWFkZXI/LnN0YXR1cz8uWyd2YWx1ZSddIH19XHJcbiAgICAgICAgICAgIDwvZHMtc3RhdHVzPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWVuZCBnYXAtMlwiPlxyXG4gICAgICAgICAgICAmbHQ7ISZuZGFzaDsgZmVlZGJhY2smbmRhc2g7Jmd0O1xyXG4gICAgICAgICAgICAmbHQ7ISZuZGFzaDsgICAgICAgICAgICAqbmdJZj1cImZvcm0/LmluYm94SXRlbSAmJiAoZm9ybT8uaW5ib3hJdGVtPy5jYW5SZXF1ZXN0RmVlZGJhY2sgPT09J3RydWUnfHwgZm9ybT8uaW5ib3hJdGVtPy5oYXNGZWVkYmFjaz09PSd0cnVlJykgJiYgIWlzTG9hZGluZ1wiJm5kYXNoOyZndDtcclxuICAgICAgICAgICAgJmx0OyEmbmRhc2g7ICA8ZHMtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICBzcXVhcmUgaWNvbiBzaXplPVwic21hbGxcIiAoY2xpY2spPVwiZmVlZGJhY2soKVwiPlxyXG4gICAgICAgICAgICAgICAgPGRzLWljb25cclxuICAgICAgICAgICAgICAgICAgaWNvbj1cImNoYXQtb1wiIGNsYXNzPVwiZnMtMjAgZnMtbWQtMTcgZmMtY29yYWxcIlxyXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2ZjLWdyZWVuJzpmZWVkQmFja0ljb24gPT09ICdmZWVkYmFja1Jlc3BvbmRlZCcgLCAnZmMtcmVkJzogZmVlZEJhY2tJY29uID09PSAncmVzcG9uZFRvRmVlZGJhY2snICwgJ2ZjLXllbGxvdyc6IGZlZWRCYWNrSWNvbiA9PT0gJ3dhaXRpbmdGZWVkYmFjayd9XCI+XHJcbiAgICAgICAgICAgICAgICA8L2RzLWljb24+XHJcbiAgICAgICAgICAgICAgPC9kcy1idXR0b24+Jm5kYXNoOyZndDtcclxuICAgICAgICAgICAgPGRzLWJ1dHRvblxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZm9ybT8uY29tbWVudHNEcm9wPy5sZW5ndGggPiAwICYmICFpc0xvYWRpbmdcIiBzcXVhcmUgaWNvbiBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkNvbW1lbnRzRm9ybUNsaWNrKClcIiBjbGFzcz1cImhhcy1jb21tZW50c1wiPlxyXG4gICAgICAgICAgICAgIDxkcy1pY29uIGljb249XCJjbG9ja1wiIGNsYXNzPVwiZmMtY29yYWwgZnMtMjAgZnMtbWQtMTdcIj48L2RzLWljb24+XHJcbiAgICAgICAgICAgIDwvZHMtYnV0dG9uPlxyXG4gICAgICAgICAgICBAaWYgKHNob3dBcHByb3ZhbEhpc3RvcnkpIHtcclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPGRzLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICBjb2xvcj1cIndoaXRlXCIgc2hhcGU9XCJ0ZXh0XCIgc3F1YXJlIHNpemU9XCJzbWFsbFwiIFtzYXRQb3BvdmVyQW5jaG9yXT1cIndvcmtmbG93XCJcclxuICAgICAgICAgICAgICAgICAgI3dvcmtmbG93QW5jaG9yPVwic2F0UG9wb3ZlckFuY2hvclwiIChjbGljayk9XCJ3b3JrZmxvd0FuY2hvci5wb3BvdmVyLm9wZW4oKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c2xvdCBuYW1lPVwicHJlZml4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRzLWljb24gaWNvbj1cIndvcmtmbG93XCIgY2xhc3M9XCJmcy0yNFwiPjwvZHMtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgPC9zbG90PlxyXG4gICAgICAgICAgICAgICAgPC9kcy1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8c2F0LXBvcG92ZXJcclxuICAgICAgICAgICAgICAgICAgI3dvcmtmbG93IFthbmNob3JdPVwid29ya2Zsb3dBbmNob3JcIiBbaGFzQmFja2Ryb3BdPVwidHJ1ZVwiIHZlcnRpY2FsQWxpZ249XCJiZWxvd1wiXHJcbiAgICAgICAgICAgICAgICAgIGhvcml6b250YWxBbGlnbj1cImVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1wb3BvdmVyIHAtM1wiIHN0eWxlPVwibWluLXdpZHRoOiAzMzBweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZHMtYXBwcm92YWxzICpuZ0lmPVwiYXBwcm92YWxIaXN0b3J5XCIgY2xhc3M9XCJwb3BvdmVyLWFwcHJvdmFsc1wiIGFwcHJvdmFsc0RhdGE9XCJ7e2FwcHJvdmFsc319XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kcy1hcHByb3ZhbHM+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9zYXQtcG9wb3Zlcj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvaGVhZGVyPlxyXG4gIDwvbmctY29udGFpbmVyPi0tPlxyXG59XHJcbiJdfQ==
|
|
269
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQtc2VjdGlvbnMvc2VydmljZS1oZWFkZXIvc2VydmljZS1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQtc2VjdGlvbnMvc2VydmljZS1oZWFkZXIvc2VydmljZS1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQyxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpHLE9BQU8sS0FBSyxTQUFTLE1BQU0sOEJBQThCLENBQUM7QUFDMUQsT0FBTyxFQUFDLGVBQWUsRUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BFLE9BQU8sRUFBK0IsZUFBZSxFQUFpQixNQUFNLG1CQUFtQixDQUFDO0FBQ2hHLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ3JGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ3hGLE9BQU8sRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzVFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxt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SztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtGb3JtLCBTZWN0aW9ufSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0ICogYXMgQ29uc3RhbnRzIGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9jb25zdGFudHMnO1xyXG5pbXBvcnQge01BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQge0NvcmVJMThuU2VydmljZSwgQ29yZVNlcnZpY2UsIEZlZWRCYWNrU2VydmljZSwgU2lkZW5hdlNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHtQcm9maWxlU2VjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi4vcHJvZmlsZS1zZWN0aW9uL3Byb2ZpbGUtc2VjdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQge0ZlZWRiYWNrU2VjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi4vZmVlZGJhY2stc2VjdGlvbi9mZWVkYmFjay1zZWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7TmdDbGFzcywgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtTYXRQb3BvdmVyTW9kdWxlfSBmcm9tICdAbmNzdGF0ZS9zYXQtcG9wb3Zlcic7XHJcbmltcG9ydCB7TWF0RGl2aWRlcn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XHJcbmltcG9ydCB7TWF0TWVudSwgTWF0TWVudUl0ZW0sIE1hdE1lbnVUcmlnZ2VyfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHtGYXFTaWRlbmF2Q29tcG9uZW50fSBmcm9tICcuLi9mYXEtc2lkZW5hdi9mYXEtc2lkZW5hdi5jb21wb25lbnQnO1xyXG5pbXBvcnQge0FjdGl2aXRpZXNDb21wb25lbnR9IGZyb20gJy4uL2FjdGl2aXRpZXMvYWN0aXZpdGllcy5jb21wb25lbnQnO1xyXG5pbXBvcnQge2Zvcm1hdH0gZnJvbSAnZGF0ZS1mbnMnO1xyXG5pbXBvcnQge1RvYXN0clNlcnZpY2V9IGZyb20gXCJuZ3gtdG9hc3RyXCI7XHJcbmltcG9ydCB7UHJldmlvdXNSZXF1ZXN0c0NvbXBvbmVudH0gZnJvbSBcIi4uL3ByZXZpb3VzLXJlcXVlc3RzL3ByZXZpb3VzLXJlcXVlc3RzLmNvbXBvbmVudFwiO1xyXG5cclxuY29uc3QgU3RhdHVzTWFwID0ge1xyXG4gIFtDb25zdGFudHMuRk9STV9TVEFUVVNfUkVKRUNURURdOiB7Y2xhc3M6ICdkYW5nZXInLCBpY29uOiAnY2xvc2UnfSxcclxuICBbQ29uc3RhbnRzLkZPUk1fU1RBVFVTX0NBTkNFTExFRF06IHtjbGFzczogJ2RhbmdlcicsIGljb246ICdjbG9zZSd9LFxyXG4gIFtDb25zdGFudHMuRk9STV9TVEFUVVNfUkVKRUNUXToge2NsYXNzOiAnZGFuZ2VyJywgaWNvbjogJ2Nsb3NlJ30sXHJcbiAgW0NvbnN0YW50cy5TRUNUSU9OX1NUQVRVU19VTlNBVElTRklFRF06IHtjbGFzczogJ2RhbmdlcicsIGljb246ICdjbG9zZSd9LFxyXG4gIFtDb25zdGFudHMuRk9STV9TVEFUVVNfQ0FOQ0VMXToge2NsYXNzOiAnZGFuZ2VyJywgaWNvbjogJ2Nsb3NlJ30sXHJcbiAgW0NvbnN0YW50cy5GT1JNX1NUQVRVU19QRU5ESU5HXToge2NsYXNzOiAnd2FybmluZycsIGljb246ICdjbG9jayd9LFxyXG4gICdkZWZhdWx0Jzoge2NsYXNzOiAnc3VjY2VzcycsIGljb246ICdjaGVjayd9XHJcbn1cclxuXHJcbmludGVyZmFjZSBBcHByb3ZhbEhpc3RvcnlJdGVtIHtcclxuICBhcHByb3Zlcjoge1xyXG4gICAgcGVyc29uTmFtZTogc3RyaW5nO1xyXG4gICAgcGVyc29uRW1haWw6IHN0cmluZztcclxuICB9O1xyXG4gIHBvc2l0aW9uVHlwZTogc3RyaW5nO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtc2VydmljZS1oZWFkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZXJ2aWNlLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2VydmljZS1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE5nSWYsXHJcbiAgICBTYXRQb3BvdmVyTW9kdWxlLFxyXG4gICAgTWF0RGl2aWRlcixcclxuICAgIE1hdE1lbnVUcmlnZ2VyLFxyXG4gICAgTmdDbGFzcyxcclxuICAgIE1hdE1lbnUsXHJcbiAgICBNYXRNZW51SXRlbVxyXG4gIF0sXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxyXG4gIHByb3ZpZGVyczogW0ZlZWRCYWNrU2VydmljZSxcclxuICAgIHtwcm92aWRlOiBNQVRfRElBTE9HX0RBVEEsIHVzZVZhbHVlOiB7fX0sXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VydmljZUhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIGZvcm06IEZvcm07XHJcbiAgQElucHV0KCkgc2hvd0hpc3RvcnkgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc0xvYWRpbmcgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc1JlYWRPbmx5ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2hvd0FwcHJvdmFsSGlzdG9yeSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGFwcHJvdmFsSGlzdG9yeTogYW55O1xyXG4gIEBJbnB1dCgpIGNyZWF0aW9uRGF0ZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGZvcm1UaXRsZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNlY3Rpb246IFNlY3Rpb247XHJcbiAgQElucHV0KCkgc2VydmljZUZhcTogYW55W10gPSBbXTtcclxuICBhcHByb3ZhbHM6IGFueVtdID0gW107XHJcbiAgZmxhZ1ByaW9yaXR5OiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgY29yZVNlcnZpY2U6IENvcmVTZXJ2aWNlLFxyXG4gICAgcHVibGljIGkxOG46IENvcmVJMThuU2VydmljZSwgcHJpdmF0ZSByZWFkb25seSBmZWVkQmFja1NlcnZpY2U6IEZlZWRCYWNrU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nOiBNYXREaWFsb2csIHByaXZhdGUgcmVhZG9ubHkgc2lkZW5hdlNlcnZpY2U6IFNpZGVuYXZTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0b2FzdGVyU2VydmljZTogVG9hc3RyU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgLyoqXHJcbiAgICogRXhlY3V0ZXMgYWZ0ZXIgdGhlIHZpZXcgaGFzIGJlZW4gZnVsbHkgaW5pdGlhbGl6ZWQuXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHt2b2lkfVxyXG4gICAqL1xyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuZ2V0QXBwcm92YWxIaXN0b3J5KHRoaXMuYXBwcm92YWxIaXN0b3J5KTtcclxuICAgIGlmICh0aGlzLmZvcm0/LmhlYWRlcj8uY3JlYXRpb25EYXRlKSB7XHJcbiAgICAgIHRoaXMuY3JlYXRpb25EYXRlID0gZm9ybWF0KG5ldyBEYXRlKHRoaXMuZm9ybT8uaGVhZGVyPy5jcmVhdGlvbkRhdGUpLCBcImRkL01NL3l5eXkgaGg6bW06c3NcIik7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgdGhlIGNsaWNrIGV2ZW50IG9uIHRoZSBjb21tZW50cyBmb3JtLlxyXG4gICAqIFJldHJpZXZlcyBjb21tZW50cyBmcm9tIHRoZSBmb3JtLCB0cmFuc2Zvcm1zIHRoZW0sIGFuZCB1cGRhdGVzIGFjdGl2aXRpZXMgaW4gdGhlIGNvcmUgc2VydmljZS5cclxuICAgKiBGaW5hbGx5LCBwdWJsaXNoZXMgYW4gJ29wZW4nIGV2ZW50IHRvIHRoZSBzaWRlbmF2IHNlcnZpY2UgdG8gb3BlbiB0aGUgQWN0aXZpdGllc0NvbXBvbmVudC5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICovXHJcbiAgb25Db21tZW50c0Zvcm1DbGljaygpIHtcclxuICAgIGNvbnN0IGZvcm1Db21tZW50czogYW55ID0gdGhpcy5mb3JtLmNvbW1lbnRzRHJvcDtcclxuICAgIGNvbnN0IHRyYW5zZm9ybWVkQ29tbWVudHMgPSBbXTtcclxuICAgIGZvciAoY29uc3QgY29tbWVudCBvZiBmb3JtQ29tbWVudHMpIHtcclxuICAgICAgdHJhbnNmb3JtZWRDb21tZW50cy5wdXNoKHRoaXMudHJhbnNmb3JtQ29tbWVudEl0ZW0oY29tbWVudCkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb3JlU2VydmljZS5hY3Rpdml0aWVzID0gdHJhbnNmb3JtZWRDb21tZW50cztcclxuICAgIHRoaXMuc2lkZW5hdlNlcnZpY2UucHVibGlzaCgnb3BlbicsIEFjdGl2aXRpZXNDb21wb25lbnQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVHJhbnNmb3JtcyBhIGNvbW1lbnQgaXRlbSBpbnRvIGEgZGlmZmVyZW50IGZvcm1hdCBmb3IgZGlzcGxheS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBpdGVtIC0gVGhlIG9yaWdpbmFsIGNvbW1lbnQgaXRlbSB0byB0cmFuc2Zvcm0uXHJcbiAgICogQHJldHVybiB7T2JqZWN0fSAtIFRoZSB0cmFuc2Zvcm1lZCBjb21tZW50IGl0ZW0gd2l0aCBzcGVjaWZpYyBwcm9wZXJ0aWVzIGluY2x1ZGluZyBuYW1lLCB0aXRsZSwgaW1hZ2UsIGRhdGUsIHRpbWUsIGNvbW1lbnQsIGFuZCBhdHRhY2htZW50cy5cclxuICAgKi9cclxuICBwcml2YXRlIHRyYW5zZm9ybUNvbW1lbnRJdGVtKGl0ZW0pIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5hbWU6IGl0ZW1bJ2VtcGxveWVlTmFtZSddLFxyXG4gICAgICB0aXRsZTogaXRlbS5qb2JQb3NpdGlvbixcclxuICAgICAgaW1hZ2U6IGl0ZW1bJ3Byb2ZpbGVQaWN0dXJlJ10sXHJcbiAgICAgIGRhdGU6IGZvcm1hdChuZXcgRGF0ZShpdGVtWydjb21tZW50RGF0ZSddKSwgJ3l5eXktTU0tZGQnKSxcclxuICAgICAgdGltZTogZm9ybWF0KG5ldyBEYXRlKGl0ZW1bJ2NvbW1lbnREYXRlJ10pLCAnaDptbSBhJyksXHJcbiAgICAgIGNvbW1lbnQ6IGl0ZW1bJ2NvbW1lbnRCb2R5J10sXHJcbiAgICAgIGF0dGFjaG1lbnRzOiBpdGVtWydhdHRhY2htZW50J11cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPcGVucyBhIGRpYWxvZyBmb3IgcHJvdmlkaW5nIGZlZWRiYWNrLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7dm9pZH1cclxuICAgKi9cclxuICBmZWVkYmFjaygpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlhbG9nLm9wZW4oRmVlZGJhY2tTZWN0aW9uQ29tcG9uZW50LCB7XHJcbiAgICAgIHBhbmVsQ2xhc3M6IFsnbWFpbi1wb3B1cCddLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgcHJvZmlsZTogdGhpcy5mb3JtLnByb2ZpbGVJbmZvRHJvcCxcclxuICAgICAgICBpbmJveEl0ZW06IHRoaXMuZm9ybS5pbmJveEl0ZW0sXHJcbiAgICAgICAgZm9ybTogdGhpcy5mb3JtXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyB0aGUgc2lkZW5hdiB3aXRoIHVzZXIgcHJvZmlsZSBpbmZvcm1hdGlvbiBpZiBub3QgYWxyZWFkeSBsb2FkaW5nLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7dm9pZH1cclxuICAgKi9cclxuICBzaG93VXNlckluZm8oKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaXNMb2FkaW5nKSB7XHJcbiAgICAgIHRoaXMuc2lkZW5hdlNlcnZpY2UuZGF0YSA9IHRoaXMuZm9ybT8ucHJvZmlsZUluZm9Ecm9wO1xyXG4gICAgICB0aGlzLnNpZGVuYXZTZXJ2aWNlLnB1Ymxpc2goJ29wZW4nLCBQcm9maWxlU2VjdGlvbkNvbXBvbmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXQgdGhlIHByaW9yaXR5IGZsYWcgZm9yIHRoZSBpbmJveCBpdGVtIHdpdGggdGhlIHByb3ZpZGVkIElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGlkIC0gVGhlIElEIG9mIHRoZSBwcmlvcml0eSBmbGFnIHRvIGJlIHNldCBmb3IgdGhlIGluYm94IGl0ZW0uXHJcbiAgICogQHJldHVybiB7dm9pZH1cclxuICAgKi9cclxuICBzZXRGbGFnUHJpb3JpdHkoaWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5mbGFnUHJpb3JpdHkgPSBpZDtcclxuICAgIHRoaXMuZm9ybS5pbmJveEl0ZW0uZmxhZ1ByaW9yaXR5ID0gaWQ7XHJcbiAgICB0aGlzLnN1YnNjcmliZVRvU2V0RmxhZ1ByaW9yaXR5KGlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1YnNjcmliZSB0byBzZXQgZmxhZyBwcmlvcml0eSBmb3IgYSBzcGVjaWZpYyBpZGVudGlmaWVyLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGlkIC0gVGhlIGlkZW50aWZpZXIgb2YgdGhlIGZsYWcgdG8gc2V0IHByaW9yaXR5IGZvci5cclxuICAgKiBAcmV0dXJuIHt2b2lkfVxyXG4gICAqL1xyXG4gIHN1YnNjcmliZVRvU2V0RmxhZ1ByaW9yaXR5KGlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuY29yZVNlcnZpY2Uuc2V0RmxhZ1ByaW9yaXR5KGlkKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlKSB7XHJcbiAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5zdWNjZXNzKHRoaXMuaTE4bi50cmFuc2xhdGUoJ2ZsYWdTdGF0dXNVcGRhdGVkJykpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIENTUyBjbGFzcyBhc3NvY2lhdGVkIHdpdGggdGhlIGlucHV0IHN0YXR1cy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdGF0dXMgLSBUaGUgc3RhdHVzIGZvciB3aGljaCB0aGUgQ1NTIGNsYXNzIGlzIG5lZWRlZC5cclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IC0gVGhlIENTUyBjbGFzcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBzdGF0dXMuXHJcbiAgICovXHJcbiAgc3RhdHVzQ2xhc3Moc3RhdHVzOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgLy8gc3RhdHVzID0gc3RhdHVzID8gc3RhdHVzLnRvTG93ZXJDYXNlKCkgOiAnJztcclxuICAgIGxldCBzdGF0dXNTdHJhdGVneSA9IFN0YXR1c01hcFtzdGF0dXNdIHx8IFN0YXR1c01hcFsnZGVmYXVsdCddO1xyXG4gICAgcmV0dXJuIHN0YXR1c1N0cmF0ZWd5LmNsYXNzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3BlbnMgdGhlIEZBUSBzaWRlIG5hdmlnYXRpb24uXHJcbiAgICogQHJldHVybiB7dm9pZH1cclxuICAgKi9cclxuICBvcGVuRmFxKCkge1xyXG4gICAgdGhpcy5zaWRlbmF2U2VydmljZS5wdWJsaXNoKCdvcGVuJywgRmFxU2lkZW5hdkNvbXBvbmVudCwgJ2VuZCcsICdvdmVyJywgdGhpcy5zZXJ2aWNlRmFxKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhcHByb3ZhbCBoaXN0b3J5IGluZm9ybWF0aW9uIGZvciBlYWNoIGFwcHJvdmFsIGl0ZW0gaW4gdGhlIHByb3ZpZGVkIGFycmF5LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtBcHByb3ZhbEhpc3RvcnlJdGVtW119IGFwcHJvdmFsSGlzdG9yeSAtIFRoZSBhcnJheSBjb250YWluaW5nIGFwcHJvdmFsIGhpc3RvcnkgaXRlbXMuXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHt2b2lkfSAtIFRoaXMgbWV0aG9kIGRvZXMgbm90IHJldHVybiBhbnkgdmFsdWUuIEl0IHVwZGF0ZXMgdGhlIGludGVybmFsICdhcHByb3ZhbHMnIGFycmF5LlxyXG4gICAqL1xyXG4gIGdldEFwcHJvdmFsSGlzdG9yeShhcHByb3ZhbEhpc3Rvcnk6IEFwcHJvdmFsSGlzdG9yeUl0ZW1bXSkge1xyXG4gICAgYXBwcm92YWxIaXN0b3J5Py5mb3JFYWNoKChhcHByb3ZhbEl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgIGxldCBhcHByb3ZhbFN0YXR1cyA9IHRoaXMuZ2V0QXBwcm92YWxTdGF0dXMoaW5kZXgpO1xyXG4gICAgICBsZXQgYXBwcm92YWxTdGF0dXNMYWJlbCA9IHRoaXMuZ2V0QXBwcm92YWxTdGF0dXNMYWJlbChpbmRleCk7XHJcbiAgICAgIGNvbnN0IG9iaiA9IHtcclxuICAgICAgICBpZDogaW5kZXggKyAxLFxyXG4gICAgICAgIG5hbWU6IGFwcHJvdmFsSXRlbS5hcHByb3Zlci5wZXJzb25OYW1lLFxyXG4gICAgICAgIHRpdGxlOiBhcHByb3ZhbEl0ZW0ucG9zaXRpb25UeXBlLFxyXG4gICAgICAgIGltYWdlOiB0aGlzLmdldEltYWdlVXJsKGFwcHJvdmFsSXRlbS5hcHByb3Zlci5wZXJzb25FbWFpbCksXHJcbiAgICAgICAgc3RhdHVzOiBhcHByb3ZhbFN0YXR1cyxcclxuICAgICAgICBzdGF0dXNMYWJlbDogYXBwcm92YWxTdGF0dXNMYWJlbCxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5hcHByb3ZhbHMucHVzaChvYmopO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIGFwcHJvdmFsIHN0YXR1cyBmb3IgYSBzcGVjaWZpYyBzZWN0aW9uIGluIHRoZSBmb3JtLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4IC0gVGhlIGluZGV4IG9mIHRoZSBzZWN0aW9uIGZvciB3aGljaCB0aGUgYXBwcm92YWwgc3RhdHVzIGlzIHJlcXVpcmVkLlxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGFwcHJvdmFsIHN0YXR1cyBvZiB0aGUgc3BlY2lmaWVkIHNlY3Rpb24uIFJldHVybnMgYW4gZW1wdHkgc3RyaW5nIGlmIHRoZSBzZWN0aW9uIGRvZXMgbm90IGV4aXN0LlxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0QXBwcm92YWxTdGF0dXMoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBsZXQgc3RhdHVzID0gJyc7XHJcbiAgICBpZiAodGhpcy5mb3JtLnNlY3Rpb25zW2luZGV4ICsgMV0pIHtcclxuICAgICAgc3RhdHVzID0gdGhpcy5zdGF0dXNDbGFzcyh0aGlzLmZvcm0uc2VjdGlvbnNbaW5kZXggKyAxXS5ib2R5LmRldGFpbHMuZGVjaXNpb24ua2V5KTtcclxuICAgIH1cclxuICAgIHJldHVybiBzdGF0dXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIGFwcHJvdmFsIHN0YXR1cyBsYWJlbCBmcm9tIHRoZSBmb3JtIHNlY3Rpb24gYmFzZWQgb24gdGhlIGdpdmVuIGluZGV4LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4IC0gVGhlIGluZGV4IG9mIHRoZSBmb3JtIHNlY3Rpb24gZm9yIHdoaWNoIHRoZSBhcHByb3ZhbCBzdGF0dXMgbGFiZWwgd2lsbCBiZSByZXRyaWV2ZWQuXHJcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgYXBwcm92YWwgc3RhdHVzIGxhYmVsIHJldHJpZXZlZCBmcm9tIHRoZSBzcGVjaWZpZWQgZm9ybSBzZWN0aW9uLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0QXBwcm92YWxTdGF0dXNMYWJlbChpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGxldCBzdGF0dXNMYWJlbCA9ICcnO1xyXG4gICAgaWYgKHRoaXMuZm9ybS5zZWN0aW9uc1tpbmRleCArIDFdKSB7XHJcbiAgICAgIHN0YXR1c0xhYmVsID0gdGhpcy5mb3JtLnNlY3Rpb25zW2luZGV4ICsgMV0uYm9keS5kZXRhaWxzLmRlY2lzaW9uLnZhbHVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN0YXR1c0xhYmVsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBVUkwgb2YgdGhlIHVzZXIncyBwb3J0cmFpdCBpbWFnZSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgZW1haWwuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gZW1haWwgLSBUaGUgZW1haWwgYWRkcmVzcyBvZiB0aGUgdXNlciBmb3Igd2hvbSB0aGUgcG9ydHJhaXQgVVJMIGlzIHRvIGJlIHJldHJpZXZlZC5cclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IC0gVGhlIFVSTCB1c2VkIHRvIGZldGNoIHRoZSB1c2VyJ3MgcG9ydHJhaXQgaW1hZ2UuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRJbWFnZVVybChlbWFpbDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAnL2dyb3VwL2ktZ2F0ZS93bS1icG0vZm9ybXMvLS9wcm94eS9wb3J0cmFpdD9lbWFpbD0nICsgZW1haWw7XHJcbiAgfVxyXG5cclxuICBzaG93UHJldmlvdXNSZXF1ZXN0cygpIHtcclxuICAgIHRoaXMuc2lkZW5hdlNlcnZpY2UucHVibGlzaCgnb3BlbicsIFByZXZpb3VzUmVxdWVzdHNDb21wb25lbnQpO1xyXG4gIH1cclxufVxyXG4iLCJAaWYgKGZvcm0/LmhlYWRlcj8uc3RhdHVzPy5bJ2tleSddID09PSAnTkVXJykge1xyXG4gIDxzZWN0aW9uXHJcbiAgICBjbGFzcz1cIm1haW4tc2lkZW5hdiBtYWluLXNpZGVuYXYtZnVsbCBtYi00XCJcclxuXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cInNpZGVuYXYtdGl0bGVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTMgdy0xMDBcIj5cclxuICAgICAgICA8IS0tIDxkcy1idXR0b24gaWNvbiBjbGFzcz1cInJvdGF0ZS1hcnJvd1wiIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJnb0JhY2soKVwiICpuZ0lmPVwiIWlzSW5Nb2JpbGVBcHAoKSAmJiBzaG93QmFja1wiPlxyXG4gICAgICAgICAgIDxkcy1pY29uIGljb249XCJhcnJvdy1yaWdodFwiIGNsYXNzPVwiZnMtMTkgZmMtYmxhY2tcIj48L2RzLWljb24+XHJcbiAgICAgICAgIDwvZHMtYnV0dG9uPi0tPlxyXG5cclxuICAgICAgICA8IS0tICA8aDMgY2xhc3M9XCJmbGV4LWdyb3ctMFwiPlxyXG4gICAgICAgICAgICB7eyBmb3JtVGl0bGUgfX1cclxuICAgICAgICAgIDwvaDM+LS0+XHJcblxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGg2IGNsYXNzPVwiZnMtMTQgZnMtbWQtMTIgZnctbm9ybWFsIGZjLWRhcmstZ3JheSBtYi0wXCI+XHJcbiAgICAgICAgICAgIHt7IGkxOG4udHJhbnNsYXRlKCdIZWxsbycpIH19XHJcbiAgICAgICAgICAgIHt7IGNvcmVTZXJ2aWNlLmdldFNob3J0TmFtZShmb3JtPy5oZWFkZXI/LnJlcXVlc3Rlck5hbWUpIH19LCB7eyBpMThuLnRyYW5zbGF0ZSgnd2VsY29tZUJhY2snKSB9fSFcclxuICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICA8aDEgY2xhc3M9XCJmcy0yNiBmcy1tZC0yMCBmdy1ib2xkIGZjLWJsYWNrIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgbWItMVwiPlxyXG4gICAgICAgICAgICB7eyBmb3JtVGl0bGUgfX1cclxuICAgICAgICAgICAgQGlmIChzZXJ2aWNlRmFxLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIDxkcy1pY29uIGljb249XCJpbmZvXCIgY2xhc3M9XCJmcy0yMiBmYy1kYXJrLWdyYXkgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib3BlbkZhcSgpXCI+XHJcbiAgICAgICAgICAgICAgPC9kcy1pY29uPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2gxPlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtZW5kIGdhcC0yIGZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICBAaWYgKHNlcnZpY2VGYXEubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIDxkcy1idXR0b24gc2l6ZT1cInNtYWxsXCIgaWNvbj5cclxuICAgICAgICAgICAgICA8ZHMtaWNvbiBpY29uPVwiaW5mb1wiIGNsYXNzPVwiZnMtMjIgZmMtZGFyay1ncmF5IGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9wZW5GYXEoKVwiPlxyXG4gICAgICAgICAgICAgIDwvZHMtaWNvbj5cclxuICAgICAgICAgICAgPC9kcy1idXR0b24+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICA8IS0tIDxkcy1idXR0b24gc2l6ZT1cInNtYWxsXCIgaWNvbiAoY2xpY2spPVwib3BlbldvcmtmbG93KClcIj5cclxuICAgICAgICAgICAgPGRzLWljb24gaWNvbj1cImJlbGwtMi1vXCIgY2xhc3M9XCJmcy0yMCBmYy1jb3JhbFwiPjwvZHMtaWNvbj5cclxuICAgICAgICAgIDwvZHMtYnV0dG9uPiAtLT5cclxuICAgICAgICAgIEBpZiAoIWlzUmVhZE9ubHkpIHtcclxuICAgICAgICAgICAgPGRzLWJ1dHRvbiBzaXplPVwic21hbGxcIiBpY29uIChjbGljayk9XCJzaG93UHJldmlvdXNSZXF1ZXN0cygpXCI+XHJcbiAgICAgICAgICAgICAgPGRzLWljb24gaWNvbj1cImNsb2NrXCIgY2xhc3M9XCJmcy0yMCBmYy1jb3JhbFwiPjwvZHMtaWNvbj5cclxuICAgICAgICAgICAgPC9kcy1idXR0b24+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9zZWN0aW9uPlxyXG5cclxuICA8IS0tICA8aGVhZGVyIGNsYXNzPVwibWItNCBtdC00IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtZW5kIGdhcC0yXCI+XHJcbiAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgIDxoNiBjbGFzcz1cImZzLTE0IGZzLW1kLTEyIGZ3LW5vcm1hbCBmYy1kYXJrLWdyYXkgbWItMFwiPlxyXG4gICAgICAgICAge3sgaTE4bi50cmFuc2xhdGUoJ0hlbGxvJykgfX1cclxuICAgICAgICAgIHt7IGNvcmVTZXJ2aWNlLmdldFNob3J0TmFtZShmb3JtPy5oZWFkZXI/LnJlcXVlc3Rlck5hbWUpIH19LCB7eyBpMThuLnRyYW5zbGF0ZSgnd2VsY29tZUJhY2snKSB9fSFcclxuICAgICAgICA8L2g2PlxyXG4gICAgICAgIDxoMSBjbGFzcz1cImZzLTI2IGZzLW1kLTIwIGZ3LWJvbGQgZmMtYmxhY2sgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBtYi0xXCI+XHJcbiAgICAgICAgICB7eyBmb3JtVGl0bGUgfX1cclxuICAgICAgICAgIEBpZiAoc2VydmljZUZhcS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgPGRzLWljb24gaWNvbj1cImluZm9cIiBjbGFzcz1cImZzLTIyIGZjLWRhcmstZ3JheSBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvcGVuRmFxKClcIj5cclxuICAgICAgICAgICAgPC9kcy1pY29uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvaDE+XHJcbiAgICAgIDwvc2VjdGlvbj5cclxuICAgIDwvaGVhZGVyPi0tPlxyXG59IEBlbHNlIHtcclxuXHJcbiAgPGRpdiBjbGFzcz1cInctMTAwXCI+XHJcbiAgICA8c2VjdGlvbiBjbGFzcz1cInJlcXVlc3QtbWFpbi1pbmZvICB7e3N0YXR1c0NsYXNzKGZvcm0/LmhlYWRlcj8uc3RhdHVzPy5bJ2tleSddKX19XCI+XHJcbiAgICAgIDxzZWN0aW9uIGNsYXNzPVwicmVxdWVzdC1pbmZvXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVlc3QtaW5mby0tYm9keVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgICAgICAgc3JjPVwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCM2FXUjBhRDBpTXpBaUlHaGxhV2RvZEQwaU1qa2lJSFpwWlhkQ2IzZzlJakFnTUNBek1DQXlPU0lnWm1sc2JEMGlibTl1WlNJZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWo0S1BIQmhkR2dnWkQwaVRUSTFMakVnTUVnMExqbERNaTR5SURBZ01DQXlMaklnTUNBMExqbFdNamd1TmtneU5TNHhRekkzTGpnZ01qZ3VOaUF6TUNBeU5pNDBJRE13SURJekxqZFdOQzQ1UXpNd0lESXVNaUF5Tnk0NElEQWdNalV1TVNBd1drMHlJRFF1T1VNeUlETXVNeUF6TGpNZ01pQTBMamtnTWtneU5TNHhRekkyTGpjZ01pQXlPQ0F6TGpNZ01qZ2dOQzQ1VmpJekxqZERNamdnTWpVdU15QXlOaTQzSURJMkxqWWdNalV1TVNBeU5pNDJTREpXTkM0NVdrMHhNUzQxSURZdU0wTTNMakVnTmk0eklETXVOU0E1TGprZ015NDFJREUwTGpORE15NDFJREU0TGpjZ055NHhJREl5TGpNZ01URXVOU0F5TWk0elF6RTFMamtnTWpJdU15QXhPUzQxSURFNExqY2dNVGt1TlNBeE5DNHpRekU1TGpVZ09TNDVJREUxTGprZ05pNHpJREV4TGpVZ05pNHpXazB4TlM0eElERTVRekUwTGpFZ01Ua3VPQ0F4TWk0NElESXdMaklnTVRFdU5TQXlNQzR5UXpFd0xqSWdNakF1TWlBNExqa2dNVGt1T0NBM0xqa2dNVGxET0M0M0lERTNMamNnTVRBZ01UY2dNVEV1TlNBeE4wTXhNeUF4TnlBeE5DNDBJREUzTGpnZ01UVXVNU0F4T1ZwTk1UTXVNU0F4TXk0MFF6RXpMakVnTVRRdU15QXhNaTQwSURFMUlERXhMalVnTVRWRE1UQXVOaUF4TlNBNUxqa2dNVFF1TXlBNUxqa2dNVE11TkVNNUxqa2dNVEl1TlNBeE1DNDJJREV4TGpnZ01URXVOU0F4TVM0NFF6RXlMalFnTVRFdU9DQXhNeTR4SURFeUxqVWdNVE11TVNBeE15NDBXazB4TlM0eElERXpMalJETVRVdU1TQXhNUzQwSURFekxqVWdPUzQ0SURFeExqVWdPUzQ0UXprdU5TQTVMamdnTnk0NUlERXhMalFnTnk0NUlERXpMalJETnk0NUlERTBMaklnT0M0eUlERTFJRGd1TnlBeE5TNDNRemN1T0NBeE5pNHhJRGN1TVNBeE5pNDRJRFl1TlNBeE55NDJRelV1T0NBeE5pNDJJRFV1TlNBeE5TNDFJRFV1TlNBeE5DNHpRelV1TlNBeE1TQTRMaklnT0M0eklERXhMalVnT0M0elF6RTBMamdnT0M0eklERTNMalVnTVRFZ01UY3VOU0F4TkM0elF6RTNMalVnTVRVdU5TQXhOeTR5SURFMkxqWWdNVFl1TlNBeE55NDJRekUxTGprZ01UWXVPQ0F4TlM0eUlERTJMaklnTVRRdU15QXhOUzQzUXpFMExqZ2dNVFV1TVNBeE5TNHhJREUwTGpJZ01UVXVNU0F4TXk0MFdrMHlNU0E1TGpGRE1qRWdPQzQySURJeExqUWdPQzR4SURJeUlEZ3VNVWd5TlM0MVF6STJJRGd1TVNBeU5pNDFJRGd1TlNBeU5pNDFJRGt1TVVNeU5pNDFJRGt1TmlBeU5pNHhJREV3TGpFZ01qVXVOU0F4TUM0eFNESXlRekl4TGpRZ01UQXVNU0F5TVNBNUxqWWdNakVnT1M0eFdrMHlNU0F4TWk0MVF6SXhJREV5SURJeExqUWdNVEV1TlNBeU1pQXhNUzQxU0RJMUxqVkRNallnTVRFdU5TQXlOaTQxSURFeExqa2dNall1TlNBeE1pNDFRekkyTGpVZ01UTWdNall1TVNBeE15NDFJREkxTGpVZ01UTXVOVWd5TWtNeU1TNDBJREV6TGpVZ01qRWdNVE11TVNBeU1TQXhNaTQxV2sweU1TQXhOa015TVNBeE5TNDFJREl4TGpRZ01UVWdNaklnTVRWSU1qVXVOVU15TmlBeE5TQXlOaTQxSURFMUxqUWdNall1TlNBeE5rTXlOaTQxSURFMkxqVWdNall1TVNBeE55QXlOUzQxSURFM1NESXlRekl4TGpRZ01UY2dNakVnTVRZdU5pQXlNU0F4TmxwTk1qVXVOU0F5TUM0MVNESXlRekl4TGpVZ01qQXVOU0F5TVNBeU1DNHhJREl4SURFNUxqVkRNakVnTVRndU9TQXlNUzQwSURFNExqVWdNaklnTVRndU5VZ3lOUzQxUXpJMklERTRMalVnTWpZdU5TQXhPQzQ1SURJMkxqVWdNVGt1TlVNeU5pNDFJREl3TGpFZ01qWXVNU0F5TUM0MUlESTFMalVnTWpBdU5Wb2lJR1pwYkd3OUlpTkdSak0zTlVVaUx6NEtQQzl6ZG1jK0NnPT1cIi8+XHJcbiAgICAgICAgICAgIDxoNCBjbGFzcz1cImZzLTIyIGZzLW1kLTE2IGZjLWJsYWNrIGZ3LW1lZGl1bSBtYi0wIGZsZXgtZ3Jvdy0xIGxpbmUtaGVpZ2h0LTEtMlwiPlxyXG4gICAgICAgICAgICAgIHt7IGZvcm1UaXRsZSB9fVxyXG4gICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiByZXF1ZXN0LWluZm8tLXN0YXR1cy1hY3Rpb25cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtaW5saW5lLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtZW5kXCI+XHJcbiAgICAgICAgICAgICAgQGlmICghaXNMb2FkaW5nKSB7XHJcbiAgICAgICAgICAgICAgICA8ZHMtc3RhdHVzXHJcbiAgICAgICAgICAgICAgICAgIHN0YXR1cz1cInt7c3RhdHVzQ2xhc3MoZm9ybT8uaGVhZGVyPy5zdGF0dXM/Llsna2V5J10pfX1cIiBjbGFzcz1cImhlYWRlci1zdGF0dXNcIj57eyBmb3JtPy5oZWFkZXI/LnN0YXR1cz8uWyd2YWx1ZSddIH19XHJcbiAgICAgICAgICAgICAgICA8L2RzLXN0YXR1cz5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgIDwhLS0gPGRzLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICpuZ0lmPVwiZm9ybT8uaW5ib3hJdGVtICYmIChmb3JtPy5pbmJveEl0ZW0/LmNhblJlcXVlc3RGZWVkYmFjayA9PSd0cnVlJ3x8IGZvcm0/LmluYm94SXRlbT8uaGFzRmVlZGJhY2s9PSd0cnVlJylcIlxyXG4gICAgICAgICAgICAgICAgIHNxdWFyZSBpY29uIHNpemU9XCJzbWFsbFwiPlxyXG4gICAgICAgICAgICAgICAgIDxkcy1pY29uIGljb249XCJjaGF0LW9cIiBjbGFzcz1cImZzLTIwIGZzLW1kLTE3IGZjLWNvcmFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAmbHQ7ISZuZGFzaDsgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2ZjLWdyZWVuJzpmZWVkQmFja0ljb24gPT0gJ2ZlZWRiYWNrUmVzcG9uZGVkJyAsICdmYy1yZWQnOiBmZWVkQmFja0ljb24gPT0gJ3Jlc3BvbmRUb0ZlZWRiYWNrJyAsICdmYy15ZWxsb3cnOiBmZWVkQmFja0ljb24gPT0gJ3dhaXRpbmdGZWVkYmFjayd9XCImbmRhc2g7Jmd0O1xyXG4gICAgICAgICAgICAgICAgIDwvZHMtaWNvbj5cclxuICAgICAgICAgICAgICAgPC9kcy1idXR0b24+LS0+XHJcbiAgICAgICAgICAgICAgPCEtLSBoaXN0b3J5LS0+XHJcbiAgICAgICAgICAgICAgPGRzLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJmb3JtPy5jb21tZW50c0Ryb3A/Lmxlbmd0aCA+IDAgJiYgIWlzTG9hZGluZ1wiIHNxdWFyZSBpY29uIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Db21tZW50c0Zvcm1DbGljaygpXCIgY2xhc3M9XCJoYXMtY29tbWVudHNcIj5cclxuICAgICAgICAgICAgICAgIDxkcy1pY29uIGljb249XCJjbG9ja1wiIGNsYXNzPVwiZmMtY29yYWwgZnMtMjAgZnMtbWQtMTdcIj48L2RzLWljb24+XHJcbiAgICAgICAgICAgICAgPC9kcy1idXR0b24+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWVzdC1pbmZvLS1mb290ZXJcIj5cclxuICAgICAgICAgIEBpZiAoIWlzTG9hZGluZykge1xyXG4gICAgICAgICAgICA8ZHMtYXZhdGFyXHJcbiAgICAgICAgICAgICAgaW1hZ2U9XCJ7e2Zvcm0/LmhlYWRlcj8ucmVxdWVzdGVyUGhvdG99fVwiIHNpemU9XCJ4eC1zbWFsbFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJkLWlubGluZS1mbGV4IGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInNob3dVc2VySW5mbygpXCI+PC9kcy1hdmF0YXI+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LXdyYXAgZmxleC1ncm93LTEgZ2FwLTEgZ2FwLXNtLTIgbGluZS1oZWlnaHQtMSByZXF1ZXN0LWluZm8tLWhlYWRlcl9fZGV0YWlsc1wiPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnbG9hZGluZy1iZyBsb2FkaW5nLXdpZHRoJzogaXNMb2FkaW5nfVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmcy0xMiBmdy1tZWRpdW0gZC1ub25lIGQtc20taW5saW5lLWJsb2NrXCI+e3sgY29yZVNlcnZpY2UuZ2V0U2hvcnROYW1lKGZvcm0/LmhlYWRlcj8uWydyZXF1ZXN0ZXJOYW1lJ10pIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLTIwXCI+JiM4MjI2Ozwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmcy0xMlwiIFtuZ0NsYXNzXT1cInsnbG9hZGluZy1iZyBsb2FkaW5nLXdpZHRoJzogaXNMb2FkaW5nfVwiPiB7eyBmb3JtPy5oZWFkZXI/LmZvcm1JZCB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmcy0yMFwiICpuZ0lmPVwiY3JlYXRpb25EYXRlXCI+JiM4MjI2Ozwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmcy0xMlwiIFtuZ0NsYXNzXT1cInsnbG9hZGluZy1iZyBsb2FkaW5nLXdpZHRoJzogaXNMb2FkaW5nfVwiPiB7eyBjcmVhdGlvbkRhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9zZWN0aW9uPlxyXG4gICAgPC9zZWN0aW9uPlxyXG5cclxuICA8L2Rpdj5cclxuXHJcblxyXG4gIDwhLS08bmctY29udGFpbmVyPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWVuZCBnYXAtMiBteS0yXCI+XHJcbiAgICAgIDxkcy1idXR0b25cclxuICAgICAgICAqbmdJZj1cImZvcm0/LmluYm94SXRlbSAmJiAhZm9ybS5zZWN0aW9uc1tmb3JtLnNlY3Rpb25zLmxlbmd0aCAtMV0uaGVhZGVyLnJlYWRPbmx5ICYmICFpc0xvYWRpbmdcIlxyXG4gICAgICAgIHNxdWFyZVxyXG4gICAgICAgIGljb25cclxuICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcclxuICAgICAgICBjbGFzcz1cImljb24tYnRuLXNoYWRvd1wiPlxyXG4gICAgICAgIDxkcy1pY29uXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J2ZjLXB1cnBsZScgOiAoZmxhZ1ByaW9yaXR5ID09PSAnMCcgfHwgIGZsYWdQcmlvcml0eSA9PT0gbnVsbCksJ2ZjLXllbGxvdycgOiBmbGFnUHJpb3JpdHkgPT09ICcxJywnZmMtZ3JlZW4nIDogZmxhZ1ByaW9yaXR5ID09PSAnMicsJ2ZjLWNvcmFsJyA6IGZsYWdQcmlvcml0eSA9PT0gJzMnfVwiXHJcbiAgICAgICAgICBpY29uPVwiZmxhZy1vXCIgY2xhc3M9XCJmcy0yMCBmcy1tZC0xNyBmYy1wdXJwbGVcIj5cclxuICAgICAgICA8L2RzLWljb24+XHJcbiAgICAgIDwvZHMtYnV0dG9uPlxyXG4gICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgcGFuZWxDbGFzcz1cImFjdGlvbi1tZW51XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJzZXRGbGFnUHJpb3JpdHkoJzAnKVwiPlxyXG4gICAgICAgICAgPGRzLWljb24gaWNvbj1cImZsYWctb1wiIGNsYXNzPVwiZmMtcHVycGxlIGZzLTIwIGZzLW1kLTE3XCI+PC9kcy1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwic2V0RmxhZ1ByaW9yaXR5KCcxJylcIj5cclxuICAgICAgICAgIDxkcy1pY29uIGljb249XCJmbGFnLW9cIiBjbGFzcz1cImZjLXllbGxvdyBmcy0yMCBmcy1tZC0xN1wiPjwvZHMtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cInNldEZsYWdQcmlvcml0eSgnMicpXCI+XHJcbiAgICAgICAgICA8ZHMtaWNvbiBpY29uPVwiZmxhZy1vXCIgY2xhc3M9XCJmYy1ncmVlbiBmcy0yMCBmcy1tZC0xN1wiPjwvZHMtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cInNldEZsYWdQcmlvcml0eSgnMycpXCI+XHJcbiAgICAgICAgICA8ZHMtaWNvbiBpY29uPVwiZmxhZy1vXCIgY2xhc3M9XCJmYy1jb3JhbCBmcy0yMCBmcy1tZC0xN1wiPjwvZHMtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9tYXQtbWVudT5cclxuXHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGhlYWRlciBjbGFzcz1cInNlcnZpY2UtaGVhZGVyIGJjLXdoaXRlIHAtMyBwLXNtLTQgcHktNCBnYXAtMyB7e3N0YXR1c0NsYXNzKGZvcm0/LmhlYWRlcj8uc3RhdHVzPy5bJ2tleSddKX19XCI+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1oZWFkZXItaWNvblwiPlxyXG4gICAgICAgIDxpbWdcclxuICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgICBzcmM9XCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIzYVdSMGFEMGlNekFpSUdobGFXZG9kRDBpTWpraUlIWnBaWGRDYjNnOUlqQWdNQ0F6TUNBeU9TSWdabWxzYkQwaWJtOXVaU0lnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JajRLUEhCaGRHZ2daRDBpVFRJMUxqRWdNRWcwTGpsRE1pNHlJREFnTUNBeUxqSWdNQ0EwTGpsV01qZ3VOa2d5TlM0eFF6STNMamdnTWpndU5pQXpNQ0F5Tmk0MElETXdJREl6TGpkV05DNDVRek13SURJdU1pQXlOeTQ0SURBZ01qVXVNU0F3V2sweUlEUXVPVU15SURNdU15QXpMak1nTWlBMExqa2dNa2d5TlM0eFF6STJMamNnTWlBeU9DQXpMak1nTWpnZ05DNDVWakl6TGpkRE1qZ2dNalV1TXlBeU5pNDNJREkyTGpZZ01qVXVNU0F5Tmk0MlNESldOQzQ1V2sweE1TNDFJRFl1TTBNM0xqRWdOaTR6SURNdU5TQTVMamtnTXk0MUlERTBMak5ETXk0MUlERTRMamNnTnk0eElESXlMak1nTVRFdU5TQXlNaTR6UXpFMUxqa2dNakl1TXlBeE9TNDFJREU0TGpjZ01Ua3VOU0F4TkM0elF6RTVMalVnT1M0NUlERTFMamtnTmk0eklERXhMalVnTmk0eldrMHhOUzR4SURFNVF6RTBMakVnTVRrdU9DQXhNaTQ0SURJd0xqSWdNVEV1TlNBeU1DNHlRekV3TGpJZ01qQXVNaUE0TGprZ01Ua3VPQ0EzTGprZ01UbERPQzQzSURFM0xqY2dNVEFnTVRjZ01URXVOU0F4TjBNeE15QXhOeUF4TkM0MElERTNMamdnTVRVdU1TQXhPVnBOTVRNdU1TQXhNeTQwUXpFekxqRWdNVFF1TXlBeE1pNDBJREUxSURFeExqVWdNVFZETVRBdU5pQXhOU0E1TGprZ01UUXVNeUE1TGprZ01UTXVORU01TGprZ01USXVOU0F4TUM0MklERXhMamdnTVRFdU5TQXhNUzQ0UXpFeUxqUWdNVEV1T0NBeE15NHhJREV5TGpVZ01UTXVNU0F4TXk0MFdrMHhOUzR4SURFekxqUkRNVFV1TVNBeE1TNDBJREV6TGpVZ09TNDRJREV4TGpVZ09TNDRRemt1TlNBNUxqZ2dOeTQ1SURFeExqUWdOeTQ1SURFekxqUkROeTQ1SURFMExqSWdPQzR5SURFMUlEZ3VOeUF4TlM0M1F6Y3VPQ0F4Tmk0eElEY3VNU0F4Tmk0NElEWXVOU0F4Tnk0MlF6VXVPQ0F4Tmk0MklEVXVOU0F4TlM0MUlEVXVOU0F4TkM0elF6VXVOU0F4TVNBNExqSWdPQzR6SURFeExqVWdPQzR6UXpFMExqZ2dPQzR6SURFM0xqVWdNVEVnTVRjdU5TQXhOQzR6UXpFM0xqVWdNVFV1TlNBeE55NHlJREUyTGpZZ01UWXVOU0F4Tnk0MlF6RTFMamtnTVRZdU9DQXhOUzR5SURFMkxqSWdNVFF1TXlBeE5TNDNRekUwTGpnZ01UVXVNU0F4TlM0eElERTBMaklnTVRVdU1TQXhNeTQwV2sweU1TQTVMakZETWpFZ09DNDJJREl4TGpRZ09DNHhJREl5SURndU1VZ3lOUzQxUXpJMklEZ3VNU0F5Tmk0MUlEZ3VOU0F5Tmk0MUlEa3VNVU15Tmk0MUlEa3VOaUF5Tmk0eElERXdMakVnTWpVdU5TQXhNQzR4U0RJeVF6SXhMalFnTVRBdU1TQXlNU0E1TGpZZ01qRWdPUzR4V2sweU1TQXhNaTQxUXpJeElERXlJREl4TGpRZ01URXVOU0F5TWlBeE1TNDFTREkxTGpWRE1qWWdNVEV1TlNBeU5pNDFJREV4TGprZ01qWXVOU0F4TWk0MVF6STJMalVnTVRNZ01qWXVNU0F4TXk0MUlESTFMalVnTVRNdU5VZ3lNa015TVM0MElERXpMalVnTWpFZ01UTXVNU0F5TVNBeE1pNDFXazB5TVNBeE5rTXlNU0F4TlM0MUlESXhMalFnTVRVZ01qSWdNVFZJTWpVdU5VTXlOaUF4TlNBeU5pNDFJREUxTGpRZ01qWXVOU0F4TmtNeU5pNDFJREUyTGpVZ01qWXVNU0F4TnlBeU5TNDFJREUzU0RJeVF6SXhMalFnTVRjZ01qRWdNVFl1TmlBeU1TQXhObHBOTWpVdU5TQXlNQzQxU0RJeVF6SXhMalVnTWpBdU5TQXlNU0F5TUM0eElESXhJREU1TGpWRE1qRWdNVGd1T1NBeU1TNDBJREU0TGpVZ01qSWdNVGd1TlVneU5TNDFRekkySURFNExqVWdNall1TlNBeE9DNDVJREkyTGpVZ01Ua3VOVU15Tmk0MUlESXdMakVnTWpZdU1TQXlNQzQxSURJMUxqVWdNakF1TlZvaUlHWnBiR3c5SWlOR1JqTTNOVVVpTHo0S1BDOXpkbWMrQ2c9PVwiLz5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTEgZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtc20tcm93IGFsaWduLWl0ZW1zLXNtLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxyXG4gICAgICAgICAgPGgxIGNsYXNzPVwiZnMtMjAgZnMtbWQtMTYgZnctYm9sZCBmYy1ibGFjayBoZWFkZXItdGl0bGUgbS0wXCI+e3sgZm9ybVRpdGxlIH19XHJcbiAgICAgICAgICAgIEBpZiAoc2VydmljZUZhcS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICA8ZHMtaWNvbiBpY29uPVwiaW5mb1wiIGNsYXNzPVwiZnMtMjIgZmMtZGFyay1ncmF5IGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9wZW5GYXEoKVwiPlxyXG4gICAgICAgICAgICAgIDwvZHMtaWNvbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9oMT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItdXNlciBkLWZsZXggYWxpZ24taXRlbXMtc20tY2VudGVyIGdhcC0yIG10LXNtLTFcIj5cclxuICAgICAgICAgICAgQGlmICghaXNMb2FkaW5nKSB7XHJcbiAgICAgICAgICAgICAgPGRzLWF2YXRhclxyXG4gICAgICAgICAgICAgICAgaW1hZ2U9XCJ7e2Zvcm0/LmhlYWRlcj8ucmVxdWVzdGVyUGhvdG99fVwiIHNpemU9XCJ4eC1zbWFsbFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImQtaW5saW5lLWZsZXggY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic2hvd1VzZXJJbmZvKClcIj48L2RzLWF2YXRhcj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZnMtMTIgdGV4dC10cnVuY2F0ZSBkLXNtLWJsb2NrIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInNob3dVc2VySW5mbygpXCJcclxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2xvYWRpbmctYmcgbG9hZGluZy13aWR0aCc6IGlzTG9hZGluZ31cIj57eyBjb3JlU2VydmljZS5nZXRTaG9ydE5hbWUoZm9ybT8uaGVhZGVyPy5yZXF1ZXN0ZXJOYW1lKSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPG1hdC1kaXZpZGVyIGNsYXNzPVwiZGl2aWRlciBjaXJjbGUgbXgtMiBkLW5vbmUgZC1zbS1ibG9ja1wiPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnMtMTJcIiBbbmdDbGFzc109XCJ7J2xvYWRpbmctYmcgbG9hZGluZy13aWR0aCc6IGlzTG9hZGluZ31cIj57eyBmb3JtPy5oZWFkZXI/LmZvcm1JZCB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgQGlmIChjcmVhdGlvbkRhdGUpIHtcclxuICAgICAgICAgICAgICA8bWF0LWRpdmlkZXIgY2xhc3M9XCJkaXZpZGVyIGNpcmNsZSBteC0yIGQtbm9uZSBkLXNtLWJsb2NrXCI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLTE0XCIgW25nQ2xhc3NdPVwieydsb2FkaW5nLWJnIGxvYWRpbmctd2lkdGgnOiBpc0xvYWRpbmd9XCI+e3sgY3JlYXRpb25EYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1hY3Rpb25zIGQtZmxleCBmbGV4LXJvdyBmbGV4LXNtLWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBqdXN0aWZ5LWNvbnRlbnQtc20tY2VudGVyIGdhcC0yIG10LTIgbXQtc20tMFwiPlxyXG4gICAgICAgICAgQGlmICghaXNMb2FkaW5nKSB7XHJcbiAgICAgICAgICAgIDxkcy1zdGF0dXNcclxuICAgICAgICAgICAgICBzdGF0dXM9XCJ7e3N0YXR1c0NsYXNzKGZvcm0/LmhlYWRlcj8uc3RhdHVzPy5bJ2tleSddKX19XCIgY2xhc3M9XCJoZWFkZXItc3RhdHVzXCI+e3sgZm9ybT8uaGVhZGVyPy5zdGF0dXM/LlsndmFsdWUnXSB9fVxyXG4gICAgICAgICAgICA8L2RzLXN0YXR1cz5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1lbmQgZ2FwLTJcIj5cclxuICAgICAgICAgICAgJmx0OyEmbmRhc2g7IGZlZWRiYWNrJm5kYXNoOyZndDtcclxuICAgICAgICAgICAgJmx0OyEmbmRhc2g7ICAgICAgICAgICAgKm5nSWY9XCJmb3JtPy5pbmJveEl0ZW0gJiYgKGZvcm0/LmluYm94SXRlbT8uY2FuUmVxdWVzdEZlZWRiYWNrID09PSd0cnVlJ3x8IGZvcm0/LmluYm94SXRlbT8uaGFzRmVlZGJhY2s9PT0ndHJ1ZScpICYmICFpc0xvYWRpbmdcIiZuZGFzaDsmZ3Q7XHJcbiAgICAgICAgICAgICZsdDshJm5kYXNoOyAgPGRzLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgc3F1YXJlIGljb24gc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cImZlZWRiYWNrKClcIj5cclxuICAgICAgICAgICAgICAgIDxkcy1pY29uXHJcbiAgICAgICAgICAgICAgICAgIGljb249XCJjaGF0LW9cIiBjbGFzcz1cImZzLTIwIGZzLW1kLTE3IGZjLWNvcmFsXCJcclxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydmYy1ncmVlbic6ZmVlZEJhY2tJY29uID09PSAnZmVlZGJhY2tSZXNwb25kZWQnICwgJ2ZjLXJlZCc6IGZlZWRCYWNrSWNvbiA9PT0gJ3Jlc3BvbmRUb0ZlZWRiYWNrJyAsICdmYy15ZWxsb3cnOiBmZWVkQmFja0ljb24gPT09ICd3YWl0aW5nRmVlZGJhY2snfVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kcy1pY29uPlxyXG4gICAgICAgICAgICAgIDwvZHMtYnV0dG9uPiZuZGFzaDsmZ3Q7XHJcbiAgICAgICAgICAgIDxkcy1idXR0b25cclxuICAgICAgICAgICAgICAqbmdJZj1cImZvcm0/LmNvbW1lbnRzRHJvcD8ubGVuZ3RoID4gMCAmJiAhaXNMb2FkaW5nXCIgc3F1YXJlIGljb24gc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwib25Db21tZW50c0Zvcm1DbGljaygpXCIgY2xhc3M9XCJoYXMtY29tbWVudHNcIj5cclxuICAgICAgICAgICAgICA8ZHMtaWNvbiBpY29uPVwiY2xvY2tcIiBjbGFzcz1cImZjLWNvcmFsIGZzLTIwIGZzLW1kLTE3XCI+PC9kcy1pY29uPlxyXG4gICAgICAgICAgICA8L2RzLWJ1dHRvbj5cclxuICAgICAgICAgICAgQGlmIChzaG93QXBwcm92YWxIaXN0b3J5KSB7XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxkcy1idXR0b25cclxuICAgICAgICAgICAgICAgICAgY29sb3I9XCJ3aGl0ZVwiIHNoYXBlPVwidGV4dFwiIHNxdWFyZSBzaXplPVwic21hbGxcIiBbc2F0UG9wb3ZlckFuY2hvcl09XCJ3b3JrZmxvd1wiXHJcbiAgICAgICAgICAgICAgICAgICN3b3JrZmxvd0FuY2hvcj1cInNhdFBvcG92ZXJBbmNob3JcIiAoY2xpY2spPVwid29ya2Zsb3dBbmNob3IucG9wb3Zlci5vcGVuKClcIj5cclxuICAgICAgICAgICAgICAgICAgPHNsb3QgbmFtZT1cInByZWZpeFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkcy1pY29uIGljb249XCJ3b3JrZmxvd1wiIGNsYXNzPVwiZnMtMjRcIj48L2RzLWljb24+XHJcbiAgICAgICAgICAgICAgICAgIDwvc2xvdD5cclxuICAgICAgICAgICAgICAgIDwvZHMtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPHNhdC1wb3BvdmVyXHJcbiAgICAgICAgICAgICAgICAgICN3b3JrZmxvdyBbYW5jaG9yXT1cIndvcmtmbG93QW5jaG9yXCIgW2hhc0JhY2tkcm9wXT1cInRydWVcIiB2ZXJ0aWNhbEFsaWduPVwiYmVsb3dcIlxyXG4gICAgICAgICAgICAgICAgICBob3Jpem9udGFsQWxpZ249XCJlbmRcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtcG9wb3ZlciBwLTNcIiBzdHlsZT1cIm1pbi13aWR0aDogMzMwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRzLWFwcHJvdmFscyAqbmdJZj1cImFwcHJvdmFsSGlzdG9yeVwiIGNsYXNzPVwicG9wb3Zlci1hcHByb3ZhbHNcIiBhcHByb3ZhbHNEYXRhPVwie3thcHByb3ZhbHN9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZHMtYXBwcm92YWxzPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvc2F0LXBvcG92ZXI+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2hlYWRlcj5cclxuICA8L25nLWNvbnRhaW5lcj4tLT5cclxufVxyXG4iXX0=
|
package/esm2022/lib/components/shared-components/action-buttons/action-buttons.component.mjs
CHANGED
|
@@ -16,7 +16,6 @@ export class ActionButtonsComponent {
|
|
|
16
16
|
dialog;
|
|
17
17
|
toasterService;
|
|
18
18
|
cdRef;
|
|
19
|
-
sidenavService;
|
|
20
19
|
lovOptions;
|
|
21
20
|
lovType;
|
|
22
21
|
fieldsForm;
|
|
@@ -32,14 +31,13 @@ export class ActionButtonsComponent {
|
|
|
32
31
|
'SUBMIT': false
|
|
33
32
|
};
|
|
34
33
|
submittingForm;
|
|
35
|
-
constructor(i18n, actionStateService, coreService, dialog, toasterService, cdRef
|
|
34
|
+
constructor(i18n, actionStateService, coreService, dialog, toasterService, cdRef) {
|
|
36
35
|
this.i18n = i18n;
|
|
37
36
|
this.actionStateService = actionStateService;
|
|
38
37
|
this.coreService = coreService;
|
|
39
38
|
this.dialog = dialog;
|
|
40
39
|
this.toasterService = toasterService;
|
|
41
40
|
this.cdRef = cdRef;
|
|
42
|
-
this.sidenavService = sidenavService;
|
|
43
41
|
this.actionStateService.actionStates$.subscribe(states => this.actionStates = states);
|
|
44
42
|
}
|
|
45
43
|
ngAfterViewInit() {
|
|
@@ -102,7 +100,7 @@ export class ActionButtonsComponent {
|
|
|
102
100
|
}
|
|
103
101
|
return '';
|
|
104
102
|
}
|
|
105
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ActionButtonsComponent, deps: [{ token: i1.CoreI18nService }, { token: i1.ActionStateService }, { token: i1.CoreService }, { token: i2.MatDialog }, { token: i3.ToastrService }, { token: i0.ChangeDetectorRef }
|
|
103
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ActionButtonsComponent, deps: [{ token: i1.CoreI18nService }, { token: i1.ActionStateService }, { token: i1.CoreService }, { token: i2.MatDialog }, { token: i3.ToastrService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
106
104
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: ActionButtonsComponent, isStandalone: true, selector: "lib-action-buttons", inputs: { lovOptions: "lovOptions", lovType: "lovType", fieldsForm: "fieldsForm", form: "form", section: "section", sections: "sections", showApprovalCycle: "showApprovalCycle", customCall: "customCall" }, outputs: { resetFormEmit: "resetFormEmit", customCallEmit: "customCallEmit" }, ngImport: i0, template: "<div class=\"mt-4\">\r\n @if (lovType === 'button') {\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button shape=\"text\" color=\"red\" (click)=\"resetForm()\">\r\n <span class=\"fs-16 fw-medium\">{{ i18n.translate('reset') }}</span>\r\n </ds-button>\r\n @if (form?.sections?.length == 1 && showApprovalCycle) {\r\n <lib-approvals-workflow [section]=\"section\" [form]=\"form\"></lib-approvals-workflow>\r\n }\r\n <div class=\"d-flex flex-wrap align-items-center flex-grow-1 flex-row-reverse gap-3\">\r\n @for (item of lovOptions; track $index) {\r\n <ds-button\r\n loading=\"{{isSubmitting[item.value]}}\"\r\n [ngClass]=\"{'disabled': !actionStates[item.value] || submittingForm}\"\r\n shape=\"{{ buttonShape(item) }}\"\r\n color=\"{{ buttonColor(item) }}\"\r\n (click)=\"onSubmit(item?.value)\">\r\n {{ item?.['description'] }}\r\n </ds-button>\r\n }\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button shape=\"text\" color=\"red\" (click)=\"resetForm()\">\r\n <span class=\"fs-16 fw-medium\">{{ i18n.translate('reset') }}</span>\r\n </ds-button>\r\n @if (form?.sections?.length == 1 && showApprovalCycle) {\r\n <lib-approvals-workflow [section]=\"section\" [form]=\"form\"></lib-approvals-workflow>\r\n }\r\n <div class=\"d-flex flex-wrap align-items-center flex-grow-1 flex-row-reverse gap-3\">\r\n <ds-button\r\n [ngClass]=\"{'disabled': !actionStates['SUBMIT'] || submittingForm}\"\r\n loading=\"{{isSubmitting['SUBMIT']}}\"\r\n (click)=\"onSubmit('SUBMIT')\">\r\n {{ i18n.translate('submit') }}\r\n </ds-button>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ApprovalsWorkflowComponent, selector: "lib-approvals-workflow", inputs: ["section", "form"] }] });
|
|
107
105
|
}
|
|
108
106
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ActionButtonsComponent, decorators: [{
|
|
@@ -114,7 +112,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
114
112
|
NgForOf,
|
|
115
113
|
ApprovalsWorkflowComponent
|
|
116
114
|
], template: "<div class=\"mt-4\">\r\n @if (lovType === 'button') {\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button shape=\"text\" color=\"red\" (click)=\"resetForm()\">\r\n <span class=\"fs-16 fw-medium\">{{ i18n.translate('reset') }}</span>\r\n </ds-button>\r\n @if (form?.sections?.length == 1 && showApprovalCycle) {\r\n <lib-approvals-workflow [section]=\"section\" [form]=\"form\"></lib-approvals-workflow>\r\n }\r\n <div class=\"d-flex flex-wrap align-items-center flex-grow-1 flex-row-reverse gap-3\">\r\n @for (item of lovOptions; track $index) {\r\n <ds-button\r\n loading=\"{{isSubmitting[item.value]}}\"\r\n [ngClass]=\"{'disabled': !actionStates[item.value] || submittingForm}\"\r\n shape=\"{{ buttonShape(item) }}\"\r\n color=\"{{ buttonColor(item) }}\"\r\n (click)=\"onSubmit(item?.value)\">\r\n {{ item?.['description'] }}\r\n </ds-button>\r\n }\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button shape=\"text\" color=\"red\" (click)=\"resetForm()\">\r\n <span class=\"fs-16 fw-medium\">{{ i18n.translate('reset') }}</span>\r\n </ds-button>\r\n @if (form?.sections?.length == 1 && showApprovalCycle) {\r\n <lib-approvals-workflow [section]=\"section\" [form]=\"form\"></lib-approvals-workflow>\r\n }\r\n <div class=\"d-flex flex-wrap align-items-center flex-grow-1 flex-row-reverse gap-3\">\r\n <ds-button\r\n [ngClass]=\"{'disabled': !actionStates['SUBMIT'] || submittingForm}\"\r\n loading=\"{{isSubmitting['SUBMIT']}}\"\r\n (click)=\"onSubmit('SUBMIT')\">\r\n {{ i18n.translate('submit') }}\r\n </ds-button>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n" }]
|
|
117
|
-
}], ctorParameters: () => [{ type: i1.CoreI18nService }, { type: i1.ActionStateService }, { type: i1.CoreService }, { type: i2.MatDialog }, { type: i3.ToastrService }, { type: i0.ChangeDetectorRef }
|
|
115
|
+
}], ctorParameters: () => [{ type: i1.CoreI18nService }, { type: i1.ActionStateService }, { type: i1.CoreService }, { type: i2.MatDialog }, { type: i3.ToastrService }, { type: i0.ChangeDetectorRef }], propDecorators: { lovOptions: [{
|
|
118
116
|
type: Input
|
|
119
117
|
}], lovType: [{
|
|
120
118
|
type: Input
|
|
@@ -135,4 +133,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
135
133
|
}], customCallEmit: [{
|
|
136
134
|
type: Output
|
|
137
135
|
}] } });
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJ1dHRvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2FjdGlvbi1idXR0b25zL2FjdGlvbi1idXR0b25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50cy9hY3Rpb24tYnV0dG9ucy9hY3Rpb24tYnV0dG9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1DLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqSixPQUFPLEtBQUssU0FBUyxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHN0MsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDdkYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFJeEQsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sOEVBQThFLENBQUM7Ozs7O0FBZ0J4SCxNQUFNLE9BQU8sc0JBQXNCO0lBaUJkO0lBQ0M7SUFDQTtJQUNEO0lBQ0M7SUFDQTtJQUNBO0lBdEJYLFVBQVUsQ0FBUTtJQUNsQixPQUFPLENBQVM7SUFDaEIsVUFBVSxDQUFZO0lBQ3RCLElBQUksQ0FBTztJQUNYLE9BQU8sQ0FBVTtJQUNqQixRQUFRLENBQVk7SUFDcEIsaUJBQWlCLEdBQVksSUFBSSxD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R0FuR1Usc0JBQXNCOzJGQUF0QixzQkFBc0IsMldDM0JuQyx3MERBeUNBLDBERHJCSSxPQUFPLG9GQUlQLDBCQUEwQjs7MkZBR2pCLHNCQUFzQjtrQkFkbEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FHbEIsSUFBSSxXQUNQLENBQUMsc0JBQXNCLEVBQUUsZ0JBQWdCLENBQUMsV0FDMUM7d0JBQ1AsT0FBTzt3QkFDUCxjQUFjO3dCQUNkLElBQUk7d0JBQ0osT0FBTzt3QkFDUCwwQkFBMEI7cUJBQzNCO2dRQUdRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgTk9fRVJST1JTX1NDSEVNQSwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gXCIuLi8uLi8uLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHtOZ0NsYXNzLCBOZ0Zvck9mLCBOZ0lmfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7SW5wdXRDb21wb25lbnR9IGZyb20gXCIuLi9mb3JtLWZpZWxkXCI7XHJcbmltcG9ydCB7QWN0aW9uU3RhdGVTZXJ2aWNlLCBDb3JlSTE4blNlcnZpY2UsIENvcmVTZXJ2aWNlLCBTaWRlbmF2U2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzXCI7XHJcbmltcG9ydCB7Rm9ybSwgU2VjdGlvbn0gZnJvbSBcIi4uLy4uLy4uL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHtTdWJtaXREaWFsb2dDb21wb25lbnR9IGZyb20gXCIuLi9kaWFsb2dzL3N1Ym1pdC1kaWFsb2cvc3VibWl0LWRpYWxvZy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtOb29wU2Nyb2xsU3RyYXRlZ3l9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xyXG5pbXBvcnQge01hdERpYWxvZ30gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQge0Zvcm1Hcm91cH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7VG9hc3RyU2VydmljZX0gZnJvbSBcIm5neC10b2FzdHJcIjtcclxuaW1wb3J0IHtBcHByb3ZhbHNXb3JrZmxvd0NvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2FwcC1jb21wb25lbnQtc2VjdGlvbnMvYXBwcm92YWxzLXdvcmtmbG93L2FwcHJvdmFscy13b3JrZmxvdy5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWFjdGlvbi1idXR0b25zJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLWJ1dHRvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9hY3Rpb24tYnV0dG9ucy5jb21wb25lbnQuc2NzcycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQV0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdDbGFzcyxcclxuICAgIElucHV0Q29tcG9uZW50LFxyXG4gICAgTmdJZixcclxuICAgIE5nRm9yT2YsXHJcbiAgICBBcHByb3ZhbHNXb3JrZmxvd0NvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFjdGlvbkJ1dHRvbnNDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSBsb3ZPcHRpb25zOiBhbnlbXTtcclxuICBASW5wdXQoKSBsb3ZUeXBlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZmllbGRzRm9ybTogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIGZvcm06IEZvcm07XHJcbiAgQElucHV0KCkgc2VjdGlvbjogU2VjdGlvbjtcclxuICBASW5wdXQoKSBzZWN0aW9uczogU2VjdGlvbltdO1xyXG4gIEBJbnB1dCgpIHNob3dBcHByb3ZhbEN5Y2xlOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBjdXN0b21DYWxsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIHJlc2V0Rm9ybUVtaXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjdXN0b21DYWxsRW1pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgYWN0aW9uU3RhdGVzOiB7IFthY3Rpb246IHN0cmluZ106IGJvb2xlYW4gfTtcclxuICBpc1N1Ym1pdHRpbmcgPSB7XHJcbiAgICAnU1VCTUlUJzpmYWxzZVxyXG4gIH07XHJcbiAgc3VibWl0dGluZ0Zvcm06IGJvb2xlYW47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpMThuOiBDb3JlSTE4blNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBhY3Rpb25TdGF0ZVNlcnZpY2U6IEFjdGlvblN0YXRlU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIGNvcmVTZXJ2aWNlOiBDb3JlU2VydmljZSxcclxuICAgICAgICAgICAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0b2FzdGVyU2VydmljZTogVG9hc3RyU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICAgICAgICBwcml2YXRlIHNpZGVuYXZTZXJ2aWNlOiBTaWRlbmF2U2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5hY3Rpb25TdGF0ZVNlcnZpY2UuYWN0aW9uU3RhdGVzJC5zdWJzY3JpYmUoc3RhdGVzID0+IHRoaXMuYWN0aW9uU3RhdGVzID0gc3RhdGVzKTtcclxuXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmxvdk9wdGlvbnM/LmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgdGhpcy5pc1N1Ym1pdHRpbmdbaXRlbS52YWx1ZV0gPSBmYWxzZVxyXG4gICAgfSlcclxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRGb3JtKCkge1xyXG4gICAgdGhpcy5yZXNldEZvcm1FbWl0LmVtaXQoKVxyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoYWN0aW9uOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmN1c3RvbUNhbGwpIHtcclxuICAgICAgdGhpcy5jdXN0b21DYWxsRW1pdC5lbWl0KGFjdGlvbilcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc3VibWl0Rm9ybShhY3Rpb24sIHRoaXMuc2VjdGlvbilcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN1Ym1pdEZvcm0oYWN0aW9uOiBzdHJpbmcsIHNlY3Rpb246IFNlY3Rpb24pIHtcclxuICAgIGNvbnN0IGxhc3RTZWN0aW9uID0gdGhpcy5zZWN0aW9uc1t0aGlzLnNlY3Rpb25zLmxlbmd0aCAtIDFdO1xyXG5cclxuICAgIGlmIChsYXN0U2VjdGlvbi5ib2R5LmRldGFpbHMuZGVjaXNpb24pIHtcclxuICAgICAgbGFzdFNlY3Rpb24uYm9keS5kZXRhaWxzLmRlY2lzaW9uID0ge2tleTogYWN0aW9ufTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzU3VibWl0dGluZ1thY3Rpb25dID0gdHJ1ZTtcclxuICAgIHRoaXMuc3VibWl0dGluZ0Zvcm0gPSB0cnVlO1xyXG5cclxuICAgIHRoaXMuY29yZVNlcnZpY2Uuc3VibWl0Rm9ybShzZWN0aW9uLCBhY3Rpb24pLnN1YnNjcmliZShcclxuICAgICAgKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2UpIHtcclxuICAgICAgICAgIHRoaXMuaXNTdWJtaXR0aW5nW2FjdGlvbl0gPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc3VjY2VzcyhyZXNwb25zZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICBlcnI/LmVycm9yPy5tZXRhPy5tZXNzYWdlcz8uZm9yRWFjaCgobXNnKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnN1Ym1pdHRpbmdGb3JtID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmlzU3VibWl0dGluZ1thY3Rpb25dID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKG1zZy5tZXNzYWdlKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHN1Y2Nlc3MocmVzcG9uc2UpIHtcclxuICAgIGNvbnNvbGUubG9nKCdzdWNjZXNzJywgcmVzcG9uc2UpXHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFN1Ym1pdERpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiByZXNwb25zZSxcclxuICAgICAgcGFuZWxDbGFzczogWydtYWluLXBvcHVwJywgJ2NvbmZpcm0tZGlhbG9nJ10sXHJcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiBuZXcgTm9vcFNjcm9sbFN0cmF0ZWd5KCksXHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYnV0dG9uU2hhcGUoaXRlbSkge1xyXG4gICAgaWYgKGl0ZW0/LnZhbHVlID09PSBjb25zdGFudHMuRk9STV9TVEFUVVNfUkVKRUNUIHx8IGl0ZW0/LnZhbHVlID09PSBjb25zdGFudHMuRk9STV9TVEFUVVNfQ0FOQ0VMIHx8IGl0ZW0/LnZhbHVlID09PSBjb25zdGFudHMuRk9STV9TVEFUVVNfU0VORF9CQUNLKSB7XHJcbiAgICAgIHJldHVybiAnb3V0bGluZSc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBidXR0b25Db2xvcihpdGVtKSB7XHJcbiAgICBpZiAoaXRlbT8udmFsdWUgPT09IGNvbnN0YW50cy5GT1JNX1NUQVRVU19SRUpFQ1QgfHwgaXRlbT8udmFsdWUgPT09IGNvbnN0YW50cy5GT1JNX1NUQVRVU19TRU5EX0JBQ0spIHtcclxuICAgICAgcmV0dXJuICdyZWQnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibXQtNFwiPlxyXG4gIEBpZiAobG92VHlwZSA9PT0gJ2J1dHRvbicpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zXCI+XHJcbiAgICAgIDxkcy1idXR0b24gc2hhcGU9XCJ0ZXh0XCIgY29sb3I9XCJyZWRcIiAoY2xpY2spPVwicmVzZXRGb3JtKClcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImZzLTE2IGZ3LW1lZGl1bVwiPnt7IGkxOG4udHJhbnNsYXRlKCdyZXNldCcpIH19PC9zcGFuPlxyXG4gICAgICA8L2RzLWJ1dHRvbj5cclxuICAgICAgQGlmIChmb3JtPy5zZWN0aW9ucz8ubGVuZ3RoID09IDEgJiYgc2hvd0FwcHJvdmFsQ3ljbGUpIHtcclxuICAgICAgICA8bGliLWFwcHJvdmFscy13b3JrZmxvdyBbc2VjdGlvbl09XCJzZWN0aW9uXCIgW2Zvcm1dPVwiZm9ybVwiPjwvbGliLWFwcHJvdmFscy13b3JrZmxvdz5cclxuICAgICAgfVxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtd3JhcCBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1ncm93LTEgZmxleC1yb3ctcmV2ZXJzZSBnYXAtM1wiPlxyXG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgbG92T3B0aW9uczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICA8ZHMtYnV0dG9uXHJcbiAgICAgICAgICAgIGxvYWRpbmc9XCJ7e2lzU3VibWl0dGluZ1tpdGVtLnZhbHVlXX19XCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieydkaXNhYmxlZCc6ICFhY3Rpb25TdGF0ZXNbaXRlbS52YWx1ZV0gfHwgc3VibWl0dGluZ0Zvcm19XCJcclxuICAgICAgICAgICAgc2hhcGU9XCJ7eyBidXR0b25TaGFwZShpdGVtKSB9fVwiXHJcbiAgICAgICAgICAgIGNvbG9yPVwie3sgYnV0dG9uQ29sb3IoaXRlbSkgfX1cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25TdWJtaXQoaXRlbT8udmFsdWUpXCI+XHJcbiAgICAgICAgICAgIHt7IGl0ZW0/LlsnZGVzY3JpcHRpb24nXSB9fVxyXG4gICAgICAgICAgPC9kcy1idXR0b24+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIH0gQGVsc2Uge1xyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIj5cclxuICAgICAgPGRzLWJ1dHRvbiBzaGFwZT1cInRleHRcIiBjb2xvcj1cInJlZFwiIChjbGljayk9XCJyZXNldEZvcm0oKVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZnMtMTYgZnctbWVkaXVtXCI+e3sgaTE4bi50cmFuc2xhdGUoJ3Jlc2V0JykgfX08L3NwYW4+XHJcbiAgICAgIDwvZHMtYnV0dG9uPlxyXG4gICAgICBAaWYgKGZvcm0/LnNlY3Rpb25zPy5sZW5ndGggPT0gMSAmJiBzaG93QXBwcm92YWxDeWNsZSkge1xyXG4gICAgICAgIDxsaWItYXBwcm92YWxzLXdvcmtmbG93IFtzZWN0aW9uXT1cInNlY3Rpb25cIiBbZm9ybV09XCJmb3JtXCI+PC9saWItYXBwcm92YWxzLXdvcmtmbG93PlxyXG4gICAgICB9XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC13cmFwIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWdyb3ctMSBmbGV4LXJvdy1yZXZlcnNlIGdhcC0zXCI+XHJcbiAgICAgIDxkcy1idXR0b25cclxuICAgICAgICBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzogIWFjdGlvblN0YXRlc1snU1VCTUlUJ10gfHwgc3VibWl0dGluZ0Zvcm19XCJcclxuICAgICAgICBsb2FkaW5nPVwie3tpc1N1Ym1pdHRpbmdbJ1NVQk1JVCddfX1cIlxyXG4gICAgICAgIChjbGljayk9XCJvblN1Ym1pdCgnU1VCTUlUJylcIj5cclxuICAgICAgICB7eyBpMThuLnRyYW5zbGF0ZSgnc3VibWl0JykgfX1cclxuICAgICAgPC9kcy1idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJ1dHRvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2FjdGlvbi1idXR0b25zL2FjdGlvbi1idXR0b25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50cy9hY3Rpb24tYnV0dG9ucy9hY3Rpb24tYnV0dG9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1DLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqSixPQUFPLEtBQUssU0FBUyxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHN0MsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDdkYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFJeEQsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sOEVBQThFLENBQUM7Ozs7O0FBZ0J4SCxNQUFNLE9BQU8sc0JBQXNCO0lBaUJkO0lBQ0M7SUFDQTtJQUNEO0lBQ0M7SUFDQTtJQXJCWCxVQUFVLENBQVE7SUFDbEIsT0FBTyxDQUFTO0lBQ2hCLFVBQVUsQ0FBWTtJQUN0QixJQUFJLENBQU87SUFDWCxPQUFPLENBQVU7SUFDakIsUUFBUSxDQUFZO0lBQ3BCLGlCQUFpQixHQUFZLElBQUksQ0FBQztJ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RHJCSSxPQUFPLG9GQUlQLDBCQUEwQjs7MkZBR2pCLHNCQUFzQjtrQkFkbEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FHbEIsSUFBSSxXQUNQLENBQUMsc0JBQXNCLEVBQUUsZ0JBQWdCLENBQUMsV0FDMUM7d0JBQ1AsT0FBTzt3QkFDUCxjQUFjO3dCQUNkLElBQUk7d0JBQ0osT0FBTzt3QkFDUCwwQkFBMEI7cUJBQzNCO21PQUdRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgTk9fRVJST1JTX1NDSEVNQSwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gXCIuLi8uLi8uLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHtOZ0NsYXNzLCBOZ0Zvck9mLCBOZ0lmfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7SW5wdXRDb21wb25lbnR9IGZyb20gXCIuLi9mb3JtLWZpZWxkXCI7XHJcbmltcG9ydCB7QWN0aW9uU3RhdGVTZXJ2aWNlLCBDb3JlSTE4blNlcnZpY2UsIENvcmVTZXJ2aWNlLCBTaWRlbmF2U2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzXCI7XHJcbmltcG9ydCB7Rm9ybSwgU2VjdGlvbn0gZnJvbSBcIi4uLy4uLy4uL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHtTdWJtaXREaWFsb2dDb21wb25lbnR9IGZyb20gXCIuLi9kaWFsb2dzL3N1Ym1pdC1kaWFsb2cvc3VibWl0LWRpYWxvZy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtOb29wU2Nyb2xsU3RyYXRlZ3l9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xyXG5pbXBvcnQge01hdERpYWxvZ30gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQge0Zvcm1Hcm91cH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7VG9hc3RyU2VydmljZX0gZnJvbSBcIm5neC10b2FzdHJcIjtcclxuaW1wb3J0IHtBcHByb3ZhbHNXb3JrZmxvd0NvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2FwcC1jb21wb25lbnQtc2VjdGlvbnMvYXBwcm92YWxzLXdvcmtmbG93L2FwcHJvdmFscy13b3JrZmxvdy5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWFjdGlvbi1idXR0b25zJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLWJ1dHRvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9hY3Rpb24tYnV0dG9ucy5jb21wb25lbnQuc2NzcycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQV0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdDbGFzcyxcclxuICAgIElucHV0Q29tcG9uZW50LFxyXG4gICAgTmdJZixcclxuICAgIE5nRm9yT2YsXHJcbiAgICBBcHByb3ZhbHNXb3JrZmxvd0NvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFjdGlvbkJ1dHRvbnNDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSBsb3ZPcHRpb25zOiBhbnlbXTtcclxuICBASW5wdXQoKSBsb3ZUeXBlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZmllbGRzRm9ybTogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIGZvcm06IEZvcm07XHJcbiAgQElucHV0KCkgc2VjdGlvbjogU2VjdGlvbjtcclxuICBASW5wdXQoKSBzZWN0aW9uczogU2VjdGlvbltdO1xyXG4gIEBJbnB1dCgpIHNob3dBcHByb3ZhbEN5Y2xlOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBjdXN0b21DYWxsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIHJlc2V0Rm9ybUVtaXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjdXN0b21DYWxsRW1pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgYWN0aW9uU3RhdGVzOiB7IFthY3Rpb246IHN0cmluZ106IGJvb2xlYW4gfTtcclxuICBpc1N1Ym1pdHRpbmcgPSB7XHJcbiAgICAnU1VCTUlUJzpmYWxzZVxyXG4gIH07XHJcbiAgc3VibWl0dGluZ0Zvcm06IGJvb2xlYW47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpMThuOiBDb3JlSTE4blNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBhY3Rpb25TdGF0ZVNlcnZpY2U6IEFjdGlvblN0YXRlU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIGNvcmVTZXJ2aWNlOiBDb3JlU2VydmljZSxcclxuICAgICAgICAgICAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0b2FzdGVyU2VydmljZTogVG9hc3RyU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgdGhpcy5hY3Rpb25TdGF0ZVNlcnZpY2UuYWN0aW9uU3RhdGVzJC5zdWJzY3JpYmUoc3RhdGVzID0+IHRoaXMuYWN0aW9uU3RhdGVzID0gc3RhdGVzKTtcclxuXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmxvdk9wdGlvbnM/LmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgdGhpcy5pc1N1Ym1pdHRpbmdbaXRlbS52YWx1ZV0gPSBmYWxzZVxyXG4gICAgfSlcclxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRGb3JtKCkge1xyXG4gICAgdGhpcy5yZXNldEZvcm1FbWl0LmVtaXQoKVxyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoYWN0aW9uOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmN1c3RvbUNhbGwpIHtcclxuICAgICAgdGhpcy5jdXN0b21DYWxsRW1pdC5lbWl0KGFjdGlvbilcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc3VibWl0Rm9ybShhY3Rpb24sIHRoaXMuc2VjdGlvbilcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN1Ym1pdEZvcm0oYWN0aW9uOiBzdHJpbmcsIHNlY3Rpb246IFNlY3Rpb24pIHtcclxuICAgIGNvbnN0IGxhc3RTZWN0aW9uID0gdGhpcy5zZWN0aW9uc1t0aGlzLnNlY3Rpb25zLmxlbmd0aCAtIDFdO1xyXG5cclxuICAgIGlmIChsYXN0U2VjdGlvbi5ib2R5LmRldGFpbHMuZGVjaXNpb24pIHtcclxuICAgICAgbGFzdFNlY3Rpb24uYm9keS5kZXRhaWxzLmRlY2lzaW9uID0ge2tleTogYWN0aW9ufTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzU3VibWl0dGluZ1thY3Rpb25dID0gdHJ1ZTtcclxuICAgIHRoaXMuc3VibWl0dGluZ0Zvcm0gPSB0cnVlO1xyXG5cclxuICAgIHRoaXMuY29yZVNlcnZpY2Uuc3VibWl0Rm9ybShzZWN0aW9uLCBhY3Rpb24pLnN1YnNjcmliZShcclxuICAgICAgKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2UpIHtcclxuICAgICAgICAgIHRoaXMuaXNTdWJtaXR0aW5nW2FjdGlvbl0gPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc3VjY2VzcyhyZXNwb25zZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICBlcnI/LmVycm9yPy5tZXRhPy5tZXNzYWdlcz8uZm9yRWFjaCgobXNnKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnN1Ym1pdHRpbmdGb3JtID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmlzU3VibWl0dGluZ1thY3Rpb25dID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKG1zZy5tZXNzYWdlKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHN1Y2Nlc3MocmVzcG9uc2UpIHtcclxuICAgIGNvbnNvbGUubG9nKCdzdWNjZXNzJywgcmVzcG9uc2UpXHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFN1Ym1pdERpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiByZXNwb25zZSxcclxuICAgICAgcGFuZWxDbGFzczogWydtYWluLXBvcHVwJywgJ2NvbmZpcm0tZGlhbG9nJ10sXHJcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiBuZXcgTm9vcFNjcm9sbFN0cmF0ZWd5KCksXHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYnV0dG9uU2hhcGUoaXRlbSkge1xyXG4gICAgaWYgKGl0ZW0/LnZhbHVlID09PSBjb25zdGFudHMuRk9STV9TVEFUVVNfUkVKRUNUIHx8IGl0ZW0/LnZhbHVlID09PSBjb25zdGFudHMuRk9STV9TVEFUVVNfQ0FOQ0VMIHx8IGl0ZW0/LnZhbHVlID09PSBjb25zdGFudHMuRk9STV9TVEFUVVNfU0VORF9CQUNLKSB7XHJcbiAgICAgIHJldHVybiAnb3V0bGluZSc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBidXR0b25Db2xvcihpdGVtKSB7XHJcbiAgICBpZiAoaXRlbT8udmFsdWUgPT09IGNvbnN0YW50cy5GT1JNX1NUQVRVU19SRUpFQ1QgfHwgaXRlbT8udmFsdWUgPT09IGNvbnN0YW50cy5GT1JNX1NUQVRVU19TRU5EX0JBQ0spIHtcclxuICAgICAgcmV0dXJuICdyZWQnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibXQtNFwiPlxyXG4gIEBpZiAobG92VHlwZSA9PT0gJ2J1dHRvbicpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zXCI+XHJcbiAgICAgIDxkcy1idXR0b24gc2hhcGU9XCJ0ZXh0XCIgY29sb3I9XCJyZWRcIiAoY2xpY2spPVwicmVzZXRGb3JtKClcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImZzLTE2IGZ3LW1lZGl1bVwiPnt7IGkxOG4udHJhbnNsYXRlKCdyZXNldCcpIH19PC9zcGFuPlxyXG4gICAgICA8L2RzLWJ1dHRvbj5cclxuICAgICAgQGlmIChmb3JtPy5zZWN0aW9ucz8ubGVuZ3RoID09IDEgJiYgc2hvd0FwcHJvdmFsQ3ljbGUpIHtcclxuICAgICAgICA8bGliLWFwcHJvdmFscy13b3JrZmxvdyBbc2VjdGlvbl09XCJzZWN0aW9uXCIgW2Zvcm1dPVwiZm9ybVwiPjwvbGliLWFwcHJvdmFscy13b3JrZmxvdz5cclxuICAgICAgfVxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtd3JhcCBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1ncm93LTEgZmxleC1yb3ctcmV2ZXJzZSBnYXAtM1wiPlxyXG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgbG92T3B0aW9uczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICA8ZHMtYnV0dG9uXHJcbiAgICAgICAgICAgIGxvYWRpbmc9XCJ7e2lzU3VibWl0dGluZ1tpdGVtLnZhbHVlXX19XCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieydkaXNhYmxlZCc6ICFhY3Rpb25TdGF0ZXNbaXRlbS52YWx1ZV0gfHwgc3VibWl0dGluZ0Zvcm19XCJcclxuICAgICAgICAgICAgc2hhcGU9XCJ7eyBidXR0b25TaGFwZShpdGVtKSB9fVwiXHJcbiAgICAgICAgICAgIGNvbG9yPVwie3sgYnV0dG9uQ29sb3IoaXRlbSkgfX1cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25TdWJtaXQoaXRlbT8udmFsdWUpXCI+XHJcbiAgICAgICAgICAgIHt7IGl0ZW0/LlsnZGVzY3JpcHRpb24nXSB9fVxyXG4gICAgICAgICAgPC9kcy1idXR0b24+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIH0gQGVsc2Uge1xyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIj5cclxuICAgICAgPGRzLWJ1dHRvbiBzaGFwZT1cInRleHRcIiBjb2xvcj1cInJlZFwiIChjbGljayk9XCJyZXNldEZvcm0oKVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZnMtMTYgZnctbWVkaXVtXCI+e3sgaTE4bi50cmFuc2xhdGUoJ3Jlc2V0JykgfX08L3NwYW4+XHJcbiAgICAgIDwvZHMtYnV0dG9uPlxyXG4gICAgICBAaWYgKGZvcm0/LnNlY3Rpb25zPy5sZW5ndGggPT0gMSAmJiBzaG93QXBwcm92YWxDeWNsZSkge1xyXG4gICAgICAgIDxsaWItYXBwcm92YWxzLXdvcmtmbG93IFtzZWN0aW9uXT1cInNlY3Rpb25cIiBbZm9ybV09XCJmb3JtXCI+PC9saWItYXBwcm92YWxzLXdvcmtmbG93PlxyXG4gICAgICB9XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC13cmFwIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWdyb3ctMSBmbGV4LXJvdy1yZXZlcnNlIGdhcC0zXCI+XHJcbiAgICAgIDxkcy1idXR0b25cclxuICAgICAgICBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzogIWFjdGlvblN0YXRlc1snU1VCTUlUJ10gfHwgc3VibWl0dGluZ0Zvcm19XCJcclxuICAgICAgICBsb2FkaW5nPVwie3tpc1N1Ym1pdHRpbmdbJ1NVQk1JVCddfX1cIlxyXG4gICAgICAgIChjbGljayk9XCJvblN1Ym1pdCgnU1VCTUlUJylcIj5cclxuICAgICAgICB7eyBpMThuLnRyYW5zbGF0ZSgnc3VibWl0JykgfX1cclxuICAgICAgPC9kcy1idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==
|