@senior-agronegocio/angular-components 1.0.14 → 1.0.16
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/components/modal-invoice-pj/for-contracts/modal-invoice-pj-for-contracts.component.mjs +3 -3
- package/esm2022/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.component.mjs +3 -3
- package/esm2022/components/modal-invoice-pj/for-load-order/modal-invoice-pj-for-load-order.component.mjs +3 -3
- package/esm2022/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.component.mjs +3 -3
- package/esm2022/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.component.mjs +3 -3
- package/esm2022/components/modal-invoice-pj/modal-invoice-pj-base.class.mjs +5 -2
- package/esm2022/fields/lookups/core/agro-base-lookup-field.mjs +14 -2
- package/esm2022/fields/lookups/utils/agro-lookup-utils.mjs +14 -2
- package/fesm2022/senior-agronegocio-angular-components.mjs +40 -13
- package/fesm2022/senior-agronegocio-angular-components.mjs.map +1 -1
- package/package.json +1 -1
package/esm2022/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.component.mjs
CHANGED
|
@@ -31,10 +31,10 @@ export class ModalInvoicePjForTransferComponent extends ModalInvoicePjForOrigina
|
|
|
31
31
|
this.datePipe = datePipe;
|
|
32
32
|
}
|
|
33
33
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalInvoicePjForTransferComponent, deps: [{ token: i1.LibTranslationService }, { token: i2.AgroInvoiceService }, { token: i3.LocaleService }, { token: i4.KilogramPipe }, { token: i5.MessageService }, { token: i6.DatePipe }], target: i0.ɵɵFactoryTarget.Component });
|
|
34
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ModalInvoicePjForTransferComponent, selector: "s-modal-invoice-pj-for-transfer", usesInheritance: true, ngImport: i0, template: "<p-dialog\r\n header=\"{{ 'agro.angular_components.panel_title_external_invoice_add_external_invoice' | libTranslate }}\"\r\n [(visible)]=\"visible\"\r\n [modal]=\"true\"\r\n class=\"add-invoice-modal\"\r\n [closeOnEscape]=\"false\"\r\n (onHide)=\"cancelPooling()\"\r\n [dismissableMask]=\"false\"\r\n>\r\n <ng-container *ngIf=\"!dontHaveAnyInvoice\">\r\n <div class=\"ui-g\">\r\n <label for=\"invoiceSearchInput\">{{ 'agro.angular_components.number' | libTranslate }}</label>\r\n <input\r\n type=\"text\"\r\n id=\"invoiceSearchInput\"\r\n pInputText\r\n [formControl]=\"searchValue\"\r\n [placeholder]=\"'' | libTranslate\"\r\n [required]=\"false\"\r\n />\r\n <div class=\"ui-g-12\">\r\n <p-table\r\n [(selection)]=\"selected\"\r\n [value]=\"tableDataSource\"\r\n [columns]=\"gridColumns\"\r\n [scrollable]=\"true\"\r\n dataKey=\"externalInvoiceId\"\r\n [rows]=\"10\"\r\n [paginator]=\"true\"\r\n [lazyLoadOnInit]=\"false\"\r\n [totalRecords]=\"gridTotalRecords\"\r\n [lazy]=\"true\"\r\n (onLazyLoad)=\"updateGridData($event)\"\r\n [resizableColumns]=\"true\"\r\n sortMode=\"multiple\"\r\n [selectionMode]=\"gridLoading ? null : 'multiple'\"\r\n >\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th class=\"checkbox\" scope=\"col\">\r\n <p-tableHeaderCheckbox [disabled]=\"gridLoading\"></p-tableHeaderCheckbox>\r\n </th>\r\n <ng-container *ngFor=\"let col of columns\">\r\n <th\r\n *ngIf=\"col.sortable === undefined || col.sortable\"\r\n [pSortableColumn]=\"col.field\"\r\n scope=\"col\"\r\n >\r\n {{ col.header }}\r\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\r\n </th>\r\n <th *ngIf=\"col.sortable === false || col.sortable === null\" scope=\"col\">\r\n {{ col.header }}\r\n </th>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\" let-rowIndex=\"rowIndex\">\r\n <tr [class.loading-row]=\"rowData.__isPlaceholder\">\r\n <td class=\"checkbox\" tabindex=\"0\">\r\n <ng-container *ngIf=\"!rowData.__isPlaceholder\">\r\n <p-tableCheckbox [value]=\"rowData\" [disabled]=\"gridLoading\"></p-tableCheckbox>\r\n </ng-container>\r\n <ng-container *ngIf=\"rowData.__isPlaceholder\">\r\n <div class=\"loading-cell-placeholder\"></div>\r\n </ng-container>\r\n </td>\r\n <td\r\n [pSelectableRow]=\"rowData.__isPlaceholder ? null : rowData\"\r\n [pSelectableRowIndex]=\"rowIndex\"\r\n *ngFor=\"let col of columns\"\r\n class=\"column\"\r\n tabindex=\"0\"\r\n >\r\n <ng-container>\r\n <span *ngIf=\"!rowData.__isPlaceholder\">\r\n {{ gridFieldValuesMap[col.field] ? gridFieldValuesMap[col.field](rowData) : rowData[col.field] }}\r\n </span>\r\n <span class=\"loading-text-placeholder\" *ngIf=\"rowData.__isPlaceholder\">\r\n {{ rowData[col.field] || 'placeholder' }}\r\n </span>\r\n </ng-container>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"paginatorright\">\r\n <span>{{ gridTotalRecords }} registros encontrados</span>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"dontHaveAnyInvoice\">\r\n <s-empty-state\r\n iconClass=\"fa fa-exclamation-triangle\"\r\n title=\"{{ 'agro.angular_components.add_pj_invoice_modal_no_invoices_found' | libTranslate }}\"\r\n primaryActionLabel=\"{{ 'agro.angular_components.error_server_try_again' | libTranslate }}\"\r\n (primaryAction)=\"tryToSearchAgain()\"\r\n description=\"{{ 'agro.angular_components.no_register_found_for_external_invoices_summary' | libTranslate }}\"\r\n >\r\n </s-empty-state>\r\n </ng-container>\r\n\r\n <ng-template pTemplate=\"footer\" *ngIf=\"!dontHaveAnyInvoice\">\r\n <div class=\"footer\">\r\n <ng-container *ngIf=\"invertFooterActions; else defaultFooterActions\">\r\n <s-button\r\n [priority]=\"ButtonPriority.Link\"\r\n label=\"{{ 'agro.angular_components.cancel' | libTranslate }}\"\r\n (click)=\"cancel()\"\r\n (keydown.enter)=\"cancel()\"\r\n ></s-button>\r\n <s-button\r\n [priority]=\"ButtonPriority.Primary\"\r\n label=\"{{ 'agro.angular_components.panel_title_external_invoice_add_external_invoice' | libTranslate }}\"\r\n [disabled]=\"gridLoading || !selected.length\"\r\n (click)=\"add()\"\r\n (keydown.enter)=\"add()\"\r\n ></s-button>\r\n </ng-container>\r\n <ng-template #defaultFooterActions>\r\n <s-button\r\n [priority]=\"ButtonPriority.Primary\"\r\n label=\"{{ 'agro.angular_components.panel_title_external_invoice_add_external_invoice' | libTranslate }}\"\r\n [disabled]=\"gridLoading || !selected.length\"\r\n (click)=\"add()\"\r\n (keydown.enter)=\"add()\"\r\n ></s-button>\r\n <s-button\r\n [priority]=\"ButtonPriority.Link\"\r\n label=\"{{ 'agro.angular_components.cancel' | libTranslate }}\"\r\n (click)=\"cancel()\"\r\n (keydown.enter)=\"cancel()\"\r\n ></s-button>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n</p-dialog>\r\n", styles: [".footer{width:100%;display:flex;justify-content:space-between;align-items:center}.add-invoice-modal{width:480px;max-width:480px}.add-invoice-modal input[type=text]{width:100%}.add-invoice-modal .ui-dialog{width:480px!important}.add-invoice-modal .ui-dialog .ui-dialog-content{min-height:175px}td.checkbox,th.checkbox{width:50px}th.column,td.column{min-width:150px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.loading-row{pointer-events:none}.loading-row .loading-text-placeholder{display:inline-block;filter:blur(3px);-webkit-user-select:none;user-select:none}.loading-row .loading-cell-placeholder{width:16px;height:16px;border-radius:4px;background:#d8d8d8;filter:blur(1px);margin:0 auto}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor"], outputs: ["clicked"] }, { kind: "directive", type: i5.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i8.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "virtualRowHeight", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i8.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "directive", type: i8.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }, { kind: "component", type: i8.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i8.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "component", type: i8.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "component", type: i9.EmptyStateComponent, selector: "s-empty-state", inputs: ["id", "title", "iconClass", "description", "showPrimaryAction", "showSecondaryAction", "primaryActionLabel", "secondaryActionLabel", "primaryModel"], outputs: ["primaryAction", "secondaryAction"] }, { kind: "directive", type: i10.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "directive", type: i11.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i11.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i11.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i12.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "pipe", type: i13.LibTranslatePipe, name: "libTranslate" }] });
|
|
34
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ModalInvoicePjForTransferComponent, selector: "s-modal-invoice-pj-for-transfer", usesInheritance: true, ngImport: i0, template: "<p-dialog\r\n header=\"{{ 'agro.angular_components.panel_title_external_invoice_add_external_invoice' | libTranslate }}\"\r\n [(visible)]=\"visible\"\r\n [modal]=\"true\"\r\n class=\"add-invoice-modal\"\r\n [closeOnEscape]=\"false\"\r\n (onHide)=\"cancelPooling()\"\r\n [dismissableMask]=\"false\"\r\n>\r\n <ng-container *ngIf=\"!dontHaveAnyInvoice\">\r\n <div class=\"ui-g\">\r\n <label for=\"invoiceSearchInput\">{{ 'agro.angular_components.number' | libTranslate }}</label>\r\n <input\r\n type=\"text\"\r\n id=\"invoiceSearchInput\"\r\n pInputText\r\n [formControl]=\"searchValue\"\r\n [placeholder]=\"'' | libTranslate\"\r\n [required]=\"false\"\r\n />\r\n <div class=\"ui-g-12\">\r\n <p-table\r\n [(selection)]=\"selected\"\r\n [value]=\"tableDataSource\"\r\n [columns]=\"gridColumns\"\r\n [scrollable]=\"true\"\r\n dataKey=\"_uniqueId\"\r\n [rows]=\"10\"\r\n [paginator]=\"true\"\r\n [lazyLoadOnInit]=\"false\"\r\n [totalRecords]=\"gridTotalRecords\"\r\n [lazy]=\"true\"\r\n (onLazyLoad)=\"updateGridData($event)\"\r\n [resizableColumns]=\"true\"\r\n sortMode=\"multiple\"\r\n [selectionMode]=\"gridLoading ? null : 'multiple'\"\r\n >\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th class=\"checkbox\" scope=\"col\">\r\n <p-tableHeaderCheckbox [disabled]=\"gridLoading\"></p-tableHeaderCheckbox>\r\n </th>\r\n <ng-container *ngFor=\"let col of columns\">\r\n <th\r\n *ngIf=\"col.sortable === undefined || col.sortable\"\r\n [pSortableColumn]=\"col.field\"\r\n scope=\"col\"\r\n >\r\n {{ col.header }}\r\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\r\n </th>\r\n <th *ngIf=\"col.sortable === false || col.sortable === null\" scope=\"col\">\r\n {{ col.header }}\r\n </th>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\" let-rowIndex=\"rowIndex\">\r\n <tr [class.loading-row]=\"rowData.__isPlaceholder\">\r\n <td class=\"checkbox\" tabindex=\"0\">\r\n <ng-container *ngIf=\"!rowData.__isPlaceholder\">\r\n <p-tableCheckbox [value]=\"rowData\" [disabled]=\"gridLoading\"></p-tableCheckbox>\r\n </ng-container>\r\n <ng-container *ngIf=\"rowData.__isPlaceholder\">\r\n <div class=\"loading-cell-placeholder\"></div>\r\n </ng-container>\r\n </td>\r\n <td\r\n [pSelectableRow]=\"rowData.__isPlaceholder ? null : rowData\"\r\n [pSelectableRowIndex]=\"rowIndex\"\r\n *ngFor=\"let col of columns\"\r\n class=\"column\"\r\n tabindex=\"0\"\r\n >\r\n <ng-container>\r\n <span *ngIf=\"!rowData.__isPlaceholder\">\r\n {{ gridFieldValuesMap[col.field] ? gridFieldValuesMap[col.field](rowData) : rowData[col.field] }}\r\n </span>\r\n <span class=\"loading-text-placeholder\" *ngIf=\"rowData.__isPlaceholder\">\r\n {{ rowData[col.field] || 'placeholder' }}\r\n </span>\r\n </ng-container>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"paginatorright\">\r\n <span>{{ gridTotalRecords }} registros encontrados</span>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"dontHaveAnyInvoice\">\r\n <s-empty-state\r\n iconClass=\"fa fa-exclamation-triangle\"\r\n title=\"{{ 'agro.angular_components.add_pj_invoice_modal_no_invoices_found' | libTranslate }}\"\r\n primaryActionLabel=\"{{ 'agro.angular_components.error_server_try_again' | libTranslate }}\"\r\n (primaryAction)=\"tryToSearchAgain()\"\r\n description=\"{{ 'agro.angular_components.no_register_found_for_external_invoices_summary' | libTranslate }}\"\r\n >\r\n </s-empty-state>\r\n </ng-container>\r\n\r\n <ng-template pTemplate=\"footer\" *ngIf=\"!dontHaveAnyInvoice\">\r\n <div class=\"footer\">\r\n <ng-container *ngIf=\"invertFooterActions; else defaultFooterActions\">\r\n <s-button\r\n [priority]=\"ButtonPriority.Link\"\r\n label=\"{{ 'agro.angular_components.cancel' | libTranslate }}\"\r\n (click)=\"cancel()\"\r\n (keydown.enter)=\"cancel()\"\r\n ></s-button>\r\n <s-button\r\n [priority]=\"ButtonPriority.Primary\"\r\n label=\"{{ 'agro.angular_components.panel_title_external_invoice_add_external_invoice' | libTranslate }}\"\r\n [disabled]=\"gridLoading || !selected.length\"\r\n (click)=\"add()\"\r\n (keydown.enter)=\"add()\"\r\n ></s-button>\r\n </ng-container>\r\n <ng-template #defaultFooterActions>\r\n <s-button\r\n [priority]=\"ButtonPriority.Primary\"\r\n label=\"{{ 'agro.angular_components.panel_title_external_invoice_add_external_invoice' | libTranslate }}\"\r\n [disabled]=\"gridLoading || !selected.length\"\r\n (click)=\"add()\"\r\n (keydown.enter)=\"add()\"\r\n ></s-button>\r\n <s-button\r\n [priority]=\"ButtonPriority.Link\"\r\n label=\"{{ 'agro.angular_components.cancel' | libTranslate }}\"\r\n (click)=\"cancel()\"\r\n (keydown.enter)=\"cancel()\"\r\n ></s-button>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n</p-dialog>\r\n", styles: [".footer{width:100%;display:flex;justify-content:space-between;align-items:center}.add-invoice-modal{width:480px;max-width:480px}.add-invoice-modal input[type=text]{width:100%}.add-invoice-modal .ui-dialog{width:480px!important}.add-invoice-modal .ui-dialog .ui-dialog-content{min-height:175px}td.checkbox,th.checkbox{width:50px}th.column,td.column{min-width:150px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.loading-row{pointer-events:none}.loading-row .loading-text-placeholder{display:inline-block;filter:blur(3px);-webkit-user-select:none;user-select:none}.loading-row .loading-cell-placeholder{width:16px;height:16px;border-radius:4px;background:#d8d8d8;filter:blur(1px);margin:0 auto}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor"], outputs: ["clicked"] }, { kind: "directive", type: i5.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i8.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "virtualRowHeight", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i8.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "directive", type: i8.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }, { kind: "component", type: i8.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i8.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "component", type: i8.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "component", type: i9.EmptyStateComponent, selector: "s-empty-state", inputs: ["id", "title", "iconClass", "description", "showPrimaryAction", "showSecondaryAction", "primaryActionLabel", "secondaryActionLabel", "primaryModel"], outputs: ["primaryAction", "secondaryAction"] }, { kind: "directive", type: i10.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "directive", type: i11.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i11.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i11.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i12.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "pipe", type: i13.LibTranslatePipe, name: "libTranslate" }] });
|
|
35
35
|
}
|
|
36
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalInvoicePjForTransferComponent, decorators: [{
|
|
37
37
|
type: Component,
|
|
38
|
-
args: [{ selector: 's-modal-invoice-pj-for-transfer', template: "<p-dialog\r\n header=\"{{ 'agro.angular_components.panel_title_external_invoice_add_external_invoice' | libTranslate }}\"\r\n [(visible)]=\"visible\"\r\n [modal]=\"true\"\r\n class=\"add-invoice-modal\"\r\n [closeOnEscape]=\"false\"\r\n (onHide)=\"cancelPooling()\"\r\n [dismissableMask]=\"false\"\r\n>\r\n <ng-container *ngIf=\"!dontHaveAnyInvoice\">\r\n <div class=\"ui-g\">\r\n <label for=\"invoiceSearchInput\">{{ 'agro.angular_components.number' | libTranslate }}</label>\r\n <input\r\n type=\"text\"\r\n id=\"invoiceSearchInput\"\r\n pInputText\r\n [formControl]=\"searchValue\"\r\n [placeholder]=\"'' | libTranslate\"\r\n [required]=\"false\"\r\n />\r\n <div class=\"ui-g-12\">\r\n <p-table\r\n [(selection)]=\"selected\"\r\n [value]=\"tableDataSource\"\r\n [columns]=\"gridColumns\"\r\n [scrollable]=\"true\"\r\n dataKey=\"
|
|
38
|
+
args: [{ selector: 's-modal-invoice-pj-for-transfer', template: "<p-dialog\r\n header=\"{{ 'agro.angular_components.panel_title_external_invoice_add_external_invoice' | libTranslate }}\"\r\n [(visible)]=\"visible\"\r\n [modal]=\"true\"\r\n class=\"add-invoice-modal\"\r\n [closeOnEscape]=\"false\"\r\n (onHide)=\"cancelPooling()\"\r\n [dismissableMask]=\"false\"\r\n>\r\n <ng-container *ngIf=\"!dontHaveAnyInvoice\">\r\n <div class=\"ui-g\">\r\n <label for=\"invoiceSearchInput\">{{ 'agro.angular_components.number' | libTranslate }}</label>\r\n <input\r\n type=\"text\"\r\n id=\"invoiceSearchInput\"\r\n pInputText\r\n [formControl]=\"searchValue\"\r\n [placeholder]=\"'' | libTranslate\"\r\n [required]=\"false\"\r\n />\r\n <div class=\"ui-g-12\">\r\n <p-table\r\n [(selection)]=\"selected\"\r\n [value]=\"tableDataSource\"\r\n [columns]=\"gridColumns\"\r\n [scrollable]=\"true\"\r\n dataKey=\"_uniqueId\"\r\n [rows]=\"10\"\r\n [paginator]=\"true\"\r\n [lazyLoadOnInit]=\"false\"\r\n [totalRecords]=\"gridTotalRecords\"\r\n [lazy]=\"true\"\r\n (onLazyLoad)=\"updateGridData($event)\"\r\n [resizableColumns]=\"true\"\r\n sortMode=\"multiple\"\r\n [selectionMode]=\"gridLoading ? null : 'multiple'\"\r\n >\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th class=\"checkbox\" scope=\"col\">\r\n <p-tableHeaderCheckbox [disabled]=\"gridLoading\"></p-tableHeaderCheckbox>\r\n </th>\r\n <ng-container *ngFor=\"let col of columns\">\r\n <th\r\n *ngIf=\"col.sortable === undefined || col.sortable\"\r\n [pSortableColumn]=\"col.field\"\r\n scope=\"col\"\r\n >\r\n {{ col.header }}\r\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\r\n </th>\r\n <th *ngIf=\"col.sortable === false || col.sortable === null\" scope=\"col\">\r\n {{ col.header }}\r\n </th>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\" let-rowIndex=\"rowIndex\">\r\n <tr [class.loading-row]=\"rowData.__isPlaceholder\">\r\n <td class=\"checkbox\" tabindex=\"0\">\r\n <ng-container *ngIf=\"!rowData.__isPlaceholder\">\r\n <p-tableCheckbox [value]=\"rowData\" [disabled]=\"gridLoading\"></p-tableCheckbox>\r\n </ng-container>\r\n <ng-container *ngIf=\"rowData.__isPlaceholder\">\r\n <div class=\"loading-cell-placeholder\"></div>\r\n </ng-container>\r\n </td>\r\n <td\r\n [pSelectableRow]=\"rowData.__isPlaceholder ? null : rowData\"\r\n [pSelectableRowIndex]=\"rowIndex\"\r\n *ngFor=\"let col of columns\"\r\n class=\"column\"\r\n tabindex=\"0\"\r\n >\r\n <ng-container>\r\n <span *ngIf=\"!rowData.__isPlaceholder\">\r\n {{ gridFieldValuesMap[col.field] ? gridFieldValuesMap[col.field](rowData) : rowData[col.field] }}\r\n </span>\r\n <span class=\"loading-text-placeholder\" *ngIf=\"rowData.__isPlaceholder\">\r\n {{ rowData[col.field] || 'placeholder' }}\r\n </span>\r\n </ng-container>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"paginatorright\">\r\n <span>{{ gridTotalRecords }} registros encontrados</span>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"dontHaveAnyInvoice\">\r\n <s-empty-state\r\n iconClass=\"fa fa-exclamation-triangle\"\r\n title=\"{{ 'agro.angular_components.add_pj_invoice_modal_no_invoices_found' | libTranslate }}\"\r\n primaryActionLabel=\"{{ 'agro.angular_components.error_server_try_again' | libTranslate }}\"\r\n (primaryAction)=\"tryToSearchAgain()\"\r\n description=\"{{ 'agro.angular_components.no_register_found_for_external_invoices_summary' | libTranslate }}\"\r\n >\r\n </s-empty-state>\r\n </ng-container>\r\n\r\n <ng-template pTemplate=\"footer\" *ngIf=\"!dontHaveAnyInvoice\">\r\n <div class=\"footer\">\r\n <ng-container *ngIf=\"invertFooterActions; else defaultFooterActions\">\r\n <s-button\r\n [priority]=\"ButtonPriority.Link\"\r\n label=\"{{ 'agro.angular_components.cancel' | libTranslate }}\"\r\n (click)=\"cancel()\"\r\n (keydown.enter)=\"cancel()\"\r\n ></s-button>\r\n <s-button\r\n [priority]=\"ButtonPriority.Primary\"\r\n label=\"{{ 'agro.angular_components.panel_title_external_invoice_add_external_invoice' | libTranslate }}\"\r\n [disabled]=\"gridLoading || !selected.length\"\r\n (click)=\"add()\"\r\n (keydown.enter)=\"add()\"\r\n ></s-button>\r\n </ng-container>\r\n <ng-template #defaultFooterActions>\r\n <s-button\r\n [priority]=\"ButtonPriority.Primary\"\r\n label=\"{{ 'agro.angular_components.panel_title_external_invoice_add_external_invoice' | libTranslate }}\"\r\n [disabled]=\"gridLoading || !selected.length\"\r\n (click)=\"add()\"\r\n (keydown.enter)=\"add()\"\r\n ></s-button>\r\n <s-button\r\n [priority]=\"ButtonPriority.Link\"\r\n label=\"{{ 'agro.angular_components.cancel' | libTranslate }}\"\r\n (click)=\"cancel()\"\r\n (keydown.enter)=\"cancel()\"\r\n ></s-button>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n</p-dialog>\r\n", styles: [".footer{width:100%;display:flex;justify-content:space-between;align-items:center}.add-invoice-modal{width:480px;max-width:480px}.add-invoice-modal input[type=text]{width:100%}.add-invoice-modal .ui-dialog{width:480px!important}.add-invoice-modal .ui-dialog .ui-dialog-content{min-height:175px}td.checkbox,th.checkbox{width:50px}th.column,td.column{min-width:150px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.loading-row{pointer-events:none}.loading-row .loading-text-placeholder{display:inline-block;filter:blur(3px);-webkit-user-select:none;user-select:none}.loading-row .loading-cell-placeholder{width:16px;height:16px;border-radius:4px;background:#d8d8d8;filter:blur(1px);margin:0 auto}\n"] }]
|
|
39
39
|
}], ctorParameters: () => [{ type: i1.LibTranslationService }, { type: i2.AgroInvoiceService }, { type: i3.LocaleService }, { type: i4.KilogramPipe }, { type: i5.MessageService }, { type: i6.DatePipe }] });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaW52b2ljZS1wai1mb3ItdHJhbnNmZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2NvbXBvbmVudHMvbW9kYWwtaW52b2ljZS1wai9mb3ItdHJhbnNmZXIvbW9kYWwtaW52b2ljZS1wai1mb3ItdHJhbnNmZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2NvbXBvbmVudHMvbW9kYWwtaW52b2ljZS1wai90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBTTdELE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLCtEQUErRCxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFPdEgsTUFBTSxPQUFPLGtDQUFtQyxTQUFRLHFDQUFxQztJQUdyRTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFOcEIsWUFDb0IsU0FBZ0MsRUFDaEMsY0FBa0MsRUFDbEMsYUFBNEIsRUFDNUIsWUFBMEIsRUFDMUIsY0FBOEIsRUFDOUIsUUFBa0I7UUFFbEMsS0FBSyxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFQeEUsY0FBUyxHQUFULFNBQVMsQ0FBdUI7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQW9CO1FBQ2xDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixhQUFRLEdBQVIsUUFBUSxDQUFVO0lBR3RDLENBQUM7d0dBWFEsa0NBQWtDOzRGQUFsQyxrQ0FBa0MsOEZDZC9DLDZyT0E2SUE7OzRGRC9IYSxrQ0FBa0M7a0JBTDlDLFNBQVM7K0JBQ0ksaUNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExvY2FsZVNlcnZpY2UgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2xvY2FsZSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBLaWxvZ3JhbVBpcGUgfSBmcm9tICcuLi8uLi8uLi9waXBlL2tpbG9ncmFtJztcclxuaW1wb3J0IHsgTGliVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbGliLXRyYW5zbGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBZ3JvSW52b2ljZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hZ3JvLWludm9pY2UnO1xyXG5pbXBvcnQgeyBNb2RhbEludm9pY2VQakZvck9yaWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9yLW9yaWdpbmF0aW9uL21vZGFsLWludm9pY2UtcGotZm9yLW9yaWdpbmF0aW9uLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAncy1tb2RhbC1pbnZvaWNlLXBqLWZvci10cmFuc2ZlcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4uL3RlbXBsYXRlLmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4uL3N0eWxlLnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vZGFsSW52b2ljZVBqRm9yVHJhbnNmZXJDb21wb25lbnQgZXh0ZW5kcyBNb2RhbEludm9pY2VQakZvck9yaWdpbmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBvdmVycmlkZSB0cmFuc2xhdGU6IExpYlRyYW5zbGF0aW9uU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgaW52b2ljZVNlcnZpY2U6IEFncm9JbnZvaWNlU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgbG9jYWxlU2VydmljZTogTG9jYWxlU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUga2lsb2dyYW1QaXBlOiBLaWxvZ3JhbVBpcGUsXHJcbiAgICAgICAgcHVibGljIG92ZXJyaWRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgZGF0ZVBpcGU6IERhdGVQaXBlXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcih0cmFuc2xhdGUsIGludm9pY2VTZXJ2aWNlLCBsb2NhbGVTZXJ2aWNlLCBraWxvZ3JhbVBpcGUsIG1lc3NhZ2VTZXJ2aWNlLCBkYXRlUGlwZSk7XHJcbiAgICB9XHJcblxyXG59XHJcbiIsIjxwLWRpYWxvZ1xyXG4gICAgaGVhZGVyPVwie3sgJ2Fncm8uYW5ndWxhcl9jb21wb25lbnRzLnBhbmVsX3RpdGxlX2V4dGVybmFsX2ludm9pY2VfYWRkX2V4dGVybmFsX2ludm9pY2UnIHwgbGliVHJhbnNsYXRlIH19XCJcclxuICAgIFsodmlzaWJsZSldPVwidmlzaWJsZVwiXHJcbiAgICBbbW9kYWxdPVwidHJ1ZVwiXHJcbiAgICBjbGFzcz1cImFkZC1pbnZvaWNlLW1vZGFsXCJcclxuICAgIFtjbG9zZU9uRXNjYXBlXT1cImZhbHNlXCJcclxuICAgIChvbkhpZGUpPVwiY2FuY2VsUG9vbGluZygpXCJcclxuICAgIFtkaXNtaXNzYWJsZU1hc2tdPVwiZmFsc2VcIlxyXG4+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWRvbnRIYXZlQW55SW52b2ljZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1aS1nXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpbnZvaWNlU2VhcmNoSW5wdXRcIj57eyAnYWdyby5hbmd1bGFyX2NvbXBvbmVudHMubnVtYmVyJyB8IGxpYlRyYW5zbGF0ZSB9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlU2VhcmNoSW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgcElucHV0VGV4dFxyXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInNlYXJjaFZhbHVlXCJcclxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInJyB8IGxpYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWktZy0xMlwiPlxyXG4gICAgICAgICAgICAgICAgPHAtdGFibGVcclxuICAgICAgICAgICAgICAgICAgICBbKHNlbGVjdGlvbildPVwic2VsZWN0ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ0YWJsZURhdGFTb3VyY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjb2x1bW5zXT1cImdyaWRDb2x1bW5zXCJcclxuICAgICAgICAgICAgICAgICAgICBbc2Nyb2xsYWJsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBkYXRhS2V5PVwiZXh0ZXJuYWxJbnZvaWNlSWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyb3dzXT1cIjEwXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGFnaW5hdG9yXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtsYXp5TG9hZE9uSW5pdF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RvdGFsUmVjb3Jkc109XCJncmlkVG90YWxSZWNvcmRzXCJcclxuICAgICAgICAgICAgICAgICAgICBbbGF6eV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAob25MYXp5TG9hZCk9XCJ1cGRhdGVHcmlkRGF0YSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBbcmVzaXphYmxlQ29sdW1uc109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBzb3J0TW9kZT1cIm11bHRpcGxlXCJcclxuICAgICAgICAgICAgICAgICAgICBbc2VsZWN0aW9uTW9kZV09XCJncmlkTG9hZGluZyA/IG51bGwgOiAnbXVsdGlwbGUnXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCIgbGV0LWNvbHVtbnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImNoZWNrYm94XCIgc2NvcGU9XCJjb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC10YWJsZUhlYWRlckNoZWNrYm94IFtkaXNhYmxlZF09XCJncmlkTG9hZGluZ1wiPjwvcC10YWJsZUhlYWRlckNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29sLnNvcnRhYmxlID09PSB1bmRlZmluZWQgfHwgY29sLnNvcnRhYmxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BTb3J0YWJsZUNvbHVtbl09XCJjb2wuZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY29wZT1cImNvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjb2wuaGVhZGVyIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLXNvcnRJY29uIFtmaWVsZF09XCJjb2wuZmllbGRcIj48L3Atc29ydEljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggKm5nSWY9XCJjb2wuc29ydGFibGUgPT09IGZhbHNlIHx8IGNvbC5zb3J0YWJsZSA9PT0gbnVsbFwiIHNjb3BlPVwiY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNvbC5oZWFkZXIgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtcm93RGF0YSBsZXQtY29sdW1ucz1cImNvbHVtbnNcIiBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgW2NsYXNzLmxvYWRpbmctcm93XT1cInJvd0RhdGEuX19pc1BsYWNlaG9sZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJjaGVja2JveFwiIHRhYmluZGV4PVwiMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhcm93RGF0YS5fX2lzUGxhY2Vob2xkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAtdGFibGVDaGVja2JveCBbdmFsdWVdPVwicm93RGF0YVwiIFtkaXNhYmxlZF09XCJncmlkTG9hZGluZ1wiPjwvcC10YWJsZUNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3dEYXRhLl9faXNQbGFjZWhvbGRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9hZGluZy1jZWxsLXBsYWNlaG9sZGVyXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BTZWxlY3RhYmxlUm93XT1cInJvd0RhdGEuX19pc1BsYWNlaG9sZGVyID8gbnVsbCA6IHJvd0RhdGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwU2VsZWN0YWJsZVJvd0luZGV4XT1cInJvd0luZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sdW1uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIXJvd0RhdGEuX19pc1BsYWNlaG9sZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBncmlkRmllbGRWYWx1ZXNNYXBbY29sLmZpZWxkXSA/IGdyaWRGaWVsZFZhbHVlc01hcFtjb2wuZmllbGRdKHJvd0RhdGEpIDogcm93RGF0YVtjb2wuZmllbGRdIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsb2FkaW5nLXRleHQtcGxhY2Vob2xkZXJcIiAqbmdJZj1cInJvd0RhdGEuX19pc1BsYWNlaG9sZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyByb3dEYXRhW2NvbC5maWVsZF0gfHwgJ3BsYWNlaG9sZGVyJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJwYWdpbmF0b3JyaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBncmlkVG90YWxSZWNvcmRzIH19IHJlZ2lzdHJvcyBlbmNvbnRyYWRvczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9wLXRhYmxlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkb250SGF2ZUFueUludm9pY2VcIj5cclxuICAgICAgICA8cy1lbXB0eS1zdGF0ZVxyXG4gICAgICAgICAgICBpY29uQ2xhc3M9XCJmYSBmYS1leGNsYW1hdGlvbi10cmlhbmdsZVwiXHJcbiAgICAgICAgICAgIHRpdGxlPVwie3sgJ2Fncm8uYW5ndWxhcl9jb21wb25lbnRzLmFkZF9wal9pbnZvaWNlX21vZGFsX25vX2ludm9pY2VzX2ZvdW5kJyB8IGxpYlRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgIHByaW1hcnlBY3Rpb25MYWJlbD1cInt7ICdhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5lcnJvcl9zZXJ2ZXJfdHJ5X2FnYWluJyB8IGxpYlRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgIChwcmltYXJ5QWN0aW9uKT1cInRyeVRvU2VhcmNoQWdhaW4oKVwiXHJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uPVwie3sgJ2Fncm8uYW5ndWxhcl9jb21wb25lbnRzLm5vX3JlZ2lzdGVyX2ZvdW5kX2Zvcl9leHRlcm5hbF9pbnZvaWNlc19zdW1tYXJ5JyB8IGxpYlRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDwvcy1lbXB0eS1zdGF0ZT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmb290ZXJcIiAqbmdJZj1cIiFkb250SGF2ZUFueUludm9pY2VcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbnZlcnRGb290ZXJBY3Rpb25zOyBlbHNlIGRlZmF1bHRGb290ZXJBY3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICA8cy1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICBbcHJpb3JpdHldPVwiQnV0dG9uUHJpb3JpdHkuTGlua1wiXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJ7eyAnYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuY2FuY2VsJyB8IGxpYlRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJjYW5jZWwoKVwiXHJcbiAgICAgICAgICAgICAgICA+PC9zLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxzLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIFtwcmlvcml0eV09XCJCdXR0b25Qcmlvcml0eS5QcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbD1cInt7ICdhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5wYW5lbF90aXRsZV9leHRlcm5hbF9pbnZvaWNlX2FkZF9leHRlcm5hbF9pbnZvaWNlJyB8IGxpYlRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImdyaWRMb2FkaW5nIHx8ICFzZWxlY3RlZC5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhZGQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiYWRkKClcIlxyXG4gICAgICAgICAgICAgICAgPjwvcy1idXR0b24+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRGb290ZXJBY3Rpb25zPlxyXG4gICAgICAgICAgICA8cy1idXR0b25cclxuICAgICAgICAgICAgICAgIFtwcmlvcml0eV09XCJCdXR0b25Qcmlvcml0eS5QcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgIGxhYmVsPVwie3sgJ2Fncm8uYW5ndWxhcl9jb21wb25lbnRzLnBhbmVsX3RpdGxlX2V4dGVybmFsX2ludm9pY2VfYWRkX2V4dGVybmFsX2ludm9pY2UnIHwgbGliVHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJncmlkTG9hZGluZyB8fCAhc2VsZWN0ZWQubGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJhZGQoKVwiXHJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJhZGQoKVwiXHJcbiAgICAgICAgICAgID48L3MtYnV0dG9uPlxyXG4gICAgICAgICAgICA8cy1idXR0b25cclxuICAgICAgICAgICAgICAgIFtwcmlvcml0eV09XCJCdXR0b25Qcmlvcml0eS5MaW5rXCJcclxuICAgICAgICAgICAgICAgIGxhYmVsPVwie3sgJ2Fncm8uYW5ndWxhcl9jb21wb25lbnRzLmNhbmNlbCcgfCBsaWJUcmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcclxuICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cImNhbmNlbCgpXCJcclxuICAgICAgICAgICAgICAgID48L3MtYnV0dG9uPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9wLWRpYWxvZz5cclxuIl19
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaW52b2ljZS1wai1mb3ItdHJhbnNmZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2NvbXBvbmVudHMvbW9kYWwtaW52b2ljZS1wai9mb3ItdHJhbnNmZXIvbW9kYWwtaW52b2ljZS1wai1mb3ItdHJhbnNmZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2NvbXBvbmVudHMvbW9kYWwtaW52b2ljZS1wai90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBTTdELE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLCtEQUErRCxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFPdEgsTUFBTSxPQUFPLGtDQUFtQyxTQUFRLHFDQUFxQztJQUdyRTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFOcEIsWUFDb0IsU0FBZ0MsRUFDaEMsY0FBa0MsRUFDbEMsYUFBNEIsRUFDNUIsWUFBMEIsRUFDMUIsY0FBOEIsRUFDOUIsUUFBa0I7UUFFbEMsS0FBSyxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFQeEUsY0FBUyxHQUFULFNBQVMsQ0FBdUI7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQW9CO1FBQ2xDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixhQUFRLEdBQVIsUUFBUSxDQUFVO0lBR3RDLENBQUM7d0dBWFEsa0NBQWtDOzRGQUFsQyxrQ0FBa0MsOEZDZC9DLHFyT0E2SUE7OzRGRC9IYSxrQ0FBa0M7a0JBTDlDLFNBQVM7K0JBQ0ksaUNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExvY2FsZVNlcnZpY2UgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2xvY2FsZSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBLaWxvZ3JhbVBpcGUgfSBmcm9tICcuLi8uLi8uLi9waXBlL2tpbG9ncmFtJztcclxuaW1wb3J0IHsgTGliVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbGliLXRyYW5zbGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBZ3JvSW52b2ljZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hZ3JvLWludm9pY2UnO1xyXG5pbXBvcnQgeyBNb2RhbEludm9pY2VQakZvck9yaWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9yLW9yaWdpbmF0aW9uL21vZGFsLWludm9pY2UtcGotZm9yLW9yaWdpbmF0aW9uLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAncy1tb2RhbC1pbnZvaWNlLXBqLWZvci10cmFuc2ZlcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4uL3RlbXBsYXRlLmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4uL3N0eWxlLnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vZGFsSW52b2ljZVBqRm9yVHJhbnNmZXJDb21wb25lbnQgZXh0ZW5kcyBNb2RhbEludm9pY2VQakZvck9yaWdpbmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBvdmVycmlkZSB0cmFuc2xhdGU6IExpYlRyYW5zbGF0aW9uU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgaW52b2ljZVNlcnZpY2U6IEFncm9JbnZvaWNlU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgbG9jYWxlU2VydmljZTogTG9jYWxlU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUga2lsb2dyYW1QaXBlOiBLaWxvZ3JhbVBpcGUsXHJcbiAgICAgICAgcHVibGljIG92ZXJyaWRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgZGF0ZVBpcGU6IERhdGVQaXBlXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcih0cmFuc2xhdGUsIGludm9pY2VTZXJ2aWNlLCBsb2NhbGVTZXJ2aWNlLCBraWxvZ3JhbVBpcGUsIG1lc3NhZ2VTZXJ2aWNlLCBkYXRlUGlwZSk7XHJcbiAgICB9XHJcblxyXG59XHJcbiIsIjxwLWRpYWxvZ1xyXG4gICAgaGVhZGVyPVwie3sgJ2Fncm8uYW5ndWxhcl9jb21wb25lbnRzLnBhbmVsX3RpdGxlX2V4dGVybmFsX2ludm9pY2VfYWRkX2V4dGVybmFsX2ludm9pY2UnIHwgbGliVHJhbnNsYXRlIH19XCJcclxuICAgIFsodmlzaWJsZSldPVwidmlzaWJsZVwiXHJcbiAgICBbbW9kYWxdPVwidHJ1ZVwiXHJcbiAgICBjbGFzcz1cImFkZC1pbnZvaWNlLW1vZGFsXCJcclxuICAgIFtjbG9zZU9uRXNjYXBlXT1cImZhbHNlXCJcclxuICAgIChvbkhpZGUpPVwiY2FuY2VsUG9vbGluZygpXCJcclxuICAgIFtkaXNtaXNzYWJsZU1hc2tdPVwiZmFsc2VcIlxyXG4+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWRvbnRIYXZlQW55SW52b2ljZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1aS1nXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpbnZvaWNlU2VhcmNoSW5wdXRcIj57eyAnYWdyby5hbmd1bGFyX2NvbXBvbmVudHMubnVtYmVyJyB8IGxpYlRyYW5zbGF0ZSB9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlU2VhcmNoSW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgcElucHV0VGV4dFxyXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInNlYXJjaFZhbHVlXCJcclxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInJyB8IGxpYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWktZy0xMlwiPlxyXG4gICAgICAgICAgICAgICAgPHAtdGFibGVcclxuICAgICAgICAgICAgICAgICAgICBbKHNlbGVjdGlvbildPVwic2VsZWN0ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ0YWJsZURhdGFTb3VyY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjb2x1bW5zXT1cImdyaWRDb2x1bW5zXCJcclxuICAgICAgICAgICAgICAgICAgICBbc2Nyb2xsYWJsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBkYXRhS2V5PVwiX3VuaXF1ZUlkXCJcclxuICAgICAgICAgICAgICAgICAgICBbcm93c109XCIxMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3BhZ2luYXRvcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbbGF6eUxvYWRPbkluaXRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0b3RhbFJlY29yZHNdPVwiZ3JpZFRvdGFsUmVjb3Jkc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2xhenldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uTGF6eUxvYWQpPVwidXBkYXRlR3JpZERhdGEoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Jlc2l6YWJsZUNvbHVtbnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc29ydE1vZGU9XCJtdWx0aXBsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGlvbk1vZGVdPVwiZ3JpZExvYWRpbmcgPyBudWxsIDogJ211bHRpcGxlJ1wiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjaGVja2JveFwiIHNjb3BlPVwiY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAtdGFibGVIZWFkZXJDaGVja2JveCBbZGlzYWJsZWRdPVwiZ3JpZExvYWRpbmdcIj48L3AtdGFibGVIZWFkZXJDaGVja2JveD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbC5zb3J0YWJsZSA9PT0gdW5kZWZpbmVkIHx8IGNvbC5zb3J0YWJsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwU29ydGFibGVDb2x1bW5dPVwiY29sLmZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGU9XCJjb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY29sLmhlYWRlciB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1zb3J0SWNvbiBbZmllbGRdPVwiY29sLmZpZWxkXCI+PC9wLXNvcnRJY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoICpuZ0lmPVwiY29sLnNvcnRhYmxlID09PSBmYWxzZSB8fCBjb2wuc29ydGFibGUgPT09IG51bGxcIiBzY29wZT1cImNvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjb2wuaGVhZGVyIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LXJvd0RhdGEgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCIgbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIFtjbGFzcy5sb2FkaW5nLXJvd109XCJyb3dEYXRhLl9faXNQbGFjZWhvbGRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiY2hlY2tib3hcIiB0YWJpbmRleD1cIjBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXJvd0RhdGEuX19pc1BsYWNlaG9sZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLXRhYmxlQ2hlY2tib3ggW3ZhbHVlXT1cInJvd0RhdGFcIiBbZGlzYWJsZWRdPVwiZ3JpZExvYWRpbmdcIj48L3AtdGFibGVDaGVja2JveD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicm93RGF0YS5fX2lzUGxhY2Vob2xkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvYWRpbmctY2VsbC1wbGFjZWhvbGRlclwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwU2VsZWN0YWJsZVJvd109XCJyb3dEYXRhLl9faXNQbGFjZWhvbGRlciA/IG51bGwgOiByb3dEYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcFNlbGVjdGFibGVSb3dJbmRleF09XCJyb3dJbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFyb3dEYXRhLl9faXNQbGFjZWhvbGRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ3JpZEZpZWxkVmFsdWVzTWFwW2NvbC5maWVsZF0gPyBncmlkRmllbGRWYWx1ZXNNYXBbY29sLmZpZWxkXShyb3dEYXRhKSA6IHJvd0RhdGFbY29sLmZpZWxkXSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibG9hZGluZy10ZXh0LXBsYWNlaG9sZGVyXCIgKm5nSWY9XCJyb3dEYXRhLl9faXNQbGFjZWhvbGRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcm93RGF0YVtjb2wuZmllbGRdIHx8ICdwbGFjZWhvbGRlcicgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwicGFnaW5hdG9ycmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgZ3JpZFRvdGFsUmVjb3JkcyB9fSByZWdpc3Ryb3MgZW5jb250cmFkb3M8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvcC10YWJsZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZG9udEhhdmVBbnlJbnZvaWNlXCI+XHJcbiAgICAgICAgPHMtZW1wdHktc3RhdGVcclxuICAgICAgICAgICAgaWNvbkNsYXNzPVwiZmEgZmEtZXhjbGFtYXRpb24tdHJpYW5nbGVcIlxyXG4gICAgICAgICAgICB0aXRsZT1cInt7ICdhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5hZGRfcGpfaW52b2ljZV9tb2RhbF9ub19pbnZvaWNlc19mb3VuZCcgfCBsaWJUcmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICBwcmltYXJ5QWN0aW9uTGFiZWw9XCJ7eyAnYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuZXJyb3Jfc2VydmVyX3RyeV9hZ2FpbicgfCBsaWJUcmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAocHJpbWFyeUFjdGlvbik9XCJ0cnlUb1NlYXJjaEFnYWluKClcIlxyXG4gICAgICAgICAgICBkZXNjcmlwdGlvbj1cInt7ICdhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5ub19yZWdpc3Rlcl9mb3VuZF9mb3JfZXh0ZXJuYWxfaW52b2ljZXNfc3VtbWFyeScgfCBsaWJUcmFuc2xhdGUgfX1cIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L3MtZW1wdHktc3RhdGU+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCIgKm5nSWY9XCIhZG9udEhhdmVBbnlJbnZvaWNlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW52ZXJ0Rm9vdGVyQWN0aW9uczsgZWxzZSBkZWZhdWx0Rm9vdGVyQWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgPHMtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgW3ByaW9yaXR5XT1cIkJ1dHRvblByaW9yaXR5LkxpbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsPVwie3sgJ2Fncm8uYW5ndWxhcl9jb21wb25lbnRzLmNhbmNlbCcgfCBsaWJUcmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjYW5jZWwoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiY2FuY2VsKClcIlxyXG4gICAgICAgICAgICAgICAgPjwvcy1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8cy1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICBbcHJpb3JpdHldPVwiQnV0dG9uUHJpb3JpdHkuUHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJ7eyAnYWdyby5hbmd1bGFyX2NvbXBvbmVudHMucGFuZWxfdGl0bGVfZXh0ZXJuYWxfaW52b2ljZV9hZGRfZXh0ZXJuYWxfaW52b2ljZScgfCBsaWJUcmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJncmlkTG9hZGluZyB8fCAhc2VsZWN0ZWQubGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cImFkZCgpXCJcclxuICAgICAgICAgICAgICAgID48L3MtYnV0dG9uPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0Rm9vdGVyQWN0aW9ucz5cclxuICAgICAgICAgICAgPHMtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICBbcHJpb3JpdHldPVwiQnV0dG9uUHJpb3JpdHkuUHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICBsYWJlbD1cInt7ICdhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5wYW5lbF90aXRsZV9leHRlcm5hbF9pbnZvaWNlX2FkZF9leHRlcm5hbF9pbnZvaWNlJyB8IGxpYlRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZ3JpZExvYWRpbmcgfHwgIXNlbGVjdGVkLmxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkKClcIlxyXG4gICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiYWRkKClcIlxyXG4gICAgICAgICAgICA+PC9zLWJ1dHRvbj5cclxuICAgICAgICAgICAgPHMtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICBbcHJpb3JpdHldPVwiQnV0dG9uUHJpb3JpdHkuTGlua1wiXHJcbiAgICAgICAgICAgICAgICBsYWJlbD1cInt7ICdhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5jYW5jZWwnIHwgbGliVHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjYW5jZWwoKVwiXHJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJjYW5jZWwoKVwiXHJcbiAgICAgICAgICAgICAgICA+PC9zLWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbjwvcC1kaWFsb2c+XHJcbiJdfQ==
|
|
@@ -176,7 +176,10 @@ export class ModalInvoicePjBase {
|
|
|
176
176
|
this.gridLoading = false;
|
|
177
177
|
}))
|
|
178
178
|
.subscribe((result) => {
|
|
179
|
-
this.gridData = result?.result?.invoices || []
|
|
179
|
+
this.gridData = (result?.result?.invoices || []).map((invoice) => ({
|
|
180
|
+
...invoice,
|
|
181
|
+
_uniqueId: invoice.externalInvoiceId || invoice.invoiceId
|
|
182
|
+
}));
|
|
180
183
|
if (this.gridData.length === 0 && !searchValue) {
|
|
181
184
|
this.dontHaveAnyInvoice = true;
|
|
182
185
|
}
|
|
@@ -217,4 +220,4 @@ export class ModalInvoicePjBase {
|
|
|
217
220
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalInvoicePjBase, decorators: [{
|
|
218
221
|
type: Directive
|
|
219
222
|
}], ctorParameters: () => [{ type: i1.LibTranslationService }, { type: i2.AgroInvoiceService }, { type: i3.LocaleService }, { type: i4.KilogramPipe }, { type: i5.MessageService }, { type: i6.DatePipe }] });
|
|
220
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaW52b2ljZS1wai1iYXNlLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2NvbXBvbmVudHMvbW9kYWwtaW52b2ljZS1wai9tb2RhbC1pbnZvaWNlLXBqLWJhc2UuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBbUMsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7QUFRN0QsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUM7QUFHdkMsTUFBTSxPQUFnQixrQkFBa0I7SUF1RGI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBdERoQixRQUFRLEdBQVUsRUFBRSxDQUFDO0lBQ1osZUFBZSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLGlCQUFpQixFQUFFLFdBQVcsS0FBSyxFQUFFO1FBQ3JDLE1BQU0sRUFBRSxPQUFPLEtBQUssR0FBRyxDQUFDLEVBQUU7UUFDMUIsTUFBTSxFQUFFLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtRQUN2QixZQUFZLEVBQUUsQ0FBQztRQUNmLFFBQVEsRUFBRSxHQUFHO1FBQ2IsWUFBWSxFQUFFLFlBQVk7UUFD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SyxDQUFDLE1BQU07UUFDUixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEIsQ0FBQzt3R0E3T2lCLGtCQUFrQjs0RkFBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUR2QyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IExvY2FsZVNlcnZpY2UgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2xvY2FsZSc7XHJcbmltcG9ydCB7IENvbHVtbiB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdGFibGUnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgVGFibGVMYXp5TG9hZEV2ZW50IH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaW5hbGl6ZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBZ3JvTnVtYmVyVXRpbHMgfSBmcm9tICcuLi8uLi9jb21tb24vYWdyby1udW1iZXItdXRpbHMuY2xhc3MnO1xyXG5pbXBvcnQgeyBBR1JPX05VTUJFUlMgfSBmcm9tICcuLi8uLi9lbnVtcy9hZ3JvLW51bWJlcnMuZW51bSc7XHJcbmltcG9ydCB7IEtpbG9ncmFtUGlwZSB9IGZyb20gJy4uLy4uL3BpcGUva2lsb2dyYW0nO1xyXG5pbXBvcnQgeyBMaXN0UGFyYW1zIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYWdyby1lbnRpdHktc2VydmljZSc7XHJcbmltcG9ydCB7IExpYlRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xpYi10cmFuc2xhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9kYWxJbnZvaWNlUGpPcHRpb25zIH0gZnJvbSAnLi9tb2RhbC1pbnZvaWNlLXBqLW9wdGlvbnMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQWdyb0ludm9pY2VTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9hZ3JvLWludm9pY2UvYWdyby1pbnZvaWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJSW52b2ljZUxvb2t1cEZpbHRlciwgSUludm9pY2VMb29rdXBSZXNwb25zZSB9IGZyb20gJy4vc2VydmljZXMvYWdyby1pbnZvaWNlL2ludGVyZmFjZXMnO1xyXG5cclxuY29uc3QgSU5WT0lDRV9JVEVNUyA9ICdpbnZvaWNlSXRlbXMuKic7XHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE1vZGFsSW52b2ljZVBqQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIHB1YmxpYyBhYnN0cmFjdCBvcHRpb25zOiBNb2RhbEludm9pY2VQak9wdGlvbnM7XHJcbiAgICBwdWJsaWMgYWJzdHJhY3Qgd2hlblNlbGVjdEludm9pY2VzOiBFdmVudEVtaXR0ZXI8YW55W10+O1xyXG5cclxuICAgIHB1YmxpYyBhYnN0cmFjdCBncmlkQ29sdW1uczogUGFydGlhbDxDb2x1bW4gJiB7IHNvcnRhYmxlPzogYm9vbGVhbiB9PltdO1xyXG5cclxuICAgIHB1YmxpYyBncmlkRGF0YTogYW55W10gPSBbXTtcclxuICAgIHB1YmxpYyByZWFkb25seSBsb2FkaW5nR3JpZERhdGEgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiA1IH0pLm1hcCgoXywgaW5kZXgpID0+ICh7XHJcbiAgICAgICAgZXh0ZXJuYWxJbnZvaWNlSWQ6IGBsb2FkaW5nLSR7aW5kZXh9YCxcclxuICAgICAgICBudW1iZXI6IGAwMDAwJHtpbmRleCArIDF9YCxcclxuICAgICAgICBzZXJpZXM6IGBTJHtpbmRleCArIDF9YCxcclxuICAgICAgICBpbnZvaWNlSXRlbXM6IDAsXHJcbiAgICAgICAgcXVhbnRpdHk6ICcwJyxcclxuICAgICAgICBpc3N1YW5jZURhdGU6ICcwMC8wMC8wMDAwJyxcclxuICAgICAgICBfX2lzUGxhY2Vob2xkZXI6IHRydWUsXHJcbiAgICB9KSk7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgQnV0dG9uUHJpb3JpdHkgPSB7XHJcbiAgICAgICAgUHJpbWFyeTogJ3ByaW1hcnknIGFzIGNvbnN0LFxyXG4gICAgICAgIFNlY29uZGFyeTogJ3NlY29uZGFyeScgYXMgY29uc3QsXHJcbiAgICAgICAgTGluazogJ2xpbmsnIGFzIGNvbnN0LFxyXG4gICAgfTtcclxuXHJcbiAgICBwdWJsaWMgZG9udEhhdmVBbnlJbnZvaWNlID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaW52ZXJ0Rm9vdGVyQWN0aW9ucyA9IGZhbHNlO1xyXG5cclxuICAgIHB1YmxpYyBncmlkTG9hZGluZyA9IHRydWU7XHJcbiAgICBwdWJsaWMgZ3JpZFRvdGFsUmVjb3JkcyE6IG51bWJlcjtcclxuICAgIHB1YmxpYyBzZWxlY3RlZDogYW55W10gPSBbXTtcclxuICAgIHB1YmxpYyB1bnNlbGVjdGVkSWRzID0gbmV3IFNldDxudW1iZXI+KCk7XHJcblxyXG4gICAgcHVibGljIHZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgICBwdWJsaWMgc2VhcmNoVmFsdWU6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnLCBbXSk7XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICAgIHByb3RlY3RlZCBjdXJyZW50UGFyYW1zOiBMaXN0UGFyYW1zID0ge1xyXG4gICAgICAgIHBhZ2U6IDAsXHJcbiAgICAgICAgc2l6ZTogMTAsXHJcbiAgICAgICAgc29ydDogW3sgZmllbGQ6ICdpc3N1YW5jZURhdGUnLCBvcmRlcjogMSB9XSxcclxuICAgICAgICBkaXNwbGF5RmllbGRzOiBbJyonLCBJTlZPSUNFX0lURU1TLCAnaXNzdWFuY2VEYXRlJ10sXHJcbiAgICAgICAgZmlsdGVyUXVlcnk6ICcnLFxyXG4gICAgfTtcclxuXHJcbiAgICBwdWJsaWMgZ3JpZEZpZWxkVmFsdWVzTWFwOiB7IFtrZXk6IHN0cmluZ106IChyb3c6IGFueSkgPT4gYW55IH0gPSB7XHJcbiAgICAgICAgaXNzdWFuY2VEYXRlOiAocm93KSA9PiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShyb3cuaXNzdWFuY2VEYXRlLCAnZGQvTU0veXl5eScsICdwdC1CUicpLFxyXG4gICAgICAgIGludm9pY2VJdGVtczogKHJvdykgPT4gcm93LnRvdGFsSXRlbXMgfHwgMCxcclxuICAgICAgICBxdWFudGl0eTogKHJvdykgPT4gdGhpcy5raWxvZ3JhbVBpcGUudHJhbnNmb3JtKHJvdy50b3RhbEl0ZW1zUXVhbnRpdHkgfHwgMCksXHJcbiAgICB9O1xyXG5cclxuICAgIHB1YmxpYyBnZXQgdGFibGVEYXRhU291cmNlKCk6IGFueVtdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5ncmlkTG9hZGluZyA/IHRoaXMubG9hZGluZ0dyaWREYXRhIDogdGhpcy5ncmlkRGF0YTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJhbnNsYXRlOiBMaWJUcmFuc2xhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGludm9pY2VTZXJ2aWNlOiBBZ3JvSW52b2ljZVNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvY2FsZVNlcnZpY2U6IExvY2FsZVNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGtpbG9ncmFtUGlwZTogS2lsb2dyYW1QaXBlLFxyXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGVQaXBlOiBEYXRlUGlwZSxcclxuICAgICkgeyB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQodm9pZCAwKTtcclxuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLndoZW5TZWFyY2hWYWx1ZUNoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBhYnN0cmFjdCBhZGFwdFJlc3VsdChyZXN1bHQ6IElJbnZvaWNlTG9va3VwUmVzcG9uc2UpOiBQcm9taXNlPGFueT47XHJcbiAgICBhYnN0cmFjdCBiZWZvcmVBZGQoc2VsZWN0ZWRJbnZvaWNlczogYW55KTogUHJvbWlzZTxhbnk+O1xyXG5cclxuICAgIHByb3RlY3RlZCB3aGVuU2VhcmNoVmFsdWVDaGFuZ2VzKCkge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVmFsdWUudmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxyXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoQUdST19OVU1CRVJTLlRIUkVFX0hVTkRSRUQpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUdyaWREYXRhKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGZpcnN0OiAwLCByb3dzOiAxMCwgbXVsdGlTb3J0TWV0YTogW3sgZmllbGQ6ICdpc3N1YW5jZURhdGUnLCBvcmRlcjogMSB9XSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlR3JpZERhdGEoeyBmaXJzdDogMCwgcm93czogMTAsIG11bHRpU29ydE1ldGE6IFt7IGZpZWxkOiAnaXNzdWFuY2VEYXRlJywgb3JkZXI6IDEgfV0gfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRyeVRvU2VhcmNoQWdhaW4oKSB7XHJcbiAgICAgICAgdGhpcy5ncmlkTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy51cGRhdGVHcmlkRGF0YSh7IGZpcnN0OiAwLCByb3dzOiAxMCwgbXVsdGlTb3J0TWV0YTogW3sgZmllbGQ6ICdpc3N1YW5jZURhdGUnLCBvcmRlcjogMSB9XSB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5jaGVja0lmT3B0aW9uc0lzVmFsaWQoKSkge1xyXG4gICAgICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmdyaWREYXRhID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuZ3JpZExvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmdyaWRUb3RhbFJlY29yZHMgPSBBR1JPX05VTUJFUlMuWkVSTztcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZCA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLnVuc2VsZWN0ZWRJZHMuY2xlYXIoKTtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50UGFyYW1zID0ge1xyXG4gICAgICAgICAgICAgICAgcGFnZTogMCxcclxuICAgICAgICAgICAgICAgIHNpemU6IDEwLFxyXG4gICAgICAgICAgICAgICAgc29ydDogW10sXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJRdWVyeTogJycsXHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5RmllbGRzOiBbJyonLCBJTlZPSUNFX0lURU1TXSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVHcmlkRGF0YSh7IGZpcnN0OiAwLCByb3dzOiAxMCwgbXVsdGlTb3J0TWV0YTogW3sgZmllbGQ6ICdpc3N1YW5jZURhdGUnLCBvcmRlcjogMSB9XSB9KTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZCA9IFtdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuaW5mbygnTW9kYWxJbnZvaWNlUGpDb21wb25lbnQ6IE9ww6fDtWVzIGludsOhbGlkYXMgcGFyYSBhYnJpciBvIG1vZGFsLicpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgY2hlY2tJZk9wdGlvbnNJc1ZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLmNvbXBhbnlJZCB8fCAhdGhpcy5vcHRpb25zLmJyYW5jaElkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0UGFnaW5hdGlvbihldmVudDogVGFibGVMYXp5TG9hZEV2ZW50KTogeyBwYWdlOiBudW1iZXI7IHNpemU6IG51bWJlciB9IHtcclxuICAgICAgICBjb25zdCBzaXplID0gZXZlbnQucm93cyA/PyAxMDtcclxuICAgICAgICBjb25zdCBmaXJzdCA9IGV2ZW50LmZpcnN0ID8/IDA7XHJcbiAgICAgICAgY29uc3QgcGFnZSA9IHNpemUgPiAwID8gZmlyc3QgLyBzaXplIDogMDtcclxuICAgICAgICByZXR1cm4geyBwYWdlLCBzaXplIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHVwZGF0ZUN1cnJlbnRQYXJhbXMoZXZlbnQ6IFRhYmxlTGF6eUxvYWRFdmVudCkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFBhcmFtcyA9IHtcclxuICAgICAgICAgICAgLi4udGhpcy5nZXRQYWdpbmF0aW9uKGV2ZW50KSxcclxuICAgICAgICAgICAgc29ydDogZXZlbnQubXVsdGlTb3J0TWV0YT8ubGVuZ3RoID8gZXZlbnQubXVsdGlTb3J0TWV0YSA6IFt7IGZpZWxkOiAnaXNzdWFuY2VEYXRlJywgb3JkZXI6IDEgfV0sXHJcbiAgICAgICAgICAgIGRpc3BsYXlGaWVsZHM6IFsnKicsIElOVk9JQ0VfSVRFTVMsICdpc3N1YW5jZURhdGUnXSxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB1cGRhdGVHcmlkRGF0YShldmVudDogVGFibGVMYXp5TG9hZEV2ZW50LCBzZWFyY2hWYWx1ZT86IHN0cmluZykge1xyXG5cclxuICAgICAgICB0aGlzLmNhbmNlbFBvb2xpbmcoKTtcclxuXHJcbiAgICAgICAgY29uc3QgeyBjb21wYW55SWQsIGJyYW5jaElkIH0gPSB0aGlzLm9wdGlvbnM7XHJcbiAgICAgICAgY29uc3QgcHJvZHVjZXJJZCA9IHRoaXMub3B0aW9ucy5wcm9kdWNlcnNJZHNbMF07XHJcbiAgICAgICAgY29uc3QgcnVyYWxFc3RhdGVJZCA9IHRoaXMub3B0aW9ucy5ydXJhbEVzdGF0ZUlkc1swXTtcclxuXHJcbiAgICAgICAgdGhpcy5ncmlkTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5kb250SGF2ZUFueUludm9pY2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUN1cnJlbnRQYXJhbXMoZXZlbnQpO1xyXG5cclxuICAgICAgICBjb25zdCBjdXJyZW50UGFyYW1zID0ge1xyXG4gICAgICAgICAgICBwYWdlOiB0aGlzLmN1cnJlbnRQYXJhbXMucGFnZSA/PyAwLFxyXG4gICAgICAgICAgICBzaXplOiB0aGlzLmN1cnJlbnRQYXJhbXMuc2l6ZSA/PyAxMCxcclxuICAgICAgICAgICAgc29ydDogdGhpcy5jdXJyZW50UGFyYW1zLnNvcnQgPz8gW10sXHJcbiAgICAgICAgICAgIGZpbHRlclF1ZXJ5OiB0aGlzLmN1cnJlbnRQYXJhbXMuZmlsdGVyUXVlcnkgPz8gJycsXHJcbiAgICAgICAgICAgIGRpc3BsYXlGaWVsZHM6IHRoaXMuY3VycmVudFBhcmFtcy5kaXNwbGF5RmllbGRzID8/IFsnKicsIElOVk9JQ0VfSVRFTVNdLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29uc3QgZmlsdGVyQm9keTogSUludm9pY2VMb29rdXBGaWx0ZXIgPSB7XHJcbiAgICAgICAgICAgIGZpbHRlcjoge1xyXG4gICAgICAgICAgICAgICAgY29tcGFueUlkLFxyXG4gICAgICAgICAgICAgICAgYnJhbmNoSWQsXHJcbiAgICAgICAgICAgICAgICBwcm9kdWNlcklkczogW3Byb2R1Y2VySWRdLFxyXG4gICAgICAgICAgICAgICAgcnVyYWxFc3RhdGVJZHM6IFtydXJhbEVzdGF0ZUlkXSxcclxuICAgICAgICAgICAgICAgIG11bHRpUHJvZHVjdHM6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgcHJvZHVjdElkOiB0aGlzLm9wdGlvbnMucHJvZHVjdElkLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBwYWdlUmVxdWVzdDoge1xyXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiBjdXJyZW50UGFyYW1zLnBhZ2UsXHJcbiAgICAgICAgICAgICAgICBzaXplOiBjdXJyZW50UGFyYW1zLnNpemUsXHJcbiAgICAgICAgICAgICAgICBvcmRlckJ5OiBjdXJyZW50UGFyYW1zLnNvcnQubWFwKChzb3J0KSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBzb3J0LmZpZWxkLFxyXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiBzb3J0Lm9yZGVyID09PSAxID8gJ2FzYycgOiAnZGVzYycsXHJcbiAgICAgICAgICAgICAgICB9KSksXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgaWYgKHNlYXJjaFZhbHVlKSB7XHJcbiAgICAgICAgICAgIHNlYXJjaFZhbHVlID0gQWdyb051bWJlclV0aWxzLmdldE5lYXJJbnRlZ2VyKHNlYXJjaFZhbHVlKS50b1N0cmluZygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5pbnZvaWNlU2VydmljZVxyXG4gICAgICAgICAgICAuaW52b2ljZUxvb2t1cEZpbHRlcihmaWx0ZXJCb2R5KVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxyXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyaWREYXRhID0gcmVzdWx0Py5yZXN1bHQ/Lmludm9pY2VzIHx8IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmdyaWREYXRhLmxlbmd0aCA9PT0gMCAmJiAhc2VhcmNoVmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kb250SGF2ZUFueUludm9pY2UgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyaWRUb3RhbFJlY29yZHMgPSByZXN1bHQ/LnJlc3VsdD8udG90YWxFbGVtZW50cyA/PyAwO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuaW5mbygnRXJybyBhbyBidXNjYXIgbm90YXMgZmlzY2FpczogJywgZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyaWRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgY2FuY2VsUG9vbGluZygpIHtcclxuICAgICAgICB0aGlzLmludm9pY2VTZXJ2aWNlLmNhbmNlbEFjdGl2ZVBvb2xpbmcoKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBhZGQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5iZWZvcmVBZGQodGhpcy5zZWxlY3RlZCk7XHJcbiAgICAgICAgICAgIHRoaXMud2hlblNlbGVjdEludm9pY2VzLmVtaXQodGhpcy5zZWxlY3RlZCk7XHJcbiAgICAgICAgICAgIHRoaXMucmVzZXRTcGVjcygpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuaW5mbygnRXJybyBhbyBzZWxlY2lvbmFyIG5vdGFzIGZpc2NhaXM6ICcsIGVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlc2V0U3BlY3MoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IFtdO1xyXG4gICAgICAgIHRoaXMuZG9udEhhdmVBbnlJbnZvaWNlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ncmlkRGF0YSA9IFtdO1xyXG4gICAgICAgIHRoaXMuZ3JpZExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmdyaWRUb3RhbFJlY29yZHMgPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGNhbmNlbCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICB0aGlzLnJlc2V0U3BlY3MoKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaW52b2ljZS1wai1iYXNlLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2NvbXBvbmVudHMvbW9kYWwtaW52b2ljZS1wai9tb2RhbC1pbnZvaWNlLXBqLWJhc2UuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBbUMsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7QUFRN0QsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUM7QUFHdkMsTUFBTSxPQUFnQixrQkFBa0I7SUF1RGI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBdERoQixRQUFRLEdBQVUsRUFBRSxDQUFDO0lBQ1osZUFBZSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLGlCQUFpQixFQUFFLFdBQVcsS0FBSyxFQUFFO1FBQ3JDLE1BQU0sRUFBRSxPQUFPLEtBQUssR0FBRyxDQUFDLEVBQUU7UUFDMUIsTUFBTSxFQUFFLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtRQUN2QixZQUFZLEVBQUUsQ0FBQztRQUNmLFFBQVEsRUFBRSxHQUFHO1FBQ2IsWUFBWSxFQUFFLFlBQVk7UUFD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LEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTTtRQUNSLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO3dHQWpQaUIsa0JBQWtCOzRGQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBRHZDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTG9jYWxlU2VydmljZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvbG9jYWxlJztcclxuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy90YWJsZSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBUYWJsZUxhenlMb2FkRXZlbnQgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbmFsaXplLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFncm9OdW1iZXJVdGlscyB9IGZyb20gJy4uLy4uL2NvbW1vbi9hZ3JvLW51bWJlci11dGlscy5jbGFzcyc7XHJcbmltcG9ydCB7IEFHUk9fTlVNQkVSUyB9IGZyb20gJy4uLy4uL2VudW1zL2Fncm8tbnVtYmVycy5lbnVtJztcclxuaW1wb3J0IHsgS2lsb2dyYW1QaXBlIH0gZnJvbSAnLi4vLi4vcGlwZS9raWxvZ3JhbSc7XHJcbmltcG9ydCB7IExpc3RQYXJhbXMgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hZ3JvLWVudGl0eS1zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGliVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGliLXRyYW5zbGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb2RhbEludm9pY2VQak9wdGlvbnMgfSBmcm9tICcuL21vZGFsLWludm9pY2UtcGotb3B0aW9ucy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBBZ3JvSW52b2ljZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2Fncm8taW52b2ljZS9hZ3JvLWludm9pY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IElJbnZvaWNlTG9va3VwRmlsdGVyLCBJSW52b2ljZUxvb2t1cFJlc3BvbnNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9hZ3JvLWludm9pY2UvaW50ZXJmYWNlcyc7XHJcblxyXG5jb25zdCBJTlZPSUNFX0lURU1TID0gJ2ludm9pY2VJdGVtcy4qJztcclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTW9kYWxJbnZvaWNlUGpCYXNlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgcHVibGljIGFic3RyYWN0IG9wdGlvbnM6IE1vZGFsSW52b2ljZVBqT3B0aW9ucztcclxuICAgIHB1YmxpYyBhYnN0cmFjdCB3aGVuU2VsZWN0SW52b2ljZXM6IEV2ZW50RW1pdHRlcjxhbnlbXT47XHJcblxyXG4gICAgcHVibGljIGFic3RyYWN0IGdyaWRDb2x1bW5zOiBQYXJ0aWFsPENvbHVtbiAmIHsgc29ydGFibGU/OiBib29sZWFuIH0+W107XHJcblxyXG4gICAgcHVibGljIGdyaWREYXRhOiBhbnlbXSA9IFtdO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmdHcmlkRGF0YSA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDUgfSkubWFwKChfLCBpbmRleCkgPT4gKHtcclxuICAgICAgICBleHRlcm5hbEludm9pY2VJZDogYGxvYWRpbmctJHtpbmRleH1gLFxyXG4gICAgICAgIG51bWJlcjogYDAwMDAke2luZGV4ICsgMX1gLFxyXG4gICAgICAgIHNlcmllczogYFMke2luZGV4ICsgMX1gLFxyXG4gICAgICAgIGludm9pY2VJdGVtczogMCxcclxuICAgICAgICBxdWFudGl0eTogJzAnLFxyXG4gICAgICAgIGlzc3VhbmNlRGF0ZTogJzAwLzAwLzAwMDAnLFxyXG4gICAgICAgIF9faXNQbGFjZWhvbGRlcjogdHJ1ZSxcclxuICAgIH0pKTtcclxuICAgIHB1YmxpYyByZWFkb25seSBCdXR0b25Qcmlvcml0eSA9IHtcclxuICAgICAgICBQcmltYXJ5OiAncHJpbWFyeScgYXMgY29uc3QsXHJcbiAgICAgICAgU2Vjb25kYXJ5OiAnc2Vjb25kYXJ5JyBhcyBjb25zdCxcclxuICAgICAgICBMaW5rOiAnbGluaycgYXMgY29uc3QsXHJcbiAgICB9O1xyXG5cclxuICAgIHB1YmxpYyBkb250SGF2ZUFueUludm9pY2UgPSBmYWxzZTtcclxuICAgIHB1YmxpYyBpbnZlcnRGb290ZXJBY3Rpb25zID0gZmFsc2U7XHJcblxyXG4gICAgcHVibGljIGdyaWRMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHB1YmxpYyBncmlkVG90YWxSZWNvcmRzITogbnVtYmVyO1xyXG4gICAgcHVibGljIHNlbGVjdGVkOiBhbnlbXSA9IFtdO1xyXG4gICAgcHVibGljIHVuc2VsZWN0ZWRJZHMgPSBuZXcgU2V0PG51bWJlcj4oKTtcclxuXHJcbiAgICBwdWJsaWMgdmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgIHB1YmxpYyBzZWFyY2hWYWx1ZTogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIFtdKTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gICAgcHJvdGVjdGVkIGN1cnJlbnRQYXJhbXM6IExpc3RQYXJhbXMgPSB7XHJcbiAgICAgICAgcGFnZTogMCxcclxuICAgICAgICBzaXplOiAxMCxcclxuICAgICAgICBzb3J0OiBbeyBmaWVsZDogJ2lzc3VhbmNlRGF0ZScsIG9yZGVyOiAxIH1dLFxyXG4gICAgICAgIGRpc3BsYXlGaWVsZHM6IFsnKicsIElOVk9JQ0VfSVRFTVMsICdpc3N1YW5jZURhdGUnXSxcclxuICAgICAgICBmaWx0ZXJRdWVyeTogJycsXHJcbiAgICB9O1xyXG5cclxuICAgIHB1YmxpYyBncmlkRmllbGRWYWx1ZXNNYXA6IHsgW2tleTogc3RyaW5nXTogKHJvdzogYW55KSA9PiBhbnkgfSA9IHtcclxuICAgICAgICBpc3N1YW5jZURhdGU6IChyb3cpID0+IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHJvdy5pc3N1YW5jZURhdGUsICdkZC9NTS95eXl5JywgJ3B0LUJSJyksXHJcbiAgICAgICAgaW52b2ljZUl0ZW1zOiAocm93KSA9PiByb3cudG90YWxJdGVtcyB8fCAwLFxyXG4gICAgICAgIHF1YW50aXR5OiAocm93KSA9PiB0aGlzLmtpbG9ncmFtUGlwZS50cmFuc2Zvcm0ocm93LnRvdGFsSXRlbXNRdWFudGl0eSB8fCAwKSxcclxuICAgIH07XHJcblxyXG4gICAgcHVibGljIGdldCB0YWJsZURhdGFTb3VyY2UoKTogYW55W10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdyaWRMb2FkaW5nID8gdGhpcy5sb2FkaW5nR3JpZERhdGEgOiB0aGlzLmdyaWREYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSB0cmFuc2xhdGU6IExpYlRyYW5zbGF0aW9uU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW52b2ljZVNlcnZpY2U6IEFncm9JbnZvaWNlU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9jYWxlU2VydmljZTogTG9jYWxlU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkga2lsb2dyYW1QaXBlOiBLaWxvZ3JhbVBpcGUsXHJcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGF0ZVBpcGU6IERhdGVQaXBlLFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCh2b2lkIDApO1xyXG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMud2hlblNlYXJjaFZhbHVlQ2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIGFic3RyYWN0IGFkYXB0UmVzdWx0KHJlc3VsdDogSUludm9pY2VMb29rdXBSZXNwb25zZSk6IFByb21pc2U8YW55PjtcclxuICAgIGFic3RyYWN0IGJlZm9yZUFkZChzZWxlY3RlZEludm9pY2VzOiBhbnkpOiBQcm9taXNlPGFueT47XHJcblxyXG4gICAgcHJvdGVjdGVkIHdoZW5TZWFyY2hWYWx1ZUNoYW5nZXMoKSB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZS52YWx1ZUNoYW5nZXNcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXHJcbiAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZShBR1JPX05VTUJFUlMuVEhSRUVfSFVORFJFRCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlR3JpZERhdGEoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgZmlyc3Q6IDAsIHJvd3M6IDEwLCBtdWx0aVNvcnRNZXRhOiBbeyBmaWVsZDogJ2lzc3VhbmNlRGF0ZScsIG9yZGVyOiAxIH1dIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVHcmlkRGF0YSh7IGZpcnN0OiAwLCByb3dzOiAxMCwgbXVsdGlTb3J0TWV0YTogW3sgZmllbGQ6ICdpc3N1YW5jZURhdGUnLCBvcmRlcjogMSB9XSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHJ5VG9TZWFyY2hBZ2FpbigpIHtcclxuICAgICAgICB0aGlzLmdyaWRMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUdyaWREYXRhKHsgZmlyc3Q6IDAsIHJvd3M6IDEwLCBtdWx0aVNvcnRNZXRhOiBbeyBmaWVsZDogJ2lzc3VhbmNlRGF0ZScsIG9yZGVyOiAxIH1dIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmNoZWNrSWZPcHRpb25zSXNWYWxpZCgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JpZERhdGEgPSBbXTtcclxuICAgICAgICAgICAgdGhpcy5ncmlkTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JpZFRvdGFsUmVjb3JkcyA9IEFHUk9fTlVNQkVSUy5aRVJPO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gW107XHJcbiAgICAgICAgICAgIHRoaXMudW5zZWxlY3RlZElkcy5jbGVhcigpO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRQYXJhbXMgPSB7XHJcbiAgICAgICAgICAgICAgICBwYWdlOiAwLFxyXG4gICAgICAgICAgICAgICAgc2l6ZTogMTAsXHJcbiAgICAgICAgICAgICAgICBzb3J0OiBbXSxcclxuICAgICAgICAgICAgICAgIGZpbHRlclF1ZXJ5OiAnJyxcclxuICAgICAgICAgICAgICAgIGRpc3BsYXlGaWVsZHM6IFsnKicsIElOVk9JQ0VfSVRFTVNdLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUdyaWREYXRhKHsgZmlyc3Q6IDAsIHJvd3M6IDEwLCBtdWx0aVNvcnRNZXRhOiBbeyBmaWVsZDogJ2lzc3VhbmNlRGF0ZScsIG9yZGVyOiAxIH1dIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gW107XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc29sZS5pbmZvKCdNb2RhbEludm9pY2VQakNvbXBvbmVudDogT3DDp8O1ZXMgaW52w6FsaWRhcyBwYXJhIGFicmlyIG8gbW9kYWwuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBjaGVja0lmT3B0aW9uc0lzVmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuY29tcGFueUlkIHx8ICF0aGlzLm9wdGlvbnMuYnJhbmNoSWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRQYWdpbmF0aW9uKGV2ZW50OiBUYWJsZUxhenlMb2FkRXZlbnQpOiB7IHBhZ2U6IG51bWJlcjsgc2l6ZTogbnVtYmVyIH0ge1xyXG4gICAgICAgIGNvbnN0IHNpemUgPSBldmVudC5yb3dzID8/IDEwO1xyXG4gICAgICAgIGNvbnN0IGZpcnN0ID0gZXZlbnQuZmlyc3QgPz8gMDtcclxuICAgICAgICBjb25zdCBwYWdlID0gc2l6ZSA+IDAgPyBmaXJzdCAvIHNpemUgOiAwO1xyXG4gICAgICAgIHJldHVybiB7IHBhZ2UsIHNpemUgfTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdXBkYXRlQ3VycmVudFBhcmFtcyhldmVudDogVGFibGVMYXp5TG9hZEV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50UGFyYW1zID0ge1xyXG4gICAgICAgICAgICAuLi50aGlzLmdldFBhZ2luYXRpb24oZXZlbnQpLFxyXG4gICAgICAgICAgICBzb3J0OiBldmVudC5tdWx0aVNvcnRNZXRhPy5sZW5ndGggPyBldmVudC5tdWx0aVNvcnRNZXRhIDogW3sgZmllbGQ6ICdpc3N1YW5jZURhdGUnLCBvcmRlcjogMSB9XSxcclxuICAgICAgICAgICAgZGlzcGxheUZpZWxkczogWycqJywgSU5WT0lDRV9JVEVNUywgJ2lzc3VhbmNlRGF0ZSddLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHVwZGF0ZUdyaWREYXRhKGV2ZW50OiBUYWJsZUxhenlMb2FkRXZlbnQsIHNlYXJjaFZhbHVlPzogc3RyaW5nKSB7XHJcblxyXG4gICAgICAgIHRoaXMuY2FuY2VsUG9vbGluZygpO1xyXG5cclxuICAgICAgICBjb25zdCB7IGNvbXBhbnlJZCwgYnJhbmNoSWQgfSA9IHRoaXMub3B0aW9ucztcclxuICAgICAgICBjb25zdCBwcm9kdWNlcklkID0gdGhpcy5vcHRpb25zLnByb2R1Y2Vyc0lkc1swXTtcclxuICAgICAgICBjb25zdCBydXJhbEVzdGF0ZUlkID0gdGhpcy5vcHRpb25zLnJ1cmFsRXN0YXRlSWRzWzBdO1xyXG5cclxuICAgICAgICB0aGlzLmdyaWRMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmRvbnRIYXZlQW55SW52b2ljZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudXBkYXRlQ3VycmVudFBhcmFtcyhldmVudCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRQYXJhbXMgPSB7XHJcbiAgICAgICAgICAgIHBhZ2U6IHRoaXMuY3VycmVudFBhcmFtcy5wYWdlID8/IDAsXHJcbiAgICAgICAgICAgIHNpemU6IHRoaXMuY3VycmVudFBhcmFtcy5zaXplID8/IDEwLFxyXG4gICAgICAgICAgICBzb3J0OiB0aGlzLmN1cnJlbnRQYXJhbXMuc29ydCA/PyBbXSxcclxuICAgICAgICAgICAgZmlsdGVyUXVlcnk6IHRoaXMuY3VycmVudFBhcmFtcy5maWx0ZXJRdWVyeSA/PyAnJyxcclxuICAgICAgICAgICAgZGlzcGxheUZpZWxkczogdGhpcy5jdXJyZW50UGFyYW1zLmRpc3BsYXlGaWVsZHMgPz8gWycqJywgSU5WT0lDRV9JVEVNU10sXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBmaWx0ZXJCb2R5OiBJSW52b2ljZUxvb2t1cEZpbHRlciA9IHtcclxuICAgICAgICAgICAgZmlsdGVyOiB7XHJcbiAgICAgICAgICAgICAgICBjb21wYW55SWQsXHJcbiAgICAgICAgICAgICAgICBicmFuY2hJZCxcclxuICAgICAgICAgICAgICAgIHByb2R1Y2VySWRzOiBbcHJvZHVjZXJJZF0sXHJcbiAgICAgICAgICAgICAgICBydXJhbEVzdGF0ZUlkczogW3J1cmFsRXN0YXRlSWRdLFxyXG4gICAgICAgICAgICAgICAgbXVsdGlQcm9kdWN0czogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBwcm9kdWN0SWQ6IHRoaXMub3B0aW9ucy5wcm9kdWN0SWQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHBhZ2VSZXF1ZXN0OiB7XHJcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IGN1cnJlbnRQYXJhbXMucGFnZSxcclxuICAgICAgICAgICAgICAgIHNpemU6IGN1cnJlbnRQYXJhbXMuc2l6ZSxcclxuICAgICAgICAgICAgICAgIG9yZGVyQnk6IGN1cnJlbnRQYXJhbXMuc29ydC5tYXAoKHNvcnQpID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IHNvcnQuZmllbGQsXHJcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IHNvcnQub3JkZXIgPT09IDEgPyAnYXNjJyA6ICdkZXNjJyxcclxuICAgICAgICAgICAgICAgIH0pKSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBpZiAoc2VhcmNoVmFsdWUpIHtcclxuICAgICAgICAgICAgc2VhcmNoVmFsdWUgPSBBZ3JvTnVtYmVyVXRpbHMuZ2V0TmVhckludGVnZXIoc2VhcmNoVmFsdWUpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmludm9pY2VTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5pbnZvaWNlTG9va3VwRmlsdGVyKGZpbHRlckJvZHkpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXHJcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmlkTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZERhdGEgPSAocmVzdWx0Py5yZXN1bHQ/Lmludm9pY2VzIHx8IFtdKS5tYXAoKGludm9pY2UpID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmludm9pY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF91bmlxdWVJZDogaW52b2ljZS5leHRlcm5hbEludm9pY2VJZCB8fCBpbnZvaWNlLmludm9pY2VJZFxyXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZ3JpZERhdGEubGVuZ3RoID09PSAwICYmICFzZWFyY2hWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbnRIYXZlQW55SW52b2ljZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZFRvdGFsUmVjb3JkcyA9IHJlc3VsdD8ucmVzdWx0Py50b3RhbEVsZW1lbnRzID8/IDA7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5pbmZvKCdFcnJvIGFvIGJ1c2NhciBub3RhcyBmaXNjYWlzOiAnLCBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBjYW5jZWxQb29saW5nKCkge1xyXG4gICAgICAgIHRoaXMuaW52b2ljZVNlcnZpY2UuY2FuY2VsQWN0aXZlUG9vbGluZygpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGFkZCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmJlZm9yZUFkZCh0aGlzLnNlbGVjdGVkKTtcclxuICAgICAgICAgICAgdGhpcy53aGVuU2VsZWN0SW52b2ljZXMuZW1pdCh0aGlzLnNlbGVjdGVkKTtcclxuICAgICAgICAgICAgdGhpcy5yZXNldFNwZWNzKCk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgY29uc29sZS5pbmZvKCdFcnJvIGFvIHNlbGVjaW9uYXIgbm90YXMgZmlzY2FpczogJywgZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgcmVzZXRTcGVjcygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkID0gW107XHJcbiAgICAgICAgdGhpcy5kb250SGF2ZUFueUludm9pY2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmdyaWREYXRhID0gW107XHJcbiAgICAgICAgdGhpcy5ncmlkTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ3JpZFRvdGFsUmVjb3JkcyA9IDA7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgY2FuY2VsKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIHRoaXMucmVzZXRTcGVjcygpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -4,7 +4,19 @@ import { createGenericOnLookupRequest, createGenericOnSearchRequest } from './lo
|
|
|
4
4
|
import { getLabelValueRequest, mergeUnique } from '../utils/agro-lookup-utils';
|
|
5
5
|
import { formatCPFCNPJWithMask } from '../utils';
|
|
6
6
|
const LOOKUP_DEBOUNCE_MS = 300;
|
|
7
|
-
const LOOKUP_DOCUMENT_FIELDS_TO_FORMAT = [
|
|
7
|
+
const LOOKUP_DOCUMENT_FIELDS_TO_FORMAT = [
|
|
8
|
+
'cnpCpf',
|
|
9
|
+
'numCgc',
|
|
10
|
+
'e001pes.cnpCpf',
|
|
11
|
+
'e001pes.numCgc',
|
|
12
|
+
'e001pes.cpfCnpj',
|
|
13
|
+
'e001pes.cpf',
|
|
14
|
+
'e001pes.cnpj',
|
|
15
|
+
'e001pes.cgc',
|
|
16
|
+
'e001pes.cpfCgc',
|
|
17
|
+
'e001pes.cgcCpf',
|
|
18
|
+
'cpf'
|
|
19
|
+
];
|
|
8
20
|
export class AgroBaseLookupField {
|
|
9
21
|
config;
|
|
10
22
|
translate;
|
|
@@ -382,4 +394,4 @@ export class AgroBaseLookupField {
|
|
|
382
394
|
};
|
|
383
395
|
}
|
|
384
396
|
}
|
|
385
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1iYXNlLWxvb2t1cC1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9maWVsZHMvbG9va3Vwcy9jb3JlL2Fncm8tYmFzZS1sb29rdXAtZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWpELE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDO0FBQy9CLE1BQU0sZ0NBQWdDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFFOUQsTUFBTSxPQUFPLG1CQUFtQjtJQU1QO0lBQ0E7SUFOSixrQkFBa0IsR0FBRyxJQUFJLE9BQU8sRUFBUyxDQUFDO0lBQzFDLGFBQWEsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO0lBQzVDLDRCQUE0QixHQUFHLEtBQUssQ0FBQztJQUU3QyxZQUNxQixNQUFnQyxFQUNoQyxTQUFnQztRQURoQyxXQUFNLEdBQU4sTUFBTSxDQUEwQjtRQUNoQyxjQUFTLEdBQVQsU0FBUyxDQUF1QjtJQUNqRCxDQUFDO0lBRUcsa0JBQWtCLENBQUMsS0FBVTtRQUNqQyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEQsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUVELElB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L0QsSUFBSSxlQUFlLEtBQUssV0FBVyxFQUFFLENBQUM7d0JBQ2xDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDMUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQzt3QkFDdkQsT0FBTztvQkFDWCxDQUFDO2dCQUNMLENBQUM7Z0JBRUQsSUFBSSxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDMUIsSUFBSSxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUMxQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNoRCxDQUFDO1lBQ0wsQ0FBQztZQUNELFVBQVUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVELElBQUksT0FBTyxFQUFFLENBQUM7b0JBQ1YsSUFBSSxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUMxQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNoRCxDQUFDO1lBQ0wsQ0FBQztZQUNELFlBQVksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVk7WUFDdEMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZO1lBQzFDLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFVBQVUsRUFBRSxLQUFLO1NBQ3BCLENBQUM7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTGliVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbGliLXRyYW5zbGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBwYWlyd2lzZSwgc3RhcnRXaXRoLCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEdlbmVyaWNMb29rdXBGaWVsZENvbmZpZyB9IGZyb20gJy4vbG9va3VwLWZpZWxkLnR5cGVzJztcclxuaW1wb3J0IHsgY3JlYXRlR2VuZXJpY09uTG9va3VwUmVxdWVzdCwgY3JlYXRlR2VuZXJpY09uU2VhcmNoUmVxdWVzdCB9IGZyb20gJy4vbG9va3VwLWZpZWxkLmhhbmRsZXJzJztcclxuaW1wb3J0IHsgZ2V0TGFiZWxWYWx1ZVJlcXVlc3QsIG1lcmdlVW5pcXVlIH0gZnJvbSAnLi4vdXRpbHMvYWdyby1sb29rdXAtdXRpbHMnO1xyXG5pbXBvcnQgeyBmb3JtYXRDUEZDTlBKV2l0aE1hc2sgfSBmcm9tICcuLi91dGlscyc7XHJcblxyXG5jb25zdCBMT09LVVBfREVCT1VOQ0VfTVMgPSAzMDA7XHJcbmNvbnN0IExPT0tVUF9ET0NVTUVOVF9GSUVMRFNfVE9fRk9STUFUID0gWydjbnBDcGYnLCAnbnVtQ2djJ107XHJcblxyXG5leHBvcnQgY2xhc3MgQWdyb0Jhc2VMb29rdXBGaWVsZCB7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN1Z2dlc3Rpb25zU3ViamVjdCA9IG5ldyBTdWJqZWN0PGFueVtdPigpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZWFyY2hTdWJqZWN0ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gICAgcHJpdmF0ZSBoYXNEZXBlbmRlbmN5TGlzdGVuZXJTdGFydGVkID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IEdlbmVyaWNMb29rdXBGaWVsZENvbmZpZyxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogTGliVHJhbnNsYXRpb25TZXJ2aWNlXHJcbiAgICApIHsgfVxyXG5cclxuICAgIHByaXZhdGUgaXNMb29rdXBWYWx1ZVZhbGlkKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPiAwICYmIHZhbHVlLmV2ZXJ5KChpdGVtKSA9PiBpdGVtICYmIHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiBpdGVtLmlkICE9PSB1bmRlZmluZWQgJiYgaXRlbS5pZCAhPT0gbnVsbCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZS5pZCAhPT0gdW5kZWZpbmVkICYmIHZhbHVlLmlkICE9PSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZm9ybWF0RW50aXR5RG9jdW1lbnRGaWVsZHMoZW50aXR5OiBhbnkpOiBhbnkge1xyXG4gICAgICAgIGlmICghZW50aXR5IHx8IHR5cGVvZiBlbnRpdHkgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkoZW50aXR5KSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZW50aXR5O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGZvcm1hdHRlZEVudGl0eSA9IGVudGl0eTtcclxuXHJcbiAgICAgICAgTE9PS1VQX0RPQ1VNRU5UX0ZJRUxEU19UT19GT1JNQVQuZm9yRWFjaCgoZmllbGROYW1lKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghT2JqZWN0Lmhhc093bihlbnRpdHksIGZpZWxkTmFtZSkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxWYWx1ZSA9IGVudGl0eVtmaWVsZE5hbWVdO1xyXG4gICAgICAgICAgICBpZiAob3JpZ2luYWxWYWx1ZSA9PT0gbnVsbCB8fCBvcmlnaW5hbFZhbHVlID09PSB1bmRlZmluZWQgfHwgb3JpZ2luYWxWYWx1ZSA9PT0gJycpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSBmb3JtYXRDUEZDTlBKV2l0aE1hc2sob3JpZ2luYWxWYWx1ZSk7XHJcbiAgICAgICAgICAgIGlmIChmb3JtYXR0ZWRWYWx1ZSAhPT0gb3JpZ2luYWxWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGZvcm1hdHRlZEVudGl0eSA9PT0gZW50aXR5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkRW50aXR5ID0geyAuLi5lbnRpdHkgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBmb3JtYXR0ZWRFbnRpdHlbZmllbGROYW1lXSA9IGZvcm1hdHRlZFZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBmb3JtYXR0ZWRFbnRpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBub3JtYWxpemVMb29rdXBWYWx1ZSh2YWx1ZTogYW55KTogYW55IHtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgbGV0IGhhc0NoYW5nZXMgPSBmYWxzZTtcclxuICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZEFycmF5ID0gdmFsdWUubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBub3JtYWxpemVkSXRlbSA9IHRoaXMubm9ybWFsaXplTG9va3VwVmFsdWUoaXRlbSk7XHJcbiAgICAgICAgICAgICAgICBoYXNDaGFuZ2VzID0gaGFzQ2hhbmdlcyB8fCBub3JtYWxpemVkSXRlbSAhPT0gaXRlbTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVkSXRlbTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gaGFzQ2hhbmdlcyA/IG5vcm1hbGl6ZWRBcnJheSA6IHZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0RW50aXR5RG9jdW1lbnRGaWVsZHModmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3luY0NvbnRyb2xWYWx1ZVdpdGhOb3JtYWxpemF0aW9uKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IG51bGwpOiBhbnkge1xyXG4gICAgICAgIGlmICghY29udHJvbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRWYWx1ZSA9IHRoaXMubm9ybWFsaXplTG9va3VwVmFsdWUoY29udHJvbC52YWx1ZSk7XHJcbiAgICAgICAgaWYgKG5vcm1hbGl6ZWRWYWx1ZSAhPT0gY29udHJvbC52YWx1ZSkge1xyXG4gICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKG5vcm1hbGl6ZWRWYWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRWYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhc1VzZXJJbnRlcmFjdGlvbihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFjb250cm9sKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBjb250cm9sLmRpcnR5IHx8IGNvbnRyb2wudG91Y2hlZDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG1hcmtDb250cm9sQXNVc2VySW50ZXJhY3RlZChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFjb250cm9sKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghY29udHJvbC5kaXJ0eSkge1xyXG4gICAgICAgICAgICBjb250cm9sLm1hcmtBc0RpcnR5KHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIWNvbnRyb2wudG91Y2hlZCkge1xyXG4gICAgICAgICAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpc0NvbnRyb2xGaWxsZWQodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS50cmltKCkgIT09ICcnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhcmVEZXBlbmRlbmNpZXNSZWFkeSgpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBkZXBlbmRzT2YgPSB0aGlzLmNvbmZpZy5kZXBlbmRzT2YgPz8gW107XHJcbiAgICAgICAgaWYgKGRlcGVuZHNPZi5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZGVwZW5kc09mLmV2ZXJ5KChmaWVsZE5hbWUpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29uZmlnLmZvcm1Hcm91cC5nZXQoZmllbGROYW1lKTtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNMb29rdXBWYWx1ZVZhbGlkKHRoaXMuc3luY0NvbnRyb2xWYWx1ZVdpdGhOb3JtYWxpemF0aW9uKGNvbnRyb2wpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzQXV0b2ZpbGxFbmFibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5hdXRvZmlsbCAhPT0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBidWlsZERlcGVuZGVuY3lRdWVyeSgpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGRlcGVuZGVuY2llcyA9IHRoaXMuY29uZmlnLmRlcGVuZGVuY2llcyA/PyBbXTtcclxuICAgICAgICByZXR1cm4gZGVwZW5kZW5jaWVzXHJcbiAgICAgICAgICAgIC5tYXAoKHsgZm9ybUNvbnRyb2xOYW1lLCBhcGlGaWVsZCB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkZXBlbmRlbmN5SWQgPSB0aGlzLmNvbmZpZy5mb3JtR3JvdXAuZ2V0KGZvcm1Db250cm9sTmFtZSk/LnZhbHVlPy5pZDtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkZXBlbmRlbmN5SWQgPyBgJHthcGlGaWVsZH0gZXEgJyR7ZGVwZW5kZW5jeUlkfSdgIDogJyc7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbilcclxuICAgICAgICAgICAgLmpvaW4oJyBhbmQgJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBidWlsZEN1c3RvbUZpbHRlclF1ZXJ5KCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgcXVlcnkgPSB0aGlzLmNvbmZpZy5jdXN0b21GaWx0ZXJRdWVyeT8uKCk7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBxdWVyeSA9PT0gJ3N0cmluZycgPyBxdWVyeS50cmltKCkgOiAnJztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNvbWJpbmVGaWx0ZXJRdWVyaWVzKC4uLnF1ZXJpZXM6IHN0cmluZ1tdKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gcXVlcmllcy5maWx0ZXIoKHF1ZXJ5KSA9PiAhIXF1ZXJ5KS5qb2luKCcgYW5kICcpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdHJ5QXV0b2ZpbGxXaGVuU2luZ2xlUmVzdWx0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5pc0F1dG9maWxsRW5hYmxlZCgpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGRlcGVuZHNPZiA9IHRoaXMuY29uZmlnLmRlcGVuZHNPZiA/PyBbXTtcclxuICAgICAgICBpZiAoZGVwZW5kc09mLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCB0YXJnZXRDb250cm9sID0gdGhpcy5jb25maWcuZm9ybUdyb3VwLmdldCh0aGlzLmNvbmZpZy5uYW1lKTtcclxuICAgICAgICBpZiAoIXRhcmdldENvbnRyb2wgfHwgdGFyZ2V0Q29udHJvbC5kaXNhYmxlZCB8fCB0aGlzLmlzTG9va3VwVmFsdWVWYWxpZCh0YXJnZXRDb250cm9sLnZhbHVlKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBkZXBlbmRlbmN5UXVlcnkgPSB0aGlzLmJ1aWxkRGVwZW5kZW5jeVF1ZXJ5KCk7XHJcbiAgICAgICAgY29uc3QgY3VzdG9tUXVlcnkgPSB0aGlzLmJ1aWxkQ3VzdG9tRmlsdGVyUXVlcnkoKTtcclxuICAgICAgICBjb25zdCBmaWx0ZXJRdWVyeSA9IHRoaXMuY29tYmluZUZpbHRlclF1ZXJpZXMoZGVwZW5kZW5jeVF1ZXJ5LCBjdXN0b21RdWVyeSk7XHJcbiAgICAgICAgaWYgKCFmaWx0ZXJRdWVyeSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBzb3J0ID0gdGhpcy5jb25maWcubG9va3VwRGlzcGxheUZpZWxkcy5tYXAoKGZpZWxkOiBzdHJpbmcpID0+ICh7IGZpZWxkLCBvcmRlcjogMSB9KSk7XHJcbiAgICAgICAgY29uc3QgZGlzcGxheUZpZWxkcyA9IG1lcmdlVW5pcXVlKHRoaXMuY29uZmlnLmxvb2t1cERpc3BsYXlGaWVsZHMsIHRoaXMuY29uZmlnLmFkdmFuY2VkRGlzcGxheUZpZWxkcyk7XHJcblxyXG4gICAgICAgIHRoaXMuY29uZmlnLnNlcnZpY2VcclxuICAgICAgICAgICAgLmxpc3QoeyBwYWdlOiAwLCBzaXplOiAyLCBzb3J0LCBmaWx0ZXJRdWVyeSwgZGlzcGxheUZpZWxkcyB9KVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChsaXN0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRzID0gbGlzdD8uY29udGVudHMgPz8gW107XHJcbiAgICAgICAgICAgICAgICBpZiAoY29udGVudHMubGVuZ3RoICE9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IFtzaW5nbGVWYWx1ZV0gPSBnZXRMYWJlbFZhbHVlUmVxdWVzdChjb250ZW50cywgdGhpcy5jb25maWcubG9va3VwRGlzcGxheUZpZWxkcyk7XHJcbiAgICAgICAgICAgICAgICBpZiAoc2luZ2xlVmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRDb250cm9sLnNldFZhbHVlKHRoaXMubm9ybWFsaXplTG9va3VwVmFsdWUoc2luZ2xlVmFsdWUpLCB7IGVtaXRFdmVudDogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpc1ByZWZpbGxlZEFuZEluZGVwZW5kZW50KGhhc0FueVVzZXJJbnRlcmFjdGlvbjogYm9vbGVhbiwgdGFyZ2V0SXNWYWxpZDogYm9vbGVhbiwgdGFyZ2V0SXNGaWxsZWQ6IGJvb2xlYW4pOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIWhhc0FueVVzZXJJbnRlcmFjdGlvbiAmJiAodGFyZ2V0SXNWYWxpZCB8fCB0YXJnZXRJc0ZpbGxlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYW5kbGVEZXBlbmRlbmNpZXNTdGF0ZShmb3JjZVJlc2V0ID0gZmFsc2UpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB0YXJnZXRDb250cm9sID0gdGhpcy5jb25maWcuZm9ybUdyb3VwLmdldCh0aGlzLmNvbmZpZy5uYW1lKTtcclxuICAgICAgICBpZiAoIXRhcmdldENvbnRyb2wpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZGVwZW5kc09mID0gdGhpcy5jb25maWcuZGVwZW5kc09mID8/IFtdO1xyXG4gICAgICAgIGlmIChkZXBlbmRzT2YubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGhhc0FueVVzZXJJbnRlcmFjdGlvbiA9IGRlcGVuZHNPZi5zb21lKChmaWVsZE5hbWUpID0+IHRoaXMuaGFzVXNlckludGVyYWN0aW9uKHRoaXMuY29uZmlnLmZvcm1Hcm91cC5nZXQoZmllbGROYW1lKSkpO1xyXG4gICAgICAgIGNvbnN0IHRhcmdldFZhbHVlID0gdGhpcy5zeW5jQ29udHJvbFZhbHVlV2l0aE5vcm1hbGl6YXRpb24odGFyZ2V0Q29udHJvbCk7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0SXNWYWxpZCA9IHRoaXMuaXNMb29rdXBWYWx1ZVZhbGlkKHRhcmdldFZhbHVlKTtcclxuICAgICAgICBjb25zdCB0YXJnZXRJc0ZpbGxlZCA9IHRoaXMuaXNDb250cm9sRmlsbGVkKHRhcmdldFZhbHVlKTtcclxuXHJcbiAgICAgICAgaWYgKGZvcmNlUmVzZXQpIHtcclxuICAgICAgICAgICAgdGFyZ2V0Q29udHJvbC5zZXRWYWx1ZShudWxsLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgIHRhcmdldENvbnRyb2wuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFJ1bGU6IGRlcGVuZGVudCBmaWVsZHMgc3RhcnQgZGlzYWJsZWQsIGV4Y2VwdCB3aGVuIGFscmVhZHkgZmlsbGVkL3ZhbGlkIChwcmVmaWxsZWQgc2NlbmFyaW8pLlxyXG4gICAgICAgIGlmICh0aGlzLmlzUHJlZmlsbGVkQW5kSW5kZXBlbmRlbnQoaGFzQW55VXNlckludGVyYWN0aW9uLCB0YXJnZXRJc1ZhbGlkLCB0YXJnZXRJc0ZpbGxlZCkpIHtcclxuICAgICAgICAgICAgdGFyZ2V0Q29udHJvbC5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnRyeUF1dG9maWxsV2hlblNpbmdsZVJlc3VsdCgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5hcmVEZXBlbmRlbmNpZXNSZWFkeSgpKSB7XHJcbiAgICAgICAgICAgIHRhcmdldENvbnRyb2wuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgICAgICAgdGhpcy50cnlBdXRvZmlsbFdoZW5TaW5nbGVSZXN1bHQoKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gS2VlcCBwcmVmaWxsZWQgdmFsdWVzOyBjbGVhciBvbmx5IHdoZW4gdGhlcmUgaXMgdXNlciBpbnRlcmFjdGlvbiBvciB2YWx1ZSBpcyBpbnZhbGlkIGZvciBsb29rdXAuXHJcbiAgICAgICAgaWYgKGhhc0FueVVzZXJJbnRlcmFjdGlvbiB8fCAodGFyZ2V0SXNGaWxsZWQgJiYgIXRhcmdldElzVmFsaWQpKSB7XHJcbiAgICAgICAgICAgIHRhcmdldENvbnRyb2wuc2V0VmFsdWUobnVsbCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGFyZ2V0Q29udHJvbC5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNsZWFyVGFyZ2V0S2VlcGluZ0VuYWJsZWQoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0Q29udHJvbCA9IHRoaXMuY29uZmlnLmZvcm1Hcm91cC5nZXQodGhpcy5jb25maWcubmFtZSk7XHJcbiAgICAgICAgaWYgKCF0YXJnZXRDb250cm9sKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRhcmdldENvbnRyb2wuc2V0VmFsdWUobnVsbCwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmFyZURlcGVuZGVuY2llc1JlYWR5KCkpIHtcclxuICAgICAgICAgICAgdGFyZ2V0Q29udHJvbC5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnRyeUF1dG9maWxsV2hlblNpbmdsZVJlc3VsdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldENvbXBhcmFibGVMb29rdXBWYWx1ZSh2YWx1ZTogYW55KTogYW55IHtcclxuICAgICAgICBjb25zdCBub3JtYWxpemVkVmFsdWUgPSB0aGlzLm5vcm1hbGl6ZUxvb2t1cFZhbHVlKHZhbHVlKTtcclxuXHJcbiAgICAgICAgaWYgKG5vcm1hbGl6ZWRWYWx1ZSA9PT0gbnVsbCB8fCBub3JtYWxpemVkVmFsdWUgPT09IHVuZGVmaW5lZCB8fCBub3JtYWxpemVkVmFsdWUgPT09ICcnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobm9ybWFsaXplZFZhbHVlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplZFZhbHVlLm1hcCgoaXRlbSkgPT4gdGhpcy5nZXRDb21wYXJhYmxlTG9va3VwVmFsdWUoaXRlbSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBub3JtYWxpemVkVmFsdWUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgIGlmIChub3JtYWxpemVkVmFsdWUuaWQgIT09IHVuZGVmaW5lZCAmJiBub3JtYWxpemVkVmFsdWUuaWQgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVkVmFsdWUuaWQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShub3JtYWxpemVkVmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRWYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGRpZERlcGVuZGVuY3lWYWx1ZUNoYW5nZShwcmV2aW91c0NvbXBhcmFibGU6IGFueSwgY3VycmVudENvbXBhcmFibGU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShwcmV2aW91c0NvbXBhcmFibGUpICE9PSBKU09OLnN0cmluZ2lmeShjdXJyZW50Q29tcGFyYWJsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGFydERlcGVuZGVuY2llc0xpc3RlbmVyKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmhhc0RlcGVuZGVuY3lMaXN0ZW5lclN0YXJ0ZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZGVwZW5kc09mID0gdGhpcy5jb25maWcuZGVwZW5kc09mID8/IFtdO1xyXG4gICAgICAgIGlmIChkZXBlbmRzT2YubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuaGFzRGVwZW5kZW5jeUxpc3RlbmVyU3RhcnRlZCA9IHRydWU7XHJcblxyXG4gICAgICAgIC8vIE9ic2VydmUgZWFjaCBkZXBlbmRlbmN5IGRpcmVjdGx5IGFuZCBjb21wYXJlIHByZXZpb3VzL2N1cnJlbnQgdmFsdWVzLlxyXG4gICAgICAgIGRlcGVuZHNPZi5mb3JFYWNoKChmaWVsZE5hbWUpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29uZmlnLmZvcm1Hcm91cC5nZXQoZmllbGROYW1lKTtcclxuICAgICAgICAgICAgICAgIGNvbnRyb2w/LnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChjb250cm9sLnZhbHVlKSxcclxuICAgICAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoTE9PS1VQX0RFQk9VTkNFX01TKSxcclxuICAgICAgICAgICAgICAgICAgICBwYWlyd2lzZSgpXHJcbiAgICAgICAgICAgICAgICApLnN1YnNjcmliZSgoW3ByZXZpb3VzVmFsdWUsIGN1cnJlbnRWYWx1ZV0pID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRQcmV2aW91c1ZhbHVlID0gdGhpcy5ub3JtYWxpemVMb29rdXBWYWx1ZShwcmV2aW91c1ZhbHVlKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRDdXJyZW50VmFsdWUgPSB0aGlzLm5vcm1hbGl6ZUxvb2t1cFZhbHVlKGN1cnJlbnRWYWx1ZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKG5vcm1hbGl6ZWRDdXJyZW50VmFsdWUgIT09IGN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUobm9ybWFsaXplZEN1cnJlbnRWYWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzVmFsaWRpdHkgPSB0aGlzLmlzTG9va3VwVmFsdWVWYWxpZChub3JtYWxpemVkUHJldmlvdXNWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsaWRpdHkgPSB0aGlzLmlzTG9va3VwVmFsdWVWYWxpZChub3JtYWxpemVkQ3VycmVudFZhbHVlKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzQ29tcGFyYWJsZSA9IHRoaXMuZ2V0Q29tcGFyYWJsZUxvb2t1cFZhbHVlKG5vcm1hbGl6ZWRQcmV2aW91c1ZhbHVlKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRDb21wYXJhYmxlID0gdGhpcy5nZXRDb21wYXJhYmxlTG9va3VwVmFsdWUobm9ybWFsaXplZEN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkaWRWYWx1ZUNoYW5nZSA9IHRoaXMuZGlkRGVwZW5kZW5jeVZhbHVlQ2hhbmdlKHByZXZpb3VzQ29tcGFyYWJsZSwgY3VycmVudENvbXBhcmFibGUpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c1ZhbGlkaXR5ICYmICFjdXJyZW50VmFsaWRpdHkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZURlcGVuZGVuY2llc1N0YXRlKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNWYWxpZGl0eSAmJiBjdXJyZW50VmFsaWRpdHkgJiYgZGlkVmFsdWVDaGFuZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyVGFyZ2V0S2VlcGluZ0VuYWJsZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKCFwcmV2aW91c1ZhbGlkaXR5ICYmIGN1cnJlbnRWYWxpZGl0eSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRGVwZW5kZW5jaWVzU3RhdGUoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGNvbnRyb2w/LnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmFyZURlcGVuZGVuY2llc1JlYWR5KCkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZURlcGVuZGVuY2llc1N0YXRlKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIEV2YWx1YXRlIG9uY2UgYWZ0ZXIgaW5pdCB0byBob25vciBwcmVmaWxsZWQgdmFsaWQgZGVwZW5kZW5jaWVzIHdpdGhvdXQgZm9yY2luZyByZXNldHMuXHJcbiAgICAgICAgdGhpcy5oYW5kbGVEZXBlbmRlbmNpZXNTdGF0ZShmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgbWFrZUl0KCk6IGFueSB7XHJcbiAgICAgICAgdGhpcy5zdGFydERlcGVuZGVuY2llc0xpc3RlbmVyKCk7XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIG5hbWU6IHRoaXMuY29uZmlnLm5hbWUsXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZTogdGhpcy5jb25maWcubmFtZSwgIC8vIEV4cGxpY2l0bHkgc2V0IGZvcm1Db250cm9sTmFtZSBmb3Igcy1keW5hbWljLWZvcm0gYmluZGluZ1xyXG4gICAgICAgICAgICBmaWx0ZXJGaWVsZE5hbWU6IHRoaXMuY29uZmlnLmZpbHRlckZpZWxkTmFtZSA/PyB0aGlzLmNvbmZpZy5uYW1lLFxyXG4gICAgICAgICAgICByZXF1aXJlZDogdGhpcy5jb25maWcucmVxdWlyZWQgPz8gKCgpID0+IGZhbHNlKSxcclxuICAgICAgICAgICAgc2l6ZTogdGhpcy5jb25maWcuc2l6ZSA/PyB7IHNtOiA0LCBtZDogNCwgbGc6IDQsIHhsOiA0IH0sXHJcbiAgICAgICAgICAgIGRlcGVuZHNPZjogdGhpcy5jb25maWcuZGVwZW5kc09mID8/IFtdLFxyXG4gICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0aGlzLmNvbmZpZy5sYWJlbEtleSksXHJcbiAgICAgICAgICAgIHR5cGU6ICdsb29rdXAnLFxyXG4gICAgICAgICAgICBkYXRhS2V5OiAnaWQnLFxyXG4gICAgICAgICAgICBsb29rdXBEaXNwbGF5RmllbGQ6ICdsYWJlbCcsXHJcbiAgICAgICAgICAgIHNlYXJjaFRpdGxlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuY29uZmlnLnNlYXJjaFRpdGxlS2V5KSxcclxuICAgICAgICAgICAgc2VhcmNoRW1wdHlUaXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnYWdyby5hbmd1bGFyX2NvbXBvbmVudHMubG9va3VwX25vdGhpbmdfZm91bmQnKSxcclxuICAgICAgICAgICAgZmlsdGVyTGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2Fncm8uYW5ndWxhcl9jb21wb25lbnRzLmxvb2t1cF9maWx0ZXInKSxcclxuICAgICAgICAgICAgZmlsdGVyVGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2Fncm8uYW5ndWxhcl9jb21wb25lbnRzLmxvb2t1cF9maWx0ZXJzJyksXHJcbiAgICAgICAgICAgIGNsZWFyTGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2Fncm8uYW5ndWxhcl9jb21wb25lbnRzLmxvb2t1cF9jbGVhcicpLFxyXG4gICAgICAgICAgICBjYW5jZWxMYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnYWdyby5hbmd1bGFyX2NvbXBvbmVudHMubG9va3VwX2NhbmNlbCcpLFxyXG4gICAgICAgICAgICBzZWxlY3RMYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnYWdyby5hbmd1bGFyX2NvbXBvbmVudHMubG9va3VwX3NlbGVjdCcpLFxyXG4gICAgICAgICAgICBzdWdnZXN0aW9uc09ic2VydmFibGU6IHRoaXMuc3VnZ2VzdGlvbnNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLFxyXG4gICAgICAgICAgICBzZWFyY2hPYnNlcnZhYmxlOiB0aGlzLnNlYXJjaFN1YmplY3QuYXNPYnNlcnZhYmxlKCksXHJcbiAgICAgICAgICAgIG9uTG9va3VwUmVxdWVzdDogY3JlYXRlR2VuZXJpY09uTG9va3VwUmVxdWVzdCh7XHJcbiAgICAgICAgICAgICAgICBjb25maWc6IHRoaXMuY29uZmlnLFxyXG4gICAgICAgICAgICAgICAgc3VnZ2VzdGlvbnNTdWJqZWN0OiB0aGlzLnN1Z2dlc3Rpb25zU3ViamVjdCxcclxuICAgICAgICAgICAgICAgIHNlYXJjaFN1YmplY3Q6IHRoaXMuc2VhcmNoU3ViamVjdCxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG9uU2VhcmNoUmVxdWVzdDogY3JlYXRlR2VuZXJpY09uU2VhcmNoUmVxdWVzdCh7XHJcbiAgICAgICAgICAgICAgICBjb25maWc6IHRoaXMuY29uZmlnLFxyXG4gICAgICAgICAgICAgICAgc3VnZ2VzdGlvbnNTdWJqZWN0OiB0aGlzLnN1Z2dlc3Rpb25zU3ViamVjdCxcclxuICAgICAgICAgICAgICAgIHNlYXJjaFN1YmplY3Q6IHRoaXMuc2VhcmNoU3ViamVjdCxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG9uQmx1cjogKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNvbmZpZy5mb3JtR3JvdXAuZ2V0KHRoaXMuY29uZmlnLm5hbWUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcmtDb250cm9sQXNVc2VySW50ZXJhY3RlZChjb250cm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB1aVJhd1ZhbHVlID0gZXZlbnQ/LnRhcmdldD8udmFsdWUgPz8gZXZlbnQ/LnZhbHVlID8/ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpVGV4dFZhbHVlID0gdHlwZW9mIHVpUmF3VmFsdWUgPT09ICdzdHJpbmcnID8gdWlSYXdWYWx1ZS50cmltKCkgOiB1aVJhd1ZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzVWlFbXB0eSA9ICF1aVRleHRWYWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLnN5bmNDb250cm9sVmFsdWVXaXRoTm9ybWFsaXphdGlvbihjb250cm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc1ZhbHVlVmFsaWQgPSB0aGlzLmlzTG9va3VwVmFsdWVWYWxpZChjdXJyZW50VmFsdWUpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyBJZiBVSSB3YXMgY2xlYXJlZCBidXQgY29udHJvbCBzdGlsbCBoYXMgYSB2YWx1ZSwgZm9yY2Ugc3luYyB0byBudWxsLlxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1VpRW1wdHkgJiYgY3VycmVudFZhbHVlICE9IG51bGwgJiYgY3VycmVudFZhbHVlICE9PSAnJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKG51bGwsIHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBjb250cm9sIGhhcyBhIHZhbHVlIGJ1dCBpdCdzIG5vdCBhIHZhbGlkIGxvb2t1cCBvYmplY3QsIGNsZWFyIGl0XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBjYXRjaGVzIGNhc2VzIHdoZXJlIHRoZSBVSSBjbGVhcmVkIHRoZSBmaWVsZCBidXQgdGhlIEZvcm1Db250cm9sIHdhc24ndCB1cGRhdGVkXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZSAmJiAhaXNWYWx1ZVZhbGlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHsgW3RoaXMuY29uZmlnLm5hbWVdOiBudWxsIH0sIHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgb25TZWxlY3RIYW5kbGVyOiAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYWN0dWFsVmFsdWUgPSBldmVudD8udmFsdWUgfHwgZXZlbnQ7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb25maWcuZm9ybUdyb3VwLmdldCh0aGlzLmNvbmZpZy5uYW1lKTtcclxuICAgICAgICAgICAgICAgIGlmIChjb250cm9sICYmIGFjdHVhbFZhbHVlICYmIHR5cGVvZiBhY3R1YWxWYWx1ZSA9PT0gJ29iamVjdCcgJiYgYWN0dWFsVmFsdWUuaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBub3JtYWxpemVkVmFsdWUgPSB0aGlzLm5vcm1hbGl6ZUxvb2t1cFZhbHVlKGFjdHVhbFZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcmtDb250cm9sQXNVc2VySW50ZXJhY3RlZChjb250cm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKG5vcm1hbGl6ZWRWYWx1ZSwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIG9uU2VsZWN0OiAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYWN0dWFsVmFsdWUgPSBldmVudD8udmFsdWUgfHwgZXZlbnQ7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb25maWcuZm9ybUdyb3VwLmdldCh0aGlzLmNvbmZpZy5uYW1lKTtcclxuICAgICAgICAgICAgICAgIGlmIChjb250cm9sICYmIGFjdHVhbFZhbHVlICYmIHR5cGVvZiBhY3R1YWxWYWx1ZSA9PT0gJ29iamVjdCcgJiYgYWN0dWFsVmFsdWUuaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBub3JtYWxpemVkVmFsdWUgPSB0aGlzLm5vcm1hbGl6ZUxvb2t1cFZhbHVlKGFjdHVhbFZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcmtDb250cm9sQXNVc2VySW50ZXJhY3RlZChjb250cm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKG5vcm1hbGl6ZWRWYWx1ZSwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIG9uQ2xlYXI6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNvbmZpZy5mb3JtR3JvdXAuZ2V0KHRoaXMuY29uZmlnLm5hbWUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcmtDb250cm9sQXNVc2VySW50ZXJhY3RlZChjb250cm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKG51bGwsIHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBvbkNoYW5nZTogKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNvbmZpZy5mb3JtR3JvdXAuZ2V0KHRoaXMuY29uZmlnLm5hbWUpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYWN0dWFsVmFsdWUgPSBldmVudD8udmFsdWUgfHwgZXZlbnQ7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGNvbnRyb2wgJiYgYWN0dWFsVmFsdWUgJiYgdHlwZW9mIGFjdHVhbFZhbHVlID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRWYWx1ZSA9IHRoaXMubm9ybWFsaXplTG9va3VwVmFsdWUoYWN0dWFsVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChub3JtYWxpemVkVmFsdWUgIT09IGFjdHVhbFZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWFya0NvbnRyb2xBc1VzZXJJbnRlcmFjdGVkKGNvbnRyb2wpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKG5vcm1hbGl6ZWRWYWx1ZSwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGNvbnRyb2wgJiYgIWFjdHVhbFZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXJrQ29udHJvbEFzVXNlckludGVyYWN0ZWQoY29udHJvbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShudWxsLCB7IGVtaXRFdmVudDogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgb25VbnNlbGVjdDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29uZmlnLmZvcm1Hcm91cC5nZXQodGhpcy5jb25maWcubmFtZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoY29udHJvbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWFya0NvbnRyb2xBc1VzZXJJbnRlcmFjdGVkKGNvbnRyb2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUobnVsbCwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHNlYXJjaEZpZWxkczogdGhpcy5jb25maWcuc2VhcmNoRmllbGRzLFxyXG4gICAgICAgICAgICBzZWFyY2hHcmlkRmllbGRzOiB0aGlzLmNvbmZpZy5zZWFyY2hGaWVsZHMsXHJcbiAgICAgICAgICAgIGFwcGVuZFRvOiAnYm9keScsXHJcbiAgICAgICAgICAgIGJhc2VaSW5kZXg6IDEwMDAwLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4iXX0=
|
|
397
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1iYXNlLWxvb2t1cC1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9maWVsZHMvbG9va3Vwcy9jb3JlL2Fncm8tYmFzZS1sb29rdXAtZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWpELE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDO0FBQy9CLE1BQU0sZ0NBQWdDLEdBQUc7SUFDckMsUUFBUTtJQUNSLFFBQVE7SUFDUixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtJQUNqQixhQUFhO0lBQ2IsY0FBYztJQUNkLGFBQWE7SUFDYixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLEtBQUs7Q0FDUixDQUFDO0FBRUYsTUFBTSxPQUFPLG1CQUFtQjtJQU1QO0lBQ1E7SUFOWixrQkFBa0IsR0FBRyxJQUFJLE9BQU8sRUFBUyxDQUFDO0lBQzFDLGFBQWEsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO0lBQzVDLDRCQUE0QixHQUFHLEtBQUssQ0FBQztJQUU3QyxZQUNxQixNQUFnQyxFQUN4QixTQUFnQztRQUR4QyxXQUFNLEdBQU4sTUFBTSxDQUEwQjtRQUN4QixjQUFTLEdBQVQsU0FBUyxDQUF1QjtJQUN6RCxDQUFDO0lBRUcsa0JBQWtCLENBQUMsS0FBVTtRQUNqQyxJQUFJ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Q0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTGliVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbGliLXRyYW5zbGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBwYWlyd2lzZSwgc3RhcnRXaXRoLCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEdlbmVyaWNMb29rdXBGaWVsZENvbmZpZyB9IGZyb20gJy4vbG9va3VwLWZpZWxkLnR5cGVzJztcclxuaW1wb3J0IHsgY3JlYXRlR2VuZXJpY09uTG9va3VwUmVxdWVzdCwgY3JlYXRlR2VuZXJpY09uU2VhcmNoUmVxdWVzdCB9IGZyb20gJy4vbG9va3VwLWZpZWxkLmhhbmRsZXJzJztcclxuaW1wb3J0IHsgZ2V0TGFiZWxWYWx1ZVJlcXVlc3QsIG1lcmdlVW5pcXVlIH0gZnJvbSAnLi4vdXRpbHMvYWdyby1sb29rdXAtdXRpbHMnO1xyXG5pbXBvcnQgeyBmb3JtYXRDUEZDTlBKV2l0aE1hc2sgfSBmcm9tICcuLi91dGlscyc7XHJcblxyXG5jb25zdCBMT09LVVBfREVCT1VOQ0VfTVMgPSAzMDA7XHJcbmNvbnN0IExPT0tVUF9ET0NVTUVOVF9GSUVMRFNfVE9fRk9STUFUID0gW1xyXG4gICAgJ2NucENwZicsXHJcbiAgICAnbnVtQ2djJyxcclxuICAgICdlMDAxcGVzLmNucENwZicsXHJcbiAgICAnZTAwMXBlcy5udW1DZ2MnLFxyXG4gICAgJ2UwMDFwZXMuY3BmQ25waicsXHJcbiAgICAnZTAwMXBlcy5jcGYnLFxyXG4gICAgJ2UwMDFwZXMuY25waicsXHJcbiAgICAnZTAwMXBlcy5jZ2MnLFxyXG4gICAgJ2UwMDFwZXMuY3BmQ2djJyxcclxuICAgICdlMDAxcGVzLmNnY0NwZicsXHJcbiAgICAnY3BmJ1xyXG5dO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFncm9CYXNlTG9va3VwRmllbGQge1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdWdnZXN0aW9uc1N1YmplY3QgPSBuZXcgU3ViamVjdDxhbnlbXT4oKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2VhcmNoU3ViamVjdCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICAgIHByaXZhdGUgaGFzRGVwZW5kZW5jeUxpc3RlbmVyU3RhcnRlZCA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBHZW5lcmljTG9va3VwRmllbGRDb25maWcsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogTGliVHJhbnNsYXRpb25TZXJ2aWNlXHJcbiAgICApIHsgfVxyXG5cclxuICAgIHByaXZhdGUgaXNMb29rdXBWYWx1ZVZhbGlkKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPiAwICYmIHZhbHVlLmV2ZXJ5KChpdGVtKSA9PiBpdGVtICYmIHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiBpdGVtLmlkICE9PSB1bmRlZmluZWQgJiYgaXRlbS5pZCAhPT0gbnVsbCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZS5pZCAhPT0gdW5kZWZpbmVkICYmIHZhbHVlLmlkICE9PSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZm9ybWF0RW50aXR5RG9jdW1lbnRGaWVsZHMoZW50aXR5OiBhbnkpOiBhbnkge1xyXG4gICAgICAgIGlmICghZW50aXR5IHx8IHR5cGVvZiBlbnRpdHkgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkoZW50aXR5KSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZW50aXR5O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGZvcm1hdHRlZEVudGl0eSA9IGVudGl0eTtcclxuXHJcbiAgICAgICAgTE9PS1VQX0RPQ1VNRU5UX0ZJRUxEU19UT19GT1JNQVQuZm9yRWFjaCgoZmllbGROYW1lKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghT2JqZWN0Lmhhc093bihlbnRpdHksIGZpZWxkTmFtZSkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxWYWx1ZSA9IGVudGl0eVtmaWVsZE5hbWVdO1xyXG4gICAgICAgICAgICBpZiAob3JpZ2luYWxWYWx1ZSA9PT0gbnVsbCB8fCBvcmlnaW5hbFZhbHVlID09PSB1bmRlZmluZWQgfHwgb3JpZ2luYWxWYWx1ZSA9PT0gJycpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSBmb3JtYXRDUEZDTlBKV2l0aE1hc2sob3JpZ2luYWxWYWx1ZSk7XHJcbiAgICAgICAgICAgIGlmIChmb3JtYXR0ZWRWYWx1ZSAhPT0gb3JpZ2luYWxWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGZvcm1hdHRlZEVudGl0eSA9PT0gZW50aXR5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkRW50aXR5ID0geyAuLi5lbnRpdHkgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBmb3JtYXR0ZWRFbnRpdHlbZmllbGROYW1lXSA9IGZvcm1hdHRlZFZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBmb3JtYXR0ZWRFbnRpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBub3JtYWxpemVMb29rdXBWYWx1ZSh2YWx1ZTogYW55KTogYW55IHtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgbGV0IGhhc0NoYW5nZXMgPSBmYWxzZTtcclxuICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZEFycmF5ID0gdmFsdWUubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBub3JtYWxpemVkSXRlbSA9IHRoaXMubm9ybWFsaXplTG9va3VwVmFsdWUoaXRlbSk7XHJcbiAgICAgICAgICAgICAgICBoYXNDaGFuZ2VzID0gaGFzQ2hhbmdlcyB8fCBub3JtYWxpemVkSXRlbSAhPT0gaXRlbTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVkSXRlbTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gaGFzQ2hhbmdlcyA/IG5vcm1hbGl6ZWRBcnJheSA6IHZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0RW50aXR5RG9jdW1lbnRGaWVsZHModmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3luY0NvbnRyb2xWYWx1ZVdpdGhOb3JtYWxpemF0aW9uKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IG51bGwpOiBhbnkge1xyXG4gICAgICAgIGlmICghY29udHJvbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRWYWx1ZSA9IHRoaXMubm9ybWFsaXplTG9va3VwVmFsdWUoY29udHJvbC52YWx1ZSk7XHJcbiAgICAgICAgaWYgKG5vcm1hbGl6ZWRWYWx1ZSAhPT0gY29udHJvbC52YWx1ZSkge1xyXG4gICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKG5vcm1hbGl6ZWRWYWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRWYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhc1VzZXJJbnRlcmFjdGlvbihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFjb250cm9sKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBjb250cm9sLmRpcnR5IHx8IGNvbnRyb2wudG91Y2hlZDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG1hcmtDb250cm9sQXNVc2VySW50ZXJhY3RlZChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFjb250cm9sKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghY29udHJvbC5kaXJ0eSkge1xyXG4gICAgICAgICAgICBjb250cm9sLm1hcmtBc0RpcnR5KHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIWNvbnRyb2wudG91Y2hlZCkge1xyXG4gICAgICAgICAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpc0NvbnRyb2xGaWxsZWQodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS50cmltKCkgIT09ICcnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhcmVEZXBlbmRlbmNpZXNSZWFkeSgpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBkZXBlbmRzT2YgPSB0aGlzLmNvbmZpZy5kZXBlbmRzT2YgPz8gW107XHJcbiAgICAgICAgaWYgKGRlcGVuZHNPZi5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZGVwZW5kc09mLmV2ZXJ5KChmaWVsZE5hbWUpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29uZmlnLmZvcm1Hcm91cC5nZXQoZmllbGROYW1lKTtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNMb29rdXBWYWx1ZVZhbGlkKHRoaXMuc3luY0NvbnRyb2xWYWx1ZVdpdGhOb3JtYWxpemF0aW9uKGNvbnRyb2wpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzQXV0b2ZpbGxFbmFibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5hdXRvZmlsbCAhPT0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBidWlsZERlcGVuZGVuY3lRdWVyeSgpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGRlcGVuZGVuY2llcyA9IHRoaXMuY29uZmlnLmRlcGVuZGVuY2llcyA/PyBbXTtcclxuICAgICAgICByZXR1cm4gZGVwZW5kZW5jaWVzXHJcbiAgICAgICAgICAgIC5tYXAoKHsgZm9ybUNvbnRyb2xOYW1lLCBhcGlGaWVsZCB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkZXBlbmRlbmN5SWQgPSB0aGlzLmNvbmZpZy5mb3JtR3JvdXAuZ2V0KGZvcm1Db250cm9sTmFtZSk/LnZhbHVlPy5pZDtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkZXBlbmRlbmN5SWQgPyBgJHthcGlGaWVsZH0gZXEgJyR7ZGVwZW5kZW5jeUlkfSdgIDogJyc7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbilcclxuICAgICAgICAgICAgLmpvaW4oJyBhbmQgJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBidWlsZEN1c3RvbUZpbHRlclF1ZXJ5KCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgcXVlcnkgPSB0aGlzLmNvbmZpZy5jdXN0b21GaWx0ZXJRdWVyeT8uKCk7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBxdWVyeSA9PT0gJ3N0cmluZycgPyBxdWVyeS50cmltKCkgOiAnJztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNvbWJpbmVGaWx0ZXJRdWVyaWVzKC4uLnF1ZXJpZXM6IHN0cmluZ1tdKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gcXVlcmllcy5maWx0ZXIoKHF1ZXJ5KSA9PiAhIXF1ZXJ5KS5qb2luKCcgYW5kICcpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdHJ5QXV0b2ZpbGxXaGVuU2luZ2xlUmVzdWx0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5pc0F1dG9maWxsRW5hYmxlZCgpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGRlcGVuZHNPZiA9IHRoaXMuY29uZmlnLmRlcGVuZHNPZiA/PyBbXTtcclxuICAgICAgICBpZiAoZGVwZW5kc09mLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCB0YXJnZXRDb250cm9sID0gdGhpcy5jb25maWcuZm9ybUdyb3VwLmdldCh0aGlzLmNvbmZpZy5uYW1lKTtcclxuICAgICAgICBpZiAoIXRhcmdldENvbnRyb2wgfHwgdGFyZ2V0Q29udHJvbC5kaXNhYmxlZCB8fCB0aGlzLmlzTG9va3VwVmFsdWVWYWxpZCh0YXJnZXRDb250cm9sLnZhbHVlKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBkZXBlbmRlbmN5UXVlcnkgPSB0aGlzLmJ1aWxkRGVwZW5kZW5jeVF1ZXJ5KCk7XHJcbiAgICAgICAgY29uc3QgY3VzdG9tUXVlcnkgPSB0aGlzLmJ1aWxkQ3VzdG9tRmlsdGVyUXVlcnkoKTtcclxuICAgICAgICBjb25zdCBmaWx0ZXJRdWVyeSA9IHRoaXMuY29tYmluZUZpbHRlclF1ZXJpZXMoZGVwZW5kZW5jeVF1ZXJ5LCBjdXN0b21RdWVyeSk7XHJcbiAgICAgICAgaWYgKCFmaWx0ZXJRdWVyeSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBzb3J0ID0gdGhpcy5jb25maWcubG9va3VwRGlzcGxheUZpZWxkcy5tYXAoKGZpZWxkOiBzdHJpbmcpID0+ICh7IGZpZWxkLCBvcmRlcjogMSB9KSk7XHJcbiAgICAgICAgY29uc3QgZGlzcGxheUZpZWxkcyA9IG1lcmdlVW5pcXVlKHRoaXMuY29uZmlnLmxvb2t1cERpc3BsYXlGaWVsZHMsIHRoaXMuY29uZmlnLmFkdmFuY2VkRGlzcGxheUZpZWxkcyk7XHJcblxyXG4gICAgICAgIHRoaXMuY29uZmlnLnNlcnZpY2VcclxuICAgICAgICAgICAgLmxpc3QoeyBwYWdlOiAwLCBzaXplOiAyLCBzb3J0LCBmaWx0ZXJRdWVyeSwgZGlzcGxheUZpZWxkcyB9KVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChsaXN0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRzID0gbGlzdD8uY29udGVudHMgPz8gW107XHJcbiAgICAgICAgICAgICAgICBpZiAoY29udGVudHMubGVuZ3RoICE9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IFtzaW5nbGVWYWx1ZV0gPSBnZXRMYWJlbFZhbHVlUmVxdWVzdChjb250ZW50cywgdGhpcy5jb25maWcubG9va3VwRGlzcGxheUZpZWxkcyk7XHJcbiAgICAgICAgICAgICAgICBpZiAoc2luZ2xlVmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRDb250cm9sLnNldFZhbHVlKHRoaXMubm9ybWFsaXplTG9va3VwVmFsdWUoc2luZ2xlVmFsdWUpLCB7IGVtaXRFdmVudDogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpc1ByZWZpbGxlZEFuZEluZGVwZW5kZW50KGhhc0FueVVzZXJJbnRlcmFjdGlvbjogYm9vbGVhbiwgdGFyZ2V0SXNWYWxpZDogYm9vbGVhbiwgdGFyZ2V0SXNGaWxsZWQ6IGJvb2xlYW4pOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIWhhc0FueVVzZXJJbnRlcmFjdGlvbiAmJiAodGFyZ2V0SXNWYWxpZCB8fCB0YXJnZXRJc0ZpbGxlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYW5kbGVEZXBlbmRlbmNpZXNTdGF0ZShmb3JjZVJlc2V0ID0gZmFsc2UpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB0YXJnZXRDb250cm9sID0gdGhpcy5jb25maWcuZm9ybUdyb3VwLmdldCh0aGlzLmNvbmZpZy5uYW1lKTtcclxuICAgICAgICBpZiAoIXRhcmdldENvbnRyb2wpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZGVwZW5kc09mID0gdGhpcy5jb25maWcuZGVwZW5kc09mID8/IFtdO1xyXG4gICAgICAgIGlmIChkZXBlbmRzT2YubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGhhc0FueVVzZXJJbnRlcmFjdGlvbiA9IGRlcGVuZHNPZi5zb21lKChmaWVsZE5hbWUpID0+IHRoaXMuaGFzVXNlckludGVyYWN0aW9uKHRoaXMuY29uZmlnLmZvcm1Hcm91cC5nZXQoZmllbGROYW1lKSkpO1xyXG4gICAgICAgIGNvbnN0IHRhcmdldFZhbHVlID0gdGhpcy5zeW5jQ29udHJvbFZhbHVlV2l0aE5vcm1hbGl6YXRpb24odGFyZ2V0Q29udHJvbCk7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0SXNWYWxpZCA9IHRoaXMuaXNMb29rdXBWYWx1ZVZhbGlkKHRhcmdldFZhbHVlKTtcclxuICAgICAgICBjb25zdCB0YXJnZXRJc0ZpbGxlZCA9IHRoaXMuaXNDb250cm9sRmlsbGVkKHRhcmdldFZhbHVlKTtcclxuXHJcbiAgICAgICAgaWYgKGZvcmNlUmVzZXQpIHtcclxuICAgICAgICAgICAgdGFyZ2V0Q29udHJvbC5zZXRWYWx1ZShudWxsLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgIHRhcmdldENvbnRyb2wuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFJ1bGU6IGRlcGVuZGVudCBmaWVsZHMgc3RhcnQgZGlzYWJsZWQsIGV4Y2VwdCB3aGVuIGFscmVhZHkgZmlsbGVkL3ZhbGlkIChwcmVmaWxsZWQgc2NlbmFyaW8pLlxyXG4gICAgICAgIGlmICh0aGlzLmlzUHJlZmlsbGVkQW5kSW5kZXBlbmRlbnQoaGFzQW55VXNlckludGVyYWN0aW9uLCB0YXJnZXRJc1ZhbGlkLCB0YXJnZXRJc0ZpbGxlZCkpIHtcclxuICAgICAgICAgICAgdGFyZ2V0Q29udHJvbC5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnRyeUF1dG9maWxsV2hlblNpbmdsZVJlc3VsdCgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5hcmVEZXBlbmRlbmNpZXNSZWFkeSgpKSB7XHJcbiAgICAgICAgICAgIHRhcmdldENvbnRyb2wuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgICAgICAgdGhpcy50cnlBdXRvZmlsbFdoZW5TaW5nbGVSZXN1bHQoKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gS2VlcCBwcmVmaWxsZWQgdmFsdWVzOyBjbGVhciBvbmx5IHdoZW4gdGhlcmUgaXMgdXNlciBpbnRlcmFjdGlvbiBvciB2YWx1ZSBpcyBpbnZhbGlkIGZvciBsb29rdXAuXHJcbiAgICAgICAgaWYgKGhhc0FueVVzZXJJbnRlcmFjdGlvbiB8fCAodGFyZ2V0SXNGaWxsZWQgJiYgIXRhcmdldElzVmFsaWQpKSB7XHJcbiAgICAgICAgICAgIHRhcmdldENvbnRyb2wuc2V0VmFsdWUobnVsbCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGFyZ2V0Q29udHJvbC5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNsZWFyVGFyZ2V0S2VlcGluZ0VuYWJsZWQoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0Q29udHJvbCA9IHRoaXMuY29uZmlnLmZvcm1Hcm91cC5nZXQodGhpcy5jb25maWcubmFtZSk7XHJcbiAgICAgICAgaWYgKCF0YXJnZXRDb250cm9sKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRhcmdldENvbnRyb2wuc2V0VmFsdWUobnVsbCwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmFyZURlcGVuZGVuY2llc1JlYWR5KCkpIHtcclxuICAgICAgICAgICAgdGFyZ2V0Q29udHJvbC5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnRyeUF1dG9maWxsV2hlblNpbmdsZVJlc3VsdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldENvbXBhcmFibGVMb29rdXBWYWx1ZSh2YWx1ZTogYW55KTogYW55IHtcclxuICAgICAgICBjb25zdCBub3JtYWxpemVkVmFsdWUgPSB0aGlzLm5vcm1hbGl6ZUxvb2t1cFZhbHVlKHZhbHVlKTtcclxuXHJcbiAgICAgICAgaWYgKG5vcm1hbGl6ZWRWYWx1ZSA9PT0gbnVsbCB8fCBub3JtYWxpemVkVmFsdWUgPT09IHVuZGVmaW5lZCB8fCBub3JtYWxpemVkVmFsdWUgPT09ICcnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobm9ybWFsaXplZFZhbHVlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplZFZhbHVlLm1hcCgoaXRlbSkgPT4gdGhpcy5nZXRDb21wYXJhYmxlTG9va3VwVmFsdWUoaXRlbSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBub3JtYWxpemVkVmFsdWUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgIGlmIChub3JtYWxpemVkVmFsdWUuaWQgIT09IHVuZGVmaW5lZCAmJiBub3JtYWxpemVkVmFsdWUuaWQgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVkVmFsdWUuaWQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShub3JtYWxpemVkVmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRWYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGRpZERlcGVuZGVuY3lWYWx1ZUNoYW5nZShwcmV2aW91c0NvbXBhcmFibGU6IGFueSwgY3VycmVudENvbXBhcmFibGU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShwcmV2aW91c0NvbXBhcmFibGUpICE9PSBKU09OLnN0cmluZ2lmeShjdXJyZW50Q29tcGFyYWJsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGFydERlcGVuZGVuY2llc0xpc3RlbmVyKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmhhc0RlcGVuZGVuY3lMaXN0ZW5lclN0YXJ0ZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZGVwZW5kc09mID0gdGhpcy5jb25maWcuZGVwZW5kc09mID8/IFtdO1xyXG4gICAgICAgIGlmIChkZXBlbmRzT2YubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuaGFzRGVwZW5kZW5jeUxpc3RlbmVyU3RhcnRlZCA9IHRydWU7XHJcblxyXG4gICAgICAgIC8vIE9ic2VydmUgZWFjaCBkZXBlbmRlbmN5IGRpcmVjdGx5IGFuZCBjb21wYXJlIHByZXZpb3VzL2N1cnJlbnQgdmFsdWVzLlxyXG4gICAgICAgIGRlcGVuZHNPZi5mb3JFYWNoKChmaWVsZE5hbWUpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29uZmlnLmZvcm1Hcm91cC5nZXQoZmllbGROYW1lKTtcclxuICAgICAgICAgICAgICAgIGNvbnRyb2w/LnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChjb250cm9sLnZhbHVlKSxcclxuICAgICAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoTE9PS1VQX0RFQk9VTkNFX01TKSxcclxuICAgICAgICAgICAgICAgICAgICBwYWlyd2lzZSgpXHJcbiAgICAgICAgICAgICAgICApLnN1YnNjcmliZSgoW3ByZXZpb3VzVmFsdWUsIGN1cnJlbnRWYWx1ZV0pID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRQcmV2aW91c1ZhbHVlID0gdGhpcy5ub3JtYWxpemVMb29rdXBWYWx1ZShwcmV2aW91c1ZhbHVlKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRDdXJyZW50VmFsdWUgPSB0aGlzLm5vcm1hbGl6ZUxvb2t1cFZhbHVlKGN1cnJlbnRWYWx1ZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKG5vcm1hbGl6ZWRDdXJyZW50VmFsdWUgIT09IGN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUobm9ybWFsaXplZEN1cnJlbnRWYWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzVmFsaWRpdHkgPSB0aGlzLmlzTG9va3VwVmFsdWVWYWxpZChub3JtYWxpemVkUHJldmlvdXNWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsaWRpdHkgPSB0aGlzLmlzTG9va3VwVmFsdWVWYWxpZChub3JtYWxpemVkQ3VycmVudFZhbHVlKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzQ29tcGFyYWJsZSA9IHRoaXMuZ2V0Q29tcGFyYWJsZUxvb2t1cFZhbHVlKG5vcm1hbGl6ZWRQcmV2aW91c1ZhbHVlKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRDb21wYXJhYmxlID0gdGhpcy5nZXRDb21wYXJhYmxlTG9va3VwVmFsdWUobm9ybWFsaXplZEN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkaWRWYWx1ZUNoYW5nZSA9IHRoaXMuZGlkRGVwZW5kZW5jeVZhbHVlQ2hhbmdlKHByZXZpb3VzQ29tcGFyYWJsZSwgY3VycmVudENvbXBhcmFibGUpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c1ZhbGlkaXR5ICYmICFjdXJyZW50VmFsaWRpdHkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZURlcGVuZGVuY2llc1N0YXRlKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNWYWxpZGl0eSAmJiBjdXJyZW50VmFsaWRpdHkgJiYgZGlkVmFsdWVDaGFuZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyVGFyZ2V0S2VlcGluZ0VuYWJsZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKCFwcmV2aW91c1ZhbGlkaXR5ICYmIGN1cnJlbnRWYWxpZGl0eSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRGVwZW5kZW5jaWVzU3RhdGUoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGNvbnRyb2w/LnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmFyZURlcGVuZGVuY2llc1JlYWR5KCkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZURlcGVuZGVuY2llc1N0YXRlKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIEV2YWx1YXRlIG9uY2UgYWZ0ZXIgaW5pdCB0byBob25vciBwcmVmaWxsZWQgdmFsaWQgZGVwZW5kZW5jaWVzIHdpdGhvdXQgZm9yY2luZyByZXNldHMuXHJcbiAgICAgICAgdGhpcy5oYW5kbGVEZXBlbmRlbmNpZXNTdGF0ZShmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgbWFrZUl0KCk6IGFueSB7XHJcbiAgICAgICAgdGhpcy5zdGFydERlcGVuZGVuY2llc0xpc3RlbmVyKCk7XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIG5hbWU6IHRoaXMuY29uZmlnLm5hbWUsXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZTogdGhpcy5jb25maWcubmFtZSwgIC8vIEV4cGxpY2l0bHkgc2V0IGZvcm1Db250cm9sTmFtZSBmb3Igcy1keW5hbWljLWZvcm0gYmluZGluZ1xyXG4gICAgICAgICAgICBmaWx0ZXJGaWVsZE5hbWU6IHRoaXMuY29uZmlnLmZpbHRlckZpZWxkTmFtZSA/PyB0aGlzLmNvbmZpZy5uYW1lLFxyXG4gICAgICAgICAgICByZXF1aXJlZDogdGhpcy5jb25maWcucmVxdWlyZWQgPz8gKCgpID0+IGZhbHNlKSxcclxuICAgICAgICAgICAgc2l6ZTogdGhpcy5jb25maWcuc2l6ZSA/PyB7IHNtOiA0LCBtZDogNCwgbGc6IDQsIHhsOiA0IH0sXHJcbiAgICAgICAgICAgIGRlcGVuZHNPZjogdGhpcy5jb25maWcuZGVwZW5kc09mID8/IFtdLFxyXG4gICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0aGlzLmNvbmZpZy5sYWJlbEtleSksXHJcbiAgICAgICAgICAgIHR5cGU6ICdsb29rdXAnLFxyXG4gICAgICAgICAgICBkYXRhS2V5OiAnaWQnLFxyXG4gICAgICAgICAgICBsb29rdXBEaXNwbGF5RmllbGQ6ICdsYWJlbCcsXHJcbiAgICAgICAgICAgIHNlYXJjaFRpdGxlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuY29uZmlnLnNlYXJjaFRpdGxlS2V5KSxcclxuICAgICAgICAgICAgc2VhcmNoRW1wdHlUaXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnYWdyby5hbmd1bGFyX2NvbXBvbmVudHMubG9va3VwX25vdGhpbmdfZm91bmQnKSxcclxuICAgICAgICAgICAgZmlsdGVyTGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2Fncm8uYW5ndWxhcl9jb21wb25lbnRzLmxvb2t1cF9maWx0ZXInKSxcclxuICAgICAgICAgICAgZmlsdGVyVGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2Fncm8uYW5ndWxhcl9jb21wb25lbnRzLmxvb2t1cF9maWx0ZXJzJyksXHJcbiAgICAgICAgICAgIGNsZWFyTGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2Fncm8uYW5ndWxhcl9jb21wb25lbnRzLmxvb2t1cF9jbGVhcicpLFxyXG4gICAgICAgICAgICBjYW5jZWxMYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnYWdyby5hbmd1bGFyX2NvbXBvbmVudHMubG9va3VwX2NhbmNlbCcpLFxyXG4gICAgICAgICAgICBzZWxlY3RMYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnYWdyby5hbmd1bGFyX2NvbXBvbmVudHMubG9va3VwX3NlbGVjdCcpLFxyXG4gICAgICAgICAgICBzdWdnZXN0aW9uc09ic2VydmFibGU6IHRoaXMuc3VnZ2VzdGlvbnNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLFxyXG4gICAgICAgICAgICBzZWFyY2hPYnNlcnZhYmxlOiB0aGlzLnNlYXJjaFN1YmplY3QuYXNPYnNlcnZhYmxlKCksXHJcbiAgICAgICAgICAgIG9uTG9va3VwUmVxdWVzdDogY3JlYXRlR2VuZXJpY09uTG9va3VwUmVxdWVzdCh7XHJcbiAgICAgICAgICAgICAgICBjb25maWc6IHRoaXMuY29uZmlnLFxyXG4gICAgICAgICAgICAgICAgc3VnZ2VzdGlvbnNTdWJqZWN0OiB0aGlzLnN1Z2dlc3Rpb25zU3ViamVjdCxcclxuICAgICAgICAgICAgICAgIHNlYXJjaFN1YmplY3Q6IHRoaXMuc2VhcmNoU3ViamVjdCxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG9uU2VhcmNoUmVxdWVzdDogY3JlYXRlR2VuZXJpY09uU2VhcmNoUmVxdWVzdCh7XHJcbiAgICAgICAgICAgICAgICBjb25maWc6IHRoaXMuY29uZmlnLFxyXG4gICAgICAgICAgICAgICAgc3VnZ2VzdGlvbnNTdWJqZWN0OiB0aGlzLnN1Z2dlc3Rpb25zU3ViamVjdCxcclxuICAgICAgICAgICAgICAgIHNlYXJjaFN1YmplY3Q6IHRoaXMuc2VhcmNoU3ViamVjdCxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG9uQmx1cjogKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNvbmZpZy5mb3JtR3JvdXAuZ2V0KHRoaXMuY29uZmlnLm5hbWUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcmtDb250cm9sQXNVc2VySW50ZXJhY3RlZChjb250cm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB1aVJhd1ZhbHVlID0gZXZlbnQ/LnRhcmdldD8udmFsdWUgPz8gZXZlbnQ/LnZhbHVlID8/ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpVGV4dFZhbHVlID0gdHlwZW9mIHVpUmF3VmFsdWUgPT09ICdzdHJpbmcnID8gdWlSYXdWYWx1ZS50cmltKCkgOiB1aVJhd1ZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzVWlFbXB0eSA9ICF1aVRleHRWYWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLnN5bmNDb250cm9sVmFsdWVXaXRoTm9ybWFsaXphdGlvbihjb250cm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc1ZhbHVlVmFsaWQgPSB0aGlzLmlzTG9va3VwVmFsdWVWYWxpZChjdXJyZW50VmFsdWUpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyBJZiBVSSB3YXMgY2xlYXJlZCBidXQgY29udHJvbCBzdGlsbCBoYXMgYSB2YWx1ZSwgZm9yY2Ugc3luYyB0byBudWxsLlxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1VpRW1wdHkgJiYgY3VycmVudFZhbHVlICE9IG51bGwgJiYgY3VycmVudFZhbHVlICE9PSAnJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKG51bGwsIHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBjb250cm9sIGhhcyBhIHZhbHVlIGJ1dCBpdCdzIG5vdCBhIHZhbGlkIGxvb2t1cCBvYmplY3QsIGNsZWFyIGl0XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBjYXRjaGVzIGNhc2VzIHdoZXJlIHRoZSBVSSBjbGVhcmVkIHRoZSBmaWVsZCBidXQgdGhlIEZvcm1Db250cm9sIHdhc24ndCB1cGRhdGVkXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZSAmJiAhaXNWYWx1ZVZhbGlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHsgW3RoaXMuY29uZmlnLm5hbWVdOiBudWxsIH0sIHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgb25TZWxlY3RIYW5kbGVyOiAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYWN0dWFsVmFsdWUgPSBldmVudD8udmFsdWUgfHwgZXZlbnQ7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb25maWcuZm9ybUdyb3VwLmdldCh0aGlzLmNvbmZpZy5uYW1lKTtcclxuICAgICAgICAgICAgICAgIGlmIChjb250cm9sICYmIGFjdHVhbFZhbHVlICYmIHR5cGVvZiBhY3R1YWxWYWx1ZSA9PT0gJ29iamVjdCcgJiYgYWN0dWFsVmFsdWUuaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBub3JtYWxpemVkVmFsdWUgPSB0aGlzLm5vcm1hbGl6ZUxvb2t1cFZhbHVlKGFjdHVhbFZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcmtDb250cm9sQXNVc2VySW50ZXJhY3RlZChjb250cm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKG5vcm1hbGl6ZWRWYWx1ZSwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIG9uU2VsZWN0OiAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYWN0dWFsVmFsdWUgPSBldmVudD8udmFsdWUgfHwgZXZlbnQ7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb25maWcuZm9ybUdyb3VwLmdldCh0aGlzLmNvbmZpZy5uYW1lKTtcclxuICAgICAgICAgICAgICAgIGlmIChjb250cm9sICYmIGFjdHVhbFZhbHVlICYmIHR5cGVvZiBhY3R1YWxWYWx1ZSA9PT0gJ29iamVjdCcgJiYgYWN0dWFsVmFsdWUuaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBub3JtYWxpemVkVmFsdWUgPSB0aGlzLm5vcm1hbGl6ZUxvb2t1cFZhbHVlKGFjdHVhbFZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcmtDb250cm9sQXNVc2VySW50ZXJhY3RlZChjb250cm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKG5vcm1hbGl6ZWRWYWx1ZSwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIG9uQ2xlYXI6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNvbmZpZy5mb3JtR3JvdXAuZ2V0KHRoaXMuY29uZmlnLm5hbWUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcmtDb250cm9sQXNVc2VySW50ZXJhY3RlZChjb250cm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKG51bGwsIHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBvbkNoYW5nZTogKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNvbmZpZy5mb3JtR3JvdXAuZ2V0KHRoaXMuY29uZmlnLm5hbWUpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYWN0dWFsVmFsdWUgPSBldmVudD8udmFsdWUgfHwgZXZlbnQ7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGNvbnRyb2wgJiYgYWN0dWFsVmFsdWUgJiYgdHlwZW9mIGFjdHVhbFZhbHVlID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRWYWx1ZSA9IHRoaXMubm9ybWFsaXplTG9va3VwVmFsdWUoYWN0dWFsVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChub3JtYWxpemVkVmFsdWUgIT09IGFjdHVhbFZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWFya0NvbnRyb2xBc1VzZXJJbnRlcmFjdGVkKGNvbnRyb2wpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKG5vcm1hbGl6ZWRWYWx1ZSwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGNvbnRyb2wgJiYgIWFjdHVhbFZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXJrQ29udHJvbEFzVXNlckludGVyYWN0ZWQoY29udHJvbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShudWxsLCB7IGVtaXRFdmVudDogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgb25VbnNlbGVjdDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29uZmlnLmZvcm1Hcm91cC5nZXQodGhpcy5jb25maWcubmFtZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoY29udHJvbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWFya0NvbnRyb2xBc1VzZXJJbnRlcmFjdGVkKGNvbnRyb2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUobnVsbCwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHNlYXJjaEZpZWxkczogdGhpcy5jb25maWcuc2VhcmNoRmllbGRzLFxyXG4gICAgICAgICAgICBzZWFyY2hHcmlkRmllbGRzOiB0aGlzLmNvbmZpZy5zZWFyY2hGaWVsZHMsXHJcbiAgICAgICAgICAgIGFwcGVuZFRvOiAnYm9keScsXHJcbiAgICAgICAgICAgIGJhc2VaSW5kZXg6IDEwMDAwLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4iXX0=
|