info-library 2.10.49 → 2.10.51
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/bundles/info-library.umd.js +27 -4
- package/bundles/info-library.umd.js.map +1 -1
- package/bundles/info-library.umd.min.js +1 -1
- package/bundles/info-library.umd.min.js.map +1 -1
- package/controls/date-month/date-month.component.d.ts +1 -0
- package/controls/grid/grid.component.d.ts +1 -0
- package/controls/select/select.component.d.ts +2 -0
- package/esm2015/controls/autocomplete/autocomplete.component.js +2 -2
- package/esm2015/controls/date-month/date-month.component.js +7 -1
- package/esm2015/controls/grid/grid.component.js +11 -3
- package/esm2015/controls/select/select.component.js +9 -2
- package/esm2015/pipe/translate.pipe.js +3 -1
- package/fesm2015/info-library.js +27 -4
- package/fesm2015/info-library.js.map +1 -1
- package/info-library.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -116,6 +116,7 @@ export class InfoGridComponent {
|
|
|
116
116
|
this.colunasHeaders = [];
|
|
117
117
|
this.colunasType = [];
|
|
118
118
|
this.colunasWidth = [];
|
|
119
|
+
this.colunasTranslate = [];
|
|
119
120
|
this.currentUrl = null;
|
|
120
121
|
this.url = null;
|
|
121
122
|
this.parentIdUrlChange = new EventEmitter();
|
|
@@ -229,11 +230,15 @@ export class InfoGridComponent {
|
|
|
229
230
|
this.colunasHeaders = [];
|
|
230
231
|
this.colunasType = [];
|
|
231
232
|
this.colunasWidth = [];
|
|
233
|
+
this.colunasTranslate = [];
|
|
232
234
|
this.cols.split(',').forEach((/**
|
|
233
235
|
* @param {?} registro
|
|
234
236
|
* @return {?}
|
|
235
237
|
*/
|
|
236
238
|
registro => {
|
|
239
|
+
/** @type {?} */
|
|
240
|
+
let translate = registro.indexOf('#') == -1;
|
|
241
|
+
registro = registro.replace(/#/g, '');
|
|
237
242
|
/** @type {?} */
|
|
238
243
|
let column = registro;
|
|
239
244
|
/** @type {?} */
|
|
@@ -276,6 +281,7 @@ export class InfoGridComponent {
|
|
|
276
281
|
this.colunasHeaders.push(header);
|
|
277
282
|
this.colunasType.push(type == '' ? 'label' : type);
|
|
278
283
|
this.colunasWidth.push(width);
|
|
284
|
+
this.colunasTranslate.push(translate);
|
|
279
285
|
}));
|
|
280
286
|
}
|
|
281
287
|
}
|
|
@@ -823,9 +829,9 @@ export class InfoGridComponent {
|
|
|
823
829
|
InfoGridComponent.decorators = [
|
|
824
830
|
{ type: Component, args: [{
|
|
825
831
|
selector: 'info-grid',
|
|
826
|
-
template: "<info-pagebar *ngIf=\"showPagebar\" icon=\"work\" [pagetitle]=\"pagebarTitle\" [description]=\"description\">\r\n <button mat-button type=\"button\" *ngIf=\"backurl != null && backurl != ''\" color=\"primary\" (click)=\"back()\">\r\n <mat-icon class=\"fs-20\">chevron_left</mat-icon>{{\"Voltar\" | translate}}\r\n </button>\r\n\r\n <ng-container *ngFor=\"let b of pagebarbuttons\">\r\n <button type=\"button\" mat-button color=\"primary\" (click)=\"b.modal == null ? navigateTo(b.url, false, null) : openCustomModal(b.modal, b.modalwidth, null)\">\r\n <mat-icon *ngIf=\"b.icon != 'chevron_right'\" class=\"fs-20\">{{ b.icon }}</mat-icon>\r\n {{ b.label | translate }}\r\n </button>\r\n </ng-container>\r\n\r\n <button mat-button type=\"button\" *ngIf=\"searchmodel != null && !enabledSearch\" color=\"primary\" (click)=\"enabledSearch = !enabledSearch\">\r\n <mat-icon class=\"fs-20\">search</mat-icon> {{ \"Pesquisar\" | translate}}\r\n </button>\r\n <button mat-button type=\"button\" *ngIf=\"enablednew && hasPermissionNew\" color=\"primary\" (click)=\"add()\">\r\n <mat-icon class=\"fs-20\">add</mat-icon> {{ newlabel | translate}}\r\n </button>\r\n</info-pagebar>\r\n\r\n<div [ngClass]=\"{ 'table-full': fullarea }\">\r\n <div class=\"table-responsive white\">\r\n <div class=\"table-title\" [ngStyle]=\"{ 'padding': (enabledSearch ? 10 : 0) + 'px 20px' }\">\r\n <form autocomplete=\"off\" #formSearch=\"ngForm\" (ngSubmit)=\"search()\">\r\n <div *ngIf=\"enabledSearch\" class=\"search-container row\">\r\n <div class=\"col-md-{{(searchbuttons || []).length == 0 ? '10' : '9' }}\">\r\n <div class=\"row\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"col-md-{{(searchbuttons || []).length == 0 ? '2' : '3' }} align-right\" *ngIf=\"searchmodel != null\">\r\n <div class=\"search-buttons \">\r\n <ng-container *ngIf=\"searchonlyonebutton\">\r\n <button mat-button type=\"submit\" color=\"primary\" [disabled]=\"formSearch.invalid || loading\">\r\n {{ 'Buscar' | translate }}\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!searchonlyonebutton\">\r\n <button mat-button type=\"button\" color=\"warn\" (click)=\"cancelSearch()\" *ngIf=\"enabledcancelsearch\">\r\n <mat-icon class=\"fs-20\">close</mat-icon>\r\n </button>\r\n <button mat-button type=\"submit\" color=\"primary\" [disabled]=\"formSearch.invalid || loading\">\r\n <mat-icon class=\"fs-20\">search</mat-icon>\r\n </button>\r\n \r\n <ng-container *ngFor=\"let b of searchbuttons\">\r\n <button mat-button type=\"button\" color=\"primary\" [disabled]=\"formSearch.invalid || loading\" (click)=\"b.method()\">\r\n <mat-icon *ngIf=\"b.icon\" class=\"fs-20\">{{b.icon | translate}}</mat-icon> {{b.label | translate}}\r\n </button>\r\n </ng-container>\r\n \r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n\r\n <fieldset *ngIf=\"!showPagebar\"><legend [innerHTML]=\"pagebarTitle | translate\"></legend></fieldset>\r\n <section class=\"loading-bar\"><mat-progress-bar color=\"primary\" mode=\"indeterminate\" *ngIf=\"loading\"></mat-progress-bar></section>\r\n\r\n <div id=\"auto-refresh\" *ngIf=\"autorefresh > 0\">\r\n <i class=\"material-icons\" matTooltip=\"{{ 'AutoRefresh' | translate }} {{ autorefresh }} seg\" matTooltipPosition=\"left\">access_time</i>\r\n </div>\r\n\r\n <table class=\"table table-hover\" [ngStyle]=\"{ 'min-height.px': tableHeight }\" [ngClass]=\"{ 'loading': loading, 'clickaccess': enabledclickaccess }\" *ngIf=\"data != null\">\r\n <thead>\r\n <tr>\r\n <th style=\"width: 5%;\" *ngIf=\"enabledclassicons && data?.length > 0 && data[0]?.Icon != null\"></th>\r\n\r\n <ng-container *ngFor=\"let col of colunasHeaders; let i = index\">\r\n <th *ngIf=\"colunasWidth[i] == ''\" [class]=\"'col_' + col.toLowerCase()\" [ngClass]=\"{ 'text-center': colunasType[i] == 'check', 'align-right': colunasType[i].startsWith('n') }\">{{ col | translate }}</th>\r\n <th *ngIf=\"colunasWidth[i] != ''\" [ngStyle]=\"{ 'width': colunasWidth[i] }\" [ngClass]=\"{ 'text-center': colunasType[i] == 'check', 'align-right': colunasType[i].startsWith('n') }\">{{ col | translate }}</th>\r\n </ng-container>\r\n\r\n <th class=\"actions align-right buttons\" *ngIf=\"(templateurl != '') || (buttons != null && buttons.length > 0) || enableddetail || enabledview || ((disabledcol == '') && enablededit && hasPermissionEdit) || ((disabledcol == '') && enableddelete && hasPermissionDelete)\">\r\n <button mat-icon-button type=\"button\"[matTooltip]=\"newlabel | translate\" matTooltipPosition=\"left\" (click)=\"add()\" *ngIf=\"!showPagebar && enablednew && hasPermissionNew\">\r\n <mat-icon>add_circle_outline</mat-icon>\r\n </button>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody class=\"grid-content\">\r\n <tr *ngFor=\"let mod of data\" [ngClass]=\"{ 'default-color': !enabledclassicons }\" [class]=\"mod.Class\" (click)=\"access(mod)\">\r\n <td *ngIf=\"enabledclassicons && mod?.Icon != null\">\r\n <ng-container *ngFor=\"let icon of icons\">\r\n <i class=\"material-icons\" [matTooltip]=\"icon.Tooltip | translate\" *ngIf=\"icon.Name == mod.Icon\" [ngClass]=\"{ 'icone-secundario': icon.Principal == false }\">{{icon.Icon}}</i>\r\n </ng-container>\r\n </td>\r\n\r\n <ng-container *ngFor=\"let col of colunasItens; let i = index\">\r\n <td *ngIf=\"mod[col] == null || mod[col] == undefined\"></td>\r\n <ng-container [ngSwitch]=\"colunasType[i]\" *ngIf=\"mod[col] != null && mod[col] != undefined\">\r\n <ng-container *ngSwitchCase=\"'label'\">\r\n <td *ngIf=\"mod[col] !== true && mod[col] !== false && mod[col] !== 0 && mod[col] !== '0'\" [innerHTML]=\"(mod[col] | translate) || ''\"></td>\r\n <td *ngIf=\"mod[col] === true\"><mat-icon>check_box</mat-icon></td>\r\n <td *ngIf=\"mod[col] === false\"><mat-icon>check_box_outline_blank</mat-icon></td>\r\n <td *ngIf=\"mod[col] === 0 || mod[col] === '0'\">0</td>\r\n </ng-container>\r\n\r\n <td nowrap *ngSwitchCase=\"'date'\" [innerHTML]=\"mod[col] | date:'shortDate'\"></td>\r\n <td nowrap *ngSwitchCase=\"'datetime'\">{{ mod[col] | date:'shortDate' }} {{ mod[col] | date:'mediumTime' }}</td>\r\n <td nowrap *ngSwitchCase=\"'monthyear'\" [innerHTML]=\"mod[col] | date:'MM/yyyy'\"></td>\r\n <td nowrap *ngSwitchCase=\"'n0'\" [class]=\"'align-right ' + (mod[col] < 0 ? 'text-red' : '')\">{{ mod[col] | number:'1.0-0' }}</td>\r\n <td nowrap *ngSwitchCase=\"'n2'\" [class]=\"'align-right ' + (mod[col] < 0 ? 'text-red' : '')\">{{ mod[col] | number:'1.2-2' }}</td>\r\n <td nowrap *ngSwitchCase=\"'n4'\" [class]=\"'align-right ' + (mod[col] < 0 ? 'text-red' : '')\">{{ mod[col] | number:'1.4-4' }}</td>\r\n <td nowrap *ngSwitchCase=\"'n6'\" [class]=\"'align-right ' + (mod[col] < 0 ? 'text-red' : '')\">{{ mod[col] | number:'1.6-6' }}</td>\r\n <td nowrap *ngSwitchCase=\"'n9'\" [class]=\"'align-right ' + (mod[col] < 0 ? 'text-red' : '')\">{{ mod[col] | number:'1.9-9' }}</td>\r\n <td nowrap *ngSwitchCase=\"'n12'\" [class]=\"'align-right ' + (mod[col] < 0 ? 'text-red' : '')\">{{ mod[col] | number:'1.12-12' }}</td>\r\n \r\n <td *ngSwitchCase=\"'check'\" class=\"text-center\">\r\n <ng-container *ngIf=\"mod[col] != null && (mod[col] === true || mod[col] == 1 || mod[col].toLowerCase() == 's'); then checked; else unchecked\"></ng-container>\r\n <ng-template #checked><mat-icon>check_box</mat-icon></ng-template>\r\n <ng-template #unchecked><mat-icon>check_box_outline_blank</mat-icon></ng-template>\r\n </td>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"enabledclickaccess\">\r\n <td class=\"td-actions clickaccess\">\r\n <button mat-icon-button type=\"button\" (click)=\"access(mod)\" *ngIf=\"enabledview\">\r\n <mat-icon>{{accessicon || 'arrow_forward'}}</mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!enabledclickaccess\">\r\n <td class=\"td-actions\" *ngIf=\"(templateurl != '') || (buttons != null && buttons.length > 0) || (mod.Download != null) || enableddetail || (mod?.Info != null) || enabledview || ((disabledcol == '' || mod[disabledcol] === true) && enablededit && hasPermissionEdit) || ((disabledcol == '' || mod[disabledcol] === true) && enableddelete && hasPermissionDelete)\">\r\n\r\n <a mat-icon-button href=\"{{ templateurl.replace('{id}', mod.Id) }}\" target=\"_blank\" [matTooltip]=\"'Abrir' | translate\" *ngIf=\"templateurl != ''\">\r\n <mat-icon>visibility</mat-icon>\r\n </a>\r\n\r\n <ng-container *ngFor=\"let b of buttons\">\r\n <button mat-icon-button type=\"button\" [matTooltip]=\"b.label | translate\" (click)=\"b.modalComponent != null ? openCustomModal(b.modalComponent, b.widthModalComponent, mod) : b.api != null ? eventButton(mod, b.api, b.method, b.confirm) : navigateTo(b.navigateTo, b.passId, mod.Id)\" *ngIf=\"b.showOnlyClass == null || b.showOnlyClass == mod.Class\" [disabled]=\"b.disabledField && mod[b.disabledField] === true\">\r\n <mat-icon>{{b.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n\r\n <button mat-icon-button type=\"button\" [matTooltip]=\"'Download' | translate\" (click)=\"download(mod.Download)\" *ngIf=\"mod.Download != null\">\r\n <mat-icon>file_download</mat-icon>\r\n </button>\r\n \r\n <button mat-icon-button type=\"button\" [matTooltip]=\"'Detalhe' | translate\" (click)=\"detail(mod)\" *ngIf=\"enableddetail\">\r\n <mat-icon>list</mat-icon>\r\n </button>\r\n \r\n <button mat-icon-button type=\"button\" [matTooltip]=\"'Informacao' | translate\" (click)=\"info(mod?.Info)\" *ngIf=\"mod?.Info != null\" [disabled]=\"mod?.Info == ''\">\r\n <mat-icon>info</mat-icon>\r\n </button>\r\n \r\n <!-- <button mat-icon-button type=\"button\" [matTooltip]=\"'Visualizar' | translate\" (click)=\"view(mod)\" *ngIf=\"enabledview\">\r\n <mat-icon>visibility</mat-icon>\r\n </button>\r\n \r\n <button mat-icon-button type=\"button\" [matTooltip]=\"'Editar' | translate\" (click)=\"edit(mod)\" *ngIf=\"(disabledcol == '' || mod[disabledcol] === true) && enablededit && hasPermissionEdit\">\r\n <mat-icon>edit</mat-icon>\r\n </button> -->\r\n \r\n <button mat-icon-button type=\"button\" [matTooltip]=\"'Excluir' | translate\" (click)=\"delete(mod)\" *ngIf=\"(disabledcol == '' || mod[disabledcol] === true) && enableddelete && hasPermissionDelete\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n\r\n <button mat-icon-button type=\"button\" [matTooltip]=\"'Acessar' | translate\" (click)=\"edit(mod)\" *ngIf=\"((disabledcol == '' || mod[disabledcol] === true) && enablededit && hasPermissionEdit) || enabledview\">\r\n <mat-icon>arrow_forward</mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <span class=\"blank-table\" *ngIf=\"data != null && data.length == 0\">{{\"NenhumItemEncontrado\" | translate}}</span>\r\n\r\n <info-paginator #paginator [hidden]=\"!paged || (data != null && data.length == 0)\" [size]=\"size\" (change)=\"changePage($event)\" ></info-paginator>\r\n </div>\r\n</div>\r\n\r\n<div class=\"block\" *ngIf=\"loading\"></div>\r\n<info-alert [messages]=\"messages\"></info-alert>",
|
|
832
|
+
template: "<info-pagebar *ngIf=\"showPagebar\" icon=\"work\" [pagetitle]=\"pagebarTitle\" [description]=\"description\">\r\n <button mat-button type=\"button\" *ngIf=\"backurl != null && backurl != ''\" color=\"primary\" (click)=\"back()\">\r\n <mat-icon class=\"fs-20\">chevron_left</mat-icon>{{\"Voltar\" | translate}}\r\n </button>\r\n\r\n <ng-container *ngFor=\"let b of pagebarbuttons\">\r\n <button type=\"button\" mat-button color=\"primary\" (click)=\"b.modal == null ? navigateTo(b.url, false, null) : openCustomModal(b.modal, b.modalwidth, null)\">\r\n <mat-icon *ngIf=\"b.icon != 'chevron_right'\" class=\"fs-20\">{{ b.icon }}</mat-icon>\r\n {{ b.label | translate }}\r\n </button>\r\n </ng-container>\r\n\r\n <button mat-button type=\"button\" *ngIf=\"searchmodel != null && !enabledSearch\" color=\"primary\" (click)=\"enabledSearch = !enabledSearch\">\r\n <mat-icon class=\"fs-20\">search</mat-icon> {{ \"Pesquisar\" | translate}}\r\n </button>\r\n <button mat-button type=\"button\" *ngIf=\"enablednew && hasPermissionNew\" color=\"primary\" (click)=\"add()\">\r\n <mat-icon class=\"fs-20\">add</mat-icon> {{ newlabel | translate}}\r\n </button>\r\n</info-pagebar>\r\n\r\n<div [ngClass]=\"{ 'table-full': fullarea }\">\r\n <div class=\"table-responsive white\">\r\n <div class=\"table-title grid-search\" [ngStyle]=\"{ 'padding': (enabledSearch ? 10 : 0) + 'px 20px' }\">\r\n <form autocomplete=\"off\" #formSearch=\"ngForm\" (ngSubmit)=\"search()\">\r\n <div *ngIf=\"enabledSearch\" class=\"search-container row\">\r\n <div class=\"col-md-{{(searchbuttons || []).length == 0 ? '10' : '9' }}\">\r\n <div class=\"row\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"col-md-{{(searchbuttons || []).length == 0 ? '2' : '3' }} align-right\" *ngIf=\"searchmodel != null\">\r\n <div class=\"search-buttons \">\r\n <ng-container *ngIf=\"searchonlyonebutton\">\r\n <button mat-button type=\"submit\" color=\"primary\" [disabled]=\"formSearch.invalid || loading\">\r\n {{ 'Buscar' | translate }}\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!searchonlyonebutton\">\r\n <button mat-button type=\"button\" color=\"warn\" (click)=\"cancelSearch()\" *ngIf=\"enabledcancelsearch\">\r\n <mat-icon class=\"fs-20\">close</mat-icon>\r\n </button>\r\n <button mat-button type=\"submit\" color=\"primary\" [disabled]=\"formSearch.invalid || loading\">\r\n <mat-icon class=\"fs-20\">search</mat-icon>\r\n </button>\r\n \r\n <ng-container *ngFor=\"let b of searchbuttons\">\r\n <button mat-button type=\"button\" color=\"primary\" [disabled]=\"formSearch.invalid || loading\" (click)=\"b.method()\">\r\n <mat-icon *ngIf=\"b.icon\" class=\"fs-20\">{{b.icon | translate}}</mat-icon> {{b.label | translate}}\r\n </button>\r\n </ng-container>\r\n \r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n\r\n <fieldset *ngIf=\"!showPagebar\"><legend [innerHTML]=\"pagebarTitle | translate\"></legend></fieldset>\r\n <section class=\"loading-bar\"><mat-progress-bar color=\"primary\" mode=\"indeterminate\" *ngIf=\"loading\"></mat-progress-bar></section>\r\n\r\n <div id=\"auto-refresh\" *ngIf=\"autorefresh > 0\">\r\n <i class=\"material-icons\" matTooltip=\"{{ 'AutoRefresh' | translate }} {{ autorefresh }} seg\" matTooltipPosition=\"left\">access_time</i>\r\n </div>\r\n\r\n <table class=\"table table-hover\" [ngStyle]=\"{ 'min-height.px': tableHeight }\" [ngClass]=\"{ 'loading': loading, 'clickaccess': enabledclickaccess }\" *ngIf=\"data != null\">\r\n <thead>\r\n <tr>\r\n <th style=\"width: 5%;\" *ngIf=\"enabledclassicons && data?.length > 0 && data[0]?.Icon != null\"></th>\r\n\r\n <ng-container *ngFor=\"let col of colunasHeaders; let i = index\">\r\n <th *ngIf=\"colunasWidth[i] == ''\" [class]=\"'col_' + col.toLowerCase()\" [ngClass]=\"{ 'text-center': colunasType[i] == 'check', 'align-right': colunasType[i].startsWith('n') }\">{{ col | translate }}</th>\r\n <th *ngIf=\"colunasWidth[i] != ''\" [ngStyle]=\"{ 'width': colunasWidth[i] }\" [ngClass]=\"{ 'text-center': colunasType[i] == 'check', 'align-right': colunasType[i].startsWith('n') }\">{{ col | translate }}</th>\r\n </ng-container>\r\n\r\n <th class=\"actions align-right buttons\" *ngIf=\"(templateurl != '') || (buttons != null && buttons.length > 0) || enableddetail || enabledview || ((disabledcol == '') && enablededit && hasPermissionEdit) || ((disabledcol == '') && enableddelete && hasPermissionDelete)\">\r\n <button mat-icon-button type=\"button\"[matTooltip]=\"newlabel | translate\" matTooltipPosition=\"left\" (click)=\"add()\" *ngIf=\"!showPagebar && enablednew && hasPermissionNew\">\r\n <mat-icon>add_circle_outline</mat-icon>\r\n </button>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody class=\"grid-content\">\r\n <tr *ngFor=\"let mod of data\" [ngClass]=\"{ 'default-color': !enabledclassicons }\" [class]=\"mod.Class\" (click)=\"access(mod)\">\r\n <td *ngIf=\"enabledclassicons && mod?.Icon != null\">\r\n <ng-container *ngFor=\"let icon of icons\">\r\n <i class=\"material-icons\" [matTooltip]=\"icon.Tooltip | translate\" *ngIf=\"icon.Name == mod.Icon\" [ngClass]=\"{ 'icone-secundario': icon.Principal == false }\">{{icon.Icon}}</i>\r\n </ng-container>\r\n </td>\r\n\r\n <ng-container *ngFor=\"let col of colunasItens; let i = index\">\r\n <td *ngIf=\"mod[col] == null || mod[col] == undefined\"></td>\r\n <ng-container [ngSwitch]=\"colunasType[i]\" *ngIf=\"mod[col] != null && mod[col] != undefined\">\r\n <ng-container *ngSwitchCase=\"'label'\">\r\n <td *ngIf=\"mod[col] !== true && mod[col] !== false && mod[col] !== 0 && mod[col] !== '0'\" >\r\n <label [outerHTML]=\"(mod[col] | translate:colunasTranslate[i]) || ''\"></label>\r\n <p *ngIf=\"i == 0 && mod.Badge != null && mod.Badge != undefined\">{{ mod.Badge | translate:colunasTranslate[i] }}</p>\r\n </td>\r\n <td *ngIf=\"mod[col] === true\"><mat-icon>check_box</mat-icon></td>\r\n <td *ngIf=\"mod[col] === false\"><mat-icon>check_box_outline_blank</mat-icon></td>\r\n <td *ngIf=\"mod[col] === 0 || mod[col] === '0'\">0</td>\r\n </ng-container>\r\n\r\n <td nowrap *ngSwitchCase=\"'date'\" [innerHTML]=\"mod[col] | date:'shortDate'\"></td>\r\n <td nowrap *ngSwitchCase=\"'datetime'\">{{ mod[col] | date:'shortDate' }} {{ mod[col] | date:'mediumTime' }}</td>\r\n <td nowrap *ngSwitchCase=\"'monthyear'\" [innerHTML]=\"mod[col] | date:'MM/yyyy'\"></td>\r\n <td nowrap *ngSwitchCase=\"'n0'\" [class]=\"'align-right ' + (mod[col] < 0 ? 'text-red' : '')\">{{ mod[col] | number:'1.0-0' }}</td>\r\n <td nowrap *ngSwitchCase=\"'n2'\" [class]=\"'align-right ' + (mod[col] < 0 ? 'text-red' : '')\">{{ mod[col] | number:'1.2-2' }}</td>\r\n <td nowrap *ngSwitchCase=\"'n4'\" [class]=\"'align-right ' + (mod[col] < 0 ? 'text-red' : '')\">{{ mod[col] | number:'1.4-4' }}</td>\r\n <td nowrap *ngSwitchCase=\"'n6'\" [class]=\"'align-right ' + (mod[col] < 0 ? 'text-red' : '')\">{{ mod[col] | number:'1.6-6' }}</td>\r\n <td nowrap *ngSwitchCase=\"'n9'\" [class]=\"'align-right ' + (mod[col] < 0 ? 'text-red' : '')\">{{ mod[col] | number:'1.9-9' }}</td>\r\n <td nowrap *ngSwitchCase=\"'n12'\" [class]=\"'align-right ' + (mod[col] < 0 ? 'text-red' : '')\">{{ mod[col] | number:'1.12-12' }}</td>\r\n \r\n <td *ngSwitchCase=\"'check'\" class=\"text-center\">\r\n <ng-container *ngIf=\"mod[col] != null && (mod[col] === true || mod[col] == 1 || mod[col].toLowerCase() == 's'); then checked; else unchecked\"></ng-container>\r\n <ng-template #checked><mat-icon>check_box</mat-icon></ng-template>\r\n <ng-template #unchecked><mat-icon>check_box_outline_blank</mat-icon></ng-template>\r\n </td>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"enabledclickaccess\">\r\n <td class=\"td-actions clickaccess\">\r\n <button mat-icon-button type=\"button\" (click)=\"access(mod)\" *ngIf=\"enabledview\">\r\n <mat-icon>{{accessicon || 'arrow_forward'}}</mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!enabledclickaccess\">\r\n <td class=\"td-actions\" *ngIf=\"(templateurl != '') || (buttons != null && buttons.length > 0) || (mod.Download != null) || enableddetail || (mod?.Info != null) || enabledview || ((disabledcol == '' || mod[disabledcol] === true) && enablededit && hasPermissionEdit) || ((disabledcol == '' || mod[disabledcol] === true) && enableddelete && hasPermissionDelete)\">\r\n\r\n <a mat-icon-button href=\"{{ templateurl.replace('{id}', mod.Id) }}\" target=\"_blank\" [matTooltip]=\"'Abrir' | translate\" *ngIf=\"templateurl != ''\">\r\n <mat-icon>visibility</mat-icon>\r\n </a>\r\n\r\n <ng-container *ngFor=\"let b of buttons\">\r\n <button mat-icon-button type=\"button\" [matTooltip]=\"b.label | translate\" (click)=\"b.modalComponent != null ? openCustomModal(b.modalComponent, b.widthModalComponent, mod) : b.api != null ? eventButton(mod, b.api, b.method, b.confirm) : navigateTo(b.navigateTo, b.passId, mod.Id)\" *ngIf=\"b.showOnlyClass == null || b.showOnlyClass == mod.Class\" [disabled]=\"b.disabledField && mod[b.disabledField] === true\">\r\n <mat-icon>{{b.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n\r\n <button mat-icon-button type=\"button\" [matTooltip]=\"'Download' | translate\" (click)=\"download(mod.Download)\" *ngIf=\"mod.Download != null\">\r\n <mat-icon>file_download</mat-icon>\r\n </button>\r\n \r\n <button mat-icon-button type=\"button\" [matTooltip]=\"'Detalhe' | translate\" (click)=\"detail(mod)\" *ngIf=\"enableddetail\">\r\n <mat-icon>list</mat-icon>\r\n </button>\r\n \r\n <button mat-icon-button type=\"button\" [matTooltip]=\"'Informacao' | translate\" (click)=\"info(mod?.Info)\" *ngIf=\"mod?.Info != null\" [disabled]=\"mod?.Info == ''\">\r\n <mat-icon>info</mat-icon>\r\n </button>\r\n \r\n <!-- <button mat-icon-button type=\"button\" [matTooltip]=\"'Visualizar' | translate\" (click)=\"view(mod)\" *ngIf=\"enabledview\">\r\n <mat-icon>visibility</mat-icon>\r\n </button>\r\n \r\n <button mat-icon-button type=\"button\" [matTooltip]=\"'Editar' | translate\" (click)=\"edit(mod)\" *ngIf=\"(disabledcol == '' || mod[disabledcol] === true) && enablededit && hasPermissionEdit\">\r\n <mat-icon>edit</mat-icon>\r\n </button> -->\r\n \r\n <button mat-icon-button type=\"button\" [matTooltip]=\"'Excluir' | translate\" (click)=\"delete(mod)\" *ngIf=\"(disabledcol == '' || mod[disabledcol] === true) && enableddelete && hasPermissionDelete\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n\r\n <button mat-icon-button type=\"button\" [matTooltip]=\"'Acessar' | translate\" (click)=\"edit(mod)\" *ngIf=\"((disabledcol == '' || mod[disabledcol] === true) && enablededit && hasPermissionEdit) || enabledview\">\r\n <mat-icon>arrow_forward</mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <span class=\"blank-table\" *ngIf=\"data != null && data.length == 0\">{{\"NenhumItemEncontrado\" | translate}}</span>\r\n\r\n <info-paginator #paginator [hidden]=\"!paged || (data != null && data.length == 0)\" [size]=\"size\" (change)=\"changePage($event)\" ></info-paginator>\r\n </div>\r\n</div>\r\n\r\n<div class=\"block\" *ngIf=\"loading\"></div>\r\n<info-alert [messages]=\"messages\"></info-alert>",
|
|
827
833
|
providers: [InfoFormPropModel],
|
|
828
|
-
styles: [":host{display:block;min-height:200px;position:relative}:host #auto-refresh{background:transparent;margin:0;padding:0;position:absolute;right:0;top:8px}:host #auto-refresh i{cursor:default;font-size:18px}:host .table-title{background:#fcfcfc}:host .table-title .mat-icon-button{height:25px;line-height:25px;text-align:center;width:25px}:host .table-title .mat-icon-button .mat-icon{font-size:18px}:host .table-title :hover{transition:color .2s}:host .search-container{margin-top:10px;position:relative}:host .title-grid{font-size:.8rem;font-weight:700;padding-top:8px;text-transform:uppercase}:host table thead .col_dia,:host table thead .col_id{width:80px}:host table thead .col_moeda{width:90px}:host table thead .col_data,:host table thead .col_datacotacao,:host table thead .col_dataposicao,:host table thead .col_referencia{width:125px}:host table thead .col_conta,:host table thead .col_identificador{width:250px}:host table thead .col_cliente,:host table thead .col_descricao,:host table thead .col_nome{width:400px}:host table tbody .icone-secundario{font-size:12px}:host.uxc3 div.table-responsive .table-title{padding:0!important}:host.uxc3 div.table-responsive .table thead{background:transparent}:host.uxc3 div.table-responsive .table thead th{border-top:none;font-size:10px;padding:10px 5px 5px;text-transform:capitalize}:host.uxc3 div.table-responsive .table thead th.actions{border-bottom-width:0}:host.uxc3 div.table-responsive .table thead th:after{display:none}:host.uxc3 div.table-responsive .table tbody tr{background:#f9f9f9;height:40px}:host.uxc3 div.table-responsive .table tbody tr td{cursor:default;font-size:13px;font-weight:600;transition:color .2s ease-in-out}:host.uxc3 div.table-responsive .table tbody tr td.td-actions{border-bottom:none;margin-top:1px;padding-bottom:6px;padding-top:7px}:host.uxc3 div.table-responsive .table tbody tr td mat-icon{height:17px;line-height:17px}:host.uxc3 div.table-responsive .table tbody tr:hover{background:#f9f9f9}:host.uxc3 div.table-responsive .table tbody tr:nth-child(2n):hover,:host.uxc3 div.table-responsive .table tbody tr:nth-child(2n):hover .td-actions{background:#fff}"]
|
|
834
|
+
styles: [":host{display:block;min-height:200px;position:relative}:host #auto-refresh{background:transparent;margin:0;padding:0;position:absolute;right:0;top:8px}:host #auto-refresh i{cursor:default;font-size:18px}:host .table-title{background:#fcfcfc}:host .table-title .mat-icon-button{height:25px;line-height:25px;text-align:center;width:25px}:host .table-title .mat-icon-button .mat-icon{font-size:18px}:host .table-title :hover{transition:color .2s}:host .search-container{margin-top:10px;position:relative}:host .title-grid{font-size:.8rem;font-weight:700;padding-top:8px;text-transform:uppercase}:host table thead .col_dia,:host table thead .col_id{width:80px}:host table thead .col_moeda{width:90px}:host table thead .col_data,:host table thead .col_datacotacao,:host table thead .col_dataposicao,:host table thead .col_referencia{width:125px}:host table thead .col_conta,:host table thead .col_identificador{width:250px}:host table thead .col_cliente,:host table thead .col_descricao,:host table thead .col_nome{width:400px}:host table tbody .icone-secundario{font-size:12px}:host.uxc3 div.table-responsive .table-title{padding:0!important}:host.uxc3 div.table-responsive .table thead{background:transparent}:host.uxc3 div.table-responsive .table thead th{border-top:none;font-size:10px;padding:10px 5px 5px;text-transform:capitalize}:host.uxc3 div.table-responsive .table thead th.actions{border-bottom-width:0}:host.uxc3 div.table-responsive .table thead th:after{display:none}:host.uxc3 div.table-responsive .table tbody tr{background:#f9f9f9;height:40px}:host.uxc3 div.table-responsive .table tbody tr td{cursor:default;font-size:13px;font-weight:600;transition:color .2s ease-in-out}:host.uxc3 div.table-responsive .table tbody tr td.td-actions{border-bottom:none;margin-top:1px;padding-bottom:6px;padding-top:7px}:host.uxc3 div.table-responsive .table tbody tr td mat-icon{height:17px;line-height:17px}:host.uxc3 div.table-responsive .table tbody tr td p{border:1px solid;border-radius:3px;display:inline-block;font-size:8px;margin:0 0 0 5px;padding:2px 5px;position:relative;text-transform:uppercase;top:-2px}:host.uxc3 div.table-responsive .table tbody tr:hover{background:#f9f9f9}:host.uxc3 div.table-responsive .table tbody tr:nth-child(2n):hover,:host.uxc3 div.table-responsive .table tbody tr:nth-child(2n):hover .td-actions{background:#fff}"]
|
|
829
835
|
}] }
|
|
830
836
|
];
|
|
831
837
|
/** @nocollapse */
|
|
@@ -1046,6 +1052,8 @@ if (false) {
|
|
|
1046
1052
|
/** @type {?} */
|
|
1047
1053
|
InfoGridComponent.prototype.colunasWidth;
|
|
1048
1054
|
/** @type {?} */
|
|
1055
|
+
InfoGridComponent.prototype.colunasTranslate;
|
|
1056
|
+
/** @type {?} */
|
|
1049
1057
|
InfoGridComponent.prototype.currentUrl;
|
|
1050
1058
|
/** @type {?} */
|
|
1051
1059
|
InfoGridComponent.prototype.url;
|
|
@@ -1117,4 +1125,4 @@ if (false) {
|
|
|
1117
1125
|
*/
|
|
1118
1126
|
InfoGridComponent.prototype._element;
|
|
1119
1127
|
}
|
|
1120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiRDovZGV2L0luZm8gVXRpbGl0aWVzL0luZm8gTGlicmFyeSAtIEFuZ3VsYXIvcHJvamVjdHMvaW5mby1saWJyYXJ5L3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL2dyaWQvZ3JpZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBaUIsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEssT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1B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Q3hDLHNDQUE0Qjs7Ozs7SUFDNUIscUNBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBBZnRlclZpZXdJbml0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgVmlld0NoaWxkLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29udGVudENoaWxkcmVuLCBSZW5kZXJlcjIsIEVsZW1lbnRSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBJbmZvRGF0YVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kYXRhLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgSW5mb0Zvcm1Qcm9wTW9kZWwgfSBmcm9tIFwiLi4vLi4vbW9kZWwvZm9ybS1wcm9wLm1vZGVsXCI7XHJcbmltcG9ydCB7IEluZm9QYWdpbmF0b3JDb21wb25lbnQgfSBmcm9tIFwiLi4vcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgSW5mb0RpYWxvZ01vZGFsIH0gZnJvbSBcIi4uLy4uL2xheW91dHMvZGlhbG9nL2RpYWxvZy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBJbmZvQXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvYXV0aGVudGljYXRpb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBJbmZvVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEluZm9EaWFsb2dCdXR0b25zIH0gZnJvbSBcIi4uLy4uL2VudW0vZGlhbG9nLWJ1dHRvbnMuZW51bVwiO1xyXG5pbXBvcnQgeyBJbmZvTW9kYWxBY3Rpb24gfSBmcm9tIFwiLi4vLi4vZW51bS9tb2RhbC1hY3Rpb24uZW51bVwiO1xyXG5pbXBvcnQgeyBJbmZvUGFnZUFjdGlvbiB9IGZyb20gXCIuLi8uLi9lbnVtL3BhZ2UtYWN0aW9uLmVudW1cIjtcclxuaW1wb3J0IHsgSW5mb1BhZ2ViYXJCdXR0b25Nb2RlbCB9IGZyb20gXCIuLi8uLi9tb2RlbC9wYWdlYmFyLWJ1dHRvbnMubW9kZWxcIjtcclxuaW1wb3J0IHsgSW5mb0dyaWRCdXR0b25Nb2RlbCB9IGZyb20gXCIuLi8uLi9tb2RlbC9ncmlkLWJ1dHRvbi5tb2RlbFwiO1xyXG5pbXBvcnQgeyBJbmZvTGFzdFNlYXJjaE1vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVsL2xhc3Qtc2VhcmNoLm1vZGVsXCI7XHJcbmltcG9ydCB7IEluZm9NZXRob2RHcmlkQnV0dG9uTW9kZWwgfSBmcm9tIFwiLi4vLi4vbW9kZWwvbWV0aG9kLWdyaWQtYnV0dG9uLm1vZGVsXCI7XHJcbmltcG9ydCB7IE5nTW9kZWwsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEluZm9QbGF0Zm9ybU1vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVsL3BsYXRmb3JtLm1vZGVsXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnaW5mby1ncmlkJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnZ3JpZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnZ3JpZC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbSW5mb0Zvcm1Qcm9wTW9kZWxdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbmZvR3JpZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gICAgQElucHV0KCkgcGFnZXRpdGxlID0gJyc7XHJcbiAgICBASW5wdXQoKSBwcmVmaXh0aXRsZSA9ICcnO1xyXG4gICAgQElucHV0KCkgZGVzY3JpcHRpb24gPSAnJztcclxuICAgIEBJbnB1dCgpIHBhZ2ViYXJidXR0b25zOiBJbmZvUGFnZWJhckJ1dHRvbk1vZGVsW10gPSBbXTtcclxuICAgIEBJbnB1dCgpIGZ1bGxhcmVhID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KCkgYXBpOiBhbnkgPSBudWxsO1xyXG4gICAgQElucHV0KCkgbWV0aG9kOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgQElucHV0KCkgZm9ybTogYW55ID0gbnVsbDtcclxuICAgIEBJbnB1dCgpIHdpZHRoOiBudW1iZXIgPSA4MDA7XHJcbiAgICBASW5wdXQoKSBwYXJlbnQ6IGFueSA9IG51bGw7XHJcbiAgICBASW5wdXQoKSBhcGlkb3dubG9hZDogYW55ID0gbnVsbDtcclxuICAgIEBJbnB1dCgpIG1ldGhvZGRvd25sb2FkOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAgIEBJbnB1dCgpIGJhY2t1cmwgPSAnJztcclxuICAgIEBJbnB1dCgpIG5ld3VybCA9ICcnO1xyXG4gICAgQElucHV0KCkgbmV3bGFiZWwgPSAnTm92byc7XHJcbiAgICBASW5wdXQoKSBlZGl0dXJsID0gJyc7XHJcbiAgICBASW5wdXQoKSB2aWV3dXJsID0gJyc7XHJcbiAgICBASW5wdXQoKSB0ZW1wbGF0ZXVybCA9ICcnO1xyXG5cclxuICAgIEBJbnB1dCgpIHBhZ2VkID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBzaXplID0gMTU7XHJcbiAgICBASW5wdXQoKSBhdXRvcmVmcmVzaCA9IDA7XHJcblxyXG4gICAgQElucHV0KCkgZW5hYmxlZG5ldyA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBlbmFibGVkZWRpdCA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBlbmFibGVkZGVsZXRlID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGVuYWJsZWR2aWV3ID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGVuYWJsZWRjYW5jZWxzZWFyY2ggPSB0cnVlO1xyXG4gICAgQElucHV0KCkgZW5hYmxlZGRldGFpbCA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgZW5hYmxlZGNsYXNzaWNvbnMgPSB0cnVlO1xyXG4gICAgQElucHV0KCkgZW5hYmxlZGNsaWNrYWNjZXNzID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBlbmFibGVkY2xpY2tldmVudCA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpIHNlYXJjaG9wZW5lZCA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgc2VhcmNob25seW9uZWJ1dHRvbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgZGlzYWJsZXNlYXJjaGxhc3QgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHN0YXRpY3RpdGxlID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBkaXNhYmxlZGNvbCA9ICcnO1xyXG4gICAgQElucHV0KCkgYWNjZXNzaWNvbiA9ICdhcnJvd19mb3J3YXJkJztcclxuXHJcbiAgICBASW5wdXQoKSBsb2Fkb25pbml0ID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGRhdGE6IGFueVtdO1xyXG4gICAgQElucHV0KCkgc2VhcmNobW9kZWw6IGFueSA9IG51bGw7XHJcblxyXG4gICAgQE91dHB1dCgpIG9uYmVmb3Jlc2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIG9ubG9hZGNvbXBsZXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIG9uY2xvc2Vtb2RhbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBvbm5ldyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBvbmVkaXQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgb252aWV3ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIG9uZGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIGN1c3RvbWRlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBASW5wdXQoKSBkeW5hbWljY29sczogc3RyaW5nID0gbnVsbDtcclxuICAgIEBJbnB1dCgpIGJ1dHRvbnM6IEluZm9HcmlkQnV0dG9uTW9kZWxbXSA9IFtdO1xyXG4gICAgQElucHV0KCkgc2VhcmNoYnV0dG9uczogSW5mb01ldGhvZEdyaWRCdXR0b25Nb2RlbFtdID0gW107XHJcblxyXG4gICAgQElucHV0KCkgc2hvd21lc3NhZ2VlcnJvciA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgZGVmYXVsdG5ld29iamVjdDogYW55ID0gbnVsbDtcclxuICAgIFxyXG4gICAgQENvbnRlbnRDaGlsZHJlbihOZ01vZGVsKSBmb3JtTW9kZWw6IFF1ZXJ5TGlzdDxOZ01vZGVsPjtcclxuICAgIEBWaWV3Q2hpbGQoTmdGb3JtLCB7IHN0YXRpYzogZmFsc2UgfSkgZm9ybVNlYXJjaDogTmdGb3JtO1xyXG4gICAgXHJcbiAgICBtZXNzYWdlczogU3RyaW5nW10gPSBbXTtcclxuICAgIHJlc3VsdFRpdGxlID0gJyc7XHJcbiAgICBlbmFibGVkU2VhcmNoID0gZmFsc2U7XHJcbiAgICBzZWFyY2hNb2RlbFJlc2V0OiBhbnkgPSBudWxsO1xyXG5cclxuICAgIHNob3dQYWdlYmFyID0gZmFsc2U7XHJcbiAgICBoYXNQZXJtaXNzaW9uTmV3ID0gZmFsc2U7XHJcbiAgICBoYXNQZXJtaXNzaW9uRWRpdCA9IGZhbHNlO1xyXG4gICAgaGFzUGVybWlzc2lvbkRlbGV0ZSA9IGZhbHNlO1xyXG5cclxuICAgIHRhYmxlSGVpZ2h0ID0gMDtcclxuICAgIGxvYWRpbmcgPSBmYWxzZTtcclxuICAgIHBhZ2ViYXJUaXRsZSA9ICcnO1xyXG4gICAgaWNvbnM6IGFueVtdID0gW107XHJcbiAgICBjb2x1bmFzSXRlbnMgPSBbXTtcclxuICAgIGNvbHVuYXNIZWFkZXJzID0gW107XHJcbiAgICBjb2x1bmFzVHlwZSA9IFtdO1xyXG4gICAgY29sdW5hc1dpZHRoID0gW107XHJcbiAgICBjdXJyZW50VXJsOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgdXJsOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ3BhZ2luYXRvcicsIHsgc3RhdGljOiBmYWxzZSB9KSBwYWdpbmF0b3I6IEluZm9QYWdpbmF0b3JDb21wb25lbnQ7XHJcbiAgICBAT3V0cHV0KCkgcGFyZW50SWRVcmxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgcGFyZW50SWRVcmxWYWx1ZTogbnVtYmVyID0gbnVsbDtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgcGFyZW50SWRVcmwoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50SWRVcmxWYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgcGFyZW50SWRVcmwodmFsdWUpIHtcclxuICAgICAgICB0aGlzLnBhcmVudElkVXJsVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLnBhcmVudElkVXJsQ2hhbmdlLmVtaXQodGhpcy5wYXJlbnRJZFVybFZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBfY29sczogc3RyaW5nID0gJyc7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGNvbHMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHM7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGNvbHModmFsdWUpIHtcclxuICAgICAgICB0aGlzLl9jb2xzID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5zZXRDb2x1bW5zKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZGlhbG9nOiBJbmZvRGlhbG9nTW9kYWwsIFxyXG4gICAgICAgICAgICAgICAgcHVibGljIF9wbGF0Zm9ybTogSW5mb1BsYXRmb3JtTW9kZWwsXHJcbiAgICAgICAgICAgICAgICBwdWJsaWMgbW9kYWw6IE1hdERpYWxvZywgXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9wcm9wOiBJbmZvRm9ybVByb3BNb2RlbCwgXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9kYXRhQWNjZXNzU2VydmljZTogSW5mb0RhdGFTZXJ2aWNlLCBcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfYXV0aGVudGljYXRpb25TZXJ2aWNlOiBJbmZvQXV0aGVudGljYXRpb25TZXJ2aWNlLCBcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIF90cmFuc2xhdGU6IEluZm9UcmFuc2xhdGVTZXJ2aWNlLCBcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2xhc3RTZWFyY2g6IEluZm9MYXN0U2VhcmNoTW9kZWwsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLCBcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2VsZW1lbnQ6IEVsZW1lbnRSZWYpIHsgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMudXJsID0gKHRoaXMuX2FjdGl2YXRlZFJvdXRlLnNuYXBzaG90LmRhdGFbJ1VSTCddIHx8IHRoaXMuX3JvdXRlci51cmwpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCAndXhjJyArIHRoaXMuX3BsYXRmb3JtLkNvbmZpZy51eCk7XHJcbiAgICAgICAgdGhpcy5zZXRQYWdlYmFyVGl0bGUoKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNobW9kZWwgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tZXRob2QgPT0gbnVsbClcclxuICAgICAgICAgICAgICAgIHRoaXMubWV0aG9kID0gJ1NlYXJjaCc7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaE1vZGVsUmVzZXQgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnNlYXJjaG1vZGVsKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMucGFyZW50ICE9IG51bGwgJiYgKHRoaXMubWV0aG9kID09IG51bGwgfHwgdGhpcy5tZXRob2QgPT0gJycpKVxyXG4gICAgICAgICAgICB0aGlzLm1ldGhvZCA9ICdHZXRCeVBhcmVudElkJztcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVzZWFyY2hsYXN0ICYmIHRoaXMuX2F1dGhlbnRpY2F0aW9uU2VydmljZS5nZXRVcmxHZW5lcmljYSh0aGlzLl9sYXN0U2VhcmNoLnVybCkgPT0gdGhpcy5fYXV0aGVudGljYXRpb25TZXJ2aWNlLmdldFVybEdlbmVyaWNhKHRoaXMudXJsKSkge1xyXG4gICAgICAgICAgICB0aGlzLmVuYWJsZWRTZWFyY2ggPSB0aGlzLl9sYXN0U2VhcmNoLmVuYWJsZWRTZWFyY2g7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBpZiAodGhpcy5zZWFyY2htb2RlbCAhPSBudWxsICYmIHRoaXMuX2xhc3RTZWFyY2gubW9kZWwgIT0gbnVsbClcclxuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5zZWFyY2htb2RlbCwgdGhpcy5fbGFzdFNlYXJjaC5tb2RlbCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5zZWFyY2hvcGVuZWQpXHJcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlZFNlYXJjaCA9IHRydWU7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmF1dG9yZWZyZXNoID4gMClcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50VXJsID0gbG9jYXRpb24uaHJlZjtcclxuXHJcbiAgICAgICAgdGhpcy5fcHJvcC5hcGkgPSB0aGlzLmFwaTtcclxuICAgICAgICB0aGlzLl9wcm9wLm1vZGFsQ29tcG9uZW50ID0gdGhpcy5mb3JtO1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICB0aGlzLnNob3dQYWdlYmFyID0gdGhpcy5wYWdldGl0bGUgIT0gJycgfHwgdGhpcy5wcmVmaXh0aXRsZSAhPSAnJztcclxuICAgICAgICBcclxuICAgICAgICBpZiAoIXRoaXMuZnVsbGFyZWEgJiYgdGhpcy5fcGxhdGZvcm0uQ29uZmlnLnV4IDw9IDIpXHJcbiAgICAgICAgICAgIHRoaXMuZnVsbGFyZWEgPSB0aGlzLnNob3dQYWdlYmFyO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5zZWFyY2htb2RlbCAmJiB0aGlzLmZvcm1Nb2RlbC5sZW5ndGggPiAwICYmIHRoaXMuZm9ybVNlYXJjaClcclxuICAgICAgICAgICAgdGhpcy5mb3JtTW9kZWwudG9BcnJheSgpLmZvckVhY2gobW9kZWwgPT4gdGhpcy5mb3JtU2VhcmNoLmFkZENvbnRyb2wobW9kZWwpKTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVzZWFyY2hsYXN0ICYmIHRoaXMucGFnZWQgJiYgdGhpcy5fYXV0aGVudGljYXRpb25TZXJ2aWNlLmdldFVybEdlbmVyaWNhKHRoaXMuX2xhc3RTZWFyY2gudXJsKSA9PSB0aGlzLl9hdXRoZW50aWNhdGlvblNlcnZpY2UuZ2V0VXJsR2VuZXJpY2EodGhpcy51cmwpKVxyXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRvci5pbmRleCA9IHRoaXMuX2xhc3RTZWFyY2guaW5kZXg7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmR5bmFtaWNjb2xzID09IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRDb2x1bW5zKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0UGVybWlzc2lvbigpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMubG9hZG9uaW5pdClcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0RGF0YSgpO1xyXG5cclxuICAgICAgICAgICAgZWxzZSB0aGlzLmhpZGVMb2FkKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbHNlIHRoaXMuX2RhdGFBY2Nlc3NTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5nZXQodGhpcy5hcGksIHRoaXMuZHluYW1pY2NvbHMpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbHMgPSByLmRhdGE7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldENvbHVtbnMoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0UGVybWlzc2lvbigpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvYWRvbmluaXQpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXREYXRhKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgZWxzZSB0aGlzLmhpZGVMb2FkKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5lbmFibGVkY2xpY2tldmVudClcclxuICAgICAgICAgICAgdGhpcy5lbmFibGVkY2xpY2thY2Nlc3MgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldENvbHVtbnMoKSB7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNvbHMgPT0gJycpXHJcbiAgICAgICAgICAgIGFsZXJ0KCdOZW5odW1hIGNvbHVuYSBpbmZvcm1hZGEnKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY29scyAhPSAnJykge1xyXG4gICAgICAgICAgICB0aGlzLmNvbHVuYXNJdGVucyA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLmNvbHVuYXNIZWFkZXJzID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuY29sdW5hc1R5cGUgPSBbXTtcclxuICAgICAgICAgICAgdGhpcy5jb2x1bmFzV2lkdGggPSBbXTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIHRoaXMuY29scy5zcGxpdCgnLCcpLmZvckVhY2gocmVnaXN0cm8gPT4ge1xyXG5cclxuICAgICAgICAgICAgICAgIGxldCBjb2x1bW46IHN0cmluZyA9IHJlZ2lzdHJvO1xyXG4gICAgICAgICAgICAgICAgbGV0IGhlYWRlcjogc3RyaW5nID0gcmVnaXN0cm87XHJcbiAgICAgICAgICAgICAgICBsZXQgdHlwZTogc3RyaW5nID0gJyc7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2lkdGg6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChoZWFkZXIuaW5kZXhPZignOicpID4gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZGFkb3MgPSByZWdpc3Ryby5zcGxpdCgnOicpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbiA9IGRhZG9zWzBdO1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlciA9IGRhZG9zWzFdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmIChoZWFkZXIuaW5kZXhPZignPScpID4gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgcGFydHMgPSBoZWFkZXIuc3BsaXQoJz0nKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbHVtbiA9PSBoZWFkZXIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbiA9IHBhcnRzWzBdO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXIgPSBwYXJ0c1swXTtcclxuICAgICAgICAgICAgICAgICAgICB0eXBlID0gcGFydHNbMV07XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IGF1eCA9IHR5cGUgPT0gJycgPyBoZWFkZXIgOiB0eXBlO1xyXG4gICAgICAgICAgICAgICAgaWYgKGF1eC5pbmRleE9mKCcqJykgPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBoZWFkZXJJbmZvID0gYXV4LnNwbGl0KCcqJyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlID09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb2x1bW4gPT0gaGVhZGVyKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uID0gaGVhZGVySW5mb1swXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlciA9IGhlYWRlckluZm9bMF07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB0eXBlID0gaGVhZGVySW5mb1swXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGggPSBoZWFkZXJJbmZvWzFdO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAod2lkdGguaW5kZXhPZignJScpIDwgMCAmJiB3aWR0aC5pbmRleE9mKCdweCcpIDwgMClcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGggKz0gJ3B4JztcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbHVuYXNJdGVucy5wdXNoKGNvbHVtbik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbHVuYXNIZWFkZXJzLnB1c2goaGVhZGVyKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29sdW5hc1R5cGUucHVzaCh0eXBlID09ICcnID8gJ2xhYmVsJyA6IHR5cGUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb2x1bmFzV2lkdGgucHVzaCh3aWR0aCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXRQYWdlYmFyVGl0bGUoKSB7XHJcbiAgICAgICAgbGV0IGF1eCA9ICcnO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5wcmVmaXh0aXRsZSAhPSAnJylcclxuICAgICAgICAgICAgYXV4ID0gdGhpcy5fdHJhbnNsYXRlLnRyYW5zbGF0ZSh0aGlzLnByZWZpeHRpdGxlKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMucmVzdWx0VGl0bGUgIT0gJycpXHJcbiAgICAgICAgICAgIGF1eCArPSAodGhpcy5wcmVmaXh0aXRsZSAhPSAnJyA/ICcgLyAnIDogJycpICsgdGhpcy5fdHJhbnNsYXRlLnRyYW5zbGF0ZSh0aGlzLnJlc3VsdFRpdGxlKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMucGFnZXRpdGxlICE9ICcnKVxyXG4gICAgICAgICAgICBhdXggKz0gKHRoaXMucmVzdWx0VGl0bGUgIT0gJycgfHwgdGhpcy5wcmVmaXh0aXRsZSAhPSAnJyA/ICcgLyAnIDogJycpICsgdGhpcy5fdHJhbnNsYXRlLnRyYW5zbGF0ZSh0aGlzLnBhZ2V0aXRsZSk7XHJcblxyXG4gICAgICAgIHRoaXMucGFnZWJhclRpdGxlID0gYXV4O1xyXG4gICAgfVxyXG5cclxuICAgIG5hdmlnYXRlVG8odXJsOiBzdHJpbmcsIHBhc3NJZDogYm9vbGVhbiwgaWQ/OiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgaWYgKHBhc3NJZCkge1xyXG4gICAgICAgICAgICBpZiAodXJsLmluZGV4T2YoXCI6aWRcIikgPiAtMSlcclxuICAgICAgICAgICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKHVybC5yZXBsYWNlKCc6aWQnLCBpZCkpO1xyXG4gICAgICAgICAgICBlbHNlIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbdXJsLCBpZF0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZWxzZSB0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCh1cmwpO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5DdXN0b21Nb2RhbChtb2RhbENvbXBvbmVudDogYW55LCB3aWR0aDogTnVtYmVyLCBtb2RlbDogYW55ID0gbnVsbCkge1xyXG5cclxuICAgICAgICB0aGlzLl9wcm9wLnNldChJbmZvUGFnZUFjdGlvbi5Ob25lLCBtb2RlbCk7XHJcbiAgICAgICAgdGhpcy5vcGVuTW9kYWwobW9kYWxDb21wb25lbnQsIHdpZHRoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXREYXRhKCkge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZXMgPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuYXBpID09IG51bGwgfHwgdGhpcy5hcGkgPT0gJycpIHtcclxuICAgICAgICAgICAgdGhpcy5oaWRlTG9hZCgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWFyY2htb2RlbCAhPSBudWxsKVxyXG4gICAgICAgICAgICB0aGlzLmdldFNlYXJjaCgpO1xyXG5cclxuICAgICAgICBlbHNlIGlmICh0aGlzLnBhZ2VkKVxyXG4gICAgICAgICAgICB0aGlzLmdldFBhZ2VkKCk7XHJcblxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMucGFyZW50ID09IG51bGwpXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0QWxsKCk7XHJcblxyXG4gICAgICAgIGVsc2UgdGhpcy5nZXRCeVBhcmVudElkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QWxsKCk6IGFueSB7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaG1vZGVsID09IG51bGwpXHJcbiAgICAgICAgICAgIHRoaXMuX2RhdGFBY2Nlc3NTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAuZ2V0KHRoaXMuYXBpLCB0aGlzLm1ldGhvZClcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUociA9PiB0aGlzLmdldERhdGFSZXR1cm4ocikpO1xyXG5cclxuICAgICAgICBlbHNlIHRoaXMuX2RhdGFBY2Nlc3NTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuYXBpLCB0aGlzLnNlYXJjaG1vZGVsLCB0aGlzLm1ldGhvZClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShyID0+IHRoaXMuZ2V0RGF0YVJldHVybihyKSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UGFnZWQoKTogYW55IHtcclxuXHJcbiAgICAgICAgbGV0IHBhcmFtcyA9IHRoaXMucGFyZW50ID09IG51bGwgPyBcIlwiIDogXCJpZD1cIiArIHRoaXMucGFyZW50ICsgXCImXCI7XHJcbiAgICAgICAgcGFyYW1zICs9ICdpbmRleD0nICsgdGhpcy5wYWdpbmF0b3IuaW5kZXggKyAnJnNpemU9JyArIHRoaXMuc2l6ZTtcclxuXHJcbiAgICAgICAgdGhpcy5fZGF0YUFjY2Vzc1NlcnZpY2VcclxuICAgICAgICAgICAgLmdldCh0aGlzLmFwaSwgdGhpcy5tZXRob2QsIHBhcmFtcylcclxuICAgICAgICAgICAgLnN1YnNjcmliZShyID0+IHRoaXMuZ2V0RGF0YVJldHVybihyLCB0cnVlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U2VhcmNoKCk6IGFueSB7XHJcbiAgICAgICAgdGhpcy5vbmJlZm9yZXNlYXJjaC5lbWl0KCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnBhZ2VkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNobW9kZWwuSW5kZXggPSB0aGlzLnBhZ2luYXRvci5pbmRleDtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2htb2RlbC5TaXplID0gdGhpcy5zaXplO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fZGF0YUFjY2Vzc1NlcnZpY2VcclxuICAgICAgICAgICAgLnBvc3QodGhpcy5hcGksIHRoaXMuc2VhcmNobW9kZWwsIHRoaXMubWV0aG9kKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHIgPT4gdGhpcy5nZXREYXRhUmV0dXJuKHIsIHRoaXMucGFnZWQpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRCeVBhcmVudElkKCk6IGFueSB7XHJcbiAgICAgICAgdGhpcy5fZGF0YUFjY2Vzc1NlcnZpY2VcclxuICAgICAgICAgICAgLmdldCh0aGlzLmFwaSwgdGhpcy5tZXRob2QsICdpZD0nICsgdGhpcy5wYXJlbnQpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUociA9PiB0aGlzLmdldERhdGFSZXR1cm4ociwgZmFsc2UpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXREYXRhUmV0dXJuKHJlc3VsdDogYW55LCByZWZyZXNoUGFnaW5hdG9yOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgICAgICBcclxuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZXNlYXJjaGxhc3QpIHtcclxuICAgICAgICAgICAgdGhpcy5fbGFzdFNlYXJjaC51cmwgPSB0aGlzLl9hdXRoZW50aWNhdGlvblNlcnZpY2UuZ2V0VXJsR2VuZXJpY2EodGhpcy51cmwpO1xyXG4gICAgICAgICAgICB0aGlzLl9sYXN0U2VhcmNoLmVuYWJsZWRTZWFyY2ggPSB0aGlzLmVuYWJsZWRTZWFyY2g7XHJcbiAgICAgICAgICAgIHRoaXMuX2xhc3RTZWFyY2gubW9kZWwgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnNlYXJjaG1vZGVsKTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnBhZ2VkKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fbGFzdFNlYXJjaC5pbmRleCA9IHRoaXMucGFnaW5hdG9yLmluZGV4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IHJlc3VsdC5kYXRhO1xyXG5cclxuICAgICAgICAgICAgaWYgKCF0aGlzLnN0YXRpY3RpdGxlICYmIHJlc3VsdC5uYW1lICE9IG51bGwpXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlc3VsdFRpdGxlID0gdGhpcy5fdHJhbnNsYXRlLnRyYW5zbGF0ZShyZXN1bHQubmFtZSk7XHJcblxyXG4gICAgICAgICAgICBpZiAocmVzdWx0LmRlc2NyaXB0aW9uICE9IG51bGwpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gcmVzdWx0LmRlc2NyaXB0aW9uO1xyXG5cclxuICAgICAgICAgICAgaWYgKHJlc3VsdC5wYXJlbnRJZCAhPSBudWxsKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5wYXJlbnRJZFVybCA9IHJlc3VsdC5wYXJlbnRJZDtcclxuXHJcbiAgICAgICAgICAgIGlmIChyZWZyZXNoUGFnaW5hdG9yKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0b3IucmVmcmVzaChyZXN1bHQudG90YWwpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuYXV0b3JlZnJlc2ggPiAwICYmIHRoaXMuY3VycmVudFVybCA9PSBsb2NhdGlvbi5ocmVmKVxyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IHRoaXMuZ2V0RGF0YSgpOyB9LCB0aGlzLmF1dG9yZWZyZXNoICogMTAwMCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmZpbGxJY29ucygpO1xyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGEgPSBbXTtcclxuICAgICAgICAgICAgaWYodGhpcy5zaG93bWVzc2FnZWVycm9yKSB0aGlzLm1lc3NhZ2VzID0gcmVzdWx0Lm1lc3NhZ2VzO1xyXG4gICAgICAgIH0gXHJcblxyXG4gICAgICAgIHRoaXMuaGlkZUxvYWQoKTtcclxuICAgICAgICB0aGlzLm9ubG9hZGNvbXBsZXRlLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBjaGFuZ2VQYWdlKGluZGV4OiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMucGFnaW5hdG9yLmluZGV4ID0gaW5kZXg7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaG1vZGVsICE9IG51bGwpXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0U2VhcmNoKCk7XHJcblxyXG4gICAgICAgIGVsc2UgdGhpcy5nZXRQYWdlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbmNlbFNlYXJjaCgpIHtcclxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuc2VhcmNobW9kZWwsIHRoaXMuc2VhcmNoTW9kZWxSZXNldCk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5zZWFyY2hvcGVuZWQpXHJcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlZFNlYXJjaCA9IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLnNlYXJjaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlYXJjaCgpIHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmICh0aGlzLnBhZ2VkKVxyXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRvci5pbmRleCA9IDA7XHJcblxyXG4gICAgICAgIHRoaXMuZ2V0RGF0YSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZCgpIHtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3Byb3Auc2V0KEluZm9QYWdlQWN0aW9uLk5ldywgdGhpcy5kZWZhdWx0bmV3b2JqZWN0KTtcclxuICAgICAgICAgICAgdGhpcy5vcGVuTW9kYWwoKTtcclxuXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubmV3dXJsID09IG51bGwgfHwgdGhpcy5uZXd1cmwgPT0gJycpXHJcbiAgICAgICAgICAgICAgICB0aGlzLm5ld3VybCA9IHRoaXMudXJsO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5uZXd1cmwgKz0gJy9ub3ZvJztcclxuICAgICAgICAgICAgdGhpcy5uZXd1cmwgPSB0aGlzLm5ld3VybC5yZXBsYWNlKCcvLycsICcvJyk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLm5ld3VybCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm9ubmV3LmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBkZXRhaWwobW9kZWw6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3Byb3Auc2V0KEluZm9QYWdlQWN0aW9uLlNlYXJjaCwgbW9kZWwpO1xyXG4gICAgICAgIHRoaXMub3Blbk1vZGFsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYWNjZXNzKG1vZGVsOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5lbmFibGVkY2xpY2thY2Nlc3Mpe1xyXG4gICAgICAgICAgICBpZiAodGhpcy5lbmFibGVkY2xpY2tldmVudClcclxuICAgICAgICAgICAgICAgIHRoaXMub252aWV3LmVtaXQobW9kZWwpO1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy5lZGl0KG1vZGVsKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdmlldyhtb2RlbDogYW55KTogdm9pZCB7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmZvcm0gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLl9wcm9wLnNldChJbmZvUGFnZUFjdGlvbi5WaWV3LCBtb2RlbCk7XHJcbiAgICAgICAgICAgIHRoaXMub3Blbk1vZGFsKCk7XHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnZpZXd1cmwgPT0gbnVsbCB8fCB0aGlzLnZpZXd1cmwgPT0gJycpXHJcbiAgICAgICAgICAgICAgICB0aGlzLnZpZXd1cmwgPSB0aGlzLnVybDtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB0aGlzLnZpZXd1cmwgKz0gJy8nICsgbW9kZWwuSWQgKyAodGhpcy5lbmFibGVkY2xpY2thY2Nlc3MgPyAnJyA6ICcvdmlzdWFsaXphcicpO1xyXG4gICAgICAgICAgICB0aGlzLnZpZXd1cmwgPSB0aGlzLnZpZXd1cmwucmVwbGFjZSgnLy8nLCAnLycpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy52aWV3dXJsKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMub252aWV3LmVtaXQobW9kZWwpO1xyXG4gICAgfVxyXG5cclxuICAgIGVkaXQobW9kZWw6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmhhc1Blcm1pc3Npb25FZGl0KSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm0gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fcHJvcC5zZXQoSW5mb1BhZ2VBY3Rpb24uRWRpdCwgbW9kZWwpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuTW9kYWwoKTtcclxuXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5lZGl0dXJsID09IG51bGwgfHwgdGhpcy5lZGl0dXJsID09ICcnKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWRpdHVybCA9IHRoaXMudXJsO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuZWRpdHVybCA9IHRoaXMuZWRpdHVybC5yZXBsYWNlKCcvLycsICcvJyk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFt0aGlzLmVkaXR1cmwsIG1vZGVsLklkXSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMub25lZGl0LmVtaXQobW9kZWwpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm0gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fcHJvcC5zZXQoSW5mb1BhZ2VBY3Rpb24uVmlldywgbW9kZWwpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuTW9kYWwoKTtcclxuICAgIFxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudmlld3VybCA9PSBudWxsIHx8IHRoaXMudmlld3VybCA9PSAnJylcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXd1cmwgPSB0aGlzLnVybDtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIHRoaXMudmlld3VybCArPSAnLycgKyBtb2RlbC5JZCArICh0aGlzLmVuYWJsZWRjbGlja2FjY2VzcyA/ICcnIDogJy92aXN1YWxpemFyJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZpZXd1cmwgPSB0aGlzLnZpZXd1cmwucmVwbGFjZSgnLy8nLCAnLycpO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnZpZXd1cmwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICBcclxuICAgICAgICAgICAgdGhpcy5vbnZpZXcuZW1pdChtb2RlbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZShtb2RlbDogYW55KSB7XHJcbiAgICAgICAgaWYodGhpcy5jdXN0b21kZWxldGUub2JzZXJ2ZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5jdXN0b21kZWxldGUuZW1pdChtb2RlbCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2RpYWxvZy5ZZXNPck5vKCdNZW5zYWdlbUV4Y2x1aXInKS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyLmJ1dHRvbiA9PSBJbmZvRGlhbG9nQnV0dG9ucy5ZZXMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0YUFjY2Vzc1NlcnZpY2UuZGVsZXRlKHRoaXMuYXBpLCBtb2RlbC5JZCkuc3Vic2NyaWJlKGQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25kZWxldGUuZW1pdChkKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGQuc3VjY2VzcylcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXREYXRhKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZUxvYWQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc2hvd21lc3NhZ2VlcnJvcikgdGhpcy5tZXNzYWdlcyA9IGQubWVzc2FnZXM7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBmaWxsSWNvbnMoKSB7XHJcbiAgICAgICAgdGhpcy5pY29ucyA9IFtdO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5kYXRhID09IG51bGwpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgdGhpcy5kYXRhLmZvckVhY2gocmV0ID0+IHtcclxuXHJcbiAgICAgICAgICAgIGxldCBpdGVtID0gcmV0WydJY29uJ107XHJcbiAgICAgICAgICAgIGlmIChpdGVtID09IG51bGwpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgICAgICBpZiAoaXRlbS5pbmRleE9mKCd8JykgPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHJldG9ybm8gPSBpdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCd8JylcclxuICAgICAgICAgICAgICAgICAgICAubWFwKGljb25lID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpY29uZS5pbmRleE9mKCc6JykgPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhZG9zID0gaWNvbmUuc3BsaXQoJzonKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IE5hbWU6IGl0ZW0sIEljb246IGRhZG9zWzBdLCBUb29sdGlwOiBkYWRvc1sxXSwgUHJpbmNpcGFsOiB0cnVlIH07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgcmV0dXJuIHsgTmFtZTogaXRlbSwgSWNvbjogaWNvbmUsIFRvb2x0aXA6ICcnLCBQcmluY2lwYWw6IHRydWUgfTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgfSkuZmlsdGVyKGEgPT4gYS5JY29uICE9IG51bGwgJiYgYS5JY29uICE9ICcnKTtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgaW5kZXggPSAwO1xyXG4gICAgICAgICAgICAgICAgcmV0b3Juby5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmljb25zLmZpbmQoYSA9PiBhLk5hbWUgPT0gZWxlbWVudC5OYW1lICYmIGEuSWNvbiA9PSBlbGVtZW50Lkljb24pID09IG51bGwpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LlByaW5jaXBhbCA9IGluZGV4ID09IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaWNvbnMucHVzaChlbGVtZW50KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGluZGV4Kys7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGxldCBlbGVtZW50OiBhbnkgPSBbXTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5pbmRleE9mKCc6JykgPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBkYWRvcyA9IGl0ZW0uc3BsaXQoJzonKTtcclxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0geyBOYW1lOiBpdGVtLCBJY29uOiBkYWRvc1swXSwgVG9vbHRpcDogZGFkb3NbMV0sIFByaW5jaXBhbDogdHJ1ZSB9O1xyXG5cclxuICAgICAgICAgICAgICAgIH0gZWxzZSBlbGVtZW50ID0geyBOYW1lOiBpdGVtLCBJY29uOiBpdGVtLCBUb29sdGlwOiBcIlwiLCBQcmluY2lwYWw6IHRydWUgfTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pY29ucy5maW5kKGEgPT4gYS5OYW1lID09IGVsZW1lbnQuTmFtZSkgPT0gbnVsbClcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmljb25zLnB1c2goZWxlbWVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpbmZvKHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5fZGlhbG9nLmFsZXJ0KHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBiYWNrKCkge1xyXG4gICAgICAgIHRoaXMubmF2aWdhdGVUbyh0aGlzLmJhY2t1cmwgKyAodGhpcy5wYXJlbnRJZFVybCA9PSBudWxsID8gXCJcIiA6IFwiL1wiICsgdGhpcy5wYXJlbnRJZFVybCksIGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuTW9kYWwobW9kYWxDb21wb25lbnQ6IGFueSA9IHRoaXMuZm9ybSwgd2lkdGg6IE51bWJlciA9IHRoaXMud2lkdGgpIHtcclxuXHJcbiAgICAgICAgbGV0IHJlZiA9IHRoaXMubW9kYWwub3Blbihtb2RhbENvbXBvbmVudCwge1xyXG4gICAgICAgICAgICBkYXRhOiB0aGlzLl9wcm9wLFxyXG4gICAgICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgICAgICAgIHdpZHRoOiB3aWR0aCArICdweCdcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyOiBJbmZvRm9ybVByb3BNb2RlbCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAociA9PSBudWxsKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICAgICAgaWYgKHIubW9kYWxBY3Rpb24gPT0gSW5mb01vZGFsQWN0aW9uLlNhdmUpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldERhdGEoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMub25jbG9zZW1vZGFsLmVtaXQocik7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJlZi5rZXlkb3duRXZlbnRzKCkuc3Vic2NyaWJlKChyKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5sb2FkaW5nICYmIChyLmtleSA9PSBcIkVzY2FwZVwiIHx8IHIua2V5ID09IFwiRXNjXCIgfHwgci5rZXkgPT0gXCIyN1wiKSlcclxuICAgICAgICAgICAgICAgIHJlZi5jbG9zZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGhpZGVMb2FkKCkge1xyXG4gICAgICAgIHRoaXMuc2V0UGFnZWJhclRpdGxlKCk7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UGVybWlzc2lvbigpIHtcclxuICAgICAgICB0aGlzLmhhc1Blcm1pc3Npb25OZXcgPSB0aGlzLl9hdXRoZW50aWNhdGlvblNlcnZpY2UuaGFzUGVybWlzc2lvbih0aGlzLnVybCwgJ25ldycpO1xyXG4gICAgICAgIHRoaXMuaGFzUGVybWlzc2lvbkVkaXQgPSB0aGlzLl9hdXRoZW50aWNhdGlvblNlcnZpY2UuaGFzUGVybWlzc2lvbih0aGlzLnVybCwgJ2VkaXQnKTtcclxuICAgICAgICB0aGlzLmhhc1Blcm1pc3Npb25EZWxldGUgPSB0aGlzLl9hdXRoZW50aWNhdGlvblNlcnZpY2UuaGFzUGVybWlzc2lvbih0aGlzLnVybCwgJ3JlbW92ZScpO1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBkb3dubG9hZChhcnF1aXZvSWQ6IGFueSkge1xyXG4gICAgICAgIGlmICh0aGlzLmFwaWRvd25sb2FkID09IG51bGwpXHJcbiAgICAgICAgICAgIGFsZXJ0KCdBUEkgRG93bmxvYWQgZXN0w6EgbnVsbCcpO1xyXG5cclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX2RhdGFBY2Nlc3NTZXJ2aWNlLmdldCh0aGlzLmFwaWRvd25sb2FkLCAodGhpcy5tZXRob2Rkb3dubG9hZCAhPSBudWxsID8gdGhpcy5tZXRob2Rkb3dubG9hZCA6ICdHZXQnKSwgXCJpZD1cIiArIGFycXVpdm9JZCkuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VzID0gci5tZXNzYWdlcztcclxuXHJcbiAgICAgICAgICAgIGlmIChyLnN1Y2Nlc3MgJiYgci5kYXRhICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHZhciBiaW5hcnlTdHJpbmcgPSB3aW5kb3cuYXRvYihyLmRhdGEuQ29udGV1ZG8pO1xyXG4gICAgICAgICAgICAgICAgdmFyIGJpbmFyeUxlbiA9IGJpbmFyeVN0cmluZy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICB2YXIgYnl0ZXMgPSBuZXcgVWludDhBcnJheShiaW5hcnlMZW4pO1xyXG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBiaW5hcnlMZW47IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgdmFyIGFzY2lpID0gYmluYXJ5U3RyaW5nLmNoYXJDb2RlQXQoaSk7XHJcbiAgICAgICAgICAgICAgICAgICBieXRlc1tpXSA9IGFzY2lpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHZhciBibG9iID0gbmV3IEJsb2IoW2J5dGVzXSk7XHJcbiAgICAgICAgICAgICAgICBpZiAod2luZG93Lm5hdmlnYXRvciAmJiB3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZU9yT3BlbkJsb2IpIHtcclxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZU9yT3BlbkJsb2IoYmxvYiwgci5kYXRhLk5vbWUpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZmlsZVVSTCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGVsZW1lbnRBOiBIVE1MQW5jaG9yRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKSBhcyBIVE1MQW5jaG9yRWxlbWVudDtcclxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50QS5ocmVmID0gZmlsZVVSTDtcclxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50QS5kb3dubG9hZCA9IHIuZGF0YS5Ob21lO1xyXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudEEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRBLmNsaWNrKCk7ICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVsZW1lbnRBKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBldmVudEJ1dHRvbihtb2RlbDogYW55LCBhcGk6IGFueSwgbWV0aG9kOiBzdHJpbmcsIGNvbmZpcm06IGJvb2xlYW4gPSB0cnVlKSB7XHJcbiAgICAgICAgaWYgKGNvbmZpcm0pIHtcclxuICAgICAgICAgICAgdGhpcy5fZGlhbG9nXHJcbiAgICAgICAgICAgICAgICAuWWVzT3JObygnTWVuc2FnZW1Db25maXJtYXInKVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShyZXQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXQuYnV0dG9uID09IEluZm9EaWFsb2dCdXR0b25zLlllcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhQWNjZXNzU2VydmljZS5wb3N0KGFwaSwgbW9kZWwsIG1ldGhvZCkuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHIuc3VjY2VzcylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldERhdGEoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYodGhpcy5zaG93bWVzc2FnZWVycm9yKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZXMgPSByLm1lc3NhZ2VzO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLl9kYXRhQWNjZXNzU2VydmljZS5wb3N0KGFwaSwgbW9kZWwsIG1ldGhvZCkuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHIuc3VjY2VzcylcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldERhdGEoKTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYodGhpcy5zaG93bWVzc2FnZWVycm9yKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZXMgPSByLm1lc3NhZ2VzO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iXX0=
|
|
1128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiRDovZGV2L0luZm8gVXRpbGl0aWVzL0luZm8gTGlicmFyeSAtIEFuZ3VsYXIvcHJvamVjdHMvaW5mby1saWJyYXJ5L3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL2dyaWQvZ3JpZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBaUIsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEssT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1B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MEI7O0lBQzFCLGdDQUFtQjs7SUFFbkIsc0NBQTZFOztJQUM3RSw4Q0FBaUQ7O0lBRWpELDZDQUFnQzs7SUFXaEMsa0NBQW1COzs7OztJQVdQLG9DQUFnQzs7SUFDaEMsc0NBQW1DOztJQUNuQyxrQ0FBdUI7Ozs7O0lBQ3ZCLGtDQUFnQzs7Ozs7SUFDaEMsK0NBQTJDOzs7OztJQUMzQyxvQ0FBdUI7Ozs7O0lBQ3ZCLDRDQUF1Qzs7Ozs7SUFDdkMsbURBQXlEOzs7OztJQUN6RCwrQ0FBNkM7Ozs7O0lBQzdDLHVDQUF3Qzs7Ozs7SUFDeEMsd0NBQXdDOzs7OztJQUN4QyxzQ0FBNEI7Ozs7O0lBQzVCLHFDQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgQWZ0ZXJWaWV3SW5pdCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIFZpZXdDaGlsZCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbnRlbnRDaGlsZHJlbiwgUmVuZGVyZXIyLCBFbGVtZW50UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSW5mb0RhdGFTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvZGF0YS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEluZm9Gb3JtUHJvcE1vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVsL2Zvcm0tcHJvcC5tb2RlbFwiO1xyXG5pbXBvcnQgeyBJbmZvUGFnaW5hdG9yQ29tcG9uZW50IH0gZnJvbSBcIi4uL3BhZ2luYXRvci9wYWdpbmF0b3IuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEluZm9EaWFsb2dNb2RhbCB9IGZyb20gXCIuLi8uLi9sYXlvdXRzL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgSW5mb0F1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2F1dGhlbnRpY2F0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgSW5mb1RyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2xhdGUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBJbmZvRGlhbG9nQnV0dG9ucyB9IGZyb20gXCIuLi8uLi9lbnVtL2RpYWxvZy1idXR0b25zLmVudW1cIjtcclxuaW1wb3J0IHsgSW5mb01vZGFsQWN0aW9uIH0gZnJvbSBcIi4uLy4uL2VudW0vbW9kYWwtYWN0aW9uLmVudW1cIjtcclxuaW1wb3J0IHsgSW5mb1BhZ2VBY3Rpb24gfSBmcm9tIFwiLi4vLi4vZW51bS9wYWdlLWFjdGlvbi5lbnVtXCI7XHJcbmltcG9ydCB7IEluZm9QYWdlYmFyQnV0dG9uTW9kZWwgfSBmcm9tIFwiLi4vLi4vbW9kZWwvcGFnZWJhci1idXR0b25zLm1vZGVsXCI7XHJcbmltcG9ydCB7IEluZm9HcmlkQnV0dG9uTW9kZWwgfSBmcm9tIFwiLi4vLi4vbW9kZWwvZ3JpZC1idXR0b24ubW9kZWxcIjtcclxuaW1wb3J0IHsgSW5mb0xhc3RTZWFyY2hNb2RlbCB9IGZyb20gXCIuLi8uLi9tb2RlbC9sYXN0LXNlYXJjaC5tb2RlbFwiO1xyXG5pbXBvcnQgeyBJbmZvTWV0aG9kR3JpZEJ1dHRvbk1vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVsL21ldGhvZC1ncmlkLWJ1dHRvbi5tb2RlbFwiO1xyXG5pbXBvcnQgeyBOZ01vZGVsLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbmZvUGxhdGZvcm1Nb2RlbCB9IGZyb20gXCIuLi8uLi9tb2RlbC9wbGF0Zm9ybS5tb2RlbFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2luZm8tZ3JpZCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJ2dyaWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJ2dyaWQuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHByb3ZpZGVyczogW0luZm9Gb3JtUHJvcE1vZGVsXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5mb0dyaWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG5cclxuICAgIEBJbnB1dCgpIHBhZ2V0aXRsZSA9ICcnO1xyXG4gICAgQElucHV0KCkgcHJlZml4dGl0bGUgPSAnJztcclxuICAgIEBJbnB1dCgpIGRlc2NyaXB0aW9uID0gJyc7XHJcbiAgICBASW5wdXQoKSBwYWdlYmFyYnV0dG9uczogSW5mb1BhZ2ViYXJCdXR0b25Nb2RlbFtdID0gW107XHJcbiAgICBASW5wdXQoKSBmdWxsYXJlYSA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpIGFwaTogYW55ID0gbnVsbDtcclxuICAgIEBJbnB1dCgpIG1ldGhvZDogc3RyaW5nID0gbnVsbDtcclxuICAgIEBJbnB1dCgpIGZvcm06IGFueSA9IG51bGw7XHJcbiAgICBASW5wdXQoKSB3aWR0aDogbnVtYmVyID0gODAwO1xyXG4gICAgQElucHV0KCkgcGFyZW50OiBhbnkgPSBudWxsO1xyXG4gICAgQElucHV0KCkgYXBpZG93bmxvYWQ6IGFueSA9IG51bGw7XHJcbiAgICBASW5wdXQoKSBtZXRob2Rkb3dubG9hZDogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgICBASW5wdXQoKSBiYWNrdXJsID0gJyc7XHJcbiAgICBASW5wdXQoKSBuZXd1cmwgPSAnJztcclxuICAgIEBJbnB1dCgpIG5ld2xhYmVsID0gJ05vdm8nO1xyXG4gICAgQElucHV0KCkgZWRpdHVybCA9ICcnO1xyXG4gICAgQElucHV0KCkgdmlld3VybCA9ICcnO1xyXG4gICAgQElucHV0KCkgdGVtcGxhdGV1cmwgPSAnJztcclxuXHJcbiAgICBASW5wdXQoKSBwYWdlZCA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgc2l6ZSA9IDE1O1xyXG4gICAgQElucHV0KCkgYXV0b3JlZnJlc2ggPSAwO1xyXG5cclxuICAgIEBJbnB1dCgpIGVuYWJsZWRuZXcgPSB0cnVlO1xyXG4gICAgQElucHV0KCkgZW5hYmxlZGVkaXQgPSB0cnVlO1xyXG4gICAgQElucHV0KCkgZW5hYmxlZGRlbGV0ZSA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBlbmFibGVkdmlldyA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBlbmFibGVkY2FuY2Vsc2VhcmNoID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGVuYWJsZWRkZXRhaWwgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGVuYWJsZWRjbGFzc2ljb25zID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGVuYWJsZWRjbGlja2FjY2VzcyA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgZW5hYmxlZGNsaWNrZXZlbnQgPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKSBzZWFyY2hvcGVuZWQgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHNlYXJjaG9ubHlvbmVidXR0b24gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGRpc2FibGVzZWFyY2hsYXN0ID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBzdGF0aWN0aXRsZSA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgZGlzYWJsZWRjb2wgPSAnJztcclxuICAgIEBJbnB1dCgpIGFjY2Vzc2ljb24gPSAnYXJyb3dfZm9yd2FyZCc7XHJcblxyXG4gICAgQElucHV0KCkgbG9hZG9uaW5pdCA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBkYXRhOiBhbnlbXTtcclxuICAgIEBJbnB1dCgpIHNlYXJjaG1vZGVsOiBhbnkgPSBudWxsO1xyXG5cclxuICAgIEBPdXRwdXQoKSBvbmJlZm9yZXNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBvbmxvYWRjb21wbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBvbmNsb3NlbW9kYWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgb25uZXcgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgb25lZGl0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIG9udmlldyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBvbmRlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBjdXN0b21kZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgQElucHV0KCkgZHluYW1pY2NvbHM6IHN0cmluZyA9IG51bGw7XHJcbiAgICBASW5wdXQoKSBidXR0b25zOiBJbmZvR3JpZEJ1dHRvbk1vZGVsW10gPSBbXTtcclxuICAgIEBJbnB1dCgpIHNlYXJjaGJ1dHRvbnM6IEluZm9NZXRob2RHcmlkQnV0dG9uTW9kZWxbXSA9IFtdO1xyXG5cclxuICAgIEBJbnB1dCgpIHNob3dtZXNzYWdlZXJyb3IgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGRlZmF1bHRuZXdvYmplY3Q6IGFueSA9IG51bGw7XHJcbiAgICBcclxuICAgIEBDb250ZW50Q2hpbGRyZW4oTmdNb2RlbCkgZm9ybU1vZGVsOiBRdWVyeUxpc3Q8TmdNb2RlbD47XHJcbiAgICBAVmlld0NoaWxkKE5nRm9ybSwgeyBzdGF0aWM6IGZhbHNlIH0pIGZvcm1TZWFyY2g6IE5nRm9ybTtcclxuICAgIFxyXG4gICAgbWVzc2FnZXM6IFN0cmluZ1tdID0gW107XHJcbiAgICByZXN1bHRUaXRsZSA9ICcnO1xyXG4gICAgZW5hYmxlZFNlYXJjaCA9IGZhbHNlO1xyXG4gICAgc2VhcmNoTW9kZWxSZXNldDogYW55ID0gbnVsbDtcclxuXHJcbiAgICBzaG93UGFnZWJhciA9IGZhbHNlO1xyXG4gICAgaGFzUGVybWlzc2lvbk5ldyA9IGZhbHNlO1xyXG4gICAgaGFzUGVybWlzc2lvbkVkaXQgPSBmYWxzZTtcclxuICAgIGhhc1Blcm1pc3Npb25EZWxldGUgPSBmYWxzZTtcclxuXHJcbiAgICB0YWJsZUhlaWdodCA9IDA7XHJcbiAgICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICBwYWdlYmFyVGl0bGUgPSAnJztcclxuICAgIGljb25zOiBhbnlbXSA9IFtdO1xyXG4gICAgY29sdW5hc0l0ZW5zID0gW107XHJcbiAgICBjb2x1bmFzSGVhZGVycyA9IFtdO1xyXG4gICAgY29sdW5hc1R5cGUgPSBbXTtcclxuICAgIGNvbHVuYXNXaWR0aCA9IFtdO1xyXG4gICAgY29sdW5hc1RyYW5zbGF0ZSA9IFtdO1xyXG4gICAgY3VycmVudFVybDogc3RyaW5nID0gbnVsbDtcclxuICAgIHVybDogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdwYWdpbmF0b3InLCB7IHN0YXRpYzogZmFsc2UgfSkgcGFnaW5hdG9yOiBJbmZvUGFnaW5hdG9yQ29tcG9uZW50O1xyXG4gICAgQE91dHB1dCgpIHBhcmVudElkVXJsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIHBhcmVudElkVXJsVmFsdWU6IG51bWJlciA9IG51bGw7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHBhcmVudElkVXJsKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBhcmVudElkVXJsVmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IHBhcmVudElkVXJsKHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5wYXJlbnRJZFVybFZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5wYXJlbnRJZFVybENoYW5nZS5lbWl0KHRoaXMucGFyZW50SWRVcmxWYWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgX2NvbHM6IHN0cmluZyA9ICcnO1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBjb2xzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jb2xzO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBjb2xzKHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5fY29scyA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuc2V0Q29sdW1ucygpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2RpYWxvZzogSW5mb0RpYWxvZ01vZGFsLCBcclxuICAgICAgICAgICAgICAgIHB1YmxpYyBfcGxhdGZvcm06IEluZm9QbGF0Zm9ybU1vZGVsLFxyXG4gICAgICAgICAgICAgICAgcHVibGljIG1vZGFsOiBNYXREaWFsb2csIFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfcHJvcDogSW5mb0Zvcm1Qcm9wTW9kZWwsIFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfZGF0YUFjY2Vzc1NlcnZpY2U6IEluZm9EYXRhU2VydmljZSwgXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2F1dGhlbnRpY2F0aW9uU2VydmljZTogSW5mb0F1dGhlbnRpY2F0aW9uU2VydmljZSwgXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBJbmZvVHJhbnNsYXRlU2VydmljZSwgXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9sYXN0U2VhcmNoOiBJbmZvTGFzdFNlYXJjaE1vZGVsLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMiwgXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9lbGVtZW50OiBFbGVtZW50UmVmKSB7IH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLnVybCA9ICh0aGlzLl9hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5kYXRhWydVUkwnXSB8fCB0aGlzLl9yb3V0ZXIudXJsKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3V4YycgKyB0aGlzLl9wbGF0Zm9ybS5Db25maWcudXgpO1xyXG4gICAgICAgIHRoaXMuc2V0UGFnZWJhclRpdGxlKCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaG1vZGVsICE9IG51bGwpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWV0aG9kID09IG51bGwpXHJcbiAgICAgICAgICAgICAgICB0aGlzLm1ldGhvZCA9ICdTZWFyY2gnO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hNb2RlbFJlc2V0ID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5zZWFyY2htb2RlbCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbHNlIGlmICh0aGlzLnBhcmVudCAhPSBudWxsICYmICh0aGlzLm1ldGhvZCA9PSBudWxsIHx8IHRoaXMubWV0aG9kID09ICcnKSlcclxuICAgICAgICAgICAgdGhpcy5tZXRob2QgPSAnR2V0QnlQYXJlbnRJZCc7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlc2VhcmNobGFzdCAmJiB0aGlzLl9hdXRoZW50aWNhdGlvblNlcnZpY2UuZ2V0VXJsR2VuZXJpY2EodGhpcy5fbGFzdFNlYXJjaC51cmwpID09IHRoaXMuX2F1dGhlbnRpY2F0aW9uU2VydmljZS5nZXRVcmxHZW5lcmljYSh0aGlzLnVybCkpIHtcclxuICAgICAgICAgICAgdGhpcy5lbmFibGVkU2VhcmNoID0gdGhpcy5fbGFzdFNlYXJjaC5lbmFibGVkU2VhcmNoO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgaWYgKHRoaXMuc2VhcmNobW9kZWwgIT0gbnVsbCAmJiB0aGlzLl9sYXN0U2VhcmNoLm1vZGVsICE9IG51bGwpXHJcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuc2VhcmNobW9kZWwsIHRoaXMuX2xhc3RTZWFyY2gubW9kZWwpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNob3BlbmVkKVxyXG4gICAgICAgICAgICB0aGlzLmVuYWJsZWRTZWFyY2ggPSB0cnVlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5hdXRvcmVmcmVzaCA+IDApXHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFVybCA9IGxvY2F0aW9uLmhyZWY7XHJcblxyXG4gICAgICAgIHRoaXMuX3Byb3AuYXBpID0gdGhpcy5hcGk7XHJcbiAgICAgICAgdGhpcy5fcHJvcC5tb2RhbENvbXBvbmVudCA9IHRoaXMuZm9ybTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgdGhpcy5zaG93UGFnZWJhciA9IHRoaXMucGFnZXRpdGxlICE9ICcnIHx8IHRoaXMucHJlZml4dGl0bGUgIT0gJyc7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKCF0aGlzLmZ1bGxhcmVhICYmIHRoaXMuX3BsYXRmb3JtLkNvbmZpZy51eCA8PSAyKVxyXG4gICAgICAgICAgICB0aGlzLmZ1bGxhcmVhID0gdGhpcy5zaG93UGFnZWJhcjtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNobW9kZWwgJiYgdGhpcy5mb3JtTW9kZWwubGVuZ3RoID4gMCAmJiB0aGlzLmZvcm1TZWFyY2gpXHJcbiAgICAgICAgICAgIHRoaXMuZm9ybU1vZGVsLnRvQXJyYXkoKS5mb3JFYWNoKG1vZGVsID0+IHRoaXMuZm9ybVNlYXJjaC5hZGRDb250cm9sKG1vZGVsKSk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlc2VhcmNobGFzdCAmJiB0aGlzLnBhZ2VkICYmIHRoaXMuX2F1dGhlbnRpY2F0aW9uU2VydmljZS5nZXRVcmxHZW5lcmljYSh0aGlzLl9sYXN0U2VhcmNoLnVybCkgPT0gdGhpcy5fYXV0aGVudGljYXRpb25TZXJ2aWNlLmdldFVybEdlbmVyaWNhKHRoaXMudXJsKSlcclxuICAgICAgICAgICAgdGhpcy5wYWdpbmF0b3IuaW5kZXggPSB0aGlzLl9sYXN0U2VhcmNoLmluZGV4O1xyXG5cclxuICAgICAgICBpZiAodGhpcy5keW5hbWljY29scyA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q29sdW1ucygpO1xyXG4gICAgICAgICAgICB0aGlzLmdldFBlcm1pc3Npb24oKTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmxvYWRvbmluaXQpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldERhdGEoKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy5oaWRlTG9hZCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZWxzZSB0aGlzLl9kYXRhQWNjZXNzU2VydmljZVxyXG4gICAgICAgICAgICAuZ2V0KHRoaXMuYXBpLCB0aGlzLmR5bmFtaWNjb2xzKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb2xzID0gci5kYXRhO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRDb2x1bW5zKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldFBlcm1pc3Npb24oKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sb2Fkb25pbml0KVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0RGF0YSgpO1xyXG5cclxuICAgICAgICAgICAgICAgIGVsc2UgdGhpcy5oaWRlTG9hZCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZW5hYmxlZGNsaWNrZXZlbnQpXHJcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlZGNsaWNrYWNjZXNzID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRDb2x1bW5zKCkge1xyXG5cclxuICAgICAgICBpZiAodGhpcy5jb2xzID09ICcnKVxyXG4gICAgICAgICAgICBhbGVydCgnTmVuaHVtYSBjb2x1bmEgaW5mb3JtYWRhJyk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNvbHMgIT0gJycpIHtcclxuICAgICAgICAgICAgdGhpcy5jb2x1bmFzSXRlbnMgPSBbXTtcclxuICAgICAgICAgICAgdGhpcy5jb2x1bmFzSGVhZGVycyA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLmNvbHVuYXNUeXBlID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuY29sdW5hc1dpZHRoID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuY29sdW5hc1RyYW5zbGF0ZSA9IFtdO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgdGhpcy5jb2xzLnNwbGl0KCcsJykuZm9yRWFjaChyZWdpc3RybyA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IHRyYW5zbGF0ZTogYm9vbGVhbiA9IHJlZ2lzdHJvLmluZGV4T2YoJyMnKSA9PSAtMTtcclxuICAgICAgICAgICAgICAgIHJlZ2lzdHJvID0gcmVnaXN0cm8ucmVwbGFjZSgvIy9nLCAnJyk7XHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IGNvbHVtbjogc3RyaW5nID0gcmVnaXN0cm87XHJcbiAgICAgICAgICAgICAgICBsZXQgaGVhZGVyOiBzdHJpbmcgPSByZWdpc3RybztcclxuICAgICAgICAgICAgICAgIGxldCB0eXBlOiBzdHJpbmcgPSAnJztcclxuICAgICAgICAgICAgICAgIGxldCB3aWR0aDogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGhlYWRlci5pbmRleE9mKCc6JykgPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBkYWRvcyA9IHJlZ2lzdHJvLnNwbGl0KCc6Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uID0gZGFkb3NbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyID0gZGFkb3NbMV07XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGhlYWRlci5pbmRleE9mKCc9JykgPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwYXJ0cyA9IGhlYWRlci5zcGxpdCgnPScpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAoY29sdW1uID09IGhlYWRlcilcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uID0gcGFydHNbMF07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlciA9IHBhcnRzWzBdO1xyXG4gICAgICAgICAgICAgICAgICAgIHR5cGUgPSBwYXJ0c1sxXTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgYXV4ID0gdHlwZSA9PSAnJyA/IGhlYWRlciA6IHR5cGU7XHJcbiAgICAgICAgICAgICAgICBpZiAoYXV4LmluZGV4T2YoJyonKSA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGhlYWRlckluZm8gPSBhdXguc3BsaXQoJyonKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gJycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbHVtbiA9PSBoZWFkZXIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW4gPSBoZWFkZXJJbmZvWzBdO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyID0gaGVhZGVySW5mb1swXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHR5cGUgPSBoZWFkZXJJbmZvWzBdO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IGhlYWRlckluZm9bMV07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh3aWR0aC5pbmRleE9mKCclJykgPCAwICYmIHdpZHRoLmluZGV4T2YoJ3B4JykgPCAwKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCArPSAncHgnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuY29sdW5hc0l0ZW5zLnB1c2goY29sdW1uKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29sdW5hc0hlYWRlcnMucHVzaChoZWFkZXIpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb2x1bmFzVHlwZS5wdXNoKHR5cGUgPT0gJycgPyAnbGFiZWwnIDogdHlwZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbHVuYXNXaWR0aC5wdXNoKHdpZHRoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29sdW5hc1RyYW5zbGF0ZS5wdXNoKHRyYW5zbGF0ZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXRQYWdlYmFyVGl0bGUoKSB7XHJcbiAgICAgICAgbGV0IGF1eCA9ICcnO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5wcmVmaXh0aXRsZSAhPSAnJylcclxuICAgICAgICAgICAgYXV4ID0gdGhpcy5fdHJhbnNsYXRlLnRyYW5zbGF0ZSh0aGlzLnByZWZpeHRpdGxlKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMucmVzdWx0VGl0bGUgIT0gJycpXHJcbiAgICAgICAgICAgIGF1eCArPSAodGhpcy5wcmVmaXh0aXRsZSAhPSAnJyA/ICcgLyAnIDogJycpICsgdGhpcy5fdHJhbnNsYXRlLnRyYW5zbGF0ZSh0aGlzLnJlc3VsdFRpdGxlKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMucGFnZXRpdGxlICE9ICcnKVxyXG4gICAgICAgICAgICBhdXggKz0gKHRoaXMucmVzdWx0VGl0bGUgIT0gJycgfHwgdGhpcy5wcmVmaXh0aXRsZSAhPSAnJyA/ICcgLyAnIDogJycpICsgdGhpcy5fdHJhbnNsYXRlLnRyYW5zbGF0ZSh0aGlzLnBhZ2V0aXRsZSk7XHJcblxyXG4gICAgICAgIHRoaXMucGFnZWJhclRpdGxlID0gYXV4O1xyXG4gICAgfVxyXG5cclxuICAgIG5hdmlnYXRlVG8odXJsOiBzdHJpbmcsIHBhc3NJZDogYm9vbGVhbiwgaWQ/OiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgaWYgKHBhc3NJZCkge1xyXG4gICAgICAgICAgICBpZiAodXJsLmluZGV4T2YoXCI6aWRcIikgPiAtMSlcclxuICAgICAgICAgICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKHVybC5yZXBsYWNlKCc6aWQnLCBpZCkpO1xyXG4gICAgICAgICAgICBlbHNlIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbdXJsLCBpZF0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZWxzZSB0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCh1cmwpO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5DdXN0b21Nb2RhbChtb2RhbENvbXBvbmVudDogYW55LCB3aWR0aDogTnVtYmVyLCBtb2RlbDogYW55ID0gbnVsbCkge1xyXG5cclxuICAgICAgICB0aGlzLl9wcm9wLnNldChJbmZvUGFnZUFjdGlvbi5Ob25lLCBtb2RlbCk7XHJcbiAgICAgICAgdGhpcy5vcGVuTW9kYWwobW9kYWxDb21wb25lbnQsIHdpZHRoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXREYXRhKCkge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZXMgPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuYXBpID09IG51bGwgfHwgdGhpcy5hcGkgPT0gJycpIHtcclxuICAgICAgICAgICAgdGhpcy5oaWRlTG9hZCgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWFyY2htb2RlbCAhPSBudWxsKVxyXG4gICAgICAgICAgICB0aGlzLmdldFNlYXJjaCgpO1xyXG5cclxuICAgICAgICBlbHNlIGlmICh0aGlzLnBhZ2VkKVxyXG4gICAgICAgICAgICB0aGlzLmdldFBhZ2VkKCk7XHJcblxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMucGFyZW50ID09IG51bGwpXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0QWxsKCk7XHJcblxyXG4gICAgICAgIGVsc2UgdGhpcy5nZXRCeVBhcmVudElkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QWxsKCk6IGFueSB7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaG1vZGVsID09IG51bGwpXHJcbiAgICAgICAgICAgIHRoaXMuX2RhdGFBY2Nlc3NTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAuZ2V0KHRoaXMuYXBpLCB0aGlzLm1ldGhvZClcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUociA9PiB0aGlzLmdldERhdGFSZXR1cm4ocikpO1xyXG5cclxuICAgICAgICBlbHNlIHRoaXMuX2RhdGFBY2Nlc3NTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuYXBpLCB0aGlzLnNlYXJjaG1vZGVsLCB0aGlzLm1ldGhvZClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShyID0+IHRoaXMuZ2V0RGF0YVJldHVybihyKSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UGFnZWQoKTogYW55IHtcclxuXHJcbiAgICAgICAgbGV0IHBhcmFtcyA9IHRoaXMucGFyZW50ID09IG51bGwgPyBcIlwiIDogXCJpZD1cIiArIHRoaXMucGFyZW50ICsgXCImXCI7XHJcbiAgICAgICAgcGFyYW1zICs9ICdpbmRleD0nICsgdGhpcy5wYWdpbmF0b3IuaW5kZXggKyAnJnNpemU9JyArIHRoaXMuc2l6ZTtcclxuXHJcbiAgICAgICAgdGhpcy5fZGF0YUFjY2Vzc1NlcnZpY2VcclxuICAgICAgICAgICAgLmdldCh0aGlzLmFwaSwgdGhpcy5tZXRob2QsIHBhcmFtcylcclxuICAgICAgICAgICAgLnN1YnNjcmliZShyID0+IHRoaXMuZ2V0RGF0YVJldHVybihyLCB0cnVlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U2VhcmNoKCk6IGFueSB7XHJcbiAgICAgICAgdGhpcy5vbmJlZm9yZXNlYXJjaC5lbWl0KCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnBhZ2VkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNobW9kZWwuSW5kZXggPSB0aGlzLnBhZ2luYXRvci5pbmRleDtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2htb2RlbC5TaXplID0gdGhpcy5zaXplO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fZGF0YUFjY2Vzc1NlcnZpY2VcclxuICAgICAgICAgICAgLnBvc3QodGhpcy5hcGksIHRoaXMuc2VhcmNobW9kZWwsIHRoaXMubWV0aG9kKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHIgPT4gdGhpcy5nZXREYXRhUmV0dXJuKHIsIHRoaXMucGFnZWQpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRCeVBhcmVudElkKCk6IGFueSB7XHJcbiAgICAgICAgdGhpcy5fZGF0YUFjY2Vzc1NlcnZpY2VcclxuICAgICAgICAgICAgLmdldCh0aGlzLmFwaSwgdGhpcy5tZXRob2QsICdpZD0nICsgdGhpcy5wYXJlbnQpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUociA9PiB0aGlzLmdldERhdGFSZXR1cm4ociwgZmFsc2UpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXREYXRhUmV0dXJuKHJlc3VsdDogYW55LCByZWZyZXNoUGFnaW5hdG9yOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgICAgICBcclxuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZXNlYXJjaGxhc3QpIHtcclxuICAgICAgICAgICAgdGhpcy5fbGFzdFNlYXJjaC51cmwgPSB0aGlzLl9hdXRoZW50aWNhdGlvblNlcnZpY2UuZ2V0VXJsR2VuZXJpY2EodGhpcy51cmwpO1xyXG4gICAgICAgICAgICB0aGlzLl9sYXN0U2VhcmNoLmVuYWJsZWRTZWFyY2ggPSB0aGlzLmVuYWJsZWRTZWFyY2g7XHJcbiAgICAgICAgICAgIHRoaXMuX2xhc3RTZWFyY2gubW9kZWwgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnNlYXJjaG1vZGVsKTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnBhZ2VkKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fbGFzdFNlYXJjaC5pbmRleCA9IHRoaXMucGFnaW5hdG9yLmluZGV4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IHJlc3VsdC5kYXRhO1xyXG5cclxuICAgICAgICAgICAgaWYgKCF0aGlzLnN0YXRpY3RpdGxlICYmIHJlc3VsdC5uYW1lICE9IG51bGwpXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlc3VsdFRpdGxlID0gdGhpcy5fdHJhbnNsYXRlLnRyYW5zbGF0ZShyZXN1bHQubmFtZSk7XHJcblxyXG4gICAgICAgICAgICBpZiAocmVzdWx0LmRlc2NyaXB0aW9uICE9IG51bGwpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gcmVzdWx0LmRlc2NyaXB0aW9uO1xyXG5cclxuICAgICAgICAgICAgaWYgKHJlc3VsdC5wYXJlbnRJZCAhPSBudWxsKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5wYXJlbnRJZFVybCA9IHJlc3VsdC5wYXJlbnRJZDtcclxuXHJcbiAgICAgICAgICAgIGlmIChyZWZyZXNoUGFnaW5hdG9yKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0b3IucmVmcmVzaChyZXN1bHQudG90YWwpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuYXV0b3JlZnJlc2ggPiAwICYmIHRoaXMuY3VycmVudFVybCA9PSBsb2NhdGlvbi5ocmVmKVxyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IHRoaXMuZ2V0RGF0YSgpOyB9LCB0aGlzLmF1dG9yZWZyZXNoICogMTAwMCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmZpbGxJY29ucygpO1xyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGEgPSBbXTtcclxuICAgICAgICAgICAgaWYodGhpcy5zaG93bWVzc2FnZWVycm9yKSB0aGlzLm1lc3NhZ2VzID0gcmVzdWx0Lm1lc3NhZ2VzO1xyXG4gICAgICAgIH0gXHJcblxyXG4gICAgICAgIHRoaXMuaGlkZUxvYWQoKTtcclxuICAgICAgICB0aGlzLm9ubG9hZGNvbXBsZXRlLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBjaGFuZ2VQYWdlKGluZGV4OiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMucGFnaW5hdG9yLmluZGV4ID0gaW5kZXg7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaG1vZGVsICE9IG51bGwpXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0U2VhcmNoKCk7XHJcblxyXG4gICAgICAgIGVsc2UgdGhpcy5nZXRQYWdlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbmNlbFNlYXJjaCgpIHtcclxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuc2VhcmNobW9kZWwsIHRoaXMuc2VhcmNoTW9kZWxSZXNldCk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5zZWFyY2hvcGVuZWQpXHJcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlZFNlYXJjaCA9IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLnNlYXJjaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlYXJjaCgpIHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmICh0aGlzLnBhZ2VkKVxyXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRvci5pbmRleCA9IDA7XHJcblxyXG4gICAgICAgIHRoaXMuZ2V0RGF0YSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZCgpIHtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3Byb3Auc2V0KEluZm9QYWdlQWN0aW9uLk5ldywgdGhpcy5kZWZhdWx0bmV3b2JqZWN0KTtcclxuICAgICAgICAgICAgdGhpcy5vcGVuTW9kYWwoKTtcclxuXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubmV3dXJsID09IG51bGwgfHwgdGhpcy5uZXd1cmwgPT0gJycpXHJcbiAgICAgICAgICAgICAgICB0aGlzLm5ld3VybCA9IHRoaXMudXJsO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5uZXd1cmwgKz0gJy9ub3ZvJztcclxuICAgICAgICAgICAgdGhpcy5uZXd1cmwgPSB0aGlzLm5ld3VybC5yZXBsYWNlKCcvLycsICcvJyk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLm5ld3VybCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm9ubmV3LmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBkZXRhaWwobW9kZWw6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3Byb3Auc2V0KEluZm9QYWdlQWN0aW9uLlNlYXJjaCwgbW9kZWwpO1xyXG4gICAgICAgIHRoaXMub3Blbk1vZGFsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYWNjZXNzKG1vZGVsOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5lbmFibGVkY2xpY2thY2Nlc3Mpe1xyXG4gICAgICAgICAgICBpZiAodGhpcy5lbmFibGVkY2xpY2tldmVudClcclxuICAgICAgICAgICAgICAgIHRoaXMub252aWV3LmVtaXQobW9kZWwpO1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy5lZGl0KG1vZGVsKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdmlldyhtb2RlbDogYW55KTogdm9pZCB7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmZvcm0gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLl9wcm9wLnNldChJbmZvUGFnZUFjdGlvbi5WaWV3LCBtb2RlbCk7XHJcbiAgICAgICAgICAgIHRoaXMub3Blbk1vZGFsKCk7XHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnZpZXd1cmwgPT0gbnVsbCB8fCB0aGlzLnZpZXd1cmwgPT0gJycpXHJcbiAgICAgICAgICAgICAgICB0aGlzLnZpZXd1cmwgPSB0aGlzLnVybDtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB0aGlzLnZpZXd1cmwgKz0gJy8nICsgbW9kZWwuSWQgKyAodGhpcy5lbmFibGVkY2xpY2thY2Nlc3MgPyAnJyA6ICcvdmlzdWFsaXphcicpO1xyXG4gICAgICAgICAgICB0aGlzLnZpZXd1cmwgPSB0aGlzLnZpZXd1cmwucmVwbGFjZSgnLy8nLCAnLycpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy52aWV3dXJsKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMub252aWV3LmVtaXQobW9kZWwpO1xyXG4gICAgfVxyXG5cclxuICAgIGVkaXQobW9kZWw6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmhhc1Blcm1pc3Npb25FZGl0KSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm0gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fcHJvcC5zZXQoSW5mb1BhZ2VBY3Rpb24uRWRpdCwgbW9kZWwpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuTW9kYWwoKTtcclxuXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5lZGl0dXJsID09IG51bGwgfHwgdGhpcy5lZGl0dXJsID09ICcnKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWRpdHVybCA9IHRoaXMudXJsO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuZWRpdHVybCA9IHRoaXMuZWRpdHVybC5yZXBsYWNlKCcvLycsICcvJyk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFt0aGlzLmVkaXR1cmwsIG1vZGVsLklkXSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMub25lZGl0LmVtaXQobW9kZWwpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm0gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fcHJvcC5zZXQoSW5mb1BhZ2VBY3Rpb24uVmlldywgbW9kZWwpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuTW9kYWwoKTtcclxuICAgIFxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudmlld3VybCA9PSBudWxsIHx8IHRoaXMudmlld3VybCA9PSAnJylcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXd1cmwgPSB0aGlzLnVybDtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIHRoaXMudmlld3VybCArPSAnLycgKyBtb2RlbC5JZCArICh0aGlzLmVuYWJsZWRjbGlja2FjY2VzcyA/ICcnIDogJy92aXN1YWxpemFyJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZpZXd1cmwgPSB0aGlzLnZpZXd1cmwucmVwbGFjZSgnLy8nLCAnLycpO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnZpZXd1cmwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICBcclxuICAgICAgICAgICAgdGhpcy5vbnZpZXcuZW1pdChtb2RlbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZShtb2RlbDogYW55KSB7XHJcbiAgICAgICAgaWYodGhpcy5jdXN0b21kZWxldGUub2JzZXJ2ZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5jdXN0b21kZWxldGUuZW1pdChtb2RlbCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2RpYWxvZy5ZZXNPck5vKCdNZW5zYWdlbUV4Y2x1aXInKS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyLmJ1dHRvbiA9PSBJbmZvRGlhbG9nQnV0dG9ucy5ZZXMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0YUFjY2Vzc1NlcnZpY2UuZGVsZXRlKHRoaXMuYXBpLCBtb2RlbC5JZCkuc3Vic2NyaWJlKGQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25kZWxldGUuZW1pdChkKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGQuc3VjY2VzcylcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXREYXRhKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZUxvYWQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc2hvd21lc3NhZ2VlcnJvcikgdGhpcy5tZXNzYWdlcyA9IGQubWVzc2FnZXM7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBmaWxsSWNvbnMoKSB7XHJcbiAgICAgICAgdGhpcy5pY29ucyA9IFtdO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5kYXRhID09IG51bGwpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgdGhpcy5kYXRhLmZvckVhY2gocmV0ID0+IHtcclxuXHJcbiAgICAgICAgICAgIGxldCBpdGVtID0gcmV0WydJY29uJ107XHJcbiAgICAgICAgICAgIGlmIChpdGVtID09IG51bGwpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgICAgICBpZiAoaXRlbS5pbmRleE9mKCd8JykgPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHJldG9ybm8gPSBpdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCd8JylcclxuICAgICAgICAgICAgICAgICAgICAubWFwKGljb25lID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpY29uZS5pbmRleE9mKCc6JykgPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhZG9zID0gaWNvbmUuc3BsaXQoJzonKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IE5hbWU6IGl0ZW0sIEljb246IGRhZG9zWzBdLCBUb29sdGlwOiBkYWRvc1sxXSwgUHJpbmNpcGFsOiB0cnVlIH07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgcmV0dXJuIHsgTmFtZTogaXRlbSwgSWNvbjogaWNvbmUsIFRvb2x0aXA6ICcnLCBQcmluY2lwYWw6IHRydWUgfTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgfSkuZmlsdGVyKGEgPT4gYS5JY29uICE9IG51bGwgJiYgYS5JY29uICE9ICcnKTtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgaW5kZXggPSAwO1xyXG4gICAgICAgICAgICAgICAgcmV0b3Juby5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmljb25zLmZpbmQoYSA9PiBhLk5hbWUgPT0gZWxlbWVudC5OYW1lICYmIGEuSWNvbiA9PSBlbGVtZW50Lkljb24pID09IG51bGwpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LlByaW5jaXBhbCA9IGluZGV4ID09IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaWNvbnMucHVzaChlbGVtZW50KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGluZGV4Kys7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGxldCBlbGVtZW50OiBhbnkgPSBbXTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5pbmRleE9mKCc6JykgPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBkYWRvcyA9IGl0ZW0uc3BsaXQoJzonKTtcclxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0geyBOYW1lOiBpdGVtLCBJY29uOiBkYWRvc1swXSwgVG9vbHRpcDogZGFkb3NbMV0sIFByaW5jaXBhbDogdHJ1ZSB9O1xyXG5cclxuICAgICAgICAgICAgICAgIH0gZWxzZSBlbGVtZW50ID0geyBOYW1lOiBpdGVtLCBJY29uOiBpdGVtLCBUb29sdGlwOiBcIlwiLCBQcmluY2lwYWw6IHRydWUgfTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pY29ucy5maW5kKGEgPT4gYS5OYW1lID09IGVsZW1lbnQuTmFtZSkgPT0gbnVsbClcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmljb25zLnB1c2goZWxlbWVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpbmZvKHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5fZGlhbG9nLmFsZXJ0KHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBiYWNrKCkge1xyXG4gICAgICAgIHRoaXMubmF2aWdhdGVUbyh0aGlzLmJhY2t1cmwgKyAodGhpcy5wYXJlbnRJZFVybCA9PSBudWxsID8gXCJcIiA6IFwiL1wiICsgdGhpcy5wYXJlbnRJZFVybCksIGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuTW9kYWwobW9kYWxDb21wb25lbnQ6IGFueSA9IHRoaXMuZm9ybSwgd2lkdGg6IE51bWJlciA9IHRoaXMud2lkdGgpIHtcclxuXHJcbiAgICAgICAgbGV0IHJlZiA9IHRoaXMubW9kYWwub3Blbihtb2RhbENvbXBvbmVudCwge1xyXG4gICAgICAgICAgICBkYXRhOiB0aGlzLl9wcm9wLFxyXG4gICAgICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgICAgICAgIHdpZHRoOiB3aWR0aCArICdweCdcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyOiBJbmZvRm9ybVByb3BNb2RlbCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAociA9PSBudWxsKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICAgICAgaWYgKHIubW9kYWxBY3Rpb24gPT0gSW5mb01vZGFsQWN0aW9uLlNhdmUpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldERhdGEoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMub25jbG9zZW1vZGFsLmVtaXQocik7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJlZi5rZXlkb3duRXZlbnRzKCkuc3Vic2NyaWJlKChyKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5sb2FkaW5nICYmIChyLmtleSA9PSBcIkVzY2FwZVwiIHx8IHIua2V5ID09IFwiRXNjXCIgfHwgci5rZXkgPT0gXCIyN1wiKSlcclxuICAgICAgICAgICAgICAgIHJlZi5jbG9zZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGhpZGVMb2FkKCkge1xyXG4gICAgICAgIHRoaXMuc2V0UGFnZWJhclRpdGxlKCk7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UGVybWlzc2lvbigpIHtcclxuICAgICAgICB0aGlzLmhhc1Blcm1pc3Npb25OZXcgPSB0aGlzLl9hdXRoZW50aWNhdGlvblNlcnZpY2UuaGFzUGVybWlzc2lvbih0aGlzLnVybCwgJ25ldycpO1xyXG4gICAgICAgIHRoaXMuaGFzUGVybWlzc2lvbkVkaXQgPSB0aGlzLl9hdXRoZW50aWNhdGlvblNlcnZpY2UuaGFzUGVybWlzc2lvbih0aGlzLnVybCwgJ2VkaXQnKTtcclxuICAgICAgICB0aGlzLmhhc1Blcm1pc3Npb25EZWxldGUgPSB0aGlzLl9hdXRoZW50aWNhdGlvblNlcnZpY2UuaGFzUGVybWlzc2lvbih0aGlzLnVybCwgJ3JlbW92ZScpO1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBkb3dubG9hZChhcnF1aXZvSWQ6IGFueSkge1xyXG4gICAgICAgIGlmICh0aGlzLmFwaWRvd25sb2FkID09IG51bGwpXHJcbiAgICAgICAgICAgIGFsZXJ0KCdBUEkgRG93bmxvYWQgZXN0w6EgbnVsbCcpO1xyXG5cclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX2RhdGFBY2Nlc3NTZXJ2aWNlLmdldCh0aGlzLmFwaWRvd25sb2FkLCAodGhpcy5tZXRob2Rkb3dubG9hZCAhPSBudWxsID8gdGhpcy5tZXRob2Rkb3dubG9hZCA6ICdHZXQnKSwgXCJpZD1cIiArIGFycXVpdm9JZCkuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VzID0gci5tZXNzYWdlcztcclxuXHJcbiAgICAgICAgICAgIGlmIChyLnN1Y2Nlc3MgJiYgci5kYXRhICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHZhciBiaW5hcnlTdHJpbmcgPSB3aW5kb3cuYXRvYihyLmRhdGEuQ29udGV1ZG8pO1xyXG4gICAgICAgICAgICAgICAgdmFyIGJpbmFyeUxlbiA9IGJpbmFyeVN0cmluZy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICB2YXIgYnl0ZXMgPSBuZXcgVWludDhBcnJheShiaW5hcnlMZW4pO1xyXG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBiaW5hcnlMZW47IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgdmFyIGFzY2lpID0gYmluYXJ5U3RyaW5nLmNoYXJDb2RlQXQoaSk7XHJcbiAgICAgICAgICAgICAgICAgICBieXRlc1tpXSA9IGFzY2lpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHZhciBibG9iID0gbmV3IEJsb2IoW2J5dGVzXSk7XHJcbiAgICAgICAgICAgICAgICBpZiAod2luZG93Lm5hdmlnYXRvciAmJiB3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZU9yT3BlbkJsb2IpIHtcclxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZU9yT3BlbkJsb2IoYmxvYiwgci5kYXRhLk5vbWUpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZmlsZVVSTCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGVsZW1lbnRBOiBIVE1MQW5jaG9yRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKSBhcyBIVE1MQW5jaG9yRWxlbWVudDtcclxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50QS5ocmVmID0gZmlsZVVSTDtcclxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50QS5kb3dubG9hZCA9IHIuZGF0YS5Ob21lO1xyXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudEEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRBLmNsaWNrKCk7ICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVsZW1lbnRBKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBldmVudEJ1dHRvbihtb2RlbDogYW55LCBhcGk6IGFueSwgbWV0aG9kOiBzdHJpbmcsIGNvbmZpcm06IGJvb2xlYW4gPSB0cnVlKSB7XHJcbiAgICAgICAgaWYgKGNvbmZpcm0pIHtcclxuICAgICAgICAgICAgdGhpcy5fZGlhbG9nXHJcbiAgICAgICAgICAgICAgICAuWWVzT3JObygnTWVuc2FnZW1Db25maXJtYXInKVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShyZXQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXQuYnV0dG9uID09IEluZm9EaWFsb2dCdXR0b25zLlllcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhQWNjZXNzU2VydmljZS5wb3N0KGFwaSwgbW9kZWwsIG1ldGhvZCkuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHIuc3VjY2VzcylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldERhdGEoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYodGhpcy5zaG93bWVzc2FnZWVycm9yKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZXMgPSByLm1lc3NhZ2VzO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLl9kYXRhQWNjZXNzU2VydmljZS5wb3N0KGFwaSwgbW9kZWwsIG1ldGhvZCkuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHIuc3VjY2VzcylcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldERhdGEoKTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYodGhpcy5zaG93bWVzc2FnZWVycm9yKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZXMgPSByLm1lc3NhZ2VzO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -23,8 +23,10 @@ export class InfoSelectComponent {
|
|
|
23
23
|
this.blankItem = null;
|
|
24
24
|
this.loading = false;
|
|
25
25
|
this.disabled = false;
|
|
26
|
+
this.notranslate = null;
|
|
26
27
|
this.onselecteditem = new EventEmitter();
|
|
27
28
|
this.selectedValue = null;
|
|
29
|
+
this.translatValue = true;
|
|
28
30
|
this.initialized = false;
|
|
29
31
|
this._params = null;
|
|
30
32
|
this._data = [];
|
|
@@ -143,7 +145,7 @@ export class InfoSelectComponent {
|
|
|
143
145
|
InfoSelectComponent.decorators = [
|
|
144
146
|
{ type: Component, args: [{
|
|
145
147
|
selector: 'info-select',
|
|
146
|
-
template: "<mat-form-field>\r\n <mat-select [placeholder]=\"placeholder | translate\" [(ngModel)]=\"selectedValue\" (selectionChange)=\"onChangeValue()\" [disabled]=\"disabled || loading\" [required]=\"required\">\r\n <mat-option *ngIf=\"blank\" [value]=\"blankItem.Id\">{{ blankItem.Nome | translate }}</mat-option>\r\n <mat-option *ngFor=\"let i of data\" [value]=\"i.Id\" [innerHTML]=\"i.Nome | translate\"></mat-option>\r\n </mat-select>\r\n</mat-form-field>\r\n\r\n<section class=\"select-loading\">\r\n <mat-progress-bar color=\"primary\" mode=\"indeterminate\" *ngIf=\"loading\" >\r\n </mat-progress-bar>\r\n</section>",
|
|
148
|
+
template: "<mat-form-field>\r\n <mat-select [placeholder]=\"placeholder | translate\" [(ngModel)]=\"selectedValue\" (selectionChange)=\"onChangeValue()\" [disabled]=\"disabled || loading\" [required]=\"required\">\r\n <mat-option *ngIf=\"blank\" [value]=\"blankItem.Id\">{{ blankItem.Nome | translate }}</mat-option>\r\n <mat-option *ngFor=\"let i of data\" [value]=\"i.Id\" [innerHTML]=\"i.Nome | translate:(notranslate===null)\"></mat-option>\r\n </mat-select>\r\n</mat-form-field>\r\n\r\n<section class=\"select-loading\">\r\n <mat-progress-bar color=\"primary\" mode=\"indeterminate\" *ngIf=\"loading\" >\r\n </mat-progress-bar>\r\n</section>",
|
|
147
149
|
providers: [{
|
|
148
150
|
provide: NG_VALUE_ACCESSOR,
|
|
149
151
|
useExisting: forwardRef((/**
|
|
@@ -171,6 +173,7 @@ InfoSelectComponent.propDecorators = {
|
|
|
171
173
|
blankItem: [{ type: Input }],
|
|
172
174
|
loading: [{ type: Input }],
|
|
173
175
|
disabled: [{ type: Input }],
|
|
176
|
+
notranslate: [{ type: Input }],
|
|
174
177
|
onselecteditem: [{ type: Output }],
|
|
175
178
|
params: [{ type: Input }],
|
|
176
179
|
data: [{ type: Input }]
|
|
@@ -199,10 +202,14 @@ if (false) {
|
|
|
199
202
|
/** @type {?} */
|
|
200
203
|
InfoSelectComponent.prototype.disabled;
|
|
201
204
|
/** @type {?} */
|
|
205
|
+
InfoSelectComponent.prototype.notranslate;
|
|
206
|
+
/** @type {?} */
|
|
202
207
|
InfoSelectComponent.prototype.onselecteditem;
|
|
203
208
|
/** @type {?} */
|
|
204
209
|
InfoSelectComponent.prototype.selectedValue;
|
|
205
210
|
/** @type {?} */
|
|
211
|
+
InfoSelectComponent.prototype.translatValue;
|
|
212
|
+
/** @type {?} */
|
|
206
213
|
InfoSelectComponent.prototype.onChange;
|
|
207
214
|
/** @type {?} */
|
|
208
215
|
InfoSelectComponent.prototype.onTouched;
|
|
@@ -221,4 +228,4 @@ if (false) {
|
|
|
221
228
|
*/
|
|
222
229
|
InfoSelectComponent.prototype._dataAcessService;
|
|
223
230
|
}
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9kZXYvSW5mbyBVdGlsaXRpZXMvSW5mbyBMaWJyYXJ5IC0gQW5ndWxhci9wcm9qZWN0cy9pbmZvLWxpYnJhcnkvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxVQUFVLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBWTdELE1BQU0sT0FBTyxtQkFBbUI7Ozs7SUFtRDVCLFlBQW9CLGlCQUFrQztRQUFsQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWlCO1FBakQ3QyxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1YsYUFBUSxHQUFRLEtBQUssQ0FBQztRQUN0QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDNUIsUUFBRyxHQUFRLElBQUksQ0FBQztRQUNoQixXQUFNLEdBQUcsZUFBZSxDQUFDO1FBQ3pCLFVBQUssR0FBRyxLQUFLLENBQUM7UUFDZCxjQUFTLEdBQVEsSUFBSSxDQUFDO1FBQ3RCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVoQixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFOUMsa0JBQWEsR0FBUSxJQUFJLENBQUM7UUFJbEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFNUIsWUFBTyxHQUFXLElBQUksQ0FBQztRQWF2QixVQUFLLEdBQVEsRUFBRSxDQUFDO0lBZ0IyQyxDQUFDOzs7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QUFFLElBQUk7cUJBQ2QsQ0FBQzs7YUFDTDs7OztZQVhRLGVBQWU7OzswQkFjbkIsS0FBSzttQkFDTCxLQUFLO3VCQUNMLEtBQUs7MEJBQ0wsS0FBSztrQ0FDTCxLQUFLO2tCQUNMLEtBQUs7cUJBQ0wsS0FBSztvQkFDTCxLQUFLO3dCQUNMLEtBQUs7c0JBQ0wsS0FBSzt1QkFDTCxLQUFLOzZCQUVMLE1BQU07cUJBU04sS0FBSzttQkFhTCxLQUFLOzs7O0lBbENOLDBDQUEwQjs7SUFDMUIsbUNBQW1COztJQUNuQix1Q0FBK0I7O0lBQy9CLDBDQUE2Qjs7SUFDN0Isa0RBQXFDOztJQUNyQyxrQ0FBeUI7O0lBQ3pCLHFDQUFrQzs7SUFDbEMsb0NBQXVCOztJQUN2Qix3Q0FBK0I7O0lBQy9CLHNDQUF5Qjs7SUFDekIsdUNBQTBCOztJQUUxQiw2Q0FBOEM7O0lBRTlDLDRDQUEwQjs7SUFDMUIsdUNBQWM7O0lBQ2Qsd0NBQWU7Ozs7O0lBRWYsMENBQTRCOztJQUU1QixzQ0FBdUI7O0lBYXZCLG9DQUFnQjs7Ozs7SUFnQkosZ0RBQTBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBmb3J3YXJkUmVmLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBJbmZvRGF0YVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kYXRhLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdpbmZvLXNlbGVjdCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJ3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFt7XHJcbiAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW5mb1NlbGVjdENvbXBvbmVudCksXHJcbiAgICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbmZvU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcclxuICAgIEBJbnB1dCgpIG5hbWUgPSAnJztcclxuICAgIEBJbnB1dCgpIHJlcXVpcmVkOiBhbnkgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHNlbGVjdGZpcnN0ID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBkaXNhYmxlZG5vcmVnaXN0ZXJzID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBhcGk6IGFueSA9IG51bGw7XHJcbiAgICBASW5wdXQoKSBtZXRob2QgPSAnZ2V0Y2hhdmV2YWxvcic7XHJcbiAgICBASW5wdXQoKSBibGFuayA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgYmxhbmtJdGVtOiBhbnkgPSBudWxsO1xyXG4gICAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgICBAT3V0cHV0KCkgb25zZWxlY3RlZGl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgc2VsZWN0ZWRWYWx1ZTogYW55ID0gbnVsbDtcclxuICAgIG9uQ2hhbmdlOiBhbnk7XHJcbiAgICBvblRvdWNoZWQ6IGFueTtcclxuXHJcbiAgICBwcml2YXRlIGluaXRpYWxpemVkID0gZmFsc2U7XHJcbiAgICBcclxuICAgIF9wYXJhbXM6IHN0cmluZyA9IG51bGw7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHBhcmFtcygpe1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJhbXM7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IHBhcmFtcyh2YWx1ZSl7XHJcbiAgICAgICAgdGhpcy5fcGFyYW1zID0gdmFsdWU7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKVxyXG4gICAgICAgICAgICB0aGlzLmdldERhdGEoKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgX2RhdGE6IGFueSA9IFtdO1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBkYXRhKCl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGE7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGRhdGEodmFsdWUpe1xyXG4gICAgICAgIHRoaXMuX2RhdGEgPSB2YWx1ZTtcclxuICAgICAgICBcclxuICAgICAgICBpZiAodGhpcy5zZWxlY3RmaXJzdCAmJiB0aGlzLmRhdGEgIT0gbnVsbCAmJiB0aGlzLmRhdGEubGVuZ3RoID4gMCAmJiAhdGhpcy5kYXRhLnNvbWUoZCA9PiBkLklkID09IHRoaXMuc2VsZWN0ZWRWYWx1ZSkpXHJcbiAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLmRhdGFbMF0uSWQpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkbm9yZWdpc3RlcnMpXHJcbiAgICAgICAgICAgIHRoaXMuc2V0RGlzYWJsZWRTdGF0ZSgodGhpcy5kYXRhID09IG51bGwgfHwgdGhpcy5kYXRhLmxlbmd0aCA9PSAwKSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZGF0YUFjZXNzU2VydmljZTogSW5mb0RhdGFTZXJ2aWNlKSB7ICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5uYW1lICs9IHRoaXMucGxhY2Vob2xkZXIucmVwbGFjZSgvIC9nLCAnJyk7XHJcbiAgICAgICAgdGhpcy5ibGFuayA9ICh0aGlzLnJlcXVpcmVkICE9PSAnJyAmJiB0aGlzLnJlcXVpcmVkICE9PSAndHJ1ZScgJiYgdGhpcy5yZXF1aXJlZCAhPT0gdHJ1ZSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmJsYW5rSXRlbSA9PSBudWxsKVxyXG4gICAgICAgICAgICB0aGlzLmJsYW5rSXRlbSA9IHsgSWQ6IG51bGwsIE5vbWU6ICcnIH07XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICB0aGlzLmdldERhdGEoKTtcclxuICAgIH1cclxuXHJcbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlVmFsdWUoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXREYXRhKCkge1xyXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmICh0aGlzLmFwaSA9PSBudWxsIHx8ICh0aGlzLnBhcmFtcyAhPSBudWxsICYmIHRoaXMucGFyYW1zLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigndW5kZWZpbmVkJykgPiAtMSkpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmRhdGEgPSBbXTtcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLl9kYXRhQWNlc3NTZXJ2aWNlLmdldCh0aGlzLmFwaSwgdGhpcy5tZXRob2QsIHRoaXMucGFyYW1zKS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IHIuZGF0YTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVmFsdWUpIHRoaXMub25DaGFuZ2VWYWx1ZSgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNoYW5nZVZhbHVlKCl7XHJcbiAgICAgICAgaWYgKHRoaXMub25DaGFuZ2UgIT0gbnVsbClcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNlbGVjdGVkVmFsdWUpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5vbnNlbGVjdGVkaXRlbSAhPSBudWxsKVxyXG4gICAgICAgICAgICB0aGlzLm9uc2VsZWN0ZWRpdGVtLmVtaXQodGhpcy5kYXRhID09IG51bGwgPyBudWxsIDogdGhpcy5kYXRhLmZpbmQociA9PiByLklkID09IHRoaXMuc2VsZWN0ZWRWYWx1ZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWRub3JlZ2lzdGVycyAmJiAodGhpcy5kYXRhID09IG51bGwgfHwgdGhpcy5kYXRhLmxlbmd0aCA9PSAwKSA/IHRydWUgOiBpc0Rpc2FibGVkO1xyXG4gICAgfVxyXG59Il19
|
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9kZXYvSW5mbyBVdGlsaXRpZXMvSW5mbyBMaWJyYXJ5IC0gQW5ndWxhci9wcm9qZWN0cy9pbmZvLWxpYnJhcnkvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxVQUFVLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBWTdELE1BQU0sT0FBTyxtQkFBbUI7Ozs7SUFxRDVCLFlBQW9CLGlCQUFrQztRQUFsQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWlCO1FBbkQ3QyxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1YsYUFBUSxHQUFRLEtBQUssQ0FBQztRQUN0QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDNUIsUUFBRyxHQUFRLElBQUksQ0FBQztRQUNoQixXQUFNLEdBQUcsZUFBZSxDQUFDO1FBQ3pCLFVBQUssR0FBRyxLQUFLLENBQUM7UUFDZCxjQUFTLEdBQVEsSUFBSSxDQUFDO1FBQ3RCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixnQkFBVyxHQUFRLElBQUksQ0FBQztRQUV2QixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFOUMsa0JBQWEsR0FBUSxJQUFJLENBQUM7UUFDMUIsa0JBQWEsR0FBWSxJQUFJLENBQUM7UUFJdEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFNUIsWUFBTyxH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LFVBQVU7Ozt3QkFBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsRUFBQzt3QkFDbEQsS0FBSyxFQUFFLElBQUk7cUJBQ2QsQ0FBQzs7YUFDTDs7OztZQVhRLGVBQWU7OzswQkFjbkIsS0FBSzttQkFDTCxLQUFLO3VCQUNMLEtBQUs7MEJBQ0wsS0FBSztrQ0FDTCxLQUFLO2tCQUNMLEtBQUs7cUJBQ0wsS0FBSztvQkFDTCxLQUFLO3dCQUNMLEtBQUs7c0JBQ0wsS0FBSzt1QkFDTCxLQUFLOzBCQUNMLEtBQUs7NkJBRUwsTUFBTTtxQkFVTixLQUFLO21CQWFMLEtBQUs7Ozs7SUFwQ04sMENBQTBCOztJQUMxQixtQ0FBbUI7O0lBQ25CLHVDQUErQjs7SUFDL0IsMENBQTZCOztJQUM3QixrREFBcUM7O0lBQ3JDLGtDQUF5Qjs7SUFDekIscUNBQWtDOztJQUNsQyxvQ0FBdUI7O0lBQ3ZCLHdDQUErQjs7SUFDL0Isc0NBQXlCOztJQUN6Qix1Q0FBMEI7O0lBQzFCLDBDQUFpQzs7SUFFakMsNkNBQThDOztJQUU5Qyw0Q0FBMEI7O0lBQzFCLDRDQUE4Qjs7SUFDOUIsdUNBQWM7O0lBQ2Qsd0NBQWU7Ozs7O0lBRWYsMENBQTRCOztJQUU1QixzQ0FBdUI7O0lBYXZCLG9DQUFnQjs7Ozs7SUFnQkosZ0RBQTBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBmb3J3YXJkUmVmLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBJbmZvRGF0YVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kYXRhLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdpbmZvLXNlbGVjdCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJ3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFt7XHJcbiAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW5mb1NlbGVjdENvbXBvbmVudCksXHJcbiAgICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbmZvU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcclxuICAgIEBJbnB1dCgpIG5hbWUgPSAnJztcclxuICAgIEBJbnB1dCgpIHJlcXVpcmVkOiBhbnkgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHNlbGVjdGZpcnN0ID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBkaXNhYmxlZG5vcmVnaXN0ZXJzID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBhcGk6IGFueSA9IG51bGw7XHJcbiAgICBASW5wdXQoKSBtZXRob2QgPSAnZ2V0Y2hhdmV2YWxvcic7XHJcbiAgICBASW5wdXQoKSBibGFuayA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgYmxhbmtJdGVtOiBhbnkgPSBudWxsO1xyXG4gICAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIG5vdHJhbnNsYXRlOiBhbnkgPSBudWxsO1xyXG5cclxuICAgIEBPdXRwdXQoKSBvbnNlbGVjdGVkaXRlbSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBzZWxlY3RlZFZhbHVlOiBhbnkgPSBudWxsO1xyXG4gICAgdHJhbnNsYXRWYWx1ZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBvbkNoYW5nZTogYW55O1xyXG4gICAgb25Ub3VjaGVkOiBhbnk7XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xyXG4gICAgXHJcbiAgICBfcGFyYW1zOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBwYXJhbXMoKXtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBwYXJhbXModmFsdWUpe1xyXG4gICAgICAgIHRoaXMuX3BhcmFtcyA9IHZhbHVlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZClcclxuICAgICAgICAgICAgdGhpcy5nZXREYXRhKCk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIF9kYXRhOiBhbnkgPSBbXTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgZGF0YSgpe1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBkYXRhKHZhbHVlKXtcclxuICAgICAgICB0aGlzLl9kYXRhID0gdmFsdWU7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0Zmlyc3QgJiYgdGhpcy5kYXRhICE9IG51bGwgJiYgdGhpcy5kYXRhLmxlbmd0aCA+IDAgJiYgIXRoaXMuZGF0YS5zb21lKGQgPT4gZC5JZCA9PSB0aGlzLnNlbGVjdGVkVmFsdWUpKVxyXG4gICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUodGhpcy5kYXRhWzBdLklkKTtcclxuICAgICAgICBcclxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZG5vcmVnaXN0ZXJzKVxyXG4gICAgICAgICAgICB0aGlzLnNldERpc2FibGVkU3RhdGUoKHRoaXMuZGF0YSA9PSBudWxsIHx8IHRoaXMuZGF0YS5sZW5ndGggPT0gMCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2RhdGFBY2Vzc1NlcnZpY2U6IEluZm9EYXRhU2VydmljZSkgeyAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMubmFtZSArPSB0aGlzLnBsYWNlaG9sZGVyLnJlcGxhY2UoLyAvZywgJycpO1xyXG4gICAgICAgIHRoaXMuYmxhbmsgPSAodGhpcy5yZXF1aXJlZCAhPT0gJycgJiYgdGhpcy5yZXF1aXJlZCAhPT0gJ3RydWUnICYmIHRoaXMucmVxdWlyZWQgIT09IHRydWUpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5ibGFua0l0ZW0gPT0gbnVsbClcclxuICAgICAgICAgICAgdGhpcy5ibGFua0l0ZW0gPSB7IElkOiBudWxsLCBOb21lOiAnJyB9O1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgdGhpcy5nZXREYXRhKCk7XHJcbiAgICB9XHJcblxyXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZVZhbHVlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGF0YSgpIHtcclxuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgICAgICBcclxuICAgICAgICBpZiAodGhpcy5hcGkgPT0gbnVsbCB8fCAodGhpcy5wYXJhbXMgIT0gbnVsbCAmJiB0aGlzLnBhcmFtcy50b0xvd2VyQ2FzZSgpLmluZGV4T2YoJ3VuZGVmaW5lZCcpID4gLTEpKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5kYXRhID0gW107XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5fZGF0YUFjZXNzU2VydmljZS5nZXQodGhpcy5hcGksIHRoaXMubWV0aG9kLCB0aGlzLnBhcmFtcykuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICAgICAgICBpZiAoci5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEgPSByLmRhdGE7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFZhbHVlKSB0aGlzLm9uQ2hhbmdlVmFsdWUoKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DaGFuZ2VWYWx1ZSgpe1xyXG4gICAgICAgIGlmICh0aGlzLm9uQ2hhbmdlICE9IG51bGwpXHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5zZWxlY3RlZFZhbHVlKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMub25zZWxlY3RlZGl0ZW0gIT0gbnVsbClcclxuICAgICAgICAgICAgdGhpcy5vbnNlbGVjdGVkaXRlbS5lbWl0KHRoaXMuZGF0YSA9PSBudWxsID8gbnVsbCA6IHRoaXMuZGF0YS5maW5kKHIgPT4gci5JZCA9PSB0aGlzLnNlbGVjdGVkVmFsdWUpKTtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkbm9yZWdpc3RlcnMgJiYgKHRoaXMuZGF0YSA9PSBudWxsIHx8IHRoaXMuZGF0YS5sZW5ndGggPT0gMCkgPyB0cnVlIDogaXNEaXNhYmxlZDtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -20,6 +20,8 @@ export class InfoTranslatePipe {
|
|
|
20
20
|
transform(value, args) {
|
|
21
21
|
if (!value)
|
|
22
22
|
return;
|
|
23
|
+
if (args === false)
|
|
24
|
+
return value;
|
|
23
25
|
return this._translate.instant(value);
|
|
24
26
|
}
|
|
25
27
|
}
|
|
@@ -40,4 +42,4 @@ if (false) {
|
|
|
40
42
|
*/
|
|
41
43
|
InfoTranslatePipe.prototype._translate;
|
|
42
44
|
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiRDovZGV2L0luZm8gVXRpbGl0aWVzL0luZm8gTGlicmFyeSAtIEFuZ3VsYXIvcHJvamVjdHMvaW5mby1saWJyYXJ5L3NyYy8iLCJzb3VyY2VzIjpbInBpcGUvdHJhbnNsYXRlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQU1wRSxNQUFNLE9BQU8saUJBQWlCOzs7O0lBRTFCLFlBQW9CLFVBQWdDO1FBQWhDLGVBQVUsR0FBVixVQUFVLENBQXNCO0lBQUksQ0FBQzs7Ozs7O0lBRXpELFNBQVMsQ0FBQyxLQUFhLEVBQUUsSUFBVTtRQUMvQixJQUFJLENBQUMsS0FBSztZQUNOLE9BQU87UUFFWCxJQUFJLElBQUksS0FBSyxLQUFLO1lBQ2QsT0FBTyxLQUFLLENBQUM7UUFFakIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDOzs7WUFoQkosSUFBSSxTQUFDO2dCQUNGLElBQUksRUFBRSxXQUFXO2dCQUNqQixJQUFJLEVBQUUsS0FBSzthQUNkOzs7O1lBTFEsb0JBQW9COzs7Ozs7O0lBUWIsdUNBQXdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbmZvVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5cclxuQFBpcGUoe1xyXG4gICAgbmFtZTogJ3RyYW5zbGF0ZScsXHJcbiAgICBwdXJlOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5mb1RyYW5zbGF0ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF90cmFuc2xhdGU6IEluZm9UcmFuc2xhdGVTZXJ2aWNlKSB7IH1cclxuXHJcbiAgICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZywgYXJncz86IGFueSk6IGFueSB7XHJcbiAgICAgICAgaWYgKCF2YWx1ZSkgXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgaWYgKGFyZ3MgPT09IGZhbHNlKVxyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCh2YWx1ZSk7XHJcbiAgICB9XHJcbn0iXX0=
|