ngx-sp-infra 2.0.21 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +138 -138
- package/esm2022/lib/infra.module.mjs +6 -1
- package/esm2022/lib/models/icons/icon.model.mjs +2 -1
- package/esm2022/lib/widgets/content-container/content-container.component.mjs +11 -3
- package/esm2022/lib/widgets/field-contador-message/field-contador-message.component.mjs +1 -1
- package/esm2022/lib/widgets/input-trim/input-trim.component.mjs +34 -0
- package/esm2022/lib/widgets/lib-combobox/lib-combobox.component.mjs +1 -1
- package/esm2022/lib/widgets/lib-icons/lib-icons.component.mjs +5 -5
- package/esm2022/lib/widgets/loading-button/loading-button.component.mjs +5 -5
- package/esm2022/lib/widgets/nav-produtos/nav-produtos.component.mjs +27 -27
- package/esm2022/lib/widgets/table/table.component.mjs +79 -7
- package/esm2022/lib/widgets/tree/tree.component.mjs +1 -1
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/ngx-sp-infra.mjs +156 -44
- package/fesm2022/ngx-sp-infra.mjs.map +1 -1
- package/lib/infra.module.d.ts +39 -38
- package/lib/widgets/content-container/content-container.component.d.ts +3 -2
- package/lib/widgets/input-trim/input-trim.component.d.ts +11 -0
- package/lib/widgets/table/table.component.d.ts +26 -5
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -3,6 +3,7 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
import * as i1 from "@angular/common";
|
|
4
4
|
import * as i2 from "@angular/forms";
|
|
5
5
|
import * as i3 from "ngx-pagination";
|
|
6
|
+
import * as i4 from "../ordering/ordering.component";
|
|
6
7
|
/**
|
|
7
8
|
* Componente de Tabela Customizável
|
|
8
9
|
*
|
|
@@ -17,16 +18,38 @@ import * as i3 from "ngx-pagination";
|
|
|
17
18
|
* @styleUrl ./table.component.scss
|
|
18
19
|
*/
|
|
19
20
|
export class TableComponent {
|
|
21
|
+
/** Lista de registros a serem exibidos na tabela.
|
|
22
|
+
* @required */
|
|
23
|
+
get recordsList() { return this._recordsList; }
|
|
24
|
+
set recordsList(value) { this._recordsList = value; }
|
|
20
25
|
/** Informa um ID para a paginação da tabela específica. Deve ser utilizada em caso de múltiplas tabelas na mesma tela. */
|
|
21
26
|
get paginationID() { return this._paginationID; }
|
|
22
27
|
set paginationID(value) {
|
|
23
28
|
this._paginationID = value || 'libTablePagination';
|
|
24
29
|
}
|
|
30
|
+
/** Página atual da tabela. */
|
|
31
|
+
get page() { return this._currentPage; }
|
|
32
|
+
set page(value) { this._currentPage = value; }
|
|
33
|
+
/** Número de itens a serem exibidos por página. */
|
|
34
|
+
get itemsPerPage() { return this._currentItemsPerPage; }
|
|
35
|
+
set itemsPerPage(value) { this._currentItemsPerPage = value; }
|
|
36
|
+
get firstItemOfPage() {
|
|
37
|
+
return (this.page - 1) * this.itemsPerPage + 1;
|
|
38
|
+
}
|
|
39
|
+
get lastItemOfPage() {
|
|
40
|
+
return Math.min(this.page * this.itemsPerPage, this.recordsList?.length ?? 0);
|
|
41
|
+
}
|
|
42
|
+
// Exemplo de string com a contagem:
|
|
43
|
+
get itemsDisplayText() {
|
|
44
|
+
return `Exibindo ${this.countOptions ? this.firstItemOfPage + "-" + this.lastItemOfPage + " de" : ""} ${this.recordsList?.length ?? 0} registros`;
|
|
45
|
+
}
|
|
25
46
|
// #endregion PUBLIC
|
|
26
47
|
// #endregion ==========> PROPRIEDADES <==========
|
|
27
48
|
// #region ==========> INICIALIZAÇÃO <==========
|
|
28
49
|
constructor(cdr) {
|
|
29
50
|
this.cdr = cdr;
|
|
51
|
+
this._currentPage = 1;
|
|
52
|
+
this._currentItemsPerPage = 0;
|
|
30
53
|
// #endregion PRIVATE
|
|
31
54
|
// #region PUBLIC
|
|
32
55
|
/** Determina se a tabela deve usar paginação.
|
|
@@ -43,10 +66,13 @@ export class TableComponent {
|
|
|
43
66
|
this.itemsPerPageChange = new EventEmitter();
|
|
44
67
|
/** Evento emitido quando a página é alterada. */
|
|
45
68
|
this.pageChange = new EventEmitter();
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
69
|
+
//#region Ordering, Sorting ou apenas Ordenação
|
|
70
|
+
/** Método que faz a ordenação dos contratos na tela de listagem, em cada uma das células do cabeçalho da tabela, onde cada um
|
|
71
|
+
* dos elementos <th> representa uma coluna, de acordo com a lista de contratos que retorna do backend. */
|
|
72
|
+
// Objeto para armazenar a direção de ordenação de cada coluna
|
|
73
|
+
this.sortDirection = {};
|
|
74
|
+
// Coluna atualmente selecionada para ordenação
|
|
75
|
+
this.currentSortColumn = '';
|
|
50
76
|
}
|
|
51
77
|
/** Inicializa o componente e define o número inicial de itens por página. */
|
|
52
78
|
ngOnInit() {
|
|
@@ -88,12 +114,58 @@ export class TableComponent {
|
|
|
88
114
|
this.page = 1;
|
|
89
115
|
}
|
|
90
116
|
}
|
|
117
|
+
// Função chamada quando ocorre uma mudança na ordenação
|
|
118
|
+
onSortChange(event) {
|
|
119
|
+
const { direction, column } = event;
|
|
120
|
+
// Verifica se a coluna atualmente selecionada é a mesma da nova seleção
|
|
121
|
+
if (this.currentSortColumn === column) {
|
|
122
|
+
// Alterna entre 'asc' e 'desc' para a direção de ordenação da coluna
|
|
123
|
+
this.sortDirection[column] = this.sortDirection[column] === 'asc' ? 'asc' : 'desc';
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
// Define a nova coluna e a direção de ordenação como 'asc'
|
|
127
|
+
this.currentSortColumn = column;
|
|
128
|
+
this.sortDirection = { [column]: 'asc' };
|
|
129
|
+
}
|
|
130
|
+
// Realiza a ordenação dos dados da tabela
|
|
131
|
+
this.sortData();
|
|
132
|
+
}
|
|
133
|
+
// Função de ordenação dos dados da tabela
|
|
134
|
+
sortData() {
|
|
135
|
+
if (this.recordsList) {
|
|
136
|
+
const gruposList = this.recordsList;
|
|
137
|
+
gruposList.sort((a, b) => {
|
|
138
|
+
const attribute = this.currentSortColumn;
|
|
139
|
+
const direction = this.sortDirection[attribute];
|
|
140
|
+
return this.compareProperties(a, b, attribute, direction);
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
// Compara os valores das propriedades entre dois objetos
|
|
145
|
+
compareProperties(a, b, attribute, direction) {
|
|
146
|
+
const propertyA = this.getProperty(a, attribute).toUpperCase();
|
|
147
|
+
const propertyB = this.getProperty(b, attribute).toUpperCase();
|
|
148
|
+
if (propertyA < propertyB) {
|
|
149
|
+
return direction === 'asc' ? -1 : 1;
|
|
150
|
+
}
|
|
151
|
+
if (propertyA > propertyB) {
|
|
152
|
+
return direction === 'asc' ? 1 : -1;
|
|
153
|
+
}
|
|
154
|
+
return 0;
|
|
155
|
+
}
|
|
156
|
+
// Obtém o valor de uma propriedade específica de um objeto
|
|
157
|
+
getProperty(obj, path) {
|
|
158
|
+
if (typeof path === 'string') {
|
|
159
|
+
path = path.split('.');
|
|
160
|
+
}
|
|
161
|
+
return path.reduce((value, property) => value ? value[property] : '', obj);
|
|
162
|
+
}
|
|
91
163
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
92
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: TableComponent, selector: "lib-table", inputs: { usePagination: "usePagination", recordsList: ["list", "recordsList"], countOptions: ["counts", "countOptions"], paginationPlacement: ["placement", "paginationPlacement"], headersList: ["headers", "headersList"], emptyListMessage: "emptyListMessage", showCounter: "showCounter", paginationID: "paginationID" }, outputs: { itemsPerPageChange: "itemsPerPageChange", pageChange: "pageChange" }, usesOnChanges: true, ngImport: i0, template: "@if (recordsList) {\n <div class=\"table-list w-100 position-relative\">\n <!-- Exibe o n\u00FAmero de itens mostrados e o total de registros -->\n <span *ngIf=\"showCounter\" class=\"ms-1\">
|
|
164
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: TableComponent, selector: "lib-table", inputs: { usePagination: "usePagination", recordsList: ["list", "recordsList"], countOptions: ["counts", "countOptions"], paginationPlacement: ["placement", "paginationPlacement"], headersList: ["headers", "headersList"], emptyListMessage: "emptyListMessage", showCounter: "showCounter", paginationID: "paginationID" }, outputs: { itemsPerPageChange: "itemsPerPageChange", pageChange: "pageChange" }, usesOnChanges: true, ngImport: i0, template: "@if (recordsList) {\r\n <div class=\"table-list w-100 position-relative\">\r\n <!-- Exibe o n\u00FAmero de itens mostrados e o total de registros -->\r\n <span *ngIf=\"showCounter\" class=\"ms-1\"> {{ itemsDisplayText }} </span>\r\n \r\n <!-- Container da tabela -->\r\n <div class=\"table-list overflow-hidden border-bottom-0 rounded-bottom rounded\">\r\n <table class=\"table table-hover border mb-0\">\r\n <thead>\r\n <tr>\r\n <!-- Itera sobre a lista de cabe\u00E7alhos para criar as colunas -->\r\n <th *ngFor=\"let header of headersList\" scope=\"col\"\r\n class=\"align-middle text-dark-grey {{ header.col > 0 ? 'col-'+header.col : 'col' }} {{ header.customClasses }}\">\r\n {{ header.name }}\r\n\r\n <app-ordering *ngIf=\"header.orderColumn\" [(sortDirection)]=\"sortDirection[header.orderColumn]\"\r\n (sortChange)=\"onSortChange({ direction: $event.direction, column: header.orderColumn })\"></app-ordering>\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody class=\"bg-light fade-in-row\">\r\n @if (recordsList.length > 0) {\r\n <!-- Conte\u00FAdo das linhas da tabela -->\r\n <ng-content select=\"[innerRows]\"></ng-content>\r\n }\r\n @else {\r\n <!-- Mensagem de aus\u00EAncia de registros -->\r\n <tr>\r\n <td colspan=\"12\" class=\"align-middle\">\r\n <span class=\"fw-light fst-italic text-center\"> {{ emptyListMessage ? emptyListMessage : \"Consulta n\u00E3o retornou registros...\" }} </span>\r\n </td>\r\n </tr>\r\n }\r\n </tbody>\r\n </table>\r\n\r\n <!-- #region PAGINA\u00C7\u00C3O -->\r\n <div *ngIf=\"usePagination && recordsList.length > 0\" class=\"d-flex mt-2\"\r\n [ngClass]=\"{\r\n 'justify-content-start': paginationPlacement == 'start',\r\n 'justify-content-center': paginationPlacement == 'center',\r\n 'justify-content-end': paginationPlacement == 'end',\r\n 'justify-content-between': paginationPlacement == 'between'\r\n }\">\r\n <div class=\"d-flex align-items-center\">\r\n <label class=\"me-2\" style=\"white-space: nowrap;\"> Itens por p\u00E1gina </label>\r\n <select class=\"form-select select-search\" (change)=\"onSelectChange($event)\">\r\n <option *ngFor=\"let count of countOptions; let i = index\" [value]=\"count\"\r\n [selected]=\"countOptions.length > 0 && i == 0\">{{ count }}</option>\r\n </select>\r\n </div>\r\n\r\n <!-- Controle de pagina\u00E7\u00E3o -->\r\n <pagination-controls\r\n [id]=\"paginationID\"\r\n class=\"sp-pagination mt-3\"\r\n (pageChange)=\"page = $event; pageChange.emit($event)\"\r\n previousLabel=\"\u00AB \" nextLabel=\" \u00BB\"\r\n [maxSize]=\"5\">\r\n </pagination-controls>\r\n </div>\r\n <!-- #endregion PAGINA\u00C7\u00C3O -->\r\n </div>\r\n </div>\r\n} @else {\r\n <!-- Loader enquanto os registros s\u00E3o carregados -->\r\n <div class=\"w-100 text-center\">\r\n <div class=\"spinner-border\" role=\"status\"> <span class=\"visually-hidden\">Carregando informa\u00E7\u00F5es...</span> </div>\r\n </div>\r\n}\r\n", styles: [".sp-pagination ::ng-deep .ngx-pagination .current{background:#3767b2;border-radius:.375rem}.sp-pagination ::ng-deep .ngx-pagination a:hover,.sp-pagination ::ng-deep .ngx-pagination button:hover{border-radius:.375rem}.sp-pagination ::ng-deep .ngx-pagination .pagination-previous a:before,.sp-pagination ::ng-deep .ngx-pagination .pagination-previous.disabled:before{content:\"\";display:inline-block;margin-right:.5rem}.sp-pagination ::ng-deep .ngx-pagination .pagination-next a:after,.sp-pagination ::ng-deep .ngx-pagination .pagination-next.disabled:after{content:\"\";display:inline-block;margin-left:.5rem}.text-dark-grey{color:#63676b!important}table{border-color:#c4c4c4}table thead{height:50px;font-size:1rem;background-color:#f9fafb!important}table thead>tr{background-color:#f9fafb!important}table thead>tr>th{background-color:#f9fafb!important}table tbody{font-size:.875rem}table tbody>tr{height:50px}table tbody>tr:hover{background-color:#cce5ff}table.table>tbody{border-top:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "component", type: i3.PaginationControlsComponent, selector: "pagination-controls", inputs: ["id", "maxSize", "directionLinks", "autoHide", "responsive", "previousLabel", "nextLabel", "screenReaderPaginationLabel", "screenReaderPageLabel", "screenReaderCurrentLabel"], outputs: ["pageChange", "pageBoundsCorrection"] }, { kind: "component", type: i4.OrderingComponent, selector: "app-ordering", inputs: ["isColumnClicked", "sortDirection", "sortAttributes"], outputs: ["sortDirectionChange", "sortChange"] }] }); }
|
|
93
165
|
}
|
|
94
166
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableComponent, decorators: [{
|
|
95
167
|
type: Component,
|
|
96
|
-
args: [{ selector: 'lib-table', template: "@if (recordsList) {\n <div class=\"table-list w-100 position-relative\">\n <!-- Exibe o n\u00FAmero de itens mostrados e o total de registros -->\n <span *ngIf=\"showCounter\" class=\"ms-1\">
|
|
168
|
+
args: [{ selector: 'lib-table', template: "@if (recordsList) {\r\n <div class=\"table-list w-100 position-relative\">\r\n <!-- Exibe o n\u00FAmero de itens mostrados e o total de registros -->\r\n <span *ngIf=\"showCounter\" class=\"ms-1\"> {{ itemsDisplayText }} </span>\r\n \r\n <!-- Container da tabela -->\r\n <div class=\"table-list overflow-hidden border-bottom-0 rounded-bottom rounded\">\r\n <table class=\"table table-hover border mb-0\">\r\n <thead>\r\n <tr>\r\n <!-- Itera sobre a lista de cabe\u00E7alhos para criar as colunas -->\r\n <th *ngFor=\"let header of headersList\" scope=\"col\"\r\n class=\"align-middle text-dark-grey {{ header.col > 0 ? 'col-'+header.col : 'col' }} {{ header.customClasses }}\">\r\n {{ header.name }}\r\n\r\n <app-ordering *ngIf=\"header.orderColumn\" [(sortDirection)]=\"sortDirection[header.orderColumn]\"\r\n (sortChange)=\"onSortChange({ direction: $event.direction, column: header.orderColumn })\"></app-ordering>\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody class=\"bg-light fade-in-row\">\r\n @if (recordsList.length > 0) {\r\n <!-- Conte\u00FAdo das linhas da tabela -->\r\n <ng-content select=\"[innerRows]\"></ng-content>\r\n }\r\n @else {\r\n <!-- Mensagem de aus\u00EAncia de registros -->\r\n <tr>\r\n <td colspan=\"12\" class=\"align-middle\">\r\n <span class=\"fw-light fst-italic text-center\"> {{ emptyListMessage ? emptyListMessage : \"Consulta n\u00E3o retornou registros...\" }} </span>\r\n </td>\r\n </tr>\r\n }\r\n </tbody>\r\n </table>\r\n\r\n <!-- #region PAGINA\u00C7\u00C3O -->\r\n <div *ngIf=\"usePagination && recordsList.length > 0\" class=\"d-flex mt-2\"\r\n [ngClass]=\"{\r\n 'justify-content-start': paginationPlacement == 'start',\r\n 'justify-content-center': paginationPlacement == 'center',\r\n 'justify-content-end': paginationPlacement == 'end',\r\n 'justify-content-between': paginationPlacement == 'between'\r\n }\">\r\n <div class=\"d-flex align-items-center\">\r\n <label class=\"me-2\" style=\"white-space: nowrap;\"> Itens por p\u00E1gina </label>\r\n <select class=\"form-select select-search\" (change)=\"onSelectChange($event)\">\r\n <option *ngFor=\"let count of countOptions; let i = index\" [value]=\"count\"\r\n [selected]=\"countOptions.length > 0 && i == 0\">{{ count }}</option>\r\n </select>\r\n </div>\r\n\r\n <!-- Controle de pagina\u00E7\u00E3o -->\r\n <pagination-controls\r\n [id]=\"paginationID\"\r\n class=\"sp-pagination mt-3\"\r\n (pageChange)=\"page = $event; pageChange.emit($event)\"\r\n previousLabel=\"\u00AB \" nextLabel=\" \u00BB\"\r\n [maxSize]=\"5\">\r\n </pagination-controls>\r\n </div>\r\n <!-- #endregion PAGINA\u00C7\u00C3O -->\r\n </div>\r\n </div>\r\n} @else {\r\n <!-- Loader enquanto os registros s\u00E3o carregados -->\r\n <div class=\"w-100 text-center\">\r\n <div class=\"spinner-border\" role=\"status\"> <span class=\"visually-hidden\">Carregando informa\u00E7\u00F5es...</span> </div>\r\n </div>\r\n}\r\n", styles: [".sp-pagination ::ng-deep .ngx-pagination .current{background:#3767b2;border-radius:.375rem}.sp-pagination ::ng-deep .ngx-pagination a:hover,.sp-pagination ::ng-deep .ngx-pagination button:hover{border-radius:.375rem}.sp-pagination ::ng-deep .ngx-pagination .pagination-previous a:before,.sp-pagination ::ng-deep .ngx-pagination .pagination-previous.disabled:before{content:\"\";display:inline-block;margin-right:.5rem}.sp-pagination ::ng-deep .ngx-pagination .pagination-next a:after,.sp-pagination ::ng-deep .ngx-pagination .pagination-next.disabled:after{content:\"\";display:inline-block;margin-left:.5rem}.text-dark-grey{color:#63676b!important}table{border-color:#c4c4c4}table thead{height:50px;font-size:1rem;background-color:#f9fafb!important}table thead>tr{background-color:#f9fafb!important}table thead>tr>th{background-color:#f9fafb!important}table tbody{font-size:.875rem}table tbody>tr{height:50px}table tbody>tr:hover{background-color:#cce5ff}table.table>tbody{border-top:none}\n"] }]
|
|
97
169
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { usePagination: [{
|
|
98
170
|
type: Input
|
|
99
171
|
}], recordsList: [{
|
|
@@ -121,4 +193,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
121
193
|
}], pageChange: [{
|
|
122
194
|
type: Output
|
|
123
195
|
}] } });
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNwLWluZnJhL3NyYy9saWIvd2lkZ2V0cy90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi93aWRnZXRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7Ozs7O0FBRTNJOzs7Ozs7Ozs7Ozs7RUFZRTtBQU1GLE1BQU0sT0FBTyxjQUFjO0lBMEN6QiwwSEFBMEg7SUFDMUgsSUFDVyxZQUFZLEtBQWEsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUNoRSxJQUFXLFlBQVksQ0FBQyxLQUFhO1FBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxJQUFJLG9CQUFvQixDQUFDO0lBQ3JELENBQUM7SUFrQkQsb0JBQW9CO0lBRXBCLGtEQUFrRDtJQUdsRCxnREFBZ0Q7SUFDaEQsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFqRTFDLHFCQUFxQjtRQUVyQixpQkFBaUI7UUFFakI7MkJBQ21CO1FBQ0gsa0JBQWEsR0FBWSxJQUFJLENBQUM7UUFVOUM7NEJBQ29CO1FBQ08sd0JBQW1CLEdBQTJDLEtBQUssQ0FBQztRQWEvRjs7VUFFRTtRQUMyQixnQkFBVyxHQUFZLElBQUksQ0FBQztRQVV6RCxxRUFBcUU7UUFDcEQsdUJBQWtCLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFFdkYsaURBQWlEO1FBQ2hDLGVBQVUsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUcvRSw0RkFBNEY7UUFDckYsWUFBTyxHQUFXLENBQUMs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Y3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQ29tcG9uZW50ZSBkZSBUYWJlbGEgQ3VzdG9taXrDoXZlbFxuICpcbiAqIE8gYFRhYmxlQ29tcG9uZW50YCDDqSB1bSBjb21wb25lbnRlIEFuZ3VsYXIgcHJvamV0YWRvIHBhcmEgZXhpYmlyIHVtYSB0YWJlbGEgY3VzdG9taXrDoXZlbFxuICogY29tIHN1cG9ydGUgYSBwYWdpbmHDp8Ojby4gRWxlIHBlcm1pdGUgYSBjb25maWd1cmHDp8OjbyBkZSBjYWJlw6dhbGhvcyBkZSBjb2x1bmFzLCBwb3NpY2lvbmFtZW50b1xuICogZGEgcGFnaW5hw6fDo28gZSBvcMOnw7VlcyBkZSBpdGVucyBwb3IgcMOhZ2luYS4gTyBjb21wb25lbnRlIMOpIGZsZXjDrXZlbCwgdXRpbGl6YW5kbyBjbGFzc2VzIEJvb3RzdHJhcFxuICogcGFyYSBhanVzdGFyIG8gbGF5b3V0IGRhcyBjb2x1bmFzIGUgZW1pdGluZG8gZXZlbnRvcyBwYXJhIHF1ZSBvIGNvbXBvbmVudGUgcGFpIHBvc3NhIHJlYWdpciBhXG4gKiBtdWRhbsOnYXMgbmEgcMOhZ2luYSBvdSBubyBuw7ptZXJvIGRlIGl0ZW5zIGV4aWJpZG9zLlxuICpcbiAqIEBzZWxlY3RvciBsaWItdGFibGVcbiAqIEB0ZW1wbGF0ZVVybCAuL3RhYmxlLmNvbXBvbmVudC5odG1sXG4gKiBAc3R5bGVVcmwgLi90YWJsZS5jb21wb25lbnQuc2Nzc1xuKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG5cbiAgLy8gI3JlZ2lvbiA9PT09PT09PT09PiBQUk9QUklFREFERVMgPD09PT09PT09PT1cblxuICAvLyAjcmVnaW9uIFBSSVZBVEVcbiAgcHJpdmF0ZSBfcGFnaW5hdGlvbklEOiBzdHJpbmc7XG4gIC8vICNlbmRyZWdpb24gUFJJVkFURVxuXG4gIC8vICNyZWdpb24gUFVCTElDXG5cbiAgLyoqIERldGVybWluYSBzZSBhIHRhYmVsYSBkZXZlIHVzYXIgcGFnaW5hw6fDo28uXG4gICAqIEBkZWZhdWx0IHRydWUgKi9cbiAgQElucHV0KCkgcHVibGljIHVzZVBhZ2luYXRpb246IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKiBMaXN0YSBkZSByZWdpc3Ryb3MgYSBzZXJlbSBleGliaWRvcyBuYSB0YWJlbGEuXG4gICAqIEByZXF1aXJlZCAqL1xuICBASW5wdXQoeyBhbGlhczogJ2xpc3QnLCByZXF1aXJlZDogdHJ1ZSB9KSBwdWJsaWMgcmVjb3Jkc0xpc3Q6IGFueVtdIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiBPcMOnw7VlcyBkZSBjb250YWdlbSBkZSBpdGVucyBwb3IgcMOhZ2luYSBkaXNwb27DrXZlaXMgcGFyYSBvIHVzdcOhcmlvLlxuICAgKiBAcmVxdWlyZWQgKi9cbiAgQElucHV0KCdjb3VudHMnKSBwdWJsaWMgY291bnRPcHRpb25zOiBudW1iZXJbXTtcblxuICAvKiogUG9zaWNpb25hbWVudG8gZG9zIGNvbnRyb2xlcyBkZSBwYWdpbmHDp8Ojby5cbiAgICogQGRlZmF1bHQgJ2VuZCcgKi9cbiAgQElucHV0KCdwbGFjZW1lbnQnKSBwdWJsaWMgcGFnaW5hdGlvblBsYWNlbWVudDogJ3N0YXJ0JyB8ICdjZW50ZXInIHwgJ2VuZCcgfCAnYmV0d2VlbicgPSAnZW5kJztcblxuICAvKiogTGlzdGEgZGUgY2FiZcOnYWxob3MgcGFyYSBhcyBjb2x1bmFzIGRhIHRhYmVsYSwgaW5jbHVpbmRvIG8gbm9tZSwgYSBsYXJndXJhIGRhIGNvbHVuYSBlIGNsYXNzZXMgY3VzdG9taXphZGFzLlxuICAgKiBAcmVxdWlyZWQgKi9cbiAgQElucHV0KHsgYWxpYXM6ICdoZWFkZXJzJywgcmVxdWlyZWQ6IHRydWUgfSkgcHVibGljIGhlYWRlcnNMaXN0OiB7XG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGNvbDogbnVtYmVyLFxuICAgIGN1c3RvbUNsYXNzZXM/OiBzdHJpbmdcbiAgfVtdO1xuXG4gIC8qKiBNZW5zYWdlbSBjdXN0b21pemFkYSBwYXJhIGxpc3RhIHZhemlhICovXG4gIEBJbnB1dCgnZW1wdHlMaXN0TWVzc2FnZScpIHB1YmxpYyBlbXB0eUxpc3RNZXNzYWdlPzogc3RyaW5nO1xuXG4gIC8qKiBJbmZvcm1hIHNlIG8gY291bnRlciBkZSByZWdpc3Ryb3MgZGV2ZSBhcGFyZWNlciBvdSBuw6NvLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICovXG4gIEBJbnB1dCgnc2hvd0NvdW50ZXInKSBwdWJsaWMgc2hvd0NvdW50ZXI6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKiBJbmZvcm1hIHVtIElEIHBhcmEgYSBwYWdpbmHDp8OjbyBkYSB0YWJlbGEgZXNwZWPDrWZpY2EuIERldmUgc2VyIHV0aWxpemFkYSBlbSBjYXNvIGRlIG3Dumx0aXBsYXMgdGFiZWxhcyBuYSBtZXNtYSB0ZWxhLiAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHBhZ2luYXRpb25JRCgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5fcGFnaW5hdGlvbklEOyB9XG4gIHB1YmxpYyBzZXQgcGFnaW5hdGlvbklEKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9wYWdpbmF0aW9uSUQgPSB2YWx1ZSB8fCAnbGliVGFibGVQYWdpbmF0aW9uJztcbiAgfVxuXG5cbiAgLyoqIEV2ZW50byBlbWl0aWRvIHF1YW5kbyBvIG7Dum1lcm8gZGUgaXRlbnMgcG9yIHDDoWdpbmEgw6kgYWx0ZXJhZG8uICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgaXRlbXNQZXJQYWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIC8qKiBFdmVudG8gZW1pdGlkbyBxdWFuZG8gYSBww6FnaW5hIMOpIGFsdGVyYWRhLiAqL1xuICBAT3V0cHV0KCkgcHVibGljIHBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cblxuICAvKiogQ29udGFkb3IgZGUgcmVnaXN0cm9zIChwb2RlIHNlciB1c2FkbyBwYXJhIGZ1dHVyYXMgaW1wbGVtZW50YcOnw7VlcyBkZSBsw7NnaWNhIGludGVybmEpLiAqL1xuICBwdWJsaWMgY291bnRlcjogbnVtYmVyID0gMDtcblxuICAvKiogUMOhZ2luYSBhdHVhbCBkYSB0YWJlbGEuICovXG5cdHB1YmxpYyBwYWdlOiBudW1iZXIgPSAxO1xuXG4gIC8qKiBOw7ptZXJvIGRlIGl0ZW5zIGEgc2VyZW0gZXhpYmlkb3MgcG9yIHDDoWdpbmEuICovXG5cdHB1YmxpYyBpdGVtc1BlclBhZ2U6IG51bWJlcjtcbiAgLy8gI2VuZHJlZ2lvbiBQVUJMSUNcblxuICAvLyAjZW5kcmVnaW9uID09PT09PT09PT0+IFBST1BSSUVEQURFUyA8PT09PT09PT09PVxuXG5cbiAgLy8gI3JlZ2lvbiA9PT09PT09PT09PiBJTklDSUFMSVpBw4fDg08gPD09PT09PT09PT1cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cblxuICAvKiogSW5pY2lhbGl6YSBvIGNvbXBvbmVudGUgZSBkZWZpbmUgbyBuw7ptZXJvIGluaWNpYWwgZGUgaXRlbnMgcG9yIHDDoWdpbmEuICovXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlY29yZHNMaXN0KSB7IHRoaXMuaXRlbXNQZXJQYWdlID0gdGhpcy5jb3VudE9wdGlvbnMgPyB0aGlzLmNvdW50T3B0aW9uc1swXSA6IHRoaXMucmVjb3Jkc0xpc3QubGVuZ3RoIH1cbiAgICBlbHNlIHsgdGhpcy5pdGVtc1BlclBhZ2UgPSB0aGlzLmNvdW50T3B0aW9uc1swXSA/PyAxMCB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpOyAgLy8gRm9yw6dhciB1bWEgbm92YSBkZXRlY8Onw6NvIGFww7NzIGEgcmVuZGVyaXphw6fDo29cbiAgfVxuXG4gIC8qKiBNb25pdG9yYSBhcyBtdWRhbsOnYXMgbmFzIGVudHJhZGFzIGRvIGNvbXBvbmVudGUgZSByZWFsaXphIGFqdXN0ZXMsIGNvbW8gcmVzZXRhciBhIHBhZ2luYcOnw6NvIG91IHZhbGlkYXIgbyBsYXlvdXQgZGFzIGNvbHVuYXMuXG4gICAqIEBwYXJhbSBjaGFuZ2VzIE9iamV0byBxdWUgY29udMOpbSBhcyBtdWRhbsOnYXMgbmFzIGVudHJhZGFzIGRvIGNvbXBvbmVudGUuICovXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1sncmVjb3Jkc0xpc3QnXS5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMucmVzZXRQYWdpbmF0aW9uKHRoaXMucmVjb3Jkc0xpc3QgPz8gW10pO1xuXG4gICAgICBsZXQgbWF4Q29sdW1ucyA9IHRoaXMuaGVhZGVyc0xpc3QucmVkdWNlKChuLCB7Y29sfSkgPT4gbiArIGNvbCwgMCk7XG4gICAgICBpZiAobWF4Q29sdW1ucyA+PSAxMykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBIHNvbWEgZGUgbGFyZ3VyYSAoY2xhc3NlIGNvbSBwcmVmaXhvICdjb2wtJykgZGUgdG9kYXMgYXMgY29sdW5hcyBuw6NvIHBvZGUgc2VyIG1haW9yIHF1ZSAxMi5cIik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gSU5JQ0lBTElaQcOHw4NPIDw9PT09PT09PT09XG5cblxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IFVUSUxJVMOBUklPUyA8PT09PT09PT09PVxuXG4gIC8qKiBNb2RpZmljYSBhIHF1YW50aWRhZGUgZGUgaXRlbnMgYSBzZXIgbW9zdHJhZGEgbmEgbGlzdGEuXG4gICAqIEBwYXJhbSBldmVudCBwYXLDom1ldHJvIGRlIGV2ZW50byBxdWUgaXLDoSBzZWxlY2lvbmFyIGEgbm92YSBxdWFudGlkYWRlLiAqL1xuICBwdWJsaWMgb25TZWxlY3RDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuaXRlbXNQZXJQYWdlID0gcGFyc2VJbnQoZXZlbnQudGFyZ2V0LnZhbHVlLCAxMCk7XG4gICAgdGhpcy5wYWdlID0gMTtcbiAgICB0aGlzLml0ZW1zUGVyUGFnZUNoYW5nZS5lbWl0KHRoaXMuaXRlbXNQZXJQYWdlKTtcbiAgfVxuXG4gIC8qKiBSZXNldGEgYSBwYWdpbmHDp8OjbyBkYSBsaXN0YWdlbSBjb20gYmFzZSBubyBuw7ptZXJvIGF0dWFsIGRlIHJlZ2lzdHJvcy5cbiAgICogQHBhcmFtIGxpc3QgTGlzdGEgZGUgcmVnaXN0cm9zIHBhcmEgcmVzZXRhciBhIHBhZ2luYcOnw6NvLiAqL1xuICBwdWJsaWMgcmVzZXRQYWdpbmF0aW9uKGxpc3Q6IGFueVtdKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhcnRJbmRleCA9ICh0aGlzLnBhZ2UgLSAxKSAqIHRoaXMuaXRlbXNQZXJQYWdlO1xuICAgIGlmIChsaXN0Lmxlbmd0aCA8PSBzdGFydEluZGV4KSB7XG4gICAgICB0aGlzLnBhZ2UgPSAxO1xuICAgIH1cbiAgfVxuXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gVVRJTElUw4FSSU9TIDw9PT09PT09PT09XG5cbn1cbiIsIkBpZiAocmVjb3Jkc0xpc3QpIHtcbiAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1saXN0IHctMTAwIHBvc2l0aW9uLXJlbGF0aXZlXCI+XG4gICAgICA8IS0tIEV4aWJlIG8gbsO6bWVybyBkZSBpdGVucyBtb3N0cmFkb3MgZSBvIHRvdGFsIGRlIHJlZ2lzdHJvcyAtLT5cbiAgICAgIDxzcGFuICpuZ0lmPVwic2hvd0NvdW50ZXJcIiBjbGFzcz1cIm1zLTFcIj4gRXhpYmluZG8ge3sgaXRlbXNQZXJQYWdlIDw9IHJlY29yZHNMaXN0Lmxlbmd0aCA/IGl0ZW1zUGVyUGFnZSA6IHJlY29yZHNMaXN0Lmxlbmd0aCB9fSBkZSB7eyByZWNvcmRzTGlzdC5sZW5ndGggfX0gcmVnaXN0cm9zIDwvc3Bhbj5cbiAgICAgIFxuICAgICAgPCEtLSBDb250YWluZXIgZGEgdGFiZWxhIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWxpc3Qgb3ZlcmZsb3ctaGlkZGVuIGJvcmRlci1ib3R0b20tMCByb3VuZGVkLWJvdHRvbSByb3VuZGVkXCI+XG4gICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1ob3ZlciBib3JkZXIgbWItMFwiPlxuICAgICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgPCEtLSBJdGVyYSBzb2JyZSBhIGxpc3RhIGRlIGNhYmXDp2FsaG9zIHBhcmEgY3JpYXIgYXMgY29sdW5hcyAtLT5cbiAgICAgICAgICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgaGVhZGVyIG9mIGhlYWRlcnNMaXN0XCIgc2NvcGU9XCJjb2xcIlxuICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhbGlnbi1taWRkbGUgdGV4dC1kYXJrLWdyZXkge3sgaGVhZGVyLmNvbCA+IDAgPyAnY29sLScraGVhZGVyLmNvbCA6ICdjb2wnIH19IHt7IGhlYWRlci5jdXN0b21DbGFzc2VzIH19XCI+XG4gICAgICAgICAgICAgICAgICAgICB7eyBoZWFkZXIubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L3RoZWFkPlxuXG4gICAgICAgICAgICA8dGJvZHkgY2xhc3M9XCJiZy1saWdodCBmYWRlLWluLXJvd1wiPlxuICAgICAgICAgICAgICAgQGlmIChyZWNvcmRzTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICA8IS0tIENvbnRlw7pkbyBkYXMgbGluaGFzIGRhIHRhYmVsYSAtLT5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltpbm5lclJvd3NdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgPCEtLSBNZW5zYWdlbSBkZSBhdXPDqm5jaWEgZGUgcmVnaXN0cm9zIC0tPlxuICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCIxMlwiIGNsYXNzPVwiYWxpZ24tbWlkZGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LWxpZ2h0IGZzdC1pdGFsaWMgdGV4dC1jZW50ZXJcIj4ge3sgZW1wdHlMaXN0TWVzc2FnZSA/IGVtcHR5TGlzdE1lc3NhZ2UgOiBcIkNvbnN1bHRhIG7Do28gcmV0b3Jub3UgcmVnaXN0cm9zLi4uXCIgfX0gPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgPC90YWJsZT5cblxuICAgICAgICAgPCEtLSAjcmVnaW9uIFBBR0lOQcOHw4NPIC0tPlxuICAgICAgICAgPGRpdiAqbmdJZj1cInVzZVBhZ2luYXRpb24gJiYgcmVjb3Jkc0xpc3QubGVuZ3RoID4gMFwiIGNsYXNzPVwiZC1mbGV4IG10LTJcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgJ2p1c3RpZnktY29udGVudC1zdGFydCc6IHBhZ2luYXRpb25QbGFjZW1lbnQgPT0gJ3N0YXJ0JyxcbiAgICAgICAgICAgICAgICdqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJzogcGFnaW5hdGlvblBsYWNlbWVudCA9PSAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICdqdXN0aWZ5LWNvbnRlbnQtZW5kJzogcGFnaW5hdGlvblBsYWNlbWVudCA9PSAnZW5kJyxcbiAgICAgICAgICAgICAgICdqdXN0aWZ5LWNvbnRlbnQtYmV0d2Vlbic6IHBhZ2luYXRpb25QbGFjZW1lbnQgPT0gJ2JldHdlZW4nXG4gICAgICAgICAgICB9XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibWUtMlwiIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcDtcIj4gSXRlbnMgcG9yIHDDoWdpbmEgPC9sYWJlbD5cbiAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCBzZWxlY3Qtc2VhcmNoXCIgKGNoYW5nZSk9XCJvblNlbGVjdENoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBjb3VudCBvZiBjb3VudE9wdGlvbnM7IGxldCBpID0gaW5kZXhcIiBbdmFsdWVdPVwiY291bnRcIlxuICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cImNvdW50T3B0aW9ucy5sZW5ndGggPiAwICYmIGkgPT0gMFwiPnt7IGNvdW50IH19PC9vcHRpb24+XG4gICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8IS0tIENvbnRyb2xlIGRlIHBhZ2luYcOnw6NvIC0tPlxuICAgICAgICAgICAgPHBhZ2luYXRpb24tY29udHJvbHNcbiAgICAgICAgICAgICAgIFtpZF09XCJwYWdpbmF0aW9uSURcIlxuICAgICAgICAgICAgICAgY2xhc3M9XCJzcC1wYWdpbmF0aW9uIG10LTNcIlxuICAgICAgICAgICAgICAgKHBhZ2VDaGFuZ2UpPVwicGFnZSA9ICRldmVudDsgcGFnZUNoYW5nZS5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgcHJldmlvdXNMYWJlbD1cIsKrJm5ic3A7Jm5ic3A7Jm5ic3A7XCIgbmV4dExhYmVsPVwiJm5ic3A7Jm5ic3A7Jm5ic3A7wrtcIlxuICAgICAgICAgICAgICAgW21heFNpemVdPVwiNVwiPlxuICAgICAgICAgICAgPC9wYWdpbmF0aW9uLWNvbnRyb2xzPlxuICAgICAgICAgPC9kaXY+XG4gICAgICAgICA8IS0tICNlbmRyZWdpb24gUEFHSU5Bw4fDg08gLS0+XG4gICAgICA8L2Rpdj5cbiAgIDwvZGl2PlxufSBAZWxzZSB7XG4gICA8IS0tIExvYWRlciBlbnF1YW50byBvcyByZWdpc3Ryb3Mgc8OjbyBjYXJyZWdhZG9zIC0tPlxuICAgPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lci1ib3JkZXJcIiByb2xlPVwic3RhdHVzXCI+IDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+Q2FycmVnYW5kbyBpbmZvcm1hw6fDtWVzLi4uPC9zcGFuPiA8L2Rpdj5cbiAgIDwvZGl2PlxufVxuIl19
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNwLWluZnJhL3NyYy9saWIvd2lkZ2V0cy90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi93aWRnZXRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7Ozs7OztBQUUzSTs7Ozs7Ozs7Ozs7O0VBWUU7QUFNRixNQUFNLE9BQU8sY0FBYztJQW1CekI7bUJBQ2U7SUFDZixJQUNXLFdBQVcsS0FBd0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUN6RSxJQUFXLFdBQVcsQ0FBQyxLQUF3QixJQUFJLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQWlDL0UsMEhBQTBIO0lBQzFILElBQ1csWUFBWSxLQUFhLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDaEUsSUFBVyxZQUFZLENBQUMsS0FBYTtRQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssSUFBSSxvQkFBb0IsQ0FBQztJQUNyRCxDQUFDO0lBU0QsOEJBQThCO0lBQy9CLElBQVcsSUFBSSxLQUFhLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDdkQsSUFBVyxJQUFJLENBQUMsS0FBYSxJQUFJLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUU1RCxtREFBbUQ7SUFDbkQsSUFBVyxZQUFZLEtBQWEsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLElBQVcsWUFB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QU8sQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUVELDJEQUEyRDtJQUNuRCxXQUFXLENBQUMsR0FBUSxFQUFFLElBQXVCO1FBRXBELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDOUIsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDNUUsQ0FBQzsrR0FyTlcsY0FBYzttR0FBZCxjQUFjLHVkQ3BCM0Isb29IQXVFQTs7NEZEbkRhLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0UsV0FBVztzRkFvQkwsYUFBYTtzQkFBNUIsS0FBSztnQkFNSyxXQUFXO3NCQURyQixLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQU9oQixZQUFZO3NCQUFuQyxLQUFLO3VCQUFDLFFBQVE7Z0JBS1ksbUJBQW1CO3NCQUE3QyxLQUFLO3VCQUFDLFdBQVc7Z0JBS2tDLFdBQVc7c0JBQTlELEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBU1QsZ0JBQWdCO3NCQUFqRCxLQUFLO3VCQUFDLGtCQUFrQjtnQkFNSSxXQUFXO3NCQUF2QyxLQUFLO3VCQUFDLGFBQWE7Z0JBS1QsWUFBWTtzQkFEdEIsS0FBSztnQkFRVyxrQkFBa0I7c0JBQWxDLE1BQU07Z0JBR1UsVUFBVTtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiBDb21wb25lbnRlIGRlIFRhYmVsYSBDdXN0b21pesOhdmVsXHJcbiAqXHJcbiAqIE8gYFRhYmxlQ29tcG9uZW50YCDDqSB1bSBjb21wb25lbnRlIEFuZ3VsYXIgcHJvamV0YWRvIHBhcmEgZXhpYmlyIHVtYSB0YWJlbGEgY3VzdG9taXrDoXZlbFxyXG4gKiBjb20gc3Vwb3J0ZSBhIHBhZ2luYcOnw6NvLiBFbGUgcGVybWl0ZSBhIGNvbmZpZ3VyYcOnw6NvIGRlIGNhYmXDp2FsaG9zIGRlIGNvbHVuYXMsIHBvc2ljaW9uYW1lbnRvXHJcbiAqIGRhIHBhZ2luYcOnw6NvIGUgb3DDp8O1ZXMgZGUgaXRlbnMgcG9yIHDDoWdpbmEuIE8gY29tcG9uZW50ZSDDqSBmbGV4w612ZWwsIHV0aWxpemFuZG8gY2xhc3NlcyBCb290c3RyYXBcclxuICogcGFyYSBhanVzdGFyIG8gbGF5b3V0IGRhcyBjb2x1bmFzIGUgZW1pdGluZG8gZXZlbnRvcyBwYXJhIHF1ZSBvIGNvbXBvbmVudGUgcGFpIHBvc3NhIHJlYWdpciBhXHJcbiAqIG11ZGFuw6dhcyBuYSBww6FnaW5hIG91IG5vIG7Dum1lcm8gZGUgaXRlbnMgZXhpYmlkb3MuXHJcbiAqXHJcbiAqIEBzZWxlY3RvciBsaWItdGFibGVcclxuICogQHRlbXBsYXRlVXJsIC4vdGFibGUuY29tcG9uZW50Lmh0bWxcclxuICogQHN0eWxlVXJsIC4vdGFibGUuY29tcG9uZW50LnNjc3NcclxuKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XHJcblxyXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gUFJPUFJJRURBREVTIDw9PT09PT09PT09XHJcblxyXG4gIC8vICNyZWdpb24gUFJJVkFURVxyXG4gIHByaXZhdGUgX3BhZ2luYXRpb25JRDogc3RyaW5nO1xyXG4gIHByaXZhdGUgX3JlY29yZHNMaXN0OiBhbnlbXSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgcHJpdmF0ZSBfY3VycmVudFBhZ2U6IG51bWJlciA9IDE7XHJcbiAgcHJpdmF0ZSBfY3VycmVudEl0ZW1zUGVyUGFnZTogbnVtYmVyID0gMDtcclxuICAvLyAjZW5kcmVnaW9uIFBSSVZBVEVcclxuXHJcbiAgLy8gI3JlZ2lvbiBQVUJMSUNcclxuXHJcbiAgLyoqIERldGVybWluYSBzZSBhIHRhYmVsYSBkZXZlIHVzYXIgcGFnaW5hw6fDo28uXHJcbiAgICogQGRlZmF1bHQgdHJ1ZSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB1c2VQYWdpbmF0aW9uOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgXHJcbiAgLyoqIExpc3RhIGRlIHJlZ2lzdHJvcyBhIHNlcmVtIGV4aWJpZG9zIG5hIHRhYmVsYS5cclxuICAgKiBAcmVxdWlyZWQgKi9cclxuICBASW5wdXQoeyBhbGlhczogJ2xpc3QnLCByZXF1aXJlZDogdHJ1ZSB9KVxyXG4gIHB1YmxpYyBnZXQgcmVjb3Jkc0xpc3QoKTogYW55W10gfCB1bmRlZmluZWQgeyByZXR1cm4gdGhpcy5fcmVjb3Jkc0xpc3Q7IH1cclxuICBwdWJsaWMgc2V0IHJlY29yZHNMaXN0KHZhbHVlOiBhbnlbXSB8IHVuZGVmaW5lZCkgeyB0aGlzLl9yZWNvcmRzTGlzdCA9IHZhbHVlOyB9XHJcblxyXG5cclxuICAvKiogT3DDp8O1ZXMgZGUgY29udGFnZW0gZGUgaXRlbnMgcG9yIHDDoWdpbmEgZGlzcG9uw612ZWlzIHBhcmEgbyB1c3XDoXJpby5cclxuICAgKiBAcmVxdWlyZWQgKi9cclxuICBASW5wdXQoJ2NvdW50cycpIHB1YmxpYyBjb3VudE9wdGlvbnM6IG51bWJlcltdO1xyXG5cclxuXHJcbiAgLyoqIFBvc2ljaW9uYW1lbnRvIGRvcyBjb250cm9sZXMgZGUgcGFnaW5hw6fDo28uXHJcbiAgICogQGRlZmF1bHQgJ2VuZCcgKi9cclxuICBASW5wdXQoJ3BsYWNlbWVudCcpIHB1YmxpYyBwYWdpbmF0aW9uUGxhY2VtZW50OiAnc3RhcnQnIHwgJ2NlbnRlcicgfCAnZW5kJyB8ICdiZXR3ZWVuJyA9ICdlbmQnO1xyXG5cclxuXHJcbiAgLyoqIExpc3RhIGRlIGNhYmXDp2FsaG9zIHBhcmEgYXMgY29sdW5hcyBkYSB0YWJlbGEsIGluY2x1aW5kbyBvIG5vbWUsIGEgbGFyZ3VyYSBkYSBjb2x1bmEgZSBjbGFzc2VzIGN1c3RvbWl6YWRhcy5cclxuICAgKiBAcmVxdWlyZWQgKi9cclxuICBASW5wdXQoeyBhbGlhczogJ2hlYWRlcnMnLCByZXF1aXJlZDogdHJ1ZSB9KSBwdWJsaWMgaGVhZGVyc0xpc3Q6IHtcclxuICAgIG5hbWU6IHN0cmluZyxcclxuICAgIGNvbDogbnVtYmVyLFxyXG4gICAgY3VzdG9tQ2xhc3Nlcz86IHN0cmluZyxcclxuICAgIG9yZGVyQ29sdW1uPzogc3RyaW5nXHJcbiAgfVtdO1xyXG5cclxuXHJcbiAgLyoqIE1lbnNhZ2VtIGN1c3RvbWl6YWRhIHBhcmEgbGlzdGEgdmF6aWEgKi9cclxuICBASW5wdXQoJ2VtcHR5TGlzdE1lc3NhZ2UnKSBwdWJsaWMgZW1wdHlMaXN0TWVzc2FnZT86IHN0cmluZztcclxuXHJcblxyXG4gIC8qKiBJbmZvcm1hIHNlIG8gY291bnRlciBkZSByZWdpc3Ryb3MgZGV2ZSBhcGFyZWNlciBvdSBuw6NvLlxyXG4gICAqIEBkZWZhdWx0IHRydWVcclxuICAqL1xyXG4gIEBJbnB1dCgnc2hvd0NvdW50ZXInKSBwdWJsaWMgc2hvd0NvdW50ZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuXHJcbiAgLyoqIEluZm9ybWEgdW0gSUQgcGFyYSBhIHBhZ2luYcOnw6NvIGRhIHRhYmVsYSBlc3BlY8OtZmljYS4gRGV2ZSBzZXIgdXRpbGl6YWRhIGVtIGNhc28gZGUgbcO6bHRpcGxhcyB0YWJlbGFzIG5hIG1lc21hIHRlbGEuICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IHBhZ2luYXRpb25JRCgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5fcGFnaW5hdGlvbklEOyB9XHJcbiAgcHVibGljIHNldCBwYWdpbmF0aW9uSUQodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fcGFnaW5hdGlvbklEID0gdmFsdWUgfHwgJ2xpYlRhYmxlUGFnaW5hdGlvbic7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqIEV2ZW50byBlbWl0aWRvIHF1YW5kbyBvIG7Dum1lcm8gZGUgaXRlbnMgcG9yIHDDoWdpbmEgw6kgYWx0ZXJhZG8uICovXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBpdGVtc1BlclBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcblxyXG4gIC8qKiBFdmVudG8gZW1pdGlkbyBxdWFuZG8gYSBww6FnaW5hIMOpIGFsdGVyYWRhLiAqL1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgcGFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcbiAgLyoqIFDDoWdpbmEgYXR1YWwgZGEgdGFiZWxhLiAqL1xyXG5cdHB1YmxpYyBnZXQgcGFnZSgpOiBudW1iZXIgeyByZXR1cm4gdGhpcy5fY3VycmVudFBhZ2U7IH1cclxuXHRwdWJsaWMgc2V0IHBhZ2UodmFsdWU6IG51bWJlcikgeyB0aGlzLl9jdXJyZW50UGFnZSA9IHZhbHVlOyB9XHJcblxyXG4gIC8qKiBOw7ptZXJvIGRlIGl0ZW5zIGEgc2VyZW0gZXhpYmlkb3MgcG9yIHDDoWdpbmEuICovXHJcbiAgcHVibGljIGdldCBpdGVtc1BlclBhZ2UoKTogbnVtYmVyIHsgcmV0dXJuIHRoaXMuX2N1cnJlbnRJdGVtc1BlclBhZ2U7IH1cclxuXHRwdWJsaWMgc2V0IGl0ZW1zUGVyUGFnZSh2YWx1ZTogbnVtYmVyKSB7IHRoaXMuX2N1cnJlbnRJdGVtc1BlclBhZ2UgPSB2YWx1ZTsgfVxyXG5cclxuXHJcbiAgcHVibGljIGdldCBmaXJzdEl0ZW1PZlBhZ2UoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiAodGhpcy5wYWdlIC0gMSkgKiB0aGlzLml0ZW1zUGVyUGFnZSArIDE7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXQgbGFzdEl0ZW1PZlBhZ2UoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBNYXRoLm1pbih0aGlzLnBhZ2UgKiB0aGlzLml0ZW1zUGVyUGFnZSwgdGhpcy5yZWNvcmRzTGlzdD8ubGVuZ3RoID8/IDApO1xyXG4gIH1cclxuXHJcbiAgLy8gRXhlbXBsbyBkZSBzdHJpbmcgY29tIGEgY29udGFnZW06XHJcbiAgcHVibGljIGdldCBpdGVtc0Rpc3BsYXlUZXh0KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYEV4aWJpbmRvICR7IHRoaXMuY291bnRPcHRpb25zID8gdGhpcy5maXJzdEl0ZW1PZlBhZ2UrXCItXCIrdGhpcy5sYXN0SXRlbU9mUGFnZSArIFwiIGRlXCIgOiBcIlwiIH0gJHt0aGlzLnJlY29yZHNMaXN0Py5sZW5ndGggPz8gMH0gcmVnaXN0cm9zYDtcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvbiBQVUJMSUNcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBQUk9QUklFREFERVMgPD09PT09PT09PT1cclxuXHJcblxyXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gSU5JQ0lBTElaQcOHw4NPIDw9PT09PT09PT09XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cclxuXHJcbiAgLyoqIEluaWNpYWxpemEgbyBjb21wb25lbnRlIGUgZGVmaW5lIG8gbsO6bWVybyBpbmljaWFsIGRlIGl0ZW5zIHBvciBww6FnaW5hLiAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucmVjb3Jkc0xpc3QpIHsgdGhpcy5pdGVtc1BlclBhZ2UgPSB0aGlzLmNvdW50T3B0aW9ucyA/IHRoaXMuY291bnRPcHRpb25zWzBdIDogdGhpcy5yZWNvcmRzTGlzdC5sZW5ndGggfVxyXG4gICAgZWxzZSB7IHRoaXMuaXRlbXNQZXJQYWdlID0gdGhpcy5jb3VudE9wdGlvbnNbMF0gPz8gMTAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpOyAgLy8gRm9yw6dhciB1bWEgbm92YSBkZXRlY8Onw6NvIGFww7NzIGEgcmVuZGVyaXphw6fDo29cclxuICB9XHJcblxyXG4gIC8qKiBNb25pdG9yYSBhcyBtdWRhbsOnYXMgbmFzIGVudHJhZGFzIGRvIGNvbXBvbmVudGUgZSByZWFsaXphIGFqdXN0ZXMsIGNvbW8gcmVzZXRhciBhIHBhZ2luYcOnw6NvIG91IHZhbGlkYXIgbyBsYXlvdXQgZGFzIGNvbHVuYXMuXHJcbiAgICogQHBhcmFtIGNoYW5nZXMgT2JqZXRvIHF1ZSBjb250w6ltIGFzIG11ZGFuw6dhcyBuYXMgZW50cmFkYXMgZG8gY29tcG9uZW50ZS4gKi9cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1sncmVjb3Jkc0xpc3QnXS5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgdGhpcy5yZXNldFBhZ2luYXRpb24odGhpcy5yZWNvcmRzTGlzdCA/PyBbXSk7XHJcblxyXG4gICAgICBsZXQgbWF4Q29sdW1ucyA9IHRoaXMuaGVhZGVyc0xpc3QucmVkdWNlKChuLCB7Y29sfSkgPT4gbiArIGNvbCwgMCk7XHJcbiAgICAgIGlmIChtYXhDb2x1bW5zID49IDEzKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQSBzb21hIGRlIGxhcmd1cmEgKGNsYXNzZSBjb20gcHJlZml4byAnY29sLScpIGRlIHRvZGFzIGFzIGNvbHVuYXMgbsOjbyBwb2RlIHNlciBtYWlvciBxdWUgMTIuXCIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gSU5JQ0lBTElaQcOHw4NPIDw9PT09PT09PT09XHJcblxyXG5cclxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IFVUSUxJVMOBUklPUyA8PT09PT09PT09PVxyXG5cclxuICAvKiogTW9kaWZpY2EgYSBxdWFudGlkYWRlIGRlIGl0ZW5zIGEgc2VyIG1vc3RyYWRhIG5hIGxpc3RhLlxyXG4gICAqIEBwYXJhbSBldmVudCBwYXLDom1ldHJvIGRlIGV2ZW50byBxdWUgaXLDoSBzZWxlY2lvbmFyIGEgbm92YSBxdWFudGlkYWRlLiAqL1xyXG4gIHB1YmxpYyBvblNlbGVjdENoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLml0ZW1zUGVyUGFnZSA9IHBhcnNlSW50KGV2ZW50LnRhcmdldC52YWx1ZSwgMTApO1xyXG4gICAgdGhpcy5wYWdlID0gMTtcclxuICAgIHRoaXMuaXRlbXNQZXJQYWdlQ2hhbmdlLmVtaXQodGhpcy5pdGVtc1BlclBhZ2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJlc2V0YSBhIHBhZ2luYcOnw6NvIGRhIGxpc3RhZ2VtIGNvbSBiYXNlIG5vIG7Dum1lcm8gYXR1YWwgZGUgcmVnaXN0cm9zLlxyXG4gICAqIEBwYXJhbSBsaXN0IExpc3RhIGRlIHJlZ2lzdHJvcyBwYXJhIHJlc2V0YXIgYSBwYWdpbmHDp8Ojby4gKi9cclxuICBwdWJsaWMgcmVzZXRQYWdpbmF0aW9uKGxpc3Q6IGFueVtdKTogdm9pZCB7XHJcbiAgICBjb25zdCBzdGFydEluZGV4ID0gKHRoaXMucGFnZSAtIDEpICogdGhpcy5pdGVtc1BlclBhZ2U7XHJcbiAgICBpZiAobGlzdC5sZW5ndGggPD0gc3RhcnRJbmRleCkge1xyXG4gICAgICB0aGlzLnBhZ2UgPSAxO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG5cclxuXHQvLyNyZWdpb24gT3JkZXJpbmcsIFNvcnRpbmcgb3UgYXBlbmFzIE9yZGVuYcOnw6NvXHJcblxyXG5cdC8qKiBNw6l0b2RvIHF1ZSBmYXogYSBvcmRlbmHDp8OjbyBkb3MgY29udHJhdG9zIG5hIHRlbGEgZGUgbGlzdGFnZW0sIGVtIGNhZGEgdW1hIGRhcyBjw6lsdWxhcyBkbyBjYWJlw6dhbGhvIGRhIHRhYmVsYSwgb25kZSBjYWRhIHVtICBcclxuXHQgKiAgZG9zIGVsZW1lbnRvcyA8dGg+IHJlcHJlc2VudGEgdW1hIGNvbHVuYSwgZGUgYWNvcmRvIGNvbSBhIGxpc3RhIGRlIGNvbnRyYXRvcyBxdWUgcmV0b3JuYSBkbyBiYWNrZW5kLiAqL1xyXG5cdC8vIE9iamV0byBwYXJhIGFybWF6ZW5hciBhIGRpcmXDp8OjbyBkZSBvcmRlbmHDp8OjbyBkZSBjYWRhIGNvbHVuYVxyXG5cdHB1YmxpYyBzb3J0RGlyZWN0aW9uOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XHJcblxyXG5cdC8vIENvbHVuYSBhdHVhbG1lbnRlIHNlbGVjaW9uYWRhIHBhcmEgb3JkZW5hw6fDo29cclxuXHRwdWJsaWMgY3VycmVudFNvcnRDb2x1bW46IHN0cmluZyA9ICcnO1xyXG5cclxuXHQvLyBGdW7Dp8OjbyBjaGFtYWRhIHF1YW5kbyBvY29ycmUgdW1hIG11ZGFuw6dhIG5hIG9yZGVuYcOnw6NvXHJcblx0b25Tb3J0Q2hhbmdlKGV2ZW50OiB7IGRpcmVjdGlvbjogc3RyaW5nLCBjb2x1bW46IHN0cmluZyB9KSB7XHJcblx0XHRjb25zdCB7IGRpcmVjdGlvbiwgY29sdW1uIH0gPSBldmVudDtcclxuXHJcblx0XHQvLyBWZXJpZmljYSBzZSBhIGNvbHVuYSBhdHVhbG1lbnRlIHNlbGVjaW9uYWRhIMOpIGEgbWVzbWEgZGEgbm92YSBzZWxlw6fDo29cclxuXHRcdGlmICh0aGlzLmN1cnJlbnRTb3J0Q29sdW1uID09PSBjb2x1bW4pIHtcclxuXHRcdFx0Ly8gQWx0ZXJuYSBlbnRyZSAnYXNjJyBlICdkZXNjJyBwYXJhIGEgZGlyZcOnw6NvIGRlIG9yZGVuYcOnw6NvIGRhIGNvbHVuYVxyXG5cdFx0XHR0aGlzLnNvcnREaXJlY3Rpb25bY29sdW1uXSA9IHRoaXMuc29ydERpcmVjdGlvbltjb2x1bW5dID09PSAnYXNjJyA/ICdhc2MnIDogJ2Rlc2MnO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Ly8gRGVmaW5lIGEgbm92YSBjb2x1bmEgZSBhIGRpcmXDp8OjbyBkZSBvcmRlbmHDp8OjbyBjb21vICdhc2MnXHJcblx0XHRcdHRoaXMuY3VycmVudFNvcnRDb2x1bW4gPSBjb2x1bW47XHJcblx0XHRcdHRoaXMuc29ydERpcmVjdGlvbiA9IHsgW2NvbHVtbl06ICdhc2MnIH07XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gUmVhbGl6YSBhIG9yZGVuYcOnw6NvIGRvcyBkYWRvcyBkYSB0YWJlbGFcclxuXHRcdHRoaXMuc29ydERhdGEoKTtcclxuXHR9XHJcblxyXG5cdC8vIEZ1bsOnw6NvIGRlIG9yZGVuYcOnw6NvIGRvcyBkYWRvcyBkYSB0YWJlbGFcclxuXHRwcml2YXRlIHNvcnREYXRhKCkge1xyXG5cclxuXHRcdGlmICh0aGlzLnJlY29yZHNMaXN0KSB7XHJcblx0XHRcdGNvbnN0IGdydXBvc0xpc3QgPSB0aGlzLnJlY29yZHNMaXN0O1xyXG5cclxuXHRcdFx0Z3J1cG9zTGlzdC5zb3J0KChhLCBiKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgYXR0cmlidXRlID0gdGhpcy5jdXJyZW50U29ydENvbHVtbjtcclxuXHRcdFx0XHRjb25zdCBkaXJlY3Rpb24gPSB0aGlzLnNvcnREaXJlY3Rpb25bYXR0cmlidXRlXTtcclxuXHJcblx0XHRcdFx0cmV0dXJuIHRoaXMuY29tcGFyZVByb3BlcnRpZXMoYSwgYiwgYXR0cmlidXRlLCBkaXJlY3Rpb24pO1xyXG5cdFx0XHR9KTtcclxuXHJcblx0XHR9XHJcblxyXG5cdH1cclxuXHJcblx0Ly8gQ29tcGFyYSBvcyB2YWxvcmVzIGRhcyBwcm9wcmllZGFkZXMgZW50cmUgZG9pcyBvYmpldG9zXHJcblx0cHJpdmF0ZSBjb21wYXJlUHJvcGVydGllcyhhOiBhbnksIGI6IGFueSwgYXR0cmlidXRlOiBzdHJpbmcsIGRpcmVjdGlvbjogc3RyaW5nKTogbnVtYmVyIHtcclxuXHRcdGNvbnN0IHByb3BlcnR5QSA9IHRoaXMuZ2V0UHJvcGVydHkoYSwgYXR0cmlidXRlKS50b1VwcGVyQ2FzZSgpO1xyXG5cdFx0Y29uc3QgcHJvcGVydHlCID0gdGhpcy5nZXRQcm9wZXJ0eShiLCBhdHRyaWJ1dGUpLnRvVXBwZXJDYXNlKCk7XHJcblxyXG5cdFx0aWYgKHByb3BlcnR5QSA8IHByb3BlcnR5Qikge1xyXG5cdFx0XHRyZXR1cm4gZGlyZWN0aW9uID09PSAnYXNjJyA/IC0xIDogMTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAocHJvcGVydHlBID4gcHJvcGVydHlCKSB7XHJcblx0XHRcdHJldHVybiBkaXJlY3Rpb24gPT09ICdhc2MnID8gMSA6IC0xO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiAwO1xyXG5cdH1cclxuXHJcblx0Ly8gT2J0w6ltIG8gdmFsb3IgZGUgdW1hIHByb3ByaWVkYWRlIGVzcGVjw61maWNhIGRlIHVtIG9iamV0b1xyXG5cdHByaXZhdGUgZ2V0UHJvcGVydHkob2JqOiBhbnksIHBhdGg6IHN0cmluZyB8IHN0cmluZ1tdKTogc3RyaW5nIHtcclxuXHRcdFxyXG5cdFx0aWYgKHR5cGVvZiBwYXRoID09PSAnc3RyaW5nJykge1xyXG5cdFx0XHRwYXRoID0gcGF0aC5zcGxpdCgnLicpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBwYXRoLnJlZHVjZSgodmFsdWUsIHByb3BlcnR5KSA9PiB2YWx1ZSA/IHZhbHVlW3Byb3BlcnR5XSA6ICcnLCBvYmopO1xyXG5cdH1cclxuXHQvLyNlbmRyZWdpb24gT3JkZXJpbmcsIFNvcnRpbmcgb3UgYXBlbmFzIE9yZGVuYcOnw6NvXHJcblxyXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gVVRJTElUw4FSSU9TIDw9PT09PT09PT09XHJcblxyXG59XHJcbiIsIkBpZiAocmVjb3Jkc0xpc3QpIHtcclxuICAgPGRpdiBjbGFzcz1cInRhYmxlLWxpc3Qgdy0xMDAgcG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgPCEtLSBFeGliZSBvIG7Dum1lcm8gZGUgaXRlbnMgbW9zdHJhZG9zIGUgbyB0b3RhbCBkZSByZWdpc3Ryb3MgLS0+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwic2hvd0NvdW50ZXJcIiBjbGFzcz1cIm1zLTFcIj4ge3sgaXRlbXNEaXNwbGF5VGV4dCB9fSA8L3NwYW4+XHJcbiAgICAgIFxyXG4gICAgICA8IS0tIENvbnRhaW5lciBkYSB0YWJlbGEgLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1saXN0IG92ZXJmbG93LWhpZGRlbiBib3JkZXItYm90dG9tLTAgcm91bmRlZC1ib3R0b20gcm91bmRlZFwiPlxyXG4gICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1ob3ZlciBib3JkZXIgbWItMFwiPlxyXG4gICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgPCEtLSBJdGVyYSBzb2JyZSBhIGxpc3RhIGRlIGNhYmXDp2FsaG9zIHBhcmEgY3JpYXIgYXMgY29sdW5hcyAtLT5cclxuICAgICAgICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgaGVhZGVyc0xpc3RcIiBzY29wZT1cImNvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWxpZ24tbWlkZGxlIHRleHQtZGFyay1ncmV5IHt7IGhlYWRlci5jb2wgPiAwID8gJ2NvbC0nK2hlYWRlci5jb2wgOiAnY29sJyB9fSB7eyBoZWFkZXIuY3VzdG9tQ2xhc3NlcyB9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICB7eyBoZWFkZXIubmFtZSB9fVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgPGFwcC1vcmRlcmluZyAqbmdJZj1cImhlYWRlci5vcmRlckNvbHVtblwiIFsoc29ydERpcmVjdGlvbildPVwic29ydERpcmVjdGlvbltoZWFkZXIub3JkZXJDb2x1bW5dXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHNvcnRDaGFuZ2UpPVwib25Tb3J0Q2hhbmdlKHsgZGlyZWN0aW9uOiAkZXZlbnQuZGlyZWN0aW9uLCBjb2x1bW46IGhlYWRlci5vcmRlckNvbHVtbiB9KVwiPjwvYXBwLW9yZGVyaW5nPlxyXG4gICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L3RoZWFkPlxyXG5cclxuICAgICAgICAgICAgPHRib2R5IGNsYXNzPVwiYmctbGlnaHQgZmFkZS1pbi1yb3dcIj5cclxuICAgICAgICAgICAgICAgQGlmIChyZWNvcmRzTGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gQ29udGXDumRvIGRhcyBsaW5oYXMgZGEgdGFiZWxhIC0tPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaW5uZXJSb3dzXVwiPjwvbmctY29udGVudD5cclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gTWVuc2FnZW0gZGUgYXVzw6puY2lhIGRlIHJlZ2lzdHJvcyAtLT5cclxuICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjEyXCIgY2xhc3M9XCJhbGlnbi1taWRkbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1saWdodCBmc3QtaXRhbGljIHRleHQtY2VudGVyXCI+IHt7IGVtcHR5TGlzdE1lc3NhZ2UgPyBlbXB0eUxpc3RNZXNzYWdlIDogXCJDb25zdWx0YSBuw6NvIHJldG9ybm91IHJlZ2lzdHJvcy4uLlwiIH19IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICA8L3RhYmxlPlxyXG5cclxuICAgICAgICAgPCEtLSAjcmVnaW9uIFBBR0lOQcOHw4NPIC0tPlxyXG4gICAgICAgICA8ZGl2ICpuZ0lmPVwidXNlUGFnaW5hdGlvbiAmJiByZWNvcmRzTGlzdC5sZW5ndGggPiAwXCIgY2xhc3M9XCJkLWZsZXggbXQtMlwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgJ2p1c3RpZnktY29udGVudC1zdGFydCc6IHBhZ2luYXRpb25QbGFjZW1lbnQgPT0gJ3N0YXJ0JyxcclxuICAgICAgICAgICAgICAgJ2p1c3RpZnktY29udGVudC1jZW50ZXInOiBwYWdpbmF0aW9uUGxhY2VtZW50ID09ICdjZW50ZXInLFxyXG4gICAgICAgICAgICAgICAnanVzdGlmeS1jb250ZW50LWVuZCc6IHBhZ2luYXRpb25QbGFjZW1lbnQgPT0gJ2VuZCcsXHJcbiAgICAgICAgICAgICAgICdqdXN0aWZ5LWNvbnRlbnQtYmV0d2Vlbic6IHBhZ2luYXRpb25QbGFjZW1lbnQgPT0gJ2JldHdlZW4nXHJcbiAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibWUtMlwiIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcDtcIj4gSXRlbnMgcG9yIHDDoWdpbmEgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IHNlbGVjdC1zZWFyY2hcIiAoY2hhbmdlKT1cIm9uU2VsZWN0Q2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgY291bnQgb2YgY291bnRPcHRpb25zOyBsZXQgaSA9IGluZGV4XCIgW3ZhbHVlXT1cImNvdW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cImNvdW50T3B0aW9ucy5sZW5ndGggPiAwICYmIGkgPT0gMFwiPnt7IGNvdW50IH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gQ29udHJvbGUgZGUgcGFnaW5hw6fDo28gLS0+XHJcbiAgICAgICAgICAgIDxwYWdpbmF0aW9uLWNvbnRyb2xzXHJcbiAgICAgICAgICAgICAgIFtpZF09XCJwYWdpbmF0aW9uSURcIlxyXG4gICAgICAgICAgICAgICBjbGFzcz1cInNwLXBhZ2luYXRpb24gbXQtM1wiXHJcbiAgICAgICAgICAgICAgIChwYWdlQ2hhbmdlKT1cInBhZ2UgPSAkZXZlbnQ7IHBhZ2VDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgcHJldmlvdXNMYWJlbD1cIsKrJm5ic3A7Jm5ic3A7Jm5ic3A7XCIgbmV4dExhYmVsPVwiJm5ic3A7Jm5ic3A7Jm5ic3A7wrtcIlxyXG4gICAgICAgICAgICAgICBbbWF4U2l6ZV09XCI1XCI+XHJcbiAgICAgICAgICAgIDwvcGFnaW5hdGlvbi1jb250cm9scz5cclxuICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgIDwhLS0gI2VuZHJlZ2lvbiBQQUdJTkHDh8ODTyAtLT5cclxuICAgICAgPC9kaXY+XHJcbiAgIDwvZGl2PlxyXG59IEBlbHNlIHtcclxuICAgPCEtLSBMb2FkZXIgZW5xdWFudG8gb3MgcmVnaXN0cm9zIHPDo28gY2FycmVnYWRvcyAtLT5cclxuICAgPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzcGlubmVyLWJvcmRlclwiIHJvbGU9XCJzdGF0dXNcIj4gPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5DYXJyZWdhbmRvIGluZm9ybWHDp8O1ZXMuLi48L3NwYW4+IDwvZGl2PlxyXG4gICA8L2Rpdj5cclxufVxyXG4iXX0=
|
|
@@ -105,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
105
105
|
}], onEvent: [{
|
|
106
106
|
type: Output
|
|
107
107
|
}] } });
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi93aWRnZXRzL3RyZWUvdHJlZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi93aWRnZXRzL3RyZWUvdHJlZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFRL0UsTUFBTSxPQUFPLGFBQWE7SUFDeEI7UUFJQSw2Q0FBNkM7UUFFN0Msa0JBQWtCO1FBQ1YsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixXQUFNLEdBQXVCLEVBQUUsQ0FBQztRQXFCeEIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixXQUFNLEdBQVksS0FBSyxDQUFDO1FBR3ZCLGFBQVEsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyRCxZQUFPLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHOUQsWUFBTyxHQUFHLENBQUMsSUFBYyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQztRQUN2RCxXQUFNLEdBQVcsRUFBRSxDQUFDO0lBdENaLENBQUM7SUFFaEIsUUFBUSxLQUFVLENBQUM7SUFPbkIscUJBQXFCO0lBRXJCLGlCQUFpQjtJQUNqQixJQUNXLEtBQUssS0FBeUIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUM5RCxJQUFXLEtBQUssQ0FBQyxLQUF5QixJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUVwRTt3QkFDb0I7SUFDcEIsSUFDVyxPQUFPLEtBQWMsT0FBTyxJQUFJLENBQUMsUUFBUSxD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ekIsU0FBUzsrQkFDRSxVQUFVO3dEQWtCVCxLQUFLO3NCQURmLEtBQUs7Z0JBT0ssT0FBTztzQkFEakIsS0FBSztnQkFXVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBR1csUUFBUTtzQkFBeEIsTUFBTTtnQkFDVSxPQUFPO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUcmVlSXRlbSB9IGZyb20gXCIuL21vZGVscy90cmVlLWl0ZW1cIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImFwcC10cmVlXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vdHJlZS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vdHJlZS5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBUcmVlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IFBST1BFUlRJRVMgPD09PT09PT09PT1cblxuICAvLyAjcmVnaW9uIFBSSVZBVEVcbiAgcHJpdmF0ZSBfb3BlbkFsbDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9pdGVtczogVHJlZUl0ZW1bXSB8IGFueVtdID0gW107XG4gIC8vICNlbmRyZWdpbm8gUFJJVkFURVxuXG4gIC8vICNyZWdpb24gUFVCTElDXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgaXRlbXMoKTogVHJlZUl0ZW1bXSB8IGFueVtdIHsgcmV0dXJuIHRoaXMuX2l0ZW1zOyB9XG4gIHB1YmxpYyBzZXQgaXRlbXModmFsdWU6IFRyZWVJdGVtW10gfCBhbnlbXSkgeyB0aGlzLl9pdGVtcyA9IHZhbHVlOyB9XG5cbiAgLyoqIFJlc3BvbnPDoXZlbCBwb3IgYWJyaXIgb3UgZmVjaGFyIHRvZGFzIGFzIG9ww6fDtWVzIHNlbmRvIGV4aWJpZGFzIG5hIGxpc3RhXG4gICAqIEBkZWZhdWx0IGZhbHNlICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgb3BlbkFsbCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX29wZW5BbGw7IH1cbiAgcHVibGljIHNldCBvcGVuQWxsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fb3BlbkFsbCA9IHZhbHVlO1xuXG4gICAgdGhpcy5pdGVtcy5mb3JFYWNoKGVsZW0gPT4ge1xuICAgICAgZWxlbS5leHBhbmRlZCA9IHZhbHVlO1xuICAgICAgZWxlbS5hcGxpY0NsYXNzID0gdmFsdWU7XG4gICAgfSk7XG4gIH1cblxuICBASW5wdXQoKSBwdWJsaWMgY2hlY2tib3g6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG5cbiAgQE91dHB1dCgpIHB1YmxpYyBvblNlbGVjdDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uRXZlbnQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXG4gIHB1YmxpYyBjaGVja2VkID0gKGl0ZW06IFRyZWVJdGVtKSA9PiBpdGVtLmlzX3NlbGVjdGVkID09IHRydWU7XG4gIHB1YmxpYyBzZWFyY2g6IHN0cmluZyA9IFwiXCI7XG4gIC8vICNlbmRyZWdpb24gUFVCTElDXG5cbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBQUk9QRVJUSUVTIDw9PT09PT09PT09XG5cbiAgLy8gI3JlZ2lvbiA9PT09PT09PT09PiBQVUJMSUMgTUVUSE9EUyA8PT09PT09PT09PVxuICBwdWJsaWMgb25FeHBhbmQoaXRlbTogVHJlZUl0ZW0pOiB2b2lkIHtcbiAgICBpZiAoaXRlbS5leHBhbmRlZCkge1xuICAgICAgaXRlbS5leHBhbmRlZCA9ICFpdGVtLmV4cGFuZGVkO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoaXRlbS5jaGlsZHJlbikge1xuICAgICAgICBpZiAoaXRlbS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgaXRlbS5leHBhbmRlZCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbS5leHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQ2hlY2soaXRlbXM6IFRyZWVJdGVtW10sIGl0ZW06IFRyZWVJdGVtKTogdm9pZCB7XG4gICAgaWYgKGl0ZW0uaGFzX2NoaWxkcmVuKSB7XG4gICAgICBpdGVtLmNoaWxkcmVuLmZvckVhY2goKGZpcnN0Tm9kZSkgPT4ge1xuICAgICAgICBpZiAoZmlyc3ROb2RlLmlzX3NlbGVjdGVkICE9IGl0ZW0uaXNfc2VsZWN0ZWQpIHtcbiAgICAgICAgICBmaXJzdE5vZGUuaXNfc2VsZWN0ZWQgPSAhZmlyc3ROb2RlLmlzX3NlbGVjdGVkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmaXJzdE5vZGUuaGFzX2NoaWxkcmVuKSB7XG4gICAgICAgICAgZmlyc3ROb2RlLmNoaWxkcmVuLmZvckVhY2goKHNlY29uZE5vZGUpID0+IHtcbiAgICAgICAgICAgIGlmIChzZWNvbmROb2RlLmlzX3NlbGVjdGVkICE9IGZpcnN0Tm9kZS5pc19zZWxlY3RlZCkge1xuICAgICAgICAgICAgICBzZWNvbmROb2RlLmlzX3NlbGVjdGVkID0gIXNlY29uZE5vZGUuaXNfc2VsZWN0ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5pbmRldGVybWluYXRlQ2hlY2soaXRlbXMpKSB7XG4gICAgICB0aGlzLm9uU2VsZWN0LmVtaXQodHJ1ZSk7XG4gICAgfSBlbHNlIGlmICghdGhpcy5pbmRldGVybWluYXRlQ2hlY2soaXRlbXMpKSB7XG4gICAgICB0aGlzLm9uU2VsZWN0LmVtaXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkNoZWNrRXZlbnQoaXRlbXM6IFRyZWVJdGVtW10pIHtcbiAgICBpZiAodGhpcy5pbmRldGVybWluYXRlQ2hlY2soaXRlbXMpKSB7XG4gICAgICB0aGlzLm9uRXZlbnQuZW1pdCh0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vbkV2ZW50LmVtaXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuICAvLyAjZW5kcmVnaW9uID09PT09PT09PT0+IFBVQkxJQyBNRVRIT0RTIDw9PT09PT09PT09XG5cbiAgLy8gI3JlZ2lvbiA9PT09PT09PT09PiBQUklWQVRFIE1FVEhPRFMgPD09PT09PT09PT1cblxuICBwcml2YXRlIGluZGV0ZXJtaW5hdGVDaGVjayhsaXN0OiBUcmVlSXRlbVtdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGxpc3Quc29tZSh0aGlzLmNoZWNrZWQpO1xuICB9XG5cbiAgLy8gcHJpdmF0ZSBhbGxDaGVjayhsaXN0OiBUcmVlSXRlbVtdKTogYm9vbGVhbiB7XG4gIC8vICAgcmV0dXJuIGxpc3QuZXZlcnkodGhpcy5jaGVja2VkKTtcbiAgLy8gfVxuICAvLyAjZW5kcmVnaW9uID09PT09PT09PT0+IFBSSVZBVEUgTUVUSE9EUyA8PT09PT09PT09PVxufVxuIiwiPCEtLSBGSUxURVIgLS0+XG48bmctdGVtcGxhdGUgW25nSWZdPVwiZmlsdGVyXCI+XG4gIDwhLS0gPGFwcC1zZWFyY2gtZmlsdGVycz48L2FwcC1zZWFyY2gtZmlsdGVycz4gLS0+XG5cbiAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIGdsYi1zZWFyY2gtaW5wdXQgbXktM1wiPlxuICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZ3JvdXAtdGV4dCBzZWFyY2ggcHgtMiBnbGItYmctY29sb3Itd2hpdGVcIj5cbiAgICAgIDxhcHAtc3ZnLXN0b3JhZ2Ugc3ZnTmFtZT1cInNlYXJjaFwiIHN2Z0NvbG9yPVwiZ3JheVwiIHN2Z1NpemU9XCJtZWRpdW0tc21hbGxcIlxuICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj48L2FwcC1zdmctc3RvcmFnZT5cbiAgICA8L3NwYW4+XG4gICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgYm9yZGVyLWxlZnQtbm9uZSBwcy0wXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hcIj5cbiAgPC9kaXY+XG4gIFxuPC9uZy10ZW1wbGF0ZT5cbjwhLS0gVFJFRSAtLT5cbjx1bCBjbGFzcz1cInRyZWUtdmlld1wiPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zIHwgVHJlZUZpbHRlciA6IHNlYXJjaDsgaW5kZXggYXMgaVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgcHktMVwiIFtjbGFzc109XCIhaXRlbS5oYXNfY2hpbGRyZW4gPyAnY2hpbGRyZW4nIDogbnVsbCBcIj5cbiAgICAgIDxhcHAtc3ZnLXN0b3JhZ2VcbiAgICAgICAgY2xhc3M9XCJjaGV2cm9uXCJcbiAgICAgICAgKm5nSWY9XCJpdGVtLmhhc19jaGlsZHJlblwiXG4gICAgICAgIFtjbGFzc109XCJpdGVtLmFwbGljQ2xhc3MgPyAncm90YXRlJyA6IG51bGxcIlxuICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgb25FeHBhbmQoaXRlbSk7XG4gICAgICAgICAgaXRlbS5hcGxpY0NsYXNzID8gKGl0ZW0uYXBsaWNDbGFzcyA9IGZhbHNlKSA6IChpdGVtLmFwbGljQ2xhc3MgPSB0cnVlKVxuICAgICAgICBcIlxuICAgICAgICBzdmdTaXplPVwibWVkaXVtLXNtYWxsXCJcbiAgICAgICAgc3ZnTmFtZT1cImNoZXZyb24tcmlnaHRcIlxuICAgICAgPjwvYXBwLXN2Zy1zdG9yYWdlPlxuICAgICAgPCEtLSBDSEVDS0JPWCAtLT5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJjaGVja2JveFwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtLTAgcG9zaXRpb24tcmVsYXRpdmVcIlxuICAgICAgICAgIFtjaGVja2VkXT1cIm9uQ2hlY2tFdmVudChpdGVtcylcIlxuICAgICAgICAgIChjaGFuZ2UpPVwib25DaGVjayhpdGVtcywgaXRlbSlcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiaXRlbS5pc19zZWxlY3RlZFwiXG4gICAgICAgIC8+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWwgbWItMCBtcy0yXCI+e3sgaXRlbS5sYWJlbCB9fTwvbGFiZWw+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBOT0RFUyAtLT5cbiAgICA8dWwgKm5nSWY9XCJpdGVtLmV4cGFuZGVkXCI+XG4gICAgICA8YXBwLXRyZWVcbiAgICAgICAgKG9uU2VsZWN0KT1cIml0ZW0uaXNfc2VsZWN0ZWQgPSAkZXZlbnRcIlxuICAgICAgICAob25FdmVudCk9XCJpdGVtLmlzX3NlbGVjdGVkID0gJGV2ZW50XCJcbiAgICAgICAgW2l0ZW1zXT1cIml0ZW0uY2hpbGRyZW5cIlxuICAgICAgICBbY2hlY2tib3hdPVwiY2hlY2tib3hcIlxuICAgICAgPjwvYXBwLXRyZWU+XG4gICAgPC91bD5cbiAgPC9uZy1jb250YWluZXI+XG48L3VsPiJdfQ==
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi93aWRnZXRzL3RyZWUvdHJlZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi93aWRnZXRzL3RyZWUvdHJlZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFRL0UsTUFBTSxPQUFPLGFBQWE7SUFDeEI7UUFJQSw2Q0FBNkM7UUFFN0Msa0JBQWtCO1FBQ1YsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixXQUFNLEdBQXVCLEVBQUUsQ0FBQztRQXFCeEIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixXQUFNLEdBQVksS0FBSyxDQUFDO1FBR3ZCLGFBQVEsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyRCxZQUFPLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHOUQsWUFBTyxHQUFHLENBQUMsSUFBYyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQztRQUN2RCxXQUFNLEdBQVcsRUFBRSxDQUFDO0lBdENaLENBQUM7SUFFaEIsUUFBUSxLQUFVLENBQUM7SUFPbkIscUJBQXFCO0lBRXJCLGlCQUFpQjtJQUNqQixJQUNXLEtBQUssS0FBeUIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUM5RCxJQUFXLEtBQUssQ0FBQyxLQUF5QixJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUVwRTt3QkFDb0I7SUFDcEIsSUFDVyxPQUFPLEtBQWMsT0FBTyxJQUFJLENBQUMsUUFBUSxD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ekIsU0FBUzsrQkFDRSxVQUFVO3dEQWtCVCxLQUFLO3NCQURmLEtBQUs7Z0JBT0ssT0FBTztzQkFEakIsS0FBSztnQkFXVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBR1csUUFBUTtzQkFBeEIsTUFBTTtnQkFDVSxPQUFPO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFRyZWVJdGVtIH0gZnJvbSBcIi4vbW9kZWxzL3RyZWUtaXRlbVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLXRyZWVcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3RyZWUuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vdHJlZS5jb21wb25lbnQuc2Nzc1wiXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJlZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XHJcblxyXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gUFJPUEVSVElFUyA8PT09PT09PT09PVxyXG5cclxuICAvLyAjcmVnaW9uIFBSSVZBVEVcclxuICBwcml2YXRlIF9vcGVuQWxsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfaXRlbXM6IFRyZWVJdGVtW10gfCBhbnlbXSA9IFtdO1xyXG4gIC8vICNlbmRyZWdpbm8gUFJJVkFURVxyXG5cclxuICAvLyAjcmVnaW9uIFBVQkxJQ1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBpdGVtcygpOiBUcmVlSXRlbVtdIHwgYW55W10geyByZXR1cm4gdGhpcy5faXRlbXM7IH1cclxuICBwdWJsaWMgc2V0IGl0ZW1zKHZhbHVlOiBUcmVlSXRlbVtdIHwgYW55W10pIHsgdGhpcy5faXRlbXMgPSB2YWx1ZTsgfVxyXG5cclxuICAvKiogUmVzcG9uc8OhdmVsIHBvciBhYnJpciBvdSBmZWNoYXIgdG9kYXMgYXMgb3DDp8O1ZXMgc2VuZG8gZXhpYmlkYXMgbmEgbGlzdGFcclxuICAgKiBAZGVmYXVsdCBmYWxzZSAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBvcGVuQWxsKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fb3BlbkFsbDsgfVxyXG4gIHB1YmxpYyBzZXQgb3BlbkFsbCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fb3BlbkFsbCA9IHZhbHVlO1xyXG5cclxuICAgIHRoaXMuaXRlbXMuZm9yRWFjaChlbGVtID0+IHtcclxuICAgICAgZWxlbS5leHBhbmRlZCA9IHZhbHVlO1xyXG4gICAgICBlbGVtLmFwbGljQ2xhc3MgPSB2YWx1ZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgcHVibGljIGNoZWNrYm94OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBvblNlbGVjdDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25FdmVudDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuXHJcbiAgcHVibGljIGNoZWNrZWQgPSAoaXRlbTogVHJlZUl0ZW0pID0+IGl0ZW0uaXNfc2VsZWN0ZWQgPT0gdHJ1ZTtcclxuICBwdWJsaWMgc2VhcmNoOiBzdHJpbmcgPSBcIlwiO1xyXG4gIC8vICNlbmRyZWdpb24gUFVCTElDXHJcblxyXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gUFJPUEVSVElFUyA8PT09PT09PT09PVxyXG5cclxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IFBVQkxJQyBNRVRIT0RTIDw9PT09PT09PT09XHJcbiAgcHVibGljIG9uRXhwYW5kKGl0ZW06IFRyZWVJdGVtKTogdm9pZCB7XHJcbiAgICBpZiAoaXRlbS5leHBhbmRlZCkge1xyXG4gICAgICBpdGVtLmV4cGFuZGVkID0gIWl0ZW0uZXhwYW5kZWQ7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChpdGVtLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgaXRlbS5leHBhbmRlZCA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGl0ZW0uZXhwYW5kZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNoZWNrKGl0ZW1zOiBUcmVlSXRlbVtdLCBpdGVtOiBUcmVlSXRlbSk6IHZvaWQge1xyXG4gICAgaWYgKGl0ZW0uaGFzX2NoaWxkcmVuKSB7XHJcbiAgICAgIGl0ZW0uY2hpbGRyZW4uZm9yRWFjaCgoZmlyc3ROb2RlKSA9PiB7XHJcbiAgICAgICAgaWYgKGZpcnN0Tm9kZS5pc19zZWxlY3RlZCAhPSBpdGVtLmlzX3NlbGVjdGVkKSB7XHJcbiAgICAgICAgICBmaXJzdE5vZGUuaXNfc2VsZWN0ZWQgPSAhZmlyc3ROb2RlLmlzX3NlbGVjdGVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZmlyc3ROb2RlLmhhc19jaGlsZHJlbikge1xyXG4gICAgICAgICAgZmlyc3ROb2RlLmNoaWxkcmVuLmZvckVhY2goKHNlY29uZE5vZGUpID0+IHtcclxuICAgICAgICAgICAgaWYgKHNlY29uZE5vZGUuaXNfc2VsZWN0ZWQgIT0gZmlyc3ROb2RlLmlzX3NlbGVjdGVkKSB7XHJcbiAgICAgICAgICAgICAgc2Vjb25kTm9kZS5pc19zZWxlY3RlZCA9ICFzZWNvbmROb2RlLmlzX3NlbGVjdGVkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaW5kZXRlcm1pbmF0ZUNoZWNrKGl0ZW1zKSkge1xyXG4gICAgICB0aGlzLm9uU2VsZWN0LmVtaXQodHJ1ZSk7XHJcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmluZGV0ZXJtaW5hdGVDaGVjayhpdGVtcykpIHtcclxuICAgICAgdGhpcy5vblNlbGVjdC5lbWl0KGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNoZWNrRXZlbnQoaXRlbXM6IFRyZWVJdGVtW10pIHtcclxuICAgIGlmICh0aGlzLmluZGV0ZXJtaW5hdGVDaGVjayhpdGVtcykpIHtcclxuICAgICAgdGhpcy5vbkV2ZW50LmVtaXQodHJ1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm9uRXZlbnQuZW1pdChmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gUFVCTElDIE1FVEhPRFMgPD09PT09PT09PT1cclxuXHJcbiAgLy8gI3JlZ2lvbiA9PT09PT09PT09PiBQUklWQVRFIE1FVEhPRFMgPD09PT09PT09PT1cclxuXHJcbiAgcHJpdmF0ZSBpbmRldGVybWluYXRlQ2hlY2sobGlzdDogVHJlZUl0ZW1bXSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGxpc3Quc29tZSh0aGlzLmNoZWNrZWQpO1xyXG4gIH1cclxuXHJcbiAgLy8gcHJpdmF0ZSBhbGxDaGVjayhsaXN0OiBUcmVlSXRlbVtdKTogYm9vbGVhbiB7XHJcbiAgLy8gICByZXR1cm4gbGlzdC5ldmVyeSh0aGlzLmNoZWNrZWQpO1xyXG4gIC8vIH1cclxuICAvLyAjZW5kcmVnaW9uID09PT09PT09PT0+IFBSSVZBVEUgTUVUSE9EUyA8PT09PT09PT09PVxyXG59XHJcbiIsIjwhLS0gRklMVEVSIC0tPlxuPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImZpbHRlclwiPlxuICA8IS0tIDxhcHAtc2VhcmNoLWZpbHRlcnM+PC9hcHAtc2VhcmNoLWZpbHRlcnM+IC0tPlxuXG4gIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBnbGItc2VhcmNoLWlucHV0IG15LTNcIj5cbiAgICA8c3BhbiBjbGFzcz1cImlucHV0LWdyb3VwLXRleHQgc2VhcmNoIHB4LTIgZ2xiLWJnLWNvbG9yLXdoaXRlXCI+XG4gICAgICA8YXBwLXN2Zy1zdG9yYWdlIHN2Z05hbWU9XCJzZWFyY2hcIiBzdmdDb2xvcj1cImdyYXlcIiBzdmdTaXplPVwibWVkaXVtLXNtYWxsXCJcbiAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+PC9hcHAtc3ZnLXN0b3JhZ2U+XG4gICAgPC9zcGFuPlxuICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGJvcmRlci1sZWZ0LW5vbmUgcHMtMFwiIFsobmdNb2RlbCldPVwic2VhcmNoXCI+XG4gIDwvZGl2PlxuICBcbjwvbmctdGVtcGxhdGU+XG48IS0tIFRSRUUgLS0+XG48dWwgY2xhc3M9XCJ0cmVlLXZpZXdcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtcyB8IFRyZWVGaWx0ZXIgOiBzZWFyY2g7IGluZGV4IGFzIGlcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyIHB5LTFcIiBbY2xhc3NdPVwiIWl0ZW0uaGFzX2NoaWxkcmVuID8gJ2NoaWxkcmVuJyA6IG51bGwgXCI+XG4gICAgICA8YXBwLXN2Zy1zdG9yYWdlXG4gICAgICAgIGNsYXNzPVwiY2hldnJvblwiXG4gICAgICAgICpuZ0lmPVwiaXRlbS5oYXNfY2hpbGRyZW5cIlxuICAgICAgICBbY2xhc3NdPVwiaXRlbS5hcGxpY0NsYXNzID8gJ3JvdGF0ZScgOiBudWxsXCJcbiAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgIG9uRXhwYW5kKGl0ZW0pO1xuICAgICAgICAgIGl0ZW0uYXBsaWNDbGFzcyA/IChpdGVtLmFwbGljQ2xhc3MgPSBmYWxzZSkgOiAoaXRlbS5hcGxpY0NsYXNzID0gdHJ1ZSlcbiAgICAgICAgXCJcbiAgICAgICAgc3ZnU2l6ZT1cIm1lZGl1bS1zbWFsbFwiXG4gICAgICAgIHN2Z05hbWU9XCJjaGV2cm9uLXJpZ2h0XCJcbiAgICAgID48L2FwcC1zdmctc3RvcmFnZT5cbiAgICAgIDwhLS0gQ0hFQ0tCT1ggLS0+XG4gICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiY2hlY2tib3hcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbS0wIHBvc2l0aW9uLXJlbGF0aXZlXCJcbiAgICAgICAgICBbY2hlY2tlZF09XCJvbkNoZWNrRXZlbnQoaXRlbXMpXCJcbiAgICAgICAgICAoY2hhbmdlKT1cIm9uQ2hlY2soaXRlbXMsIGl0ZW0pXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cIml0ZW0uaXNfc2VsZWN0ZWRcIlxuICAgICAgICAvPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsIG1iLTAgbXMtMlwiPnt7IGl0ZW0ubGFiZWwgfX08L2xhYmVsPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gTk9ERVMgLS0+XG4gICAgPHVsICpuZ0lmPVwiaXRlbS5leHBhbmRlZFwiPlxuICAgICAgPGFwcC10cmVlXG4gICAgICAgIChvblNlbGVjdCk9XCJpdGVtLmlzX3NlbGVjdGVkID0gJGV2ZW50XCJcbiAgICAgICAgKG9uRXZlbnQpPVwiaXRlbS5pc19zZWxlY3RlZCA9ICRldmVudFwiXG4gICAgICAgIFtpdGVtc109XCJpdGVtLmNoaWxkcmVuXCJcbiAgICAgICAgW2NoZWNrYm94XT1cImNoZWNrYm94XCJcbiAgICAgID48L2FwcC10cmVlPlxuICAgIDwvdWw+XG4gIDwvbmctY29udGFpbmVyPlxuPC91bD4iXX0=
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -68,4 +68,5 @@ export * from './lib/widgets/content-container/content-container.component';
|
|
|
68
68
|
export * from './lib/widgets/table/table.component';
|
|
69
69
|
export * from './lib/widgets/spinner/spinner.component';
|
|
70
70
|
export * from './lib/widgets/nav-produtos/nav-produtos.component';
|
|
71
|
-
|
|
71
|
+
export * from './lib/widgets/input-trim/input-trim.component';
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1pbmZyYS9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWM7QUFDZCxjQUFjLG9CQUFvQixDQUFDO0FBRW5DLGNBQWM7QUFDZCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxhQUFhO0FBQ2IsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsd0NBQXdDLENBQUM7QUFFdkQsWUFBWTtBQUNaLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsOEJBQThCLENBQUM7QUFFN0MsaUJBQWlCO0FBQ2pCLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHVFQUF1RSxDQUFDO0FBQ3RGLGNBQWMsd0NBQXdDLENBQUM7QUFFdkQsWUFBWTtBQUNaLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsbUJBQW1CLENBQUM7QUFFbEMsZUFBZTtBQUNmLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUVqRCxpQkFBaUI7QUFDakIsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLHFDQUFxQyxDQUFDO0FBRXBELGNBQWM7QUFDZCxjQUFjLHNFQUFzRSxDQUFDO0FBQ3JGLGNBQWMsZ0ZBQWdGLENBQUM7QUFDL0YsY0FBYyxtRUFBbUUsQ0FBQztBQUNsRixjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYywyQ0FBMkMsQ0FBQztBQUUxRCxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsbURBQW1ELENBQUM7QUFFbEUsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsNkRBQTZELENBQUM7QUFFNUUsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYywrQ0FBK0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBpbmZyYVxyXG4gKi9cclxuXHJcbi8qKiBNb2R1bGVzICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2luZnJhLm1vZHVsZSc7XHJcblxyXG4vKiogTWVzc2FnZSAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNzYWdlL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lc3NhZ2UvY29uZmlybS9jb25maXJtLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lc3NhZ2UvY29uZmlybS1tb2RhbC9jb25maXJtLW1vZGFsLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lc3NhZ2Uvc2F2ZS9zYXZlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lc3NhZ2UvbWVzc2FnZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVzc2FnZS9tZXNzYWdlLWVudW0nO1xyXG5cclxuLyoqIE1vZGVscyAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvRG93bmxvYWRBcnF1aXZvcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9lbWFpbC1tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9pZXJyb3InO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvaXBhZ2luYXRpb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcmVwb3J0LWZpbGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcmV0LWVycm9yJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JldC1mZWVkYmFjay1tZXNzYWdlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JldC1yZXBvcnQtZmlsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9jb21ib2JveC9yZWNvcmQtY29tYm9ib3gnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY29tYm9ib3gvcmV0LXJlY29yZHMtY29tYm9ib3gnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvaWNvbnMvaWNvbi5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9mb3Jtcy9jdXN0b20tZm9ybS1jb250cm9sJztcclxuXHJcbi8qKiBQaXBlcyAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy9jcGYtY25wai5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvY3VycmVuY3kucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL3RvLXVybC5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvdGV4dC1maWx0ZXIucGlwZSc7XHJcblxyXG4vKiogRGlyZWN0aXZlcyAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3JlcXVpcmVkLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvY29weS1jbGlwYm9hcmQuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvd2lkZ2V0cy9maWVsZC1jb250YWRvci1tZXNzYWdlL2ZpZWxkLWNvbnRhZG9yLW1lc3NhZ2UuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9sb2FkaW5nLWJ0bi5kaXJlY3RpdmUnO1xyXG5cclxuLyoqIFV0aWxzICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2NoZWNrLXVybC1hbmQtbWV0aG9kLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9mb3JtLXV0aWxzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvc2V0dGluZ3Muc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL3V0aWxzJztcclxuXHJcbi8qKiBTZXJ2aWNlcyAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL21vZGFsLXV0aWxzLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2lwLXNlcnZpY2Uuc2VydmljZSc7XHJcblxyXG4vKiogVmFsaWRhdG9ycyAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi92YWxpZGF0b3JzL2NwZi1jbnBqLnZhbGlkYXRvci5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi92YWxpZGF0b3JzL2NwZi1jbnBqLnZhbGlkYXRvcic7XHJcblxyXG4vKiogV2lkZ2V0cyAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi93aWRnZXRzL2JyZWFkY3J1bWIvaW5mcmEtYnJlYWRjcnVtYi9pbmZyYS1icmVhZGNydW1iLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldHMvYnJlYWRjcnVtYi9pbmZyYS1icmVhZGNydW1iLWl0ZW0vaW5mcmEtYnJlYWRjcnVtYi1pdGVtLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldHMvYnJlYWRjcnVtYi9wb3J0YWxyaC1icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvd2lkZ2V0cy9jbGljay1vdXRzaWRlL2NsaWNrb3V0c2lkZS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi93aWRnZXRzL2NvbWJvYm94L2NvbWJvYm94LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldHMvZmllbGQtY29udHJvbC1lcnJvci9maWVsZC1jb250cm9sLWVycm9yLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldHMvZmllbGQtZXJyb3ItbWVzc2FnZS9maWVsZC1lcnJvci1tZXNzYWdlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldHMvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldHMvbG9hZGluZy1idXR0b24vbG9hZGluZy1idXR0b24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvd2lkZ2V0cy9vcmRlcmluZy9vcmRlcmluZy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi93aWRnZXRzL3N2Zy1zdG9yYWdlL3N2Zy1zdG9yYWdlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldHMvdHJlZS90cmVlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldHMvdHJlZS9tb2RlbHMvcmV0LXRyZWUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi93aWRnZXRzL3RyZWUvbW9kZWxzL3RyZWUtaXRlbSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldHMvdHJlZS9waXBlcy9zZWFyY2gtdHJlZS5waXBlJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldHMvc2VhcmNoLWNvbWJvYm94L3NlYXJjaC1jb21ib2JveC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi93aWRnZXRzL2xpYi1jb21ib2JveC9saWItY29tYm9ib3guY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldHMvc2ltcGxlLWhlYWRlci9zaW1wbGUtaGVhZGVyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldHMvbGliLWljb25zL2xpYi1pY29ucy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi93aWRnZXRzL2NvbnRlbnQtY29udGFpbmVyL2NvbnRlbnQtY29udGFpbmVyLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi93aWRnZXRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldHMvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldHMvbmF2LXByb2R1dG9zL25hdi1wcm9kdXRvcy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi93aWRnZXRzL2lucHV0LXRyaW0vaW5wdXQtdHJpbS5jb21wb25lbnQnO1xyXG4iXX0=
|