ngx-sp-infra 3.22.2 → 4.0.1-next
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/esm2022/lib/components/footer/footer.component.mjs +6 -6
- package/esm2022/lib/components/lib-config-senha/lib-config-senha.component.mjs +15 -14
- package/esm2022/lib/components/page-not-authorized/page-not-authorized.component.mjs +5 -5
- package/esm2022/lib/directives/click-outside.directive.mjs +8 -5
- package/esm2022/lib/directives/copy-clipboard.directive.mjs +6 -5
- package/esm2022/lib/directives/disable-control.directive.mjs +6 -5
- package/esm2022/lib/directives/highlight.directive.mjs +6 -5
- package/esm2022/lib/directives/loading-btn.directive.mjs +6 -5
- package/esm2022/lib/directives/required.directive.mjs +6 -5
- package/esm2022/lib/directives/text-truncate.directive.mjs +6 -5
- package/esm2022/lib/infra.module.mjs +51 -30
- package/esm2022/lib/message/alert/alert.component.mjs +5 -5
- package/esm2022/lib/message/confirm/confirm.component.mjs +5 -5
- package/esm2022/lib/message/confirm-modal/confirm-modal.component.mjs +6 -6
- package/esm2022/lib/message/message.service.mjs +3 -3
- package/esm2022/lib/message/save/save.component.mjs +8 -7
- package/esm2022/lib/pipes/cpf-cnpj.pipe.mjs +6 -5
- package/esm2022/lib/pipes/currency.pipe.mjs +3 -3
- package/esm2022/lib/pipes/decimal-comma.pipe.mjs +6 -5
- package/esm2022/lib/pipes/filter-multiple-choice.pipe.mjs +6 -5
- package/esm2022/lib/pipes/format-by-type.pipe.mjs +6 -5
- package/esm2022/lib/pipes/order-sort.pipe.mjs +6 -5
- package/esm2022/lib/pipes/phone-format.pipe.mjs +6 -5
- package/esm2022/lib/pipes/text-filter.pipe.mjs +6 -5
- package/esm2022/lib/pipes/title-case-pipe.pipe.mjs +6 -5
- package/esm2022/lib/pipes/to-url.pipe.mjs +8 -5
- package/esm2022/lib/service/configuracao-senha.service.mjs +3 -3
- package/esm2022/lib/service/file.service.mjs +3 -3
- package/esm2022/lib/service/ip-service.service.mjs +3 -3
- package/esm2022/lib/service/modal-utils.service.mjs +3 -3
- package/esm2022/lib/service/table-selection.service.mjs +3 -3
- package/esm2022/lib/service/tenant.service.mjs +3 -3
- package/esm2022/lib/utils/check-url-and-method.service.mjs +3 -3
- package/esm2022/lib/utils/filtros-aplicados.service.mjs +3 -3
- package/esm2022/lib/utils/settings.service.mjs +3 -3
- package/esm2022/lib/validators/cpf-cnpj.validator.directive.mjs +3 -3
- package/esm2022/lib/widgets/applied-filters/applied-filters.component.mjs +10 -9
- package/esm2022/lib/widgets/breadcrumb/infra-breadcrumb/infra-breadcrumb.component.mjs +5 -5
- package/esm2022/lib/widgets/breadcrumb/infra-breadcrumb-item/infra-breadcrumb-item.component.mjs +5 -5
- package/esm2022/lib/widgets/breadcrumb/portalrh-breadcrumb/breadcrumb.component.mjs +5 -5
- package/esm2022/lib/widgets/combobox/combobox.component.mjs +11 -12
- package/esm2022/lib/widgets/combobox/pipes/filter-by.pipe.mjs +6 -5
- package/esm2022/lib/widgets/combobox/pipes/limit-to.pipe.mjs +6 -5
- package/esm2022/lib/widgets/combobox-multiple-choice/combobox-multiple-choice.component.mjs +10 -9
- package/esm2022/lib/widgets/content-container/content-container.component.mjs +10 -9
- package/esm2022/lib/widgets/custom-acordion/custom-acordion.component.mjs +13 -8
- package/esm2022/lib/widgets/dropdown-options/dropdown-options.component.mjs +6 -5
- package/esm2022/lib/widgets/dynamic-input/dynamic-input.component.mjs +10 -9
- package/esm2022/lib/widgets/field-contador-message/field-contador-message.component.mjs +5 -5
- package/esm2022/lib/widgets/field-control-error/field-control-error.component.mjs +6 -6
- package/esm2022/lib/widgets/field-error-message/field-error-message.component.mjs +5 -5
- package/esm2022/lib/widgets/generic-modal/generic-modal.component.mjs +5 -5
- package/esm2022/lib/widgets/input-trim/input-trim.component.mjs +8 -8
- package/esm2022/lib/widgets/lib-combobox/lib-combobox.component.mjs +20 -12
- package/esm2022/lib/widgets/lib-header/lib-header.component.mjs +7 -6
- package/esm2022/lib/widgets/lib-icons/lib-icons.component.mjs +5 -5
- package/esm2022/lib/widgets/lib-nav-produtos/lib-nav-produtos.component.mjs +5 -5
- package/esm2022/lib/widgets/lib-transfer-list/inner-list/inner-list.component.mjs +13 -11
- package/esm2022/lib/widgets/lib-transfer-list/lib-transfer-list.component.mjs +10 -9
- package/esm2022/lib/widgets/loading/loading.component.mjs +5 -5
- package/esm2022/lib/widgets/loading-button/loading-button.component.mjs +7 -7
- package/esm2022/lib/widgets/nav-produtos/nav-produtos.component.mjs +11 -10
- package/esm2022/lib/widgets/ordering/ordering.component.mjs +9 -8
- package/esm2022/lib/widgets/pagination/pagination.component.mjs +10 -8
- package/esm2022/lib/widgets/password-policy/password-policy.component.mjs +7 -7
- package/esm2022/lib/widgets/search-combobox/search-combobox.component.mjs +11 -11
- package/esm2022/lib/widgets/search-filters/search-filters.component.mjs +9 -8
- package/esm2022/lib/widgets/search-input/search-input.component.mjs +6 -5
- package/esm2022/lib/widgets/side-tabs-generic/side-tabs-generic.component.mjs +9 -8
- package/esm2022/lib/widgets/simple-search/simple-search.component.mjs +6 -6
- package/esm2022/lib/widgets/spinner/spinner.component.mjs +5 -5
- package/esm2022/lib/widgets/table/table.component.mjs +13 -10
- package/esm2022/lib/widgets/tree/pipes/search-tree.pipe.mjs +5 -4
- package/esm2022/lib/widgets/tree/tree.component.mjs +10 -9
- package/fesm2022/ngx-sp-infra.mjs +402 -349
- package/fesm2022/ngx-sp-infra.mjs.map +1 -1
- package/lib/components/footer/footer.component.d.ts +1 -1
- package/lib/components/lib-config-senha/lib-config-senha.component.d.ts +1 -1
- package/lib/components/page-not-authorized/page-not-authorized.component.d.ts +1 -1
- package/lib/directives/click-outside.directive.d.ts +1 -1
- package/lib/directives/copy-clipboard.directive.d.ts +1 -1
- package/lib/directives/disable-control.directive.d.ts +1 -1
- package/lib/directives/highlight.directive.d.ts +1 -1
- package/lib/directives/loading-btn.directive.d.ts +1 -1
- package/lib/directives/required.directive.d.ts +1 -1
- package/lib/directives/text-truncate.directive.d.ts +1 -1
- package/lib/infra.module.d.ts +71 -71
- package/lib/message/alert/alert.component.d.ts +1 -1
- package/lib/message/confirm/confirm.component.d.ts +1 -1
- package/lib/message/confirm-modal/confirm-modal.component.d.ts +1 -1
- package/lib/message/save/save.component.d.ts +1 -1
- package/lib/pipes/cpf-cnpj.pipe.d.ts +1 -1
- package/lib/pipes/decimal-comma.pipe.d.ts +1 -1
- package/lib/pipes/filter-multiple-choice.pipe.d.ts +1 -1
- package/lib/pipes/format-by-type.pipe.d.ts +1 -1
- package/lib/pipes/order-sort.pipe.d.ts +1 -1
- package/lib/pipes/phone-format.pipe.d.ts +1 -1
- package/lib/pipes/text-filter.pipe.d.ts +1 -1
- package/lib/pipes/title-case-pipe.pipe.d.ts +1 -1
- package/lib/pipes/to-url.pipe.d.ts +1 -1
- package/lib/widgets/applied-filters/applied-filters.component.d.ts +1 -1
- package/lib/widgets/breadcrumb/infra-breadcrumb/infra-breadcrumb.component.d.ts +1 -1
- package/lib/widgets/breadcrumb/infra-breadcrumb-item/infra-breadcrumb-item.component.d.ts +1 -1
- package/lib/widgets/breadcrumb/portalrh-breadcrumb/breadcrumb.component.d.ts +1 -1
- package/lib/widgets/combobox/combobox.component.d.ts +1 -1
- package/lib/widgets/combobox/pipes/filter-by.pipe.d.ts +1 -1
- package/lib/widgets/combobox/pipes/limit-to.pipe.d.ts +1 -1
- package/lib/widgets/combobox-multiple-choice/combobox-multiple-choice.component.d.ts +1 -1
- package/lib/widgets/content-container/content-container.component.d.ts +2 -2
- package/lib/widgets/custom-acordion/custom-acordion.component.d.ts +1 -1
- package/lib/widgets/dropdown-options/dropdown-options.component.d.ts +1 -1
- package/lib/widgets/dynamic-input/dynamic-input.component.d.ts +1 -1
- package/lib/widgets/field-contador-message/field-contador-message.component.d.ts +1 -1
- package/lib/widgets/field-control-error/field-control-error.component.d.ts +1 -1
- package/lib/widgets/field-error-message/field-error-message.component.d.ts +2 -3
- package/lib/widgets/generic-modal/generic-modal.component.d.ts +1 -1
- package/lib/widgets/input-trim/input-trim.component.d.ts +1 -1
- package/lib/widgets/lib-combobox/lib-combobox.component.d.ts +1 -1
- package/lib/widgets/lib-header/lib-header.component.d.ts +1 -1
- package/lib/widgets/lib-icons/lib-icons.component.d.ts +1 -1
- package/lib/widgets/lib-nav-produtos/lib-nav-produtos.component.d.ts +1 -1
- package/lib/widgets/lib-transfer-list/inner-list/inner-list.component.d.ts +1 -1
- package/lib/widgets/lib-transfer-list/lib-transfer-list.component.d.ts +1 -1
- package/lib/widgets/loading/loading.component.d.ts +1 -1
- package/lib/widgets/loading-button/loading-button.component.d.ts +1 -1
- package/lib/widgets/nav-produtos/nav-produtos.component.d.ts +1 -1
- package/lib/widgets/ordering/ordering.component.d.ts +1 -1
- package/lib/widgets/pagination/pagination.component.d.ts +1 -1
- package/lib/widgets/password-policy/password-policy.component.d.ts +1 -1
- package/lib/widgets/search-combobox/search-combobox.component.d.ts +1 -1
- package/lib/widgets/search-filters/search-filters.component.d.ts +1 -1
- package/lib/widgets/search-input/search-input.component.d.ts +1 -1
- package/lib/widgets/side-tabs-generic/side-tabs-generic.component.d.ts +1 -1
- package/lib/widgets/simple-search/simple-search.component.d.ts +1 -1
- package/lib/widgets/spinner/spinner.component.d.ts +1 -1
- package/lib/widgets/table/table.component.d.ts +1 -1
- package/lib/widgets/tree/pipes/search-tree.pipe.d.ts +1 -1
- package/lib/widgets/tree/tree.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
|
+
import { LibIconsComponent } from '../../widgets/lib-icons/lib-icons.component';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "../../widgets/lib-icons/lib-icons.component";
|
|
4
4
|
export class FooterComponent {
|
|
5
5
|
constructor(el) {
|
|
6
6
|
this.el = el;
|
|
@@ -15,11 +15,11 @@ export class FooterComponent {
|
|
|
15
15
|
htmlEl.style.justifyContent = "center";
|
|
16
16
|
htmlEl.style.backgroundColor = "#eee"; // [!]
|
|
17
17
|
}
|
|
18
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
19
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FooterComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FooterComponent, isStandalone: true, selector: "[app-footer], app-footer, lib-footer", ngImport: i0, template: " <!-- #region FOOTER -->\n\n<div class=\"footer-position d-flex align-items-end justify-content-center position-relative\">\n <footer>\n <p class=\"footer-text d-flex justify-content-center\">\n Desenvolvido por <a href=\"https://www.sispro.com.br/\" target=\"_blank\" class=\"sispro text-decoration-none fw-bold text-primary\"> SISPRO </a> - Servi\u00E7os e Tecnologia da informa\u00E7\u00E3o LTDA \u00A9 {{ year }} Todos os direitos reservados\n </p>\n\n <div class=\"icons d-flex align-items-center justify-content-center mt-3\">\n <a href=\"https://pt-br.facebook.com/SisproERP/\" target=\"_blank\" class=\"icon-item\">\n <lib-icon class=\"text-primary\" iconName=\"facebook\" iconSize=\"medium-small\"/>\n </a>\n\n <a href=\"https://www.instagram.com/accounts/login/?next=/sispro_software/\" target=\"_blank\" class=\"icon-item\">\n <lib-icon class=\"text-primary\" iconName=\"instagram\" iconSize=\"medium-small\"/>\n </a>\n\n <a href=\"https://br.linkedin.com/company/sispro\" target=\"_blank\" class=\"icon-item\">\n <lib-icon class=\"text-primary\" iconName=\"linkedin\" iconSize=\"medium-small\"/>\n </a>\n </div>\n </footer>\n</div>\n <!-- #endregion FOOTER -->\n", styles: [".footer-position{margin:1.5rem 0;font-size:.875rem;color:#2847a0;white-space:nowrap}.footer-position .sispro{margin:0 5px}.footer-position .icons .icon-item{margin:0 10px}\n"], dependencies: [{ kind: "component", type: LibIconsComponent, selector: "lib-icon", inputs: ["iconName", "iconColor", "iconSize", "iconFill"] }] }); }
|
|
20
20
|
}
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FooterComponent, decorators: [{
|
|
22
22
|
type: Component,
|
|
23
|
-
args: [{ selector: '[app-footer], app-footer, lib-footer', template: " <!-- #region FOOTER -->\n\n<div class=\"footer-position d-flex align-items-end justify-content-center position-relative\">\n <footer>\n <p class=\"footer-text d-flex justify-content-center\">\n Desenvolvido por <a href=\"https://www.sispro.com.br/\" target=\"_blank\" class=\"sispro text-decoration-none fw-bold text-primary\"> SISPRO </a> - Servi\u00E7os e Tecnologia da informa\u00E7\u00E3o LTDA \u00A9 {{ year }} Todos os direitos reservados\n </p>\n\n <div class=\"icons d-flex align-items-center justify-content-center mt-3\">\n <a href=\"https://pt-br.facebook.com/SisproERP/\" target=\"_blank\" class=\"icon-item\">\n <lib-icon class=\"text-primary\" iconName=\"facebook\" iconSize=\"medium-small\"/>\n </a>\n\n <a href=\"https://www.instagram.com/accounts/login/?next=/sispro_software/\" target=\"_blank\" class=\"icon-item\">\n <lib-icon class=\"text-primary\" iconName=\"instagram\" iconSize=\"medium-small\"/>\n </a>\n\n <a href=\"https://br.linkedin.com/company/sispro\" target=\"_blank\" class=\"icon-item\">\n <lib-icon class=\"text-primary\" iconName=\"linkedin\" iconSize=\"medium-small\"/>\n </a>\n </div>\n </footer>\n</div>\n <!-- #endregion FOOTER -->\n", styles: [".footer-position{margin:1.5rem 0;font-size:.875rem;color:#2847a0;white-space:nowrap}.footer-position .sispro{margin:0 5px}.footer-position .icons .icon-item{margin:0 10px}\n"] }]
|
|
23
|
+
args: [{ selector: '[app-footer], app-footer, lib-footer', standalone: true, imports: [LibIconsComponent], template: " <!-- #region FOOTER -->\n\n<div class=\"footer-position d-flex align-items-end justify-content-center position-relative\">\n <footer>\n <p class=\"footer-text d-flex justify-content-center\">\n Desenvolvido por <a href=\"https://www.sispro.com.br/\" target=\"_blank\" class=\"sispro text-decoration-none fw-bold text-primary\"> SISPRO </a> - Servi\u00E7os e Tecnologia da informa\u00E7\u00E3o LTDA \u00A9 {{ year }} Todos os direitos reservados\n </p>\n\n <div class=\"icons d-flex align-items-center justify-content-center mt-3\">\n <a href=\"https://pt-br.facebook.com/SisproERP/\" target=\"_blank\" class=\"icon-item\">\n <lib-icon class=\"text-primary\" iconName=\"facebook\" iconSize=\"medium-small\"/>\n </a>\n\n <a href=\"https://www.instagram.com/accounts/login/?next=/sispro_software/\" target=\"_blank\" class=\"icon-item\">\n <lib-icon class=\"text-primary\" iconName=\"instagram\" iconSize=\"medium-small\"/>\n </a>\n\n <a href=\"https://br.linkedin.com/company/sispro\" target=\"_blank\" class=\"icon-item\">\n <lib-icon class=\"text-primary\" iconName=\"linkedin\" iconSize=\"medium-small\"/>\n </a>\n </div>\n </footer>\n</div>\n <!-- #endregion FOOTER -->\n", styles: [".footer-position{margin:1.5rem 0;font-size:.875rem;color:#2847a0;white-space:nowrap}.footer-position .sispro{margin:0 5px}.footer-position .icons .icon-item{margin:0 10px}\n"] }]
|
|
24
24
|
}], ctorParameters: () => [{ type: i0.ElementRef }] });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1pbmZyYS9zcmMvbGliL2NvbXBvbmVudHMvZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7O0FBU2hGLE1BQU0sT0FBTyxlQUFlO0lBQzFCLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBRWxDLGdCQUFXLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQTtRQUN4QixTQUFJLEdBQVcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUhSLENBQUM7SUFLdkMsUUFBUTtRQUNOLE1BQU0sTUFBTSxHQUFnQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQTRCLENBQUM7UUFDakUsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQzdCLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUM5QixNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDckMsTUFBTSxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxDQUFJLFVBQVU7SUFDdEQsQ0FBQzsrR0FiVSxlQUFlO21HQUFmLGVBQWUsZ0dDVjVCLGd1Q0F3QkEsdU9EaEJjLGlCQUFpQjs7NEZBRWxCLGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0ksc0NBQXNDLGNBR3BDLElBQUksV0FDUCxDQUFDLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExpYkljb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy9saWItaWNvbnMvbGliLWljb25zLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW2FwcC1mb290ZXJdLCBhcHAtZm9vdGVyLCBsaWItZm9vdGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9vdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mb290ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtMaWJJY29uc0NvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgRm9vdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikgeyB9XG5cbiAgY3VycmVudFRpbWUgPSBuZXcgRGF0ZSgpXG4gIHllYXI6IG51bWJlciA9IHRoaXMuY3VycmVudFRpbWUuZ2V0RnVsbFllYXIoKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBodG1sRWw6IEhUTUxFbGVtZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIGh0bWxFbC5zdHlsZS5oZWlnaHQgPSBcIjEwMCVcIjtcbiAgICBodG1sRWwuc3R5bGUuZGlzcGxheSA9IFwiZmxleFwiO1xuICAgIGh0bWxFbC5zdHlsZS5hbGlnbkl0ZW1zID0gXCJmbGV4LWVuZFwiO1xuICAgIGh0bWxFbC5zdHlsZS5qdXN0aWZ5Q29udGVudCA9IFwiY2VudGVyXCI7XG4gICAgaHRtbEVsLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IFwiI2VlZVwiOyAgICAvLyBbIV0gICAgXG4gIH1cblxufVxuIiwiICA8IS0tICNyZWdpb24gRk9PVEVSIC0tPlxuXG48ZGl2IGNsYXNzPVwiZm9vdGVyLXBvc2l0aW9uIGQtZmxleCBhbGlnbi1pdGVtcy1lbmQganVzdGlmeS1jb250ZW50LWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxuICA8Zm9vdGVyPlxuICAgIDxwIGNsYXNzPVwiZm9vdGVyLXRleHQgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICAgIERlc2Vudm9sdmlkbyBwb3IgPGEgaHJlZj1cImh0dHBzOi8vd3d3LnNpc3Byby5jb20uYnIvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgY2xhc3M9XCJzaXNwcm8gdGV4dC1kZWNvcmF0aW9uLW5vbmUgZnctYm9sZCB0ZXh0LXByaW1hcnlcIj4gU0lTUFJPIDwvYT4gLSBTZXJ2acOnb3MgZSBUZWNub2xvZ2lhIGRhIGluZm9ybWHDp8OjbyBMVERBIMKpIHt7IHllYXIgfX0gVG9kb3Mgb3MgZGlyZWl0b3MgcmVzZXJ2YWRvc1xuICAgIDwvcD5cblxuICAgIDxkaXYgY2xhc3M9XCJpY29ucyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgbXQtM1wiPlxuICAgICAgPGEgaHJlZj1cImh0dHBzOi8vcHQtYnIuZmFjZWJvb2suY29tL1Npc3Byb0VSUC9cIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cImljb24taXRlbVwiPlxuICAgICAgICA8bGliLWljb24gY2xhc3M9XCJ0ZXh0LXByaW1hcnlcIiBpY29uTmFtZT1cImZhY2Vib29rXCIgaWNvblNpemU9XCJtZWRpdW0tc21hbGxcIi8+XG4gICAgICA8L2E+XG5cbiAgICAgIDxhIGhyZWY9XCJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL2FjY291bnRzL2xvZ2luLz9uZXh0PS9zaXNwcm9fc29mdHdhcmUvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgY2xhc3M9XCJpY29uLWl0ZW1cIj5cbiAgICAgICAgPGxpYi1pY29uIGNsYXNzPVwidGV4dC1wcmltYXJ5XCIgaWNvbk5hbWU9XCJpbnN0YWdyYW1cIiBpY29uU2l6ZT1cIm1lZGl1bS1zbWFsbFwiLz5cbiAgICAgIDwvYT5cblxuICAgICAgPGEgaHJlZj1cImh0dHBzOi8vYnIubGlua2VkaW4uY29tL2NvbXBhbnkvc2lzcHJvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgY2xhc3M9XCJpY29uLWl0ZW1cIj5cbiAgICAgICAgPGxpYi1pY29uIGNsYXNzPVwidGV4dC1wcmltYXJ5XCIgaWNvbk5hbWU9XCJsaW5rZWRpblwiIGljb25TaXplPVwibWVkaXVtLXNtYWxsXCIvPlxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuICA8L2Zvb3Rlcj5cbjwvZGl2PlxuICA8IS0tICNlbmRyZWdpb24gRk9PVEVSIC0tPlxuIl19
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
|
-
import { FormControl, FormGroup, Validators } from '@angular/forms';
|
|
2
|
+
import { FormControl, FormGroup, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
3
3
|
import { FormUtils } from '../../utils/form-utils';
|
|
4
4
|
import { InfraSegConfig } from '../../models/config-senha/7Db/InfraSegConfig.record';
|
|
5
|
+
import { LibSpinnerComponent } from '../../widgets/spinner/spinner.component';
|
|
6
|
+
import { FieldErrorMessageComponent } from '../../widgets/field-error-message/field-error-message.component';
|
|
7
|
+
import { RequiredDirective } from '../../directives/required.directive';
|
|
8
|
+
import { TooltipModule } from 'ngx-bootstrap/tooltip';
|
|
9
|
+
import { LibIconsComponent } from '../../widgets/lib-icons/lib-icons.component';
|
|
10
|
+
import { NgIf, NgClass } from '@angular/common';
|
|
11
|
+
import { ContentContainerComponent } from '../../widgets/content-container/content-container.component';
|
|
12
|
+
import { LibHeaderComponent } from '../../widgets/lib-header/lib-header.component';
|
|
5
13
|
import * as i0 from "@angular/core";
|
|
6
14
|
import * as i1 from "../../service/configuracao-senha.service";
|
|
7
15
|
import * as i2 from "../../message/message.service";
|
|
8
16
|
import * as i3 from "../../service/tenant.service";
|
|
9
17
|
import * as i4 from "@angular/platform-browser";
|
|
10
|
-
import * as i5 from "@angular/
|
|
18
|
+
import * as i5 from "@angular/forms";
|
|
11
19
|
import * as i6 from "ngx-bootstrap/tooltip";
|
|
12
|
-
import * as i7 from "@angular/forms";
|
|
13
|
-
import * as i8 from "../../widgets/field-error-message/field-error-message.component";
|
|
14
|
-
import * as i9 from "../../directives/required.directive";
|
|
15
|
-
import * as i10 from "../../widgets/lib-header/lib-header.component";
|
|
16
|
-
import * as i11 from "../../widgets/lib-icons/lib-icons.component";
|
|
17
|
-
import * as i12 from "../../widgets/content-container/content-container.component";
|
|
18
|
-
import * as i13 from "../../widgets/spinner/spinner.component";
|
|
19
20
|
export class LibConfigSenhaComponent {
|
|
20
21
|
// #endregion PUBLIC
|
|
21
22
|
// #endregion ==========> PROPERTIES <==========
|
|
@@ -182,11 +183,11 @@ export class LibConfigSenhaComponent {
|
|
|
182
183
|
break;
|
|
183
184
|
}
|
|
184
185
|
}
|
|
185
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
186
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibConfigSenhaComponent, selector: "lib-config-senha", ngImport: i0, template: "<lib-header [breadcrumbList]=\"[ 'Infra', 'Configura\u00E7\u00E3o de Senha' ]\" pageTitle=\"Configura\u00E7\u00E3o de Senha\"\n mode=\"edit\" [hideButtons]=\"[ 'Cancelar' ]\" (create)=\"onSubmit()\" (update)=\"onSubmit()\" />\n\n\n<!-- #region BODY -->\n<lib-container>\n\n <div innerContent1>\n <form *ngIf=\"$infraSegConfigRecord; else loading\" [formGroup]=\"form\">\n\n <div class=\"d-flex justify-content-start align-items-center\">\n <div class=\"mb-3\">\n <h2 class=\"fs-5\">Atualmente seu n\u00EDvel de seguran\u00E7a \u00E9 \n <span class=\"rounded text-white p-1 px-2 fw-bold\"\n [ngClass]=\"{\n 'bg-danger': initialLevel === 1,\n 'bg-warning': initialLevel === 2,\n 'bg-success': initialLevel === 3,\n 'bg-primary': initialLevel === 4,\n }\" >\n\n @switch (initialLevel) {\n @case (1) { Baixo }\n @case (2) { M\u00E9dio }\n @case (3) { Alto }\n @case (4) { Personalizado }\n }\n\n <!-- <strong *ngIf=\"initialLevel === 1\"> Baixo </strong>\n <strong class=\"text-dark\" *ngIf=\"initialLevel === 2\"> M\u00E9dio </strong>\n <strong *ngIf=\"initialLevel === 3\"> Alto </strong>\n <strong *ngIf=\"initialLevel === 4\"> Personalizado </strong> -->\n </span>\n </h2>\n </div>\n </div>\n <div class=\"border rounded mb-4\">\n <div class=\"card-body\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">Selecione um n\u00EDvel de seguran\u00E7a abaixo:</h3>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option1\" autocomplete=\"off\" [value]=\"1\" (change)=\"onSelectLevel(Level)\" >\n <label [class.btn-outline-danger]=\"Level === 1\" [class.bg-danger]=\"Level === 1\" class=\"btn btn-secondary m-2\" for=\"option1\"><lib-icon iconName=\"cadeado-aberto-outline\"/> Baixo </label>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option2\" autocomplete=\"off\" [value]=\"2\" (change)=\"onSelectLevel(Level)\" >\n <label [class.bg-warning]=\"Level === 2\" [class.btn-outline-warning]=\"Level === 2\" class=\" btn btn-secondary text-light m-2\" for=\"option2\"><lib-icon iconName=\"cadeado-semiaberto-outline\"/> M\u00E9dio</label>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option3\" autocomplete=\"off\" [value]=\"3\" (change)=\"onSelectLevel(Level)\" >\n <label [class.btn-outline-success]=\"Level === 3\" [class.bg-success]=\"Level === 3\" class=\"btn btn-secondary m-2\" for=\"option3\"><lib-icon iconName=\"cadeado-outline\"/> Alto</label>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option4\" autocomplete=\"off\" [value]=\"4\" (change)=\"onSelectLevel(Level)\" >\n <label [class.btn-outline-primary]=\"Level === 4\" [class.bg-primary]=\"Level === 4\" class=\"btn btn-secondary m-2\" for=\"option4\"><lib-icon iconName=\"chave\"/> Personalizado</label>\n </div>\n </div>\n\n <div class=\"border rounded p-3 mb-4\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">A senha deve conter:</h3>\n\n <div class=\"row\">\n <div class=\"col-3\">\n <div class=\"form-check form-switch\">\n <label class=\"form-check-label\" for=\"numeros\"> N\u00FAmero </label>\n <input formControlName=\"Is_Numeros\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"numeros\">\n </div>\n <div class=\"form-check form-switch\">\n <label class=\"form-check-label\" for=\"letraMaiuscula\"> Letra Mai\u00FAscula </label>\n <input formControlName=\"Is_LetrasMaiusculas\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"letraMaiuscula\">\n </div>\n <div class=\"form-check form-switch\">\n <label class=\"form-check-label\" for=\"caracteresEspeciais\">Caractere especial</label>\n <input formControlName=\"Is_CaracteresEspeciais\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"caracteresEspeciais\">\n <lib-icon class=\"ms-1\" iconName=\"info\" iconColor=\"blue\" iconSize=\"small\" tooltip=\"Caracteres sugeridos: ! @ # $ % & * ( ) _ + = [ ] { } | ?\" />\n </div>\n </div>\n\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"qtnTrocaSenhaInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe a quantidade em dias que a senha ser\u00E1 v\u00E1lida, ap\u00F3s este per\u00EDodo a senha dever\u00E1 ser trocada pelo usu\u00E1rio.\" />\n Validade em dias\n </label>\n <input formControlName=\"QtnTrocaSenha\" type=\"number\" class=\"form-control form-input\" id=\"qtnTrocaSenhaInput\" tooltip=\"Informe a quantidade em dias que a senha ser\u00E1 v\u00E1lida, ap\u00F3s este per\u00EDodo a senha dever\u00E1 ser trocada pelo usu\u00E1rio.\" >\n <app-field-error-message [control]=\"form.get('QtnTrocaSenha')\"></app-field-error-message>\n </div>\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"qtnMinimaInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe a quantidade m\u00EDnima de caracteres que a senha deve ter.\" />\n Tamanho m\u00EDnimo\n </label>\n <input formControlName=\"QtnMinima\" type=\"number\" class=\"form-control form-input\" id=\"qtnMinimaInput\" tooltip=\"Informe a quantidade m\u00EDnima de caracteres que a senha deve ter.\">\n <app-field-error-message [control]=\"form.get('QtnMinima')\"></app-field-error-message>\n </div>\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"qtnRepeticaoInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe quantas senhas diferentes o usu\u00E1rio dever\u00E1 usar antes que possa repetir alguma j\u00E1 utilizada.\" />\n Repeti\u00E7\u00E3o\n </label>\n <input formControlName=\"QtnRepeticao\" type=\"number\" class=\"form-control form-input\" id=\"qtnRepeticaoInput\" tooltip=\"Informe quantas senhas diferentes o usu\u00E1rio dever\u00E1 usar antes que possa repetir alguma j\u00E1 utilizada.\">\n <app-field-error-message [control]=\"form.get('QtnRepeticao')\"></app-field-error-message>\n </div>\n \n <!-- <div class=\"container col row\">\n \n </div> -->\n </div>\n </div>\n\n <div class=\"border rounded p-3\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">Bloqueios:</h3>\n\n <div class=\"row\">\n <!-- <div class=\"col-2 form-check form-switch\">\n <label class=\"form-check-label\" for=\"isDropSessionCheck\"> Derrubar multiplas sess\u00F5es</label>\n <input class=\"form-check-input\" id=\"isDropSessionCheck\" formControlName=\"Is_DropSession\" type=\"checkbox\" role=\"switch\">\n </div> -->\n \n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"diasInatividadeInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe quantos dias um usu\u00E1rio poder\u00E1 ficar sem entrar no sistema, ao exceder este n\u00FAmero o usu\u00E1rio ser\u00E1 desativado perdendo o acesso ao sistema, e somente os Administradores poder\u00E3o ativ\u00E1-lo novamente.\" />\n Dias de Inatividade\n </label>\n <input id=\"diasInatividadeInput\" formControlName=\"QtnInatividade\" type=\"number\" class=\"form-control form-input\" tooltip=\"Informe quantos dias um usu\u00E1rio poder\u00E1 ficar sem entrar no sistema, ao exceder este n\u00FAmero o usu\u00E1rio ser\u00E1 desativado perdendo o acesso ao sistema, e somente os Administradores poder\u00E3o ativ\u00E1-lo novamente.\">\n <app-field-error-message [control]=\"form.get('QtnInatividade')\"></app-field-error-message>\n </div>\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"tentativasDeAcessoInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe a quantidade de tentativas consecutivas de acesso ao sistema sem sucesso antes de bloquear o usu\u00E1rio, exigindo que ele fa\u00E7a uma recupera\u00E7\u00E3o de senha.\" />\n Tentativas de acesso\n </label>\n <input id=\"tentativasDeAcessoInput\" formControlName=\"QtnTentativa\" type=\"number\" class=\"form-control form-input\" tooltip=\"Informe a quantidade de tentativas consecutivas de acesso ao sistema sem sucesso antes de bloquear o usu\u00E1rio, exigindo que ele fa\u00E7a uma recupera\u00E7\u00E3o de senha.\">\n <app-field-error-message [control]=\"form.get('QtnTentativa')\"></app-field-error-message>\n </div>\n\n <!-- <div class=\"container col-6 row\">\n\n </div> -->\n </div>\n </div>\n\n <!-- Palavras do Guilherme: \"oculteia eles\", \"um dia implementamos\" -->\n <!-- #region MARK: LINKS OCULTADOS -->\n <!-- <div class=\"card p-3 mt-3\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">Redefini\u00E7\u00E3o de senha:</h3>\n <a href=\"#\" class=\"link-primary\">Obrigar todos os usu\u00E1rios a trocarem sua senha no pr\u00F3ximo login</a>\n <a href=\"#\" class=\"link-primary\">Selecionar usu\u00E1rios para trocarem sua senha no pr\u00F3ximo login</a>\n </div> -->\n <!-- #endregion LINKS OCULTADOS -->\n\n\n <!-- <div class=\"border rounded\">\n <div class=\"card-body\">\n \n\n </div>\n </div> -->\n\n </form>\n </div>\n\n</lib-container>\n<!-- #endregion BODY -->\n\n<!-- #region SPINNER -->\n<ng-template #loading>\n <div class=\"w-100 text-center\">\n <!-- <div class=\"spinner-border\" style=\"width: 3rem; height: 3rem;\" role=\"status\"> <span class=\"visually-hidden\">Carregando...</span> </div> -->\n <lib-spinner />\n </div>\n</ng-template>\n\n<ng-template #loadingIsAtivo>\n <div class=\"spinner-border spinner-border-sm me-2\" role=\"status\"> <span class=\"visually-hidden\">Carregando...</span> </div>\n</ng-template>\n<!-- #endregion SPINNER -->\n", styles: [""], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.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: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i7.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i7.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i8.FieldErrorMessageComponent, selector: "app-field-error-message, lib-error-message", inputs: ["customMessage", "control", "label"] }, { kind: "directive", type: i9.RequiredDirective, selector: "label[libRequired], span[libRequired], p[libRequired]", inputs: ["libRequired", "requiredID"] }, { kind: "component", type: i10.LibHeaderComponent, selector: "lib-header", inputs: ["breadcrumbList", "pageTitle", "mode", "hideButtons", "formGroup", "showSpinner"], outputs: ["onReturn", "return", "onCreate", "create", "onUpdate", "update"] }, { kind: "component", type: i11.LibIconsComponent, selector: "lib-icon", inputs: ["iconName", "iconColor", "iconSize", "iconFill"] }, { kind: "component", type: i12.ContentContainerComponent, selector: "lib-container", inputs: ["documentation", "tabs", "advancedTabs", "containerTitle", "currentTab"], outputs: ["onChangeTab"] }, { kind: "component", type: i13.LibSpinnerComponent, selector: "lib-spinner", inputs: ["type", "theme", "size", "text"] }] }); }
|
|
186
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LibConfigSenhaComponent, deps: [{ token: i1.ConfiguracaoSenhaService }, { token: i2.MessageService }, { token: i3.TenantService }, { token: i4.Title }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
187
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: LibConfigSenhaComponent, isStandalone: true, selector: "lib-config-senha", ngImport: i0, template: "<lib-header [breadcrumbList]=\"[ 'Infra', 'Configura\u00E7\u00E3o de Senha' ]\" pageTitle=\"Configura\u00E7\u00E3o de Senha\"\n mode=\"edit\" [hideButtons]=\"[ 'Cancelar' ]\" (create)=\"onSubmit()\" (update)=\"onSubmit()\" />\n\n\n<!-- #region BODY -->\n<lib-container>\n\n <div innerContent1>\n <form *ngIf=\"$infraSegConfigRecord; else loading\" [formGroup]=\"form\">\n\n <div class=\"d-flex justify-content-start align-items-center\">\n <div class=\"mb-3\">\n <h2 class=\"fs-5\">Atualmente seu n\u00EDvel de seguran\u00E7a \u00E9 \n <span class=\"rounded text-white p-1 px-2 fw-bold\"\n [ngClass]=\"{\n 'bg-danger': initialLevel === 1,\n 'bg-warning': initialLevel === 2,\n 'bg-success': initialLevel === 3,\n 'bg-primary': initialLevel === 4,\n }\" >\n\n @switch (initialLevel) {\n @case (1) { Baixo }\n @case (2) { M\u00E9dio }\n @case (3) { Alto }\n @case (4) { Personalizado }\n }\n\n <!-- <strong *ngIf=\"initialLevel === 1\"> Baixo </strong>\n <strong class=\"text-dark\" *ngIf=\"initialLevel === 2\"> M\u00E9dio </strong>\n <strong *ngIf=\"initialLevel === 3\"> Alto </strong>\n <strong *ngIf=\"initialLevel === 4\"> Personalizado </strong> -->\n </span>\n </h2>\n </div>\n </div>\n <div class=\"border rounded mb-4\">\n <div class=\"card-body\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">Selecione um n\u00EDvel de seguran\u00E7a abaixo:</h3>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option1\" autocomplete=\"off\" [value]=\"1\" (change)=\"onSelectLevel(Level)\" >\n <label [class.btn-outline-danger]=\"Level === 1\" [class.bg-danger]=\"Level === 1\" class=\"btn btn-secondary m-2\" for=\"option1\"><lib-icon iconName=\"cadeado-aberto-outline\"/> Baixo </label>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option2\" autocomplete=\"off\" [value]=\"2\" (change)=\"onSelectLevel(Level)\" >\n <label [class.bg-warning]=\"Level === 2\" [class.btn-outline-warning]=\"Level === 2\" class=\" btn btn-secondary text-light m-2\" for=\"option2\"><lib-icon iconName=\"cadeado-semiaberto-outline\"/> M\u00E9dio</label>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option3\" autocomplete=\"off\" [value]=\"3\" (change)=\"onSelectLevel(Level)\" >\n <label [class.btn-outline-success]=\"Level === 3\" [class.bg-success]=\"Level === 3\" class=\"btn btn-secondary m-2\" for=\"option3\"><lib-icon iconName=\"cadeado-outline\"/> Alto</label>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option4\" autocomplete=\"off\" [value]=\"4\" (change)=\"onSelectLevel(Level)\" >\n <label [class.btn-outline-primary]=\"Level === 4\" [class.bg-primary]=\"Level === 4\" class=\"btn btn-secondary m-2\" for=\"option4\"><lib-icon iconName=\"chave\"/> Personalizado</label>\n </div>\n </div>\n\n <div class=\"border rounded p-3 mb-4\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">A senha deve conter:</h3>\n\n <div class=\"row\">\n <div class=\"col-3\">\n <div class=\"form-check form-switch\">\n <label class=\"form-check-label\" for=\"numeros\"> N\u00FAmero </label>\n <input formControlName=\"Is_Numeros\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"numeros\">\n </div>\n <div class=\"form-check form-switch\">\n <label class=\"form-check-label\" for=\"letraMaiuscula\"> Letra Mai\u00FAscula </label>\n <input formControlName=\"Is_LetrasMaiusculas\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"letraMaiuscula\">\n </div>\n <div class=\"form-check form-switch\">\n <label class=\"form-check-label\" for=\"caracteresEspeciais\">Caractere especial</label>\n <input formControlName=\"Is_CaracteresEspeciais\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"caracteresEspeciais\">\n <lib-icon class=\"ms-1\" iconName=\"info\" iconColor=\"blue\" iconSize=\"small\" tooltip=\"Caracteres sugeridos: ! @ # $ % & * ( ) _ + = [ ] { } | ?\" />\n </div>\n </div>\n\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"qtnTrocaSenhaInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe a quantidade em dias que a senha ser\u00E1 v\u00E1lida, ap\u00F3s este per\u00EDodo a senha dever\u00E1 ser trocada pelo usu\u00E1rio.\" />\n Validade em dias\n </label>\n <input formControlName=\"QtnTrocaSenha\" type=\"number\" class=\"form-control form-input\" id=\"qtnTrocaSenhaInput\" tooltip=\"Informe a quantidade em dias que a senha ser\u00E1 v\u00E1lida, ap\u00F3s este per\u00EDodo a senha dever\u00E1 ser trocada pelo usu\u00E1rio.\" >\n <app-field-error-message [control]=\"form.get('QtnTrocaSenha')\"></app-field-error-message>\n </div>\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"qtnMinimaInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe a quantidade m\u00EDnima de caracteres que a senha deve ter.\" />\n Tamanho m\u00EDnimo\n </label>\n <input formControlName=\"QtnMinima\" type=\"number\" class=\"form-control form-input\" id=\"qtnMinimaInput\" tooltip=\"Informe a quantidade m\u00EDnima de caracteres que a senha deve ter.\">\n <app-field-error-message [control]=\"form.get('QtnMinima')\"></app-field-error-message>\n </div>\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"qtnRepeticaoInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe quantas senhas diferentes o usu\u00E1rio dever\u00E1 usar antes que possa repetir alguma j\u00E1 utilizada.\" />\n Repeti\u00E7\u00E3o\n </label>\n <input formControlName=\"QtnRepeticao\" type=\"number\" class=\"form-control form-input\" id=\"qtnRepeticaoInput\" tooltip=\"Informe quantas senhas diferentes o usu\u00E1rio dever\u00E1 usar antes que possa repetir alguma j\u00E1 utilizada.\">\n <app-field-error-message [control]=\"form.get('QtnRepeticao')\"></app-field-error-message>\n </div>\n \n <!-- <div class=\"container col row\">\n \n </div> -->\n </div>\n </div>\n\n <div class=\"border rounded p-3\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">Bloqueios:</h3>\n\n <div class=\"row\">\n <!-- <div class=\"col-2 form-check form-switch\">\n <label class=\"form-check-label\" for=\"isDropSessionCheck\"> Derrubar multiplas sess\u00F5es</label>\n <input class=\"form-check-input\" id=\"isDropSessionCheck\" formControlName=\"Is_DropSession\" type=\"checkbox\" role=\"switch\">\n </div> -->\n \n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"diasInatividadeInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe quantos dias um usu\u00E1rio poder\u00E1 ficar sem entrar no sistema, ao exceder este n\u00FAmero o usu\u00E1rio ser\u00E1 desativado perdendo o acesso ao sistema, e somente os Administradores poder\u00E3o ativ\u00E1-lo novamente.\" />\n Dias de Inatividade\n </label>\n <input id=\"diasInatividadeInput\" formControlName=\"QtnInatividade\" type=\"number\" class=\"form-control form-input\" tooltip=\"Informe quantos dias um usu\u00E1rio poder\u00E1 ficar sem entrar no sistema, ao exceder este n\u00FAmero o usu\u00E1rio ser\u00E1 desativado perdendo o acesso ao sistema, e somente os Administradores poder\u00E3o ativ\u00E1-lo novamente.\">\n <app-field-error-message [control]=\"form.get('QtnInatividade')\"></app-field-error-message>\n </div>\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"tentativasDeAcessoInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe a quantidade de tentativas consecutivas de acesso ao sistema sem sucesso antes de bloquear o usu\u00E1rio, exigindo que ele fa\u00E7a uma recupera\u00E7\u00E3o de senha.\" />\n Tentativas de acesso\n </label>\n <input id=\"tentativasDeAcessoInput\" formControlName=\"QtnTentativa\" type=\"number\" class=\"form-control form-input\" tooltip=\"Informe a quantidade de tentativas consecutivas de acesso ao sistema sem sucesso antes de bloquear o usu\u00E1rio, exigindo que ele fa\u00E7a uma recupera\u00E7\u00E3o de senha.\">\n <app-field-error-message [control]=\"form.get('QtnTentativa')\"></app-field-error-message>\n </div>\n\n <!-- <div class=\"container col-6 row\">\n\n </div> -->\n </div>\n </div>\n\n <!-- Palavras do Guilherme: \"oculteia eles\", \"um dia implementamos\" -->\n <!-- #region MARK: LINKS OCULTADOS -->\n <!-- <div class=\"card p-3 mt-3\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">Redefini\u00E7\u00E3o de senha:</h3>\n <a href=\"#\" class=\"link-primary\">Obrigar todos os usu\u00E1rios a trocarem sua senha no pr\u00F3ximo login</a>\n <a href=\"#\" class=\"link-primary\">Selecionar usu\u00E1rios para trocarem sua senha no pr\u00F3ximo login</a>\n </div> -->\n <!-- #endregion LINKS OCULTADOS -->\n\n\n <!-- <div class=\"border rounded\">\n <div class=\"card-body\">\n \n\n </div>\n </div> -->\n\n </form>\n </div>\n\n</lib-container>\n<!-- #endregion BODY -->\n\n<!-- #region SPINNER -->\n<ng-template #loading>\n <div class=\"w-100 text-center\">\n <!-- <div class=\"spinner-border\" style=\"width: 3rem; height: 3rem;\" role=\"status\"> <span class=\"visually-hidden\">Carregando...</span> </div> -->\n <lib-spinner />\n </div>\n</ng-template>\n\n<ng-template #loadingIsAtivo>\n <div class=\"spinner-border spinner-border-sm me-2\" role=\"status\"> <span class=\"visually-hidden\">Carregando...</span> </div>\n</ng-template>\n<!-- #endregion SPINNER -->\n", styles: [""], dependencies: [{ kind: "component", type: LibHeaderComponent, selector: "lib-header", inputs: ["breadcrumbList", "pageTitle", "mode", "hideButtons", "formGroup", "showSpinner"], outputs: ["onReturn", "return", "onCreate", "create", "onUpdate", "update"] }, { kind: "component", type: ContentContainerComponent, selector: "lib-container", inputs: ["documentation", "tabs", "advancedTabs", "containerTitle", "currentTab"], outputs: ["onChangeTab"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LibIconsComponent, selector: "lib-icon", inputs: ["iconName", "iconColor", "iconSize", "iconFill"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i6.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: "directive", type: RequiredDirective, selector: "label[libRequired], span[libRequired], p[libRequired]", inputs: ["libRequired", "requiredID"] }, { kind: "component", type: FieldErrorMessageComponent, selector: "app-field-error-message, lib-error-message", inputs: ["customMessage", "control", "label"] }, { kind: "component", type: LibSpinnerComponent, selector: "lib-spinner", inputs: ["type", "theme", "size", "text"] }] }); }
|
|
187
188
|
}
|
|
188
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
189
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LibConfigSenhaComponent, decorators: [{
|
|
189
190
|
type: Component,
|
|
190
|
-
args: [{ selector: 'lib-config-senha', template: "<lib-header [breadcrumbList]=\"[ 'Infra', 'Configura\u00E7\u00E3o de Senha' ]\" pageTitle=\"Configura\u00E7\u00E3o de Senha\"\n mode=\"edit\" [hideButtons]=\"[ 'Cancelar' ]\" (create)=\"onSubmit()\" (update)=\"onSubmit()\" />\n\n\n<!-- #region BODY -->\n<lib-container>\n\n <div innerContent1>\n <form *ngIf=\"$infraSegConfigRecord; else loading\" [formGroup]=\"form\">\n\n <div class=\"d-flex justify-content-start align-items-center\">\n <div class=\"mb-3\">\n <h2 class=\"fs-5\">Atualmente seu n\u00EDvel de seguran\u00E7a \u00E9 \n <span class=\"rounded text-white p-1 px-2 fw-bold\"\n [ngClass]=\"{\n 'bg-danger': initialLevel === 1,\n 'bg-warning': initialLevel === 2,\n 'bg-success': initialLevel === 3,\n 'bg-primary': initialLevel === 4,\n }\" >\n\n @switch (initialLevel) {\n @case (1) { Baixo }\n @case (2) { M\u00E9dio }\n @case (3) { Alto }\n @case (4) { Personalizado }\n }\n\n <!-- <strong *ngIf=\"initialLevel === 1\"> Baixo </strong>\n <strong class=\"text-dark\" *ngIf=\"initialLevel === 2\"> M\u00E9dio </strong>\n <strong *ngIf=\"initialLevel === 3\"> Alto </strong>\n <strong *ngIf=\"initialLevel === 4\"> Personalizado </strong> -->\n </span>\n </h2>\n </div>\n </div>\n <div class=\"border rounded mb-4\">\n <div class=\"card-body\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">Selecione um n\u00EDvel de seguran\u00E7a abaixo:</h3>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option1\" autocomplete=\"off\" [value]=\"1\" (change)=\"onSelectLevel(Level)\" >\n <label [class.btn-outline-danger]=\"Level === 1\" [class.bg-danger]=\"Level === 1\" class=\"btn btn-secondary m-2\" for=\"option1\"><lib-icon iconName=\"cadeado-aberto-outline\"/> Baixo </label>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option2\" autocomplete=\"off\" [value]=\"2\" (change)=\"onSelectLevel(Level)\" >\n <label [class.bg-warning]=\"Level === 2\" [class.btn-outline-warning]=\"Level === 2\" class=\" btn btn-secondary text-light m-2\" for=\"option2\"><lib-icon iconName=\"cadeado-semiaberto-outline\"/> M\u00E9dio</label>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option3\" autocomplete=\"off\" [value]=\"3\" (change)=\"onSelectLevel(Level)\" >\n <label [class.btn-outline-success]=\"Level === 3\" [class.bg-success]=\"Level === 3\" class=\"btn btn-secondary m-2\" for=\"option3\"><lib-icon iconName=\"cadeado-outline\"/> Alto</label>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option4\" autocomplete=\"off\" [value]=\"4\" (change)=\"onSelectLevel(Level)\" >\n <label [class.btn-outline-primary]=\"Level === 4\" [class.bg-primary]=\"Level === 4\" class=\"btn btn-secondary m-2\" for=\"option4\"><lib-icon iconName=\"chave\"/> Personalizado</label>\n </div>\n </div>\n\n <div class=\"border rounded p-3 mb-4\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">A senha deve conter:</h3>\n\n <div class=\"row\">\n <div class=\"col-3\">\n <div class=\"form-check form-switch\">\n <label class=\"form-check-label\" for=\"numeros\"> N\u00FAmero </label>\n <input formControlName=\"Is_Numeros\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"numeros\">\n </div>\n <div class=\"form-check form-switch\">\n <label class=\"form-check-label\" for=\"letraMaiuscula\"> Letra Mai\u00FAscula </label>\n <input formControlName=\"Is_LetrasMaiusculas\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"letraMaiuscula\">\n </div>\n <div class=\"form-check form-switch\">\n <label class=\"form-check-label\" for=\"caracteresEspeciais\">Caractere especial</label>\n <input formControlName=\"Is_CaracteresEspeciais\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"caracteresEspeciais\">\n <lib-icon class=\"ms-1\" iconName=\"info\" iconColor=\"blue\" iconSize=\"small\" tooltip=\"Caracteres sugeridos: ! @ # $ % & * ( ) _ + = [ ] { } | ?\" />\n </div>\n </div>\n\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"qtnTrocaSenhaInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe a quantidade em dias que a senha ser\u00E1 v\u00E1lida, ap\u00F3s este per\u00EDodo a senha dever\u00E1 ser trocada pelo usu\u00E1rio.\" />\n Validade em dias\n </label>\n <input formControlName=\"QtnTrocaSenha\" type=\"number\" class=\"form-control form-input\" id=\"qtnTrocaSenhaInput\" tooltip=\"Informe a quantidade em dias que a senha ser\u00E1 v\u00E1lida, ap\u00F3s este per\u00EDodo a senha dever\u00E1 ser trocada pelo usu\u00E1rio.\" >\n <app-field-error-message [control]=\"form.get('QtnTrocaSenha')\"></app-field-error-message>\n </div>\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"qtnMinimaInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe a quantidade m\u00EDnima de caracteres que a senha deve ter.\" />\n Tamanho m\u00EDnimo\n </label>\n <input formControlName=\"QtnMinima\" type=\"number\" class=\"form-control form-input\" id=\"qtnMinimaInput\" tooltip=\"Informe a quantidade m\u00EDnima de caracteres que a senha deve ter.\">\n <app-field-error-message [control]=\"form.get('QtnMinima')\"></app-field-error-message>\n </div>\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"qtnRepeticaoInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe quantas senhas diferentes o usu\u00E1rio dever\u00E1 usar antes que possa repetir alguma j\u00E1 utilizada.\" />\n Repeti\u00E7\u00E3o\n </label>\n <input formControlName=\"QtnRepeticao\" type=\"number\" class=\"form-control form-input\" id=\"qtnRepeticaoInput\" tooltip=\"Informe quantas senhas diferentes o usu\u00E1rio dever\u00E1 usar antes que possa repetir alguma j\u00E1 utilizada.\">\n <app-field-error-message [control]=\"form.get('QtnRepeticao')\"></app-field-error-message>\n </div>\n \n <!-- <div class=\"container col row\">\n \n </div> -->\n </div>\n </div>\n\n <div class=\"border rounded p-3\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">Bloqueios:</h3>\n\n <div class=\"row\">\n <!-- <div class=\"col-2 form-check form-switch\">\n <label class=\"form-check-label\" for=\"isDropSessionCheck\"> Derrubar multiplas sess\u00F5es</label>\n <input class=\"form-check-input\" id=\"isDropSessionCheck\" formControlName=\"Is_DropSession\" type=\"checkbox\" role=\"switch\">\n </div> -->\n \n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"diasInatividadeInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe quantos dias um usu\u00E1rio poder\u00E1 ficar sem entrar no sistema, ao exceder este n\u00FAmero o usu\u00E1rio ser\u00E1 desativado perdendo o acesso ao sistema, e somente os Administradores poder\u00E3o ativ\u00E1-lo novamente.\" />\n Dias de Inatividade\n </label>\n <input id=\"diasInatividadeInput\" formControlName=\"QtnInatividade\" type=\"number\" class=\"form-control form-input\" tooltip=\"Informe quantos dias um usu\u00E1rio poder\u00E1 ficar sem entrar no sistema, ao exceder este n\u00FAmero o usu\u00E1rio ser\u00E1 desativado perdendo o acesso ao sistema, e somente os Administradores poder\u00E3o ativ\u00E1-lo novamente.\">\n <app-field-error-message [control]=\"form.get('QtnInatividade')\"></app-field-error-message>\n </div>\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"tentativasDeAcessoInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe a quantidade de tentativas consecutivas de acesso ao sistema sem sucesso antes de bloquear o usu\u00E1rio, exigindo que ele fa\u00E7a uma recupera\u00E7\u00E3o de senha.\" />\n Tentativas de acesso\n </label>\n <input id=\"tentativasDeAcessoInput\" formControlName=\"QtnTentativa\" type=\"number\" class=\"form-control form-input\" tooltip=\"Informe a quantidade de tentativas consecutivas de acesso ao sistema sem sucesso antes de bloquear o usu\u00E1rio, exigindo que ele fa\u00E7a uma recupera\u00E7\u00E3o de senha.\">\n <app-field-error-message [control]=\"form.get('QtnTentativa')\"></app-field-error-message>\n </div>\n\n <!-- <div class=\"container col-6 row\">\n\n </div> -->\n </div>\n </div>\n\n <!-- Palavras do Guilherme: \"oculteia eles\", \"um dia implementamos\" -->\n <!-- #region MARK: LINKS OCULTADOS -->\n <!-- <div class=\"card p-3 mt-3\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">Redefini\u00E7\u00E3o de senha:</h3>\n <a href=\"#\" class=\"link-primary\">Obrigar todos os usu\u00E1rios a trocarem sua senha no pr\u00F3ximo login</a>\n <a href=\"#\" class=\"link-primary\">Selecionar usu\u00E1rios para trocarem sua senha no pr\u00F3ximo login</a>\n </div> -->\n <!-- #endregion LINKS OCULTADOS -->\n\n\n <!-- <div class=\"border rounded\">\n <div class=\"card-body\">\n \n\n </div>\n </div> -->\n\n </form>\n </div>\n\n</lib-container>\n<!-- #endregion BODY -->\n\n<!-- #region SPINNER -->\n<ng-template #loading>\n <div class=\"w-100 text-center\">\n <!-- <div class=\"spinner-border\" style=\"width: 3rem; height: 3rem;\" role=\"status\"> <span class=\"visually-hidden\">Carregando...</span> </div> -->\n <lib-spinner />\n </div>\n</ng-template>\n\n<ng-template #loadingIsAtivo>\n <div class=\"spinner-border spinner-border-sm me-2\" role=\"status\"> <span class=\"visually-hidden\">Carregando...</span> </div>\n</ng-template>\n<!-- #endregion SPINNER -->\n" }]
|
|
191
|
+
args: [{ selector: 'lib-config-senha', standalone: true, imports: [LibHeaderComponent, ContentContainerComponent, NgIf, FormsModule, ReactiveFormsModule, NgClass, LibIconsComponent, TooltipModule, RequiredDirective, FieldErrorMessageComponent, LibSpinnerComponent], template: "<lib-header [breadcrumbList]=\"[ 'Infra', 'Configura\u00E7\u00E3o de Senha' ]\" pageTitle=\"Configura\u00E7\u00E3o de Senha\"\n mode=\"edit\" [hideButtons]=\"[ 'Cancelar' ]\" (create)=\"onSubmit()\" (update)=\"onSubmit()\" />\n\n\n<!-- #region BODY -->\n<lib-container>\n\n <div innerContent1>\n <form *ngIf=\"$infraSegConfigRecord; else loading\" [formGroup]=\"form\">\n\n <div class=\"d-flex justify-content-start align-items-center\">\n <div class=\"mb-3\">\n <h2 class=\"fs-5\">Atualmente seu n\u00EDvel de seguran\u00E7a \u00E9 \n <span class=\"rounded text-white p-1 px-2 fw-bold\"\n [ngClass]=\"{\n 'bg-danger': initialLevel === 1,\n 'bg-warning': initialLevel === 2,\n 'bg-success': initialLevel === 3,\n 'bg-primary': initialLevel === 4,\n }\" >\n\n @switch (initialLevel) {\n @case (1) { Baixo }\n @case (2) { M\u00E9dio }\n @case (3) { Alto }\n @case (4) { Personalizado }\n }\n\n <!-- <strong *ngIf=\"initialLevel === 1\"> Baixo </strong>\n <strong class=\"text-dark\" *ngIf=\"initialLevel === 2\"> M\u00E9dio </strong>\n <strong *ngIf=\"initialLevel === 3\"> Alto </strong>\n <strong *ngIf=\"initialLevel === 4\"> Personalizado </strong> -->\n </span>\n </h2>\n </div>\n </div>\n <div class=\"border rounded mb-4\">\n <div class=\"card-body\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">Selecione um n\u00EDvel de seguran\u00E7a abaixo:</h3>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option1\" autocomplete=\"off\" [value]=\"1\" (change)=\"onSelectLevel(Level)\" >\n <label [class.btn-outline-danger]=\"Level === 1\" [class.bg-danger]=\"Level === 1\" class=\"btn btn-secondary m-2\" for=\"option1\"><lib-icon iconName=\"cadeado-aberto-outline\"/> Baixo </label>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option2\" autocomplete=\"off\" [value]=\"2\" (change)=\"onSelectLevel(Level)\" >\n <label [class.bg-warning]=\"Level === 2\" [class.btn-outline-warning]=\"Level === 2\" class=\" btn btn-secondary text-light m-2\" for=\"option2\"><lib-icon iconName=\"cadeado-semiaberto-outline\"/> M\u00E9dio</label>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option3\" autocomplete=\"off\" [value]=\"3\" (change)=\"onSelectLevel(Level)\" >\n <label [class.btn-outline-success]=\"Level === 3\" [class.bg-success]=\"Level === 3\" class=\"btn btn-secondary m-2\" for=\"option3\"><lib-icon iconName=\"cadeado-outline\"/> Alto</label>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option4\" autocomplete=\"off\" [value]=\"4\" (change)=\"onSelectLevel(Level)\" >\n <label [class.btn-outline-primary]=\"Level === 4\" [class.bg-primary]=\"Level === 4\" class=\"btn btn-secondary m-2\" for=\"option4\"><lib-icon iconName=\"chave\"/> Personalizado</label>\n </div>\n </div>\n\n <div class=\"border rounded p-3 mb-4\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">A senha deve conter:</h3>\n\n <div class=\"row\">\n <div class=\"col-3\">\n <div class=\"form-check form-switch\">\n <label class=\"form-check-label\" for=\"numeros\"> N\u00FAmero </label>\n <input formControlName=\"Is_Numeros\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"numeros\">\n </div>\n <div class=\"form-check form-switch\">\n <label class=\"form-check-label\" for=\"letraMaiuscula\"> Letra Mai\u00FAscula </label>\n <input formControlName=\"Is_LetrasMaiusculas\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"letraMaiuscula\">\n </div>\n <div class=\"form-check form-switch\">\n <label class=\"form-check-label\" for=\"caracteresEspeciais\">Caractere especial</label>\n <input formControlName=\"Is_CaracteresEspeciais\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"caracteresEspeciais\">\n <lib-icon class=\"ms-1\" iconName=\"info\" iconColor=\"blue\" iconSize=\"small\" tooltip=\"Caracteres sugeridos: ! @ # $ % & * ( ) _ + = [ ] { } | ?\" />\n </div>\n </div>\n\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"qtnTrocaSenhaInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe a quantidade em dias que a senha ser\u00E1 v\u00E1lida, ap\u00F3s este per\u00EDodo a senha dever\u00E1 ser trocada pelo usu\u00E1rio.\" />\n Validade em dias\n </label>\n <input formControlName=\"QtnTrocaSenha\" type=\"number\" class=\"form-control form-input\" id=\"qtnTrocaSenhaInput\" tooltip=\"Informe a quantidade em dias que a senha ser\u00E1 v\u00E1lida, ap\u00F3s este per\u00EDodo a senha dever\u00E1 ser trocada pelo usu\u00E1rio.\" >\n <app-field-error-message [control]=\"form.get('QtnTrocaSenha')\"></app-field-error-message>\n </div>\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"qtnMinimaInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe a quantidade m\u00EDnima de caracteres que a senha deve ter.\" />\n Tamanho m\u00EDnimo\n </label>\n <input formControlName=\"QtnMinima\" type=\"number\" class=\"form-control form-input\" id=\"qtnMinimaInput\" tooltip=\"Informe a quantidade m\u00EDnima de caracteres que a senha deve ter.\">\n <app-field-error-message [control]=\"form.get('QtnMinima')\"></app-field-error-message>\n </div>\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"qtnRepeticaoInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe quantas senhas diferentes o usu\u00E1rio dever\u00E1 usar antes que possa repetir alguma j\u00E1 utilizada.\" />\n Repeti\u00E7\u00E3o\n </label>\n <input formControlName=\"QtnRepeticao\" type=\"number\" class=\"form-control form-input\" id=\"qtnRepeticaoInput\" tooltip=\"Informe quantas senhas diferentes o usu\u00E1rio dever\u00E1 usar antes que possa repetir alguma j\u00E1 utilizada.\">\n <app-field-error-message [control]=\"form.get('QtnRepeticao')\"></app-field-error-message>\n </div>\n \n <!-- <div class=\"container col row\">\n \n </div> -->\n </div>\n </div>\n\n <div class=\"border rounded p-3\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">Bloqueios:</h3>\n\n <div class=\"row\">\n <!-- <div class=\"col-2 form-check form-switch\">\n <label class=\"form-check-label\" for=\"isDropSessionCheck\"> Derrubar multiplas sess\u00F5es</label>\n <input class=\"form-check-input\" id=\"isDropSessionCheck\" formControlName=\"Is_DropSession\" type=\"checkbox\" role=\"switch\">\n </div> -->\n \n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"diasInatividadeInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe quantos dias um usu\u00E1rio poder\u00E1 ficar sem entrar no sistema, ao exceder este n\u00FAmero o usu\u00E1rio ser\u00E1 desativado perdendo o acesso ao sistema, e somente os Administradores poder\u00E3o ativ\u00E1-lo novamente.\" />\n Dias de Inatividade\n </label>\n <input id=\"diasInatividadeInput\" formControlName=\"QtnInatividade\" type=\"number\" class=\"form-control form-input\" tooltip=\"Informe quantos dias um usu\u00E1rio poder\u00E1 ficar sem entrar no sistema, ao exceder este n\u00FAmero o usu\u00E1rio ser\u00E1 desativado perdendo o acesso ao sistema, e somente os Administradores poder\u00E3o ativ\u00E1-lo novamente.\">\n <app-field-error-message [control]=\"form.get('QtnInatividade')\"></app-field-error-message>\n </div>\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"tentativasDeAcessoInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe a quantidade de tentativas consecutivas de acesso ao sistema sem sucesso antes de bloquear o usu\u00E1rio, exigindo que ele fa\u00E7a uma recupera\u00E7\u00E3o de senha.\" />\n Tentativas de acesso\n </label>\n <input id=\"tentativasDeAcessoInput\" formControlName=\"QtnTentativa\" type=\"number\" class=\"form-control form-input\" tooltip=\"Informe a quantidade de tentativas consecutivas de acesso ao sistema sem sucesso antes de bloquear o usu\u00E1rio, exigindo que ele fa\u00E7a uma recupera\u00E7\u00E3o de senha.\">\n <app-field-error-message [control]=\"form.get('QtnTentativa')\"></app-field-error-message>\n </div>\n\n <!-- <div class=\"container col-6 row\">\n\n </div> -->\n </div>\n </div>\n\n <!-- Palavras do Guilherme: \"oculteia eles\", \"um dia implementamos\" -->\n <!-- #region MARK: LINKS OCULTADOS -->\n <!-- <div class=\"card p-3 mt-3\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">Redefini\u00E7\u00E3o de senha:</h3>\n <a href=\"#\" class=\"link-primary\">Obrigar todos os usu\u00E1rios a trocarem sua senha no pr\u00F3ximo login</a>\n <a href=\"#\" class=\"link-primary\">Selecionar usu\u00E1rios para trocarem sua senha no pr\u00F3ximo login</a>\n </div> -->\n <!-- #endregion LINKS OCULTADOS -->\n\n\n <!-- <div class=\"border rounded\">\n <div class=\"card-body\">\n \n\n </div>\n </div> -->\n\n </form>\n </div>\n\n</lib-container>\n<!-- #endregion BODY -->\n\n<!-- #region SPINNER -->\n<ng-template #loading>\n <div class=\"w-100 text-center\">\n <!-- <div class=\"spinner-border\" style=\"width: 3rem; height: 3rem;\" role=\"status\"> <span class=\"visually-hidden\">Carregando...</span> </div> -->\n <lib-spinner />\n </div>\n</ng-template>\n\n<ng-template #loadingIsAtivo>\n <div class=\"spinner-border spinner-border-sm me-2\" role=\"status\"> <span class=\"visually-hidden\">Carregando...</span> </div>\n</ng-template>\n<!-- #endregion SPINNER -->\n" }]
|
|
191
192
|
}], ctorParameters: () => [{ type: i1.ConfiguracaoSenhaService }, { type: i2.MessageService }, { type: i3.TenantService }, { type: i4.Title }] });
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWNvbmZpZy1zZW5oYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi9jb21wb25lbnRzL2xpYi1jb25maWctc2VuaGEvbGliLWNvbmZpZy1zZW5oYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi9jb21wb25lbnRzL2xpYi1jb25maWctc2VuaGEvbGliLWNvbmZpZy1zZW5oYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUduRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scURBQXFELENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQVVyRixNQUFNLE9BQU8sdUJBQXVCO0lBZWxDLG9CQUFvQjtJQUVwQixnREFBZ0Q7SUFHaEQsK0NBQStDO0lBQy9DLElBQVcsU0FBUyxLQUF1QixPQUFPLFNBQVMsQ0FBQSxDQUFDLENBQUM7SUFrQjdELElBQVcsRUFBRSxLQUFhLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFBLENBQUMsQ0FBQztJQUM3RCxJQUFXLEtBQUssS0FBYSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssQ0FBQSxDQUFDLENBQUM7SUFDbkUseUJBQXlCO0lBRXpCLGtEQUFrRDtJQUdsRCxpREFBaUQ7SUFDakQsWUFDVSx5QkFBbUQsRUFDbkQsZUFBK0IsRUFDL0IsUUFBdUIsRUFD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QUUsTUFBTSxFQUFFLENBQUM7Z0JBQzFDLE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQzsrR0E5TlUsdUJBQXVCO21HQUF2Qix1QkFBdUIsd0RDaEJwQyxtNFZBNEtBOzs0RkQ1SmEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBGb3JtVXRpbHMgfSBmcm9tICcuLi8uLi91dGlscy9mb3JtLXV0aWxzJztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbWVzc2FnZS9tZXNzYWdlLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBJbmZyYVNlZ0NvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9jb25maWctc2VuaGEvN0RiL0luZnJhU2VnQ29uZmlnLnJlY29yZCc7XG5pbXBvcnQgeyBDb25maWd1cmFjYW9TZW5oYVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2NvbmZpZ3VyYWNhby1zZW5oYS5zZXJ2aWNlJztcbmltcG9ydCB7IFRlbmFudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RlbmFudC5zZXJ2aWNlJztcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1jb25maWctc2VuaGEnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGliLWNvbmZpZy1zZW5oYS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlczogYGBcbn0pXG5leHBvcnQgY2xhc3MgTGliQ29uZmlnU2VuaGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gUFJPUEVSVElFUyA8PT09PT09PT09PVxuXG4gIC8vICNyZWdpb24gUFJJVkFURVxuICBwcml2YXRlIHJlYWRvbmx5IHVzZXJfYXV0aF92NiA9IGxvY2FsU3RvcmFnZVtcInVzZXJfYXV0aF92NlwiXSA/PyBcInt9XCI7XG4gIHByaXZhdGUgcmVhZG9ubHkgX190b2tlblBheWxvYWQgPSBKU09OLnBhcnNlKHRoaXMudXNlcl9hdXRoX3Y2KS5fX3Rva2VuUGF5bG9hZCA/PyB7IHRlbmFudElkOiAxNTc5IH07XG5cbiAgcHJpdmF0ZSBfbG9jYWxUZW5hbnRJZCA9IHRoaXMuX190b2tlblBheWxvYWQudGVuYW50SWQgPz8gMDtcbiAgLy8gI2VuZHJlZ2lvbiBQUklWQVRFXG5cbiAgLy8gI3JlZ2lvbiBQVUJMSUNcbiAgcHVibGljIG1lbnVHcm91cCE6IHN0cmluZztcbiAgcHVibGljICRpbmZyYVNlZ0NvbmZpZ1JlY29yZD86IEluZnJhU2VnQ29uZmlnO1xuICBwdWJsaWMgaW5pdGlhbExldmVsITogbnVtYmVyO1xuICAvLyAjZW5kcmVnaW9uIFBVQkxJQ1xuXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gUFJPUEVSVElFUyA8PT09PT09PT09PVxuXG5cbiAgLy8gI3JlZ2lvbiA9PT09PT09PT09PiBGT1JNIEJVSUxERVIgPD09PT09PT09PT1cbiAgcHVibGljIGdldCBGb3JtVXRpbHMoKTogdHlwZW9mIEZvcm1VdGlscyB7IHJldHVybiBGb3JtVXRpbHMgfVxuXG4gIC8vICNyZWdpb24gRk9STSBGSUVMRFNcbiAgcHVibGljIGZvcm06IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgIFRlbmFudF9JZDogbmV3IEZvcm1Db250cm9sPG51bWJlcj4oMCksXG4gICAgSWQ6IG5ldyBGb3JtQ29udHJvbDxudW1iZXI+KDApLFxuICAgIFF0bk1pbmltYTogbmV3IEZvcm1Db250cm9sPG51bWJlcj4oMSwgVmFsaWRhdG9ycy5taW4oLTEpKSxcbiAgICBJc19OdW1lcm9zOiBuZXcgRm9ybUNvbnRyb2w8Ym9vbGVhbj4oZmFsc2UpLFxuICAgIElzX0xldHJhc01haXVzY3VsYXM6IG5ldyBGb3JtQ29udHJvbDxib29sZWFuPihmYWxzZSksXG4gICAgSXNfQ2FyYWN0ZXJlc0VzcGVjaWFpczogbmV3IEZvcm1Db250cm9sPGJvb2xlYW4+KGZhbHNlKSxcbiAgICBRdG5Ucm9jYVNlbmhhOiBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyPigtMSwgVmFsaWRhdG9ycy5taW4oLTEpKSxcbiAgICBRdG5JbmF0aXZpZGFkZTogbmV3IEZvcm1Db250cm9sPG51bWJlcj4oLTEsIFZhbGlkYXRvcnMubWluKC0xKSksXG4gICAgUXRuVGVudGF0aXZhOiBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyPigxLCBWYWxpZGF0b3JzLm1pbigtMSkpLFxuICAgIFF0blJlcGV0aWNhbzogbmV3IEZvcm1Db250cm9sPG51bWJlcj4oMSwgVmFsaWRhdG9ycy5taW4oLTEpKSxcbiAgICBJc19Ecm9wU2Vzc2lvbjogbmV3IEZvcm1Db250cm9sPGJvb2xlYW4+KGZhbHNlKSxcbiAgICBMZXZlbDogbmV3IEZvcm1Db250cm9sPG51bWJlcj4oMSlcbiAgfSk7XG5cbiAgcHVibGljIGdldCBJZCgpOiBudW1iZXIgeyByZXR1cm4gdGhpcy5mb3JtLmdldCgnSWQnKT8udmFsdWUgfVxuICBwdWJsaWMgZ2V0IExldmVsKCk6IG51bWJlciB7IHJldHVybiB0aGlzLmZvcm0uZ2V0KCdMZXZlbCcpPy52YWx1ZSB9XG4gIC8vICNlbmRyZWdpb24gRk9STSBGSUVMRFNcblxuICAvLyAjZW5kcmVnaW9uID09PT09PT09PT0+IEZPUk0gQlVJTERFUiA8PT09PT09PT09PVxuXG5cbiAgLy8gI3JlZ2lvbiA9PT09PT09PT09PiBJTklUSUFMSVpBVElPTiA8PT09PT09PT09PVxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9jb25maWd1cmFjYW9TZW5oYVNlcnZpY2U6IENvbmZpZ3VyYWNhb1NlbmhhU2VydmljZSxcbiAgICBwcml2YXRlIF9tZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfZG9taW5pbzogVGVuYW50U2VydmljZSxcbiAgICBwcml2YXRlIF90aXRsZTogVGl0bGVcbiAgICBcbiAgICAvLyBwcml2YXRlIF9wcm9qZWN0VXRpbHNlcnZpY2U6IFByb2plY3RVdGlsc2VydmljZSxcbiAgICAvLyBwcml2YXRlIF9wcm9qZWN0U2VydmljZTogUHJvamVjdFNlcnZpY2UsXG4gICAgLy8gcHJpdmF0ZSBfYXV0aFN0b3JhZ2U6IEF1dGhTdG9yYWdlU2VydmljZSxcbiAgKSB7XG4gIH1cbiAgXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3RpdGxlLnNldFRpdGxlKFwiQ29uZmlndXJhw6fDo28gZGUgU2VuaGFcIik7XG4gICAgXG4gICAgdGhpcy5fZG9taW5pby52YWxpZGF0ZVRlbmFudCh0aGlzLl9sb2NhbFRlbmFudElkKTtcbiAgICB0aGlzLmdldEluZnJhU2VnQ29uZmlnKCk7XG4gIH1cbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBJTklUSUFMSVpBVElPTiA8PT09PT09PT09PVxuXG5cbiAgLy8gI3JlZ2lvbiA9PT09PT09PT09PiBTRVJWSUNFIE1FVEhPRFMgPD09PT09PT09PT1cblxuICAvLyAjcmVnaW9uIEdFVFxuICBwcml2YXRlIGdldEluZnJhU2VnQ29uZmlnKCk6IHZvaWQge1xuICAgIHRoaXMuX2NvbmZpZ3VyYWNhb1NlbmhhU2VydmljZS5nZXRJbmZyYVNlZ0NvbmZpZygpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiByZXNwb25zZSA9PiB7XG4gICAgICAgIHRoaXMuJGluZnJhU2VnQ29uZmlnUmVjb3JkID0gcmVzcG9uc2UuSW5mcmFTZWdDb25maWc7XG5cbiAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgIC4uLnRoaXMuZm9ybS52YWx1ZSxcbiAgICAgICAgICAuLi5yZXNwb25zZS5JbmZyYVNlZ0NvbmZpZ1xuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMuaW5pdGlhbExldmVsID0gcmVzcG9uc2UuSW5mcmFTZWdDb25maWcuTGV2ZWwgfHwgMTtcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzWydUZW5hbnRfSWQnXS5zZXRWYWx1ZSh0aGlzLl9sb2NhbFRlbmFudElkKTtcblxuICAgICAgICB0aGlzLm9uU2VsZWN0TGV2ZWwodGhpcy5MZXZlbCk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IGVycm9yID0+IHtcbiAgICAgICAgLy8gdGhpcy5fcHJvamVjdFV0aWxzZXJ2aWNlLnNob3dIdHRwRXJyb3IoZXJyb3IpXG4gICAgICAgIHRoaXMub25TZWxlY3RMZXZlbCh0aGlzLkxldmVsKTtcbiAgICAgICAgdGhpcy4kaW5mcmFTZWdDb25maWdSZWNvcmQgPSBuZXcgSW5mcmFTZWdDb25maWcoKTtcblxuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5zaG93QWxlcnREYW5nZXIoZXJyb3IpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3IpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIC8vICNlbmRyZWdpb24gR0VUXG5cbiAgLy8gI3JlZ2lvbiBQT1NUXG4gIHB1YmxpYyBjcmVhdGVPclVwZGF0ZUluZnJhU2VnQ29uZmlnKCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybS5lbmFibGUoKTtcblxuICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyYWNhb1NlbmhhU2VydmljZS5jcmVhdGVPclVwZGF0ZUluZnJhU2VnQ29uZmlnKHRoaXMuZm9ybS52YWx1ZSkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaW5pdGlhbExldmVsID0gdGhpcy5MZXZlbDtcblxuICAgICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLnNob3dBbGVydFN1Y2Nlc3MoYENvbmZpZ3VyYcOnw6NvIGRlIHNlbmhhICR7dGhpcy5JZCAhPSAwID8gJ2FsdGVyYWRhJyA6ICdjcmlhZGEnfSBjb20gc3VjZXNzbyFgKTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBpZiAodGhpcy5JRCAhPSAwKSB0aGlzLl9tZXNzYWdlU2VydmljZS5zaG93QWxlcnRTdWNjZXNzKCdDb25maWd1cmHDp8OjbyBkZSBzZW5oYSBhbHRlcmFkYSBjb20gc3VjZXNzbyEnKTtcbiAgICAgICAgICAvLyBlbHNlICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5zaG93QWxlcnRTdWNjZXNzKCdDb25maWd1cmHDp8OjbyBkZSBzZW5oYSBjcmlhZGEgY29tIHN1Y2Vzc28hJyk7XG4gICAgICAgICAgXG4gICAgICAgICAgdGhpcy5fY29uZmlndXJhY2FvU2VuaGFTZXJ2aWNlLmdldEluZnJhU2VnQ29uZmlnKCk7XG4gICAgICAgICAgdGhpcy5nZXRJbmZyYVNlZ0NvbmZpZygpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogZXJyb3IgPT4ge1xuICAgICAgICAgIC8vIHRoaXMuX3Byb2plY3RVdGlsc2VydmljZS5zaG93SHR0cEVycm9yKGVycm9yKTtcbiAgICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5zaG93QWxlcnREYW5nZXIoZXJyb3IpO1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgfVxuICAgIGVsc2UgeyBGb3JtVXRpbHMudmFsaWRhdGVGaWVsZHModGhpcy5mb3JtKSB9XG4gIH1cbiAgLy8gI2VuZHJlZ2lvbiBQT1NUXG5cbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBTRVJWSUNFIE1FVEhPRFMgPD09PT09PT09PT1cblxuXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gVVRJTFMgPD09PT09PT09PT1cbiAgb25TZWxlY3RMZXZlbCgkdmFsdWU6IG51bWJlciB8IHN0cmluZykge1xuICAgIHN3aXRjaCAoJHZhbHVlKSB7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX051bWVyb3MnKT8uc2V0VmFsdWUoZmFsc2UpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19OdW1lcm9zJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19MZXRyYXNNYWl1c2N1bGFzJyk/LnNldFZhbHVlKGZhbHNlKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnSXNfTGV0cmFzTWFpdXNjdWxhcycpPy5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmdldCgnSXNfQ2FyYWN0ZXJlc0VzcGVjaWFpcycpPy5zZXRWYWx1ZShmYWxzZSk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX0NhcmFjdGVyZXNFc3BlY2lhaXMnKT8uZGlzYWJsZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0blRyb2NhU2VuaGEnKT8uc2V0VmFsdWUoLTEpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5Ucm9jYVNlbmhhJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5NaW5pbWEnKT8uc2V0VmFsdWUoNik7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0bk1pbmltYScpPy5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuUmVwZXRpY2FvJyk/LnNldFZhbHVlKC0xKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuUmVwZXRpY2FvJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5UZW50YXRpdmEnKT8uc2V0VmFsdWUoLTEpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5UZW50YXRpdmEnKT8uZGlzYWJsZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0bkluYXRpdmlkYWRlJyk/LnNldFZhbHVlKC0xKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuSW5hdGl2aWRhZGUnKT8uZGlzYWJsZSgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAyOlxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19OdW1lcm9zJyk/LnNldFZhbHVlKHRydWUpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19OdW1lcm9zJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19MZXRyYXNNYWl1c2N1bGFzJyk/LnNldFZhbHVlKHRydWUpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19MZXRyYXNNYWl1c2N1bGFzJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19DYXJhY3RlcmVzRXNwZWNpYWlzJyk/LnNldFZhbHVlKGZhbHNlKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnSXNfQ2FyYWN0ZXJlc0VzcGVjaWFpcycpPy5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuVHJvY2FTZW5oYScpPy5zZXRWYWx1ZSgxMjApO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5Ucm9jYVNlbmhhJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5NaW5pbWEnKT8uc2V0VmFsdWUoOCk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0bk1pbmltYScpPy5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuUmVwZXRpY2FvJyk/LnNldFZhbHVlKDEpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5SZXBldGljYW8nKT8uZGlzYWJsZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0blRlbnRhdGl2YScpPy5zZXRWYWx1ZSg1KTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuVGVudGF0aXZhJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5JbmF0aXZpZGFkZScpPy5zZXRWYWx1ZSgxMjApO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5JbmF0aXZpZGFkZScpPy5kaXNhYmxlKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIDM6XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX051bWVyb3MnKT8uc2V0VmFsdWUodHJ1ZSk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX051bWVyb3MnKT8uZGlzYWJsZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX0xldHJhc01haXVzY3VsYXMnKT8uc2V0VmFsdWUodHJ1ZSk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX0xldHJhc01haXVzY3VsYXMnKT8uZGlzYWJsZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX0NhcmFjdGVyZXNFc3BlY2lhaXMnKT8uc2V0VmFsdWUodHJ1ZSk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX0NhcmFjdGVyZXNFc3BlY2lhaXMnKT8uZGlzYWJsZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0blRyb2NhU2VuaGEnKT8uc2V0VmFsdWUoMzApO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5Ucm9jYVNlbmhhJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5NaW5pbWEnKT8uc2V0VmFsdWUoMTApO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5NaW5pbWEnKT8uZGlzYWJsZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0blJlcGV0aWNhbycpPy5zZXRWYWx1ZSgzKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuUmVwZXRpY2FvJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5UZW50YXRpdmEnKT8uc2V0VmFsdWUoMyk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0blRlbnRhdGl2YScpPy5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuSW5hdGl2aWRhZGUnKT8uc2V0VmFsdWUoMzApO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5JbmF0aXZpZGFkZScpPy5kaXNhYmxlKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIDQ6XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX051bWVyb3MnKT8uZW5hYmxlKCk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX0xldHJhc01haXVzY3VsYXMnKT8uZW5hYmxlKCk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX0NhcmFjdGVyZXNFc3BlY2lhaXMnKT8uZW5hYmxlKCk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0blRyb2NhU2VuaGEnKT8uZW5hYmxlKCk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0bk1pbmltYScpPy5lbmFibGUoKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuUmVwZXRpY2FvJyk/LmVuYWJsZSgpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5UZW50YXRpdmEnKT8uZW5hYmxlKCk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0bkluYXRpdmlkYWRlJyk/LmVuYWJsZSgpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25TdWJtaXQgPSAoKTogdm9pZCA9PiB7IHRoaXMuY3JlYXRlT3JVcGRhdGVJbmZyYVNlZ0NvbmZpZygpIH07XG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gVVRJTFMgPD09PT09PT09PT1cblxufVxuIiwiPGxpYi1oZWFkZXIgW2JyZWFkY3J1bWJMaXN0XT1cIlsgJ0luZnJhJywgJ0NvbmZpZ3VyYcOnw6NvIGRlIFNlbmhhJyBdXCIgcGFnZVRpdGxlPVwiQ29uZmlndXJhw6fDo28gZGUgU2VuaGFcIlxuICBtb2RlPVwiZWRpdFwiIFtoaWRlQnV0dG9uc109XCJbICdDYW5jZWxhcicgXVwiIChjcmVhdGUpPVwib25TdWJtaXQoKVwiICh1cGRhdGUpPVwib25TdWJtaXQoKVwiICAvPlxuXG5cbjwhLS0gI3JlZ2lvbiBCT0RZIC0tPlxuPGxpYi1jb250YWluZXI+XG5cbiAgPGRpdiBpbm5lckNvbnRlbnQxPlxuICAgIDxmb3JtICpuZ0lmPVwiJGluZnJhU2VnQ29uZmlnUmVjb3JkOyBlbHNlIGxvYWRpbmdcIiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cblxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgPGgyIGNsYXNzPVwiZnMtNVwiPkF0dWFsbWVudGUgc2V1IG7DrXZlbCBkZSBzZWd1cmFuw6dhIMOpIFxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJvdW5kZWQgdGV4dC13aGl0ZSBwLTEgcHgtMiBmdy1ib2xkXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAnYmctZGFuZ2VyJzogaW5pdGlhbExldmVsID09PSAxLFxuICAgICAgICAgICAgICAgICAgJ2JnLXdhcm5pbmcnOiBpbml0aWFsTGV2ZWwgPT09IDIsXG4gICAgICAgICAgICAgICAgICAnYmctc3VjY2Vzcyc6IGluaXRpYWxMZXZlbCA9PT0gMyxcbiAgICAgICAgICAgICAgICAgICdiZy1wcmltYXJ5JzogaW5pdGlhbExldmVsID09PSA0LFxuICAgICAgICAgICAgICAgIH1cIiA+XG5cbiAgICAgICAgICAgICAgICBAc3dpdGNoIChpbml0aWFsTGV2ZWwpIHtcbiAgICAgICAgICAgICAgICAgIEBjYXNlICgxKSB7IEJhaXhvIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICgyKSB7IE3DqWRpbyB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAoMykgeyBBbHRvIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICg0KSB7IFBlcnNvbmFsaXphZG8gfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIDwhLS0gPHN0cm9uZyAqbmdJZj1cImluaXRpYWxMZXZlbCA9PT0gMVwiPiBCYWl4byA8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidGV4dC1kYXJrXCIgKm5nSWY9XCJpbml0aWFsTGV2ZWwgPT09IDJcIj4gTcOpZGlvIDwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIDxzdHJvbmcgKm5nSWY9XCJpbml0aWFsTGV2ZWwgPT09IDNcIj4gQWx0byA8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICA8c3Ryb25nICpuZ0lmPVwiaW5pdGlhbExldmVsID09PSA0XCI+IFBlcnNvbmFsaXphZG8gPC9zdHJvbmc+IC0tPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9oMj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImJvcmRlciByb3VuZGVkIG1iLTRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxuICAgICAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC1zdWJ0aXRsZSBtYi0yIHRleHQtbXV0ZWQgZnMtNlwiPlNlbGVjaW9uZSB1bSBuw612ZWwgZGUgc2VndXJhbsOnYSBhYmFpeG86PC9oMz5cblxuICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cIkxldmVsXCIgdHlwZT1cInJhZGlvXCIgY2xhc3M9XCJidG4tY2hlY2tcIiBuYW1lPVwiTGV2ZWxcIiBpZD1cIm9wdGlvbjFcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBbdmFsdWVdPVwiMVwiIChjaGFuZ2UpPVwib25TZWxlY3RMZXZlbChMZXZlbClcIiA+XG4gICAgICAgICAgICA8bGFiZWwgW2NsYXNzLmJ0bi1vdXRsaW5lLWRhbmdlcl09XCJMZXZlbCA9PT0gMVwiIFtjbGFzcy5iZy1kYW5nZXJdPVwiTGV2ZWwgPT09IDFcIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IG0tMlwiIGZvcj1cIm9wdGlvbjFcIj48bGliLWljb24gaWNvbk5hbWU9XCJjYWRlYWRvLWFiZXJ0by1vdXRsaW5lXCIvPiBCYWl4byA8L2xhYmVsPlxuXG4gICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiTGV2ZWxcIiB0eXBlPVwicmFkaW9cIiBjbGFzcz1cImJ0bi1jaGVja1wiIG5hbWU9XCJMZXZlbFwiIGlkPVwib3B0aW9uMlwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFt2YWx1ZV09XCIyXCIgKGNoYW5nZSk9XCJvblNlbGVjdExldmVsKExldmVsKVwiID5cbiAgICAgICAgICAgIDxsYWJlbCBbY2xhc3MuYmctd2FybmluZ109XCJMZXZlbCA9PT0gMlwiIFtjbGFzcy5idG4tb3V0bGluZS13YXJuaW5nXT1cIkxldmVsID09PSAyXCIgY2xhc3M9XCIgYnRuIGJ0bi1zZWNvbmRhcnkgdGV4dC1saWdodCBtLTJcIiBmb3I9XCJvcHRpb24yXCI+PGxpYi1pY29uIGljb25OYW1lPVwiY2FkZWFkby1zZW1pYWJlcnRvLW91dGxpbmVcIi8+IE3DqWRpbzwvbGFiZWw+XG5cbiAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJMZXZlbFwiIHR5cGU9XCJyYWRpb1wiIGNsYXNzPVwiYnRuLWNoZWNrXCIgbmFtZT1cIkxldmVsXCIgaWQ9XCJvcHRpb24zXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgW3ZhbHVlXT1cIjNcIiAoY2hhbmdlKT1cIm9uU2VsZWN0TGV2ZWwoTGV2ZWwpXCIgPlxuICAgICAgICAgICAgPGxhYmVsIFtjbGFzcy5idG4tb3V0bGluZS1zdWNjZXNzXT1cIkxldmVsID09PSAzXCIgW2NsYXNzLmJnLXN1Y2Nlc3NdPVwiTGV2ZWwgPT09IDNcIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IG0tMlwiIGZvcj1cIm9wdGlvbjNcIj48bGliLWljb24gaWNvbk5hbWU9XCJjYWRlYWRvLW91dGxpbmVcIi8+IEFsdG88L2xhYmVsPlxuXG4gICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiTGV2ZWxcIiB0eXBlPVwicmFkaW9cIiBjbGFzcz1cImJ0bi1jaGVja1wiIG5hbWU9XCJMZXZlbFwiIGlkPVwib3B0aW9uNFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFt2YWx1ZV09XCI0XCIgKGNoYW5nZSk9XCJvblNlbGVjdExldmVsKExldmVsKVwiID5cbiAgICAgICAgICAgIDxsYWJlbCBbY2xhc3MuYnRuLW91dGxpbmUtcHJpbWFyeV09XCJMZXZlbCA9PT0gNFwiIFtjbGFzcy5iZy1wcmltYXJ5XT1cIkxldmVsID09PSA0XCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSBtLTJcIiBmb3I9XCJvcHRpb240XCI+PGxpYi1pY29uIGljb25OYW1lPVwiY2hhdmVcIi8+IFBlcnNvbmFsaXphZG88L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgcm91bmRlZCBwLTMgbWItNFwiPlxuICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXN1YnRpdGxlIG1iLTIgdGV4dC1tdXRlZCBmcy02XCI+QSBzZW5oYSBkZXZlIGNvbnRlcjo8L2gzPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJudW1lcm9zXCI+IE7Dum1lcm8gPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cIklzX051bWVyb3NcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJudW1lcm9zXCI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cImxldHJhTWFpdXNjdWxhXCI+IExldHJhIE1hacO6c2N1bGEgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cIklzX0xldHJhc01haXVzY3VsYXNcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJsZXRyYU1haXVzY3VsYVwiPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJjYXJhY3RlcmVzRXNwZWNpYWlzXCI+Q2FyYWN0ZXJlIGVzcGVjaWFsPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cIklzX0NhcmFjdGVyZXNFc3BlY2lhaXNcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJjYXJhY3RlcmVzRXNwZWNpYWlzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItaWNvbiBjbGFzcz1cIm1zLTFcIiBpY29uTmFtZT1cImluZm9cIiBpY29uQ29sb3I9XCJibHVlXCIgaWNvblNpemU9XCJzbWFsbFwiIHRvb2x0aXA9XCJDYXJhY3RlcmVzIHN1Z2VyaWRvczogISBAICMgJCAlICYgKiAoICkgXyArID0gWyBdIHsgfSB8ID9cIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBsaWJSZXF1aXJlZCBjbGFzcz1cImZvcm0tbGFiZWwgZm9ybS1jb250cm9sLXNtXCIgZm9yPVwicXRuVHJvY2FTZW5oYUlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItaWNvbiBpY29uTmFtZT1cImluZm9cIiBpY29uU2l6ZT1cInNtYWxsXCIgaWNvbkNvbG9yPVwiYmx1ZVwiIHRvb2x0aXA9XCJJbmZvcm1lIGEgcXVhbnRpZGFkZSBlbSBkaWFzIHF1ZSBhIHNlbmhhIHNlcsOhIHbDoWxpZGEsIGFww7NzIGVzdGUgcGVyw61vZG8gYSBzZW5oYSBkZXZlcsOhIHNlciB0cm9jYWRhIHBlbG8gdXN1w6FyaW8uXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgVmFsaWRhZGUgZW0gZGlhc1xuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cIlF0blRyb2NhU2VuaGFcIiB0eXBlPVwibnVtYmVyXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1pbnB1dFwiIGlkPVwicXRuVHJvY2FTZW5oYUlucHV0XCIgdG9vbHRpcD1cIkluZm9ybWUgYSBxdWFudGlkYWRlIGVtIGRpYXMgcXVlIGEgc2VuaGEgc2Vyw6EgdsOhbGlkYSwgYXDDs3MgZXN0ZSBwZXLDrW9kbyBhIHNlbmhhIGRldmVyw6Egc2VyIHRyb2NhZGEgcGVsbyB1c3XDoXJpby5cIiA+XG4gICAgICAgICAgICAgICAgPGFwcC1maWVsZC1lcnJvci1tZXNzYWdlIFtjb250cm9sXT1cImZvcm0uZ2V0KCdRdG5Ucm9jYVNlbmhhJylcIj48L2FwcC1maWVsZC1lcnJvci1tZXNzYWdlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgbGliUmVxdWlyZWQgY2xhc3M9XCJmb3JtLWxhYmVsIGZvcm0tY29udHJvbC1zbVwiIGZvcj1cInF0bk1pbmltYUlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItaWNvbiBpY29uTmFtZT1cImluZm9cIiBpY29uU2l6ZT1cInNtYWxsXCIgaWNvbkNvbG9yPVwiYmx1ZVwiIHRvb2x0aXA9XCJJbmZvcm1lIGEgcXVhbnRpZGFkZSBtw61uaW1hIGRlIGNhcmFjdGVyZXMgcXVlIGEgc2VuaGEgZGV2ZSB0ZXIuXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgVGFtYW5obyBtw61uaW1vXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiUXRuTWluaW1hXCIgdHlwZT1cIm51bWJlclwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0taW5wdXRcIiBpZD1cInF0bk1pbmltYUlucHV0XCIgdG9vbHRpcD1cIkluZm9ybWUgYSBxdWFudGlkYWRlIG3DrW5pbWEgZGUgY2FyYWN0ZXJlcyBxdWUgYSBzZW5oYSBkZXZlIHRlci5cIj5cbiAgICAgICAgICAgICAgICA8YXBwLWZpZWxkLWVycm9yLW1lc3NhZ2UgW2NvbnRyb2xdPVwiZm9ybS5nZXQoJ1F0bk1pbmltYScpXCI+PC9hcHAtZmllbGQtZXJyb3ItbWVzc2FnZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGxpYlJlcXVpcmVkIGNsYXNzPVwiZm9ybS1sYWJlbCBmb3JtLWNvbnRyb2wtc21cIiBmb3I9XCJxdG5SZXBldGljYW9JbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgPGxpYi1pY29uIGljb25OYW1lPVwiaW5mb1wiIGljb25TaXplPVwic21hbGxcIiBpY29uQ29sb3I9XCJibHVlXCIgdG9vbHRpcD1cIkluZm9ybWUgcXVhbnRhcyBzZW5oYXMgZGlmZXJlbnRlcyBvIHVzdcOhcmlvIGRldmVyw6EgdXNhciBhbnRlcyBxdWUgcG9zc2EgcmVwZXRpciBhbGd1bWEgasOhIHV0aWxpemFkYS5cIiAvPlxuICAgICAgICAgICAgICAgICAgUmVwZXRpw6fDo29cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJRdG5SZXBldGljYW9cIiB0eXBlPVwibnVtYmVyXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1pbnB1dFwiIGlkPVwicXRuUmVwZXRpY2FvSW5wdXRcIiB0b29sdGlwPVwiSW5mb3JtZSBxdWFudGFzIHNlbmhhcyBkaWZlcmVudGVzIG8gdXN1w6FyaW8gZGV2ZXLDoSB1c2FyIGFudGVzIHF1ZSBwb3NzYSByZXBldGlyIGFsZ3VtYSBqw6EgdXRpbGl6YWRhLlwiPlxuICAgICAgICAgICAgICAgIDxhcHAtZmllbGQtZXJyb3ItbWVzc2FnZSBbY29udHJvbF09XCJmb3JtLmdldCgnUXRuUmVwZXRpY2FvJylcIj48L2FwcC1maWVsZC1lcnJvci1tZXNzYWdlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNvbnRhaW5lciBjb2wgcm93XCI+XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImJvcmRlciByb3VuZGVkIHAtM1wiPlxuICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXN1YnRpdGxlIG1iLTIgdGV4dC1tdXRlZCBmcy02XCI+QmxvcXVlaW9zOjwvaDM+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29sLTIgZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJpc0Ryb3BTZXNzaW9uQ2hlY2tcIj4gRGVycnViYXIgbXVsdGlwbGFzIHNlc3PDtWVzPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgaWQ9XCJpc0Ryb3BTZXNzaW9uQ2hlY2tcIiBmb3JtQ29udHJvbE5hbWU9XCJJc19Ecm9wU2Vzc2lvblwiIHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIj5cbiAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGxpYlJlcXVpcmVkIGNsYXNzPVwiZm9ybS1sYWJlbCBmb3JtLWNvbnRyb2wtc21cIiBmb3I9XCJkaWFzSW5hdGl2aWRhZGVJbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGliLWljb24gaWNvbk5hbWU9XCJpbmZvXCIgaWNvblNpemU9XCJzbWFsbFwiIGljb25Db2xvcj1cImJsdWVcIiB0b29sdGlwPVwiSW5mb3JtZSBxdWFudG9zIGRpYXMgdW0gdXN1w6FyaW8gcG9kZXLDoSBmaWNhciBzZW0gZW50cmFyIG5vIHNpc3RlbWEsIGFvIGV4Y2VkZXIgZXN0ZSBuw7ptZXJvIG8gdXN1w6FyaW8gc2Vyw6EgZGVzYXRpdmFkbyBwZXJkZW5kbyBvIGFjZXNzbyBhbyBzaXN0ZW1hLCBlIHNvbWVudGUgb3MgQWRtaW5pc3RyYWRvcmVzIHBvZGVyw6NvIGF0aXbDoS1sbyBub3ZhbWVudGUuXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgRGlhcyBkZSBJbmF0aXZpZGFkZVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0ICBpZD1cImRpYXNJbmF0aXZpZGFkZUlucHV0XCIgZm9ybUNvbnRyb2xOYW1lPVwiUXRuSW5hdGl2aWRhZGVcIiB0eXBlPVwibnVtYmVyXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1pbnB1dFwiIHRvb2x0aXA9XCJJbmZvcm1lIHF1YW50b3MgZGlhcyB1bSB1c3XDoXJpbyBwb2RlcsOhIGZpY2FyIHNlbSBlbnRyYXIgbm8gc2lzdGVtYSwgYW8gZXhjZWRlciBlc3RlIG7Dum1lcm8gbyB1c3XDoXJpbyBzZXLDoSBkZXNhdGl2YWRvIHBlcmRlbmRvIG8gYWNlc3NvIGFvIHNpc3RlbWEsIGUgc29tZW50ZSBvcyBBZG1pbmlzdHJhZG9yZXMgcG9kZXLDo28gYXRpdsOhLWxvIG5vdmFtZW50ZS5cIj5cbiAgICAgICAgICAgICAgICA8YXBwLWZpZWxkLWVycm9yLW1lc3NhZ2UgW2NvbnRyb2xdPVwiZm9ybS5nZXQoJ1F0bkluYXRpdmlkYWRlJylcIj48L2FwcC1maWVsZC1lcnJvci1tZXNzYWdlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgbGliUmVxdWlyZWQgY2xhc3M9XCJmb3JtLWxhYmVsIGZvcm0tY29udHJvbC1zbVwiIGZvcj1cInRlbnRhdGl2YXNEZUFjZXNzb0lucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItaWNvbiBpY29uTmFtZT1cImluZm9cIiBpY29uU2l6ZT1cInNtYWxsXCIgaWNvbkNvbG9yPVwiYmx1ZVwiIHRvb2x0aXA9XCJJbmZvcm1lIGEgcXVhbnRpZGFkZSBkZSB0ZW50YXRpdmFzIGNvbnNlY3V0aXZhcyBkZSBhY2Vzc28gYW8gc2lzdGVtYSBzZW0gc3VjZXNzbyBhbnRlcyBkZSBibG9xdWVhciBvIHVzdcOhcmlvLCBleGlnaW5kbyBxdWUgZWxlIGZhw6dhIHVtYSByZWN1cGVyYcOnw6NvIGRlIHNlbmhhLlwiIC8+XG4gICAgICAgICAgICAgICAgICAgIFRlbnRhdGl2YXMgZGUgYWNlc3NvXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJ0ZW50YXRpdmFzRGVBY2Vzc29JbnB1dFwiIGZvcm1Db250cm9sTmFtZT1cIlF0blRlbnRhdGl2YVwiIHR5cGU9XCJudW1iZXJcIiBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWlucHV0XCIgdG9vbHRpcD1cIkluZm9ybWUgYSBxdWFudGlkYWRlIGRlIHRlbnRhdGl2YXMgY29uc2VjdXRpdmFzIGRlIGFjZXNzbyBhbyBzaXN0ZW1hIHNlbSBzdWNlc3NvIGFudGVzIGRlIGJsb3F1ZWFyIG8gdXN1w6FyaW8sIGV4aWdpbmRvIHF1ZSBlbGUgZmHDp2EgdW1hIHJlY3VwZXJhw6fDo28gZGUgc2VuaGEuXCI+XG4gICAgICAgICAgICAgICAgPGFwcC1maWVsZC1lcnJvci1tZXNzYWdlIFtjb250cm9sXT1cImZvcm0uZ2V0KCdRdG5UZW50YXRpdmEnKVwiPjwvYXBwLWZpZWxkLWVycm9yLW1lc3NhZ2U+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29udGFpbmVyIGNvbC02IHJvd1wiPlxuXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBQYWxhdnJhcyBkbyBHdWlsaGVybWU6IFwib2N1bHRlaWEgZWxlc1wiLCBcInVtIGRpYSBpbXBsZW1lbnRhbW9zXCIgLS0+XG4gICAgPCEtLSAjcmVnaW9uIE1BUks6IExJTktTIE9DVUxUQURPUyAtLT5cbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJjYXJkIHAtMyBtdC0zXCI+XG4gICAgICAgIDxoMyBjbGFzcz1cImNhcmQtc3VidGl0bGUgbWItMiB0ZXh0LW11dGVkIGZzLTZcIj5SZWRlZmluacOnw6NvIGRlIHNlbmhhOjwvaDM+XG4gICAgICAgIDxhIGhyZWY9XCIjXCIgY2xhc3M9XCJsaW5rLXByaW1hcnlcIj5PYnJpZ2FyIHRvZG9zIG9zIHVzdcOhcmlvcyBhIHRyb2NhcmVtIHN1YSBzZW5oYSBubyBwcsOzeGltbyBsb2dpbjwvYT5cbiAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzcz1cImxpbmstcHJpbWFyeVwiPlNlbGVjaW9uYXIgdXN1w6FyaW9zIHBhcmEgdHJvY2FyZW0gc3VhIHNlbmhhIG5vIHByw7N4aW1vIGxvZ2luPC9hPlxuICAgIDwvZGl2PiAtLT5cbiAgICA8IS0tICNlbmRyZWdpb24gTElOS1MgT0NVTFRBRE9TIC0tPlxuXG5cbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJib3JkZXIgcm91bmRlZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XG4gICAgICAgICAgICBcblxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj4gLS0+XG5cbiAgICA8L2Zvcm0+XG4gIDwvZGl2PlxuXG48L2xpYi1jb250YWluZXI+XG48IS0tICNlbmRyZWdpb24gQk9EWSAtLT5cblxuPCEtLSAjcmVnaW9uIFNQSU5ORVIgLS0+XG48bmctdGVtcGxhdGUgI2xvYWRpbmc+XG4gICAgPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyXCI+XG4gICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInNwaW5uZXItYm9yZGVyXCIgc3R5bGU9XCJ3aWR0aDogM3JlbTsgaGVpZ2h0OiAzcmVtO1wiIHJvbGU9XCJzdGF0dXNcIj4gPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5DYXJyZWdhbmRvLi4uPC9zcGFuPiA8L2Rpdj4gLS0+XG4gICAgICAgIDxsaWItc3Bpbm5lciAvPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nSXNBdGl2bz5cbiAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgc3Bpbm5lci1ib3JkZXItc20gbWUtMlwiIHJvbGU9XCJzdGF0dXNcIj4gPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5DYXJyZWdhbmRvLi4uPC9zcGFuPiA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48IS0tICNlbmRyZWdpb24gU1BJTk5FUiAtLT5cbiJdfQ==
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWNvbmZpZy1zZW5oYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi9jb21wb25lbnRzL2xpYi1jb25maWctc2VuaGEvbGliLWNvbmZpZy1zZW5oYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi9jb21wb25lbnRzL2xpYi1jb25maWctc2VuaGEvbGliLWNvbmZpZy1zZW5oYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBSXJGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7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SUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDbEQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQzFDLE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQzsrR0E5TlUsdUJBQXVCO21HQUF2Qix1QkFBdUIsNEVDMUJwQyxtNFZBNEtBLDBERHBKYyxrQkFBa0IsZ09BQUUseUJBQXlCLHVLQUFFLElBQUksNEZBQUUsV0FBVyxpc0NBQUUsbUJBQW1CLGdWQUFFLE9BQU8sb0ZBQUUsaUJBQWlCLCtHQUFFLGFBQWEsa2tCQUFFLGlCQUFpQix5SUFBRSwwQkFBMEIsc0lBQUUsbUJBQW1COzs0RkFFck0sdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNJLGtCQUFrQixjQUdoQixJQUFJLFdBQ1AsQ0FBQyxrQkFBa0IsRUFBRSx5QkFBeUIsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQUUsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEZvcm1VdGlscyB9IGZyb20gJy4uLy4uL3V0aWxzL2Zvcm0tdXRpbHMnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9tZXNzYWdlL21lc3NhZ2Uuc2VydmljZSc7XG5cbmltcG9ydCB7IEluZnJhU2VnQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbmZpZy1zZW5oYS83RGIvSW5mcmFTZWdDb25maWcucmVjb3JkJztcbmltcG9ydCB7IENvbmZpZ3VyYWNhb1NlbmhhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvY29uZmlndXJhY2FvLXNlbmhhLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGVuYW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvdGVuYW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IExpYlNwaW5uZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi93aWRnZXRzL3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmllbGRFcnJvck1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi93aWRnZXRzL2ZpZWxkLWVycm9yLW1lc3NhZ2UvZmllbGQtZXJyb3ItbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVxdWlyZWREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3JlcXVpcmVkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC90b29sdGlwJztcbmltcG9ydCB7IExpYkljb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy9saWItaWNvbnMvbGliLWljb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ0lmLCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbnRlbnRDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi93aWRnZXRzL2NvbnRlbnQtY29udGFpbmVyL2NvbnRlbnQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaWJIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi93aWRnZXRzL2xpYi1oZWFkZXIvbGliLWhlYWRlci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi1jb25maWctc2VuaGEnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9saWItY29uZmlnLXNlbmhhLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZXM6IGBgLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0xpYkhlYWRlckNvbXBvbmVudCwgQ29udGVudENvbnRhaW5lckNvbXBvbmVudCwgTmdJZiwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE5nQ2xhc3MsIExpYkljb25zQ29tcG9uZW50LCBUb29sdGlwTW9kdWxlLCBSZXF1aXJlZERpcmVjdGl2ZSwgRmllbGRFcnJvck1lc3NhZ2VDb21wb25lbnQsIExpYlNwaW5uZXJDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIExpYkNvbmZpZ1NlbmhhQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IFBST1BFUlRJRVMgPD09PT09PT09PT1cblxuICAvLyAjcmVnaW9uIFBSSVZBVEVcbiAgcHJpdmF0ZSByZWFkb25seSB1c2VyX2F1dGhfdjYgPSBsb2NhbFN0b3JhZ2VbXCJ1c2VyX2F1dGhfdjZcIl0gPz8gXCJ7fVwiO1xuICBwcml2YXRlIHJlYWRvbmx5IF9fdG9rZW5QYXlsb2FkID0gSlNPTi5wYXJzZSh0aGlzLnVzZXJfYXV0aF92NikuX190b2tlblBheWxvYWQgPz8geyB0ZW5hbnRJZDogMTU3OSB9O1xuXG4gIHByaXZhdGUgX2xvY2FsVGVuYW50SWQgPSB0aGlzLl9fdG9rZW5QYXlsb2FkLnRlbmFudElkID8/IDA7XG4gIC8vICNlbmRyZWdpb24gUFJJVkFURVxuXG4gIC8vICNyZWdpb24gUFVCTElDXG4gIHB1YmxpYyBtZW51R3JvdXAhOiBzdHJpbmc7XG4gIHB1YmxpYyAkaW5mcmFTZWdDb25maWdSZWNvcmQ/OiBJbmZyYVNlZ0NvbmZpZztcbiAgcHVibGljIGluaXRpYWxMZXZlbCE6IG51bWJlcjtcbiAgLy8gI2VuZHJlZ2lvbiBQVUJMSUNcblxuICAvLyAjZW5kcmVnaW9uID09PT09PT09PT0+IFBST1BFUlRJRVMgPD09PT09PT09PT1cblxuXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gRk9STSBCVUlMREVSIDw9PT09PT09PT09XG4gIHB1YmxpYyBnZXQgRm9ybVV0aWxzKCk6IHR5cGVvZiBGb3JtVXRpbHMgeyByZXR1cm4gRm9ybVV0aWxzIH1cblxuICAvLyAjcmVnaW9uIEZPUk0gRklFTERTXG4gIHB1YmxpYyBmb3JtOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICBUZW5hbnRfSWQ6IG5ldyBGb3JtQ29udHJvbDxudW1iZXI+KDApLFxuICAgIElkOiBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyPigwKSxcbiAgICBRdG5NaW5pbWE6IG5ldyBGb3JtQ29udHJvbDxudW1iZXI+KDEsIFZhbGlkYXRvcnMubWluKC0xKSksXG4gICAgSXNfTnVtZXJvczogbmV3IEZvcm1Db250cm9sPGJvb2xlYW4+KGZhbHNlKSxcbiAgICBJc19MZXRyYXNNYWl1c2N1bGFzOiBuZXcgRm9ybUNvbnRyb2w8Ym9vbGVhbj4oZmFsc2UpLFxuICAgIElzX0NhcmFjdGVyZXNFc3BlY2lhaXM6IG5ldyBGb3JtQ29udHJvbDxib29sZWFuPihmYWxzZSksXG4gICAgUXRuVHJvY2FTZW5oYTogbmV3IEZvcm1Db250cm9sPG51bWJlcj4oLTEsIFZhbGlkYXRvcnMubWluKC0xKSksXG4gICAgUXRuSW5hdGl2aWRhZGU6IG5ldyBGb3JtQ29udHJvbDxudW1iZXI+KC0xLCBWYWxpZGF0b3JzLm1pbigtMSkpLFxuICAgIFF0blRlbnRhdGl2YTogbmV3IEZvcm1Db250cm9sPG51bWJlcj4oMSwgVmFsaWRhdG9ycy5taW4oLTEpKSxcbiAgICBRdG5SZXBldGljYW86IG5ldyBGb3JtQ29udHJvbDxudW1iZXI+KDEsIFZhbGlkYXRvcnMubWluKC0xKSksXG4gICAgSXNfRHJvcFNlc3Npb246IG5ldyBGb3JtQ29udHJvbDxib29sZWFuPihmYWxzZSksXG4gICAgTGV2ZWw6IG5ldyBGb3JtQ29udHJvbDxudW1iZXI+KDEpXG4gIH0pO1xuXG4gIHB1YmxpYyBnZXQgSWQoKTogbnVtYmVyIHsgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ0lkJyk/LnZhbHVlIH1cbiAgcHVibGljIGdldCBMZXZlbCgpOiBudW1iZXIgeyByZXR1cm4gdGhpcy5mb3JtLmdldCgnTGV2ZWwnKT8udmFsdWUgfVxuICAvLyAjZW5kcmVnaW9uIEZPUk0gRklFTERTXG5cbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBGT1JNIEJVSUxERVIgPD09PT09PT09PT1cblxuXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gSU5JVElBTElaQVRJT04gPD09PT09PT09PT1cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY29uZmlndXJhY2FvU2VuaGFTZXJ2aWNlOiBDb25maWd1cmFjYW9TZW5oYVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2RvbWluaW86IFRlbmFudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfdGl0bGU6IFRpdGxlXG4gICAgXG4gICAgLy8gcHJpdmF0ZSBfcHJvamVjdFV0aWxzZXJ2aWNlOiBQcm9qZWN0VXRpbHNlcnZpY2UsXG4gICAgLy8gcHJpdmF0ZSBfcHJvamVjdFNlcnZpY2U6IFByb2plY3RTZXJ2aWNlLFxuICAgIC8vIHByaXZhdGUgX2F1dGhTdG9yYWdlOiBBdXRoU3RvcmFnZVNlcnZpY2UsXG4gICkge1xuICB9XG4gIFxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl90aXRsZS5zZXRUaXRsZShcIkNvbmZpZ3VyYcOnw6NvIGRlIFNlbmhhXCIpO1xuICAgIFxuICAgIHRoaXMuX2RvbWluaW8udmFsaWRhdGVUZW5hbnQodGhpcy5fbG9jYWxUZW5hbnRJZCk7XG4gICAgdGhpcy5nZXRJbmZyYVNlZ0NvbmZpZygpO1xuICB9XG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gSU5JVElBTElaQVRJT04gPD09PT09PT09PT1cblxuXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gU0VSVklDRSBNRVRIT0RTIDw9PT09PT09PT09XG5cbiAgLy8gI3JlZ2lvbiBHRVRcbiAgcHJpdmF0ZSBnZXRJbmZyYVNlZ0NvbmZpZygpOiB2b2lkIHtcbiAgICB0aGlzLl9jb25maWd1cmFjYW9TZW5oYVNlcnZpY2UuZ2V0SW5mcmFTZWdDb25maWcoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogcmVzcG9uc2UgPT4ge1xuICAgICAgICB0aGlzLiRpbmZyYVNlZ0NvbmZpZ1JlY29yZCA9IHJlc3BvbnNlLkluZnJhU2VnQ29uZmlnO1xuXG4gICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAuLi50aGlzLmZvcm0udmFsdWUsXG4gICAgICAgICAgLi4ucmVzcG9uc2UuSW5mcmFTZWdDb25maWdcbiAgICAgICAgfSk7XG4gICAgICAgIFxuICAgICAgICB0aGlzLmluaXRpYWxMZXZlbCA9IHJlc3BvbnNlLkluZnJhU2VnQ29uZmlnLkxldmVsIHx8IDE7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1snVGVuYW50X0lkJ10uc2V0VmFsdWUodGhpcy5fbG9jYWxUZW5hbnRJZCk7XG5cbiAgICAgICAgdGhpcy5vblNlbGVjdExldmVsKHRoaXMuTGV2ZWwpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiBlcnJvciA9PiB7XG4gICAgICAgIC8vIHRoaXMuX3Byb2plY3RVdGlsc2VydmljZS5zaG93SHR0cEVycm9yKGVycm9yKVxuICAgICAgICB0aGlzLm9uU2VsZWN0TGV2ZWwodGhpcy5MZXZlbCk7XG4gICAgICAgIHRoaXMuJGluZnJhU2VnQ29uZmlnUmVjb3JkID0gbmV3IEluZnJhU2VnQ29uZmlnKCk7XG5cbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2Uuc2hvd0FsZXJ0RGFuZ2VyKGVycm9yKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICAvLyAjZW5kcmVnaW9uIEdFVFxuXG4gIC8vICNyZWdpb24gUE9TVFxuICBwdWJsaWMgY3JlYXRlT3JVcGRhdGVJbmZyYVNlZ0NvbmZpZygpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0uZW5hYmxlKCk7XG5cbiAgICBpZiAodGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmFjYW9TZW5oYVNlcnZpY2UuY3JlYXRlT3JVcGRhdGVJbmZyYVNlZ0NvbmZpZyh0aGlzLmZvcm0udmFsdWUpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLmluaXRpYWxMZXZlbCA9IHRoaXMuTGV2ZWw7XG5cbiAgICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5zaG93QWxlcnRTdWNjZXNzKGBDb25maWd1cmHDp8OjbyBkZSBzZW5oYSAke3RoaXMuSWQgIT0gMCA/ICdhbHRlcmFkYScgOiAnY3JpYWRhJ30gY29tIHN1Y2Vzc28hYCk7XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gaWYgKHRoaXMuSUQgIT0gMCkgdGhpcy5fbWVzc2FnZVNlcnZpY2Uuc2hvd0FsZXJ0U3VjY2VzcygnQ29uZmlndXJhw6fDo28gZGUgc2VuaGEgYWx0ZXJhZGEgY29tIHN1Y2Vzc28hJyk7XG4gICAgICAgICAgLy8gZWxzZSAgICAgICAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2Uuc2hvd0FsZXJ0U3VjY2VzcygnQ29uZmlndXJhw6fDo28gZGUgc2VuaGEgY3JpYWRhIGNvbSBzdWNlc3NvIScpO1xuICAgICAgICAgIFxuICAgICAgICAgIHRoaXMuX2NvbmZpZ3VyYWNhb1NlbmhhU2VydmljZS5nZXRJbmZyYVNlZ0NvbmZpZygpO1xuICAgICAgICAgIHRoaXMuZ2V0SW5mcmFTZWdDb25maWcoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGVycm9yID0+IHtcbiAgICAgICAgICAvLyB0aGlzLl9wcm9qZWN0VXRpbHNlcnZpY2Uuc2hvd0h0dHBFcnJvcihlcnJvcik7XG4gICAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2Uuc2hvd0FsZXJ0RGFuZ2VyKGVycm9yKTtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIH1cbiAgICBlbHNlIHsgRm9ybVV0aWxzLnZhbGlkYXRlRmllbGRzKHRoaXMuZm9ybSkgfVxuICB9XG4gIC8vICNlbmRyZWdpb24gUE9TVFxuXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gU0VSVklDRSBNRVRIT0RTIDw9PT09PT09PT09XG5cblxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IFVUSUxTIDw9PT09PT09PT09XG4gIG9uU2VsZWN0TGV2ZWwoJHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKCR2YWx1ZSkge1xuICAgICAgY2FzZSAxOlxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19OdW1lcm9zJyk/LnNldFZhbHVlKGZhbHNlKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnSXNfTnVtZXJvcycpPy5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmdldCgnSXNfTGV0cmFzTWFpdXNjdWxhcycpPy5zZXRWYWx1ZShmYWxzZSk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX0xldHJhc01haXVzY3VsYXMnKT8uZGlzYWJsZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX0NhcmFjdGVyZXNFc3BlY2lhaXMnKT8uc2V0VmFsdWUoZmFsc2UpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19DYXJhY3RlcmVzRXNwZWNpYWlzJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5Ucm9jYVNlbmhhJyk/LnNldFZhbHVlKC0xKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuVHJvY2FTZW5oYScpPy5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuTWluaW1hJyk/LnNldFZhbHVlKDYpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5NaW5pbWEnKT8uZGlzYWJsZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0blJlcGV0aWNhbycpPy5zZXRWYWx1ZSgtMSk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0blJlcGV0aWNhbycpPy5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuVGVudGF0aXZhJyk/LnNldFZhbHVlKC0xKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuVGVudGF0aXZhJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5JbmF0aXZpZGFkZScpPy5zZXRWYWx1ZSgtMSk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0bkluYXRpdmlkYWRlJyk/LmRpc2FibGUoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgMjpcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnSXNfTnVtZXJvcycpPy5zZXRWYWx1ZSh0cnVlKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnSXNfTnVtZXJvcycpPy5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmdldCgnSXNfTGV0cmFzTWFpdXNjdWxhcycpPy5zZXRWYWx1ZSh0cnVlKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnSXNfTGV0cmFzTWFpdXNjdWxhcycpPy5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmdldCgnSXNfQ2FyYWN0ZXJlc0VzcGVjaWFpcycpPy5zZXRWYWx1ZShmYWxzZSk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX0NhcmFjdGVyZXNFc3BlY2lhaXMnKT8uZGlzYWJsZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0blRyb2NhU2VuaGEnKT8uc2V0VmFsdWUoMTIwKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuVHJvY2FTZW5oYScpPy5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuTWluaW1hJyk/LnNldFZhbHVlKDgpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5NaW5pbWEnKT8uZGlzYWJsZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0blJlcGV0aWNhbycpPy5zZXRWYWx1ZSgxKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuUmVwZXRpY2FvJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5UZW50YXRpdmEnKT8uc2V0VmFsdWUoNSk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0blRlbnRhdGl2YScpPy5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuSW5hdGl2aWRhZGUnKT8uc2V0VmFsdWUoMTIwKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuSW5hdGl2aWRhZGUnKT8uZGlzYWJsZSgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAzOlxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19OdW1lcm9zJyk/LnNldFZhbHVlKHRydWUpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19OdW1lcm9zJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19MZXRyYXNNYWl1c2N1bGFzJyk/LnNldFZhbHVlKHRydWUpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19MZXRyYXNNYWl1c2N1bGFzJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19DYXJhY3RlcmVzRXNwZWNpYWlzJyk/LnNldFZhbHVlKHRydWUpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19DYXJhY3RlcmVzRXNwZWNpYWlzJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5Ucm9jYVNlbmhhJyk/LnNldFZhbHVlKDMwKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuVHJvY2FTZW5oYScpPy5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuTWluaW1hJyk/LnNldFZhbHVlKDEwKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuTWluaW1hJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5SZXBldGljYW8nKT8uc2V0VmFsdWUoMyk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0blJlcGV0aWNhbycpPy5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuVGVudGF0aXZhJyk/LnNldFZhbHVlKDMpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5UZW50YXRpdmEnKT8uZGlzYWJsZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0bkluYXRpdmlkYWRlJyk/LnNldFZhbHVlKDMwKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuSW5hdGl2aWRhZGUnKT8uZGlzYWJsZSgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSA0OlxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19OdW1lcm9zJyk/LmVuYWJsZSgpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19MZXRyYXNNYWl1c2N1bGFzJyk/LmVuYWJsZSgpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19DYXJhY3RlcmVzRXNwZWNpYWlzJyk/LmVuYWJsZSgpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5Ucm9jYVNlbmhhJyk/LmVuYWJsZSgpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5NaW5pbWEnKT8uZW5hYmxlKCk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0blJlcGV0aWNhbycpPy5lbmFibGUoKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuVGVudGF0aXZhJyk/LmVuYWJsZSgpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5JbmF0aXZpZGFkZScpPy5lbmFibGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uU3VibWl0ID0gKCk6IHZvaWQgPT4geyB0aGlzLmNyZWF0ZU9yVXBkYXRlSW5mcmFTZWdDb25maWcoKSB9O1xuICAvLyAjZW5kcmVnaW9uID09PT09PT09PT0+IFVUSUxTIDw9PT09PT09PT09XG5cbn1cbiIsIjxsaWItaGVhZGVyIFticmVhZGNydW1iTGlzdF09XCJbICdJbmZyYScsICdDb25maWd1cmHDp8OjbyBkZSBTZW5oYScgXVwiIHBhZ2VUaXRsZT1cIkNvbmZpZ3VyYcOnw6NvIGRlIFNlbmhhXCJcbiAgbW9kZT1cImVkaXRcIiBbaGlkZUJ1dHRvbnNdPVwiWyAnQ2FuY2VsYXInIF1cIiAoY3JlYXRlKT1cIm9uU3VibWl0KClcIiAodXBkYXRlKT1cIm9uU3VibWl0KClcIiAgLz5cblxuXG48IS0tICNyZWdpb24gQk9EWSAtLT5cbjxsaWItY29udGFpbmVyPlxuXG4gIDxkaXYgaW5uZXJDb250ZW50MT5cbiAgICA8Zm9ybSAqbmdJZj1cIiRpbmZyYVNlZ0NvbmZpZ1JlY29yZDsgZWxzZSBsb2FkaW5nXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgIDxoMiBjbGFzcz1cImZzLTVcIj5BdHVhbG1lbnRlIHNldSBuw612ZWwgZGUgc2VndXJhbsOnYSDDqSBcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyb3VuZGVkIHRleHQtd2hpdGUgcC0xIHB4LTIgZnctYm9sZFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgJ2JnLWRhbmdlcic6IGluaXRpYWxMZXZlbCA9PT0gMSxcbiAgICAgICAgICAgICAgICAgICdiZy13YXJuaW5nJzogaW5pdGlhbExldmVsID09PSAyLFxuICAgICAgICAgICAgICAgICAgJ2JnLXN1Y2Nlc3MnOiBpbml0aWFsTGV2ZWwgPT09IDMsXG4gICAgICAgICAgICAgICAgICAnYmctcHJpbWFyeSc6IGluaXRpYWxMZXZlbCA9PT0gNCxcbiAgICAgICAgICAgICAgICB9XCIgPlxuXG4gICAgICAgICAgICAgICAgQHN3aXRjaCAoaW5pdGlhbExldmVsKSB7XG4gICAgICAgICAgICAgICAgICBAY2FzZSAoMSkgeyBCYWl4byB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAoMikgeyBNw6lkaW8gfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKDMpIHsgQWx0byB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAoNCkgeyBQZXJzb25hbGl6YWRvIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA8IS0tIDxzdHJvbmcgKm5nSWY9XCJpbml0aWFsTGV2ZWwgPT09IDFcIj4gQmFpeG8gPC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInRleHQtZGFya1wiICpuZ0lmPVwiaW5pdGlhbExldmVsID09PSAyXCI+IE3DqWRpbyA8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICA8c3Ryb25nICpuZ0lmPVwiaW5pdGlhbExldmVsID09PSAzXCI+IEFsdG8gPC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgPHN0cm9uZyAqbmdJZj1cImluaXRpYWxMZXZlbCA9PT0gNFwiPiBQZXJzb25hbGl6YWRvIDwvc3Ryb25nPiAtLT5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvaDI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgcm91bmRlZCBtYi00XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cbiAgICAgICAgICAgIDxoMyBjbGFzcz1cImNhcmQtc3VidGl0bGUgbWItMiB0ZXh0LW11dGVkIGZzLTZcIj5TZWxlY2lvbmUgdW0gbsOtdmVsIGRlIHNlZ3VyYW7Dp2EgYWJhaXhvOjwvaDM+XG5cbiAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJMZXZlbFwiIHR5cGU9XCJyYWRpb1wiIGNsYXNzPVwiYnRuLWNoZWNrXCIgbmFtZT1cIkxldmVsXCIgaWQ9XCJvcHRpb24xXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgW3ZhbHVlXT1cIjFcIiAoY2hhbmdlKT1cIm9uU2VsZWN0TGV2ZWwoTGV2ZWwpXCIgPlxuICAgICAgICAgICAgPGxhYmVsIFtjbGFzcy5idG4tb3V0bGluZS1kYW5nZXJdPVwiTGV2ZWwgPT09IDFcIiBbY2xhc3MuYmctZGFuZ2VyXT1cIkxldmVsID09PSAxXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSBtLTJcIiBmb3I9XCJvcHRpb24xXCI+PGxpYi1pY29uIGljb25OYW1lPVwiY2FkZWFkby1hYmVydG8tb3V0bGluZVwiLz4gQmFpeG8gPC9sYWJlbD5cblxuICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cIkxldmVsXCIgdHlwZT1cInJhZGlvXCIgY2xhc3M9XCJidG4tY2hlY2tcIiBuYW1lPVwiTGV2ZWxcIiBpZD1cIm9wdGlvbjJcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBbdmFsdWVdPVwiMlwiIChjaGFuZ2UpPVwib25TZWxlY3RMZXZlbChMZXZlbClcIiA+XG4gICAgICAgICAgICA8bGFiZWwgW2NsYXNzLmJnLXdhcm5pbmddPVwiTGV2ZWwgPT09IDJcIiBbY2xhc3MuYnRuLW91dGxpbmUtd2FybmluZ109XCJMZXZlbCA9PT0gMlwiIGNsYXNzPVwiIGJ0biBidG4tc2Vjb25kYXJ5IHRleHQtbGlnaHQgbS0yXCIgZm9yPVwib3B0aW9uMlwiPjxsaWItaWNvbiBpY29uTmFtZT1cImNhZGVhZG8tc2VtaWFiZXJ0by1vdXRsaW5lXCIvPiBNw6lkaW88L2xhYmVsPlxuXG4gICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiTGV2ZWxcIiB0eXBlPVwicmFkaW9cIiBjbGFzcz1cImJ0bi1jaGVja1wiIG5hbWU9XCJMZXZlbFwiIGlkPVwib3B0aW9uM1wiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFt2YWx1ZV09XCIzXCIgKGNoYW5nZSk9XCJvblNlbGVjdExldmVsKExldmVsKVwiID5cbiAgICAgICAgICAgIDxsYWJlbCBbY2xhc3MuYnRuLW91dGxpbmUtc3VjY2Vzc109XCJMZXZlbCA9PT0gM1wiIFtjbGFzcy5iZy1zdWNjZXNzXT1cIkxldmVsID09PSAzXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSBtLTJcIiBmb3I9XCJvcHRpb24zXCI+PGxpYi1pY29uIGljb25OYW1lPVwiY2FkZWFkby1vdXRsaW5lXCIvPiBBbHRvPC9sYWJlbD5cblxuICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cIkxldmVsXCIgdHlwZT1cInJhZGlvXCIgY2xhc3M9XCJidG4tY2hlY2tcIiBuYW1lPVwiTGV2ZWxcIiBpZD1cIm9wdGlvbjRcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBbdmFsdWVdPVwiNFwiIChjaGFuZ2UpPVwib25TZWxlY3RMZXZlbChMZXZlbClcIiA+XG4gICAgICAgICAgICA8bGFiZWwgW2NsYXNzLmJ0bi1vdXRsaW5lLXByaW1hcnldPVwiTGV2ZWwgPT09IDRcIiBbY2xhc3MuYmctcHJpbWFyeV09XCJMZXZlbCA9PT0gNFwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgbS0yXCIgZm9yPVwib3B0aW9uNFwiPjxsaWItaWNvbiBpY29uTmFtZT1cImNoYXZlXCIvPiBQZXJzb25hbGl6YWRvPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIHJvdW5kZWQgcC0zIG1iLTRcIj5cbiAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC1zdWJ0aXRsZSBtYi0yIHRleHQtbXV0ZWQgZnMtNlwiPkEgc2VuaGEgZGV2ZSBjb250ZXI6PC9oMz5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgZm9yPVwibnVtZXJvc1wiPiBOw7ptZXJvIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJJc19OdW1lcm9zXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiIGlkPVwibnVtZXJvc1wiPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJsZXRyYU1haXVzY3VsYVwiPiBMZXRyYSBNYWnDunNjdWxhIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJJc19MZXRyYXNNYWl1c2N1bGFzXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiIGlkPVwibGV0cmFNYWl1c2N1bGFcIj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgZm9yPVwiY2FyYWN0ZXJlc0VzcGVjaWFpc1wiPkNhcmFjdGVyZSBlc3BlY2lhbDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJJc19DYXJhY3RlcmVzRXNwZWNpYWlzXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiIGlkPVwiY2FyYWN0ZXJlc0VzcGVjaWFpc1wiPlxuICAgICAgICAgICAgICAgICAgICA8bGliLWljb24gY2xhc3M9XCJtcy0xXCIgaWNvbk5hbWU9XCJpbmZvXCIgaWNvbkNvbG9yPVwiYmx1ZVwiIGljb25TaXplPVwic21hbGxcIiB0b29sdGlwPVwiQ2FyYWN0ZXJlcyBzdWdlcmlkb3M6ICEgQCAjICQgJSAmICogKCApIF8gKyA9IFsgXSB7IH0gfCA/XCIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgbGliUmVxdWlyZWQgY2xhc3M9XCJmb3JtLWxhYmVsIGZvcm0tY29udHJvbC1zbVwiIGZvcj1cInF0blRyb2NhU2VuaGFJbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGliLWljb24gaWNvbk5hbWU9XCJpbmZvXCIgaWNvblNpemU9XCJzbWFsbFwiIGljb25Db2xvcj1cImJsdWVcIiB0b29sdGlwPVwiSW5mb3JtZSBhIHF1YW50aWRhZGUgZW0gZGlhcyBxdWUgYSBzZW5oYSBzZXLDoSB2w6FsaWRhLCBhcMOzcyBlc3RlIHBlcsOtb2RvIGEgc2VuaGEgZGV2ZXLDoSBzZXIgdHJvY2FkYSBwZWxvIHVzdcOhcmlvLlwiIC8+XG4gICAgICAgICAgICAgICAgICAgIFZhbGlkYWRlIGVtIGRpYXNcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJRdG5Ucm9jYVNlbmhhXCIgdHlwZT1cIm51bWJlclwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0taW5wdXRcIiBpZD1cInF0blRyb2NhU2VuaGFJbnB1dFwiIHRvb2x0aXA9XCJJbmZvcm1lIGEgcXVhbnRpZGFkZSBlbSBkaWFzIHF1ZSBhIHNlbmhhIHNlcsOhIHbDoWxpZGEsIGFww7NzIGVzdGUgcGVyw61vZG8gYSBzZW5oYSBkZXZlcsOhIHNlciB0cm9jYWRhIHBlbG8gdXN1w6FyaW8uXCIgPlxuICAgICAgICAgICAgICAgIDxhcHAtZmllbGQtZXJyb3ItbWVzc2FnZSBbY29udHJvbF09XCJmb3JtLmdldCgnUXRuVHJvY2FTZW5oYScpXCI+PC9hcHAtZmllbGQtZXJyb3ItbWVzc2FnZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGxpYlJlcXVpcmVkIGNsYXNzPVwiZm9ybS1sYWJlbCBmb3JtLWNvbnRyb2wtc21cIiBmb3I9XCJxdG5NaW5pbWFJbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGliLWljb24gaWNvbk5hbWU9XCJpbmZvXCIgaWNvblNpemU9XCJzbWFsbFwiIGljb25Db2xvcj1cImJsdWVcIiB0b29sdGlwPVwiSW5mb3JtZSBhIHF1YW50aWRhZGUgbcOtbmltYSBkZSBjYXJhY3RlcmVzIHF1ZSBhIHNlbmhhIGRldmUgdGVyLlwiIC8+XG4gICAgICAgICAgICAgICAgICAgIFRhbWFuaG8gbcOtbmltb1xuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cIlF0bk1pbmltYVwiIHR5cGU9XCJudW1iZXJcIiBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWlucHV0XCIgaWQ9XCJxdG5NaW5pbWFJbnB1dFwiIHRvb2x0aXA9XCJJbmZvcm1lIGEgcXVhbnRpZGFkZSBtw61uaW1hIGRlIGNhcmFjdGVyZXMgcXVlIGEgc2VuaGEgZGV2ZSB0ZXIuXCI+XG4gICAgICAgICAgICAgICAgPGFwcC1maWVsZC1lcnJvci1tZXNzYWdlIFtjb250cm9sXT1cImZvcm0uZ2V0KCdRdG5NaW5pbWEnKVwiPjwvYXBwLWZpZWxkLWVycm9yLW1lc3NhZ2U+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBsaWJSZXF1aXJlZCBjbGFzcz1cImZvcm0tbGFiZWwgZm9ybS1jb250cm9sLXNtXCIgZm9yPVwicXRuUmVwZXRpY2FvSW5wdXRcIj5cbiAgICAgICAgICAgICAgICAgIDxsaWItaWNvbiBpY29uTmFtZT1cImluZm9cIiBpY29uU2l6ZT1cInNtYWxsXCIgaWNvbkNvbG9yPVwiYmx1ZVwiIHRvb2x0aXA9XCJJbmZvcm1lIHF1YW50YXMgc2VuaGFzIGRpZmVyZW50ZXMgbyB1c3XDoXJpbyBkZXZlcsOhIHVzYXIgYW50ZXMgcXVlIHBvc3NhIHJlcGV0aXIgYWxndW1hIGrDoSB1dGlsaXphZGEuXCIgLz5cbiAgICAgICAgICAgICAgICAgIFJlcGV0acOnw6NvXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiUXRuUmVwZXRpY2FvXCIgdHlwZT1cIm51bWJlclwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0taW5wdXRcIiBpZD1cInF0blJlcGV0aWNhb0lucHV0XCIgdG9vbHRpcD1cIkluZm9ybWUgcXVhbnRhcyBzZW5oYXMgZGlmZXJlbnRlcyBvIHVzdcOhcmlvIGRldmVyw6EgdXNhciBhbnRlcyBxdWUgcG9zc2EgcmVwZXRpciBhbGd1bWEgasOhIHV0aWxpemFkYS5cIj5cbiAgICAgICAgICAgICAgICA8YXBwLWZpZWxkLWVycm9yLW1lc3NhZ2UgW2NvbnRyb2xdPVwiZm9ybS5nZXQoJ1F0blJlcGV0aWNhbycpXCI+PC9hcHAtZmllbGQtZXJyb3ItbWVzc2FnZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjb250YWluZXIgY29sIHJvd1wiPlxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgcm91bmRlZCBwLTNcIj5cbiAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC1zdWJ0aXRsZSBtYi0yIHRleHQtbXV0ZWQgZnMtNlwiPkJsb3F1ZWlvczo8L2gzPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNvbC0yIGZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgZm9yPVwiaXNEcm9wU2Vzc2lvbkNoZWNrXCI+IERlcnJ1YmFyIG11bHRpcGxhcyBzZXNzw7VlczwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIGlkPVwiaXNEcm9wU2Vzc2lvbkNoZWNrXCIgZm9ybUNvbnRyb2xOYW1lPVwiSXNfRHJvcFNlc3Npb25cIiB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCI+XG4gICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBsaWJSZXF1aXJlZCBjbGFzcz1cImZvcm0tbGFiZWwgZm9ybS1jb250cm9sLXNtXCIgZm9yPVwiZGlhc0luYXRpdmlkYWRlSW5wdXRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpYi1pY29uIGljb25OYW1lPVwiaW5mb1wiIGljb25TaXplPVwic21hbGxcIiBpY29uQ29sb3I9XCJibHVlXCIgdG9vbHRpcD1cIkluZm9ybWUgcXVhbnRvcyBkaWFzIHVtIHVzdcOhcmlvIHBvZGVyw6EgZmljYXIgc2VtIGVudHJhciBubyBzaXN0ZW1hLCBhbyBleGNlZGVyIGVzdGUgbsO6bWVybyBvIHVzdcOhcmlvIHNlcsOhIGRlc2F0aXZhZG8gcGVyZGVuZG8gbyBhY2Vzc28gYW8gc2lzdGVtYSwgZSBzb21lbnRlIG9zIEFkbWluaXN0cmFkb3JlcyBwb2RlcsOjbyBhdGl2w6EtbG8gbm92YW1lbnRlLlwiIC8+XG4gICAgICAgICAgICAgICAgICAgIERpYXMgZGUgSW5hdGl2aWRhZGVcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCAgaWQ9XCJkaWFzSW5hdGl2aWRhZGVJbnB1dFwiIGZvcm1Db250cm9sTmFtZT1cIlF0bkluYXRpdmlkYWRlXCIgdHlwZT1cIm51bWJlclwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0taW5wdXRcIiB0b29sdGlwPVwiSW5mb3JtZSBxdWFudG9zIGRpYXMgdW0gdXN1w6FyaW8gcG9kZXLDoSBmaWNhciBzZW0gZW50cmFyIG5vIHNpc3RlbWEsIGFvIGV4Y2VkZXIgZXN0ZSBuw7ptZXJvIG8gdXN1w6FyaW8gc2Vyw6EgZGVzYXRpdmFkbyBwZXJkZW5kbyBvIGFjZXNzbyBhbyBzaXN0ZW1hLCBlIHNvbWVudGUgb3MgQWRtaW5pc3RyYWRvcmVzIHBvZGVyw6NvIGF0aXbDoS1sbyBub3ZhbWVudGUuXCI+XG4gICAgICAgICAgICAgICAgPGFwcC1maWVsZC1lcnJvci1tZXNzYWdlIFtjb250cm9sXT1cImZvcm0uZ2V0KCdRdG5JbmF0aXZpZGFkZScpXCI+PC9hcHAtZmllbGQtZXJyb3ItbWVzc2FnZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGxpYlJlcXVpcmVkIGNsYXNzPVwiZm9ybS1sYWJlbCBmb3JtLWNvbnRyb2wtc21cIiBmb3I9XCJ0ZW50YXRpdmFzRGVBY2Vzc29JbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGliLWljb24gaWNvbk5hbWU9XCJpbmZvXCIgaWNvblNpemU9XCJzbWFsbFwiIGljb25Db2xvcj1cImJsdWVcIiB0b29sdGlwPVwiSW5mb3JtZSBhIHF1YW50aWRhZGUgZGUgdGVudGF0aXZhcyBjb25zZWN1dGl2YXMgZGUgYWNlc3NvIGFvIHNpc3RlbWEgc2VtIHN1Y2Vzc28gYW50ZXMgZGUgYmxvcXVlYXIgbyB1c3XDoXJpbywgZXhpZ2luZG8gcXVlIGVsZSBmYcOnYSB1bWEgcmVjdXBlcmHDp8OjbyBkZSBzZW5oYS5cIiAvPlxuICAgICAgICAgICAgICAgICAgICBUZW50YXRpdmFzIGRlIGFjZXNzb1xuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IGlkPVwidGVudGF0aXZhc0RlQWNlc3NvSW5wdXRcIiBmb3JtQ29udHJvbE5hbWU9XCJRdG5UZW50YXRpdmFcIiB0eXBlPVwibnVtYmVyXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1pbnB1dFwiIHRvb2x0aXA9XCJJbmZvcm1lIGEgcXVhbnRpZGFkZSBkZSB0ZW50YXRpdmFzIGNvbnNlY3V0aXZhcyBkZSBhY2Vzc28gYW8gc2lzdGVtYSBzZW0gc3VjZXNzbyBhbnRlcyBkZSBibG9xdWVhciBvIHVzdcOhcmlvLCBleGlnaW5kbyBxdWUgZWxlIGZhw6dhIHVtYSByZWN1cGVyYcOnw6NvIGRlIHNlbmhhLlwiPlxuICAgICAgICAgICAgICAgIDxhcHAtZmllbGQtZXJyb3ItbWVzc2FnZSBbY29udHJvbF09XCJmb3JtLmdldCgnUXRuVGVudGF0aXZhJylcIj48L2FwcC1maWVsZC1lcnJvci1tZXNzYWdlPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNvbnRhaW5lciBjb2wtNiByb3dcIj5cblxuICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gUGFsYXZyYXMgZG8gR3VpbGhlcm1lOiBcIm9jdWx0ZWlhIGVsZXNcIiwgXCJ1bSBkaWEgaW1wbGVtZW50YW1vc1wiIC0tPlxuICAgIDwhLS0gI3JlZ2lvbiBNQVJLOiBMSU5LUyBPQ1VMVEFET1MgLS0+XG4gICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2FyZCBwLTMgbXQtM1wiPlxuICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXN1YnRpdGxlIG1iLTIgdGV4dC1tdXRlZCBmcy02XCI+UmVkZWZpbmnDp8OjbyBkZSBzZW5oYTo8L2gzPlxuICAgICAgICA8YSBocmVmPVwiI1wiIGNsYXNzPVwibGluay1wcmltYXJ5XCI+T2JyaWdhciB0b2RvcyBvcyB1c3XDoXJpb3MgYSB0cm9jYXJlbSBzdWEgc2VuaGEgbm8gcHLDs3hpbW8gbG9naW48L2E+XG4gICAgICAgIDxhIGhyZWY9XCIjXCIgY2xhc3M9XCJsaW5rLXByaW1hcnlcIj5TZWxlY2lvbmFyIHVzdcOhcmlvcyBwYXJhIHRyb2NhcmVtIHN1YSBzZW5oYSBubyBwcsOzeGltbyBsb2dpbjwvYT5cbiAgICA8L2Rpdj4gLS0+XG4gICAgPCEtLSAjZW5kcmVnaW9uIExJTktTIE9DVUxUQURPUyAtLT5cblxuXG4gICAgPCEtLSA8ZGl2IGNsYXNzPVwiYm9yZGVyIHJvdW5kZWRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxuICAgICAgICAgICAgXG5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+IC0tPlxuXG4gICAgPC9mb3JtPlxuICA8L2Rpdj5cblxuPC9saWItY29udGFpbmVyPlxuPCEtLSAjZW5kcmVnaW9uIEJPRFkgLS0+XG5cbjwhLS0gI3JlZ2lvbiBTUElOTkVSIC0tPlxuPG5nLXRlbXBsYXRlICNsb2FkaW5nPlxuICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCB0ZXh0LWNlbnRlclwiPlxuICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJzcGlubmVyLWJvcmRlclwiIHN0eWxlPVwid2lkdGg6IDNyZW07IGhlaWdodDogM3JlbTtcIiByb2xlPVwic3RhdHVzXCI+IDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+Q2FycmVnYW5kby4uLjwvc3Bhbj4gPC9kaXY+IC0tPlxuICAgICAgICA8bGliLXNwaW5uZXIgLz5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZ0lzQXRpdm8+XG4gICAgPGRpdiBjbGFzcz1cInNwaW5uZXItYm9yZGVyIHNwaW5uZXItYm9yZGVyLXNtIG1lLTJcIiByb2xlPVwic3RhdHVzXCI+IDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+Q2FycmVnYW5kby4uLjwvc3Bhbj4gPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPCEtLSAjZW5kcmVnaW9uIFNQSU5ORVIgLS0+XG4iXX0=
|
|
@@ -6,11 +6,11 @@ export class PageNotAuthorizedComponent {
|
|
|
6
6
|
this.router = router;
|
|
7
7
|
}
|
|
8
8
|
onHome() { this.router.navigate(["/home"]); }
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
10
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PageNotAuthorizedComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PageNotAuthorizedComponent, isStandalone: true, selector: "app-page-not-authorized, page-not-authorized", ngImport: i0, template: "<div class=\"content\">\n <div class=\"image mb-4\"> <img src=\"src/assets/icons/page-not-authorized.svg\" height=\"250\" width=\"250\" > </div>\n <h1 class=\"tittle\">Voc\u00EA n\u00E3o tem permiss\u00E3o para executar esta op\u00E7\u00E3o.</h1>\n <button class=\"btn button mt-3\" (click)=\"onHome()\"> Voltar para a tela inicial </button>\n</div>\n", styles: [".content{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100vw;height:100vh}.image{text-align:center;display:block}.tittle{font-family:Open Sans;font-style:normal;font-weight:700;font-size:48px;line-height:65px;text-align:center;color:#212529}.sub-tittle{font-family:Open Sans;font-style:normal;font-weight:400;font-size:16px;line-height:22px;width:600px;text-align:center;color:#212529}.button{background:#0d6efd;border-radius:4px;font-family:Open Sans;font-style:normal;font-weight:400;font-size:16px;line-height:22px;color:#fff}\n"], preserveWhitespaces: true }); }
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PageNotAuthorizedComponent, decorators: [{
|
|
13
13
|
type: Component,
|
|
14
|
-
args: [{ selector: 'app-page-not-authorized, page-not-authorized', preserveWhitespaces: true, template: "<div class=\"content\">\n <div class=\"image mb-4\"> <img src=\"src/assets/icons/page-not-authorized.svg\" height=\"250\" width=\"250\" > </div>\n <h1 class=\"tittle\">Voc\u00EA n\u00E3o tem permiss\u00E3o para executar esta op\u00E7\u00E3o.</h1>\n <button class=\"btn button mt-3\" (click)=\"onHome()\"> Voltar para a tela inicial </button>\n</div>\n", styles: [".content{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100vw;height:100vh}.image{text-align:center;display:block}.tittle{font-family:Open Sans;font-style:normal;font-weight:700;font-size:48px;line-height:65px;text-align:center;color:#212529}.sub-tittle{font-family:Open Sans;font-style:normal;font-weight:400;font-size:16px;line-height:22px;width:600px;text-align:center;color:#212529}.button{background:#0d6efd;border-radius:4px;font-family:Open Sans;font-style:normal;font-weight:400;font-size:16px;line-height:22px;color:#fff}\n"] }]
|
|
14
|
+
args: [{ selector: 'app-page-not-authorized, page-not-authorized', preserveWhitespaces: true, standalone: true, template: "<div class=\"content\">\n <div class=\"image mb-4\"> <img src=\"src/assets/icons/page-not-authorized.svg\" height=\"250\" width=\"250\" > </div>\n <h1 class=\"tittle\">Voc\u00EA n\u00E3o tem permiss\u00E3o para executar esta op\u00E7\u00E3o.</h1>\n <button class=\"btn button mt-3\" (click)=\"onHome()\"> Voltar para a tela inicial </button>\n</div>\n", styles: [".content{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100vw;height:100vh}.image{text-align:center;display:block}.tittle{font-family:Open Sans;font-style:normal;font-weight:700;font-size:48px;line-height:65px;text-align:center;color:#212529}.sub-tittle{font-family:Open Sans;font-style:normal;font-weight:400;font-size:16px;line-height:22px;width:600px;text-align:center;color:#212529}.button{background:#0d6efd;border-radius:4px;font-family:Open Sans;font-style:normal;font-weight:400;font-size:16px;line-height:22px;color:#fff}\n"] }]
|
|
15
15
|
}], ctorParameters: () => [{ type: i1.Router }] });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1ub3QtYXV0aG9yaXplZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2Utbm90LWF1dGhvcml6ZWQvcGFnZS1ub3QtYXV0aG9yaXplZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2Utbm90LWF1dGhvcml6ZWQvcGFnZS1ub3QtYXV0aG9yaXplZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFVMUMsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxZQUFvQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFJLENBQUM7SUFFdkMsTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7K0dBSGxDLDBCQUEwQjttR0FBMUIsMEJBQTBCLHdHQ1Z2QyxvV0FLQTs7NEZES2EsMEJBQTBCO2tCQVB0QyxTQUFTOytCQUNJLDhDQUE4Qyx1QkFHbkMsSUFBSSxjQUNiLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLXBhZ2Utbm90LWF1dGhvcml6ZWQsIHBhZ2Utbm90LWF1dGhvcml6ZWQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wYWdlLW5vdC1hdXRob3JpemVkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wYWdlLW5vdC1hdXRob3JpemVkLmNvbXBvbmVudC5jc3MnXSxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiB0cnVlLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgUGFnZU5vdEF1dGhvcml6ZWRDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7IH1cbiAgXG4gIG9uSG9tZSgpIHsgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiL2hvbWVcIl0pOyB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICA8ZGl2IGNsYXNzPVwiaW1hZ2UgbWItNFwiPiA8aW1nIHNyYz1cInNyYy9hc3NldHMvaWNvbnMvcGFnZS1ub3QtYXV0aG9yaXplZC5zdmdcIiBoZWlnaHQ9XCIyNTBcIiB3aWR0aD1cIjI1MFwiID4gPC9kaXY+XG4gIDxoMSBjbGFzcz1cInRpdHRsZVwiPlZvY8OqIG7Do28gdGVtIHBlcm1pc3PDo28gcGFyYSBleGVjdXRhciBlc3RhIG9ww6fDo28uPC9oMT5cbiAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidXR0b24gbXQtM1wiIChjbGljayk9XCJvbkhvbWUoKVwiPiBWb2x0YXIgcGFyYSBhIHRlbGEgaW5pY2lhbCA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
|
|
@@ -139,12 +139,15 @@ export class ClickOutsideDirective {
|
|
|
139
139
|
window.removeEventListener('blur', this._onWindowBlur);
|
|
140
140
|
});
|
|
141
141
|
}
|
|
142
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
143
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
142
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
143
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: ClickOutsideDirective, isStandalone: true, selector: "[clickOutside]", inputs: { clickOutsideEnabled: "clickOutsideEnabled", attachOutsideOnClick: "attachOutsideOnClick", delayClickOutsideInit: "delayClickOutsideInit", emitOnBlur: "emitOnBlur", exclude: "exclude", excludeBeforeClick: "excludeBeforeClick", clickOutsideEvents: "clickOutsideEvents" }, outputs: { clickOutside: "clickOutside" }, usesOnChanges: true, ngImport: i0 }); }
|
|
144
144
|
}
|
|
145
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
145
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ClickOutsideDirective, decorators: [{
|
|
146
146
|
type: Directive,
|
|
147
|
-
args: [{
|
|
147
|
+
args: [{
|
|
148
|
+
selector: '[clickOutside]',
|
|
149
|
+
standalone: true
|
|
150
|
+
}]
|
|
148
151
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: Document, decorators: [{
|
|
149
152
|
type: Inject,
|
|
150
153
|
args: [DOCUMENT]
|
|
@@ -165,4 +168,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
165
168
|
}], clickOutside: [{
|
|
166
169
|
type: Output
|
|
167
170
|
}] } });
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi9kaXJlY3RpdmVzL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBS0wsTUFBTSxHQUVOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7QUFHekMsTUFBTSxPQUFPLHFCQUFxQjtJQWlCakMsWUFDUyxHQUFlLEVBQ2YsT0FBZSxFQUNHLFFBQWtCO1FBRnBDLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ0csYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQW5CcEMsd0JBQW1CLEdBQUcsSUFBSSxDQUFDO1FBRTNCLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3QiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDOUIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBRTNCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUV2QixpQkFBWSxHQUF3QixJQUFJLFlBQVksRUFBUyxDQUFDO1FBRWhFLG1CQUFjLEdBQXVCLEVBQUUsQ0FBQztRQUN4QyxZQUFPLEdBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFNMUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLENB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LENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOytHQXBLVyxxQkFBcUIsa0VBb0J4QixRQUFRO21HQXBCTCxxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBRGpDLFNBQVM7bUJBQUMsRUFBQyxRQUFRLEVBQUUsZ0JBQWdCLEVBQUM7OzBCQXFCcEMsTUFBTTsyQkFBQyxRQUFRO3lDQW5CUixtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRUcsb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHREaXJlY3RpdmUsXG5cdEVsZW1lbnRSZWYsXG5cdEV2ZW50RW1pdHRlcixcblx0SW5qZWN0LFxuXHRJbnB1dCxcblx0Tmdab25lLFxuXHRPbkNoYW5nZXMsXG5cdE9uRGVzdHJveSxcblx0T25Jbml0LFxuXHRPdXRwdXQsXG5cdFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQERpcmVjdGl2ZSh7c2VsZWN0b3I6ICdbY2xpY2tPdXRzaWRlXSd9KVxuZXhwb3J0IGNsYXNzIENsaWNrT3V0c2lkZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuXHRASW5wdXQoKSBjbGlja091dHNpZGVFbmFibGVkID0gdHJ1ZTtcbiAgICBcblx0QElucHV0KCkgYXR0YWNoT3V0c2lkZU9uQ2xpY2sgPSBmYWxzZTtcblx0QElucHV0KCkgZGVsYXlDbGlja091dHNpZGVJbml0ID0gZmFsc2U7XG5cdEBJbnB1dCgpIGVtaXRPbkJsdXIgPSBmYWxzZTtcblxuXHRASW5wdXQoKSBleGNsdWRlID0gJyc7XG5cdEBJbnB1dCgpIGV4Y2x1ZGVCZWZvcmVDbGljayA9IGZhbHNlO1xuXG5cdEBJbnB1dCgpIGNsaWNrT3V0c2lkZUV2ZW50cyA9ICcnO1xuXG5cdEBPdXRwdXQoKSBjbGlja091dHNpZGU6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG5cdHByaXZhdGUgX25vZGVzRXhjbHVkZWQ6IEFycmF5PEhUTUxFbGVtZW50PiA9IFtdO1xuXHRwcml2YXRlIF9ldmVudHM6IEFycmF5PHN0cmluZz4gPSBbJ2NsaWNrJ107XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSBfZWw6IEVsZW1lbnRSZWYsXG5cdFx0cHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUsXG5cdFx0QEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQpIHtcblx0XHR0aGlzLl9pbml0T25DbGlja0JvZHkgPSB0aGlzLl9pbml0T25DbGlja0JvZHkuYmluZCh0aGlzKTtcblx0XHR0aGlzLl9vbkNsaWNrQm9keSA9IHRoaXMuX29uQ2xpY2tCb2R5LmJpbmQodGhpcyk7XG5cdFx0dGhpcy5fb25XaW5kb3dCbHVyID0gdGhpcy5fb25XaW5kb3dCbHVyLmJpbmQodGhpcyk7XG5cdH1cblxuXHRuZ09uSW5pdCgpIHtcblx0XHR0aGlzLl9pbml0KCk7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpIHtcblx0XHR0aGlzLl9yZW1vdmVDbGlja091dHNpZGVMaXN0ZW5lcigpO1xuXHRcdHRoaXMuX3JlbW92ZUF0dGFjaE91dHNpZGVPbkNsaWNrTGlzdGVuZXIoKTtcblx0XHR0aGlzLl9yZW1vdmVXaW5kb3dCbHVyTGlzdGVuZXIoKTtcblx0fVxuXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcblx0XHRpZiAoY2hhbmdlc1snYXR0YWNoT3V0c2lkZU9uQ2xpY2snXSB8fCBjaGFuZ2VzWydleGNsdWRlJ10gfHwgY2hhbmdlc1snZW1pdE9uQmx1ciddKSB7XG5cdFx0XHR0aGlzLl9pbml0KCk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBfaW5pdCgpIHtcblx0XHRpZiAodGhpcy5jbGlja091dHNpZGVFdmVudHMgIT09ICcnKSB7XG5cdFx0XHR0aGlzLl9ldmVudHMgPSB0aGlzLmNsaWNrT3V0c2lkZUV2ZW50cy5zcGxpdCgnLCcpLm1hcChlID0+IGUudHJpbSgpKTtcblx0XHR9XG5cblx0XHR0aGlzLl9leGNsdWRlQ2hlY2soKTtcblxuXHRcdGlmICh0aGlzLmF0dGFjaE91dHNpZGVPbkNsaWNrKSB7XG5cdFx0XHR0aGlzLl9pbml0QXR0YWNoT3V0c2lkZU9uQ2xpY2tMaXN0ZW5lcigpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLl9pbml0T25DbGlja0JvZHkoKTtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5lbWl0T25CbHVyKSB7XG5cdFx0XHR0aGlzLl9pbml0V2luZG93Qmx1ckxpc3RlbmVyKCk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBfaW5pdE9uQ2xpY2tCb2R5KCkge1xuXHRcdGlmICh0aGlzLmRlbGF5Q2xpY2tPdXRzaWRlSW5pdCkge1xuXHRcdFx0c2V0VGltZW91dCh0aGlzLl9pbml0Q2xpY2tPdXRzaWRlTGlzdGVuZXIuYmluZCh0aGlzKSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuX2luaXRDbGlja091dHNpZGVMaXN0ZW5lcigpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX2V4Y2x1ZGVDaGVjaygpIHtcblx0XHRpZiAodGhpcy5leGNsdWRlKSB7XG5cdFx0XHR0cnkge1xuXHRcdGNvbnN0IG5vZGVzID0gQXJyYXkuZnJvbSh0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwodGhpcy5leGNsdWRlKSkgYXMgQXJyYXk8SFRNTEVsZW1lbnQ+O1xuXHRcdGlmIChub2Rlcykge1xuXHRcdFx0dGhpcy5fbm9kZXNFeGNsdWRlZCA9IG5vZGVzO1xuXHRcdH1cblx0XHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdGNvbnNvbGUuZXJyb3IoJ1tuZy1jbGljay1vdXRzaWRlXSBDaGVjayB5b3VyIGV4Y2x1ZGUgc2VsZWN0b3Igc3ludGF4LicsIGVycik7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBfb25DbGlja0JvZHkoZXY6IEV2ZW50KSB7XG5cdFx0aWYgKCF0aGlzLmNsaWNrT3V0c2lkZUVuYWJsZWQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5leGNsdWRlQmVmb3JlQ2xpY2spIHtcblx0XHRcdHRoaXMuX2V4Y2x1ZGVDaGVjaygpO1xuXHRcdH1cblxuXHRcdGlmICghdGhpcy5fZWwubmF0aXZlRWxlbWVudC5jb250YWlucyhldi50YXJnZXQpICYmICF0aGlzLl9zaG91bGRFeGNsdWRlKGV2LnRhcmdldCkpIHtcblx0XHRcdHRoaXMuX2VtaXQoZXYpO1xuXG5cdFx0XHRpZiAodGhpcy5hdHRhY2hPdXRzaWRlT25DbGljaykge1xuXHRcdHRoaXMuX3JlbW92ZUNsaWNrT3V0c2lkZUxpc3RlbmVyKCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFJlc29sdmVzIHByb2JsZW0gd2l0aCBvdXRzaWRlIGNsaWNrIG9uIGlmcmFtZVxuXHQgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hcmtvbi9uZy1jbGljay1vdXRzaWRlL2lzc3Vlcy8zMlxuXHQgKi9cblx0cHJpdmF0ZSBfb25XaW5kb3dCbHVyKGV2OiBFdmVudCkge1xuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0aWYgKCF0aGlzLmRvY3VtZW50LmhpZGRlbikge1xuXHRcdHRoaXMuX2VtaXQoZXYpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBfZW1pdChldjogRXZlbnQpIHtcblx0XHRpZiAoIXRoaXMuY2xpY2tPdXRzaWRlRW5hYmxlZCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHRoaXMuX25nWm9uZS5ydW4oKCkgPT4gdGhpcy5jbGlja091dHNpZGUuZW1pdChldikpO1xuXHR9XG5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcblx0cHJpdmF0ZSBfc2hvdWxkRXhjbHVkZSh0YXJnZXQ6IGFueSk6IGJvb2xlYW4ge1xuXHRcdGZvciAoY29uc3QgZXhjbHVkZWROb2RlIG9mIHRoaXMuX25vZGVzRXhjbHVkZWQpIHtcblx0XHRcdGlmIChleGNsdWRlZE5vZGUuY29udGFpbnModGFyZ2V0KSkge1xuXHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdHByaXZhdGUgX2luaXRDbGlja091dHNpZGVMaXN0ZW5lcigpIHtcblx0XHR0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5fZXZlbnRzLmZvckVhY2goZSA9PiB0aGlzLmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoZSwgdGhpcy5fb25DbGlja0JvZHkpKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgX3JlbW92ZUNsaWNrT3V0c2lkZUxpc3RlbmVyKCkge1xuXHRcdHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG5cdFx0XHR0aGlzLl9ldmVudHMuZm9yRWFjaChlID0+IHRoaXMuZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLCB0aGlzLl9vbkNsaWNrQm9keSkpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBfaW5pdEF0dGFjaE91dHNpZGVPbkNsaWNrTGlzdGVuZXIoKSB7XG5cdFx0dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcblx0XHRcdHRoaXMuX2V2ZW50cy5mb3JFYWNoKGUgPT4gdGhpcy5fZWwubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGUsIHRoaXMuX2luaXRPbkNsaWNrQm9keSkpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBfcmVtb3ZlQXR0YWNoT3V0c2lkZU9uQ2xpY2tMaXN0ZW5lcigpIHtcblx0XHR0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5fZXZlbnRzLmZvckVhY2goZSA9PiB0aGlzLl9lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSwgdGhpcy5faW5pdE9uQ2xpY2tCb2R5KSk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIF9pbml0V2luZG93Qmx1ckxpc3RlbmVyKCkge1xuXHRcdHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG5cdFx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHRoaXMuX29uV2luZG93Qmx1cik7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIF9yZW1vdmVXaW5kb3dCbHVyTGlzdGVuZXIoKSB7XG5cdFx0dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcblx0XHRcdHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdibHVyJywgdGhpcy5fb25XaW5kb3dCbHVyKTtcblx0XHR9KTtcblx0fVxuXG59XG4iXX0=
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi9kaXJlY3RpdmVzL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBS0wsTUFBTSxHQUVOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7QUFNekMsTUFBTSxPQUFPLHFCQUFxQjtJQWlCakMsWUFDUyxHQUFlLEVBQ2YsT0FBZSxFQUNHLFFBQWtCO1FBRnBDLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ0csYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQW5CcEMsd0JBQW1CLEdBQUcsSUFBSSxDQUFDO1FBRTNCLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3QiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDOUIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBRTNCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUV2QixpQkFBWSxHQUF3QixJQUFJLFlBQVksRUFBUyxDQUFDO1FBRWhFLG1CQUFjLEdBQXVCLEVBQUUsQ0FBQztRQUN4QyxZQUFPLEdBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFNMUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLENB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LENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOytHQXBLVyxxQkFBcUIsa0VBb0J4QixRQUFRO21HQXBCTCxxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsVUFBVSxFQUFFLElBQUk7aUJBQ25COzswQkFxQkUsTUFBTTsyQkFBQyxRQUFRO3lDQW5CUixtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRUcsb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHREaXJlY3RpdmUsXG5cdEVsZW1lbnRSZWYsXG5cdEV2ZW50RW1pdHRlcixcblx0SW5qZWN0LFxuXHRJbnB1dCxcblx0Tmdab25lLFxuXHRPbkNoYW5nZXMsXG5cdE9uRGVzdHJveSxcblx0T25Jbml0LFxuXHRPdXRwdXQsXG5cdFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbY2xpY2tPdXRzaWRlXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDbGlja091dHNpZGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblx0QElucHV0KCkgY2xpY2tPdXRzaWRlRW5hYmxlZCA9IHRydWU7XG4gICAgXG5cdEBJbnB1dCgpIGF0dGFjaE91dHNpZGVPbkNsaWNrID0gZmFsc2U7XG5cdEBJbnB1dCgpIGRlbGF5Q2xpY2tPdXRzaWRlSW5pdCA9IGZhbHNlO1xuXHRASW5wdXQoKSBlbWl0T25CbHVyID0gZmFsc2U7XG5cblx0QElucHV0KCkgZXhjbHVkZSA9ICcnO1xuXHRASW5wdXQoKSBleGNsdWRlQmVmb3JlQ2xpY2sgPSBmYWxzZTtcblxuXHRASW5wdXQoKSBjbGlja091dHNpZGVFdmVudHMgPSAnJztcblxuXHRAT3V0cHV0KCkgY2xpY2tPdXRzaWRlOiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuXHRwcml2YXRlIF9ub2Rlc0V4Y2x1ZGVkOiBBcnJheTxIVE1MRWxlbWVudD4gPSBbXTtcblx0cHJpdmF0ZSBfZXZlbnRzOiBBcnJheTxzdHJpbmc+ID0gWydjbGljayddO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgX2VsOiBFbGVtZW50UmVmLFxuXHRcdHByaXZhdGUgX25nWm9uZTogTmdab25lLFxuXHRcdEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50KSB7XG5cdFx0dGhpcy5faW5pdE9uQ2xpY2tCb2R5ID0gdGhpcy5faW5pdE9uQ2xpY2tCb2R5LmJpbmQodGhpcyk7XG5cdFx0dGhpcy5fb25DbGlja0JvZHkgPSB0aGlzLl9vbkNsaWNrQm9keS5iaW5kKHRoaXMpO1xuXHRcdHRoaXMuX29uV2luZG93Qmx1ciA9IHRoaXMuX29uV2luZG93Qmx1ci5iaW5kKHRoaXMpO1xuXHR9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy5faW5pdCgpO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0dGhpcy5fcmVtb3ZlQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTtcblx0XHR0aGlzLl9yZW1vdmVBdHRhY2hPdXRzaWRlT25DbGlja0xpc3RlbmVyKCk7XG5cdFx0dGhpcy5fcmVtb3ZlV2luZG93Qmx1ckxpc3RlbmVyKCk7XG5cdH1cblxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG5cdFx0aWYgKGNoYW5nZXNbJ2F0dGFjaE91dHNpZGVPbkNsaWNrJ10gfHwgY2hhbmdlc1snZXhjbHVkZSddIHx8IGNoYW5nZXNbJ2VtaXRPbkJsdXInXSkge1xuXHRcdFx0dGhpcy5faW5pdCgpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX2luaXQoKSB7XG5cdFx0aWYgKHRoaXMuY2xpY2tPdXRzaWRlRXZlbnRzICE9PSAnJykge1xuXHRcdFx0dGhpcy5fZXZlbnRzID0gdGhpcy5jbGlja091dHNpZGVFdmVudHMuc3BsaXQoJywnKS5tYXAoZSA9PiBlLnRyaW0oKSk7XG5cdFx0fVxuXG5cdFx0dGhpcy5fZXhjbHVkZUNoZWNrKCk7XG5cblx0XHRpZiAodGhpcy5hdHRhY2hPdXRzaWRlT25DbGljaykge1xuXHRcdFx0dGhpcy5faW5pdEF0dGFjaE91dHNpZGVPbkNsaWNrTGlzdGVuZXIoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5faW5pdE9uQ2xpY2tCb2R5KCk7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuZW1pdE9uQmx1cikge1xuXHRcdFx0dGhpcy5faW5pdFdpbmRvd0JsdXJMaXN0ZW5lcigpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX2luaXRPbkNsaWNrQm9keSgpIHtcblx0XHRpZiAodGhpcy5kZWxheUNsaWNrT3V0c2lkZUluaXQpIHtcblx0XHRcdHNldFRpbWVvdXQodGhpcy5faW5pdENsaWNrT3V0c2lkZUxpc3RlbmVyLmJpbmQodGhpcykpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLl9pbml0Q2xpY2tPdXRzaWRlTGlzdGVuZXIoKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIF9leGNsdWRlQ2hlY2soKSB7XG5cdFx0aWYgKHRoaXMuZXhjbHVkZSkge1xuXHRcdFx0dHJ5IHtcblx0XHRjb25zdCBub2RlcyA9IEFycmF5LmZyb20odGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHRoaXMuZXhjbHVkZSkpIGFzIEFycmF5PEhUTUxFbGVtZW50Pjtcblx0XHRpZiAobm9kZXMpIHtcblx0XHRcdHRoaXMuX25vZGVzRXhjbHVkZWQgPSBub2Rlcztcblx0XHR9XG5cdFx0XHR9IGNhdGNoIChlcnIpIHtcblx0XHRjb25zb2xlLmVycm9yKCdbbmctY2xpY2stb3V0c2lkZV0gQ2hlY2sgeW91ciBleGNsdWRlIHNlbGVjdG9yIHN5bnRheC4nLCBlcnIpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX29uQ2xpY2tCb2R5KGV2OiBFdmVudCkge1xuXHRcdGlmICghdGhpcy5jbGlja091dHNpZGVFbmFibGVkKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuZXhjbHVkZUJlZm9yZUNsaWNrKSB7XG5cdFx0XHR0aGlzLl9leGNsdWRlQ2hlY2soKTtcblx0XHR9XG5cblx0XHRpZiAoIXRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXYudGFyZ2V0KSAmJiAhdGhpcy5fc2hvdWxkRXhjbHVkZShldi50YXJnZXQpKSB7XG5cdFx0XHR0aGlzLl9lbWl0KGV2KTtcblxuXHRcdFx0aWYgKHRoaXMuYXR0YWNoT3V0c2lkZU9uQ2xpY2spIHtcblx0XHR0aGlzLl9yZW1vdmVDbGlja091dHNpZGVMaXN0ZW5lcigpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBSZXNvbHZlcyBwcm9ibGVtIHdpdGggb3V0c2lkZSBjbGljayBvbiBpZnJhbWVcblx0ICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vYXJrb24vbmctY2xpY2stb3V0c2lkZS9pc3N1ZXMvMzJcblx0ICovXG5cdHByaXZhdGUgX29uV2luZG93Qmx1cihldjogRXZlbnQpIHtcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdGlmICghdGhpcy5kb2N1bWVudC5oaWRkZW4pIHtcblx0XHR0aGlzLl9lbWl0KGV2KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgX2VtaXQoZXY6IEV2ZW50KSB7XG5cdFx0aWYgKCF0aGlzLmNsaWNrT3V0c2lkZUVuYWJsZWQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR0aGlzLl9uZ1pvbmUucnVuKCgpID0+IHRoaXMuY2xpY2tPdXRzaWRlLmVtaXQoZXYpKTtcblx0fVxuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5cdHByaXZhdGUgX3Nob3VsZEV4Y2x1ZGUodGFyZ2V0OiBhbnkpOiBib29sZWFuIHtcblx0XHRmb3IgKGNvbnN0IGV4Y2x1ZGVkTm9kZSBvZiB0aGlzLl9ub2Rlc0V4Y2x1ZGVkKSB7XG5cdFx0XHRpZiAoZXhjbHVkZWROb2RlLmNvbnRhaW5zKHRhcmdldCkpIHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRwcml2YXRlIF9pbml0Q2xpY2tPdXRzaWRlTGlzdGVuZXIoKSB7XG5cdFx0dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcblx0XHRcdHRoaXMuX2V2ZW50cy5mb3JFYWNoKGUgPT4gdGhpcy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGUsIHRoaXMuX29uQ2xpY2tCb2R5KSk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIF9yZW1vdmVDbGlja091dHNpZGVMaXN0ZW5lcigpIHtcblx0XHR0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5fZXZlbnRzLmZvckVhY2goZSA9PiB0aGlzLmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSwgdGhpcy5fb25DbGlja0JvZHkpKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgX2luaXRBdHRhY2hPdXRzaWRlT25DbGlja0xpc3RlbmVyKCkge1xuXHRcdHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG5cdFx0XHR0aGlzLl9ldmVudHMuZm9yRWFjaChlID0+IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihlLCB0aGlzLl9pbml0T25DbGlja0JvZHkpKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgX3JlbW92ZUF0dGFjaE91dHNpZGVPbkNsaWNrTGlzdGVuZXIoKSB7XG5cdFx0dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcblx0XHRcdHRoaXMuX2V2ZW50cy5mb3JFYWNoKGUgPT4gdGhpcy5fZWwubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGUsIHRoaXMuX2luaXRPbkNsaWNrQm9keSkpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBfaW5pdFdpbmRvd0JsdXJMaXN0ZW5lcigpIHtcblx0XHR0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuXHRcdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCB0aGlzLl9vbldpbmRvd0JsdXIpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBfcmVtb3ZlV2luZG93Qmx1ckxpc3RlbmVyKCkge1xuXHRcdHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG5cdFx0XHR3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignYmx1cicsIHRoaXMuX29uV2luZG93Qmx1cik7XG5cdFx0fSk7XG5cdH1cblxufVxuIl19
|