@inspark/inspark-components 14.0.44 → 14.0.46

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.
Files changed (32) hide show
  1. package/full/components/header/header.component.d.ts +3 -1
  2. package/full/components/table/table.component.d.ts +5 -4
  3. package/full/esm2020/components/autocomplete/autocomplete.component.mjs +3 -3
  4. package/full/esm2020/components/button/button.component.mjs +3 -3
  5. package/full/esm2020/components/dropdown/dropdown.component.mjs +31 -31
  6. package/full/esm2020/components/header/header.component.mjs +9 -3
  7. package/full/esm2020/components/input-group/input-group.component.mjs +3 -3
  8. package/full/esm2020/components/input-text/input-text.component.mjs +3 -3
  9. package/full/esm2020/components/inspark.module.mjs +1 -1
  10. package/full/esm2020/components/link/link.component.mjs +3 -3
  11. package/full/esm2020/components/modal-input-text/modal-input-text.component.mjs +3 -3
  12. package/full/esm2020/components/pie/pie.component.mjs +1 -1
  13. package/full/esm2020/components/primeng.module.mjs +1 -1
  14. package/full/esm2020/components/select-list/select-list.component.mjs +3 -3
  15. package/full/esm2020/components/svg/svg.component.mjs +1 -1
  16. package/full/esm2020/components/table/table.component.mjs +8 -5
  17. package/full/esm2020/components/tree-table/tree-table.component.mjs +3 -3
  18. package/full/esm2020/interface.mjs +1 -1
  19. package/full/esm2020/public_api.mjs +1 -1
  20. package/full/esm2020/services/inspark-dialog.service.mjs +1 -1
  21. package/full/esm2020/services/inspark-message.service.mjs +1 -1
  22. package/full/fesm2015/inspark-inspark-components.mjs +61 -52
  23. package/full/fesm2015/inspark-inspark-components.mjs.map +1 -1
  24. package/full/fesm2020/inspark-inspark-components.mjs +61 -52
  25. package/full/fesm2020/inspark-inspark-components.mjs.map +1 -1
  26. package/full/index.css +6 -6
  27. package/full/interface.d.ts +42 -0
  28. package/full/package.json +1 -1
  29. package/interface/esm2020/interface.mjs +1 -1
  30. package/interface/interface.d.ts +42 -0
  31. package/interface/package.json +1 -1
  32. package/package.json +1 -1
@@ -94,10 +94,10 @@ export class ButtonComponent extends PButton {
94
94
  }
95
95
  }
96
96
  ButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ButtonComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
97
- ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ButtonComponent, selector: "in-button", inputs: { size: "size", color: "color", type: "type", name: "name", testId: "testId", label: "label", icon: "icon", className: "className", notify: "notify", svg: "svg", width: "width", link: "link", isLoading: "isLoading", shadow: "shadow", isIconOnly: "isIconOnly", linkType: "linkType", linkTarget: "linkTarget", pressed: "pressed", disabled: "disabled", iconPos: "iconPos", selectedItem: "selectedItem", menuPlacement: "menuPlacement", menuItems: "menuItems" }, outputs: { focus: "focus", blur: "blur", click: "click" }, host: { properties: { "style.pointer-events": "this.pointerEvents" } }, viewQueries: [{ propertyName: "_menu", first: true, predicate: Menu, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<a (blur)=\"blur.emit($event)\"\r\n (click)=\"_onClick($event)\"\r\n (focus)=\"focus.emit($event)\"\r\n *ngIf=\"link && _linkType ==='external'\"\r\n [attr.type]=\"type\"\r\n [class]=\"className + ' ' + testId + ' field_' + name\"\r\n [href]=\"link\"\r\n [ngClass]=\"{'p-button p-widget p-state-default p-corner-all':true,\r\n 'p-button-icon-only': ((icon || svg) && !label),\r\n 'p-button-text-icon-left': ((icon || svg) && label && iconPos === 'left'),\r\n 'p-button-text-icon-right': ((icon || svg) && label && iconPos === 'right'),\r\n 'p-button-text-only': (!(icon || svg) && label),\r\n 'p-button-text-empty': (!(icon || svg) && !label),\r\n 'p-button-svg': svg,\r\n 'p-button-material': isMaterialIcon,\r\n 'p-state-disabled': disabled,\r\n 'p-button-tiny': size === 'tiny',\r\n 'p-button-small': size === 'small',\r\n 'p-button-large': size === 'large',\r\n 'p-button-primary': color === 'primary',\r\n 'p-button-secondary': color === 'secondary',\r\n 'p-button-danger': color === 'danger',\r\n 'p-button-transparency': color === 'transparent',\r\n 'p-button-pressed' : pressed}\"\r\n [ngStyle]=\"{width:width}\"\r\n [style]=\"style\"\r\n [target]=\"_target\" class=\"button-container\">\r\n <ng-container *ngTemplateOutlet=\"content;\"></ng-container>\r\n</a>\r\n<a (blur)=\"blur.emit($event)\"\r\n (click)=\"_onClick($event)\"\r\n (focus)=\"focus.emit($event)\"\r\n *ngIf=\"link && _linkType ==='internal'\"\r\n [attr.type]=\"type\"\r\n [class]=\"className + ' ' + testId + ' field_' + name\"\r\n [ngClass]=\"{'p-button p-widget p-state-default p-corner-all':true,\r\n 'p-button-icon-only': ((icon || svg) && !label),\r\n 'p-button-text-icon-left': ((icon || svg) && label && iconPos === 'left'),\r\n 'p-button-text-icon-right': ((icon || svg) && label && iconPos === 'right'),\r\n 'p-button-text-only': (!(icon || svg) && label),\r\n 'p-button-text-empty': (!(icon || svg) && !label),\r\n 'p-button-svg': svg,\r\n 'p-button-material': isMaterialIcon,\r\n 'p-state-disabled': disabled,\r\n 'p-button-tiny': size === 'tiny',\r\n 'p-button-small': size === 'small',\r\n 'p-button-large': size === 'large',\r\n 'p-button-primary': color === 'primary',\r\n 'p-button-secondary': color === 'secondary',\r\n 'p-button-danger': color === 'danger',\r\n 'p-button-transparency': color === 'transparent',\r\n 'p-button-pressed' : pressed}\"\r\n [ngStyle]=\"{width:width}\"\r\n [routerLink]=\"link\"\r\n [style]=\"style\"\r\n [target]=\"_target\" class=\"button-container\">\r\n <ng-container *ngTemplateOutlet=\"content;\"></ng-container>\r\n</a>\r\n<span #dropdown=\"ngbDropdown\" *ngIf=\"!link && menuItems.length\" [ngStyle]=\"{width:width}\" class=\"button-container\" container=\"body\"\r\n ngbDropdown>\r\n <button\r\n (blur)=\"blur.emit($event)\"\r\n (click)=\"_onClick($event)\"\r\n (focus)=\"focus.emit($event)\"\r\n [attr.type]=\"type\"\r\n [class]=\"className + ' ' + testId + ' field_' + name\"\r\n [disabled]=\"disabled\"\r\n [ngClass]=\" {'p-button p-widget p-state-default p-corner-all':true,\r\n 'p-button-icon-only': ((icon || svg) && !label),\r\n 'p-button-text-icon-left': ((icon || svg) && label && iconPos === 'left'),\r\n 'p-button-text-icon-right': ((icon || svg) && label && iconPos === 'right'),\r\n 'p-button-text-only': (!(icon || svg) && label),\r\n 'p-button-text-empty': (!(icon || svg) && !label),\r\n 'p-button-svg': svg,\r\n 'p-button-material': isMaterialIcon,\r\n 'p-state-disabled': disabled,\r\n 'p-button-tiny': size === 'tiny',\r\n 'p-button-small': size === 'small',\r\n 'p-button-large': size === 'large',\r\n 'p-button-primary': color === 'primary',\r\n 'p-button-secondary': color === 'secondary',\r\n 'p-button-danger': color === 'danger',\r\n 'p-button-transparency': color === 'transparent',\r\n 'p-button-shadowed': shadow === true,\r\n 'p-button-pressed' : pressed}\"\r\n [style]=\"style\" ngbDropdownToggle>\r\n <ng-container *ngTemplateOutlet=\"content;\"></ng-container>\r\n </button>\r\n <div *ngIf=\"menuItems.length\" aria-labelledby=\"menu\"\r\n class=\"in-dropdown-menu\"\r\n ngbDropdownMenu>\r\n <div *ngFor=\"let item of menuItems\" class=\"in-dropdown-menu-item\" role=\"menuitem\">\r\n <in-button (click)=\"dropdown.close(); item.command();\"\r\n [color]=\"selectedItem && selectedItem == item.id?'primary':'transparent'\"\r\n [icon]=\"item.icon\"\r\n [label]=\"item.label\"\r\n [svg]=\"item.svg\"\r\n size=\"large\"\r\n width=\"100%\"></in-button>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"notify\" [ngClass]=\"notify\" class=\"notify\"></div>\r\n</span>\r\n<span *ngIf=\"!link && !menuItems.length\" [ngStyle]=\"{width:width}\" class=\"button-container\">\r\n <button\r\n (blur)=\"blur.emit($event)\"\r\n (click)=\"_onClick($event)\"\r\n (focus)=\"focus.emit($event)\"\r\n [attr.type]=\"type\"\r\n [class]=\"className + ' ' + testId + ' field_' + name\"\r\n [disabled]=\"disabled\"\r\n [ngClass]=\" {'p-button p-widget p-state-default p-corner-all':true,\r\n 'p-button-icon-only': ((icon || svg) && !label) || isIconOnly,\r\n 'p-button-text-icon-left': ((icon || svg) && label && iconPos === 'left'),\r\n 'p-button-text-icon-right': ((icon || svg) && label && iconPos === 'right'),\r\n 'p-button-text-only': (!(icon || svg) && label),\r\n 'p-button-text-empty': (!(icon || svg) && !label),\r\n 'p-button-svg': svg,\r\n 'p-button-material': isMaterialIcon,\r\n 'p-state-disabled': disabled,\r\n 'p-button-tiny': size === 'tiny',\r\n 'p-button-small': size === 'small',\r\n 'p-button-large': size === 'large',\r\n 'p-button-primary': color === 'primary',\r\n 'p-button-secondary': color === 'secondary',\r\n 'p-button-danger': color === 'danger',\r\n 'p-button-transparency': color === 'transparent',\r\n 'p-button-shadowed': shadow === true,\r\n 'p-button-pressed' : pressed}\" [style]=\"style\">\r\n <ng-container *ngTemplateOutlet=\"content;\"></ng-container>\r\n </button>\r\n <div *ngIf=\"notify\" [ngClass]=\"notify\" class=\"notify\"></div>\r\n</span>\r\n\r\n<ng-template #content>\r\n <span *ngIf=\"!isMaterialIcon && icon && !isLoading\" [class]=\"icon\"\r\n [ngClass]=\"{'p-clickable': true,\r\n 'p-button-icon-left': (iconPos === 'left'),\r\n 'p-button-icon-right': (iconPos === 'right')}\"></span>\r\n <span *ngIf=\"isMaterialIcon && icon && !isLoading\" [ngClass]=\"{'p-clickable': true,\r\n 'p-button-icon-left': (iconPos === 'left'),\r\n 'p-button-icon-right': (iconPos === 'right')}\"\r\n ><i class=\"material-icons\">{{icon}}</i></span>\r\n <in-preloader *ngIf=\"isLoading\" size=\"small\"></in-preloader>\r\n <span class=\"p-button-text p-clickable\">{{label}}</span>\r\n <span *ngIf=\"svg && !isLoading\" [ngClass]=\"{'p-clickable': true,\r\n 'p-button-icon-left': (iconPos === 'left'),\r\n 'p-button-icon-right': (iconPos === 'right')}\">\r\n <in-svg *ngIf=\"size === 'normal'\" [src]=\"svg\" height=\"20px\" width=\"20px\"></in-svg>\r\n <in-svg *ngIf=\"size === 'large'\" [src]=\"svg\" height=\"20px\" width=\"20px\"></in-svg>\r\n <in-svg *ngIf=\"size === 'small'\" [src]=\"svg\" height=\"20px\" width=\"20px\"></in-svg>\r\n <in-svg *ngIf=\"size === 'tiny'\" [src]=\"svg\" height=\"10px\" width=\"10px\"></in-svg>\r\n </span>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.container{display:inline-block}.button-container{position:relative;display:inline-block}button{outline:none;width:100%}.p-button-icon-only .p-button-icon-left{margin-top:-9px}.p-button-text{vertical-align:middle}.notify{width:8px;height:8px;border-radius:100%;position:absolute;right:8px;top:8px}.notify.warning{background:var(--colorWarning)}.notify.success{background:var(--colorSuccess)}.notify.error{background:var(--colorError)}.notify.critical{background:var(--colorCritical)}.p-button{margin-right:0;height:36px;display:inline-flex;align-items:center;justify-content:center}.p-button.p-button-pressed{background-color:var(--colorBgLevel4)}.p-button.p-button-large{height:48px}.p-button.p-button-large .p-button-icon-left{font-size:18px;margin-top:-8px}.p-button.p-button-large .p-button-text{padding:0 1em 0 48px;margin-top:6px}.p-button-text-icon-left .p-button-text{padding:0 1em 0 2.4em}.p-button-icon-only{font-size:18px;display:inline-flex;align-items:center;justify-content:center}.p-button-icon-only.p-button-large{width:48px;height:48px}.p-button-icon-only.p-button-large .svg,.p-button-icon-only .svg{display:inline-block;line-height:0}.p-button-transparency{background:none;color:currentColor}.p-button-transparency:hover{color:currentColor}.p-button-shadowed{box-shadow:0 2px 6px #0003}.p-button.p-button-svg.p-button-small .p-button-icon-left{margin-top:-4px}.p-button.p-button-svg.p-button-small.p-button-icon-only .p-button-icon-left{margin-top:-2px}.p-button.p-button-svg .p-button-icon-left{left:6px;transform:translateY(-50%);margin-top:-4px}.p-button.p-button-svg.p-button-icon-only .p-button-icon-left{left:50%;width:auto;transform:translate(-50%,-50%);margin-left:0;margin-top:0}.p-button.p-button-svg.p-button-large.p-button-icon-only .p-button-icon-left{margin-top:0}.p-button-material.p-button-icon-only .material-icons{font-size:20px}.p-button-material.p-button-icon-only .p-button-icon-left{margin-top:-10px;margin-left:-12px}.p-button-material .material-icons{font-size:16px}.p-button-material .p-button-icon-left{margin-top:-8px;margin-left:-2px}.p-button-material.p-button-small .p-button-icon-left{margin-top:-7px}.p-button-material.p-button-small .material-icons{font-size:14px}.p-button-material.p-button-small.p-button-icon-only .p-button-icon-left{margin-top:-12px;margin-left:-10px}.p-button-material.p-button-small.p-button-icon-only .p-button-icon-left .material-icons{font-size:18px}.p-button-material.p-button-large .material-icons{font-size:24px}.p-button-material.p-button-large .p-button-icon-left{margin-top:-11px}.p-button-material.p-button-large.p-button-icon-only .p-button-icon-left{margin-top:-11px;margin-left:-13px}:host .p-menu .p-menuitem-link{font-size:16px}.dropdown-menu{display:none;background:var(--colorBgLevel3);padding:4px}.dropdown-menu li{padding:4px;font-size:14px}.dropdown-menu.show{display:block}.in-dropdown-menu{background:var(--colorBgLevel2);padding:0;position:absolute;display:none;margin-left:0;box-shadow:0 0 3px 1px #0003}.in-dropdown-menu.show{display:block}.in-dropdown-menu .in-dropdown-menu-item{list-style-type:none;min-width:250px;display:flex;align-items:center;justify-content:flex-start;min-height:48px}.in-dropdown-menu .in-dropdown-menu-item in-button,.in-dropdown-menu .in-dropdown-menu-item in-button ::ng-deep button{width:100%;border-radius:0}.in-dropdown-menu .in-dropdown-menu-item in-button .p-button,.in-dropdown-menu .in-dropdown-menu-item in-button ::ng-deep button .p-button{justify-content:flex-start}.in-dropdown-menu .in-dropdown-menu-item .switcher{flex:1;display:flex;justify-content:flex-end;padding-right:4px}.in-dropdown-menu .in-dropdown-menu-item+.in-dropdown-menu-item{border-top:1px solid var(--colorBgLevel4)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i3.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i3.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "component", type: ButtonComponent, selector: "in-button", inputs: ["size", "color", "type", "name", "testId", "label", "icon", "className", "notify", "svg", "width", "link", "isLoading", "shadow", "isIconOnly", "linkType", "linkTarget", "pressed", "disabled", "iconPos", "selectedItem", "menuPlacement", "menuItems"], outputs: ["focus", "blur", "click"] }, { kind: "component", type: i4.PreloaderComponent, selector: "in-preloader", inputs: ["inline", "overlay", "size"] }, { kind: "component", type: i5.SvgComponent, selector: "in-svg", inputs: ["size", "width", "height", "src"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
97
+ ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ButtonComponent, selector: "in-button", inputs: { size: "size", color: "color", type: "type", name: "name", testId: "testId", label: "label", icon: "icon", className: "className", notify: "notify", svg: "svg", width: "width", link: "link", isLoading: "isLoading", shadow: "shadow", isIconOnly: "isIconOnly", linkType: "linkType", linkTarget: "linkTarget", pressed: "pressed", disabled: "disabled", iconPos: "iconPos", selectedItem: "selectedItem", menuPlacement: "menuPlacement", menuItems: "menuItems" }, outputs: { focus: "focus", blur: "blur", click: "click" }, host: { properties: { "style.pointer-events": "this.pointerEvents" } }, viewQueries: [{ propertyName: "_menu", first: true, predicate: Menu, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<a (blur)=\"blur.emit($event)\"\n (click)=\"_onClick($event)\"\n (focus)=\"focus.emit($event)\"\n *ngIf=\"link && _linkType ==='external'\"\n [attr.type]=\"type\"\n [class]=\"className + ' ' + testId + ' field_' + name\"\n [href]=\"link\"\n [ngClass]=\"{'p-button p-widget p-state-default p-corner-all':true,\n 'p-button-icon-only': ((icon || svg) && !label),\n 'p-button-text-icon-left': ((icon || svg) && label && iconPos === 'left'),\n 'p-button-text-icon-right': ((icon || svg) && label && iconPos === 'right'),\n 'p-button-text-only': (!(icon || svg) && label),\n 'p-button-text-empty': (!(icon || svg) && !label),\n 'p-button-svg': svg,\n 'p-button-material': isMaterialIcon,\n 'p-state-disabled': disabled,\n 'p-button-tiny': size === 'tiny',\n 'p-button-small': size === 'small',\n 'p-button-large': size === 'large',\n 'p-button-primary': color === 'primary',\n 'p-button-secondary': color === 'secondary',\n 'p-button-danger': color === 'danger',\n 'p-button-transparency': color === 'transparent',\n 'p-button-pressed' : pressed}\"\n [ngStyle]=\"{width:width}\"\n [style]=\"style\"\n [target]=\"_target\" class=\"button-container\">\n <ng-container *ngTemplateOutlet=\"content;\"></ng-container>\n</a>\n<a (blur)=\"blur.emit($event)\"\n (click)=\"_onClick($event)\"\n (focus)=\"focus.emit($event)\"\n *ngIf=\"link && _linkType ==='internal'\"\n [attr.type]=\"type\"\n [class]=\"className + ' ' + testId + ' field_' + name\"\n [ngClass]=\"{'p-button p-widget p-state-default p-corner-all':true,\n 'p-button-icon-only': ((icon || svg) && !label),\n 'p-button-text-icon-left': ((icon || svg) && label && iconPos === 'left'),\n 'p-button-text-icon-right': ((icon || svg) && label && iconPos === 'right'),\n 'p-button-text-only': (!(icon || svg) && label),\n 'p-button-text-empty': (!(icon || svg) && !label),\n 'p-button-svg': svg,\n 'p-button-material': isMaterialIcon,\n 'p-state-disabled': disabled,\n 'p-button-tiny': size === 'tiny',\n 'p-button-small': size === 'small',\n 'p-button-large': size === 'large',\n 'p-button-primary': color === 'primary',\n 'p-button-secondary': color === 'secondary',\n 'p-button-danger': color === 'danger',\n 'p-button-transparency': color === 'transparent',\n 'p-button-pressed' : pressed}\"\n [ngStyle]=\"{width:width}\"\n [routerLink]=\"link\"\n [style]=\"style\"\n [target]=\"_target\" class=\"button-container\">\n <ng-container *ngTemplateOutlet=\"content;\"></ng-container>\n</a>\n<span #dropdown=\"ngbDropdown\" *ngIf=\"!link && menuItems.length\" [ngStyle]=\"{width:width}\" class=\"button-container\" container=\"body\"\n ngbDropdown>\n <button\n (blur)=\"blur.emit($event)\"\n (click)=\"_onClick($event)\"\n (focus)=\"focus.emit($event)\"\n [attr.type]=\"type\"\n [class]=\"className + ' ' + testId + ' field_' + name\"\n [disabled]=\"disabled\"\n [ngClass]=\" {'p-button p-widget p-state-default p-corner-all':true,\n 'p-button-icon-only': ((icon || svg) && !label),\n 'p-button-text-icon-left': ((icon || svg) && label && iconPos === 'left'),\n 'p-button-text-icon-right': ((icon || svg) && label && iconPos === 'right'),\n 'p-button-text-only': (!(icon || svg) && label),\n 'p-button-text-empty': (!(icon || svg) && !label),\n 'p-button-svg': svg,\n 'p-button-material': isMaterialIcon,\n 'p-state-disabled': disabled,\n 'p-button-tiny': size === 'tiny',\n 'p-button-small': size === 'small',\n 'p-button-large': size === 'large',\n 'p-button-primary': color === 'primary',\n 'p-button-secondary': color === 'secondary',\n 'p-button-danger': color === 'danger',\n 'p-button-transparency': color === 'transparent',\n 'p-button-shadowed': shadow === true,\n 'p-button-pressed' : pressed}\"\n [style]=\"style\" ngbDropdownToggle>\n <ng-container *ngTemplateOutlet=\"content;\"></ng-container>\n </button>\n <div *ngIf=\"menuItems.length\" aria-labelledby=\"menu\"\n class=\"in-dropdown-menu\"\n ngbDropdownMenu>\n <div *ngFor=\"let item of menuItems\" class=\"in-dropdown-menu-item\" role=\"menuitem\">\n <in-button (click)=\"dropdown.close(); item.command();\"\n [color]=\"selectedItem && selectedItem == item.id?'primary':'transparent'\"\n [icon]=\"item.icon\"\n [label]=\"item.label\"\n [svg]=\"item.svg\"\n size=\"large\"\n width=\"100%\"></in-button>\n </div>\n </div>\n\n <div *ngIf=\"notify\" [ngClass]=\"notify\" class=\"notify\"></div>\n</span>\n<span *ngIf=\"!link && !menuItems.length\" [ngStyle]=\"{width:width}\" class=\"button-container\">\n <button\n (blur)=\"blur.emit($event)\"\n (click)=\"_onClick($event)\"\n (focus)=\"focus.emit($event)\"\n [attr.type]=\"type\"\n [class]=\"className + ' ' + testId + ' field_' + name\"\n [disabled]=\"disabled\"\n [ngClass]=\" {'p-button p-widget p-state-default p-corner-all':true,\n 'p-button-icon-only': ((icon || svg) && !label) || isIconOnly,\n 'p-button-text-icon-left': ((icon || svg) && label && iconPos === 'left'),\n 'p-button-text-icon-right': ((icon || svg) && label && iconPos === 'right'),\n 'p-button-text-only': (!(icon || svg) && label),\n 'p-button-text-empty': (!(icon || svg) && !label),\n 'p-button-svg': svg,\n 'p-button-material': isMaterialIcon,\n 'p-state-disabled': disabled,\n 'p-button-tiny': size === 'tiny',\n 'p-button-small': size === 'small',\n 'p-button-large': size === 'large',\n 'p-button-primary': color === 'primary',\n 'p-button-secondary': color === 'secondary',\n 'p-button-danger': color === 'danger',\n 'p-button-transparency': color === 'transparent',\n 'p-button-shadowed': shadow === true,\n 'p-button-pressed' : pressed}\" [style]=\"style\">\n <ng-container *ngTemplateOutlet=\"content;\"></ng-container>\n </button>\n <div *ngIf=\"notify\" [ngClass]=\"notify\" class=\"notify\"></div>\n</span>\n\n<ng-template #content>\n <span *ngIf=\"!isMaterialIcon && icon && !isLoading\" [class]=\"icon\"\n [ngClass]=\"{'p-clickable': true,\n 'p-button-icon-left': (iconPos === 'left'),\n 'p-button-icon-right': (iconPos === 'right')}\"></span>\n <span *ngIf=\"isMaterialIcon && icon && !isLoading\" [ngClass]=\"{'p-clickable': true,\n 'p-button-icon-left': (iconPos === 'left'),\n 'p-button-icon-right': (iconPos === 'right')}\"\n ><i class=\"material-icons\">{{icon}}</i></span>\n <in-preloader *ngIf=\"isLoading\" size=\"small\"></in-preloader>\n <span class=\"p-button-text p-clickable\">{{label}}</span>\n <span *ngIf=\"svg && !isLoading\" [ngClass]=\"{'p-clickable': true,\n 'p-button-icon-left': (iconPos === 'left'),\n 'p-button-icon-right': (iconPos === 'right')}\">\n <in-svg *ngIf=\"size === 'normal'\" [src]=\"svg\" height=\"20px\" width=\"20px\"></in-svg>\n <in-svg *ngIf=\"size === 'large'\" [src]=\"svg\" height=\"20px\" width=\"20px\"></in-svg>\n <in-svg *ngIf=\"size === 'small'\" [src]=\"svg\" height=\"20px\" width=\"20px\"></in-svg>\n <in-svg *ngIf=\"size === 'tiny'\" [src]=\"svg\" height=\"10px\" width=\"10px\"></in-svg>\n </span>\n</ng-template>\n", styles: ["@charset \"UTF-8\";.container{display:inline-block}.button-container{position:relative;display:inline-block}button{outline:none;width:100%}.p-button-icon-only .p-button-icon-left{margin-top:-9px}.p-button-text{vertical-align:middle}.notify{width:8px;height:8px;border-radius:100%;position:absolute;right:8px;top:8px}.notify.warning{background:var(--colorWarning)}.notify.success{background:var(--colorSuccess)}.notify.error{background:var(--colorError)}.notify.critical{background:var(--colorCritical)}.p-button{margin-right:0;height:36px;display:inline-flex;align-items:center;justify-content:center}.p-button.p-button-pressed{background-color:var(--colorBgLevel4)}.p-button.p-button-large{height:48px}.p-button.p-button-large .p-button-icon-left{font-size:18px;margin-top:-8px}.p-button.p-button-large .p-button-text{padding:0 1em 0 48px;margin-top:6px}.p-button-text-icon-left .p-button-text{padding:0 1em 0 2.4em}.p-button-icon-only{font-size:18px;display:inline-flex;align-items:center;justify-content:center}.p-button-icon-only.p-button-large{width:48px;height:48px}.p-button-icon-only.p-button-large .svg,.p-button-icon-only .svg{display:inline-block;line-height:0}.p-button-transparency{background:none;color:currentColor}.p-button-transparency:hover{color:currentColor}.p-button-shadowed{box-shadow:0 2px 6px #0003}.p-button.p-button-svg.p-button-small .p-button-icon-left{margin-top:-4px}.p-button.p-button-svg.p-button-small.p-button-icon-only .p-button-icon-left{margin-top:-2px}.p-button.p-button-svg .p-button-icon-left{left:6px;transform:translateY(-50%);margin-top:-4px}.p-button.p-button-svg.p-button-icon-only .p-button-icon-left{left:50%;width:auto;transform:translate(-50%,-50%);margin-left:0;margin-top:0}.p-button.p-button-svg.p-button-large.p-button-icon-only .p-button-icon-left{margin-top:0}.p-button-material.p-button-icon-only .material-icons{font-size:20px}.p-button-material.p-button-icon-only .p-button-icon-left{margin-top:-10px;margin-left:-12px}.p-button-material .material-icons{font-size:16px}.p-button-material .p-button-icon-left{margin-top:-8px;margin-left:-2px}.p-button-material.p-button-small .p-button-icon-left{margin-top:-7px}.p-button-material.p-button-small .material-icons{font-size:14px}.p-button-material.p-button-small.p-button-icon-only .p-button-icon-left{margin-top:-12px;margin-left:-10px}.p-button-material.p-button-small.p-button-icon-only .p-button-icon-left .material-icons{font-size:18px}.p-button-material.p-button-large .material-icons{font-size:24px}.p-button-material.p-button-large .p-button-icon-left{margin-top:-11px}.p-button-material.p-button-large.p-button-icon-only .p-button-icon-left{margin-top:-11px;margin-left:-13px}:host .p-menu .p-menuitem-link{font-size:16px}.dropdown-menu{display:none;background:var(--colorBgLevel3);padding:4px}.dropdown-menu li{padding:4px;font-size:14px}.dropdown-menu.show{display:block}.in-dropdown-menu{background:var(--colorBgLevel2);padding:0;position:absolute;display:none;margin-left:0;box-shadow:0 0 3px 1px #0003}.in-dropdown-menu.show{display:block}.in-dropdown-menu .in-dropdown-menu-item{list-style-type:none;min-width:250px;display:flex;align-items:center;justify-content:flex-start;min-height:48px}.in-dropdown-menu .in-dropdown-menu-item in-button,.in-dropdown-menu .in-dropdown-menu-item in-button ::ng-deep button{width:100%;border-radius:0}.in-dropdown-menu .in-dropdown-menu-item in-button .p-button,.in-dropdown-menu .in-dropdown-menu-item in-button ::ng-deep button .p-button{justify-content:flex-start}.in-dropdown-menu .in-dropdown-menu-item .switcher{flex:1;display:flex;justify-content:flex-end;padding-right:4px}.in-dropdown-menu .in-dropdown-menu-item+.in-dropdown-menu-item{border-top:1px solid var(--colorBgLevel4)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i3.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i3.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "component", type: ButtonComponent, selector: "in-button", inputs: ["size", "color", "type", "name", "testId", "label", "icon", "className", "notify", "svg", "width", "link", "isLoading", "shadow", "isIconOnly", "linkType", "linkTarget", "pressed", "disabled", "iconPos", "selectedItem", "menuPlacement", "menuItems"], outputs: ["focus", "blur", "click"] }, { kind: "component", type: i4.PreloaderComponent, selector: "in-preloader", inputs: ["inline", "overlay", "size"] }, { kind: "component", type: i5.SvgComponent, selector: "in-svg", inputs: ["size", "width", "height", "src"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
98
98
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ButtonComponent, decorators: [{
99
99
  type: Component,
100
- args: [{ selector: 'in-button', encapsulation: ViewEncapsulation.Emulated, changeDetection: ChangeDetectionStrategy.OnPush, template: "<a (blur)=\"blur.emit($event)\"\r\n (click)=\"_onClick($event)\"\r\n (focus)=\"focus.emit($event)\"\r\n *ngIf=\"link && _linkType ==='external'\"\r\n [attr.type]=\"type\"\r\n [class]=\"className + ' ' + testId + ' field_' + name\"\r\n [href]=\"link\"\r\n [ngClass]=\"{'p-button p-widget p-state-default p-corner-all':true,\r\n 'p-button-icon-only': ((icon || svg) && !label),\r\n 'p-button-text-icon-left': ((icon || svg) && label && iconPos === 'left'),\r\n 'p-button-text-icon-right': ((icon || svg) && label && iconPos === 'right'),\r\n 'p-button-text-only': (!(icon || svg) && label),\r\n 'p-button-text-empty': (!(icon || svg) && !label),\r\n 'p-button-svg': svg,\r\n 'p-button-material': isMaterialIcon,\r\n 'p-state-disabled': disabled,\r\n 'p-button-tiny': size === 'tiny',\r\n 'p-button-small': size === 'small',\r\n 'p-button-large': size === 'large',\r\n 'p-button-primary': color === 'primary',\r\n 'p-button-secondary': color === 'secondary',\r\n 'p-button-danger': color === 'danger',\r\n 'p-button-transparency': color === 'transparent',\r\n 'p-button-pressed' : pressed}\"\r\n [ngStyle]=\"{width:width}\"\r\n [style]=\"style\"\r\n [target]=\"_target\" class=\"button-container\">\r\n <ng-container *ngTemplateOutlet=\"content;\"></ng-container>\r\n</a>\r\n<a (blur)=\"blur.emit($event)\"\r\n (click)=\"_onClick($event)\"\r\n (focus)=\"focus.emit($event)\"\r\n *ngIf=\"link && _linkType ==='internal'\"\r\n [attr.type]=\"type\"\r\n [class]=\"className + ' ' + testId + ' field_' + name\"\r\n [ngClass]=\"{'p-button p-widget p-state-default p-corner-all':true,\r\n 'p-button-icon-only': ((icon || svg) && !label),\r\n 'p-button-text-icon-left': ((icon || svg) && label && iconPos === 'left'),\r\n 'p-button-text-icon-right': ((icon || svg) && label && iconPos === 'right'),\r\n 'p-button-text-only': (!(icon || svg) && label),\r\n 'p-button-text-empty': (!(icon || svg) && !label),\r\n 'p-button-svg': svg,\r\n 'p-button-material': isMaterialIcon,\r\n 'p-state-disabled': disabled,\r\n 'p-button-tiny': size === 'tiny',\r\n 'p-button-small': size === 'small',\r\n 'p-button-large': size === 'large',\r\n 'p-button-primary': color === 'primary',\r\n 'p-button-secondary': color === 'secondary',\r\n 'p-button-danger': color === 'danger',\r\n 'p-button-transparency': color === 'transparent',\r\n 'p-button-pressed' : pressed}\"\r\n [ngStyle]=\"{width:width}\"\r\n [routerLink]=\"link\"\r\n [style]=\"style\"\r\n [target]=\"_target\" class=\"button-container\">\r\n <ng-container *ngTemplateOutlet=\"content;\"></ng-container>\r\n</a>\r\n<span #dropdown=\"ngbDropdown\" *ngIf=\"!link && menuItems.length\" [ngStyle]=\"{width:width}\" class=\"button-container\" container=\"body\"\r\n ngbDropdown>\r\n <button\r\n (blur)=\"blur.emit($event)\"\r\n (click)=\"_onClick($event)\"\r\n (focus)=\"focus.emit($event)\"\r\n [attr.type]=\"type\"\r\n [class]=\"className + ' ' + testId + ' field_' + name\"\r\n [disabled]=\"disabled\"\r\n [ngClass]=\" {'p-button p-widget p-state-default p-corner-all':true,\r\n 'p-button-icon-only': ((icon || svg) && !label),\r\n 'p-button-text-icon-left': ((icon || svg) && label && iconPos === 'left'),\r\n 'p-button-text-icon-right': ((icon || svg) && label && iconPos === 'right'),\r\n 'p-button-text-only': (!(icon || svg) && label),\r\n 'p-button-text-empty': (!(icon || svg) && !label),\r\n 'p-button-svg': svg,\r\n 'p-button-material': isMaterialIcon,\r\n 'p-state-disabled': disabled,\r\n 'p-button-tiny': size === 'tiny',\r\n 'p-button-small': size === 'small',\r\n 'p-button-large': size === 'large',\r\n 'p-button-primary': color === 'primary',\r\n 'p-button-secondary': color === 'secondary',\r\n 'p-button-danger': color === 'danger',\r\n 'p-button-transparency': color === 'transparent',\r\n 'p-button-shadowed': shadow === true,\r\n 'p-button-pressed' : pressed}\"\r\n [style]=\"style\" ngbDropdownToggle>\r\n <ng-container *ngTemplateOutlet=\"content;\"></ng-container>\r\n </button>\r\n <div *ngIf=\"menuItems.length\" aria-labelledby=\"menu\"\r\n class=\"in-dropdown-menu\"\r\n ngbDropdownMenu>\r\n <div *ngFor=\"let item of menuItems\" class=\"in-dropdown-menu-item\" role=\"menuitem\">\r\n <in-button (click)=\"dropdown.close(); item.command();\"\r\n [color]=\"selectedItem && selectedItem == item.id?'primary':'transparent'\"\r\n [icon]=\"item.icon\"\r\n [label]=\"item.label\"\r\n [svg]=\"item.svg\"\r\n size=\"large\"\r\n width=\"100%\"></in-button>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"notify\" [ngClass]=\"notify\" class=\"notify\"></div>\r\n</span>\r\n<span *ngIf=\"!link && !menuItems.length\" [ngStyle]=\"{width:width}\" class=\"button-container\">\r\n <button\r\n (blur)=\"blur.emit($event)\"\r\n (click)=\"_onClick($event)\"\r\n (focus)=\"focus.emit($event)\"\r\n [attr.type]=\"type\"\r\n [class]=\"className + ' ' + testId + ' field_' + name\"\r\n [disabled]=\"disabled\"\r\n [ngClass]=\" {'p-button p-widget p-state-default p-corner-all':true,\r\n 'p-button-icon-only': ((icon || svg) && !label) || isIconOnly,\r\n 'p-button-text-icon-left': ((icon || svg) && label && iconPos === 'left'),\r\n 'p-button-text-icon-right': ((icon || svg) && label && iconPos === 'right'),\r\n 'p-button-text-only': (!(icon || svg) && label),\r\n 'p-button-text-empty': (!(icon || svg) && !label),\r\n 'p-button-svg': svg,\r\n 'p-button-material': isMaterialIcon,\r\n 'p-state-disabled': disabled,\r\n 'p-button-tiny': size === 'tiny',\r\n 'p-button-small': size === 'small',\r\n 'p-button-large': size === 'large',\r\n 'p-button-primary': color === 'primary',\r\n 'p-button-secondary': color === 'secondary',\r\n 'p-button-danger': color === 'danger',\r\n 'p-button-transparency': color === 'transparent',\r\n 'p-button-shadowed': shadow === true,\r\n 'p-button-pressed' : pressed}\" [style]=\"style\">\r\n <ng-container *ngTemplateOutlet=\"content;\"></ng-container>\r\n </button>\r\n <div *ngIf=\"notify\" [ngClass]=\"notify\" class=\"notify\"></div>\r\n</span>\r\n\r\n<ng-template #content>\r\n <span *ngIf=\"!isMaterialIcon && icon && !isLoading\" [class]=\"icon\"\r\n [ngClass]=\"{'p-clickable': true,\r\n 'p-button-icon-left': (iconPos === 'left'),\r\n 'p-button-icon-right': (iconPos === 'right')}\"></span>\r\n <span *ngIf=\"isMaterialIcon && icon && !isLoading\" [ngClass]=\"{'p-clickable': true,\r\n 'p-button-icon-left': (iconPos === 'left'),\r\n 'p-button-icon-right': (iconPos === 'right')}\"\r\n ><i class=\"material-icons\">{{icon}}</i></span>\r\n <in-preloader *ngIf=\"isLoading\" size=\"small\"></in-preloader>\r\n <span class=\"p-button-text p-clickable\">{{label}}</span>\r\n <span *ngIf=\"svg && !isLoading\" [ngClass]=\"{'p-clickable': true,\r\n 'p-button-icon-left': (iconPos === 'left'),\r\n 'p-button-icon-right': (iconPos === 'right')}\">\r\n <in-svg *ngIf=\"size === 'normal'\" [src]=\"svg\" height=\"20px\" width=\"20px\"></in-svg>\r\n <in-svg *ngIf=\"size === 'large'\" [src]=\"svg\" height=\"20px\" width=\"20px\"></in-svg>\r\n <in-svg *ngIf=\"size === 'small'\" [src]=\"svg\" height=\"20px\" width=\"20px\"></in-svg>\r\n <in-svg *ngIf=\"size === 'tiny'\" [src]=\"svg\" height=\"10px\" width=\"10px\"></in-svg>\r\n </span>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.container{display:inline-block}.button-container{position:relative;display:inline-block}button{outline:none;width:100%}.p-button-icon-only .p-button-icon-left{margin-top:-9px}.p-button-text{vertical-align:middle}.notify{width:8px;height:8px;border-radius:100%;position:absolute;right:8px;top:8px}.notify.warning{background:var(--colorWarning)}.notify.success{background:var(--colorSuccess)}.notify.error{background:var(--colorError)}.notify.critical{background:var(--colorCritical)}.p-button{margin-right:0;height:36px;display:inline-flex;align-items:center;justify-content:center}.p-button.p-button-pressed{background-color:var(--colorBgLevel4)}.p-button.p-button-large{height:48px}.p-button.p-button-large .p-button-icon-left{font-size:18px;margin-top:-8px}.p-button.p-button-large .p-button-text{padding:0 1em 0 48px;margin-top:6px}.p-button-text-icon-left .p-button-text{padding:0 1em 0 2.4em}.p-button-icon-only{font-size:18px;display:inline-flex;align-items:center;justify-content:center}.p-button-icon-only.p-button-large{width:48px;height:48px}.p-button-icon-only.p-button-large .svg,.p-button-icon-only .svg{display:inline-block;line-height:0}.p-button-transparency{background:none;color:currentColor}.p-button-transparency:hover{color:currentColor}.p-button-shadowed{box-shadow:0 2px 6px #0003}.p-button.p-button-svg.p-button-small .p-button-icon-left{margin-top:-4px}.p-button.p-button-svg.p-button-small.p-button-icon-only .p-button-icon-left{margin-top:-2px}.p-button.p-button-svg .p-button-icon-left{left:6px;transform:translateY(-50%);margin-top:-4px}.p-button.p-button-svg.p-button-icon-only .p-button-icon-left{left:50%;width:auto;transform:translate(-50%,-50%);margin-left:0;margin-top:0}.p-button.p-button-svg.p-button-large.p-button-icon-only .p-button-icon-left{margin-top:0}.p-button-material.p-button-icon-only .material-icons{font-size:20px}.p-button-material.p-button-icon-only .p-button-icon-left{margin-top:-10px;margin-left:-12px}.p-button-material .material-icons{font-size:16px}.p-button-material .p-button-icon-left{margin-top:-8px;margin-left:-2px}.p-button-material.p-button-small .p-button-icon-left{margin-top:-7px}.p-button-material.p-button-small .material-icons{font-size:14px}.p-button-material.p-button-small.p-button-icon-only .p-button-icon-left{margin-top:-12px;margin-left:-10px}.p-button-material.p-button-small.p-button-icon-only .p-button-icon-left .material-icons{font-size:18px}.p-button-material.p-button-large .material-icons{font-size:24px}.p-button-material.p-button-large .p-button-icon-left{margin-top:-11px}.p-button-material.p-button-large.p-button-icon-only .p-button-icon-left{margin-top:-11px;margin-left:-13px}:host .p-menu .p-menuitem-link{font-size:16px}.dropdown-menu{display:none;background:var(--colorBgLevel3);padding:4px}.dropdown-menu li{padding:4px;font-size:14px}.dropdown-menu.show{display:block}.in-dropdown-menu{background:var(--colorBgLevel2);padding:0;position:absolute;display:none;margin-left:0;box-shadow:0 0 3px 1px #0003}.in-dropdown-menu.show{display:block}.in-dropdown-menu .in-dropdown-menu-item{list-style-type:none;min-width:250px;display:flex;align-items:center;justify-content:flex-start;min-height:48px}.in-dropdown-menu .in-dropdown-menu-item in-button,.in-dropdown-menu .in-dropdown-menu-item in-button ::ng-deep button{width:100%;border-radius:0}.in-dropdown-menu .in-dropdown-menu-item in-button .p-button,.in-dropdown-menu .in-dropdown-menu-item in-button ::ng-deep button .p-button{justify-content:flex-start}.in-dropdown-menu .in-dropdown-menu-item .switcher{flex:1;display:flex;justify-content:flex-end;padding-right:4px}.in-dropdown-menu .in-dropdown-menu-item+.in-dropdown-menu-item{border-top:1px solid var(--colorBgLevel4)}\n"] }]
100
+ args: [{ selector: 'in-button', encapsulation: ViewEncapsulation.Emulated, changeDetection: ChangeDetectionStrategy.OnPush, template: "<a (blur)=\"blur.emit($event)\"\n (click)=\"_onClick($event)\"\n (focus)=\"focus.emit($event)\"\n *ngIf=\"link && _linkType ==='external'\"\n [attr.type]=\"type\"\n [class]=\"className + ' ' + testId + ' field_' + name\"\n [href]=\"link\"\n [ngClass]=\"{'p-button p-widget p-state-default p-corner-all':true,\n 'p-button-icon-only': ((icon || svg) && !label),\n 'p-button-text-icon-left': ((icon || svg) && label && iconPos === 'left'),\n 'p-button-text-icon-right': ((icon || svg) && label && iconPos === 'right'),\n 'p-button-text-only': (!(icon || svg) && label),\n 'p-button-text-empty': (!(icon || svg) && !label),\n 'p-button-svg': svg,\n 'p-button-material': isMaterialIcon,\n 'p-state-disabled': disabled,\n 'p-button-tiny': size === 'tiny',\n 'p-button-small': size === 'small',\n 'p-button-large': size === 'large',\n 'p-button-primary': color === 'primary',\n 'p-button-secondary': color === 'secondary',\n 'p-button-danger': color === 'danger',\n 'p-button-transparency': color === 'transparent',\n 'p-button-pressed' : pressed}\"\n [ngStyle]=\"{width:width}\"\n [style]=\"style\"\n [target]=\"_target\" class=\"button-container\">\n <ng-container *ngTemplateOutlet=\"content;\"></ng-container>\n</a>\n<a (blur)=\"blur.emit($event)\"\n (click)=\"_onClick($event)\"\n (focus)=\"focus.emit($event)\"\n *ngIf=\"link && _linkType ==='internal'\"\n [attr.type]=\"type\"\n [class]=\"className + ' ' + testId + ' field_' + name\"\n [ngClass]=\"{'p-button p-widget p-state-default p-corner-all':true,\n 'p-button-icon-only': ((icon || svg) && !label),\n 'p-button-text-icon-left': ((icon || svg) && label && iconPos === 'left'),\n 'p-button-text-icon-right': ((icon || svg) && label && iconPos === 'right'),\n 'p-button-text-only': (!(icon || svg) && label),\n 'p-button-text-empty': (!(icon || svg) && !label),\n 'p-button-svg': svg,\n 'p-button-material': isMaterialIcon,\n 'p-state-disabled': disabled,\n 'p-button-tiny': size === 'tiny',\n 'p-button-small': size === 'small',\n 'p-button-large': size === 'large',\n 'p-button-primary': color === 'primary',\n 'p-button-secondary': color === 'secondary',\n 'p-button-danger': color === 'danger',\n 'p-button-transparency': color === 'transparent',\n 'p-button-pressed' : pressed}\"\n [ngStyle]=\"{width:width}\"\n [routerLink]=\"link\"\n [style]=\"style\"\n [target]=\"_target\" class=\"button-container\">\n <ng-container *ngTemplateOutlet=\"content;\"></ng-container>\n</a>\n<span #dropdown=\"ngbDropdown\" *ngIf=\"!link && menuItems.length\" [ngStyle]=\"{width:width}\" class=\"button-container\" container=\"body\"\n ngbDropdown>\n <button\n (blur)=\"blur.emit($event)\"\n (click)=\"_onClick($event)\"\n (focus)=\"focus.emit($event)\"\n [attr.type]=\"type\"\n [class]=\"className + ' ' + testId + ' field_' + name\"\n [disabled]=\"disabled\"\n [ngClass]=\" {'p-button p-widget p-state-default p-corner-all':true,\n 'p-button-icon-only': ((icon || svg) && !label),\n 'p-button-text-icon-left': ((icon || svg) && label && iconPos === 'left'),\n 'p-button-text-icon-right': ((icon || svg) && label && iconPos === 'right'),\n 'p-button-text-only': (!(icon || svg) && label),\n 'p-button-text-empty': (!(icon || svg) && !label),\n 'p-button-svg': svg,\n 'p-button-material': isMaterialIcon,\n 'p-state-disabled': disabled,\n 'p-button-tiny': size === 'tiny',\n 'p-button-small': size === 'small',\n 'p-button-large': size === 'large',\n 'p-button-primary': color === 'primary',\n 'p-button-secondary': color === 'secondary',\n 'p-button-danger': color === 'danger',\n 'p-button-transparency': color === 'transparent',\n 'p-button-shadowed': shadow === true,\n 'p-button-pressed' : pressed}\"\n [style]=\"style\" ngbDropdownToggle>\n <ng-container *ngTemplateOutlet=\"content;\"></ng-container>\n </button>\n <div *ngIf=\"menuItems.length\" aria-labelledby=\"menu\"\n class=\"in-dropdown-menu\"\n ngbDropdownMenu>\n <div *ngFor=\"let item of menuItems\" class=\"in-dropdown-menu-item\" role=\"menuitem\">\n <in-button (click)=\"dropdown.close(); item.command();\"\n [color]=\"selectedItem && selectedItem == item.id?'primary':'transparent'\"\n [icon]=\"item.icon\"\n [label]=\"item.label\"\n [svg]=\"item.svg\"\n size=\"large\"\n width=\"100%\"></in-button>\n </div>\n </div>\n\n <div *ngIf=\"notify\" [ngClass]=\"notify\" class=\"notify\"></div>\n</span>\n<span *ngIf=\"!link && !menuItems.length\" [ngStyle]=\"{width:width}\" class=\"button-container\">\n <button\n (blur)=\"blur.emit($event)\"\n (click)=\"_onClick($event)\"\n (focus)=\"focus.emit($event)\"\n [attr.type]=\"type\"\n [class]=\"className + ' ' + testId + ' field_' + name\"\n [disabled]=\"disabled\"\n [ngClass]=\" {'p-button p-widget p-state-default p-corner-all':true,\n 'p-button-icon-only': ((icon || svg) && !label) || isIconOnly,\n 'p-button-text-icon-left': ((icon || svg) && label && iconPos === 'left'),\n 'p-button-text-icon-right': ((icon || svg) && label && iconPos === 'right'),\n 'p-button-text-only': (!(icon || svg) && label),\n 'p-button-text-empty': (!(icon || svg) && !label),\n 'p-button-svg': svg,\n 'p-button-material': isMaterialIcon,\n 'p-state-disabled': disabled,\n 'p-button-tiny': size === 'tiny',\n 'p-button-small': size === 'small',\n 'p-button-large': size === 'large',\n 'p-button-primary': color === 'primary',\n 'p-button-secondary': color === 'secondary',\n 'p-button-danger': color === 'danger',\n 'p-button-transparency': color === 'transparent',\n 'p-button-shadowed': shadow === true,\n 'p-button-pressed' : pressed}\" [style]=\"style\">\n <ng-container *ngTemplateOutlet=\"content;\"></ng-container>\n </button>\n <div *ngIf=\"notify\" [ngClass]=\"notify\" class=\"notify\"></div>\n</span>\n\n<ng-template #content>\n <span *ngIf=\"!isMaterialIcon && icon && !isLoading\" [class]=\"icon\"\n [ngClass]=\"{'p-clickable': true,\n 'p-button-icon-left': (iconPos === 'left'),\n 'p-button-icon-right': (iconPos === 'right')}\"></span>\n <span *ngIf=\"isMaterialIcon && icon && !isLoading\" [ngClass]=\"{'p-clickable': true,\n 'p-button-icon-left': (iconPos === 'left'),\n 'p-button-icon-right': (iconPos === 'right')}\"\n ><i class=\"material-icons\">{{icon}}</i></span>\n <in-preloader *ngIf=\"isLoading\" size=\"small\"></in-preloader>\n <span class=\"p-button-text p-clickable\">{{label}}</span>\n <span *ngIf=\"svg && !isLoading\" [ngClass]=\"{'p-clickable': true,\n 'p-button-icon-left': (iconPos === 'left'),\n 'p-button-icon-right': (iconPos === 'right')}\">\n <in-svg *ngIf=\"size === 'normal'\" [src]=\"svg\" height=\"20px\" width=\"20px\"></in-svg>\n <in-svg *ngIf=\"size === 'large'\" [src]=\"svg\" height=\"20px\" width=\"20px\"></in-svg>\n <in-svg *ngIf=\"size === 'small'\" [src]=\"svg\" height=\"20px\" width=\"20px\"></in-svg>\n <in-svg *ngIf=\"size === 'tiny'\" [src]=\"svg\" height=\"10px\" width=\"10px\"></in-svg>\n </span>\n</ng-template>\n", styles: ["@charset \"UTF-8\";.container{display:inline-block}.button-container{position:relative;display:inline-block}button{outline:none;width:100%}.p-button-icon-only .p-button-icon-left{margin-top:-9px}.p-button-text{vertical-align:middle}.notify{width:8px;height:8px;border-radius:100%;position:absolute;right:8px;top:8px}.notify.warning{background:var(--colorWarning)}.notify.success{background:var(--colorSuccess)}.notify.error{background:var(--colorError)}.notify.critical{background:var(--colorCritical)}.p-button{margin-right:0;height:36px;display:inline-flex;align-items:center;justify-content:center}.p-button.p-button-pressed{background-color:var(--colorBgLevel4)}.p-button.p-button-large{height:48px}.p-button.p-button-large .p-button-icon-left{font-size:18px;margin-top:-8px}.p-button.p-button-large .p-button-text{padding:0 1em 0 48px;margin-top:6px}.p-button-text-icon-left .p-button-text{padding:0 1em 0 2.4em}.p-button-icon-only{font-size:18px;display:inline-flex;align-items:center;justify-content:center}.p-button-icon-only.p-button-large{width:48px;height:48px}.p-button-icon-only.p-button-large .svg,.p-button-icon-only .svg{display:inline-block;line-height:0}.p-button-transparency{background:none;color:currentColor}.p-button-transparency:hover{color:currentColor}.p-button-shadowed{box-shadow:0 2px 6px #0003}.p-button.p-button-svg.p-button-small .p-button-icon-left{margin-top:-4px}.p-button.p-button-svg.p-button-small.p-button-icon-only .p-button-icon-left{margin-top:-2px}.p-button.p-button-svg .p-button-icon-left{left:6px;transform:translateY(-50%);margin-top:-4px}.p-button.p-button-svg.p-button-icon-only .p-button-icon-left{left:50%;width:auto;transform:translate(-50%,-50%);margin-left:0;margin-top:0}.p-button.p-button-svg.p-button-large.p-button-icon-only .p-button-icon-left{margin-top:0}.p-button-material.p-button-icon-only .material-icons{font-size:20px}.p-button-material.p-button-icon-only .p-button-icon-left{margin-top:-10px;margin-left:-12px}.p-button-material .material-icons{font-size:16px}.p-button-material .p-button-icon-left{margin-top:-8px;margin-left:-2px}.p-button-material.p-button-small .p-button-icon-left{margin-top:-7px}.p-button-material.p-button-small .material-icons{font-size:14px}.p-button-material.p-button-small.p-button-icon-only .p-button-icon-left{margin-top:-12px;margin-left:-10px}.p-button-material.p-button-small.p-button-icon-only .p-button-icon-left .material-icons{font-size:18px}.p-button-material.p-button-large .material-icons{font-size:24px}.p-button-material.p-button-large .p-button-icon-left{margin-top:-11px}.p-button-material.p-button-large.p-button-icon-only .p-button-icon-left{margin-top:-11px;margin-left:-13px}:host .p-menu .p-menuitem-link{font-size:16px}.dropdown-menu{display:none;background:var(--colorBgLevel3);padding:4px}.dropdown-menu li{padding:4px;font-size:14px}.dropdown-menu.show{display:block}.in-dropdown-menu{background:var(--colorBgLevel2);padding:0;position:absolute;display:none;margin-left:0;box-shadow:0 0 3px 1px #0003}.in-dropdown-menu.show{display:block}.in-dropdown-menu .in-dropdown-menu-item{list-style-type:none;min-width:250px;display:flex;align-items:center;justify-content:flex-start;min-height:48px}.in-dropdown-menu .in-dropdown-menu-item in-button,.in-dropdown-menu .in-dropdown-menu-item in-button ::ng-deep button{width:100%;border-radius:0}.in-dropdown-menu .in-dropdown-menu-item in-button .p-button,.in-dropdown-menu .in-dropdown-menu-item in-button ::ng-deep button .p-button{justify-content:flex-start}.in-dropdown-menu .in-dropdown-menu-item .switcher{flex:1;display:flex;justify-content:flex-end;padding-right:4px}.in-dropdown-menu .in-dropdown-menu-item+.in-dropdown-menu-item{border-top:1px solid var(--colorBgLevel4)}\n"] }]
101
101
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { size: [{
102
102
  type: Input
103
103
  }], color: [{
@@ -157,4 +157,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
157
157
  }], click: [{
158
158
  type: Output
159
159
  }] } });
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2luc3BhcmstY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2luc3BhcmstY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBZ0IsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdMLE9BQU8sRUFBQyxNQUFNLElBQUksT0FBTyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGNBQWMsQ0FBQzs7Ozs7OztBQWlCbEMsTUFBTSxPQUFPLGVBQWdCLFNBQVEsT0FBTztJQXlEMUMsWUFBcUIsR0FBc0I7UUFDekMsS0FBSyxFQUFFLENBQUM7UUFEVyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXZEbEMsU0FBSSxHQUFlLFFBQVEsQ0FBQztRQUM1QixVQUFLLEdBQWdCLFFBQVEsQ0FBQztRQUM5QixTQUFJLEdBQWUsUUFBUSxDQUFDO1FBQzVCLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsV0FBTSxHQUFpQixJQUFJLENBQUM7UUFDNUIsUUFBRyxHQUFHLEVBQUUsQ0FBQztRQUNULFVBQUssR0FBRyxNQUFNLENBQUM7UUFDZixTQUFJLEdBQUcs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USxtQkFDeEIsdUJBQXVCLENBQUMsTUFBTTt3R0FJdEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBT0csUUFBUTtzQkFBaEIsS0FBSztnQkFNRyxVQUFVO3NCQUFsQixLQUFLO2dCQUlHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFNEIsS0FBSztzQkFBdEMsU0FBUzt1QkFBQyxJQUFJLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUU1QixhQUFhO3NCQURoQixXQUFXO3VCQUFDLHNCQUFzQjtnQkFLekIsS0FBSztzQkFBZCxNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uLCBIb3N0TGlzdGVuZXIsIEhvc3RCaW5kaW5nfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtCdXR0b24gYXMgUEJ1dHRvbn0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xyXG5pbXBvcnQge0luc3BhcmtNZW51SXRlbX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlJztcclxuaW1wb3J0IHtNZW51fSBmcm9tICdwcmltZW5nL21lbnUnO1xyXG5cclxuXHJcbnR5cGUgQnV0dG9uU2l6ZSA9ICdzbWFsbCcgfCAnbm9ybWFsJyB8ICdsYXJnZScgfCAndGlueSc7XHJcbnR5cGUgQnV0dG9uQ29sb3IgPSAnbm9ybWFsJyB8ICdkYW5nZXInIHwgJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAndHJhbnNwYXJlbnQnO1xyXG50eXBlIEJ1dHRvblR5cGUgPSAnYnV0dG9uJyB8ICdzdWJtaXQnO1xyXG50eXBlIEljb25Qb3MgPSAnbGVmdCcgfCAncmlnaHQnO1xyXG50eXBlIEJ1dHRvbk5vdGlmeSA9ICd3YXJuaW5nJyB8ICdlcnJvcic7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpbi1idXR0b24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2J1dHRvbi5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgUEJ1dHRvbiBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuXHJcbiAgQElucHV0KCkgc2l6ZTogQnV0dG9uU2l6ZSA9ICdub3JtYWwnO1xyXG4gIEBJbnB1dCgpIGNvbG9yOiBCdXR0b25Db2xvciA9ICdub3JtYWwnO1xyXG4gIEBJbnB1dCgpIHR5cGU6IEJ1dHRvblR5cGUgPSAnYnV0dG9uJztcclxuICBASW5wdXQoKSBuYW1lID0gJyc7XHJcbiAgQElucHV0KCkgdGVzdElkID0gJyc7XHJcbiAgQElucHV0KCkgbGFiZWwgPSAnJztcclxuICBASW5wdXQoKSBpY29uID0gJyc7XHJcbiAgQElucHV0KCkgY2xhc3NOYW1lID0gJyc7XHJcbiAgQElucHV0KCkgbm90aWZ5OiBCdXR0b25Ob3RpZnkgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHN2ZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHdpZHRoID0gJ2F1dG8nO1xyXG4gIEBJbnB1dCgpIGxpbmsgPSAnJztcclxuICBASW5wdXQoKSBpc0xvYWRpbmcgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaGFkb3cgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc0ljb25Pbmx5ID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIGV4dGVybmFsIC0g0YHRgdGL0LvQutCwINC90LAg0LLQvdC10YjQvdC40Lkg0LjRgdGC0L7Rh9C90LjQulxyXG4gICAqIGludGVybmFsIC0g0YHRgdGL0LvQutCwINCy0L3Rg9GC0YDQuCDQv9GA0LjQu9C+0LbQtdC90LjRj1xyXG4gICAqIGF1dG8gLSDQvtC/0YDQtdC00LXQu9GP0LXRgtGB0Y8g0LDQstGC0L7QvNCw0YLQuNGH0LXRgdC60Lgg0LjRgdGF0L7QtNGPINC40LcgbGlua1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGxpbmtUeXBlOiAnYXV0bycgfCAnZXh0ZXJuYWwnIHwgJ2ludGVybmFsJyA9ICdhdXRvJztcclxuICAvKipcclxuICAgKiBzZWxmIC0g0L7RgtC60YDRi9Cy0LDQtdGC0YHRjyDQsiDRjdGC0L7QvCDQttC1INC+0LrQvdC1XHJcbiAgICogYmxhbmsgLSDQvtGC0LrRgNGL0LLQsNC10YLRgdGPINCyINC90L7QstC+0Lwg0L7QutC90LVcclxuICAgKiBhdXRvIC0g0L7Qv9GA0LXQtNC10LvRj9C10YLRgdGPINCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4INC40YHRhdC+0LTRjyDQuNC3IGxpbmtUeXBlXHJcbiAgICovXHJcbiAgQElucHV0KCkgbGlua1RhcmdldDogJ2F1dG8nIHwgJ3NlbGYnIHwgJ2JsYW5rJyA9ICdhdXRvJztcclxuXHJcblxyXG4gIC8vINCe0YLQvtCx0YDQsNC20LDQtdGCINC60L3QvtC/0LrRgyDQvdCw0LbQsNGC0L7QuVxyXG4gIEBJbnB1dCgpIHByZXNzZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgaWNvblBvczogSWNvblBvcyA9ICdsZWZ0JztcclxuXHJcbiAgQElucHV0KCkgc2VsZWN0ZWRJdGVtID0gbnVsbDtcclxuICBASW5wdXQoKSBtZW51UGxhY2VtZW50ID0gJ2JvdHRvbS1sZWZ0JztcclxuICBASW5wdXQoKSBtZW51SXRlbXM6IEluc3BhcmtNZW51SXRlbVtdID0gW107XHJcblxyXG4gIEBWaWV3Q2hpbGQoTWVudSwge3N0YXRpYzogZmFsc2V9KSBfbWVudSAhOiBNZW51O1xyXG4gIEBIb3N0QmluZGluZygnc3R5bGUucG9pbnRlci1ldmVudHMnKVxyXG4gIGdldCBwb2ludGVyRXZlbnRzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCA/ICdub25lJyA6ICdhdXRvJztcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBmb2N1czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGJsdXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIF90YXJnZXQgPSAnX3NlbGYnO1xyXG4gIF9saW5rVHlwZTogJ2F1dG8nIHwgJ2V4dGVybmFsJyB8ICdpbnRlcm5hbCcgPSAnYXV0byc7XHJcblxyXG4gIGlzTWF0ZXJpYWxJY29uID0gZmFsc2U7XHJcbiAgY29uc3RydWN0b3IoIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuXHJcblxyXG4gICAgdGhpcy51cGRhdGVEYXRhKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzKSB7XHJcbiAgICB0aGlzLnVwZGF0ZURhdGEoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZURhdGEoKSB7XHJcbiAgICB0aGlzLl9saW5rVHlwZSA9IHRoaXMubGlua1R5cGU7XHJcblxyXG4gICAgaWYgKHRoaXMuX2xpbmtUeXBlID09PSAnYXV0bycpIHtcclxuICAgICAgaWYgKCh0aGlzLmxpbmsuaW5kZXhPZignOi8vJykgIT09IC0xIHx8IHRoaXMubGluay5pbmRleE9mKCcvLycpID09PSAwKSkge1xyXG4gICAgICAgIHRoaXMuX2xpbmtUeXBlID0gJ2V4dGVybmFsJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLl9saW5rVHlwZSA9ICdpbnRlcm5hbCc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5saW5rVGFyZ2V0ID09PSAnYXV0bycpIHtcclxuICAgICAgaWYgKHRoaXMuX2xpbmtUeXBlID09PSAnZXh0ZXJuYWwnKSB7XHJcbiAgICAgICAgdGhpcy5fdGFyZ2V0ID0gJ19ibGFuayc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fdGFyZ2V0ID0gJ19zZWxmJztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fdGFyZ2V0ID0gdGhpcy5saW5rVGFyZ2V0ID09PSAnc2VsZicgPyAnX3NlbGYnIDogJ2JsYW5rJztcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pY29uICYmIHRoaXMuaWNvbi5pbmRleE9mKCdmYS0nKSA9PT0gLTEgJiYgdGhpcy5pY29uLmluZGV4T2YoJ3BpLScpID09PSAtMSkge1xyXG4gICAgICB0aGlzLmlzTWF0ZXJpYWxJY29uID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNNYXRlcmlhbEljb24gPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIF9vbkNsaWNrKCRldmVudCkge1xyXG4gICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxhIChibHVyKT1cImJsdXIuZW1pdCgkZXZlbnQpXCJcclxuICAgKGNsaWNrKT1cIl9vbkNsaWNrKCRldmVudClcIlxyXG4gICAoZm9jdXMpPVwiZm9jdXMuZW1pdCgkZXZlbnQpXCJcclxuICAgKm5nSWY9XCJsaW5rICYmIF9saW5rVHlwZSA9PT0nZXh0ZXJuYWwnXCJcclxuICAgW2F0dHIudHlwZV09XCJ0eXBlXCJcclxuICAgW2NsYXNzXT1cImNsYXNzTmFtZSArICcgJyArIHRlc3RJZCAgKyAnIGZpZWxkXycgKyBuYW1lXCJcclxuICAgW2hyZWZdPVwibGlua1wiXHJcbiAgIFtuZ0NsYXNzXT1cInsncC1idXR0b24gcC13aWRnZXQgcC1zdGF0ZS1kZWZhdWx0IHAtY29ybmVyLWFsbCc6dHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLWljb24tb25seSc6ICgoaWNvbiB8fCBzdmcpICYmICFsYWJlbCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi10ZXh0LWljb24tbGVmdCc6ICgoaWNvbiB8fCBzdmcpICYmIGxhYmVsICYmIGljb25Qb3MgPT09ICdsZWZ0JyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi10ZXh0LWljb24tcmlnaHQnOiAoKGljb24gfHwgc3ZnKSAmJiBsYWJlbCAmJiBpY29uUG9zID09PSAncmlnaHQnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXRleHQtb25seSc6ICghKGljb24gfHwgc3ZnKSAmJiBsYWJlbCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi10ZXh0LWVtcHR5JzogKCEoaWNvbiB8fCBzdmcpICYmICFsYWJlbCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1zdmcnOiBzdmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1tYXRlcmlhbCc6IGlzTWF0ZXJpYWxJY29uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1zdGF0ZS1kaXNhYmxlZCc6IGRpc2FibGVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tdGlueSc6IHNpemUgPT09ICd0aW55JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXNtYWxsJzogc2l6ZSA9PT0gJ3NtYWxsJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLWxhcmdlJzogc2l6ZSA9PT0gJ2xhcmdlJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXByaW1hcnknOiBjb2xvciA9PT0gJ3ByaW1hcnknLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tc2Vjb25kYXJ5JzogY29sb3IgPT09ICdzZWNvbmRhcnknLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tZGFuZ2VyJzogY29sb3IgPT09ICdkYW5nZXInLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tdHJhbnNwYXJlbmN5JzogY29sb3IgPT09ICd0cmFuc3BhcmVudCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1wcmVzc2VkJyA6IHByZXNzZWR9XCJcclxuICAgW25nU3R5bGVdPVwie3dpZHRoOndpZHRofVwiXHJcbiAgIFtzdHlsZV09XCJzdHlsZVwiXHJcbiAgIFt0YXJnZXRdPVwiX3RhcmdldFwiIGNsYXNzPVwiYnV0dG9uLWNvbnRhaW5lclwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50O1wiPjwvbmctY29udGFpbmVyPlxyXG48L2E+XHJcbjxhIChibHVyKT1cImJsdXIuZW1pdCgkZXZlbnQpXCJcclxuICAgKGNsaWNrKT1cIl9vbkNsaWNrKCRldmVudClcIlxyXG4gICAoZm9jdXMpPVwiZm9jdXMuZW1pdCgkZXZlbnQpXCJcclxuICAgKm5nSWY9XCJsaW5rICYmIF9saW5rVHlwZSA9PT0naW50ZXJuYWwnXCJcclxuICAgW2F0dHIudHlwZV09XCJ0eXBlXCJcclxuICAgW2NsYXNzXT1cImNsYXNzTmFtZSArICcgJyArIHRlc3RJZCAgKyAnIGZpZWxkXycgKyBuYW1lXCJcclxuICAgW25nQ2xhc3NdPVwieydwLWJ1dHRvbiBwLXdpZGdldCBwLXN0YXRlLWRlZmF1bHQgcC1jb3JuZXItYWxsJzp0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24taWNvbi1vbmx5JzogKChpY29uIHx8IHN2ZykgJiYgIWxhYmVsKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXRleHQtaWNvbi1sZWZ0JzogKChpY29uIHx8IHN2ZykgJiYgbGFiZWwgJiYgaWNvblBvcyA9PT0gJ2xlZnQnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXRleHQtaWNvbi1yaWdodCc6ICgoaWNvbiB8fCBzdmcpICYmIGxhYmVsICYmIGljb25Qb3MgPT09ICdyaWdodCcpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tdGV4dC1vbmx5JzogKCEoaWNvbiB8fCBzdmcpICYmIGxhYmVsKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXRleHQtZW1wdHknOiAoIShpY29uIHx8IHN2ZykgJiYgIWxhYmVsKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXN2Zyc6IHN2ZyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLW1hdGVyaWFsJzogaXNNYXRlcmlhbEljb24sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLXN0YXRlLWRpc2FibGVkJzogZGlzYWJsZWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi10aW55Jzogc2l6ZSA9PT0gJ3RpbnknLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tc21hbGwnOiBzaXplID09PSAnc21hbGwnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tbGFyZ2UnOiBzaXplID09PSAnbGFyZ2UnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tcHJpbWFyeSc6IGNvbG9yID09PSAncHJpbWFyeScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1zZWNvbmRhcnknOiBjb2xvciA9PT0gJ3NlY29uZGFyeScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1kYW5nZXInOiBjb2xvciA9PT0gJ2RhbmdlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi10cmFuc3BhcmVuY3knOiBjb2xvciA9PT0gJ3RyYW5zcGFyZW50JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXByZXNzZWQnIDogcHJlc3NlZH1cIlxyXG4gICBbbmdTdHlsZV09XCJ7d2lkdGg6d2lkdGh9XCJcclxuICAgW3JvdXRlckxpbmtdPVwibGlua1wiXHJcbiAgIFtzdHlsZV09XCJzdHlsZVwiXHJcbiAgIFt0YXJnZXRdPVwiX3RhcmdldFwiIGNsYXNzPVwiYnV0dG9uLWNvbnRhaW5lclwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50O1wiPjwvbmctY29udGFpbmVyPlxyXG48L2E+XHJcbjxzcGFuICNkcm9wZG93bj1cIm5nYkRyb3Bkb3duXCIgKm5nSWY9XCIhbGluayAmJiBtZW51SXRlbXMubGVuZ3RoXCIgW25nU3R5bGVdPVwie3dpZHRoOndpZHRofVwiIGNsYXNzPVwiYnV0dG9uLWNvbnRhaW5lclwiIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICBuZ2JEcm9wZG93bj5cclxuICAgIDxidXR0b25cclxuICAgICAgKGJsdXIpPVwiYmx1ci5lbWl0KCRldmVudClcIlxyXG4gICAgICAoY2xpY2spPVwiX29uQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgIChmb2N1cyk9XCJmb2N1cy5lbWl0KCRldmVudClcIlxyXG4gICAgICBbYXR0ci50eXBlXT1cInR5cGVcIlxyXG4gICAgICBbY2xhc3NdPVwiY2xhc3NOYW1lICsgJyAnICsgdGVzdElkICsgJyBmaWVsZF8nICsgbmFtZVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cIiB7J3AtYnV0dG9uIHAtd2lkZ2V0IHAtc3RhdGUtZGVmYXVsdCBwLWNvcm5lci1hbGwnOnRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1pY29uLW9ubHknOiAoKGljb24gfHwgc3ZnKSAmJiAhbGFiZWwpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tdGV4dC1pY29uLWxlZnQnOiAoKGljb24gfHwgc3ZnKSAmJiBsYWJlbCAmJiBpY29uUG9zID09PSAnbGVmdCcpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tdGV4dC1pY29uLXJpZ2h0JzogKChpY29uIHx8IHN2ZykgJiYgbGFiZWwgJiYgaWNvblBvcyA9PT0gJ3JpZ2h0JyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi10ZXh0LW9ubHknOiAoIShpY29uIHx8IHN2ZykgJiYgbGFiZWwpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tdGV4dC1lbXB0eSc6ICghKGljb24gfHwgc3ZnKSAmJiAhbGFiZWwpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tc3ZnJzogc3ZnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tbWF0ZXJpYWwnOiBpc01hdGVyaWFsSWNvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3Atc3RhdGUtZGlzYWJsZWQnOiBkaXNhYmxlZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXRpbnknOiBzaXplID09PSAndGlueScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1zbWFsbCc6IHNpemUgPT09ICdzbWFsbCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1sYXJnZSc6IHNpemUgPT09ICdsYXJnZScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1wcmltYXJ5JzogY29sb3IgPT09ICdwcmltYXJ5JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXNlY29uZGFyeSc6IGNvbG9yID09PSAnc2Vjb25kYXJ5JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLWRhbmdlcic6IGNvbG9yID09PSAnZGFuZ2VyJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXRyYW5zcGFyZW5jeSc6IGNvbG9yID09PSAndHJhbnNwYXJlbnQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tc2hhZG93ZWQnOiBzaGFkb3cgPT09IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1wcmVzc2VkJyA6IHByZXNzZWR9XCJcclxuICAgICAgW3N0eWxlXT1cInN0eWxlXCIgbmdiRHJvcGRvd25Ub2dnbGU+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnQ7XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxkaXYgKm5nSWY9XCJtZW51SXRlbXMubGVuZ3RoXCIgYXJpYS1sYWJlbGxlZGJ5PVwibWVudVwiXHJcbiAgICAgICAgIGNsYXNzPVwiaW4tZHJvcGRvd24tbWVudVwiXHJcbiAgICAgICAgIG5nYkRyb3Bkb3duTWVudT5cclxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIG1lbnVJdGVtc1wiIGNsYXNzPVwiaW4tZHJvcGRvd24tbWVudS1pdGVtXCIgcm9sZT1cIm1lbnVpdGVtXCI+XHJcbiAgICAgICAgICAgIDxpbi1idXR0b24gKGNsaWNrKT1cImRyb3Bkb3duLmNsb3NlKCk7IGl0ZW0uY29tbWFuZCgpO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cInNlbGVjdGVkSXRlbSAmJiBzZWxlY3RlZEl0ZW0gPT0gaXRlbS5pZD8ncHJpbWFyeSc6J3RyYW5zcGFyZW50J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwiaXRlbS5pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiaXRlbS5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3N2Z109XCJpdGVtLnN2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIj48L2luLWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJub3RpZnlcIiBbbmdDbGFzc109XCJub3RpZnlcIiBjbGFzcz1cIm5vdGlmeVwiPjwvZGl2PlxyXG48L3NwYW4+XHJcbjxzcGFuICpuZ0lmPVwiIWxpbmsgJiYgIW1lbnVJdGVtcy5sZW5ndGhcIiBbbmdTdHlsZV09XCJ7d2lkdGg6d2lkdGh9XCIgY2xhc3M9XCJidXR0b24tY29udGFpbmVyXCI+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIChibHVyKT1cImJsdXIuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgKGNsaWNrKT1cIl9vbkNsaWNrKCRldmVudClcIlxyXG4gICAgICAoZm9jdXMpPVwiZm9jdXMuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgW2F0dHIudHlwZV09XCJ0eXBlXCJcclxuICAgICAgW2NsYXNzXT1cImNsYXNzTmFtZSArICcgJyArIHRlc3RJZCAgKyAnIGZpZWxkXycgKyBuYW1lXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgW25nQ2xhc3NdPVwiIHsncC1idXR0b24gcC13aWRnZXQgcC1zdGF0ZS1kZWZhdWx0IHAtY29ybmVyLWFsbCc6dHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLWljb24tb25seSc6ICgoaWNvbiB8fCBzdmcpICYmICFsYWJlbCkgfHwgaXNJY29uT25seSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXRleHQtaWNvbi1sZWZ0JzogKChpY29uIHx8IHN2ZykgJiYgbGFiZWwgJiYgaWNvblBvcyA9PT0gJ2xlZnQnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXRleHQtaWNvbi1yaWdodCc6ICgoaWNvbiB8fCBzdmcpICYmIGxhYmVsICYmIGljb25Qb3MgPT09ICdyaWdodCcpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tdGV4dC1vbmx5JzogKCEoaWNvbiB8fCBzdmcpICYmIGxhYmVsKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXRleHQtZW1wdHknOiAoIShpY29uIHx8IHN2ZykgJiYgIWxhYmVsKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXN2Zyc6IHN2ZyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLW1hdGVyaWFsJzogaXNNYXRlcmlhbEljb24sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLXN0YXRlLWRpc2FibGVkJzogZGlzYWJsZWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi10aW55Jzogc2l6ZSA9PT0gJ3RpbnknLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tc21hbGwnOiBzaXplID09PSAnc21hbGwnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tbGFyZ2UnOiBzaXplID09PSAnbGFyZ2UnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tcHJpbWFyeSc6IGNvbG9yID09PSAncHJpbWFyeScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1zZWNvbmRhcnknOiBjb2xvciA9PT0gJ3NlY29uZGFyeScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1kYW5nZXInOiBjb2xvciA9PT0gJ2RhbmdlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi10cmFuc3BhcmVuY3knOiBjb2xvciA9PT0gJ3RyYW5zcGFyZW50JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXNoYWRvd2VkJzogc2hhZG93ID09PSB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tcHJlc3NlZCcgOiBwcmVzc2VkfVwiIFtzdHlsZV09XCJzdHlsZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50O1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8ZGl2ICpuZ0lmPVwibm90aWZ5XCIgW25nQ2xhc3NdPVwibm90aWZ5XCIgY2xhc3M9XCJub3RpZnlcIj48L2Rpdj5cclxuPC9zcGFuPlxyXG5cclxuPG5nLXRlbXBsYXRlICNjb250ZW50PlxyXG4gICAgPHNwYW4gKm5nSWY9XCIhaXNNYXRlcmlhbEljb24gJiYgaWNvbiAmJiAhaXNMb2FkaW5nXCIgW2NsYXNzXT1cImljb25cIlxyXG4gICAgICAgICAgW25nQ2xhc3NdPVwieydwLWNsaWNrYWJsZSc6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1pY29uLWxlZnQnOiAoaWNvblBvcyA9PT0gJ2xlZnQnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLWljb24tcmlnaHQnOiAoaWNvblBvcyA9PT0gJ3JpZ2h0Jyl9XCI+PC9zcGFuPlxyXG4gIDxzcGFuICpuZ0lmPVwiaXNNYXRlcmlhbEljb24gJiYgaWNvbiAmJiAhaXNMb2FkaW5nXCIgW25nQ2xhc3NdPVwieydwLWNsaWNrYWJsZSc6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1pY29uLWxlZnQnOiAoaWNvblBvcyA9PT0gJ2xlZnQnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLWljb24tcmlnaHQnOiAoaWNvblBvcyA9PT0gJ3JpZ2h0Jyl9XCJcclxuICA+PGkgY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPnt7aWNvbn19PC9pPjwvc3Bhbj5cclxuICA8aW4tcHJlbG9hZGVyICpuZ0lmPVwiaXNMb2FkaW5nXCIgc2l6ZT1cInNtYWxsXCI+PC9pbi1wcmVsb2FkZXI+XHJcbiAgPHNwYW4gY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtY2xpY2thYmxlXCI+e3tsYWJlbH19PC9zcGFuPlxyXG4gIDxzcGFuICpuZ0lmPVwic3ZnICYmICFpc0xvYWRpbmdcIiBbbmdDbGFzc109XCJ7J3AtY2xpY2thYmxlJzogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLWljb24tbGVmdCc6IChpY29uUG9zID09PSAnbGVmdCcpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24taWNvbi1yaWdodCc6IChpY29uUG9zID09PSAncmlnaHQnKX1cIj5cclxuICAgICAgICA8aW4tc3ZnICpuZ0lmPVwic2l6ZSA9PT0gJ25vcm1hbCdcIiBbc3JjXT1cInN2Z1wiIGhlaWdodD1cIjIwcHhcIiB3aWR0aD1cIjIwcHhcIj48L2luLXN2Zz5cclxuICAgICAgICA8aW4tc3ZnICpuZ0lmPVwic2l6ZSA9PT0gJ2xhcmdlJ1wiIFtzcmNdPVwic3ZnXCIgaGVpZ2h0PVwiMjBweFwiIHdpZHRoPVwiMjBweFwiPjwvaW4tc3ZnPlxyXG4gICAgICAgIDxpbi1zdmcgKm5nSWY9XCJzaXplID09PSAnc21hbGwnXCIgW3NyY109XCJzdmdcIiBoZWlnaHQ9XCIyMHB4XCIgd2lkdGg9XCIyMHB4XCI+PC9pbi1zdmc+XHJcbiAgICAgICAgPGluLXN2ZyAqbmdJZj1cInNpemUgPT09ICd0aW55J1wiIFtzcmNdPVwic3ZnXCIgaGVpZ2h0PVwiMTBweFwiIHdpZHRoPVwiMTBweFwiPjwvaW4tc3ZnPlxyXG4gICAgPC9zcGFuPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2luc3BhcmstY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2luc3BhcmstY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBZ0IsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdMLE9BQU8sRUFBQyxNQUFNLElBQUksT0FBTyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGNBQWMsQ0FBQzs7Ozs7OztBQWlCbEMsTUFBTSxPQUFPLGVBQWdCLFNBQVEsT0FBTztJQXlEMUMsWUFBcUIsR0FBc0I7UUFDekMsS0FBSyxFQUFFLENBQUM7UUFEVyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXZEbEMsU0FBSSxHQUFlLFFBQVEsQ0FBQztRQUM1QixVQUFLLEdBQWdCLFFBQVEsQ0FBQztRQUM5QixTQUFJLEdBQWUsUUFBUSxDQUFDO1FBQzVCLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsV0FBTSxHQUFpQixJQUFJLENBQUM7UUFDNUIsUUFBRyxHQUFHLEVBQUUsQ0FBQztRQUNULFVBQUssR0FBRyxNQUFNLENBQUM7UUFDZixTQUFJLEdBQUcs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USxtQkFDeEIsdUJBQXVCLENBQUMsTUFBTTt3R0FJdEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBT0csUUFBUTtzQkFBaEIsS0FBSztnQkFNRyxVQUFVO3NCQUFsQixLQUFLO2dCQUlHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFNEIsS0FBSztzQkFBdEMsU0FBUzt1QkFBQyxJQUFJLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUU1QixhQUFhO3NCQURoQixXQUFXO3VCQUFDLHNCQUFzQjtnQkFLekIsS0FBSztzQkFBZCxNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uLCBIb3N0TGlzdGVuZXIsIEhvc3RCaW5kaW5nfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QnV0dG9uIGFzIFBCdXR0b259IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcbmltcG9ydCB7SW5zcGFya01lbnVJdGVtfSBmcm9tICcuLi8uLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHtNZW51fSBmcm9tICdwcmltZW5nL21lbnUnO1xuXG5cbnR5cGUgQnV0dG9uU2l6ZSA9ICdzbWFsbCcgfCAnbm9ybWFsJyB8ICdsYXJnZScgfCAndGlueSc7XG50eXBlIEJ1dHRvbkNvbG9yID0gJ25vcm1hbCcgfCAnZGFuZ2VyJyB8ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ3RyYW5zcGFyZW50JztcbnR5cGUgQnV0dG9uVHlwZSA9ICdidXR0b24nIHwgJ3N1Ym1pdCc7XG50eXBlIEljb25Qb3MgPSAnbGVmdCcgfCAncmlnaHQnO1xudHlwZSBCdXR0b25Ob3RpZnkgPSAnd2FybmluZycgfCAnZXJyb3InO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2luLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWQsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBCdXR0b25Db21wb25lbnQgZXh0ZW5kcyBQQnV0dG9uIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuXG4gIEBJbnB1dCgpIHNpemU6IEJ1dHRvblNpemUgPSAnbm9ybWFsJztcbiAgQElucHV0KCkgY29sb3I6IEJ1dHRvbkNvbG9yID0gJ25vcm1hbCc7XG4gIEBJbnB1dCgpIHR5cGU6IEJ1dHRvblR5cGUgPSAnYnV0dG9uJztcbiAgQElucHV0KCkgbmFtZSA9ICcnO1xuICBASW5wdXQoKSB0ZXN0SWQgPSAnJztcbiAgQElucHV0KCkgbGFiZWwgPSAnJztcbiAgQElucHV0KCkgaWNvbiA9ICcnO1xuICBASW5wdXQoKSBjbGFzc05hbWUgPSAnJztcbiAgQElucHV0KCkgbm90aWZ5OiBCdXR0b25Ob3RpZnkgPSBudWxsO1xuICBASW5wdXQoKSBzdmcgPSAnJztcbiAgQElucHV0KCkgd2lkdGggPSAnYXV0byc7XG4gIEBJbnB1dCgpIGxpbmsgPSAnJztcbiAgQElucHV0KCkgaXNMb2FkaW5nID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNoYWRvdyA9IGZhbHNlO1xuICBASW5wdXQoKSBpc0ljb25Pbmx5ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIGV4dGVybmFsIC0g0YHRgdGL0LvQutCwINC90LAg0LLQvdC10YjQvdC40Lkg0LjRgdGC0L7Rh9C90LjQulxuICAgKiBpbnRlcm5hbCAtINGB0YHRi9C70LrQsCDQstC90YPRgtGA0Lgg0L/RgNC40LvQvtC20LXQvdC40Y9cbiAgICogYXV0byAtINC+0L/RgNC10LTQtdC70Y/QtdGC0YHRjyDQsNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuCDQuNGB0YXQvtC00Y8g0LjQtyBsaW5rXG4gICAqL1xuICBASW5wdXQoKSBsaW5rVHlwZTogJ2F1dG8nIHwgJ2V4dGVybmFsJyB8ICdpbnRlcm5hbCcgPSAnYXV0byc7XG4gIC8qKlxuICAgKiBzZWxmIC0g0L7RgtC60YDRi9Cy0LDQtdGC0YHRjyDQsiDRjdGC0L7QvCDQttC1INC+0LrQvdC1XG4gICAqIGJsYW5rIC0g0L7RgtC60YDRi9Cy0LDQtdGC0YHRjyDQsiDQvdC+0LLQvtC8INC+0LrQvdC1XG4gICAqIGF1dG8gLSDQvtC/0YDQtdC00LXQu9GP0LXRgtGB0Y8g0LDQstGC0L7QvNCw0YLQuNGH0LXRgdC60Lgg0LjRgdGF0L7QtNGPINC40LcgbGlua1R5cGVcbiAgICovXG4gIEBJbnB1dCgpIGxpbmtUYXJnZXQ6ICdhdXRvJyB8ICdzZWxmJyB8ICdibGFuaycgPSAnYXV0byc7XG5cblxuICAvLyDQntGC0L7QsdGA0LDQttCw0LXRgiDQutC90L7Qv9C60YMg0L3QsNC20LDRgtC+0LlcbiAgQElucHV0KCkgcHJlc3NlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgaWNvblBvczogSWNvblBvcyA9ICdsZWZ0JztcblxuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW0gPSBudWxsO1xuICBASW5wdXQoKSBtZW51UGxhY2VtZW50ID0gJ2JvdHRvbS1sZWZ0JztcbiAgQElucHV0KCkgbWVudUl0ZW1zOiBJbnNwYXJrTWVudUl0ZW1bXSA9IFtdO1xuXG4gIEBWaWV3Q2hpbGQoTWVudSwge3N0YXRpYzogZmFsc2V9KSBfbWVudSAhOiBNZW51O1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLnBvaW50ZXItZXZlbnRzJylcbiAgZ2V0IHBvaW50ZXJFdmVudHMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCA/ICdub25lJyA6ICdhdXRvJztcbiAgfVxuXG4gIEBPdXRwdXQoKSBmb2N1czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBibHVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBfdGFyZ2V0ID0gJ19zZWxmJztcbiAgX2xpbmtUeXBlOiAnYXV0bycgfCAnZXh0ZXJuYWwnIHwgJ2ludGVybmFsJyA9ICdhdXRvJztcblxuICBpc01hdGVyaWFsSWNvbiA9IGZhbHNlO1xuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcblxuXG4gICAgdGhpcy51cGRhdGVEYXRhKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzKSB7XG4gICAgdGhpcy51cGRhdGVEYXRhKCk7XG4gIH1cblxuICB1cGRhdGVEYXRhKCkge1xuICAgIHRoaXMuX2xpbmtUeXBlID0gdGhpcy5saW5rVHlwZTtcblxuICAgIGlmICh0aGlzLl9saW5rVHlwZSA9PT0gJ2F1dG8nKSB7XG4gICAgICBpZiAoKHRoaXMubGluay5pbmRleE9mKCc6Ly8nKSAhPT0gLTEgfHwgdGhpcy5saW5rLmluZGV4T2YoJy8vJykgPT09IDApKSB7XG4gICAgICAgIHRoaXMuX2xpbmtUeXBlID0gJ2V4dGVybmFsJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2xpbmtUeXBlID0gJ2ludGVybmFsJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5saW5rVGFyZ2V0ID09PSAnYXV0bycpIHtcbiAgICAgIGlmICh0aGlzLl9saW5rVHlwZSA9PT0gJ2V4dGVybmFsJykge1xuICAgICAgICB0aGlzLl90YXJnZXQgPSAnX2JsYW5rJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX3RhcmdldCA9ICdfc2VsZic7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3RhcmdldCA9IHRoaXMubGlua1RhcmdldCA9PT0gJ3NlbGYnID8gJ19zZWxmJyA6ICdibGFuayc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaWNvbiAmJiB0aGlzLmljb24uaW5kZXhPZignZmEtJykgPT09IC0xICYmIHRoaXMuaWNvbi5pbmRleE9mKCdwaS0nKSA9PT0gLTEpIHtcbiAgICAgIHRoaXMuaXNNYXRlcmlhbEljb24gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzTWF0ZXJpYWxJY29uID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgX29uQ2xpY2soJGV2ZW50KSB7XG4gICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbn1cbiIsIjxhIChibHVyKT1cImJsdXIuZW1pdCgkZXZlbnQpXCJcbiAgIChjbGljayk9XCJfb25DbGljaygkZXZlbnQpXCJcbiAgIChmb2N1cyk9XCJmb2N1cy5lbWl0KCRldmVudClcIlxuICAgKm5nSWY9XCJsaW5rICYmIF9saW5rVHlwZSA9PT0nZXh0ZXJuYWwnXCJcbiAgIFthdHRyLnR5cGVdPVwidHlwZVwiXG4gICBbY2xhc3NdPVwiY2xhc3NOYW1lICsgJyAnICsgdGVzdElkICArICcgZmllbGRfJyArIG5hbWVcIlxuICAgW2hyZWZdPVwibGlua1wiXG4gICBbbmdDbGFzc109XCJ7J3AtYnV0dG9uIHAtd2lkZ2V0IHAtc3RhdGUtZGVmYXVsdCBwLWNvcm5lci1hbGwnOnRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24taWNvbi1vbmx5JzogKChpY29uIHx8IHN2ZykgJiYgIWxhYmVsKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi10ZXh0LWljb24tbGVmdCc6ICgoaWNvbiB8fCBzdmcpICYmIGxhYmVsICYmIGljb25Qb3MgPT09ICdsZWZ0JyksXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tdGV4dC1pY29uLXJpZ2h0JzogKChpY29uIHx8IHN2ZykgJiYgbGFiZWwgJiYgaWNvblBvcyA9PT0gJ3JpZ2h0JyksXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tdGV4dC1vbmx5JzogKCEoaWNvbiB8fCBzdmcpICYmIGxhYmVsKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi10ZXh0LWVtcHR5JzogKCEoaWNvbiB8fCBzdmcpICYmICFsYWJlbCksXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tc3ZnJzogc3ZnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLW1hdGVyaWFsJzogaXNNYXRlcmlhbEljb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1zdGF0ZS1kaXNhYmxlZCc6IGRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXRpbnknOiBzaXplID09PSAndGlueScsXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tc21hbGwnOiBzaXplID09PSAnc21hbGwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLWxhcmdlJzogc2l6ZSA9PT0gJ2xhcmdlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1wcmltYXJ5JzogY29sb3IgPT09ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1zZWNvbmRhcnknOiBjb2xvciA9PT0gJ3NlY29uZGFyeScsXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tZGFuZ2VyJzogY29sb3IgPT09ICdkYW5nZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXRyYW5zcGFyZW5jeSc6IGNvbG9yID09PSAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXByZXNzZWQnIDogcHJlc3NlZH1cIlxuICAgW25nU3R5bGVdPVwie3dpZHRoOndpZHRofVwiXG4gICBbc3R5bGVdPVwic3R5bGVcIlxuICAgW3RhcmdldF09XCJfdGFyZ2V0XCIgY2xhc3M9XCJidXR0b24tY29udGFpbmVyXCI+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50O1wiPjwvbmctY29udGFpbmVyPlxuPC9hPlxuPGEgKGJsdXIpPVwiYmx1ci5lbWl0KCRldmVudClcIlxuICAgKGNsaWNrKT1cIl9vbkNsaWNrKCRldmVudClcIlxuICAgKGZvY3VzKT1cImZvY3VzLmVtaXQoJGV2ZW50KVwiXG4gICAqbmdJZj1cImxpbmsgJiYgX2xpbmtUeXBlID09PSdpbnRlcm5hbCdcIlxuICAgW2F0dHIudHlwZV09XCJ0eXBlXCJcbiAgIFtjbGFzc109XCJjbGFzc05hbWUgKyAnICcgKyB0ZXN0SWQgICsgJyBmaWVsZF8nICsgbmFtZVwiXG4gICBbbmdDbGFzc109XCJ7J3AtYnV0dG9uIHAtd2lkZ2V0IHAtc3RhdGUtZGVmYXVsdCBwLWNvcm5lci1hbGwnOnRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24taWNvbi1vbmx5JzogKChpY29uIHx8IHN2ZykgJiYgIWxhYmVsKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi10ZXh0LWljb24tbGVmdCc6ICgoaWNvbiB8fCBzdmcpICYmIGxhYmVsICYmIGljb25Qb3MgPT09ICdsZWZ0JyksXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tdGV4dC1pY29uLXJpZ2h0JzogKChpY29uIHx8IHN2ZykgJiYgbGFiZWwgJiYgaWNvblBvcyA9PT0gJ3JpZ2h0JyksXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tdGV4dC1vbmx5JzogKCEoaWNvbiB8fCBzdmcpICYmIGxhYmVsKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi10ZXh0LWVtcHR5JzogKCEoaWNvbiB8fCBzdmcpICYmICFsYWJlbCksXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tc3ZnJzogc3ZnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLW1hdGVyaWFsJzogaXNNYXRlcmlhbEljb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1zdGF0ZS1kaXNhYmxlZCc6IGRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXRpbnknOiBzaXplID09PSAndGlueScsXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tc21hbGwnOiBzaXplID09PSAnc21hbGwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLWxhcmdlJzogc2l6ZSA9PT0gJ2xhcmdlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1wcmltYXJ5JzogY29sb3IgPT09ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1zZWNvbmRhcnknOiBjb2xvciA9PT0gJ3NlY29uZGFyeScsXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tZGFuZ2VyJzogY29sb3IgPT09ICdkYW5nZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXRyYW5zcGFyZW5jeSc6IGNvbG9yID09PSAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXByZXNzZWQnIDogcHJlc3NlZH1cIlxuICAgW25nU3R5bGVdPVwie3dpZHRoOndpZHRofVwiXG4gICBbcm91dGVyTGlua109XCJsaW5rXCJcbiAgIFtzdHlsZV09XCJzdHlsZVwiXG4gICBbdGFyZ2V0XT1cIl90YXJnZXRcIiBjbGFzcz1cImJ1dHRvbi1jb250YWluZXJcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnQ7XCI+PC9uZy1jb250YWluZXI+XG48L2E+XG48c3BhbiAjZHJvcGRvd249XCJuZ2JEcm9wZG93blwiICpuZ0lmPVwiIWxpbmsgJiYgbWVudUl0ZW1zLmxlbmd0aFwiIFtuZ1N0eWxlXT1cInt3aWR0aDp3aWR0aH1cIiBjbGFzcz1cImJ1dHRvbi1jb250YWluZXJcIiBjb250YWluZXI9XCJib2R5XCJcbiAgICAgIG5nYkRyb3Bkb3duPlxuICAgIDxidXR0b25cbiAgICAgIChibHVyKT1cImJsdXIuZW1pdCgkZXZlbnQpXCJcbiAgICAgIChjbGljayk9XCJfb25DbGljaygkZXZlbnQpXCJcbiAgICAgIChmb2N1cyk9XCJmb2N1cy5lbWl0KCRldmVudClcIlxuICAgICAgW2F0dHIudHlwZV09XCJ0eXBlXCJcbiAgICAgIFtjbGFzc109XCJjbGFzc05hbWUgKyAnICcgKyB0ZXN0SWQgKyAnIGZpZWxkXycgKyBuYW1lXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbbmdDbGFzc109XCIgeydwLWJ1dHRvbiBwLXdpZGdldCBwLXN0YXRlLWRlZmF1bHQgcC1jb3JuZXItYWxsJzp0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLWljb24tb25seSc6ICgoaWNvbiB8fCBzdmcpICYmICFsYWJlbCksXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tdGV4dC1pY29uLWxlZnQnOiAoKGljb24gfHwgc3ZnKSAmJiBsYWJlbCAmJiBpY29uUG9zID09PSAnbGVmdCcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXRleHQtaWNvbi1yaWdodCc6ICgoaWNvbiB8fCBzdmcpICYmIGxhYmVsICYmIGljb25Qb3MgPT09ICdyaWdodCcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXRleHQtb25seSc6ICghKGljb24gfHwgc3ZnKSAmJiBsYWJlbCksXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tdGV4dC1lbXB0eSc6ICghKGljb24gfHwgc3ZnKSAmJiAhbGFiZWwpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXN2Zyc6IHN2ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1tYXRlcmlhbCc6IGlzTWF0ZXJpYWxJY29uLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3Atc3RhdGUtZGlzYWJsZWQnOiBkaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi10aW55Jzogc2l6ZSA9PT0gJ3RpbnknLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXNtYWxsJzogc2l6ZSA9PT0gJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1sYXJnZSc6IHNpemUgPT09ICdsYXJnZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tcHJpbWFyeSc6IGNvbG9yID09PSAncHJpbWFyeScsXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tc2Vjb25kYXJ5JzogY29sb3IgPT09ICdzZWNvbmRhcnknLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLWRhbmdlcic6IGNvbG9yID09PSAnZGFuZ2VyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi10cmFuc3BhcmVuY3knOiBjb2xvciA9PT0gJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1zaGFkb3dlZCc6IHNoYWRvdyA9PT0gdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1wcmVzc2VkJyA6IHByZXNzZWR9XCJcbiAgICAgIFtzdHlsZV09XCJzdHlsZVwiIG5nYkRyb3Bkb3duVG9nZ2xlPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudDtcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2J1dHRvbj5cbiAgICA8ZGl2ICpuZ0lmPVwibWVudUl0ZW1zLmxlbmd0aFwiIGFyaWEtbGFiZWxsZWRieT1cIm1lbnVcIlxuICAgICAgICAgY2xhc3M9XCJpbi1kcm9wZG93bi1tZW51XCJcbiAgICAgICAgIG5nYkRyb3Bkb3duTWVudT5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtZW51SXRlbXNcIiBjbGFzcz1cImluLWRyb3Bkb3duLW1lbnUtaXRlbVwiIHJvbGU9XCJtZW51aXRlbVwiPlxuICAgICAgICAgICAgPGluLWJ1dHRvbiAoY2xpY2spPVwiZHJvcGRvd24uY2xvc2UoKTsgaXRlbS5jb21tYW5kKCk7XCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cInNlbGVjdGVkSXRlbSAmJiBzZWxlY3RlZEl0ZW0gPT0gaXRlbS5pZD8ncHJpbWFyeSc6J3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgICAgICAgIFtpY29uXT1cIml0ZW0uaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJpdGVtLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW3N2Z109XCJpdGVtLnN2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiPjwvaW4tYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCJub3RpZnlcIiBbbmdDbGFzc109XCJub3RpZnlcIiBjbGFzcz1cIm5vdGlmeVwiPjwvZGl2PlxuPC9zcGFuPlxuPHNwYW4gKm5nSWY9XCIhbGluayAmJiAhbWVudUl0ZW1zLmxlbmd0aFwiIFtuZ1N0eWxlXT1cInt3aWR0aDp3aWR0aH1cIiBjbGFzcz1cImJ1dHRvbi1jb250YWluZXJcIj5cbiAgICA8YnV0dG9uXG4gICAgICAoYmx1cik9XCJibHVyLmVtaXQoJGV2ZW50KVwiXG4gICAgICAoY2xpY2spPVwiX29uQ2xpY2soJGV2ZW50KVwiXG4gICAgICAoZm9jdXMpPVwiZm9jdXMuZW1pdCgkZXZlbnQpXCJcbiAgICAgIFthdHRyLnR5cGVdPVwidHlwZVwiXG4gICAgICBbY2xhc3NdPVwiY2xhc3NOYW1lICsgJyAnICsgdGVzdElkICArICcgZmllbGRfJyArIG5hbWVcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtuZ0NsYXNzXT1cIiB7J3AtYnV0dG9uIHAtd2lkZ2V0IHAtc3RhdGUtZGVmYXVsdCBwLWNvcm5lci1hbGwnOnRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24taWNvbi1vbmx5JzogKChpY29uIHx8IHN2ZykgJiYgIWxhYmVsKSB8fCBpc0ljb25Pbmx5LFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXRleHQtaWNvbi1sZWZ0JzogKChpY29uIHx8IHN2ZykgJiYgbGFiZWwgJiYgaWNvblBvcyA9PT0gJ2xlZnQnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi10ZXh0LWljb24tcmlnaHQnOiAoKGljb24gfHwgc3ZnKSAmJiBsYWJlbCAmJiBpY29uUG9zID09PSAncmlnaHQnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi10ZXh0LW9ubHknOiAoIShpY29uIHx8IHN2ZykgJiYgbGFiZWwpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXRleHQtZW1wdHknOiAoIShpY29uIHx8IHN2ZykgJiYgIWxhYmVsKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1zdmcnOiBzdmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tbWF0ZXJpYWwnOiBpc01hdGVyaWFsSWNvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLXN0YXRlLWRpc2FibGVkJzogZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tdGlueSc6IHNpemUgPT09ICd0aW55JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1zbWFsbCc6IHNpemUgPT09ICdzbWFsbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tbGFyZ2UnOiBzaXplID09PSAnbGFyZ2UnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXByaW1hcnknOiBjb2xvciA9PT0gJ3ByaW1hcnknLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLXNlY29uZGFyeSc6IGNvbG9yID09PSAnc2Vjb25kYXJ5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1kYW5nZXInOiBjb2xvciA9PT0gJ2RhbmdlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tdHJhbnNwYXJlbmN5JzogY29sb3IgPT09ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tc2hhZG93ZWQnOiBzaGFkb3cgPT09IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAncC1idXR0b24tcHJlc3NlZCcgOiBwcmVzc2VkfVwiIFtzdHlsZV09XCJzdHlsZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudDtcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2J1dHRvbj5cbiAgICA8ZGl2ICpuZ0lmPVwibm90aWZ5XCIgW25nQ2xhc3NdPVwibm90aWZ5XCIgY2xhc3M9XCJub3RpZnlcIj48L2Rpdj5cbjwvc3Bhbj5cblxuPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICAgIDxzcGFuICpuZ0lmPVwiIWlzTWF0ZXJpYWxJY29uICYmIGljb24gJiYgIWlzTG9hZGluZ1wiIFtjbGFzc109XCJpY29uXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J3AtY2xpY2thYmxlJzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1pY29uLWxlZnQnOiAoaWNvblBvcyA9PT0gJ2xlZnQnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1pY29uLXJpZ2h0JzogKGljb25Qb3MgPT09ICdyaWdodCcpfVwiPjwvc3Bhbj5cbiAgPHNwYW4gKm5nSWY9XCJpc01hdGVyaWFsSWNvbiAmJiBpY29uICYmICFpc0xvYWRpbmdcIiBbbmdDbGFzc109XCJ7J3AtY2xpY2thYmxlJzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1pY29uLWxlZnQnOiAoaWNvblBvcyA9PT0gJ2xlZnQnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWJ1dHRvbi1pY29uLXJpZ2h0JzogKGljb25Qb3MgPT09ICdyaWdodCcpfVwiXG4gID48aSBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+e3tpY29ufX08L2k+PC9zcGFuPlxuICA8aW4tcHJlbG9hZGVyICpuZ0lmPVwiaXNMb2FkaW5nXCIgc2l6ZT1cInNtYWxsXCI+PC9pbi1wcmVsb2FkZXI+XG4gIDxzcGFuIGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWNsaWNrYWJsZVwiPnt7bGFiZWx9fTwvc3Bhbj5cbiAgPHNwYW4gKm5nSWY9XCJzdmcgJiYgIWlzTG9hZGluZ1wiIFtuZ0NsYXNzXT1cInsncC1jbGlja2FibGUnOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLWljb24tbGVmdCc6IChpY29uUG9zID09PSAnbGVmdCcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtYnV0dG9uLWljb24tcmlnaHQnOiAoaWNvblBvcyA9PT0gJ3JpZ2h0Jyl9XCI+XG4gICAgICAgIDxpbi1zdmcgKm5nSWY9XCJzaXplID09PSAnbm9ybWFsJ1wiIFtzcmNdPVwic3ZnXCIgaGVpZ2h0PVwiMjBweFwiIHdpZHRoPVwiMjBweFwiPjwvaW4tc3ZnPlxuICAgICAgICA8aW4tc3ZnICpuZ0lmPVwic2l6ZSA9PT0gJ2xhcmdlJ1wiIFtzcmNdPVwic3ZnXCIgaGVpZ2h0PVwiMjBweFwiIHdpZHRoPVwiMjBweFwiPjwvaW4tc3ZnPlxuICAgICAgICA8aW4tc3ZnICpuZ0lmPVwic2l6ZSA9PT0gJ3NtYWxsJ1wiIFtzcmNdPVwic3ZnXCIgaGVpZ2h0PVwiMjBweFwiIHdpZHRoPVwiMjBweFwiPjwvaW4tc3ZnPlxuICAgICAgICA8aW4tc3ZnICpuZ0lmPVwic2l6ZSA9PT0gJ3RpbnknXCIgW3NyY109XCJzdmdcIiBoZWlnaHQ9XCIxMHB4XCIgd2lkdGg9XCIxMHB4XCI+PC9pbi1zdmc+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==