ng-easycommerce-v18 0.3.15-beta.1 → 0.3.15

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 (178) hide show
  1. package/README.md +90 -87
  2. package/assets/decidirFormEc.html +514 -514
  3. package/assets/ec-i18n/ct.json +281 -281
  4. package/assets/ec-i18n/en.json +0 -0
  5. package/assets/ec-i18n/es.json +429 -429
  6. package/assets/ec-i18n/fr.json +0 -0
  7. package/assets/ec-i18n/gl.json +281 -281
  8. package/assets/ec-i18n/pr.json +281 -281
  9. package/assets/images/cards-occasional.svg +21 -21
  10. package/assets/recaptcha/recaptcha-site-keys.json +3 -3
  11. package/assets/recaptcha/recaptcha-sites-prod.json +38 -38
  12. package/assets/recaptcha/recaptcha-sites.json +52 -52
  13. package/esm2022/lib/api/connection.service.mjs +1 -1
  14. package/esm2022/lib/classes/checkout/steps.mjs +1 -1
  15. package/esm2022/lib/classes/component-helper.mjs +1 -1
  16. package/esm2022/lib/classes/filters/attributes-filter.mjs +1 -1
  17. package/esm2022/lib/classes/filters/category-filter.mjs +1 -1
  18. package/esm2022/lib/classes/filters/dynamics-filter.mjs +1 -1
  19. package/esm2022/lib/classes/filters/filter-factory.mjs +1 -1
  20. package/esm2022/lib/classes/filters/filter.mjs +1 -1
  21. package/esm2022/lib/classes/filters/index.mjs +1 -1
  22. package/esm2022/lib/classes/filters/price_range-filter.mjs +1 -1
  23. package/esm2022/lib/classes/filters/sort-filter.mjs +1 -1
  24. package/esm2022/lib/classes/index.mjs +1 -1
  25. package/esm2022/lib/classes/user.mjs +1 -1
  26. package/esm2022/lib/constants/api.constants.service.mjs +1 -1
  27. package/esm2022/lib/constants/core.constants.service.mjs +1 -1
  28. package/esm2022/lib/constants/index.mjs +1 -1
  29. package/esm2022/lib/ec-components/abstractions-components/block-ec.component.mjs +1 -1
  30. package/esm2022/lib/ec-components/abstractions-components/index.mjs +1 -1
  31. package/esm2022/lib/ec-components/abstractions-components/menu-ec.component.mjs +1 -1
  32. package/esm2022/lib/ec-components/account-ec/account-ec.component.mjs +3 -3
  33. package/esm2022/lib/ec-components/account-ec/index.mjs +1 -1
  34. package/esm2022/lib/ec-components/account-ec/order-ec/order-ec.component.mjs +3 -3
  35. package/esm2022/lib/ec-components/account-ec/orders-list-ec/orders-list-ec.component.mjs +3 -3
  36. package/esm2022/lib/ec-components/auth-ec/auth-ec.component.mjs +3 -3
  37. package/esm2022/lib/ec-components/auth-ec/confirm-account-ec/confirm-account-ec.component.mjs +3 -3
  38. package/esm2022/lib/ec-components/auth-ec/forgot-password-ec/forgot-password-ec.component.mjs +3 -3
  39. package/esm2022/lib/ec-components/auth-ec/index.mjs +1 -1
  40. package/esm2022/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.mjs +3 -3
  41. package/esm2022/lib/ec-components/auth-ec/password-reset-ec/password-reset-ec.component.mjs +3 -3
  42. package/esm2022/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.mjs +3 -3
  43. package/esm2022/lib/ec-components/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.mjs +3 -3
  44. package/esm2022/lib/ec-components/blocks-ec/block-banner-box-ec/block-banner-box-ec.component.mjs +3 -3
  45. package/esm2022/lib/ec-components/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.mjs +3 -3
  46. package/esm2022/lib/ec-components/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.mjs +3 -3
  47. package/esm2022/lib/ec-components/blocks-ec/block-html-ec/block-html-ec.component.mjs +3 -3
  48. package/esm2022/lib/ec-components/blocks-ec/block-newsletter-ec/block-newsletter-ec.component.mjs +3 -3
  49. package/esm2022/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.mjs +3 -3
  50. package/esm2022/lib/ec-components/blocks-ec/blocks-ec.component.mjs +3 -3
  51. package/esm2022/lib/ec-components/blocks-ec/index.mjs +1 -1
  52. package/esm2022/lib/ec-components/breadcrumb-ec/breadcrumb-ec.component.mjs +3 -3
  53. package/esm2022/lib/ec-components/cart-ec/cart-ec.component.mjs +3 -3
  54. package/esm2022/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.mjs +3 -3
  55. package/esm2022/lib/ec-components/cart-ec/index.mjs +1 -1
  56. package/esm2022/lib/ec-components/checkout-ec/checkout-ec.component.mjs +3 -3
  57. package/esm2022/lib/ec-components/checkout-ec/dataform-ec/dataform-ec.component.mjs +3 -3
  58. package/esm2022/lib/ec-components/checkout-ec/dataform-ec/input-ec/input-ec.component.mjs +3 -3
  59. package/esm2022/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.mjs +3 -3
  60. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.mjs +3 -3
  61. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/bank-transfer-ec/bank-transfer-ec.component.mjs +3 -3
  62. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/index.mjs +1 -1
  63. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.mjs +134 -138
  64. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/offline-ec/offline-ec.component.mjs +3 -3
  65. package/esm2022/lib/ec-components/checkout-ec/shipment-ec/shipment-ec.component.mjs +3 -3
  66. package/esm2022/lib/ec-components/checkout-ec/step-container-ec/step-container-ec.component.mjs +3 -3
  67. package/esm2022/lib/ec-components/checkout-ec/success-ec/success-ec.component.mjs +3 -3
  68. package/esm2022/lib/ec-components/collection-ec/collection-ec.component.mjs +3 -3
  69. package/esm2022/lib/ec-components/contact-ec/contact-ec.component.mjs +1 -1
  70. package/esm2022/lib/ec-components/coupon-ec/coupon-ec.component.mjs +3 -3
  71. package/esm2022/lib/ec-components/faqs-ec/faqs-ec.component.mjs +3 -3
  72. package/esm2022/lib/ec-components/filters-ec/filters-ec.component.mjs +3 -3
  73. package/esm2022/lib/ec-components/filters-sort-ec/filters-sort-ec.component.mjs +3 -3
  74. package/esm2022/lib/ec-components/footer-ec/footer-ec.component.mjs +3 -3
  75. package/esm2022/lib/ec-components/header-ec/header-ec.component.mjs +3 -3
  76. package/esm2022/lib/ec-components/home-ec/home-ec.component.mjs +3 -3
  77. package/esm2022/lib/ec-components/index.mjs +1 -1
  78. package/esm2022/lib/ec-components/price-range-filter/price-range-filter.component.mjs +3 -3
  79. package/esm2022/lib/ec-components/product-detail-ec/product-detail-ec.component.mjs +1 -1
  80. package/esm2022/lib/ec-components/product-ec/product-ec.component.mjs +3 -3
  81. package/esm2022/lib/ec-components/related-products-ec/related-products-ec.component.mjs +3 -3
  82. package/esm2022/lib/ec-components/reviews-ec/reviews-ec.component.mjs +3 -3
  83. package/esm2022/lib/ec-components/reviews-form-ec/reviews-form-ec.component.mjs +3 -3
  84. package/esm2022/lib/ec-components/section-container-ec/section-container-ec.component.mjs +3 -3
  85. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/index.mjs +1 -1
  86. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-email-ec/share-email-ec.component.mjs +3 -3
  87. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-facebook-ec/share-facebook-ec.component.mjs +3 -3
  88. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-pinterest-ec/share-pinterest-ec.component.mjs +3 -3
  89. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-twitter-ec/share-twitter-ec.component.mjs +3 -3
  90. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-whatsapp-ec/share-whatsapp-ec.component.mjs +3 -3
  91. package/esm2022/lib/ec-components/share-ec/share-ec.component.mjs +3 -3
  92. package/esm2022/lib/ec-components/sidebar-ec/sidebar-ec.component.mjs +3 -3
  93. package/esm2022/lib/ec-components/stores-ec/stores-ec.component.mjs +3 -3
  94. package/esm2022/lib/ec-components/variants-ec/variants-ec.component.mjs +3 -3
  95. package/esm2022/lib/ec-components/widgets-ec/decidir-ec/decidir-ec.component.mjs +3 -3
  96. package/esm2022/lib/ec-components/widgets-ec/index.mjs +1 -1
  97. package/esm2022/lib/ec-components/widgets-ec/loading/index.mjs +1 -1
  98. package/esm2022/lib/ec-components/widgets-ec/loading/loading-full-ec/loading-full-ec.component.mjs +3 -3
  99. package/esm2022/lib/ec-components/widgets-ec/loading/loading-inline-ec/loading-inline-ec.component.mjs +3 -3
  100. package/esm2022/lib/ec-components/widgets-ec/loading/loading-section-ec/loading-section-ec.component.mjs +3 -3
  101. package/esm2022/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.mjs +3 -3
  102. package/esm2022/lib/ec-components/widgets-ec/price-ec/price-ec.component.mjs +3 -3
  103. package/esm2022/lib/ec-components/widgets-ec/rating-ec/rating-ec.component.mjs +3 -3
  104. package/esm2022/lib/ec-components/widgets-ec/re-captcha-ec/re-captcha-ec.component.mjs +3 -3
  105. package/esm2022/lib/ec-components/widgets-ec/redsys-catch-ec/redsys-catch-ec.component.mjs +124 -177
  106. package/esm2022/lib/ec-directive/index.mjs +1 -1
  107. package/esm2022/lib/ec-directive/product-off.directive.mjs +1 -1
  108. package/esm2022/lib/ec-directive/product-stock.directive.mjs +1 -1
  109. package/esm2022/lib/ec-guards/auth.guard.mjs +1 -1
  110. package/esm2022/lib/ec-pipe/ec-currency-symbol.pipe.mjs +1 -1
  111. package/esm2022/lib/ec-pipe/ec-safe-html.pipe.mjs +1 -1
  112. package/esm2022/lib/ec-pipe/index.mjs +1 -1
  113. package/esm2022/lib/ec-services/addressing.service.mjs +1 -1
  114. package/esm2022/lib/ec-services/analytics/analytics.service.mjs +1 -1
  115. package/esm2022/lib/ec-services/analytics/doppler.service.mjs +1 -1
  116. package/esm2022/lib/ec-services/analytics/facebook-pixel.service.mjs +1 -1
  117. package/esm2022/lib/ec-services/analytics/google-analytics.service.mjs +1 -1
  118. package/esm2022/lib/ec-services/analytics/gtm.service.mjs +1 -1
  119. package/esm2022/lib/ec-services/analytics/index.mjs +1 -1
  120. package/esm2022/lib/ec-services/analytics/metricool-pixel.service.mjs +11 -11
  121. package/esm2022/lib/ec-services/auth.service.mjs +1 -1
  122. package/esm2022/lib/ec-services/auth.storage.service.mjs +1 -1
  123. package/esm2022/lib/ec-services/blocks-repository.service.mjs +1 -1
  124. package/esm2022/lib/ec-services/blocks.service.mjs +1 -1
  125. package/esm2022/lib/ec-services/cart.service.mjs +1 -1
  126. package/esm2022/lib/ec-services/channel.service.mjs +1 -1
  127. package/esm2022/lib/ec-services/checkout.service.mjs +1 -1
  128. package/esm2022/lib/ec-services/currency.service.mjs +1 -1
  129. package/esm2022/lib/ec-services/filters.service.mjs +1 -1
  130. package/esm2022/lib/ec-services/form.service.mjs +1 -1
  131. package/esm2022/lib/ec-services/index.mjs +1 -1
  132. package/esm2022/lib/ec-services/local-storage.service.mjs +1 -1
  133. package/esm2022/lib/ec-services/ngx-local-storage.service.mjs +1 -1
  134. package/esm2022/lib/ec-services/options.service.mjs +1 -1
  135. package/esm2022/lib/ec-services/order-utility.service.mjs +1 -1
  136. package/esm2022/lib/ec-services/orders.service.mjs +1 -1
  137. package/esm2022/lib/ec-services/pagination.service.mjs +1 -1
  138. package/esm2022/lib/ec-services/parameters.service.mjs +1 -1
  139. package/esm2022/lib/ec-services/payment.service.mjs +1 -1
  140. package/esm2022/lib/ec-services/product-detail.service.mjs +1 -1
  141. package/esm2022/lib/ec-services/products.service.mjs +1 -1
  142. package/esm2022/lib/ec-services/re-captcha.service.mjs +1 -1
  143. package/esm2022/lib/ec-services/reviews.service.mjs +1 -1
  144. package/esm2022/lib/ec-services/shipment.service.mjs +1 -1
  145. package/esm2022/lib/ec-services/stores.service.mjs +1 -1
  146. package/esm2022/lib/ec-services/test.service.mjs +1 -1
  147. package/esm2022/lib/ec-services/toast.service.mjs +1 -1
  148. package/esm2022/lib/interceptors/auth.interceptor.mjs +1 -1
  149. package/esm2022/lib/interfaces/analytics/event-key.mjs +1 -1
  150. package/esm2022/lib/interfaces/analytics/facebook-pixel-data.mjs +1 -1
  151. package/esm2022/lib/interfaces/analytics/gtm-config.mjs +1 -1
  152. package/esm2022/lib/interfaces/analytics/index.mjs +1 -1
  153. package/esm2022/lib/interfaces/blocks.mjs +1 -1
  154. package/esm2022/lib/interfaces/checkout.mjs +1 -1
  155. package/esm2022/lib/interfaces/connection.mjs +1 -1
  156. package/esm2022/lib/interfaces/coupon.mjs +1 -1
  157. package/esm2022/lib/interfaces/currency.mjs +1 -1
  158. package/esm2022/lib/interfaces/deserializable.mjs +1 -1
  159. package/esm2022/lib/interfaces/environment.mjs +1 -1
  160. package/esm2022/lib/interfaces/faqs.mjs +1 -1
  161. package/esm2022/lib/interfaces/filter.mjs +1 -1
  162. package/esm2022/lib/interfaces/index.mjs +1 -1
  163. package/esm2022/lib/interfaces/options.mjs +1 -1
  164. package/esm2022/lib/interfaces/pagination.mjs +1 -1
  165. package/esm2022/lib/interfaces/parameter.mjs +1 -1
  166. package/esm2022/lib/interfaces/product.mjs +1 -1
  167. package/esm2022/lib/interfaces/step.mjs +1 -1
  168. package/esm2022/lib/interfaces/storage.mjs +1 -1
  169. package/esm2022/lib/interfaces/store.mjs +1 -1
  170. package/esm2022/lib/interfaces/types/user.type.mjs +1 -1
  171. package/esm2022/lib/providers/provideEnvironment.mjs +1 -1
  172. package/esm2022/lib/stores/currency.store.mjs +1 -1
  173. package/esm2022/public-api.mjs +1 -1
  174. package/fesm2022/ng-easycommerce-v18.mjs +386 -443
  175. package/fesm2022/ng-easycommerce-v18.mjs.map +1 -1
  176. package/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.d.ts +38 -20
  177. package/lib/ec-components/widgets-ec/redsys-catch-ec/redsys-catch-ec.component.d.ts +24 -12
  178. package/package.json +1 -1
@@ -8,6 +8,12 @@ import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/router";
9
9
  import * as i2 from "../../../ec-services";
10
10
  import * as i3 from "@angular/common";
11
+ /**
12
+ * Catch genérico para redirecciones de pagos.
13
+ * - Normaliza el estado recibido por params/query.
14
+ * - Informa el resultado al opener (postMessage), BroadcastChannel y localStorage.
15
+ * - Intenta cerrarse; si el cierre falla, redirige según el estado.
16
+ */
11
17
  export class RedsysCatchEcComponent extends ComponentHelper {
12
18
  activedRoute;
13
19
  router;
@@ -18,8 +24,8 @@ export class RedsysCatchEcComponent extends ComponentHelper {
18
24
  platformId;
19
25
  message = '';
20
26
  subscription = null;
21
- isMobile = false;
22
- sessionId = '';
27
+ sid = '';
28
+ bc;
23
29
  constructor(activedRoute, router, checkoutService, renderer, elementRef, document, platformId) {
24
30
  super();
25
31
  this.activedRoute = activedRoute;
@@ -29,213 +35,154 @@ export class RedsysCatchEcComponent extends ComponentHelper {
29
35
  this.elementRef = elementRef;
30
36
  this.document = document;
31
37
  this.platformId = platformId;
32
- if (isPlatformBrowser(this.platformId)) {
33
- this.detectMobile();
34
- this.sessionId = this.generateSessionId();
35
- // Verificar si debe procesar esta pestaña
36
- if (this.shouldProcessPayment()) {
37
- this.hideHeaderFooter();
38
- }
39
- else {
40
- // Si no debe procesar, cerrar esta pestaña y redirigir a la principal
41
- this.closeRedundantTab();
42
- return;
43
- }
44
- }
38
+ this.hideHeaderFooter();
45
39
  this.ecOnConstruct();
46
40
  }
47
- detectMobile() {
48
- if (isPlatformBrowser(this.platformId) && typeof window !== 'undefined') {
49
- const userAgent = window.navigator.userAgent.toLowerCase();
50
- this.isMobile = /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini|mobile/i.test(userAgent) ||
51
- (window.innerWidth <= 768);
52
- }
41
+ ngOnInit() {
42
+ if (isPlatformBrowser(this.platformId) && 'BroadcastChannel' in window) {
43
+ this.bc = new BroadcastChannel('mp_payment');
44
+ }
45
+ this.subscription = combineLatest([this.activedRoute.params, this.activedRoute.queryParams])
46
+ .subscribe(([routeParams, q]) => {
47
+ let stateStr = routeParams['state'];
48
+ if (stateStr === 'statuspayment')
49
+ stateStr = q['status'];
50
+ const statusParam = (stateStr || q['status'] || q['state'] || '').toString();
51
+ const state = this.normalizeState(statusParam);
52
+ this.sid = (q['sid'] || (isPlatformBrowser(this.platformId) ? localStorage.getItem('mp:sid') : '') || '').toString();
53
+ this.storeTotalAmount(q);
54
+ this.setStateInLocal('Su pago fue procesado con éxito.', state);
55
+ this.signalState(state);
56
+ this.tryCloseSelf(() => {
57
+ const target = (state === 'success' || state === 'pending')
58
+ ? ['/checkout/order_success']
59
+ : ['/checkout'];
60
+ setTimeout(() => this.router.navigate(target), 4500);
61
+ });
62
+ });
63
+ this.ecOnInit();
53
64
  }
54
- generateSessionId() {
55
- return `catch_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
65
+ ngOnDestroy() {
66
+ this.subscription?.unsubscribe();
67
+ this.bc?.close();
68
+ this.showHeaderFooter();
56
69
  }
57
- shouldProcessPayment() {
58
- if (!isPlatformBrowser(this.platformId)) {
59
- return false; // En el servidor no procesar
70
+ /** Guarda total_amount si viene desde el PSP. */
71
+ storeTotalAmount(queryParams) {
72
+ const totalAmount = queryParams['total_amount'];
73
+ if (totalAmount && isPlatformBrowser(this.platformId)) {
74
+ localStorage.setItem('total_amount', totalAmount);
60
75
  }
61
- if (!this.isMobile) {
62
- return true; // En desktop siempre procesar
76
+ }
77
+ /** Setea mensaje y estado en storages. */
78
+ setStateInLocal = (mensaje, state) => {
79
+ this.message = mensaje;
80
+ if (!isPlatformBrowser(this.platformId))
81
+ return;
82
+ try {
83
+ localStorage.setItem('state', state);
63
84
  }
64
- // En mobile, verificar si ya hay otra pestaña procesando
65
- const processingTab = localStorage.getItem('mp_processing_tab');
66
- const currentTime = Date.now();
67
- const processingTabTime = localStorage.getItem('mp_processing_tab_time');
68
- // Si no hay pestaña procesando o la anterior es muy antigua (más de 30 segundos)
69
- if (!processingTab || !processingTabTime || (currentTime - parseInt(processingTabTime)) > 30000) {
70
- // Esta pestaña será la que procese
71
- localStorage.setItem('mp_processing_tab', this.sessionId);
72
- localStorage.setItem('mp_processing_tab_time', currentTime.toString());
73
- return true;
85
+ catch { }
86
+ try {
87
+ sessionStorage.setItem('modalnews', 'false');
74
88
  }
75
- // Si ya hay otra pestaña procesando
76
- return processingTab === this.sessionId;
89
+ catch { }
90
+ };
91
+ /** Normaliza estados heterogéneos de distintos gateways. */
92
+ normalizeState(raw) {
93
+ const v = (raw || '').toLowerCase();
94
+ if (v === '200' || v === 'ok' || v === 'success')
95
+ return 'success';
96
+ if (v === 'pending')
97
+ return 'pending';
98
+ if (v === 'cancel')
99
+ return 'cancel';
100
+ return 'failure'; // failure, 0, error, rejected, chargeback, desconocidos
77
101
  }
78
- closeRedundantTab() {
79
- console.log('Cerrando pestaña redundante...');
80
- // Intentar cerrar la pestaña
81
- if (isPlatformBrowser(this.platformId) && typeof window !== 'undefined') {
82
- // Redirigir a la página principal en lugar de cerrar
83
- window.location.href = '/checkout/order_success';
102
+ /**
103
+ * Informa el resultado: postMessage al opener, BroadcastChannel y localStorage
104
+ * (este último permite polling en la pestaña madre).
105
+ */
106
+ signalState(state) {
107
+ if (!isPlatformBrowser(this.platformId))
108
+ return;
109
+ const sid = this.sid || localStorage.getItem('mp:sid') || '';
110
+ const payload = { type: 'mp:state', sid, state };
111
+ try {
112
+ window.opener && window.opener.postMessage(payload, '*');
84
113
  }
85
- }
86
- ngOnInit() {
87
- this.subscription = combineLatest([
88
- this.activedRoute.params,
89
- this.activedRoute.queryParams
90
- ]).subscribe(([queryRouter, queryParams]) => {
91
- let state;
92
- state = queryRouter['state'];
93
- if (state && state === 'statuspayment') {
94
- state = queryParams['status'];
95
- }
96
- console.log('PARAMETROS STATE -> ', state);
97
- this.handlePaymentState(state, queryParams);
98
- });
99
- this.ecOnInit();
100
- }
101
- ngOnDestroy() {
102
- if (this.subscription) {
103
- this.subscription.unsubscribe();
114
+ catch { }
115
+ try {
116
+ this.bc?.postMessage(payload);
104
117
  }
105
- this.showHeaderFooter();
106
- // Limpiar marcadores de mobile si esta pestaña estaba procesando
107
- if (this.isMobile && isPlatformBrowser(this.platformId)) {
108
- const processingTab = localStorage.getItem('mp_processing_tab');
109
- if (processingTab === this.sessionId) {
110
- localStorage.removeItem('mp_processing_tab');
111
- localStorage.removeItem('mp_processing_tab_time');
112
- }
118
+ catch { }
119
+ try {
120
+ localStorage.setItem(`mp:state:${sid}`, state);
121
+ }
122
+ catch { }
123
+ try {
124
+ localStorage.setItem('state', state);
113
125
  }
114
- // this.ecOnDestroy(); // Removido si no existe en ComponentHelper
126
+ catch { }
115
127
  }
128
+ /** Intenta cerrar la pestaña actual; si falla, ejecuta el callback de fallback. */
129
+ tryCloseSelf(onFail) {
130
+ if (!isPlatformBrowser(this.platformId))
131
+ return onFail();
132
+ let attempted = false;
133
+ try {
134
+ window.close();
135
+ attempted = true;
136
+ }
137
+ catch { }
138
+ if (!attempted)
139
+ onFail();
140
+ }
141
+ /** Oculta header/footer para esta pantalla mínima. */
116
142
  hideHeaderFooter() {
117
- // Usar Renderer2 en lugar de jQuery para manipular el DOM
143
+ if (!isPlatformBrowser(this.platformId))
144
+ return;
118
145
  const header = this.document.querySelector('header');
119
146
  const footer = this.document.querySelector('footer');
120
- if (header) {
147
+ if (header)
121
148
  this.renderer.setStyle(header, 'display', 'none');
122
- }
123
- if (footer) {
149
+ if (footer)
124
150
  this.renderer.setStyle(footer, 'display', 'none');
125
- }
126
151
  }
152
+ /** Restaura header/footer al salir. */
127
153
  showHeaderFooter() {
128
- // Restaurar la visibilidad al destruir el componente
154
+ if (!isPlatformBrowser(this.platformId))
155
+ return;
129
156
  const header = this.document.querySelector('header');
130
157
  const footer = this.document.querySelector('footer');
131
- if (header) {
158
+ if (header)
132
159
  this.renderer.removeStyle(header, 'display');
133
- }
134
- if (footer) {
160
+ if (footer)
135
161
  this.renderer.removeStyle(footer, 'display');
136
- }
137
162
  }
138
- handlePaymentState(state, queryParams) {
139
- // Solo procesar el estado si esta pestaña está autorizada
140
- if (this.isMobile && !this.shouldProcessPayment()) {
141
- console.log('Pestaña no autorizada para procesar el pago, redirigiendo...');
142
- this.closeRedundantTab();
163
+ setStateInSession(mensaje, state) {
164
+ this.message = mensaje;
165
+ if (!isPlatformBrowser(this.platformId))
143
166
  return;
167
+ try {
168
+ sessionStorage.setItem('state', state);
144
169
  }
145
- switch (state) {
146
- case '200':
147
- this.setStateInLocal('Su pago fue procesado con éxito.', 'success');
148
- this.storeTotalAmount(queryParams);
149
- this.redirectToSuccess();
150
- break;
151
- case 'success':
152
- this.setStateInLocal('Su pago fue procesado con éxito.', state);
153
- this.storeTotalAmount(queryParams);
154
- this.redirectToSuccess();
155
- break;
156
- case 'pending':
157
- this.setStateInLocal('Su pago fue procesado con éxito.', state);
158
- this.redirectToSuccess();
159
- break;
160
- case 'failure':
161
- this.setStateInLocal('Se ha cancelado el proceso de pago.', state);
162
- this.storeTotalAmount(queryParams);
163
- this.redirectToCheckout();
164
- break;
165
- case 'cancel':
166
- this.setStateInLocal('Se ha cancelado el proceso de pago.', state);
167
- this.redirectToCheckout();
168
- break;
169
- case 'ok':
170
- this.setStateInSesion('Su pago fue procesado con éxito.', state);
171
- break;
172
- case 'challenge':
173
- this.setStateInSesion('Redirigiendo a autenticación del banco emisor.', state);
174
- break;
175
- case 'error':
176
- this.setStateInSesion('Algo no salio bien en la validación de sus datos.', state);
177
- break;
178
- case '0':
179
- this.setStateInLocal('Se ha cancelado el proceso de pago.', 'failure');
180
- this.redirectToCheckout();
181
- break;
182
- default:
183
- break;
184
- }
185
- }
186
- redirectToSuccess() {
187
- // Limpiar marcadores de procesamiento
188
- if (this.isMobile && isPlatformBrowser(this.platformId)) {
189
- localStorage.removeItem('mp_processing_tab');
190
- localStorage.removeItem('mp_processing_tab_time');
191
- }
192
- // Redirigir después de un breve delay
193
- setTimeout(() => {
194
- this.router.navigate(['/checkout/order_success']);
195
- }, 2000);
196
- }
197
- redirectToCheckout() {
198
- // Limpiar marcadores de procesamiento
199
- if (this.isMobile && isPlatformBrowser(this.platformId)) {
200
- localStorage.removeItem('mp_processing_tab');
201
- localStorage.removeItem('mp_processing_tab_time');
202
- }
203
- // Redirigir después de un breve delay
204
- setTimeout(() => {
205
- this.router.navigate(['/checkout']);
206
- }, 2000);
207
- }
208
- storeTotalAmount(queryParams) {
209
- const totalAmount = queryParams['total_amount'];
210
- if (totalAmount && isPlatformBrowser(this.platformId)) {
211
- localStorage.setItem('total_amount', totalAmount);
212
- }
213
- }
214
- setStateInLocal = (mensaje, state) => {
215
- this.message = mensaje;
216
- if (isPlatformBrowser(this.platformId)) {
170
+ catch { }
171
+ try {
217
172
  localStorage.setItem('state', state);
218
- if (typeof sessionStorage !== 'undefined') {
219
- sessionStorage.setItem('modalnews', 'false');
220
- }
221
173
  }
222
- };
223
- setStateInSesion = (mensaje, state) => {
224
- this.message = mensaje;
225
- if (isPlatformBrowser(this.platformId)) {
226
- if (typeof sessionStorage !== 'undefined') {
227
- sessionStorage.setItem('state', state);
228
- sessionStorage.setItem('modalnews', 'false');
229
- }
230
- localStorage.setItem('state', state);
174
+ catch { }
175
+ try {
176
+ sessionStorage.setItem('modalnews', 'false');
231
177
  }
232
- };
178
+ catch { }
179
+ }
233
180
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RedsysCatchEcComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.CheckoutService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: DOCUMENT }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });
234
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RedsysCatchEcComponent, isStandalone: true, selector: "app-redsys-catch-ec", usesInheritance: true, ngImport: i0, template: "<div id=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col align-self-center\">\r\n <h4 class=\"titpage center-block text-center font-nexa font-lg my-3\">{{ message | uppercase }}</h4>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col align-self-center\">\r\n <h5 class=\"center-block text-center font-nexa my-3\">Redirigiendo en segundos...</h5>\r\n <br>\r\n <div class=\"d-flex flex-column jusitfy-content-center align-items-center\">\r\n <app-loading-full-ec></app-loading-full-ec>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".loader{border:16px solid #f3f3f3;border-top:16px solid #dc3545;border-radius:50%;width:50px;height:50px;animation:spin 2s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.flex-container{display:flex;justify-content:center;align-items:center;height:80vh;width:100%}.flex-container>div{width:90%;height:100px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i3.UpperCasePipe, name: "uppercase" }, { kind: "component", type: LoadingFullEcComponent, selector: "app-loading-full-ec" }] });
181
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RedsysCatchEcComponent, isStandalone: true, selector: "app-redsys-catch-ec", usesInheritance: true, ngImport: i0, template: "<div id=\"container\">\n <div class=\"row\">\n <div class=\"col align-self-center\">\n <h4 class=\"titpage center-block text-center font-nexa font-lg my-3\">{{ message | uppercase }}</h4>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col align-self-center\">\n <h5 class=\"center-block text-center font-nexa my-3\">Redirigiendo en segundos...</h5>\n <br>\n <div class=\"d-flex flex-column jusitfy-content-center align-items-center\">\n <app-loading-full-ec></app-loading-full-ec>\n </div>\n </div>\n </div>\n</div>", styles: [".loader{border:16px solid #f3f3f3;border-top:16px solid #dc3545;border-radius:50%;width:50px;height:50px;animation:spin 2s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.flex-container{display:flex;justify-content:center;align-items:center;height:80vh;width:100%}.flex-container>div{width:90%;height:100px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i3.UpperCasePipe, name: "uppercase" }, { kind: "component", type: LoadingFullEcComponent, selector: "app-loading-full-ec" }] });
235
182
  }
236
183
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RedsysCatchEcComponent, decorators: [{
237
184
  type: Component,
238
- args: [{ selector: 'app-redsys-catch-ec', standalone: true, imports: [CommonModule, LoadingFullEcComponent], template: "<div id=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col align-self-center\">\r\n <h4 class=\"titpage center-block text-center font-nexa font-lg my-3\">{{ message | uppercase }}</h4>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col align-self-center\">\r\n <h5 class=\"center-block text-center font-nexa my-3\">Redirigiendo en segundos...</h5>\r\n <br>\r\n <div class=\"d-flex flex-column jusitfy-content-center align-items-center\">\r\n <app-loading-full-ec></app-loading-full-ec>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".loader{border:16px solid #f3f3f3;border-top:16px solid #dc3545;border-radius:50%;width:50px;height:50px;animation:spin 2s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.flex-container{display:flex;justify-content:center;align-items:center;height:80vh;width:100%}.flex-container>div{width:90%;height:100px}\n"] }]
185
+ args: [{ selector: 'app-redsys-catch-ec', standalone: true, imports: [CommonModule, LoadingFullEcComponent], template: "<div id=\"container\">\n <div class=\"row\">\n <div class=\"col align-self-center\">\n <h4 class=\"titpage center-block text-center font-nexa font-lg my-3\">{{ message | uppercase }}</h4>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col align-self-center\">\n <h5 class=\"center-block text-center font-nexa my-3\">Redirigiendo en segundos...</h5>\n <br>\n <div class=\"d-flex flex-column jusitfy-content-center align-items-center\">\n <app-loading-full-ec></app-loading-full-ec>\n </div>\n </div>\n </div>\n</div>", styles: [".loader{border:16px solid #f3f3f3;border-top:16px solid #dc3545;border-radius:50%;width:50px;height:50px;animation:spin 2s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.flex-container{display:flex;justify-content:center;align-items:center;height:80vh;width:100%}.flex-container>div{width:90%;height:100px}\n"] }]
239
186
  }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.CheckoutService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: Document, decorators: [{
240
187
  type: Inject,
241
188
  args: [DOCUMENT]
@@ -243,4 +190,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
243
190
  type: Inject,
244
191
  args: [PLATFORM_ID]
245
192
  }] }] });
246
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkc3lzLWNhdGNoLWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL3dpZGdldHMtZWMvcmVkc3lzLWNhdGNoLWVjL3JlZHN5cy1jYXRjaC1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy93aWRnZXRzLWVjL3JlZHN5cy1jYXRjaC1lYy9yZWRzeXMtY2F0Y2gtZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBNEMsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RyxPQUFPLEVBQUUsYUFBYSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7QUFTOUYsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGVBQWU7SUFRNUM7SUFDQTtJQUNBO0lBQ0M7SUFDQTtJQUNrQjtJQUNHO0lBWjFCLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDWixZQUFZLEdBQXdCLElBQUksQ0FBQztJQUN6QyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFFdkIsWUFDVyxZQUE0QixFQUM1QixNQUFjLEVBQ2QsZUFBZ0MsRUFDL0IsUUFBbUIsRUFDbkIsVUFBc0IsRUFDSixR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QUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDckMsSUFBSSxPQUFPLGNBQWMsS0FBSyxXQUFXLEVBQUUsQ0FBQztnQkFDeEMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3ZDLGNBQWMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ2pELENBQUM7WUFDRCxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6QyxDQUFDO0lBQ0wsQ0FBQyxDQUFBO3dHQXZQUSxzQkFBc0Isd0pBYW5CLFFBQVEsYUFDUixXQUFXOzRGQWRkLHNCQUFzQixzR0NqQm5DLHlwQkFlTSxtWkRGUSxZQUFZLDRGQUFFLHNCQUFzQjs7NEZBSXJDLHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDSSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLHNCQUFzQixDQUFDOzswQkFpQjFDLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgUmVuZGVyZXIyLCBFbGVtZW50UmVmLCBJbmplY3QsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyJztcclxuaW1wb3J0IHsgQ2FydFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IENoZWNrb3V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2VjLXNlcnZpY2VzJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTG9hZGluZ0Z1bGxFY0NvbXBvbmVudCB9IGZyb20gJy4uL2xvYWRpbmcvbG9hZGluZy1mdWxsLWVjL2xvYWRpbmctZnVsbC1lYy5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1yZWRzeXMtY2F0Y2gtZWMnLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIExvYWRpbmdGdWxsRWNDb21wb25lbnRdLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JlZHN5cy1jYXRjaC1lYy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9yZWRzeXMtY2F0Y2gtZWMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVkc3lzQ2F0Y2hFY0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEhlbHBlciBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgICBwdWJsaWMgbWVzc2FnZSA9ICcnO1xyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSBpc01vYmlsZSA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBzZXNzaW9uSWQgPSAnJztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgYWN0aXZlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAgICAgcHVibGljIGNoZWNrb3V0U2VydmljZTogQ2hlY2tvdXRTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXHJcbiAgICAgICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBhbnlcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgICAgICAgdGhpcy5kZXRlY3RNb2JpbGUoKTtcclxuICAgICAgICAgICAgdGhpcy5zZXNzaW9uSWQgPSB0aGlzLmdlbmVyYXRlU2Vzc2lvbklkKCk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAvLyBWZXJpZmljYXIgc2kgZGViZSBwcm9jZXNhciBlc3RhIHBlc3Rhw7FhXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNob3VsZFByb2Nlc3NQYXltZW50KCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGlkZUhlYWRlckZvb3RlcigpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gU2kgbm8gZGViZSBwcm9jZXNhciwgY2VycmFyIGVzdGEgcGVzdGHDsWEgeSByZWRpcmlnaXIgYSBsYSBwcmluY2lwYWxcclxuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VSZWR1bmRhbnRUYWIoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICB0aGlzLmVjT25Db25zdHJ1Y3QoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGRldGVjdE1vYmlsZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSAmJiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICBjb25zdCB1c2VyQWdlbnQgPSB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICB0aGlzLmlzTW9iaWxlID0gL2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhIG1pbml8bW9iaWxlL2kudGVzdCh1c2VyQWdlbnQpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy5pbm5lcldpZHRoIDw9IDc2OCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2VuZXJhdGVTZXNzaW9uSWQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gYGNhdGNoXyR7RGF0ZS5ub3coKX1fJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiwgOSl9YDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNob3VsZFByb2Nlc3NQYXltZW50KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIEVuIGVsIHNlcnZpZG9yIG5vIHByb2Nlc2FyXHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIGlmICghdGhpcy5pc01vYmlsZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gRW4gZGVza3RvcCBzaWVtcHJlIHByb2Nlc2FyXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBFbiBtb2JpbGUsIHZlcmlmaWNhciBzaSB5YSBoYXkgb3RyYSBwZXN0YcOxYSBwcm9jZXNhbmRvXHJcbiAgICAgICAgY29uc3QgcHJvY2Vzc2luZ1RhYiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtcF9wcm9jZXNzaW5nX3RhYicpO1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gRGF0ZS5ub3coKTtcclxuICAgICAgICBjb25zdCBwcm9jZXNzaW5nVGFiVGltZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtcF9wcm9jZXNzaW5nX3RhYl90aW1lJyk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8gU2kgbm8gaGF5IHBlc3Rhw7FhIHByb2Nlc2FuZG8gbyBsYSBhbnRlcmlvciBlcyBtdXkgYW50aWd1YSAobcOhcyBkZSAzMCBzZWd1bmRvcylcclxuICAgICAgICBpZiAoIXByb2Nlc3NpbmdUYWIgfHwgIXByb2Nlc3NpbmdUYWJUaW1lIHx8IChjdXJyZW50VGltZSAtIHBhcnNlSW50KHByb2Nlc3NpbmdUYWJUaW1lKSkgPiAzMDAwMCkge1xyXG4gICAgICAgICAgICAvLyBFc3RhIHBlc3Rhw7FhIHNlcsOhIGxhIHF1ZSBwcm9jZXNlXHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdtcF9wcm9jZXNzaW5nX3RhYicsIHRoaXMuc2Vzc2lvbklkKTtcclxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ21wX3Byb2Nlc3NpbmdfdGFiX3RpbWUnLCBjdXJyZW50VGltZS50b1N0cmluZygpKTtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIC8vIFNpIHlhIGhheSBvdHJhIHBlc3Rhw7FhIHByb2Nlc2FuZG9cclxuICAgICAgICByZXR1cm4gcHJvY2Vzc2luZ1RhYiA9PT0gdGhpcy5zZXNzaW9uSWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjbG9zZVJlZHVuZGFudFRhYigpOiB2b2lkIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnQ2VycmFuZG8gcGVzdGHDsWEgcmVkdW5kYW50ZS4uLicpO1xyXG4gICAgICAgIC8vIEludGVudGFyIGNlcnJhciBsYSBwZXN0YcOxYVxyXG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpICYmIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIC8vIFJlZGlyaWdpciBhIGxhIHDDoWdpbmEgcHJpbmNpcGFsIGVuIGx1Z2FyIGRlIGNlcnJhclxyXG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvY2hlY2tvdXQvb3JkZXJfc3VjY2Vzcyc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gY29tYmluZUxhdGVzdChbXHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlZFJvdXRlLnBhcmFtcyxcclxuICAgICAgICAgICAgdGhpcy5hY3RpdmVkUm91dGUucXVlcnlQYXJhbXNcclxuICAgICAgICBdKS5zdWJzY3JpYmUoKFtxdWVyeVJvdXRlciwgcXVlcnlQYXJhbXNdKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBzdGF0ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICBzdGF0ZSA9IHF1ZXJ5Um91dGVyWydzdGF0ZSddO1xyXG4gICAgICAgICAgICBpZiAoc3RhdGUgJiYgc3RhdGUgPT09ICdzdGF0dXNwYXltZW50Jykge1xyXG4gICAgICAgICAgICAgICAgc3RhdGUgPSBxdWVyeVBhcmFtc1snc3RhdHVzJ107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ1BBUkFNRVRST1MgU1RBVEUgIC0+ICcsIHN0YXRlKTtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVQYXltZW50U3RhdGUoc3RhdGUsIHF1ZXJ5UGFyYW1zKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmVjT25Jbml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2hvd0hlYWRlckZvb3RlcigpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIC8vIExpbXBpYXIgbWFyY2Fkb3JlcyBkZSBtb2JpbGUgc2kgZXN0YSBwZXN0YcOxYSBlc3RhYmEgcHJvY2VzYW5kb1xyXG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlICYmIGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgICAgICAgY29uc3QgcHJvY2Vzc2luZ1RhYiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtcF9wcm9jZXNzaW5nX3RhYicpO1xyXG4gICAgICAgICAgICBpZiAocHJvY2Vzc2luZ1RhYiA9PT0gdGhpcy5zZXNzaW9uSWQpIHtcclxuICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdtcF9wcm9jZXNzaW5nX3RhYicpO1xyXG4gICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ21wX3Byb2Nlc3NpbmdfdGFiX3RpbWUnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAvLyB0aGlzLmVjT25EZXN0cm95KCk7IC8vIFJlbW92aWRvIHNpIG5vIGV4aXN0ZSBlbiBDb21wb25lbnRIZWxwZXJcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhpZGVIZWFkZXJGb290ZXIoKTogdm9pZCB7XHJcbiAgICAgICAgLy8gVXNhciBSZW5kZXJlcjIgZW4gbHVnYXIgZGUgalF1ZXJ5IHBhcmEgbWFuaXB1bGFyIGVsIERPTVxyXG4gICAgICAgIGNvbnN0IGhlYWRlciA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZGVyJyk7XHJcbiAgICAgICAgY29uc3QgZm9vdGVyID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdmb290ZXInKTtcclxuXHJcbiAgICAgICAgaWYgKGhlYWRlcikge1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGhlYWRlciwgJ2Rpc3BsYXknLCAnbm9uZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZm9vdGVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZm9vdGVyLCAnZGlzcGxheScsICdub25lJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2hvd0hlYWRlckZvb3RlcigpOiB2b2lkIHtcclxuICAgICAgICAvLyBSZXN0YXVyYXIgbGEgdmlzaWJpbGlkYWQgYWwgZGVzdHJ1aXIgZWwgY29tcG9uZW50ZVxyXG4gICAgICAgIGNvbnN0IGhlYWRlciA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZGVyJyk7XHJcbiAgICAgICAgY29uc3QgZm9vdGVyID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdmb290ZXInKTtcclxuXHJcbiAgICAgICAgaWYgKGhlYWRlcikge1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKGhlYWRlciwgJ2Rpc3BsYXknKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGZvb3Rlcikge1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKGZvb3RlciwgJ2Rpc3BsYXknKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYW5kbGVQYXltZW50U3RhdGUoc3RhdGU6IHN0cmluZyB8IHVuZGVmaW5lZCwgcXVlcnlQYXJhbXM6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIC8vIFNvbG8gcHJvY2VzYXIgZWwgZXN0YWRvIHNpIGVzdGEgcGVzdGHDsWEgZXN0w6EgYXV0b3JpemFkYVxyXG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlICYmICF0aGlzLnNob3VsZFByb2Nlc3NQYXltZW50KCkpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ1Blc3Rhw7FhIG5vIGF1dG9yaXphZGEgcGFyYSBwcm9jZXNhciBlbCBwYWdvLCByZWRpcmlnaWVuZG8uLi4nKTtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZVJlZHVuZGFudFRhYigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHN3aXRjaCAoc3RhdGUpIHtcclxuICAgICAgICAgICAgY2FzZSAnMjAwJzpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGVJbkxvY2FsKCdTdSBwYWdvIGZ1ZSBwcm9jZXNhZG8gY29uIMOpeGl0by4nLCAnc3VjY2VzcycpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZVRvdGFsQW1vdW50KHF1ZXJ5UGFyYW1zKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVkaXJlY3RUb1N1Y2Nlc3MoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdzdWNjZXNzJzpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGVJbkxvY2FsKCdTdSBwYWdvIGZ1ZSBwcm9jZXNhZG8gY29uIMOpeGl0by4nLCBzdGF0ZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlVG90YWxBbW91bnQocXVlcnlQYXJhbXMpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWRpcmVjdFRvU3VjY2VzcygpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3BlbmRpbmcnOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZUluTG9jYWwoJ1N1IHBhZ28gZnVlIHByb2Nlc2FkbyBjb24gw6l4aXRvLicsIHN0YXRlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVkaXJlY3RUb1N1Y2Nlc3MoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdmYWlsdXJlJzpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGVJbkxvY2FsKCdTZSBoYSBjYW5jZWxhZG8gZWwgcHJvY2VzbyBkZSBwYWdvLicsIHN0YXRlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmVUb3RhbEFtb3VudChxdWVyeVBhcmFtcyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlZGlyZWN0VG9DaGVja291dCgpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2NhbmNlbCc6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlSW5Mb2NhbCgnU2UgaGEgY2FuY2VsYWRvIGVsIHByb2Nlc28gZGUgcGFnby4nLCBzdGF0ZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlZGlyZWN0VG9DaGVja291dCgpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ29rJzpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGVJblNlc2lvbignU3UgcGFnbyBmdWUgcHJvY2VzYWRvIGNvbiDDqXhpdG8uJywgc3RhdGUpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2NoYWxsZW5nZSc6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlSW5TZXNpb24oJ1JlZGlyaWdpZW5kbyBhIGF1dGVudGljYWNpw7NuIGRlbCBiYW5jbyBlbWlzb3IuJywgc3RhdGUpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2Vycm9yJzpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGVJblNlc2lvbignQWxnbyBubyBzYWxpbyBiaWVuIGVuIGxhIHZhbGlkYWNpw7NuIGRlIHN1cyBkYXRvcy4nLCBzdGF0ZSk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnMCc6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlSW5Mb2NhbCgnU2UgaGEgY2FuY2VsYWRvIGVsIHByb2Nlc28gZGUgcGFnby4nLCAnZmFpbHVyZScpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWRpcmVjdFRvQ2hlY2tvdXQoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVkaXJlY3RUb1N1Y2Nlc3MoKTogdm9pZCB7XHJcbiAgICAgICAgLy8gTGltcGlhciBtYXJjYWRvcmVzIGRlIHByb2Nlc2FtaWVudG9cclxuICAgICAgICBpZiAodGhpcy5pc01vYmlsZSAmJiBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdtcF9wcm9jZXNzaW5nX3RhYicpO1xyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnbXBfcHJvY2Vzc2luZ190YWJfdGltZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAvLyBSZWRpcmlnaXIgZGVzcHXDqXMgZGUgdW4gYnJldmUgZGVsYXlcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvY2hlY2tvdXQvb3JkZXJfc3VjY2VzcyddKTtcclxuICAgICAgICB9LCAyMDAwKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJlZGlyZWN0VG9DaGVja291dCgpOiB2b2lkIHtcclxuICAgICAgICAvLyBMaW1waWFyIG1hcmNhZG9yZXMgZGUgcHJvY2VzYW1pZW50b1xyXG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlICYmIGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ21wX3Byb2Nlc3NpbmdfdGFiJyk7XHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdtcF9wcm9jZXNzaW5nX3RhYl90aW1lJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIC8vIFJlZGlyaWdpciBkZXNwdcOpcyBkZSB1biBicmV2ZSBkZWxheVxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9jaGVja291dCddKTtcclxuICAgICAgICB9LCAyMDAwKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0b3JlVG90YWxBbW91bnQocXVlcnlQYXJhbXM6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHRvdGFsQW1vdW50ID0gcXVlcnlQYXJhbXNbJ3RvdGFsX2Ftb3VudCddO1xyXG4gICAgICAgIGlmICh0b3RhbEFtb3VudCAmJiBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd0b3RhbF9hbW91bnQnLCB0b3RhbEFtb3VudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcml2YXRlIHNldFN0YXRlSW5Mb2NhbCA9IChtZW5zYWplOiBzdHJpbmcsIHN0YXRlOiBzdHJpbmcpOiB2b2lkID0+IHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2UgPSBtZW5zYWplO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdzdGF0ZScsIHN0YXRlKTtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBzZXNzaW9uU3RvcmFnZSAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ21vZGFsbmV3cycsICdmYWxzZScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0U3RhdGVJblNlc2lvbiA9IChtZW5zYWplOiBzdHJpbmcsIHN0YXRlOiBzdHJpbmcpOiB2b2lkID0+IHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2UgPSBtZW5zYWplO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygc2Vzc2lvblN0b3JhZ2UgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdzdGF0ZScsIHN0YXRlKTtcclxuICAgICAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ21vZGFsbmV3cycsICdmYWxzZScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdzdGF0ZScsIHN0YXRlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG59XHJcbiIsIjxkaXYgaWQ9XCJjb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIGFsaWduLXNlbGYtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxoNCBjbGFzcz1cInRpdHBhZ2UgY2VudGVyLWJsb2NrIHRleHQtY2VudGVyIGZvbnQtbmV4YSBmb250LWxnIG15LTNcIj57eyBtZXNzYWdlIHwgdXBwZXJjYXNlIH19PC9oND5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgYWxpZ24tc2VsZi1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGg1IGNsYXNzPVwiY2VudGVyLWJsb2NrIHRleHQtY2VudGVyIGZvbnQtbmV4YSBteS0zXCI+UmVkaXJpZ2llbmRvIGVuIHNlZ3VuZG9zLi4uPC9oNT5cclxuICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGp1c2l0ZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWxvYWRpbmctZnVsbC1lYz48L2FwcC1sb2FkaW5nLWZ1bGwtZWM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkc3lzLWNhdGNoLWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL3dpZGdldHMtZWMvcmVkc3lzLWNhdGNoLWVjL3JlZHN5cy1jYXRjaC1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy93aWRnZXRzLWVjL3JlZHN5cy1jYXRjaC1lYy9yZWRzeXMtY2F0Y2gtZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBNEMsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RyxPQUFPLEVBQUUsYUFBYSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7QUFJOUY7Ozs7O0dBS0c7QUFRSCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsZUFBZTtJQVE1QztJQUNBO0lBQ0E7SUFDQztJQUNBO0lBQ2tCO0lBQ0c7SUFaMUIsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNaLFlBQVksR0FBd0IsSUFBSSxDQUFDO0lBQ3pDLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDVCxFQUFFLENBQW9CO0lBRTlCLFlBQ1csWUFBNEIsRUFDNUIsTUFBYyxFQUNkLGVBQWdDLEVBQy9CLFFBQW1CLEVBQ25CLFVBQXNCLEVB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QUMsVUFBVSxDQUFDO1lBQUUsT0FBTztRQUNoRCxJQUFJLENBQUM7WUFBQyxjQUFjLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUFDLENBQUM7UUFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQztZQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQUMsQ0FBQztRQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDO1lBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFBQyxDQUFDO1FBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO3dHQWpJUSxzQkFBc0Isd0pBYW5CLFFBQVEsYUFDUixXQUFXOzRGQWRkLHNCQUFzQixzR0N6Qm5DLDJuQkFlTSxtWkRNUSxZQUFZLDRGQUFFLHNCQUFzQjs7NEZBSXJDLHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDSSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLHNCQUFzQixDQUFDOzswQkFpQjFDLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgUmVuZGVyZXIyLCBFbGVtZW50UmVmLCBJbmplY3QsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyJztcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZWMtc2VydmljZXMnO1xuaW1wb3J0IHsgQ2hlY2tvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZWMtc2VydmljZXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBMb2FkaW5nRnVsbEVjQ29tcG9uZW50IH0gZnJvbSAnLi4vbG9hZGluZy9sb2FkaW5nLWZ1bGwtZWMvbG9hZGluZy1mdWxsLWVjLmNvbXBvbmVudCc7XG5cbnR5cGUgTXBTdGF0ZSA9ICdzdWNjZXNzJyB8ICdwZW5kaW5nJyB8ICdmYWlsdXJlJyB8ICdjYW5jZWwnO1xuXG4vKipcbiAqIENhdGNoIGdlbsOpcmljbyBwYXJhIHJlZGlyZWNjaW9uZXMgZGUgcGFnb3MuXG4gKiAtIE5vcm1hbGl6YSBlbCBlc3RhZG8gcmVjaWJpZG8gcG9yIHBhcmFtcy9xdWVyeS5cbiAqIC0gSW5mb3JtYSBlbCByZXN1bHRhZG8gYWwgb3BlbmVyIChwb3N0TWVzc2FnZSksIEJyb2FkY2FzdENoYW5uZWwgeSBsb2NhbFN0b3JhZ2UuXG4gKiAtIEludGVudGEgY2VycmFyc2U7IHNpIGVsIGNpZXJyZSBmYWxsYSwgcmVkaXJpZ2Ugc2Vnw7puIGVsIGVzdGFkby5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtcmVkc3lzLWNhdGNoLWVjJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIExvYWRpbmdGdWxsRWNDb21wb25lbnRdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZWRzeXMtY2F0Y2gtZWMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3JlZHN5cy1jYXRjaC1lYy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFJlZHN5c0NhdGNoRWNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRIZWxwZXIgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICBwdWJsaWMgbWVzc2FnZSA9ICcnO1xuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIHNpZCA9ICcnO1xuICAgIHByaXZhdGUgYmM/OiBCcm9hZGNhc3RDaGFubmVsO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBhY3RpdmVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHB1YmxpYyBjaGVja291dFNlcnZpY2U6IENoZWNrb3V0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IGFueVxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMuaGlkZUhlYWRlckZvb3RlcigpO1xuICAgICAgICB0aGlzLmVjT25Db25zdHJ1Y3QoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkgJiYgJ0Jyb2FkY2FzdENoYW5uZWwnIGluIHdpbmRvdykge1xuICAgICAgICAgICAgdGhpcy5iYyA9IG5ldyBCcm9hZGNhc3RDaGFubmVsKCdtcF9wYXltZW50Jyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuYWN0aXZlZFJvdXRlLnBhcmFtcywgdGhpcy5hY3RpdmVkUm91dGUucXVlcnlQYXJhbXNdKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoW3JvdXRlUGFyYW1zLCBxXSkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBzdGF0ZVN0cjogc3RyaW5nIHwgdW5kZWZpbmVkID0gcm91dGVQYXJhbXNbJ3N0YXRlJ107XG4gICAgICAgICAgICAgICAgaWYgKHN0YXRlU3RyID09PSAnc3RhdHVzcGF5bWVudCcpIHN0YXRlU3RyID0gcVsnc3RhdHVzJ107XG5cbiAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXNQYXJhbSA9IChzdGF0ZVN0ciB8fCBxWydzdGF0dXMnXSB8fCBxWydzdGF0ZSddIHx8ICcnKS50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5ub3JtYWxpemVTdGF0ZShzdGF0dXNQYXJhbSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnNpZCA9IChxWydzaWQnXSB8fCAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSA/IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtcDpzaWQnKSA6ICcnKSB8fCAnJykudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlVG90YWxBbW91bnQocSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlSW5Mb2NhbCgnU3UgcGFnbyBmdWUgcHJvY2VzYWRvIGNvbiDDqXhpdG8uJywgc3RhdGUpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2lnbmFsU3RhdGUoc3RhdGUpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy50cnlDbG9zZVNlbGYoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSAoc3RhdGUgPT09ICdzdWNjZXNzJyB8fCBzdGF0ZSA9PT0gJ3BlbmRpbmcnKVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBbJy9jaGVja291dC9vcmRlcl9zdWNjZXNzJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogWycvY2hlY2tvdXQnXTtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJvdXRlci5uYXZpZ2F0ZSh0YXJnZXQpLCA0NTAwKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLmVjT25Jbml0KCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmJjPy5jbG9zZSgpO1xuICAgICAgICB0aGlzLnNob3dIZWFkZXJGb290ZXIoKTtcbiAgICB9XG5cbiAgICAvKiogR3VhcmRhIHRvdGFsX2Ftb3VudCBzaSB2aWVuZSBkZXNkZSBlbCBQU1AuICovXG4gICAgcHJpdmF0ZSBzdG9yZVRvdGFsQW1vdW50KHF1ZXJ5UGFyYW1zOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdG90YWxBbW91bnQgPSBxdWVyeVBhcmFtc1sndG90YWxfYW1vdW50J107XG4gICAgICAgIGlmICh0b3RhbEFtb3VudCAmJiBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndG90YWxfYW1vdW50JywgdG90YWxBbW91bnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFNldGVhIG1lbnNhamUgeSBlc3RhZG8gZW4gc3RvcmFnZXMuICovXG4gICAgcHJpdmF0ZSBzZXRTdGF0ZUluTG9jYWwgPSAobWVuc2FqZTogc3RyaW5nLCBzdGF0ZTogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMubWVzc2FnZSA9IG1lbnNhamU7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuICAgICAgICB0cnkgeyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc3RhdGUnLCBzdGF0ZSk7IH0gY2F0Y2ggeyB9XG4gICAgICAgIHRyeSB7IHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ21vZGFsbmV3cycsICdmYWxzZScpOyB9IGNhdGNoIHsgfVxuICAgIH1cblxuICAgIC8qKiBOb3JtYWxpemEgZXN0YWRvcyBoZXRlcm9nw6luZW9zIGRlIGRpc3RpbnRvcyBnYXRld2F5cy4gKi9cbiAgICBwcml2YXRlIG5vcm1hbGl6ZVN0YXRlKHJhdzogc3RyaW5nKTogTXBTdGF0ZSB7XG4gICAgICAgIGNvbnN0IHYgPSAocmF3IHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAodiA9PT0gJzIwMCcgfHwgdiA9PT0gJ29rJyB8fCB2ID09PSAnc3VjY2VzcycpIHJldHVybiAnc3VjY2Vzcyc7XG4gICAgICAgIGlmICh2ID09PSAncGVuZGluZycpIHJldHVybiAncGVuZGluZyc7XG4gICAgICAgIGlmICh2ID09PSAnY2FuY2VsJykgcmV0dXJuICdjYW5jZWwnO1xuICAgICAgICByZXR1cm4gJ2ZhaWx1cmUnOyAvLyBmYWlsdXJlLCAwLCBlcnJvciwgcmVqZWN0ZWQsIGNoYXJnZWJhY2ssIGRlc2Nvbm9jaWRvc1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluZm9ybWEgZWwgcmVzdWx0YWRvOiBwb3N0TWVzc2FnZSBhbCBvcGVuZXIsIEJyb2FkY2FzdENoYW5uZWwgeSBsb2NhbFN0b3JhZ2VcbiAgICAgKiAoZXN0ZSDDumx0aW1vIHBlcm1pdGUgcG9sbGluZyBlbiBsYSBwZXN0YcOxYSBtYWRyZSkuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzaWduYWxTdGF0ZShzdGF0ZTogTXBTdGF0ZSkge1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcbiAgICAgICAgY29uc3Qgc2lkID0gdGhpcy5zaWQgfHwgbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ21wOnNpZCcpIHx8ICcnO1xuICAgICAgICBjb25zdCBwYXlsb2FkID0geyB0eXBlOiAnbXA6c3RhdGUnLCBzaWQsIHN0YXRlIH07XG5cbiAgICAgICAgdHJ5IHsgd2luZG93Lm9wZW5lciAmJiB3aW5kb3cub3BlbmVyLnBvc3RNZXNzYWdlKHBheWxvYWQsICcqJyk7IH0gY2F0Y2ggeyB9XG4gICAgICAgIHRyeSB7IHRoaXMuYmM/LnBvc3RNZXNzYWdlKHBheWxvYWQpOyB9IGNhdGNoIHsgfVxuICAgICAgICB0cnkgeyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShgbXA6c3RhdGU6JHtzaWR9YCwgc3RhdGUpOyB9IGNhdGNoIHsgfVxuICAgICAgICB0cnkgeyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc3RhdGUnLCBzdGF0ZSk7IH0gY2F0Y2ggeyB9XG4gICAgfVxuXG4gICAgLyoqIEludGVudGEgY2VycmFyIGxhIHBlc3Rhw7FhIGFjdHVhbDsgc2kgZmFsbGEsIGVqZWN1dGEgZWwgY2FsbGJhY2sgZGUgZmFsbGJhY2suICovXG4gICAgcHJpdmF0ZSB0cnlDbG9zZVNlbGYob25GYWlsOiAoKSA9PiB2b2lkKSB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuIG9uRmFpbCgpO1xuICAgICAgICBsZXQgYXR0ZW1wdGVkID0gZmFsc2U7XG4gICAgICAgIHRyeSB7IHdpbmRvdy5jbG9zZSgpOyBhdHRlbXB0ZWQgPSB0cnVlOyB9IGNhdGNoIHsgfVxuICAgICAgICBpZiAoIWF0dGVtcHRlZCkgb25GYWlsKCk7XG4gICAgfVxuXG4gICAgLyoqIE9jdWx0YSBoZWFkZXIvZm9vdGVyIHBhcmEgZXN0YSBwYW50YWxsYSBtw61uaW1hLiAqL1xuICAgIHByaXZhdGUgaGlkZUhlYWRlckZvb3RlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgICAgIGNvbnN0IGhlYWRlciA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZGVyJyk7XG4gICAgICAgIGNvbnN0IGZvb3RlciA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZm9vdGVyJyk7XG4gICAgICAgIGlmIChoZWFkZXIpIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaGVhZGVyLCAnZGlzcGxheScsICdub25lJyk7XG4gICAgICAgIGlmIChmb290ZXIpIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZm9vdGVyLCAnZGlzcGxheScsICdub25lJyk7XG4gICAgfVxuXG4gICAgLyoqIFJlc3RhdXJhIGhlYWRlci9mb290ZXIgYWwgc2FsaXIuICovXG4gICAgcHJpdmF0ZSBzaG93SGVhZGVyRm9vdGVyKCk6IHZvaWQge1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcbiAgICAgICAgY29uc3QgaGVhZGVyID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdoZWFkZXInKTtcbiAgICAgICAgY29uc3QgZm9vdGVyID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdmb290ZXInKTtcbiAgICAgICAgaWYgKGhlYWRlcikgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZShoZWFkZXIsICdkaXNwbGF5Jyk7XG4gICAgICAgIGlmIChmb290ZXIpIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUoZm9vdGVyLCAnZGlzcGxheScpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U3RhdGVJblNlc3Npb24obWVuc2FqZTogc3RyaW5nLCBzdGF0ZTogTXBTdGF0ZSkge1xuICAgICAgICB0aGlzLm1lc3NhZ2UgPSBtZW5zYWplO1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcbiAgICAgICAgdHJ5IHsgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnc3RhdGUnLCBzdGF0ZSk7IH0gY2F0Y2ggeyB9XG4gICAgICAgIHRyeSB7IGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdzdGF0ZScsIHN0YXRlKTsgfSBjYXRjaCB7IH1cbiAgICAgICAgdHJ5IHsgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnbW9kYWxuZXdzJywgJ2ZhbHNlJyk7IH0gY2F0Y2ggeyB9XG4gICAgfVxuXG5cbn1cbiIsIjxkaXYgaWQ9XCJjb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgYWxpZ24tc2VsZi1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxoNCBjbGFzcz1cInRpdHBhZ2UgY2VudGVyLWJsb2NrIHRleHQtY2VudGVyIGZvbnQtbmV4YSBmb250LWxnIG15LTNcIj57eyBtZXNzYWdlIHwgdXBwZXJjYXNlIH19PC9oND5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIGFsaWduLXNlbGYtY2VudGVyXCI+XG4gICAgICAgICAgICA8aDUgY2xhc3M9XCJjZW50ZXItYmxvY2sgdGV4dC1jZW50ZXIgZm9udC1uZXhhIG15LTNcIj5SZWRpcmlnaWVuZG8gZW4gc2VndW5kb3MuLi48L2g1PlxuICAgICAgICAgICAgPGJyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBqdXNpdGZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxhcHAtbG9hZGluZy1mdWxsLWVjPjwvYXBwLWxvYWRpbmctZnVsbC1lYz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
@@ -7,4 +7,4 @@ export const directives = [
7
7
  ];
8
8
  export * from './product-stock.directive';
9
9
  export * from './product-off.directive';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtZGlyZWN0aXZlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQUVqQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQVU7SUFDN0IsbUJBQW1CO0lBQ25CLHFCQUFxQjtDQUN4QixDQUFDO0FBRUYsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy9EaXJlY3RpdmVzIGJhc2VcclxuXHJcbmltcG9ydCB7IFByb2R1Y3RTdG9ja0RpcmVjdGl2ZSB9IGZyb20gJy4vcHJvZHVjdC1zdG9jay5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBQcm9kdWN0T2ZmRGlyZWN0aXZlIH0gZnJvbSAnLi9wcm9kdWN0LW9mZi5kaXJlY3RpdmUnO1xyXG5leHBvcnQgY29uc3QgZGlyZWN0aXZlczogYW55W10gPSBbXHJcbiAgICBQcm9kdWN0T2ZmRGlyZWN0aXZlLFxyXG4gICAgUHJvZHVjdFN0b2NrRGlyZWN0aXZlLFxyXG5dO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9wcm9kdWN0LXN0b2NrLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdC1vZmYuZGlyZWN0aXZlJztcclxuIl19
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtZGlyZWN0aXZlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQUVqQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQVU7SUFDN0IsbUJBQW1CO0lBQ25CLHFCQUFxQjtDQUN4QixDQUFDO0FBRUYsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy9EaXJlY3RpdmVzIGJhc2VcblxuaW1wb3J0IHsgUHJvZHVjdFN0b2NrRGlyZWN0aXZlIH0gZnJvbSAnLi9wcm9kdWN0LXN0b2NrLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQcm9kdWN0T2ZmRGlyZWN0aXZlIH0gZnJvbSAnLi9wcm9kdWN0LW9mZi5kaXJlY3RpdmUnO1xuZXhwb3J0IGNvbnN0IGRpcmVjdGl2ZXM6IGFueVtdID0gW1xuICAgIFByb2R1Y3RPZmZEaXJlY3RpdmUsXG4gICAgUHJvZHVjdFN0b2NrRGlyZWN0aXZlLFxuXTtcblxuZXhwb3J0ICogZnJvbSAnLi9wcm9kdWN0LXN0b2NrLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3Byb2R1Y3Qtb2ZmLmRpcmVjdGl2ZSc7XG4iXX0=
@@ -116,4 +116,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
116
116
  }], customMessage: [{
117
117
  type: Input
118
118
  }] } });
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1vZmYuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWRpcmVjdGl2ZS9wcm9kdWN0LW9mZi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFJVCxLQUFLLEVBR0wsTUFBTSxHQUdULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFM0MsTUFBTSxPQUFPLGFBQWE7Q0FFekI7QUFLRCxNQUFNLE9BQU8sbUJBQW1CO0lBb0JFO0lBQ2xCO0lBQ0E7SUFwQkosT0FBTyxDQUFNO0lBQ2IsUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUN0QixnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQztJQUU3QyxJQUNJLFlBQVksQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUNJLGVBQWUsQ0FBQyxLQUFVO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUNJLGFBQWEsQ0FBQyxLQUFhO1FBQzNCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDbEMsQ0FBQztJQUVELFlBQzhCLFFBQWtCLEVBQ3BDLFVBQXNCLEVBQ3RCLFFBQW1CO1FBRkQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVc7SUFDM0IsQ0FBQztJQUVMLFFBQVEsS0FBSyxDQUFDO0lBQ2QsV0FBVyxHQUFHLENBQUMsT0FBK0QsRUFBNkIsRUFBRTtRQUV6RyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxDQUFDO1FB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O1lBQUMsQ0FBQztRQUN0RSxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUMsQ0FBQztJQUVGLFdBQVcsS0FBSyxDQUFDO3dHQXBHUixtQkFBbUIsa0JBb0JoQixRQUFROzRGQXBCWCxtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBSC9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtpQkFDN0I7OzBCQXFCUSxNQUFNOzJCQUFDLFFBQVE7MEZBYmhCLFlBQVk7c0JBRGYsS0FBSztnQkFLRixlQUFlO3NCQURsQixLQUFLO2dCQUtGLGFBQWE7c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgRGlyZWN0aXZlLFxyXG4gICAgT25Jbml0LFxyXG4gICAgVmlld0NvbnRhaW5lclJlZixcclxuICAgIE9uRGVzdHJveSxcclxuICAgIElucHV0LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIFJlbmRlcmVyMixcclxuICAgIEluamVjdCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgUGFyYW1zQ29udGV4dCB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6IFwiW2VjUHJvZHVjdE9mZl1cIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2R1Y3RPZmZEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgICBwcml2YXRlIHByb2R1Y3Q6IGFueTtcclxuICAgIHByaXZhdGUgY2xhc3NTdHI6IHN0cmluZyA9IFwiXCI7XHJcbiAgICBwcml2YXRlIGN1c3RvbU1lc3NhZ2VTdHIgPSBcIntkaXNjb3VudH0lIE9GRlwiO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgZWNQcm9kdWN0T2ZmKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLnByb2R1Y3QgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgY2xhc3NTdHJTcGFjaW5nKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLmNsYXNzU3RyID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IGN1c3RvbU1lc3NhZ2UodmFsdWU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTWVzc2FnZVN0ciA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxyXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICApIHsgfVxyXG5cclxuICAgIG5nT25Jbml0KCkgeyB9XHJcbiAgICBoYXNEaXNjb3VudCA9IChwcm9kdWN0OiB7IHByaWNlOiBzdHJpbmcgfCBudW1iZXI7IHNhbGVwcmljZTogc3RyaW5nIHwgbnVtYmVyIH0pOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkID0+IHtcclxuXHJcbiAgICAgICAgaWYgKCFwcm9kdWN0LnNhbGVwcmljZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHR5cGVvZiBwcm9kdWN0LnByaWNlID09PSAnc3RyaW5nJyAmJiBwcm9kdWN0LnByaWNlLmluY2x1ZGVzKFwiLVwiKSAmJiBcclxuICAgICAgICAgICAgdHlwZW9mIHByb2R1Y3Quc2FsZXByaWNlID09PSAnc3RyaW5nJyAmJiBwcm9kdWN0LnNhbGVwcmljZS5pbmNsdWRlcyhcIi1cIikpIHtcclxuICAgICAgICAgICAgbGV0IHByaWNlczogc3RyaW5nW10gPSBwcm9kdWN0LnByaWNlLnNwbGl0KCctJyk7XHJcbiAgICAgICAgICAgIGxldCBzYWxlcHJpY2VzOiBzdHJpbmdbXSA9IHByb2R1Y3Quc2FsZXByaWNlLnNwbGl0KCctJyk7XHJcbiAgICAgICAgICAgIGxldCBzYWxlQmY6IG51bWJlciB8IG51bGwgPSB0aGlzLmdlbmVyYXRlRGlzY291bnQocHJpY2VzWzFdPy50cmltKCksIHNhbGVwcmljZXNbMV0/LnRyaW0oKSk7XHJcbiAgICAgICAgICAgIGxldCBzYWxlTHQ6IG51bWJlciB8IG51bGwgPSB0aGlzLmdlbmVyYXRlRGlzY291bnQocHJpY2VzWzBdPy50cmltKCksIHNhbGVwcmljZXNbMF0/LnRyaW0oKSk7XHJcbiAgICAgICAgICAgIGlmICghc2FsZUJmICYmICFzYWxlTHQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChzYWxlQmYgJiYgc2FsZUx0ICYmIHNhbGVCZiA9PT0gc2FsZUx0KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7c2FsZUJmfWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHNhbGVCZiAmJiAhc2FsZUx0KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7c2FsZUJmfWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCFzYWxlQmYgJiYgc2FsZUx0KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7c2FsZUx0fWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGAke3NhbGVCZn0gLSAke3NhbGVMdH1gO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChwYXJzZUludChwcm9kdWN0LnByaWNlIGFzIHN0cmluZykgPiBwYXJzZUludChwcm9kdWN0LnNhbGVwcmljZSBhcyBzdHJpbmcpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZW5lcmF0ZURpc2NvdW50KHByb2R1Y3QucHJpY2UsIHByb2R1Y3Quc2FsZXByaWNlKT8udG9TdHJpbmcoKSB8fCBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsOyAvLyBFbnN1cmUgYSByZXR1cm4gdmFsdWUgaW4gYWxsIGNvZGUgcGF0aHNcclxuICAgIH07XHJcblxyXG5cclxuICAgIGdlbmVyYXRlRGlzY291bnQgPSAocHJpY2U6IHN0cmluZyB8IG51bWJlciwgc2FsZXByaWNlOiBzdHJpbmcgfCBudW1iZXIpOiBudW1iZXIgfCBudWxsID0+IHtcclxuICAgICAgICBcclxuICAgICAgICBpZiAocGFyc2VGbG9hdChwcmljZSBhcyBzdHJpbmcpID4gcGFyc2VGbG9hdChzYWxlcHJpY2UgYXMgc3RyaW5nKSkge1xyXG4gICAgICAgICAgICBsZXQgcmVzdWx0ID1cclxuICAgICAgICAgICAgICAgICgocGFyc2VGbG9hdChwcmljZSBhcyBzdHJpbmcpIC0gcGFyc2VGbG9hdChzYWxlcHJpY2UgYXMgc3RyaW5nKSkgL1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQocHJpY2UgYXMgc3RyaW5nKSkgKlxyXG4gICAgICAgICAgICAgICAgMTAwO1xyXG4gICAgICAgICAgICBpZiAoTnVtYmVyLmlzTmFOKHJlc3VsdCkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9IGVsc2UgcmV0dXJuIE1hdGgucm91bmQocmVzdWx0KTsgLy9NYXRoLmZsb29yKHJlc3VsdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAodGhpcy5wcm9kdWN0LnByaWNlKSB7XHJcbiAgICAgICAgICAgIGxldCBkaXNjb3VudCA9IHRoaXMuaGFzRGlzY291bnQodGhpcy5wcm9kdWN0KTtcclxuICAgICAgICAgICAgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNoaWxkTm9kZXMgYXMgTm9kZUxpc3RPZjxDaGlsZE5vZGU+KS5mb3JFYWNoKChub2RlOiBDaGlsZE5vZGUpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIG5vZGUpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgaWYgKGRpc2NvdW50KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmNyZWF0ZUltYWdlKGRpc2NvdW50KSk7XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIC8vIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlSW1hZ2UgPSAoZGlzY291bnQ6IHN0cmluZyk6IEhUTUxFbGVtZW50ID0+IHtcclxuICAgICAgICBsZXQgcG9wb3ZlcjogSFRNTEVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTWVzc2FnZVN0ciA9IHRoaXMuY3VzdG9tTWVzc2FnZVN0ci5yZXBsYWNlKCd7ZGlzY291bnR9JywgZGlzY291bnQpO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkocG9wb3ZlciwgXCJpbm5lckhUTUxcIiwgdGhpcy5jdXN0b21NZXNzYWdlU3RyKTtcclxuICAgICAgICB0aGlzLmNsYXNzU3RyPy5zcGxpdChcIiBcIikuZm9yRWFjaCgoY2w6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhwb3BvdmVyLCBjbCk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IGNvbnNvbGUubG9nKCdhZGQgY2xhc3MgZGlyZWN0aXZlIC0+ICcsIGVycm9yKTsgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBwb3BvdmVyO1xyXG4gICAgfTtcclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHsgfVxyXG59XHJcbiJdfQ==
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1vZmYuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWRpcmVjdGl2ZS9wcm9kdWN0LW9mZi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFJVCxLQUFLLEVBR0wsTUFBTSxHQUdULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFM0MsTUFBTSxPQUFPLGFBQWE7Q0FFekI7QUFLRCxNQUFNLE9BQU8sbUJBQW1CO0lBb0JFO0lBQ2xCO0lBQ0E7SUFwQkosT0FBTyxDQUFNO0lBQ2IsUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUN0QixnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQztJQUU3QyxJQUNJLFlBQVksQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUNJLGVBQWUsQ0FBQyxLQUFVO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUNJLGFBQWEsQ0FBQyxLQUFhO1FBQzNCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDbEMsQ0FBQztJQUVELFlBQzhCLFFBQWtCLEVBQ3BDLFVBQXNCLEVBQ3RCLFFBQW1CO1FBRkQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVc7SUFDM0IsQ0FBQztJQUVMLFFBQVEsS0FBSyxDQUFDO0lBQ2QsV0FBVyxHQUFHLENBQUMsT0FBK0QsRUFBNkIsRUFBRTtRQUV6RyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxDQUFDO1FB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O1lBQUMsQ0FBQztRQUN0RSxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUMsQ0FBQztJQUVGLFdBQVcsS0FBSyxDQUFDO3dHQXBHUixtQkFBbUIsa0JBb0JoQixRQUFROzRGQXBCWCxtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBSC9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtpQkFDN0I7OzBCQXFCUSxNQUFNOzJCQUFDLFFBQVE7MEZBYmhCLFlBQVk7c0JBRGYsS0FBSztnQkFLRixlQUFlO3NCQURsQixLQUFLO2dCQUtGLGFBQWE7c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBPbkluaXQsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBPbkRlc3Ryb3ksXG4gICAgSW5wdXQsXG4gICAgRWxlbWVudFJlZixcbiAgICBSZW5kZXJlcjIsXG4gICAgSW5qZWN0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5cbmV4cG9ydCBjbGFzcyBQYXJhbXNDb250ZXh0IHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiBcIltlY1Byb2R1Y3RPZmZdXCIsXG59KVxuZXhwb3J0IGNsYXNzIFByb2R1Y3RPZmZEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIHByaXZhdGUgcHJvZHVjdDogYW55O1xuICAgIHByaXZhdGUgY2xhc3NTdHI6IHN0cmluZyA9IFwiXCI7XG4gICAgcHJpdmF0ZSBjdXN0b21NZXNzYWdlU3RyID0gXCJ7ZGlzY291bnR9JSBPRkZcIjtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGVjUHJvZHVjdE9mZih2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMucHJvZHVjdCA9IHZhbHVlO1xuICAgIH1cbiAgICBASW5wdXQoKVxuICAgIHNldCBjbGFzc1N0clNwYWNpbmcodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLmNsYXNzU3RyID0gdmFsdWU7XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGN1c3RvbU1lc3NhZ2UodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLmN1c3RvbU1lc3NhZ2VTdHIgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICkgeyB9XG5cbiAgICBuZ09uSW5pdCgpIHsgfVxuICAgIGhhc0Rpc2NvdW50ID0gKHByb2R1Y3Q6IHsgcHJpY2U6IHN0cmluZyB8IG51bWJlcjsgc2FsZXByaWNlOiBzdHJpbmcgfCBudW1iZXIgfSk6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPT4ge1xuXG4gICAgICAgIGlmICghcHJvZHVjdC5zYWxlcHJpY2UpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgcHJvZHVjdC5wcmljZSA9PT0gJ3N0cmluZycgJiYgcHJvZHVjdC5wcmljZS5pbmNsdWRlcyhcIi1cIikgJiYgXG4gICAgICAgICAgICB0eXBlb2YgcHJvZHVjdC5zYWxlcHJpY2UgPT09ICdzdHJpbmcnICYmIHByb2R1Y3Quc2FsZXByaWNlLmluY2x1ZGVzKFwiLVwiKSkge1xuICAgICAgICAgICAgbGV0IHByaWNlczogc3RyaW5nW10gPSBwcm9kdWN0LnByaWNlLnNwbGl0KCctJyk7XG4gICAgICAgICAgICBsZXQgc2FsZXByaWNlczogc3RyaW5nW10gPSBwcm9kdWN0LnNhbGVwcmljZS5zcGxpdCgnLScpO1xuICAgICAgICAgICAgbGV0IHNhbGVCZjogbnVtYmVyIHwgbnVsbCA9IHRoaXMuZ2VuZXJhdGVEaXNjb3VudChwcmljZXNbMV0/LnRyaW0oKSwgc2FsZXByaWNlc1sxXT8udHJpbSgpKTtcbiAgICAgICAgICAgIGxldCBzYWxlTHQ6IG51bWJlciB8IG51bGwgPSB0aGlzLmdlbmVyYXRlRGlzY291bnQocHJpY2VzWzBdPy50cmltKCksIHNhbGVwcmljZXNbMF0/LnRyaW0oKSk7XG4gICAgICAgICAgICBpZiAoIXNhbGVCZiAmJiAhc2FsZUx0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2FsZUJmICYmIHNhbGVMdCAmJiBzYWxlQmYgPT09IHNhbGVMdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBgJHtzYWxlQmZ9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzYWxlQmYgJiYgIXNhbGVMdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBgJHtzYWxlQmZ9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghc2FsZUJmICYmIHNhbGVMdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBgJHtzYWxlTHR9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBgJHtzYWxlQmZ9IC0gJHtzYWxlTHR9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChwYXJzZUludChwcm9kdWN0LnByaWNlIGFzIHN0cmluZykgPiBwYXJzZUludChwcm9kdWN0LnNhbGVwcmljZSBhcyBzdHJpbmcpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGVEaXNjb3VudChwcm9kdWN0LnByaWNlLCBwcm9kdWN0LnNhbGVwcmljZSk/LnRvU3RyaW5nKCkgfHwgbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDsgLy8gRW5zdXJlIGEgcmV0dXJuIHZhbHVlIGluIGFsbCBjb2RlIHBhdGhzXG4gICAgfTtcblxuXG4gICAgZ2VuZXJhdGVEaXNjb3VudCA9IChwcmljZTogc3RyaW5nIHwgbnVtYmVyLCBzYWxlcHJpY2U6IHN0cmluZyB8IG51bWJlcik6IG51bWJlciB8IG51bGwgPT4ge1xuICAgICAgICBcbiAgICAgICAgaWYgKHBhcnNlRmxvYXQocHJpY2UgYXMgc3RyaW5nKSA+IHBhcnNlRmxvYXQoc2FsZXByaWNlIGFzIHN0cmluZykpIHtcbiAgICAgICAgICAgIGxldCByZXN1bHQgPVxuICAgICAgICAgICAgICAgICgocGFyc2VGbG9hdChwcmljZSBhcyBzdHJpbmcpIC0gcGFyc2VGbG9hdChzYWxlcHJpY2UgYXMgc3RyaW5nKSkgL1xuICAgICAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KHByaWNlIGFzIHN0cmluZykpICpcbiAgICAgICAgICAgICAgICAxMDA7XG4gICAgICAgICAgICBpZiAoTnVtYmVyLmlzTmFOKHJlc3VsdCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSByZXR1cm4gTWF0aC5yb3VuZChyZXN1bHQpOyAvL01hdGguZmxvb3IocmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmICh0aGlzLnByb2R1Y3QucHJpY2UpIHtcbiAgICAgICAgICAgIGxldCBkaXNjb3VudCA9IHRoaXMuaGFzRGlzY291bnQodGhpcy5wcm9kdWN0KTtcbiAgICAgICAgICAgICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGlsZE5vZGVzIGFzIE5vZGVMaXN0T2Y8Q2hpbGROb2RlPikuZm9yRWFjaCgobm9kZTogQ2hpbGROb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgbm9kZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChkaXNjb3VudCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuY3JlYXRlSW1hZ2UoZGlzY291bnQpKTtcbiAgICAgICAgICAgIH0gXG4gICAgICAgICAgICAvLyBlbHNlIHtcbiAgICAgICAgICAgIC8vICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQsIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgIC8vIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNyZWF0ZUltYWdlID0gKGRpc2NvdW50OiBzdHJpbmcpOiBIVE1MRWxlbWVudCA9PiB7XG4gICAgICAgIGxldCBwb3BvdmVyOiBIVE1MRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudChcImFcIik7XG4gICAgICAgIHRoaXMuY3VzdG9tTWVzc2FnZVN0ciA9IHRoaXMuY3VzdG9tTWVzc2FnZVN0ci5yZXBsYWNlKCd7ZGlzY291bnR9JywgZGlzY291bnQpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHBvcG92ZXIsIFwiaW5uZXJIVE1MXCIsIHRoaXMuY3VzdG9tTWVzc2FnZVN0cik7XG4gICAgICAgIHRoaXMuY2xhc3NTdHI/LnNwbGl0KFwiIFwiKS5mb3JFYWNoKChjbDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MocG9wb3ZlciwgY2wpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgY29uc29sZS5sb2coJ2FkZCBjbGFzcyBkaXJlY3RpdmUgLT4gJywgZXJyb3IpOyB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcG9wb3ZlcjtcbiAgICB9O1xuXG4gICAgbmdPbkRlc3Ryb3koKSB7IH1cbn1cbiJdfQ==
@@ -69,4 +69,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
69
69
  }], ecProductStock: [{
70
70
  type: Input
71
71
  }] } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zdG9jay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtZGlyZWN0aXZlL3Byb2R1Y3Qtc3RvY2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUF5RixNQUFNLGVBQWUsQ0FBQzs7QUFPcEosTUFBTSxPQUFPLHFCQUFxQjtJQXVCbEI7SUFDQTtJQXRCSixnQkFBZ0IsR0FBbUIsSUFBSSxDQUFDO0lBR2hELGtCQUFrQixDQUFvQjtJQUV0QyxJQUNJLGNBQWMsQ0FBQyxPQUFnQjtRQUMvQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFBO1FBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0IsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUN2QixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ25FLENBQUM7aUJBQUksQ0FBQztnQkFDRixPQUFPLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7WUFDMUQsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUQsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUNZLFdBQTZCLEVBQzdCLGFBQStCO1FBRC9CLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7SUFDM0MsQ0FBQztJQUVELFFBQVEsS0FBSyxDQUFDO0lBRWQsV0FBVyxLQUFLLENBQUM7SUFFakIsV0FBVyxLQUFLLENBQUM7SUFFakIsYUFBYSxHQUFHLEdBQVksRUFBRTtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLElBQUksU0FBUyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLElBQUksU0FBUyxFQUFFLENBQUM7WUFDM0gsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDekIsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ1QsT0FBTyxLQUFLLENBQUMsQ0FBQywrQkFBK0I7UUFDakQsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ3RDLENBQUM7SUFDTCxDQUFDLENBQUE7SUFFRCxtQkFBbUIsR0FBRyxHQUFZLEVBQUU7UUFDaEMsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBRXRCLHFCQUFxQjtRQUNyQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRTtnQkFDdEQsSUFBSSxZQUFZLENBQUMsSUFBSSxLQUFLLGNBQWMsRUFBRSxDQUFDO29CQUN2QyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUNyQixDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO1FBRUQsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDdEMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUNWLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVO2dCQUM1QixDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQ2xDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUNuRSxLQUFLLFNBQVM7Z0JBQ2YsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQzdFLENBQUM7UUFDTixDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQyxDQUFBO3dHQXBFUSxxQkFBcUI7NEZBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFIakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO2lCQUMvQjsrR0FNRyxrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBSUYsY0FBYztzQkFEakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmLCBSZW5kZXJlcjIsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgUHJvZHVjdCB9IGZyb20gJy4uL2ludGVyZmFjZXMvcHJvZHVjdCc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiBcIltlY1Byb2R1Y3RTdG9ja11cIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvZHVjdFN0b2NrRGlyZWN0aXZlIHtcclxuXHJcbiAgICBwcml2YXRlIHByb2R1Y3REaXJlY3RpdmU6IFByb2R1Y3QgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZWNQcm9kdWN0U3RvY2tFbHNlITogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IGVjUHJvZHVjdFN0b2NrKHByb2R1Y3Q6IFByb2R1Y3QpIHtcclxuICAgICAgICB0aGlzLnByb2R1Y3REaXJlY3RpdmUgPSBwcm9kdWN0XHJcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICAgICAgaWYgKHRoaXMudmFsaWRhdGVTdG9jaygpKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmVjUHJvZHVjdFN0b2NrRWxzZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmVjUHJvZHVjdFN0b2NrRWxzZSk7XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignZmFsdGEgZGVmaW5pciBlbCB0ZW1wbGF0ZSBkZSBhZ290YWRvJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxyXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZiwgKSB7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7IH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHsgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKCkgeyB9XHJcblxyXG4gICAgdmFsaWRhdGVTdG9jayA9ICgpOiBib29sZWFuID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMucHJvZHVjdERpcmVjdGl2ZSB8fCB0aGlzLnByb2R1Y3REaXJlY3RpdmUuc3BlY2lhbF9tYXJrID09IHVuZGVmaW5lZCB8fCB0aGlzLnByb2R1Y3REaXJlY3RpdmUudmFyaWFudHMgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0ZVN0b2NrKCk7XHJcbiAgICAgICAgICAgIH0sIDEwMDApO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIEVuc3VyZSBhIGJvb2xlYW4gaXMgcmV0dXJuZWRcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jaGVja1ZhbHVlc0ZvclN0b2NrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrVmFsdWVzRm9yU3RvY2sgPSAoKTogYm9vbGVhbiA9PiB7XHJcbiAgICAgICAgbGV0IGV4aXN0TWFyayA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvLyBDaGVjayBzcGVjaWFsX21hcmtcclxuICAgICAgICBpZiAodGhpcy5wcm9kdWN0RGlyZWN0aXZlPy5zcGVjaWFsX21hcmspIHtcclxuICAgICAgICAgICAgdGhpcy5wcm9kdWN0RGlyZWN0aXZlLnNwZWNpYWxfbWFyay5mb3JFYWNoKHNwZWNpYWxfbWFyayA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoc3BlY2lhbF9tYXJrLnR5cGUgPT09ICdvdXRfb2Zfc3RvY2snKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZXhpc3RNYXJrID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBDaGVjayB2YXJpYW50c1xyXG4gICAgICAgIGlmICghZXhpc3RNYXJrICYmIHRoaXMucHJvZHVjdERpcmVjdGl2ZSkge1xyXG4gICAgICAgICAgICBleGlzdE1hcmsgPSAhIShcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdERpcmVjdGl2ZS52YXJpYW50X2lkXHJcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnByb2R1Y3REaXJlY3RpdmUudmFyaWFudHM/LmZpbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHYgPT4gdi5jb2RlID09PSB0aGlzLnByb2R1Y3REaXJlY3RpdmU/LnZhcmlhbnRfaWQgJiYgdi5zdG9jayA+IDBcclxuICAgICAgICAgICAgICAgICAgICApID09PSB1bmRlZmluZWRcclxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMucHJvZHVjdERpcmVjdGl2ZS52YXJpYW50cz8uZmluZCh2ID0+IHYuc3RvY2sgPiAwKSA9PT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZXhpc3RNYXJrO1xyXG4gICAgfVxyXG59Il19
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zdG9jay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtZGlyZWN0aXZlL3Byb2R1Y3Qtc3RvY2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUF5RixNQUFNLGVBQWUsQ0FBQzs7QUFPcEosTUFBTSxPQUFPLHFCQUFxQjtJQXVCbEI7SUFDQTtJQXRCSixnQkFBZ0IsR0FBbUIsSUFBSSxDQUFDO0lBR2hELGtCQUFrQixDQUFvQjtJQUV0QyxJQUNJLGNBQWMsQ0FBQyxPQUFnQjtRQUMvQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFBO1FBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0IsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUN2QixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ25FLENBQUM7aUJBQUksQ0FBQztnQkFDRixPQUFPLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7WUFDMUQsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUQsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUNZLFdBQTZCLEVBQzdCLGFBQStCO1FBRC9CLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7SUFDM0MsQ0FBQztJQUVELFFBQVEsS0FBSyxDQUFDO0lBRWQsV0FBVyxLQUFLLENBQUM7SUFFakIsV0FBVyxLQUFLLENBQUM7SUFFakIsYUFBYSxHQUFHLEdBQVksRUFBRTtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLElBQUksU0FBUyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLElBQUksU0FBUyxFQUFFLENBQUM7WUFDM0gsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDekIsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ1QsT0FBTyxLQUFLLENBQUMsQ0FBQywrQkFBK0I7UUFDakQsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ3RDLENBQUM7SUFDTCxDQUFDLENBQUE7SUFFRCxtQkFBbUIsR0FBRyxHQUFZLEVBQUU7UUFDaEMsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBRXRCLHFCQUFxQjtRQUNyQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRTtnQkFDdEQsSUFBSSxZQUFZLENBQUMsSUFBSSxLQUFLLGNBQWMsRUFBRSxDQUFDO29CQUN2QyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUNyQixDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO1FBRUQsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDdEMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUNWLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVO2dCQUM1QixDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQ2xDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUNuRSxLQUFLLFNBQVM7Z0JBQ2YsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQzdFLENBQUM7UUFDTixDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQyxDQUFBO3dHQXBFUSxxQkFBcUI7NEZBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFIakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO2lCQUMvQjsrR0FNRyxrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBSUYsY0FBYztzQkFEakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiwgUmVuZGVyZXIyLCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUHJvZHVjdCB9IGZyb20gJy4uL2ludGVyZmFjZXMvcHJvZHVjdCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiBcIltlY1Byb2R1Y3RTdG9ja11cIlxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWN0U3RvY2tEaXJlY3RpdmUge1xuXG4gICAgcHJpdmF0ZSBwcm9kdWN0RGlyZWN0aXZlOiBQcm9kdWN0IHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIGVjUHJvZHVjdFN0b2NrRWxzZSE6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBlY1Byb2R1Y3RTdG9jayhwcm9kdWN0OiBQcm9kdWN0KSB7XG4gICAgICAgIHRoaXMucHJvZHVjdERpcmVjdGl2ZSA9IHByb2R1Y3RcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNsZWFyKCk7XG4gICAgICAgIGlmICh0aGlzLnZhbGlkYXRlU3RvY2soKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZWNQcm9kdWN0U3RvY2tFbHNlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmVjUHJvZHVjdFN0b2NrRWxzZSk7XG4gICAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdmYWx0YSBkZWZpbmlyIGVsIHRlbXBsYXRlIGRlIGFnb3RhZG8nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLCApIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHsgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7IH1cblxuICAgIG5nT25DaGFuZ2VzKCkgeyB9XG5cbiAgICB2YWxpZGF0ZVN0b2NrID0gKCk6IGJvb2xlYW4gPT4ge1xuICAgICAgICBpZiAoIXRoaXMucHJvZHVjdERpcmVjdGl2ZSB8fCB0aGlzLnByb2R1Y3REaXJlY3RpdmUuc3BlY2lhbF9tYXJrID09IHVuZGVmaW5lZCB8fCB0aGlzLnByb2R1Y3REaXJlY3RpdmUudmFyaWFudHMgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRlU3RvY2soKTtcbiAgICAgICAgICAgIH0sIDEwMDApO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBFbnN1cmUgYSBib29sZWFuIGlzIHJldHVybmVkXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jaGVja1ZhbHVlc0ZvclN0b2NrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjaGVja1ZhbHVlc0ZvclN0b2NrID0gKCk6IGJvb2xlYW4gPT4ge1xuICAgICAgICBsZXQgZXhpc3RNYXJrID0gZmFsc2U7XG5cbiAgICAgICAgLy8gQ2hlY2sgc3BlY2lhbF9tYXJrXG4gICAgICAgIGlmICh0aGlzLnByb2R1Y3REaXJlY3RpdmU/LnNwZWNpYWxfbWFyaykge1xuICAgICAgICAgICAgdGhpcy5wcm9kdWN0RGlyZWN0aXZlLnNwZWNpYWxfbWFyay5mb3JFYWNoKHNwZWNpYWxfbWFyayA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHNwZWNpYWxfbWFyay50eXBlID09PSAnb3V0X29mX3N0b2NrJykge1xuICAgICAgICAgICAgICAgICAgICBleGlzdE1hcmsgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2sgdmFyaWFudHNcbiAgICAgICAgaWYgKCFleGlzdE1hcmsgJiYgdGhpcy5wcm9kdWN0RGlyZWN0aXZlKSB7XG4gICAgICAgICAgICBleGlzdE1hcmsgPSAhIShcbiAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3REaXJlY3RpdmUudmFyaWFudF9pZFxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMucHJvZHVjdERpcmVjdGl2ZS52YXJpYW50cz8uZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgIHYgPT4gdi5jb2RlID09PSB0aGlzLnByb2R1Y3REaXJlY3RpdmU/LnZhcmlhbnRfaWQgJiYgdi5zdG9jayA+IDBcbiAgICAgICAgICAgICAgICAgICAgKSA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5wcm9kdWN0RGlyZWN0aXZlLnZhcmlhbnRzPy5maW5kKHYgPT4gdi5zdG9jayA+IDApID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZXhpc3RNYXJrO1xuICAgIH1cbn0iXX0=
@@ -15,4 +15,4 @@ export const authGuard = (route, state) => {
15
15
  router.navigateByUrl(redirectTo);
16
16
  return authService.isAuthenticated();
17
17
  };
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1ndWFyZHMvYXV0aC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBeUMsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFrQixDQUFDLEtBQTRCLEVBQUUsS0FBSyxFQUFFLEVBQUU7SUFDL0UsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ3ZDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsQ0FBQTtJQUVsRCxJQUFHLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRTtRQUNoQyxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBRWpDLE9BQU8sV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO0FBQ3RDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZUZuLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL2VjLXNlcnZpY2VzJztcclxuLyoqXHJcbiAqIEd1YXJkYSBxdWUgY29udHJvbGEgcXVlIGVsIHVzdWFyaW8gZXN0ZSBsb2d1ZWFkbyBhIG5vLlxyXG4gKiBAcGFyYW0gcm91dGUgXHJcbiAqIEBwYXJhbSBzdGF0ZSBcclxuICogQHJldHVybnMgXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgYXV0aEd1YXJkOiBDYW5BY3RpdmF0ZUZuID0gKHJvdXRlOkFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlKSA9PiB7XHJcblx0Y29uc3QgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpXHJcblx0Y29uc3Qgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcblx0Y29uc3QgcmVkaXJlY3RUbyA9IHJvdXRlLmRhdGFbXCJyZWRpcmVjdFRvXCJdIHx8ICcvJ1xyXG5cclxuXHRpZighYXV0aFNlcnZpY2UuaXNBdXRoZW50aWNhdGVkKCkpXHJcblx0XHRyb3V0ZXIubmF2aWdhdGVCeVVybChyZWRpcmVjdFRvKVxyXG5cclxuXHRyZXR1cm4gYXV0aFNlcnZpY2UuaXNBdXRoZW50aWNhdGVkKCk7XHJcbn07XHJcbiJdfQ==
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1ndWFyZHMvYXV0aC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBeUMsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFrQixDQUFDLEtBQTRCLEVBQUUsS0FBSyxFQUFFLEVBQUU7SUFDL0UsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ3ZDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsQ0FBQTtJQUVsRCxJQUFHLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRTtRQUNoQyxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBRWpDLE9BQU8sV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO0FBQ3RDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGVGbiwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vZWMtc2VydmljZXMnO1xuLyoqXG4gKiBHdWFyZGEgcXVlIGNvbnRyb2xhIHF1ZSBlbCB1c3VhcmlvIGVzdGUgbG9ndWVhZG8gYSBuby5cbiAqIEBwYXJhbSByb3V0ZSBcbiAqIEBwYXJhbSBzdGF0ZSBcbiAqIEByZXR1cm5zIFxuICovXG5leHBvcnQgY29uc3QgYXV0aEd1YXJkOiBDYW5BY3RpdmF0ZUZuID0gKHJvdXRlOkFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlKSA9PiB7XG5cdGNvbnN0IGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKVxuXHRjb25zdCByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcblx0Y29uc3QgcmVkaXJlY3RUbyA9IHJvdXRlLmRhdGFbXCJyZWRpcmVjdFRvXCJdIHx8ICcvJ1xuXG5cdGlmKCFhdXRoU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQoKSlcblx0XHRyb3V0ZXIubmF2aWdhdGVCeVVybChyZWRpcmVjdFRvKVxuXG5cdHJldHVybiBhdXRoU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQoKTtcbn07XG4iXX0=
@@ -101,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
101
101
  }], ctorParameters: () => [], propDecorators: { ecAddActionRedirect: [{
102
102
  type: Input
103
103
  }] } });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWMtY3VycmVuY3ktc3ltYm9sLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtcGlwZS9lYy1jdXJyZW5jeS1zeW1ib2wucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBaUIsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBQ3BEOzs7R0FHRztBQUtILE1BQU0sT0FBTyxvQkFBb0I7SUFDaEM7O09BRUc7SUFDSyxRQUFRLENBQU07SUFDdEI7O09BRUc7SUFDSyxlQUFlLEdBQW9CLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUNsRTs7T0FFRztJQUNLLE1BQU0sR0FBeUIsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFFbkUsTUFBTSxDQUFLO0lBQ1IsSUFDSSxtQkFBbUIsQ0FBQyxLQUFVO1FBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFDSjtRQUNDLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLENBQUE7SUFDckUsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxTQUFTLENBQUMsS0FBVTtRQUNuQixNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN6RixJQUFJLGNBQWMsR0FBRyxFQUFFLENBQUE7UUFDdkIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNYLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBO1lBQzFGLGNBQWMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQ2pGLENBQUM7UUFDRCxPQUFPLGNBQWMsQ0FBQztJQUN2QixDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILHFCQUFxQixDQUFDLEtBQVU7UUFDL0IsSUFBSSxDQUFDO1lBQ0osT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNsRixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLDRCQUE0QixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ25ELE9BQU8sS0FBSyxDQUFBO1FBQ2IsQ0FBQztJQUNGLENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUFDLEtBQVUsSUFBSSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUN6RDs7OztPQUlHO0lBQ0gsY0FBYyxDQUFDLEtBQVU7UUFDeEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxJQUFJLE1BQU07WUFDN0YsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQzVDLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBRTlDLENBQUM7SUFDRDs7Ozs7T0FLRztJQUNILHVCQUF1QixDQUFDLEtBQWE7UUFDcEMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMxQyxJQUFJLEdBQUcsR0FBRyxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVCLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ2IsNkVBQTZFO1FBQzlFLENBQUM7YUFBTSxDQUFDO1lBQ1AsSUFBSSxHQUFHLEdBQUcsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM1QixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUE7WUFDM0UsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlCLE9BQU8sS0FBSyxDQUFBO1FBQ2IsQ0FBQztJQUNGLENBQUM7d0dBbkZXLG9CQUFvQjtzR0FBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQUpoQyxJQUFJO21CQUFDO29CQUNMLElBQUksRUFBRSxrQkFBa0I7b0JBQ3hCLFVBQVUsRUFBRSxJQUFJO2lCQUNoQjt3REFpQk8sbUJBQW1CO3NCQUR0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBQaXBlLCBQaXBlVHJhbnNmb3JtLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDdXJyZW5jeVNlcnZpY2UgfSBmcm9tICcuLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IENvcmVDb25zdGFudHNTZXJ2aWNlIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcclxuLyoqXHJcbiAqIEZvcm1hdGVhIGVsIHByZWNpbyBkZSB1biBwcm9kdWN0by5cclxuICogQGltcGxlbWVudHMge1BpcGVUcmFuc2Zvcm19XHJcbiAqL1xyXG5AUGlwZSh7XHJcblx0bmFtZTogJ2VjQ3VycmVuY3lTeW1ib2wnLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFY0N1cnJlbmN5U3ltYm9sUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cdC8qKlxyXG5cdCAqIENvbnRpZW5lIGVsIHZhbG9yIGRlIGxhIG1vbmVkYSBhY3R1YWxcclxuXHQgKi9cclxuXHRwcml2YXRlIGN1cnJlbmN5OiBhbnk7XHJcblx0LyoqXHJcblx0ICogU2VydmljaW8gZGUgQ3VycmVuY3kgKHBhcmEgbWFuZWphciBsYSBtb25lZGEpXHJcblx0ICovXHJcblx0cHJpdmF0ZSBjdXJyZW5jeVNlcnZpY2U6IEN1cnJlbmN5U2VydmljZSA9IGluamVjdChDdXJyZW5jeVNlcnZpY2UpXHJcblx0LyoqXHJcblx0ICogQ29uc3RhbnRlcyBkZWwgY29yZVxyXG5cdCAqL1xyXG5cdHByaXZhdGUgY29uc3RzOiBDb3JlQ29uc3RhbnRzU2VydmljZSA9IGluamVjdChDb3JlQ29uc3RhbnRzU2VydmljZSlcclxuXHJcblx0YmFubmVyOmFueTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgZWNBZGRBY3Rpb25SZWRpcmVjdCh2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5iYW5uZXIgPSB2YWx1ZTtcclxuICAgIH1cclxuXHRjb25zdHJ1Y3RvcigpIHtcclxuXHRcdHRoaXMuY3VycmVuY3lTZXJ2aWNlLmN1cnJlbmN5JC5zdWJzY3JpYmUocmVzID0+IHRoaXMuY3VycmVuY3kgPSByZXMpXHJcblx0fVxyXG5cdC8qKlxyXG5cdCAqIFRyYW5zZm9ybWEgZWwgdmFsb3IgcGFzYWRvIHkgZGV2dWVsdmUgdW4gc3RyaW5nIGNvbiBsb3MgZm9ybWF0b3MgYXBsaWNhZG9zXHJcblx0ICogQHBhcmFtIHZhbHVlIFByZWNpbyBkZWwgcHJvZHVjdG9cclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHR0cmFuc2Zvcm0odmFsdWU6IGFueSk6IHN0cmluZyB7XHJcblx0XHRjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQoJ2RlLURFJywgeyBzdHlsZTogJ2N1cnJlbmN5JywgY3VycmVuY3k6ICdVU0QnIH0pO1xyXG5cdFx0bGV0IHZhbHVlVHJhbnNmb3JtID0gJydcclxuXHRcdGlmICh2YWx1ZSkge1xyXG5cdFx0XHR2YWx1ZSA9IHRoaXMuY3VycmVuY3lTZXJ2aWNlLmNhbGN1bGF0ZUNvbnZldGliaWxpdHkodmFsdWUsIHRoaXMuY3VycmVuY3kucmF0aW8pLnRvU3RyaW5nKClcclxuXHRcdFx0dmFsdWVUcmFuc2Zvcm0gPSB0aGlzLmNoYW5nZVN5bWJvbFRyYW5zZm9ybShmb3JtYXR0ZXIuZm9ybWF0KHZhbHVlKT8udG9TdHJpbmcoKSlcclxuXHRcdH1cclxuXHRcdHJldHVybiB2YWx1ZVRyYW5zZm9ybTtcclxuXHR9XHJcblx0LyoqXHJcblx0ICogR2VuZXJhIGVsIHByZWNpbyBmb3JtYXRlYWRvIGNvbiBlbCBzaW1ib2xvIHkgbG8gcXVlIGxhcyBjb25maWd1cmFjaW9uZXMgcmVxdWllcmFuLlxyXG5cdCAqIEBwYXJhbSB2YWxvciBcclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRjaGFuZ2VTeW1ib2xUcmFuc2Zvcm0odmFsb3I6IGFueSkge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0cmV0dXJuIHRoaXMucG9zaXRpb25TeW1ib2wodGhpcy5jaGVja2luZ1dpdGhvdXREZWNpbWFscyh0aGlzLmNsZWFyU3ltYm9sKHZhbG9yKSkpXHJcblx0XHR9IGNhdGNoIChlcnJvcikge1xyXG5cdFx0XHRjb25zb2xlLmVycm9yKCdFcnJvcmVzIGVuIGN1c3RvbSBwaXBlIC0+ICcsIGVycm9yKTtcclxuXHRcdFx0cmV0dXJuIHZhbG9yXHJcblx0XHR9XHJcblx0fVxyXG5cdC8qKlxyXG5cdCAqIExpbXBpYSBlbCBzaW1ib2xvIGRlIHBlc28gcGFyYSBvYnRlbmVyIHNvbG8gZWwgbsO6bWVyby5cclxuXHQgKiBAcGFyYW0gdmFsdWUgXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0Y2xlYXJTeW1ib2wodmFsdWU6IGFueSkgeyByZXR1cm4gdmFsdWUucmVwbGFjZSgnJCcsICcnKSB9XHJcblx0LyoqXHJcblx0ICogQXBsaWNhIGVsIHNpbWJvbG8gZGUgbGEgbW9uZWRhLCBzZWd1biBsYSBjb25maWd1cmFjacOzbiwgZGVsIGxhZG8gZGVyZWNobyBvIGRlbCBsYWRvIGl6cXVpZXJkby5cclxuXHQgKiBAcGFyYW0gdmFsdWUgXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0cG9zaXRpb25TeW1ib2wodmFsdWU6IGFueSkge1xyXG5cdFx0cmV0dXJuIHRoaXMuY29uc3RzLmN1cnJlbmN5LnBvc2l0aW9uICYmIHRoaXMuY29uc3RzPy5jdXJyZW5jeS5wb3NpdGlvbi50b1VwcGVyQ2FzZSgpID09ICdMRUZUJ1xyXG5cdFx0XHQ/IGAke3RoaXMuY3VycmVuY3kuc3ltYm9sfSAke3ZhbHVlPy50cmltKCl9YFxyXG5cdFx0XHQ6IGAke3ZhbHVlPy50cmltKCl9ICR7dGhpcy5jdXJyZW5jeS5zeW1ib2x9YFxyXG5cclxuXHR9XHJcblx0LyoqXHJcblx0ICogU2kgZWwgcGFyYW1ldHJvIGB3aXRob3V0RGVjaW1hbGAgZGUgY3VycmVuY3kgZXMgYHRydWVgIGxlIHNhY2EgbG9zIGRlY2ltYWxlcywgXHJcblx0ICogZGUgbG8gY29udHJhcmlvIHNlIGxvcyBhZ3JlZ2EgZm9ybWF0ZWFkb3MuXHJcblx0ICogQHBhcmFtIHZhbHVlIFxyXG5cdCAqIEByZXR1cm5zIFxyXG5cdCAqL1xyXG5cdGNoZWNraW5nV2l0aG91dERlY2ltYWxzKHZhbHVlOiBzdHJpbmcpIHtcclxuXHRcdGlmICh0aGlzLmNvbnN0cz8uY3VycmVuY3kud2l0aG91dERlY2ltYWwpIHtcclxuXHRcdFx0bGV0IHZhbCA9IHZhbHVlPy5zcGxpdCgnLCcpO1xyXG5cdFx0XHRyZXR1cm4gdmFsWzBdXHJcblx0XHRcdC8vPy50cmltKCkgPT0gXCIwMFwiICYmIHZhbHVlLnRyaW0oKS5zbGljZSgwLCB2YWx1ZS50cmltKCkubGVuZ3RoIC0gMykgfHwgdmFsdWVcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGxldCB2YWwgPSB2YWx1ZT8uc3BsaXQoJywnKTtcclxuXHRcdFx0KHZhbFsxXSAmJiB2YWxbMV0ubGVuZ3RoID4gMikgPyB2YWxbMV0gPSB2YWxbMV0uc2xpY2UoMCwgMikgOiB2YWxbMV0gPSBcIjAwXCJcclxuXHRcdFx0dmFsdWUgPSB2YWxbMF0gKyAnLCcgKyB2YWxbMV07XHJcblx0XHRcdHJldHVybiB2YWx1ZVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0XHJcblxyXG59XHJcbiJdfQ==
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWMtY3VycmVuY3ktc3ltYm9sLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtcGlwZS9lYy1jdXJyZW5jeS1zeW1ib2wucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBaUIsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBQ3BEOzs7R0FHRztBQUtILE1BQU0sT0FBTyxvQkFBb0I7SUFDaEM7O09BRUc7SUFDSyxRQUFRLENBQU07SUFDdEI7O09BRUc7SUFDSyxlQUFlLEdBQW9CLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUNsRTs7T0FFRztJQUNLLE1BQU0sR0FBeUIsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFFbkUsTUFBTSxDQUFLO0lBQ1IsSUFDSSxtQkFBbUIsQ0FBQyxLQUFVO1FBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFDSjtRQUNDLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLENBQUE7SUFDckUsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxTQUFTLENBQUMsS0FBVTtRQUNuQixNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN6RixJQUFJLGNBQWMsR0FBRyxFQUFFLENBQUE7UUFDdkIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNYLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBO1lBQzFGLGNBQWMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQ2pGLENBQUM7UUFDRCxPQUFPLGNBQWMsQ0FBQztJQUN2QixDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILHFCQUFxQixDQUFDLEtBQVU7UUFDL0IsSUFBSSxDQUFDO1lBQ0osT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNsRixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLDRCQUE0QixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ25ELE9BQU8sS0FBSyxDQUFBO1FBQ2IsQ0FBQztJQUNGLENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUFDLEtBQVUsSUFBSSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUN6RDs7OztPQUlHO0lBQ0gsY0FBYyxDQUFDLEtBQVU7UUFDeEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxJQUFJLE1BQU07WUFDN0YsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQzVDLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBRTlDLENBQUM7SUFDRDs7Ozs7T0FLRztJQUNILHVCQUF1QixDQUFDLEtBQWE7UUFDcEMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMxQyxJQUFJLEdBQUcsR0FBRyxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVCLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ2IsNkVBQTZFO1FBQzlFLENBQUM7YUFBTSxDQUFDO1lBQ1AsSUFBSSxHQUFHLEdBQUcsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM1QixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUE7WUFDM0UsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlCLE9BQU8sS0FBSyxDQUFBO1FBQ2IsQ0FBQztJQUNGLENBQUM7d0dBbkZXLG9CQUFvQjtzR0FBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQUpoQyxJQUFJO21CQUFDO29CQUNMLElBQUksRUFBRSxrQkFBa0I7b0JBQ3hCLFVBQVUsRUFBRSxJQUFJO2lCQUNoQjt3REFpQk8sbUJBQW1CO3NCQUR0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBQaXBlLCBQaXBlVHJhbnNmb3JtLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ3VycmVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vZWMtc2VydmljZXMnO1xuaW1wb3J0IHsgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuLyoqXG4gKiBGb3JtYXRlYSBlbCBwcmVjaW8gZGUgdW4gcHJvZHVjdG8uXG4gKiBAaW1wbGVtZW50cyB7UGlwZVRyYW5zZm9ybX1cbiAqL1xuQFBpcGUoe1xuXHRuYW1lOiAnZWNDdXJyZW5jeVN5bWJvbCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEVjQ3VycmVuY3lTeW1ib2xQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cdC8qKlxuXHQgKiBDb250aWVuZSBlbCB2YWxvciBkZSBsYSBtb25lZGEgYWN0dWFsXG5cdCAqL1xuXHRwcml2YXRlIGN1cnJlbmN5OiBhbnk7XG5cdC8qKlxuXHQgKiBTZXJ2aWNpbyBkZSBDdXJyZW5jeSAocGFyYSBtYW5lamFyIGxhIG1vbmVkYSlcblx0ICovXG5cdHByaXZhdGUgY3VycmVuY3lTZXJ2aWNlOiBDdXJyZW5jeVNlcnZpY2UgPSBpbmplY3QoQ3VycmVuY3lTZXJ2aWNlKVxuXHQvKipcblx0ICogQ29uc3RhbnRlcyBkZWwgY29yZVxuXHQgKi9cblx0cHJpdmF0ZSBjb25zdHM6IENvcmVDb25zdGFudHNTZXJ2aWNlID0gaW5qZWN0KENvcmVDb25zdGFudHNTZXJ2aWNlKVxuXG5cdGJhbm5lcjphbnk7XG4gICAgQElucHV0KClcbiAgICBzZXQgZWNBZGRBY3Rpb25SZWRpcmVjdCh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMuYmFubmVyID0gdmFsdWU7XG4gICAgfVxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLmN1cnJlbmN5U2VydmljZS5jdXJyZW5jeSQuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLmN1cnJlbmN5ID0gcmVzKVxuXHR9XG5cdC8qKlxuXHQgKiBUcmFuc2Zvcm1hIGVsIHZhbG9yIHBhc2FkbyB5IGRldnVlbHZlIHVuIHN0cmluZyBjb24gbG9zIGZvcm1hdG9zIGFwbGljYWRvc1xuXHQgKiBAcGFyYW0gdmFsdWUgUHJlY2lvIGRlbCBwcm9kdWN0b1xuXHQgKiBAcmV0dXJucyBcblx0ICovXG5cdHRyYW5zZm9ybSh2YWx1ZTogYW55KTogc3RyaW5nIHtcblx0XHRjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQoJ2RlLURFJywgeyBzdHlsZTogJ2N1cnJlbmN5JywgY3VycmVuY3k6ICdVU0QnIH0pO1xuXHRcdGxldCB2YWx1ZVRyYW5zZm9ybSA9ICcnXG5cdFx0aWYgKHZhbHVlKSB7XG5cdFx0XHR2YWx1ZSA9IHRoaXMuY3VycmVuY3lTZXJ2aWNlLmNhbGN1bGF0ZUNvbnZldGliaWxpdHkodmFsdWUsIHRoaXMuY3VycmVuY3kucmF0aW8pLnRvU3RyaW5nKClcblx0XHRcdHZhbHVlVHJhbnNmb3JtID0gdGhpcy5jaGFuZ2VTeW1ib2xUcmFuc2Zvcm0oZm9ybWF0dGVyLmZvcm1hdCh2YWx1ZSk/LnRvU3RyaW5nKCkpXG5cdFx0fVxuXHRcdHJldHVybiB2YWx1ZVRyYW5zZm9ybTtcblx0fVxuXHQvKipcblx0ICogR2VuZXJhIGVsIHByZWNpbyBmb3JtYXRlYWRvIGNvbiBlbCBzaW1ib2xvIHkgbG8gcXVlIGxhcyBjb25maWd1cmFjaW9uZXMgcmVxdWllcmFuLlxuXHQgKiBAcGFyYW0gdmFsb3IgXG5cdCAqIEByZXR1cm5zIFxuXHQgKi9cblx0Y2hhbmdlU3ltYm9sVHJhbnNmb3JtKHZhbG9yOiBhbnkpIHtcblx0XHR0cnkge1xuXHRcdFx0cmV0dXJuIHRoaXMucG9zaXRpb25TeW1ib2wodGhpcy5jaGVja2luZ1dpdGhvdXREZWNpbWFscyh0aGlzLmNsZWFyU3ltYm9sKHZhbG9yKSkpXG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRcdGNvbnNvbGUuZXJyb3IoJ0Vycm9yZXMgZW4gY3VzdG9tIHBpcGUgLT4gJywgZXJyb3IpO1xuXHRcdFx0cmV0dXJuIHZhbG9yXG5cdFx0fVxuXHR9XG5cdC8qKlxuXHQgKiBMaW1waWEgZWwgc2ltYm9sbyBkZSBwZXNvIHBhcmEgb2J0ZW5lciBzb2xvIGVsIG7Dum1lcm8uXG5cdCAqIEBwYXJhbSB2YWx1ZSBcblx0ICogQHJldHVybnMgXG5cdCAqL1xuXHRjbGVhclN5bWJvbCh2YWx1ZTogYW55KSB7IHJldHVybiB2YWx1ZS5yZXBsYWNlKCckJywgJycpIH1cblx0LyoqXG5cdCAqIEFwbGljYSBlbCBzaW1ib2xvIGRlIGxhIG1vbmVkYSwgc2VndW4gbGEgY29uZmlndXJhY2nDs24sIGRlbCBsYWRvIGRlcmVjaG8gbyBkZWwgbGFkbyBpenF1aWVyZG8uXG5cdCAqIEBwYXJhbSB2YWx1ZSBcblx0ICogQHJldHVybnMgXG5cdCAqL1xuXHRwb3NpdGlvblN5bWJvbCh2YWx1ZTogYW55KSB7XG5cdFx0cmV0dXJuIHRoaXMuY29uc3RzLmN1cnJlbmN5LnBvc2l0aW9uICYmIHRoaXMuY29uc3RzPy5jdXJyZW5jeS5wb3NpdGlvbi50b1VwcGVyQ2FzZSgpID09ICdMRUZUJ1xuXHRcdFx0PyBgJHt0aGlzLmN1cnJlbmN5LnN5bWJvbH0gJHt2YWx1ZT8udHJpbSgpfWBcblx0XHRcdDogYCR7dmFsdWU/LnRyaW0oKX0gJHt0aGlzLmN1cnJlbmN5LnN5bWJvbH1gXG5cblx0fVxuXHQvKipcblx0ICogU2kgZWwgcGFyYW1ldHJvIGB3aXRob3V0RGVjaW1hbGAgZGUgY3VycmVuY3kgZXMgYHRydWVgIGxlIHNhY2EgbG9zIGRlY2ltYWxlcywgXG5cdCAqIGRlIGxvIGNvbnRyYXJpbyBzZSBsb3MgYWdyZWdhIGZvcm1hdGVhZG9zLlxuXHQgKiBAcGFyYW0gdmFsdWUgXG5cdCAqIEByZXR1cm5zIFxuXHQgKi9cblx0Y2hlY2tpbmdXaXRob3V0RGVjaW1hbHModmFsdWU6IHN0cmluZykge1xuXHRcdGlmICh0aGlzLmNvbnN0cz8uY3VycmVuY3kud2l0aG91dERlY2ltYWwpIHtcblx0XHRcdGxldCB2YWwgPSB2YWx1ZT8uc3BsaXQoJywnKTtcblx0XHRcdHJldHVybiB2YWxbMF1cblx0XHRcdC8vPy50cmltKCkgPT0gXCIwMFwiICYmIHZhbHVlLnRyaW0oKS5zbGljZSgwLCB2YWx1ZS50cmltKCkubGVuZ3RoIC0gMykgfHwgdmFsdWVcblx0XHR9IGVsc2Uge1xuXHRcdFx0bGV0IHZhbCA9IHZhbHVlPy5zcGxpdCgnLCcpO1xuXHRcdFx0KHZhbFsxXSAmJiB2YWxbMV0ubGVuZ3RoID4gMikgPyB2YWxbMV0gPSB2YWxbMV0uc2xpY2UoMCwgMikgOiB2YWxbMV0gPSBcIjAwXCJcblx0XHRcdHZhbHVlID0gdmFsWzBdICsgJywnICsgdmFsWzFdO1xuXHRcdFx0cmV0dXJuIHZhbHVlXG5cdFx0fVxuXHR9XG5cblx0XG5cbn1cbiJdfQ==