@litigiovirtual/ius-design-components 1.0.263 → 1.0.264

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.
@@ -14,6 +14,11 @@ import * as i0 from "@angular/core";
14
14
  import * as i1 from "@angular/common";
15
15
  export class ToolbarUserMenuComponent {
16
16
  constructor() {
17
+ this.showUsuariosGrupos = true;
18
+ this.showConfiguracionCuenta = true;
19
+ this.showPagosFacturacion = true;
20
+ this.showSubscripcionesServicios = true;
21
+ this.showReferir = true;
17
22
  this.clickPerfilPreferencias = new EventEmitter();
18
23
  this.clickUsuariosRoles = new EventEmitter();
19
24
  this.clickConfiguracion = new EventEmitter();
@@ -77,11 +82,11 @@ export class ToolbarUserMenuComponent {
77
82
  return !!(this.detallesConsumo && this.detallesConsumo.length > 0);
78
83
  }
79
84
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToolbarUserMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
80
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ToolbarUserMenuComponent, isStandalone: true, selector: "ius-toolbar-user-menu", inputs: { object: "object", subscripcionDetalle: "subscripcionDetalle", detallesConsumo: "detallesConsumo", accountList: "accountList" }, outputs: { clickPerfilPreferencias: "clickPerfilPreferencias", clickUsuariosRoles: "clickUsuariosRoles", clickConfiguracion: "clickConfiguracion", clickPagos: "clickPagos", clickSubsServicios: "clickSubsServicios", clickCambiarCuenta: "clickCambiarCuenta", clickCerrarSesion: "clickCerrarSesion", clickReferir: "clickReferir", requestClose: "requestClose", clickAccountSelected: "clickAccountSelected", clickAccountPredeterminada: "clickAccountPredeterminada", clickEditAccount: "clickEditAccount", clickDesvincularAccount: "clickDesvincularAccount", clickAgregarAccount: "clickAgregarAccount" }, ngImport: i0, template: "<div class=\"tbl-menu\">\r\n <div class=\"body-menu scrollable\">\r\n <div class=\"colum-mn-1 text-head-mn\">\r\n <span>Est\u00E1s navegando en</span>\r\n <div class=\"tx-row-1\">\r\n <ius-icon-sm iconName=\"icon-account-circle\" class=\"icon-acc-circle\"></ius-icon-sm>\r\n <span class=\"h4 tx-abog\">{{ object.nombreCompany }}</span>\r\n </div>\r\n <div class=\"tx-row-1 id-ct\">\r\n <span>ID Cuenta</span>\r\n <span class=\"tx-id-ct\">{{ object.cuentaID }}</span>\r\n </div>\r\n <div class=\"tx-row-1 tx-rol\">\r\n <span>Tu rol</span>\r\n <span class=\"tx-name-rl\">{{ object.rol }}</span>\r\n </div>\r\n </div>\r\n @if (!showFormSwitchAccount) {\r\n <div class=\"colum-mn-1\">\r\n <div class=\"email-inf\">\r\n <ius-icon-xs iconName=\"icon-alternate-email\" class=\"icon-alt-email\"></ius-icon-xs>\r\n <span>{{ object.correo }}</span>\r\n </div>\r\n <ius-dropdown-option-item (click)=\"onClickPerfilPreferencias()\">Perfil, preferencias y\r\n seguridad</ius-dropdown-option-item>\r\n </div>\r\n <ius-simple-divider></ius-simple-divider>\r\n <div class=\"container-plan\" [ngClass]=\"{ 'show-more': showMore }\">\r\n <div class=\"inf-plan\">\r\n <div class=\"row-plan-1\">\r\n <div class=\"col-plan-1\">\r\n <span class=\"tx-small tx-tipo-plan\">{{\r\n subscripcionDetalle?.tipoServicio\r\n }}</span>\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-base tx-name-plan\">{{\r\n subscripcionDetalle?.namePlan\r\n }}</span>\r\n <ius-icon-md iconName=\"icon-help\" class=\"icon-help\"></ius-icon-md>\r\n </div>\r\n <div class=\"tx-row-2 tx-small\">\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-contador-1\">Total global</span>\r\n <span class=\"tx-contador-2\">{{\r\n subscripcionDetalle?.cantTotal\r\n }}</span>\r\n </div>\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-contador-1\">Disponible global</span>\r\n <span class=\"tx-contador-2\">{{\r\n subscripcionDetalle?.cantDisponible\r\n }}</span>\r\n </div>\r\n </div>\r\n <span class=\"tx-base tx-estado-plan\">{{\r\n subscripcionDetalle?.estado\r\n }}</span>\r\n @if (subscripcionDetalle?.esPlanGratuito) {\r\n <div class=\"tx-row-1 tx-small tx-prueba\">\r\n <ius-icon-xs iconName=\"icon-schedule\"></ius-icon-xs>\r\n <span>Plan de prueba activo</span>\r\n </div>\r\n }\r\n </div>\r\n <ius-button-circle-tertiary iconName=\"icon-discover-tune\"></ius-button-circle-tertiary>\r\n </div>\r\n <div style=\"width: 100%\">\r\n <ius-progress-bar [total]=\"subscripcionDetalle?.cantTotal ?? 0\" [titleV1]=\"'Judicial'\"\r\n [v1]=\"subscripcionDetalle?.cantJudicial ?? 0\" [titleV2]=\"'SuperSociedades'\"\r\n [v2]=\"subscripcionDetalle?.cantProcesos2 ?? 0\" [titleV3]=\"'Procuraduria'\"\r\n [v3]=\"subscripcionDetalle?.cantProcesos3 ?? 0\">\r\n </ius-progress-bar>\r\n </div>\r\n <div class=\"legend\">\r\n <div class=\"item-counter tx-small\">\r\n <ius-icon-xs iconName=\"icon-storage-set\" class=\"icon-storage-set\"></ius-icon-xs>\r\n <span>{{ subscripcionDetalle?.asignados ?? 0 }}</span>\r\n </div>\r\n <div class=\"item-counter tx-small\">\r\n <ius-icon-xs iconName=\"icon-storage-plus\" class=\"icon-storage-plus\"></ius-icon-xs>\r\n <span>{{\r\n subscripcionDetalle?.cantAsignadaDisponible ?? 0\r\n }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <ius-simple-divider></ius-simple-divider>\r\n @if (detallesConsumo) {\r\n @for (detail of detallesConsumo; track $index) {\r\n <div class=\"inf-plan\">\r\n <div class=\"row-plan-1\">\r\n <div class=\"col-plan-1\">\r\n <span class=\"tx-small tx-tipo-plan\">{{\r\n detail.tipoServicio\r\n }}</span>\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-base tx-name-plan\">Por consumo</span>\r\n <ius-icon-md iconName=\"icon-help\" class=\"icon-help\"></ius-icon-md>\r\n </div>\r\n <div class=\"tx-row-2 tx-small\">\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-contador-1\">Consumo este mes</span>\r\n <span class=\"tx-contador-2\">{{\r\n detail.cantConsumida\r\n }}</span>\r\n </div>\r\n </div>\r\n <span class=\"tx-base tx-estado-plan\">{{\r\n detail.estado\r\n }}</span>\r\n </div>\r\n <ius-button-circle-tertiary iconName=\"icon-discover-tune\"></ius-button-circle-tertiary>\r\n </div>\r\n </div>\r\n <ius-simple-divider></ius-simple-divider>\r\n }\r\n }\r\n </div>\r\n @if(hasMultipleServices) {\r\n <ius-button-standard-tertiary class=\"btn-list\" [iconName]=\"\r\n showMore ? 'icon-keyboard-arrow-up' : 'icon-keyboard-arrow-down'\r\n \" (buttonClicked)=\"clickShowMore()\">\r\n {{ showMore ? \"Mostrar menos\" : \"Mostrar m\u00E1s\" }}\r\n </ius-button-standard-tertiary>\r\n }\r\n <ius-simple-divider></ius-simple-divider>\r\n <div class=\"ctn-items\">\r\n <ius-menu-item iconName=\"icon-groups\" (buttonClicked)=\"onClickUsuariosRoles()\">Usuarios y roles</ius-menu-item>\r\n <ius-menu-item iconName=\"icon-build\" (buttonClicked)=\"onClickConfiguracion()\">Configuraci\u00F3n de la\r\n cuenta</ius-menu-item>\r\n <ius-menu-item iconName=\"icon-finance-chip\" (buttonClicked)=\"onClickPagos()\">Pagos y facturaci\u00F3n</ius-menu-item>\r\n <ius-menu-item iconName=\"icon-enterprise\" (buttonClicked)=\"onClickSubsServicios()\">Suscripciones y\r\n servicios</ius-menu-item>\r\n <ius-menu-item iconName=\"icon-stream\" (buttonClicked)=\"onClickReferir()\">Referir servicio</ius-menu-item>\r\n </div>\r\n\r\n <ius-simple-divider></ius-simple-divider>\r\n } @else {\r\n <div class=\"container-bottom\">\r\n <span class=\"tx-row-1 tx-rol\">Cambiar a</span>\r\n <div class=\"container-list\">\r\n @for (account of accountList; track account; let i = $index) {\r\n <ius-button-accounts (accountSelected)=\"onClickAccount(account)\" (onPressedPredeterminado)=\"\r\n clickAccountPredeterminada.emit(account)\r\n \"\r\n ,\r\n (onPressedEditar)=\"clickEditAccount.emit(account)\"\r\n ,\r\n (onPressedDesvincular)=\"clickDesvincularAccount.emit(account)\"\r\n [account]=\"account\"\r\n [showOptionsFlag]=\"false\"\r\n ></ius-button-accounts>\r\n }\r\n </div>\r\n <ius-button-standard-tertiary [iconName]=\"'icon-add'\" (buttonClicked)=\"addAccount()\">Agregar\r\n nueva cuenta</ius-button-standard-tertiary>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"ctn-items mgt-8\">\r\n <ius-menu-item iconName=\"{{\r\n !showFormSwitchAccount ? 'icon-cases' : 'icon-arrow-left-alt'\r\n }}\" (buttonClicked)=\"onClickCambiarCuenta()\">{{\r\n !showFormSwitchAccount\r\n ? \"Cambiar de cuenta\"\r\n : \"Volver al menu de usuario\"\r\n }}</ius-menu-item>\r\n <ius-menu-item iconName=\"icon-exit-to-app\" (buttonClicked)=\"onClickCerrarSesion()\">Cerrar sesi\u00F3n</ius-menu-item>\r\n </div>\r\n</div>", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-base-1,.body-base-1-1{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.tbl-menu{display:flex;width:390px;height:85vh;padding:16px;flex-direction:column}.body-menu{display:flex;flex:1 0 0;flex-direction:column;padding-right:6px;gap:8px;font-family:Rubik,sans-serif;overflow-y:auto;min-height:0}.colum-mn-1{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.text-head-mn{color:#8c8c8c;font-size:.75rem;line-height:16px;letter-spacing:.24px}.icon-acc-circle{color:#595959}.tx-row-1{display:flex;align-items:center;gap:4px}.tx-abog{color:#333;letter-spacing:.2px}.id-ct{padding:4px;border-radius:4px;border:1px solid #d9d9d9}.tx-id-ct{font-weight:500}.tx-rol{font-size:.875rem;color:#595959;line-height:20px}.tx-name-rl{color:#333;letter-spacing:.28px;font-weight:500}.email-inf{display:flex;padding:8px;align-items:center;gap:4px;color:#595959;font-size:.875rem;line-height:20px;letter-spacing:.28px}.icon-alt-email{color:#7caf25}ius-dropdown-option-item{width:100%}.container-plan{overflow:hidden;max-height:200px;transition:max-height .5s cubic-bezier(.4,0,.2,1);flex-shrink:0}.inf-plan{display:flex;padding:8px;flex-direction:column;align-items:flex-start;gap:8px}.show-more{max-height:10000px;transition:max-height .5s cubic-bezier(.4,0,.2,1)}.tx-small{font-size:.75rem;line-height:16px;letter-spacing:.24px}.tx-base{font-size:.875rem;line-height:20px;letter-spacing:.28px}.row-plan-1{display:flex;gap:12px;width:100%}.col-plan-1{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;flex:1 0 0}.icon-help{color:#8c8c8c}.tx-tipo-plan{color:#595959;font-weight:500}.tx-name-plan{color:#333;font-weight:500}.tx-row-2{display:flex;align-items:center;gap:8px}.tx-contador-1{color:#8c8c8c;font-weight:500}.tx-contador-2{color:#333}.tx-estado-plan{color:#7caf25}.mgt-8{margin-top:8px}.progress-container{width:100%;border-radius:100px;height:23px;overflow:hidden;background:#f0f0f0}.progress-bar{display:flex;height:100%}.segment{height:100%}.tipo-1-color-bar{background:#5892ff}.tipo-1-color{color:#5892ff}.tipo-2-color-bar{background:#103ab7}.tipo-2-color{color:#103ab7}.legend{display:flex;width:100%;align-items:center;gap:8px;flex-wrap:wrap}.legend .icon-storage-set{color:#103ab7}.legend .icon-storage-plus{color:#629219}.item-counter{display:flex;align-items:center;gap:4px;color:#333}.tx-name-serv{color:#595959;font-weight:500}.btn-list{margin-bottom:8px}.ctn-items{display:flex;flex-direction:column;gap:4px}.scrollable{overflow-y:auto;overflow-x:hidden}.scrollable::-webkit-scrollbar{-webkit-appearance:none}.scrollable::-webkit-scrollbar:vertical{width:7px}.scrollable::-webkit-scrollbar-thumb{background-color:#d8d6d6;border-radius:20px}.container-bottom{padding:0 16px;display:flex;flex-direction:column;gap:8px}.container-list{display:flex;flex-direction:column;gap:4px;width:90%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconSmComponent, selector: "ius-icon-sm", inputs: ["iconName", "color"] }, { kind: "component", type: IconXsComponent, selector: "ius-icon-xs", inputs: ["iconName", "color"] }, { kind: "component", type: DropdownOptionItemComponent, selector: "ius-dropdown-option-item", inputs: ["iconName", "route"], outputs: ["click"] }, { kind: "component", type: SimpleDividerComponent, selector: "ius-simple-divider" }, { kind: "component", type: IconMdComponent, selector: "ius-icon-md", inputs: ["iconName", "color"] }, { kind: "component", type: ButtonCircleTertiaryComponent, selector: "ius-button-circle-tertiary", inputs: ["disabled", "iconName"], outputs: ["buttonClicked"] }, { kind: "component", type: ButtonStandardTertiaryComponent, selector: "ius-button-standard-tertiary", inputs: ["disabled", "iconName"], outputs: ["buttonClicked"] }, { kind: "component", type: MenuItemComponent, selector: "ius-menu-item", inputs: ["isActive", "iconName", "numberAlerts"], outputs: ["buttonClicked"] }, { kind: "component", type: ProgressBarComponent, selector: "ius-progress-bar", inputs: ["total", "v1", "v2", "v3", "titleV1", "titleV2", "titleV3", "titleV4"] }, { kind: "component", type: ButtonAccountsComponent, selector: "ius-button-accounts", inputs: ["account", "showOptionsFlag"], outputs: ["accountSelected", "onPressedPredeterminado", "onPressedDesvincular", "onPressedEditar"] }] }); }
85
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ToolbarUserMenuComponent, isStandalone: true, selector: "ius-toolbar-user-menu", inputs: { object: "object", subscripcionDetalle: "subscripcionDetalle", detallesConsumo: "detallesConsumo", accountList: "accountList", showUsuariosGrupos: "showUsuariosGrupos", showConfiguracionCuenta: "showConfiguracionCuenta", showPagosFacturacion: "showPagosFacturacion", showSubscripcionesServicios: "showSubscripcionesServicios", showReferir: "showReferir" }, outputs: { clickPerfilPreferencias: "clickPerfilPreferencias", clickUsuariosRoles: "clickUsuariosRoles", clickConfiguracion: "clickConfiguracion", clickPagos: "clickPagos", clickSubsServicios: "clickSubsServicios", clickCambiarCuenta: "clickCambiarCuenta", clickCerrarSesion: "clickCerrarSesion", clickReferir: "clickReferir", requestClose: "requestClose", clickAccountSelected: "clickAccountSelected", clickAccountPredeterminada: "clickAccountPredeterminada", clickEditAccount: "clickEditAccount", clickDesvincularAccount: "clickDesvincularAccount", clickAgregarAccount: "clickAgregarAccount" }, ngImport: i0, template: "<div class=\"tbl-menu\">\r\n <div class=\"body-menu scrollable\">\r\n <div class=\"colum-mn-1 text-head-mn\">\r\n <span>Est\u00E1s navegando en</span>\r\n <div class=\"tx-row-1\">\r\n <ius-icon-sm iconName=\"icon-account-circle\" class=\"icon-acc-circle\"></ius-icon-sm>\r\n <span class=\"h4 tx-abog\">{{ object.nombreCompany }}</span>\r\n </div>\r\n <div class=\"tx-row-1 id-ct\">\r\n <span>ID Cuenta</span>\r\n <span class=\"tx-id-ct\">{{ object.cuentaID }}</span>\r\n </div>\r\n <div class=\"tx-row-1 tx-rol\">\r\n <span>Tu rol</span>\r\n <span class=\"tx-name-rl\">{{ object.rol }}</span>\r\n </div>\r\n </div>\r\n @if (!showFormSwitchAccount) {\r\n <div class=\"colum-mn-1\">\r\n <div class=\"email-inf\">\r\n <ius-icon-xs iconName=\"icon-alternate-email\" class=\"icon-alt-email\"></ius-icon-xs>\r\n <span>{{ object.correo }}</span>\r\n </div>\r\n <ius-dropdown-option-item (click)=\"onClickPerfilPreferencias()\">Perfil, preferencias y\r\n seguridad</ius-dropdown-option-item>\r\n </div>\r\n <ius-simple-divider></ius-simple-divider>\r\n <div class=\"container-plan\" [ngClass]=\"{ 'show-more': showMore }\">\r\n <div class=\"inf-plan\">\r\n <div class=\"row-plan-1\">\r\n <div class=\"col-plan-1\">\r\n <span class=\"tx-small tx-tipo-plan\">{{\r\n subscripcionDetalle?.tipoServicio\r\n }}</span>\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-base tx-name-plan\">{{\r\n subscripcionDetalle?.namePlan\r\n }}</span>\r\n <ius-icon-md iconName=\"icon-help\" class=\"icon-help\"></ius-icon-md>\r\n </div>\r\n <div class=\"tx-row-2 tx-small\">\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-contador-1\">Total global</span>\r\n <span class=\"tx-contador-2\">{{\r\n subscripcionDetalle?.cantTotal\r\n }}</span>\r\n </div>\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-contador-1\">Disponible global</span>\r\n <span class=\"tx-contador-2\">{{\r\n subscripcionDetalle?.cantDisponible\r\n }}</span>\r\n </div>\r\n </div>\r\n <span class=\"tx-base tx-estado-plan\">{{\r\n subscripcionDetalle?.estado\r\n }}</span>\r\n @if (subscripcionDetalle?.esPlanGratuito) {\r\n <div class=\"tx-row-1 tx-small tx-prueba\">\r\n <ius-icon-xs iconName=\"icon-schedule\"></ius-icon-xs>\r\n <span>Plan de prueba activo</span>\r\n </div>\r\n }\r\n </div>\r\n <ius-button-circle-tertiary iconName=\"icon-discover-tune\"></ius-button-circle-tertiary>\r\n </div>\r\n <div style=\"width: 100%\">\r\n <ius-progress-bar [total]=\"subscripcionDetalle?.cantTotal ?? 0\" [titleV1]=\"'Judicial'\"\r\n [v1]=\"subscripcionDetalle?.cantJudicial ?? 0\" [titleV2]=\"'SuperSociedades'\"\r\n [v2]=\"subscripcionDetalle?.cantProcesos2 ?? 0\" [titleV3]=\"'Procuraduria'\"\r\n [v3]=\"subscripcionDetalle?.cantProcesos3 ?? 0\">\r\n </ius-progress-bar>\r\n </div>\r\n <div class=\"legend\">\r\n <div class=\"item-counter tx-small\">\r\n <ius-icon-xs iconName=\"icon-storage-set\" class=\"icon-storage-set\"></ius-icon-xs>\r\n <span>{{ subscripcionDetalle?.asignados ?? 0 }}</span>\r\n </div>\r\n <div class=\"item-counter tx-small\">\r\n <ius-icon-xs iconName=\"icon-storage-plus\" class=\"icon-storage-plus\"></ius-icon-xs>\r\n <span>{{\r\n subscripcionDetalle?.cantAsignadaDisponible ?? 0\r\n }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <ius-simple-divider></ius-simple-divider>\r\n @if (detallesConsumo) {\r\n @for (detail of detallesConsumo; track $index) {\r\n <div class=\"inf-plan\">\r\n <div class=\"row-plan-1\">\r\n <div class=\"col-plan-1\">\r\n <span class=\"tx-small tx-tipo-plan\">{{\r\n detail.tipoServicio\r\n }}</span>\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-base tx-name-plan\">Por consumo</span>\r\n <ius-icon-md iconName=\"icon-help\" class=\"icon-help\"></ius-icon-md>\r\n </div>\r\n <div class=\"tx-row-2 tx-small\">\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-contador-1\">Consumo este mes</span>\r\n <span class=\"tx-contador-2\">{{\r\n detail.cantConsumida\r\n }}</span>\r\n </div>\r\n </div>\r\n <span class=\"tx-base tx-estado-plan\">{{\r\n detail.estado\r\n }}</span>\r\n </div>\r\n <ius-button-circle-tertiary iconName=\"icon-discover-tune\"></ius-button-circle-tertiary>\r\n </div>\r\n </div>\r\n <ius-simple-divider></ius-simple-divider>\r\n }\r\n }\r\n </div>\r\n @if(hasMultipleServices) {\r\n <ius-button-standard-tertiary class=\"btn-list\" [iconName]=\"\r\n showMore ? 'icon-keyboard-arrow-up' : 'icon-keyboard-arrow-down'\r\n \" (buttonClicked)=\"clickShowMore()\">\r\n {{ showMore ? \"Mostrar menos\" : \"Mostrar m\u00E1s\" }}\r\n </ius-button-standard-tertiary>\r\n }\r\n <ius-simple-divider></ius-simple-divider>\r\n <div class=\"ctn-items\">\r\n @if (showUsuariosGrupos) {\r\n <ius-menu-item iconName=\"icon-groups\" (buttonClicked)=\"onClickUsuariosRoles()\">Usuarios y roles</ius-menu-item>\r\n }\r\n @if (showConfiguracionCuenta) {\r\n <ius-menu-item iconName=\"icon-build\" (buttonClicked)=\"onClickConfiguracion()\">Configuraci\u00F3n de la\r\n cuenta</ius-menu-item>\r\n }\r\n @if (showPagosFacturacion) {\r\n <ius-menu-item iconName=\"icon-finance-chip\" (buttonClicked)=\"onClickPagos()\">Pagos y facturaci\u00F3n</ius-menu-item>\r\n }\r\n @if (showSubscripcionesServicios) {\r\n <ius-menu-item iconName=\"icon-enterprise\" (buttonClicked)=\"onClickSubsServicios()\">Suscripciones y\r\n servicios</ius-menu-item>\r\n }\r\n @if (showReferir) {\r\n <ius-menu-item iconName=\"icon-stream\" (buttonClicked)=\"onClickReferir()\">Referir servicio</ius-menu-item>\r\n }\r\n </div>\r\n\r\n <ius-simple-divider></ius-simple-divider>\r\n } @else {\r\n <div class=\"container-bottom\">\r\n <span class=\"tx-row-1 tx-rol\">Cambiar a</span>\r\n <div class=\"container-list\">\r\n @for (account of accountList; track account; let i = $index) {\r\n <ius-button-accounts (accountSelected)=\"onClickAccount(account)\" (onPressedPredeterminado)=\"\r\n clickAccountPredeterminada.emit(account)\r\n \"\r\n ,\r\n (onPressedEditar)=\"clickEditAccount.emit(account)\"\r\n ,\r\n (onPressedDesvincular)=\"clickDesvincularAccount.emit(account)\"\r\n [account]=\"account\"\r\n [showOptionsFlag]=\"false\"\r\n ></ius-button-accounts>\r\n }\r\n </div>\r\n <ius-button-standard-tertiary [iconName]=\"'icon-add'\" (buttonClicked)=\"addAccount()\">Agregar\r\n nueva cuenta</ius-button-standard-tertiary>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"ctn-items mgt-8\">\r\n <ius-menu-item iconName=\"{{\r\n !showFormSwitchAccount ? 'icon-cases' : 'icon-arrow-left-alt'\r\n }}\" (buttonClicked)=\"onClickCambiarCuenta()\">{{\r\n !showFormSwitchAccount\r\n ? \"Cambiar de cuenta\"\r\n : \"Volver al menu de usuario\"\r\n }}</ius-menu-item>\r\n <ius-menu-item iconName=\"icon-exit-to-app\" (buttonClicked)=\"onClickCerrarSesion()\">Cerrar sesi\u00F3n</ius-menu-item>\r\n </div>\r\n</div>", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-base-1,.body-base-1-1{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.tbl-menu{display:flex;width:390px;height:85vh;padding:16px;flex-direction:column}.body-menu{display:flex;flex:1 0 0;flex-direction:column;padding-right:6px;gap:8px;font-family:Rubik,sans-serif;overflow-y:auto;min-height:0}.colum-mn-1{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.text-head-mn{color:#8c8c8c;font-size:.75rem;line-height:16px;letter-spacing:.24px}.icon-acc-circle{color:#595959}.tx-row-1{display:flex;align-items:center;gap:4px}.tx-abog{color:#333;letter-spacing:.2px}.id-ct{padding:4px;border-radius:4px;border:1px solid #d9d9d9}.tx-id-ct{font-weight:500}.tx-rol{font-size:.875rem;color:#595959;line-height:20px}.tx-name-rl{color:#333;letter-spacing:.28px;font-weight:500}.email-inf{display:flex;padding:8px;align-items:center;gap:4px;color:#595959;font-size:.875rem;line-height:20px;letter-spacing:.28px}.icon-alt-email{color:#7caf25}ius-dropdown-option-item{width:100%}.container-plan{overflow:hidden;max-height:200px;transition:max-height .5s cubic-bezier(.4,0,.2,1);flex-shrink:0}.inf-plan{display:flex;padding:8px;flex-direction:column;align-items:flex-start;gap:8px}.show-more{max-height:10000px;transition:max-height .5s cubic-bezier(.4,0,.2,1)}.tx-small{font-size:.75rem;line-height:16px;letter-spacing:.24px}.tx-base{font-size:.875rem;line-height:20px;letter-spacing:.28px}.row-plan-1{display:flex;gap:12px;width:100%}.col-plan-1{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;flex:1 0 0}.icon-help{color:#8c8c8c}.tx-tipo-plan{color:#595959;font-weight:500}.tx-name-plan{color:#333;font-weight:500}.tx-row-2{display:flex;align-items:center;gap:8px}.tx-contador-1{color:#8c8c8c;font-weight:500}.tx-contador-2{color:#333}.tx-estado-plan{color:#7caf25}.mgt-8{margin-top:8px}.progress-container{width:100%;border-radius:100px;height:23px;overflow:hidden;background:#f0f0f0}.progress-bar{display:flex;height:100%}.segment{height:100%}.tipo-1-color-bar{background:#5892ff}.tipo-1-color{color:#5892ff}.tipo-2-color-bar{background:#103ab7}.tipo-2-color{color:#103ab7}.legend{display:flex;width:100%;align-items:center;gap:8px;flex-wrap:wrap}.legend .icon-storage-set{color:#103ab7}.legend .icon-storage-plus{color:#629219}.item-counter{display:flex;align-items:center;gap:4px;color:#333}.tx-name-serv{color:#595959;font-weight:500}.btn-list{margin-bottom:8px}.ctn-items{display:flex;flex-direction:column;gap:4px}.scrollable{overflow-y:auto;overflow-x:hidden}.scrollable::-webkit-scrollbar{-webkit-appearance:none}.scrollable::-webkit-scrollbar:vertical{width:7px}.scrollable::-webkit-scrollbar-thumb{background-color:#d8d6d6;border-radius:20px}.container-bottom{padding:0 16px;display:flex;flex-direction:column;gap:8px}.container-list{display:flex;flex-direction:column;gap:4px;width:90%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconSmComponent, selector: "ius-icon-sm", inputs: ["iconName", "color"] }, { kind: "component", type: IconXsComponent, selector: "ius-icon-xs", inputs: ["iconName", "color"] }, { kind: "component", type: DropdownOptionItemComponent, selector: "ius-dropdown-option-item", inputs: ["iconName", "route"], outputs: ["click"] }, { kind: "component", type: SimpleDividerComponent, selector: "ius-simple-divider" }, { kind: "component", type: IconMdComponent, selector: "ius-icon-md", inputs: ["iconName", "color"] }, { kind: "component", type: ButtonCircleTertiaryComponent, selector: "ius-button-circle-tertiary", inputs: ["disabled", "iconName"], outputs: ["buttonClicked"] }, { kind: "component", type: ButtonStandardTertiaryComponent, selector: "ius-button-standard-tertiary", inputs: ["disabled", "iconName"], outputs: ["buttonClicked"] }, { kind: "component", type: MenuItemComponent, selector: "ius-menu-item", inputs: ["isActive", "iconName", "numberAlerts"], outputs: ["buttonClicked"] }, { kind: "component", type: ProgressBarComponent, selector: "ius-progress-bar", inputs: ["total", "v1", "v2", "v3", "titleV1", "titleV2", "titleV3", "titleV4"] }, { kind: "component", type: ButtonAccountsComponent, selector: "ius-button-accounts", inputs: ["account", "showOptionsFlag"], outputs: ["accountSelected", "onPressedPredeterminado", "onPressedDesvincular", "onPressedEditar"] }] }); }
81
86
  }
82
87
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToolbarUserMenuComponent, decorators: [{
83
88
  type: Component,
84
- args: [{ selector: 'ius-toolbar-user-menu', standalone: true, imports: [CommonModule, IconSmComponent, IconXsComponent, DropdownOptionItemComponent, SimpleDividerComponent, IconMdComponent, ButtonCircleTertiaryComponent, ButtonStandardTertiaryComponent, MenuItemComponent, ProgressBarComponent, ButtonAccountsComponent], template: "<div class=\"tbl-menu\">\r\n <div class=\"body-menu scrollable\">\r\n <div class=\"colum-mn-1 text-head-mn\">\r\n <span>Est\u00E1s navegando en</span>\r\n <div class=\"tx-row-1\">\r\n <ius-icon-sm iconName=\"icon-account-circle\" class=\"icon-acc-circle\"></ius-icon-sm>\r\n <span class=\"h4 tx-abog\">{{ object.nombreCompany }}</span>\r\n </div>\r\n <div class=\"tx-row-1 id-ct\">\r\n <span>ID Cuenta</span>\r\n <span class=\"tx-id-ct\">{{ object.cuentaID }}</span>\r\n </div>\r\n <div class=\"tx-row-1 tx-rol\">\r\n <span>Tu rol</span>\r\n <span class=\"tx-name-rl\">{{ object.rol }}</span>\r\n </div>\r\n </div>\r\n @if (!showFormSwitchAccount) {\r\n <div class=\"colum-mn-1\">\r\n <div class=\"email-inf\">\r\n <ius-icon-xs iconName=\"icon-alternate-email\" class=\"icon-alt-email\"></ius-icon-xs>\r\n <span>{{ object.correo }}</span>\r\n </div>\r\n <ius-dropdown-option-item (click)=\"onClickPerfilPreferencias()\">Perfil, preferencias y\r\n seguridad</ius-dropdown-option-item>\r\n </div>\r\n <ius-simple-divider></ius-simple-divider>\r\n <div class=\"container-plan\" [ngClass]=\"{ 'show-more': showMore }\">\r\n <div class=\"inf-plan\">\r\n <div class=\"row-plan-1\">\r\n <div class=\"col-plan-1\">\r\n <span class=\"tx-small tx-tipo-plan\">{{\r\n subscripcionDetalle?.tipoServicio\r\n }}</span>\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-base tx-name-plan\">{{\r\n subscripcionDetalle?.namePlan\r\n }}</span>\r\n <ius-icon-md iconName=\"icon-help\" class=\"icon-help\"></ius-icon-md>\r\n </div>\r\n <div class=\"tx-row-2 tx-small\">\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-contador-1\">Total global</span>\r\n <span class=\"tx-contador-2\">{{\r\n subscripcionDetalle?.cantTotal\r\n }}</span>\r\n </div>\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-contador-1\">Disponible global</span>\r\n <span class=\"tx-contador-2\">{{\r\n subscripcionDetalle?.cantDisponible\r\n }}</span>\r\n </div>\r\n </div>\r\n <span class=\"tx-base tx-estado-plan\">{{\r\n subscripcionDetalle?.estado\r\n }}</span>\r\n @if (subscripcionDetalle?.esPlanGratuito) {\r\n <div class=\"tx-row-1 tx-small tx-prueba\">\r\n <ius-icon-xs iconName=\"icon-schedule\"></ius-icon-xs>\r\n <span>Plan de prueba activo</span>\r\n </div>\r\n }\r\n </div>\r\n <ius-button-circle-tertiary iconName=\"icon-discover-tune\"></ius-button-circle-tertiary>\r\n </div>\r\n <div style=\"width: 100%\">\r\n <ius-progress-bar [total]=\"subscripcionDetalle?.cantTotal ?? 0\" [titleV1]=\"'Judicial'\"\r\n [v1]=\"subscripcionDetalle?.cantJudicial ?? 0\" [titleV2]=\"'SuperSociedades'\"\r\n [v2]=\"subscripcionDetalle?.cantProcesos2 ?? 0\" [titleV3]=\"'Procuraduria'\"\r\n [v3]=\"subscripcionDetalle?.cantProcesos3 ?? 0\">\r\n </ius-progress-bar>\r\n </div>\r\n <div class=\"legend\">\r\n <div class=\"item-counter tx-small\">\r\n <ius-icon-xs iconName=\"icon-storage-set\" class=\"icon-storage-set\"></ius-icon-xs>\r\n <span>{{ subscripcionDetalle?.asignados ?? 0 }}</span>\r\n </div>\r\n <div class=\"item-counter tx-small\">\r\n <ius-icon-xs iconName=\"icon-storage-plus\" class=\"icon-storage-plus\"></ius-icon-xs>\r\n <span>{{\r\n subscripcionDetalle?.cantAsignadaDisponible ?? 0\r\n }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <ius-simple-divider></ius-simple-divider>\r\n @if (detallesConsumo) {\r\n @for (detail of detallesConsumo; track $index) {\r\n <div class=\"inf-plan\">\r\n <div class=\"row-plan-1\">\r\n <div class=\"col-plan-1\">\r\n <span class=\"tx-small tx-tipo-plan\">{{\r\n detail.tipoServicio\r\n }}</span>\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-base tx-name-plan\">Por consumo</span>\r\n <ius-icon-md iconName=\"icon-help\" class=\"icon-help\"></ius-icon-md>\r\n </div>\r\n <div class=\"tx-row-2 tx-small\">\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-contador-1\">Consumo este mes</span>\r\n <span class=\"tx-contador-2\">{{\r\n detail.cantConsumida\r\n }}</span>\r\n </div>\r\n </div>\r\n <span class=\"tx-base tx-estado-plan\">{{\r\n detail.estado\r\n }}</span>\r\n </div>\r\n <ius-button-circle-tertiary iconName=\"icon-discover-tune\"></ius-button-circle-tertiary>\r\n </div>\r\n </div>\r\n <ius-simple-divider></ius-simple-divider>\r\n }\r\n }\r\n </div>\r\n @if(hasMultipleServices) {\r\n <ius-button-standard-tertiary class=\"btn-list\" [iconName]=\"\r\n showMore ? 'icon-keyboard-arrow-up' : 'icon-keyboard-arrow-down'\r\n \" (buttonClicked)=\"clickShowMore()\">\r\n {{ showMore ? \"Mostrar menos\" : \"Mostrar m\u00E1s\" }}\r\n </ius-button-standard-tertiary>\r\n }\r\n <ius-simple-divider></ius-simple-divider>\r\n <div class=\"ctn-items\">\r\n <ius-menu-item iconName=\"icon-groups\" (buttonClicked)=\"onClickUsuariosRoles()\">Usuarios y roles</ius-menu-item>\r\n <ius-menu-item iconName=\"icon-build\" (buttonClicked)=\"onClickConfiguracion()\">Configuraci\u00F3n de la\r\n cuenta</ius-menu-item>\r\n <ius-menu-item iconName=\"icon-finance-chip\" (buttonClicked)=\"onClickPagos()\">Pagos y facturaci\u00F3n</ius-menu-item>\r\n <ius-menu-item iconName=\"icon-enterprise\" (buttonClicked)=\"onClickSubsServicios()\">Suscripciones y\r\n servicios</ius-menu-item>\r\n <ius-menu-item iconName=\"icon-stream\" (buttonClicked)=\"onClickReferir()\">Referir servicio</ius-menu-item>\r\n </div>\r\n\r\n <ius-simple-divider></ius-simple-divider>\r\n } @else {\r\n <div class=\"container-bottom\">\r\n <span class=\"tx-row-1 tx-rol\">Cambiar a</span>\r\n <div class=\"container-list\">\r\n @for (account of accountList; track account; let i = $index) {\r\n <ius-button-accounts (accountSelected)=\"onClickAccount(account)\" (onPressedPredeterminado)=\"\r\n clickAccountPredeterminada.emit(account)\r\n \"\r\n ,\r\n (onPressedEditar)=\"clickEditAccount.emit(account)\"\r\n ,\r\n (onPressedDesvincular)=\"clickDesvincularAccount.emit(account)\"\r\n [account]=\"account\"\r\n [showOptionsFlag]=\"false\"\r\n ></ius-button-accounts>\r\n }\r\n </div>\r\n <ius-button-standard-tertiary [iconName]=\"'icon-add'\" (buttonClicked)=\"addAccount()\">Agregar\r\n nueva cuenta</ius-button-standard-tertiary>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"ctn-items mgt-8\">\r\n <ius-menu-item iconName=\"{{\r\n !showFormSwitchAccount ? 'icon-cases' : 'icon-arrow-left-alt'\r\n }}\" (buttonClicked)=\"onClickCambiarCuenta()\">{{\r\n !showFormSwitchAccount\r\n ? \"Cambiar de cuenta\"\r\n : \"Volver al menu de usuario\"\r\n }}</ius-menu-item>\r\n <ius-menu-item iconName=\"icon-exit-to-app\" (buttonClicked)=\"onClickCerrarSesion()\">Cerrar sesi\u00F3n</ius-menu-item>\r\n </div>\r\n</div>", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-base-1,.body-base-1-1{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.tbl-menu{display:flex;width:390px;height:85vh;padding:16px;flex-direction:column}.body-menu{display:flex;flex:1 0 0;flex-direction:column;padding-right:6px;gap:8px;font-family:Rubik,sans-serif;overflow-y:auto;min-height:0}.colum-mn-1{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.text-head-mn{color:#8c8c8c;font-size:.75rem;line-height:16px;letter-spacing:.24px}.icon-acc-circle{color:#595959}.tx-row-1{display:flex;align-items:center;gap:4px}.tx-abog{color:#333;letter-spacing:.2px}.id-ct{padding:4px;border-radius:4px;border:1px solid #d9d9d9}.tx-id-ct{font-weight:500}.tx-rol{font-size:.875rem;color:#595959;line-height:20px}.tx-name-rl{color:#333;letter-spacing:.28px;font-weight:500}.email-inf{display:flex;padding:8px;align-items:center;gap:4px;color:#595959;font-size:.875rem;line-height:20px;letter-spacing:.28px}.icon-alt-email{color:#7caf25}ius-dropdown-option-item{width:100%}.container-plan{overflow:hidden;max-height:200px;transition:max-height .5s cubic-bezier(.4,0,.2,1);flex-shrink:0}.inf-plan{display:flex;padding:8px;flex-direction:column;align-items:flex-start;gap:8px}.show-more{max-height:10000px;transition:max-height .5s cubic-bezier(.4,0,.2,1)}.tx-small{font-size:.75rem;line-height:16px;letter-spacing:.24px}.tx-base{font-size:.875rem;line-height:20px;letter-spacing:.28px}.row-plan-1{display:flex;gap:12px;width:100%}.col-plan-1{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;flex:1 0 0}.icon-help{color:#8c8c8c}.tx-tipo-plan{color:#595959;font-weight:500}.tx-name-plan{color:#333;font-weight:500}.tx-row-2{display:flex;align-items:center;gap:8px}.tx-contador-1{color:#8c8c8c;font-weight:500}.tx-contador-2{color:#333}.tx-estado-plan{color:#7caf25}.mgt-8{margin-top:8px}.progress-container{width:100%;border-radius:100px;height:23px;overflow:hidden;background:#f0f0f0}.progress-bar{display:flex;height:100%}.segment{height:100%}.tipo-1-color-bar{background:#5892ff}.tipo-1-color{color:#5892ff}.tipo-2-color-bar{background:#103ab7}.tipo-2-color{color:#103ab7}.legend{display:flex;width:100%;align-items:center;gap:8px;flex-wrap:wrap}.legend .icon-storage-set{color:#103ab7}.legend .icon-storage-plus{color:#629219}.item-counter{display:flex;align-items:center;gap:4px;color:#333}.tx-name-serv{color:#595959;font-weight:500}.btn-list{margin-bottom:8px}.ctn-items{display:flex;flex-direction:column;gap:4px}.scrollable{overflow-y:auto;overflow-x:hidden}.scrollable::-webkit-scrollbar{-webkit-appearance:none}.scrollable::-webkit-scrollbar:vertical{width:7px}.scrollable::-webkit-scrollbar-thumb{background-color:#d8d6d6;border-radius:20px}.container-bottom{padding:0 16px;display:flex;flex-direction:column;gap:8px}.container-list{display:flex;flex-direction:column;gap:4px;width:90%}\n"] }]
89
+ args: [{ selector: 'ius-toolbar-user-menu', standalone: true, imports: [CommonModule, IconSmComponent, IconXsComponent, DropdownOptionItemComponent, SimpleDividerComponent, IconMdComponent, ButtonCircleTertiaryComponent, ButtonStandardTertiaryComponent, MenuItemComponent, ProgressBarComponent, ButtonAccountsComponent], template: "<div class=\"tbl-menu\">\r\n <div class=\"body-menu scrollable\">\r\n <div class=\"colum-mn-1 text-head-mn\">\r\n <span>Est\u00E1s navegando en</span>\r\n <div class=\"tx-row-1\">\r\n <ius-icon-sm iconName=\"icon-account-circle\" class=\"icon-acc-circle\"></ius-icon-sm>\r\n <span class=\"h4 tx-abog\">{{ object.nombreCompany }}</span>\r\n </div>\r\n <div class=\"tx-row-1 id-ct\">\r\n <span>ID Cuenta</span>\r\n <span class=\"tx-id-ct\">{{ object.cuentaID }}</span>\r\n </div>\r\n <div class=\"tx-row-1 tx-rol\">\r\n <span>Tu rol</span>\r\n <span class=\"tx-name-rl\">{{ object.rol }}</span>\r\n </div>\r\n </div>\r\n @if (!showFormSwitchAccount) {\r\n <div class=\"colum-mn-1\">\r\n <div class=\"email-inf\">\r\n <ius-icon-xs iconName=\"icon-alternate-email\" class=\"icon-alt-email\"></ius-icon-xs>\r\n <span>{{ object.correo }}</span>\r\n </div>\r\n <ius-dropdown-option-item (click)=\"onClickPerfilPreferencias()\">Perfil, preferencias y\r\n seguridad</ius-dropdown-option-item>\r\n </div>\r\n <ius-simple-divider></ius-simple-divider>\r\n <div class=\"container-plan\" [ngClass]=\"{ 'show-more': showMore }\">\r\n <div class=\"inf-plan\">\r\n <div class=\"row-plan-1\">\r\n <div class=\"col-plan-1\">\r\n <span class=\"tx-small tx-tipo-plan\">{{\r\n subscripcionDetalle?.tipoServicio\r\n }}</span>\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-base tx-name-plan\">{{\r\n subscripcionDetalle?.namePlan\r\n }}</span>\r\n <ius-icon-md iconName=\"icon-help\" class=\"icon-help\"></ius-icon-md>\r\n </div>\r\n <div class=\"tx-row-2 tx-small\">\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-contador-1\">Total global</span>\r\n <span class=\"tx-contador-2\">{{\r\n subscripcionDetalle?.cantTotal\r\n }}</span>\r\n </div>\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-contador-1\">Disponible global</span>\r\n <span class=\"tx-contador-2\">{{\r\n subscripcionDetalle?.cantDisponible\r\n }}</span>\r\n </div>\r\n </div>\r\n <span class=\"tx-base tx-estado-plan\">{{\r\n subscripcionDetalle?.estado\r\n }}</span>\r\n @if (subscripcionDetalle?.esPlanGratuito) {\r\n <div class=\"tx-row-1 tx-small tx-prueba\">\r\n <ius-icon-xs iconName=\"icon-schedule\"></ius-icon-xs>\r\n <span>Plan de prueba activo</span>\r\n </div>\r\n }\r\n </div>\r\n <ius-button-circle-tertiary iconName=\"icon-discover-tune\"></ius-button-circle-tertiary>\r\n </div>\r\n <div style=\"width: 100%\">\r\n <ius-progress-bar [total]=\"subscripcionDetalle?.cantTotal ?? 0\" [titleV1]=\"'Judicial'\"\r\n [v1]=\"subscripcionDetalle?.cantJudicial ?? 0\" [titleV2]=\"'SuperSociedades'\"\r\n [v2]=\"subscripcionDetalle?.cantProcesos2 ?? 0\" [titleV3]=\"'Procuraduria'\"\r\n [v3]=\"subscripcionDetalle?.cantProcesos3 ?? 0\">\r\n </ius-progress-bar>\r\n </div>\r\n <div class=\"legend\">\r\n <div class=\"item-counter tx-small\">\r\n <ius-icon-xs iconName=\"icon-storage-set\" class=\"icon-storage-set\"></ius-icon-xs>\r\n <span>{{ subscripcionDetalle?.asignados ?? 0 }}</span>\r\n </div>\r\n <div class=\"item-counter tx-small\">\r\n <ius-icon-xs iconName=\"icon-storage-plus\" class=\"icon-storage-plus\"></ius-icon-xs>\r\n <span>{{\r\n subscripcionDetalle?.cantAsignadaDisponible ?? 0\r\n }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <ius-simple-divider></ius-simple-divider>\r\n @if (detallesConsumo) {\r\n @for (detail of detallesConsumo; track $index) {\r\n <div class=\"inf-plan\">\r\n <div class=\"row-plan-1\">\r\n <div class=\"col-plan-1\">\r\n <span class=\"tx-small tx-tipo-plan\">{{\r\n detail.tipoServicio\r\n }}</span>\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-base tx-name-plan\">Por consumo</span>\r\n <ius-icon-md iconName=\"icon-help\" class=\"icon-help\"></ius-icon-md>\r\n </div>\r\n <div class=\"tx-row-2 tx-small\">\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-contador-1\">Consumo este mes</span>\r\n <span class=\"tx-contador-2\">{{\r\n detail.cantConsumida\r\n }}</span>\r\n </div>\r\n </div>\r\n <span class=\"tx-base tx-estado-plan\">{{\r\n detail.estado\r\n }}</span>\r\n </div>\r\n <ius-button-circle-tertiary iconName=\"icon-discover-tune\"></ius-button-circle-tertiary>\r\n </div>\r\n </div>\r\n <ius-simple-divider></ius-simple-divider>\r\n }\r\n }\r\n </div>\r\n @if(hasMultipleServices) {\r\n <ius-button-standard-tertiary class=\"btn-list\" [iconName]=\"\r\n showMore ? 'icon-keyboard-arrow-up' : 'icon-keyboard-arrow-down'\r\n \" (buttonClicked)=\"clickShowMore()\">\r\n {{ showMore ? \"Mostrar menos\" : \"Mostrar m\u00E1s\" }}\r\n </ius-button-standard-tertiary>\r\n }\r\n <ius-simple-divider></ius-simple-divider>\r\n <div class=\"ctn-items\">\r\n @if (showUsuariosGrupos) {\r\n <ius-menu-item iconName=\"icon-groups\" (buttonClicked)=\"onClickUsuariosRoles()\">Usuarios y roles</ius-menu-item>\r\n }\r\n @if (showConfiguracionCuenta) {\r\n <ius-menu-item iconName=\"icon-build\" (buttonClicked)=\"onClickConfiguracion()\">Configuraci\u00F3n de la\r\n cuenta</ius-menu-item>\r\n }\r\n @if (showPagosFacturacion) {\r\n <ius-menu-item iconName=\"icon-finance-chip\" (buttonClicked)=\"onClickPagos()\">Pagos y facturaci\u00F3n</ius-menu-item>\r\n }\r\n @if (showSubscripcionesServicios) {\r\n <ius-menu-item iconName=\"icon-enterprise\" (buttonClicked)=\"onClickSubsServicios()\">Suscripciones y\r\n servicios</ius-menu-item>\r\n }\r\n @if (showReferir) {\r\n <ius-menu-item iconName=\"icon-stream\" (buttonClicked)=\"onClickReferir()\">Referir servicio</ius-menu-item>\r\n }\r\n </div>\r\n\r\n <ius-simple-divider></ius-simple-divider>\r\n } @else {\r\n <div class=\"container-bottom\">\r\n <span class=\"tx-row-1 tx-rol\">Cambiar a</span>\r\n <div class=\"container-list\">\r\n @for (account of accountList; track account; let i = $index) {\r\n <ius-button-accounts (accountSelected)=\"onClickAccount(account)\" (onPressedPredeterminado)=\"\r\n clickAccountPredeterminada.emit(account)\r\n \"\r\n ,\r\n (onPressedEditar)=\"clickEditAccount.emit(account)\"\r\n ,\r\n (onPressedDesvincular)=\"clickDesvincularAccount.emit(account)\"\r\n [account]=\"account\"\r\n [showOptionsFlag]=\"false\"\r\n ></ius-button-accounts>\r\n }\r\n </div>\r\n <ius-button-standard-tertiary [iconName]=\"'icon-add'\" (buttonClicked)=\"addAccount()\">Agregar\r\n nueva cuenta</ius-button-standard-tertiary>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"ctn-items mgt-8\">\r\n <ius-menu-item iconName=\"{{\r\n !showFormSwitchAccount ? 'icon-cases' : 'icon-arrow-left-alt'\r\n }}\" (buttonClicked)=\"onClickCambiarCuenta()\">{{\r\n !showFormSwitchAccount\r\n ? \"Cambiar de cuenta\"\r\n : \"Volver al menu de usuario\"\r\n }}</ius-menu-item>\r\n <ius-menu-item iconName=\"icon-exit-to-app\" (buttonClicked)=\"onClickCerrarSesion()\">Cerrar sesi\u00F3n</ius-menu-item>\r\n </div>\r\n</div>", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-base-1,.body-base-1-1{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.tbl-menu{display:flex;width:390px;height:85vh;padding:16px;flex-direction:column}.body-menu{display:flex;flex:1 0 0;flex-direction:column;padding-right:6px;gap:8px;font-family:Rubik,sans-serif;overflow-y:auto;min-height:0}.colum-mn-1{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.text-head-mn{color:#8c8c8c;font-size:.75rem;line-height:16px;letter-spacing:.24px}.icon-acc-circle{color:#595959}.tx-row-1{display:flex;align-items:center;gap:4px}.tx-abog{color:#333;letter-spacing:.2px}.id-ct{padding:4px;border-radius:4px;border:1px solid #d9d9d9}.tx-id-ct{font-weight:500}.tx-rol{font-size:.875rem;color:#595959;line-height:20px}.tx-name-rl{color:#333;letter-spacing:.28px;font-weight:500}.email-inf{display:flex;padding:8px;align-items:center;gap:4px;color:#595959;font-size:.875rem;line-height:20px;letter-spacing:.28px}.icon-alt-email{color:#7caf25}ius-dropdown-option-item{width:100%}.container-plan{overflow:hidden;max-height:200px;transition:max-height .5s cubic-bezier(.4,0,.2,1);flex-shrink:0}.inf-plan{display:flex;padding:8px;flex-direction:column;align-items:flex-start;gap:8px}.show-more{max-height:10000px;transition:max-height .5s cubic-bezier(.4,0,.2,1)}.tx-small{font-size:.75rem;line-height:16px;letter-spacing:.24px}.tx-base{font-size:.875rem;line-height:20px;letter-spacing:.28px}.row-plan-1{display:flex;gap:12px;width:100%}.col-plan-1{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;flex:1 0 0}.icon-help{color:#8c8c8c}.tx-tipo-plan{color:#595959;font-weight:500}.tx-name-plan{color:#333;font-weight:500}.tx-row-2{display:flex;align-items:center;gap:8px}.tx-contador-1{color:#8c8c8c;font-weight:500}.tx-contador-2{color:#333}.tx-estado-plan{color:#7caf25}.mgt-8{margin-top:8px}.progress-container{width:100%;border-radius:100px;height:23px;overflow:hidden;background:#f0f0f0}.progress-bar{display:flex;height:100%}.segment{height:100%}.tipo-1-color-bar{background:#5892ff}.tipo-1-color{color:#5892ff}.tipo-2-color-bar{background:#103ab7}.tipo-2-color{color:#103ab7}.legend{display:flex;width:100%;align-items:center;gap:8px;flex-wrap:wrap}.legend .icon-storage-set{color:#103ab7}.legend .icon-storage-plus{color:#629219}.item-counter{display:flex;align-items:center;gap:4px;color:#333}.tx-name-serv{color:#595959;font-weight:500}.btn-list{margin-bottom:8px}.ctn-items{display:flex;flex-direction:column;gap:4px}.scrollable{overflow-y:auto;overflow-x:hidden}.scrollable::-webkit-scrollbar{-webkit-appearance:none}.scrollable::-webkit-scrollbar:vertical{width:7px}.scrollable::-webkit-scrollbar-thumb{background-color:#d8d6d6;border-radius:20px}.container-bottom{padding:0 16px;display:flex;flex-direction:column;gap:8px}.container-list{display:flex;flex-direction:column;gap:4px;width:90%}\n"] }]
85
90
  }], propDecorators: { object: [{
86
91
  type: Input,
87
92
  args: [{ required: true }]
@@ -91,6 +96,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
91
96
  type: Input
92
97
  }], accountList: [{
93
98
  type: Input
99
+ }], showUsuariosGrupos: [{
100
+ type: Input
101
+ }], showConfiguracionCuenta: [{
102
+ type: Input
103
+ }], showPagosFacturacion: [{
104
+ type: Input
105
+ }], showSubscripcionesServicios: [{
106
+ type: Input
107
+ }], showReferir: [{
108
+ type: Input
94
109
  }], clickPerfilPreferencias: [{
95
110
  type: Output
96
111
  }], clickUsuariosRoles: [{
@@ -120,4 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
120
135
  }], clickAgregarAccount: [{
121
136
  type: Output
122
137
  }] } });
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci11c2VyLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvdG9vbGJhci11c2VyLW1lbnUvdG9vbGJhci11c2VyLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvdG9vbGJhci11c2VyLW1lbnUvdG9vbGJhci11c2VyLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3QyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7QUFVdkYsTUFBTSxPQUFPLHdCQUF3QjtJQVByQztRQWNZ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IEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJY29uU21Db21wb25lbnQgfSBmcm9tIFwiLi4vaWNvbi1zbVwiO1xyXG5pbXBvcnQgeyBJY29uWHNDb21wb25lbnQgfSBmcm9tIFwiLi4vaWNvbi14c1wiO1xyXG5pbXBvcnQgeyBEcm9wZG93bk9wdGlvbkl0ZW1Db21wb25lbnQgfSBmcm9tIFwiLi4vZHJvcGRvd24tb3B0aW9uLWl0ZW1cIjtcclxuaW1wb3J0IHsgU2ltcGxlRGl2aWRlckNvbXBvbmVudCB9IGZyb20gXCIuLi9zaW1wbGUtZGl2aWRlclwiO1xyXG5pbXBvcnQgeyBJY29uTWRDb21wb25lbnQgfSBmcm9tIFwiLi4vaWNvbi1tZFwiO1xyXG5pbXBvcnQgeyBCdXR0b25DaXJjbGVUZXJ0aWFyeUNvbXBvbmVudCB9IGZyb20gXCIuLi9idXR0b24tY2lyY2xlLXRlcnRpYXJ5XCI7XHJcbmltcG9ydCB7IEJ1dHRvblN0YW5kYXJkVGVydGlhcnlDb21wb25lbnQgfSBmcm9tIFwiLi4vYnV0dG9uLXN0YW5kYXJkLXRlcnRpYXJ5XCI7XHJcbmltcG9ydCB7IE1lbnVJdGVtQ29tcG9uZW50IH0gZnJvbSBcIi4uL21lbnUtaXRlbVwiO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBQcm9ncmVzc0JhckNvbXBvbmVudCB9IGZyb20gXCIuLi9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBCdXR0b25BY2NvdW50c0NvbXBvbmVudCB9IGZyb20gXCIuLi9idXR0b24tYWNjb3VudHMvYnV0dG9uLWFjY291bnRzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBPYmpldG8sIEFjY291bnQsIFN1YnNjcmlwY2lvbkRldGFsbGUsIENvbnN1bW9EZXRhbGxlcyB9IGZyb20gXCIuLi90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2l1cy10b29sYmFyLXVzZXItbWVudScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJY29uU21Db21wb25lbnQsIEljb25Yc0NvbXBvbmVudCwgRHJvcGRvd25PcHRpb25JdGVtQ29tcG9uZW50LCBTaW1wbGVEaXZpZGVyQ29tcG9uZW50LCBJY29uTWRDb21wb25lbnQsIEJ1dHRvbkNpcmNsZVRlcnRpYXJ5Q29tcG9uZW50LCBCdXR0b25TdGFuZGFyZFRlcnRpYXJ5Q29tcG9uZW50LCBNZW51SXRlbUNvbXBvbmVudCwgUHJvZ3Jlc3NCYXJDb21wb25lbnQsIEJ1dHRvbkFjY291bnRzQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdG9vbGJhci11c2VyLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi90b29sYmFyLXVzZXItbWVudS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFRvb2xiYXJVc2VyTWVudUNvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIG9iamVjdCE6IE9iamV0bztcclxuICBASW5wdXQoKSBzdWJzY3JpcGNpb25EZXRhbGxlPzogU3Vic2NyaXBjaW9uRGV0YWxsZTtcclxuICBASW5wdXQoKSBkZXRhbGxlc0NvbnN1bW8/OiBDb25zdW1vRGV0YWxsZXNbXTtcclxuICBASW5wdXQoKSBhY2NvdW50TGlzdD86IEFjY291bnRbXTtcclxuXHJcbiAgQE91dHB1dCgpIGNsaWNrUGVyZmlsUHJlZmVyZW5jaWFzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsaWNrVXN1YXJpb3NSb2xlczogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbGlja0NvbmZpZ3VyYWNpb246IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xpY2tQYWdvczogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbGlja1N1YnNTZXJ2aWNpb3M6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xpY2tDYW1iaWFyQ3VlbnRhOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsaWNrQ2VycmFyU2VzaW9uOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsaWNrUmVmZXJpcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSByZXF1ZXN0Q2xvc2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpIGNsaWNrQWNjb3VudFNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xpY2tBY2NvdW50UHJlZGV0ZXJtaW5hZGE6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbGlja0VkaXRBY2NvdW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xpY2tEZXN2aW5jdWxhckFjY291bnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbGlja0FncmVnYXJBY2NvdW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcblxyXG4gIHNob3dNb3JlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0Zvcm1Td2l0Y2hBY2NvdW50OiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNPcGVuOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNsaWNrU2hvd01vcmUoKSB7XHJcbiAgICB0aGlzLnNob3dNb3JlID0gIXRoaXMuc2hvd01vcmU7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrVXN1YXJpb3NSb2xlcygpIHtcclxuICAgIHRoaXMuY2xpY2tVc3Vhcmlvc1JvbGVzLmVtaXQoKTtcclxuICAgIHRoaXMucmVxdWVzdENsb3NlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tDb25maWd1cmFjaW9uKCkge1xyXG4gICAgdGhpcy5jbGlja0NvbmZpZ3VyYWNpb24uZW1pdCgpO1xyXG4gICAgdGhpcy5yZXF1ZXN0Q2xvc2UuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja1BhZ29zKCkge1xyXG4gICAgdGhpcy5jbGlja1BhZ29zLmVtaXQoKTtcclxuICAgIHRoaXMucmVxdWVzdENsb3NlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tTdWJzU2VydmljaW9zKCkge1xyXG4gICAgdGhpcy5jbGlja1N1YnNTZXJ2aWNpb3MuZW1pdCgpO1xyXG4gICAgdGhpcy5yZXF1ZXN0Q2xvc2UuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja0NhbWJpYXJDdWVudGEoKSB7XHJcbiAgICB0aGlzLmNsaWNrQ2FtYmlhckN1ZW50YS5lbWl0KCk7XHJcbiAgICB0aGlzLnNob3dGb3JtU3dpdGNoQWNjb3VudCA9ICF0aGlzLnNob3dGb3JtU3dpdGNoQWNjb3VudDtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tDZXJyYXJTZXNpb24oKSB7XHJcbiAgICB0aGlzLmNsaWNrQ2VycmFyU2VzaW9uLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tQZXJmaWxQcmVmZXJlbmNpYXMoKSB7XHJcbiAgICB0aGlzLmNsaWNrUGVyZmlsUHJlZmVyZW5jaWFzLmVtaXQoKTtcclxuICAgIHRoaXMucmVxdWVzdENsb3NlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tSZWZlcmlyKCkge1xyXG4gICAgdGhpcy5jbGlja1JlZmVyaXIuZW1pdCgpO1xyXG4gICAgdGhpcy5yZXF1ZXN0Q2xvc2UuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja0FjY291bnQoYWNjb3VudDogQWNjb3VudCkge1xyXG4gICAgdGhpcy5jbGlja0FjY291bnRTZWxlY3RlZC5lbWl0KGFjY291bnQpO1xyXG4gIH1cclxuXHJcbiAgYWRkQWNjb3VudCgpIHtcclxuICAgIHRoaXMuY2xpY2tBZ3JlZ2FyQWNjb3VudC5lbWl0KCk7XHJcbiAgICB0aGlzLnJlcXVlc3RDbG9zZS5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzTXVsdGlwbGVTZXJ2aWNlcygpOiBib29sZWFuIHtcclxuICByZXR1cm4gISEodGhpcy5kZXRhbGxlc0NvbnN1bW8gJiYgdGhpcy5kZXRhbGxlc0NvbnN1bW8ubGVuZ3RoID4gMCk7XHJcbn1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidGJsLW1lbnVcIj5cclxuICA8ZGl2IGNsYXNzPVwiYm9keS1tZW51IHNjcm9sbGFibGVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bS1tbi0xIHRleHQtaGVhZC1tblwiPlxyXG4gICAgICA8c3Bhbj5Fc3TDoXMgbmF2ZWdhbmRvIGVuPC9zcGFuPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHgtcm93LTFcIj5cclxuICAgICAgICA8aXVzLWljb24tc20gaWNvbk5hbWU9XCJpY29uLWFjY291bnQtY2lyY2xlXCIgY2xhc3M9XCJpY29uLWFjYy1jaXJjbGVcIj48L2l1cy1pY29uLXNtPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaDQgdHgtYWJvZ1wiPnt7IG9iamVjdC5ub21icmVDb21wYW55IH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInR4LXJvdy0xIGlkLWN0XCI+XHJcbiAgICAgICAgPHNwYW4+SUQgQ3VlbnRhPC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidHgtaWQtY3RcIj57eyBvYmplY3QuY3VlbnRhSUQgfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHgtcm93LTEgdHgtcm9sXCI+XHJcbiAgICAgICAgPHNwYW4+VHUgcm9sPC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidHgtbmFtZS1ybFwiPnt7IG9iamVjdC5yb2wgfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICBAaWYgKCFzaG93Rm9ybVN3aXRjaEFjY291bnQpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bS1tbi0xXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJlbWFpbC1pbmZcIj5cclxuICAgICAgICA8aXVzLWljb24teHMgaWNvbk5hbWU9XCJpY29uLWFsdGVybmF0ZS1lbWFpbFwiIGNsYXNzPVwiaWNvbi1hbHQtZW1haWxcIj48L2l1cy1pY29uLXhzPlxyXG4gICAgICAgIDxzcGFuPnt7IG9iamVjdC5jb3JyZW8gfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8aXVzLWRyb3Bkb3duLW9wdGlvbi1pdGVtIChjbGljayk9XCJvbkNsaWNrUGVyZmlsUHJlZmVyZW5jaWFzKClcIj5QZXJmaWwsIHByZWZlcmVuY2lhcyB5XHJcbiAgICAgICAgc2VndXJpZGFkPC9pdXMtZHJvcGRvd24tb3B0aW9uLWl0ZW0+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxpdXMtc2ltcGxlLWRpdmlkZXI+PC9pdXMtc2ltcGxlLWRpdmlkZXI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLXBsYW5cIiBbbmdDbGFzc109XCJ7ICdzaG93LW1vcmUnOiBzaG93TW9yZSB9XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbmYtcGxhblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctcGxhbi0xXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXBsYW4tMVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInR4LXNtYWxsIHR4LXRpcG8tcGxhblwiPnt7XHJcbiAgICAgICAgICAgICAgc3Vic2NyaXBjaW9uRGV0YWxsZT8udGlwb1NlcnZpY2lvXHJcbiAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0eC1yb3ctMVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHgtYmFzZSB0eC1uYW1lLXBsYW5cIj57e1xyXG4gICAgICAgICAgICAgICAgc3Vic2NyaXBjaW9uRGV0YWxsZT8ubmFtZVBsYW5cclxuICAgICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxpdXMtaWNvbi1tZCBpY29uTmFtZT1cImljb24taGVscFwiIGNsYXNzPVwiaWNvbi1oZWxwXCI+PC9pdXMtaWNvbi1tZD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0eC1yb3ctMiB0eC1zbWFsbFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0eC1yb3ctMVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0eC1jb250YWRvci0xXCI+VG90YWwgZ2xvYmFsPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0eC1jb250YWRvci0yXCI+e3tcclxuICAgICAgICAgICAgICAgICAgc3Vic2NyaXBjaW9uRGV0YWxsZT8uY2FudFRvdGFsXHJcbiAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0eC1yb3ctMVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0eC1jb250YWRvci0xXCI+RGlzcG9uaWJsZSBnbG9iYWw8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInR4LWNvbnRhZG9yLTJcIj57e1xyXG4gICAgICAgICAgICAgICAgICBzdWJzY3JpcGNpb25EZXRhbGxlPy5jYW50RGlzcG9uaWJsZVxyXG4gICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHgtYmFzZSB0eC1lc3RhZG8tcGxhblwiPnt7XHJcbiAgICAgICAgICAgICAgc3Vic2NyaXBjaW9uRGV0YWxsZT8uZXN0YWRvXHJcbiAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIEBpZiAoc3Vic2NyaXBjaW9uRGV0YWxsZT8uZXNQbGFuR3JhdHVpdG8pIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR4LXJvdy0xIHR4LXNtYWxsIHR4LXBydWViYVwiPlxyXG4gICAgICAgICAgICAgIDxpdXMtaWNvbi14cyBpY29uTmFtZT1cImljb24tc2NoZWR1bGVcIj48L2l1cy1pY29uLXhzPlxyXG4gICAgICAgICAgICAgIDxzcGFuPlBsYW4gZGUgcHJ1ZWJhIGFjdGl2bzwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGl1cy1idXR0b24tY2lyY2xlLXRlcnRpYXJ5IGljb25OYW1lPVwiaWNvbi1kaXNjb3Zlci10dW5lXCI+PC9pdXMtYnV0dG9uLWNpcmNsZS10ZXJ0aWFyeT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDEwMCVcIj5cclxuICAgICAgICAgIDxpdXMtcHJvZ3Jlc3MtYmFyIFt0b3RhbF09XCJzdWJzY3JpcGNpb25EZXRhbGxlPy5jYW50VG90YWwgPz8gMFwiIFt0aXRsZVYxXT1cIidKdWRpY2lhbCdcIlxyXG4gICAgICAgICAgICBbdjFdPVwic3Vic2NyaXBjaW9uRGV0YWxsZT8uY2FudEp1ZGljaWFsID8/IDBcIiBbdGl0bGVWMl09XCInU3VwZXJTb2NpZWRhZGVzJ1wiXHJcbiAgICAgICAgICAgIFt2Ml09XCJzdWJzY3JpcGNpb25EZXRhbGxlPy5jYW50UHJvY2Vzb3MyID8/IDBcIiBbdGl0bGVWM109XCInUHJvY3VyYWR1cmlhJ1wiXHJcbiAgICAgICAgICAgIFt2M109XCJzdWJzY3JpcGNpb25EZXRhbGxlPy5jYW50UHJvY2Vzb3MzID8/IDBcIj5cclxuICAgICAgICAgIDwvaXVzLXByb2dyZXNzLWJhcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVnZW5kXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1jb3VudGVyIHR4LXNtYWxsXCI+XHJcbiAgICAgICAgICAgIDxpdXMtaWNvbi14cyBpY29uTmFtZT1cImljb24tc3RvcmFnZS1zZXRcIiBjbGFzcz1cImljb24tc3RvcmFnZS1zZXRcIj48L2l1cy1pY29uLXhzPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBzdWJzY3JpcGNpb25EZXRhbGxlPy5hc2lnbmFkb3MgPz8gMCB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tY291bnRlciB0eC1zbWFsbFwiPlxyXG4gICAgICAgICAgICA8aXVzLWljb24teHMgaWNvbk5hbWU9XCJpY29uLXN0b3JhZ2UtcGx1c1wiIGNsYXNzPVwiaWNvbi1zdG9yYWdlLXBsdXNcIj48L2l1cy1pY29uLXhzPlxyXG4gICAgICAgICAgICA8c3Bhbj57e1xyXG4gICAgICAgICAgICAgIHN1YnNjcmlwY2lvbkRldGFsbGU/LmNhbnRBc2lnbmFkYURpc3BvbmlibGUgPz8gMFxyXG4gICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8aXVzLXNpbXBsZS1kaXZpZGVyPjwvaXVzLXNpbXBsZS1kaXZpZGVyPlxyXG4gICAgICBAaWYgKGRldGFsbGVzQ29uc3Vtbykge1xyXG4gICAgICBAZm9yIChkZXRhaWwgb2YgZGV0YWxsZXNDb25zdW1vOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cImluZi1wbGFuXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdy1wbGFuLTFcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtcGxhbi0xXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHgtc21hbGwgdHgtdGlwby1wbGFuXCI+e3tcclxuICAgICAgICAgICAgICBkZXRhaWwudGlwb1NlcnZpY2lvXHJcbiAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0eC1yb3ctMVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHgtYmFzZSB0eC1uYW1lLXBsYW5cIj5Qb3IgY29uc3Vtbzwvc3Bhbj5cclxuICAgICAgICAgICAgICA8aXVzLWljb24tbWQgaWNvbk5hbWU9XCJpY29uLWhlbHBcIiBjbGFzcz1cImljb24taGVscFwiPjwvaXVzLWljb24tbWQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHgtcm93LTIgdHgtc21hbGxcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHgtcm93LTFcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHgtY29udGFkb3ItMVwiPkNvbnN1bW8gZXN0ZSBtZXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInR4LWNvbnRhZG9yLTJcIj57e1xyXG4gICAgICAgICAgICAgICAgICBkZXRhaWwuY2FudENvbnN1bWlkYVxyXG4gICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHgtYmFzZSB0eC1lc3RhZG8tcGxhblwiPnt7XHJcbiAgICAgICAgICAgICAgZGV0YWlsLmVzdGFkb1xyXG4gICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8aXVzLWJ1dHRvbi1jaXJjbGUtdGVydGlhcnkgaWNvbk5hbWU9XCJpY29uLWRpc2NvdmVyLXR1bmVcIj48L2l1cy1idXR0b24tY2lyY2xlLXRlcnRpYXJ5PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGl1cy1zaW1wbGUtZGl2aWRlcj48L2l1cy1zaW1wbGUtZGl2aWRlcj5cclxuICAgICAgfVxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgIEBpZihoYXNNdWx0aXBsZVNlcnZpY2VzKSB7XHJcbiAgICA8aXVzLWJ1dHRvbi1zdGFuZGFyZC10ZXJ0aWFyeSBjbGFzcz1cImJ0bi1saXN0XCIgW2ljb25OYW1lXT1cIlxyXG4gICAgICAgICAgc2hvd01vcmUgPyAnaWNvbi1rZXlib2FyZC1hcnJvdy11cCcgOiAnaWNvbi1rZXlib2FyZC1hcnJvdy1kb3duJ1xyXG4gICAgICAgIFwiIChidXR0b25DbGlja2VkKT1cImNsaWNrU2hvd01vcmUoKVwiPlxyXG4gICAgICB7eyBzaG93TW9yZSA/IFwiTW9zdHJhciBtZW5vc1wiIDogXCJNb3N0cmFyIG3DoXNcIiB9fVxyXG4gICAgPC9pdXMtYnV0dG9uLXN0YW5kYXJkLXRlcnRpYXJ5PlxyXG4gICAgfVxyXG4gICAgPGl1cy1zaW1wbGUtZGl2aWRlcj48L2l1cy1zaW1wbGUtZGl2aWRlcj5cclxuICAgIDxkaXYgY2xhc3M9XCJjdG4taXRlbXNcIj5cclxuICAgICAgPGl1cy1tZW51LWl0ZW0gaWNvbk5hbWU9XCJpY29uLWdyb3Vwc1wiIChidXR0b25DbGlja2VkKT1cIm9uQ2xpY2tVc3Vhcmlvc1JvbGVzKClcIj5Vc3VhcmlvcyB5IHJvbGVzPC9pdXMtbWVudS1pdGVtPlxyXG4gICAgICA8aXVzLW1lbnUtaXRlbSBpY29uTmFtZT1cImljb24tYnVpbGRcIiAoYnV0dG9uQ2xpY2tlZCk9XCJvbkNsaWNrQ29uZmlndXJhY2lvbigpXCI+Q29uZmlndXJhY2nDs24gZGUgbGFcclxuICAgICAgICBjdWVudGE8L2l1cy1tZW51LWl0ZW0+XHJcbiAgICAgIDxpdXMtbWVudS1pdGVtIGljb25OYW1lPVwiaWNvbi1maW5hbmNlLWNoaXBcIiAoYnV0dG9uQ2xpY2tlZCk9XCJvbkNsaWNrUGFnb3MoKVwiPlBhZ29zIHkgZmFjdHVyYWNpw7NuPC9pdXMtbWVudS1pdGVtPlxyXG4gICAgICA8aXVzLW1lbnUtaXRlbSBpY29uTmFtZT1cImljb24tZW50ZXJwcmlzZVwiIChidXR0b25DbGlja2VkKT1cIm9uQ2xpY2tTdWJzU2VydmljaW9zKClcIj5TdXNjcmlwY2lvbmVzIHlcclxuICAgICAgICBzZXJ2aWNpb3M8L2l1cy1tZW51LWl0ZW0+XHJcbiAgICAgIDxpdXMtbWVudS1pdGVtIGljb25OYW1lPVwiaWNvbi1zdHJlYW1cIiAoYnV0dG9uQ2xpY2tlZCk9XCJvbkNsaWNrUmVmZXJpcigpXCI+UmVmZXJpciBzZXJ2aWNpbzwvaXVzLW1lbnUtaXRlbT5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxpdXMtc2ltcGxlLWRpdmlkZXI+PC9pdXMtc2ltcGxlLWRpdmlkZXI+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItYm90dG9tXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwidHgtcm93LTEgdHgtcm9sXCI+Q2FtYmlhciBhPC9zcGFuPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWxpc3RcIj5cclxuICAgICAgICBAZm9yIChhY2NvdW50IG9mIGFjY291bnRMaXN0OyB0cmFjayBhY2NvdW50OyBsZXQgaSA9ICRpbmRleCkge1xyXG4gICAgICAgIDxpdXMtYnV0dG9uLWFjY291bnRzIChhY2NvdW50U2VsZWN0ZWQpPVwib25DbGlja0FjY291bnQoYWNjb3VudClcIiAob25QcmVzc2VkUHJlZGV0ZXJtaW5hZG8pPVwiXHJcbiAgICAgICAgICAgICAgICBjbGlja0FjY291bnRQcmVkZXRlcm1pbmFkYS5lbWl0KGFjY291bnQpXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAsXHJcbiAgICAgICAgICAgICAgKG9uUHJlc3NlZEVkaXRhcik9XCJjbGlja0VkaXRBY2NvdW50LmVtaXQoYWNjb3VudClcIlxyXG4gICAgICAgICAgICAgICxcclxuICAgICAgICAgICAgICAob25QcmVzc2VkRGVzdmluY3VsYXIpPVwiY2xpY2tEZXN2aW5jdWxhckFjY291bnQuZW1pdChhY2NvdW50KVwiXHJcbiAgICAgICAgICAgICAgW2FjY291bnRdPVwiYWNjb3VudFwiXHJcbiAgICAgICAgICAgICAgW3Nob3dPcHRpb25zRmxhZ109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgID48L2l1cy1idXR0b24tYWNjb3VudHM+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGl1cy1idXR0b24tc3RhbmRhcmQtdGVydGlhcnkgW2ljb25OYW1lXT1cIidpY29uLWFkZCdcIiAoYnV0dG9uQ2xpY2tlZCk9XCJhZGRBY2NvdW50KClcIj5BZ3JlZ2FyXHJcbiAgICAgICAgICAgICAgICBudWV2YSBjdWVudGE8L2l1cy1idXR0b24tc3RhbmRhcmQtdGVydGlhcnk+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJjdG4taXRlbXMgbWd0LThcIj5cclxuICAgIDxpdXMtbWVudS1pdGVtIGljb25OYW1lPVwie3tcclxuICAgICAgICAhc2hvd0Zvcm1Td2l0Y2hBY2NvdW50ID8gJ2ljb24tY2FzZXMnIDogJ2ljb24tYXJyb3ctbGVmdC1hbHQnXHJcbiAgICAgIH19XCIgKGJ1dHRvbkNsaWNrZWQpPVwib25DbGlja0NhbWJpYXJDdWVudGEoKVwiPnt7XHJcbiAgICAgICFzaG93Rm9ybVN3aXRjaEFjY291bnRcclxuICAgICAgPyBcIkNhbWJpYXIgZGUgY3VlbnRhXCJcclxuICAgICAgOiBcIlZvbHZlciBhbCBtZW51IGRlIHVzdWFyaW9cIlxyXG4gICAgICB9fTwvaXVzLW1lbnUtaXRlbT5cclxuICAgIDxpdXMtbWVudS1pdGVtIGljb25OYW1lPVwiaWNvbi1leGl0LXRvLWFwcFwiIChidXR0b25DbGlja2VkKT1cIm9uQ2xpY2tDZXJyYXJTZXNpb24oKVwiPkNlcnJhciBzZXNpw7NuPC9pdXMtbWVudS1pdGVtPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci11c2VyLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvdG9vbGJhci11c2VyLW1lbnUvdG9vbGJhci11c2VyLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvdG9vbGJhci11c2VyLW1lbnUvdG9vbGJhci11c2VyLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3QyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7QUFVdkYsTUFBTSxPQUFPLHdCQUF3QjtJQVByQztRQWNX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TTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFFRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0csMEJBQTBCO3NCQUFuQyxNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSWNvblNtQ29tcG9uZW50IH0gZnJvbSBcIi4uL2ljb24tc21cIjtcclxuaW1wb3J0IHsgSWNvblhzQ29tcG9uZW50IH0gZnJvbSBcIi4uL2ljb24teHNcIjtcclxuaW1wb3J0IHsgRHJvcGRvd25PcHRpb25JdGVtQ29tcG9uZW50IH0gZnJvbSBcIi4uL2Ryb3Bkb3duLW9wdGlvbi1pdGVtXCI7XHJcbmltcG9ydCB7IFNpbXBsZURpdmlkZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vc2ltcGxlLWRpdmlkZXJcIjtcclxuaW1wb3J0IHsgSWNvbk1kQ29tcG9uZW50IH0gZnJvbSBcIi4uL2ljb24tbWRcIjtcclxuaW1wb3J0IHsgQnV0dG9uQ2lyY2xlVGVydGlhcnlDb21wb25lbnQgfSBmcm9tIFwiLi4vYnV0dG9uLWNpcmNsZS10ZXJ0aWFyeVwiO1xyXG5pbXBvcnQgeyBCdXR0b25TdGFuZGFyZFRlcnRpYXJ5Q29tcG9uZW50IH0gZnJvbSBcIi4uL2J1dHRvbi1zdGFuZGFyZC10ZXJ0aWFyeVwiO1xyXG5pbXBvcnQgeyBNZW51SXRlbUNvbXBvbmVudCB9IGZyb20gXCIuLi9tZW51LWl0ZW1cIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUHJvZ3Jlc3NCYXJDb21wb25lbnQgfSBmcm9tIFwiLi4vcHJvZ3Jlc3MtYmFyL3Byb2dyZXNzLWJhci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQnV0dG9uQWNjb3VudHNDb21wb25lbnQgfSBmcm9tIFwiLi4vYnV0dG9uLWFjY291bnRzL2J1dHRvbi1hY2NvdW50cy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgT2JqZXRvLCBBY2NvdW50LCBTdWJzY3JpcGNpb25EZXRhbGxlLCBDb25zdW1vRGV0YWxsZXMgfSBmcm9tIFwiLi4vdG9vbGJhci90b29sYmFyLmNvbXBvbmVudFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpdXMtdG9vbGJhci11c2VyLW1lbnUnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSWNvblNtQ29tcG9uZW50LCBJY29uWHNDb21wb25lbnQsIERyb3Bkb3duT3B0aW9uSXRlbUNvbXBvbmVudCwgU2ltcGxlRGl2aWRlckNvbXBvbmVudCwgSWNvbk1kQ29tcG9uZW50LCBCdXR0b25DaXJjbGVUZXJ0aWFyeUNvbXBvbmVudCwgQnV0dG9uU3RhbmRhcmRUZXJ0aWFyeUNvbXBvbmVudCwgTWVudUl0ZW1Db21wb25lbnQsIFByb2dyZXNzQmFyQ29tcG9uZW50LCBCdXR0b25BY2NvdW50c0NvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Rvb2xiYXItdXNlci1tZW51LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdG9vbGJhci11c2VyLW1lbnUuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb29sYmFyVXNlck1lbnVDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBvYmplY3QhOiBPYmpldG87XHJcbiAgQElucHV0KCkgc3Vic2NyaXBjaW9uRGV0YWxsZT86IFN1YnNjcmlwY2lvbkRldGFsbGU7XHJcbiAgQElucHV0KCkgZGV0YWxsZXNDb25zdW1vPzogQ29uc3Vtb0RldGFsbGVzW107XHJcbiAgQElucHV0KCkgYWNjb3VudExpc3Q/OiBBY2NvdW50W107XHJcblxyXG4gIEBJbnB1dCgpIHNob3dVc3Vhcmlvc0dydXBvcz86IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dDb25maWd1cmFjaW9uQ3VlbnRhPzogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd1BhZ29zRmFjdHVyYWNpb24/OiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93U3Vic2NyaXBjaW9uZXNTZXJ2aWNpb3M/OiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93UmVmZXJpcj86IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBAT3V0cHV0KCkgY2xpY2tQZXJmaWxQcmVmZXJlbmNpYXM6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xpY2tVc3Vhcmlvc1JvbGVzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsaWNrQ29uZmlndXJhY2lvbjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbGlja1BhZ29zOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsaWNrU3Vic1NlcnZpY2lvczogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbGlja0NhbWJpYXJDdWVudGE6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xpY2tDZXJyYXJTZXNpb246IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xpY2tSZWZlcmlyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHJlcXVlc3RDbG9zZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KCkgY2xpY2tBY2NvdW50U2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbGlja0FjY291bnRQcmVkZXRlcm1pbmFkYTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsaWNrRWRpdEFjY291bnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbGlja0Rlc3ZpbmN1bGFyQWNjb3VudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsaWNrQWdyZWdhckFjY291bnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuXHJcbiAgc2hvd01vcmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93Rm9ybVN3aXRjaEFjY291bnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc09wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY2xpY2tTaG93TW9yZSgpIHtcclxuICAgIHRoaXMuc2hvd01vcmUgPSAhdGhpcy5zaG93TW9yZTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tVc3Vhcmlvc1JvbGVzKCkge1xyXG4gICAgdGhpcy5jbGlja1VzdWFyaW9zUm9sZXMuZW1pdCgpO1xyXG4gICAgdGhpcy5yZXF1ZXN0Q2xvc2UuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja0NvbmZpZ3VyYWNpb24oKSB7XHJcbiAgICB0aGlzLmNsaWNrQ29uZmlndXJhY2lvbi5lbWl0KCk7XHJcbiAgICB0aGlzLnJlcXVlc3RDbG9zZS5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrUGFnb3MoKSB7XHJcbiAgICB0aGlzLmNsaWNrUGFnb3MuZW1pdCgpO1xyXG4gICAgdGhpcy5yZXF1ZXN0Q2xvc2UuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja1N1YnNTZXJ2aWNpb3MoKSB7XHJcbiAgICB0aGlzLmNsaWNrU3Vic1NlcnZpY2lvcy5lbWl0KCk7XHJcbiAgICB0aGlzLnJlcXVlc3RDbG9zZS5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrQ2FtYmlhckN1ZW50YSgpIHtcclxuICAgIHRoaXMuY2xpY2tDYW1iaWFyQ3VlbnRhLmVtaXQoKTtcclxuICAgIHRoaXMuc2hvd0Zvcm1Td2l0Y2hBY2NvdW50ID0gIXRoaXMuc2hvd0Zvcm1Td2l0Y2hBY2NvdW50O1xyXG4gIH1cclxuXHJcbiAgb25DbGlja0NlcnJhclNlc2lvbigpIHtcclxuICAgIHRoaXMuY2xpY2tDZXJyYXJTZXNpb24uZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja1BlcmZpbFByZWZlcmVuY2lhcygpIHtcclxuICAgIHRoaXMuY2xpY2tQZXJmaWxQcmVmZXJlbmNpYXMuZW1pdCgpO1xyXG4gICAgdGhpcy5yZXF1ZXN0Q2xvc2UuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja1JlZmVyaXIoKSB7XHJcbiAgICB0aGlzLmNsaWNrUmVmZXJpci5lbWl0KCk7XHJcbiAgICB0aGlzLnJlcXVlc3RDbG9zZS5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrQWNjb3VudChhY2NvdW50OiBBY2NvdW50KSB7XHJcbiAgICB0aGlzLmNsaWNrQWNjb3VudFNlbGVjdGVkLmVtaXQoYWNjb3VudCk7XHJcbiAgfVxyXG5cclxuICBhZGRBY2NvdW50KCkge1xyXG4gICAgdGhpcy5jbGlja0FncmVnYXJBY2NvdW50LmVtaXQoKTtcclxuICAgIHRoaXMucmVxdWVzdENsb3NlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIGdldCBoYXNNdWx0aXBsZVNlcnZpY2VzKCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAhISh0aGlzLmRldGFsbGVzQ29uc3VtbyAmJiB0aGlzLmRldGFsbGVzQ29uc3Vtby5sZW5ndGggPiAwKTtcclxufVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0YmwtbWVudVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJib2R5LW1lbnUgc2Nyb2xsYWJsZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbHVtLW1uLTEgdGV4dC1oZWFkLW1uXCI+XHJcbiAgICAgIDxzcGFuPkVzdMOhcyBuYXZlZ2FuZG8gZW48L3NwYW4+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0eC1yb3ctMVwiPlxyXG4gICAgICAgIDxpdXMtaWNvbi1zbSBpY29uTmFtZT1cImljb24tYWNjb3VudC1jaXJjbGVcIiBjbGFzcz1cImljb24tYWNjLWNpcmNsZVwiPjwvaXVzLWljb24tc20+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJoNCB0eC1hYm9nXCI+e3sgb2JqZWN0Lm5vbWJyZUNvbXBhbnkgfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHgtcm93LTEgaWQtY3RcIj5cclxuICAgICAgICA8c3Bhbj5JRCBDdWVudGE8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0eC1pZC1jdFwiPnt7IG9iamVjdC5jdWVudGFJRCB9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0eC1yb3ctMSB0eC1yb2xcIj5cclxuICAgICAgICA8c3Bhbj5UdSByb2w8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0eC1uYW1lLXJsXCI+e3sgb2JqZWN0LnJvbCB9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIEBpZiAoIXNob3dGb3JtU3dpdGNoQWNjb3VudCkge1xyXG4gICAgPGRpdiBjbGFzcz1cImNvbHVtLW1uLTFcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImVtYWlsLWluZlwiPlxyXG4gICAgICAgIDxpdXMtaWNvbi14cyBpY29uTmFtZT1cImljb24tYWx0ZXJuYXRlLWVtYWlsXCIgY2xhc3M9XCJpY29uLWFsdC1lbWFpbFwiPjwvaXVzLWljb24teHM+XHJcbiAgICAgICAgPHNwYW4+e3sgb2JqZWN0LmNvcnJlbyB9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxpdXMtZHJvcGRvd24tb3B0aW9uLWl0ZW0gKGNsaWNrKT1cIm9uQ2xpY2tQZXJmaWxQcmVmZXJlbmNpYXMoKVwiPlBlcmZpbCwgcHJlZmVyZW5jaWFzIHlcclxuICAgICAgICBzZWd1cmlkYWQ8L2l1cy1kcm9wZG93bi1vcHRpb24taXRlbT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGl1cy1zaW1wbGUtZGl2aWRlcj48L2l1cy1zaW1wbGUtZGl2aWRlcj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItcGxhblwiIFtuZ0NsYXNzXT1cInsgJ3Nob3ctbW9yZSc6IHNob3dNb3JlIH1cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImluZi1wbGFuXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdy1wbGFuLTFcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtcGxhbi0xXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHgtc21hbGwgdHgtdGlwby1wbGFuXCI+e3tcclxuICAgICAgICAgICAgICBzdWJzY3JpcGNpb25EZXRhbGxlPy50aXBvU2VydmljaW9cclxuICAgICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR4LXJvdy0xXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0eC1iYXNlIHR4LW5hbWUtcGxhblwiPnt7XHJcbiAgICAgICAgICAgICAgICBzdWJzY3JpcGNpb25EZXRhbGxlPy5uYW1lUGxhblxyXG4gICAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGl1cy1pY29uLW1kIGljb25OYW1lPVwiaWNvbi1oZWxwXCIgY2xhc3M9XCJpY29uLWhlbHBcIj48L2l1cy1pY29uLW1kPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR4LXJvdy0yIHR4LXNtYWxsXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR4LXJvdy0xXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInR4LWNvbnRhZG9yLTFcIj5Ub3RhbCBnbG9iYWw8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInR4LWNvbnRhZG9yLTJcIj57e1xyXG4gICAgICAgICAgICAgICAgICBzdWJzY3JpcGNpb25EZXRhbGxlPy5jYW50VG90YWxcclxuICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR4LXJvdy0xXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInR4LWNvbnRhZG9yLTFcIj5EaXNwb25pYmxlIGdsb2JhbDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHgtY29udGFkb3ItMlwiPnt7XHJcbiAgICAgICAgICAgICAgICAgIHN1YnNjcmlwY2lvbkRldGFsbGU/LmNhbnREaXNwb25pYmxlXHJcbiAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0eC1iYXNlIHR4LWVzdGFkby1wbGFuXCI+e3tcclxuICAgICAgICAgICAgICBzdWJzY3JpcGNpb25EZXRhbGxlPy5lc3RhZG9cclxuICAgICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgQGlmIChzdWJzY3JpcGNpb25EZXRhbGxlPy5lc1BsYW5HcmF0dWl0bykge1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHgtcm93LTEgdHgtc21hbGwgdHgtcHJ1ZWJhXCI+XHJcbiAgICAgICAgICAgICAgPGl1cy1pY29uLXhzIGljb25OYW1lPVwiaWNvbi1zY2hlZHVsZVwiPjwvaXVzLWljb24teHM+XHJcbiAgICAgICAgICAgICAgPHNwYW4+UGxhbiBkZSBwcnVlYmEgYWN0aXZvPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8aXVzLWJ1dHRvbi1jaXJjbGUtdGVydGlhcnkgaWNvbk5hbWU9XCJpY29uLWRpc2NvdmVyLXR1bmVcIj48L2l1cy1idXR0b24tY2lyY2xlLXRlcnRpYXJ5PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPlxyXG4gICAgICAgICAgPGl1cy1wcm9ncmVzcy1iYXIgW3RvdGFsXT1cInN1YnNjcmlwY2lvbkRldGFsbGU/LmNhbnRUb3RhbCA/PyAwXCIgW3RpdGxlVjFdPVwiJ0p1ZGljaWFsJ1wiXHJcbiAgICAgICAgICAgIFt2MV09XCJzdWJzY3JpcGNpb25EZXRhbGxlPy5jYW50SnVkaWNpYWwgPz8gMFwiIFt0aXRsZVYyXT1cIidTdXBlclNvY2llZGFkZXMnXCJcclxuICAgICAgICAgICAgW3YyXT1cInN1YnNjcmlwY2lvbkRldGFsbGU/LmNhbnRQcm9jZXNvczIgPz8gMFwiIFt0aXRsZVYzXT1cIidQcm9jdXJhZHVyaWEnXCJcclxuICAgICAgICAgICAgW3YzXT1cInN1YnNjcmlwY2lvbkRldGFsbGU/LmNhbnRQcm9jZXNvczMgPz8gMFwiPlxyXG4gICAgICAgICAgPC9pdXMtcHJvZ3Jlc3MtYmFyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWdlbmRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWNvdW50ZXIgdHgtc21hbGxcIj5cclxuICAgICAgICAgICAgPGl1cy1pY29uLXhzIGljb25OYW1lPVwiaWNvbi1zdG9yYWdlLXNldFwiIGNsYXNzPVwiaWNvbi1zdG9yYWdlLXNldFwiPjwvaXVzLWljb24teHM+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IHN1YnNjcmlwY2lvbkRldGFsbGU/LmFzaWduYWRvcyA/PyAwIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1jb3VudGVyIHR4LXNtYWxsXCI+XHJcbiAgICAgICAgICAgIDxpdXMtaWNvbi14cyBpY29uTmFtZT1cImljb24tc3RvcmFnZS1wbHVzXCIgY2xhc3M9XCJpY29uLXN0b3JhZ2UtcGx1c1wiPjwvaXVzLWljb24teHM+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7XHJcbiAgICAgICAgICAgICAgc3Vic2NyaXBjaW9uRGV0YWxsZT8uY2FudEFzaWduYWRhRGlzcG9uaWJsZSA/PyAwXHJcbiAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxpdXMtc2ltcGxlLWRpdmlkZXI+PC9pdXMtc2ltcGxlLWRpdmlkZXI+XHJcbiAgICAgIEBpZiAoZGV0YWxsZXNDb25zdW1vKSB7XHJcbiAgICAgIEBmb3IgKGRldGFpbCBvZiBkZXRhbGxlc0NvbnN1bW87IHRyYWNrICRpbmRleCkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5mLXBsYW5cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93LXBsYW4tMVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1wbGFuLTFcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0eC1zbWFsbCB0eC10aXBvLXBsYW5cIj57e1xyXG4gICAgICAgICAgICAgIGRldGFpbC50aXBvU2VydmljaW9cclxuICAgICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR4LXJvdy0xXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0eC1iYXNlIHR4LW5hbWUtcGxhblwiPlBvciBjb25zdW1vPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxpdXMtaWNvbi1tZCBpY29uTmFtZT1cImljb24taGVscFwiIGNsYXNzPVwiaWNvbi1oZWxwXCI+PC9pdXMtaWNvbi1tZD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0eC1yb3ctMiB0eC1zbWFsbFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0eC1yb3ctMVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0eC1jb250YWRvci0xXCI+Q29uc3VtbyBlc3RlIG1lczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHgtY29udGFkb3ItMlwiPnt7XHJcbiAgICAgICAgICAgICAgICAgIGRldGFpbC5jYW50Q29uc3VtaWRhXHJcbiAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0eC1iYXNlIHR4LWVzdGFkby1wbGFuXCI+e3tcclxuICAgICAgICAgICAgICBkZXRhaWwuZXN0YWRvXHJcbiAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxpdXMtYnV0dG9uLWNpcmNsZS10ZXJ0aWFyeSBpY29uTmFtZT1cImljb24tZGlzY292ZXItdHVuZVwiPjwvaXVzLWJ1dHRvbi1jaXJjbGUtdGVydGlhcnk+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8aXVzLXNpbXBsZS1kaXZpZGVyPjwvaXVzLXNpbXBsZS1kaXZpZGVyPlxyXG4gICAgICB9XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gICAgQGlmKGhhc011bHRpcGxlU2VydmljZXMpIHtcclxuICAgIDxpdXMtYnV0dG9uLXN0YW5kYXJkLXRlcnRpYXJ5IGNsYXNzPVwiYnRuLWxpc3RcIiBbaWNvbk5hbWVdPVwiXHJcbiAgICAgICAgICBzaG93TW9yZSA/ICdpY29uLWtleWJvYXJkLWFycm93LXVwJyA6ICdpY29uLWtleWJvYXJkLWFycm93LWRvd24nXHJcbiAgICAgICAgXCIgKGJ1dHRvbkNsaWNrZWQpPVwiY2xpY2tTaG93TW9yZSgpXCI+XHJcbiAgICAgIHt7IHNob3dNb3JlID8gXCJNb3N0cmFyIG1lbm9zXCIgOiBcIk1vc3RyYXIgbcOhc1wiIH19XHJcbiAgICA8L2l1cy1idXR0b24tc3RhbmRhcmQtdGVydGlhcnk+XHJcbiAgICB9XHJcbiAgICA8aXVzLXNpbXBsZS1kaXZpZGVyPjwvaXVzLXNpbXBsZS1kaXZpZGVyPlxyXG4gICAgPGRpdiBjbGFzcz1cImN0bi1pdGVtc1wiPlxyXG4gICAgICBAaWYgKHNob3dVc3Vhcmlvc0dydXBvcykge1xyXG4gICAgICAgIDxpdXMtbWVudS1pdGVtIGljb25OYW1lPVwiaWNvbi1ncm91cHNcIiAoYnV0dG9uQ2xpY2tlZCk9XCJvbkNsaWNrVXN1YXJpb3NSb2xlcygpXCI+VXN1YXJpb3MgeSByb2xlczwvaXVzLW1lbnUtaXRlbT5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKHNob3dDb25maWd1cmFjaW9uQ3VlbnRhKSB7XHJcbiAgICAgICAgPGl1cy1tZW51LWl0ZW0gaWNvbk5hbWU9XCJpY29uLWJ1aWxkXCIgKGJ1dHRvbkNsaWNrZWQpPVwib25DbGlja0NvbmZpZ3VyYWNpb24oKVwiPkNvbmZpZ3VyYWNpw7NuIGRlIGxhXHJcbiAgICAgICAgICBjdWVudGE8L2l1cy1tZW51LWl0ZW0+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChzaG93UGFnb3NGYWN0dXJhY2lvbikge1xyXG4gICAgICAgIDxpdXMtbWVudS1pdGVtIGljb25OYW1lPVwiaWNvbi1maW5hbmNlLWNoaXBcIiAoYnV0dG9uQ2xpY2tlZCk9XCJvbkNsaWNrUGFnb3MoKVwiPlBhZ29zIHkgZmFjdHVyYWNpw7NuPC9pdXMtbWVudS1pdGVtPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoc2hvd1N1YnNjcmlwY2lvbmVzU2VydmljaW9zKSB7XHJcbiAgICAgICAgPGl1cy1tZW51LWl0ZW0gaWNvbk5hbWU9XCJpY29uLWVudGVycHJpc2VcIiAoYnV0dG9uQ2xpY2tlZCk9XCJvbkNsaWNrU3Vic1NlcnZpY2lvcygpXCI+U3VzY3JpcGNpb25lcyB5XHJcbiAgICAgICAgICBzZXJ2aWNpb3M8L2l1cy1tZW51LWl0ZW0+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChzaG93UmVmZXJpcikge1xyXG4gICAgICAgIDxpdXMtbWVudS1pdGVtIGljb25OYW1lPVwiaWNvbi1zdHJlYW1cIiAoYnV0dG9uQ2xpY2tlZCk9XCJvbkNsaWNrUmVmZXJpcigpXCI+UmVmZXJpciBzZXJ2aWNpbzwvaXVzLW1lbnUtaXRlbT5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGl1cy1zaW1wbGUtZGl2aWRlcj48L2l1cy1zaW1wbGUtZGl2aWRlcj5cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1ib3R0b21cIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJ0eC1yb3ctMSB0eC1yb2xcIj5DYW1iaWFyIGE8L3NwYW4+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItbGlzdFwiPlxyXG4gICAgICAgIEBmb3IgKGFjY291bnQgb2YgYWNjb3VudExpc3Q7IHRyYWNrIGFjY291bnQ7IGxldCBpID0gJGluZGV4KSB7XHJcbiAgICAgICAgPGl1cy1idXR0b24tYWNjb3VudHMgKGFjY291bnRTZWxlY3RlZCk9XCJvbkNsaWNrQWNjb3VudChhY2NvdW50KVwiIChvblByZXNzZWRQcmVkZXRlcm1pbmFkbyk9XCJcclxuICAgICAgICAgICAgICAgIGNsaWNrQWNjb3VudFByZWRldGVybWluYWRhLmVtaXQoYWNjb3VudClcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICxcclxuICAgICAgICAgICAgICAob25QcmVzc2VkRWRpdGFyKT1cImNsaWNrRWRpdEFjY291bnQuZW1pdChhY2NvdW50KVwiXHJcbiAgICAgICAgICAgICAgLFxyXG4gICAgICAgICAgICAgIChvblByZXNzZWREZXN2aW5jdWxhcik9XCJjbGlja0Rlc3ZpbmN1bGFyQWNjb3VudC5lbWl0KGFjY291bnQpXCJcclxuICAgICAgICAgICAgICBbYWNjb3VudF09XCJhY2NvdW50XCJcclxuICAgICAgICAgICAgICBbc2hvd09wdGlvbnNGbGFnXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgPjwvaXVzLWJ1dHRvbi1hY2NvdW50cz5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8aXVzLWJ1dHRvbi1zdGFuZGFyZC10ZXJ0aWFyeSBbaWNvbk5hbWVdPVwiJ2ljb24tYWRkJ1wiIChidXR0b25DbGlja2VkKT1cImFkZEFjY291bnQoKVwiPkFncmVnYXJcclxuICAgICAgICAgICAgICAgIG51ZXZhIGN1ZW50YTwvaXVzLWJ1dHRvbi1zdGFuZGFyZC10ZXJ0aWFyeT5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImN0bi1pdGVtcyBtZ3QtOFwiPlxyXG4gICAgPGl1cy1tZW51LWl0ZW0gaWNvbk5hbWU9XCJ7e1xyXG4gICAgICAgICFzaG93Rm9ybVN3aXRjaEFjY291bnQgPyAnaWNvbi1jYXNlcycgOiAnaWNvbi1hcnJvdy1sZWZ0LWFsdCdcclxuICAgICAgfX1cIiAoYnV0dG9uQ2xpY2tlZCk9XCJvbkNsaWNrQ2FtYmlhckN1ZW50YSgpXCI+e3tcclxuICAgICAgIXNob3dGb3JtU3dpdGNoQWNjb3VudFxyXG4gICAgICA/IFwiQ2FtYmlhciBkZSBjdWVudGFcIlxyXG4gICAgICA6IFwiVm9sdmVyIGFsIG1lbnUgZGUgdXN1YXJpb1wiXHJcbiAgICAgIH19PC9pdXMtbWVudS1pdGVtPlxyXG4gICAgPGl1cy1tZW51LWl0ZW0gaWNvbk5hbWU9XCJpY29uLWV4aXQtdG8tYXBwXCIgKGJ1dHRvbkNsaWNrZWQpPVwib25DbGlja0NlcnJhclNlc2lvbigpXCI+Q2VycmFyIHNlc2nDs248L2l1cy1tZW51LWl0ZW0+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==