@c8y/ngx-components 1021.62.9 → 1021.64.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/bottom-drawer/bottom-drawer-ref.d.ts +4 -0
- package/core/bottom-drawer/bottom-drawer-ref.d.ts.map +1 -1
- package/core/plugins/plugins.model.d.ts +1 -0
- package/core/plugins/plugins.model.d.ts.map +1 -1
- package/core/plugins/plugins.service.d.ts +5 -2
- package/core/plugins/plugins.service.d.ts.map +1 -1
- package/echart/services/echarts-options.service.d.ts +3 -1
- package/echart/services/echarts-options.service.d.ts.map +1 -1
- package/ecosystem/application-plugins/application-plugin-readme.component.d.ts +15 -0
- package/ecosystem/application-plugins/application-plugin-readme.component.d.ts.map +1 -0
- package/ecosystem/application-plugins/application-plugins.component.d.ts +4 -2
- package/ecosystem/application-plugins/application-plugins.component.d.ts.map +1 -1
- package/ecosystem/application-plugins/application-plugins.module.d.ts +4 -3
- package/ecosystem/application-plugins/application-plugins.module.d.ts.map +1 -1
- package/ecosystem/application-plugins/install-plugin.component.d.ts +8 -4
- package/ecosystem/application-plugins/install-plugin.component.d.ts.map +1 -1
- package/ecosystem/application-plugins/plugin-list.component.d.ts +10 -26
- package/ecosystem/application-plugins/plugin-list.component.d.ts.map +1 -1
- package/ecosystem/application-plugins/plugin-list.service.d.ts +27 -0
- package/ecosystem/application-plugins/plugin-list.service.d.ts.map +1 -0
- package/ecosystem/packages/package-details/package-details.component.d.ts +7 -9
- package/ecosystem/packages/package-details/package-details.component.d.ts.map +1 -1
- package/ecosystem/packages/package-versions/package-contents/contents-plugins/contents-plugins.component.d.ts +5 -1
- package/ecosystem/packages/package-versions/package-contents/contents-plugins/contents-plugins.component.d.ts.map +1 -1
- package/ecosystem/packages/package-versions/package-contents/packages-contents.component.d.ts +6 -3
- package/ecosystem/packages/package-versions/package-contents/packages-contents.component.d.ts.map +1 -1
- package/ecosystem/packages/package-versions/packages-versions.component.d.ts +9 -2
- package/ecosystem/packages/package-versions/packages-versions.component.d.ts.map +1 -1
- package/esm2022/alarms/alarm-details.component.mjs +3 -3
- package/esm2022/alarms/alarms-filter.component.mjs +3 -3
- package/esm2022/alarms/alarms-icon.component.mjs +3 -3
- package/esm2022/alarms/alarms-interval-refresh.component.mjs +3 -3
- package/esm2022/alarms/alarms-list.component.mjs +3 -3
- package/esm2022/alarms/alarms.component.mjs +3 -3
- package/esm2022/auth-configuration/sso-configuration/sso-configuration.component.mjs +3 -3
- package/esm2022/core/bottom-drawer/bottom-drawer-ref.mjs +9 -3
- package/esm2022/core/countdown-interval/countdown-interval.component.mjs +3 -3
- package/esm2022/core/plugins/plugins.model.mjs +1 -1
- package/esm2022/core/plugins/plugins.service.mjs +25 -5
- package/esm2022/echart/services/echarts-options.service.mjs +28 -12
- package/esm2022/ecosystem/application-plugins/application-plugin-readme.component.mjs +26 -0
- package/esm2022/ecosystem/application-plugins/application-plugins.component.mjs +26 -11
- package/esm2022/ecosystem/application-plugins/application-plugins.module.mjs +6 -3
- package/esm2022/ecosystem/application-plugins/install-plugin.component.mjs +21 -15
- package/esm2022/ecosystem/application-plugins/plugin-list-item.component.mjs +3 -3
- package/esm2022/ecosystem/application-plugins/plugin-list.component.mjs +26 -202
- package/esm2022/ecosystem/application-plugins/plugin-list.service.mjs +200 -0
- package/esm2022/ecosystem/application-properties/update-application-modal/update-application-modal.component.mjs +1 -1
- package/esm2022/ecosystem/packages/package-details/package-details.component.mjs +25 -44
- package/esm2022/ecosystem/packages/package-versions/package-contents/contents-plugins/contents-plugins.component.mjs +14 -4
- package/esm2022/ecosystem/packages/package-versions/package-contents/packages-contents.component.mjs +13 -6
- package/esm2022/ecosystem/packages/package-versions/packages-versions.component.mjs +22 -8
- package/esm2022/ecosystem/shared/list-filters/list-filters.component.mjs +3 -3
- package/esm2022/register-device/device-registration-view.component.mjs +39 -9
- package/esm2022/register-device/general/general-device-registration-button.component.mjs +13 -14
- package/esm2022/register-device/general/general-device-registration.component.mjs +19 -5
- package/esm2022/register-device/general/general-device-registration.service.mjs +30 -0
- package/esm2022/register-device/index.mjs +2 -1
- package/esm2022/widgets/implementations/alarms/alarm-list-widget-config/alarm-list-widget-config.component.mjs +3 -3
- package/fesm2022/c8y-ngx-components-alarms.mjs +12 -12
- package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-auth-configuration.mjs +2 -2
- package/fesm2022/c8y-ngx-components-auth-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-echart.mjs +26 -11
- package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +205 -138
- package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs +2 -2
- package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem.mjs +257 -176
- package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-register-device.mjs +86 -19
- package/fesm2022/c8y-ngx-components-register-device.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +2 -2
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +33 -7
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/locales/de.po +3 -0
- package/locales/es.po +3 -0
- package/locales/fr.po +3 -0
- package/locales/ja_JP.po +3 -0
- package/locales/ko.po +3 -0
- package/locales/locales.pot +36 -6
- package/locales/nl.po +3 -0
- package/locales/pl.po +3 -0
- package/locales/pt_BR.po +3 -0
- package/locales/zh_CN.po +3 -0
- package/locales/zh_TW.po +3 -0
- package/package.json +1 -1
- package/register-device/device-registration-view.component.d.ts +6 -1
- package/register-device/device-registration-view.component.d.ts.map +1 -1
- package/register-device/general/general-device-registration-button.component.d.ts +3 -3
- package/register-device/general/general-device-registration-button.component.d.ts.map +1 -1
- package/register-device/general/general-device-registration.component.d.ts +5 -0
- package/register-device/general/general-device-registration.component.d.ts.map +1 -1
- package/register-device/general/general-device-registration.service.d.ts +9 -0
- package/register-device/general/general-device-registration.service.d.ts.map +1 -0
- package/register-device/index.d.ts +1 -0
- package/register-device/index.d.ts.map +1 -1
|
@@ -194,11 +194,11 @@ export class AlarmsFilterComponent {
|
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
196
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AlarmsFilterComponent, deps: [{ token: i1.FormBuilder }, { token: i2.AlarmsViewService }, { token: i3.AlertService }, { token: i4.Router }, { token: i4.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
197
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AlarmsFilterComponent, selector: "c8y-alarms-filter", inputs: { contextSourceId: "contextSourceId" }, outputs: { onFilterApplied: "onFilterApplied" }, viewQueries: [{ propertyName: "filtersDropdown", first: true, predicate: ["filtersDropdown"], descendants: true }], ngImport: i0, template: "<form\n class=\"d-flex a-i-center\"\n [formGroup]=\"formGroup\"\n>\n <div\n class=\"dropdown\"\n title=\"{{ 'Filter by severity' | translate }}\"\n dropdown\n #filtersDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"filtersDropdown.isOpen\"\n [insideClick]=\"true\"\n >\n <div class=\"input-group fit-w\">\n <div class=\"form-control d-flex a-i-center inner-scroll\" style=\"min-width: 104px; padding-top: 0; padding-bottom: 0;\">\n <ng-container *ngIf=\"chips.length !== severitiesList.length; else allAlarms\">\n <span\n class=\"tag tag--info chip\"\n *ngFor=\"let chip of chips\"\n >\n <button\n class=\"btn btn-xs btn-clean text-10\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n (click)=\"deselectChip(chip); $event.stopPropagation()\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <i\n class=\"status stroked-icon icon-12\"\n [c8yIcon]=\"chip | AlarmSeverityToIcon\"\n [ngClass]=\"chip | lowercase\"\n ></i>\n {{ SEVERITY_LABELS[chip] | translate }}\n </span>\n </ng-container>\n <ng-template #allAlarms>\n <span class=\"text-truncate\" title=\"{{ 'All severities' | translate }}\">\n {{ 'All severities' | translate }}\n </span>\n </ng-template>\n </div>\n <div class=\"input-group-btn input-group-btn--last\">\n <button\n class=\"btn-default btn btn--caret\"\n title=\"{{ chips | AlarmSeveritiesToTitle }}\"\n data-cy=\"c8y-
|
|
197
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AlarmsFilterComponent, selector: "c8y-alarms-filter", inputs: { contextSourceId: "contextSourceId" }, outputs: { onFilterApplied: "onFilterApplied" }, viewQueries: [{ propertyName: "filtersDropdown", first: true, predicate: ["filtersDropdown"], descendants: true }], ngImport: i0, template: "<form\n class=\"d-flex a-i-center\"\n [formGroup]=\"formGroup\"\n>\n <div\n class=\"dropdown\"\n title=\"{{ 'Filter by severity' | translate }}\"\n dropdown\n #filtersDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"filtersDropdown.isOpen\"\n [insideClick]=\"true\"\n >\n <div class=\"input-group fit-w\">\n <div class=\"form-control d-flex a-i-center inner-scroll\" style=\"min-width: 104px; padding-top: 0; padding-bottom: 0;\">\n <ng-container *ngIf=\"chips.length !== severitiesList.length; else allAlarms\">\n <span\n class=\"tag tag--info chip\"\n [attr.data-cy]=\"'c8y-alarms-filter--chip-' + chip\"\n *ngFor=\"let chip of chips\"\n >\n <button\n class=\"btn btn-xs btn-clean text-10\"\n data-cy=\"c8y-alarms-filter--remove-chip\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n (click)=\"deselectChip(chip); $event.stopPropagation()\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <i\n class=\"status stroked-icon icon-12\"\n [attr.data-cy]=\"'c8y-alarms-filter--icon-' + chip\"\n [c8yIcon]=\"chip | AlarmSeverityToIcon\"\n [ngClass]=\"chip | lowercase\"\n ></i>\n {{ SEVERITY_LABELS[chip] | translate }}\n </span>\n </ng-container>\n <ng-template #allAlarms>\n <span class=\"text-truncate\" title=\"{{ 'All severities' | translate }}\">\n {{ 'All severities' | translate }}\n </span>\n </ng-template>\n </div>\n <div class=\"input-group-btn input-group-btn--last\">\n <button\n class=\"btn-default btn btn--caret\"\n title=\"{{ chips | AlarmSeveritiesToTitle }}\"\n data-cy=\"c8y-alarms-filter\"\n dropdownToggle\n (click)=\"resetForm()\"\n >\n <i class=\"caret\"></i>\n </button>\n </div>\n </div>\n <ul\n class=\"dropdown-menu dropdown-menu-action-bar\"\n *dropdownMenu\n >\n <li class=\"p-l-16 p-r-16 p-t-4 p-b-4 d-flex a-i-center sticky-top separator-bottom\">\n <label\n class=\"c8y-checkbox d-flex a-i-center\"\n [title]=\"'All' | translate\"\n >\n <input\n type=\"checkbox\"\n data-cy=\"c8y-alarms-filter--all\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"allChanged($event)\"\n [ngModel]=\"isEachCheckboxSelected$ | async\"\n [indeterminate]=\"isIndeterminate$ | async\"\n (click)=\"markSeveritiesAsTouched()\"\n />\n <span></span>\n <i\n class=\"status stroked-icon m-l-8 icon-20\"\n [c8yIcon]=\"'bell'\"\n ></i>\n <span class=\"m-l-8\">{{ 'All' | translate }}</span>\n </label>\n </li>\n <li\n class=\"p-l-16 p-r-16 p-t-4 p-b-4 d-flex a-i-center\"\n *ngFor=\"let severity of severitiesList\"\n >\n <label\n class=\"c8y-checkbox d-flex a-i-center\"\n [title]=\"SEVERITY_LABELS[severity] | translate\"\n >\n <input\n type=\"checkbox\"\n [attr.data-cy]=\"'c8y-alarms-filter--' + severity\"\n [formControlName]=\"severity\"\n [value]=\"severity\"\n (click)=\"markSeveritiesAsTouched()\"\n />\n <span></span>\n <i\n class=\"status stroked-icon m-l-8 icon-20\"\n [c8yIcon]=\"severity | AlarmSeverityToIcon\"\n [ngClass]=\"severity | lowercase\"\n ></i>\n <span class=\"m-l-8\">{{ SEVERITY_LABELS[severity] | translate }}</span>\n </label>\n <!-- badge -->\n <div\n class=\"badge badge-info m-l-auto\"\n *ngIf=\"alarmCounts[severity] || alarmCounts[severity] === 0\"\n >\n <i\n class=\"icon-spin\"\n [c8yIcon]=\"'circle-o-notch'\"\n *ngIf=\"countLoading\"\n ></i>\n <span\n *ngIf=\"!countLoading\"\n [attr.data-cy]=\"'c8y-alarms-filter--' + severity + '-badge'\"\n >\n {{ alarmCounts[severity] < 99 ? alarmCounts[severity] : '99+' }}\n </span>\n </div>\n </li>\n <li class=\"p-l-16 p-r-16 p-t-4 p-b-4 d-flex a-i-center separator-top\">\n <label\n class=\"c8y-switch\"\n [attr.aria-label]=\"'Show cleared alarms' | translate\"\n [attr.data-cy]=\"'c8y-alarms-filter--cleared'\"\n >\n <input\n type=\"checkbox\"\n #showClearedCheckbox\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"showCleared\"\n (click)=\"markSeveritiesAsTouched(); updateAlarmsCount(showClearedCheckbox.checked)\"\n />\n <span></span>\n <span\n class=\"text-truncate\"\n title=\"{{ 'Show cleared alarms' | translate }}\"\n >\n {{ 'Show cleared alarms' | translate }}\n </span>\n </label>\n </li>\n\n <div class=\"p-16 d-flex sticky-bottom separator-top\">\n <button\n data-cy=\"c8y-alarms-filter--apply\"\n class=\"btn btn-primary btn-sm flex-grow\"\n title=\"{{ 'Apply' | translate }}\"\n type=\"button\"\n (click)=\"applyFilters(false); closeDropdown()\"\n [disabled]=\"shouldDisableApplyButton$ | async\"\n >\n {{ 'Apply' | translate }}\n </button>\n </div>\n </ul>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i5.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }, { kind: "pipe", type: i9.AlarmSeverityToIconPipe, name: "AlarmSeverityToIcon" }, { kind: "pipe", type: i10.AlarmSeveritiesToTitlePipe, name: "AlarmSeveritiesToTitle" }] }); }
|
|
198
198
|
}
|
|
199
199
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AlarmsFilterComponent, decorators: [{
|
|
200
200
|
type: Component,
|
|
201
|
-
args: [{ selector: 'c8y-alarms-filter', template: "<form\n class=\"d-flex a-i-center\"\n [formGroup]=\"formGroup\"\n>\n <div\n class=\"dropdown\"\n title=\"{{ 'Filter by severity' | translate }}\"\n dropdown\n #filtersDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"filtersDropdown.isOpen\"\n [insideClick]=\"true\"\n >\n <div class=\"input-group fit-w\">\n <div class=\"form-control d-flex a-i-center inner-scroll\" style=\"min-width: 104px; padding-top: 0; padding-bottom: 0;\">\n <ng-container *ngIf=\"chips.length !== severitiesList.length; else allAlarms\">\n <span\n class=\"tag tag--info chip\"\n *ngFor=\"let chip of chips\"\n >\n <button\n class=\"btn btn-xs btn-clean text-10\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n (click)=\"deselectChip(chip); $event.stopPropagation()\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <i\n class=\"status stroked-icon icon-12\"\n [c8yIcon]=\"chip | AlarmSeverityToIcon\"\n [ngClass]=\"chip | lowercase\"\n ></i>\n {{ SEVERITY_LABELS[chip] | translate }}\n </span>\n </ng-container>\n <ng-template #allAlarms>\n <span class=\"text-truncate\" title=\"{{ 'All severities' | translate }}\">\n {{ 'All severities' | translate }}\n </span>\n </ng-template>\n </div>\n <div class=\"input-group-btn input-group-btn--last\">\n <button\n class=\"btn-default btn btn--caret\"\n title=\"{{ chips | AlarmSeveritiesToTitle }}\"\n data-cy=\"c8y-
|
|
201
|
+
args: [{ selector: 'c8y-alarms-filter', template: "<form\n class=\"d-flex a-i-center\"\n [formGroup]=\"formGroup\"\n>\n <div\n class=\"dropdown\"\n title=\"{{ 'Filter by severity' | translate }}\"\n dropdown\n #filtersDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"filtersDropdown.isOpen\"\n [insideClick]=\"true\"\n >\n <div class=\"input-group fit-w\">\n <div class=\"form-control d-flex a-i-center inner-scroll\" style=\"min-width: 104px; padding-top: 0; padding-bottom: 0;\">\n <ng-container *ngIf=\"chips.length !== severitiesList.length; else allAlarms\">\n <span\n class=\"tag tag--info chip\"\n [attr.data-cy]=\"'c8y-alarms-filter--chip-' + chip\"\n *ngFor=\"let chip of chips\"\n >\n <button\n class=\"btn btn-xs btn-clean text-10\"\n data-cy=\"c8y-alarms-filter--remove-chip\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n (click)=\"deselectChip(chip); $event.stopPropagation()\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <i\n class=\"status stroked-icon icon-12\"\n [attr.data-cy]=\"'c8y-alarms-filter--icon-' + chip\"\n [c8yIcon]=\"chip | AlarmSeverityToIcon\"\n [ngClass]=\"chip | lowercase\"\n ></i>\n {{ SEVERITY_LABELS[chip] | translate }}\n </span>\n </ng-container>\n <ng-template #allAlarms>\n <span class=\"text-truncate\" title=\"{{ 'All severities' | translate }}\">\n {{ 'All severities' | translate }}\n </span>\n </ng-template>\n </div>\n <div class=\"input-group-btn input-group-btn--last\">\n <button\n class=\"btn-default btn btn--caret\"\n title=\"{{ chips | AlarmSeveritiesToTitle }}\"\n data-cy=\"c8y-alarms-filter\"\n dropdownToggle\n (click)=\"resetForm()\"\n >\n <i class=\"caret\"></i>\n </button>\n </div>\n </div>\n <ul\n class=\"dropdown-menu dropdown-menu-action-bar\"\n *dropdownMenu\n >\n <li class=\"p-l-16 p-r-16 p-t-4 p-b-4 d-flex a-i-center sticky-top separator-bottom\">\n <label\n class=\"c8y-checkbox d-flex a-i-center\"\n [title]=\"'All' | translate\"\n >\n <input\n type=\"checkbox\"\n data-cy=\"c8y-alarms-filter--all\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"allChanged($event)\"\n [ngModel]=\"isEachCheckboxSelected$ | async\"\n [indeterminate]=\"isIndeterminate$ | async\"\n (click)=\"markSeveritiesAsTouched()\"\n />\n <span></span>\n <i\n class=\"status stroked-icon m-l-8 icon-20\"\n [c8yIcon]=\"'bell'\"\n ></i>\n <span class=\"m-l-8\">{{ 'All' | translate }}</span>\n </label>\n </li>\n <li\n class=\"p-l-16 p-r-16 p-t-4 p-b-4 d-flex a-i-center\"\n *ngFor=\"let severity of severitiesList\"\n >\n <label\n class=\"c8y-checkbox d-flex a-i-center\"\n [title]=\"SEVERITY_LABELS[severity] | translate\"\n >\n <input\n type=\"checkbox\"\n [attr.data-cy]=\"'c8y-alarms-filter--' + severity\"\n [formControlName]=\"severity\"\n [value]=\"severity\"\n (click)=\"markSeveritiesAsTouched()\"\n />\n <span></span>\n <i\n class=\"status stroked-icon m-l-8 icon-20\"\n [c8yIcon]=\"severity | AlarmSeverityToIcon\"\n [ngClass]=\"severity | lowercase\"\n ></i>\n <span class=\"m-l-8\">{{ SEVERITY_LABELS[severity] | translate }}</span>\n </label>\n <!-- badge -->\n <div\n class=\"badge badge-info m-l-auto\"\n *ngIf=\"alarmCounts[severity] || alarmCounts[severity] === 0\"\n >\n <i\n class=\"icon-spin\"\n [c8yIcon]=\"'circle-o-notch'\"\n *ngIf=\"countLoading\"\n ></i>\n <span\n *ngIf=\"!countLoading\"\n [attr.data-cy]=\"'c8y-alarms-filter--' + severity + '-badge'\"\n >\n {{ alarmCounts[severity] < 99 ? alarmCounts[severity] : '99+' }}\n </span>\n </div>\n </li>\n <li class=\"p-l-16 p-r-16 p-t-4 p-b-4 d-flex a-i-center separator-top\">\n <label\n class=\"c8y-switch\"\n [attr.aria-label]=\"'Show cleared alarms' | translate\"\n [attr.data-cy]=\"'c8y-alarms-filter--cleared'\"\n >\n <input\n type=\"checkbox\"\n #showClearedCheckbox\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"showCleared\"\n (click)=\"markSeveritiesAsTouched(); updateAlarmsCount(showClearedCheckbox.checked)\"\n />\n <span></span>\n <span\n class=\"text-truncate\"\n title=\"{{ 'Show cleared alarms' | translate }}\"\n >\n {{ 'Show cleared alarms' | translate }}\n </span>\n </label>\n </li>\n\n <div class=\"p-16 d-flex sticky-bottom separator-top\">\n <button\n data-cy=\"c8y-alarms-filter--apply\"\n class=\"btn btn-primary btn-sm flex-grow\"\n title=\"{{ 'Apply' | translate }}\"\n type=\"button\"\n (click)=\"applyFilters(false); closeDropdown()\"\n [disabled]=\"shouldDisableApplyButton$ | async\"\n >\n {{ 'Apply' | translate }}\n </button>\n </div>\n </ul>\n </div>\n</form>\n" }]
|
|
202
202
|
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.AlarmsViewService }, { type: i3.AlertService }, { type: i4.Router }, { type: i4.ActivatedRoute }], propDecorators: { contextSourceId: [{
|
|
203
203
|
type: Input
|
|
204
204
|
}], onFilterApplied: [{
|
|
@@ -207,4 +207,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
207
207
|
type: ViewChild,
|
|
208
208
|
args: ['filtersDropdown']
|
|
209
209
|
}] } });
|
|
210
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm1zLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9hbGFybXMvYWxhcm1zLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi9hbGFybXMvYWxhcm1zLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUVMLFFBQVEsRUFFUixlQUFlLEVBRWhCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxZQUFZLEVBQW1CLE1BQU0scUJBQXFCLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFFTCxvQkFBb0IsRUFDcEIsdUJBQXVCLEVBRXhCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBT3pELE1BQU0sT0FBTyxxQkFBcUI7SUFnQ2hDLFlBQ1UsV0FBd0IsRUFDeEIsaUJBQW9DLEVBQ3BDLFlBQTBCLEVBQzFCLE1BQWMsRUFDZCxjQUE4QjtRQUo5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UCxlQUFlO3NCQURkLFNBQVM7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIEFsYXJtUXVlcnlGaWx0ZXIsXG4gIFNldmVyaXR5LFxuICBTZXZlcml0eUZpbHRlcixcbiAgU0VWRVJJVFlfTEFCRUxTLFxuICBTZXZlcml0eVR5cGVcbn0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBEYXRlVGltZUNvbnRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEJzRHJvcGRvd25EaXJlY3RpdmUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2Ryb3Bkb3duJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZnJvbSwgZm9ya0pvaW4sIEVNUFRZIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIGZpbmFsaXplLCBtYXAsIHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWxhcm1zVmlld1NlcnZpY2UgfSBmcm9tICcuL2FsYXJtcy12aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQWxhcm1Db3VudCxcbiAgREVGQVVMVF9BTEFSTV9DT1VOVFMsXG4gIERFRkFVTFRfU0VWRVJJVFlfVkFMVUVTLFxuICBBbGFybUxpc3RGb3JtRmlsdGVyc1xufSBmcm9tICcuL2FsYXJtcy5tb2RlbCc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1hbGFybXMtZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FsYXJtcy1maWx0ZXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFsYXJtc0ZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgc2V2ZXJpdGllc0xpc3QgPSBPYmplY3Qua2V5cyhTRVZFUklUWV9MQUJFTFMpIGFzIFNldmVyaXR5VHlwZVtdO1xuXG4gIEBJbnB1dCgpXG4gIGNvbnRleHRTb3VyY2VJZDogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbDtcblxuICAvKipcbiAgICogRXZlbnRFbWl0dGVyIHRvIG5vdGlmeSB3aGVuIGZpbHRlcnMgaGF2ZSBiZWVuIGFwcGxpZWQuXG4gICAqIEVtaXRzIGEgYEFsYXJtTGlzdEZvcm1GaWx0ZXJzYCBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBmaWx0ZXIgY3JpdGVyaWEgYXBwbGllZCBieSB0aGUgdXNlci5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBvbkZpbHRlckFwcGxpZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEFsYXJtTGlzdEZvcm1GaWx0ZXJzPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2ZpbHRlcnNEcm9wZG93bicpXG4gIGZpbHRlcnNEcm9wZG93bjogQnNEcm9wZG93bkRpcmVjdGl2ZTtcblxuICBmb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKERFRkFVTFRfU0VWRVJJVFlfVkFMVUVTKTtcbiAgY2hpcHM6IFNldmVyaXR5VHlwZVtdID0gW107XG4gIGlzSW5kZXRlcm1pbmF0ZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGNvdW50TG9hZGluZzogYm9vbGVhbjtcbiAgc2hvd0NsZWFyZWQgPSBmYWxzZTtcbiAgYWxhcm1Db3VudHM6IEFsYXJtQ291bnQgPSBERUZBVUxUX0FMQVJNX0NPVU5UUztcbiAgc2VsZWN0ZWREYXRlczogRGF0ZVRpbWVDb250ZXh0O1xuICBzaG91bGREaXNhYmxlQXBwbHlCdXR0b24kOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBpc0VhY2hDaGVja2JveFNlbGVjdGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IFNFVkVSSVRZX0xBQkVMUyA9IFNFVkVSSVRZX0xBQkVMUztcbiAgcHJpdmF0ZSBpc05vbmVDaGVja2JveFNlbGVjdGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcml2YXRlIHNldmVyaXRpZXNUb3VjaGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcml2YXRlIGN1cnJlbnRGb3JtR3JvdXBWYWx1ZXMgPSB0aGlzLmZvcm1Hcm91cC52YWx1ZTtcbiAgcHJpdmF0ZSBjdXJyZW50U2hvd0NsZWFyZWRWYWx1ZTogYm9vbGVhbjtcbiAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBhbGFybXNWaWV3U2VydmljZTogQWxhcm1zVmlld1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1zLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgIHRoaXMuc2hvd0NsZWFyZWQgPSBwYXJhbXMuc2hvd0NsZWFyZWQgPT09ICd0cnVlJztcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnNldFZhbHVlKHtcbiAgICAgICAgW1NldmVyaXR5LkNSSVRJQ0FMXTogcGFyYW1zW1NldmVyaXR5LkNSSVRJQ0FMXSA9PT0gJ3RydWUnLFxuICAgICAgICBbU2V2ZXJpdHkuTUFKT1JdOiBwYXJhbXNbU2V2ZXJpdHkuTUFKT1JdID09PSAndHJ1ZScsXG4gICAgICAgIFtTZXZlcml0eS5NSU5PUl06IHBhcmFtc1tTZXZlcml0eS5NSU5PUl0gPT09ICd0cnVlJyxcbiAgICAgICAgW1NldmVyaXR5LldBUk5JTkddOiBwYXJhbXNbU2V2ZXJpdHkuV0FSTklOR10gPT09ICd0cnVlJ1xuICAgICAgfSk7XG4gICAgICBpZiAocGFyYW1zLmxhc3RVcGRhdGVkRnJvbSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZXMgPSBbbmV3IERhdGUocGFyYW1zLmxhc3RVcGRhdGVkRnJvbSksIG5ldyBEYXRlKHBhcmFtcy5jcmVhdGVkVG8pXTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYXBwbHlGaWx0ZXJzKHRydWUsIGZhbHNlKTtcbiAgICB9KTtcbiAgICB0aGlzLnRyYWNrQ2hlY2tib3hTdGF0ZVdpdGhGb3JtQ2hhbmdlcygpO1xuICAgIHRoaXMuY3VycmVudFNob3dDbGVhcmVkVmFsdWUgPSB0aGlzLnNob3dDbGVhcmVkO1xuICAgIHRoaXMudXBkYXRlQ2hpcHNBbmREZWZhdWx0VmFsdWVzKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJzRHJvcGRvd24uaXNPcGVuQ2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCksIGZpbHRlcihCb29sZWFuKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGRhdGVBbGFybXNDb3VudCgpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIGFsbENoYW5nZWQoc2VsZWN0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHtcbiAgICAgIFtTZXZlcml0eS5DUklUSUNBTF06IHNlbGVjdGVkLFxuICAgICAgW1NldmVyaXR5Lk1BSk9SXTogc2VsZWN0ZWQsXG4gICAgICBbU2V2ZXJpdHkuTUlOT1JdOiBzZWxlY3RlZCxcbiAgICAgIFtTZXZlcml0eS5XQVJOSU5HXTogc2VsZWN0ZWRcbiAgICB9IGFzIFNldmVyaXR5RmlsdGVyKTtcbiAgfVxuXG4gIGFwcGx5RmlsdGVycyhlbWl0ID0gdHJ1ZSwgbmF2aWdhdGUgPSB0cnVlKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVDaGlwc0FuZERlZmF1bHRWYWx1ZXMoKTtcbiAgICBjb25zdCBjb21iaW5lZEZvcm1FdmVudDogQWxhcm1MaXN0Rm9ybUZpbHRlcnMgPSB7XG4gICAgICBzaG93Q2xlYXJlZDogdGhpcy5zaG93Q2xlYXJlZCxcbiAgICAgIHNldmVyaXR5T3B0aW9uczogdGhpcy5mb3JtR3JvdXAudmFsdWUsXG4gICAgICBzZWxlY3RlZERhdGVzOiB0aGlzLnNlbGVjdGVkRGF0ZXNcbiAgICB9O1xuICAgIGlmIChlbWl0KSB7XG4gICAgICB0aGlzLm9uRmlsdGVyQXBwbGllZC5lbWl0KGNvbWJpbmVkRm9ybUV2ZW50KTtcbiAgICB9XG4gICAgdGhpcy5jdXJyZW50Rm9ybUdyb3VwVmFsdWVzID0gdGhpcy5mb3JtR3JvdXAudmFsdWU7XG4gICAgdGhpcy5jdXJyZW50U2hvd0NsZWFyZWRWYWx1ZSA9IHRoaXMuc2hvd0NsZWFyZWQ7XG5cbiAgICBpZiAobmF2aWdhdGUpIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgc2hvd0NsZWFyZWQ6IGNvbWJpbmVkRm9ybUV2ZW50LnNob3dDbGVhcmVkLFxuICAgICAgICAgIC4uLmNvbWJpbmVkRm9ybUV2ZW50LnNldmVyaXR5T3B0aW9ucyxcbiAgICAgICAgICBsYXN0VXBkYXRlZEZyb206IGNvbWJpbmVkRm9ybUV2ZW50LnNlbGVjdGVkRGF0ZXM/LlswXT8udG9JU09TdHJpbmcoKSxcbiAgICAgICAgICBjcmVhdGVkVG86IGNvbWJpbmVkRm9ybUV2ZW50LnNlbGVjdGVkRGF0ZXM/LlsxXT8udG9JU09TdHJpbmcoKVxuICAgICAgICB9LFxuICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBkZXNlbGVjdENoaXAoY2hpcDogU2V2ZXJpdHlUeXBlKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZSh7XG4gICAgICAuLi50aGlzLmZvcm1Hcm91cC52YWx1ZSxcbiAgICAgIFtjaGlwXTogZmFsc2VcbiAgICB9KTtcbiAgICB0aGlzLmFwcGx5RmlsdGVycyhmYWxzZSk7XG4gICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gIH1cblxuICBjbG9zZURyb3Bkb3duKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZpbHRlcnNEcm9wZG93bi5pc09wZW4pIHtcbiAgICAgIHRoaXMuZmlsdGVyc0Ryb3Bkb3duLmlzT3BlbiA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0Rm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1Hcm91cC5yZXNldCh0aGlzLmN1cnJlbnRGb3JtR3JvdXBWYWx1ZXMpO1xuICAgIHRoaXMuc2V2ZXJpdGllc1RvdWNoZWQkLm5leHQoZmFsc2UpO1xuICAgIHRoaXMuc2hvd0NsZWFyZWQgPSB0aGlzLmN1cnJlbnRTaG93Q2xlYXJlZFZhbHVlO1xuICB9XG5cbiAgbWFya1NldmVyaXRpZXNBc1RvdWNoZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXZlcml0aWVzVG91Y2hlZCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBc3luY2hyb25vdXNseSBmZXRjaGVzIGFuZCB1cGRhdGVzIHRoZSBjb3VudCBvZiBhbGFybXMgZm9yIGVhY2ggc2V2ZXJpdHkgbGV2ZWwuXG4gICAqXG4gICAqIEBwYXJhbSBzaG93Q2xlYXJlZCAtIFdoZXRoZXIgdG8gaW5jbHVkZSBjbGVhcmVkIGFsYXJtcyBpbiB0aGUgY291bnQuXG4gICAqIERlZmF1bHRzIHRvIHRoZSBjdXJyZW50IHZhbHVlIG9mIGB0aGlzLmN1cnJlbnRTaG93Q2xlYXJlZFZhbHVlYC5cbiAgICogQHJldHVybnMgQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBhbGwgYWxhcm0gY291bnRzIGhhdmUgYmVlbiBmZXRjaGVkLFxuICAgKiBvciByZWplY3RzIHdpdGggYW4gZXJyb3IgaWYgdGhlIG9wZXJhdGlvbiBmYWlscy5cbiAgICogQHRocm93cyBXaWxsIHRocm93IGFuIGVycm9yIGlmIGFueSBvZiB0aGUgYWxhcm0gY291bnQgZmV0Y2hpbmcgcHJvbWlzZXMgcmVqZWN0LlxuICAgKi9cbiAgYXN5bmMgdXBkYXRlQWxhcm1zQ291bnQoc2hvd0NsZWFyZWQgPSB0aGlzLmN1cnJlbnRTaG93Q2xlYXJlZFZhbHVlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jb3VudExvYWRpbmcgPSB0cnVlO1xuICAgIGNvbnN0IGFsYXJtRmlsdGVyOiBBbGFybVF1ZXJ5RmlsdGVyIHwgbnVsbCA9IHRoaXMuY29udGV4dFNvdXJjZUlkXG4gICAgICA/IHtcbiAgICAgICAgICBzb3VyY2U6IHRoaXMuY29udGV4dFNvdXJjZUlkLFxuICAgICAgICAgIHdpdGhTb3VyY2VBc3NldHM6IHRydWUsXG4gICAgICAgICAgd2l0aFNvdXJjZURldmljZXM6IHRydWVcbiAgICAgICAgfVxuICAgICAgOiBudWxsO1xuICAgIGNvbnN0IG9ic2VydmFibGVzOiBSZWNvcmQ8U2V2ZXJpdHlUeXBlLCBPYnNlcnZhYmxlPG51bWJlcj4+ID0gdGhpcy5zZXZlcml0aWVzTGlzdC5yZWR1Y2UoXG4gICAgICAoYWNjLCBzZXZlcml0eSkgPT4ge1xuICAgICAgICBhY2Nbc2V2ZXJpdHldID0gZnJvbShcbiAgICAgICAgICB0aGlzLmFsYXJtc1ZpZXdTZXJ2aWNlLmdldEFsYXJtc0NvdW50QnlTZXZlcml0eShzZXZlcml0eSwgc2hvd0NsZWFyZWQsIGFsYXJtRmlsdGVyKVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgQ1JJVElDQUw6IG51bGwsXG4gICAgICAgIE1BSk9SOiBudWxsLFxuICAgICAgICBNSU5PUjogbnVsbCxcbiAgICAgICAgV0FSTklORzogbnVsbFxuICAgICAgfVxuICAgICk7XG4gICAgZm9ya0pvaW4ob2JzZXJ2YWJsZXMpXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuYWxhcm1Db3VudHMgPSB7fSBhcyBBbGFybUNvdW50O1xuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXJyKTtcbiAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgIH0pLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5jb3VudExvYWRpbmcgPSBmYWxzZSkpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChhbGFybUNvdW50czogQWxhcm1Db3VudCkgPT4gKHRoaXMuYWxhcm1Db3VudHMgPSBhbGFybUNvdW50cykpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVGb3JtVmFsdWVXaXRoQ2hhbmdlc1N0cmVhbSgpOiBPYnNlcnZhYmxlPFNldmVyaXR5RmlsdGVyPiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLmZvcm1Hcm91cC52YWx1ZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFja0NoZWNrYm94U3RhdGVXaXRoRm9ybUNoYW5nZXMoKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybVZhbHVlJCA9IHRoaXMuY3JlYXRlRm9ybVZhbHVlV2l0aENoYW5nZXNTdHJlYW0oKTtcbiAgICB0aGlzLmlzRWFjaENoZWNrYm94U2VsZWN0ZWQkID0gdGhpcy5jcmVhdGVBbGxTZWxlY3RlZFN0cmVhbShmb3JtVmFsdWUkKTtcbiAgICB0aGlzLmlzSW5kZXRlcm1pbmF0ZSQgPSB0aGlzLmNyZWF0ZUluZGV0ZXJtaW5hdGVTdHJlYW0oZm9ybVZhbHVlJCk7XG4gICAgdGhpcy50cmFja0FsbENoZWNrYm94ZXNEaXNhYmxlZChmb3JtVmFsdWUkKTtcbiAgICB0aGlzLnNob3VsZERpc2FibGVBcHBseUJ1dHRvbiQgPSB0aGlzLmNyZWF0ZURpc2FibGVBcHBseUJ1dHRvblN0cmVhbSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVBbGxTZWxlY3RlZFN0cmVhbShmb3JtVmFsdWUkOiBPYnNlcnZhYmxlPFNldmVyaXR5RmlsdGVyPik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBmb3JtVmFsdWUkLnBpcGUobWFwKHNldmVyaXRpZXMgPT4gT2JqZWN0LnZhbHVlcyhzZXZlcml0aWVzKS5ldmVyeShCb29sZWFuKSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVJbmRldGVybWluYXRlU3RyZWFtKGZvcm1WYWx1ZSQ6IE9ic2VydmFibGU8U2V2ZXJpdHlGaWx0ZXI+KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGZvcm1WYWx1ZSQucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgc2V2ZXJpdGllcyA9PlxuICAgICAgICAgIE9iamVjdC52YWx1ZXMoc2V2ZXJpdGllcykuc29tZShCb29sZWFuKSAmJiAhT2JqZWN0LnZhbHVlcyhzZXZlcml0aWVzKS5ldmVyeShCb29sZWFuKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHRyYWNrQWxsQ2hlY2tib3hlc0Rpc2FibGVkKGZvcm1WYWx1ZSQ6IE9ic2VydmFibGU8U2V2ZXJpdHlGaWx0ZXI+KTogdm9pZCB7XG4gICAgZm9ybVZhbHVlJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHNldmVyaXRpZXMgPT4ge1xuICAgICAgY29uc3QgYXJlQWxsRGlzYWJsZWQgPSBPYmplY3QudmFsdWVzKHNldmVyaXRpZXMpLmV2ZXJ5KHZhbHVlID0+ICF2YWx1ZSk7XG4gICAgICB0aGlzLmlzTm9uZUNoZWNrYm94U2VsZWN0ZWQkLm5leHQoYXJlQWxsRGlzYWJsZWQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVEaXNhYmxlQXBwbHlCdXR0b25TdHJlYW0oKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW3RoaXMuaXNOb25lQ2hlY2tib3hTZWxlY3RlZCQsIHRoaXMuc2V2ZXJpdGllc1RvdWNoZWQkXSkucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgKFthbGxDaGVja2JveGVzQXJlRGlzYWJsZWQsIHNldmVyaXRpZXNUb3VjaGVkXSkgPT5cbiAgICAgICAgICBhbGxDaGVja2JveGVzQXJlRGlzYWJsZWQgfHwgIXNldmVyaXRpZXNUb3VjaGVkXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ2hpcHNBbmREZWZhdWx0VmFsdWVzKCk6IHZvaWQge1xuICAgIGNvbnN0IHNldmVyaXR5RmlsdGVyID0gdGhpcy5mb3JtR3JvdXA7XG4gICAgY29uc3Qgc2V2ZWVyaXR5VmFsdWVzID0gc2V2ZXJpdHlGaWx0ZXIudmFsdWU7XG5cbiAgICB0aGlzLmNoaXBzID0gT2JqZWN0LmtleXMoc2V2ZWVyaXR5VmFsdWVzKS5maWx0ZXIoa2V5ID0+IHNldmVlcml0eVZhbHVlc1trZXldKSBhcyBTZXZlcml0eVR5cGVbXTtcbiAgICBjb25zdCBhbGxDaGlwc1JlbW92ZWQgPSB0aGlzLmNoaXBzLmxlbmd0aCA9PT0gMDtcbiAgICBpZiAoYWxsQ2hpcHNSZW1vdmVkKSB7XG4gICAgICBjb25zdCBkZWZhdWx0VmFsdWVzID0gREVGQVVMVF9TRVZFUklUWV9WQUxVRVM7XG4gICAgICBzZXZlcml0eUZpbHRlci5zZXRWYWx1ZShkZWZhdWx0VmFsdWVzKTtcbiAgICAgIHRoaXMuY2hpcHMgPSBPYmplY3Qua2V5cyhkZWZhdWx0VmFsdWVzKSBhcyBTZXZlcml0eVR5cGVbXTtcbiAgICB9XG4gIH1cbn1cbiIsIjxmb3JtXG4gIGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXJcIlxuICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cImRyb3Bkb3duXCJcbiAgICB0aXRsZT1cInt7ICdGaWx0ZXIgYnkgc2V2ZXJpdHknIHwgdHJhbnNsYXRlIH19XCJcbiAgICBkcm9wZG93blxuICAgICNmaWx0ZXJzRHJvcGRvd249XCJicy1kcm9wZG93blwiXG4gICAgW2Nka1RyYXBGb2N1c109XCJmaWx0ZXJzRHJvcGRvd24uaXNPcGVuXCJcbiAgICBbaW5zaWRlQ2xpY2tdPVwidHJ1ZVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgZml0LXdcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZC1mbGV4IGEtaS1jZW50ZXIgaW5uZXItc2Nyb2xsXCIgc3R5bGU9XCJtaW4td2lkdGg6IDEwNHB4OyBwYWRkaW5nLXRvcDogMDsgcGFkZGluZy1ib3R0b206IDA7XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjaGlwcy5sZW5ndGggIT09IHNldmVyaXRpZXNMaXN0Lmxlbmd0aDsgZWxzZSBhbGxBbGFybXNcIj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJ0YWcgdGFnLS1pbmZvIGNoaXBcIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNoaXAgb2YgY2hpcHNcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXhzIGJ0bi1jbGVhbiB0ZXh0LTEwXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnUmVtb3ZlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGVzZWxlY3RDaGlwKGNoaXApOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aSBjOHlJY29uPVwidGltZXNcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgIGNsYXNzPVwic3RhdHVzIHN0cm9rZWQtaWNvbiBpY29uLTEyXCJcbiAgICAgICAgICAgICAgW2M4eUljb25dPVwiY2hpcCB8IEFsYXJtU2V2ZXJpdHlUb0ljb25cIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJjaGlwIHwgbG93ZXJjYXNlXCJcbiAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICB7eyBTRVZFUklUWV9MQUJFTFNbY2hpcF0gfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2FsbEFsYXJtcz5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIiB0aXRsZT1cInt7ICdBbGwgc2V2ZXJpdGllcycgfCB0cmFuc2xhdGUgfX1cIj5cbiAgICAgICAgICAgIHt7ICdBbGwgc2V2ZXJpdGllcycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1idG4gaW5wdXQtZ3JvdXAtYnRuLS1sYXN0XCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImJ0bi1kZWZhdWx0IGJ0biBidG4tLWNhcmV0XCJcbiAgICAgICAgICB0aXRsZT1cInt7IGNoaXBzIHwgQWxhcm1TZXZlcml0aWVzVG9UaXRsZSB9fVwiXG4gICAgICAgICAgZGF0YS1jeT1cImM4eS1hbGFybS1maWx0ZXJcIlxuICAgICAgICAgIGRyb3Bkb3duVG9nZ2xlXG4gICAgICAgICAgKGNsaWNrKT1cInJlc2V0Rm9ybSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpIGNsYXNzPVwiY2FyZXRcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPHVsXG4gICAgICBjbGFzcz1cImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS1hY3Rpb24tYmFyXCJcbiAgICAgICpkcm9wZG93bk1lbnVcbiAgICA+XG4gICAgICA8bGkgY2xhc3M9XCJwLWwtMTYgcC1yLTE2IHAtdC00IHAtYi00IGQtZmxleCBhLWktY2VudGVyIHN0aWNreS10b3Agc2VwYXJhdG9yLWJvdHRvbVwiPlxuICAgICAgICA8bGFiZWxcbiAgICAgICAgICBjbGFzcz1cImM4eS1jaGVja2JveCBkLWZsZXggYS1pLWNlbnRlclwiXG4gICAgICAgICAgW3RpdGxlXT1cIidBbGwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgIGRhdGEtY3k9XCJjOHktYWxhcm0tZmlsdGVyLS1hbGxcIlxuICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImFsbENoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJpc0VhY2hDaGVja2JveFNlbGVjdGVkJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cImlzSW5kZXRlcm1pbmF0ZSQgfCBhc3luY1wiXG4gICAgICAgICAgICAoY2xpY2spPVwibWFya1NldmVyaXRpZXNBc1RvdWNoZWQoKVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgPGlcbiAgICAgICAgICAgIGNsYXNzPVwic3RhdHVzIHN0cm9rZWQtaWNvbiBtLWwtOCBpY29uLTIwXCJcbiAgICAgICAgICAgIFtjOHlJY29uXT1cIidiZWxsJ1wiXG4gICAgICAgICAgPjwvaT5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm0tbC04XCI+e3sgJ0FsbCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICA8L2xpPlxuICAgICAgPGxpXG4gICAgICAgIGNsYXNzPVwicC1sLTE2IHAtci0xNiBwLXQtNCBwLWItNCBkLWZsZXggYS1pLWNlbnRlclwiXG4gICAgICAgICpuZ0Zvcj1cImxldCBzZXZlcml0eSBvZiBzZXZlcml0aWVzTGlzdFwiXG4gICAgICA+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgIGNsYXNzPVwiYzh5LWNoZWNrYm94IGQtZmxleCBhLWktY2VudGVyXCJcbiAgICAgICAgICBbdGl0bGVdPVwiU0VWRVJJVFlfTEFCRUxTW3NldmVyaXR5XSB8IHRyYW5zbGF0ZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLWN5XT1cIidjOHktYWxhcm0tZmlsdGVyLS0nICsgc2V2ZXJpdHlcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJzZXZlcml0eVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwic2V2ZXJpdHlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm1hcmtTZXZlcml0aWVzQXNUb3VjaGVkKClcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgIDxpXG4gICAgICAgICAgICBjbGFzcz1cInN0YXR1cyBzdHJva2VkLWljb24gbS1sLTggaWNvbi0yMFwiXG4gICAgICAgICAgICBbYzh5SWNvbl09XCJzZXZlcml0eSB8IEFsYXJtU2V2ZXJpdHlUb0ljb25cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwic2V2ZXJpdHkgfCBsb3dlcmNhc2VcIlxuICAgICAgICAgID48L2k+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtLWwtOFwiPnt7IFNFVkVSSVRZX0xBQkVMU1tzZXZlcml0eV0gfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwhLS0gYmFkZ2UgLS0+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImJhZGdlIGJhZGdlLWluZm8gbS1sLWF1dG9cIlxuICAgICAgICAgICpuZ0lmPVwiYWxhcm1Db3VudHNbc2V2ZXJpdHldIHx8IGFsYXJtQ291bnRzW3NldmVyaXR5XSA9PT0gMFwiXG4gICAgICAgID5cbiAgICAgICAgICA8aVxuICAgICAgICAgICAgY2xhc3M9XCJpY29uLXNwaW5cIlxuICAgICAgICAgICAgW2M4eUljb25dPVwiJ2NpcmNsZS1vLW5vdGNoJ1wiXG4gICAgICAgICAgICAqbmdJZj1cImNvdW50TG9hZGluZ1wiXG4gICAgICAgICAgPjwvaT5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCIhY291bnRMb2FkaW5nXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtY3ldPVwic2V2ZXJpdHkgKyAnLWJhZGdlJ1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgYWxhcm1Db3VudHNbc2V2ZXJpdHldIDwgOTkgPyBhbGFybUNvdW50c1tzZXZlcml0eV0gOiAnOTkrJyB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2xpPlxuICAgICAgPGxpIGNsYXNzPVwicC1sLTE2IHAtci0xNiBwLXQtNCBwLWItNCBkLWZsZXggYS1pLWNlbnRlciBzZXBhcmF0b3ItdG9wXCI+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgIGNsYXNzPVwiYzh5LXN3aXRjaFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInU2hvdyBjbGVhcmVkIGFsYXJtcycgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ2M4eS1hbGFybXMtZmlsdGVyLS1jbGVhcmVkJ1wiXG4gICAgICAgID5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAjc2hvd0NsZWFyZWRDaGVja2JveFxuICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2hvd0NsZWFyZWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm1hcmtTZXZlcml0aWVzQXNUb3VjaGVkKCk7IHVwZGF0ZUFsYXJtc0NvdW50KHNob3dDbGVhcmVkQ2hlY2tib3guY2hlY2tlZClcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIlxuICAgICAgICAgICAgdGl0bGU9XCJ7eyAnU2hvdyBjbGVhcmVkIGFsYXJtcycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICdTaG93IGNsZWFyZWQgYWxhcm1zJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvbGk+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJwLTE2IGQtZmxleCBzdGlja3ktYm90dG9tIHNlcGFyYXRvci10b3BcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ2M4eS1hbGFybXMtZmlsdGVyLS1hcHBseSdcIlxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSBmbGV4LWdyb3dcIlxuICAgICAgICAgIHRpdGxlPVwie3sgJ0FwcGx5JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cImFwcGx5RmlsdGVycyhmYWxzZSk7IGNsb3NlRHJvcGRvd24oKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cInNob3VsZERpc2FibGVBcHBseUJ1dHRvbiQgfCBhc3luY1wiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAnQXBwbHknIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC91bD5cbiAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm1zLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9hbGFybXMvYWxhcm1zLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi9hbGFybXMvYWxhcm1zLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUVMLFFBQVEsRUFFUixlQUFlLEVBRWhCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxZQUFZLEVBQW1CLE1BQU0scUJBQXFCLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFFTCxvQkFBb0IsRUFDcEIsdUJBQXVCLEVBRXhCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBT3pELE1BQU0sT0FBTyxxQkFBcUI7SUFnQ2hDLFlBQ1UsV0FBd0IsRUFDeEIsaUJBQW9DLEVBQ3BDLFlBQTBCLEVBQzFCLE1BQWMsRUFDZCxjQUE4QjtRQUo5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UCxlQUFlO3NCQURkLFNBQVM7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIEFsYXJtUXVlcnlGaWx0ZXIsXG4gIFNldmVyaXR5LFxuICBTZXZlcml0eUZpbHRlcixcbiAgU0VWRVJJVFlfTEFCRUxTLFxuICBTZXZlcml0eVR5cGVcbn0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBEYXRlVGltZUNvbnRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEJzRHJvcGRvd25EaXJlY3RpdmUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2Ryb3Bkb3duJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZnJvbSwgZm9ya0pvaW4sIEVNUFRZIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIGZpbmFsaXplLCBtYXAsIHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWxhcm1zVmlld1NlcnZpY2UgfSBmcm9tICcuL2FsYXJtcy12aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQWxhcm1Db3VudCxcbiAgREVGQVVMVF9BTEFSTV9DT1VOVFMsXG4gIERFRkFVTFRfU0VWRVJJVFlfVkFMVUVTLFxuICBBbGFybUxpc3RGb3JtRmlsdGVyc1xufSBmcm9tICcuL2FsYXJtcy5tb2RlbCc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1hbGFybXMtZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FsYXJtcy1maWx0ZXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFsYXJtc0ZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgc2V2ZXJpdGllc0xpc3QgPSBPYmplY3Qua2V5cyhTRVZFUklUWV9MQUJFTFMpIGFzIFNldmVyaXR5VHlwZVtdO1xuXG4gIEBJbnB1dCgpXG4gIGNvbnRleHRTb3VyY2VJZDogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbDtcblxuICAvKipcbiAgICogRXZlbnRFbWl0dGVyIHRvIG5vdGlmeSB3aGVuIGZpbHRlcnMgaGF2ZSBiZWVuIGFwcGxpZWQuXG4gICAqIEVtaXRzIGEgYEFsYXJtTGlzdEZvcm1GaWx0ZXJzYCBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBmaWx0ZXIgY3JpdGVyaWEgYXBwbGllZCBieSB0aGUgdXNlci5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBvbkZpbHRlckFwcGxpZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEFsYXJtTGlzdEZvcm1GaWx0ZXJzPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2ZpbHRlcnNEcm9wZG93bicpXG4gIGZpbHRlcnNEcm9wZG93bjogQnNEcm9wZG93bkRpcmVjdGl2ZTtcblxuICBmb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKERFRkFVTFRfU0VWRVJJVFlfVkFMVUVTKTtcbiAgY2hpcHM6IFNldmVyaXR5VHlwZVtdID0gW107XG4gIGlzSW5kZXRlcm1pbmF0ZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGNvdW50TG9hZGluZzogYm9vbGVhbjtcbiAgc2hvd0NsZWFyZWQgPSBmYWxzZTtcbiAgYWxhcm1Db3VudHM6IEFsYXJtQ291bnQgPSBERUZBVUxUX0FMQVJNX0NPVU5UUztcbiAgc2VsZWN0ZWREYXRlczogRGF0ZVRpbWVDb250ZXh0O1xuICBzaG91bGREaXNhYmxlQXBwbHlCdXR0b24kOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBpc0VhY2hDaGVja2JveFNlbGVjdGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IFNFVkVSSVRZX0xBQkVMUyA9IFNFVkVSSVRZX0xBQkVMUztcbiAgcHJpdmF0ZSBpc05vbmVDaGVja2JveFNlbGVjdGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcml2YXRlIHNldmVyaXRpZXNUb3VjaGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcml2YXRlIGN1cnJlbnRGb3JtR3JvdXBWYWx1ZXMgPSB0aGlzLmZvcm1Hcm91cC52YWx1ZTtcbiAgcHJpdmF0ZSBjdXJyZW50U2hvd0NsZWFyZWRWYWx1ZTogYm9vbGVhbjtcbiAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBhbGFybXNWaWV3U2VydmljZTogQWxhcm1zVmlld1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1zLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgIHRoaXMuc2hvd0NsZWFyZWQgPSBwYXJhbXMuc2hvd0NsZWFyZWQgPT09ICd0cnVlJztcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnNldFZhbHVlKHtcbiAgICAgICAgW1NldmVyaXR5LkNSSVRJQ0FMXTogcGFyYW1zW1NldmVyaXR5LkNSSVRJQ0FMXSA9PT0gJ3RydWUnLFxuICAgICAgICBbU2V2ZXJpdHkuTUFKT1JdOiBwYXJhbXNbU2V2ZXJpdHkuTUFKT1JdID09PSAndHJ1ZScsXG4gICAgICAgIFtTZXZlcml0eS5NSU5PUl06IHBhcmFtc1tTZXZlcml0eS5NSU5PUl0gPT09ICd0cnVlJyxcbiAgICAgICAgW1NldmVyaXR5LldBUk5JTkddOiBwYXJhbXNbU2V2ZXJpdHkuV0FSTklOR10gPT09ICd0cnVlJ1xuICAgICAgfSk7XG4gICAgICBpZiAocGFyYW1zLmxhc3RVcGRhdGVkRnJvbSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZXMgPSBbbmV3IERhdGUocGFyYW1zLmxhc3RVcGRhdGVkRnJvbSksIG5ldyBEYXRlKHBhcmFtcy5jcmVhdGVkVG8pXTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYXBwbHlGaWx0ZXJzKHRydWUsIGZhbHNlKTtcbiAgICB9KTtcbiAgICB0aGlzLnRyYWNrQ2hlY2tib3hTdGF0ZVdpdGhGb3JtQ2hhbmdlcygpO1xuICAgIHRoaXMuY3VycmVudFNob3dDbGVhcmVkVmFsdWUgPSB0aGlzLnNob3dDbGVhcmVkO1xuICAgIHRoaXMudXBkYXRlQ2hpcHNBbmREZWZhdWx0VmFsdWVzKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJzRHJvcGRvd24uaXNPcGVuQ2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCksIGZpbHRlcihCb29sZWFuKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGRhdGVBbGFybXNDb3VudCgpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIGFsbENoYW5nZWQoc2VsZWN0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHtcbiAgICAgIFtTZXZlcml0eS5DUklUSUNBTF06IHNlbGVjdGVkLFxuICAgICAgW1NldmVyaXR5Lk1BSk9SXTogc2VsZWN0ZWQsXG4gICAgICBbU2V2ZXJpdHkuTUlOT1JdOiBzZWxlY3RlZCxcbiAgICAgIFtTZXZlcml0eS5XQVJOSU5HXTogc2VsZWN0ZWRcbiAgICB9IGFzIFNldmVyaXR5RmlsdGVyKTtcbiAgfVxuXG4gIGFwcGx5RmlsdGVycyhlbWl0ID0gdHJ1ZSwgbmF2aWdhdGUgPSB0cnVlKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVDaGlwc0FuZERlZmF1bHRWYWx1ZXMoKTtcbiAgICBjb25zdCBjb21iaW5lZEZvcm1FdmVudDogQWxhcm1MaXN0Rm9ybUZpbHRlcnMgPSB7XG4gICAgICBzaG93Q2xlYXJlZDogdGhpcy5zaG93Q2xlYXJlZCxcbiAgICAgIHNldmVyaXR5T3B0aW9uczogdGhpcy5mb3JtR3JvdXAudmFsdWUsXG4gICAgICBzZWxlY3RlZERhdGVzOiB0aGlzLnNlbGVjdGVkRGF0ZXNcbiAgICB9O1xuICAgIGlmIChlbWl0KSB7XG4gICAgICB0aGlzLm9uRmlsdGVyQXBwbGllZC5lbWl0KGNvbWJpbmVkRm9ybUV2ZW50KTtcbiAgICB9XG4gICAgdGhpcy5jdXJyZW50Rm9ybUdyb3VwVmFsdWVzID0gdGhpcy5mb3JtR3JvdXAudmFsdWU7XG4gICAgdGhpcy5jdXJyZW50U2hvd0NsZWFyZWRWYWx1ZSA9IHRoaXMuc2hvd0NsZWFyZWQ7XG5cbiAgICBpZiAobmF2aWdhdGUpIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgc2hvd0NsZWFyZWQ6IGNvbWJpbmVkRm9ybUV2ZW50LnNob3dDbGVhcmVkLFxuICAgICAgICAgIC4uLmNvbWJpbmVkRm9ybUV2ZW50LnNldmVyaXR5T3B0aW9ucyxcbiAgICAgICAgICBsYXN0VXBkYXRlZEZyb206IGNvbWJpbmVkRm9ybUV2ZW50LnNlbGVjdGVkRGF0ZXM/LlswXT8udG9JU09TdHJpbmcoKSxcbiAgICAgICAgICBjcmVhdGVkVG86IGNvbWJpbmVkRm9ybUV2ZW50LnNlbGVjdGVkRGF0ZXM/LlsxXT8udG9JU09TdHJpbmcoKVxuICAgICAgICB9LFxuICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBkZXNlbGVjdENoaXAoY2hpcDogU2V2ZXJpdHlUeXBlKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZSh7XG4gICAgICAuLi50aGlzLmZvcm1Hcm91cC52YWx1ZSxcbiAgICAgIFtjaGlwXTogZmFsc2VcbiAgICB9KTtcbiAgICB0aGlzLmFwcGx5RmlsdGVycyhmYWxzZSk7XG4gICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gIH1cblxuICBjbG9zZURyb3Bkb3duKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZpbHRlcnNEcm9wZG93bi5pc09wZW4pIHtcbiAgICAgIHRoaXMuZmlsdGVyc0Ryb3Bkb3duLmlzT3BlbiA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0Rm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1Hcm91cC5yZXNldCh0aGlzLmN1cnJlbnRGb3JtR3JvdXBWYWx1ZXMpO1xuICAgIHRoaXMuc2V2ZXJpdGllc1RvdWNoZWQkLm5leHQoZmFsc2UpO1xuICAgIHRoaXMuc2hvd0NsZWFyZWQgPSB0aGlzLmN1cnJlbnRTaG93Q2xlYXJlZFZhbHVlO1xuICB9XG5cbiAgbWFya1NldmVyaXRpZXNBc1RvdWNoZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXZlcml0aWVzVG91Y2hlZCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBc3luY2hyb25vdXNseSBmZXRjaGVzIGFuZCB1cGRhdGVzIHRoZSBjb3VudCBvZiBhbGFybXMgZm9yIGVhY2ggc2V2ZXJpdHkgbGV2ZWwuXG4gICAqXG4gICAqIEBwYXJhbSBzaG93Q2xlYXJlZCAtIFdoZXRoZXIgdG8gaW5jbHVkZSBjbGVhcmVkIGFsYXJtcyBpbiB0aGUgY291bnQuXG4gICAqIERlZmF1bHRzIHRvIHRoZSBjdXJyZW50IHZhbHVlIG9mIGB0aGlzLmN1cnJlbnRTaG93Q2xlYXJlZFZhbHVlYC5cbiAgICogQHJldHVybnMgQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBhbGwgYWxhcm0gY291bnRzIGhhdmUgYmVlbiBmZXRjaGVkLFxuICAgKiBvciByZWplY3RzIHdpdGggYW4gZXJyb3IgaWYgdGhlIG9wZXJhdGlvbiBmYWlscy5cbiAgICogQHRocm93cyBXaWxsIHRocm93IGFuIGVycm9yIGlmIGFueSBvZiB0aGUgYWxhcm0gY291bnQgZmV0Y2hpbmcgcHJvbWlzZXMgcmVqZWN0LlxuICAgKi9cbiAgYXN5bmMgdXBkYXRlQWxhcm1zQ291bnQoc2hvd0NsZWFyZWQgPSB0aGlzLmN1cnJlbnRTaG93Q2xlYXJlZFZhbHVlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jb3VudExvYWRpbmcgPSB0cnVlO1xuICAgIGNvbnN0IGFsYXJtRmlsdGVyOiBBbGFybVF1ZXJ5RmlsdGVyIHwgbnVsbCA9IHRoaXMuY29udGV4dFNvdXJjZUlkXG4gICAgICA/IHtcbiAgICAgICAgICBzb3VyY2U6IHRoaXMuY29udGV4dFNvdXJjZUlkLFxuICAgICAgICAgIHdpdGhTb3VyY2VBc3NldHM6IHRydWUsXG4gICAgICAgICAgd2l0aFNvdXJjZURldmljZXM6IHRydWVcbiAgICAgICAgfVxuICAgICAgOiBudWxsO1xuICAgIGNvbnN0IG9ic2VydmFibGVzOiBSZWNvcmQ8U2V2ZXJpdHlUeXBlLCBPYnNlcnZhYmxlPG51bWJlcj4+ID0gdGhpcy5zZXZlcml0aWVzTGlzdC5yZWR1Y2UoXG4gICAgICAoYWNjLCBzZXZlcml0eSkgPT4ge1xuICAgICAgICBhY2Nbc2V2ZXJpdHldID0gZnJvbShcbiAgICAgICAgICB0aGlzLmFsYXJtc1ZpZXdTZXJ2aWNlLmdldEFsYXJtc0NvdW50QnlTZXZlcml0eShzZXZlcml0eSwgc2hvd0NsZWFyZWQsIGFsYXJtRmlsdGVyKVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgQ1JJVElDQUw6IG51bGwsXG4gICAgICAgIE1BSk9SOiBudWxsLFxuICAgICAgICBNSU5PUjogbnVsbCxcbiAgICAgICAgV0FSTklORzogbnVsbFxuICAgICAgfVxuICAgICk7XG4gICAgZm9ya0pvaW4ob2JzZXJ2YWJsZXMpXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuYWxhcm1Db3VudHMgPSB7fSBhcyBBbGFybUNvdW50O1xuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXJyKTtcbiAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgIH0pLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5jb3VudExvYWRpbmcgPSBmYWxzZSkpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChhbGFybUNvdW50czogQWxhcm1Db3VudCkgPT4gKHRoaXMuYWxhcm1Db3VudHMgPSBhbGFybUNvdW50cykpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVGb3JtVmFsdWVXaXRoQ2hhbmdlc1N0cmVhbSgpOiBPYnNlcnZhYmxlPFNldmVyaXR5RmlsdGVyPiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLmZvcm1Hcm91cC52YWx1ZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFja0NoZWNrYm94U3RhdGVXaXRoRm9ybUNoYW5nZXMoKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybVZhbHVlJCA9IHRoaXMuY3JlYXRlRm9ybVZhbHVlV2l0aENoYW5nZXNTdHJlYW0oKTtcbiAgICB0aGlzLmlzRWFjaENoZWNrYm94U2VsZWN0ZWQkID0gdGhpcy5jcmVhdGVBbGxTZWxlY3RlZFN0cmVhbShmb3JtVmFsdWUkKTtcbiAgICB0aGlzLmlzSW5kZXRlcm1pbmF0ZSQgPSB0aGlzLmNyZWF0ZUluZGV0ZXJtaW5hdGVTdHJlYW0oZm9ybVZhbHVlJCk7XG4gICAgdGhpcy50cmFja0FsbENoZWNrYm94ZXNEaXNhYmxlZChmb3JtVmFsdWUkKTtcbiAgICB0aGlzLnNob3VsZERpc2FibGVBcHBseUJ1dHRvbiQgPSB0aGlzLmNyZWF0ZURpc2FibGVBcHBseUJ1dHRvblN0cmVhbSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVBbGxTZWxlY3RlZFN0cmVhbShmb3JtVmFsdWUkOiBPYnNlcnZhYmxlPFNldmVyaXR5RmlsdGVyPik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBmb3JtVmFsdWUkLnBpcGUobWFwKHNldmVyaXRpZXMgPT4gT2JqZWN0LnZhbHVlcyhzZXZlcml0aWVzKS5ldmVyeShCb29sZWFuKSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVJbmRldGVybWluYXRlU3RyZWFtKGZvcm1WYWx1ZSQ6IE9ic2VydmFibGU8U2V2ZXJpdHlGaWx0ZXI+KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGZvcm1WYWx1ZSQucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgc2V2ZXJpdGllcyA9PlxuICAgICAgICAgIE9iamVjdC52YWx1ZXMoc2V2ZXJpdGllcykuc29tZShCb29sZWFuKSAmJiAhT2JqZWN0LnZhbHVlcyhzZXZlcml0aWVzKS5ldmVyeShCb29sZWFuKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHRyYWNrQWxsQ2hlY2tib3hlc0Rpc2FibGVkKGZvcm1WYWx1ZSQ6IE9ic2VydmFibGU8U2V2ZXJpdHlGaWx0ZXI+KTogdm9pZCB7XG4gICAgZm9ybVZhbHVlJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHNldmVyaXRpZXMgPT4ge1xuICAgICAgY29uc3QgYXJlQWxsRGlzYWJsZWQgPSBPYmplY3QudmFsdWVzKHNldmVyaXRpZXMpLmV2ZXJ5KHZhbHVlID0+ICF2YWx1ZSk7XG4gICAgICB0aGlzLmlzTm9uZUNoZWNrYm94U2VsZWN0ZWQkLm5leHQoYXJlQWxsRGlzYWJsZWQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVEaXNhYmxlQXBwbHlCdXR0b25TdHJlYW0oKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW3RoaXMuaXNOb25lQ2hlY2tib3hTZWxlY3RlZCQsIHRoaXMuc2V2ZXJpdGllc1RvdWNoZWQkXSkucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgKFthbGxDaGVja2JveGVzQXJlRGlzYWJsZWQsIHNldmVyaXRpZXNUb3VjaGVkXSkgPT5cbiAgICAgICAgICBhbGxDaGVja2JveGVzQXJlRGlzYWJsZWQgfHwgIXNldmVyaXRpZXNUb3VjaGVkXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ2hpcHNBbmREZWZhdWx0VmFsdWVzKCk6IHZvaWQge1xuICAgIGNvbnN0IHNldmVyaXR5RmlsdGVyID0gdGhpcy5mb3JtR3JvdXA7XG4gICAgY29uc3Qgc2V2ZWVyaXR5VmFsdWVzID0gc2V2ZXJpdHlGaWx0ZXIudmFsdWU7XG5cbiAgICB0aGlzLmNoaXBzID0gT2JqZWN0LmtleXMoc2V2ZWVyaXR5VmFsdWVzKS5maWx0ZXIoa2V5ID0+IHNldmVlcml0eVZhbHVlc1trZXldKSBhcyBTZXZlcml0eVR5cGVbXTtcbiAgICBjb25zdCBhbGxDaGlwc1JlbW92ZWQgPSB0aGlzLmNoaXBzLmxlbmd0aCA9PT0gMDtcbiAgICBpZiAoYWxsQ2hpcHNSZW1vdmVkKSB7XG4gICAgICBjb25zdCBkZWZhdWx0VmFsdWVzID0gREVGQVVMVF9TRVZFUklUWV9WQUxVRVM7XG4gICAgICBzZXZlcml0eUZpbHRlci5zZXRWYWx1ZShkZWZhdWx0VmFsdWVzKTtcbiAgICAgIHRoaXMuY2hpcHMgPSBPYmplY3Qua2V5cyhkZWZhdWx0VmFsdWVzKSBhcyBTZXZlcml0eVR5cGVbXTtcbiAgICB9XG4gIH1cbn1cbiIsIjxmb3JtXG4gIGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXJcIlxuICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cImRyb3Bkb3duXCJcbiAgICB0aXRsZT1cInt7ICdGaWx0ZXIgYnkgc2V2ZXJpdHknIHwgdHJhbnNsYXRlIH19XCJcbiAgICBkcm9wZG93blxuICAgICNmaWx0ZXJzRHJvcGRvd249XCJicy1kcm9wZG93blwiXG4gICAgW2Nka1RyYXBGb2N1c109XCJmaWx0ZXJzRHJvcGRvd24uaXNPcGVuXCJcbiAgICBbaW5zaWRlQ2xpY2tdPVwidHJ1ZVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgZml0LXdcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZC1mbGV4IGEtaS1jZW50ZXIgaW5uZXItc2Nyb2xsXCIgc3R5bGU9XCJtaW4td2lkdGg6IDEwNHB4OyBwYWRkaW5nLXRvcDogMDsgcGFkZGluZy1ib3R0b206IDA7XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjaGlwcy5sZW5ndGggIT09IHNldmVyaXRpZXNMaXN0Lmxlbmd0aDsgZWxzZSBhbGxBbGFybXNcIj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJ0YWcgdGFnLS1pbmZvIGNoaXBcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1jeV09XCInYzh5LWFsYXJtcy1maWx0ZXItLWNoaXAtJyArIGNoaXBcIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNoaXAgb2YgY2hpcHNcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXhzIGJ0bi1jbGVhbiB0ZXh0LTEwXCJcbiAgICAgICAgICAgICAgZGF0YS1jeT1cImM4eS1hbGFybXMtZmlsdGVyLS1yZW1vdmUtY2hpcFwiXG4gICAgICAgICAgICAgIHRpdGxlPVwie3sgJ1JlbW92ZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImRlc2VsZWN0Q2hpcChjaGlwKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgYzh5SWNvbj1cInRpbWVzXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBjbGFzcz1cInN0YXR1cyBzdHJva2VkLWljb24gaWNvbi0xMlwiXG4gICAgICAgICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ2M4eS1hbGFybXMtZmlsdGVyLS1pY29uLScgKyBjaGlwXCJcbiAgICAgICAgICAgICAgW2M4eUljb25dPVwiY2hpcCB8IEFsYXJtU2V2ZXJpdHlUb0ljb25cIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJjaGlwIHwgbG93ZXJjYXNlXCJcbiAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICB7eyBTRVZFUklUWV9MQUJFTFNbY2hpcF0gfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2FsbEFsYXJtcz5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIiB0aXRsZT1cInt7ICdBbGwgc2V2ZXJpdGllcycgfCB0cmFuc2xhdGUgfX1cIj5cbiAgICAgICAgICAgIHt7ICdBbGwgc2V2ZXJpdGllcycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1idG4gaW5wdXQtZ3JvdXAtYnRuLS1sYXN0XCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImJ0bi1kZWZhdWx0IGJ0biBidG4tLWNhcmV0XCJcbiAgICAgICAgICB0aXRsZT1cInt7IGNoaXBzIHwgQWxhcm1TZXZlcml0aWVzVG9UaXRsZSB9fVwiXG4gICAgICAgICAgZGF0YS1jeT1cImM4eS1hbGFybXMtZmlsdGVyXCJcbiAgICAgICAgICBkcm9wZG93blRvZ2dsZVxuICAgICAgICAgIChjbGljayk9XCJyZXNldEZvcm0oKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImNhcmV0XCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDx1bFxuICAgICAgY2xhc3M9XCJkcm9wZG93bi1tZW51IGRyb3Bkb3duLW1lbnUtYWN0aW9uLWJhclwiXG4gICAgICAqZHJvcGRvd25NZW51XG4gICAgPlxuICAgICAgPGxpIGNsYXNzPVwicC1sLTE2IHAtci0xNiBwLXQtNCBwLWItNCBkLWZsZXggYS1pLWNlbnRlciBzdGlja3ktdG9wIHNlcGFyYXRvci1ib3R0b21cIj5cbiAgICAgICAgPGxhYmVsXG4gICAgICAgICAgY2xhc3M9XCJjOHktY2hlY2tib3ggZC1mbGV4IGEtaS1jZW50ZXJcIlxuICAgICAgICAgIFt0aXRsZV09XCInQWxsJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICBkYXRhLWN5PVwiYzh5LWFsYXJtcy1maWx0ZXItLWFsbFwiXG4gICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiYWxsQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImlzRWFjaENoZWNrYm94U2VsZWN0ZWQkIHwgYXN5bmNcIlxuICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwiaXNJbmRldGVybWluYXRlJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIChjbGljayk9XCJtYXJrU2V2ZXJpdGllc0FzVG91Y2hlZCgpXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICA8aVxuICAgICAgICAgICAgY2xhc3M9XCJzdGF0dXMgc3Ryb2tlZC1pY29uIG0tbC04IGljb24tMjBcIlxuICAgICAgICAgICAgW2M4eUljb25dPVwiJ2JlbGwnXCJcbiAgICAgICAgICA+PC9pPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibS1sLThcIj57eyAnQWxsJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvbGk+XG4gICAgICA8bGlcbiAgICAgICAgY2xhc3M9XCJwLWwtMTYgcC1yLTE2IHAtdC00IHAtYi00IGQtZmxleCBhLWktY2VudGVyXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IHNldmVyaXR5IG9mIHNldmVyaXRpZXNMaXN0XCJcbiAgICAgID5cbiAgICAgICAgPGxhYmVsXG4gICAgICAgICAgY2xhc3M9XCJjOHktY2hlY2tib3ggZC1mbGV4IGEtaS1jZW50ZXJcIlxuICAgICAgICAgIFt0aXRsZV09XCJTRVZFUklUWV9MQUJFTFNbc2V2ZXJpdHldIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ2M4eS1hbGFybXMtZmlsdGVyLS0nICsgc2V2ZXJpdHlcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJzZXZlcml0eVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwic2V2ZXJpdHlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm1hcmtTZXZlcml0aWVzQXNUb3VjaGVkKClcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgIDxpXG4gICAgICAgICAgICBjbGFzcz1cInN0YXR1cyBzdHJva2VkLWljb24gbS1sLTggaWNvbi0yMFwiXG4gICAgICAgICAgICBbYzh5SWNvbl09XCJzZXZlcml0eSB8IEFsYXJtU2V2ZXJpdHlUb0ljb25cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwic2V2ZXJpdHkgfCBsb3dlcmNhc2VcIlxuICAgICAgICAgID48L2k+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtLWwtOFwiPnt7IFNFVkVSSVRZX0xBQkVMU1tzZXZlcml0eV0gfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwhLS0gYmFkZ2UgLS0+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImJhZGdlIGJhZGdlLWluZm8gbS1sLWF1dG9cIlxuICAgICAgICAgICpuZ0lmPVwiYWxhcm1Db3VudHNbc2V2ZXJpdHldIHx8IGFsYXJtQ291bnRzW3NldmVyaXR5XSA9PT0gMFwiXG4gICAgICAgID5cbiAgICAgICAgICA8aVxuICAgICAgICAgICAgY2xhc3M9XCJpY29uLXNwaW5cIlxuICAgICAgICAgICAgW2M4eUljb25dPVwiJ2NpcmNsZS1vLW5vdGNoJ1wiXG4gICAgICAgICAgICAqbmdJZj1cImNvdW50TG9hZGluZ1wiXG4gICAgICAgICAgPjwvaT5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCIhY291bnRMb2FkaW5nXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ2M4eS1hbGFybXMtZmlsdGVyLS0nICsgc2V2ZXJpdHkgKyAnLWJhZGdlJ1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgYWxhcm1Db3VudHNbc2V2ZXJpdHldIDwgOTkgPyBhbGFybUNvdW50c1tzZXZlcml0eV0gOiAnOTkrJyB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2xpPlxuICAgICAgPGxpIGNsYXNzPVwicC1sLTE2IHAtci0xNiBwLXQtNCBwLWItNCBkLWZsZXggYS1pLWNlbnRlciBzZXBhcmF0b3ItdG9wXCI+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgIGNsYXNzPVwiYzh5LXN3aXRjaFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInU2hvdyBjbGVhcmVkIGFsYXJtcycgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ2M4eS1hbGFybXMtZmlsdGVyLS1jbGVhcmVkJ1wiXG4gICAgICAgID5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAjc2hvd0NsZWFyZWRDaGVja2JveFxuICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2hvd0NsZWFyZWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm1hcmtTZXZlcml0aWVzQXNUb3VjaGVkKCk7IHVwZGF0ZUFsYXJtc0NvdW50KHNob3dDbGVhcmVkQ2hlY2tib3guY2hlY2tlZClcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIlxuICAgICAgICAgICAgdGl0bGU9XCJ7eyAnU2hvdyBjbGVhcmVkIGFsYXJtcycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICdTaG93IGNsZWFyZWQgYWxhcm1zJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvbGk+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJwLTE2IGQtZmxleCBzdGlja3ktYm90dG9tIHNlcGFyYXRvci10b3BcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGRhdGEtY3k9XCJjOHktYWxhcm1zLWZpbHRlci0tYXBwbHlcIlxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSBmbGV4LWdyb3dcIlxuICAgICAgICAgIHRpdGxlPVwie3sgJ0FwcGx5JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cImFwcGx5RmlsdGVycyhmYWxzZSk7IGNsb3NlRHJvcGRvd24oKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cInNob3VsZERpc2FibGVBcHBseUJ1dHRvbiQgfCBhc3luY1wiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAnQXBwbHknIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC91bD5cbiAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=
|
|
@@ -23,14 +23,14 @@ export class AlarmsIconComponent {
|
|
|
23
23
|
this.typeFilters.find(filter => filter.filters.type === this.alarm.type)?.color || 'none';
|
|
24
24
|
}
|
|
25
25
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AlarmsIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AlarmsIconComponent, selector: "c8y-alarms-icon", inputs: { alarm: "alarm", typeFilters: "typeFilters" }, ngImport: i0, template: "<button\n class=\"btn-clean severity\"\n [attr.aria-label]=\"\n alarmSeverityLabel | translate: { alarmSeverity: alarm.severity | AlarmSeverityToLabel }\n \"\n [tooltip]=\"\n alarmSeverityLabel | translate: { alarmSeverity: alarm.severity | AlarmSeverityToLabel }\n \"\n placement=\"right\"\n container=\"body\"\n type=\"button\"\n (click)=\"$event.stopPropagation()\"\n [delay]=\"500\"\n>\n <i\n class=\"status stroked-icon\"\n [c8yIcon]=\"alarm.severity | AlarmSeverityToIcon\"\n [ngClass]=\"alarm.severity | lowercase\"\n ></i>\n</button>\n<button\n class=\"btn-clean status\"\n [ngStyle]=\"{ 'background-color': iconBackgroundColor }\"\n [attr.aria-label]=\"\n alarmStatusLabel | translate: { alarmStatus: alarm.status | AlarmStatusToLabel }\n \"\n [tooltip]=\"\n (alarmStatusLabel | translate: { alarmStatus: alarm.status | AlarmStatusToLabel }) +\n '\\n' +\n (alarmStatusType | translate: { alarmType: alarm.type })\n \"\n placement=\"right\"\n container=\"body\"\n type=\"button\"\n [ngClass]=\"{ 'circle-icon-wrapper': isFilterApplied }\"\n (click)=\"$event.stopPropagation()\"\n [delay]=\"500\"\n>\n <i\n [c8yIcon]=\"alarm.status | AlarmStatusToIcon\"\n [ngClass]=\"{ 'stroked-icon': isFilterApplied }\"\n ></i>\n</button>\n", dependencies: [{ kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "pipe", type: i2.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i5.AlarmSeverityToIconPipe, name: "AlarmSeverityToIcon" }, { kind: "pipe", type: i6.AlarmStatusToIconPipe, name: "AlarmStatusToIcon" }, { kind: "pipe", type: i7.AlarmSeverityToLabelPipe, name: "AlarmSeverityToLabel" }, { kind: "pipe", type: i8.AlarmStatusToLabelPipe, name: "AlarmStatusToLabel" }] }); }
|
|
26
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AlarmsIconComponent, selector: "c8y-alarms-icon", inputs: { alarm: "alarm", typeFilters: "typeFilters" }, ngImport: i0, template: "<button\n class=\"btn-clean severity\"\n [attr.aria-label]=\"\n alarmSeverityLabel | translate: { alarmSeverity: alarm.severity | AlarmSeverityToLabel }\n \"\n [tooltip]=\"\n alarmSeverityLabel | translate: { alarmSeverity: alarm.severity | AlarmSeverityToLabel }\n \"\n placement=\"right\"\n container=\"body\"\n type=\"button\"\n (click)=\"$event.stopPropagation()\"\n [delay]=\"500\"\n>\n <i\n class=\"status stroked-icon\"\n [c8yIcon]=\"alarm.severity | AlarmSeverityToIcon\"\n [ngClass]=\"alarm.severity | lowercase\"\n ></i>\n</button>\n<button\n class=\"btn-clean status\"\n [ngStyle]=\"{ 'background-color': iconBackgroundColor }\"\n [attr.aria-label]=\"\n alarmStatusLabel | translate: { alarmStatus: alarm.status | AlarmStatusToLabel }\n \"\n [tooltip]=\"\n (alarmStatusLabel | translate: { alarmStatus: alarm.status | AlarmStatusToLabel }) +\n '\\n' +\n (alarmStatusType | translate: { alarmType: alarm.type })\n \"\n placement=\"right\"\n container=\"body\"\n type=\"button\"\n [ngClass]=\"{ 'circle-icon-wrapper': isFilterApplied }\"\n data-cy=\"c8y-alarms-icon--status-icon\"\n (click)=\"$event.stopPropagation()\"\n [delay]=\"500\"\n>\n <i\n [c8yIcon]=\"alarm.status | AlarmStatusToIcon\"\n [ngClass]=\"{ 'stroked-icon': isFilterApplied }\"\n ></i>\n</button>\n", dependencies: [{ kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "pipe", type: i2.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i5.AlarmSeverityToIconPipe, name: "AlarmSeverityToIcon" }, { kind: "pipe", type: i6.AlarmStatusToIconPipe, name: "AlarmStatusToIcon" }, { kind: "pipe", type: i7.AlarmSeverityToLabelPipe, name: "AlarmSeverityToLabel" }, { kind: "pipe", type: i8.AlarmStatusToLabelPipe, name: "AlarmStatusToLabel" }] }); }
|
|
27
27
|
}
|
|
28
28
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AlarmsIconComponent, decorators: [{
|
|
29
29
|
type: Component,
|
|
30
|
-
args: [{ selector: 'c8y-alarms-icon', template: "<button\n class=\"btn-clean severity\"\n [attr.aria-label]=\"\n alarmSeverityLabel | translate: { alarmSeverity: alarm.severity | AlarmSeverityToLabel }\n \"\n [tooltip]=\"\n alarmSeverityLabel | translate: { alarmSeverity: alarm.severity | AlarmSeverityToLabel }\n \"\n placement=\"right\"\n container=\"body\"\n type=\"button\"\n (click)=\"$event.stopPropagation()\"\n [delay]=\"500\"\n>\n <i\n class=\"status stroked-icon\"\n [c8yIcon]=\"alarm.severity | AlarmSeverityToIcon\"\n [ngClass]=\"alarm.severity | lowercase\"\n ></i>\n</button>\n<button\n class=\"btn-clean status\"\n [ngStyle]=\"{ 'background-color': iconBackgroundColor }\"\n [attr.aria-label]=\"\n alarmStatusLabel | translate: { alarmStatus: alarm.status | AlarmStatusToLabel }\n \"\n [tooltip]=\"\n (alarmStatusLabel | translate: { alarmStatus: alarm.status | AlarmStatusToLabel }) +\n '\\n' +\n (alarmStatusType | translate: { alarmType: alarm.type })\n \"\n placement=\"right\"\n container=\"body\"\n type=\"button\"\n [ngClass]=\"{ 'circle-icon-wrapper': isFilterApplied }\"\n (click)=\"$event.stopPropagation()\"\n [delay]=\"500\"\n>\n <i\n [c8yIcon]=\"alarm.status | AlarmStatusToIcon\"\n [ngClass]=\"{ 'stroked-icon': isFilterApplied }\"\n ></i>\n</button>\n" }]
|
|
30
|
+
args: [{ selector: 'c8y-alarms-icon', template: "<button\n class=\"btn-clean severity\"\n [attr.aria-label]=\"\n alarmSeverityLabel | translate: { alarmSeverity: alarm.severity | AlarmSeverityToLabel }\n \"\n [tooltip]=\"\n alarmSeverityLabel | translate: { alarmSeverity: alarm.severity | AlarmSeverityToLabel }\n \"\n placement=\"right\"\n container=\"body\"\n type=\"button\"\n (click)=\"$event.stopPropagation()\"\n [delay]=\"500\"\n>\n <i\n class=\"status stroked-icon\"\n [c8yIcon]=\"alarm.severity | AlarmSeverityToIcon\"\n [ngClass]=\"alarm.severity | lowercase\"\n ></i>\n</button>\n<button\n class=\"btn-clean status\"\n [ngStyle]=\"{ 'background-color': iconBackgroundColor }\"\n [attr.aria-label]=\"\n alarmStatusLabel | translate: { alarmStatus: alarm.status | AlarmStatusToLabel }\n \"\n [tooltip]=\"\n (alarmStatusLabel | translate: { alarmStatus: alarm.status | AlarmStatusToLabel }) +\n '\\n' +\n (alarmStatusType | translate: { alarmType: alarm.type })\n \"\n placement=\"right\"\n container=\"body\"\n type=\"button\"\n [ngClass]=\"{ 'circle-icon-wrapper': isFilterApplied }\"\n data-cy=\"c8y-alarms-icon--status-icon\"\n (click)=\"$event.stopPropagation()\"\n [delay]=\"500\"\n>\n <i\n [c8yIcon]=\"alarm.status | AlarmStatusToIcon\"\n [ngClass]=\"{ 'stroked-icon': isFilterApplied }\"\n ></i>\n</button>\n" }]
|
|
31
31
|
}], propDecorators: { alarm: [{
|
|
32
32
|
type: Input
|
|
33
33
|
}], typeFilters: [{
|
|
34
34
|
type: Input
|
|
35
35
|
}] } });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm1zLWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vYWxhcm1zL2FsYXJtcy1pY29uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL2FsYXJtcy9hbGFybXMtaWNvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7Ozs7QUFPOUMsTUFBTSxPQUFPLG1CQUFtQjtJQUpoQztRQVdFLHdCQUFtQixHQUFHLE1BQU0sQ0FBQztRQUM3QixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUV4Qix1QkFBa0IsR0FBRyxPQUFPLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUM5RCxxQkFBZ0IsR0FBRyxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUN4RCxvQkFBZSxHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0tBT3BEO0lBTEMsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxtQkFBbUI7WUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxNQUFNLENBQUM7SUFDOUYsQ0FBQzsrR0FsQlUsbUJBQW1CO21HQUFuQixtQkFBbUIsK0dDVGhDLDB6Q0E0Q0E7OzRGRG5DYSxtQkFBbUI7a0JBSi9CLFNBQVM7K0JBQ0UsaUJBQWlCOzhCQUszQixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJQWxhcm0gfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBbGFybURldGFpbHMgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2FsYXJtLWV2ZW50LXNlbGVjdG9yJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWFsYXJtcy1pY29uJyxcbiAgdGVtcGxhdGVVcmw6ICdhbGFybXMtaWNvbi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQWxhcm1zSWNvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIGFsYXJtOiBJQWxhcm07XG5cbiAgQElucHV0KClcbiAgdHlwZUZpbHRlcnM6IEFsYXJtRGV0YWlsc1tdO1xuXG4gIGljb25CYWNrZ3JvdW5kQ29sb3IgPSAnbm9uZSc7XG4gIGlzRmlsdGVyQXBwbGllZCA9IGZhbHNlO1xuXG4gIGFsYXJtU2V2ZXJpdHlMYWJlbCA9IGdldHRleHQoJ1NldmVyaXR5OiB7eyBhbGFybVNldmVyaXR5IH19Jyk7XG4gIGFsYXJtU3RhdHVzTGFiZWwgPSBnZXR0ZXh0KCdTdGF0dXM6IHt7IGFsYXJtU3RhdHVzIH19Jyk7XG4gIGFsYXJtU3RhdHVzVHlwZSA9IGdldHRleHQoJ1R5cGU6IHt7IGFsYXJtVHlwZSB9fScpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaXNGaWx0ZXJBcHBsaWVkID0gdGhpcy50eXBlRmlsdGVycy5sZW5ndGggPiAwO1xuICAgIHRoaXMuaWNvbkJhY2tncm91bmRDb2xvciA9XG4gICAgICB0aGlzLnR5cGVGaWx0ZXJzLmZpbmQoZmlsdGVyID0+IGZpbHRlci5maWx0ZXJzLnR5cGUgPT09IHRoaXMuYWxhcm0udHlwZSk/LmNvbG9yIHx8ICdub25lJztcbiAgfVxufVxuIiwiPGJ1dHRvblxuICBjbGFzcz1cImJ0bi1jbGVhbiBzZXZlcml0eVwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgYWxhcm1TZXZlcml0eUxhYmVsIHwgdHJhbnNsYXRlOiB7IGFsYXJtU2V2ZXJpdHk6IGFsYXJtLnNldmVyaXR5IHwgQWxhcm1TZXZlcml0eVRvTGFiZWwgfVxuICBcIlxuICBbdG9vbHRpcF09XCJcbiAgICBhbGFybVNldmVyaXR5TGFiZWwgfCB0cmFuc2xhdGU6IHsgYWxhcm1TZXZlcml0eTogYWxhcm0uc2V2ZXJpdHkgfCBBbGFybVNldmVyaXR5VG9MYWJlbCB9XG4gIFwiXG4gIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgY29udGFpbmVyPVwiYm9keVwiXG4gIHR5cGU9XCJidXR0b25cIlxuICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgW2RlbGF5XT1cIjUwMFwiXG4+XG4gIDxpXG4gICAgY2xhc3M9XCJzdGF0dXMgc3Ryb2tlZC1pY29uXCJcbiAgICBbYzh5SWNvbl09XCJhbGFybS5zZXZlcml0eSB8IEFsYXJtU2V2ZXJpdHlUb0ljb25cIlxuICAgIFtuZ0NsYXNzXT1cImFsYXJtLnNldmVyaXR5IHwgbG93ZXJjYXNlXCJcbiAgPjwvaT5cbjwvYnV0dG9uPlxuPGJ1dHRvblxuICBjbGFzcz1cImJ0bi1jbGVhbiBzdGF0dXNcIlxuICBbbmdTdHlsZV09XCJ7ICdiYWNrZ3JvdW5kLWNvbG9yJzogaWNvbkJhY2tncm91bmRDb2xvciB9XCJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICBhbGFybVN0YXR1c0xhYmVsIHwgdHJhbnNsYXRlOiB7IGFsYXJtU3RhdHVzOiBhbGFybS5zdGF0dXMgfCBBbGFybVN0YXR1c1RvTGFiZWwgfVxuICBcIlxuICBbdG9vbHRpcF09XCJcbiAgICAoYWxhcm1TdGF0dXNMYWJlbCB8IHRyYW5zbGF0ZTogeyBhbGFybVN0YXR1czogYWxhcm0uc3RhdHVzIHwgQWxhcm1TdGF0dXNUb0xhYmVsIH0pICtcbiAgICAnXFxuJyArXG4gICAgKGFsYXJtU3RhdHVzVHlwZSB8IHRyYW5zbGF0ZTogeyBhbGFybVR5cGU6IGFsYXJtLnR5cGUgfSlcbiAgXCJcbiAgcGxhY2VtZW50PVwicmlnaHRcIlxuICBjb250YWluZXI9XCJib2R5XCJcbiAgdHlwZT1cImJ1dHRvblwiXG4gIFtuZ0NsYXNzXT1cInsgJ2NpcmNsZS1pY29uLXdyYXBwZXInOiBpc0ZpbHRlckFwcGxpZWQgfVwiXG4gIGRhdGEtY3k9XCJjOHktYWxhcm1zLWljb24tLXN0YXR1cy1pY29uXCJcbiAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gIFtkZWxheV09XCI1MDBcIlxuPlxuICA8aVxuICAgIFtjOHlJY29uXT1cImFsYXJtLnN0YXR1cyB8IEFsYXJtU3RhdHVzVG9JY29uXCJcbiAgICBbbmdDbGFzc109XCJ7ICdzdHJva2VkLWljb24nOiBpc0ZpbHRlckFwcGxpZWQgfVwiXG4gID48L2k+XG48L2J1dHRvbj5cbiJdfQ==
|
|
@@ -123,11 +123,11 @@ export class AlarmsIntervalRefreshComponent {
|
|
|
123
123
|
});
|
|
124
124
|
}
|
|
125
125
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AlarmsIntervalRefreshComponent, deps: [{ token: i1.FormBuilder }, { token: i2.AlarmsViewService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
126
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AlarmsIntervalRefreshComponent, selector: "c8y-alarms-interval-refresh", inputs: { isDisabled: "isDisabled", alarmsListLoading$: "alarmsListLoading$", isIntervalToggleEnabled: "isIntervalToggleEnabled" }, outputs: { onCountdownEnded: "onCountdownEnded" }, viewQueries: [{ propertyName: "countdownIntervalComponent", first: true, predicate: CountdownIntervalComponent, descendants: true }], ngImport: i0, template: "<form\n class=\"d-flex a-i-center fit-w fit-h\"\n [formGroup]=\"toggleIntervalForm\"\n>\n <label class=\"m-b-0 m-r-8 text-normal text-muted flex-no-shrink\">\n {{ 'Auto refresh' | translate }}\n </label>\n <div class=\"input-group\">\n <label\n class=\"toggle-countdown\"\n [class.toggle-countdown-disabled]=\"isDisabled\"\n [attr.aria-label]=\"getTooltip() | translate\"\n [tooltip]=\"getTooltip() | translate\"\n placement=\"bottom\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n >\n <input\n type=\"checkbox\"\n data-cy=\"c8y-alarms-interval-toggle\"\n formControlName=\"intervalToggle\"\n (click)=\"trackUserClickOnIntervalToggle($event.target)\"\n />\n <c8y-countdown-interval\n *ngIf=\"isIntervalToggleEnabled\"\n [countdownInterval]=\"toggleIntervalForm.value.refreshInterval\"\n (countdownEnded)=\"onCountdownEnded.emit()\"\n ></c8y-countdown-interval>\n <i\n c8yIcon=\"pause\"\n *ngIf=\"!isIntervalToggleEnabled\"\n ></i>\n </label>\n <div\n class=\"c8y-select-wrapper\"\n *ngIf=\"!isDisabled\"\n >\n <select\n class=\"form-control text-12\"\n [attr.aria-label]=\"'Refresh interval in seconds' | translate\"\n [tooltip]=\"'Refresh interval in seconds' | translate\"\n placement=\"bottom\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n [container]=\"'body'\"\n formControlName=\"refreshInterval\"\n data-cy=\"c8y-alarms-interval-selector\"\n >\n <option\n [disabled]=\"isDisabled\"\n *ngFor=\"let refreshInterval of refreshIntervalsInMilliseconds\"\n [ngValue]=\"refreshInterval\"\n >\n {{ SECONDS_UNTIL_REFRESH | translate: { seconds: refreshInterval / 1000 } }}\n </option>\n </select>\n <span></span>\n </div>\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-default\"\n style=\"border-left: 0\"\n [attr.aria-label]=\"'Refresh' | translate\"\n [tooltip]=\"'Refresh' | translate\"\n placement=\"bottom\"\n type=\"button\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n [disabled]=\"isDisabled || (alarmsListLoading$ | async)\"\n (click)=\"onCountdownEnded.emit()\"\n data-cy=\"c8y-alarms-
|
|
126
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AlarmsIntervalRefreshComponent, selector: "c8y-alarms-interval-refresh", inputs: { isDisabled: "isDisabled", alarmsListLoading$: "alarmsListLoading$", isIntervalToggleEnabled: "isIntervalToggleEnabled" }, outputs: { onCountdownEnded: "onCountdownEnded" }, viewQueries: [{ propertyName: "countdownIntervalComponent", first: true, predicate: CountdownIntervalComponent, descendants: true }], ngImport: i0, template: "<form\n class=\"d-flex a-i-center fit-w fit-h\"\n [formGroup]=\"toggleIntervalForm\"\n>\n <label class=\"m-b-0 m-r-8 text-normal text-muted flex-no-shrink\">\n {{ 'Auto refresh' | translate }}\n </label>\n <div class=\"input-group\">\n <label\n class=\"toggle-countdown\"\n [class.toggle-countdown-disabled]=\"isDisabled\"\n [attr.aria-label]=\"getTooltip() | translate\"\n [tooltip]=\"getTooltip() | translate\"\n placement=\"bottom\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n data-cy=\"c8y-alarms-interval-refresh--toggle-countdown\"\n >\n <input\n type=\"checkbox\"\n data-cy=\"c8y-alarms-interval-toggle\"\n formControlName=\"intervalToggle\"\n (click)=\"trackUserClickOnIntervalToggle($event.target)\"\n />\n <c8y-countdown-interval\n *ngIf=\"isIntervalToggleEnabled\"\n [countdownInterval]=\"toggleIntervalForm.value.refreshInterval\"\n (countdownEnded)=\"onCountdownEnded.emit()\"\n ></c8y-countdown-interval>\n <i\n data-cy=\"c8y-alarms-interval-refresh--pause\"\n c8yIcon=\"pause\"\n *ngIf=\"!isIntervalToggleEnabled\"\n ></i>\n </label>\n <div\n class=\"c8y-select-wrapper\"\n *ngIf=\"!isDisabled\"\n >\n <select\n class=\"form-control text-12\"\n [attr.aria-label]=\"'Refresh interval in seconds' | translate\"\n [tooltip]=\"'Refresh interval in seconds' | translate\"\n placement=\"bottom\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n [container]=\"'body'\"\n formControlName=\"refreshInterval\"\n data-cy=\"c8y-alarms-interval-refresh--selector\"\n >\n <option\n [disabled]=\"isDisabled\"\n *ngFor=\"let refreshInterval of refreshIntervalsInMilliseconds\"\n [ngValue]=\"refreshInterval\"\n [attr.data-cy]=\"'c8y-interval-' + refreshInterval\"\n >\n {{ SECONDS_UNTIL_REFRESH | translate: { seconds: refreshInterval / 1000 } }}\n </option>\n </select>\n <span></span>\n </div>\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-default\"\n style=\"border-left: 0\"\n [attr.aria-label]=\"'Refresh' | translate\"\n [tooltip]=\"'Refresh' | translate\"\n placement=\"bottom\"\n type=\"button\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n [disabled]=\"isDisabled || (alarmsListLoading$ | async)\"\n (click)=\"onCountdownEnded.emit()\"\n data-cy=\"c8y-alarms-interval-refresh--btn\"\n >\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': alarmsListLoading$ | async }\"\n ></i>\n </button>\n </div>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.CountdownIntervalComponent, selector: "c8y-countdown-interval", inputs: ["countdownInterval"], outputs: ["countdownEnded"] }, { kind: "directive", type: i5.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
|
|
127
127
|
}
|
|
128
128
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AlarmsIntervalRefreshComponent, decorators: [{
|
|
129
129
|
type: Component,
|
|
130
|
-
args: [{ selector: 'c8y-alarms-interval-refresh', template: "<form\n class=\"d-flex a-i-center fit-w fit-h\"\n [formGroup]=\"toggleIntervalForm\"\n>\n <label class=\"m-b-0 m-r-8 text-normal text-muted flex-no-shrink\">\n {{ 'Auto refresh' | translate }}\n </label>\n <div class=\"input-group\">\n <label\n class=\"toggle-countdown\"\n [class.toggle-countdown-disabled]=\"isDisabled\"\n [attr.aria-label]=\"getTooltip() | translate\"\n [tooltip]=\"getTooltip() | translate\"\n placement=\"bottom\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n >\n <input\n type=\"checkbox\"\n data-cy=\"c8y-alarms-interval-toggle\"\n formControlName=\"intervalToggle\"\n (click)=\"trackUserClickOnIntervalToggle($event.target)\"\n />\n <c8y-countdown-interval\n *ngIf=\"isIntervalToggleEnabled\"\n [countdownInterval]=\"toggleIntervalForm.value.refreshInterval\"\n (countdownEnded)=\"onCountdownEnded.emit()\"\n ></c8y-countdown-interval>\n <i\n c8yIcon=\"pause\"\n *ngIf=\"!isIntervalToggleEnabled\"\n ></i>\n </label>\n <div\n class=\"c8y-select-wrapper\"\n *ngIf=\"!isDisabled\"\n >\n <select\n class=\"form-control text-12\"\n [attr.aria-label]=\"'Refresh interval in seconds' | translate\"\n [tooltip]=\"'Refresh interval in seconds' | translate\"\n placement=\"bottom\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n [container]=\"'body'\"\n formControlName=\"refreshInterval\"\n data-cy=\"c8y-alarms-interval-selector\"\n >\n <option\n [disabled]=\"isDisabled\"\n *ngFor=\"let refreshInterval of refreshIntervalsInMilliseconds\"\n [ngValue]=\"refreshInterval\"\n >\n {{ SECONDS_UNTIL_REFRESH | translate: { seconds: refreshInterval / 1000 } }}\n </option>\n </select>\n <span></span>\n </div>\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-default\"\n style=\"border-left: 0\"\n [attr.aria-label]=\"'Refresh' | translate\"\n [tooltip]=\"'Refresh' | translate\"\n placement=\"bottom\"\n type=\"button\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n [disabled]=\"isDisabled || (alarmsListLoading$ | async)\"\n (click)=\"onCountdownEnded.emit()\"\n data-cy=\"c8y-alarms-
|
|
130
|
+
args: [{ selector: 'c8y-alarms-interval-refresh', template: "<form\n class=\"d-flex a-i-center fit-w fit-h\"\n [formGroup]=\"toggleIntervalForm\"\n>\n <label class=\"m-b-0 m-r-8 text-normal text-muted flex-no-shrink\">\n {{ 'Auto refresh' | translate }}\n </label>\n <div class=\"input-group\">\n <label\n class=\"toggle-countdown\"\n [class.toggle-countdown-disabled]=\"isDisabled\"\n [attr.aria-label]=\"getTooltip() | translate\"\n [tooltip]=\"getTooltip() | translate\"\n placement=\"bottom\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n data-cy=\"c8y-alarms-interval-refresh--toggle-countdown\"\n >\n <input\n type=\"checkbox\"\n data-cy=\"c8y-alarms-interval-toggle\"\n formControlName=\"intervalToggle\"\n (click)=\"trackUserClickOnIntervalToggle($event.target)\"\n />\n <c8y-countdown-interval\n *ngIf=\"isIntervalToggleEnabled\"\n [countdownInterval]=\"toggleIntervalForm.value.refreshInterval\"\n (countdownEnded)=\"onCountdownEnded.emit()\"\n ></c8y-countdown-interval>\n <i\n data-cy=\"c8y-alarms-interval-refresh--pause\"\n c8yIcon=\"pause\"\n *ngIf=\"!isIntervalToggleEnabled\"\n ></i>\n </label>\n <div\n class=\"c8y-select-wrapper\"\n *ngIf=\"!isDisabled\"\n >\n <select\n class=\"form-control text-12\"\n [attr.aria-label]=\"'Refresh interval in seconds' | translate\"\n [tooltip]=\"'Refresh interval in seconds' | translate\"\n placement=\"bottom\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n [container]=\"'body'\"\n formControlName=\"refreshInterval\"\n data-cy=\"c8y-alarms-interval-refresh--selector\"\n >\n <option\n [disabled]=\"isDisabled\"\n *ngFor=\"let refreshInterval of refreshIntervalsInMilliseconds\"\n [ngValue]=\"refreshInterval\"\n [attr.data-cy]=\"'c8y-interval-' + refreshInterval\"\n >\n {{ SECONDS_UNTIL_REFRESH | translate: { seconds: refreshInterval / 1000 } }}\n </option>\n </select>\n <span></span>\n </div>\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-default\"\n style=\"border-left: 0\"\n [attr.aria-label]=\"'Refresh' | translate\"\n [tooltip]=\"'Refresh' | translate\"\n placement=\"bottom\"\n type=\"button\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n [disabled]=\"isDisabled || (alarmsListLoading$ | async)\"\n (click)=\"onCountdownEnded.emit()\"\n data-cy=\"c8y-alarms-interval-refresh--btn\"\n >\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': alarmsListLoading$ | async }\"\n ></i>\n </button>\n </div>\n </div>\n</form>\n" }]
|
|
131
131
|
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.AlarmsViewService }], propDecorators: { isDisabled: [{
|
|
132
132
|
type: Input
|
|
133
133
|
}], alarmsListLoading$: [{
|
|
@@ -140,4 +140,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
140
140
|
type: ViewChild,
|
|
141
141
|
args: [CountdownIntervalComponent]
|
|
142
142
|
}] } });
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm1zLWludGVydmFsLXJlZnJlc2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vYWxhcm1zL2FsYXJtcy1pbnRlcnZhbC1yZWZyZXNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL2FsYXJtcy9hbGFybXMtaW50ZXJ2YWwtcmVmcmVzaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7OztBQU0xRCxNQUFNLE9BQU8sOEJBQThCO0lBWXpDOzs7Ozs7Ozs7O09BVUc7SUFDSCxJQUNJLHVCQUF1QixDQUFDLEtBQWM7UUFDeEMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsdUJBQXVCLElBQUksSUFBSSxDQUFDLDZCQUE2QixDQUFDO1FBQzdGLE1BQU0sb0JBQW9CLEdBQ3hCLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFDaEIsSUFBSSxDQUFDLHVCQUF1QjtZQUM1QixJQUFJLENBQUMsNkJBQTZCO1lBQ2xDLEtBQUssQ0FBQztRQUNSLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVFOzs7V0FHRztRQUNILElB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QjtRQUNuQyxJQUFJLENBQUMsa0JBQWtCO2FBQ3BCLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQzthQUN0QixZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDM0MsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsSUFBSSxDQUFDLGtCQUFrQjthQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQ3hELFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqQixDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQTVJVSw4QkFBOEI7bUdBQTlCLDhCQUE4QixzVEErRDlCLDBCQUEwQixnRENuRnZDLHlqRkFnRkE7OzRGRDVEYSw4QkFBOEI7a0JBSjFDLFNBQVM7K0JBQ0UsNkJBQTZCO2dIQVM5QixVQUFVO3NCQUFsQixLQUFLO2dCQUtOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFjRix1QkFBdUI7c0JBRDFCLEtBQUs7Z0JBc0NOLGdCQUFnQjtzQkFEZixNQUFNO2dCQUlQLDBCQUEwQjtzQkFEekIsU0FBUzt1QkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ291bnRkb3duSW50ZXJ2YWxDb21wb25lbnQsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEFsYXJtc1ZpZXdTZXJ2aWNlIH0gZnJvbSAnLi9hbGFybXMtdmlldy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWFsYXJtcy1pbnRlcnZhbC1yZWZyZXNoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FsYXJtcy1pbnRlcnZhbC1yZWZyZXNoLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBbGFybXNJbnRlcnZhbFJlZnJlc2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5IHJlZnJlc2hJbnRlcnZhbHNJbk1pbGxpc2Vjb25kcyA9IHRoaXMuYWxhcm1zVmlld1NlcnZpY2UuREVGQVVMVF9JTlRFUlZBTF9WQUxVRVM7XG4gIHJlYWRvbmx5IERJU0FCTEVfQVVUT19SRUZSRVNIID0gZ2V0dGV4dCgnRGlzYWJsZSBhdXRvIHJlZnJlc2gnKTtcbiAgcmVhZG9ubHkgRU5BQkxFX0FVVE9fUkVGUkVTSCA9IGdldHRleHQoJ0VuYWJsZSBhdXRvIHJlZnJlc2gnKTtcbiAgcmVhZG9ubHkgU0VDT05EU19VTlRJTF9SRUZSRVNIID0gZ2V0dGV4dCgne3sgc2Vjb25kcyB9fSBzJyk7XG5cbiAgQElucHV0KCkgaXNEaXNhYmxlZCA9IGZhbHNlO1xuICAvKipcbiAgICogQ29udHJvbHMgdGhlIGxvYWRpbmcgc3RhdGUgb2YgdGhlIGFsYXJtcyBsaXN0IHJlbG9hZCBidXR0b24uXG4gICAqL1xuICBASW5wdXQoKVxuICBhbGFybXNMaXN0TG9hZGluZyQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgLyoqXG4gICAqICogU2V0IHRoZSB2YWx1ZSBvZiBgaXNJbnRlcnZhbEVuYWJsZWRgIGluIHJlc3BvbnNlIHRvIHVzZXIgaW50ZXJhY3Rpb25zIHdpdGggdGhlIGFsYXJtIGxpc3Qgc2Nyb2xsLlxuICAgKiAgKlxuICAgKiAgKiBUaGlzIGlucHV0IHNldHRlciBhbGxvd3MgeW91IHRvIGNvbnRyb2wgdGhlIGBpc0ludGVydmFsRW5hYmxlZGAgcHJvcGVydHksIHdoaWNoIGlzIHVzZWQgdG8gbWFuYWdlIHRoZSBzdGF0ZVxuICAgKiAgKiBvZiBhIHRvZ2dsZSBidXR0b24uIFdoZW4gYSB1c2VyIHNjcm9sbHMgdGhyb3VnaCB0aGUgYWxhcm1zIGxpc3QsIHlvdSBjYW4gdXBkYXRlIHRoZSBgaXNJbnRlcnZhbEVuYWJsZWRgIHZhbHVlXG4gICAqICAqIHVzaW5nIHRoaXMgc2V0dGVyLlxuICAgKiAgKlxuICAgKiAgKiBAcGFyYW0gdmFsdWUgLSBBIGJvb2xlYW4gdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBuZXcgc3RhdGUgb2YgdGhlIGBpc0ludGVydmFsRW5hYmxlZGAgcHJvcGVydHkuXG4gICAqICAqICAgLSBgdHJ1ZWAgaW5kaWNhdGVzIHRoYXQgdGhlIGludGVydmFsIGlzIGVuYWJsZWQuXG4gICAqICAqICAgLSBgZmFsc2VgIGluZGljYXRlcyB0aGF0IHRoZSBpbnRlcnZhbCBpcyBkaXNhYmxlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBpc0ludGVydmFsVG9nZ2xlRW5hYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGNvbnN0IHNob3VsZFNldEludGVydmFsID0gdGhpcy5pc0ludGVydmFsVG9nZ2xlRW5hYmxlZCB8fCB0aGlzLmRvZXNVc2VyQ2hlY2tlZEludGVydmFsVG9nZ2xlO1xuICAgIGNvbnN0IHNob3VsZFRvZ2dsZUludGVydmFsID1cbiAgICAgICF0aGlzLmlzRGlzYWJsZWQgJiZcbiAgICAgIHRoaXMuaXNJbnRlcnZhbFRvZ2dsZUVuYWJsZWQgJiZcbiAgICAgIHRoaXMuZG9lc1VzZXJDaGVja2VkSW50ZXJ2YWxUb2dnbGUgJiZcbiAgICAgIHZhbHVlO1xuICAgIGNvbnN0IGludGVydmFsVG9nZ2xlQ29udHJvbCA9IHRoaXMudG9nZ2xlSW50ZXJ2YWxGb3JtLmdldCgnaW50ZXJ2YWxUb2dnbGUnKTtcbiAgICAvKipcbiAgICAgKiBXZSBjaGVjayBpZiBhbnkgaW50ZXJhY3Rpb25zIHRvIHRvZ2dsZSBpbnRlcnZhbCBidXR0b24gd2VyZSBtYWRlLlxuICAgICAqIFdoZW4gdXNlciBpbnRlcmFjdHMgd2l0aCB0b2dnbGUgYnV0dG9uLCB3ZSBuZWVkIHRvIGlnbm9yZSBhc3NpZ25pbmcgdmFsdWUgdG8gdGhlIGZvcm0uXG4gICAgICovXG4gICAgaWYgKGludGVydmFsVG9nZ2xlQ29udHJvbC5kaXJ0eSAmJiAhc2hvdWxkU2V0SW50ZXJ2YWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVGhpcyBjb25kaXRpb24gY2hlY2tzIGlmIHRoZSBpbnRlcnZhbCB0b2dnbGUgaXMgZW5hYmxlZCBhbmQgaWYgdGhlcmUgaGFzIGJlZW4gdXNlciBpbnRlcmFjdGlvbixcbiAgICAgKiBhbmQgaWYgdGhlIHByb3ZpZGVkIHZhbHVlIGlzIHRydXRoeS5cbiAgICAgKiBJZiBhbGwgY29uZGl0aW9ucyBhcmUgbWV0LCB0aGUgaW50ZXJ2YWwgdG9nZ2xlIHNob3VsZCBub3QgYmUgdXBkYXRlZCBkdWUgdG8gdW5uZWNlc3NhcnkgdXBkYXRlIG9mIGNvdW50ZG93biBpbnRlcnZhbCBjb21wb25lbnRcbiAgICAgKi9cbiAgICBpZiAoc2hvdWxkVG9nZ2xlSW50ZXJ2YWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaW50ZXJ2YWxUb2dnbGVDb250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgfVxuICAvKipcbiAgICogVGhpcyBnZXR0ZXIgYWxsb3dzIHlvdSB0byBhY2Nlc3MgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGBpc0ludGVydmFsRW5hYmxlZGAgcHJvcGVydHksIHdoaWNoIHJlZmxlY3RzXG4gICAqIHRoZSBzdGF0ZSBvZiBhIHRvZ2dsZSBidXR0b24uIEl0IHJldHJpZXZlcyB0aGUgdmFsdWUgZnJvbSB0aGUgYXNzb2NpYXRlZCBmb3JtIGNvbnRyb2wsIHByb3ZpZGluZyB0aGVcbiAgICogY3VycmVudCBzdGF0ZSBvZiB0aGUgdG9nZ2xlIGJ1dHRvbi5cbiAgICovXG4gIGdldCBpc0ludGVydmFsVG9nZ2xlRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaXNEaXNhYmxlZCAmJiB0aGlzLnRvZ2dsZUludGVydmFsRm9ybS5nZXQoJ2ludGVydmFsVG9nZ2xlJykudmFsdWU7XG4gIH1cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZXIgZm9yIG5vdGlmeWluZyB3aGVuIGEgY291bnRkb3duIHRpbWVyIGhhcyBjb21wbGV0ZWQuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgb25Db3VudGRvd25FbmRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAVmlld0NoaWxkKENvdW50ZG93bkludGVydmFsQ29tcG9uZW50KVxuICBjb3VudGRvd25JbnRlcnZhbENvbXBvbmVudDogQ291bnRkb3duSW50ZXJ2YWxDb21wb25lbnQ7XG4gIHRvZ2dsZUludGVydmFsRm9ybSA9IHRoaXMuaW5pdEZvcm0oKTtcbiAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdXNlciBoYXMgYmVlbiBpbnRlcmFjdGluZyB3aXRoIHRoZSBpbnRlcnZhbCB0b2dnbGUuXG4gICAqIFByb3BlcnR5IGhvbGRzIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBpbnRlcnZhbCB0b2dnbGUgaW5wdXQgZWxlbWVudCBlbnRlcmVkIGJ5IHRoZSB1c2VyLFxuICAgKiBkaXN0aW5ndWlzaGluZyBpdCBmcm9tIGNoYW5nZXMgbWFkZSBwcm9ncmFtbWF0aWNhbGx5IChlLmcuIHZhbHVlIGZyb20gaXNJbnRlcnZhbFRvZ2dsZUVuYWJsZWQpLlxuICAgKi9cbiAgcHJpdmF0ZSBkb2VzVXNlckNoZWNrZWRJbnRlcnZhbFRvZ2dsZTogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGFsYXJtc1ZpZXdTZXJ2aWNlOiBBbGFybXNWaWV3U2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5Ub1JlZnJlc2hJbnRlcnZhbENoYW5nZSgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMub25JbnRlcnZhbFRvZ2dsZUNoYW5nZSgpO1xuICAgIHRoaXMubGlzdGVuT25Mb2FkaW5nQ2hhbmdlcygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcmVzZXRDb3VudGRvd24oKTogdm9pZCB7XG4gICAgdGhpcy5jb3VudGRvd25JbnRlcnZhbENvbXBvbmVudD8ucmVzZXQoKTtcbiAgfVxuXG4gIHRyYWNrVXNlckNsaWNrT25JbnRlcnZhbFRvZ2dsZSh0YXJnZXQ6IEV2ZW50VGFyZ2V0KTogdm9pZCB7XG4gICAgdGhpcy5kb2VzVXNlckNoZWNrZWRJbnRlcnZhbFRvZ2dsZSA9ICh0YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZDtcbiAgfVxuXG4gIGdldFRvb2x0aXAoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNEaXNhYmxlZFxuICAgICAgPyBnZXR0ZXh0KCdEaXNhYmxlZCcpXG4gICAgICA6IHRoaXMuaXNJbnRlcnZhbFRvZ2dsZUVuYWJsZWRcbiAgICAgICAgPyB0aGlzLkRJU0FCTEVfQVVUT19SRUZSRVNIXG4gICAgICAgIDogdGhpcy5FTkFCTEVfQVVUT19SRUZSRVNIO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFydENvdW50ZG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmNvdW50ZG93bkludGVydmFsQ29tcG9uZW50LnN0YXJ0KCk7XG4gIH1cblxuICBwcml2YXRlIG9uSW50ZXJ2YWxUb2dnbGVDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVJbnRlcnZhbEZvcm1cbiAgICAgIC5nZXQoJ2ludGVydmFsVG9nZ2xlJylcbiAgICAgIC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCksIGZpbHRlcihCb29sZWFuKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gc2V0VGltZW91dCgoKSA9PiB0aGlzLnN0YXJ0Q291bnRkb3duKCkpKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEZvcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgaW50ZXJ2YWxUb2dnbGU6IHRydWUsXG4gICAgICByZWZyZXNoSW50ZXJ2YWw6IHRoaXMuYWxhcm1zVmlld1NlcnZpY2UuREVGQVVMVF9JTlRFUlZBTF9WQUxVRVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Ub1JlZnJlc2hJbnRlcnZhbENoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZUludGVydmFsRm9ybVxuICAgICAgLmdldCgncmVmcmVzaEludGVydmFsJylcbiAgICAgIC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVzZXRDb3VudGRvd24oKSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3Rlbk9uTG9hZGluZ0NoYW5nZXMoKSB7XG4gICAgdGhpcy5hbGFybXNMaXN0TG9hZGluZyRcbiAgICAgIC5waXBlKHRhcCgoKSA9PiB0aGlzLmNvdW50ZG93bkludGVydmFsQ29tcG9uZW50Py5zdG9wKCkpKVxuICAgICAgLnN1YnNjcmliZShzdGF0ZSA9PiB7XG4gICAgICAgICFzdGF0ZSAmJiB0aGlzLmNvdW50ZG93bkludGVydmFsQ29tcG9uZW50Py5yZXNldCgpO1xuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxmb3JtXG4gIGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXIgZml0LXcgZml0LWhcIlxuICBbZm9ybUdyb3VwXT1cInRvZ2dsZUludGVydmFsRm9ybVwiXG4+XG4gIDxsYWJlbCBjbGFzcz1cIm0tYi0wIG0tci04IHRleHQtbm9ybWFsIHRleHQtbXV0ZWQgZmxleC1uby1zaHJpbmtcIj5cbiAgICB7eyAnQXV0byByZWZyZXNoJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2xhYmVsPlxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cbiAgICA8bGFiZWxcbiAgICAgIGNsYXNzPVwidG9nZ2xlLWNvdW50ZG93blwiXG4gICAgICBbY2xhc3MudG9nZ2xlLWNvdW50ZG93bi1kaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZ2V0VG9vbHRpcCgpIHwgdHJhbnNsYXRlXCJcbiAgICAgIFt0b29sdGlwXT1cImdldFRvb2x0aXAoKSB8IHRyYW5zbGF0ZVwiXG4gICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgW2FkYXB0aXZlUG9zaXRpb25dPVwiZmFsc2VcIlxuICAgICAgW2RlbGF5XT1cIjUwMFwiXG4gICAgPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgIGRhdGEtY3k9XCJjOHktYWxhcm1zLWludGVydmFsLXRvZ2dsZVwiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cImludGVydmFsVG9nZ2xlXCJcbiAgICAgICAgKGNsaWNrKT1cInRyYWNrVXNlckNsaWNrT25JbnRlcnZhbFRvZ2dsZSgkZXZlbnQudGFyZ2V0KVwiXG4gICAgICAvPlxuICAgICAgPGM4eS1jb3VudGRvd24taW50ZXJ2YWxcbiAgICAgICAgKm5nSWY9XCJpc0ludGVydmFsVG9nZ2xlRW5hYmxlZFwiXG4gICAgICAgIFtjb3VudGRvd25JbnRlcnZhbF09XCJ0b2dnbGVJbnRlcnZhbEZvcm0udmFsdWUucmVmcmVzaEludGVydmFsXCJcbiAgICAgICAgKGNvdW50ZG93bkVuZGVkKT1cIm9uQ291bnRkb3duRW5kZWQuZW1pdCgpXCJcbiAgICAgID48L2M4eS1jb3VudGRvd24taW50ZXJ2YWw+XG4gICAgICA8aVxuICAgICAgICBjOHlJY29uPVwicGF1c2VcIlxuICAgICAgICAqbmdJZj1cIiFpc0ludGVydmFsVG9nZ2xlRW5hYmxlZFwiXG4gICAgICA+PC9pPlxuICAgIDwvbGFiZWw+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJjOHktc2VsZWN0LXdyYXBwZXJcIlxuICAgICAgKm5nSWY9XCIhaXNEaXNhYmxlZFwiXG4gICAgPlxuICAgICAgPHNlbGVjdFxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCB0ZXh0LTEyXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInUmVmcmVzaCBpbnRlcnZhbCBpbiBzZWNvbmRzJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFt0b29sdGlwXT1cIidSZWZyZXNoIGludGVydmFsIGluIHNlY29uZHMnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgW2FkYXB0aXZlUG9zaXRpb25dPVwiZmFsc2VcIlxuICAgICAgICBbZGVsYXldPVwiNTAwXCJcbiAgICAgICAgW2NvbnRhaW5lcl09XCInYm9keSdcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZWZyZXNoSW50ZXJ2YWxcIlxuICAgICAgICBkYXRhLWN5PVwiYzh5LWFsYXJtcy1pbnRlcnZhbC1zZWxlY3RvclwiXG4gICAgICA+XG4gICAgICAgIDxvcHRpb25cbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHJlZnJlc2hJbnRlcnZhbCBvZiByZWZyZXNoSW50ZXJ2YWxzSW5NaWxsaXNlY29uZHNcIlxuICAgICAgICAgIFtuZ1ZhbHVlXT1cInJlZnJlc2hJbnRlcnZhbFwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBTRUNPTkRTX1VOVElMX1JFRlJFU0ggfCB0cmFuc2xhdGU6IHsgc2Vjb25kczogcmVmcmVzaEludGVydmFsIC8gMTAwMCB9IH19XG4gICAgICAgIDwvb3B0aW9uPlxuICAgICAgPC9zZWxlY3Q+XG4gICAgICA8c3Bhbj48L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWJ0blwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiXG4gICAgICAgIHN0eWxlPVwiYm9yZGVyLWxlZnQ6IDBcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidSZWZyZXNoJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFt0b29sdGlwXT1cIidSZWZyZXNoJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBbYWRhcHRpdmVQb3NpdGlvbl09XCJmYWxzZVwiXG4gICAgICAgIFtkZWxheV09XCI1MDBcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZCB8fCAoYWxhcm1zTGlzdExvYWRpbmckIHwgYXN5bmMpXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ291bnRkb3duRW5kZWQuZW1pdCgpXCJcbiAgICAgICAgZGF0YS1jeT1cImM4eS1hbGFybXMtcmVsb2FkLWJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIDxpXG4gICAgICAgICAgYzh5SWNvbj1cInJlZnJlc2hcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2ljb24tc3Bpbic6IGFsYXJtc0xpc3RMb2FkaW5nJCB8IGFzeW5jIH1cIlxuICAgICAgICA+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm1zLWludGVydmFsLXJlZnJlc2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vYWxhcm1zL2FsYXJtcy1pbnRlcnZhbC1yZWZyZXNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL2FsYXJtcy9hbGFybXMtaW50ZXJ2YWwtcmVmcmVzaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7OztBQU0xRCxNQUFNLE9BQU8sOEJBQThCO0lBWXpDOzs7Ozs7Ozs7O09BVUc7SUFDSCxJQUNJLHVCQUF1QixDQUFDLEtBQWM7UUFDeEMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsdUJBQXVCLElBQUksSUFBSSxDQUFDLDZCQUE2QixDQUFDO1FBQzdGLE1BQU0sb0JBQW9CLEdBQ3hCLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFDaEIsSUFBSSxDQUFDLHVCQUF1QjtZQUM1QixJQUFJLENBQUMsNkJBQTZCO1lBQ2xDLEtBQUssQ0FBQztRQUNSLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVFOzs7V0FHRztRQUNILElB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QjtRQUNuQyxJQUFJLENBQUMsa0JBQWtCO2FBQ3BCLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQzthQUN0QixZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDM0MsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsSUFBSSxDQUFDLGtCQUFrQjthQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQ3hELFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqQixDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQTVJVSw4QkFBOEI7bUdBQTlCLDhCQUE4QixzVEErRDlCLDBCQUEwQixnRENuRnZDLG13RkFtRkE7OzRGRC9EYSw4QkFBOEI7a0JBSjFDLFNBQVM7K0JBQ0UsNkJBQTZCO2dIQVM5QixVQUFVO3NCQUFsQixLQUFLO2dCQUtOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFjRix1QkFBdUI7c0JBRDFCLEtBQUs7Z0JBc0NOLGdCQUFnQjtzQkFEZixNQUFNO2dCQUlQLDBCQUEwQjtzQkFEekIsU0FBUzt1QkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ291bnRkb3duSW50ZXJ2YWxDb21wb25lbnQsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEFsYXJtc1ZpZXdTZXJ2aWNlIH0gZnJvbSAnLi9hbGFybXMtdmlldy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWFsYXJtcy1pbnRlcnZhbC1yZWZyZXNoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FsYXJtcy1pbnRlcnZhbC1yZWZyZXNoLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBbGFybXNJbnRlcnZhbFJlZnJlc2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5IHJlZnJlc2hJbnRlcnZhbHNJbk1pbGxpc2Vjb25kcyA9IHRoaXMuYWxhcm1zVmlld1NlcnZpY2UuREVGQVVMVF9JTlRFUlZBTF9WQUxVRVM7XG4gIHJlYWRvbmx5IERJU0FCTEVfQVVUT19SRUZSRVNIID0gZ2V0dGV4dCgnRGlzYWJsZSBhdXRvIHJlZnJlc2gnKTtcbiAgcmVhZG9ubHkgRU5BQkxFX0FVVE9fUkVGUkVTSCA9IGdldHRleHQoJ0VuYWJsZSBhdXRvIHJlZnJlc2gnKTtcbiAgcmVhZG9ubHkgU0VDT05EU19VTlRJTF9SRUZSRVNIID0gZ2V0dGV4dCgne3sgc2Vjb25kcyB9fSBzJyk7XG5cbiAgQElucHV0KCkgaXNEaXNhYmxlZCA9IGZhbHNlO1xuICAvKipcbiAgICogQ29udHJvbHMgdGhlIGxvYWRpbmcgc3RhdGUgb2YgdGhlIGFsYXJtcyBsaXN0IHJlbG9hZCBidXR0b24uXG4gICAqL1xuICBASW5wdXQoKVxuICBhbGFybXNMaXN0TG9hZGluZyQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgLyoqXG4gICAqICogU2V0IHRoZSB2YWx1ZSBvZiBgaXNJbnRlcnZhbEVuYWJsZWRgIGluIHJlc3BvbnNlIHRvIHVzZXIgaW50ZXJhY3Rpb25zIHdpdGggdGhlIGFsYXJtIGxpc3Qgc2Nyb2xsLlxuICAgKiAgKlxuICAgKiAgKiBUaGlzIGlucHV0IHNldHRlciBhbGxvd3MgeW91IHRvIGNvbnRyb2wgdGhlIGBpc0ludGVydmFsRW5hYmxlZGAgcHJvcGVydHksIHdoaWNoIGlzIHVzZWQgdG8gbWFuYWdlIHRoZSBzdGF0ZVxuICAgKiAgKiBvZiBhIHRvZ2dsZSBidXR0b24uIFdoZW4gYSB1c2VyIHNjcm9sbHMgdGhyb3VnaCB0aGUgYWxhcm1zIGxpc3QsIHlvdSBjYW4gdXBkYXRlIHRoZSBgaXNJbnRlcnZhbEVuYWJsZWRgIHZhbHVlXG4gICAqICAqIHVzaW5nIHRoaXMgc2V0dGVyLlxuICAgKiAgKlxuICAgKiAgKiBAcGFyYW0gdmFsdWUgLSBBIGJvb2xlYW4gdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBuZXcgc3RhdGUgb2YgdGhlIGBpc0ludGVydmFsRW5hYmxlZGAgcHJvcGVydHkuXG4gICAqICAqICAgLSBgdHJ1ZWAgaW5kaWNhdGVzIHRoYXQgdGhlIGludGVydmFsIGlzIGVuYWJsZWQuXG4gICAqICAqICAgLSBgZmFsc2VgIGluZGljYXRlcyB0aGF0IHRoZSBpbnRlcnZhbCBpcyBkaXNhYmxlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBpc0ludGVydmFsVG9nZ2xlRW5hYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGNvbnN0IHNob3VsZFNldEludGVydmFsID0gdGhpcy5pc0ludGVydmFsVG9nZ2xlRW5hYmxlZCB8fCB0aGlzLmRvZXNVc2VyQ2hlY2tlZEludGVydmFsVG9nZ2xlO1xuICAgIGNvbnN0IHNob3VsZFRvZ2dsZUludGVydmFsID1cbiAgICAgICF0aGlzLmlzRGlzYWJsZWQgJiZcbiAgICAgIHRoaXMuaXNJbnRlcnZhbFRvZ2dsZUVuYWJsZWQgJiZcbiAgICAgIHRoaXMuZG9lc1VzZXJDaGVja2VkSW50ZXJ2YWxUb2dnbGUgJiZcbiAgICAgIHZhbHVlO1xuICAgIGNvbnN0IGludGVydmFsVG9nZ2xlQ29udHJvbCA9IHRoaXMudG9nZ2xlSW50ZXJ2YWxGb3JtLmdldCgnaW50ZXJ2YWxUb2dnbGUnKTtcbiAgICAvKipcbiAgICAgKiBXZSBjaGVjayBpZiBhbnkgaW50ZXJhY3Rpb25zIHRvIHRvZ2dsZSBpbnRlcnZhbCBidXR0b24gd2VyZSBtYWRlLlxuICAgICAqIFdoZW4gdXNlciBpbnRlcmFjdHMgd2l0aCB0b2dnbGUgYnV0dG9uLCB3ZSBuZWVkIHRvIGlnbm9yZSBhc3NpZ25pbmcgdmFsdWUgdG8gdGhlIGZvcm0uXG4gICAgICovXG4gICAgaWYgKGludGVydmFsVG9nZ2xlQ29udHJvbC5kaXJ0eSAmJiAhc2hvdWxkU2V0SW50ZXJ2YWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVGhpcyBjb25kaXRpb24gY2hlY2tzIGlmIHRoZSBpbnRlcnZhbCB0b2dnbGUgaXMgZW5hYmxlZCBhbmQgaWYgdGhlcmUgaGFzIGJlZW4gdXNlciBpbnRlcmFjdGlvbixcbiAgICAgKiBhbmQgaWYgdGhlIHByb3ZpZGVkIHZhbHVlIGlzIHRydXRoeS5cbiAgICAgKiBJZiBhbGwgY29uZGl0aW9ucyBhcmUgbWV0LCB0aGUgaW50ZXJ2YWwgdG9nZ2xlIHNob3VsZCBub3QgYmUgdXBkYXRlZCBkdWUgdG8gdW5uZWNlc3NhcnkgdXBkYXRlIG9mIGNvdW50ZG93biBpbnRlcnZhbCBjb21wb25lbnRcbiAgICAgKi9cbiAgICBpZiAoc2hvdWxkVG9nZ2xlSW50ZXJ2YWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaW50ZXJ2YWxUb2dnbGVDb250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgfVxuICAvKipcbiAgICogVGhpcyBnZXR0ZXIgYWxsb3dzIHlvdSB0byBhY2Nlc3MgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGBpc0ludGVydmFsRW5hYmxlZGAgcHJvcGVydHksIHdoaWNoIHJlZmxlY3RzXG4gICAqIHRoZSBzdGF0ZSBvZiBhIHRvZ2dsZSBidXR0b24uIEl0IHJldHJpZXZlcyB0aGUgdmFsdWUgZnJvbSB0aGUgYXNzb2NpYXRlZCBmb3JtIGNvbnRyb2wsIHByb3ZpZGluZyB0aGVcbiAgICogY3VycmVudCBzdGF0ZSBvZiB0aGUgdG9nZ2xlIGJ1dHRvbi5cbiAgICovXG4gIGdldCBpc0ludGVydmFsVG9nZ2xlRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaXNEaXNhYmxlZCAmJiB0aGlzLnRvZ2dsZUludGVydmFsRm9ybS5nZXQoJ2ludGVydmFsVG9nZ2xlJykudmFsdWU7XG4gIH1cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZXIgZm9yIG5vdGlmeWluZyB3aGVuIGEgY291bnRkb3duIHRpbWVyIGhhcyBjb21wbGV0ZWQuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgb25Db3VudGRvd25FbmRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAVmlld0NoaWxkKENvdW50ZG93bkludGVydmFsQ29tcG9uZW50KVxuICBjb3VudGRvd25JbnRlcnZhbENvbXBvbmVudDogQ291bnRkb3duSW50ZXJ2YWxDb21wb25lbnQ7XG4gIHRvZ2dsZUludGVydmFsRm9ybSA9IHRoaXMuaW5pdEZvcm0oKTtcbiAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdXNlciBoYXMgYmVlbiBpbnRlcmFjdGluZyB3aXRoIHRoZSBpbnRlcnZhbCB0b2dnbGUuXG4gICAqIFByb3BlcnR5IGhvbGRzIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBpbnRlcnZhbCB0b2dnbGUgaW5wdXQgZWxlbWVudCBlbnRlcmVkIGJ5IHRoZSB1c2VyLFxuICAgKiBkaXN0aW5ndWlzaGluZyBpdCBmcm9tIGNoYW5nZXMgbWFkZSBwcm9ncmFtbWF0aWNhbGx5IChlLmcuIHZhbHVlIGZyb20gaXNJbnRlcnZhbFRvZ2dsZUVuYWJsZWQpLlxuICAgKi9cbiAgcHJpdmF0ZSBkb2VzVXNlckNoZWNrZWRJbnRlcnZhbFRvZ2dsZTogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGFsYXJtc1ZpZXdTZXJ2aWNlOiBBbGFybXNWaWV3U2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5Ub1JlZnJlc2hJbnRlcnZhbENoYW5nZSgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMub25JbnRlcnZhbFRvZ2dsZUNoYW5nZSgpO1xuICAgIHRoaXMubGlzdGVuT25Mb2FkaW5nQ2hhbmdlcygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcmVzZXRDb3VudGRvd24oKTogdm9pZCB7XG4gICAgdGhpcy5jb3VudGRvd25JbnRlcnZhbENvbXBvbmVudD8ucmVzZXQoKTtcbiAgfVxuXG4gIHRyYWNrVXNlckNsaWNrT25JbnRlcnZhbFRvZ2dsZSh0YXJnZXQ6IEV2ZW50VGFyZ2V0KTogdm9pZCB7XG4gICAgdGhpcy5kb2VzVXNlckNoZWNrZWRJbnRlcnZhbFRvZ2dsZSA9ICh0YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZDtcbiAgfVxuXG4gIGdldFRvb2x0aXAoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNEaXNhYmxlZFxuICAgICAgPyBnZXR0ZXh0KCdEaXNhYmxlZCcpXG4gICAgICA6IHRoaXMuaXNJbnRlcnZhbFRvZ2dsZUVuYWJsZWRcbiAgICAgICAgPyB0aGlzLkRJU0FCTEVfQVVUT19SRUZSRVNIXG4gICAgICAgIDogdGhpcy5FTkFCTEVfQVVUT19SRUZSRVNIO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFydENvdW50ZG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmNvdW50ZG93bkludGVydmFsQ29tcG9uZW50LnN0YXJ0KCk7XG4gIH1cblxuICBwcml2YXRlIG9uSW50ZXJ2YWxUb2dnbGVDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVJbnRlcnZhbEZvcm1cbiAgICAgIC5nZXQoJ2ludGVydmFsVG9nZ2xlJylcbiAgICAgIC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCksIGZpbHRlcihCb29sZWFuKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gc2V0VGltZW91dCgoKSA9PiB0aGlzLnN0YXJ0Q291bnRkb3duKCkpKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEZvcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgaW50ZXJ2YWxUb2dnbGU6IHRydWUsXG4gICAgICByZWZyZXNoSW50ZXJ2YWw6IHRoaXMuYWxhcm1zVmlld1NlcnZpY2UuREVGQVVMVF9JTlRFUlZBTF9WQUxVRVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Ub1JlZnJlc2hJbnRlcnZhbENoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZUludGVydmFsRm9ybVxuICAgICAgLmdldCgncmVmcmVzaEludGVydmFsJylcbiAgICAgIC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVzZXRDb3VudGRvd24oKSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3Rlbk9uTG9hZGluZ0NoYW5nZXMoKSB7XG4gICAgdGhpcy5hbGFybXNMaXN0TG9hZGluZyRcbiAgICAgIC5waXBlKHRhcCgoKSA9PiB0aGlzLmNvdW50ZG93bkludGVydmFsQ29tcG9uZW50Py5zdG9wKCkpKVxuICAgICAgLnN1YnNjcmliZShzdGF0ZSA9PiB7XG4gICAgICAgICFzdGF0ZSAmJiB0aGlzLmNvdW50ZG93bkludGVydmFsQ29tcG9uZW50Py5yZXNldCgpO1xuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxmb3JtXG4gIGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXIgZml0LXcgZml0LWhcIlxuICBbZm9ybUdyb3VwXT1cInRvZ2dsZUludGVydmFsRm9ybVwiXG4+XG4gIDxsYWJlbCBjbGFzcz1cIm0tYi0wIG0tci04IHRleHQtbm9ybWFsIHRleHQtbXV0ZWQgZmxleC1uby1zaHJpbmtcIj5cbiAgICB7eyAnQXV0byByZWZyZXNoJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2xhYmVsPlxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cbiAgICA8bGFiZWxcbiAgICAgIGNsYXNzPVwidG9nZ2xlLWNvdW50ZG93blwiXG4gICAgICBbY2xhc3MudG9nZ2xlLWNvdW50ZG93bi1kaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZ2V0VG9vbHRpcCgpIHwgdHJhbnNsYXRlXCJcbiAgICAgIFt0b29sdGlwXT1cImdldFRvb2x0aXAoKSB8IHRyYW5zbGF0ZVwiXG4gICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgW2FkYXB0aXZlUG9zaXRpb25dPVwiZmFsc2VcIlxuICAgICAgW2RlbGF5XT1cIjUwMFwiXG4gICAgICBkYXRhLWN5PVwiYzh5LWFsYXJtcy1pbnRlcnZhbC1yZWZyZXNoLS10b2dnbGUtY291bnRkb3duXCJcbiAgICA+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgZGF0YS1jeT1cImM4eS1hbGFybXMtaW50ZXJ2YWwtdG9nZ2xlXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaW50ZXJ2YWxUb2dnbGVcIlxuICAgICAgICAoY2xpY2spPVwidHJhY2tVc2VyQ2xpY2tPbkludGVydmFsVG9nZ2xlKCRldmVudC50YXJnZXQpXCJcbiAgICAgIC8+XG4gICAgICA8Yzh5LWNvdW50ZG93bi1pbnRlcnZhbFxuICAgICAgICAqbmdJZj1cImlzSW50ZXJ2YWxUb2dnbGVFbmFibGVkXCJcbiAgICAgICAgW2NvdW50ZG93bkludGVydmFsXT1cInRvZ2dsZUludGVydmFsRm9ybS52YWx1ZS5yZWZyZXNoSW50ZXJ2YWxcIlxuICAgICAgICAoY291bnRkb3duRW5kZWQpPVwib25Db3VudGRvd25FbmRlZC5lbWl0KClcIlxuICAgICAgPjwvYzh5LWNvdW50ZG93bi1pbnRlcnZhbD5cbiAgICAgIDxpXG4gICAgICAgIGRhdGEtY3k9XCJjOHktYWxhcm1zLWludGVydmFsLXJlZnJlc2gtLXBhdXNlXCJcbiAgICAgICAgYzh5SWNvbj1cInBhdXNlXCJcbiAgICAgICAgKm5nSWY9XCIhaXNJbnRlcnZhbFRvZ2dsZUVuYWJsZWRcIlxuICAgICAgPjwvaT5cbiAgICA8L2xhYmVsPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiYzh5LXNlbGVjdC13cmFwcGVyXCJcbiAgICAgICpuZ0lmPVwiIWlzRGlzYWJsZWRcIlxuICAgID5cbiAgICAgIDxzZWxlY3RcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgdGV4dC0xMlwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1JlZnJlc2ggaW50ZXJ2YWwgaW4gc2Vjb25kcycgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbdG9vbHRpcF09XCInUmVmcmVzaCBpbnRlcnZhbCBpbiBzZWNvbmRzJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgIFthZGFwdGl2ZVBvc2l0aW9uXT1cImZhbHNlXCJcbiAgICAgICAgW2RlbGF5XT1cIjUwMFwiXG4gICAgICAgIFtjb250YWluZXJdPVwiJ2JvZHknXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmVmcmVzaEludGVydmFsXCJcbiAgICAgICAgZGF0YS1jeT1cImM4eS1hbGFybXMtaW50ZXJ2YWwtcmVmcmVzaC0tc2VsZWN0b3JcIlxuICAgICAgPlxuICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAgICAgICAgICpuZ0Zvcj1cImxldCByZWZyZXNoSW50ZXJ2YWwgb2YgcmVmcmVzaEludGVydmFsc0luTWlsbGlzZWNvbmRzXCJcbiAgICAgICAgICBbbmdWYWx1ZV09XCJyZWZyZXNoSW50ZXJ2YWxcIlxuICAgICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ2M4eS1pbnRlcnZhbC0nICsgcmVmcmVzaEludGVydmFsXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IFNFQ09ORFNfVU5USUxfUkVGUkVTSCB8IHRyYW5zbGF0ZTogeyBzZWNvbmRzOiByZWZyZXNoSW50ZXJ2YWwgLyAxMDAwIH0gfX1cbiAgICAgICAgPC9vcHRpb24+XG4gICAgICA8L3NlbGVjdD5cbiAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtYnRuXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgICAgc3R5bGU9XCJib3JkZXItbGVmdDogMFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1JlZnJlc2gnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW3Rvb2x0aXBdPVwiJ1JlZnJlc2gnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFthZGFwdGl2ZVBvc2l0aW9uXT1cImZhbHNlXCJcbiAgICAgICAgW2RlbGF5XT1cIjUwMFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkIHx8IChhbGFybXNMaXN0TG9hZGluZyQgfCBhc3luYylcIlxuICAgICAgICAoY2xpY2spPVwib25Db3VudGRvd25FbmRlZC5lbWl0KClcIlxuICAgICAgICBkYXRhLWN5PVwiYzh5LWFsYXJtcy1pbnRlcnZhbC1yZWZyZXNoLS1idG5cIlxuICAgICAgPlxuICAgICAgICA8aVxuICAgICAgICAgIGM4eUljb249XCJyZWZyZXNoXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpY29uLXNwaW4nOiBhbGFybXNMaXN0TG9hZGluZyQgfCBhc3luYyB9XCJcbiAgICAgICAgPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
|