ng-easycommerce-v18 0.3.14-beta.1 → 0.3.14-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/README.md +26 -0
  2. package/esm2022/lib/constants/api.constants.service.mjs +17 -5
  3. package/esm2022/lib/constants/core.constants.service.mjs +2 -2
  4. package/esm2022/lib/ec-components/abstractions-components/menu-ec.component.mjs +17 -1
  5. package/esm2022/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.mjs +20 -12
  6. package/esm2022/lib/ec-components/auth-ec/password-reset-ec/password-reset-ec.component.mjs +8 -2
  7. package/esm2022/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.mjs +5 -1
  8. package/esm2022/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.mjs +6 -2
  9. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.mjs +141 -75
  10. package/esm2022/lib/ec-components/filters-ec/filters-ec.component.mjs +30 -5
  11. package/esm2022/lib/ec-components/header-ec/header-ec.component.mjs +23 -3
  12. package/esm2022/lib/ec-components/product-detail-ec/product-detail-ec.component.mjs +11 -10
  13. package/esm2022/lib/ec-components/product-ec/product-ec.component.mjs +95 -5
  14. package/esm2022/lib/ec-components/stores-ec/stores-ec.component.mjs +21 -6
  15. package/esm2022/lib/ec-components/widgets-ec/decidir-ec/decidir-ec.component.mjs +52 -28
  16. package/esm2022/lib/ec-components/widgets-ec/index.mjs +2 -1
  17. package/esm2022/lib/ec-components/widgets-ec/redsys-catch-ec/redsys-catch-ec.component.mjs +193 -0
  18. package/esm2022/lib/ec-services/analytics/google-analytics.service.mjs +4 -2
  19. package/esm2022/lib/ec-services/analytics/gtm.service.mjs +6 -3
  20. package/esm2022/lib/ec-services/analytics/metricool-pixel.service.mjs +4 -2
  21. package/esm2022/lib/ec-services/local-storage.service.mjs +21 -7
  22. package/esm2022/lib/ec-services/ngx-local-storage.service.mjs +24 -7
  23. package/esm2022/lib/interfaces/filter.mjs +1 -1
  24. package/esm2022/lib/interfaces/options.mjs +1 -1
  25. package/fesm2022/ng-easycommerce-v18.mjs +728 -221
  26. package/fesm2022/ng-easycommerce-v18.mjs.map +1 -1
  27. package/lib/constants/api.constants.service.d.ts +5 -1
  28. package/lib/ec-components/abstractions-components/menu-ec.component.d.ts +12 -0
  29. package/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.d.ts +3 -0
  30. package/lib/ec-components/auth-ec/password-reset-ec/password-reset-ec.component.d.ts +1 -0
  31. package/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.d.ts +2 -0
  32. package/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.d.ts +5 -0
  33. package/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.d.ts +38 -16
  34. package/lib/ec-components/filters-ec/filters-ec.component.d.ts +12 -4
  35. package/lib/ec-components/header-ec/header-ec.component.d.ts +5 -1
  36. package/lib/ec-components/product-ec/product-ec.component.d.ts +10 -1
  37. package/lib/ec-components/stores-ec/stores-ec.component.d.ts +2 -1
  38. package/lib/ec-components/widgets-ec/decidir-ec/decidir-ec.component.d.ts +6 -0
  39. package/lib/ec-components/widgets-ec/index.d.ts +1 -0
  40. package/lib/ec-components/widgets-ec/redsys-catch-ec/redsys-catch-ec.component.d.ts +47 -0
  41. package/lib/ec-services/local-storage.service.d.ts +4 -2
  42. package/lib/ec-services/ngx-local-storage.service.d.ts +4 -2
  43. package/lib/interfaces/filter.d.ts +1 -0
  44. package/lib/interfaces/options.d.ts +2 -0
  45. package/package.json +1 -1
package/README.md CHANGED
@@ -1,5 +1,31 @@
1
+ # Version 0.3.14-beta.7-8-9-10-11
2
+ - Ajuste en stores-ec platform id privado.
3
+ # Version 0.3.14-beta.6
4
+ - Se modifica archivos para ssr y que no usen document
5
+ # Version 0.3.14-beta.5
6
+ - Pruebas para errores en console al desplegar + merge rama isVisible
7
+ # Version 0.3.14-beta.3
8
+ - Pruebas para errores en console al desplegar
9
+ # Version 0.3.14-beta.2
10
+ - Pruebas para errores en console al desplegar
1
11
  # Version 0.3.14-beta.1
2
12
  - Pruebas para errores en console al desplegar
13
+ # Version 0.3.17-beta.2
14
+ - Ya estaba contemplado isVisible en el componente `menu-ec.component`, pero se adapto para que devuelva solo las categorias, atributos y secciones visibles y no tener que filtrarlos en el frontend.
15
+ # Version 0.3.17-beta.1
16
+ - Se agrego el isVisible de las categorias a su interfaz
17
+ # Version 0.3.15
18
+ - Refactor del flujo de pago con Mercado Pago (redirect/popup unificado).
19
+ - Compatibilidad completa con mobile y desktop: cierre automático de pestaña o redirección según navegador.
20
+ - Nuevo control de estado visual (idle / pagando / finalizando) para evitar repeticiones o confusión del usuario.
21
+ - Simplificación de `catch` (RedsysCatchEcComponent) y limpieza de código legacy.
22
+ # Version 0.3.13
23
+ - Se hace estable 0.3.12-beta.1.
24
+ - Se hace estable feature/pop-up-inicial.
25
+ - Se hace estable feature/add-product-block.
26
+ - Se hace estable feature/logged,showpassword,otros.
27
+ # Version 0.3.12-beta.1
28
+ - Se añade ruta por si falla MP redirija y de error.
3
29
  # Version 0.3.11
4
30
  - se añade funcionalidad para ocultar categorias en header footer y filtros
5
31
  # Version 0.3.10
@@ -40,18 +40,30 @@ export class ApiConstantsService {
40
40
  * URL del backend para realizar las peticiones
41
41
  */
42
42
  get API_URL() {
43
+ // 1️⃣ Runtime (browser)
43
44
  if (typeof window !== 'undefined') {
44
45
  const windowEnv = window.__env;
45
- if (windowEnv?.apiUrl)
46
- return windowEnv.apiUrl;
46
+ if (windowEnv?.apiBaseUrl)
47
+ return windowEnv.apiBaseUrl;
47
48
  }
49
+ // 2️⃣ Runtime (SSR / Node)
48
50
  if (isPlatformServer(this.platformId)) {
49
- return this.ssrApiUrl; // ⚡ URL inyectada desde server.ts
51
+ if (this.ssrApiUrl)
52
+ return this.ssrApiUrl;
50
53
  }
54
+ // 3️⃣ Fallback (environment de Angular)
51
55
  return this.environment.apiUrl ?? '';
52
56
  }
53
57
  /**
54
- * Retorna la url base
58
+ * URL base completa para shop-api con channel y locale
59
+ */
60
+ getShopApiBase() {
61
+ const channel = this.CHANNEL || 'undefined';
62
+ const locale = this.LOCALE || 'undefined';
63
+ return `${this.API_URL}/${this.SHOP_API_URL}${channel}/?locale=${locale}`;
64
+ }
65
+ /**
66
+ * Retorna la url base general (sin shop-api)
55
67
  */
56
68
  getUrlBase() {
57
69
  return this.API_URL;
@@ -81,4 +93,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
81
93
  type: Inject,
82
94
  args: ['API_URL']
83
95
  }] }] });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmNvbnN0YW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2NvbnN0YW50cy9hcGkuY29uc3RhbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBRXZEOztHQUVHO0FBSUgsTUFBTSxPQUFPLG1CQUFtQjtJQWFTO0lBWi9CLGFBQWEsR0FBd0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDakUsVUFBVSxHQUFxQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUV4RCxXQUFXLEdBQWdCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JELFVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFakMsUUFBUSxDQUFTO0lBQ2xCLE1BQU0sQ0FBUztJQUVOLFlBQVksR0FBVyxXQUFXLENBQUM7SUFDbkMsT0FBTyxHQUFXLE1BQU0sQ0FBQztJQUV6QyxZQUF1QyxTQUFpQjtRQUFqQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ3RELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUN4QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLE9BQU87UUFDaEIsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNsQyxNQUFNLFNBQVMsR0FBSSxNQUFjLENBQUMsS0FBSyxDQUFDO1lBQ3hDLElBQUksU0FBUyxFQUFFLE9BQU87Z0JBQUUsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDO1FBQ25ELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQVcsT0FBTyxDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxPQUFPO1FBQ2hCLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDbEMsTUFBTSxTQUFTLEdBQUksTUFBYyxDQUFDLEtBQUssQ0FBQztZQUN4QyxJQUFJLFNBQVMsRUFBRSxNQUFNO2dCQUFFLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUNqRCxDQUFDO1FBRUQsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN0QyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxrQ0FBa0M7UUFDM0QsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNJLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksVUFBVSxDQUFDLElBQVk7UUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQUVNLFNBQVMsQ0FBQyxNQUFjO1FBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFZ0IsVUFBVSxHQUFXLFFBQVEsQ0FBQztJQUM5QixXQUFXLEdBQVcsU0FBUyxDQUFDO3dHQXRFdEMsbUJBQW1CLGtCQWFWLFNBQVM7NEdBYmxCLG1CQUFtQixjQUZsQixNQUFNOzs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFjYyxNQUFNOzJCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIFBMQVRGT1JNX0lELCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgaXNQbGF0Zm9ybVNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEVOVklST05NRU5UX1RPS0VOIH0gZnJvbSAnLi4vcHJvdmlkZXJzJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL2VjLXNlcnZpY2VzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5cclxuLyoqXHJcbiAqIFNlcnZpY2lvIHF1ZSBwcm92ZWUgZGUgZGF0b3MgcmVsYWNpb25hZG9zIGNvbiBsYXMgcGV0aWNpb25lcyBhIGxhIEFQSVxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBpQ29uc3RhbnRzU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBfbG9jYWxTdG9yYWdlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlID0gaW5qZWN0KExvY2FsU3RvcmFnZVNlcnZpY2UpO1xyXG4gIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcclxuXHJcbiAgcHJpdmF0ZSBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQgPSBpbmplY3QoRU5WSVJPTk1FTlRfVE9LRU4pO1xyXG4gIHByaXZhdGUgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XHJcblxyXG4gIHByaXZhdGUgX2NoYW5uZWw6IHN0cmluZztcclxuICBwdWJsaWMgTE9DQUxFOiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyByZWFkb25seSBTSE9QX0FQSV9VUkw6IHN0cmluZyA9ICdzaG9wLWFwaS8nO1xyXG4gIHB1YmxpYyByZWFkb25seSBDTVNfVVJMOiBzdHJpbmcgPSAnY21zLyc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoJ0FQSV9VUkwnKSBwcml2YXRlIHNzckFwaVVybDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9jaGFubmVsID0gdGhpcy5lbnZpcm9ubWVudC5jaGFubmVsO1xyXG4gICAgdGhpcy5MT0NBTEUgPSB0aGlzLmVudmlyb25tZW50LmxvY2FsZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbmFsIGFjdHVhbCBkZWwgZnJvbnRlbmRcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IENIQU5ORUwoKTogc3RyaW5nIHtcclxuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICBjb25zdCB3aW5kb3dFbnYgPSAod2luZG93IGFzIGFueSkuX19lbnY7XHJcbiAgICAgIGlmICh3aW5kb3dFbnY/LmNoYW5uZWwpIHJldHVybiB3aW5kb3dFbnYuY2hhbm5lbDtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9jaGFubmVsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCBDSEFOTkVMKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2NoYW5uZWwgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVSTCBkZWwgYmFja2VuZCBwYXJhIHJlYWxpemFyIGxhcyBwZXRpY2lvbmVzXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBBUElfVVJMKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgY29uc3Qgd2luZG93RW52ID0gKHdpbmRvdyBhcyBhbnkpLl9fZW52O1xyXG4gICAgICBpZiAod2luZG93RW52Py5hcGlVcmwpIHJldHVybiB3aW5kb3dFbnYuYXBpVXJsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpc1BsYXRmb3JtU2VydmVyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc3NyQXBpVXJsOyAvLyDimqEgVVJMIGlueWVjdGFkYSBkZXNkZSBzZXJ2ZXIudHNcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5hcGlVcmwgPz8gJyc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRvcm5hIGxhIHVybCBiYXNlXHJcbiAgICovXHJcbiAgcHVibGljIGdldFVybEJhc2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLkFQSV9VUkw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYW1iaWEgZWwgY2FuYWwgYWN0dWFsXHJcbiAgICovXHJcbiAgcHVibGljIHNldENoYW5uZWwoY29kZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLkNIQU5ORUwgPSBjb2RlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldExvY2FsZShsb2NhbGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5MT0NBTEVfS0VZLCBsb2NhbGUpO1xyXG4gICAgdGhpcy5fdHJhbnNsYXRlLnVzZShsb2NhbGUuc3BsaXQoJ18nKVswXSk7XHJcbiAgICB0aGlzLkxPQ0FMRSA9IGxvY2FsZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgTE9DQUxFX0tFWTogc3RyaW5nID0gJ0xPQ0FMRSc7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBDSEFOTkVMX0tFWTogc3RyaW5nID0gJ0NIQU5ORUwnO1xyXG59XHJcbiJdfQ==
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmNvbnN0YW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2NvbnN0YW50cy9hcGkuY29uc3RhbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBRXZEOztHQUVHO0FBSUgsTUFBTSxPQUFPLG1CQUFtQjtJQWFTO0lBWi9CLGFBQWEsR0FBd0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDakUsVUFBVSxHQUFxQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUV4RCxXQUFXLEdBQWdCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JELFVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFakMsUUFBUSxDQUFTO0lBQ2xCLE1BQU0sQ0FBUztJQUVOLFlBQVksR0FBVyxXQUFXLENBQUM7SUFDbkMsT0FBTyxHQUFXLE1BQU0sQ0FBQztJQUV6QyxZQUF1QyxTQUFpQjtRQUFqQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ3RELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUN4QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLE9BQU87UUFDaEIsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNsQyxNQUFNLFNBQVMsR0FBSSxNQUFjLENBQUMsS0FBSyxDQUFDO1lBQ3hDLElBQUksU0FBUyxFQUFFLE9BQU87Z0JBQUUsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDO1FBQ25ELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQVcsT0FBTyxDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxPQUFPO1FBQ2hCLHdCQUF3QjtRQUN4QixJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sU0FBUyxHQUFJLE1BQWMsQ0FBQyxLQUFLLENBQUM7WUFDeEMsSUFBSSxTQUFTLEVBQUUsVUFBVTtnQkFBRSxPQUFPLFNBQVMsQ0FBQyxVQUFVLENBQUM7UUFDekQsQ0FBQztRQUVELDJCQUEyQjtRQUMzQixJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3RDLElBQUksSUFBSSxDQUFDLFNBQVM7Z0JBQUUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzVDLENBQUM7UUFFRCx3Q0FBd0M7UUFDeEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksY0FBYztRQUNuQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLFdBQVcsQ0FBQztRQUM1QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLFdBQVcsQ0FBQztRQUMxQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sWUFBWSxNQUFNLEVBQUUsQ0FBQztJQUM1RSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7T0FFRztJQUNJLFVBQVUsQ0FBQyxJQUFZO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxTQUFTLENBQUMsTUFBYztRQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRWdCLFVBQVUsR0FBVyxRQUFRLENBQUM7SUFDOUIsV0FBVyxHQUFXLFNBQVMsQ0FBQzt3R0FsRnRDLG1CQUFtQixrQkFhVixTQUFTOzRHQWJsQixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBY2MsTUFBTTsyQkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGlzUGxhdGZvcm1TZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBFTlZJUk9OTUVOVF9UT0tFTiB9IGZyb20gJy4uL3Byb3ZpZGVycyc7XHJcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiBTZXJ2aWNpbyBxdWUgcHJvdmVlIGRlIGRhdG9zIHJlbGFjaW9uYWRvcyBjb24gbGFzIHBldGljaW9uZXMgYSBsYSBBUElcclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwaUNvbnN0YW50c1NlcnZpY2Uge1xyXG4gIHByaXZhdGUgX2xvY2FsU3RvcmFnZTogTG9jYWxTdG9yYWdlU2VydmljZSA9IGluamVjdChMb2NhbFN0b3JhZ2VTZXJ2aWNlKTtcclxuICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XHJcblxyXG4gIHByaXZhdGUgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50ID0gaW5qZWN0KEVOVklST05NRU5UX1RPS0VOKTtcclxuICBwcml2YXRlIHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xyXG5cclxuICBwcml2YXRlIF9jaGFubmVsOiBzdHJpbmc7XHJcbiAgcHVibGljIExPQ0FMRTogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgU0hPUF9BUElfVVJMOiBzdHJpbmcgPSAnc2hvcC1hcGkvJztcclxuICBwdWJsaWMgcmVhZG9ubHkgQ01TX1VSTDogc3RyaW5nID0gJ2Ntcy8nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KCdBUElfVVJMJykgcHJpdmF0ZSBzc3JBcGlVcmw6IHN0cmluZykge1xyXG4gICAgdGhpcy5fY2hhbm5lbCA9IHRoaXMuZW52aXJvbm1lbnQuY2hhbm5lbDtcclxuICAgIHRoaXMuTE9DQUxFID0gdGhpcy5lbnZpcm9ubWVudC5sb2NhbGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYW5hbCBhY3R1YWwgZGVsIGZyb250ZW5kXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBDSEFOTkVMKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgY29uc3Qgd2luZG93RW52ID0gKHdpbmRvdyBhcyBhbnkpLl9fZW52O1xyXG4gICAgICBpZiAod2luZG93RW52Py5jaGFubmVsKSByZXR1cm4gd2luZG93RW52LmNoYW5uZWw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5fY2hhbm5lbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQgQ0hBTk5FTCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9jaGFubmVsID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVUkwgZGVsIGJhY2tlbmQgcGFyYSByZWFsaXphciBsYXMgcGV0aWNpb25lc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgQVBJX1VSTCgpOiBzdHJpbmcge1xyXG4gICAgLy8gMe+4j+KDoyBSdW50aW1lIChicm93c2VyKVxyXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIGNvbnN0IHdpbmRvd0VudiA9ICh3aW5kb3cgYXMgYW55KS5fX2VudjtcclxuICAgICAgaWYgKHdpbmRvd0Vudj8uYXBpQmFzZVVybCkgcmV0dXJuIHdpbmRvd0Vudi5hcGlCYXNlVXJsO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIDLvuI/ig6MgUnVudGltZSAoU1NSIC8gTm9kZSlcclxuICAgIGlmIChpc1BsYXRmb3JtU2VydmVyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgaWYgKHRoaXMuc3NyQXBpVXJsKSByZXR1cm4gdGhpcy5zc3JBcGlVcmw7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gM++4j+KDoyBGYWxsYmFjayAoZW52aXJvbm1lbnQgZGUgQW5ndWxhcilcclxuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmFwaVVybCA/PyAnJztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVSTCBiYXNlIGNvbXBsZXRhIHBhcmEgc2hvcC1hcGkgY29uIGNoYW5uZWwgeSBsb2NhbGVcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0U2hvcEFwaUJhc2UoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGNoYW5uZWwgPSB0aGlzLkNIQU5ORUwgfHwgJ3VuZGVmaW5lZCc7XHJcbiAgICBjb25zdCBsb2NhbGUgPSB0aGlzLkxPQ0FMRSB8fCAndW5kZWZpbmVkJztcclxuICAgIHJldHVybiBgJHt0aGlzLkFQSV9VUkx9LyR7dGhpcy5TSE9QX0FQSV9VUkx9JHtjaGFubmVsfS8/bG9jYWxlPSR7bG9jYWxlfWA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRvcm5hIGxhIHVybCBiYXNlIGdlbmVyYWwgKHNpbiBzaG9wLWFwaSlcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0VXJsQmFzZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuQVBJX1VSTDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbWJpYSBlbCBjYW5hbCBhY3R1YWxcclxuICAgKi9cclxuICBwdWJsaWMgc2V0Q2hhbm5lbChjb2RlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuQ0hBTk5FTCA9IGNvZGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0TG9jYWxlKGxvY2FsZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9sb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLkxPQ0FMRV9LRVksIGxvY2FsZSk7XHJcbiAgICB0aGlzLl90cmFuc2xhdGUudXNlKGxvY2FsZS5zcGxpdCgnXycpWzBdKTtcclxuICAgIHRoaXMuTE9DQUxFID0gbG9jYWxlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBMT0NBTEVfS0VZOiBzdHJpbmcgPSAnTE9DQUxFJztcclxuICBwcml2YXRlIHJlYWRvbmx5IENIQU5ORUxfS0VZOiBzdHJpbmcgPSAnQ0hBTk5FTCc7XHJcbn1cclxuIl19
@@ -91,7 +91,7 @@ export class CoreConstantsService {
91
91
  }
92
92
  }
93
93
  // Para SSR, intentar construir desde el document si está disponible
94
- if (this.document?.location) {
94
+ if (isPlatformBrowser(this.platformId) && this.document?.location) {
95
95
  return `${this.document.location.protocol}//${this.document.location.host}`;
96
96
  }
97
97
  // Intentar obtener desde environment
@@ -316,4 +316,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
316
316
  providedIn: 'root'
317
317
  }]
318
318
  }], ctorParameters: () => [] });
319
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5jb25zdGFudHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9jb25zdGFudHMvY29yZS5jb25zdGFudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFDakQ7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxvQkFBb0I7SUFFekIsV0FBVyxHQUFXLEVBQUUsQ0FBQztJQUNoQzs7T0FFRztJQUNLLFlBQVksR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUNsRDs7T0FFRztJQUNLLFVBQVUsR0FBUSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDN0M7O09BRUc7SUFDSyxRQUFRLEdBQWEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzdDOztPQUVHO0lBQ0ssV0FBVyxHQUFnQixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUM1RDs7T0FFRztJQUNLLE1BQU0sQ0FBUztJQUV2QjtRQUNDLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7UUFDckIsQ0FBQztJQUNGLENBQUM7SUFDRDs7T0FFRztJQUNJLGtCQUFrQixHQUFXLGFBQWEsQ0FBQztJQUNsRDs7T0FFRztJQUNJLGNBQWMsR0FBVyxXQUFXLENBQUM7SUFDNUM7O09BRUc7SUFD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TyxJQUFJLENBQUMseUJBQXlCLENBQUEsQ0FBQyxDQUFDO0lBRXZFOzs7Ozs7Ozs7Ozs7OztNQWNFO0lBQ00sK0JBQStCLEdBQW9DO1FBQzFFLElBQUksRUFBRSxPQUFPO1FBQ2IsSUFBSSxFQUFFLE9BQU87UUFDYixrQkFBa0IsRUFBRSxLQUFLO1FBQ3pCLFlBQVksRUFBRSxJQUFJO0tBQ2xCLENBQUE7SUFFRCxrQ0FBa0MsR0FBRyxDQUFDLEtBQXNDLEVBQUUsRUFBRTtRQUMvRSxJQUFJLENBQUMsK0JBQStCLEdBQUc7WUFDdEMsR0FBRyxJQUFJLENBQUMsK0JBQStCO1lBQ3ZDLEdBQUcsS0FBSztTQUNSLENBQUE7SUFDRixDQUFDLENBQUE7SUFFRCxrQ0FBa0MsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUE7SUFFeEUsVUFBVTtRQUNoQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxXQUFXLEdBQVksS0FBSyxDQUFDO3dHQTlVeEIsb0JBQW9COzRHQUFwQixvQkFBb0IsY0FGcEIsTUFBTTs7NEZBRU4sb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXBpQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4vYXBpLmNvbnN0YW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIsIERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ3VycmVuY3lDb25maWcsIGN1cnJlbmN5VHlwZSwgUGFyYW1zUHJvZHVjdHNXaXRoVW5pcXVlVmFyaWFudCwgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRU5WSVJPTk1FTlRfVE9LRU4gfSBmcm9tICcuLi9wcm92aWRlcnMnO1xyXG4vKipcclxuICogU2VydmljaW8gcXVlIHByb3ZlZSBsYXMgY29uc3RhbnRlcyBuZWNlc2FyaWFzIHF1ZSBzZSB1dGlsaXphbiBwb3IgdG9kYSBsYSBhcGxpY2FjacOzbi5cclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgQ29yZUNvbnN0YW50c1NlcnZpY2VcclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuXHRwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVDb25zdGFudHNTZXJ2aWNlIHtcclxuXHJcblx0cHVibGljIHNlYXJjaFZhbHVlOiBzdHJpbmcgPSAnJztcclxuXHQvKipcclxuXHQgKiBTZXJ2aWNpbyBxdWUgY29udGllbmUgbGFzIGNvbnN0YW50ZXMgdXNhZGFzIHBhcmEgbGEgQVBJXHJcblx0ICovXHJcblx0cHJpdmF0ZSBhcGlDb25zdGFudHMgPSBpbmplY3QoQXBpQ29uc3RhbnRzU2VydmljZSlcclxuXHQvKipcclxuXHQgKiBQcm92ZWUgZWwgSUQgZGUgbGEgcGxhdGFmb3JtYSBlbiBkb25kZSBzZSBlc3RhIGVqZWN1dGFuZG8gZWwgY29kaWdvLCBlc3RvIHNpcnZlIHBhcmEgcG9kZXIgZGlmZXJlbmNpYXIgc2kgZXMgZGUgdW4gc2Vydmlkb3IgbyB1biBuYXZlZ2Fkb3Igd2ViLlxyXG5cdCAqL1xyXG5cdHByaXZhdGUgcGxhdGZvcm1JZDogYW55ID0gaW5qZWN0KFBMQVRGT1JNX0lEKVxyXG5cdC8qKlxyXG5cdCAqIERvY3VtZW50IHRva2VuIHBhcmEgYWNjZXNvIFNTUi1jb21wYXRpYmxlIGFsIGRvY3VtZW50b1xyXG5cdCAqL1xyXG5cdHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKVxyXG5cdC8qKlxyXG5cdCAqIENvbnRpZW5lIGxvcyBkYXRvcyBwcm92aXN0byBwb3IgZWwgZnJvbnRlbmQgZW4gZWwgYXJjaGl2byBlbnZpcm9ubWVudC50c1xyXG5cdCAqL1xyXG5cdHByaXZhdGUgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50ID0gaW5qZWN0KEVOVklST05NRU5UX1RPS0VOKVxyXG5cdC8qKlxyXG5cdCAqIEd1YXJkYSBsYSB2YXJpYWJsZSB3aW5kb3cgZGVsIHdlYiBicm93c2VyLlxyXG5cdCAqL1xyXG5cdHByaXZhdGUgd2luZG93PzpXaW5kb3c7XHJcblxyXG5cdGNvbnN0cnVjdG9yKCkge1xyXG5cdFx0aWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuXHRcdFx0dGhpcy53aW5kb3cgPSB3aW5kb3dcclxuXHRcdH1cclxuXHR9XHJcblx0LyoqXHJcblx0ICogUGF0aCB1c2FkbyBlbiBsYXMgY29sZWNjaW9uZXMgZGUgcHJvZHVjdG9zLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBQUk9EVUNUX0xJU1RfUk9VVEU6IHN0cmluZyA9ICdjb2xsZWN0aW9uLyc7XHJcblx0LyoqXHJcblx0ICogUGF0aCB1c2FkbyBwYXJhIGFjY2VkZXIgYSBsYXMgc2VjY2lvbmVzLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBTRUNUSU9OU19ST1VURTogc3RyaW5nID0gJ3NlY3Rpb25zLyc7XHJcblx0LyoqXHJcblx0ICogUGF0aCBxdWUgYWxvamEgbGEgY2FycGV0YSBkZSBsb3MgYXNzZXRzLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyByZWFkb25seSBBU1NFVFNfVVJMOiBzdHJpbmcgPSB0aGlzLmFwaUNvbnN0YW50cy5BUElfVVJMO1xyXG5cdC8qKlxyXG5cdCAqIFJldG9ybmEgbGEgdXJsIGRvbmRlIHNlIGd1YXJkYSBsYXMgaW1hZ2VuZXMuXHJcblx0ICogQHBhcmFtIHBvc3RNZWRpYSBcclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRwdWJsaWMgbWVkaWFVcmwgPSAocG9zdE1lZGlhPzogc3RyaW5nKSA9PiB0aGlzLkFTU0VUU19VUkwgKyAodGhpcy5BU1NFVFNfVVJMID09IHRoaXMuYXBpQ29uc3RhbnRzLkFQSV9VUkwgPyAnbWVkaWEvJyA6ICcnKSArIChwb3N0TWVkaWEgPyBwb3N0TWVkaWEgOiBcImltYWdlL1wiKTtcclxuXHQvKipcclxuXHQgKiBSZXRvcm5hIGxhIHVybCBkb25kZSBzZSBndWFyZGEgbGFzIGltYWdlbmVzLlxyXG5cdCAqIEBwYXJhbSBwb3N0TWVkaWEgXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0cHVibGljIG1lZGlhSW1hZ2VVcmwgPSAocG9zdE1lZGlhPzogc3RyaW5nKSA9PiB0aGlzLkFTU0VUU19VUkwgKyAodGhpcy5BU1NFVFNfVVJMID09IHRoaXMuYXBpQ29uc3RhbnRzLkFQSV9VUkwgPyAnbWVkaWEvaW1hZ2UvJyA6ICcnKSArIChwb3N0TWVkaWEgPyBwb3N0TWVkaWEgOiBcImltYWdlL1wiKTtcclxuXHQvKipcclxuXHQgKiBSZXRvcm5hIGxhIHVybCBkZWwgc2l0aW8uXHJcblx0ICogQHBhcmFtIHBvc3RNZWRpYSBcclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRwdWJsaWMgdXJsID0gKCkgPT4gdGhpcy5hcGlDb25zdGFudHMuQVBJX1VSTC5yZXBsYWNlKC9cXC8kLywgJycpOyAvLyByZW1vdmUgbGFzdCBzbGFzaFx0XHJcblxyXG5cdC8qKlxyXG5cdCAqIFVSTCBkZWwgc2l0aW8gZnJvbnRlbmQgLSBDb21wYXRpYmxlIGNvbiBBbmd1bGFyIFNTUlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBnZXQgRlJPTlRFTkRfVVJMKCk6IHN0cmluZyB7XHJcblx0XHQvLyBWZXJpZmljYXIgc2kgZXN0YW1vcyBlbiBlbCBuYXZlZ2Fkb3JcclxuXHRcdGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcblx0XHRcdC8vIFByaW1lcm8gaW50ZW50YSBsZWVyIGRlIHdpbmRvdy5fX2VudiAoY29uZmlndXJhZG8gcG9yIERvY2tlci9DSSlcclxuXHRcdFx0Y29uc3Qgd2luZG93RW52ID0gKHRoaXMud2luZG93IGFzIGFueSk/Ll9fZW52O1xyXG5cdFx0XHRpZiAod2luZG93RW52Py5mcm9udGVuZFVybCkge1xyXG5cdFx0XHRcdC8vIExvZyBwYXJhIGRlYnVnZ2luZyBlbiBkZXNhcnJvbGxvXHJcblx0XHRcdFx0aWYgKCF3aW5kb3dFbnYuZnJvbnRlbmRVcmwuc3RhcnRzV2l0aCgnaHR0cCcpKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLndhcm4oJ1tGUk9OVEVORF9VUkxdIEludmFsaWQgZnJvbnRlbmRVcmwgZm9ybWF0OicsIHdpbmRvd0Vudi5mcm9udGVuZFVybCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybiB3aW5kb3dFbnYuZnJvbnRlbmRVcmw7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC8vIFNpIG5vIGhheSBjb25maWd1cmFjacOzbiBlc3BlY8OtZmljYSwgY29uc3RydWlyIGRlc2RlIHdpbmRvdy5sb2NhdGlvblxyXG5cdFx0XHRpZiAodGhpcy53aW5kb3c/LmxvY2F0aW9uKSB7XHJcblx0XHRcdFx0Y29uc3QgdXJsID0gYCR7dGhpcy53aW5kb3cubG9jYXRpb24ucHJvdG9jb2x9Ly8ke3RoaXMud2luZG93LmxvY2F0aW9uLmhvc3R9YDtcclxuXHRcdFx0XHQvLyBWZXJpZmljYXIgcXVlIG5vIHNlYSBsb2NhbGhvc3QgbyAxMjcuMC4wLjEgZW4gcHJvZHVjY2nDs25cclxuXHRcdFx0XHRpZiAodXJsLmluY2x1ZGVzKCcxMjcuMC4wLjEnKSB8fCB1cmwuaW5jbHVkZXMoJ2xvY2FsaG9zdCcpKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLndhcm4oJ1tGUk9OVEVORF9VUkxdIFVzaW5nIGxvY2FsaG9zdCBVUkwgaW4gcHJvZHVjdGlvbiwgY29uc2lkZXIgc2V0dGluZyB3aW5kb3cuX19lbnYuZnJvbnRlbmRVcmwnKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmV0dXJuIHVybDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQvLyBQYXJhIFNTUiwgaW50ZW50YXIgY29uc3RydWlyIGRlc2RlIGVsIGRvY3VtZW50IHNpIGVzdMOhIGRpc3BvbmlibGVcclxuXHRcdGlmICh0aGlzLmRvY3VtZW50Py5sb2NhdGlvbikge1xyXG5cdFx0XHRyZXR1cm4gYCR7dGhpcy5kb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbH0vLyR7dGhpcy5kb2N1bWVudC5sb2NhdGlvbi5ob3N0fWA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC8vIEludGVudGFyIG9idGVuZXIgZGVzZGUgZW52aXJvbm1lbnRcclxuXHRcdGlmICh0aGlzLmVudmlyb25tZW50LmZyb250ZW5kVXJsKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLmVudmlyb25tZW50LmZyb250ZW5kVXJsO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQvLyDDmmx0aW1vIGZhbGxiYWNrIC0gdXNhciBsYSBVUkwgZGVsIEFQSSBzaSBlc3TDoSBjb25maWd1cmFkYSB5IGVzIGFic29sdXRhXHJcblx0XHRjb25zdCBhcGlVcmwgPSB0aGlzLmFwaUNvbnN0YW50cy5BUElfVVJMO1xyXG5cdFx0aWYgKGFwaVVybCAmJiAoYXBpVXJsLnN0YXJ0c1dpdGgoJ2h0dHA6Ly8nKSB8fCBhcGlVcmwuc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSkpIHtcclxuXHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRjb25zdCB1cmwgPSBuZXcgVVJMKGFwaVVybCk7XHJcblx0XHRcdFx0cmV0dXJuIGAke3VybC5wcm90b2NvbH0vLyR7dXJsLmhvc3R9YDtcclxuXHRcdFx0fSBjYXRjaCAoZSkge1xyXG5cdFx0XHRcdGNvbnNvbGUud2FybignW0ZST05URU5EX1VSTF0gQ291bGQgbm90IHBhcnNlIEFQSSBVUkwgYXMgZmFsbGJhY2s6JywgYXBpVXJsKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQvLyBGYWxsYmFjayBmaW5hbCAtIHJldG9ybmFyIFVSTCB2YWPDrWFcclxuXHRcdGNvbnNvbGUud2FybignW0ZST05URU5EX1VSTF0gTm8gdmFsaWQgZnJvbnRlbmQgVVJMIGZvdW5kLCB0aGlzIG1heSBjYXVzZSBpc3N1ZXMgd2l0aCBtZXRhIHRhZ3MnKTtcclxuXHRcdHJldHVybiAnJztcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJldG9ybmEgbGEgVVJMIGNvbXBsZXRhIGRlbCBmcm9udGVuZCBjb24gdW5hIHJ1dGEgb3BjaW9uYWxcclxuXHQgKiBAcGFyYW0gcGF0aCAtIFJ1dGEgb3BjaW9uYWwgcGFyYSBhZ3JlZ2FyIGEgbGEgVVJMIGJhc2VcclxuXHQgKiBAcmV0dXJucyB7c3RyaW5nfSBVUkwgY29tcGxldGEgZGVsIGZyb250ZW5kXHJcblx0ICovXHJcblx0cHVibGljIGdldEZyb250ZW5kVXJsID0gKHBhdGg/OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG5cdFx0Y29uc3QgYmFzZVVybCA9IHRoaXMuRlJPTlRFTkRfVVJMO1xyXG5cdFx0aWYgKCFwYXRoKSB7XHJcblx0XHRcdHJldHVybiBiYXNlVXJsO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQvLyBBc2VndXJhciBxdWUgbGEgcnV0YSBjb21pZW5jZSBjb24gJy8nIHkgbm8gdGVuZ2EgZG9ibGUgc2xhc2hcclxuXHRcdGNvbnN0IGNsZWFuUGF0aCA9IHBhdGguc3RhcnRzV2l0aCgnLycpID8gcGF0aCA6IGAvJHtwYXRofWA7XHJcblx0XHRjb25zdCBjbGVhbkJhc2VVcmwgPSBiYXNlVXJsLmVuZHNXaXRoKCcvJykgPyBiYXNlVXJsLnNsaWNlKDAsIC0xKSA6IGJhc2VVcmw7XHJcblx0XHRcclxuXHRcdHJldHVybiBgJHtjbGVhbkJhc2VVcmx9JHtjbGVhblBhdGh9YDtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJldG9ybmEgbGEgVVJMIGFic29sdXRhIGRlIHVuYSBpbWFnZW4gcGFyYSBtZXRhIHRhZ3MgKGNvbXBhdGlibGUgY29uIFNTUilcclxuXHQgKiBAcGFyYW0gcG9zdE1lZGlhIC0gUnV0YSBkZSBsYSBpbWFnZW5cclxuXHQgKiBAcmV0dXJucyB7c3RyaW5nfSBVUkwgYWJzb2x1dGEgZGUgbGEgaW1hZ2VuXHJcblx0ICovXHJcblx0cHVibGljIGdldEFic29sdXRlSW1hZ2VVcmwgPSAocG9zdE1lZGlhPzogc3RyaW5nKTogc3RyaW5nID0+IHtcclxuXHRcdC8vIFNpIGxhIFVSTCB5YSBlcyBhYnNvbHV0YSwgZGV2b2x2ZXJsYSB0YWwgY29tbyBlc3TDoVxyXG5cdFx0aWYgKHBvc3RNZWRpYSAmJiAocG9zdE1lZGlhLnN0YXJ0c1dpdGgoJ2h0dHA6Ly8nKSB8fCBwb3N0TWVkaWEuc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSkpIHtcclxuXHRcdFx0cmV0dXJuIHBvc3RNZWRpYTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBDb25zdHJ1aXIgbGEgVVJMIGRlIGxhIGltYWdlbiB1c2FuZG8gbGEgVVJMIGRlbCBBUElcclxuXHRcdGNvbnN0IGltYWdlVXJsID0gdGhpcy5tZWRpYUltYWdlVXJsKHBvc3RNZWRpYSk7XHJcblx0XHRcclxuXHRcdC8vIFNpIGxhIFVSTCBkZSBsYSBpbWFnZW4geWEgZXMgYWJzb2x1dGEsIGRldm9sdmVybGFcclxuXHRcdGlmIChpbWFnZVVybC5zdGFydHNXaXRoKCdodHRwOi8vJykgfHwgaW1hZ2VVcmwuc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSkge1xyXG5cdFx0XHRyZXR1cm4gaW1hZ2VVcmw7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC8vIFNpIGVzIHVuYSBVUkwgcmVsYXRpdmEsIGNvbnZlcnRpcmxhIGEgYWJzb2x1dGEgdXNhbmRvIGxhIFVSTCBiYXNlIGRlbCBBUElcclxuXHRcdGNvbnN0IGFwaUJhc2VVcmwgPSB0aGlzLmFwaUNvbnN0YW50cy5BUElfVVJMO1xyXG5cdFx0aWYgKGFwaUJhc2VVcmwuc3RhcnRzV2l0aCgnaHR0cDovLycpIHx8IGFwaUJhc2VVcmwuc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSkge1xyXG5cdFx0XHQvLyBBUElfVVJMIHlhIGVzIGFic29sdXRhXHJcblx0XHRcdHJldHVybiBpbWFnZVVybDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ly8gU2kgQVBJX1VSTCBlcyByZWxhdGl2YSwgdXNhciBsYSBVUkwgZGVsIGZyb250ZW5kIGNvbW8gYmFzZVxyXG5cdFx0Y29uc3QgZnJvbnRlbmRVcmwgPSB0aGlzLkZST05URU5EX1VSTDtcclxuXHRcdGlmICghZnJvbnRlbmRVcmwpIHtcclxuXHRcdFx0cmV0dXJuIGltYWdlVXJsOyAvLyBGYWxsYmFjayBzaSBubyBwb2RlbW9zIGRldGVybWluYXIgbGEgVVJMIGRlbCBmcm9udGVuZFxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQvLyBDb25zdHJ1aXIgVVJMIGFic29sdXRhXHJcblx0XHRjb25zdCBjbGVhbkFwaVVybCA9IGFwaUJhc2VVcmwuc3RhcnRzV2l0aCgnLycpID8gYXBpQmFzZVVybC5zdWJzdHJpbmcoMSkgOiBhcGlCYXNlVXJsO1xyXG5cdFx0Y29uc3QgY2xlYW5Gcm9udGVuZFVybCA9IGZyb250ZW5kVXJsLmVuZHNXaXRoKCcvJykgPyBmcm9udGVuZFVybC5zbGljZSgwLCAtMSkgOiBmcm9udGVuZFVybDtcclxuXHRcdGNvbnN0IGNsZWFuSW1hZ2VVcmwgPSBpbWFnZVVybC5zdGFydHNXaXRoKCcvJykgPyBpbWFnZVVybC5zdWJzdHJpbmcoMSkgOiBpbWFnZVVybDtcclxuXHRcdFxyXG5cdFx0cmV0dXJuIGAke2NsZWFuRnJvbnRlbmRVcmx9LyR7Y2xlYW5BcGlVcmx9JHtjbGVhbkltYWdlVXJsfWA7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBSZXRvcm5hIGxhIHVybCBkZSBsYXMgaW1hZ2VuZXMgZGUgbG9zIGJhbm5lcnNcclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRwdWJsaWMgbWVkaWFCYW5uZXJVcmwgPSAoKSA9PiB0aGlzLkFTU0VUU19VUkwgKyAodGhpcy5BU1NFVFNfVVJMID09IHRoaXMuYXBpQ29uc3RhbnRzLkFQSV9VUkwgPyAnbWVkaWEvJyA6ICcnKSArIFwiYmFubmVyLWltYWdlL1wiO1xyXG5cdFxyXG5cdG1lZGlhU3RvcmVVcmwgPSAoKSA9PiB0aGlzLkFTU0VUU19VUkwgKyAodGhpcy5BU1NFVFNfVVJMID09IHRoaXMuYXBpQ29uc3RhbnRzLkFQSV9VUkwgPyAnbWVkaWEvJyA6ICcnKSArIFwic3RvcmUtaW1hZ2UvXCI7XHJcblx0XHJcblx0LyoqXHJcblx0ICogUmV0b3JuYSBgdHJ1ZWAgc2kgbGEgdmlzdGEgZXMgbW9iaWxlLCBgZmFsc2VgIGNhc28gY29udHJhcmlvLlxyXG5cdCAqIEByZXR1cm5zIHtib29sZWFufVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBtb2JpbGVTY3JlZW4gPSAoKTogYm9vbGVhbiA9PiB0aGlzLndpbmRvdyAmJiB0aGlzLndpbmRvdz8uaW5uZXJXaWR0aCA8IDc1MCB8fCBmYWxzZTtcclxuXHQvKipcclxuXHQgKiBDb250aWVuZSBsb3MgdmFsb3JlcyBwYXJhIGxhIG1vbmVkYSBhY3R1YWxcclxuXHQgKi9cclxuXHRwdWJsaWMgY3VycmVuY3k6IEN1cnJlbmN5Q29uZmlnID0ge1xyXG5cdFx0Y29kZTogJ0FSRycsXHJcblx0XHRzeW1ib2w6ICckJyxcclxuXHRcdHBvc2l0aW9uOiAnTGVmdCcsXHJcblx0XHR3aXRob3V0RGVjaW1hbDogZmFsc2VcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBBcnJlZ2xvIGRlIHZhbG9yZXMgdXNhZG9zIHBhcmEgZWwgcGlwZSBjdXJyZW5jeVByaWNlXHJcblx0ICovXHJcblx0cHVibGljIGN1cnJlbmN5VHlwZUNvbmZpZzogQ3VycmVuY3lDb25maWdbXSA9IFtcclxuXHRcdHtcclxuXHRcdFx0Y29kZTogJ0VVUicsXHJcblx0XHRcdHN5bWJvbDogJ+KCrCcsXHJcblx0XHRcdHBvc2l0aW9uOiAnUmlnaHQnLFxyXG5cdFx0XHR3aXRob3V0RGVjaW1hbDogZmFsc2VcclxuXHJcblx0XHR9LFxyXG5cdFx0e1xyXG5cdFx0XHRjb2RlOiAnQVJHJyxcclxuXHRcdFx0c3ltYm9sOiAnJCcsXHJcblx0XHRcdHBvc2l0aW9uOiAnTGVmdCcsXHJcblx0XHRcdHdpdGhvdXREZWNpbWFsOiBmYWxzZVxyXG5cdFx0fSxcclxuXHRcdHtcclxuXHRcdFx0Y29kZTogJ0FSUycsXHJcblx0XHRcdHN5bWJvbDogJyQnLFxyXG5cdFx0XHRwb3NpdGlvbjogJ0xlZnQnLFxyXG5cdFx0XHR3aXRob3V0RGVjaW1hbDogZmFsc2VcclxuXHRcdH0sXHJcblx0XHR7XHJcblx0XHRcdGNvZGU6ICdVU0QnLFxyXG5cdFx0XHRzeW1ib2w6ICckJyxcclxuXHRcdFx0cG9zaXRpb246ICdMZWZ0JyxcclxuXHRcdFx0d2l0aG91dERlY2ltYWw6IGZhbHNlXHJcblx0XHR9LFxyXG5cdFx0e1xyXG5cdFx0XHRjb2RlOiAnUFlHJyxcclxuXHRcdFx0c3ltYm9sOiAnR3MuJyxcclxuXHRcdFx0cG9zaXRpb246ICdMZWZ0JyxcclxuXHRcdFx0d2l0aG91dERlY2ltYWw6IGZhbHNlXHJcblx0XHR9LFxyXG5cdFx0e1xyXG5cdFx0XHRjb2RlOiAnUEVOJyxcclxuXHRcdFx0c3ltYm9sOiAnUy8nLFxyXG5cdFx0XHRwb3NpdGlvbjogJ0xlZnQnLFxyXG5cdFx0XHR3aXRob3V0RGVjaW1hbDogZmFsc2VcclxuXHRcdH0sXHJcblx0XHR7XHJcblx0XHRcdGNvZGU6ICdTRUsnLFxyXG5cdFx0XHRzeW1ib2w6ICdTRUsnLFxyXG5cdFx0XHRwb3NpdGlvbjogJ1JpZ2h0JyxcclxuXHRcdFx0d2l0aG91dERlY2ltYWw6IHRydWVcclxuXHRcdH0sXHJcblx0XVxyXG5cdC8qKlxyXG5cdCAqIENhbWJpYSBsYSBjb25maWd1cmFjacOzbiBkZSBsYSBtb25lZGEuXHJcblx0ICogQHBhcmFtIGN1cnJlbmN5VHlwZUNvbmZpZyBBcnJlZ2xvIGNvbiBsYXMgZGlzdGludGFzIG1vbmVkYXMuXHJcblx0ICovXHJcblx0cHVibGljIHNldEN1cnJlbmN5VHlwZUNvbmZpZyhjdXJyZW5jeVR5cGVDb25maWc6IEN1cnJlbmN5Q29uZmlnW10pIHtcclxuXHRcdHRoaXMuY3VycmVuY3lUeXBlQ29uZmlnID0gY3VycmVuY3lUeXBlQ29uZmlnO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQHBhcmFtIGN1cnJlbmN5VHlwZUZpbmQgRGVmaW5pciBlbCBjb2RlIGRlbCB0aXBvIGRlIG1vbmVkYSBxdWUgc2UgcXVpZXJhIHV0aWxpemFyLlxyXG5cdCAqIFNpIGVsIHRpcG8gZXMgQ1VTVE9NIHNlIHRvbWFuIGxvcyB2YWxvcmVzIGRlbCBzZWd1bmRvIHBhcmFtZXRybyBkb25kZSBzZSBwdWVkZSBkZWZpbmlyIGxhIHNpbWJvbG9nw61hIHkgcG9zZXNpw7NuIHF1ZSBzZSBxdWllcmEuXHJcblx0ICogQHBhcmFtIGN1c3RvbVR5cGUgRm9ybWF0byBkZWwgcGFyw6FtZXRybyBlamVtcGxvIHsgY29kZTogJ0FSRycsIHN5bWJvbDogJyQnLCBwb3NpdGlvbjogJ0wnICwgd2l0aG91dERlY2ltYWxzOiBmYWxzZSB9ICxcclxuXHQgKiB0b2RhcyBsYXMga2V5IHNvbiBvcGNpb25hbGVzIHkgcG9yIGRlZmVjdG8gc2UgdG9tYW4gbG9zIHZhbG9yZXMgZGVsIGVqZW1wbG8uXHJcblx0ICogQHJldHVybnMgc2UgcmV0b3JuYSBsYSBjb25maWd1cmFjacOzbiBxdWUgc2Ugc2V0ZW8gYSBsYSBwcm9waWVkYWQgY3VycmVuY3kgZGVsIHNlcnZpY2lvLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBzZXRDdXJyZW5jeShjdXJyZW5jeVR5cGVGaW5kOiBjdXJyZW5jeVR5cGUsIGN1c3RvbVR5cGU/OiBDdXJyZW5jeUNvbmZpZyk6IEN1cnJlbmN5Q29uZmlnIHtcclxuXHRcdHRoaXMuY3VycmVuY3kgPSB0aGlzLmN1cnJlbmN5VHlwZUNvbmZpZy5maW5kKChjdDogQ3VycmVuY3lDb25maWcpID0+IGN0LmNvZGUgPT0gY3VycmVuY3lUeXBlRmluZC50b1VwcGVyQ2FzZSgpKSB8fCB0aGlzLmN1cnJlbmN5XHJcblx0XHRjdXN0b21UeXBlICYmICh0aGlzLmN1cnJlbmN5ID0geyAuLi50aGlzLmN1cnJlbmN5LCAuLi5jdXN0b21UeXBlIH0pXHJcblx0XHRyZXR1cm4gdGhpcy5jdXJyZW5jeTtcclxuXHR9O1xyXG5cclxuXHJcblx0cHVibGljIG1vZGlmeUNoYW5uZWxDb25maWcoY2hhbm5lbENvbmZpZzogYW55KSB7XHJcblx0XHRpZiAoY2hhbm5lbENvbmZpZy5jaGFubmVsIHx8IGNoYW5uZWxDb25maWcuY29kZSlcclxuXHRcdFx0dGhpcy5hcGlDb25zdGFudHMuc2V0Q2hhbm5lbChjaGFubmVsQ29uZmlnLmNoYW5uZWwgfHwgY2hhbm5lbENvbmZpZy5jb2RlKVxyXG5cclxuXHRcdGlmIChjaGFubmVsQ29uZmlnLmxvY2FsZSB8fCBjaGFubmVsQ29uZmlnLmxvY2FsZXMuY29kZSlcclxuXHRcdFx0dGhpcy5hcGlDb25zdGFudHMuc2V0TG9jYWxlKGNoYW5uZWxDb25maWcubG9jYWxlIHx8IGNoYW5uZWxDb25maWcubG9jYWxlcy5jb2RlKVxyXG5cclxuXHRcdGlmIChjaGFubmVsQ29uZmlnLmN1cnJlbmN5IHx8IGNoYW5uZWxDb25maWcuYmFzZUN1cnJlbmN5KVxyXG5cdFx0XHR0aGlzLnNldEN1cnJlbmN5KGNoYW5uZWxDb25maWcuY3VycmVuY3kgfHwgY2hhbm5lbENvbmZpZy5iYXNlQ3VycmVuY3kpXHJcblxyXG5cdFx0cmV0dXJuIGNoYW5uZWxDb25maWc7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQqIEBkZXNjcmlwdGlvbiBzZSB1dGlsaXphIHBhcmEgY29uZmlndXJhciBxdWUgZmlsdHJvcyBkZWwgdGlwbyBgU29ydEZpbHRlcmAgc2UgcXVpZXJlIG1vc3RyYXIgZW4gbGEgdmlzdGEuXHJcblx0KiBTZSB1c2FuIGxvcyBjb2RpZ28gZGUgbG9zIGZpbHRyb3MgcGFyYSBpbmRpY2FyIGN1YWxlcyBzZSBkZWJlbiBtb3N0cmFyLlxyXG5cdCovXHJcblx0cHJpdmF0ZSBzb3J0RmlsdGVyczogc3RyaW5nW10gPSBbJ3ByaWNlJywgJ29yZGVyLWFscGgnLCAncmVjZW50J11cclxuXHJcblx0LyoqXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gZmlsdGVyc0NvZGUgYXJyZWdsbyBkZSBzdHJpbmdzIGNvbiBsb3MgY29kaWdvcyBkZSBsb3MgZmlsdHJvcy5cclxuXHQgKiBTaSBzZSBsZSBwYXNhIGVsIHBhcmFtZXRybyAqKmFsbCoqIGVzdGUgbW9zdHJhcmEgdG9kb3MuXHJcblx0ICogQGV4YW1wbGUgcHJpY2UgfCBvcmRlci1hbHBoIHwgcmVjZW50IHwgdXBkYXRlIHwgYWxsXHJcblx0ICogQHJldHVybnNcclxuXHQgKi9cclxuXHRzZXRTb3J0RmlsdGVycyA9IChmaWx0ZXJzQ29kZTogc3RyaW5nW10gPSBbJ2FsbCddKSA9PiB0aGlzLnNvcnRGaWx0ZXJzID0gZmlsdGVyc0NvZGU7XHJcblxyXG5cdGdldFNvcnRGaWx0ZXJzID0gKCkgPT4gdGhpcy5zb3J0RmlsdGVycztcclxuXHJcblx0Ly8gQUJPVVQgUFJPRFVDVFMgXHJcblx0cHJpdmF0ZSBwcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50OiBib29sZWFuID0gZmFsc2U7XHJcblx0c2V0UHJvZHVjdFdpdGhVbmlxdWVWYXJpYW50KHZhbHVlOiBib29sZWFuKSB7IHRoaXMucHJvZHVjdHNXaXRoVW5pcXVlVmFyaWFudCA9IHZhbHVlOyB9XHJcblx0Z2V0UHJvZHVjdFdpdGhVbmlxdWVWYXJpYW50KCkgeyByZXR1cm4gdGhpcy5wcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50IH1cclxuXHJcblx0LyoqXHJcblx0KiBAZGVzY3JpcHRpb24gZXN0YSB2YXJpYWJsZSBzZSB1dGlsaXphIHBhcmEgY29uZmlndXJhciBsb3MgcGFyYW1ldHJvcyBjdWFuZG8gc2UgZGVzZWEgbW9zdHJhclxyXG5cdCogdmFyaWFudGVzIGVsIGxpc3RhZG8gZGUgcHJvZHVjdG9zLlxyXG5cdCogQHBhcmFtIHtzdHJpbmd9dHlwZSB0aXBvIGRlIG9wdGlvbnNcclxuXHQqIEBwYXJhbSB7c3RyaW5nfWNvZGUgY29kaWdvIGRlIG9wdGlvbnNcclxuXHQqIEBwYXJhbSB7Ym9vbGVhbn1kZWZhdWx0Rmlyc3RPcHRpb24gYHRydWVgIHRvbWEgZWwgcHJpbWVyIG9wdGlvbiBkZWwgcHJvZHVjdG8gZW4gZ2VuZXJhbFxyXG5cdCogQHBhcmFtIHtib29sZWFufWNoZWNrSWZTdG9jayBgdHJ1ZWAgc2UgcmVhbGl6YSB1biBjaGVxdWVvIGRlIHNpIGxhIHZhcmlhbnRlIHRpZW5lIHN0b2NrIHBhcmEgbW9zdHJhcmxhXHJcblx0KiBAZXhhbXBsZSAgYGBgamF2YXNjcmlwdFxyXG5cdCoge1xyXG5cdCAgIHR5cGU6ICdjb2xvcicsXHJcblx0ICAgY29kZTogJ2NvbG9yJyxcclxuXHQgICBkZWZhdWx0Rmlyc3RPcHRpb246IGZhbHNlICxcclxuXHQgICBjaGVja0lmU3RvY2s6dHJ1ZVxyXG5cdCAgIH0gYGBgXHJcblx0Ki9cclxuXHRwcml2YXRlIHBhcmFtc1Byb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQ6IFBhcmFtc1Byb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQgPSB7XHJcblx0XHR0eXBlOiAnY29sb3InLFxyXG5cdFx0Y29kZTogJ2NvbG9yJyxcclxuXHRcdGRlZmF1bHRGaXJzdE9wdGlvbjogZmFsc2UsXHJcblx0XHRjaGVja0lmU3RvY2s6IHRydWVcclxuXHR9XHJcblxyXG5cdHNldFBhcmFtc1Byb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQgPSAodmFsdWU6IFBhcmFtc1Byb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQpID0+IHtcclxuXHRcdHRoaXMucGFyYW1zUHJvZHVjdHNXaXRoVW5pcXVlVmFyaWFudCA9IHtcclxuXHRcdFx0Li4udGhpcy5wYXJhbXNQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50LFxyXG5cdFx0XHQuLi52YWx1ZVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Z2V0UGFyYW1zUHJvZHVjdHNXaXRoVW5pcXVlVmFyaWFudCA9ICgpID0+IHRoaXMucGFyYW1zUHJvZHVjdHNXaXRoVW5pcXVlVmFyaWFudFxyXG5cdFxyXG5cdHB1YmxpYyBnZXRDaGFubmVsKCl7XHJcblx0XHRyZXR1cm4gdGhpcy5hcGlDb25zdGFudHMuQ0hBTk5FTDtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBmb3JtX3NlbmRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG59XHJcbiJdfQ==
319
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5jb25zdGFudHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9jb25zdGFudHMvY29yZS5jb25zdGFudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFDakQ7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxvQkFBb0I7SUFFekIsV0FBVyxHQUFXLEVBQUUsQ0FBQztJQUNoQzs7T0FFRztJQUNLLFlBQVksR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUNsRDs7T0FFRztJQUNLLFVBQVUsR0FBUSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDN0M7O09BRUc7SUFDSyxRQUFRLEdBQWEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzdDOztPQUVHO0lBQ0ssV0FBVyxHQUFnQixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUM1RDs7T0FFRztJQUNLLE1BQU0sQ0FBUztJQUV2QjtRQUNDLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7UUFDckIsQ0FBQztJQUNGLENBQUM7SUFDRDs7T0FFRztJQUNJLGtCQUFrQixHQUFXLGFBQWEsQ0FBQztJQUNsRDs7T0FFRztJQUNJLGNBQWMsR0FBVyxXQUFXLENBQUM7SUFDNUM7O09BRUc7SUFDYSxVQUFVLEdBQVcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7SUFDL0Q7Ozs7T0FJRztJQUNJLFFBQVEsR0FBRyxDQUFDLFNBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hLOzs7O09BSUc7SUFDSSxhQUFhLEdBQUcsQ0FBQyxTQUFrQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzSzs7OztPQUlHO0lBQ0ksR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxxQkFBcUI7SUFFdEY7O09BRUc7SUFDSCxJQUFXLFlBQVk7UUFDdEIsdUNBQXVDO1FBQ3ZDLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDeEMsbUVBQW1FO1lBQ25FLE1BQU0sU0FBUyxHQUFJLElBQUksQ0FBQyxNQUFjLEVBQUUsS0FBSyxDQUFDO1lBQzlDLElBQUksU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFDO2dCQUM1QixtQ0FBbUM7Z0JBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO29CQUMvQyxPQUFPLENBQUMsSUFBSSxDQUFDLDRDQUE0QyxFQUFFLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDbkYsQ0FBQztnQkFDRCxPQUFPLFNBQVMsQ0FBQyxXQUFXLENBQUM7WUFDOUIsQ0FBQztZQUVELHNFQUFzRTtZQUN0RSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUM7Z0JBQzNCLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUM3RSwyREFBMkQ7Z0JBQzNELElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7b0JBQzVELE9BQU8sQ0FBQyxJQUFJLENBQUMsNkZBQTZGLENBQUMsQ0FBQztnQkFDN0csQ0FBQztnQkFDRCxPQUFPLEdBQUcsQ0FBQztZQUNaLENBQUM7UUFDRixDQUFDO1FBRUQsb0VBQW9FO1FBQ3BFLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDbkUsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM3RSxDQUFDO1FBRUQscUNBQXFDO1FBQ3JDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNsQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDO1FBQ3JDLENBQUM7UUFFRCwwRUFBMEU7UUFDMUUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFDekMsSUFBSSxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQy9FLElBQUksQ0FBQztnQkFDSixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDNUIsT0FBTyxHQUFHLEdBQUcsQ0FBQyxRQUFRLEtBQUssR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZDLENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMscURBQXFELEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDN0UsQ0FBQztRQUNGLENBQUM7UUFFRCxzQ0FBc0M7UUFDdEMsT0FBTyxDQUFDLElBQUksQ0FBQyxrRkFBa0YsQ0FBQyxDQUFDO1FBQ2pHLE9BQU8sRUFBRSxDQUFDO0lBQ1gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxjQUFjLEdBQUcsQ0FBQyxJQUFhLEVBQVUsRUFBRTtRQUNqRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNYLE9BQU8sT0FBTyxDQUFDO1FBQ2hCLENBQUM7UUFFRCwrREFBK0Q7UUFDL0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzNELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUU1RSxPQUFPLEdBQUcsWUFBWSxHQUFHLFNBQVMsRUFBRSxDQUFDO0lBQ3RDLENBQUMsQ0FBQTtJQUVEOzs7O09BSUc7SUFDSSxtQkFBbUIsR0FBRyxDQUFDLFNBQWtCLEVBQVUsRUFBRTtRQUMzRCxxREFBcUQ7UUFDckQsSUFBSSxTQUFTLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3hGLE9BQU8sU0FBUyxDQUFDO1FBQ2xCLENBQUM7UUFFRCxzREFBc0Q7UUFDdEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUvQyxvREFBb0Q7UUFDcEQsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN2RSxPQUFPLFFBQVEsQ0FBQztRQUNqQixDQUFDO1FBRUQsNEVBQTRFO1FBQzVFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBQzdDLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDM0UseUJBQXlCO1lBQ3pCLE9BQU8sUUFBUSxDQUFDO1FBQ2pCLENBQUM7UUFFRCw2REFBNkQ7UUFDN0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN0QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbEIsT0FBTyxRQUFRLENBQUMsQ0FBQyx3REFBd0Q7UUFDMUUsQ0FBQztRQUVELHlCQUF5QjtRQUN6QixNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFDdEYsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFDNUYsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBRWxGLE9BQU8sR0FBRyxnQkFBZ0IsSUFBSSxXQUFXLEdBQUcsYUFBYSxFQUFFLENBQUM7SUFDN0QsQ0FBQyxDQUFBO0lBRUQ7OztPQUdHO0lBQ0ksY0FBYyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGVBQWUsQ0FBQztJQUVqSSxhQUFhLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsY0FBYyxDQUFDO0lBRXhIOzs7T0FHRztJQUNJLFlBQVksR0FBRyxHQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxHQUFHLEdBQUcsSUFBSSxLQUFLLENBQUM7SUFDM0Y7O09BRUc7SUFDSSxRQUFRLEdBQW1CO1FBQ2pDLElBQUksRUFBRSxLQUFLO1FBQ1gsTUFBTSxFQUFFLEdBQUc7UUFDWCxRQUFRLEVBQUUsTUFBTTtRQUNoQixjQUFjLEVBQUUsS0FBSztLQUNyQixDQUFDO0lBRUY7O09BRUc7SUFDSSxrQkFBa0IsR0FBcUI7UUFDN0M7WUFDQyxJQUFJLEVBQUUsS0FBSztZQUNYLE1BQU0sRUFBRSxHQUFHO1lBQ1gsUUFBUSxFQUFFLE9BQU87WUFDakIsY0FBYyxFQUFFLEtBQUs7U0FFckI7UUFDRDtZQUNDLElBQUksRUFBRSxLQUFLO1lBQ1gsTUFBTSxFQUFFLEdBQUc7WUFDWCxRQUFRLEVBQUUsTUFBTTtZQUNoQixjQUFjLEVBQUUsS0FBSztTQUNyQjtRQUNEO1lBQ0MsSUFBSSxFQUFFLEtBQUs7WUFDWCxNQUFNLEVBQUUsR0FBRztZQUNYLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLGNBQWMsRUFBRSxLQUFLO1NBQ3JCO1FBQ0Q7WUFDQyxJQUFJLEVBQUUsS0FBSztZQUNYLE1BQU0sRUFBRSxHQUFHO1lBQ1gsUUFBUSxFQUFFLE1BQU07WUFDaEIsY0FBYyxFQUFFLEtBQUs7U0FDckI7UUFDRDtZQUNDLElBQUksRUFBRSxLQUFLO1lBQ1gsTUFBTSxFQUFFLEtBQUs7WUFDYixRQUFRLEVBQUUsTUFBTTtZQUNoQixjQUFjLEVBQUUsS0FBSztTQUNyQjtRQUNEO1lBQ0MsSUFBSSxFQUFFLEtBQUs7WUFDWCxNQUFNLEVBQUUsSUFBSTtZQUNaLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLGNBQWMsRUFBRSxLQUFLO1NBQ3JCO1FBQ0Q7WUFDQyxJQUFJLEVBQUUsS0FBSztZQUNYLE1BQU0sRUFBRSxLQUFLO1lBQ2IsUUFBUSxFQUFFLE9BQU87WUFDakIsY0FBYyxFQUFFLElBQUk7U0FDcEI7S0FDRCxDQUFBO0lBQ0Q7OztPQUdHO0lBQ0kscUJBQXFCLENBQUMsa0JBQW9DO1FBQ2hFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksV0FBVyxDQUFDLGdCQUE4QixFQUFFLFVBQTJCO1FBQzdFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLEVBQWtCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFBO1FBQ2hJLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxVQUFVLEVBQUUsQ0FBQyxDQUFBO1FBQ25FLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN0QixDQUFDO0lBQUEsQ0FBQztJQUdLLG1CQUFtQixDQUFDLGFBQWtCO1FBQzVDLElBQUksYUFBYSxDQUFDLE9BQU8sSUFBSSxhQUFhLENBQUMsSUFBSTtZQUM5QyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsT0FBTyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUUxRSxJQUFJLGFBQWEsQ0FBQyxNQUFNLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJO1lBQ3JELElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxNQUFNLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUVoRixJQUFJLGFBQWEsQ0FBQyxRQUFRLElBQUksYUFBYSxDQUFDLFlBQVk7WUFDdkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsUUFBUSxJQUFJLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUV2RSxPQUFPLGFBQWEsQ0FBQztJQUN0QixDQUFDO0lBRUQ7OztNQUdFO0lBQ00sV0FBVyxHQUFhLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUVqRTs7Ozs7O09BTUc7SUFDSCxjQUFjLEdBQUcsQ0FBQyxjQUF3QixDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUVyRixjQUFjLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUV4QyxrQkFBa0I7SUFDVix5QkFBeUIsR0FBWSxLQUFLLENBQUM7SUFDbkQsMkJBQTJCLENBQUMsS0FBYyxJQUFJLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3ZGLDJCQUEyQixLQUFLLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFBLENBQUMsQ0FBQztJQUV2RTs7Ozs7Ozs7Ozs7Ozs7TUFjRTtJQUNNLCtCQUErQixHQUFvQztRQUMxRSxJQUFJLEVBQUUsT0FBTztRQUNiLElBQUksRUFBRSxPQUFPO1FBQ2Isa0JBQWtCLEVBQUUsS0FBSztRQUN6QixZQUFZLEVBQUUsSUFBSTtLQUNsQixDQUFBO0lBRUQsa0NBQWtDLEdBQUcsQ0FBQyxLQUFzQyxFQUFFLEVBQUU7UUFDL0UsSUFBSSxDQUFDLCtCQUErQixHQUFHO1lBQ3RDLEdBQUcsSUFBSSxDQUFDLCtCQUErQjtZQUN2QyxHQUFHLEtBQUs7U0FDUixDQUFBO0lBQ0YsQ0FBQyxDQUFBO0lBRUQsa0NBQWtDLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLCtCQUErQixDQUFBO0lBRXhFLFVBQVU7UUFDaEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztJQUNsQyxDQUFDO0lBRU0sV0FBVyxHQUFZLEtBQUssQ0FBQzt3R0E5VXhCLG9CQUFvQjs0R0FBcEIsb0JBQW9CLGNBRnBCLE1BQU07OzRGQUVOLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFwaUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuL2FwaS5jb25zdGFudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyLCBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEN1cnJlbmN5Q29uZmlnLCBjdXJyZW5jeVR5cGUsIFBhcmFtc1Byb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQsIEVudmlyb25tZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEVOVklST05NRU5UX1RPS0VOIH0gZnJvbSAnLi4vcHJvdmlkZXJzJztcclxuLyoqXHJcbiAqIFNlcnZpY2lvIHF1ZSBwcm92ZWUgbGFzIGNvbnN0YW50ZXMgbmVjZXNhcmlhcyBxdWUgc2UgdXRpbGl6YW4gcG9yIHRvZGEgbGEgYXBsaWNhY2nDs24uXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIENvcmVDb25zdGFudHNTZXJ2aWNlXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcblx0cHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlQ29uc3RhbnRzU2VydmljZSB7XHJcblxyXG5cdHB1YmxpYyBzZWFyY2hWYWx1ZTogc3RyaW5nID0gJyc7XHJcblx0LyoqXHJcblx0ICogU2VydmljaW8gcXVlIGNvbnRpZW5lIGxhcyBjb25zdGFudGVzIHVzYWRhcyBwYXJhIGxhIEFQSVxyXG5cdCAqL1xyXG5cdHByaXZhdGUgYXBpQ29uc3RhbnRzID0gaW5qZWN0KEFwaUNvbnN0YW50c1NlcnZpY2UpXHJcblx0LyoqXHJcblx0ICogUHJvdmVlIGVsIElEIGRlIGxhIHBsYXRhZm9ybWEgZW4gZG9uZGUgc2UgZXN0YSBlamVjdXRhbmRvIGVsIGNvZGlnbywgZXN0byBzaXJ2ZSBwYXJhIHBvZGVyIGRpZmVyZW5jaWFyIHNpIGVzIGRlIHVuIHNlcnZpZG9yIG8gdW4gbmF2ZWdhZG9yIHdlYi5cclxuXHQgKi9cclxuXHRwcml2YXRlIHBsYXRmb3JtSWQ6IGFueSA9IGluamVjdChQTEFURk9STV9JRClcclxuXHQvKipcclxuXHQgKiBEb2N1bWVudCB0b2tlbiBwYXJhIGFjY2VzbyBTU1ItY29tcGF0aWJsZSBhbCBkb2N1bWVudG9cclxuXHQgKi9cclxuXHRwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCA9IGluamVjdChET0NVTUVOVClcclxuXHQvKipcclxuXHQgKiBDb250aWVuZSBsb3MgZGF0b3MgcHJvdmlzdG8gcG9yIGVsIGZyb250ZW5kIGVuIGVsIGFyY2hpdm8gZW52aXJvbm1lbnQudHNcclxuXHQgKi9cclxuXHRwcml2YXRlIGVudmlyb25tZW50OiBFbnZpcm9ubWVudCA9IGluamVjdChFTlZJUk9OTUVOVF9UT0tFTilcclxuXHQvKipcclxuXHQgKiBHdWFyZGEgbGEgdmFyaWFibGUgd2luZG93IGRlbCB3ZWIgYnJvd3Nlci5cclxuXHQgKi9cclxuXHRwcml2YXRlIHdpbmRvdz86V2luZG93O1xyXG5cclxuXHRjb25zdHJ1Y3RvcigpIHtcclxuXHRcdGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcblx0XHRcdHRoaXMud2luZG93ID0gd2luZG93XHJcblx0XHR9XHJcblx0fVxyXG5cdC8qKlxyXG5cdCAqIFBhdGggdXNhZG8gZW4gbGFzIGNvbGVjY2lvbmVzIGRlIHByb2R1Y3Rvcy5cclxuXHQgKi9cclxuXHRwdWJsaWMgUFJPRFVDVF9MSVNUX1JPVVRFOiBzdHJpbmcgPSAnY29sbGVjdGlvbi8nO1xyXG5cdC8qKlxyXG5cdCAqIFBhdGggdXNhZG8gcGFyYSBhY2NlZGVyIGEgbGFzIHNlY2Npb25lcy5cclxuXHQgKi9cclxuXHRwdWJsaWMgU0VDVElPTlNfUk9VVEU6IHN0cmluZyA9ICdzZWN0aW9ucy8nO1xyXG5cdC8qKlxyXG5cdCAqIFBhdGggcXVlIGFsb2phIGxhIGNhcnBldGEgZGUgbG9zIGFzc2V0cy5cclxuXHQgKi9cclxuXHRwdWJsaWMgcmVhZG9ubHkgQVNTRVRTX1VSTDogc3RyaW5nID0gdGhpcy5hcGlDb25zdGFudHMuQVBJX1VSTDtcclxuXHQvKipcclxuXHQgKiBSZXRvcm5hIGxhIHVybCBkb25kZSBzZSBndWFyZGEgbGFzIGltYWdlbmVzLlxyXG5cdCAqIEBwYXJhbSBwb3N0TWVkaWEgXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0cHVibGljIG1lZGlhVXJsID0gKHBvc3RNZWRpYT86IHN0cmluZykgPT4gdGhpcy5BU1NFVFNfVVJMICsgKHRoaXMuQVNTRVRTX1VSTCA9PSB0aGlzLmFwaUNvbnN0YW50cy5BUElfVVJMID8gJ21lZGlhLycgOiAnJykgKyAocG9zdE1lZGlhID8gcG9zdE1lZGlhIDogXCJpbWFnZS9cIik7XHJcblx0LyoqXHJcblx0ICogUmV0b3JuYSBsYSB1cmwgZG9uZGUgc2UgZ3VhcmRhIGxhcyBpbWFnZW5lcy5cclxuXHQgKiBAcGFyYW0gcG9zdE1lZGlhIFxyXG5cdCAqIEByZXR1cm5zIFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBtZWRpYUltYWdlVXJsID0gKHBvc3RNZWRpYT86IHN0cmluZykgPT4gdGhpcy5BU1NFVFNfVVJMICsgKHRoaXMuQVNTRVRTX1VSTCA9PSB0aGlzLmFwaUNvbnN0YW50cy5BUElfVVJMID8gJ21lZGlhL2ltYWdlLycgOiAnJykgKyAocG9zdE1lZGlhID8gcG9zdE1lZGlhIDogXCJpbWFnZS9cIik7XHJcblx0LyoqXHJcblx0ICogUmV0b3JuYSBsYSB1cmwgZGVsIHNpdGlvLlxyXG5cdCAqIEBwYXJhbSBwb3N0TWVkaWEgXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0cHVibGljIHVybCA9ICgpID0+IHRoaXMuYXBpQ29uc3RhbnRzLkFQSV9VUkwucmVwbGFjZSgvXFwvJC8sICcnKTsgLy8gcmVtb3ZlIGxhc3Qgc2xhc2hcdFxyXG5cclxuXHQvKipcclxuXHQgKiBVUkwgZGVsIHNpdGlvIGZyb250ZW5kIC0gQ29tcGF0aWJsZSBjb24gQW5ndWxhciBTU1JcclxuXHQgKi9cclxuXHRwdWJsaWMgZ2V0IEZST05URU5EX1VSTCgpOiBzdHJpbmcge1xyXG5cdFx0Ly8gVmVyaWZpY2FyIHNpIGVzdGFtb3MgZW4gZWwgbmF2ZWdhZG9yXHJcblx0XHRpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xyXG5cdFx0XHQvLyBQcmltZXJvIGludGVudGEgbGVlciBkZSB3aW5kb3cuX19lbnYgKGNvbmZpZ3VyYWRvIHBvciBEb2NrZXIvQ0kpXHJcblx0XHRcdGNvbnN0IHdpbmRvd0VudiA9ICh0aGlzLndpbmRvdyBhcyBhbnkpPy5fX2VudjtcclxuXHRcdFx0aWYgKHdpbmRvd0Vudj8uZnJvbnRlbmRVcmwpIHtcclxuXHRcdFx0XHQvLyBMb2cgcGFyYSBkZWJ1Z2dpbmcgZW4gZGVzYXJyb2xsb1xyXG5cdFx0XHRcdGlmICghd2luZG93RW52LmZyb250ZW5kVXJsLnN0YXJ0c1dpdGgoJ2h0dHAnKSkge1xyXG5cdFx0XHRcdFx0Y29uc29sZS53YXJuKCdbRlJPTlRFTkRfVVJMXSBJbnZhbGlkIGZyb250ZW5kVXJsIGZvcm1hdDonLCB3aW5kb3dFbnYuZnJvbnRlbmRVcmwpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gd2luZG93RW52LmZyb250ZW5kVXJsO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQvLyBTaSBubyBoYXkgY29uZmlndXJhY2nDs24gZXNwZWPDrWZpY2EsIGNvbnN0cnVpciBkZXNkZSB3aW5kb3cubG9jYXRpb25cclxuXHRcdFx0aWYgKHRoaXMud2luZG93Py5sb2NhdGlvbikge1xyXG5cdFx0XHRcdGNvbnN0IHVybCA9IGAke3RoaXMud2luZG93LmxvY2F0aW9uLnByb3RvY29sfS8vJHt0aGlzLndpbmRvdy5sb2NhdGlvbi5ob3N0fWA7XHJcblx0XHRcdFx0Ly8gVmVyaWZpY2FyIHF1ZSBubyBzZWEgbG9jYWxob3N0IG8gMTI3LjAuMC4xIGVuIHByb2R1Y2Npw7NuXHJcblx0XHRcdFx0aWYgKHVybC5pbmNsdWRlcygnMTI3LjAuMC4xJykgfHwgdXJsLmluY2x1ZGVzKCdsb2NhbGhvc3QnKSkge1xyXG5cdFx0XHRcdFx0Y29uc29sZS53YXJuKCdbRlJPTlRFTkRfVVJMXSBVc2luZyBsb2NhbGhvc3QgVVJMIGluIHByb2R1Y3Rpb24sIGNvbnNpZGVyIHNldHRpbmcgd2luZG93Ll9fZW52LmZyb250ZW5kVXJsJyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybiB1cmw7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ly8gUGFyYSBTU1IsIGludGVudGFyIGNvbnN0cnVpciBkZXNkZSBlbCBkb2N1bWVudCBzaSBlc3TDoSBkaXNwb25pYmxlXHJcblx0XHRpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSAmJiB0aGlzLmRvY3VtZW50Py5sb2NhdGlvbikge1xyXG5cdFx0XHRyZXR1cm4gYCR7dGhpcy5kb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbH0vLyR7dGhpcy5kb2N1bWVudC5sb2NhdGlvbi5ob3N0fWA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC8vIEludGVudGFyIG9idGVuZXIgZGVzZGUgZW52aXJvbm1lbnRcclxuXHRcdGlmICh0aGlzLmVudmlyb25tZW50LmZyb250ZW5kVXJsKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLmVudmlyb25tZW50LmZyb250ZW5kVXJsO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQvLyDDmmx0aW1vIGZhbGxiYWNrIC0gdXNhciBsYSBVUkwgZGVsIEFQSSBzaSBlc3TDoSBjb25maWd1cmFkYSB5IGVzIGFic29sdXRhXHJcblx0XHRjb25zdCBhcGlVcmwgPSB0aGlzLmFwaUNvbnN0YW50cy5BUElfVVJMO1xyXG5cdFx0aWYgKGFwaVVybCAmJiAoYXBpVXJsLnN0YXJ0c1dpdGgoJ2h0dHA6Ly8nKSB8fCBhcGlVcmwuc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSkpIHtcclxuXHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRjb25zdCB1cmwgPSBuZXcgVVJMKGFwaVVybCk7XHJcblx0XHRcdFx0cmV0dXJuIGAke3VybC5wcm90b2NvbH0vLyR7dXJsLmhvc3R9YDtcclxuXHRcdFx0fSBjYXRjaCAoZSkge1xyXG5cdFx0XHRcdGNvbnNvbGUud2FybignW0ZST05URU5EX1VSTF0gQ291bGQgbm90IHBhcnNlIEFQSSBVUkwgYXMgZmFsbGJhY2s6JywgYXBpVXJsKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQvLyBGYWxsYmFjayBmaW5hbCAtIHJldG9ybmFyIFVSTCB2YWPDrWFcclxuXHRcdGNvbnNvbGUud2FybignW0ZST05URU5EX1VSTF0gTm8gdmFsaWQgZnJvbnRlbmQgVVJMIGZvdW5kLCB0aGlzIG1heSBjYXVzZSBpc3N1ZXMgd2l0aCBtZXRhIHRhZ3MnKTtcclxuXHRcdHJldHVybiAnJztcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJldG9ybmEgbGEgVVJMIGNvbXBsZXRhIGRlbCBmcm9udGVuZCBjb24gdW5hIHJ1dGEgb3BjaW9uYWxcclxuXHQgKiBAcGFyYW0gcGF0aCAtIFJ1dGEgb3BjaW9uYWwgcGFyYSBhZ3JlZ2FyIGEgbGEgVVJMIGJhc2VcclxuXHQgKiBAcmV0dXJucyB7c3RyaW5nfSBVUkwgY29tcGxldGEgZGVsIGZyb250ZW5kXHJcblx0ICovXHJcblx0cHVibGljIGdldEZyb250ZW5kVXJsID0gKHBhdGg/OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG5cdFx0Y29uc3QgYmFzZVVybCA9IHRoaXMuRlJPTlRFTkRfVVJMO1xyXG5cdFx0aWYgKCFwYXRoKSB7XHJcblx0XHRcdHJldHVybiBiYXNlVXJsO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQvLyBBc2VndXJhciBxdWUgbGEgcnV0YSBjb21pZW5jZSBjb24gJy8nIHkgbm8gdGVuZ2EgZG9ibGUgc2xhc2hcclxuXHRcdGNvbnN0IGNsZWFuUGF0aCA9IHBhdGguc3RhcnRzV2l0aCgnLycpID8gcGF0aCA6IGAvJHtwYXRofWA7XHJcblx0XHRjb25zdCBjbGVhbkJhc2VVcmwgPSBiYXNlVXJsLmVuZHNXaXRoKCcvJykgPyBiYXNlVXJsLnNsaWNlKDAsIC0xKSA6IGJhc2VVcmw7XHJcblx0XHRcclxuXHRcdHJldHVybiBgJHtjbGVhbkJhc2VVcmx9JHtjbGVhblBhdGh9YDtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJldG9ybmEgbGEgVVJMIGFic29sdXRhIGRlIHVuYSBpbWFnZW4gcGFyYSBtZXRhIHRhZ3MgKGNvbXBhdGlibGUgY29uIFNTUilcclxuXHQgKiBAcGFyYW0gcG9zdE1lZGlhIC0gUnV0YSBkZSBsYSBpbWFnZW5cclxuXHQgKiBAcmV0dXJucyB7c3RyaW5nfSBVUkwgYWJzb2x1dGEgZGUgbGEgaW1hZ2VuXHJcblx0ICovXHJcblx0cHVibGljIGdldEFic29sdXRlSW1hZ2VVcmwgPSAocG9zdE1lZGlhPzogc3RyaW5nKTogc3RyaW5nID0+IHtcclxuXHRcdC8vIFNpIGxhIFVSTCB5YSBlcyBhYnNvbHV0YSwgZGV2b2x2ZXJsYSB0YWwgY29tbyBlc3TDoVxyXG5cdFx0aWYgKHBvc3RNZWRpYSAmJiAocG9zdE1lZGlhLnN0YXJ0c1dpdGgoJ2h0dHA6Ly8nKSB8fCBwb3N0TWVkaWEuc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSkpIHtcclxuXHRcdFx0cmV0dXJuIHBvc3RNZWRpYTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBDb25zdHJ1aXIgbGEgVVJMIGRlIGxhIGltYWdlbiB1c2FuZG8gbGEgVVJMIGRlbCBBUElcclxuXHRcdGNvbnN0IGltYWdlVXJsID0gdGhpcy5tZWRpYUltYWdlVXJsKHBvc3RNZWRpYSk7XHJcblx0XHRcclxuXHRcdC8vIFNpIGxhIFVSTCBkZSBsYSBpbWFnZW4geWEgZXMgYWJzb2x1dGEsIGRldm9sdmVybGFcclxuXHRcdGlmIChpbWFnZVVybC5zdGFydHNXaXRoKCdodHRwOi8vJykgfHwgaW1hZ2VVcmwuc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSkge1xyXG5cdFx0XHRyZXR1cm4gaW1hZ2VVcmw7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC8vIFNpIGVzIHVuYSBVUkwgcmVsYXRpdmEsIGNvbnZlcnRpcmxhIGEgYWJzb2x1dGEgdXNhbmRvIGxhIFVSTCBiYXNlIGRlbCBBUElcclxuXHRcdGNvbnN0IGFwaUJhc2VVcmwgPSB0aGlzLmFwaUNvbnN0YW50cy5BUElfVVJMO1xyXG5cdFx0aWYgKGFwaUJhc2VVcmwuc3RhcnRzV2l0aCgnaHR0cDovLycpIHx8IGFwaUJhc2VVcmwuc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSkge1xyXG5cdFx0XHQvLyBBUElfVVJMIHlhIGVzIGFic29sdXRhXHJcblx0XHRcdHJldHVybiBpbWFnZVVybDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ly8gU2kgQVBJX1VSTCBlcyByZWxhdGl2YSwgdXNhciBsYSBVUkwgZGVsIGZyb250ZW5kIGNvbW8gYmFzZVxyXG5cdFx0Y29uc3QgZnJvbnRlbmRVcmwgPSB0aGlzLkZST05URU5EX1VSTDtcclxuXHRcdGlmICghZnJvbnRlbmRVcmwpIHtcclxuXHRcdFx0cmV0dXJuIGltYWdlVXJsOyAvLyBGYWxsYmFjayBzaSBubyBwb2RlbW9zIGRldGVybWluYXIgbGEgVVJMIGRlbCBmcm9udGVuZFxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQvLyBDb25zdHJ1aXIgVVJMIGFic29sdXRhXHJcblx0XHRjb25zdCBjbGVhbkFwaVVybCA9IGFwaUJhc2VVcmwuc3RhcnRzV2l0aCgnLycpID8gYXBpQmFzZVVybC5zdWJzdHJpbmcoMSkgOiBhcGlCYXNlVXJsO1xyXG5cdFx0Y29uc3QgY2xlYW5Gcm9udGVuZFVybCA9IGZyb250ZW5kVXJsLmVuZHNXaXRoKCcvJykgPyBmcm9udGVuZFVybC5zbGljZSgwLCAtMSkgOiBmcm9udGVuZFVybDtcclxuXHRcdGNvbnN0IGNsZWFuSW1hZ2VVcmwgPSBpbWFnZVVybC5zdGFydHNXaXRoKCcvJykgPyBpbWFnZVVybC5zdWJzdHJpbmcoMSkgOiBpbWFnZVVybDtcclxuXHRcdFxyXG5cdFx0cmV0dXJuIGAke2NsZWFuRnJvbnRlbmRVcmx9LyR7Y2xlYW5BcGlVcmx9JHtjbGVhbkltYWdlVXJsfWA7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBSZXRvcm5hIGxhIHVybCBkZSBsYXMgaW1hZ2VuZXMgZGUgbG9zIGJhbm5lcnNcclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRwdWJsaWMgbWVkaWFCYW5uZXJVcmwgPSAoKSA9PiB0aGlzLkFTU0VUU19VUkwgKyAodGhpcy5BU1NFVFNfVVJMID09IHRoaXMuYXBpQ29uc3RhbnRzLkFQSV9VUkwgPyAnbWVkaWEvJyA6ICcnKSArIFwiYmFubmVyLWltYWdlL1wiO1xyXG5cdFxyXG5cdG1lZGlhU3RvcmVVcmwgPSAoKSA9PiB0aGlzLkFTU0VUU19VUkwgKyAodGhpcy5BU1NFVFNfVVJMID09IHRoaXMuYXBpQ29uc3RhbnRzLkFQSV9VUkwgPyAnbWVkaWEvJyA6ICcnKSArIFwic3RvcmUtaW1hZ2UvXCI7XHJcblx0XHJcblx0LyoqXHJcblx0ICogUmV0b3JuYSBgdHJ1ZWAgc2kgbGEgdmlzdGEgZXMgbW9iaWxlLCBgZmFsc2VgIGNhc28gY29udHJhcmlvLlxyXG5cdCAqIEByZXR1cm5zIHtib29sZWFufVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBtb2JpbGVTY3JlZW4gPSAoKTogYm9vbGVhbiA9PiB0aGlzLndpbmRvdyAmJiB0aGlzLndpbmRvdz8uaW5uZXJXaWR0aCA8IDc1MCB8fCBmYWxzZTtcclxuXHQvKipcclxuXHQgKiBDb250aWVuZSBsb3MgdmFsb3JlcyBwYXJhIGxhIG1vbmVkYSBhY3R1YWxcclxuXHQgKi9cclxuXHRwdWJsaWMgY3VycmVuY3k6IEN1cnJlbmN5Q29uZmlnID0ge1xyXG5cdFx0Y29kZTogJ0FSRycsXHJcblx0XHRzeW1ib2w6ICckJyxcclxuXHRcdHBvc2l0aW9uOiAnTGVmdCcsXHJcblx0XHR3aXRob3V0RGVjaW1hbDogZmFsc2VcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBBcnJlZ2xvIGRlIHZhbG9yZXMgdXNhZG9zIHBhcmEgZWwgcGlwZSBjdXJyZW5jeVByaWNlXHJcblx0ICovXHJcblx0cHVibGljIGN1cnJlbmN5VHlwZUNvbmZpZzogQ3VycmVuY3lDb25maWdbXSA9IFtcclxuXHRcdHtcclxuXHRcdFx0Y29kZTogJ0VVUicsXHJcblx0XHRcdHN5bWJvbDogJ+KCrCcsXHJcblx0XHRcdHBvc2l0aW9uOiAnUmlnaHQnLFxyXG5cdFx0XHR3aXRob3V0RGVjaW1hbDogZmFsc2VcclxuXHJcblx0XHR9LFxyXG5cdFx0e1xyXG5cdFx0XHRjb2RlOiAnQVJHJyxcclxuXHRcdFx0c3ltYm9sOiAnJCcsXHJcblx0XHRcdHBvc2l0aW9uOiAnTGVmdCcsXHJcblx0XHRcdHdpdGhvdXREZWNpbWFsOiBmYWxzZVxyXG5cdFx0fSxcclxuXHRcdHtcclxuXHRcdFx0Y29kZTogJ0FSUycsXHJcblx0XHRcdHN5bWJvbDogJyQnLFxyXG5cdFx0XHRwb3NpdGlvbjogJ0xlZnQnLFxyXG5cdFx0XHR3aXRob3V0RGVjaW1hbDogZmFsc2VcclxuXHRcdH0sXHJcblx0XHR7XHJcblx0XHRcdGNvZGU6ICdVU0QnLFxyXG5cdFx0XHRzeW1ib2w6ICckJyxcclxuXHRcdFx0cG9zaXRpb246ICdMZWZ0JyxcclxuXHRcdFx0d2l0aG91dERlY2ltYWw6IGZhbHNlXHJcblx0XHR9LFxyXG5cdFx0e1xyXG5cdFx0XHRjb2RlOiAnUFlHJyxcclxuXHRcdFx0c3ltYm9sOiAnR3MuJyxcclxuXHRcdFx0cG9zaXRpb246ICdMZWZ0JyxcclxuXHRcdFx0d2l0aG91dERlY2ltYWw6IGZhbHNlXHJcblx0XHR9LFxyXG5cdFx0e1xyXG5cdFx0XHRjb2RlOiAnUEVOJyxcclxuXHRcdFx0c3ltYm9sOiAnUy8nLFxyXG5cdFx0XHRwb3NpdGlvbjogJ0xlZnQnLFxyXG5cdFx0XHR3aXRob3V0RGVjaW1hbDogZmFsc2VcclxuXHRcdH0sXHJcblx0XHR7XHJcblx0XHRcdGNvZGU6ICdTRUsnLFxyXG5cdFx0XHRzeW1ib2w6ICdTRUsnLFxyXG5cdFx0XHRwb3NpdGlvbjogJ1JpZ2h0JyxcclxuXHRcdFx0d2l0aG91dERlY2ltYWw6IHRydWVcclxuXHRcdH0sXHJcblx0XVxyXG5cdC8qKlxyXG5cdCAqIENhbWJpYSBsYSBjb25maWd1cmFjacOzbiBkZSBsYSBtb25lZGEuXHJcblx0ICogQHBhcmFtIGN1cnJlbmN5VHlwZUNvbmZpZyBBcnJlZ2xvIGNvbiBsYXMgZGlzdGludGFzIG1vbmVkYXMuXHJcblx0ICovXHJcblx0cHVibGljIHNldEN1cnJlbmN5VHlwZUNvbmZpZyhjdXJyZW5jeVR5cGVDb25maWc6IEN1cnJlbmN5Q29uZmlnW10pIHtcclxuXHRcdHRoaXMuY3VycmVuY3lUeXBlQ29uZmlnID0gY3VycmVuY3lUeXBlQ29uZmlnO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQHBhcmFtIGN1cnJlbmN5VHlwZUZpbmQgRGVmaW5pciBlbCBjb2RlIGRlbCB0aXBvIGRlIG1vbmVkYSBxdWUgc2UgcXVpZXJhIHV0aWxpemFyLlxyXG5cdCAqIFNpIGVsIHRpcG8gZXMgQ1VTVE9NIHNlIHRvbWFuIGxvcyB2YWxvcmVzIGRlbCBzZWd1bmRvIHBhcmFtZXRybyBkb25kZSBzZSBwdWVkZSBkZWZpbmlyIGxhIHNpbWJvbG9nw61hIHkgcG9zZXNpw7NuIHF1ZSBzZSBxdWllcmEuXHJcblx0ICogQHBhcmFtIGN1c3RvbVR5cGUgRm9ybWF0byBkZWwgcGFyw6FtZXRybyBlamVtcGxvIHsgY29kZTogJ0FSRycsIHN5bWJvbDogJyQnLCBwb3NpdGlvbjogJ0wnICwgd2l0aG91dERlY2ltYWxzOiBmYWxzZSB9ICxcclxuXHQgKiB0b2RhcyBsYXMga2V5IHNvbiBvcGNpb25hbGVzIHkgcG9yIGRlZmVjdG8gc2UgdG9tYW4gbG9zIHZhbG9yZXMgZGVsIGVqZW1wbG8uXHJcblx0ICogQHJldHVybnMgc2UgcmV0b3JuYSBsYSBjb25maWd1cmFjacOzbiBxdWUgc2Ugc2V0ZW8gYSBsYSBwcm9waWVkYWQgY3VycmVuY3kgZGVsIHNlcnZpY2lvLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBzZXRDdXJyZW5jeShjdXJyZW5jeVR5cGVGaW5kOiBjdXJyZW5jeVR5cGUsIGN1c3RvbVR5cGU/OiBDdXJyZW5jeUNvbmZpZyk6IEN1cnJlbmN5Q29uZmlnIHtcclxuXHRcdHRoaXMuY3VycmVuY3kgPSB0aGlzLmN1cnJlbmN5VHlwZUNvbmZpZy5maW5kKChjdDogQ3VycmVuY3lDb25maWcpID0+IGN0LmNvZGUgPT0gY3VycmVuY3lUeXBlRmluZC50b1VwcGVyQ2FzZSgpKSB8fCB0aGlzLmN1cnJlbmN5XHJcblx0XHRjdXN0b21UeXBlICYmICh0aGlzLmN1cnJlbmN5ID0geyAuLi50aGlzLmN1cnJlbmN5LCAuLi5jdXN0b21UeXBlIH0pXHJcblx0XHRyZXR1cm4gdGhpcy5jdXJyZW5jeTtcclxuXHR9O1xyXG5cclxuXHJcblx0cHVibGljIG1vZGlmeUNoYW5uZWxDb25maWcoY2hhbm5lbENvbmZpZzogYW55KSB7XHJcblx0XHRpZiAoY2hhbm5lbENvbmZpZy5jaGFubmVsIHx8IGNoYW5uZWxDb25maWcuY29kZSlcclxuXHRcdFx0dGhpcy5hcGlDb25zdGFudHMuc2V0Q2hhbm5lbChjaGFubmVsQ29uZmlnLmNoYW5uZWwgfHwgY2hhbm5lbENvbmZpZy5jb2RlKVxyXG5cclxuXHRcdGlmIChjaGFubmVsQ29uZmlnLmxvY2FsZSB8fCBjaGFubmVsQ29uZmlnLmxvY2FsZXMuY29kZSlcclxuXHRcdFx0dGhpcy5hcGlDb25zdGFudHMuc2V0TG9jYWxlKGNoYW5uZWxDb25maWcubG9jYWxlIHx8IGNoYW5uZWxDb25maWcubG9jYWxlcy5jb2RlKVxyXG5cclxuXHRcdGlmIChjaGFubmVsQ29uZmlnLmN1cnJlbmN5IHx8IGNoYW5uZWxDb25maWcuYmFzZUN1cnJlbmN5KVxyXG5cdFx0XHR0aGlzLnNldEN1cnJlbmN5KGNoYW5uZWxDb25maWcuY3VycmVuY3kgfHwgY2hhbm5lbENvbmZpZy5iYXNlQ3VycmVuY3kpXHJcblxyXG5cdFx0cmV0dXJuIGNoYW5uZWxDb25maWc7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQqIEBkZXNjcmlwdGlvbiBzZSB1dGlsaXphIHBhcmEgY29uZmlndXJhciBxdWUgZmlsdHJvcyBkZWwgdGlwbyBgU29ydEZpbHRlcmAgc2UgcXVpZXJlIG1vc3RyYXIgZW4gbGEgdmlzdGEuXHJcblx0KiBTZSB1c2FuIGxvcyBjb2RpZ28gZGUgbG9zIGZpbHRyb3MgcGFyYSBpbmRpY2FyIGN1YWxlcyBzZSBkZWJlbiBtb3N0cmFyLlxyXG5cdCovXHJcblx0cHJpdmF0ZSBzb3J0RmlsdGVyczogc3RyaW5nW10gPSBbJ3ByaWNlJywgJ29yZGVyLWFscGgnLCAncmVjZW50J11cclxuXHJcblx0LyoqXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gZmlsdGVyc0NvZGUgYXJyZWdsbyBkZSBzdHJpbmdzIGNvbiBsb3MgY29kaWdvcyBkZSBsb3MgZmlsdHJvcy5cclxuXHQgKiBTaSBzZSBsZSBwYXNhIGVsIHBhcmFtZXRybyAqKmFsbCoqIGVzdGUgbW9zdHJhcmEgdG9kb3MuXHJcblx0ICogQGV4YW1wbGUgcHJpY2UgfCBvcmRlci1hbHBoIHwgcmVjZW50IHwgdXBkYXRlIHwgYWxsXHJcblx0ICogQHJldHVybnNcclxuXHQgKi9cclxuXHRzZXRTb3J0RmlsdGVycyA9IChmaWx0ZXJzQ29kZTogc3RyaW5nW10gPSBbJ2FsbCddKSA9PiB0aGlzLnNvcnRGaWx0ZXJzID0gZmlsdGVyc0NvZGU7XHJcblxyXG5cdGdldFNvcnRGaWx0ZXJzID0gKCkgPT4gdGhpcy5zb3J0RmlsdGVycztcclxuXHJcblx0Ly8gQUJPVVQgUFJPRFVDVFMgXHJcblx0cHJpdmF0ZSBwcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50OiBib29sZWFuID0gZmFsc2U7XHJcblx0c2V0UHJvZHVjdFdpdGhVbmlxdWVWYXJpYW50KHZhbHVlOiBib29sZWFuKSB7IHRoaXMucHJvZHVjdHNXaXRoVW5pcXVlVmFyaWFudCA9IHZhbHVlOyB9XHJcblx0Z2V0UHJvZHVjdFdpdGhVbmlxdWVWYXJpYW50KCkgeyByZXR1cm4gdGhpcy5wcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50IH1cclxuXHJcblx0LyoqXHJcblx0KiBAZGVzY3JpcHRpb24gZXN0YSB2YXJpYWJsZSBzZSB1dGlsaXphIHBhcmEgY29uZmlndXJhciBsb3MgcGFyYW1ldHJvcyBjdWFuZG8gc2UgZGVzZWEgbW9zdHJhclxyXG5cdCogdmFyaWFudGVzIGVsIGxpc3RhZG8gZGUgcHJvZHVjdG9zLlxyXG5cdCogQHBhcmFtIHtzdHJpbmd9dHlwZSB0aXBvIGRlIG9wdGlvbnNcclxuXHQqIEBwYXJhbSB7c3RyaW5nfWNvZGUgY29kaWdvIGRlIG9wdGlvbnNcclxuXHQqIEBwYXJhbSB7Ym9vbGVhbn1kZWZhdWx0Rmlyc3RPcHRpb24gYHRydWVgIHRvbWEgZWwgcHJpbWVyIG9wdGlvbiBkZWwgcHJvZHVjdG8gZW4gZ2VuZXJhbFxyXG5cdCogQHBhcmFtIHtib29sZWFufWNoZWNrSWZTdG9jayBgdHJ1ZWAgc2UgcmVhbGl6YSB1biBjaGVxdWVvIGRlIHNpIGxhIHZhcmlhbnRlIHRpZW5lIHN0b2NrIHBhcmEgbW9zdHJhcmxhXHJcblx0KiBAZXhhbXBsZSAgYGBgamF2YXNjcmlwdFxyXG5cdCoge1xyXG5cdCAgIHR5cGU6ICdjb2xvcicsXHJcblx0ICAgY29kZTogJ2NvbG9yJyxcclxuXHQgICBkZWZhdWx0Rmlyc3RPcHRpb246IGZhbHNlICxcclxuXHQgICBjaGVja0lmU3RvY2s6dHJ1ZVxyXG5cdCAgIH0gYGBgXHJcblx0Ki9cclxuXHRwcml2YXRlIHBhcmFtc1Byb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQ6IFBhcmFtc1Byb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQgPSB7XHJcblx0XHR0eXBlOiAnY29sb3InLFxyXG5cdFx0Y29kZTogJ2NvbG9yJyxcclxuXHRcdGRlZmF1bHRGaXJzdE9wdGlvbjogZmFsc2UsXHJcblx0XHRjaGVja0lmU3RvY2s6IHRydWVcclxuXHR9XHJcblxyXG5cdHNldFBhcmFtc1Byb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQgPSAodmFsdWU6IFBhcmFtc1Byb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQpID0+IHtcclxuXHRcdHRoaXMucGFyYW1zUHJvZHVjdHNXaXRoVW5pcXVlVmFyaWFudCA9IHtcclxuXHRcdFx0Li4udGhpcy5wYXJhbXNQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50LFxyXG5cdFx0XHQuLi52YWx1ZVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Z2V0UGFyYW1zUHJvZHVjdHNXaXRoVW5pcXVlVmFyaWFudCA9ICgpID0+IHRoaXMucGFyYW1zUHJvZHVjdHNXaXRoVW5pcXVlVmFyaWFudFxyXG5cdFxyXG5cdHB1YmxpYyBnZXRDaGFubmVsKCl7XHJcblx0XHRyZXR1cm4gdGhpcy5hcGlDb25zdGFudHMuQ0hBTk5FTDtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBmb3JtX3NlbmRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG59XHJcbiJdfQ==
@@ -117,6 +117,22 @@ export class MenuEcComponent {
117
117
  hasVisibleProperty(category) {
118
118
  return category.isVisible === true;
119
119
  }
120
+ filterVisibleTree(list) {
121
+ return (list ?? [])
122
+ .filter((n) => n?.isVisible === true)
123
+ .map(n => ({ ...n, children: this.filterVisibleTree(n.children) }));
124
+ }
125
+ // Exponé streams ya filtrados
126
+ categoriesVisible$ = this.categories$.pipe(map((list) => this.filterVisibleTree(list)));
127
+ sectionsVisible$ = this.sections$.pipe(map((list) => this.filterVisibleTree(list)));
128
+ attributesVisible$ = this.attributes$.pipe(map((list) => this.filterVisibleTree(list)));
129
+ // Helpers de conveniencia opcionales
130
+ getVisibleChildren(node) {
131
+ return this.filterVisibleTree(node?.children);
132
+ }
133
+ hasVisibleChildren(node) {
134
+ return this.getVisibleChildren(node).length > 0;
135
+ }
120
136
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MenuEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
121
137
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MenuEcComponent, isStandalone: true, selector: "lib-footer-ec", ngImport: i0, template: '<p>Menu and Footer Helper Component</p>', isInline: true });
122
138
  }
@@ -129,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
129
145
  template: '<p>Menu and Footer Helper Component</p>'
130
146
  }]
131
147
  }], ctorParameters: () => [] });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hYnN0cmFjdGlvbnMtY29tcG9uZW50cy9tZW51LWVjLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdDLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRixPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFLL0Q7Ozs7R0FJRztBQU9ILE1BQU0sT0FBTyxlQUFlO0lBQ25CLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDdkMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDN0MsWUFBWSxHQUFnQixNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDL0MsYUFBYSxHQUFpQixNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDMUQ7O09BRUc7SUFDSyxNQUFNLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFFN0M7O09BRUc7SUFDSSxXQUFXLEdBQTJCLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDaEY7O09BRUc7SUFDSSxTQUFTLEdBQTBCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDM0U7O09BRUc7SUFDSSxXQUFXLEdBQTRCLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENB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LENBQUMsQ0FBQyxDQUNGLENBQUM7SUFDSCxDQUFDO0lBQ0Q7Ozs7S0FJSTtJQUNKLGtCQUFrQixDQUFDLFFBQWtCO1FBQ3BDLE9BQVEsUUFBZ0IsQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDO0lBQzdDLENBQUM7d0dBbkhXLGVBQWU7NEZBQWYsZUFBZSx5RUFGakIseUNBQXlDOzs0RkFFdkMsZUFBZTtrQkFOM0IsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsZUFBZTtvQkFDekIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxFQUFFO29CQUNYLFFBQVEsRUFBRSx5Q0FBeUM7aUJBQ25EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWZ0ZXJOZXh0UmVuZGVyLCBhZnRlclJlbmRlciwgQ29tcG9uZW50LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIE9wdGlvbnNTZXJ2aWNlLCBQYXJhbWV0ZXJzU2VydmljZSB9IGZyb20gJy4uLy4uL2VjLXNlcnZpY2VzJztcclxuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvcmVDb25zdGFudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQXR0cmlidXRlLCBDYXRlZ29yeSwgUGFyYW1ldGVyLCBTZWN0aW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uL2VjLXNlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xyXG4vKipcclxuICogUGFyYSBkaWZlcmVuY2lhciBsb3MgdGlwb3MgZGUgTWVudVxyXG4gKi9cclxudHlwZSBNZW51VHlwZSA9IFwiY2F0ZWdvcnlcIiB8IFwiYXR0cmlidXRlXCIgfCBcInNlY3Rpb25cIlxyXG4vKipcclxuICogQ29tcG9uZW50ZSBxdWUgc2lydmUgcGFyYSBhYnN0cmFlciBsYSBmdW5jaW9uYWxpZGFkIHF1ZSBjb21wYXJ0ZW4gXHJcbiAqIGVsIG1lbsO6IHkgZWwgZm9vdGVyLlxyXG4gKiBAY2xhc3MgTWVudUVjQ29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2xpYi1mb290ZXItZWMnLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0aW1wb3J0czogW10sXHJcblx0dGVtcGxhdGU6ICc8cD5NZW51IGFuZCBGb290ZXIgSGVscGVyIENvbXBvbmVudDwvcD4nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNZW51RWNDb21wb25lbnQge1xyXG5cdHByaXZhdGUgb3B0aW9uc1NlcnZpY2UgPSBpbmplY3QoT3B0aW9uc1NlcnZpY2UpXHJcblx0cHJpdmF0ZSBwYXJhbWV0ZXJzU2VydmljZSA9IGluamVjdChQYXJhbWV0ZXJzU2VydmljZSlcclxuXHRwcml2YXRlIF9hdXRoU2VydmljZTogQXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpXHJcblx0cHJpdmF0ZSBfdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKVxyXG5cdC8qKlxyXG5cdCAqIENvbnN0YW50ZXMgZGVsIGNvcmUuXHJcblx0ICovXHJcblx0cHJpdmF0ZSBjb25zdHMgPSBpbmplY3QoQ29yZUNvbnN0YW50c1NlcnZpY2UpXHJcblxyXG5cdC8qKlxyXG5cdCAqIE9ic2VydmFibGUgZGUgY2F0ZWdvcmlhc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBjYXRlZ29yaWVzJDogT2JzZXJ2YWJsZTxDYXRlZ29yeVtdPiA9IHRoaXMub3B0aW9uc1NlcnZpY2UuZ2V0Q2F0ZWdvcmllcygpXHJcblx0LyoqXHJcblx0ICogT2JzZXJ2YWJsZSBkZSBzZWNjaW9uZXNcclxuXHQgKi9cclxuXHRwdWJsaWMgc2VjdGlvbnMkOiBPYnNlcnZhYmxlPFNlY3Rpb25bXT4gPSB0aGlzLm9wdGlvbnNTZXJ2aWNlLmdldFNlY3Rpb25zKClcclxuXHQvKipcclxuXHQgKiBPYnNlcnZhYmxlIGRlIGF0cmlidXRvc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBhdHRyaWJ1dGVzJDogT2JzZXJ2YWJsZTxBdHRyaWJ1dGVbXT4gPSB0aGlzLm9wdGlvbnNTZXJ2aWNlLmdldEF0dHJpYnV0ZXMoKVxyXG5cdC8qKlxyXG5cdCAqIE9ic2VydmFibGUgZGUgcGFyYW1ldHJvc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBwYXJhbWV0ZXJzJDogT2JzZXJ2YWJsZTxQYXJhbWV0ZXJbXSB8IG51bGw+ID0gdGhpcy5wYXJhbWV0ZXJzU2VydmljZS5nZXRQYXJhbWV0ZXJzKClcclxuXHQvKipcclxuXHQgKiBVcmwgcGFyYSBsYXMgaW1hZ2VuZXMgZ3VhcmRhZGVzIGVuIGVsIGJhY2tlbmQuXHJcblx0ICovXHJcblx0cHVibGljIG1lZGlhVXJsID0gdGhpcy5jb25zdHMubWVkaWFVcmwoKVxyXG5cdC8qKlxyXG5cdCAqIEZ1bmNpb24gcGFyYSBzYWJlciBzaSBleGlzdGVuIHVuIHBhcmFtZXRyby4gXHJcblx0ICovXHJcblx0cHVibGljIGhhc1BhcmFtcyA9IHRoaXMucGFyYW1ldGVyc1NlcnZpY2UuaGFzUGFyYW1zXHJcblxyXG5cdGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG5cdHByb3RlY3RlZCBhZGRDaGlsZHJlbiA9IChtZW51VHlwZTogTWVudVR5cGUsIGNvZGU6IHN0cmluZywgaXRlbTogYW55LCBzdGFja1BsYWNlID0gJ2VuZCcpOiB2b2lkID0+IHtcclxuXHJcblx0fVxyXG5cclxuXHQvKiBwcm90ZWN0ZWQgYWRkQ2hpbGRyZW4gPSAobWVudUl0ZW1zOiBhbnlbXSwgY29kZTogc3RyaW5nLCBpdGVtOiBhbnksIHN0YWNrUGxhY2UgPSAnZW5kJykgPT4ge1xyXG5cdCAgKHN0YWNrUGxhY2UgPT09ICdzdGFydCcpXHJcblx0XHQ/IG1lbnVJdGVtcy5maW5kKGl0ZW0gPT4gaXRlbS5jb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGNvZGUpKT8uY2hpbGRyZW4udW5zaGlmdChpdGVtKVxyXG5cdFx0OiBtZW51SXRlbXMuZmluZChpdGVtID0+IGl0ZW0uY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhjb2RlKSk/LmNoaWxkcmVuLnB1c2goaXRlbSlcclxuICAgIFxyXG5cdH0gKi9cclxuXHQvKipcclxuXHQgKiBBY3R1YWxpemEgbGFzIGNhdGVnb3JpYXMgYWdyZWdhbmRvIG51ZXZhcy5cclxuXHQgKiBAcGFyYW0gY2F0ZWdvcmllcyBcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgdXBkYXRlQ2F0ZWdvcmllcyhjYXRlZ29yaWVzOiBDYXRlZ29yeVtdKSB7XHJcblx0XHR0aGlzLmNhdGVnb3JpZXMkID0gdGhpcy5jYXRlZ29yaWVzJC5waXBlKG1hcCgoZGF0YTogQ2F0ZWdvcnlbXSkgPT4ge1xyXG5cdFx0XHRyZXR1cm4gWy4uLmRhdGEsIC4uLmNhdGVnb3JpZXNdXHJcblx0XHR9KSlcclxuXHR9XHJcblx0LyoqXHJcblx0ICogQWN0dWFsaXphIGxhcyBzZWNjaW9uZXMgYWdyZWdhbmRvIG51ZXZhcy5cclxuXHQgKiBAcGFyYW0gc2VjdGlvbnMgXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIHVwZGF0ZVNlY3Rpb25zKHNlY3Rpb25zOiBTZWN0aW9uW10pIHtcclxuXHRcdHRoaXMuc2VjdGlvbnMkID0gdGhpcy5zZWN0aW9ucyQucGlwZShtYXAoKGRhdGE6IFNlY3Rpb25bXSkgPT4ge1xyXG5cdFx0XHRyZXR1cm4gWy4uLmRhdGEsIC4uLnNlY3Rpb25zXVxyXG5cdFx0fSkpXHJcblx0fVxyXG5cdC8qKlxyXG5cdCAqIEFjdHVhbGl6YSBlbCBtZW7DuiBkZSBhdHJpYnV0b3MgYWdyZWRhbmRvIG51ZXZvcy5cclxuXHQgKiBAcGFyYW0gYXR0cmlidXRlcyBcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgdXBkYXRlQXR0cmlidXRlcyhhdHRyaWJ1dGVzOiBBdHRyaWJ1dGVbXSkge1xyXG5cdFx0dGhpcy5hdHRyaWJ1dGVzJCA9IHRoaXMuYXR0cmlidXRlcyQucGlwZShtYXAoKGRhdGE6IEF0dHJpYnV0ZVtdKSA9PiB7XHJcblx0XHRcdHJldHVybiBbLi4uZGF0YSwgLi4uYXR0cmlidXRlc11cclxuXHRcdH0pKVxyXG5cdH1cclxuXHJcblx0cHVibGljIGlzQXV0aGVudGljYXRlZCgpIHtcclxuXHRcdHJldHVybiB0aGlzLl9hdXRoU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQoKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBsb2dvdXQoKSB7XHJcblx0XHR0aGlzLl9hdXRoU2VydmljZS5sb2dvdXQoKTtcclxuXHRcdHRoaXMuX3RvYXN0U2VydmljZS5zaG93KCdsb2dvdXQtc3VjY2VzcycpO1xyXG5cdFx0d2luZG93LmxvY2F0aW9uLmhyZWYgPSAnL2hvbWUnOyAvLyBSZWRpcmlnZSBhIGxhIHDDoWdpbmEgZGUgaW5pY2lvIGRlc3B1w6lzIGRlbCBsb2dvdXRcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEHDsWFkZSB2YXJpb3MgaGlqb3MgYSB1bmEgc2VjY2nDs24gcG9yIGNvZGUuXHJcblx0ICogQHBhcmFtIHNlY3Rpb25Db2RlIEPDs2RpZ28gZGUgbGEgc2VjY2nDs25cclxuXHQgKiBAcGFyYW0gY2hpbGRyZW4gQXJyYXkgZGUgaGlqb3MgYSBhZ3JlZ2FyXHJcblx0ICogQHBhcmFtIHN0YWNrUGxhY2UgJ3N0YXJ0JyB8ICdlbmQnIChwb3IgZGVmZWN0byAnZW5kJylcclxuXHQgKi9cclxuXHRwdWJsaWMgYWRkU2VjdGlvbkNoaWxkcmVuKHNlY3Rpb25Db2RlOiBzdHJpbmcsIGNoaWxkcmVuOiBhbnlbXSwgc3RhY2tQbGFjZTogJ3N0YXJ0JyB8ICdlbmQnID0gJ2VuZCcpIHtcclxuXHRcdHRoaXMuc2VjdGlvbnMkID0gdGhpcy5zZWN0aW9ucyQucGlwZShcclxuXHRcdFx0bWFwKChzZWN0aW9uczogU2VjdGlvbltdKSA9PiB7XHJcblx0XHRcdFx0cmV0dXJuIHNlY3Rpb25zLm1hcChzZWN0aW9uID0+IHtcclxuXHRcdFx0XHRcdGlmIChzZWN0aW9uLmNvZGU/LnRvTG93ZXJDYXNlKCkgPT09IHNlY3Rpb25Db2RlLnRvTG93ZXJDYXNlKCkpIHtcclxuXHRcdFx0XHRcdFx0aWYgKCFzZWN0aW9uLmNoaWxkcmVuKSBzZWN0aW9uLmNoaWxkcmVuID0gW107XHJcblx0XHRcdFx0XHRcdGlmIChzdGFja1BsYWNlID09PSAnc3RhcnQnKSB7XHJcblx0XHRcdFx0XHRcdFx0c2VjdGlvbi5jaGlsZHJlbiA9IFsuLi5jaGlsZHJlbiwgLi4uc2VjdGlvbi5jaGlsZHJlbl07XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0c2VjdGlvbi5jaGlsZHJlbiA9IFsuLi5zZWN0aW9uLmNoaWxkcmVuLCAuLi5jaGlsZHJlbl07XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHJldHVybiBzZWN0aW9uO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9KVxyXG5cdFx0KTtcclxuXHR9XHJcblx0LyoqXHJcbiAgICogVmVyaWZpY2Egc2kgdW5hIGNhdGVnb3LDrWEgdGllbmUgbGEgcHJvcGllZGFkIGlzVmlzaWJsZSB5IGVzdMOhIG1hcmNhZGEgY29tbyB2aXNpYmxlXHJcbiAgICogQHBhcmFtIGNhdGVnb3J5IC0gTGEgY2F0ZWdvcsOtYSBhIHZlcmlmaWNhclxyXG4gICAqIEByZXR1cm5zIHRydWUgc2kgbGEgY2F0ZWdvcsOtYSBlcyB2aXNpYmxlLCBmYWxzZSBlbiBjYXNvIGNvbnRyYXJpb1xyXG4gICAqL1xyXG5cdGhhc1Zpc2libGVQcm9wZXJ0eShjYXRlZ29yeTogQ2F0ZWdvcnkpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiAoY2F0ZWdvcnkgYXMgYW55KS5pc1Zpc2libGUgPT09IHRydWU7XHJcblx0fVxyXG59Il19
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hYnN0cmFjdGlvbnMtY29tcG9uZW50cy9tZW51LWVjLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdDLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRixPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFNL0Q7Ozs7R0FJRztBQU9ILE1BQU0sT0FBTyxlQUFlO0lBQ25CLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDdkMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDN0MsWUFBWSxHQUFnQixNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDL0MsYUFBYSxHQUFpQixNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDMUQ7O09BRUc7SUFDSyxNQUFNLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFFN0M7O09BRUc7SUFDSSxXQUFXLEdBQTJCLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDaEY7O09BRUc7SUFDSSxTQUFTLEdBQTBCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDM0U7O09BRUc7SUFDSSxXQUFXLEdBQTRCLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENB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QUMvQyxDQUFDO0lBRU0sa0JBQWtCLENBQW9ELElBQVE7UUFDcEYsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNqRCxDQUFDO3dHQS9JVyxlQUFlOzRGQUFmLGVBQWUseUVBRmpCLHlDQUF5Qzs7NEZBRXZDLGVBQWU7a0JBTjNCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsRUFBRTtvQkFDWCxRQUFRLEVBQUUseUNBQXlDO2lCQUNuRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFmdGVyTmV4dFJlbmRlciwgYWZ0ZXJSZW5kZXIsIENvbXBvbmVudCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBPcHRpb25zU2VydmljZSwgUGFyYW1ldGVyc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb3JlQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IEF0dHJpYnV0ZSwgQ2F0ZWdvcnksIFBhcmFtZXRlciwgU2VjdGlvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcy90b2FzdC5zZXJ2aWNlJztcclxuLyoqXHJcbiAqIFBhcmEgZGlmZXJlbmNpYXIgbG9zIHRpcG9zIGRlIE1lbnVcclxuICovXHJcbnR5cGUgTWVudVR5cGUgPSBcImNhdGVnb3J5XCIgfCBcImF0dHJpYnV0ZVwiIHwgXCJzZWN0aW9uXCJcclxudHlwZSBUcmVlTm9kZTxUPiA9IFQgJiB7IGlzVmlzaWJsZT86IGJvb2xlYW47IGNoaWxkcmVuPzogVFtdIH07XHJcbi8qKlxyXG4gKiBDb21wb25lbnRlIHF1ZSBzaXJ2ZSBwYXJhIGFic3RyYWVyIGxhIGZ1bmNpb25hbGlkYWQgcXVlIGNvbXBhcnRlbiBcclxuICogZWwgbWVuw7ogeSBlbCBmb290ZXIuXHJcbiAqIEBjbGFzcyBNZW51RWNDb21wb25lbnRcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnbGliLWZvb3Rlci1lYycsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbXSxcclxuXHR0ZW1wbGF0ZTogJzxwPk1lbnUgYW5kIEZvb3RlciBIZWxwZXIgQ29tcG9uZW50PC9wPidcclxufSlcclxuZXhwb3J0IGNsYXNzIE1lbnVFY0NvbXBvbmVudCB7XHJcblx0cHJpdmF0ZSBvcHRpb25zU2VydmljZSA9IGluamVjdChPcHRpb25zU2VydmljZSlcclxuXHRwcml2YXRlIHBhcmFtZXRlcnNTZXJ2aWNlID0gaW5qZWN0KFBhcmFtZXRlcnNTZXJ2aWNlKVxyXG5cdHByaXZhdGUgX2F1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSlcclxuXHRwcml2YXRlIF90b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSA9IGluamVjdChUb2FzdFNlcnZpY2UpXHJcblx0LyoqXHJcblx0ICogQ29uc3RhbnRlcyBkZWwgY29yZS5cclxuXHQgKi9cclxuXHRwcml2YXRlIGNvbnN0cyA9IGluamVjdChDb3JlQ29uc3RhbnRzU2VydmljZSlcclxuXHJcblx0LyoqXHJcblx0ICogT2JzZXJ2YWJsZSBkZSBjYXRlZ29yaWFzXHJcblx0ICovXHJcblx0cHVibGljIGNhdGVnb3JpZXMkOiBPYnNlcnZhYmxlPENhdGVnb3J5W10+ID0gdGhpcy5vcHRpb25zU2VydmljZS5nZXRDYXRlZ29yaWVzKClcclxuXHQvKipcclxuXHQgKiBPYnNlcnZhYmxlIGRlIHNlY2Npb25lc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBzZWN0aW9ucyQ6IE9ic2VydmFibGU8U2VjdGlvbltdPiA9IHRoaXMub3B0aW9uc1NlcnZpY2UuZ2V0U2VjdGlvbnMoKVxyXG5cdC8qKlxyXG5cdCAqIE9ic2VydmFibGUgZGUgYXRyaWJ1dG9zXHJcblx0ICovXHJcblx0cHVibGljIGF0dHJpYnV0ZXMkOiBPYnNlcnZhYmxlPEF0dHJpYnV0ZVtdPiA9IHRoaXMub3B0aW9uc1NlcnZpY2UuZ2V0QXR0cmlidXRlcygpXHJcblx0LyoqXHJcblx0ICogT2JzZXJ2YWJsZSBkZSBwYXJhbWV0cm9zXHJcblx0ICovXHJcblx0cHVibGljIHBhcmFtZXRlcnMkOiBPYnNlcnZhYmxlPFBhcmFtZXRlcltdIHwgbnVsbD4gPSB0aGlzLnBhcmFtZXRlcnNTZXJ2aWNlLmdldFBhcmFtZXRlcnMoKVxyXG5cdC8qKlxyXG5cdCAqIFVybCBwYXJhIGxhcyBpbWFnZW5lcyBndWFyZGFkZXMgZW4gZWwgYmFja2VuZC5cclxuXHQgKi9cclxuXHRwdWJsaWMgbWVkaWFVcmwgPSB0aGlzLmNvbnN0cy5tZWRpYVVybCgpXHJcblx0LyoqXHJcblx0ICogRnVuY2lvbiBwYXJhIHNhYmVyIHNpIGV4aXN0ZW4gdW4gcGFyYW1ldHJvLiBcclxuXHQgKi9cclxuXHRwdWJsaWMgaGFzUGFyYW1zID0gdGhpcy5wYXJhbWV0ZXJzU2VydmljZS5oYXNQYXJhbXNcclxuXHJcblx0Y29uc3RydWN0b3IoKSB7IH1cclxuXHJcblx0cHJvdGVjdGVkIGFkZENoaWxkcmVuID0gKG1lbnVUeXBlOiBNZW51VHlwZSwgY29kZTogc3RyaW5nLCBpdGVtOiBhbnksIHN0YWNrUGxhY2UgPSAnZW5kJyk6IHZvaWQgPT4ge1xyXG5cclxuXHR9XHJcblxyXG5cdC8qIHByb3RlY3RlZCBhZGRDaGlsZHJlbiA9IChtZW51SXRlbXM6IGFueVtdLCBjb2RlOiBzdHJpbmcsIGl0ZW06IGFueSwgc3RhY2tQbGFjZSA9ICdlbmQnKSA9PiB7XHJcblx0ICAoc3RhY2tQbGFjZSA9PT0gJ3N0YXJ0JylcclxuXHRcdD8gbWVudUl0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLmNvZGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoY29kZSkpPy5jaGlsZHJlbi51bnNoaWZ0KGl0ZW0pXHJcblx0XHQ6IG1lbnVJdGVtcy5maW5kKGl0ZW0gPT4gaXRlbS5jb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGNvZGUpKT8uY2hpbGRyZW4ucHVzaChpdGVtKVxyXG4gICAgXHJcblx0fSAqL1xyXG5cdC8qKlxyXG5cdCAqIEFjdHVhbGl6YSBsYXMgY2F0ZWdvcmlhcyBhZ3JlZ2FuZG8gbnVldmFzLlxyXG5cdCAqIEBwYXJhbSBjYXRlZ29yaWVzIFxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCB1cGRhdGVDYXRlZ29yaWVzKGNhdGVnb3JpZXM6IENhdGVnb3J5W10pIHtcclxuXHRcdHRoaXMuY2F0ZWdvcmllcyQgPSB0aGlzLmNhdGVnb3JpZXMkLnBpcGUobWFwKChkYXRhOiBDYXRlZ29yeVtdKSA9PiB7XHJcblx0XHRcdHJldHVybiBbLi4uZGF0YSwgLi4uY2F0ZWdvcmllc11cclxuXHRcdH0pKVxyXG5cdH1cclxuXHQvKipcclxuXHQgKiBBY3R1YWxpemEgbGFzIHNlY2Npb25lcyBhZ3JlZ2FuZG8gbnVldmFzLlxyXG5cdCAqIEBwYXJhbSBzZWN0aW9ucyBcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgdXBkYXRlU2VjdGlvbnMoc2VjdGlvbnM6IFNlY3Rpb25bXSkge1xyXG5cdFx0dGhpcy5zZWN0aW9ucyQgPSB0aGlzLnNlY3Rpb25zJC5waXBlKG1hcCgoZGF0YTogU2VjdGlvbltdKSA9PiB7XHJcblx0XHRcdHJldHVybiBbLi4uZGF0YSwgLi4uc2VjdGlvbnNdXHJcblx0XHR9KSlcclxuXHR9XHJcblx0LyoqXHJcblx0ICogQWN0dWFsaXphIGVsIG1lbsO6IGRlIGF0cmlidXRvcyBhZ3JlZGFuZG8gbnVldm9zLlxyXG5cdCAqIEBwYXJhbSBhdHRyaWJ1dGVzIFxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCB1cGRhdGVBdHRyaWJ1dGVzKGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZVtdKSB7XHJcblx0XHR0aGlzLmF0dHJpYnV0ZXMkID0gdGhpcy5hdHRyaWJ1dGVzJC5waXBlKG1hcCgoZGF0YTogQXR0cmlidXRlW10pID0+IHtcclxuXHRcdFx0cmV0dXJuIFsuLi5kYXRhLCAuLi5hdHRyaWJ1dGVzXVxyXG5cdFx0fSkpXHJcblx0fVxyXG5cclxuXHRwdWJsaWMgaXNBdXRoZW50aWNhdGVkKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2F1dGhTZXJ2aWNlLmlzQXV0aGVudGljYXRlZCgpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGxvZ291dCgpIHtcclxuXHRcdHRoaXMuX2F1dGhTZXJ2aWNlLmxvZ291dCgpO1xyXG5cdFx0dGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coJ2xvZ291dC1zdWNjZXNzJyk7XHJcblx0XHR3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvaG9tZSc7IC8vIFJlZGlyaWdlIGEgbGEgcMOhZ2luYSBkZSBpbmljaW8gZGVzcHXDqXMgZGVsIGxvZ291dFxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQcOxYWRlIHZhcmlvcyBoaWpvcyBhIHVuYSBzZWNjacOzbiBwb3IgY29kZS5cclxuXHQgKiBAcGFyYW0gc2VjdGlvbkNvZGUgQ8OzZGlnbyBkZSBsYSBzZWNjacOzblxyXG5cdCAqIEBwYXJhbSBjaGlsZHJlbiBBcnJheSBkZSBoaWpvcyBhIGFncmVnYXJcclxuXHQgKiBAcGFyYW0gc3RhY2tQbGFjZSAnc3RhcnQnIHwgJ2VuZCcgKHBvciBkZWZlY3RvICdlbmQnKVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBhZGRTZWN0aW9uQ2hpbGRyZW4oc2VjdGlvbkNvZGU6IHN0cmluZywgY2hpbGRyZW46IGFueVtdLCBzdGFja1BsYWNlOiAnc3RhcnQnIHwgJ2VuZCcgPSAnZW5kJykge1xyXG5cdFx0dGhpcy5zZWN0aW9ucyQgPSB0aGlzLnNlY3Rpb25zJC5waXBlKFxyXG5cdFx0XHRtYXAoKHNlY3Rpb25zOiBTZWN0aW9uW10pID0+IHtcclxuXHRcdFx0XHRyZXR1cm4gc2VjdGlvbnMubWFwKHNlY3Rpb24gPT4ge1xyXG5cdFx0XHRcdFx0aWYgKHNlY3Rpb24uY29kZT8udG9Mb3dlckNhc2UoKSA9PT0gc2VjdGlvbkNvZGUudG9Mb3dlckNhc2UoKSkge1xyXG5cdFx0XHRcdFx0XHRpZiAoIXNlY3Rpb24uY2hpbGRyZW4pIHNlY3Rpb24uY2hpbGRyZW4gPSBbXTtcclxuXHRcdFx0XHRcdFx0aWYgKHN0YWNrUGxhY2UgPT09ICdzdGFydCcpIHtcclxuXHRcdFx0XHRcdFx0XHRzZWN0aW9uLmNoaWxkcmVuID0gWy4uLmNoaWxkcmVuLCAuLi5zZWN0aW9uLmNoaWxkcmVuXTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRzZWN0aW9uLmNoaWxkcmVuID0gWy4uLnNlY3Rpb24uY2hpbGRyZW4sIC4uLmNoaWxkcmVuXTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0cmV0dXJuIHNlY3Rpb247XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0pXHJcblx0XHQpO1xyXG5cdH1cclxuXHQvKipcclxuICAgKiBWZXJpZmljYSBzaSB1bmEgY2F0ZWdvcsOtYSB0aWVuZSBsYSBwcm9waWVkYWQgaXNWaXNpYmxlIHkgZXN0w6EgbWFyY2FkYSBjb21vIHZpc2libGVcclxuICAgKiBAcGFyYW0gY2F0ZWdvcnkgLSBMYSBjYXRlZ29yw61hIGEgdmVyaWZpY2FyXHJcbiAgICogQHJldHVybnMgdHJ1ZSBzaSBsYSBjYXRlZ29yw61hIGVzIHZpc2libGUsIGZhbHNlIGVuIGNhc28gY29udHJhcmlvXHJcbiAgICovXHJcblx0aGFzVmlzaWJsZVByb3BlcnR5KGNhdGVnb3J5OiBDYXRlZ29yeSk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIChjYXRlZ29yeSBhcyBhbnkpLmlzVmlzaWJsZSA9PT0gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZmlsdGVyVmlzaWJsZVRyZWU8VCBleHRlbmRzIHsgaXNWaXNpYmxlPzogYm9vbGVhbjsgY2hpbGRyZW4/OiBUW10gfT4obGlzdD86IFRbXSk6IFRbXSB7XHJcblx0XHRyZXR1cm4gKGxpc3QgPz8gW10pXHJcblx0XHRcdC5maWx0ZXIoKG4pOiBuIGlzIFQgPT4gbj8uaXNWaXNpYmxlID09PSB0cnVlKVxyXG5cdFx0XHQubWFwKG4gPT4gKHsgLi4ubiwgY2hpbGRyZW46IHRoaXMuZmlsdGVyVmlzaWJsZVRyZWUobi5jaGlsZHJlbikgfSBhcyBUKSk7XHJcblx0fVxyXG5cclxuXHQvLyBFeHBvbsOpIHN0cmVhbXMgeWEgZmlsdHJhZG9zXHJcblx0cHVibGljIGNhdGVnb3JpZXNWaXNpYmxlJDogT2JzZXJ2YWJsZTxDYXRlZ29yeVtdPiA9IHRoaXMuY2F0ZWdvcmllcyQucGlwZShcclxuXHRcdG1hcCgobGlzdDogQ2F0ZWdvcnlbXSkgPT4gdGhpcy5maWx0ZXJWaXNpYmxlVHJlZTxDYXRlZ29yeT4obGlzdCkpXHJcblx0KTtcclxuXHJcblx0cHVibGljIHNlY3Rpb25zVmlzaWJsZSQ6IE9ic2VydmFibGU8U2VjdGlvbltdPiA9IHRoaXMuc2VjdGlvbnMkLnBpcGUoXHJcblx0XHRtYXAoKGxpc3Q6IFNlY3Rpb25bXSkgPT4gdGhpcy5maWx0ZXJWaXNpYmxlVHJlZTxTZWN0aW9uPihsaXN0KSlcclxuXHQpO1xyXG5cclxuXHRwdWJsaWMgYXR0cmlidXRlc1Zpc2libGUkOiBPYnNlcnZhYmxlPEF0dHJpYnV0ZVtdPiA9IHRoaXMuYXR0cmlidXRlcyQucGlwZShcclxuXHRcdG1hcCgobGlzdDogQXR0cmlidXRlW10pID0+IHRoaXMuZmlsdGVyVmlzaWJsZVRyZWU8QXR0cmlidXRlPihsaXN0KSlcclxuXHQpO1xyXG5cclxuXHQvLyBIZWxwZXJzIGRlIGNvbnZlbmllbmNpYSBvcGNpb25hbGVzXHJcblx0cHVibGljIGdldFZpc2libGVDaGlsZHJlbjxUIGV4dGVuZHMgeyBpc1Zpc2libGU/OiBib29sZWFuOyBjaGlsZHJlbj86IFRbXSB9Pihub2RlPzogVCk6IFRbXSB7XHJcblx0XHRyZXR1cm4gdGhpcy5maWx0ZXJWaXNpYmxlVHJlZShub2RlPy5jaGlsZHJlbik7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgaGFzVmlzaWJsZUNoaWxkcmVuPFQgZXh0ZW5kcyB7IGlzVmlzaWJsZT86IGJvb2xlYW47IGNoaWxkcmVuPzogVFtdIH0+KG5vZGU/OiBUKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5nZXRWaXNpYmxlQ2hpbGRyZW4obm9kZSkubGVuZ3RoID4gMDtcclxuXHR9XHJcbn0iXX0=
@@ -1,4 +1,5 @@
1
- import { Component, EventEmitter, inject, Input, Output, signal } from '@angular/core';
1
+ import { Component, EventEmitter, inject, Input, Output, signal, PLATFORM_ID } from '@angular/core';
2
+ import { isPlatformBrowser } from '@angular/common';
2
3
  import { LoadingSectionEcComponent } from '../../widgets-ec';
3
4
  import { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';
4
5
  import { Router, RouterLink } from '@angular/router';
@@ -12,6 +13,8 @@ export class LoginFormEcComponent {
12
13
  _formBuilder = inject(FormBuilder);
13
14
  _toastService = inject(ToastService);
14
15
  _router = inject(Router);
16
+ platformId = inject(PLATFORM_ID);
17
+ showPassword = false;
15
18
  /**
16
19
  * Parametro para indicar si tras loguear
17
20
  * debe redireccionar o no.
@@ -56,16 +59,18 @@ export class LoginFormEcComponent {
56
59
  this.loggedIn = true;
57
60
  if (this.inCart) {
58
61
  // Si se está en el carrito, se cierra el modal de login
59
- const modal = document.getElementById('modalInvitado');
60
- if (modal) {
61
- const modalInstance = window.bootstrap?.Modal?.getInstance(modal);
62
- if (modalInstance) {
63
- modalInstance.hide();
64
- }
65
- else {
66
- const closeButton = modal.querySelector('[data-bs-dismiss="modal"]');
67
- if (closeButton) {
68
- closeButton.click();
62
+ if (isPlatformBrowser(this.platformId)) {
63
+ const modal = document.getElementById('modalInvitado');
64
+ if (modal) {
65
+ const modalInstance = window.bootstrap?.Modal?.getInstance(modal);
66
+ if (modalInstance) {
67
+ modalInstance.hide();
68
+ }
69
+ else {
70
+ const closeButton = modal.querySelector('[data-bs-dismiss="modal"]');
71
+ if (closeButton) {
72
+ closeButton.click();
73
+ }
69
74
  }
70
75
  }
71
76
  }
@@ -100,6 +105,9 @@ export class LoginFormEcComponent {
100
105
  ? resolverFunction()
101
106
  : this._router.navigateByUrl(this.redirectTo);
102
107
  }
108
+ togglePassword() {
109
+ this.showPassword = !this.showPassword;
110
+ }
103
111
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginFormEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
104
112
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LoginFormEcComponent, isStandalone: true, selector: "app-login-form-ec", inputs: { redirect: "redirect", redirectTo: "redirectTo", inCart: "inCart" }, outputs: { ready: "ready" }, ngImport: i0, template: "<div class=\"d-flex flex-column position-relative\">\r\n <h1 class=\"right-line ff-ubuntu-light mb-4\"><span>Ingresar</span></h1>\r\n <p class=\"ff-ubuntu-light font-sm pr-4 mb-4\">\r\n Si ya est\u00E1s registrado. Ingresa en tu cuenta con tu email y la\r\n contrase\u00F1a adecuada.\r\n </p>\r\n <div class=\"w-md-50 w-100 text-center\">\r\n <form [formGroup]=\"loginForm()\" (submit)=\"login($event)\">\r\n <input class=\"form-control mb-4 radius-0\" type=\"email\" formControlName=\"username\"\r\n placeholder=\"Correo Electr\u00F3nico\">\r\n <input class=\"form-control mb-4 radius-0\" type=\"password\" formControlName=\"password\"\r\n placeholder=\"Contrase\u00F1a\">\r\n\r\n <div class=\"row d-flex flex-column\">\r\n <div class=\"col-12 mb-4\">\r\n <button type=\"submit\"\r\n class=\"bg-gray border-0 px-4 py-2 color-white ff-ubuntu-light\">INGRESAR</button>\r\n </div>\r\n <div class=\"col-12 d-flex justify-content-center align-items-center\">\r\n <a [routerLink]=\"'/auth/forgot-password'\" class=\"font-md ff-ubuntu-light\">\r\n \u00BFOlvid\u00F3 su contrase\u00F1a?\r\n </a>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n @if(loading){\r\n <app-loading-section-ec></app-loading-section-ec>\r\n }\r\n</div>", styles: [""], dependencies: [{ kind: "component", type: LoadingSectionEcComponent, selector: "app-loading-section-ec" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
105
113
  }
@@ -115,4 +123,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
115
123
  }], inCart: [{
116
124
  type: Input
117
125
  }] } });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tZm9ybS1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hdXRoLWVjL2xvZ2luLWZvcm0tZWMvbG9naW4tZm9ybS1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hdXRoLWVjL2xvZ2luLWZvcm0tZWMvbG9naW4tZm9ybS1lYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBYSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQVMzQyxNQUFNLE9BQU8sb0JBQW9CO0lBQ3hCLFlBQVksR0FBZSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0MsWUFBWSxHQUFlLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQyxhQUFhLEdBQWdCLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsRCxPQUFPLEdB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LEVBQUU7WUFDWixzQkFBc0I7WUFDdEIsSUFBSSxHQUFHLEVBQUUsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ2hELENBQUM7aUJBQU0sQ0FBQztnQkFDUCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN6QyxDQUFDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDdEIsQ0FBQyxDQUNELENBQUE7SUFDRixDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsWUFBWTtRQUNMLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsQ0FBQTtRQUM1RCxnQkFBZ0I7WUFDWixDQUFDLENBQUMsZ0JBQWdCLEVBQUU7WUFDcEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUNyRCxDQUFDO3dHQS9GUSxvQkFBb0I7NEZBQXBCLG9CQUFvQix3TENoQmpDLHcrQ0E2Qk0sMEREakJLLHlCQUF5QixrRUFBRSxtQkFBbUIsNjhCQUFFLFVBQVU7OzRGQUl4RCxvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0MsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLHlCQUF5QixFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUM7OEJBYXRFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxLQUFLO3NCQUFkLE1BQU07Z0JBT1MsTUFBTTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMb2FkaW5nU2VjdGlvbkVjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy1lYyc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFJvdXRlciwgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFVzZXJSb2xlVHlwZSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBKc29uUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1sb2dpbi1mb3JtLWVjJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtMb2FkaW5nU2VjdGlvbkVjQ29tcG9uZW50LCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBSb3V0ZXJMaW5rLCBKc29uUGlwZV0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL2xvZ2luLWZvcm0tZWMuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsOiAnLi9sb2dpbi1mb3JtLWVjLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9naW5Gb3JtRWNDb21wb25lbnQge1xyXG5cdHByaXZhdGUgX2F1dGhTZXJ2aWNlOkF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcclxuXHRwcml2YXRlIF9mb3JtQnVpbGRlcjpGb3JtQnVpbGRlciA9IGluamVjdChGb3JtQnVpbGRlcik7XHJcblx0cHJpdmF0ZSBfdG9hc3RTZXJ2aWNlOlRvYXN0U2VydmljZSA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xyXG5cdHByaXZhdGUgX3JvdXRlcjpSb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuXHQvKipcclxuXHQgKiBQYXJhbWV0cm8gcGFyYSBpbmRpY2FyIHNpIHRyYXMgbG9ndWVhclxyXG5cdCAqIGRlYmUgcmVkaXJlY2Npb25hciBvIG5vLlxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpIHJlZGlyZWN0OmJvb2xlYW4gPSB0cnVlO1xyXG5cdC8qKlxyXG5cdCAqIFBhcmFtZXRybyBwYXJhIGluZGljYXIgYSBkb25kZSByZWRpcmVjY2lvbmFyLlxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpIHJlZGlyZWN0VG86c3RyaW5nID0gJy8nO1xyXG5cdEBPdXRwdXQoKSByZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHQvKipcclxuXHQgKiBNdWVzdHJhIHNpIGVzdGEgY2FyZ2FuZG8gbyBuby5cclxuXHQgKi9cclxuXHRwdWJsaWMgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdHB1YmxpYyBsb2dnZWRJbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHRASW5wdXQoKSBwdWJsaWMgaW5DYXJ0OiBib29sZWFuID0gZmFsc2U7XHJcblx0LyoqXHJcblx0ICogU2lnbmFsIHF1ZSBndWFyZGEgZWwgZm9ybXVsYXJpbyBkZSBsb2dpbi5cclxuXHQgKi9cclxuXHRwdWJsaWMgbG9naW5Gb3JtOiBhbnkgPSBzaWduYWw8Rm9ybUdyb3VwPihcclxuXHRcdHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwKHtcclxuXHRcdFx0dXNlcm5hbWU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcblx0XHRcdHBhc3N3b3JkOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdXHJcblx0XHR9KVxyXG5cdCk7XHJcblx0LyoqXHJcblx0ICogTG9ndWVhIGFsIHVzdWFyaW8gZW4gbGEgcGxhdGFmb3JtYS5cclxuXHQgKiBAcGFyYW0gJGV2ZW50IFxyXG5cdCAqIEBwYXJhbSB3aXRoUm9sZXMgXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0cHVibGljIGxvZ2luKCRldmVudDogRXZlbnQsIHdpdGhSb2xlczogVXNlclJvbGVUeXBlW10gPSBbXSkge1xyXG5cdFx0JGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHR0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG5cdFx0aWYgKCF0aGlzLmxvZ2luRm9ybSgpLnZhbGlkKSB7XHJcblx0XHRcdHRoaXMuX3RvYXN0U2VydmljZS5zaG93KCdsb2dpbi1mb3JtLWluY29tcGxldGUnKVxyXG5cdFx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0Zmlyc3RWYWx1ZUZyb20odGhpcy5fYXV0aFNlcnZpY2UubG9naW4odGhpcy5sb2dpbkZvcm0oKS52YWx1ZSwgd2l0aFJvbGVzKSkudGhlbihcclxuXHRcdFx0KHJlczogYW55KSA9PiB7XHJcblx0XHRcdFx0aWYgKHJlcyA9PSAnb2snKSB7XHJcblx0XHRcdFx0XHR0aGlzLnJlYWR5LmVtaXQodGhpcy5sb2dpbkZvcm0oKS52YWx1ZS51c2VybmFtZSk7XHJcblx0XHRcdFx0XHR0aGlzLl90b2FzdFNlcnZpY2Uuc2hvdygnbG9naW4tc3VjY2VzcycpO1xyXG5cdFx0XHRcdFx0dGhpcy5sb2dnZWRJbiA9IHRydWU7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5pbkNhcnQpIHtcclxuXHRcdFx0XHRcdFx0Ly8gU2kgc2UgZXN0w6EgZW4gZWwgY2Fycml0bywgc2UgY2llcnJhIGVsIG1vZGFsIGRlIGxvZ2luXHJcblx0XHRcdFx0XHRcdGNvbnN0IG1vZGFsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vZGFsSW52aXRhZG8nKTtcclxuXHRcdFx0XHRcdFx0aWYgKG1vZGFsKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc3QgbW9kYWxJbnN0YW5jZSA9ICh3aW5kb3cgYXMgYW55KS5ib290c3RyYXA/Lk1vZGFsPy5nZXRJbnN0YW5jZShtb2RhbCk7XHJcblx0XHRcdFx0XHRcdFx0aWYgKG1vZGFsSW5zdGFuY2UpIHtcclxuXHRcdFx0XHRcdFx0XHRcdG1vZGFsSW5zdGFuY2UuaGlkZSgpO1xyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBjbG9zZUJ1dHRvbiA9IG1vZGFsLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWJzLWRpc21pc3M9XCJtb2RhbFwiXScpIGFzIEhUTUxFbGVtZW50O1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKGNsb3NlQnV0dG9uKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGNsb3NlQnV0dG9uLmNsaWNrKCk7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvY2hlY2tvdXQnKTtcclxuXHRcdFx0XHRcdH0gZWxzZXtcclxuXHRcdFx0XHRcdFx0dGhpcy5yZWRpcmVjdCAmJiB0aGlzLnJlZGlyZWN0SG9tZSgpO1x0XHRcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdH0gZWxzZSBpZiAocmVzID09ICdlcnJvcicpIHtcclxuXHRcdFx0XHRcdHRoaXMuX3RvYXN0U2VydmljZS5lcnJvcignbG9naW4tZXJyb3InKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0fSxcclxuXHRcdFx0KGVycjogYW55KSA9PiB7XHJcblx0XHRcdFx0Ly8gTWFuZWpvIGRlIGVycm9yIDQwMVxyXG5cdFx0XHRcdGlmIChlcnI/LnN0YXR1cyA9PT0gNDAxKSB7XHJcblx0XHRcdFx0XHR0aGlzLl90b2FzdFNlcnZpY2Uuc2hvdygnaW52YWxpZC1jcmVkZW50aWFscycpO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHR0aGlzLl90b2FzdFNlcnZpY2UuZXJyb3IoJ2xvZ2luLWVycm9yJyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHR9XHJcblx0XHQpXHJcblx0fVxyXG5cdC8qKlxyXG5cdCAqIFNpIGVsIHNlcnZpY2lvIGRlIGF1dGggdGllbmUgY29uZmlndXJhZG8gYSBkb25kZSB2b2x2ZXIsIHNlIGVqZWN1dGFyIGVzZSBjYXNvLlxyXG5cdCAqIERlIGxvIGNvbnRyYXJpbyByZWRpcmlnZSBhbCBjb250ZW5pZG8gZGUgbGEgdmFyaWFibGUgYHJlZGlyZWN0VG9gLlxyXG5cdCAqL1xyXG5cdHJlZGlyZWN0SG9tZSgpe1xyXG4gICAgICAgIGNvbnN0IHJlc29sdmVyRnVuY3Rpb24gPSB0aGlzLl9hdXRoU2VydmljZS5nZXRIb21lUmVzb2x2ZXIoKVxyXG4gICAgICAgIHJlc29sdmVyRnVuY3Rpb25cclxuICAgICAgICAgICAgPyByZXNvbHZlckZ1bmN0aW9uKClcclxuICAgICAgICAgICAgOiB0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnJlZGlyZWN0VG8pXHJcbiAgICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gcG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgIDxoMSBjbGFzcz1cInJpZ2h0LWxpbmUgZmYtdWJ1bnR1LWxpZ2h0IG1iLTRcIj48c3Bhbj5JbmdyZXNhcjwvc3Bhbj48L2gxPlxyXG4gICAgPHAgY2xhc3M9XCJmZi11YnVudHUtbGlnaHQgZm9udC1zbSBwci00IG1iLTRcIj5cclxuICAgICAgICBTaSB5YSBlc3TDoXMgcmVnaXN0cmFkby4gSW5ncmVzYSBlbiB0dSBjdWVudGEgY29uIHR1IGVtYWlsIHkgbGFcclxuICAgICAgICBjb250cmFzZcOxYSBhZGVjdWFkYS5cclxuICAgIDwvcD5cclxuICAgIDxkaXYgY2xhc3M9XCJ3LW1kLTUwIHctMTAwIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJsb2dpbkZvcm0oKVwiIChzdWJtaXQpPVwibG9naW4oJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgbWItNCByYWRpdXMtMFwiIHR5cGU9XCJlbWFpbFwiIGZvcm1Db250cm9sTmFtZT1cInVzZXJuYW1lXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQ29ycmVvIEVsZWN0csOzbmljb1wiPlxyXG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgbWItNCByYWRpdXMtMFwiIHR5cGU9XCJwYXNzd29yZFwiIGZvcm1Db250cm9sTmFtZT1cInBhc3N3b3JkXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQ29udHJhc2XDsWFcIj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1iLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJnLWdyYXkgYm9yZGVyLTAgcHgtNCBweS0yIGNvbG9yLXdoaXRlIGZmLXVidW50dS1saWdodFwiPklOR1JFU0FSPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiJy9hdXRoL2ZvcmdvdC1wYXNzd29yZCdcIiBjbGFzcz1cImZvbnQtbWQgZmYtdWJ1bnR1LWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIMK/T2x2aWTDsyBzdSBjb250cmFzZcOxYT9cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgPC9kaXY+XHJcbiAgICBAaWYobG9hZGluZyl7XHJcbiAgICA8YXBwLWxvYWRpbmctc2VjdGlvbi1lYz48L2FwcC1sb2FkaW5nLXNlY3Rpb24tZWM+XHJcbiAgICB9XHJcbjwvZGl2PiJdfQ==
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tZm9ybS1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hdXRoLWVjL2xvZ2luLWZvcm0tZWMvbG9naW4tZm9ybS1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hdXRoLWVjL2xvZ2luLWZvcm0tZWMvbG9naW4tZm9ybS1lYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQWEsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekYsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFTM0MsTUFBTSxPQUFPLG9CQUFvQjtJQUN4QixZQUFZLEdBQWdCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNoRCxZQUFZLEdBQWdCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FB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VSxFQUFFLFFBQVEsQ0FBQzs4QkFnQnRFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxLQUFLO3NCQUFkLE1BQU07Z0JBT1MsTUFBTTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPdXRwdXQsIHNpZ25hbCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBMb2FkaW5nU2VjdGlvbkVjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy1lYyc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFJvdXRlciwgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFVzZXJSb2xlVHlwZSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBKc29uUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1sb2dpbi1mb3JtLWVjJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtMb2FkaW5nU2VjdGlvbkVjQ29tcG9uZW50LCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBSb3V0ZXJMaW5rLCBKc29uUGlwZV0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL2xvZ2luLWZvcm0tZWMuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsOiAnLi9sb2dpbi1mb3JtLWVjLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9naW5Gb3JtRWNDb21wb25lbnQge1xyXG5cdHByaXZhdGUgX2F1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XHJcblx0cHJpdmF0ZSBfZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyID0gaW5qZWN0KEZvcm1CdWlsZGVyKTtcclxuXHRwcml2YXRlIF90b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xyXG5cdHByaXZhdGUgX3JvdXRlcjogUm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcblx0cHJpdmF0ZSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcclxuXHRzaG93UGFzc3dvcmQgPSBmYWxzZTtcclxuXHJcblx0LyoqXHJcblx0ICogUGFyYW1ldHJvIHBhcmEgaW5kaWNhciBzaSB0cmFzIGxvZ3VlYXJcclxuXHQgKiBkZWJlIHJlZGlyZWNjaW9uYXIgbyBuby5cclxuXHQgKi9cclxuXHRASW5wdXQoKSByZWRpcmVjdDogYm9vbGVhbiA9IHRydWU7XHJcblx0LyoqXHJcblx0ICogUGFyYW1ldHJvIHBhcmEgaW5kaWNhciBhIGRvbmRlIHJlZGlyZWNjaW9uYXIuXHJcblx0ICovXHJcblx0QElucHV0KCkgcmVkaXJlY3RUbzogc3RyaW5nID0gJy8nO1xyXG5cdEBPdXRwdXQoKSByZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHQvKipcclxuXHQgKiBNdWVzdHJhIHNpIGVzdGEgY2FyZ2FuZG8gbyBuby5cclxuXHQgKi9cclxuXHRwdWJsaWMgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdHB1YmxpYyBsb2dnZWRJbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHRASW5wdXQoKSBwdWJsaWMgaW5DYXJ0OiBib29sZWFuID0gZmFsc2U7XHJcblx0LyoqXHJcblx0ICogU2lnbmFsIHF1ZSBndWFyZGEgZWwgZm9ybXVsYXJpbyBkZSBsb2dpbi5cclxuXHQgKi9cclxuXHRwdWJsaWMgbG9naW5Gb3JtOiBhbnkgPSBzaWduYWw8Rm9ybUdyb3VwPihcclxuXHRcdHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwKHtcclxuXHRcdFx0dXNlcm5hbWU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcblx0XHRcdHBhc3N3b3JkOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdXHJcblx0XHR9KVxyXG5cdCk7XHJcblx0LyoqXHJcblx0ICogTG9ndWVhIGFsIHVzdWFyaW8gZW4gbGEgcGxhdGFmb3JtYS5cclxuXHQgKiBAcGFyYW0gJGV2ZW50IFxyXG5cdCAqIEBwYXJhbSB3aXRoUm9sZXMgXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0cHVibGljIGxvZ2luKCRldmVudDogRXZlbnQsIHdpdGhSb2xlczogVXNlclJvbGVUeXBlW10gPSBbXSkge1xyXG5cdFx0JGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHR0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG5cdFx0aWYgKCF0aGlzLmxvZ2luRm9ybSgpLnZhbGlkKSB7XHJcblx0XHRcdHRoaXMuX3RvYXN0U2VydmljZS5zaG93KCdsb2dpbi1mb3JtLWluY29tcGxldGUnKVxyXG5cdFx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0Zmlyc3RWYWx1ZUZyb20odGhpcy5fYXV0aFNlcnZpY2UubG9naW4odGhpcy5sb2dpbkZvcm0oKS52YWx1ZSwgd2l0aFJvbGVzKSkudGhlbihcclxuXHRcdFx0KHJlczogYW55KSA9PiB7XHJcblx0XHRcdFx0aWYgKHJlcyA9PSAnb2snKSB7XHJcblx0XHRcdFx0XHR0aGlzLnJlYWR5LmVtaXQodGhpcy5sb2dpbkZvcm0oKS52YWx1ZS51c2VybmFtZSk7XHJcblx0XHRcdFx0XHR0aGlzLl90b2FzdFNlcnZpY2Uuc2hvdygnbG9naW4tc3VjY2VzcycpO1xyXG5cdFx0XHRcdFx0dGhpcy5sb2dnZWRJbiA9IHRydWU7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5pbkNhcnQpIHtcclxuXHRcdFx0XHRcdFx0Ly8gU2kgc2UgZXN0w6EgZW4gZWwgY2Fycml0bywgc2UgY2llcnJhIGVsIG1vZGFsIGRlIGxvZ2luXHJcblx0XHRcdFx0XHRcdGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc3QgbW9kYWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9kYWxJbnZpdGFkbycpO1xyXG5cdFx0XHRcdFx0XHRcdGlmIChtb2RhbCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgbW9kYWxJbnN0YW5jZSA9ICh3aW5kb3cgYXMgYW55KS5ib290c3RyYXA/Lk1vZGFsPy5nZXRJbnN0YW5jZShtb2RhbCk7XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAobW9kYWxJbnN0YW5jZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRtb2RhbEluc3RhbmNlLmhpZGUoKTtcclxuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IGNsb3NlQnV0dG9uID0gbW9kYWwucXVlcnlTZWxlY3RvcignW2RhdGEtYnMtZGlzbWlzcz1cIm1vZGFsXCJdJykgYXMgSFRNTEVsZW1lbnQ7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGlmIChjbG9zZUJ1dHRvbikge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNsb3NlQnV0dG9uLmNsaWNrKCk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9jaGVja291dCcpO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5yZWRpcmVjdCAmJiB0aGlzLnJlZGlyZWN0SG9tZSgpO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHR9IGVsc2UgaWYgKHJlcyA9PSAnZXJyb3InKSB7XHJcblx0XHRcdFx0XHR0aGlzLl90b2FzdFNlcnZpY2UuZXJyb3IoJ2xvZ2luLWVycm9yJylcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdH0sXHJcblx0XHRcdChlcnI6IGFueSkgPT4ge1xyXG5cdFx0XHRcdC8vIE1hbmVqbyBkZSBlcnJvciA0MDFcclxuXHRcdFx0XHRpZiAoZXJyPy5zdGF0dXMgPT09IDQwMSkge1xyXG5cdFx0XHRcdFx0dGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coJ2ludmFsaWQtY3JlZGVudGlhbHMnKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy5fdG9hc3RTZXJ2aWNlLmVycm9yKCdsb2dpbi1lcnJvcicpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0fVxyXG5cdFx0KVxyXG5cdH1cclxuXHQvKipcclxuXHQgKiBTaSBlbCBzZXJ2aWNpbyBkZSBhdXRoIHRpZW5lIGNvbmZpZ3VyYWRvIGEgZG9uZGUgdm9sdmVyLCBzZSBlamVjdXRhciBlc2UgY2Fzby5cclxuXHQgKiBEZSBsbyBjb250cmFyaW8gcmVkaXJpZ2UgYWwgY29udGVuaWRvIGRlIGxhIHZhcmlhYmxlIGByZWRpcmVjdFRvYC5cclxuXHQgKi9cclxuXHRyZWRpcmVjdEhvbWUoKSB7XHJcblx0XHRjb25zdCByZXNvbHZlckZ1bmN0aW9uID0gdGhpcy5fYXV0aFNlcnZpY2UuZ2V0SG9tZVJlc29sdmVyKClcclxuXHRcdHJlc29sdmVyRnVuY3Rpb25cclxuXHRcdFx0PyByZXNvbHZlckZ1bmN0aW9uKClcclxuXHRcdFx0OiB0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnJlZGlyZWN0VG8pXHJcblx0fVxyXG5cdHRvZ2dsZVBhc3N3b3JkKCkge1xyXG5cdFx0dGhpcy5zaG93UGFzc3dvcmQgPSAhdGhpcy5zaG93UGFzc3dvcmQ7XHJcblx0fVxyXG5cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgPGgxIGNsYXNzPVwicmlnaHQtbGluZSBmZi11YnVudHUtbGlnaHQgbWItNFwiPjxzcGFuPkluZ3Jlc2FyPC9zcGFuPjwvaDE+XHJcbiAgICA8cCBjbGFzcz1cImZmLXVidW50dS1saWdodCBmb250LXNtIHByLTQgbWItNFwiPlxyXG4gICAgICAgIFNpIHlhIGVzdMOhcyByZWdpc3RyYWRvLiBJbmdyZXNhIGVuIHR1IGN1ZW50YSBjb24gdHUgZW1haWwgeSBsYVxyXG4gICAgICAgIGNvbnRyYXNlw7FhIGFkZWN1YWRhLlxyXG4gICAgPC9wPlxyXG4gICAgPGRpdiBjbGFzcz1cInctbWQtNTAgdy0xMDAgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImxvZ2luRm9ybSgpXCIgKHN1Ym1pdCk9XCJsb2dpbigkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBtYi00IHJhZGl1cy0wXCIgdHlwZT1cImVtYWlsXCIgZm9ybUNvbnRyb2xOYW1lPVwidXNlcm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJDb3JyZW8gRWxlY3Ryw7NuaWNvXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBtYi00IHJhZGl1cy0wXCIgdHlwZT1cInBhc3N3b3JkXCIgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJDb250cmFzZcOxYVwiPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbWItNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmctZ3JheSBib3JkZXItMCBweC00IHB5LTIgY29sb3Itd2hpdGUgZmYtdWJ1bnR1LWxpZ2h0XCI+SU5HUkVTQVI8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCInL2F1dGgvZm9yZ290LXBhc3N3b3JkJ1wiIGNsYXNzPVwiZm9udC1tZCBmZi11YnVudHUtbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgwr9PbHZpZMOzIHN1IGNvbnRyYXNlw7FhP1xyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Zvcm0+XHJcbiAgICA8L2Rpdj5cclxuICAgIEBpZihsb2FkaW5nKXtcclxuICAgIDxhcHAtbG9hZGluZy1zZWN0aW9uLWVjPjwvYXBwLWxvYWRpbmctc2VjdGlvbi1lYz5cclxuICAgIH1cclxuPC9kaXY+Il19
@@ -1,4 +1,5 @@
1
- import { Component } from '@angular/core';
1
+ import { Component, inject, PLATFORM_ID } from '@angular/core';
2
+ import { isPlatformBrowser } from '@angular/common';
2
3
  import { Validators, ReactiveFormsModule } from '@angular/forms';
3
4
  import { ComponentHelper } from '../../../classes/component-helper';
4
5
  import { TranslateModule } from '@ngx-translate/core';
@@ -19,6 +20,7 @@ export class PasswordResetEcComponent extends ComponentHelper {
19
20
  ready = false;
20
21
  token;
21
22
  formGroup;
23
+ platformId = inject(PLATFORM_ID);
22
24
  constructor(authService, toastr, activedRoute, router, formBuilder) {
23
25
  super();
24
26
  this.authService = authService;
@@ -70,6 +72,8 @@ export class PasswordResetEcComponent extends ComponentHelper {
70
72
  };
71
73
  sendToLogin = () => this.router.navigateByUrl('/auth/login');
72
74
  showPassword = () => {
75
+ if (!isPlatformBrowser(this.platformId))
76
+ return;
73
77
  const passwordInput = document.getElementById('contraseña1');
74
78
  const showIcon = document.getElementById('show1');
75
79
  const hideIcon = document.getElementById('hide1');
@@ -83,6 +87,8 @@ export class PasswordResetEcComponent extends ComponentHelper {
83
87
  hideIcon?.classList.toggle('d-none');
84
88
  };
85
89
  showPassword2 = () => {
90
+ if (!isPlatformBrowser(this.platformId))
91
+ return;
86
92
  const passwordInput = document.getElementById('contraseña2');
87
93
  const showIcon = document.getElementById('show2');
88
94
  const hideIcon = document.getElementById('hide2');
@@ -102,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
102
108
  type: Component,
103
109
  args: [{ selector: 'app-password-reset-ec', imports: [TranslateModule, LoadingInlineEcComponent, ReactiveFormsModule], standalone: true, template: "<div class=\"container\">\r\n <div class=\"row justify-content-center py-5\">\r\n <div class=\"col-12 col-md-6 col-lg-4\">\r\n @if(!ready){\r\n <form [formGroup]=\"formGroup\" (submit)=\"sendNewPassword($event)\">\r\n <div class=\"mb-4 text-center\">\r\n <h3>{{ 'set-new-password' | translate }}</h3>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">{{ 'set-password' | translate }}</label>\r\n <div class=\"input-group\">\r\n <input type=\"password\" formControlName=\"first\" class=\"form-control\" id=\"contrase\u00F1a1\" />\r\n <button class=\"btn btn-outline-secondary btn-password\" type=\"button\" (click)=\"showPassword()\">\r\n <i id=\"show1\" class=\"fas fa-eye i-show-password\"></i>\r\n <i id=\"hide1\" class=\"fas fa-eye-slash d-none i-show-password\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">{{ 'repeat-password' | translate }}</label>\r\n <div class=\"input-group\">\r\n <input type=\"password\" formControlName=\"second\" class=\"form-control\" id=\"contrase\u00F1a2\" />\r\n <button class=\"btn btn-outline-secondary btn-password\" type=\"button\" (click)=\"showPassword2()\">\r\n <i id=\"show2\" class=\"fas fa-eye i-show-password\"></i>\r\n <i id=\"hide2\" class=\"fas fa-eye-slash d-none i-show-password\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"mt-4 text-center\">\r\n <button type=\"submit\" class=\"comprar w-100\">{{ 'update' | translate }}</button>\r\n </div>\r\n @if(loading){\r\n <app-loading-inline-ec></app-loading-inline-ec>\r\n }\r\n </form>\r\n }@else {<div class=\"row justify-content-center mt-5 mb-5\">\r\n <div class=\"text-center\">\r\n <div class=\"mb-4\">\r\n <h3>{{ 'updated-password' | translate }}</h3>\r\n </div>\r\n <div class=\"mb-4\">\r\n <h5>{{ 'updated-password-detail' | translate }}</h5>\r\n </div>\r\n <button class=\"comprar\" (click)=\"sendToLogin()\">{{ 'login' | translate }}</button>\r\n </div>\r\n </div>}\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n</div>" }]
104
110
  }], ctorParameters: () => [{ type: i1.AuthService }, { type: i1.ToastService }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i3.FormBuilder }] });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtcmVzZXQtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvYXV0aC1lYy9wYXNzd29yZC1yZXNldC1lYy9wYXNzd29yZC1yZXNldC1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hdXRoLWVjL3Bhc3N3b3JkLXJlc2V0LWVjL3Bhc3N3b3JkLXJlc2V0LWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUEwQixVQUFVLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7QUFRNUQsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGVBQWU7SUFRbEM7SUFBb0M7SUFBZ0M7SUFDOUU7SUFBMEI7SUFQL0IsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNYLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDaEIsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNYLEtBQUssQ0FBcUI7SUFDN0IsU0FBUyxDQUFhO0lBRTdCLFlBQXNCLFdBQXdCLEVBQVksTUFBb0IsRUFBWSxZQUE0QixFQUMxRyxNQUFjLEVBQVksV0FBd0I7UUFDekQsS0FBSyxFQUFFLENBQUM7UUFGUyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFZLFdBQU0sR0FBTixNQUFN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LHVCQUF1QixXQUd4QixDQUFDLGVBQWUsRUFBRSx3QkFBd0IsRUFBRSxtQkFBbUIsQ0FBQyxjQUM3RCxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IENvbXBvbmVudEhlbHBlciB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvY29tcG9uZW50LWhlbHBlcic7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBMb2FkaW5nSW5saW5lRWNDb21wb25lbnQgfSBmcm9tICcuLi8uLi93aWRnZXRzLWVjJztcclxuQENvbXBvbmVudCh7XHJcbiAgICAgc2VsZWN0b3I6ICdhcHAtcGFzc3dvcmQtcmVzZXQtZWMnLFxyXG4gICAgIHRlbXBsYXRlVXJsOiAncGFzc3dvcmQtcmVzZXQtZWMuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgIHN0eWxlVXJsczogWydwYXNzd29yZC1yZXNldC1lYy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgIGltcG9ydHM6IFtUcmFuc2xhdGVNb2R1bGUsIExvYWRpbmdJbmxpbmVFY0NvbXBvbmVudCwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXHJcbiAgICAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFzc3dvcmRSZXNldEVjQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50SGVscGVyIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgICAgcHVibGljIGVtYWlsID0gXCJcIjtcclxuICAgICBwdWJsaWMgbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgIHB1YmxpYyByZWFkeSA9IGZhbHNlO1xyXG4gICAgIHByb3RlY3RlZCB0b2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgIHB1YmxpYyBmb3JtR3JvdXAhOiBGb3JtR3JvdXA7XHJcblxyXG4gICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsIHByb3RlY3RlZCB0b2FzdHI6IFRvYXN0U2VydmljZSwgcHJvdGVjdGVkIGFjdGl2ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsIHByb3RlY3RlZCBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIpIHtcclxuICAgICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgICB0aGlzLmVjT25Db25zdHJ1Y3QoKVxyXG4gICAgIH1cclxuXHJcbiAgICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgICB0aGlzLnRva2VuID0gdGhpcy5hY3RpdmVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ3Rva2VuJ107XHJcbiAgICAgICAgICAhdGhpcy50b2tlbiAmJiB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvJyk7XHJcbiAgICAgICAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICAgICAgICAgICBmaXJzdDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgICAgc2Vjb25kOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgdGhpcy5lY09uSW5pdCgpXHJcblxyXG4gICAgIH1cclxuXHJcbiAgICAgc2VuZE5ld1Bhc3N3b3JkID0gKGV2ZW50OiBFdmVudCkgPT4ge1xyXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgIGlmICh0aGlzLmludmFsaWRGb3JtKCkpIHJldHVybjtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnBhc3N3b3JkUmVzZXQodGhpcy5mb3JtR3JvdXAudmFsdWUuZmlyc3QsIHRoaXMudG9rZW4gPz8gJycpLnRvUHJvbWlzZSgpXHJcbiAgICAgICAgICAgICAgIC50aGVuKHRoaXMucHJvY2Vzc09rKVxyXG4gICAgICAgICAgICAgICAuY2F0Y2godGhpcy5wcm9jZXNzRXJyb3IpO1xyXG4gICAgIH1cclxuXHJcbiAgICAgaW52YWxpZEZvcm0gPSAoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5mb3JtR3JvdXAudmFsaWQpIHtcclxuICAgICAgICAgICAgICAgY29uc3QgcGFzc3dvcmRzID0gdGhpcy5mb3JtR3JvdXAudmFsdWU7XHJcbiAgICAgICAgICAgICAgIGlmIChwYXNzd29yZHMuZmlyc3QgPT0gcGFzc3dvcmRzLnNlY29uZCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICBlbHNlIHRoaXMudG9hc3RyLnNob3coJ3Bhc3N3b3JkLWRvZXNudC1tYXRjaCcpO1xyXG4gICAgICAgICAgfSBlbHNlIHRoaXMudG9hc3RyLnNob3coJ2ludmFsaWQtZm9ybScpO1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgfVxyXG5cclxuICAgICBwcm9jZXNzT2sgPSAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnJlYWR5ID0gdHJ1ZTtcclxuICAgICB9XHJcblxyXG4gICAgIHByb2Nlc3NFcnJvciA9IChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICghcmVzcG9uc2UgfHwgcmVzcG9uc2UuZXJyb3IpXHJcbiAgICAgICAgICAgICAgID8gdGhpcy50b2FzdHIuc2hvdygnb3BlcmF0aW9uLWVycm9yJylcclxuICAgICAgICAgICAgICAgOiB0aGlzLnRvYXN0ci5zaG93KHJlc3BvbnNlLmVycm9yKTtcclxuICAgICB9XHJcblxyXG4gICAgIHNlbmRUb0xvZ2luID0gKCkgPT4gdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2F1dGgvbG9naW4nKTtcclxuXHJcbiAgICAgc2hvd1Bhc3N3b3JkID0gKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgcGFzc3dvcmRJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250cmFzZcOxYTEnKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgICAgICAgY29uc3Qgc2hvd0ljb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2hvdzEnKTtcclxuICAgICAgICAgIGNvbnN0IGhpZGVJY29uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hpZGUxJyk7XHJcblxyXG4gICAgICAgICAgaWYgKHBhc3N3b3JkSW5wdXQudHlwZSA9PT0gJ3Bhc3N3b3JkJykge1xyXG4gICAgICAgICAgICAgICBwYXNzd29yZElucHV0LnR5cGUgPSAndGV4dCc7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICBwYXNzd29yZElucHV0LnR5cGUgPSAncGFzc3dvcmQnO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHNob3dJY29uPy5jbGFzc0xpc3QudG9nZ2xlKCdkLW5vbmUnKTtcclxuICAgICAgICAgIGhpZGVJY29uPy5jbGFzc0xpc3QudG9nZ2xlKCdkLW5vbmUnKTtcclxuICAgICB9XHJcblxyXG4gICAgIHNob3dQYXNzd29yZDIgPSAoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBwYXNzd29yZElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRyYXNlw7FhMicpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICAgICAgICBjb25zdCBzaG93SWNvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzaG93MicpO1xyXG4gICAgICAgICAgY29uc3QgaGlkZUljb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaGlkZTInKTtcclxuXHJcbiAgICAgICAgICBpZiAocGFzc3dvcmRJbnB1dC50eXBlID09PSAncGFzc3dvcmQnKSB7XHJcbiAgICAgICAgICAgICAgIHBhc3N3b3JkSW5wdXQudHlwZSA9ICd0ZXh0JztcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgIHBhc3N3b3JkSW5wdXQudHlwZSA9ICdwYXNzd29yZCc7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgc2hvd0ljb24/LmNsYXNzTGlzdC50b2dnbGUoJ2Qtbm9uZScpO1xyXG4gICAgICAgICAgaGlkZUljb24/LmNsYXNzTGlzdC50b2dnbGUoJ2Qtbm9uZScpO1xyXG4gICAgIH1cclxufSIsIjxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlciBweS01XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtNiBjb2wtbGctNFwiPlxyXG4gICAgICAgICAgICBAaWYoIXJlYWR5KXtcclxuICAgICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiAoc3VibWl0KT1cInNlbmROZXdQYXNzd29yZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMz57eyAnc2V0LW5ldy1wYXNzd29yZCcgfCB0cmFuc2xhdGUgfX08L2gzPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eyAnc2V0LXBhc3N3b3JkJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicGFzc3dvcmRcIiBmb3JtQ29udHJvbE5hbWU9XCJmaXJzdFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJjb250cmFzZcOxYTFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBidG4tcGFzc3dvcmRcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNob3dQYXNzd29yZCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBpZD1cInNob3cxXCIgY2xhc3M9XCJmYXMgZmEtZXllIGktc2hvdy1wYXNzd29yZFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGlkPVwiaGlkZTFcIiBjbGFzcz1cImZhcyBmYS1leWUtc2xhc2ggZC1ub25lIGktc2hvdy1wYXNzd29yZFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7ICdyZXBlYXQtcGFzc3dvcmQnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJwYXNzd29yZFwiIGZvcm1Db250cm9sTmFtZT1cInNlY29uZFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJjb250cmFzZcOxYTJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBidG4tcGFzc3dvcmRcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNob3dQYXNzd29yZDIoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgaWQ9XCJzaG93MlwiIGNsYXNzPVwiZmFzIGZhLWV5ZSBpLXNob3ctcGFzc3dvcmRcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBpZD1cImhpZGUyXCIgY2xhc3M9XCJmYXMgZmEtZXllLXNsYXNoIGQtbm9uZSBpLXNob3ctcGFzc3dvcmRcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiY29tcHJhciB3LTEwMFwiPnt7ICd1cGRhdGUnIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIEBpZihsb2FkaW5nKXtcclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWxvYWRpbmctaW5saW5lLWVjPjwvYXBwLWxvYWRpbmctaW5saW5lLWVjPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgIH1AZWxzZSB7PGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIG10LTUgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGgzPnt7ICd1cGRhdGVkLXBhc3N3b3JkJyB8IHRyYW5zbGF0ZSB9fTwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg1Pnt7ICd1cGRhdGVkLXBhc3N3b3JkLWRldGFpbCcgfCB0cmFuc2xhdGUgfX08L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjb21wcmFyXCIgKGNsaWNrKT1cInNlbmRUb0xvZ2luKClcIj57eyAnbG9naW4nIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+fVxyXG5cclxuXHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtcmVzZXQtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvYXV0aC1lYy9wYXNzd29yZC1yZXNldC1lYy9wYXNzd29yZC1yZXNldC1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hdXRoLWVjL3Bhc3N3b3JkLXJlc2V0LWVjL3Bhc3N3b3JkLXJlc2V0LWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQTBCLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7OztBQVE1RCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZUFBZTtJQVNsQztJQUFvQztJQUFnQztJQUM5RTtJQUEwQjtJQVIvQixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ1gsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNoQixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ1gsS0FBSyxDQUFxQjtJQUM3QixTQUFTLENBQWE7SUFDckIsVUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUV6QyxZQUFzQixXQUF3QixFQUFZ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USxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQyxDQUFBO3dHQTFGTyx3QkFBd0I7NEZBQXhCLHdCQUF3Qix3R0NmckMsK3ZGQW1ETSx5RER2Q1MsZUFBZSw0RkFBRSx3QkFBd0IsbUZBQUUsbUJBQW1COzs0RkFHaEUsd0JBQXdCO2tCQVBwQyxTQUFTOytCQUNLLHVCQUF1QixXQUd4QixDQUFDLGVBQWUsRUFBRSx3QkFBd0IsRUFBRSxtQkFBbUIsQ0FBQyxjQUM3RCxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIGluamVjdCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2VjLXNlcnZpY2VzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IExvYWRpbmdJbmxpbmVFY0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3dpZGdldHMtZWMnO1xyXG5AQ29tcG9uZW50KHtcclxuICAgICBzZWxlY3RvcjogJ2FwcC1wYXNzd29yZC1yZXNldC1lYycsXHJcbiAgICAgdGVtcGxhdGVVcmw6ICdwYXNzd29yZC1yZXNldC1lYy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICAgc3R5bGVVcmxzOiBbJ3Bhc3N3b3JkLXJlc2V0LWVjLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICAgaW1wb3J0czogW1RyYW5zbGF0ZU1vZHVsZSwgTG9hZGluZ0lubGluZUVjQ29tcG9uZW50LCBSZWFjdGl2ZUZvcm1zTW9kdWxlXSxcclxuICAgICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYXNzd29yZFJlc2V0RWNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRIZWxwZXIgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAgICBwdWJsaWMgZW1haWwgPSBcIlwiO1xyXG4gICAgIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgcHVibGljIHJlYWR5ID0gZmFsc2U7XHJcbiAgICAgcHJvdGVjdGVkIHRva2VuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAgcHVibGljIGZvcm1Hcm91cCE6IEZvcm1Hcm91cDtcclxuICAgICBwcml2YXRlIHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xyXG5cclxuICAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBwcm90ZWN0ZWQgdG9hc3RyOiBUb2FzdFNlcnZpY2UsIHByb3RlY3RlZCBhY3RpdmVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgICAgcHVibGljIHJvdXRlcjogUm91dGVyLCBwcm90ZWN0ZWQgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7XHJcbiAgICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgICAgdGhpcy5lY09uQ29uc3RydWN0KClcclxuICAgICB9XHJcblxyXG4gICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgICAgdGhpcy50b2tlbiA9IHRoaXMuYWN0aXZlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zWyd0b2tlbiddO1xyXG4gICAgICAgICAgIXRoaXMudG9rZW4gJiYgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnLycpO1xyXG4gICAgICAgICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgICAgICAgICAgZmlyc3Q6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgICAgICAgIHNlY29uZDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIHRoaXMuZWNPbkluaXQoKVxyXG5cclxuICAgICB9XHJcblxyXG4gICAgIHNlbmROZXdQYXNzd29yZCA9IChldmVudDogRXZlbnQpID0+IHtcclxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICBpZiAodGhpcy5pbnZhbGlkRm9ybSgpKSByZXR1cm47XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5hdXRoU2VydmljZS5wYXNzd29yZFJlc2V0KHRoaXMuZm9ybUdyb3VwLnZhbHVlLmZpcnN0LCB0aGlzLnRva2VuID8/ICcnKS50b1Byb21pc2UoKVxyXG4gICAgICAgICAgICAgICAudGhlbih0aGlzLnByb2Nlc3NPaylcclxuICAgICAgICAgICAgICAgLmNhdGNoKHRoaXMucHJvY2Vzc0Vycm9yKTtcclxuICAgICB9XHJcblxyXG4gICAgIGludmFsaWRGb3JtID0gKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwLnZhbGlkKSB7XHJcbiAgICAgICAgICAgICAgIGNvbnN0IHBhc3N3b3JkcyA9IHRoaXMuZm9ybUdyb3VwLnZhbHVlO1xyXG4gICAgICAgICAgICAgICBpZiAocGFzc3dvcmRzLmZpcnN0ID09IHBhc3N3b3Jkcy5zZWNvbmQpIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgZWxzZSB0aGlzLnRvYXN0ci5zaG93KCdwYXNzd29yZC1kb2VzbnQtbWF0Y2gnKTtcclxuICAgICAgICAgIH0gZWxzZSB0aGlzLnRvYXN0ci5zaG93KCdpbnZhbGlkLWZvcm0nKTtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgIH1cclxuXHJcbiAgICAgcHJvY2Vzc09rID0gKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5yZWFkeSA9IHRydWU7XHJcbiAgICAgfVxyXG5cclxuICAgICBwcm9jZXNzRXJyb3IgPSAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAoIXJlc3BvbnNlIHx8IHJlc3BvbnNlLmVycm9yKVxyXG4gICAgICAgICAgICAgICA/IHRoaXMudG9hc3RyLnNob3coJ29wZXJhdGlvbi1lcnJvcicpXHJcbiAgICAgICAgICAgICAgIDogdGhpcy50b2FzdHIuc2hvdyhyZXNwb25zZS5lcnJvcik7XHJcbiAgICAgfVxyXG5cclxuICAgICBzZW5kVG9Mb2dpbiA9ICgpID0+IHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9hdXRoL2xvZ2luJyk7XHJcblxyXG4gICAgIHNob3dQYXNzd29yZCA9ICgpID0+IHtcclxuICAgICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICBjb25zdCBwYXNzd29yZElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRyYXNlw7FhMScpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICAgICAgICBjb25zdCBzaG93SWNvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzaG93MScpO1xyXG4gICAgICAgICAgY29uc3QgaGlkZUljb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaGlkZTEnKTtcclxuXHJcbiAgICAgICAgICBpZiAocGFzc3dvcmRJbnB1dC50eXBlID09PSAncGFzc3dvcmQnKSB7XHJcbiAgICAgICAgICAgICAgIHBhc3N3b3JkSW5wdXQudHlwZSA9ICd0ZXh0JztcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgIHBhc3N3b3JkSW5wdXQudHlwZSA9ICdwYXNzd29yZCc7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgc2hvd0ljb24/LmNsYXNzTGlzdC50b2dnbGUoJ2Qtbm9uZScpO1xyXG4gICAgICAgICAgaGlkZUljb24/LmNsYXNzTGlzdC50b2dnbGUoJ2Qtbm9uZScpO1xyXG4gICAgIH1cclxuXHJcbiAgICAgc2hvd1Bhc3N3b3JkMiA9ICgpID0+IHtcclxuICAgICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICBjb25zdCBwYXNzd29yZElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRyYXNlw7FhMicpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICAgICAgICBjb25zdCBzaG93SWNvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzaG93MicpO1xyXG4gICAgICAgICAgY29uc3QgaGlkZUljb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaGlkZTInKTtcclxuXHJcbiAgICAgICAgICBpZiAocGFzc3dvcmRJbnB1dC50eXBlID09PSAncGFzc3dvcmQnKSB7XHJcbiAgICAgICAgICAgICAgIHBhc3N3b3JkSW5wdXQudHlwZSA9ICd0ZXh0JztcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgIHBhc3N3b3JkSW5wdXQudHlwZSA9ICdwYXNzd29yZCc7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgc2hvd0ljb24/LmNsYXNzTGlzdC50b2dnbGUoJ2Qtbm9uZScpO1xyXG4gICAgICAgICAgaGlkZUljb24/LmNsYXNzTGlzdC50b2dnbGUoJ2Qtbm9uZScpO1xyXG4gICAgIH1cclxufSIsIjxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlciBweS01XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtNiBjb2wtbGctNFwiPlxyXG4gICAgICAgICAgICBAaWYoIXJlYWR5KXtcclxuICAgICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiAoc3VibWl0KT1cInNlbmROZXdQYXNzd29yZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMz57eyAnc2V0LW5ldy1wYXNzd29yZCcgfCB0cmFuc2xhdGUgfX08L2gzPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eyAnc2V0LXBhc3N3b3JkJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicGFzc3dvcmRcIiBmb3JtQ29udHJvbE5hbWU9XCJmaXJzdFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJjb250cmFzZcOxYTFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBidG4tcGFzc3dvcmRcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNob3dQYXNzd29yZCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBpZD1cInNob3cxXCIgY2xhc3M9XCJmYXMgZmEtZXllIGktc2hvdy1wYXNzd29yZFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGlkPVwiaGlkZTFcIiBjbGFzcz1cImZhcyBmYS1leWUtc2xhc2ggZC1ub25lIGktc2hvdy1wYXNzd29yZFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7ICdyZXBlYXQtcGFzc3dvcmQnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJwYXNzd29yZFwiIGZvcm1Db250cm9sTmFtZT1cInNlY29uZFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJjb250cmFzZcOxYTJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBidG4tcGFzc3dvcmRcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNob3dQYXNzd29yZDIoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgaWQ9XCJzaG93MlwiIGNsYXNzPVwiZmFzIGZhLWV5ZSBpLXNob3ctcGFzc3dvcmRcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBpZD1cImhpZGUyXCIgY2xhc3M9XCJmYXMgZmEtZXllLXNsYXNoIGQtbm9uZSBpLXNob3ctcGFzc3dvcmRcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiY29tcHJhciB3LTEwMFwiPnt7ICd1cGRhdGUnIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIEBpZihsb2FkaW5nKXtcclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWxvYWRpbmctaW5saW5lLWVjPjwvYXBwLWxvYWRpbmctaW5saW5lLWVjPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgIH1AZWxzZSB7PGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIG10LTUgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGgzPnt7ICd1cGRhdGVkLXBhc3N3b3JkJyB8IHRyYW5zbGF0ZSB9fTwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg1Pnt7ICd1cGRhdGVkLXBhc3N3b3JkLWRldGFpbCcgfCB0cmFuc2xhdGUgfX08L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjb21wcmFyXCIgKGNsaWNrKT1cInNlbmRUb0xvZ2luKClcIj57eyAnbG9naW4nIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+fVxyXG5cclxuXHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==