ng-easycommerce-v18 0.6.23 → 0.6.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ # Version 0.6.24
2
+ - Colección sin filtros: `CollectionEcComponent` usa `products` como fallback del title cuando no hay breadcrumb ni búsqueda, para que `/collection` muestre `Productos` en la pestaña en lugar de `Colección`.
1
3
  # Version 0.6.23
2
4
  - traducción al español para "form-rate-limit"
3
5
  - Formulario de contacto: ante un `429` se muestra el mensaje traducible `form-rate-limit` en lugar del error genérico `inquiry-error`.
@@ -1,5 +1,6 @@
1
1
  import { Component, inject, Input, PLATFORM_ID, signal } from '@angular/core';
2
2
  import { AuthService, CartService, FiltersService, OptionsService, PaginationService, ProductsService, SeoService, ToastService, WishlistService } from '../../ec-services';
3
+ import { TranslateService } from '@ngx-translate/core';
3
4
  import { ActivatedRoute } from '@angular/router';
4
5
  import { CoreConstantsService } from '../../constants';
5
6
  // AÑADIDO BehaviorSubject A LOS IMPORTS
@@ -17,6 +18,7 @@ export class CollectionEcComponent {
17
18
  _toastService = inject(ToastService);
18
19
  _wishlistService = inject(WishlistService);
19
20
  _seoService = inject(SeoService);
21
+ _translateService = inject(TranslateService);
20
22
  params$ = this._activeRoute.params;
21
23
  queryParams$ = this._activeRoute.queryParams;
22
24
  products$ = this._productsService.products$;
@@ -187,7 +189,7 @@ export class CollectionEcComponent {
187
189
  ? this.seoBreadcrumb[this.seoBreadcrumb.length - 1]?.title
188
190
  : null;
189
191
  const searchTitle = this.constanst.searchValue?.trim();
190
- const titlePrefix = breadcrumbTitle || (searchTitle ? `Resultados para "${searchTitle}"` : 'Colección');
192
+ const titlePrefix = breadcrumbTitle || (searchTitle ? `Resultados para "${searchTitle}"` : this._translateService.instant('products') || 'Products');
191
193
  this._seoService.setTitle(`${titlePrefix} | ${siteName}`);
192
194
  this._seoService.setDescription(breadcrumbTitle
193
195
  ? 'Listado de productos, categorías y filtros.'
@@ -242,4 +244,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
242
244
  }], ctorParameters: () => [], propDecorators: { optionsFilters: [{
243
245
  type: Input
244
246
  }] } });
245
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9jb2xsZWN0aW9uLWVjL2NvbGxlY3Rpb24tZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY29sbGVjdGlvbi1lYy9jb2xsZWN0aW9uLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsU0FBUyxFQUFnQixNQUFNLEVBQUUsS0FBSyxFQUFxQixXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhJLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUssT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELHdDQUF3QztBQUN4QyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBWSxHQUFHLEVBQWMsT0FBTyxFQUFRLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqSSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFTcEQsTUFBTSxPQUFPLHFCQUFxQjtJQUV2QixnQkFBZ0IsR0FBb0IsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBQzNELFlBQVksR0FB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QyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksZ0JBQWdCLENBQUMsS0FBc0Q7UUFDN0UseUJBQXlCO1FBQ3pCLE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVoRSxJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN6QiwrQkFBK0I7WUFDL0IsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkMsQ0FBQzthQUFNLENBQUM7WUFDUCxrQ0FBa0M7WUFDbEMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUVELDBFQUEwRTtRQUMxRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7d0dBaFJXLHFCQUFxQjs0RkFBckIscUJBQXFCLDJIQ2xCbEMsc1pBZ0JBOzs0RkRFYSxxQkFBcUI7a0JBUGpDLFNBQVM7K0JBQ0MsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLHVCQUF1QixDQUFDO3dEQXdDekIsY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFmdGVyTmV4dFJlbmRlciwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIGluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBQTEFURk9STV9JRCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZWZhdWx0RmlsdGVyLCBGaWx0ZXJUeXBlLCBQYWdpbmF0aW9uU2V0dGluZ3MsIFByb2R1Y3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBDYXJ0U2VydmljZSwgRmlsdGVyc1NlcnZpY2UsIE9wdGlvbnNTZXJ2aWNlLCBQYWdpbmF0aW9uU2VydmljZSwgUHJvZHVjdHNTZXJ2aWNlLCBTZW9TZXJ2aWNlLCBUb2FzdFNlcnZpY2UsIFdpc2hsaXN0U2VydmljZSB9IGZyb20gJy4uLy4uL2VjLXNlcnZpY2VzJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENvcmVDb25zdGFudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbi8vIEHDkUFESURPIEJlaGF2aW9yU3ViamVjdCBBIExPUyBJTVBPUlRTXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmb3JrSm9pbiwgbWFwLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpbHRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMnO1xuaW1wb3J0IHsgSW5maW5pdGVTY3JvbGxEaXJlY3RpdmUgfSBmcm9tIFwibmd4LWluZmluaXRlLXNjcm9sbFwiO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdsaWItY29sbGVjdGlvbi1lYycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZV0sXG5cdHRlbXBsYXRlVXJsOiAnLi9jb2xsZWN0aW9uLWVjLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmw6ICcuL2NvbGxlY3Rpb24tZWMuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIENvbGxlY3Rpb25FY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuXHRwcm90ZWN0ZWQgX3Byb2R1Y3RzU2VydmljZTogUHJvZHVjdHNTZXJ2aWNlID0gaW5qZWN0KFByb2R1Y3RzU2VydmljZSlcblx0cHJvdGVjdGVkIF9hY3RpdmVSb3V0ZTogQWN0aXZhdGVkUm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpXG5cdHByb3RlY3RlZCBfb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlID0gaW5qZWN0KE9wdGlvbnNTZXJ2aWNlKVxuXHRwcml2YXRlIF9maWx0ZXJzU2VydmljZTogRmlsdGVyc1NlcnZpY2UgPSBpbmplY3QoRmlsdGVyc1NlcnZpY2UpO1xuXHRwcml2YXRlIF9wYWdpbmF0aW9uU2VydmljZTogUGFnaW5hdGlvblNlcnZpY2UgPSBpbmplY3QoUGFnaW5hdGlvblNlcnZpY2UpO1xuXHRwcml2YXRlIF9jYXJ0U2VydmljZTogQ2FydFNlcnZpY2UgPSBpbmplY3QoQ2FydFNlcnZpY2UpO1xuXHRwcml2YXRlIF90b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xuXHRwcml2YXRlIF93aXNobGlzdFNlcnZpY2U6IFdpc2hsaXN0U2VydmljZSA9IGluamVjdChXaXNobGlzdFNlcnZpY2UpO1x0XG5cdHByaXZhdGUgX3Nlb1NlcnZpY2U6IFNlb1NlcnZpY2UgPSBpbmplY3QoU2VvU2VydmljZSk7XG5cblx0cHVibGljIHBhcmFtcyQgPSB0aGlzLl9hY3RpdmVSb3V0ZS5wYXJhbXNcblx0cHVibGljIHF1ZXJ5UGFyYW1zJCA9IHRoaXMuX2FjdGl2ZVJvdXRlLnF1ZXJ5UGFyYW1zXG5cdHB1YmxpYyBwcm9kdWN0cyQgPSB0aGlzLl9wcm9kdWN0c1NlcnZpY2UucHJvZHVjdHMkXG5cblx0cHVibGljIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSlcblx0cHVibGljIGNvbnN0YW5zdDogQ29yZUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQ29yZUNvbnN0YW50c1NlcnZpY2UpXG5cblx0cHVibGljIHByb2R1Y3RzOiBQcm9kdWN0W10gPSBbXTtcblx0cHVibGljIGJyZWFkY3J1bWI6IGFueVtdID0gW107XG5cdHB1YmxpYyBzZW9CcmVhZGNydW1iOiBhbnlbXSA9IFtdO1xuXHRwdWJsaWMgZGVmYXVsdEZpbHRlcnM6IERlZmF1bHRGaWx0ZXJbXSA9IFtdO1xuXHRwdWJsaWMgbG9hZGluZzogQm9vbGVhbiA9IGZhbHNlO1xuXHRwdWJsaWMgcHJvZHVjdHNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cdHB1YmxpYyBjb3VudFByb2R1Y3RzID0gc2lnbmFsPG51bWJlcj4oMClcblx0cHJpdmF0ZSBsb2FkZWQgPSBzaWduYWwoZmFsc2UpO1xuXG5cdC8vIEVzdGFkbyBwYXJhIGFncmVnYWRvIG1hc2l2byBkZXNkZSBsYSB2aXN0YSBkZSBjb2xsZWN0aW9uLlxuXHRwdWJsaWMgYWRkaW5nVG9DYXJ0OiBib29sZWFuID0gZmFsc2U7XG5cdHB1YmxpYyBidWxrQWRkRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXHRwdWJsaWMgYnVsa1Jlc2V0VG9rZW46IG51bWJlciA9IDA7XG5cdHByaXZhdGUgcGVuZGluZ0J1bGtSZXNldCA9IGZhbHNlO1xuXHRwcml2YXRlIGJ1bGtDYXJ0Q2hhbmdlZCA9IGZhbHNlO1xuXHRwcml2YXRlIGxhc3RDYXJ0U2lnbmF0dXJlID0gJyc7XG5cblx0QElucHV0KCkgb3B0aW9uc0ZpbHRlcnM6IEZpbHRlclR5cGVbXSA9IFsnYWxsJ107XG5cblx0ZmlsdGVyc19zb3J0OiBGaWx0ZXJbXSA9IFtdO1xuXG5cdHB1YmxpYyBmaWx0ZXJzJDogT2JzZXJ2YWJsZTxGaWx0ZXJbXT4gPSB0aGlzLl9maWx0ZXJzU2VydmljZS5maWx0ZXJzJDtcblx0cHVibGljIHJlYWR5JDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuX2ZpbHRlcnNTZXJ2aWNlLnJlYWR5JDtcblxuXHRwcml2YXRlIHdpbmRvdz86IFdpbmRvdztcblxuXHRwdWJsaWMgaXNMaXN0OiBib29sZWFuID0gZmFsc2Vcblx0cHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cdHNldEFzTGlzdCA9ICh2YWx1ZTogYm9vbGVhbikgPT4gdGhpcy5pc0xpc3QgPSB2YWx1ZVxuXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHQvLyDwn4yfIE5VRVZPOiBMw5NHSUNBIERFIFdJU0hMSVNUIChGQVZPUklUT1MpXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHQvLyBVc2Ftb3MgdW4gQmVoYXZpb3JTdWJqZWN0IGNvbiB1biBTZXQgcGFyYSBiw7pzcXVlZGFzIGluc3RhbnTDoW5lYXMgZW4gbGEgdmlzdGFcblx0cHJpdmF0ZSBmYXZvcml0ZVByb2R1Y3RDb2Rlc1N1YmogPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNldDxzdHJpbmc+PihuZXcgU2V0PHN0cmluZz4oKSk7XG5cdHB1YmxpYyBmYXZvcml0ZVByb2R1Y3RDb2RlcyQgPSB0aGlzLmZhdm9yaXRlUHJvZHVjdENvZGVzU3Viai5hc09ic2VydmFibGUoKTtcblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblx0bmdPbkluaXQoKTogdm9pZCB7XG5cdFx0aWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcblx0XHRcdHRoaXMud2luZG93Py5zY3JvbGwoMCwgMCk7XG5cdFx0fVxuXG5cdFx0Ly8g8J+MnyBOVUVWTzogQ2FyZ2FyIGxvcyBjw7NkaWdvcyBkZSB3aXNobGlzdCBzb2xvIHNpIGVsIHVzdWFyaW8gZXN0w6EgYXV0ZW50aWNhZG9cblx0XHRpZiAodGhpcy5hdXRoU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQoKSkge1xuXHRcdFx0dGhpcy5sb2FkRmF2b3JpdGVQcm9kdWN0Q29kZXMoKTtcblx0XHR9XG5cblx0XHRjb21iaW5lTGF0ZXN0KFt0aGlzLnBhcmFtcyQsIHRoaXMucXVlcnlQYXJhbXMkXSlcblx0XHRcdC5waXBlKFxuXHRcdFx0XHRtYXAoKFtwYXJhbXMsIHF1ZXJ5XSkgPT4gKHsgcGFyYW1zLCBxdWVyeSB9KSksXG5cdFx0XHRcdGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBKU09OLnN0cmluZ2lmeShhKSA9PT0gSlNPTi5zdHJpbmdpZnkoYikpLFxuXHRcdFx0XHR0YWtlVW50aWwodGhpcy5kZXN0cm95JClcblx0XHRcdClcblx0XHRcdC5zdWJzY3JpYmUoKHsgcGFyYW1zLCBxdWVyeSB9KSA9PiB7XG5cdFx0XHRcdGNvbnN0IHJvdXRlVHlwZSA9IHBhcmFtc1sndHlwZSddIHx8IG51bGw7XG5cdFx0XHRcdHRoaXMuY29uc3RhbnN0LnNldEN1cnJlbnRSb3V0ZVR5cGUocm91dGVUeXBlKTtcblxuXHRcdFx0XHRjb25zdCBwYWdpbmF0aW9uU2V0dGluZ3M6IFBhZ2luYXRpb25TZXR0aW5ncyA9IHtcblx0XHRcdFx0XHRsYXRlc3Q6IHRydWUsXG5cdFx0XHRcdFx0bGltaXQ6IDEwLFxuXHRcdFx0XHRcdHR5cGU6IHBhcmFtc1sndHlwZSddIHx8IG51bGwsXG5cdFx0XHRcdFx0dmFsdWU6IHBhcmFtc1sndmFsdWUnXSB8fCBudWxsXG5cdFx0XHRcdH07XG5cblx0XHRcdFx0dGhpcy5fZmlsdGVyc1NlcnZpY2UuaHlkcmF0ZUZyb21Sb3V0ZShwYWdpbmF0aW9uU2V0dGluZ3MsIHBhcmFtcywgcXVlcnkpO1xuXHRcdFx0XHR0aGlzLl9wYWdpbmF0aW9uU2VydmljZS5yZWZyZXNoQ3VycmVudFF1ZXJ5KCk7XG5cdFx0XHR9KTtcblxuXHRcdHRoaXMuYnVsa0FkZEVuYWJsZWQgPSB0aGlzLmNvbnN0YW5zdC5nZXRCdWxrQWRkRW5hYmxlZCgpO1xuXG5cdFx0dGhpcy5wcm9kdWN0cyRcblx0XHRcdC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcblx0XHRcdC5zdWJzY3JpYmUocHJvZHVjdHMgPT4ge1xuXHRcdFx0XHR0aGlzLnByb2R1Y3RzID0gcHJvZHVjdHMgfHwgW107XG5cdFx0XHR9KTtcblxuXHRcdHRoaXMuX2ZpbHRlcnNTZXJ2aWNlLmZpbHRlcnMkXG5cdFx0XHQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG5cdFx0XHQuc3Vic2NyaWJlKGZpbHRlcnMgPT4ge1xuXHRcdFx0XHR0aGlzLmJyZWFkY3J1bWIgPSB0aGlzLl9vcHRpb25zU2VydmljZS5nZXRCcmVhZGNydW1iQnlGaWx0ZXJzKGZpbHRlcnMpO1xuXHRcdFx0XHR0aGlzLnNlb0JyZWFkY3J1bWIgPSB0aGlzLl9vcHRpb25zU2VydmljZS5nZXRCcmVhZGNydW1iQnlGaWx0ZXJzKGZpbHRlcnMuZmlsdGVyKChmaWx0ZXI6IGFueSkgPT4gZmlsdGVyLnR5cGUoKSA9PT0gJ2NhdGVnb3JpZXMnKSk7XG5cdFx0XHRcdHRoaXMudXBkYXRlQ29sbGVjdGlvblNlbygpO1xuXHRcdFx0fSk7XG5cblx0XHR0aGlzLl9wcm9kdWN0c1NlcnZpY2UubG9hZGluZyRcblx0XHRcdC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcblx0XHRcdC5zdWJzY3JpYmUoKGxvYWRpbmcpID0+IHtcblx0XHRcdFx0dGhpcy5wcm9kdWN0c0xvYWRpbmcgPSBsb2FkaW5nO1xuXHRcdFx0fSk7XG5cblx0XHR0aGlzLl9jYXJ0U2VydmljZS5sb2FkaW5nJFxuXHRcdFx0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuXHRcdFx0LnN1YnNjcmliZSgobG9hZGluZykgPT4ge1xuXHRcdFx0XHR0aGlzLmFkZGluZ1RvQ2FydCA9IGxvYWRpbmc7XG5cdFx0XHRcdGlmICghbG9hZGluZyAmJiB0aGlzLnBlbmRpbmdCdWxrUmVzZXQpIHtcblx0XHRcdFx0XHRpZiAodGhpcy5idWxrQ2FydENoYW5nZWQpIHtcblx0XHRcdFx0XHRcdHRoaXMucmVzZXRCdWxrU2VsZWN0aW9ucygpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHR0aGlzLnBlbmRpbmdCdWxrUmVzZXQgPSBmYWxzZTtcblx0XHRcdFx0XHR0aGlzLmJ1bGtDYXJ0Q2hhbmdlZCA9IGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdHRoaXMuX2NhcnRTZXJ2aWNlLmNhcnRJdGVtcyRcblx0XHRcdC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcblx0XHRcdC5zdWJzY3JpYmUoKGl0ZW1zKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHNpZ25hdHVyZSA9IEpTT04uc3RyaW5naWZ5KGl0ZW1zIHx8IFtdKTtcblx0XHRcdFx0aWYgKHRoaXMucGVuZGluZ0J1bGtSZXNldCAmJiBzaWduYXR1cmUgIT09IHRoaXMubGFzdENhcnRTaWduYXR1cmUpIHtcblx0XHRcdFx0XHR0aGlzLmJ1bGtDYXJ0Q2hhbmdlZCA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5sYXN0Q2FydFNpZ25hdHVyZSA9IHNpZ25hdHVyZTtcblx0XHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSB0b3RhbCA9IDA7XG5cdHByb3RlY3RlZCBwbGF0Zm9ybUlkOiBhbnkgPSBpbmplY3QoUExBVEZPUk1fSUQpXG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0aWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcblx0XHRcdHRoaXMud2luZG93ID0gd2luZG93XG5cdFx0fVxuXHRcdHRoaXMucHJvZHVjdHMkXG5cdFx0XHQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG5cdFx0XHQuc3Vic2NyaWJlKHByb2R1Y3RzID0+IHtcblx0XHRcdFx0aWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcblx0XHRcdFx0XHR0aGlzLmxvYWRlZC5zZXQodHJ1ZSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5kZXN0cm95JC5uZXh0KCk7XG5cdFx0dGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuXHR9XG5cblx0b25TY3JvbGwoKSB7XG5cdFx0dGhpcy5sb2FkaW5nID0gdHJ1ZTtcblx0XHR0aGlzLl9wcm9kdWN0c1NlcnZpY2UudXBkYXRlUHJvZHVjdHMoKVxuXHR9XG5cblx0cHVibGljIHByb2R1Y3RIYXNTdG9jayhwcm9kdWN0OiBQcm9kdWN0KTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuX3Byb2R1Y3RzU2VydmljZS5oYXNTdG9jayhwcm9kdWN0KTtcblx0fVxuXG5cdGFkZEFsbFByb2R1Y3Rvc1RvQ2FydCA9IChwcm9kdWN0czogUHJvZHVjdFtdIHwgbnVsbCA9IG51bGwpID0+IHtcblx0XHRpZiAoIXRoaXMuYnVsa0FkZEVuYWJsZWQpIHJldHVybjtcblx0XHRjb25zdCBwcm9kdWN0TGlzdCA9IHByb2R1Y3RzIHx8IFtdO1xuXHRcdGNvbnN0IHNlbGVjdGVkID0gcHJvZHVjdExpc3QuZmlsdGVyKChwcm9kOiBhbnkpID0+IHByb2Q/LnByb2R1Y3RUb0NhcnRJdGVtPy5xdWFudGl0eSA+IDApO1xuXHRcdGNvbnN0IGl0ZW1zID0gc2VsZWN0ZWRcblx0XHRcdC5tYXAoKHByb2Q6IGFueSkgPT4gcHJvZC5wcm9kdWN0VG9DYXJ0SXRlbSlcblx0XHRcdC5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbSAmJiBpdGVtLnF1YW50aXR5ID4gMCk7XG5cblx0XHRpZiAoIWl0ZW1zLmxlbmd0aCkgcmV0dXJuO1xuXG5cdFx0Y29uc3QgaW52YWxpZHMgPSBzZWxlY3RlZC5maWx0ZXIoKHByb2Q6IGFueSkgPT4ge1xuXHRcdFx0Y29uc3QgdmFyaWFudCA9IHByb2Q/LnZhcmlhbnRzPy5bMF07XG5cdFx0XHRjb25zdCB2YXJpYW50Q29kZSA9IHZhcmlhbnQ/LmNvZGU7XG5cdFx0XHRjb25zdCBzdG9jayA9IE51bWJlcih2YXJpYW50Py5zdG9jayA/PyBwcm9kPy5zdG9jayA/PyAwKTtcblx0XHRcdGNvbnN0IHJlcXVlc3RlZCA9IE51bWJlcihwcm9kPy5wcm9kdWN0VG9DYXJ0SXRlbT8ucXVhbnRpdHkgPz8gMCk7XG5cdFx0XHRjb25zdCBjdXJyZW50SW5DYXJ0ID0gdmFyaWFudENvZGVcblx0XHRcdFx0PyBOdW1iZXIodGhpcy5fY2FydFNlcnZpY2UuZ2V0Q291bnRGcm9tSXRlbUluQ2FydCh2YXJpYW50Q29kZSkgPz8gMClcblx0XHRcdFx0OiAwO1xuXG5cdFx0XHRyZXR1cm4gIXZhcmlhbnRDb2RlIHx8IHN0b2NrIDw9IDAgfHwgcmVxdWVzdGVkICsgY3VycmVudEluQ2FydCA+IHN0b2NrO1xuXHRcdH0pO1xuXG5cdFx0aWYgKGludmFsaWRzLmxlbmd0aCA+IDApIHtcblx0XHRcdGNvbnN0IG5hbWVzID0gaW52YWxpZHNcblx0XHRcdFx0Lm1hcCgocHJvZDogYW55KSA9PiAocHJvZD8ubmFtZSA/IFN0cmluZyhwcm9kLm5hbWUpIDogJ3Byb2R1Y3RvJykpXG5cdFx0XHRcdC5zbGljZSgwLCAzKTtcblx0XHRcdGNvbnN0IHJlbWFpbmluZyA9IGludmFsaWRzLmxlbmd0aCAtIG5hbWVzLmxlbmd0aDtcblx0XHRcdGNvbnN0IGxpc3QgPSByZW1haW5pbmcgPiAwID8gYCR7bmFtZXMuam9pbignLCAnKX0geSAke3JlbWFpbmluZ30gbcOhc2AgOiBuYW1lcy5qb2luKCcsICcpO1xuXHRcdFx0dGhpcy5fdG9hc3RTZXJ2aWNlLmVycm9yKCdidWxrLXN0b2NrLWluc3VmZmljaWVudCcsIHsgaXRlbXM6IGxpc3QgfSk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dGhpcy5wZW5kaW5nQnVsa1Jlc2V0ID0gdHJ1ZTtcblx0XHR0aGlzLmJ1bGtDYXJ0Q2hhbmdlZCA9IGZhbHNlO1xuXHRcdHRoaXMuX2NhcnRTZXJ2aWNlLmFkZEFsbFRvQ2FydChpdGVtcyk7XG5cdH07XG5cblx0aGFzQnVsa1NlbGVjdGlvbiA9IChwcm9kdWN0czogUHJvZHVjdFtdIHwgbnVsbCA9IG51bGwpID0+IHtcblx0XHRyZXR1cm4gISEocHJvZHVjdHMgfHwgW10pLnNvbWUoKHByb2Q6IGFueSkgPT4gcHJvZD8ucHJvZHVjdFRvQ2FydEl0ZW0/LnF1YW50aXR5ID4gMCk7XG5cdH07XG5cblx0cHJpdmF0ZSByZXNldEJ1bGtTZWxlY3Rpb25zKCk6IHZvaWQge1xuXHRcdHRoaXMucHJvZHVjdHMuZm9yRWFjaCgocHJvZHVjdDogYW55KSA9PiB7XG5cdFx0XHRwcm9kdWN0LnByb2R1Y3RUb0NhcnRJdGVtID0gdW5kZWZpbmVkO1xuXHRcdH0pO1xuXHRcdHRoaXMuYnVsa1Jlc2V0VG9rZW4gKz0gMTtcblx0fVxuXG5cdHByb3RlY3RlZCB1cGRhdGVDb2xsZWN0aW9uU2VvKCk6IHZvaWQge1xuXHRcdGNvbnN0IHNpdGVOYW1lID0gdGhpcy5fc2VvU2VydmljZS5nZXRTaXRlTmFtZSgpO1xuXHRcdGNvbnN0IGJyZWFkY3J1bWJUaXRsZSA9IHRoaXMuc2VvQnJlYWRjcnVtYj8ubGVuZ3RoXG5cdFx0XHQ/IHRoaXMuc2VvQnJlYWRjcnVtYlt0aGlzLnNlb0JyZWFkY3J1bWIubGVuZ3RoIC0gMV0/LnRpdGxlXG5cdFx0XHQ6IG51bGw7XG5cdFx0Y29uc3Qgc2VhcmNoVGl0bGUgPSB0aGlzLmNvbnN0YW5zdC5zZWFyY2hWYWx1ZT8udHJpbSgpO1xuXG5cdFx0Y29uc3QgdGl0bGVQcmVmaXggPSBicmVhZGNydW1iVGl0bGUgfHwgKHNlYXJjaFRpdGxlID8gYFJlc3VsdGFkb3MgcGFyYSBcIiR7c2VhcmNoVGl0bGV9XCJgIDogJ0NvbGVjY2nDs24nKTtcblxuXHRcdHRoaXMuX3Nlb1NlcnZpY2Uuc2V0VGl0bGUoYCR7dGl0bGVQcmVmaXh9IHwgJHtzaXRlTmFtZX1gKTtcblx0XHR0aGlzLl9zZW9TZXJ2aWNlLnNldERlc2NyaXB0aW9uKGJyZWFkY3J1bWJUaXRsZVxuXHRcdFx0PyAnTGlzdGFkbyBkZSBwcm9kdWN0b3MsIGNhdGVnb3LDrWFzIHkgZmlsdHJvcy4nXG5cdFx0XHQ6IChzZWFyY2hUaXRsZVxuXHRcdFx0XHQ/IGBMaXN0YWRvIGRlIHByb2R1Y3RvcyBwYXJhIGxhIGLDunNxdWVkYSBcIiR7c2VhcmNoVGl0bGV9XCIuYFxuXHRcdFx0XHQ6ICdMaXN0YWRvIGRlIHByb2R1Y3RvcywgY2F0ZWdvcsOtYXMgeSBmaWx0cm9zLicpKTtcblx0XHR0aGlzLl9zZW9TZXJ2aWNlLnNldE9nVHlwZSgnd2Vic2l0ZScpO1xuXG5cdFx0aWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG5cdFx0XHR0aGlzLl9zZW9TZXJ2aWNlLnNldENhbm9uaWNhbCh3aW5kb3cubG9jYXRpb24uaHJlZik7XG5cdFx0fVxuXHR9XG5cblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cdC8vIPCfjJ8gTlVFVk9TIE3DiVRPRE9TIFBBUkEgTEEgV0lTSExJU1Rcblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblx0cHJpdmF0ZSBsb2FkRmF2b3JpdGVQcm9kdWN0Q29kZXMoKSB7XG5cdFx0dGhpcy5fd2lzaGxpc3RTZXJ2aWNlLmdldFdpc2hsaXN0cygpLnRoZW4oKHdpc2hsaXN0czogYW55W10pID0+IHtcblx0XHRcdGNvbnN0IGNvZGVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cblx0XHRcdC8vIFJlY29ycmVtb3MgbGFzIGxpc3RhcyB5IGd1YXJkYW1vcyBsb3MgQ8OTRElHT1MgZGUgbG9zIHByb2R1Y3Rvc1xuXHRcdFx0d2lzaGxpc3RzLmZvckVhY2gobGlzdCA9PiB7XG5cdFx0XHRcdGxpc3QuaXRlbXM/LmZvckVhY2goKGl0ZW06IGFueSkgPT4gY29kZXMuYWRkKGl0ZW0ucHJvZHVjdF9jb2RlKSk7XG5cdFx0XHR9KTtcblxuXHRcdFx0Ly8gQWN0dWFsaXphbW9zIGxhIHZpc3RhXG5cdFx0XHR0aGlzLmZhdm9yaXRlUHJvZHVjdENvZGVzU3Viai5uZXh0KGNvZGVzKTtcblx0XHR9KS5jYXRjaChlcnIgPT4ge1xuXHRcdFx0Y29uc29sZS5lcnJvcignRXJyb3IgY2FyZ2FuZG8gZmF2b3JpdG9zJywgZXJyKTtcblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBFc3RlIG3DqXRvZG8gc2Vyw6EgbGxhbWFkbyBwb3IgZWwgY29tcG9uZW50ZSA8YXBwLXByb2R1Y3Q+IChsYSB0YXJqZXRhKSBcblx0ICogY2FkYSB2ZXogcXVlIGVsIHVzdWFyaW8gaGFnYSBjbGljIGVuIGVsIGljb25vIGRlbCBjb3JhesOzbi5cblx0ICovXG5cdHB1YmxpYyBvbldpc2hsaXN0VG9nZ2xlKGV2ZW50OiB7IHByb2R1Y3RDb2RlOiBzdHJpbmcsIGlzTm93RmF2b3JpdGU6IGJvb2xlYW4gfSkge1xuXHRcdC8vIENsb25hbW9zIGVsIFNldCBhY3R1YWxcblx0XHRjb25zdCBjdXJyZW50U2V0ID0gbmV3IFNldCh0aGlzLmZhdm9yaXRlUHJvZHVjdENvZGVzU3Viai52YWx1ZSk7XG5cblx0XHRpZiAoZXZlbnQuaXNOb3dGYXZvcml0ZSkge1xuXHRcdFx0Ly8gQcOxYWRpZG8gYSBsYSBsaXN0YSBkZSBkZXNlb3Ncblx0XHRcdGN1cnJlbnRTZXQuYWRkKGV2ZW50LnByb2R1Y3RDb2RlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gRWxpbWluYWRvIGRlIGxhIGxpc3RhIGRlIGRlc2Vvc1xuXHRcdFx0Y3VycmVudFNldC5kZWxldGUoZXZlbnQucHJvZHVjdENvZGUpO1xuXHRcdH1cblxuXHRcdC8vIEVtaXRpbW9zIGVsIG51ZXZvIFNldCBwYXJhIHF1ZSBBbmd1bGFyIGFjdHVhbGljZSBsb3MgaWNvbm9zIGFsIGluc3RhbnRlXG5cdFx0dGhpcy5mYXZvcml0ZVByb2R1Y3RDb2Rlc1N1YmoubmV4dChjdXJyZW50U2V0KTtcblx0fVxufVxuIiwiPHNlY3Rpb24gY2xhc3M9XCJjb250YWluZXIteGwgbWItNVwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbS0wIHAtMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1ub25lIGQtbGctYmxvY2sgY29sLTNcIj5cbiAgICAgICAgICAgIDwhLS1GaWx0cm9zLS0+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLWxnLTkgbXQtMiBwLTBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8IS0tIEBmb3IoWydhJywgJ2InLCAnYycsICdkJ10gYXMgcHJvZHVjdCl7XG5cbiAgICAgICAgICAgICAgICB9IC0tPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgPC9kaXY+XG48L3NlY3Rpb24+XG4iXX0=
247
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9jb2xsZWN0aW9uLWVjL2NvbGxlY3Rpb24tZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY29sbGVjdGlvbi1lYy9jb2xsZWN0aW9uLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsU0FBUyxFQUFnQixNQUFNLEVBQUUsS0FBSyxFQUFxQixXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhJLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUssT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELHdDQUF3QztBQUN4QyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBWSxHQUFHLEVBQWMsT0FBTyxFQUFRLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqSSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFTcEQsTUFBTSxPQUFPLHFCQUFxQjtJQUV2QixnQkFBZ0Is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QUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUNsRSxDQUFDLENBQUMsQ0FBQztZQUVILHdCQUF3QjtZQUN4QixJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksZ0JBQWdCLENBQUMsS0FBc0Q7UUFDN0UseUJBQXlCO1FBQ3pCLE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVoRSxJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN6QiwrQkFBK0I7WUFDL0IsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkMsQ0FBQzthQUFNLENBQUM7WUFDUCxrQ0FBa0M7WUFDbEMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUVELDBFQUEwRTtRQUMxRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7d0dBalJXLHFCQUFxQjs0RkFBckIscUJBQXFCLDJIQ25CbEMsc1pBZ0JBOzs0RkRHYSxxQkFBcUI7a0JBUGpDLFNBQVM7K0JBQ0MsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLHVCQUF1QixDQUFDO3dEQXlDekIsY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFmdGVyTmV4dFJlbmRlciwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIGluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBQTEFURk9STV9JRCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZWZhdWx0RmlsdGVyLCBGaWx0ZXJUeXBlLCBQYWdpbmF0aW9uU2V0dGluZ3MsIFByb2R1Y3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBDYXJ0U2VydmljZSwgRmlsdGVyc1NlcnZpY2UsIE9wdGlvbnNTZXJ2aWNlLCBQYWdpbmF0aW9uU2VydmljZSwgUHJvZHVjdHNTZXJ2aWNlLCBTZW9TZXJ2aWNlLCBUb2FzdFNlcnZpY2UsIFdpc2hsaXN0U2VydmljZSB9IGZyb20gJy4uLy4uL2VjLXNlcnZpY2VzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENvcmVDb25zdGFudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbi8vIEHDkUFESURPIEJlaGF2aW9yU3ViamVjdCBBIExPUyBJTVBPUlRTXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmb3JrSm9pbiwgbWFwLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpbHRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMnO1xuaW1wb3J0IHsgSW5maW5pdGVTY3JvbGxEaXJlY3RpdmUgfSBmcm9tIFwibmd4LWluZmluaXRlLXNjcm9sbFwiO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdsaWItY29sbGVjdGlvbi1lYycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZV0sXG5cdHRlbXBsYXRlVXJsOiAnLi9jb2xsZWN0aW9uLWVjLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmw6ICcuL2NvbGxlY3Rpb24tZWMuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIENvbGxlY3Rpb25FY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuXHRwcm90ZWN0ZWQgX3Byb2R1Y3RzU2VydmljZTogUHJvZHVjdHNTZXJ2aWNlID0gaW5qZWN0KFByb2R1Y3RzU2VydmljZSlcblx0cHJvdGVjdGVkIF9hY3RpdmVSb3V0ZTogQWN0aXZhdGVkUm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpXG5cdHByb3RlY3RlZCBfb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlID0gaW5qZWN0KE9wdGlvbnNTZXJ2aWNlKVxuXHRwcml2YXRlIF9maWx0ZXJzU2VydmljZTogRmlsdGVyc1NlcnZpY2UgPSBpbmplY3QoRmlsdGVyc1NlcnZpY2UpO1xuXHRwcml2YXRlIF9wYWdpbmF0aW9uU2VydmljZTogUGFnaW5hdGlvblNlcnZpY2UgPSBpbmplY3QoUGFnaW5hdGlvblNlcnZpY2UpO1xuXHRwcml2YXRlIF9jYXJ0U2VydmljZTogQ2FydFNlcnZpY2UgPSBpbmplY3QoQ2FydFNlcnZpY2UpO1xuXHRwcml2YXRlIF90b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xuXHRwcml2YXRlIF93aXNobGlzdFNlcnZpY2U6IFdpc2hsaXN0U2VydmljZSA9IGluamVjdChXaXNobGlzdFNlcnZpY2UpO1x0XG5cdHByaXZhdGUgX3Nlb1NlcnZpY2U6IFNlb1NlcnZpY2UgPSBpbmplY3QoU2VvU2VydmljZSk7XG5cdHByaXZhdGUgX3RyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG5cblx0cHVibGljIHBhcmFtcyQgPSB0aGlzLl9hY3RpdmVSb3V0ZS5wYXJhbXNcblx0cHVibGljIHF1ZXJ5UGFyYW1zJCA9IHRoaXMuX2FjdGl2ZVJvdXRlLnF1ZXJ5UGFyYW1zXG5cdHB1YmxpYyBwcm9kdWN0cyQgPSB0aGlzLl9wcm9kdWN0c1NlcnZpY2UucHJvZHVjdHMkXG5cblx0cHVibGljIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSlcblx0cHVibGljIGNvbnN0YW5zdDogQ29yZUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQ29yZUNvbnN0YW50c1NlcnZpY2UpXG5cblx0cHVibGljIHByb2R1Y3RzOiBQcm9kdWN0W10gPSBbXTtcblx0cHVibGljIGJyZWFkY3J1bWI6IGFueVtdID0gW107XG5cdHB1YmxpYyBzZW9CcmVhZGNydW1iOiBhbnlbXSA9IFtdO1xuXHRwdWJsaWMgZGVmYXVsdEZpbHRlcnM6IERlZmF1bHRGaWx0ZXJbXSA9IFtdO1xuXHRwdWJsaWMgbG9hZGluZzogQm9vbGVhbiA9IGZhbHNlO1xuXHRwdWJsaWMgcHJvZHVjdHNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cdHB1YmxpYyBjb3VudFByb2R1Y3RzID0gc2lnbmFsPG51bWJlcj4oMClcblx0cHJpdmF0ZSBsb2FkZWQgPSBzaWduYWwoZmFsc2UpO1xuXG5cdC8vIEVzdGFkbyBwYXJhIGFncmVnYWRvIG1hc2l2byBkZXNkZSBsYSB2aXN0YSBkZSBjb2xsZWN0aW9uLlxuXHRwdWJsaWMgYWRkaW5nVG9DYXJ0OiBib29sZWFuID0gZmFsc2U7XG5cdHB1YmxpYyBidWxrQWRkRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXHRwdWJsaWMgYnVsa1Jlc2V0VG9rZW46IG51bWJlciA9IDA7XG5cdHByaXZhdGUgcGVuZGluZ0J1bGtSZXNldCA9IGZhbHNlO1xuXHRwcml2YXRlIGJ1bGtDYXJ0Q2hhbmdlZCA9IGZhbHNlO1xuXHRwcml2YXRlIGxhc3RDYXJ0U2lnbmF0dXJlID0gJyc7XG5cblx0QElucHV0KCkgb3B0aW9uc0ZpbHRlcnM6IEZpbHRlclR5cGVbXSA9IFsnYWxsJ107XG5cblx0ZmlsdGVyc19zb3J0OiBGaWx0ZXJbXSA9IFtdO1xuXG5cdHB1YmxpYyBmaWx0ZXJzJDogT2JzZXJ2YWJsZTxGaWx0ZXJbXT4gPSB0aGlzLl9maWx0ZXJzU2VydmljZS5maWx0ZXJzJDtcblx0cHVibGljIHJlYWR5JDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuX2ZpbHRlcnNTZXJ2aWNlLnJlYWR5JDtcblxuXHRwcml2YXRlIHdpbmRvdz86IFdpbmRvdztcblxuXHRwdWJsaWMgaXNMaXN0OiBib29sZWFuID0gZmFsc2Vcblx0cHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cdHNldEFzTGlzdCA9ICh2YWx1ZTogYm9vbGVhbikgPT4gdGhpcy5pc0xpc3QgPSB2YWx1ZVxuXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHQvLyDwn4yfIE5VRVZPOiBMw5NHSUNBIERFIFdJU0hMSVNUIChGQVZPUklUT1MpXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHQvLyBVc2Ftb3MgdW4gQmVoYXZpb3JTdWJqZWN0IGNvbiB1biBTZXQgcGFyYSBiw7pzcXVlZGFzIGluc3RhbnTDoW5lYXMgZW4gbGEgdmlzdGFcblx0cHJpdmF0ZSBmYXZvcml0ZVByb2R1Y3RDb2Rlc1N1YmogPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNldDxzdHJpbmc+PihuZXcgU2V0PHN0cmluZz4oKSk7XG5cdHB1YmxpYyBmYXZvcml0ZVByb2R1Y3RDb2RlcyQgPSB0aGlzLmZhdm9yaXRlUHJvZHVjdENvZGVzU3Viai5hc09ic2VydmFibGUoKTtcblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblx0bmdPbkluaXQoKTogdm9pZCB7XG5cdFx0aWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcblx0XHRcdHRoaXMud2luZG93Py5zY3JvbGwoMCwgMCk7XG5cdFx0fVxuXG5cdFx0Ly8g8J+MnyBOVUVWTzogQ2FyZ2FyIGxvcyBjw7NkaWdvcyBkZSB3aXNobGlzdCBzb2xvIHNpIGVsIHVzdWFyaW8gZXN0w6EgYXV0ZW50aWNhZG9cblx0XHRpZiAodGhpcy5hdXRoU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQoKSkge1xuXHRcdFx0dGhpcy5sb2FkRmF2b3JpdGVQcm9kdWN0Q29kZXMoKTtcblx0XHR9XG5cblx0XHRjb21iaW5lTGF0ZXN0KFt0aGlzLnBhcmFtcyQsIHRoaXMucXVlcnlQYXJhbXMkXSlcblx0XHRcdC5waXBlKFxuXHRcdFx0XHRtYXAoKFtwYXJhbXMsIHF1ZXJ5XSkgPT4gKHsgcGFyYW1zLCBxdWVyeSB9KSksXG5cdFx0XHRcdGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBKU09OLnN0cmluZ2lmeShhKSA9PT0gSlNPTi5zdHJpbmdpZnkoYikpLFxuXHRcdFx0XHR0YWtlVW50aWwodGhpcy5kZXN0cm95JClcblx0XHRcdClcblx0XHRcdC5zdWJzY3JpYmUoKHsgcGFyYW1zLCBxdWVyeSB9KSA9PiB7XG5cdFx0XHRcdGNvbnN0IHJvdXRlVHlwZSA9IHBhcmFtc1sndHlwZSddIHx8IG51bGw7XG5cdFx0XHRcdHRoaXMuY29uc3RhbnN0LnNldEN1cnJlbnRSb3V0ZVR5cGUocm91dGVUeXBlKTtcblxuXHRcdFx0XHRjb25zdCBwYWdpbmF0aW9uU2V0dGluZ3M6IFBhZ2luYXRpb25TZXR0aW5ncyA9IHtcblx0XHRcdFx0XHRsYXRlc3Q6IHRydWUsXG5cdFx0XHRcdFx0bGltaXQ6IDEwLFxuXHRcdFx0XHRcdHR5cGU6IHBhcmFtc1sndHlwZSddIHx8IG51bGwsXG5cdFx0XHRcdFx0dmFsdWU6IHBhcmFtc1sndmFsdWUnXSB8fCBudWxsXG5cdFx0XHRcdH07XG5cblx0XHRcdFx0dGhpcy5fZmlsdGVyc1NlcnZpY2UuaHlkcmF0ZUZyb21Sb3V0ZShwYWdpbmF0aW9uU2V0dGluZ3MsIHBhcmFtcywgcXVlcnkpO1xuXHRcdFx0XHR0aGlzLl9wYWdpbmF0aW9uU2VydmljZS5yZWZyZXNoQ3VycmVudFF1ZXJ5KCk7XG5cdFx0XHR9KTtcblxuXHRcdHRoaXMuYnVsa0FkZEVuYWJsZWQgPSB0aGlzLmNvbnN0YW5zdC5nZXRCdWxrQWRkRW5hYmxlZCgpO1xuXG5cdFx0dGhpcy5wcm9kdWN0cyRcblx0XHRcdC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcblx0XHRcdC5zdWJzY3JpYmUocHJvZHVjdHMgPT4ge1xuXHRcdFx0XHR0aGlzLnByb2R1Y3RzID0gcHJvZHVjdHMgfHwgW107XG5cdFx0XHR9KTtcblxuXHRcdHRoaXMuX2ZpbHRlcnNTZXJ2aWNlLmZpbHRlcnMkXG5cdFx0XHQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG5cdFx0XHQuc3Vic2NyaWJlKGZpbHRlcnMgPT4ge1xuXHRcdFx0XHR0aGlzLmJyZWFkY3J1bWIgPSB0aGlzLl9vcHRpb25zU2VydmljZS5nZXRCcmVhZGNydW1iQnlGaWx0ZXJzKGZpbHRlcnMpO1xuXHRcdFx0XHR0aGlzLnNlb0JyZWFkY3J1bWIgPSB0aGlzLl9vcHRpb25zU2VydmljZS5nZXRCcmVhZGNydW1iQnlGaWx0ZXJzKGZpbHRlcnMuZmlsdGVyKChmaWx0ZXI6IGFueSkgPT4gZmlsdGVyLnR5cGUoKSA9PT0gJ2NhdGVnb3JpZXMnKSk7XG5cdFx0XHRcdHRoaXMudXBkYXRlQ29sbGVjdGlvblNlbygpO1xuXHRcdFx0fSk7XG5cblx0XHR0aGlzLl9wcm9kdWN0c1NlcnZpY2UubG9hZGluZyRcblx0XHRcdC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcblx0XHRcdC5zdWJzY3JpYmUoKGxvYWRpbmcpID0+IHtcblx0XHRcdFx0dGhpcy5wcm9kdWN0c0xvYWRpbmcgPSBsb2FkaW5nO1xuXHRcdFx0fSk7XG5cblx0XHR0aGlzLl9jYXJ0U2VydmljZS5sb2FkaW5nJFxuXHRcdFx0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuXHRcdFx0LnN1YnNjcmliZSgobG9hZGluZykgPT4ge1xuXHRcdFx0XHR0aGlzLmFkZGluZ1RvQ2FydCA9IGxvYWRpbmc7XG5cdFx0XHRcdGlmICghbG9hZGluZyAmJiB0aGlzLnBlbmRpbmdCdWxrUmVzZXQpIHtcblx0XHRcdFx0XHRpZiAodGhpcy5idWxrQ2FydENoYW5nZWQpIHtcblx0XHRcdFx0XHRcdHRoaXMucmVzZXRCdWxrU2VsZWN0aW9ucygpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHR0aGlzLnBlbmRpbmdCdWxrUmVzZXQgPSBmYWxzZTtcblx0XHRcdFx0XHR0aGlzLmJ1bGtDYXJ0Q2hhbmdlZCA9IGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdHRoaXMuX2NhcnRTZXJ2aWNlLmNhcnRJdGVtcyRcblx0XHRcdC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcblx0XHRcdC5zdWJzY3JpYmUoKGl0ZW1zKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHNpZ25hdHVyZSA9IEpTT04uc3RyaW5naWZ5KGl0ZW1zIHx8IFtdKTtcblx0XHRcdFx0aWYgKHRoaXMucGVuZGluZ0J1bGtSZXNldCAmJiBzaWduYXR1cmUgIT09IHRoaXMubGFzdENhcnRTaWduYXR1cmUpIHtcblx0XHRcdFx0XHR0aGlzLmJ1bGtDYXJ0Q2hhbmdlZCA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5sYXN0Q2FydFNpZ25hdHVyZSA9IHNpZ25hdHVyZTtcblx0XHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSB0b3RhbCA9IDA7XG5cdHByb3RlY3RlZCBwbGF0Zm9ybUlkOiBhbnkgPSBpbmplY3QoUExBVEZPUk1fSUQpXG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0aWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcblx0XHRcdHRoaXMud2luZG93ID0gd2luZG93XG5cdFx0fVxuXHRcdHRoaXMucHJvZHVjdHMkXG5cdFx0XHQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG5cdFx0XHQuc3Vic2NyaWJlKHByb2R1Y3RzID0+IHtcblx0XHRcdFx0aWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcblx0XHRcdFx0XHR0aGlzLmxvYWRlZC5zZXQodHJ1ZSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5kZXN0cm95JC5uZXh0KCk7XG5cdFx0dGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuXHR9XG5cblx0b25TY3JvbGwoKSB7XG5cdFx0dGhpcy5sb2FkaW5nID0gdHJ1ZTtcblx0XHR0aGlzLl9wcm9kdWN0c1NlcnZpY2UudXBkYXRlUHJvZHVjdHMoKVxuXHR9XG5cblx0cHVibGljIHByb2R1Y3RIYXNTdG9jayhwcm9kdWN0OiBQcm9kdWN0KTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuX3Byb2R1Y3RzU2VydmljZS5oYXNTdG9jayhwcm9kdWN0KTtcblx0fVxuXG5cdGFkZEFsbFByb2R1Y3Rvc1RvQ2FydCA9IChwcm9kdWN0czogUHJvZHVjdFtdIHwgbnVsbCA9IG51bGwpID0+IHtcblx0XHRpZiAoIXRoaXMuYnVsa0FkZEVuYWJsZWQpIHJldHVybjtcblx0XHRjb25zdCBwcm9kdWN0TGlzdCA9IHByb2R1Y3RzIHx8IFtdO1xuXHRcdGNvbnN0IHNlbGVjdGVkID0gcHJvZHVjdExpc3QuZmlsdGVyKChwcm9kOiBhbnkpID0+IHByb2Q/LnByb2R1Y3RUb0NhcnRJdGVtPy5xdWFudGl0eSA+IDApO1xuXHRcdGNvbnN0IGl0ZW1zID0gc2VsZWN0ZWRcblx0XHRcdC5tYXAoKHByb2Q6IGFueSkgPT4gcHJvZC5wcm9kdWN0VG9DYXJ0SXRlbSlcblx0XHRcdC5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbSAmJiBpdGVtLnF1YW50aXR5ID4gMCk7XG5cblx0XHRpZiAoIWl0ZW1zLmxlbmd0aCkgcmV0dXJuO1xuXG5cdFx0Y29uc3QgaW52YWxpZHMgPSBzZWxlY3RlZC5maWx0ZXIoKHByb2Q6IGFueSkgPT4ge1xuXHRcdFx0Y29uc3QgdmFyaWFudCA9IHByb2Q/LnZhcmlhbnRzPy5bMF07XG5cdFx0XHRjb25zdCB2YXJpYW50Q29kZSA9IHZhcmlhbnQ/LmNvZGU7XG5cdFx0XHRjb25zdCBzdG9jayA9IE51bWJlcih2YXJpYW50Py5zdG9jayA/PyBwcm9kPy5zdG9jayA/PyAwKTtcblx0XHRcdGNvbnN0IHJlcXVlc3RlZCA9IE51bWJlcihwcm9kPy5wcm9kdWN0VG9DYXJ0SXRlbT8ucXVhbnRpdHkgPz8gMCk7XG5cdFx0XHRjb25zdCBjdXJyZW50SW5DYXJ0ID0gdmFyaWFudENvZGVcblx0XHRcdFx0PyBOdW1iZXIodGhpcy5fY2FydFNlcnZpY2UuZ2V0Q291bnRGcm9tSXRlbUluQ2FydCh2YXJpYW50Q29kZSkgPz8gMClcblx0XHRcdFx0OiAwO1xuXG5cdFx0XHRyZXR1cm4gIXZhcmlhbnRDb2RlIHx8IHN0b2NrIDw9IDAgfHwgcmVxdWVzdGVkICsgY3VycmVudEluQ2FydCA+IHN0b2NrO1xuXHRcdH0pO1xuXG5cdFx0aWYgKGludmFsaWRzLmxlbmd0aCA+IDApIHtcblx0XHRcdGNvbnN0IG5hbWVzID0gaW52YWxpZHNcblx0XHRcdFx0Lm1hcCgocHJvZDogYW55KSA9PiAocHJvZD8ubmFtZSA/IFN0cmluZyhwcm9kLm5hbWUpIDogJ3Byb2R1Y3RvJykpXG5cdFx0XHRcdC5zbGljZSgwLCAzKTtcblx0XHRcdGNvbnN0IHJlbWFpbmluZyA9IGludmFsaWRzLmxlbmd0aCAtIG5hbWVzLmxlbmd0aDtcblx0XHRcdGNvbnN0IGxpc3QgPSByZW1haW5pbmcgPiAwID8gYCR7bmFtZXMuam9pbignLCAnKX0geSAke3JlbWFpbmluZ30gbcOhc2AgOiBuYW1lcy5qb2luKCcsICcpO1xuXHRcdFx0dGhpcy5fdG9hc3RTZXJ2aWNlLmVycm9yKCdidWxrLXN0b2NrLWluc3VmZmljaWVudCcsIHsgaXRlbXM6IGxpc3QgfSk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dGhpcy5wZW5kaW5nQnVsa1Jlc2V0ID0gdHJ1ZTtcblx0XHR0aGlzLmJ1bGtDYXJ0Q2hhbmdlZCA9IGZhbHNlO1xuXHRcdHRoaXMuX2NhcnRTZXJ2aWNlLmFkZEFsbFRvQ2FydChpdGVtcyk7XG5cdH07XG5cblx0aGFzQnVsa1NlbGVjdGlvbiA9IChwcm9kdWN0czogUHJvZHVjdFtdIHwgbnVsbCA9IG51bGwpID0+IHtcblx0XHRyZXR1cm4gISEocHJvZHVjdHMgfHwgW10pLnNvbWUoKHByb2Q6IGFueSkgPT4gcHJvZD8ucHJvZHVjdFRvQ2FydEl0ZW0/LnF1YW50aXR5ID4gMCk7XG5cdH07XG5cblx0cHJpdmF0ZSByZXNldEJ1bGtTZWxlY3Rpb25zKCk6IHZvaWQge1xuXHRcdHRoaXMucHJvZHVjdHMuZm9yRWFjaCgocHJvZHVjdDogYW55KSA9PiB7XG5cdFx0XHRwcm9kdWN0LnByb2R1Y3RUb0NhcnRJdGVtID0gdW5kZWZpbmVkO1xuXHRcdH0pO1xuXHRcdHRoaXMuYnVsa1Jlc2V0VG9rZW4gKz0gMTtcblx0fVxuXG5cdHByb3RlY3RlZCB1cGRhdGVDb2xsZWN0aW9uU2VvKCk6IHZvaWQge1xuXHRcdGNvbnN0IHNpdGVOYW1lID0gdGhpcy5fc2VvU2VydmljZS5nZXRTaXRlTmFtZSgpO1xuXHRcdGNvbnN0IGJyZWFkY3J1bWJUaXRsZSA9IHRoaXMuc2VvQnJlYWRjcnVtYj8ubGVuZ3RoXG5cdFx0XHQ/IHRoaXMuc2VvQnJlYWRjcnVtYlt0aGlzLnNlb0JyZWFkY3J1bWIubGVuZ3RoIC0gMV0/LnRpdGxlXG5cdFx0XHQ6IG51bGw7XG5cdFx0Y29uc3Qgc2VhcmNoVGl0bGUgPSB0aGlzLmNvbnN0YW5zdC5zZWFyY2hWYWx1ZT8udHJpbSgpO1xuXG5cdFx0Y29uc3QgdGl0bGVQcmVmaXggPSBicmVhZGNydW1iVGl0bGUgfHwgKHNlYXJjaFRpdGxlID8gYFJlc3VsdGFkb3MgcGFyYSBcIiR7c2VhcmNoVGl0bGV9XCJgIDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwcm9kdWN0cycpIHx8ICdQcm9kdWN0cycpO1xuXG5cdFx0dGhpcy5fc2VvU2VydmljZS5zZXRUaXRsZShgJHt0aXRsZVByZWZpeH0gfCAke3NpdGVOYW1lfWApO1xuXHRcdHRoaXMuX3Nlb1NlcnZpY2Uuc2V0RGVzY3JpcHRpb24oYnJlYWRjcnVtYlRpdGxlXG5cdFx0XHQ/ICdMaXN0YWRvIGRlIHByb2R1Y3RvcywgY2F0ZWdvcsOtYXMgeSBmaWx0cm9zLidcblx0XHRcdDogKHNlYXJjaFRpdGxlXG5cdFx0XHRcdD8gYExpc3RhZG8gZGUgcHJvZHVjdG9zIHBhcmEgbGEgYsO6c3F1ZWRhIFwiJHtzZWFyY2hUaXRsZX1cIi5gXG5cdFx0XHRcdDogJ0xpc3RhZG8gZGUgcHJvZHVjdG9zLCBjYXRlZ29yw61hcyB5IGZpbHRyb3MuJykpO1xuXHRcdHRoaXMuX3Nlb1NlcnZpY2Uuc2V0T2dUeXBlKCd3ZWJzaXRlJyk7XG5cblx0XHRpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcblx0XHRcdHRoaXMuX3Nlb1NlcnZpY2Uuc2V0Q2Fub25pY2FsKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcblx0XHR9XG5cdH1cblxuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblx0Ly8g8J+MnyBOVUVWT1MgTcOJVE9ET1MgUEFSQSBMQSBXSVNITElTVFxuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXHRwcml2YXRlIGxvYWRGYXZvcml0ZVByb2R1Y3RDb2RlcygpIHtcblx0XHR0aGlzLl93aXNobGlzdFNlcnZpY2UuZ2V0V2lzaGxpc3RzKCkudGhlbigod2lzaGxpc3RzOiBhbnlbXSkgPT4ge1xuXHRcdFx0Y29uc3QgY29kZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuXHRcdFx0Ly8gUmVjb3JyZW1vcyBsYXMgbGlzdGFzIHkgZ3VhcmRhbW9zIGxvcyBDw5NESUdPUyBkZSBsb3MgcHJvZHVjdG9zXG5cdFx0XHR3aXNobGlzdHMuZm9yRWFjaChsaXN0ID0+IHtcblx0XHRcdFx0bGlzdC5pdGVtcz8uZm9yRWFjaCgoaXRlbTogYW55KSA9PiBjb2Rlcy5hZGQoaXRlbS5wcm9kdWN0X2NvZGUpKTtcblx0XHRcdH0pO1xuXG5cdFx0XHQvLyBBY3R1YWxpemFtb3MgbGEgdmlzdGFcblx0XHRcdHRoaXMuZmF2b3JpdGVQcm9kdWN0Q29kZXNTdWJqLm5leHQoY29kZXMpO1xuXHRcdH0pLmNhdGNoKGVyciA9PiB7XG5cdFx0XHRjb25zb2xlLmVycm9yKCdFcnJvciBjYXJnYW5kbyBmYXZvcml0b3MnLCBlcnIpO1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIEVzdGUgbcOpdG9kbyBzZXLDoSBsbGFtYWRvIHBvciBlbCBjb21wb25lbnRlIDxhcHAtcHJvZHVjdD4gKGxhIHRhcmpldGEpIFxuXHQgKiBjYWRhIHZleiBxdWUgZWwgdXN1YXJpbyBoYWdhIGNsaWMgZW4gZWwgaWNvbm8gZGVsIGNvcmF6w7NuLlxuXHQgKi9cblx0cHVibGljIG9uV2lzaGxpc3RUb2dnbGUoZXZlbnQ6IHsgcHJvZHVjdENvZGU6IHN0cmluZywgaXNOb3dGYXZvcml0ZTogYm9vbGVhbiB9KSB7XG5cdFx0Ly8gQ2xvbmFtb3MgZWwgU2V0IGFjdHVhbFxuXHRcdGNvbnN0IGN1cnJlbnRTZXQgPSBuZXcgU2V0KHRoaXMuZmF2b3JpdGVQcm9kdWN0Q29kZXNTdWJqLnZhbHVlKTtcblxuXHRcdGlmIChldmVudC5pc05vd0Zhdm9yaXRlKSB7XG5cdFx0XHQvLyBBw7FhZGlkbyBhIGxhIGxpc3RhIGRlIGRlc2Vvc1xuXHRcdFx0Y3VycmVudFNldC5hZGQoZXZlbnQucHJvZHVjdENvZGUpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBFbGltaW5hZG8gZGUgbGEgbGlzdGEgZGUgZGVzZW9zXG5cdFx0XHRjdXJyZW50U2V0LmRlbGV0ZShldmVudC5wcm9kdWN0Q29kZSk7XG5cdFx0fVxuXG5cdFx0Ly8gRW1pdGltb3MgZWwgbnVldm8gU2V0IHBhcmEgcXVlIEFuZ3VsYXIgYWN0dWFsaWNlIGxvcyBpY29ub3MgYWwgaW5zdGFudGVcblx0XHR0aGlzLmZhdm9yaXRlUHJvZHVjdENvZGVzU3Viai5uZXh0KGN1cnJlbnRTZXQpO1xuXHR9XG59XG4iLCI8c2VjdGlvbiBjbGFzcz1cImNvbnRhaW5lci14bCBtYi01XCI+XG4gICAgPGRpdiBjbGFzcz1cInJvdyBtLTAgcC0wXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLW5vbmUgZC1sZy1ibG9jayBjb2wtM1wiPlxuICAgICAgICAgICAgPCEtLUZpbHRyb3MtLT5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbGctOSBtdC0yIHAtMFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDwhLS0gQGZvcihbJ2EnLCAnYicsICdjJywgJ2QnXSBhcyBwcm9kdWN0KXtcblxuICAgICAgICAgICAgICAgIH0gLS0+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICA8L2Rpdj5cbjwvc2VjdGlvbj5cbiJdfQ==
@@ -13197,6 +13197,7 @@ class CollectionEcComponent {
13197
13197
  _toastService = inject(ToastService);
13198
13198
  _wishlistService = inject(WishlistService);
13199
13199
  _seoService = inject(SeoService);
13200
+ _translateService = inject(TranslateService);
13200
13201
  params$ = this._activeRoute.params;
13201
13202
  queryParams$ = this._activeRoute.queryParams;
13202
13203
  products$ = this._productsService.products$;
@@ -13367,7 +13368,7 @@ class CollectionEcComponent {
13367
13368
  ? this.seoBreadcrumb[this.seoBreadcrumb.length - 1]?.title
13368
13369
  : null;
13369
13370
  const searchTitle = this.constanst.searchValue?.trim();
13370
- const titlePrefix = breadcrumbTitle || (searchTitle ? `Resultados para "${searchTitle}"` : 'Colección');
13371
+ const titlePrefix = breadcrumbTitle || (searchTitle ? `Resultados para "${searchTitle}"` : this._translateService.instant('products') || 'Products');
13371
13372
  this._seoService.setTitle(`${titlePrefix} | ${siteName}`);
13372
13373
  this._seoService.setDescription(breadcrumbTitle
13373
13374
  ? 'Listado de productos, categorías y filtros.'