@dev-tcloud/tcloud-ui 2.4.10 → 2.4.12

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.
@@ -4,6 +4,7 @@ import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
5
5
  import * as i2 from "@angular/forms";
6
6
  import * as i3 from "../tcloud-ui-data-list/tcloud-ui-data-list.component";
7
+ import * as i4 from "../tcloud-ui-data-list/tcloud-ui-data-list-option/tcloud-ui-data-list-option.component";
7
8
  const CUSTOM_INPUT_VALIDATORS = {
8
9
  provide: NG_VALIDATORS,
9
10
  useExisting: forwardRef(() => TCloudUiMultiplesValuesComponent),
@@ -233,6 +234,7 @@ export class TCloudUiMultiplesValuesComponent {
233
234
  if (!input_items) {
234
235
  return;
235
236
  }
237
+ console.log('input_items', input_items);
236
238
  let valid = true;
237
239
  if (this.pattern) {
238
240
  valid = (this.pattern).test(this.input_items);
@@ -244,6 +246,20 @@ export class TCloudUiMultiplesValuesComponent {
244
246
  }
245
247
  }
246
248
  }
249
+ checkIsDisabled(item) {
250
+ if (item?.disabled) {
251
+ return true;
252
+ }
253
+ const value = `${item.value}`;
254
+ if ((this.items).length > 0) {
255
+ for (let i = 0; i < (this.items).length; i++) {
256
+ if (`${this.items[i]}` === value) {
257
+ return true;
258
+ }
259
+ }
260
+ }
261
+ return false;
262
+ }
247
263
  onChange() {
248
264
  this.tcChange.emit(this.items);
249
265
  }
@@ -296,11 +312,11 @@ export class TCloudUiMultiplesValuesComponent {
296
312
  ngOnDestroy() {
297
313
  }
298
314
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TCloudUiMultiplesValuesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
299
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TCloudUiMultiplesValuesComponent, selector: "tcloud-ui-multiples-values", inputs: { listItems: "listItems", openValuesInChange: "openValuesInChange", useBtnAdd: "useBtnAdd", pattern: "pattern", delimiter: "delimiter", placeholder: "placeholder", disabled: "disabled", loading: "loading", required: "required", search: "search", uppercase: "uppercase", lowercase: "lowercase", maxWidthLabel: "maxWidthLabel" }, outputs: { tcChange: "tcChange" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, CUSTOM_INPUT_VALIDATORS], ngImport: i0, template: "<div *ngIf=\"show_component\" class=\"tcloud-ui-multiples-values tc-dropdown\" id=\"area-{{ id }}\" [class.tc-parent-validation]=\"use_validation_required\">\r\n\r\n\r\n <form #_formulario=\"ngForm\">\r\n\r\n <!-- {{ input_items }} -->\r\n\r\n <div class=\"dropdown-toggle\" id=\"{{id}}\" [attr.aria-haspopup]=\"'true'\" [attr.aria-expanded]=\"'false'\">\r\n\r\n <table style=\"width: 100%;\">\r\n <tr>\r\n <td>\r\n <table class=\"group-input-action\">\r\n <tr>\r\n <td class=\"box-input{{ (listItems && (listItems).length > 0) ? '-data-list' : '' }} bc-l\">\r\n <ng-container *ngIf=\"listItems && (listItems).length > 0\">\r\n <div class=\"input\" (click)=\"show_itens = false\">\r\n <tcloud-ui-data-list [placeholder]=\"placeholder_list\" [search]=\"search\" [border]=\"false\" [loading]=\"loading\" [disabled]=\"disabled\" name=\"items\" [listItems]=\"listItems\" [(ngModel)]=\"input_items\" (onChange)=\"toEnterKey(input_items)\"></tcloud-ui-data-list>\r\n </div>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"!listItems || !(listItems && (listItems).length > 0)\">\r\n <div class=\"input\">\r\n <input \r\n required\r\n [pattern]=\"pattern\"\r\n (keydown.enter)=\"toEnterKey(input_items)\"\r\n [disabled]=\"disabled\"\r\n [class.text-lowercase]=\"lowercase\"\r\n [class.text-uppercase]=\"uppercase\" \r\n type=\"text\" name=\"items\" class=\"tc-form-control area-text\" [(ngModel)]=\"input_items\" [placeholder]=\"placeholder_list\" required [title]=\"placeholder_list\">\r\n \r\n </div>\r\n </ng-container>\r\n </td>\r\n <td class=\"count-list\" *ngIf=\"(items && items.length > 0)\">\r\n <div class=\"input\">\r\n <input type=\"text\" value=\"{{ items.length }} {{ (items.length > 1) ? 'registros' : 'registro' }}\" disabled readonly> \r\n </div>\r\n </td>\r\n <td class=\"count-list\" *ngIf=\"!items || (items && items.length === 0)\">\r\n <div class=\"input\"><input type=\"text\" class=\"info-no-value\" value=\"Vazio\" disabled readonly></div> \r\n </td>\r\n <td class=\"action-input-arrow bc-r\">\r\n <button (click)=\"toOpen()\" title=\"Lista de valores\" [disabled]=\"disabled\">\r\n <i class=\"fas fa-angle-up\" *ngIf=\"show_itens\"></i>\r\n <i class=\"fas fa-angle-down\" *ngIf=\"!show_itens\"></i>\r\n </button>\r\n </td>\r\n \r\n </tr>\r\n </table> \r\n </td>\r\n <td style=\"width: 45px;\" *ngIf=\"useBtnAdd\">\r\n <table>\r\n <tr>\r\n <td class=\"action-input\" *ngIf=\"!disabled\">\r\n <ng-container *ngIf=\"!listItems || !(listItems && (listItems).length > 0)\">\r\n <button [disabled]=\"!_formulario.valid\" class=\"tc-btn tc-btn-outline-primary\" (click)=\"add_items()\" title=\"Adicionar item\">\r\n <i class=\"fas fa-plus\"></i>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"listItems && (listItems).length > 0\">\r\n <button [disabled]=\"!_formulario.valid\" class=\"tc-btn tc-btn-outline-primary\" (click)=\"add_items_by_data_list(input_items)\" title=\"Adicionar item\">\r\n <i class=\"fas fa-plus\"></i>\r\n </button>\r\n </ng-container>\r\n </td>\r\n </tr>\r\n </table>\r\n </td>\r\n </tr>\r\n </table>\r\n\r\n </div>\r\n \r\n <!-- <pre>\r\n {{ items | json }}\r\n </pre> -->\r\n\r\n </form> \r\n\r\n <!-- box-itens-selected -->\r\n <div class=\"tc-dropdown-menu box-itens-selected {{ menu_on_top }}\" id=\"box-{{ id }}\" [attr.aria-labelledby]=\"id\" [class.to-hide]=\"!show_itens\" [style]=\"box_style\">\r\n \r\n\r\n <div class=\"line-search\">\r\n <table class=\"box-search\" *ngIf=\"items && (items).length > 5\">\r\n <tr>\r\n \r\n <td class=\"area-input\">\r\n <input type=\"text\" class=\"tc-form-control\" [(ngModel)]=\"search_text\" (input)=\"toSearch($event)\" placeholder=\"Buscar...\" > \r\n </td>\r\n \r\n <td class=\"area-icon\">\r\n <i *ngIf=\"search_text === ''\" class=\"fas fa-search icon-search\"></i>\r\n <button class=\"box-action\" type=\"button\" *ngIf=\"search_text !== ''\" (click)=\"clearTextSearch()\"><i class=\"fas fa-times\"></i></button>\r\n </td>\r\n \r\n </tr>\r\n </table>\r\n </div>\r\n\r\n <div class=\"area-options\" id=\"{{ id }}-options\">\r\n <ng-container *ngFor=\"let item of items; let i = index\">\r\n \r\n <label class=\"box-label\" [ngStyle]=\"(maxWidthLabel) ? {'max-width': maxWidthLabel} : null\">\r\n <div class=\"box-value\" [title]=\"item\" >\r\n {{ item }} \r\n </div>\r\n <div class=\"box-action\">\r\n <button\r\n class=\"box-action\"\r\n [disabled]=\"items === undefined || (items && items.length === 0) || disabled || loading\"\r\n title=\"Remover\"\r\n type=\"button\"\r\n (click)=\"removeItem(item, i)\">\r\n <i class=\"fas fa-times\"></i>\r\n </button>\r\n </div>\r\n </label>\r\n\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"mt-5\" *ngIf=\"items && (items).length > 5\">\r\n <div class=\"btn-remove-all\">\r\n <button class=\"box-action\" type=\"button\" (click)=\"remove_all()\">\r\n Limpar toda a lista\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>", styles: ["table{border-collapse:collapse}td,th{padding:0;margin:0}::placeholder{font-style:italic;color:#999;text-transform:none!important}.box-input{border:none!important;border-radius:5px 0 0 5px}.box-input .input{background-color:#fff;border-radius:5px 0 0 5px}.box-input .ng-invalid{border-color:transparent!important}.bc-l{background-color:#fff;border-left:1px solid var(--tc-gray-300)}.bc-r{background-color:#fff;border-right:1px solid var(--tc-gray-300)}.box-input-data-list{background-color:#fff;border:none!important;border-radius:5px 0 0 5px;height:42px;padding-left:5px}@media (max-width: 900px){.box-input-data-list{max-width:200px}}.group-input-action{width:100%;background-color:#fff}.group-input-action input{height:40px;border:none}.group-input-action td{height:40px;border-top:1px solid var(--tc-gray-300);border-bottom:1px solid var(--tc-gray-300);background-color:transparent!important}.count-list{border:none!important;width:90px;text-align:center;background:#fff}.count-list .input{background-color:transparent}.count-list .input input{height:40px;border:none;text-align:center;width:100px;background-color:transparent}.action-input-arrow{border:none!important;width:30px;background:transparent;position:relative;z-index:0}.action-input-arrow button{cursor:pointer;background-color:transparent;text-align:center;font-size:15px;border-top:none;border-right:none;border-bottom:none;border-left:none;width:30px;border-radius:0 3px 3px 0;position:relative;bottom:1px;color:#666}.action-input-arrow button i{position:relative;z-index:-1}.action-input{width:50px;padding-left:3px}.action-input .tc-btn{width:100%!important;padding:0;text-align:center;display:block;margin:0;height:40px;border:1px solid var(--tc-primary)!important;border-radius:3px!important;position:relative;left:5px!important}.action-input .tc-btn i{width:100%;text-align:center;padding:0!important;margin:0!important;font-size:18px;position:relative;top:1px}.box-itens-selected{display:block;padding:9px;background-color:#ededed;border-radius:4px;width:100%}.box-itens-selected .box-label{position:relative;display:inline-block;height:35px;min-width:60px;color:var(--tc-primary);padding:8px 24px 10px 15px;border:1px solid var(--tc-primary);border-radius:5px;margin:2px;background-color:var(--white);width:auto;max-width:100%}.box-itens-selected .box-label .box-value{width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.box-itens-selected .box-label div.box-action{position:absolute;right:4px;top:7px}.box-itens-selected .box-label div.box-action button{color:var(--tc-primary);background-color:transparent;border:none;font-weight:700;cursor:pointer}.box-itens-selected .box-label div.box-action button i{font-size:12px}.box-itens-selected .box-label div.box-action button:hover{color:var(--red)}.to-hide{display:none}.dropdown-toggle:after{display:none!important}.tc-dropdown{border-radius:.25rem;border:1px solid var(--tc-gray-300);padding:0 5px;position:relative}.tc-dropdown .tc-dropdown-menu{width:100%;border:1px solid var(--tc-gray-300);position:absolute;z-index:1;background-color:#f9f9f9}.tc-dropdown .area-options{padding-right:8px;max-height:200px;overflow-y:scroll;overflow-x:hidden}.tc-dropdown .menu-on-top{position:absolute}.line-search{padding:3px}.line-search .box-search{width:100%;border-collapse:collapse}.line-search .box-search td.area-icon{padding:4px 0 2px 8px;width:35px}.line-search .box-search td.area-icon .icon-search{color:#666}.line-search .box-search td.area-icon button{border:none;background-color:transparent;color:#999;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.line-search .box-search td.area-input{border:none}.line-search .box-search td.area-input input{width:100%}.line-search .box-search input{width:100%;font-size:13px;height:33px;border:1px solid var(--tc-gray-300);padding:10px}.btn-remove-all{text-align:right}.btn-remove-all button{background-color:transparent;border:none;color:#dd5353;cursor:pointer}.btn-remove-all button:hover{color:red!important}.info-no-value{color:#dd5353}.area-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.TCloudUiDataListComponent, selector: "tcloud-ui-data-list", inputs: ["placeholder", "disabled", "loading", "showInput", "search", "listItems", "open", "border", "ngModel"], outputs: ["onInputChange", "onChange", "onOpened", "onClosed", "ngModelChange"] }] }); }
315
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TCloudUiMultiplesValuesComponent, selector: "tcloud-ui-multiples-values", inputs: { listItems: "listItems", openValuesInChange: "openValuesInChange", useBtnAdd: "useBtnAdd", pattern: "pattern", delimiter: "delimiter", placeholder: "placeholder", disabled: "disabled", loading: "loading", required: "required", search: "search", uppercase: "uppercase", lowercase: "lowercase", maxWidthLabel: "maxWidthLabel" }, outputs: { tcChange: "tcChange" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, CUSTOM_INPUT_VALIDATORS], ngImport: i0, template: "<div *ngIf=\"show_component\" class=\"tcloud-ui-multiples-values tc-dropdown\" id=\"area-{{ id }}\" [class.tc-parent-validation]=\"use_validation_required\">\r\n\r\n\r\n <form #_formulario=\"ngForm\">\r\n\r\n <!-- {{ input_items }} -->\r\n\r\n <div class=\"dropdown-toggle\" id=\"{{id}}\" [attr.aria-haspopup]=\"'true'\" [attr.aria-expanded]=\"'false'\">\r\n\r\n <table style=\"width: 100%;\">\r\n <tr>\r\n <td>\r\n <table class=\"group-input-action\">\r\n <tr>\r\n <td class=\"box-input{{ (listItems && (listItems).length > 0) ? '-data-list' : '' }} bc-l\">\r\n <ng-container *ngIf=\"listItems && (listItems).length > 0\">\r\n <div class=\"input\" (click)=\"show_itens = false\">\r\n <tcloud-ui-data-list [placeholder]=\"placeholder_list\" [search]=\"search\" [border]=\"false\" [loading]=\"loading\" [disabled]=\"disabled\" name=\"items\" [(ngModel)]=\"input_items\" (onChange)=\"toEnterKey(input_items)\">\r\n <ng-container *ngFor=\"let item of listItems\"> \r\n <tcloud-ui-data-list-option [value]=\"'' + item.value\" [disabled]=\"checkIsDisabled(item)\">{{ item?.description }}</tcloud-ui-data-list-option>\r\n </ng-container>\r\n </tcloud-ui-data-list>\r\n </div>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"!listItems || !(listItems && (listItems).length > 0)\">\r\n <div class=\"input\">\r\n <input \r\n required\r\n [pattern]=\"pattern\"\r\n (keydown.enter)=\"toEnterKey(input_items)\"\r\n [disabled]=\"disabled\"\r\n [class.text-lowercase]=\"lowercase\"\r\n [class.text-uppercase]=\"uppercase\" \r\n type=\"text\" name=\"items\" class=\"tc-form-control area-text\" [(ngModel)]=\"input_items\" [placeholder]=\"placeholder_list\" required [title]=\"placeholder_list\">\r\n \r\n </div>\r\n </ng-container>\r\n </td>\r\n <td class=\"count-list\" *ngIf=\"(items && items.length > 0)\">\r\n <div class=\"input\">\r\n <input type=\"text\" value=\"{{ items.length }} {{ (items.length > 1) ? 'registros' : 'registro' }}\" disabled readonly> \r\n </div>\r\n </td>\r\n <td class=\"count-list\" *ngIf=\"!items || (items && items.length === 0)\">\r\n <div class=\"input\"><input type=\"text\" class=\"info-no-value\" value=\"Vazio\" disabled readonly></div> \r\n </td>\r\n <td class=\"action-input-arrow bc-r\">\r\n <button (click)=\"toOpen()\" title=\"Lista de valores\" [disabled]=\"disabled\">\r\n <i class=\"fas fa-angle-up\" *ngIf=\"show_itens\"></i>\r\n <i class=\"fas fa-angle-down\" *ngIf=\"!show_itens\"></i>\r\n </button>\r\n </td>\r\n \r\n </tr>\r\n </table> \r\n </td>\r\n <td style=\"width: 45px;\" *ngIf=\"useBtnAdd\">\r\n <table>\r\n <tr>\r\n <td class=\"action-input\" *ngIf=\"!disabled\">\r\n <ng-container *ngIf=\"!listItems || !(listItems && (listItems).length > 0)\">\r\n <button [disabled]=\"!_formulario.valid\" class=\"tc-btn tc-btn-outline-primary\" (click)=\"add_items()\" title=\"Adicionar item\">\r\n <i class=\"fas fa-plus\"></i>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"listItems && (listItems).length > 0\">\r\n <button [disabled]=\"!_formulario.valid\" class=\"tc-btn tc-btn-outline-primary\" (click)=\"add_items_by_data_list(input_items)\" title=\"Adicionar item\">\r\n <i class=\"fas fa-plus\"></i>\r\n </button>\r\n </ng-container>\r\n </td>\r\n </tr>\r\n </table>\r\n </td>\r\n </tr>\r\n </table>\r\n\r\n </div>\r\n \r\n <!-- <pre>\r\n {{ items | json }}\r\n </pre> -->\r\n\r\n </form> \r\n\r\n <!-- box-itens-selected -->\r\n <div class=\"tc-dropdown-menu box-itens-selected {{ menu_on_top }}\" id=\"box-{{ id }}\" [attr.aria-labelledby]=\"id\" [class.to-hide]=\"!show_itens\" [style]=\"box_style\">\r\n \r\n\r\n <div class=\"line-search\">\r\n <table class=\"box-search\" *ngIf=\"items && (items).length > 5\">\r\n <tr>\r\n \r\n <td class=\"area-input\">\r\n <input type=\"text\" class=\"tc-form-control\" [(ngModel)]=\"search_text\" (input)=\"toSearch($event)\" placeholder=\"Buscar...\" > \r\n </td>\r\n \r\n <td class=\"area-icon\">\r\n <i *ngIf=\"search_text === ''\" class=\"fas fa-search icon-search\"></i>\r\n <button class=\"box-action\" type=\"button\" *ngIf=\"search_text !== ''\" (click)=\"clearTextSearch()\"><i class=\"fas fa-times\"></i></button>\r\n </td>\r\n \r\n </tr>\r\n </table>\r\n </div>\r\n\r\n <div class=\"area-options\" id=\"{{ id }}-options\">\r\n <ng-container *ngFor=\"let item of items; let i = index\">\r\n \r\n <label class=\"box-label\" [ngStyle]=\"(maxWidthLabel) ? {'max-width': maxWidthLabel} : null\">\r\n <div class=\"box-value\" [title]=\"item\" >\r\n {{ item }} \r\n </div>\r\n <div class=\"box-action\">\r\n <button\r\n class=\"box-action\"\r\n [disabled]=\"items === undefined || (items && items.length === 0) || disabled || loading\"\r\n title=\"Remover\"\r\n type=\"button\"\r\n (click)=\"removeItem(item, i)\">\r\n <i class=\"fas fa-times\"></i>\r\n </button>\r\n </div>\r\n </label>\r\n\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"mt-5\" *ngIf=\"items && (items).length > 5\">\r\n <div class=\"btn-remove-all\">\r\n <button class=\"box-action\" type=\"button\" (click)=\"remove_all()\">\r\n Limpar toda a lista\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>", styles: ["table{border-collapse:collapse}td,th{padding:0;margin:0}::placeholder{font-style:italic;color:#999;text-transform:none!important}.box-input{border:none!important;border-radius:5px 0 0 5px}.box-input .input{background-color:#fff;border-radius:5px 0 0 5px}.box-input .ng-invalid{border-color:transparent!important}.bc-l{background-color:#fff;border-left:1px solid var(--tc-gray-300)}.bc-r{background-color:#fff;border-right:1px solid var(--tc-gray-300)}.box-input-data-list{background-color:#fff;border:none!important;border-radius:5px 0 0 5px;height:42px;padding-left:5px;max-width:150px}@media (max-width: 900px){.box-input-data-list{max-width:200px}}.group-input-action{width:100%;background-color:#fff}.group-input-action input{height:40px;border:none}.group-input-action td{height:40px;border-top:1px solid var(--tc-gray-300);border-bottom:1px solid var(--tc-gray-300);background-color:transparent!important}.count-list{border:none!important;width:70px;text-align:center;background:#fff}.count-list .input{width:76px;background-color:transparent}.count-list .input input{height:40px;border:none;text-align:center;width:100px;background-color:transparent}.action-input-arrow{border:none!important;width:30px;background:transparent;position:relative;z-index:0}.action-input-arrow button{cursor:pointer;background-color:transparent;text-align:center;font-size:15px;border-top:none;border-right:none;border-bottom:none;border-left:none;width:30px;border-radius:0 3px 3px 0;position:relative;bottom:1px;color:#666}.action-input-arrow button i{position:relative;z-index:-1}.action-input{width:50px;padding-left:3px}.action-input .tc-btn{width:100%!important;padding:0;text-align:center;display:block;margin:0;height:40px;border:1px solid var(--tc-primary)!important;border-radius:3px!important;position:relative;left:5px!important}.action-input .tc-btn i{width:100%;text-align:center;padding:0!important;margin:0!important;font-size:18px;position:relative;top:1px}.box-itens-selected{display:block;padding:9px;background-color:#ededed;border-radius:4px;width:100%}.box-itens-selected .box-label{position:relative;display:inline-block;height:35px;min-width:60px;color:var(--tc-primary);padding:8px 24px 10px 15px;border:1px solid var(--tc-primary);border-radius:5px;margin:2px;background-color:var(--white);width:auto;max-width:100%}.box-itens-selected .box-label .box-value{width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.box-itens-selected .box-label div.box-action{position:absolute;right:4px;top:7px}.box-itens-selected .box-label div.box-action button{color:var(--tc-primary);background-color:transparent;border:none;font-weight:700;cursor:pointer}.box-itens-selected .box-label div.box-action button i{font-size:12px}.box-itens-selected .box-label div.box-action button:hover{color:var(--red)}.to-hide{display:none}.dropdown-toggle:after{display:none!important}.tc-dropdown{min-width:300px;border-radius:.25rem;border:1px solid var(--tc-gray-300);padding:0 5px;position:relative}.tc-dropdown .tc-dropdown-menu{width:100%;border:1px solid var(--tc-gray-300);position:absolute;z-index:1;background-color:#f9f9f9}.tc-dropdown .area-options{padding-right:8px;max-height:200px;overflow-y:scroll;overflow-x:hidden}.tc-dropdown .menu-on-top{position:absolute}.line-search{padding:3px}.line-search .box-search{width:100%;border-collapse:collapse}.line-search .box-search td.area-icon{padding:4px 0 2px 8px;width:35px}.line-search .box-search td.area-icon .icon-search{color:#666}.line-search .box-search td.area-icon button{border:none;background-color:transparent;color:#999;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.line-search .box-search td.area-input{border:none}.line-search .box-search td.area-input input{width:100%}.line-search .box-search input{width:100%;font-size:13px;height:33px;border:1px solid var(--tc-gray-300);padding:10px}.btn-remove-all{text-align:right}.btn-remove-all button{background-color:transparent;border:none;color:#dd5353;cursor:pointer}.btn-remove-all button:hover{color:red!important}.info-no-value{color:#dd5353}.area-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.TCloudUiDataListComponent, selector: "tcloud-ui-data-list", inputs: ["placeholder", "disabled", "loading", "showInput", "search", "listItems", "open", "border", "ngModel"], outputs: ["onInputChange", "onChange", "onOpened", "onClosed", "ngModelChange"] }, { kind: "component", type: i4.TCloudUiDataListOptionComponent, selector: "tcloud-ui-data-list-option", inputs: ["disabled", "value"], outputs: ["selected"] }] }); }
300
316
  }
301
317
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TCloudUiMultiplesValuesComponent, decorators: [{
302
318
  type: Component,
303
- args: [{ selector: 'tcloud-ui-multiples-values', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, CUSTOM_INPUT_VALIDATORS], template: "<div *ngIf=\"show_component\" class=\"tcloud-ui-multiples-values tc-dropdown\" id=\"area-{{ id }}\" [class.tc-parent-validation]=\"use_validation_required\">\r\n\r\n\r\n <form #_formulario=\"ngForm\">\r\n\r\n <!-- {{ input_items }} -->\r\n\r\n <div class=\"dropdown-toggle\" id=\"{{id}}\" [attr.aria-haspopup]=\"'true'\" [attr.aria-expanded]=\"'false'\">\r\n\r\n <table style=\"width: 100%;\">\r\n <tr>\r\n <td>\r\n <table class=\"group-input-action\">\r\n <tr>\r\n <td class=\"box-input{{ (listItems && (listItems).length > 0) ? '-data-list' : '' }} bc-l\">\r\n <ng-container *ngIf=\"listItems && (listItems).length > 0\">\r\n <div class=\"input\" (click)=\"show_itens = false\">\r\n <tcloud-ui-data-list [placeholder]=\"placeholder_list\" [search]=\"search\" [border]=\"false\" [loading]=\"loading\" [disabled]=\"disabled\" name=\"items\" [listItems]=\"listItems\" [(ngModel)]=\"input_items\" (onChange)=\"toEnterKey(input_items)\"></tcloud-ui-data-list>\r\n </div>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"!listItems || !(listItems && (listItems).length > 0)\">\r\n <div class=\"input\">\r\n <input \r\n required\r\n [pattern]=\"pattern\"\r\n (keydown.enter)=\"toEnterKey(input_items)\"\r\n [disabled]=\"disabled\"\r\n [class.text-lowercase]=\"lowercase\"\r\n [class.text-uppercase]=\"uppercase\" \r\n type=\"text\" name=\"items\" class=\"tc-form-control area-text\" [(ngModel)]=\"input_items\" [placeholder]=\"placeholder_list\" required [title]=\"placeholder_list\">\r\n \r\n </div>\r\n </ng-container>\r\n </td>\r\n <td class=\"count-list\" *ngIf=\"(items && items.length > 0)\">\r\n <div class=\"input\">\r\n <input type=\"text\" value=\"{{ items.length }} {{ (items.length > 1) ? 'registros' : 'registro' }}\" disabled readonly> \r\n </div>\r\n </td>\r\n <td class=\"count-list\" *ngIf=\"!items || (items && items.length === 0)\">\r\n <div class=\"input\"><input type=\"text\" class=\"info-no-value\" value=\"Vazio\" disabled readonly></div> \r\n </td>\r\n <td class=\"action-input-arrow bc-r\">\r\n <button (click)=\"toOpen()\" title=\"Lista de valores\" [disabled]=\"disabled\">\r\n <i class=\"fas fa-angle-up\" *ngIf=\"show_itens\"></i>\r\n <i class=\"fas fa-angle-down\" *ngIf=\"!show_itens\"></i>\r\n </button>\r\n </td>\r\n \r\n </tr>\r\n </table> \r\n </td>\r\n <td style=\"width: 45px;\" *ngIf=\"useBtnAdd\">\r\n <table>\r\n <tr>\r\n <td class=\"action-input\" *ngIf=\"!disabled\">\r\n <ng-container *ngIf=\"!listItems || !(listItems && (listItems).length > 0)\">\r\n <button [disabled]=\"!_formulario.valid\" class=\"tc-btn tc-btn-outline-primary\" (click)=\"add_items()\" title=\"Adicionar item\">\r\n <i class=\"fas fa-plus\"></i>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"listItems && (listItems).length > 0\">\r\n <button [disabled]=\"!_formulario.valid\" class=\"tc-btn tc-btn-outline-primary\" (click)=\"add_items_by_data_list(input_items)\" title=\"Adicionar item\">\r\n <i class=\"fas fa-plus\"></i>\r\n </button>\r\n </ng-container>\r\n </td>\r\n </tr>\r\n </table>\r\n </td>\r\n </tr>\r\n </table>\r\n\r\n </div>\r\n \r\n <!-- <pre>\r\n {{ items | json }}\r\n </pre> -->\r\n\r\n </form> \r\n\r\n <!-- box-itens-selected -->\r\n <div class=\"tc-dropdown-menu box-itens-selected {{ menu_on_top }}\" id=\"box-{{ id }}\" [attr.aria-labelledby]=\"id\" [class.to-hide]=\"!show_itens\" [style]=\"box_style\">\r\n \r\n\r\n <div class=\"line-search\">\r\n <table class=\"box-search\" *ngIf=\"items && (items).length > 5\">\r\n <tr>\r\n \r\n <td class=\"area-input\">\r\n <input type=\"text\" class=\"tc-form-control\" [(ngModel)]=\"search_text\" (input)=\"toSearch($event)\" placeholder=\"Buscar...\" > \r\n </td>\r\n \r\n <td class=\"area-icon\">\r\n <i *ngIf=\"search_text === ''\" class=\"fas fa-search icon-search\"></i>\r\n <button class=\"box-action\" type=\"button\" *ngIf=\"search_text !== ''\" (click)=\"clearTextSearch()\"><i class=\"fas fa-times\"></i></button>\r\n </td>\r\n \r\n </tr>\r\n </table>\r\n </div>\r\n\r\n <div class=\"area-options\" id=\"{{ id }}-options\">\r\n <ng-container *ngFor=\"let item of items; let i = index\">\r\n \r\n <label class=\"box-label\" [ngStyle]=\"(maxWidthLabel) ? {'max-width': maxWidthLabel} : null\">\r\n <div class=\"box-value\" [title]=\"item\" >\r\n {{ item }} \r\n </div>\r\n <div class=\"box-action\">\r\n <button\r\n class=\"box-action\"\r\n [disabled]=\"items === undefined || (items && items.length === 0) || disabled || loading\"\r\n title=\"Remover\"\r\n type=\"button\"\r\n (click)=\"removeItem(item, i)\">\r\n <i class=\"fas fa-times\"></i>\r\n </button>\r\n </div>\r\n </label>\r\n\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"mt-5\" *ngIf=\"items && (items).length > 5\">\r\n <div class=\"btn-remove-all\">\r\n <button class=\"box-action\" type=\"button\" (click)=\"remove_all()\">\r\n Limpar toda a lista\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>", styles: ["table{border-collapse:collapse}td,th{padding:0;margin:0}::placeholder{font-style:italic;color:#999;text-transform:none!important}.box-input{border:none!important;border-radius:5px 0 0 5px}.box-input .input{background-color:#fff;border-radius:5px 0 0 5px}.box-input .ng-invalid{border-color:transparent!important}.bc-l{background-color:#fff;border-left:1px solid var(--tc-gray-300)}.bc-r{background-color:#fff;border-right:1px solid var(--tc-gray-300)}.box-input-data-list{background-color:#fff;border:none!important;border-radius:5px 0 0 5px;height:42px;padding-left:5px}@media (max-width: 900px){.box-input-data-list{max-width:200px}}.group-input-action{width:100%;background-color:#fff}.group-input-action input{height:40px;border:none}.group-input-action td{height:40px;border-top:1px solid var(--tc-gray-300);border-bottom:1px solid var(--tc-gray-300);background-color:transparent!important}.count-list{border:none!important;width:90px;text-align:center;background:#fff}.count-list .input{background-color:transparent}.count-list .input input{height:40px;border:none;text-align:center;width:100px;background-color:transparent}.action-input-arrow{border:none!important;width:30px;background:transparent;position:relative;z-index:0}.action-input-arrow button{cursor:pointer;background-color:transparent;text-align:center;font-size:15px;border-top:none;border-right:none;border-bottom:none;border-left:none;width:30px;border-radius:0 3px 3px 0;position:relative;bottom:1px;color:#666}.action-input-arrow button i{position:relative;z-index:-1}.action-input{width:50px;padding-left:3px}.action-input .tc-btn{width:100%!important;padding:0;text-align:center;display:block;margin:0;height:40px;border:1px solid var(--tc-primary)!important;border-radius:3px!important;position:relative;left:5px!important}.action-input .tc-btn i{width:100%;text-align:center;padding:0!important;margin:0!important;font-size:18px;position:relative;top:1px}.box-itens-selected{display:block;padding:9px;background-color:#ededed;border-radius:4px;width:100%}.box-itens-selected .box-label{position:relative;display:inline-block;height:35px;min-width:60px;color:var(--tc-primary);padding:8px 24px 10px 15px;border:1px solid var(--tc-primary);border-radius:5px;margin:2px;background-color:var(--white);width:auto;max-width:100%}.box-itens-selected .box-label .box-value{width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.box-itens-selected .box-label div.box-action{position:absolute;right:4px;top:7px}.box-itens-selected .box-label div.box-action button{color:var(--tc-primary);background-color:transparent;border:none;font-weight:700;cursor:pointer}.box-itens-selected .box-label div.box-action button i{font-size:12px}.box-itens-selected .box-label div.box-action button:hover{color:var(--red)}.to-hide{display:none}.dropdown-toggle:after{display:none!important}.tc-dropdown{border-radius:.25rem;border:1px solid var(--tc-gray-300);padding:0 5px;position:relative}.tc-dropdown .tc-dropdown-menu{width:100%;border:1px solid var(--tc-gray-300);position:absolute;z-index:1;background-color:#f9f9f9}.tc-dropdown .area-options{padding-right:8px;max-height:200px;overflow-y:scroll;overflow-x:hidden}.tc-dropdown .menu-on-top{position:absolute}.line-search{padding:3px}.line-search .box-search{width:100%;border-collapse:collapse}.line-search .box-search td.area-icon{padding:4px 0 2px 8px;width:35px}.line-search .box-search td.area-icon .icon-search{color:#666}.line-search .box-search td.area-icon button{border:none;background-color:transparent;color:#999;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.line-search .box-search td.area-input{border:none}.line-search .box-search td.area-input input{width:100%}.line-search .box-search input{width:100%;font-size:13px;height:33px;border:1px solid var(--tc-gray-300);padding:10px}.btn-remove-all{text-align:right}.btn-remove-all button{background-color:transparent;border:none;color:#dd5353;cursor:pointer}.btn-remove-all button:hover{color:red!important}.info-no-value{color:#dd5353}.area-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}\n"] }]
319
+ args: [{ selector: 'tcloud-ui-multiples-values', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, CUSTOM_INPUT_VALIDATORS], template: "<div *ngIf=\"show_component\" class=\"tcloud-ui-multiples-values tc-dropdown\" id=\"area-{{ id }}\" [class.tc-parent-validation]=\"use_validation_required\">\r\n\r\n\r\n <form #_formulario=\"ngForm\">\r\n\r\n <!-- {{ input_items }} -->\r\n\r\n <div class=\"dropdown-toggle\" id=\"{{id}}\" [attr.aria-haspopup]=\"'true'\" [attr.aria-expanded]=\"'false'\">\r\n\r\n <table style=\"width: 100%;\">\r\n <tr>\r\n <td>\r\n <table class=\"group-input-action\">\r\n <tr>\r\n <td class=\"box-input{{ (listItems && (listItems).length > 0) ? '-data-list' : '' }} bc-l\">\r\n <ng-container *ngIf=\"listItems && (listItems).length > 0\">\r\n <div class=\"input\" (click)=\"show_itens = false\">\r\n <tcloud-ui-data-list [placeholder]=\"placeholder_list\" [search]=\"search\" [border]=\"false\" [loading]=\"loading\" [disabled]=\"disabled\" name=\"items\" [(ngModel)]=\"input_items\" (onChange)=\"toEnterKey(input_items)\">\r\n <ng-container *ngFor=\"let item of listItems\"> \r\n <tcloud-ui-data-list-option [value]=\"'' + item.value\" [disabled]=\"checkIsDisabled(item)\">{{ item?.description }}</tcloud-ui-data-list-option>\r\n </ng-container>\r\n </tcloud-ui-data-list>\r\n </div>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"!listItems || !(listItems && (listItems).length > 0)\">\r\n <div class=\"input\">\r\n <input \r\n required\r\n [pattern]=\"pattern\"\r\n (keydown.enter)=\"toEnterKey(input_items)\"\r\n [disabled]=\"disabled\"\r\n [class.text-lowercase]=\"lowercase\"\r\n [class.text-uppercase]=\"uppercase\" \r\n type=\"text\" name=\"items\" class=\"tc-form-control area-text\" [(ngModel)]=\"input_items\" [placeholder]=\"placeholder_list\" required [title]=\"placeholder_list\">\r\n \r\n </div>\r\n </ng-container>\r\n </td>\r\n <td class=\"count-list\" *ngIf=\"(items && items.length > 0)\">\r\n <div class=\"input\">\r\n <input type=\"text\" value=\"{{ items.length }} {{ (items.length > 1) ? 'registros' : 'registro' }}\" disabled readonly> \r\n </div>\r\n </td>\r\n <td class=\"count-list\" *ngIf=\"!items || (items && items.length === 0)\">\r\n <div class=\"input\"><input type=\"text\" class=\"info-no-value\" value=\"Vazio\" disabled readonly></div> \r\n </td>\r\n <td class=\"action-input-arrow bc-r\">\r\n <button (click)=\"toOpen()\" title=\"Lista de valores\" [disabled]=\"disabled\">\r\n <i class=\"fas fa-angle-up\" *ngIf=\"show_itens\"></i>\r\n <i class=\"fas fa-angle-down\" *ngIf=\"!show_itens\"></i>\r\n </button>\r\n </td>\r\n \r\n </tr>\r\n </table> \r\n </td>\r\n <td style=\"width: 45px;\" *ngIf=\"useBtnAdd\">\r\n <table>\r\n <tr>\r\n <td class=\"action-input\" *ngIf=\"!disabled\">\r\n <ng-container *ngIf=\"!listItems || !(listItems && (listItems).length > 0)\">\r\n <button [disabled]=\"!_formulario.valid\" class=\"tc-btn tc-btn-outline-primary\" (click)=\"add_items()\" title=\"Adicionar item\">\r\n <i class=\"fas fa-plus\"></i>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"listItems && (listItems).length > 0\">\r\n <button [disabled]=\"!_formulario.valid\" class=\"tc-btn tc-btn-outline-primary\" (click)=\"add_items_by_data_list(input_items)\" title=\"Adicionar item\">\r\n <i class=\"fas fa-plus\"></i>\r\n </button>\r\n </ng-container>\r\n </td>\r\n </tr>\r\n </table>\r\n </td>\r\n </tr>\r\n </table>\r\n\r\n </div>\r\n \r\n <!-- <pre>\r\n {{ items | json }}\r\n </pre> -->\r\n\r\n </form> \r\n\r\n <!-- box-itens-selected -->\r\n <div class=\"tc-dropdown-menu box-itens-selected {{ menu_on_top }}\" id=\"box-{{ id }}\" [attr.aria-labelledby]=\"id\" [class.to-hide]=\"!show_itens\" [style]=\"box_style\">\r\n \r\n\r\n <div class=\"line-search\">\r\n <table class=\"box-search\" *ngIf=\"items && (items).length > 5\">\r\n <tr>\r\n \r\n <td class=\"area-input\">\r\n <input type=\"text\" class=\"tc-form-control\" [(ngModel)]=\"search_text\" (input)=\"toSearch($event)\" placeholder=\"Buscar...\" > \r\n </td>\r\n \r\n <td class=\"area-icon\">\r\n <i *ngIf=\"search_text === ''\" class=\"fas fa-search icon-search\"></i>\r\n <button class=\"box-action\" type=\"button\" *ngIf=\"search_text !== ''\" (click)=\"clearTextSearch()\"><i class=\"fas fa-times\"></i></button>\r\n </td>\r\n \r\n </tr>\r\n </table>\r\n </div>\r\n\r\n <div class=\"area-options\" id=\"{{ id }}-options\">\r\n <ng-container *ngFor=\"let item of items; let i = index\">\r\n \r\n <label class=\"box-label\" [ngStyle]=\"(maxWidthLabel) ? {'max-width': maxWidthLabel} : null\">\r\n <div class=\"box-value\" [title]=\"item\" >\r\n {{ item }} \r\n </div>\r\n <div class=\"box-action\">\r\n <button\r\n class=\"box-action\"\r\n [disabled]=\"items === undefined || (items && items.length === 0) || disabled || loading\"\r\n title=\"Remover\"\r\n type=\"button\"\r\n (click)=\"removeItem(item, i)\">\r\n <i class=\"fas fa-times\"></i>\r\n </button>\r\n </div>\r\n </label>\r\n\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"mt-5\" *ngIf=\"items && (items).length > 5\">\r\n <div class=\"btn-remove-all\">\r\n <button class=\"box-action\" type=\"button\" (click)=\"remove_all()\">\r\n Limpar toda a lista\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>", styles: ["table{border-collapse:collapse}td,th{padding:0;margin:0}::placeholder{font-style:italic;color:#999;text-transform:none!important}.box-input{border:none!important;border-radius:5px 0 0 5px}.box-input .input{background-color:#fff;border-radius:5px 0 0 5px}.box-input .ng-invalid{border-color:transparent!important}.bc-l{background-color:#fff;border-left:1px solid var(--tc-gray-300)}.bc-r{background-color:#fff;border-right:1px solid var(--tc-gray-300)}.box-input-data-list{background-color:#fff;border:none!important;border-radius:5px 0 0 5px;height:42px;padding-left:5px;max-width:150px}@media (max-width: 900px){.box-input-data-list{max-width:200px}}.group-input-action{width:100%;background-color:#fff}.group-input-action input{height:40px;border:none}.group-input-action td{height:40px;border-top:1px solid var(--tc-gray-300);border-bottom:1px solid var(--tc-gray-300);background-color:transparent!important}.count-list{border:none!important;width:70px;text-align:center;background:#fff}.count-list .input{width:76px;background-color:transparent}.count-list .input input{height:40px;border:none;text-align:center;width:100px;background-color:transparent}.action-input-arrow{border:none!important;width:30px;background:transparent;position:relative;z-index:0}.action-input-arrow button{cursor:pointer;background-color:transparent;text-align:center;font-size:15px;border-top:none;border-right:none;border-bottom:none;border-left:none;width:30px;border-radius:0 3px 3px 0;position:relative;bottom:1px;color:#666}.action-input-arrow button i{position:relative;z-index:-1}.action-input{width:50px;padding-left:3px}.action-input .tc-btn{width:100%!important;padding:0;text-align:center;display:block;margin:0;height:40px;border:1px solid var(--tc-primary)!important;border-radius:3px!important;position:relative;left:5px!important}.action-input .tc-btn i{width:100%;text-align:center;padding:0!important;margin:0!important;font-size:18px;position:relative;top:1px}.box-itens-selected{display:block;padding:9px;background-color:#ededed;border-radius:4px;width:100%}.box-itens-selected .box-label{position:relative;display:inline-block;height:35px;min-width:60px;color:var(--tc-primary);padding:8px 24px 10px 15px;border:1px solid var(--tc-primary);border-radius:5px;margin:2px;background-color:var(--white);width:auto;max-width:100%}.box-itens-selected .box-label .box-value{width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.box-itens-selected .box-label div.box-action{position:absolute;right:4px;top:7px}.box-itens-selected .box-label div.box-action button{color:var(--tc-primary);background-color:transparent;border:none;font-weight:700;cursor:pointer}.box-itens-selected .box-label div.box-action button i{font-size:12px}.box-itens-selected .box-label div.box-action button:hover{color:var(--red)}.to-hide{display:none}.dropdown-toggle:after{display:none!important}.tc-dropdown{min-width:300px;border-radius:.25rem;border:1px solid var(--tc-gray-300);padding:0 5px;position:relative}.tc-dropdown .tc-dropdown-menu{width:100%;border:1px solid var(--tc-gray-300);position:absolute;z-index:1;background-color:#f9f9f9}.tc-dropdown .area-options{padding-right:8px;max-height:200px;overflow-y:scroll;overflow-x:hidden}.tc-dropdown .menu-on-top{position:absolute}.line-search{padding:3px}.line-search .box-search{width:100%;border-collapse:collapse}.line-search .box-search td.area-icon{padding:4px 0 2px 8px;width:35px}.line-search .box-search td.area-icon .icon-search{color:#666}.line-search .box-search td.area-icon button{border:none;background-color:transparent;color:#999;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.line-search .box-search td.area-input{border:none}.line-search .box-search td.area-input input{width:100%}.line-search .box-search input{width:100%;font-size:13px;height:33px;border:1px solid var(--tc-gray-300);padding:10px}.btn-remove-all{text-align:right}.btn-remove-all button{background-color:transparent;border:none;color:#dd5353;cursor:pointer}.btn-remove-all button:hover{color:red!important}.info-no-value{color:#dd5353}.area-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}\n"] }]
304
320
  }], ctorParameters: function () { return []; }, propDecorators: { listItems: [{
305
321
  type: Input
306
322
  }], openValuesInChange: [{
@@ -330,4 +346,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
330
346
  }], tcChange: [{
331
347
  type: Output
332
348
  }] } });
333
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLW11bHRpcGxlcy12YWx1ZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLW11bHRpcGxlcy12YWx1ZXMvdGNsb3VkLXVpLW11bHRpcGxlcy12YWx1ZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLW11bHRpcGxlcy12YWx1ZXMvdGNsb3VkLXVpLW11bHRpcGxlcy12YWx1ZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFVBQVUsRUFBeUIsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3SCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUEwQixNQUFNLGdCQUFnQixDQUFDOzs7OztBQUUxRixNQUFPLHVCQUF1QixHQUFRO0lBQ3BDLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZ0NBQWdDLENBQUM7SUFDL0QsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFBO0FBRUQsTUFBTSxtQ0FBbUMsR0FBUTtJQUMvQyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZ0NBQWdDLENBQUM7SUFDL0QsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUYsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFO0FBQ2xCLENBQUMsQ0FBQztBQVFGLE1BQU0sT0FBTyxnQ0FBZ0M7SUFtQjNDLElBQWEsU0FBUyxDQUFDLENBQWtCO1FBQ3ZDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFD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RUcsYUFBYTtzQkFBckIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIGZvcndhcmRSZWYsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IsIE5HX1ZBTElEQVRPUlMsIEZvcm1Db250cm9sLCBWYWxpZGF0b3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5jb25zdCAgQ1VTVE9NX0lOUFVUX1ZBTElEQVRPUlM6IGFueSA9IHsgXHJcbiAgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgXHJcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVENsb3VkVWlNdWx0aXBsZXNWYWx1ZXNDb21wb25lbnQpLFxyXG4gIG11bHRpOiB0cnVlXHJcbn1cclxuXHJcbmNvbnN0IENVU1RPTV9JTlBVVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XHJcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVENsb3VkVWlNdWx0aXBsZXNWYWx1ZXNDb21wb25lbnQpLFxyXG4gIG11bHRpOiB0cnVlXHJcbn07XHJcblxyXG5jb25zdCBub29wID0gKCkgPT4ge1xyXG59O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0Y2xvdWQtdWktbXVsdGlwbGVzLXZhbHVlcycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RjbG91ZC11aS1tdWx0aXBsZXMtdmFsdWVzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90Y2xvdWQtdWktbXVsdGlwbGVzLXZhbHVlcy5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW0NVU1RPTV9JTlBVVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SLCBDVVNUT01fSU5QVVRfVkFMSURBVE9SU11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRDbG91ZFVpTXVsdGlwbGVzVmFsdWVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIFZhbGlkYXRvciAge1xyXG5cclxuICB2aWV3cG9ydF93aWR0aDogbnVtYmVyID0gMDtcclxuICB2aWV3cG9ydF9oZWlnaHQ6IG51bWJlciA9IDA7XHJcbiAgYm94X2hlaWdodDogbnVtYmVyID0gMDtcclxuICBib3hfc3R5bGU6IHN0cmluZyA9ICcnO1xyXG4gIG1lbnVfb25fdG9wOiBzdHJpbmcgPSAnJztcclxuICBzZWFyY2hfdGV4dDogc3RyaW5nID0gJyc7XHJcblxyXG4gIGlkOiBzdHJpbmcgPSAnJztcclxuICBzaG93X2l0ZW5zOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd19jb21wb25lbnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBcclxuXHJcbiAgaW5wdXRfaXRlbXM6IHN0cmluZyA9ICcnO1xyXG5cclxuICBpdGVtcyA9IFtdIGFzIHN0cmluZ1tdO1xyXG5cclxuICBwcml2YXRlIF9saXN0SXRlbXM6IGFueSB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBzZXQgbGlzdEl0ZW1zKHY6IGFueSB8IHVuZGVmaW5lZCl7XHJcbiAgICBpZiggdiAhPT0gdGhpcy5fbGlzdEl0ZW1zICl7XHJcbiAgICAgIHRoaXMuX2xpc3RJdGVtcyA9IHY7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldCBsaXN0SXRlbXMoKTphbnkgfCB1bmRlZmluZWQgeyByZXR1cm4gdGhpcy5fbGlzdEl0ZW1zOyB9XHJcbiBcclxuICBASW5wdXQoKSBvcGVuVmFsdWVzSW5DaGFuZ2U6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHVzZUJ0bkFkZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIHBhdHRlcm46IFJlZ0V4cCB8IGFueSA9IG51bGw7XHJcbiAgQElucHV0KCkgZGVsaW1pdGVyOiBzdHJpbmcgPSAnLCc7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgc2VhcmNoOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSB1cHBlcmNhc2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBsb3dlcmNhc2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgbWF4V2lkdGhMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICBAT3V0cHV0KCkgdGNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgdXNlX3ZhbGlkYXRpb25fcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcGxhY2Vob2xkZXJfbGlzdDogc3RyaW5nID0gJyc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pZCA9IHRoaXMuZ2VuZXJhdGVJRCgpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7ICAgICAgXHJcbiAgICAgIHRoaXMuc2hvd19jb21wb25lbnQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnRvUmVzaXplKCk7XHJcbiAgICAgIHRoaXMudG9DbGljaygpO1xyXG4gICAgICB0aGlzLnNldF9wbGFjZWhvbGRlcl9saXN0KCk7ICAgICAgIFxyXG4gICAgfSk7ICAgIFxyXG4gIH1cclxuXHJcbiAgY2hlY2tfaXNfdmFsaWQoKTogYm9vbGVhbntcclxuICAgIGlmKCB0aGlzLml0ZW1zICl7XHJcbiAgICAgIHJldHVybiAoKHRoaXMuaXRlbXMpLmxlbmd0aCA+IDApID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVJRCgpOiBzdHJpbmd7XHJcbiAgICByZXR1cm4gYG11bHRpcGxlLXZhbHVlcy0ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIERhdGUubm93KCkpKX1gO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlX2R1cGxpY2F0ZXMoaXRlbXM6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIFsuLi5uZXcgU2V0KGl0ZW1zKV07XHJcbiAgfVxyXG5cclxuIFxyXG4gIGFkZF9pdGVtc19ieV9kYXRhX2xpc3QoZTogYW55KXtcclxuICAgIHRoaXMuaW5wdXRfaXRlbXMgPSBlO1xyXG4gICAgdGhpcy5hZGRfaXRlbXMoKTtcclxuICB9XHJcblxyXG4gIGFkZF9pdGVtcygpe1xyXG5cclxuICAgIGlmKCB0aGlzLmRpc2FibGVkICl7IHJldHVybjsgfVxyXG5cclxuICAgIGNvbnN0IGlucHV0X2l0ZW1zID0gdGhpcy5pbnB1dF9pdGVtcztcclxuXHJcbiAgICB0aGlzLmlucHV0X2l0ZW1zID0gJyc7XHJcbiAgICBcclxuICAgIGxldCBpdGVtcyA9IFtdO1xyXG4gICAgaWYoIGlucHV0X2l0ZW1zICYmIGlucHV0X2l0ZW1zICE9PSAnJyApe1xyXG5cclxuICAgICAgaXRlbXMgPSA8YW55PiAoaW5wdXRfaXRlbXMpLnNwbGl0KHRoaXMuZGVsaW1pdGVyKTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgaWYoIChpdGVtcykubGVuZ3RoID09PSAwICl7XHJcbiAgICAgIGlmKCBpbnB1dF9pdGVtcyAmJiBpbnB1dF9pdGVtcyAhPT0gJycgKXtcclxuICAgICAgICBsZXQgdHh0ID0gYCR7KGlucHV0X2l0ZW1zKS50cmltKCl9YDtcclxuICAgICAgICBpdGVtcyA9IFt0eHRdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy9pdGVtcyA9IFsuLi5uZXcgU2V0KGl0ZW1zKV07XHJcblxyXG4gICAgZm9yKCBsZXQgaSA9IDA7IGkgPCAoaXRlbXMpLmxlbmd0aDsgaSsrKXtcclxuICAgICAgbGV0IHR4dCA9IGAkeyhpdGVtc1tpXSkudHJpbSgpfWA7XHJcblxyXG4gICAgICBpZiggdGhpcy51cHBlcmNhc2UgKXtcclxuICAgICAgICBpZiggdHh0ICYmIHR4dCAhPT0gJycgKXtcclxuICAgICAgICAgIHR4dCA9ICh0eHQpLnRvTG9jYWxlVXBwZXJDYXNlKCk7XHJcbiAgICAgICAgfSAgICAgICAgXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKCB0aGlzLmxvd2VyY2FzZSApe1xyXG4gICAgICAgIGlmKCB0eHQgJiYgdHh0ICE9PSAnJyApe1xyXG4gICAgICAgICAgdHh0ID0gKHR4dCkudG9Mb2NhbGVMb3dlckNhc2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKCB0eHQgJiYgdHh0ICE9PSAnJyApe1xyXG4gICAgICAgICh0aGlzLml0ZW1zKS5wdXNoKHR4dCk7XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pdGVtcyA9IHRoaXMucmVtb3ZlX2R1cGxpY2F0ZXModGhpcy5pdGVtcyk7XHJcbiAgICB0aGlzLnNldF9wbGFjZWhvbGRlcl9saXN0KCk7XHJcbiAgfVxyXG5cclxuICBzZXRfcGxhY2Vob2xkZXJfbGlzdCgpe1xyXG4gICAgbGV0IHBsYWNlaG9sZGVyX2xpc3QgPSAnJztcclxuICAgIGxldCBkZWxpbWl0ZXIgPSAnJztcclxuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5pdGVtcztcclxuICAgIGlmKCBpdGVtcyAmJiAoaXRlbXMpLmxlbmd0aCA+IDAgKXtcclxuICAgICAgZm9yKCBsZXQgaSA9IDA7IGkgPCAoaXRlbXMpLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICBwbGFjZWhvbGRlcl9saXN0ICs9ICBkZWxpbWl0ZXIgKyBgJHsoaXRlbXNbaV0pLnRyaW0oKX1gO1xyXG4gICAgICAgIGRlbGltaXRlciA9IGAke3RoaXMuZGVsaW1pdGVyfSBgO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnBsYWNlaG9sZGVyX2xpc3QgPSAocGxhY2Vob2xkZXJfbGlzdCAhPT0gJycpID8gcGxhY2Vob2xkZXJfbGlzdCA6IHRoaXMucGxhY2Vob2xkZXI7XHJcbiAgICB0aGlzLm9uQ2hhbmdlVG91Y2hlZCgpO1xyXG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMuaXRlbXMpO1xyXG4gICAgdGhpcy5vbkNoYW5nZSgpO1xyXG4gIH1cclxuXHJcblxyXG4gIHJlbW92ZUl0ZW0oaXRlbTogYW55LCBpbmRleDogbnVtYmVyKTogdm9pZHtcclxuICAgIGlmKCB0aGlzLmRpc2FibGVkICl7IHJldHVybjsgfVxyXG4gICAgaWYoIHRoaXMuaXRlbXMgKXtcclxuICAgICAgZm9yKCBsZXQgaSA9IDA7IGkgPCAodGhpcy5pdGVtcykubGVuZ3RoOyBpKysgKXtcclxuICAgICAgICBjb25zdCByb3cgPSB0aGlzLml0ZW1zW2ldO1xyXG4gICAgICAgIGlmKCBpdGVtID09PSByb3cgJiYgaSA9PT0gaW5kZXggKXtcclxuICAgICAgICAgICh0aGlzLml0ZW1zKS5zcGxpY2UoaW5kZXgsMSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiggKHRoaXMuaXRlbXMpLmxlbmd0aCA9PT0gMCApe1xyXG4gICAgICB0aGlzLnNob3dfaXRlbnMgPSBmYWxzZVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2V0X3BsYWNlaG9sZGVyX2xpc3QoKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZV9hbGwoKXtcclxuICAgIGlmKCB0aGlzLmRpc2FibGVkICl7IHJldHVybjsgfVxyXG4gICAgdGhpcy5pdGVtcyA9IFtdO1xyXG4gICAgdGhpcy5zZXRfcGxhY2Vob2xkZXJfbGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgdG9DbGljaygpe1xyXG4gICAgY29uc3QgYm94ID0gYGFyZWEtJHt0aGlzLmlkfWA7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLChlOiBhbnkpID0+IHsgIFxyXG5cclxuICAgICAgaWYoIHRoaXMuc2hvd19pdGVucyApeyAgICAgICAgXHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIGlmKCAhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGJveCk/LmNvbnRhaW5zKGUudGFyZ2V0KSkgKXsgIFxyXG4gICAgICAgICAgICBpZiggJ2JveC1hY3Rpb24nICE9PSBlLnRhcmdldC5wYXJlbnRFbGVtZW50LmNsYXNzTmFtZSApe1xyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd19pdGVucyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9ICBcclxuICAgICAgICAgICBcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCBib3hzdWIgPSBgJHt0aGlzLmlkfS1vcHRpb25zYDtcclxuICB9XHJcblxyXG4gIHRvUmVzaXplKCl7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgKCkgPT4ge1xyXG4gICAgICB0aGlzLnZpZXdwb3J0X3dpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgICAgIHRoaXMudmlld3BvcnRfaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xyXG4gICAgICB0aGlzLnJlc29sdmVfcG9zaXRpb25fZHJvcGRvd24odGhpcy5zaG93X2l0ZW5zKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdG9PcGVuKCl7XHJcbiAgICBpZiggdGhpcy5pdGVtcy5sZW5ndGggPT09IDAgKXtcclxuICAgICAgdGhpcy5zaG93X2l0ZW5zID0gZmFsc2U7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNob3dfaXRlbnMgPSAhdGhpcy5zaG93X2l0ZW5zOyAgICBcclxuICAgIHRoaXMucmVzb2x2ZV9wb3NpdGlvbl9kcm9wZG93bih0aGlzLnNob3dfaXRlbnMpO1xyXG4gIH1cclxuXHJcbiAgdG9DbG9zZSgpe1xyXG4gICAgdGhpcy5zaG93X2l0ZW5zID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICByZXNvbHZlX3Bvc2l0aW9uX2Ryb3Bkb3duKG9wZW46IGJvb2xlYW4pe1xyXG4gICAgaWYoIG9wZW4gKXtcclxuICAgICAgdGhpcy5ib3hfc3R5bGUgPSAnJztcclxuICAgICAgdGhpcy5tZW51X29uX3RvcCA9ICcnOyAgIFxyXG4gICAgICBjb25zdCBpZCA9IGAke3RoaXMuaWR9YDsgXHJcbiAgICAgIGNvbnN0IGJveCA9IGBib3gtJHt0aGlzLmlkfWA7XHJcbiAgICAgIGlmKCB0aGlzLnZpZXdwb3J0X2hlaWdodCA9PT0gMCApe1xyXG4gICAgICAgIHRoaXMudmlld3BvcnRfaGVpZ2h0ID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgcmVjdCAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICBjb25zdCBib3hfcG9zaXRpb24gPSByZWN0Py5ib3R0b20gfHwgMDsgICAgICBcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ib3hfaGVpZ2h0ICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGJveCk/LmNsaWVudEhlaWdodCB8fCAwO1xyXG4gICAgICAgIGlmKCAoIHRoaXMudmlld3BvcnRfaGVpZ2h0IC0gYm94X3Bvc2l0aW9uKSA8IHRoaXMuYm94X2hlaWdodCApe1xyXG4gICAgICAgICAgdGhpcy5tZW51X29uX3RvcCA9ICdtZW51LW9uLXRvcCc7XHJcbiAgICAgICAgICB0aGlzLmJveF9zdHlsZSA9IGB0b3A6IC0keyAodGhpcy5ib3hfaGVpZ2h0KSB9cHg7IGhlaWdodDogJHt0aGlzLmJveF9oZWlnaHR9cHg7YDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pOyAgICBcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuXHJcbiAgY2xlYXJUZXh0U2VhcmNoKCl7XHJcbiAgICB0aGlzLnNlYXJjaF90ZXh0ID0gJyc7XHJcbiAgICB0aGlzLnRvU2VhcmNoKCcnKTtcclxuICB9XHJcblxyXG4gIHRvU2VhcmNoKGU6IGFueSkge1xyXG4gICAgbGV0IGlucHV0ID0gKGUgJiYgZS50YXJnZXQgJiYgZS50YXJnZXQudmFsdWUpID8gZS50YXJnZXQudmFsdWUgOiAnJztcclxuICAgIFxyXG4gICAgbGV0IGZpbHRlciA9ICggKCAoaW5wdXQpLm5vcm1hbGl6ZSgnTkZEJykucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgXCJcIikgKS50cmltKCkgKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgbGV0IHVsID0gPGFueT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7dGhpcy5pZH0tb3B0aW9uc2ApO1xyXG4gICAgbGV0IGxpID0gdWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJsYWJlbFwiKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBhID0gbGlbaV07XHJcbiAgICAgICAgY29uc3QgdHh0VmFsdWUgPSAoICggKCBhLnRleHRDb250ZW50IHx8IGEuaW5uZXJUZXh0ICkubm9ybWFsaXplKCdORkQnKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCBcIlwiKSApLnRyaW0oKSApLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgaWYgKHR4dFZhbHVlLmluZGV4T2YoZmlsdGVyKSA+IC0xKSB7XHJcbiAgICAgICAgICAgIGxpW2ldLnN0eWxlLmRpc3BsYXkgPSBcIlwiO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxpW2ldLnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgdG9FbnRlcktleShpbnB1dF9pdGVtczogc3RyaW5nKXtcclxuXHJcbiAgICBpZiggIWlucHV0X2l0ZW1zICl7IHJldHVybjsgfVxyXG5cclxuICAgIGxldCB2YWxpZCA9IHRydWU7XHJcbiAgICBpZiggdGhpcy5wYXR0ZXJuICl7XHJcbiAgICAgIHZhbGlkID0gKHRoaXMucGF0dGVybikudGVzdCh0aGlzLmlucHV0X2l0ZW1zKTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgaWYoIHZhbGlkICl7XHJcbiAgICAgIHRoaXMuYWRkX2l0ZW1zKCk7XHJcbiAgICAgIGlmKCB0aGlzLm9wZW5WYWx1ZXNJbkNoYW5nZSApe1xyXG4gICAgICAgIHRoaXMudG9PcGVuKCk7XHJcbiAgICAgIH0gICAgXHJcbiAgICB9XHJcbiAgICBcclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgb25DaGFuZ2UoKXtcclxuICAgIHRoaXMudGNDaGFuZ2UuZW1pdCh0aGlzLml0ZW1zKTtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuICBvbkNoYW5nZVRvdWNoZWQoKXsgIFxyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpOyAgICAgXHJcbiAgfVxyXG5cclxuXHJcbiAgdG9TZXREZWZhdWx0KHY6YW55KXtcclxuICAgIHRoaXMuaXRlbXMgPSB2O1xyXG4gICAgdGhpcy5hZGRfaXRlbXMoKTtcclxuICB9XHJcblxyXG4gIGlubmVyVmFsdWU6IGFueSB8IHVuZGVmaW5lZDtcclxuICAvL1BsYWNlaG9sZGVycyBmb3IgdGhlIGNhbGxiYWNrcyB3aGljaCBhcmUgbGF0ZXIgcHJvdmlkZXNkXHJcbiAgLy9ieSB0aGUgQ29udHJvbCBWYWx1ZSBBY2Nlc3NvclxyXG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xyXG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XHJcblxyXG4gIC8vZ2V0IGFjY2Vzc29yXHJcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XHJcbiAgfTtcclxuXHJcbiAgLy9zZXQgYWNjZXNzb3IgaW5jbHVkaW5nIGNhbGwgdGhlIG9uY2hhbmdlIGNhbGxiYWNrXHJcbiAgc2V0IHZhbHVlKHY6IGFueSkge1xyXG4gICAgaWYgKHYgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB2OyBcclxuICAgICAgdGhpcy50b1NldERlZmF1bHQodik7ICAgICBcclxuICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHYpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9TZXQgdG91Y2hlZCBvbiBibHVyXHJcbiAgb25CbHVyKCkge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xyXG4gIH1cclxuXHJcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XHJcbiAgICAgIHRoaXMudG9TZXREZWZhdWx0KHZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgcHVibGljIHZhbGlkYXRlKGM6IEZvcm1Db250cm9sKTogYW55IHtcclxuICAgIGlmKCBjICYmICggdHlwZW9mIHRoaXMucmVxdWlyZWQgIT09ICd1bmRlZmluZWQnICkgKXtcclxuICAgICAgdGhpcy51c2VfdmFsaWRhdGlvbl9yZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIHJldHVybiAodGhpcy5jaGVja19pc192YWxpZCgpKSA/IG51bGwgOiAncmVxdWlyZWQnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJzaG93X2NvbXBvbmVudFwiIGNsYXNzPVwidGNsb3VkLXVpLW11bHRpcGxlcy12YWx1ZXMgdGMtZHJvcGRvd25cIiBpZD1cImFyZWEte3sgaWQgfX1cIiBbY2xhc3MudGMtcGFyZW50LXZhbGlkYXRpb25dPVwidXNlX3ZhbGlkYXRpb25fcmVxdWlyZWRcIj5cclxuXHJcblxyXG4gICAgPGZvcm0gI19mb3JtdWxhcmlvPVwibmdGb3JtXCI+XHJcblxyXG4gICAgICAgIDwhLS0ge3sgaW5wdXRfaXRlbXMgfX0gLS0+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi10b2dnbGVcIiBpZD1cInt7aWR9fVwiIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiJ3RydWUnXCIgW2F0dHIuYXJpYS1leHBhbmRlZF09XCInZmFsc2UnXCI+XHJcblxyXG4gICAgICAgICAgICA8dGFibGUgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIj5cclxuICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cImdyb3VwLWlucHV0LWFjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImJveC1pbnB1dHt7IChsaXN0SXRlbXMgJiYgKGxpc3RJdGVtcykubGVuZ3RoID4gMCkgPyAnLWRhdGEtbGlzdCcgOiAnJyB9fSBiYy1sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsaXN0SXRlbXMgJiYgKGxpc3RJdGVtcykubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0XCIgKGNsaWNrKT1cInNob3dfaXRlbnMgPSBmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Y2xvdWQtdWktZGF0YS1saXN0IFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcl9saXN0XCIgW3NlYXJjaF09XCJzZWFyY2hcIiBbYm9yZGVyXT1cImZhbHNlXCIgW2xvYWRpbmddPVwibG9hZGluZ1wiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIG5hbWU9XCJpdGVtc1wiIFtsaXN0SXRlbXNdPVwibGlzdEl0ZW1zXCIgWyhuZ01vZGVsKV09XCJpbnB1dF9pdGVtc1wiIChvbkNoYW5nZSk9XCJ0b0VudGVyS2V5KGlucHV0X2l0ZW1zKVwiPjwvdGNsb3VkLXVpLWRhdGEtbGlzdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbGlzdEl0ZW1zIHx8ICEobGlzdEl0ZW1zICYmIChsaXN0SXRlbXMpLmxlbmd0aCA+IDApXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwYXR0ZXJuXT1cInBhdHRlcm5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJ0b0VudGVyS2V5KGlucHV0X2l0ZW1zKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy50ZXh0LWxvd2VyY2FzZV09XCJsb3dlcmNhc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MudGV4dC11cHBlcmNhc2VdPVwidXBwZXJjYXNlXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIiBuYW1lPVwiaXRlbXNcIiBjbGFzcz1cInRjLWZvcm0tY29udHJvbCBhcmVhLXRleHRcIiBbKG5nTW9kZWwpXT1cImlucHV0X2l0ZW1zXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyX2xpc3RcIiByZXF1aXJlZCBbdGl0bGVdPVwicGxhY2Vob2xkZXJfbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJjb3VudC1saXN0XCIgKm5nSWY9XCIoaXRlbXMgJiYgaXRlbXMubGVuZ3RoID4gMClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiB2YWx1ZT1cInt7IGl0ZW1zLmxlbmd0aCB9fSB7eyAoaXRlbXMubGVuZ3RoID4gMSkgPyAncmVnaXN0cm9zJyA6ICdyZWdpc3RybycgfX1cIiBkaXNhYmxlZCByZWFkb25seT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiY291bnQtbGlzdFwiICpuZ0lmPVwiIWl0ZW1zIHx8IChpdGVtcyAmJiBpdGVtcy5sZW5ndGggPT09IDApXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dFwiPjxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiaW5mby1uby12YWx1ZVwiIHZhbHVlPVwiVmF6aW9cIiBkaXNhYmxlZCByZWFkb25seT48L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWN0aW9uLWlucHV0LWFycm93ICBiYy1yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInRvT3BlbigpXCIgdGl0bGU9XCJMaXN0YSBkZSB2YWxvcmVzXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1hbmdsZS11cFwiICpuZ0lmPVwic2hvd19pdGVuc1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWFuZ2xlLWRvd25cIiAqbmdJZj1cIiFzaG93X2l0ZW5zXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4gXHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogNDVweDtcIiAqbmdJZj1cInVzZUJ0bkFkZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWN0aW9uLWlucHV0XCIgKm5nSWY9XCIhZGlzYWJsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsaXN0SXRlbXMgfHwgIShsaXN0SXRlbXMgJiYgKGxpc3RJdGVtcykubGVuZ3RoID4gMClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cIiFfZm9ybXVsYXJpby52YWxpZFwiIGNsYXNzPVwidGMtYnRuIHRjLWJ0bi1vdXRsaW5lLXByaW1hcnlcIiAoY2xpY2spPVwiYWRkX2l0ZW1zKClcIiB0aXRsZT1cIkFkaWNpb25hciBpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcGx1c1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpc3RJdGVtcyAmJiAobGlzdEl0ZW1zKS5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCIhX2Zvcm11bGFyaW8udmFsaWRcIiBjbGFzcz1cInRjLWJ0biB0Yy1idG4tb3V0bGluZS1wcmltYXJ5XCIgKGNsaWNrKT1cImFkZF9pdGVtc19ieV9kYXRhX2xpc3QoaW5wdXRfaXRlbXMpXCIgdGl0bGU9XCJBZGljaW9uYXIgaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXBsdXNcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDwvdGFibGU+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgIDwhLS0gPHByZT5cclxuICAgICAgICAgICAge3sgaXRlbXMgfCBqc29uIH19XHJcbiAgICAgICAgPC9wcmU+IC0tPlxyXG5cclxuICAgIDwvZm9ybT4gXHJcblxyXG4gICAgPCEtLSBib3gtaXRlbnMtc2VsZWN0ZWQgIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cInRjLWRyb3Bkb3duLW1lbnUgYm94LWl0ZW5zLXNlbGVjdGVkICB7eyBtZW51X29uX3RvcCB9fVwiIGlkPVwiYm94LXt7IGlkIH19XCIgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImlkXCIgW2NsYXNzLnRvLWhpZGVdPVwiIXNob3dfaXRlbnNcIiBbc3R5bGVdPVwiYm94X3N0eWxlXCI+XHJcbiAgICAgICAgXHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaW5lLXNlYXJjaFwiPlxyXG4gICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJib3gtc2VhcmNoXCIgKm5nSWY9XCJpdGVtcyAmJiAoaXRlbXMpLmxlbmd0aCA+IDVcIj5cclxuICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgIFxyXG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1pbnB1dFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cInRjLWZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwic2VhcmNoX3RleHRcIiAoaW5wdXQpPVwidG9TZWFyY2goJGV2ZW50KVwiIHBsYWNlaG9sZGVyPVwiQnVzY2FyLi4uXCIgPiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgXHJcbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhcmVhLWljb25cIj5cclxuICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJzZWFyY2hfdGV4dCA9PT0gJydcIiBjbGFzcz1cImZhcyBmYS1zZWFyY2ggaWNvbi1zZWFyY2hcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJib3gtYWN0aW9uXCIgdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwic2VhcmNoX3RleHQgIT09ICcnXCIgKGNsaWNrKT1cImNsZWFyVGV4dFNlYXJjaCgpXCI+PGkgY2xhc3M9XCJmYXMgZmEtdGltZXNcIj48L2k+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFyZWEtb3B0aW9uc1wiIGlkPVwie3sgaWQgfX0tb3B0aW9uc1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYm94LWxhYmVsXCIgW25nU3R5bGVdPVwiKG1heFdpZHRoTGFiZWwpID8geydtYXgtd2lkdGgnOiBtYXhXaWR0aExhYmVsfSA6IG51bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm94LXZhbHVlXCIgW3RpdGxlXT1cIml0ZW1cIiAgPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0gfX0gICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJveC1hY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJib3gtYWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpdGVtcyA9PT0gdW5kZWZpbmVkIHx8IChpdGVtcyAmJiBpdGVtcy5sZW5ndGggPT09IDApIHx8IGRpc2FibGVkIHx8IGxvYWRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJSZW1vdmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUl0ZW0oaXRlbSwgaSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTVcIiAqbmdJZj1cIml0ZW1zICYmIChpdGVtcykubGVuZ3RoID4gNVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLXJlbW92ZS1hbGxcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJib3gtYWN0aW9uXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJyZW1vdmVfYWxsKClcIj5cclxuICAgICAgICAgICAgICAgICAgICBMaW1wYXIgdG9kYSBhIGxpc3RhXHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
349
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLW11bHRpcGxlcy12YWx1ZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLW11bHRpcGxlcy12YWx1ZXMvdGNsb3VkLXVpLW11bHRpcGxlcy12YWx1ZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLW11bHRpcGxlcy12YWx1ZXMvdGNsb3VkLXVpLW11bHRpcGxlcy12YWx1ZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFVBQVUsRUFBeUIsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3SCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUEwQixNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFFMUYsTUFBTyx1QkFBdUIsR0FBUTtJQUNwQyxPQUFPLEVBQUUsYUFBYTtJQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdDQUFnQyxDQUFDO0lBQy9ELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQTtBQUVELE1BQU0sbUNBQW1DLEdBQVE7SUFDL0MsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdDQUFnQyxDQUFDO0lBQy9ELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRTtBQUNsQixDQUFDLENBQUM7QUFRRixNQUFNLE9BQU8sZ0NBQWdDO0lBbUIzQyxJQUFhLFNBQVMsQ0FBQyxDQUFrQjtRQUN2QyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsVUFBVSxFQUFFO1lB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LElBQUksQ0FBQztJQUNkLENBQUM7SUFHRCxXQUFXO0lBRVgsQ0FBQzsrR0ExWFUsZ0NBQWdDO21HQUFoQyxnQ0FBZ0Msd2FBRmhDLENBQUMsbUNBQW1DLEVBQUUsdUJBQXVCLENBQUMsMEJDdEIzRSxnbVFBMElNOzs0RkRsSE8sZ0NBQWdDO2tCQU41QyxTQUFTOytCQUNFLDRCQUE0QixhQUczQixDQUFDLG1DQUFtQyxFQUFFLHVCQUF1QixDQUFDOzBFQXFCNUQsU0FBUztzQkFBckIsS0FBSztnQkFPRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgZm9yd2FyZFJlZiwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgTkdfVkFMSURBVE9SUywgRm9ybUNvbnRyb2wsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmNvbnN0ICBDVVNUT01fSU5QVVRfVkFMSURBVE9SUzogYW55ID0geyBcclxuICBwcm92aWRlOiBOR19WQUxJREFUT1JTLCBcclxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUQ2xvdWRVaU11bHRpcGxlc1ZhbHVlc0NvbXBvbmVudCksXHJcbiAgbXVsdGk6IHRydWVcclxufVxyXG5cclxuY29uc3QgQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcclxuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUQ2xvdWRVaU11bHRpcGxlc1ZhbHVlc0NvbXBvbmVudCksXHJcbiAgbXVsdGk6IHRydWVcclxufTtcclxuXHJcbmNvbnN0IG5vb3AgPSAoKSA9PiB7XHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RjbG91ZC11aS1tdWx0aXBsZXMtdmFsdWVzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGNsb3VkLXVpLW11bHRpcGxlcy12YWx1ZXMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RjbG91ZC11aS1tdWx0aXBsZXMtdmFsdWVzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1IsIENVU1RPTV9JTlBVVF9WQUxJREFUT1JTXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVENsb3VkVWlNdWx0aXBsZXNWYWx1ZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgVmFsaWRhdG9yICB7XHJcblxyXG4gIHZpZXdwb3J0X3dpZHRoOiBudW1iZXIgPSAwO1xyXG4gIHZpZXdwb3J0X2hlaWdodDogbnVtYmVyID0gMDtcclxuICBib3hfaGVpZ2h0OiBudW1iZXIgPSAwO1xyXG4gIGJveF9zdHlsZTogc3RyaW5nID0gJyc7XHJcbiAgbWVudV9vbl90b3A6IHN0cmluZyA9ICcnO1xyXG4gIHNlYXJjaF90ZXh0OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgaWQ6IHN0cmluZyA9ICcnO1xyXG4gIHNob3dfaXRlbnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93X2NvbXBvbmVudDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIFxyXG5cclxuICBpbnB1dF9pdGVtczogc3RyaW5nID0gJyc7XHJcblxyXG4gIGl0ZW1zID0gW10gYXMgc3RyaW5nW107XHJcblxyXG4gIHByaXZhdGUgX2xpc3RJdGVtczogYW55IHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHNldCBsaXN0SXRlbXModjogYW55IHwgdW5kZWZpbmVkKXtcclxuICAgIGlmKCB2ICE9PSB0aGlzLl9saXN0SXRlbXMgKXtcclxuICAgICAgdGhpcy5fbGlzdEl0ZW1zID0gdjtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IGxpc3RJdGVtcygpOmFueSB8IHVuZGVmaW5lZCB7IHJldHVybiB0aGlzLl9saXN0SXRlbXM7IH1cclxuIFxyXG4gIEBJbnB1dCgpIG9wZW5WYWx1ZXNJbkNoYW5nZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgdXNlQnRuQWRkOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgcGF0dGVybjogUmVnRXhwIHwgYW55ID0gbnVsbDtcclxuICBASW5wdXQoKSBkZWxpbWl0ZXI6IHN0cmluZyA9ICcsJztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcmVxdWlyZWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBzZWFyY2g6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHVwcGVyY2FzZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGxvd2VyY2FzZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBtYXhXaWR0aExhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG4gIEBPdXRwdXQoKSB0Y0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICB1c2VfdmFsaWRhdGlvbl9yZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwbGFjZWhvbGRlcl9saXN0OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlkID0gdGhpcy5nZW5lcmF0ZUlEKCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHsgICAgICBcclxuICAgICAgdGhpcy5zaG93X2NvbXBvbmVudCA9IHRydWU7XHJcbiAgICAgIHRoaXMudG9SZXNpemUoKTtcclxuICAgICAgdGhpcy50b0NsaWNrKCk7XHJcbiAgICAgIHRoaXMuc2V0X3BsYWNlaG9sZGVyX2xpc3QoKTsgICAgICAgXHJcbiAgICB9KTsgICAgXHJcbiAgfVxyXG5cclxuICBjaGVja19pc192YWxpZCgpOiBib29sZWFue1xyXG4gICAgaWYoIHRoaXMuaXRlbXMgKXtcclxuICAgICAgcmV0dXJuICgodGhpcy5pdGVtcykubGVuZ3RoID4gMCkgPyB0cnVlIDogZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZUlEKCk6IHN0cmluZ3tcclxuICAgIHJldHVybiBgbXVsdGlwbGUtdmFsdWVzLSR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogRGF0ZS5ub3coKSkpfWA7XHJcbiAgfVxyXG5cclxuICByZW1vdmVfZHVwbGljYXRlcyhpdGVtczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gWy4uLm5ldyBTZXQoaXRlbXMpXTtcclxuICB9XHJcblxyXG4gXHJcbiAgYWRkX2l0ZW1zX2J5X2RhdGFfbGlzdChlOiBhbnkpe1xyXG4gICAgdGhpcy5pbnB1dF9pdGVtcyA9IGU7XHJcbiAgICB0aGlzLmFkZF9pdGVtcygpO1xyXG4gIH1cclxuXHJcbiAgYWRkX2l0ZW1zKCl7XHJcblxyXG4gICAgaWYoIHRoaXMuZGlzYWJsZWQgKXsgcmV0dXJuOyB9XHJcblxyXG4gICAgY29uc3QgaW5wdXRfaXRlbXMgPSB0aGlzLmlucHV0X2l0ZW1zO1xyXG5cclxuICAgIHRoaXMuaW5wdXRfaXRlbXMgPSAnJztcclxuICAgIFxyXG4gICAgbGV0IGl0ZW1zID0gW107XHJcbiAgICBpZiggaW5wdXRfaXRlbXMgJiYgaW5wdXRfaXRlbXMgIT09ICcnICl7XHJcblxyXG4gICAgICBpdGVtcyA9IDxhbnk+IChpbnB1dF9pdGVtcykuc3BsaXQodGhpcy5kZWxpbWl0ZXIpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBpZiggKGl0ZW1zKS5sZW5ndGggPT09IDAgKXtcclxuICAgICAgaWYoIGlucHV0X2l0ZW1zICYmIGlucHV0X2l0ZW1zICE9PSAnJyApe1xyXG4gICAgICAgIGxldCB0eHQgPSBgJHsoaW5wdXRfaXRlbXMpLnRyaW0oKX1gO1xyXG4gICAgICAgIGl0ZW1zID0gW3R4dF07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL2l0ZW1zID0gWy4uLm5ldyBTZXQoaXRlbXMpXTtcclxuXHJcbiAgICBmb3IoIGxldCBpID0gMDsgaSA8IChpdGVtcykubGVuZ3RoOyBpKyspe1xyXG4gICAgICBsZXQgdHh0ID0gYCR7KGl0ZW1zW2ldKS50cmltKCl9YDtcclxuXHJcbiAgICAgIGlmKCB0aGlzLnVwcGVyY2FzZSApe1xyXG4gICAgICAgIGlmKCB0eHQgJiYgdHh0ICE9PSAnJyApe1xyXG4gICAgICAgICAgdHh0ID0gKHR4dCkudG9Mb2NhbGVVcHBlckNhc2UoKTtcclxuICAgICAgICB9ICAgICAgICBcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYoIHRoaXMubG93ZXJjYXNlICl7XHJcbiAgICAgICAgaWYoIHR4dCAmJiB0eHQgIT09ICcnICl7XHJcbiAgICAgICAgICB0eHQgPSAodHh0KS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYoIHR4dCAmJiB0eHQgIT09ICcnICl7XHJcbiAgICAgICAgKHRoaXMuaXRlbXMpLnB1c2godHh0KTtcclxuICAgICAgfVxyXG4gICAgICBcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLml0ZW1zID0gdGhpcy5yZW1vdmVfZHVwbGljYXRlcyh0aGlzLml0ZW1zKTtcclxuICAgIHRoaXMuc2V0X3BsYWNlaG9sZGVyX2xpc3QoKTtcclxuICB9XHJcblxyXG4gIHNldF9wbGFjZWhvbGRlcl9saXN0KCl7XHJcbiAgICBsZXQgcGxhY2Vob2xkZXJfbGlzdCA9ICcnO1xyXG4gICAgbGV0IGRlbGltaXRlciA9ICcnO1xyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLml0ZW1zO1xyXG4gICAgaWYoIGl0ZW1zICYmIChpdGVtcykubGVuZ3RoID4gMCApe1xyXG4gICAgICBmb3IoIGxldCBpID0gMDsgaSA8IChpdGVtcykubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgIHBsYWNlaG9sZGVyX2xpc3QgKz0gIGRlbGltaXRlciArIGAkeyhpdGVtc1tpXSkudHJpbSgpfWA7XHJcbiAgICAgICAgZGVsaW1pdGVyID0gYCR7dGhpcy5kZWxpbWl0ZXJ9IGA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMucGxhY2Vob2xkZXJfbGlzdCA9IChwbGFjZWhvbGRlcl9saXN0ICE9PSAnJykgPyBwbGFjZWhvbGRlcl9saXN0IDogdGhpcy5wbGFjZWhvbGRlcjtcclxuICAgIHRoaXMub25DaGFuZ2VUb3VjaGVkKCk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodGhpcy5pdGVtcyk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcmVtb3ZlSXRlbShpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpOiB2b2lke1xyXG4gICAgaWYoIHRoaXMuZGlzYWJsZWQgKXsgcmV0dXJuOyB9XHJcbiAgICBpZiggdGhpcy5pdGVtcyApe1xyXG4gICAgICBmb3IoIGxldCBpID0gMDsgaSA8ICh0aGlzLml0ZW1zKS5sZW5ndGg7IGkrKyApe1xyXG4gICAgICAgIGNvbnN0IHJvdyA9IHRoaXMuaXRlbXNbaV07XHJcbiAgICAgICAgaWYoIGl0ZW0gPT09IHJvdyAmJiBpID09PSBpbmRleCApe1xyXG4gICAgICAgICAgKHRoaXMuaXRlbXMpLnNwbGljZShpbmRleCwxKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmKCAodGhpcy5pdGVtcykubGVuZ3RoID09PSAwICl7XHJcbiAgICAgIHRoaXMuc2hvd19pdGVucyA9IGZhbHNlXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZXRfcGxhY2Vob2xkZXJfbGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlX2FsbCgpe1xyXG4gICAgaWYoIHRoaXMuZGlzYWJsZWQgKXsgcmV0dXJuOyB9XHJcbiAgICB0aGlzLml0ZW1zID0gW107XHJcbiAgICB0aGlzLnNldF9wbGFjZWhvbGRlcl9saXN0KCk7XHJcbiAgfVxyXG5cclxuICB0b0NsaWNrKCl7XHJcbiAgICBjb25zdCBib3ggPSBgYXJlYS0ke3RoaXMuaWR9YDtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsKGU6IGFueSkgPT4geyAgXHJcblxyXG4gICAgICBpZiggdGhpcy5zaG93X2l0ZW5zICl7ICAgICAgICBcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgaWYoICEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYm94KT8uY29udGFpbnMoZS50YXJnZXQpKSApeyAgXHJcbiAgICAgICAgICAgIGlmKCAnYm94LWFjdGlvbicgIT09IGUudGFyZ2V0LnBhcmVudEVsZW1lbnQuY2xhc3NOYW1lICl7XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93X2l0ZW5zID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0gIFxyXG4gICAgICAgICAgIFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGJveHN1YiA9IGAke3RoaXMuaWR9LW9wdGlvbnNgO1xyXG4gIH1cclxuXHJcbiAgdG9SZXNpemUoKXtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCAoKSA9PiB7XHJcbiAgICAgIHRoaXMudmlld3BvcnRfd2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgICAgdGhpcy52aWV3cG9ydF9oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XHJcbiAgICAgIHRoaXMucmVzb2x2ZV9wb3NpdGlvbl9kcm9wZG93bih0aGlzLnNob3dfaXRlbnMpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB0b09wZW4oKXtcclxuICAgIGlmKCB0aGlzLml0ZW1zLmxlbmd0aCA9PT0gMCApe1xyXG4gICAgICB0aGlzLnNob3dfaXRlbnMgPSBmYWxzZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2hvd19pdGVucyA9ICF0aGlzLnNob3dfaXRlbnM7ICAgIFxyXG4gICAgdGhpcy5yZXNvbHZlX3Bvc2l0aW9uX2Ryb3Bkb3duKHRoaXMuc2hvd19pdGVucyk7XHJcbiAgfVxyXG5cclxuICB0b0Nsb3NlKCl7XHJcbiAgICB0aGlzLnNob3dfaXRlbnMgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJlc29sdmVfcG9zaXRpb25fZHJvcGRvd24ob3BlbjogYm9vbGVhbil7XHJcbiAgICBpZiggb3BlbiApe1xyXG4gICAgICB0aGlzLmJveF9zdHlsZSA9ICcnO1xyXG4gICAgICB0aGlzLm1lbnVfb25fdG9wID0gJyc7ICAgXHJcbiAgICAgIGNvbnN0IGlkID0gYCR7dGhpcy5pZH1gOyBcclxuICAgICAgY29uc3QgYm94ID0gYGJveC0ke3RoaXMuaWR9YDtcclxuICAgICAgaWYoIHRoaXMudmlld3BvcnRfaGVpZ2h0ID09PSAwICl7XHJcbiAgICAgICAgdGhpcy52aWV3cG9ydF9oZWlnaHQgPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCByZWN0ICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGNvbnN0IGJveF9wb3NpdGlvbiA9IHJlY3Q/LmJvdHRvbSB8fCAwOyAgICAgIFxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmJveF9oZWlnaHQgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYm94KT8uY2xpZW50SGVpZ2h0IHx8IDA7XHJcbiAgICAgICAgaWYoICggdGhpcy52aWV3cG9ydF9oZWlnaHQgLSBib3hfcG9zaXRpb24pIDwgdGhpcy5ib3hfaGVpZ2h0ICl7XHJcbiAgICAgICAgICB0aGlzLm1lbnVfb25fdG9wID0gJ21lbnUtb24tdG9wJztcclxuICAgICAgICAgIHRoaXMuYm94X3N0eWxlID0gYHRvcDogLSR7ICh0aGlzLmJveF9oZWlnaHQpIH1weDsgaGVpZ2h0OiAke3RoaXMuYm94X2hlaWdodH1weDtgO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7ICAgIFxyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG5cclxuICBjbGVhclRleHRTZWFyY2goKXtcclxuICAgIHRoaXMuc2VhcmNoX3RleHQgPSAnJztcclxuICAgIHRoaXMudG9TZWFyY2goJycpO1xyXG4gIH1cclxuXHJcbiAgdG9TZWFyY2goZTogYW55KSB7XHJcbiAgICBsZXQgaW5wdXQgPSAoZSAmJiBlLnRhcmdldCAmJiBlLnRhcmdldC52YWx1ZSkgPyBlLnRhcmdldC52YWx1ZSA6ICcnO1xyXG4gICAgXHJcbiAgICBsZXQgZmlsdGVyID0gKCAoIChpbnB1dCkubm9ybWFsaXplKCdORkQnKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCBcIlwiKSApLnRyaW0oKSApLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBsZXQgdWwgPSA8YW55PiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgJHt0aGlzLmlkfS1vcHRpb25zYCk7XHJcbiAgICBsZXQgbGkgPSB1bC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImxhYmVsXCIpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IGEgPSBsaVtpXTtcclxuICAgICAgICBjb25zdCB0eHRWYWx1ZSA9ICggKCAoIGEudGV4dENvbnRlbnQgfHwgYS5pbm5lclRleHQgKS5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csIFwiXCIpICkudHJpbSgpICkudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICBpZiAodHh0VmFsdWUuaW5kZXhPZihmaWx0ZXIpID4gLTEpIHtcclxuICAgICAgICAgICAgbGlbaV0uc3R5bGUuZGlzcGxheSA9IFwiXCI7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbGlbaV0uc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICB0b0VudGVyS2V5KGlucHV0X2l0ZW1zOiBzdHJpbmcgfCBzdHJpbmdbXSApe1xyXG5cclxuICAgIGlmKCAhaW5wdXRfaXRlbXMgKXsgcmV0dXJuOyB9XHJcbiAgICBjb25zb2xlLmxvZygnaW5wdXRfaXRlbXMnLCBpbnB1dF9pdGVtcyk7XHJcblxyXG4gICAgbGV0IHZhbGlkID0gdHJ1ZTtcclxuICAgIGlmKCB0aGlzLnBhdHRlcm4gKXtcclxuICAgICAgdmFsaWQgPSAodGhpcy5wYXR0ZXJuKS50ZXN0KHRoaXMuaW5wdXRfaXRlbXMpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBpZiggdmFsaWQgKXtcclxuICAgICAgdGhpcy5hZGRfaXRlbXMoKTtcclxuICAgICAgaWYoIHRoaXMub3BlblZhbHVlc0luQ2hhbmdlICl7XHJcbiAgICAgICAgdGhpcy50b09wZW4oKTtcclxuICAgICAgfSAgICBcclxuICAgIH1cclxuICAgIFxyXG5cclxuICB9XHJcblxyXG4gIGNoZWNrSXNEaXNhYmxlZChpdGVtOiBhbnkpe1xyXG4gICAgaWYoIGl0ZW0/LmRpc2FibGVkICl7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdmFsdWUgPSBgJHtpdGVtLnZhbHVlfWA7XHJcbiAgICBpZiggKHRoaXMuaXRlbXMpLmxlbmd0aCA+IDAgKXtcclxuICAgICAgZm9yKCBsZXQgaSA9IDA7IGkgPCAodGhpcy5pdGVtcykubGVuZ3RoOyBpKysgKXtcclxuICAgICAgICBpZiggYCR7dGhpcy5pdGVtc1tpXX1gID09PSB2YWx1ZSApe1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuXHJcbiAgb25DaGFuZ2UoKXtcclxuICAgIHRoaXMudGNDaGFuZ2UuZW1pdCh0aGlzLml0ZW1zKTtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuICBvbkNoYW5nZVRvdWNoZWQoKXsgIFxyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpOyAgICAgXHJcbiAgfVxyXG5cclxuXHJcbiAgdG9TZXREZWZhdWx0KHY6YW55KXtcclxuICAgIHRoaXMuaXRlbXMgPSB2O1xyXG4gICAgdGhpcy5hZGRfaXRlbXMoKTtcclxuICB9XHJcblxyXG4gIGlubmVyVmFsdWU6IGFueSB8IHVuZGVmaW5lZDtcclxuICAvL1BsYWNlaG9sZGVycyBmb3IgdGhlIGNhbGxiYWNrcyB3aGljaCBhcmUgbGF0ZXIgcHJvdmlkZXNkXHJcbiAgLy9ieSB0aGUgQ29udHJvbCBWYWx1ZSBBY2Nlc3NvclxyXG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xyXG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XHJcblxyXG4gIC8vZ2V0IGFjY2Vzc29yXHJcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XHJcbiAgfTtcclxuXHJcbiAgLy9zZXQgYWNjZXNzb3IgaW5jbHVkaW5nIGNhbGwgdGhlIG9uY2hhbmdlIGNhbGxiYWNrXHJcbiAgc2V0IHZhbHVlKHY6IGFueSkge1xyXG4gICAgaWYgKHYgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB2OyBcclxuICAgICAgdGhpcy50b1NldERlZmF1bHQodik7ICAgICBcclxuICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHYpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9TZXQgdG91Y2hlZCBvbiBibHVyXHJcbiAgb25CbHVyKCkge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xyXG4gIH1cclxuXHJcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XHJcbiAgICAgIHRoaXMudG9TZXREZWZhdWx0KHZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgcHVibGljIHZhbGlkYXRlKGM6IEZvcm1Db250cm9sKTogYW55IHtcclxuICAgIGlmKCBjICYmICggdHlwZW9mIHRoaXMucmVxdWlyZWQgIT09ICd1bmRlZmluZWQnICkgKXtcclxuICAgICAgdGhpcy51c2VfdmFsaWRhdGlvbl9yZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIHJldHVybiAodGhpcy5jaGVja19pc192YWxpZCgpKSA/IG51bGwgOiAncmVxdWlyZWQnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJzaG93X2NvbXBvbmVudFwiIGNsYXNzPVwidGNsb3VkLXVpLW11bHRpcGxlcy12YWx1ZXMgdGMtZHJvcGRvd25cIiBpZD1cImFyZWEte3sgaWQgfX1cIiBbY2xhc3MudGMtcGFyZW50LXZhbGlkYXRpb25dPVwidXNlX3ZhbGlkYXRpb25fcmVxdWlyZWRcIj5cclxuXHJcblxyXG4gICAgPGZvcm0gI19mb3JtdWxhcmlvPVwibmdGb3JtXCI+XHJcblxyXG4gICAgICAgIDwhLS0ge3sgaW5wdXRfaXRlbXMgfX0gLS0+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi10b2dnbGVcIiBpZD1cInt7aWR9fVwiIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiJ3RydWUnXCIgW2F0dHIuYXJpYS1leHBhbmRlZF09XCInZmFsc2UnXCI+XHJcblxyXG4gICAgICAgICAgICA8dGFibGUgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIj5cclxuICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cImdyb3VwLWlucHV0LWFjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImJveC1pbnB1dHt7IChsaXN0SXRlbXMgJiYgKGxpc3RJdGVtcykubGVuZ3RoID4gMCkgPyAnLWRhdGEtbGlzdCcgOiAnJyB9fSBiYy1sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsaXN0SXRlbXMgJiYgKGxpc3RJdGVtcykubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0XCIgKGNsaWNrKT1cInNob3dfaXRlbnMgPSBmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Y2xvdWQtdWktZGF0YS1saXN0IFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcl9saXN0XCIgW3NlYXJjaF09XCJzZWFyY2hcIiBbYm9yZGVyXT1cImZhbHNlXCIgW2xvYWRpbmddPVwibG9hZGluZ1wiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIG5hbWU9XCJpdGVtc1wiIFsobmdNb2RlbCldPVwiaW5wdXRfaXRlbXNcIiAob25DaGFuZ2UpPVwidG9FbnRlcktleShpbnB1dF9pdGVtcylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsaXN0SXRlbXNcIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGNsb3VkLXVpLWRhdGEtbGlzdC1vcHRpb24gW3ZhbHVlXT1cIicnICsgaXRlbS52YWx1ZVwiIFtkaXNhYmxlZF09XCJjaGVja0lzRGlzYWJsZWQoaXRlbSlcIj57eyBpdGVtPy5kZXNjcmlwdGlvbiB9fTwvdGNsb3VkLXVpLWRhdGEtbGlzdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGNsb3VkLXVpLWRhdGEtbGlzdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbGlzdEl0ZW1zIHx8ICEobGlzdEl0ZW1zICYmIChsaXN0SXRlbXMpLmxlbmd0aCA+IDApXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwYXR0ZXJuXT1cInBhdHRlcm5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJ0b0VudGVyS2V5KGlucHV0X2l0ZW1zKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy50ZXh0LWxvd2VyY2FzZV09XCJsb3dlcmNhc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MudGV4dC11cHBlcmNhc2VdPVwidXBwZXJjYXNlXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIiBuYW1lPVwiaXRlbXNcIiBjbGFzcz1cInRjLWZvcm0tY29udHJvbCBhcmVhLXRleHRcIiBbKG5nTW9kZWwpXT1cImlucHV0X2l0ZW1zXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyX2xpc3RcIiByZXF1aXJlZCBbdGl0bGVdPVwicGxhY2Vob2xkZXJfbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJjb3VudC1saXN0XCIgKm5nSWY9XCIoaXRlbXMgJiYgaXRlbXMubGVuZ3RoID4gMClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiB2YWx1ZT1cInt7IGl0ZW1zLmxlbmd0aCB9fSB7eyAoaXRlbXMubGVuZ3RoID4gMSkgPyAncmVnaXN0cm9zJyA6ICdyZWdpc3RybycgfX1cIiBkaXNhYmxlZCByZWFkb25seT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiY291bnQtbGlzdFwiICpuZ0lmPVwiIWl0ZW1zIHx8IChpdGVtcyAmJiBpdGVtcy5sZW5ndGggPT09IDApXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dFwiPjxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiaW5mby1uby12YWx1ZVwiIHZhbHVlPVwiVmF6aW9cIiBkaXNhYmxlZCByZWFkb25seT48L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWN0aW9uLWlucHV0LWFycm93ICBiYy1yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInRvT3BlbigpXCIgdGl0bGU9XCJMaXN0YSBkZSB2YWxvcmVzXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1hbmdsZS11cFwiICpuZ0lmPVwic2hvd19pdGVuc1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWFuZ2xlLWRvd25cIiAqbmdJZj1cIiFzaG93X2l0ZW5zXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4gXHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogNDVweDtcIiAqbmdJZj1cInVzZUJ0bkFkZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWN0aW9uLWlucHV0XCIgKm5nSWY9XCIhZGlzYWJsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsaXN0SXRlbXMgfHwgIShsaXN0SXRlbXMgJiYgKGxpc3RJdGVtcykubGVuZ3RoID4gMClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cIiFfZm9ybXVsYXJpby52YWxpZFwiIGNsYXNzPVwidGMtYnRuIHRjLWJ0bi1vdXRsaW5lLXByaW1hcnlcIiAoY2xpY2spPVwiYWRkX2l0ZW1zKClcIiB0aXRsZT1cIkFkaWNpb25hciBpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcGx1c1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpc3RJdGVtcyAmJiAobGlzdEl0ZW1zKS5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCIhX2Zvcm11bGFyaW8udmFsaWRcIiBjbGFzcz1cInRjLWJ0biB0Yy1idG4tb3V0bGluZS1wcmltYXJ5XCIgKGNsaWNrKT1cImFkZF9pdGVtc19ieV9kYXRhX2xpc3QoaW5wdXRfaXRlbXMpXCIgdGl0bGU9XCJBZGljaW9uYXIgaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXBsdXNcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDwvdGFibGU+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgIDwhLS0gPHByZT5cclxuICAgICAgICAgICAge3sgaXRlbXMgfCBqc29uIH19XHJcbiAgICAgICAgPC9wcmU+IC0tPlxyXG5cclxuICAgIDwvZm9ybT4gXHJcblxyXG4gICAgPCEtLSBib3gtaXRlbnMtc2VsZWN0ZWQgIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cInRjLWRyb3Bkb3duLW1lbnUgYm94LWl0ZW5zLXNlbGVjdGVkICB7eyBtZW51X29uX3RvcCB9fVwiIGlkPVwiYm94LXt7IGlkIH19XCIgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImlkXCIgW2NsYXNzLnRvLWhpZGVdPVwiIXNob3dfaXRlbnNcIiBbc3R5bGVdPVwiYm94X3N0eWxlXCI+XHJcbiAgICAgICAgXHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaW5lLXNlYXJjaFwiPlxyXG4gICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJib3gtc2VhcmNoXCIgKm5nSWY9XCJpdGVtcyAmJiAoaXRlbXMpLmxlbmd0aCA+IDVcIj5cclxuICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgIFxyXG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1pbnB1dFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cInRjLWZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwic2VhcmNoX3RleHRcIiAoaW5wdXQpPVwidG9TZWFyY2goJGV2ZW50KVwiIHBsYWNlaG9sZGVyPVwiQnVzY2FyLi4uXCIgPiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgXHJcbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhcmVhLWljb25cIj5cclxuICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJzZWFyY2hfdGV4dCA9PT0gJydcIiBjbGFzcz1cImZhcyBmYS1zZWFyY2ggaWNvbi1zZWFyY2hcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJib3gtYWN0aW9uXCIgdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwic2VhcmNoX3RleHQgIT09ICcnXCIgKGNsaWNrKT1cImNsZWFyVGV4dFNlYXJjaCgpXCI+PGkgY2xhc3M9XCJmYXMgZmEtdGltZXNcIj48L2k+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFyZWEtb3B0aW9uc1wiIGlkPVwie3sgaWQgfX0tb3B0aW9uc1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYm94LWxhYmVsXCIgW25nU3R5bGVdPVwiKG1heFdpZHRoTGFiZWwpID8geydtYXgtd2lkdGgnOiBtYXhXaWR0aExhYmVsfSA6IG51bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm94LXZhbHVlXCIgW3RpdGxlXT1cIml0ZW1cIiAgPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0gfX0gICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJveC1hY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJib3gtYWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpdGVtcyA9PT0gdW5kZWZpbmVkIHx8IChpdGVtcyAmJiBpdGVtcy5sZW5ndGggPT09IDApIHx8IGRpc2FibGVkIHx8IGxvYWRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJSZW1vdmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUl0ZW0oaXRlbSwgaSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTVcIiAqbmdJZj1cIml0ZW1zICYmIChpdGVtcykubGVuZ3RoID4gNVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLXJlbW92ZS1hbGxcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJib3gtYWN0aW9uXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJyZW1vdmVfYWxsKClcIj5cclxuICAgICAgICAgICAgICAgICAgICBMaW1wYXIgdG9kYSBhIGxpc3RhXHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -140,11 +140,11 @@ export class TCloudUiProgressBarComponent {
140
140
  console.log('new_status', this.new_status);
141
141
  }
142
142
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TCloudUiProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
143
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TCloudUiProgressBarComponent, selector: "tcloud-ui-progress-bar", inputs: { limit: "limit", status: "status", mode: "mode", height: "height", useDefaultBackground: "useDefaultBackground", showValue: "showValue" }, ngImport: i0, template: "<div class=\"tc-ui-progress-bar tc-background-{{ progress_class }}\"> \r\n <div class=\"tc-progress-bar {{ height_class }}\" [class.use-background]=\"useDefaultBackground\" >\r\n\r\n <div *ngIf=\"!limit\" class=\"tc-progress-bar-status {{ progress_class }} {{ height_class }}\" [style]=\"'width: ' + status + '%'\"></div>\r\n <div *ngIf=\"limit\" class=\"tc-progress-bar-status {{ progress_class }} {{ height_class }}\" [style]=\"'width: ' + new_status + '%'\"></div>\r\n\r\n <label *ngIf=\"( height_class === 'height-normal' || height_class === 'height-fat' || height_class === 'height-very-fat' ) && showValue\" \r\n [class.fixed-left]=\"(+status >= 12)\" \r\n [style]=\"'left: '+ (70) +'px'\" \r\n class=\"indicative-value info-{{ progress_class }}\">{{ status }}%\r\n </label>\r\n </div>\r\n</div>\r\n<div *ngIf=\"limit\" >\r\n <div [class.indicative-limit]=\"limit\" [style]=\"{'width': value_100+'%'}\">\r\n <label>100%</label>\r\n </div> \r\n</div>\r\n\r\n", styles: [".tc-background-progress-gradient-success{border:none!important}.tc-background-progress-gradient-success .tc-progress-bar{background:rgb(47,234,155);background:linear-gradient(90deg,rgb(222,241,213) 0%,rgb(206,243,228) 100%)}.tc-background-progress-gradient-warning{border:none!important}.tc-background-progress-gradient-warning .tc-progress-bar{background:rgb(247,227,208);background:linear-gradient(90deg,rgb(247,227,208) 0%,rgb(247,217,216) 100%)}.tc-background-progress-gradient-info{border:none!important}.tc-background-progress-gradient-info .tc-progress-bar{background:rgb(47,234,155);background:linear-gradient(90deg,rgb(222,241,213) 0%,rgb(206,243,228) 100%)}.tc-background-progress-gradient-danger{border:none!important}.tc-background-progress-gradient-danger .tc-progress-bar{background:rgb(244,208,247);background:linear-gradient(90deg,rgb(244,208,247) 0%,rgb(238,167,165) 100%)}.tc-ui-progress-bar{border:1px solid #ccc;border-radius:9px}.tc-ui-progress-bar .height-slim{height:10px;border-radius:5px}.tc-ui-progress-bar .height-normal{height:15px;border-radius:8px}.tc-ui-progress-bar .height-normal .indicative-value{position:relative;top:-18.5px!important;z-index:1;font-size:12px!important;font-weight:400!important}.tc-ui-progress-bar .height-fat{height:20px;border-radius:10px}.tc-ui-progress-bar .height-fat .indicative-value{position:relative;top:-21px!important;z-index:1;font-size:13.5px!important;font-weight:400!important}.tc-ui-progress-bar .height-very-fat{height:24px;border-radius:10px}.tc-ui-progress-bar .height-very-fat .indicative-value{position:relative;top:-24px!important;z-index:1;font-size:15.5px!important;font-weight:400!important}.tc-ui-progress-bar .tc-progress-bar{border:1px solid #fff;overflow:hidden}.tc-ui-progress-bar .tc-progress-bar.use-background{background-color:var(--tc-gray-200)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status{transition:width 2s ease;position:relative;bottom:1px}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-primary{background-color:var(--tc-primary)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-danger{background-color:var(--red)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-warning{background-color:var(--orange)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-info{background-color:var(--azul)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-success{background-color:var(--green2)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-gray{background-color:var(--tc-gray-500)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-gradient-success{background:rgb(47,234,155);background:linear-gradient(90deg,rgb(47,234,155) 0%,rgb(127,221,83) 100%)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-gradient-warning{background:rgb(255,191,26);background:linear-gradient(90deg,0%,rgb(255,191,26) 0%,rgb(255,64,128) 100%)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-gradient-info{background:rgb(47,234,155);background:linear-gradient(90deg,rgb(47,234,155) 0%,rgb(127,221,83) 100%)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-gradient-danger{background:rgb(234,47,103);background:linear-gradient(90deg,0%,rgb(233,47,102) 0%,rgb(208,46,46) 100%)}label.indicative-value{position:relative;top:-19.5px;z-index:1;font-size:12.5px;font-weight:500}label.indicative-value.info-progress-gradient-success,label.indicative-value.info-progress-success{color:var(--green2)}label.indicative-value.info-progress-gradient-anger,label.indicative-value.info-progress-danger{color:#d02e2e}label.indicative-value.info-progress-gradient-warning,label.indicative-value.info-progress-warning{color:#f7b50c}label.indicative-value.fixed-left{left:16px!important;color:#fff!important}.indicative-limit{border-right:2px solid #000;line-height:0;height:30px;position:relative;top:-20px;text-align:right}.indicative-limit label{position:relative;top:30px;left:-3px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
143
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TCloudUiProgressBarComponent, selector: "tcloud-ui-progress-bar", inputs: { limit: "limit", status: "status", mode: "mode", height: "height", useDefaultBackground: "useDefaultBackground", showValue: "showValue" }, ngImport: i0, template: "<div class=\"tc-ui-progress-bar tc-background-{{ progress_class }}\"> \r\n <div class=\"tc-progress-bar {{ height_class }}\" [class.use-background]=\"useDefaultBackground\" >\r\n\r\n <div *ngIf=\"!limit\" class=\"tc-progress-bar-status {{ progress_class }} {{ height_class }}\" [style]=\"'width: ' + status + '%'\"></div>\r\n <div *ngIf=\"limit\" class=\"tc-progress-bar-status {{ progress_class }} {{ height_class }}\" [style]=\"'width: ' + new_status + '%'\"></div>\r\n\r\n <label *ngIf=\"( height_class === 'height-normal' || height_class === 'height-fat' || height_class === 'height-very-fat' ) && showValue\" \r\n [class.fixed-left]=\"(+status >= 12)\" \r\n [style]=\"'left: '+ (70) +'px'\" \r\n class=\"indicative-value info-{{ progress_class }}\">{{ status }}%\r\n </label>\r\n </div>\r\n</div>\r\n<div *ngIf=\"limit && (+limit > 100)\" >\r\n <div [class.indicative-limit]=\"limit\" [style]=\"{'width': value_100+'%'}\">\r\n <label>100%</label>\r\n </div> \r\n</div>\r\n\r\n", styles: [".tc-background-progress-gradient-success{border:none!important}.tc-background-progress-gradient-success .tc-progress-bar{background:rgb(47,234,155);background:linear-gradient(90deg,rgb(222,241,213) 0%,rgb(206,243,228) 100%)}.tc-background-progress-gradient-warning{border:none!important}.tc-background-progress-gradient-warning .tc-progress-bar{background:rgb(247,227,208);background:linear-gradient(90deg,rgb(247,227,208) 0%,rgb(247,217,216) 100%)}.tc-background-progress-gradient-info{border:none!important}.tc-background-progress-gradient-info .tc-progress-bar{background:rgb(47,234,155);background:linear-gradient(90deg,rgb(222,241,213) 0%,rgb(206,243,228) 100%)}.tc-background-progress-gradient-danger{border:none!important}.tc-background-progress-gradient-danger .tc-progress-bar{background:rgb(244,208,247);background:linear-gradient(90deg,rgb(244,208,247) 0%,rgb(238,167,165) 100%)}.tc-ui-progress-bar{border:1px solid #ccc;border-radius:9px}.tc-ui-progress-bar .height-slim{height:10px;border-radius:5px}.tc-ui-progress-bar .height-normal{height:15px;border-radius:8px}.tc-ui-progress-bar .height-normal .indicative-value{position:relative;top:-18.5px!important;z-index:1;font-size:12px!important;font-weight:400!important}.tc-ui-progress-bar .height-fat{height:20px;border-radius:10px}.tc-ui-progress-bar .height-fat .indicative-value{position:relative;top:-21px!important;z-index:1;font-size:13.5px!important;font-weight:400!important}.tc-ui-progress-bar .height-very-fat{height:24px;border-radius:10px}.tc-ui-progress-bar .height-very-fat .indicative-value{position:relative;top:-24px!important;z-index:1;font-size:15.5px!important;font-weight:400!important}.tc-ui-progress-bar .tc-progress-bar{border:1px solid #fff;overflow:hidden}.tc-ui-progress-bar .tc-progress-bar.use-background{background-color:var(--tc-gray-200)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status{transition:width 2s ease;position:relative;bottom:1px}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-primary{background-color:var(--tc-primary)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-danger{background-color:var(--red)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-warning{background-color:var(--orange)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-info{background-color:var(--azul)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-success{background-color:var(--green2)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-gray{background-color:var(--tc-gray-500)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-gradient-success{background:rgb(47,234,155);background:linear-gradient(90deg,rgb(47,234,155) 0%,rgb(127,221,83) 100%)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-gradient-warning{background:rgb(255,191,26);background:linear-gradient(90deg,0%,rgb(255,191,26) 0%,rgb(255,64,128) 100%)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-gradient-info{background:rgb(47,234,155);background:linear-gradient(90deg,rgb(47,234,155) 0%,rgb(127,221,83) 100%)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-gradient-danger{background:rgb(234,47,103);background:linear-gradient(90deg,0%,rgb(233,47,102) 0%,rgb(208,46,46) 100%)}label.indicative-value{position:relative;top:-19.5px;z-index:1;font-size:12.5px;font-weight:500}label.indicative-value.info-progress-gradient-success,label.indicative-value.info-progress-success{color:var(--green2)}label.indicative-value.info-progress-gradient-anger,label.indicative-value.info-progress-danger{color:#d02e2e}label.indicative-value.info-progress-gradient-warning,label.indicative-value.info-progress-warning{color:#f7b50c}label.indicative-value.fixed-left{left:16px!important;color:#fff!important}.indicative-limit{border-right:2px solid #000;line-height:0;height:30px;position:relative;top:-20px;text-align:right}.indicative-limit label{position:relative;top:30px;left:-3px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
144
144
  }
145
145
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TCloudUiProgressBarComponent, decorators: [{
146
146
  type: Component,
147
- args: [{ selector: 'tcloud-ui-progress-bar', template: "<div class=\"tc-ui-progress-bar tc-background-{{ progress_class }}\"> \r\n <div class=\"tc-progress-bar {{ height_class }}\" [class.use-background]=\"useDefaultBackground\" >\r\n\r\n <div *ngIf=\"!limit\" class=\"tc-progress-bar-status {{ progress_class }} {{ height_class }}\" [style]=\"'width: ' + status + '%'\"></div>\r\n <div *ngIf=\"limit\" class=\"tc-progress-bar-status {{ progress_class }} {{ height_class }}\" [style]=\"'width: ' + new_status + '%'\"></div>\r\n\r\n <label *ngIf=\"( height_class === 'height-normal' || height_class === 'height-fat' || height_class === 'height-very-fat' ) && showValue\" \r\n [class.fixed-left]=\"(+status >= 12)\" \r\n [style]=\"'left: '+ (70) +'px'\" \r\n class=\"indicative-value info-{{ progress_class }}\">{{ status }}%\r\n </label>\r\n </div>\r\n</div>\r\n<div *ngIf=\"limit\" >\r\n <div [class.indicative-limit]=\"limit\" [style]=\"{'width': value_100+'%'}\">\r\n <label>100%</label>\r\n </div> \r\n</div>\r\n\r\n", styles: [".tc-background-progress-gradient-success{border:none!important}.tc-background-progress-gradient-success .tc-progress-bar{background:rgb(47,234,155);background:linear-gradient(90deg,rgb(222,241,213) 0%,rgb(206,243,228) 100%)}.tc-background-progress-gradient-warning{border:none!important}.tc-background-progress-gradient-warning .tc-progress-bar{background:rgb(247,227,208);background:linear-gradient(90deg,rgb(247,227,208) 0%,rgb(247,217,216) 100%)}.tc-background-progress-gradient-info{border:none!important}.tc-background-progress-gradient-info .tc-progress-bar{background:rgb(47,234,155);background:linear-gradient(90deg,rgb(222,241,213) 0%,rgb(206,243,228) 100%)}.tc-background-progress-gradient-danger{border:none!important}.tc-background-progress-gradient-danger .tc-progress-bar{background:rgb(244,208,247);background:linear-gradient(90deg,rgb(244,208,247) 0%,rgb(238,167,165) 100%)}.tc-ui-progress-bar{border:1px solid #ccc;border-radius:9px}.tc-ui-progress-bar .height-slim{height:10px;border-radius:5px}.tc-ui-progress-bar .height-normal{height:15px;border-radius:8px}.tc-ui-progress-bar .height-normal .indicative-value{position:relative;top:-18.5px!important;z-index:1;font-size:12px!important;font-weight:400!important}.tc-ui-progress-bar .height-fat{height:20px;border-radius:10px}.tc-ui-progress-bar .height-fat .indicative-value{position:relative;top:-21px!important;z-index:1;font-size:13.5px!important;font-weight:400!important}.tc-ui-progress-bar .height-very-fat{height:24px;border-radius:10px}.tc-ui-progress-bar .height-very-fat .indicative-value{position:relative;top:-24px!important;z-index:1;font-size:15.5px!important;font-weight:400!important}.tc-ui-progress-bar .tc-progress-bar{border:1px solid #fff;overflow:hidden}.tc-ui-progress-bar .tc-progress-bar.use-background{background-color:var(--tc-gray-200)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status{transition:width 2s ease;position:relative;bottom:1px}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-primary{background-color:var(--tc-primary)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-danger{background-color:var(--red)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-warning{background-color:var(--orange)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-info{background-color:var(--azul)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-success{background-color:var(--green2)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-gray{background-color:var(--tc-gray-500)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-gradient-success{background:rgb(47,234,155);background:linear-gradient(90deg,rgb(47,234,155) 0%,rgb(127,221,83) 100%)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-gradient-warning{background:rgb(255,191,26);background:linear-gradient(90deg,0%,rgb(255,191,26) 0%,rgb(255,64,128) 100%)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-gradient-info{background:rgb(47,234,155);background:linear-gradient(90deg,rgb(47,234,155) 0%,rgb(127,221,83) 100%)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-gradient-danger{background:rgb(234,47,103);background:linear-gradient(90deg,0%,rgb(233,47,102) 0%,rgb(208,46,46) 100%)}label.indicative-value{position:relative;top:-19.5px;z-index:1;font-size:12.5px;font-weight:500}label.indicative-value.info-progress-gradient-success,label.indicative-value.info-progress-success{color:var(--green2)}label.indicative-value.info-progress-gradient-anger,label.indicative-value.info-progress-danger{color:#d02e2e}label.indicative-value.info-progress-gradient-warning,label.indicative-value.info-progress-warning{color:#f7b50c}label.indicative-value.fixed-left{left:16px!important;color:#fff!important}.indicative-limit{border-right:2px solid #000;line-height:0;height:30px;position:relative;top:-20px;text-align:right}.indicative-limit label{position:relative;top:30px;left:-3px}\n"] }]
147
+ args: [{ selector: 'tcloud-ui-progress-bar', template: "<div class=\"tc-ui-progress-bar tc-background-{{ progress_class }}\"> \r\n <div class=\"tc-progress-bar {{ height_class }}\" [class.use-background]=\"useDefaultBackground\" >\r\n\r\n <div *ngIf=\"!limit\" class=\"tc-progress-bar-status {{ progress_class }} {{ height_class }}\" [style]=\"'width: ' + status + '%'\"></div>\r\n <div *ngIf=\"limit\" class=\"tc-progress-bar-status {{ progress_class }} {{ height_class }}\" [style]=\"'width: ' + new_status + '%'\"></div>\r\n\r\n <label *ngIf=\"( height_class === 'height-normal' || height_class === 'height-fat' || height_class === 'height-very-fat' ) && showValue\" \r\n [class.fixed-left]=\"(+status >= 12)\" \r\n [style]=\"'left: '+ (70) +'px'\" \r\n class=\"indicative-value info-{{ progress_class }}\">{{ status }}%\r\n </label>\r\n </div>\r\n</div>\r\n<div *ngIf=\"limit && (+limit > 100)\" >\r\n <div [class.indicative-limit]=\"limit\" [style]=\"{'width': value_100+'%'}\">\r\n <label>100%</label>\r\n </div> \r\n</div>\r\n\r\n", styles: [".tc-background-progress-gradient-success{border:none!important}.tc-background-progress-gradient-success .tc-progress-bar{background:rgb(47,234,155);background:linear-gradient(90deg,rgb(222,241,213) 0%,rgb(206,243,228) 100%)}.tc-background-progress-gradient-warning{border:none!important}.tc-background-progress-gradient-warning .tc-progress-bar{background:rgb(247,227,208);background:linear-gradient(90deg,rgb(247,227,208) 0%,rgb(247,217,216) 100%)}.tc-background-progress-gradient-info{border:none!important}.tc-background-progress-gradient-info .tc-progress-bar{background:rgb(47,234,155);background:linear-gradient(90deg,rgb(222,241,213) 0%,rgb(206,243,228) 100%)}.tc-background-progress-gradient-danger{border:none!important}.tc-background-progress-gradient-danger .tc-progress-bar{background:rgb(244,208,247);background:linear-gradient(90deg,rgb(244,208,247) 0%,rgb(238,167,165) 100%)}.tc-ui-progress-bar{border:1px solid #ccc;border-radius:9px}.tc-ui-progress-bar .height-slim{height:10px;border-radius:5px}.tc-ui-progress-bar .height-normal{height:15px;border-radius:8px}.tc-ui-progress-bar .height-normal .indicative-value{position:relative;top:-18.5px!important;z-index:1;font-size:12px!important;font-weight:400!important}.tc-ui-progress-bar .height-fat{height:20px;border-radius:10px}.tc-ui-progress-bar .height-fat .indicative-value{position:relative;top:-21px!important;z-index:1;font-size:13.5px!important;font-weight:400!important}.tc-ui-progress-bar .height-very-fat{height:24px;border-radius:10px}.tc-ui-progress-bar .height-very-fat .indicative-value{position:relative;top:-24px!important;z-index:1;font-size:15.5px!important;font-weight:400!important}.tc-ui-progress-bar .tc-progress-bar{border:1px solid #fff;overflow:hidden}.tc-ui-progress-bar .tc-progress-bar.use-background{background-color:var(--tc-gray-200)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status{transition:width 2s ease;position:relative;bottom:1px}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-primary{background-color:var(--tc-primary)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-danger{background-color:var(--red)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-warning{background-color:var(--orange)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-info{background-color:var(--azul)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-success{background-color:var(--green2)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-gray{background-color:var(--tc-gray-500)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-gradient-success{background:rgb(47,234,155);background:linear-gradient(90deg,rgb(47,234,155) 0%,rgb(127,221,83) 100%)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-gradient-warning{background:rgb(255,191,26);background:linear-gradient(90deg,0%,rgb(255,191,26) 0%,rgb(255,64,128) 100%)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-gradient-info{background:rgb(47,234,155);background:linear-gradient(90deg,rgb(47,234,155) 0%,rgb(127,221,83) 100%)}.tc-ui-progress-bar .tc-progress-bar .tc-progress-bar-status.progress-gradient-danger{background:rgb(234,47,103);background:linear-gradient(90deg,0%,rgb(233,47,102) 0%,rgb(208,46,46) 100%)}label.indicative-value{position:relative;top:-19.5px;z-index:1;font-size:12.5px;font-weight:500}label.indicative-value.info-progress-gradient-success,label.indicative-value.info-progress-success{color:var(--green2)}label.indicative-value.info-progress-gradient-anger,label.indicative-value.info-progress-danger{color:#d02e2e}label.indicative-value.info-progress-gradient-warning,label.indicative-value.info-progress-warning{color:#f7b50c}label.indicative-value.fixed-left{left:16px!important;color:#fff!important}.indicative-limit{border-right:2px solid #000;line-height:0;height:30px;position:relative;top:-20px;text-align:right}.indicative-limit label{position:relative;top:30px;left:-3px}\n"] }]
148
148
  }], ctorParameters: function () { return []; }, propDecorators: { limit: [{
149
149
  type: Input
150
150
  }], status: [{
@@ -158,4 +158,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
158
158
  }], showValue: [{
159
159
  type: Input
160
160
  }] } });
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLXByb2dyZXNzLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktcHJvZ3Jlc3MtYmFyL3RjbG91ZC11aS1wcm9ncmVzcy1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLXByb2dyZXNzLWJhci90Y2xvdWQtdWktcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7QUFPekQsTUFBTSxPQUFPLDRCQUE0QjtJQVN2QyxJQUFhLE1BQU0sQ0FBQyxNQUFXO1FBQzdCLElBQUksS0FBSyxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFDeEIsSUFBSSxLQUFLLEVBQUU7WUFDVCxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFDRCxJQUFJLE1BQU0sS0FBWSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUEsQ0FBQyxDQUFDO0lBTTNDLElBQWEsSUFBSSxDQUFDLElBQVk7UUFDNUIsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNsQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDaEI7SUFDSCxDQUFDO0lBQ0QsSUFBSSxJQUFJLEtBQVksT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFBLENBQUMsQ0FBQztJQU12QyxJQUFhLE1BQU0sQ0FBQyxNQUFjO1FB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LFlBQVksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFN0MsQ0FBQzsrR0FuSVUsNEJBQTRCO21HQUE1Qiw0QkFBNEIsa05DUHpDLDRoQ0FtQkE7OzRGRFphLDRCQUE0QjtrQkFMeEMsU0FBUzsrQkFDRSx3QkFBd0I7MEVBT3pCLEtBQUs7c0JBQWIsS0FBSztnQkFNTyxNQUFNO3NCQUFsQixLQUFLO2dCQWVPLElBQUk7c0JBQWhCLEtBQUs7Z0JBWU8sTUFBTTtzQkFBbEIsS0FBSztnQkFXRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0Y2xvdWQtdWktcHJvZ3Jlc3MtYmFyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGNsb3VkLXVpLXByb2dyZXNzLWJhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGNsb3VkLXVpLXByb2dyZXNzLWJhci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUQ2xvdWRVaVByb2dyZXNzQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgdmFsdWVfMTAwOiBudW1iZXIgPSAxMDA7XHJcbiAgQElucHV0KCkgbGltaXQ6IGFueSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgLypcclxuICBzdGF0dXNcclxuICAqL1xyXG4gIHByaXZhdGUgX3N0YXR1czogYW55ID0gJzAnO1xyXG4gIEBJbnB1dCgpIHNldCBzdGF0dXMoc3RhdHVzOiBhbnkpe1xyXG4gICAgbGV0IHZhbHVlID0gYCR7c3RhdHVzfWA7XHJcbiAgICBpZiggdmFsdWUgKXtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fc3RhdHVzID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy50b0NhbGNMaW1pdCgpO1xyXG4gICAgICB9KTsgICAgICBcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IHN0YXR1cygpOnN0cmluZyB7IHJldHVybiB0aGlzLl9zdGF0dXMgfSBcclxuXHJcbiAgLypcclxuICBtb2RlXHJcbiAgKi9cclxuICBwcml2YXRlIF9tb2RlOiBzdHJpbmcgPSAncHJpbWFyeSc7XHJcbiAgQElucHV0KCkgc2V0IG1vZGUobW9kZTogc3RyaW5nKXtcclxuICAgIGlmKCBtb2RlICl7XHJcbiAgICAgIHRoaXMuX21vZGUgPSBtb2RlOyAgXHJcbiAgICAgIHRoaXMuc2V0TW9kZSgpO1xyXG4gICAgfSAgICBcclxuICB9XHJcbiAgZ2V0IG1vZGUoKTpzdHJpbmcgeyByZXR1cm4gdGhpcy5fbW9kZSB9IFxyXG5cclxuICAvKlxyXG4gIGhlaWdodFxyXG4gICovXHJcbiAgcHJpdmF0ZSBfaGVpZ2h0OiBzdHJpbmcgPSAnbm9ybWFsJztcclxuICBASW5wdXQoKSBzZXQgaGVpZ2h0KGhlaWdodDogc3RyaW5nKXtcclxuICAgIGlmKCBoZWlnaHQgKXtcclxuICAgICAgdGhpcy5faGVpZ2h0ID0gaGVpZ2h0OyBcclxuICAgICAgdGhpcy5zZXRoZWlnaHQoKTsgICAgIFxyXG4gICAgfSAgICBcclxuICB9XHJcbiAgZ2V0IGhlaWdodCgpOnN0cmluZyB7IHJldHVybiB0aGlzLl9oZWlnaHQgfVxyXG5cclxuICBwcm9ncmVzc19jbGFzczogc3RyaW5nID0gJyc7XHJcbiAgaGVpZ2h0X2NsYXNzOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgQElucHV0KCkgdXNlRGVmYXVsdEJhY2tncm91bmQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dWYWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0TW9kZSgpO1xyXG4gICAgdGhpcy5zZXRoZWlnaHQoKTtcclxuICB9XHJcblxyXG4gIHNldE1vZGUoKTogdm9pZHtcclxuICAgIGNvbnN0IG1vZGUgPSB0aGlzLm1vZGU7XHJcbiAgICBsZXQgcHJvZ3Jlc3NfY2xhc3MgPSAncHJvZ3Jlc3MtcHJpbWFyeSc7XHJcbiAgICBzd2l0Y2ggKG1vZGUpIHtcclxuICAgICAgY2FzZSAncHJpbWFyeSc6IHByb2dyZXNzX2NsYXNzID0gJ3Byb2dyZXNzLXByaW1hcnknOyBicmVhaztcclxuICAgICAgY2FzZSAnZGFuZ2VyJzogcHJvZ3Jlc3NfY2xhc3MgPSAncHJvZ3Jlc3MtZGFuZ2VyJzsgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3dhcm5pbmcnOiBwcm9ncmVzc19jbGFzcyA9ICdwcm9ncmVzcy13YXJuaW5nJzsgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2luZm8nOiBwcm9ncmVzc19jbGFzcyA9ICdwcm9ncmVzcy1pbmZvJzsgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3N1Y2Nlc3MnOiBwcm9ncmVzc19jbGFzcyA9ICdwcm9ncmVzcy1zdWNjZXNzJzsgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2dyYXknOiBwcm9ncmVzc19jbGFzcyA9ICdwcm9ncmVzcy1ncmF5JzsgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlICdncmFkaWVudC1zdWNjZXNzJzogcHJvZ3Jlc3NfY2xhc3MgPSAncHJvZ3Jlc3MtZ3JhZGllbnQtc3VjY2Vzcyc7IGJyZWFrO1xyXG4gICAgICBjYXNlICdncmFkaWVudC1kYW5nZXInOiBwcm9ncmVzc19jbGFzcyA9ICdwcm9ncmVzcy1ncmFkaWVudC1kYW5nZXInOyBicmVhaztcclxuICAgICAgY2FzZSAnZ3JhZGllbnQtd2FybmluZyc6IHByb2dyZXNzX2NsYXNzID0gJ3Byb2dyZXNzLWdyYWRpZW50LXdhcm5pbmcnOyBicmVhaztcclxuICAgICAgY2FzZSAnZ3JhZGllbnQtaW5mbyc6IHByb2dyZXNzX2NsYXNzID0gJ3Byb2dyZXNzLWdyYWRpZW50LWluZm8nOyBicmVhaztcclxuICAgIH1cclxuICAgIHRoaXMucHJvZ3Jlc3NfY2xhc3MgPSBwcm9ncmVzc19jbGFzcztcclxuICB9XHJcblxyXG4gIHNldGhlaWdodCgpOiB2b2lke1xyXG4gICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5oZWlnaHQ7XHJcbiAgICBsZXQgaGVpZ2h0X2NsYXNzID0gJ2hlaWdodC1ub3JtYWwnO1xyXG4gICAgc3dpdGNoIChoZWlnaHQpIHtcclxuICAgICAgY2FzZSAnbm9ybWFsJzogaGVpZ2h0X2NsYXNzID0gJ2hlaWdodC1ub3JtYWwnOyBicmVhaztcclxuICAgICAgY2FzZSAnc2xpbSc6IGhlaWdodF9jbGFzcyA9ICdoZWlnaHQtc2xpbSc7IGJyZWFrO1xyXG4gICAgICBjYXNlICdmYXQnOiBoZWlnaHRfY2xhc3MgPSAnaGVpZ2h0LWZhdCc7IGJyZWFrO1xyXG4gICAgICBjYXNlICd2ZXJ5LWZhdCc6IGhlaWdodF9jbGFzcyA9ICdoZWlnaHQtdmVyeS1mYXQnOyBicmVhaztcclxuICAgIH1cclxuICAgIHRoaXMuaGVpZ2h0X2NsYXNzID0gaGVpZ2h0X2NsYXNzO1xyXG4gIH1cclxuXHJcbiAgdG9DYWxjTGltaXRfZXhjZWVkZWQoKXtcclxuICAgIGxldCB2cDogbnVtYmVyID0gMTAwO1xyXG4gICAgbGV0IHBlcmNlbnR1YWw6IG51bWJlciA9ICsodGhpcy5zdGF0dXMpO1xyXG5cclxuICAgIGlmKCBwZXJjZW50dWFsID4gMTAwICl7XHJcbiAgICAgIGxldCB2MTAwID0gdnAgLyAocGVyY2VudHVhbCAvIDEwMCk7XHJcbiAgICAgIHRoaXMudmFsdWVfMTAwID0gKygodjEwMCkudG9GaXhlZCgyKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm5ld19zdGF0dXMgPSAxMDA7XHJcbiAgfVxyXG5cclxuICB0b0NhbGNMaW1pdCgpe1xyXG5cclxuICAgIGlmKCB0aGlzLmxpbWl0ICl7XHJcblxyXG4gICAgICBpZiggKyh0aGlzLnN0YXR1cykgPiArKHRoaXMubGltaXQpICl7XHJcbiAgICAgICAgdGhpcy50b0NhbGNMaW1pdF9leGNlZWRlZCgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IHZwOiBudW1iZXIgPSAxMDA7XHJcbiAgICAgIGxldCBwZXJjZW50dWFsOiBudW1iZXIgPSArKHRoaXMubGltaXQpO1xyXG5cclxuICAgICAgaWYoIHBlcmNlbnR1YWwgPiAxMDAgKXtcclxuICAgICAgICBsZXQgdjEwMCA9IHZwIC8gKHBlcmNlbnR1YWwgLyAxMDApO1xyXG4gICAgICAgIHRoaXMudmFsdWVfMTAwID0gKygodjEwMCkudG9GaXhlZCgyKSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMudG9DYWxjU3RhdHVzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZXdfc3RhdHVzOiBudW1iZXIgPSAwO1xyXG4gIHRvQ2FsY1N0YXR1cygpe1xyXG4gICAgXHJcbiAgICBsZXQgdmFsb3JCYXNlOiBudW1iZXIgPSArKHRoaXMuc3RhdHVzKTtcclxuICAgIGxldCBwZXJjZW50dWFsOiBudW1iZXIgPSArKHRoaXMubGltaXQpO1xyXG5cclxuICAgIC8vIENhbGN1bGEgbyB2YWxvciBjb3JyZXNwb25kZW50ZSBhbyBwZXJjZW50dWFsIGRvIHZhbG9yIGJhc2VcclxuICAgIGxldCByZXN1bHRhZG8gPSB2YWxvckJhc2UgLyAocGVyY2VudHVhbCAvIDEwMCk7XHJcbiAgICB0aGlzLm5ld19zdGF0dXMgPSByZXN1bHRhZG87XHJcbiAgICBjb25zb2xlLmxvZygnbmV3X3N0YXR1cycsIHRoaXMubmV3X3N0YXR1cyk7XHJcbiAgICBcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0Yy11aS1wcm9ncmVzcy1iYXIgdGMtYmFja2dyb3VuZC17eyBwcm9ncmVzc19jbGFzcyB9fVwiPiAgICAgICAgXHJcbiAgICA8ZGl2IGNsYXNzPVwidGMtcHJvZ3Jlc3MtYmFyIHt7IGhlaWdodF9jbGFzcyB9fVwiIFtjbGFzcy51c2UtYmFja2dyb3VuZF09XCJ1c2VEZWZhdWx0QmFja2dyb3VuZFwiID5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFsaW1pdFwiIGNsYXNzPVwidGMtcHJvZ3Jlc3MtYmFyLXN0YXR1cyB7eyBwcm9ncmVzc19jbGFzcyB9fSB7eyBoZWlnaHRfY2xhc3MgfX1cIiBbc3R5bGVdPVwiJ3dpZHRoOiAnICsgc3RhdHVzICsgJyUnXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImxpbWl0XCIgY2xhc3M9XCJ0Yy1wcm9ncmVzcy1iYXItc3RhdHVzIHt7IHByb2dyZXNzX2NsYXNzIH19IHt7IGhlaWdodF9jbGFzcyB9fVwiIFtzdHlsZV09XCInd2lkdGg6ICcgKyBuZXdfc3RhdHVzICsgJyUnXCI+PC9kaXY+XHJcblxyXG4gICAgICAgIDxsYWJlbCAqbmdJZj1cIiggaGVpZ2h0X2NsYXNzID09PSAnaGVpZ2h0LW5vcm1hbCcgfHwgaGVpZ2h0X2NsYXNzID09PSAnaGVpZ2h0LWZhdCcgfHwgaGVpZ2h0X2NsYXNzID09PSAnaGVpZ2h0LXZlcnktZmF0JyApICYmIHNob3dWYWx1ZVwiIFxyXG4gICAgICAgICAgICBbY2xhc3MuZml4ZWQtbGVmdF09XCIoK3N0YXR1cyA+PSAxMilcIiBcclxuICAgICAgICAgICAgW3N0eWxlXT1cIidsZWZ0OiAnKyAoNzApICsncHgnXCIgXHJcbiAgICAgICAgICAgIGNsYXNzPVwiaW5kaWNhdGl2ZS12YWx1ZSBpbmZvLXt7IHByb2dyZXNzX2NsYXNzIH19XCI+e3sgc3RhdHVzIH19JVxyXG4gICAgICAgIDwvbGFiZWw+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgKm5nSWY9XCJsaW1pdFwiID5cclxuICAgIDxkaXYgW2NsYXNzLmluZGljYXRpdmUtbGltaXRdPVwibGltaXRcIiBbc3R5bGVdPVwieyd3aWR0aCc6IHZhbHVlXzEwMCsnJSd9XCI+XHJcbiAgICAgICAgPGxhYmVsPjEwMCU8L2xhYmVsPlxyXG4gICAgPC9kaXY+IFxyXG48L2Rpdj5cclxuXHJcbiJdfQ==
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLXByb2dyZXNzLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktcHJvZ3Jlc3MtYmFyL3RjbG91ZC11aS1wcm9ncmVzcy1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLXByb2dyZXNzLWJhci90Y2xvdWQtdWktcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7QUFPekQsTUFBTSxPQUFPLDRCQUE0QjtJQVN2QyxJQUFhLE1BQU0sQ0FBQyxNQUFXO1FBQzdCLElBQUksS0FBSyxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFDeEIsSUFBSSxLQUFLLEVBQUU7WUFDVCxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFDRCxJQUFJLE1BQU0sS0FBWSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUEsQ0FBQyxDQUFDO0lBTTNDLElBQWEsSUFBSSxDQUFDLElBQVk7UUFDNUIsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNsQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDaEI7SUFDSCxDQUFDO0lBQ0QsSUFBSSxJQUFJLEtBQVksT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFBLENBQUMsQ0FBQztJQU12QyxJQUFhLE1BQU0sQ0FBQyxNQUFjO1FB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LFlBQVksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFN0MsQ0FBQzsrR0FuSVUsNEJBQTRCO21HQUE1Qiw0QkFBNEIsa05DUHpDLDhpQ0FtQkE7OzRGRFphLDRCQUE0QjtrQkFMeEMsU0FBUzsrQkFDRSx3QkFBd0I7MEVBT3pCLEtBQUs7c0JBQWIsS0FBSztnQkFNTyxNQUFNO3NCQUFsQixLQUFLO2dCQWVPLElBQUk7c0JBQWhCLEtBQUs7Z0JBWU8sTUFBTTtzQkFBbEIsS0FBSztnQkFXRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0Y2xvdWQtdWktcHJvZ3Jlc3MtYmFyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGNsb3VkLXVpLXByb2dyZXNzLWJhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGNsb3VkLXVpLXByb2dyZXNzLWJhci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUQ2xvdWRVaVByb2dyZXNzQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgdmFsdWVfMTAwOiBudW1iZXIgPSAxMDA7XHJcbiAgQElucHV0KCkgbGltaXQ6IGFueSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgLypcclxuICBzdGF0dXNcclxuICAqL1xyXG4gIHByaXZhdGUgX3N0YXR1czogYW55ID0gJzAnO1xyXG4gIEBJbnB1dCgpIHNldCBzdGF0dXMoc3RhdHVzOiBhbnkpe1xyXG4gICAgbGV0IHZhbHVlID0gYCR7c3RhdHVzfWA7XHJcbiAgICBpZiggdmFsdWUgKXtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fc3RhdHVzID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy50b0NhbGNMaW1pdCgpO1xyXG4gICAgICB9KTsgICAgICBcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IHN0YXR1cygpOnN0cmluZyB7IHJldHVybiB0aGlzLl9zdGF0dXMgfSBcclxuXHJcbiAgLypcclxuICBtb2RlXHJcbiAgKi9cclxuICBwcml2YXRlIF9tb2RlOiBzdHJpbmcgPSAncHJpbWFyeSc7XHJcbiAgQElucHV0KCkgc2V0IG1vZGUobW9kZTogc3RyaW5nKXtcclxuICAgIGlmKCBtb2RlICl7XHJcbiAgICAgIHRoaXMuX21vZGUgPSBtb2RlOyAgXHJcbiAgICAgIHRoaXMuc2V0TW9kZSgpO1xyXG4gICAgfSAgICBcclxuICB9XHJcbiAgZ2V0IG1vZGUoKTpzdHJpbmcgeyByZXR1cm4gdGhpcy5fbW9kZSB9IFxyXG5cclxuICAvKlxyXG4gIGhlaWdodFxyXG4gICovXHJcbiAgcHJpdmF0ZSBfaGVpZ2h0OiBzdHJpbmcgPSAnbm9ybWFsJztcclxuICBASW5wdXQoKSBzZXQgaGVpZ2h0KGhlaWdodDogc3RyaW5nKXtcclxuICAgIGlmKCBoZWlnaHQgKXtcclxuICAgICAgdGhpcy5faGVpZ2h0ID0gaGVpZ2h0OyBcclxuICAgICAgdGhpcy5zZXRoZWlnaHQoKTsgICAgIFxyXG4gICAgfSAgICBcclxuICB9XHJcbiAgZ2V0IGhlaWdodCgpOnN0cmluZyB7IHJldHVybiB0aGlzLl9oZWlnaHQgfVxyXG5cclxuICBwcm9ncmVzc19jbGFzczogc3RyaW5nID0gJyc7XHJcbiAgaGVpZ2h0X2NsYXNzOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgQElucHV0KCkgdXNlRGVmYXVsdEJhY2tncm91bmQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dWYWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0TW9kZSgpO1xyXG4gICAgdGhpcy5zZXRoZWlnaHQoKTtcclxuICB9XHJcblxyXG4gIHNldE1vZGUoKTogdm9pZHtcclxuICAgIGNvbnN0IG1vZGUgPSB0aGlzLm1vZGU7XHJcbiAgICBsZXQgcHJvZ3Jlc3NfY2xhc3MgPSAncHJvZ3Jlc3MtcHJpbWFyeSc7XHJcbiAgICBzd2l0Y2ggKG1vZGUpIHtcclxuICAgICAgY2FzZSAncHJpbWFyeSc6IHByb2dyZXNzX2NsYXNzID0gJ3Byb2dyZXNzLXByaW1hcnknOyBicmVhaztcclxuICAgICAgY2FzZSAnZGFuZ2VyJzogcHJvZ3Jlc3NfY2xhc3MgPSAncHJvZ3Jlc3MtZGFuZ2VyJzsgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3dhcm5pbmcnOiBwcm9ncmVzc19jbGFzcyA9ICdwcm9ncmVzcy13YXJuaW5nJzsgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2luZm8nOiBwcm9ncmVzc19jbGFzcyA9ICdwcm9ncmVzcy1pbmZvJzsgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3N1Y2Nlc3MnOiBwcm9ncmVzc19jbGFzcyA9ICdwcm9ncmVzcy1zdWNjZXNzJzsgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2dyYXknOiBwcm9ncmVzc19jbGFzcyA9ICdwcm9ncmVzcy1ncmF5JzsgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlICdncmFkaWVudC1zdWNjZXNzJzogcHJvZ3Jlc3NfY2xhc3MgPSAncHJvZ3Jlc3MtZ3JhZGllbnQtc3VjY2Vzcyc7IGJyZWFrO1xyXG4gICAgICBjYXNlICdncmFkaWVudC1kYW5nZXInOiBwcm9ncmVzc19jbGFzcyA9ICdwcm9ncmVzcy1ncmFkaWVudC1kYW5nZXInOyBicmVhaztcclxuICAgICAgY2FzZSAnZ3JhZGllbnQtd2FybmluZyc6IHByb2dyZXNzX2NsYXNzID0gJ3Byb2dyZXNzLWdyYWRpZW50LXdhcm5pbmcnOyBicmVhaztcclxuICAgICAgY2FzZSAnZ3JhZGllbnQtaW5mbyc6IHByb2dyZXNzX2NsYXNzID0gJ3Byb2dyZXNzLWdyYWRpZW50LWluZm8nOyBicmVhaztcclxuICAgIH1cclxuICAgIHRoaXMucHJvZ3Jlc3NfY2xhc3MgPSBwcm9ncmVzc19jbGFzcztcclxuICB9XHJcblxyXG4gIHNldGhlaWdodCgpOiB2b2lke1xyXG4gICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5oZWlnaHQ7XHJcbiAgICBsZXQgaGVpZ2h0X2NsYXNzID0gJ2hlaWdodC1ub3JtYWwnO1xyXG4gICAgc3dpdGNoIChoZWlnaHQpIHtcclxuICAgICAgY2FzZSAnbm9ybWFsJzogaGVpZ2h0X2NsYXNzID0gJ2hlaWdodC1ub3JtYWwnOyBicmVhaztcclxuICAgICAgY2FzZSAnc2xpbSc6IGhlaWdodF9jbGFzcyA9ICdoZWlnaHQtc2xpbSc7IGJyZWFrO1xyXG4gICAgICBjYXNlICdmYXQnOiBoZWlnaHRfY2xhc3MgPSAnaGVpZ2h0LWZhdCc7IGJyZWFrO1xyXG4gICAgICBjYXNlICd2ZXJ5LWZhdCc6IGhlaWdodF9jbGFzcyA9ICdoZWlnaHQtdmVyeS1mYXQnOyBicmVhaztcclxuICAgIH1cclxuICAgIHRoaXMuaGVpZ2h0X2NsYXNzID0gaGVpZ2h0X2NsYXNzO1xyXG4gIH1cclxuXHJcbiAgdG9DYWxjTGltaXRfZXhjZWVkZWQoKXtcclxuICAgIGxldCB2cDogbnVtYmVyID0gMTAwO1xyXG4gICAgbGV0IHBlcmNlbnR1YWw6IG51bWJlciA9ICsodGhpcy5zdGF0dXMpO1xyXG5cclxuICAgIGlmKCBwZXJjZW50dWFsID4gMTAwICl7XHJcbiAgICAgIGxldCB2MTAwID0gdnAgLyAocGVyY2VudHVhbCAvIDEwMCk7XHJcbiAgICAgIHRoaXMudmFsdWVfMTAwID0gKygodjEwMCkudG9GaXhlZCgyKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm5ld19zdGF0dXMgPSAxMDA7XHJcbiAgfVxyXG5cclxuICB0b0NhbGNMaW1pdCgpe1xyXG5cclxuICAgIGlmKCB0aGlzLmxpbWl0ICl7XHJcblxyXG4gICAgICBpZiggKyh0aGlzLnN0YXR1cykgPiArKHRoaXMubGltaXQpICl7XHJcbiAgICAgICAgdGhpcy50b0NhbGNMaW1pdF9leGNlZWRlZCgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IHZwOiBudW1iZXIgPSAxMDA7XHJcbiAgICAgIGxldCBwZXJjZW50dWFsOiBudW1iZXIgPSArKHRoaXMubGltaXQpO1xyXG5cclxuICAgICAgaWYoIHBlcmNlbnR1YWwgPiAxMDAgKXtcclxuICAgICAgICBsZXQgdjEwMCA9IHZwIC8gKHBlcmNlbnR1YWwgLyAxMDApO1xyXG4gICAgICAgIHRoaXMudmFsdWVfMTAwID0gKygodjEwMCkudG9GaXhlZCgyKSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMudG9DYWxjU3RhdHVzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZXdfc3RhdHVzOiBudW1iZXIgPSAwO1xyXG4gIHRvQ2FsY1N0YXR1cygpe1xyXG4gICAgXHJcbiAgICBsZXQgdmFsb3JCYXNlOiBudW1iZXIgPSArKHRoaXMuc3RhdHVzKTtcclxuICAgIGxldCBwZXJjZW50dWFsOiBudW1iZXIgPSArKHRoaXMubGltaXQpO1xyXG5cclxuICAgIC8vIENhbGN1bGEgbyB2YWxvciBjb3JyZXNwb25kZW50ZSBhbyBwZXJjZW50dWFsIGRvIHZhbG9yIGJhc2VcclxuICAgIGxldCByZXN1bHRhZG8gPSB2YWxvckJhc2UgLyAocGVyY2VudHVhbCAvIDEwMCk7XHJcbiAgICB0aGlzLm5ld19zdGF0dXMgPSByZXN1bHRhZG87XHJcbiAgICBjb25zb2xlLmxvZygnbmV3X3N0YXR1cycsIHRoaXMubmV3X3N0YXR1cyk7XHJcbiAgICBcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0Yy11aS1wcm9ncmVzcy1iYXIgdGMtYmFja2dyb3VuZC17eyBwcm9ncmVzc19jbGFzcyB9fVwiPiAgICAgICAgXHJcbiAgICA8ZGl2IGNsYXNzPVwidGMtcHJvZ3Jlc3MtYmFyIHt7IGhlaWdodF9jbGFzcyB9fVwiIFtjbGFzcy51c2UtYmFja2dyb3VuZF09XCJ1c2VEZWZhdWx0QmFja2dyb3VuZFwiID5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFsaW1pdFwiIGNsYXNzPVwidGMtcHJvZ3Jlc3MtYmFyLXN0YXR1cyB7eyBwcm9ncmVzc19jbGFzcyB9fSB7eyBoZWlnaHRfY2xhc3MgfX1cIiBbc3R5bGVdPVwiJ3dpZHRoOiAnICsgc3RhdHVzICsgJyUnXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImxpbWl0XCIgY2xhc3M9XCJ0Yy1wcm9ncmVzcy1iYXItc3RhdHVzIHt7IHByb2dyZXNzX2NsYXNzIH19IHt7IGhlaWdodF9jbGFzcyB9fVwiIFtzdHlsZV09XCInd2lkdGg6ICcgKyBuZXdfc3RhdHVzICsgJyUnXCI+PC9kaXY+XHJcblxyXG4gICAgICAgIDxsYWJlbCAqbmdJZj1cIiggaGVpZ2h0X2NsYXNzID09PSAnaGVpZ2h0LW5vcm1hbCcgfHwgaGVpZ2h0X2NsYXNzID09PSAnaGVpZ2h0LWZhdCcgfHwgaGVpZ2h0X2NsYXNzID09PSAnaGVpZ2h0LXZlcnktZmF0JyApICYmIHNob3dWYWx1ZVwiIFxyXG4gICAgICAgICAgICBbY2xhc3MuZml4ZWQtbGVmdF09XCIoK3N0YXR1cyA+PSAxMilcIiBcclxuICAgICAgICAgICAgW3N0eWxlXT1cIidsZWZ0OiAnKyAoNzApICsncHgnXCIgXHJcbiAgICAgICAgICAgIGNsYXNzPVwiaW5kaWNhdGl2ZS12YWx1ZSBpbmZvLXt7IHByb2dyZXNzX2NsYXNzIH19XCI+e3sgc3RhdHVzIH19JVxyXG4gICAgICAgIDwvbGFiZWw+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgKm5nSWY9XCJsaW1pdCAmJiAoK2xpbWl0ID4gMTAwKVwiID5cclxuICAgIDxkaXYgW2NsYXNzLmluZGljYXRpdmUtbGltaXRdPVwibGltaXRcIiBbc3R5bGVdPVwieyd3aWR0aCc6IHZhbHVlXzEwMCsnJSd9XCI+XHJcbiAgICAgICAgPGxhYmVsPjEwMCU8L2xhYmVsPlxyXG4gICAgPC9kaXY+IFxyXG48L2Rpdj5cclxuXHJcbiJdfQ==