@snabcentr/client-core 3.5.4 → 3.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/catalog/services/sc-catalog-filter.service.d.ts +13 -1
- package/catalog/services/sc-catalog.service.d.ts +8 -0
- package/catalog/services/sc-recommendation.service.d.ts +16 -0
- package/esm2022/catalog/services/sc-catalog-filter.service.mjs +38 -9
- package/esm2022/catalog/services/sc-catalog.service.mjs +26 -10
- package/esm2022/catalog/services/sc-favorite.service.mjs +2 -2
- package/esm2022/catalog/services/sc-recommendation.service.mjs +44 -5
- package/esm2022/helpers/sc-units-helper.mjs +17 -36
- package/esm2022/notifications/services/sc-notifications.service.mjs +8 -3
- package/fesm2022/snabcentr-client-core.mjs +121 -52
- package/fesm2022/snabcentr-client-core.mjs.map +1 -1
- package/helpers/sc-units-helper.d.ts +10 -20
- package/notifications/services/sc-notifications.service.d.ts +4 -0
- package/package.json +1 -1
- package/release_notes.tmp +2 -4
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { HttpClient } from '@angular/common/http';
|
|
3
|
-
import { inject, Injectable } from '@angular/core';
|
|
3
|
+
import { DestroyRef, inject, Injectable } from '@angular/core';
|
|
4
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
5
|
import { tuiPure } from '@taiga-ui/cdk';
|
|
5
6
|
import { catchError, distinctUntilChanged, map, of, skip, startWith, switchMap } from 'rxjs';
|
|
6
7
|
import { ScCartService } from '../../cart';
|
|
@@ -44,11 +45,41 @@ export class ScRecommendationService {
|
|
|
44
45
|
* Сервис для работы с корзиной.
|
|
45
46
|
*/
|
|
46
47
|
this.cartService = inject(ScCartService);
|
|
48
|
+
/**
|
|
49
|
+
* Ссылка на жизненный цикл сервиса.
|
|
50
|
+
*/
|
|
51
|
+
this.destroyRef = inject(DestroyRef);
|
|
47
52
|
inject(SC_USER_INFO)
|
|
48
|
-
.pipe(skip(1))
|
|
53
|
+
.pipe(skip(1), takeUntilDestroyed(this.destroyRef))
|
|
49
54
|
.subscribe(() => {
|
|
50
|
-
this.
|
|
51
|
-
|
|
55
|
+
this.clearCache();
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Очищает кэшированные рекомендации.
|
|
60
|
+
*/
|
|
61
|
+
clearCache() {
|
|
62
|
+
this.productsByCategoryMap.clear();
|
|
63
|
+
this.productsByProductMap.clear();
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Удаляет просроченные записи кэша, чтобы карты не росли бесконечно при смене ключей.
|
|
67
|
+
*/
|
|
68
|
+
deleteExpiredCategoryCacheItems() {
|
|
69
|
+
this.productsByCategoryMap.forEach((cachedItem, key) => {
|
|
70
|
+
if (!cachedItem.cachedDataIsActual()) {
|
|
71
|
+
this.productsByCategoryMap.delete(key);
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Удаляет просроченные записи кэша товаров, чтобы карты не росли бесконечно при смене ключей.
|
|
77
|
+
*/
|
|
78
|
+
deleteExpiredProductCacheItems() {
|
|
79
|
+
this.productsByProductMap.forEach((cachedItem, key) => {
|
|
80
|
+
if (!cachedItem.cachedDataIsActual()) {
|
|
81
|
+
this.productsByProductMap.delete(key);
|
|
82
|
+
}
|
|
52
83
|
});
|
|
53
84
|
}
|
|
54
85
|
/**
|
|
@@ -57,6 +88,7 @@ export class ScRecommendationService {
|
|
|
57
88
|
* @param categoryIdOrSlug Идентификатор или slug категории товаров.
|
|
58
89
|
*/
|
|
59
90
|
getProductsByCategory$(categoryIdOrSlug) {
|
|
91
|
+
this.deleteExpiredCategoryCacheItems();
|
|
60
92
|
let cachedItem = this.productsByCategoryMap.get(categoryIdOrSlug.toString());
|
|
61
93
|
if (!cachedItem) {
|
|
62
94
|
// Устанавливаем время жизни cachedItem равное, потому что нам не важно время жизни. Нам нужен функционал update().
|
|
@@ -68,6 +100,9 @@ export class ScRecommendationService {
|
|
|
68
100
|
.pipe(startWith(null)), null);
|
|
69
101
|
this.productsByCategoryMap.set(categoryIdOrSlug.toString(), cachedItem);
|
|
70
102
|
}
|
|
103
|
+
if (!cachedItem.cachedDataIsActual()) {
|
|
104
|
+
cachedItem.update();
|
|
105
|
+
}
|
|
71
106
|
return cachedItem.item$;
|
|
72
107
|
}
|
|
73
108
|
/**
|
|
@@ -76,6 +111,7 @@ export class ScRecommendationService {
|
|
|
76
111
|
* @param productIdOrSlug Идентификатор или slug товара/услуги.
|
|
77
112
|
*/
|
|
78
113
|
getProductsByProduct$(productIdOrSlug) {
|
|
114
|
+
this.deleteExpiredProductCacheItems();
|
|
79
115
|
let cachedItem = this.productsByProductMap.get(productIdOrSlug.toString());
|
|
80
116
|
if (!cachedItem) {
|
|
81
117
|
// Устанавливаем время жизни cachedItem равное, потому что нам не важно время жизни. Нам нужен функционал update().
|
|
@@ -87,6 +123,9 @@ export class ScRecommendationService {
|
|
|
87
123
|
.pipe(startWith(null)), null);
|
|
88
124
|
this.productsByProductMap.set(productIdOrSlug.toString(), cachedItem);
|
|
89
125
|
}
|
|
126
|
+
if (!cachedItem.cachedDataIsActual()) {
|
|
127
|
+
cachedItem.update();
|
|
128
|
+
}
|
|
90
129
|
return cachedItem.item$;
|
|
91
130
|
}
|
|
92
131
|
/**
|
|
@@ -123,4 +162,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
123
162
|
providedIn: 'root',
|
|
124
163
|
}]
|
|
125
164
|
}], ctorParameters: () => [], propDecorators: { getProductsByCart$: [] } });
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcmVjb21tZW5kYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY2F0YWxvZy9zZXJ2aWNlcy9zYy1yZWNvbW1lbmRhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFekcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM5RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUc5Qzs7R0FFRztBQUlILE1BQU0sT0FBTyx1QkFBdUI7SUErQmhDOztPQUVHO0lBQ0g7UUFqQ0E7O1dBRUc7UUFDYywwQkFBcUIsR0FBb0QsSUFBSSxHQUFHLEVBQXFDLENBQUM7UUFFdkk7O1dBRUc7UUFDYyx5QkFBb0IsR0FBb0QsSUFBSSxHQUFHLEVBQXFDLENBQUM7UUFFdEk7O1dBRUc7UUFDYyxTQUFJLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXZEOztXQUVHO1FBQ2MsU0FBSSxHQUFZLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVqRDs7V0FFRztRQUNjLHNCQUFpQixHQUF3QixNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUV0Rjs7V0FFRztRQUNjLGdCQUFXLEdBQWtCLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQU1oRSxNQUFNLENBQUMsWUFBWSxDQUFDO2FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNiLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxzQkFBc0IsQ0FBQyxnQkFBaUM7UUFDM0QsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRTdFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNkLG1IQUFtSDtZQUNuSCxVQUFVLEdBQUcsSUFBSSxZQUFZLENBQ3pCLENBQUMsRUFDRCxJQUFJLENBQUMsSUFBSTtpQkFDSixHQUFHLENBQWUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sdUJBQXVCLGdCQUFnQixrQkFBa0IsRUFBRTtnQkFDN0YsT0FBTyxFQUFFLHFDQUFxQzthQUNqRCxDQUFDO2lCQUNELElBQUksQ0FDRCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3hCLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUM3RTtpQkFDQSxJQUFJLENBQUMsU0FBUyxDQUFxQixJQUFJLENBQUMsQ0FBQyxFQUM5QyxJQUFJLENBQ1AsQ0FBQztZQUNGLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDNUUsQ0FBQztRQUVELE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHFCQUFxQixDQUFDLGVBQWdDO1FBQ3pELElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFM0UsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2QsbUhBQW1IO1lBQ25ILFVBQVUsR0FBRyxJQUFJLFlBQVksQ0FDekIsQ0FBQyxFQUNELElBQUksQ0FBQyxJQUFJO2lCQUNKLEdBQUcsQ0FBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxxQkFBcUIsZUFBZSxrQkFBa0IsRUFBRTtnQkFDMUYsT0FBTyxFQUFFLHFDQUFxQzthQUNqRCxDQUFDO2lCQUNELElBQUksQ0FDRCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3hCLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUM3RTtpQkFDQSxJQUFJLENBQUMsU0FBUyxDQUFxQixJQUFJLENBQUMsQ0FBQyxFQUM5QyxJQUFJLENBQ1AsQ0FBQztZQUNGLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzFFLENBQUM7UUFFRCxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSx3QkFBd0IsQ0FBQyxVQUFvQjtRQUNoRCxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ1gsR0FBRyxDQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLG1DQUFtQyxFQUFFO1lBQ3ZFLE1BQU0sRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQzVGLE9BQU8sRUFBRSxxQ0FBcUM7U0FDakQsQ0FBQzthQUNELElBQUksQ0FDRCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3hCLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUM3RSxDQUFDO0lBQ1YsQ0FBQztJQUVEOztPQUVHO0lBRUksa0JBQWtCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQy9CLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBWSxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssa0JBQWtCLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFILHdIQUF3SDtRQUN4SCwrREFBK0Q7UUFDL0Qsb0JBQW9CLENBQ2hCLENBQUMsUUFBa0IsRUFBRSxPQUFpQixFQUFFLEVBQUUsQ0FDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQ2pKLEVBQ0QsU0FBUyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQzdGLENBQUM7SUFDTixDQUFDOytHQXJJUSx1QkFBdUI7bUhBQXZCLHVCQUF1QixjQUZwQixNQUFNOztBQTRIWDtJQUROLE9BQU87aUVBWVA7NEZBcklRLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7d0RBMkhVLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHR1aVB1cmUgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIE9ic2VydmFibGUsIG9mLCBza2lwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY0NhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2FydCc7XG5pbXBvcnQgeyBTY0lVcmxzIH0gZnJvbSAnLi4vLi4vY29uZmlnL3NjLWktdXJscyc7XG5pbXBvcnQgeyBTY0NvbnZlcnRlcnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29udmVydGVycyc7XG5pbXBvcnQgeyBsb2FkaW5nUGxhY2Vob2xkZXIgfSBmcm9tICcuLi8uLi9vcmRlci90b2tlbnMvc2Mtb3JkZXItbG9hZGVyLnRva2VuJztcbmltcG9ydCB7IFNDX0lTX0hJRERFTl9FUlJPUl9BTEVSVF9IVFRQX0NPTlRFWFQgfSBmcm9tICcuLi8uLi90b2tlbnMvc2MtaXMtaGlkZGVuLWVycm9yLWFsZXJ0JztcbmltcG9ydCB7IFNDX1VSTFMgfSBmcm9tICcuLi8uLi90b2tlbnMvc2MtdXJscyc7XG5pbXBvcnQgeyBTQ19VU0VSX0lORk8gfSBmcm9tICcuLi8uLi91c2VyL3Rva2Vucy9zYy11c2VyLXByb3ZpZGVycyc7XG5pbXBvcnQgeyBTY0NhY2hlZEl0ZW0gfSBmcm9tICcuLi9jbGFzc2VzJztcbmltcG9ydCB7IFNjUHJvZHVjdCB9IGZyb20gJy4uL2R0by9zYy1wcm9kdWN0JztcbmltcG9ydCB7IFNjSVByb2R1Y3QgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NjLWktcHJvZHVjdCc7XG5cbi8qKlxuICog0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEg0YDQtdC60L7QvNC10L3QtNGD0LXQvNGL0LzQuCDRgtC+0LLQsNGA0LDQvNC4LlxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY1JlY29tbWVuZGF0aW9uU2VydmljZSB7XG4gICAgLyoqXG4gICAgICoge0BsaW5rIE1hcH0g0LrQvtC70LvQtdC60YbQuNGPINC/0LDRgCDQutC70Y7Rhy3Qt9C90LDRh9C10L3QuNC1INC00LvRjyDQutGN0YjQuNGA0L7QstCw0L3QvdGL0YUg0YDQtdC60L7QvNC10L3QtNGD0LXQvNGL0YUg0YLQvtCy0LDRgNC+0LIg0LrQsNGC0LXQs9C+0YDQuNC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdHNCeUNhdGVnb3J5TWFwOiBNYXA8bnVtYmVyIHwgc3RyaW5nLCBTY0NhY2hlZEl0ZW08U2NQcm9kdWN0W10+PiA9IG5ldyBNYXA8bnVtYmVyLCBTY0NhY2hlZEl0ZW08U2NQcm9kdWN0W10+PigpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE1hcH0g0LrQvtC70LvQtdC60YbQuNGPINC/0LDRgCDQutC70Y7Rhy3Qt9C90LDRh9C10L3QuNC1INC00LvRjyDQutGN0YjQuNGA0L7QstCw0L3QvdGL0YUg0YDQtdC60L7QvNC10L3QtNGD0LXQvNGL0YUg0YLQvtCy0LDRgNC+0LIg0YLQvtCy0LDRgNCwLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdHNCeVByb2R1Y3RNYXA6IE1hcDxudW1iZXIgfCBzdHJpbmcsIFNjQ2FjaGVkSXRlbTxTY1Byb2R1Y3RbXT4+ID0gbmV3IE1hcDxudW1iZXIsIFNjQ2FjaGVkSXRlbTxTY1Byb2R1Y3RbXT4+KCk7XG5cbiAgICAvKipcbiAgICAgKiBIVFRQLdC60LvQuNC10L3Rgi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQgPSBpbmplY3QoSHR0cENsaWVudCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0YHRgdGL0LvQvtC6INC/0YDQuNC70L7QttC10L3QuNGPLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXJsczogU2NJVXJscyA9IGluamVjdChTQ19VUkxTKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQutC+0L3QstC10YDRgtCw0YbQuNC4INC00LDQvdC90YvRhS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnZlcnRlcnNTZXJ2aWNlOiBTY0NvbnZlcnRlcnNTZXJ2aWNlID0gaW5qZWN0KFNjQ29udmVydGVyc1NlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEg0LrQvtGA0LfQuNC90L7QuS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhcnRTZXJ2aWNlOiBTY0NhcnRTZXJ2aWNlID0gaW5qZWN0KFNjQ2FydFNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY1JlY29tbWVuZGF0aW9uU2VydmljZX0uXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBpbmplY3QoU0NfVVNFUl9JTkZPKVxuICAgICAgICAgICAgLnBpcGUoc2tpcCgxKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdHNCeUNhdGVnb3J5TWFwLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0c0J5UHJvZHVjdE1hcC5jbGVhcigpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNC10YIg0LfQsNC/0YDQvtGBINC90LAg0L/QvtC70YPRh9C10L3QuNC1INGB0L/QuNGB0LrQsCDRgNC10LrQvtC80LXQvdC00L7QstCw0L3QvdGL0YUg0YLQvtCy0LDRgNC+0LIg0LTQu9GPINC60LDRgtC10LPQvtGA0LjQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXRlZ29yeUlkT3JTbHVnINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC40LvQuCBzbHVnINC60LDRgtC10LPQvtGA0LjQuCDRgtC+0LLQsNGA0L7Qsi5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UHJvZHVjdHNCeUNhdGVnb3J5JChjYXRlZ29yeUlkT3JTbHVnOiBudW1iZXIgfCBzdHJpbmcpOiBPYnNlcnZhYmxlPFNjUHJvZHVjdFtdIHwgbnVsbD4ge1xuICAgICAgICBsZXQgY2FjaGVkSXRlbSA9IHRoaXMucHJvZHVjdHNCeUNhdGVnb3J5TWFwLmdldChjYXRlZ29yeUlkT3JTbHVnLnRvU3RyaW5nKCkpO1xuXG4gICAgICAgIGlmICghY2FjaGVkSXRlbSkge1xuICAgICAgICAgICAgLy8g0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10Lwg0LLRgNC10LzRjyDQttC40LfQvdC4IGNhY2hlZEl0ZW0g0YDQsNCy0L3QvtC1LCDQv9C+0YLQvtC80YMg0YfRgtC+INC90LDQvCDQvdC1INCy0LDQttC90L4g0LLRgNC10LzRjyDQttC40LfQvdC4LiDQndCw0Lwg0L3Rg9C20LXQvSDRhNGD0L3QutGG0LjQvtC90LDQuyB1cGRhdGUoKS5cbiAgICAgICAgICAgIGNhY2hlZEl0ZW0gPSBuZXcgU2NDYWNoZWRJdGVtPFNjUHJvZHVjdFtdLCBudWxsPihcbiAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgIHRoaXMuaHR0cFxuICAgICAgICAgICAgICAgICAgICAuZ2V0PFNjSVByb2R1Y3RbXT4oYCR7dGhpcy51cmxzLmFwaVVybH0vY2F0YWxvZy9jYXRlZ29yaWVzLyR7Y2F0ZWdvcnlJZE9yU2x1Z30vcmVjb21tZW5kYXRpb25zYCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDogU0NfSVNfSElEREVOX0VSUk9SX0FMRVJUX0hUVFBfQ09OVEVYVCxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKFtdKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAoKHByb2R1Y3RzRFRPKSA9PiBwcm9kdWN0c0RUTy5tYXAoKHByb2R1Y3QpID0+IG5ldyBTY1Byb2R1Y3QocHJvZHVjdCkpKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKHN0YXJ0V2l0aDxTY1Byb2R1Y3RbXSB8IG51bGw+KG51bGwpKSxcbiAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5wcm9kdWN0c0J5Q2F0ZWdvcnlNYXAuc2V0KGNhdGVnb3J5SWRPclNsdWcudG9TdHJpbmcoKSwgY2FjaGVkSXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2FjaGVkSXRlbS5pdGVtJDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0LXRgiDQt9Cw0L/RgNC+0YEg0L3QsCDQv9C+0LvRg9GH0LXQvdC40LUg0YHQv9C40YHQutCwINGA0LXQutC+0LzQtdC90LTQvtCy0LDQvdC90YvRhSDRgtC+0LLQsNGA0L7QsiDQtNC70Y8g0L/RgNC+0LTRg9C60YLQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9kdWN0SWRPclNsdWcg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LjQu9C4IHNsdWcg0YLQvtCy0LDRgNCwL9GD0YHQu9GD0LPQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UHJvZHVjdHNCeVByb2R1Y3QkKHByb2R1Y3RJZE9yU2x1ZzogbnVtYmVyIHwgc3RyaW5nKTogT2JzZXJ2YWJsZTxTY1Byb2R1Y3RbXSB8IG51bGw+IHtcbiAgICAgICAgbGV0IGNhY2hlZEl0ZW0gPSB0aGlzLnByb2R1Y3RzQnlQcm9kdWN0TWFwLmdldChwcm9kdWN0SWRPclNsdWcudG9TdHJpbmcoKSk7XG5cbiAgICAgICAgaWYgKCFjYWNoZWRJdGVtKSB7XG4gICAgICAgICAgICAvLyDQo9GB0YLQsNC90LDQstC70LjQstCw0LXQvCDQstGA0LXQvNGPINC20LjQt9C90LggY2FjaGVkSXRlbSDRgNCw0LLQvdC+0LUsINC/0L7RgtC+0LzRgyDRh9GC0L4g0L3QsNC8INC90LUg0LLQsNC20L3QviDQstGA0LXQvNGPINC20LjQt9C90LguINCd0LDQvCDQvdGD0LbQtdC9INGE0YPQvdC60YbQuNC+0L3QsNC7IHVwZGF0ZSgpLlxuICAgICAgICAgICAgY2FjaGVkSXRlbSA9IG5ldyBTY0NhY2hlZEl0ZW08U2NQcm9kdWN0W10+KFxuICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgdGhpcy5odHRwXG4gICAgICAgICAgICAgICAgICAgIC5nZXQ8U2NJUHJvZHVjdFtdPihgJHt0aGlzLnVybHMuYXBpVXJsfS9jYXRhbG9nL3Byb2R1Y3RzLyR7cHJvZHVjdElkT3JTbHVnfS9yZWNvbW1lbmRhdGlvbnNgLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiBTQ19JU19ISURERU5fRVJST1JfQUxFUlRfSFRUUF9DT05URVhULFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoW10pKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcCgocHJvZHVjdHNEVE8pID0+IHByb2R1Y3RzRFRPLm1hcCgocHJvZHVjdCkgPT4gbmV3IFNjUHJvZHVjdChwcm9kdWN0KSkpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUoc3RhcnRXaXRoPFNjUHJvZHVjdFtdIHwgbnVsbD4obnVsbCkpLFxuICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RzQnlQcm9kdWN0TWFwLnNldChwcm9kdWN0SWRPclNsdWcudG9TdHJpbmcoKSwgY2FjaGVkSXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2FjaGVkSXRlbS5pdGVtJDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0LXRgiDQt9Cw0L/RgNC+0YEg0L3QsCDQv9C+0LvRg9GH0LXQvdC40LUg0YHQv9C40YHQutCwINGA0LXQutC+0LzQtdC90LTQvtCy0LDQvdC90YvRhSDRgtC+0LLQsNGA0L7QsiDQtNC70Y8g0YHQv9C40YHQutCwINC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0L7QsiDRgtC+0LLQsNGA0L7Qsi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9kdWN0SWRzINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0Ysg0L/RgNC+0LTRg9C60YLQvtCyLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRQcm9kdWN0c0J5UHJvZHVjdElkcyQocHJvZHVjdElkczogbnVtYmVyW10pOiBPYnNlcnZhYmxlPFNjUHJvZHVjdFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQ8U2NJUHJvZHVjdFtdPihgJHt0aGlzLnVybHMuYXBpVXJsfS9jYXRhbG9nL3Byb2R1Y3RzL3JlY29tbWVuZGF0aW9uc2AsIHtcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHRoaXMuY29udmVydGVyc1NlcnZpY2UudG9IdHRwUGFyYW1zKHsgcHJvZHVjdHM6IHByb2R1Y3RJZHMgfSwgeyBub25OdWxsYWJsZTogdHJ1ZSB9KSxcbiAgICAgICAgICAgICAgICBjb250ZXh0OiBTQ19JU19ISURERU5fRVJST1JfQUxFUlRfSFRUUF9DT05URVhULFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoW10pKSxcbiAgICAgICAgICAgICAgICBtYXAoKHByb2R1Y3RzRFRPKSA9PiBwcm9kdWN0c0RUTy5tYXAoKHByb2R1Y3QpID0+IG5ldyBTY1Byb2R1Y3QocHJvZHVjdCkpKVxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0LXRgiDQt9Cw0L/RgNC+0YEg0L3QsCDQv9C+0LvRg9GH0LXQvdC40LUg0YHQv9C40YHQutCwINGA0LXQutC+0LzQtdC90LTQvtCy0LDQvdC90YvRhSDRgtC+0LLQsNGA0L7QsiDQtNC70Y8g0LrQvtGA0LfQuNC90Ysg0LrQu9C40LXQvdGC0LAuXG4gICAgICovXG4gICAgQHR1aVB1cmVcbiAgICBwdWJsaWMgZ2V0UHJvZHVjdHNCeUNhcnQkKCk6IE9ic2VydmFibGU8U2NQcm9kdWN0W10gfCBudWxsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhcnRTZXJ2aWNlLmdldCQoKS5waXBlKFxuICAgICAgICAgICAgbWFwKChjYXJ0KTogbnVtYmVyW10gPT4gKGNhcnQgIT09IGxvYWRpbmdQbGFjZWhvbGRlciAmJiAnaXRlbXMnIGluIGNhcnQgPyBjYXJ0Lml0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5wcm9kdWN0LmlkKSA6IFtdKSksXG4gICAgICAgICAgICAvLyDQntGC0YTQuNC70YzRgtGA0L7QstGL0LLQsNC10Lwg0L/QvtCy0YLQvtGA0LXQvdC40Y8uINCe0L3QuCDQstC+0LfQvdC40LrQvdGD0YIg0LXRgdC70Lgg0LHRi9C70L4g0LjQt9C80LXQvdC10L3QviDQutC+0LvQuNGH0LXRgdGC0LLQviDRgtC+0LLQsNGA0LAg0LHQtdC3INGD0LTQsNC70LXQvdC40Y9cXNC00L7QsdCw0LLQu9C10L3QuNGPINC90L7QstGL0YUg0YLQvtCy0LDRgNC+0LIuXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXJqcy9uby1taXNsZWFkaW5nLWFycmF5LXJldmVyc2VcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKFxuICAgICAgICAgICAgICAgIChwcmV2aW91czogbnVtYmVyW10sIGN1cnJlbnQ6IG51bWJlcltdKSA9PlxuICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShbLi4ucHJldmlvdXNdLnNvcnQoKGE6IG51bWJlciwgYjogbnVtYmVyKSA9PiBhIC0gYikpID09PSBKU09OLnN0cmluZ2lmeShbLi4uY3VycmVudF0uc29ydCgoYTogbnVtYmVyLCBiOiBudW1iZXIpID0+IGEgLSBiKSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKHByb2R1Y3RJZHMpID0+IHRoaXMuZ2V0UHJvZHVjdHNCeVByb2R1Y3RJZHMkKHByb2R1Y3RJZHMpLnBpcGUoc3RhcnRXaXRoKG51bGwpKSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcmVjb21tZW5kYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY2F0YWxvZy9zZXJ2aWNlcy9zYy1yZWNvbW1lbmRhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXpHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDOUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHOUM7O0dBRUc7QUFJSCxNQUFNLE9BQU8sdUJBQXVCO0lBb0NoQzs7T0FFRztJQUNIO1FBdENBOztXQUVHO1FBQ2MsMEJBQXFCLEdBQW9E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T0FBaUIsRUFBRSxFQUFFLENBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUNqSixFQUNELFNBQVMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUM3RixDQUFDO0lBQ04sQ0FBQzsrR0FuTFEsdUJBQXVCO21IQUF2Qix1QkFBdUIsY0FGcEIsTUFBTTs7QUEwS1g7SUFETixPQUFPO2lFQVlQOzRGQW5MUSx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCO3dEQXlLVSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgRGVzdHJveVJlZiwgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyB0dWlQdXJlIH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc2tpcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2NDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL2NhcnQnO1xuaW1wb3J0IHsgU2NJVXJscyB9IGZyb20gJy4uLy4uL2NvbmZpZy9zYy1pLXVybHMnO1xuaW1wb3J0IHsgU2NDb252ZXJ0ZXJzU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbnZlcnRlcnMnO1xuaW1wb3J0IHsgbG9hZGluZ1BsYWNlaG9sZGVyIH0gZnJvbSAnLi4vLi4vb3JkZXIvdG9rZW5zL3NjLW9yZGVyLWxvYWRlci50b2tlbic7XG5pbXBvcnQgeyBTQ19JU19ISURERU5fRVJST1JfQUxFUlRfSFRUUF9DT05URVhUIH0gZnJvbSAnLi4vLi4vdG9rZW5zL3NjLWlzLWhpZGRlbi1lcnJvci1hbGVydCc7XG5pbXBvcnQgeyBTQ19VUkxTIH0gZnJvbSAnLi4vLi4vdG9rZW5zL3NjLXVybHMnO1xuaW1wb3J0IHsgU0NfVVNFUl9JTkZPIH0gZnJvbSAnLi4vLi4vdXNlci90b2tlbnMvc2MtdXNlci1wcm92aWRlcnMnO1xuaW1wb3J0IHsgU2NDYWNoZWRJdGVtIH0gZnJvbSAnLi4vY2xhc3Nlcyc7XG5pbXBvcnQgeyBTY1Byb2R1Y3QgfSBmcm9tICcuLi9kdG8vc2MtcHJvZHVjdCc7XG5pbXBvcnQgeyBTY0lQcm9kdWN0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zYy1pLXByb2R1Y3QnO1xuXG4vKipcbiAqINCh0LXRgNCy0LjRgSDQtNC70Y8g0YDQsNCx0L7RgtGLINGBINGA0LXQutC+0LzQtdC90LTRg9C10LzRi9C80Lgg0YLQvtCy0LDRgNCw0LzQuC5cbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2NSZWNvbW1lbmRhdGlvblNlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqIHtAbGluayBNYXB9INC60L7Qu9C70LXQutGG0LjRjyDQv9Cw0YAg0LrQu9GO0Yct0LfQvdCw0YfQtdC90LjQtSDQtNC70Y8g0LrRjdGI0LjRgNC+0LLQsNC90L3Ri9GFINGA0LXQutC+0LzQtdC90LTRg9C10LzRi9GFINGC0L7QstCw0YDQvtCyINC60LDRgtC10LPQvtGA0LjQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb2R1Y3RzQnlDYXRlZ29yeU1hcDogTWFwPG51bWJlciB8IHN0cmluZywgU2NDYWNoZWRJdGVtPFNjUHJvZHVjdFtdPj4gPSBuZXcgTWFwPG51bWJlciwgU2NDYWNoZWRJdGVtPFNjUHJvZHVjdFtdPj4oKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBNYXB9INC60L7Qu9C70LXQutGG0LjRjyDQv9Cw0YAg0LrQu9GO0Yct0LfQvdCw0YfQtdC90LjQtSDQtNC70Y8g0LrRjdGI0LjRgNC+0LLQsNC90L3Ri9GFINGA0LXQutC+0LzQtdC90LTRg9C10LzRi9GFINGC0L7QstCw0YDQvtCyINGC0L7QstCw0YDQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb2R1Y3RzQnlQcm9kdWN0TWFwOiBNYXA8bnVtYmVyIHwgc3RyaW5nLCBTY0NhY2hlZEl0ZW08U2NQcm9kdWN0W10+PiA9IG5ldyBNYXA8bnVtYmVyLCBTY0NhY2hlZEl0ZW08U2NQcm9kdWN0W10+PigpO1xuXG4gICAgLyoqXG4gICAgICogSFRUUC3QutC70LjQtdC90YIuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50ID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGB0YHRi9C70L7QuiDQv9GA0LjQu9C+0LbQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVybHM6IFNjSVVybHMgPSBpbmplY3QoU0NfVVJMUyk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LrQvtC90LLQtdGA0YLQsNGG0LjQuCDQtNCw0L3QvdGL0YUuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb252ZXJ0ZXJzU2VydmljZTogU2NDb252ZXJ0ZXJzU2VydmljZSA9IGluamVjdChTY0NvbnZlcnRlcnNTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQtNC70Y8g0YDQsNCx0L7RgtGLINGBINC60L7RgNC30LjQvdC+0LkuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXJ0U2VydmljZTogU2NDYXJ0U2VydmljZSA9IGluamVjdChTY0NhcnRTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCh0YHRi9C70LrQsCDQvdCwINC20LjQt9C90LXQvdC90YvQuSDRhtC40LrQuyDRgdC10YDQstC40YHQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWY6IERlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjUmVjb21tZW5kYXRpb25TZXJ2aWNlfS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGluamVjdChTQ19VU0VSX0lORk8pXG4gICAgICAgICAgICAucGlwZShza2lwKDEpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJDYWNoZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7Rh9C40YnQsNC10YIg0LrRjdGI0LjRgNC+0LLQsNC90L3Ri9C1INGA0LXQutC+0LzQtdC90LTQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIGNsZWFyQ2FjaGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvZHVjdHNCeUNhdGVnb3J5TWFwLmNsZWFyKCk7XG4gICAgICAgIHRoaXMucHJvZHVjdHNCeVByb2R1Y3RNYXAuY2xlYXIoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9C00LDQu9GP0LXRgiDQv9GA0L7RgdGA0L7Rh9C10L3QvdGL0LUg0LfQsNC/0LjRgdC4INC60Y3RiNCwLCDRh9GC0L7QsdGLINC60LDRgNGC0Ysg0L3QtSDRgNC+0YHQu9C4INCx0LXRgdC60L7QvdC10YfQvdC+INC/0YDQuCDRgdC80LXQvdC1INC60LvRjtGH0LXQuS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGRlbGV0ZUV4cGlyZWRDYXRlZ29yeUNhY2hlSXRlbXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvZHVjdHNCeUNhdGVnb3J5TWFwLmZvckVhY2goKGNhY2hlZEl0ZW0sIGtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFjYWNoZWRJdGVtLmNhY2hlZERhdGFJc0FjdHVhbCgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0c0J5Q2F0ZWdvcnlNYXAuZGVsZXRlKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0LTQsNC70Y/QtdGCINC/0YDQvtGB0YDQvtGH0LXQvdC90YvQtSDQt9Cw0L/QuNGB0Lgg0LrRjdGI0LAg0YLQvtCy0LDRgNC+0LIsINGH0YLQvtCx0Ysg0LrQsNGA0YLRiyDQvdC1INGA0L7RgdC70Lgg0LHQtdGB0LrQvtC90LXRh9C90L4g0L/RgNC4INGB0LzQtdC90LUg0LrQu9GO0YfQtdC5LlxuICAgICAqL1xuICAgIHByaXZhdGUgZGVsZXRlRXhwaXJlZFByb2R1Y3RDYWNoZUl0ZW1zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb2R1Y3RzQnlQcm9kdWN0TWFwLmZvckVhY2goKGNhY2hlZEl0ZW0sIGtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFjYWNoZWRJdGVtLmNhY2hlZERhdGFJc0FjdHVhbCgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0c0J5UHJvZHVjdE1hcC5kZWxldGUoa2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNC10YIg0LfQsNC/0YDQvtGBINC90LAg0L/QvtC70YPRh9C10L3QuNC1INGB0L/QuNGB0LrQsCDRgNC10LrQvtC80LXQvdC00L7QstCw0L3QvdGL0YUg0YLQvtCy0LDRgNC+0LIg0LTQu9GPINC60LDRgtC10LPQvtGA0LjQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXRlZ29yeUlkT3JTbHVnINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC40LvQuCBzbHVnINC60LDRgtC10LPQvtGA0LjQuCDRgtC+0LLQsNGA0L7Qsi5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UHJvZHVjdHNCeUNhdGVnb3J5JChjYXRlZ29yeUlkT3JTbHVnOiBudW1iZXIgfCBzdHJpbmcpOiBPYnNlcnZhYmxlPFNjUHJvZHVjdFtdIHwgbnVsbD4ge1xuICAgICAgICB0aGlzLmRlbGV0ZUV4cGlyZWRDYXRlZ29yeUNhY2hlSXRlbXMoKTtcblxuICAgICAgICBsZXQgY2FjaGVkSXRlbSA9IHRoaXMucHJvZHVjdHNCeUNhdGVnb3J5TWFwLmdldChjYXRlZ29yeUlkT3JTbHVnLnRvU3RyaW5nKCkpO1xuXG4gICAgICAgIGlmICghY2FjaGVkSXRlbSkge1xuICAgICAgICAgICAgLy8g0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10Lwg0LLRgNC10LzRjyDQttC40LfQvdC4IGNhY2hlZEl0ZW0g0YDQsNCy0L3QvtC1LCDQv9C+0YLQvtC80YMg0YfRgtC+INC90LDQvCDQvdC1INCy0LDQttC90L4g0LLRgNC10LzRjyDQttC40LfQvdC4LiDQndCw0Lwg0L3Rg9C20LXQvSDRhNGD0L3QutGG0LjQvtC90LDQuyB1cGRhdGUoKS5cbiAgICAgICAgICAgIGNhY2hlZEl0ZW0gPSBuZXcgU2NDYWNoZWRJdGVtPFNjUHJvZHVjdFtdLCBudWxsPihcbiAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgIHRoaXMuaHR0cFxuICAgICAgICAgICAgICAgICAgICAuZ2V0PFNjSVByb2R1Y3RbXT4oYCR7dGhpcy51cmxzLmFwaVVybH0vY2F0YWxvZy9jYXRlZ29yaWVzLyR7Y2F0ZWdvcnlJZE9yU2x1Z30vcmVjb21tZW5kYXRpb25zYCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDogU0NfSVNfSElEREVOX0VSUk9SX0FMRVJUX0hUVFBfQ09OVEVYVCxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKFtdKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAoKHByb2R1Y3RzRFRPKSA9PiBwcm9kdWN0c0RUTy5tYXAoKHByb2R1Y3QpID0+IG5ldyBTY1Byb2R1Y3QocHJvZHVjdCkpKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKHN0YXJ0V2l0aDxTY1Byb2R1Y3RbXSB8IG51bGw+KG51bGwpKSxcbiAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5wcm9kdWN0c0J5Q2F0ZWdvcnlNYXAuc2V0KGNhdGVnb3J5SWRPclNsdWcudG9TdHJpbmcoKSwgY2FjaGVkSXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWNhY2hlZEl0ZW0uY2FjaGVkRGF0YUlzQWN0dWFsKCkpIHtcbiAgICAgICAgICAgIGNhY2hlZEl0ZW0udXBkYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2FjaGVkSXRlbS5pdGVtJDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0LXRgiDQt9Cw0L/RgNC+0YEg0L3QsCDQv9C+0LvRg9GH0LXQvdC40LUg0YHQv9C40YHQutCwINGA0LXQutC+0LzQtdC90LTQvtCy0LDQvdC90YvRhSDRgtC+0LLQsNGA0L7QsiDQtNC70Y8g0L/RgNC+0LTRg9C60YLQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9kdWN0SWRPclNsdWcg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LjQu9C4IHNsdWcg0YLQvtCy0LDRgNCwL9GD0YHQu9GD0LPQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UHJvZHVjdHNCeVByb2R1Y3QkKHByb2R1Y3RJZE9yU2x1ZzogbnVtYmVyIHwgc3RyaW5nKTogT2JzZXJ2YWJsZTxTY1Byb2R1Y3RbXSB8IG51bGw+IHtcbiAgICAgICAgdGhpcy5kZWxldGVFeHBpcmVkUHJvZHVjdENhY2hlSXRlbXMoKTtcblxuICAgICAgICBsZXQgY2FjaGVkSXRlbSA9IHRoaXMucHJvZHVjdHNCeVByb2R1Y3RNYXAuZ2V0KHByb2R1Y3RJZE9yU2x1Zy50b1N0cmluZygpKTtcblxuICAgICAgICBpZiAoIWNhY2hlZEl0ZW0pIHtcbiAgICAgICAgICAgIC8vINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdC8INCy0YDQtdC80Y8g0LbQuNC30L3QuCBjYWNoZWRJdGVtINGA0LDQstC90L7QtSwg0L/QvtGC0L7QvNGDINGH0YLQviDQvdCw0Lwg0L3QtSDQstCw0LbQvdC+INCy0YDQtdC80Y8g0LbQuNC30L3QuC4g0J3QsNC8INC90YPQttC10L0g0YTRg9C90LrRhtC40L7QvdCw0LsgdXBkYXRlKCkuXG4gICAgICAgICAgICBjYWNoZWRJdGVtID0gbmV3IFNjQ2FjaGVkSXRlbTxTY1Byb2R1Y3RbXT4oXG4gICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICB0aGlzLmh0dHBcbiAgICAgICAgICAgICAgICAgICAgLmdldDxTY0lQcm9kdWN0W10+KGAke3RoaXMudXJscy5hcGlVcmx9L2NhdGFsb2cvcHJvZHVjdHMvJHtwcm9kdWN0SWRPclNsdWd9L3JlY29tbWVuZGF0aW9uc2AsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IFNDX0lTX0hJRERFTl9FUlJPUl9BTEVSVF9IVFRQX0NPTlRFWFQsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihbXSkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFwKChwcm9kdWN0c0RUTykgPT4gcHJvZHVjdHNEVE8ubWFwKChwcm9kdWN0KSA9PiBuZXcgU2NQcm9kdWN0KHByb2R1Y3QpKSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAucGlwZShzdGFydFdpdGg8U2NQcm9kdWN0W10gfCBudWxsPihudWxsKSksXG4gICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMucHJvZHVjdHNCeVByb2R1Y3RNYXAuc2V0KHByb2R1Y3RJZE9yU2x1Zy50b1N0cmluZygpLCBjYWNoZWRJdGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghY2FjaGVkSXRlbS5jYWNoZWREYXRhSXNBY3R1YWwoKSkge1xuICAgICAgICAgICAgY2FjaGVkSXRlbS51cGRhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjYWNoZWRJdGVtLml0ZW0kO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0L7Qt9C00LDQtdGCINC30LDQv9GA0L7RgSDQvdCwINC/0L7Qu9GD0YfQtdC90LjQtSDRgdC/0LjRgdC60LAg0YDQtdC60L7QvNC10L3QtNC+0LLQsNC90L3Ri9GFINGC0L7QstCw0YDQvtCyINC00LvRjyDRgdC/0LjRgdC60LAg0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDQvtCyINGC0L7QstCw0YDQvtCyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHByb2R1Y3RJZHMg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRiyDQv9GA0L7QtNGD0LrRgtC+0LIuXG4gICAgICovXG4gICAgcHVibGljIGdldFByb2R1Y3RzQnlQcm9kdWN0SWRzJChwcm9kdWN0SWRzOiBudW1iZXJbXSk6IE9ic2VydmFibGU8U2NQcm9kdWN0W10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldDxTY0lQcm9kdWN0W10+KGAke3RoaXMudXJscy5hcGlVcmx9L2NhdGFsb2cvcHJvZHVjdHMvcmVjb21tZW5kYXRpb25zYCwge1xuICAgICAgICAgICAgICAgIHBhcmFtczogdGhpcy5jb252ZXJ0ZXJzU2VydmljZS50b0h0dHBQYXJhbXMoeyBwcm9kdWN0czogcHJvZHVjdElkcyB9LCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pLFxuICAgICAgICAgICAgICAgIGNvbnRleHQ6IFNDX0lTX0hJRERFTl9FUlJPUl9BTEVSVF9IVFRQX0NPTlRFWFQsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihbXSkpLFxuICAgICAgICAgICAgICAgIG1hcCgocHJvZHVjdHNEVE8pID0+IHByb2R1Y3RzRFRPLm1hcCgocHJvZHVjdCkgPT4gbmV3IFNjUHJvZHVjdChwcm9kdWN0KSkpXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0L7Qt9C00LDQtdGCINC30LDQv9GA0L7RgSDQvdCwINC/0L7Qu9GD0YfQtdC90LjQtSDRgdC/0LjRgdC60LAg0YDQtdC60L7QvNC10L3QtNC+0LLQsNC90L3Ri9GFINGC0L7QstCw0YDQvtCyINC00LvRjyDQutC+0YDQt9C40L3RiyDQutC70LjQtdC90YLQsC5cbiAgICAgKi9cbiAgICBAdHVpUHVyZVxuICAgIHB1YmxpYyBnZXRQcm9kdWN0c0J5Q2FydCQoKTogT2JzZXJ2YWJsZTxTY1Byb2R1Y3RbXSB8IG51bGw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FydFNlcnZpY2UuZ2V0JCgpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGNhcnQpOiBudW1iZXJbXSA9PiAoY2FydCAhPT0gbG9hZGluZ1BsYWNlaG9sZGVyICYmICdpdGVtcycgaW4gY2FydCA/IGNhcnQuaXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLnByb2R1Y3QuaWQpIDogW10pKSxcbiAgICAgICAgICAgIC8vINCe0YLRhNC40LvRjNGC0YDQvtCy0YvQstCw0LXQvCDQv9C+0LLRgtC+0YDQtdC90LjRjy4g0J7QvdC4INCy0L7Qt9C90LjQutC90YPRgiDQtdGB0LvQuCDQsdGL0LvQviDQuNC30LzQtdC90LXQvdC+INC60L7Qu9C40YfQtdGB0YLQstC+INGC0L7QstCw0YDQsCDQsdC10Lcg0YPQtNCw0LvQtdC90LjRj1xc0LTQvtCx0LDQstC70LXQvdC40Y8g0L3QvtCy0YvRhSDRgtC+0LLQsNGA0L7Qsi5cbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb25hcmpzL25vLW1pc2xlYWRpbmctYXJyYXktcmV2ZXJzZVxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoXG4gICAgICAgICAgICAgICAgKHByZXZpb3VzOiBudW1iZXJbXSwgY3VycmVudDogbnVtYmVyW10pID0+XG4gICAgICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KFsuLi5wcmV2aW91c10uc29ydCgoYTogbnVtYmVyLCBiOiBudW1iZXIpID0+IGEgLSBiKSkgPT09IEpTT04uc3RyaW5naWZ5KFsuLi5jdXJyZW50XS5zb3J0KChhOiBudW1iZXIsIGI6IG51bWJlcikgPT4gYSAtIGIpKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCgocHJvZHVjdElkcykgPT4gdGhpcy5nZXRQcm9kdWN0c0J5UHJvZHVjdElkcyQocHJvZHVjdElkcykucGlwZShzdGFydFdpdGgobnVsbCkpKVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,52 +1,33 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { SC_LINEAR_VALUES_TOKEN } from '../tokens';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
1
|
/**
|
|
5
|
-
*
|
|
2
|
+
* Класс-помощник для работы со значениями единиц измерения товара.
|
|
6
3
|
*/
|
|
7
4
|
export class ScUnitsHelper {
|
|
8
5
|
/**
|
|
9
|
-
*
|
|
6
|
+
* Возвращает признак, что указанный товар имеет линейную единицу измерения.
|
|
10
7
|
*
|
|
11
|
-
* @param
|
|
8
|
+
* @param product Данные о товаре для которого нужно проверить линейность его единицы измерения.
|
|
12
9
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
static productIsMeasurable(product) {
|
|
11
|
+
return product.unit.isLinear || product.unit.isSquare;
|
|
15
12
|
}
|
|
16
13
|
/**
|
|
17
|
-
* Возвращает
|
|
14
|
+
* Возвращает кратность количества для указанного товара.
|
|
18
15
|
*
|
|
19
|
-
* @param product
|
|
16
|
+
* @param product Данные о товаре для которого необходимо вернуть кратность количества.
|
|
20
17
|
*/
|
|
21
|
-
|
|
22
|
-
return
|
|
18
|
+
static getProductMultiplicity(product) {
|
|
19
|
+
return !product.properties?.ignoreMinCountCheck && product.minCount && !ScUnitsHelper.productIsMeasurable(product) ? product.minCount : 1;
|
|
23
20
|
}
|
|
24
21
|
/**
|
|
25
|
-
* Возвращает кратность
|
|
22
|
+
* Возвращает кратность длины для указанного товара.
|
|
26
23
|
*
|
|
27
|
-
* @param product
|
|
24
|
+
* @param product Данные о товаре для которого необходимо вернуть кратность длины.
|
|
28
25
|
*/
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
static getProductLengthMultiplicity(product) {
|
|
27
|
+
if (product.properties?.lengthStep) {
|
|
28
|
+
return product.properties.lengthStep;
|
|
29
|
+
}
|
|
30
|
+
return !product.properties?.ignoreMinCountCheck && product.minCount ? product.minCount : 0.01;
|
|
31
31
|
}
|
|
32
|
-
/**
|
|
33
|
-
* Возвращает значение кратности, для проверки кратности количества товара.
|
|
34
|
-
*
|
|
35
|
-
* @param product Товар для которого нужно вернуть значение кратность.
|
|
36
|
-
*/
|
|
37
|
-
productStepForValidator(product) {
|
|
38
|
-
return product.ignoreMinCountCheck ? 1 : this.productMultiplicity(product);
|
|
39
|
-
}
|
|
40
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScUnitsHelper, deps: [{ token: SC_LINEAR_VALUES_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
41
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScUnitsHelper, providedIn: 'root' }); }
|
|
42
32
|
}
|
|
43
|
-
|
|
44
|
-
type: Injectable,
|
|
45
|
-
args: [{
|
|
46
|
-
providedIn: 'root',
|
|
47
|
-
}]
|
|
48
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
49
|
-
type: Inject,
|
|
50
|
-
args: [SC_LINEAR_VALUES_TOKEN]
|
|
51
|
-
}] }] });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdW5pdHMtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9oZWxwZXJzL3NjLXVuaXRzLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBRW5EOztHQUVHO0FBSUgsTUFBTSxPQUFPLGFBQWE7SUFDdEI7Ozs7T0FJRztJQUNILFlBQW1FLFlBQXNCO1FBQXRCLGlCQUFZLEdBQVosWUFBWSxDQUFVO0lBQUcsQ0FBQztJQUU3Rjs7OztPQUlHO0lBQ0ksbUJBQW1CLENBQUMsT0FBa0I7UUFDekMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksbUJBQW1CLENBQUMsT0FBa0I7UUFDekMsT0FBTyxPQUFPLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksdUJBQXVCLENBQUMsT0FBa0I7UUFDN0MsT0FBTyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9FLENBQUM7K0dBakNRLGFBQWEsa0JBTUssc0JBQXNCO21IQU54QyxhQUFhLGNBRlYsTUFBTTs7NEZBRVQsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQU91QixNQUFNOzJCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTY1Byb2R1Y3QgfSBmcm9tICcuLi9jYXRhbG9nL2R0by9zYy1wcm9kdWN0JztcbmltcG9ydCB7IFNDX0xJTkVBUl9WQUxVRVNfVE9LRU4gfSBmcm9tICcuLi90b2tlbnMnO1xuXG4vKipcbiAqINCa0LvQsNGBLdC/0L7QvNC+0YnQvdC40Log0LTQu9GPINGA0LDQsdC+0YLRiyDRgdC+INC30L3QsNGH0LXQvdC40Y/QvNC4INC10LTQuNC90LjRhiDQuNC30LzQtdGA0LXQvdC40Y8g0YLQvtCy0LDRgNCwLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY1VuaXRzSGVscGVyIHtcbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY1VuaXRzSGVscGVyfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBsaW5lYXJWYWx1ZXMg0JXQtNC40L3QuNGG0Ysg0LjQt9C80LXRgNC10L3QuNGPINC70LjQvdC10LnQvdC+0Lkg0LLQtdC70LjRh9C40L3Riy5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoQEluamVjdChTQ19MSU5FQVJfVkFMVUVTX1RPS0VOKSBwdWJsaWMgcmVhZG9ubHkgbGluZWFyVmFsdWVzOiBzdHJpbmdbXSkge31cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC/0YDQuNC30L3QsNC6INCy0L7Qt9C80L7QttC90L7RgdGC0Lgg0L/RgNC+0LTQsNC20Lgg0YLQvtCy0LDRgNCwINC90LAg0LzQtdGC0YDQsNC2LlxuICAgICAqXG4gICAgICogQHBhcmFtIHByb2R1Y3Qg0KLQvtCy0LDRgCDQtNC70Y8g0LrQvtGC0L7RgNC+0LPQviDQvdGD0LbQvdC+INC/0YDQvtCy0LXRgNC40YLRjCDQstC+0LfQvNC+0LbQvdC+0YHRgtGMINC/0YDQvtC00LDQttC4INC90LAg0LzQtdGC0YDQsNC2LlxuICAgICAqL1xuICAgIHB1YmxpYyBwcm9kdWN0SXNNZWFzdXJhYmxlKHByb2R1Y3Q6IFNjUHJvZHVjdCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5saW5lYXJWYWx1ZXMuaW5jbHVkZXMocHJvZHVjdC51bml0Lm5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC60YDQsNGC0L3QvtGB0YLRjCDQutC+0LvQuNGH0LXRgdGC0LLQsCDQtNC70Y8g0YLQvtCy0LDRgNCwLlxuICAgICAqXG4gICAgICogQHBhcmFtIHByb2R1Y3Qg0KLQvtCy0LDRgCDQtNC70Y8g0LrQvtGC0L7RgNC+0LPQviDQvdGD0LbQvdC+INCy0LXRgNC90YPRgtGMINC60YDQsNGC0L3QvtGB0YLRjCDQutC+0LvQuNGH0LXRgdGC0LLQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcHJvZHVjdE11bHRpcGxpY2l0eShwcm9kdWN0OiBTY1Byb2R1Y3QpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gcHJvZHVjdC5taW5Db3VudCAmJiAhdGhpcy5saW5lYXJWYWx1ZXMuaW5jbHVkZXMocHJvZHVjdC51bml0Lm5hbWUpID8gcHJvZHVjdC5taW5Db3VudCA6IDE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LfQvdCw0YfQtdC90LjQtSDQutGA0LDRgtC90L7RgdGC0LgsINC00LvRjyDQv9GA0L7QstC10YDQutC4INC60YDQsNGC0L3QvtGB0YLQuCDQutC+0LvQuNGH0LXRgdGC0LLQsCDRgtC+0LLQsNGA0LAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvZHVjdCDQotC+0LLQsNGAINC00LvRjyDQutC+0YLQvtGA0L7Qs9C+INC90YPQttC90L4g0LLQtdGA0L3Rg9GC0Ywg0LfQvdCw0YfQtdC90LjQtSDQutGA0LDRgtC90L7RgdGC0YwuXG4gICAgICovXG4gICAgcHVibGljIHByb2R1Y3RTdGVwRm9yVmFsaWRhdG9yKHByb2R1Y3Q6IFNjUHJvZHVjdCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBwcm9kdWN0Lmlnbm9yZU1pbkNvdW50Q2hlY2sgPyAxIDogdGhpcy5wcm9kdWN0TXVsdGlwbGljaXR5KHByb2R1Y3QpO1xuICAgIH1cbn1cbiJdfQ==
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdW5pdHMtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9oZWxwZXJzL3NjLXVuaXRzLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBQ3RCOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsbUJBQW1CLENBQUMsT0FBa0I7UUFDaEQsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxPQUFrQjtRQUNuRCxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxtQkFBbUIsSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUksQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsNEJBQTRCLENBQUMsT0FBa0I7UUFDekQsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7UUFDekMsQ0FBQztRQUVELE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLG1CQUFtQixJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNsRyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY1Byb2R1Y3QgfSBmcm9tICcuLi9jYXRhbG9nL2R0by9zYy1wcm9kdWN0JztcblxuLyoqXG4gKiDQmtC70LDRgdGBLdC/0L7QvNC+0YnQvdC40Log0LTQu9GPINGA0LDQsdC+0YLRiyDRgdC+INC30L3QsNGH0LXQvdC40Y/QvNC4INC10LTQuNC90LjRhiDQuNC30LzQtdGA0LXQvdC40Y8g0YLQvtCy0LDRgNCwLlxuICovXG5leHBvcnQgY2xhc3MgU2NVbml0c0hlbHBlciB7XG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0L/RgNC40LfQvdCw0LosINGH0YLQviDRg9C60LDQt9Cw0L3QvdGL0Lkg0YLQvtCy0LDRgCDQuNC80LXQtdGCINC70LjQvdC10LnQvdGD0Y4g0LXQtNC40L3QuNGG0YMg0LjQt9C80LXRgNC10L3QuNGPLlxuICAgICAqXG4gICAgICogQHBhcmFtIHByb2R1Y3Qg0JTQsNC90L3Ri9C1INC+INGC0L7QstCw0YDQtSDQtNC70Y8g0LrQvtGC0L7RgNC+0LPQviDQvdGD0LbQvdC+INC/0YDQvtCy0LXRgNC40YLRjCDQu9C40L3QtdC50L3QvtGB0YLRjCDQtdCz0L4g0LXQtNC40L3QuNGG0Ysg0LjQt9C80LXRgNC10L3QuNGPLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcHJvZHVjdElzTWVhc3VyYWJsZShwcm9kdWN0OiBTY1Byb2R1Y3QpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHByb2R1Y3QudW5pdC5pc0xpbmVhciB8fCBwcm9kdWN0LnVuaXQuaXNTcXVhcmU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LrRgNCw0YLQvdC+0YHRgtGMINC60L7Qu9C40YfQtdGB0YLQstCwINC00LvRjyDRg9C60LDQt9Cw0L3QvdC+0LPQviDRgtC+0LLQsNGA0LAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvZHVjdCDQlNCw0L3QvdGL0LUg0L4g0YLQvtCy0LDRgNC1INC00LvRjyDQutC+0YLQvtGA0L7Qs9C+INC90LXQvtCx0YXQvtC00LjQvNC+INCy0LXRgNC90YPRgtGMINC60YDQsNGC0L3QvtGB0YLRjCDQutC+0LvQuNGH0LXRgdGC0LLQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFByb2R1Y3RNdWx0aXBsaWNpdHkocHJvZHVjdDogU2NQcm9kdWN0KTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuICFwcm9kdWN0LnByb3BlcnRpZXM/Lmlnbm9yZU1pbkNvdW50Q2hlY2sgJiYgcHJvZHVjdC5taW5Db3VudCAmJiAhU2NVbml0c0hlbHBlci5wcm9kdWN0SXNNZWFzdXJhYmxlKHByb2R1Y3QpID8gcHJvZHVjdC5taW5Db3VudCA6IDE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LrRgNCw0YLQvdC+0YHRgtGMINC00LvQuNC90Ysg0LTQu9GPINGD0LrQsNC30LDQvdC90L7Qs9C+INGC0L7QstCw0YDQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9kdWN0INCU0LDQvdC90YvQtSDQviDRgtC+0LLQsNGA0LUg0LTQu9GPINC60L7RgtC+0YDQvtCz0L4g0L3QtdC+0LHRhdC+0LTQuNC80L4g0LLQtdGA0L3Rg9GC0Ywg0LrRgNCw0YLQvdC+0YHRgtGMINC00LvQuNC90YsuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRQcm9kdWN0TGVuZ3RoTXVsdGlwbGljaXR5KHByb2R1Y3Q6IFNjUHJvZHVjdCk6IG51bWJlciB7XG4gICAgICAgIGlmIChwcm9kdWN0LnByb3BlcnRpZXM/Lmxlbmd0aFN0ZXApIHtcbiAgICAgICAgICAgIHJldHVybiBwcm9kdWN0LnByb3BlcnRpZXMubGVuZ3RoU3RlcDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAhcHJvZHVjdC5wcm9wZXJ0aWVzPy5pZ25vcmVNaW5Db3VudENoZWNrICYmIHByb2R1Y3QubWluQ291bnQgPyBwcm9kdWN0Lm1pbkNvdW50IDogMC4wMTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { HttpClient } from '@angular/common/http';
|
|
2
|
-
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { DestroyRef, inject, Injectable } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
4
|
import { interval, of, ReplaySubject, switchMap, tap } from 'rxjs';
|
|
4
5
|
import { SC_UPDATE_INTERVAL, SC_URLS } from '../../tokens';
|
|
5
6
|
import { SC_USER_INFO } from '../../user/tokens/sc-user-providers';
|
|
@@ -22,6 +23,10 @@ export class ScNotificationsService {
|
|
|
22
23
|
* {@link Observable} данных о текущем пользователе.
|
|
23
24
|
*/
|
|
24
25
|
this.user$ = inject(SC_USER_INFO);
|
|
26
|
+
/**
|
|
27
|
+
* Ссылка на жизненный цикл сервиса.
|
|
28
|
+
*/
|
|
29
|
+
this.destroyRef = inject(DestroyRef);
|
|
25
30
|
/**
|
|
26
31
|
* Интервалы обновления данных.
|
|
27
32
|
*/
|
|
@@ -50,7 +55,7 @@ export class ScNotificationsService {
|
|
|
50
55
|
else {
|
|
51
56
|
this.updateUserNotificationsCount();
|
|
52
57
|
}
|
|
53
|
-
}), switchMap((user) => (user.isGuest ? of() : this.interval$)))
|
|
58
|
+
}), switchMap((user) => (user.isGuest ? of() : this.interval$)), takeUntilDestroyed(this.destroyRef))
|
|
54
59
|
.subscribe();
|
|
55
60
|
}
|
|
56
61
|
/**
|
|
@@ -160,4 +165,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
160
165
|
providedIn: 'root',
|
|
161
166
|
}]
|
|
162
167
|
}], ctorParameters: () => [] });
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtbm90aWZpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9ub3RpZmljYXRpb25zL3NlcnZpY2VzL3NjLW5vdGlmaWNhdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBTW5FLE1BQU0sT0FBTyxzQkFBc0I7SUF3Qy9COzs7T0FHRztJQUNIO1FBM0NBOztXQUVHO1FBQ2MsU0FBSSxHQUFlLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV2RDs7V0FFRztRQUNjLFNBQUksR0FBWSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFakQ7O1dBRUc7UUFDYyxVQUFLLEdBQXVCLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVsRTs7V0FFRztRQUNjLG1CQUFjLEdBQXNCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRWhGOztXQUVHO1FBQ2Msd0JBQW1CLEdBQXFELElBQUksYUFBYSxDQUFvQyxDQUFDLENBQUMsQ0FBQztRQUVqSjs7V0FFRztRQUNjLG1CQUFjLEdBQXlDLElBQUksYUFBYSxDQUF3QixDQUFDLENBQUMsQ0FBQztRQUVwSDs7V0FFRztRQUNjLGNBQVMsR0FBdUIsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMs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SSxDQUFDLE1BQU0sQ0FBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSx1QkFBdUIsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNuRyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHFCQUFxQixDQUFDLGNBQXNCO1FBQy9DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sdUJBQXVCLGNBQWMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RHLENBQUM7SUFFRDs7T0FFRztJQUNJLDRCQUE0QjtRQUMvQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSx1QkFBdUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssMkJBQTJCLENBQUMsa0JBQXFEO1FBQ3JGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLHNCQUFzQixDQUFDLGFBQW9DO1FBQy9ELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVDLENBQUM7K0dBbExRLHNCQUFzQjttSEFBdEIsc0JBQXNCLGNBRm5CLE1BQU07OzRGQUVULHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbnRlcnZhbCwgT2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3QsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNjSVVwZGF0ZUludGVydmFsLCBTY0lVcmxzIH0gZnJvbSAnLi4vLi4vY29uZmlnJztcbmltcG9ydCB7IFNDX1VQREFURV9JTlRFUlZBTCwgU0NfVVJMUyB9IGZyb20gJy4uLy4uL3Rva2Vucyc7XG5pbXBvcnQgeyBTY1VzZXIgfSBmcm9tICcuLi8uLi91c2VyL2R0by9zYy11c2VyJztcbmltcG9ydCB7IFNDX1VTRVJfSU5GTyB9IGZyb20gJy4uLy4uL3VzZXIvdG9rZW5zL3NjLXVzZXItcHJvdmlkZXJzJztcbmltcG9ydCB7IFNjSU5vdGlmaWNhdGlvbnNDb3VudCwgU2NJVXNlck5vdGlmaWNhdGlvbiB9IGZyb20gJy4uJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2NOb3RpZmljYXRpb25zU2VydmljZSB7XG4gICAgLyoqXG4gICAgICogSFRUUC3QutC70LjQtdC90YIuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50ID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGB0YHRi9C70L7QuiDQv9GA0LjQu9C+0LbQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVybHM6IFNjSVVybHMgPSBpbmplY3QoU0NfVVJMUyk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LTQsNC90L3Ri9GFINC+INGC0LXQutGD0YnQtdC8INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXIkOiBPYnNlcnZhYmxlPFNjVXNlcj4gPSBpbmplY3QoU0NfVVNFUl9JTkZPKTtcblxuICAgIC8qKlxuICAgICAqINCY0L3RgtC10YDQstCw0LvRiyDQvtCx0L3QvtCy0LvQtdC90LjRjyDQtNCw0L3QvdGL0YUuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB1cGRhdGVJbnRlcnZhbDogU2NJVXBkYXRlSW50ZXJ2YWwgPSBpbmplY3QoU0NfVVBEQVRFX0lOVEVSVkFMKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBSZXBsYXlTdWJqZWN0fSDQtNCw0L3QvdGL0YUg0L4g0LrQvtC70LjRh9C10YHRgtCy0LUg0YPQstC10LTQvtC80LvQtdC90LjQuSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBub3RpZmljYXRpb25zQ291bnQkOiBSZXBsYXlTdWJqZWN0PFNjSU5vdGlmaWNhdGlvbnNDb3VudCB8IHVuZGVmaW5lZD4gPSBuZXcgUmVwbGF5U3ViamVjdDxTY0lOb3RpZmljYXRpb25zQ291bnQgfCB1bmRlZmluZWQ+KDEpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIFJlcGxheVN1YmplY3R9INC00LDQvdC90YvRhSDQvtCxINGD0LLQtdC00L7QvNC70LXQvdC40Y/RhSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBub3RpZmljYXRpb25zJDogUmVwbGF5U3ViamVjdDxTY0lVc2VyTm90aWZpY2F0aW9uW10+ID0gbmV3IFJlcGxheVN1YmplY3Q8U2NJVXNlck5vdGlmaWNhdGlvbltdPigxKTtcblxuICAgIC8qKlxuICAgICAqINCY0L3RgtC10YDQstCw0LssINGH0LXRgNC10Lcg0LrQvtGC0L7RgNGL0Lkg0LLRi9C/0L7Qu9C90Y/QtdGC0YHRjyDQt9Cw0L/RgNC+0YEg0YPQstC10LTQvtC80LvQtdC90LjQuSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnRlcnZhbCQ6IE9ic2VydmFibGU8bnVtYmVyPiA9IGludGVydmFsKHRoaXMudXBkYXRlSW50ZXJ2YWwubm90aWZpY2F0aW9uc1VwZGF0ZSkucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVXNlck5vdGlmaWNhdGlvbnNDb3VudCgpO1xuICAgICAgICB9KVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjTm90aWZpY2F0aW9uc1NlcnZpY2V9LlxuICAgICAqXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnVzZXIkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YXAoKHVzZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyanMvbm8tc2VsZWN0b3ItcGFyYW1ldGVyXG4gICAgICAgICAgICAgICAgICAgIGlmICh1c2VyLmlzR3Vlc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25vLXVzZWxlc3MtdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnNDb3VudCQubmV4dCh1bmRlZmluZWQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVVc2VyTm90aWZpY2F0aW9uc0NvdW50KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHVzZXIpID0+ICh1c2VyLmlzR3Vlc3QgPyBvZigpIDogdGhpcy5pbnRlcnZhbCQpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHQvdC+0LLQu9GP0LXRgiDQutC+0LvQuNGH0LXRgdGC0LLQviDRg9Cy0LXQtNC+0LzQu9C10L3QuNC5LlxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVVc2VyTm90aWZpY2F0aW9uc0NvdW50KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdldFVzZXJOb3RpZmljYXRpb25zQ291bnQkKClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgoY291bnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXROb3RpZmljYXRpb25zQ291bnRDaGFuZ2UoY291bnQpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7QsdC90L7QstC70Y/QtdGCINGB0L/QuNGB0L7QuiDRg9Cy0LXQtNC+0LzQu9C10L3QuNC5LlxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVVc2VyTm90aWZpY2F0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nZXRVc2VyTm90aWZpY2F0aW9ucyQoKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFwKChub3RpZmljYXRpb25zTGlzdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldE5vdGlmaWNhdGlvbnNDaGFuZ2Uobm90aWZpY2F0aW9uc0xpc3QpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7QsdC90L7QstC70Y/QtdGCINC60L7Qu9C40YfQtdGB0YLQstC+INC4INGB0L/QuNGB0L7QuiDRg9Cy0LXQtNC+0LzQu9C10L3QuNC5LlxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVOb3RpZmljYXRpb25zTGlzdEFuZENvdW50JCgpOiBPYnNlcnZhYmxlPFNjSVVzZXJOb3RpZmljYXRpb25bXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRVc2VyTm90aWZpY2F0aW9uc0NvdW50JCgpLnBpcGUoXG4gICAgICAgICAgICB0YXAoKGNvdW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXROb3RpZmljYXRpb25zQ291bnRDaGFuZ2UoY291bnQpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5nZXRVc2VyTm90aWZpY2F0aW9ucyQoKSksXG4gICAgICAgICAgICB0YXAoKG5vdGlmaWNhdGlvbnNMaXN0KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXROb3RpZmljYXRpb25zQ2hhbmdlKG5vdGlmaWNhdGlvbnNMaXN0KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNC10YIg0LfQsNC/0YDQvtGBINC/0L7Qu9GD0YfQtdC90LjRjyDRgdC/0LjRgdC60LAg0YPQstC10LTQvtC80LvQtdC90LjQuS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VXNlck5vdGlmaWNhdGlvbnMkKCk6IE9ic2VydmFibGU8U2NJVXNlck5vdGlmaWNhdGlvbltdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFNjSVVzZXJOb3RpZmljYXRpb25bXT4oYCR7dGhpcy51cmxzLmFwaVVybH0vdXNlci9ub3RpZmljYXRpb25zYCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNC10YIg0LfQsNC/0YDQvtGBINC/0L7Qu9GD0YfQtdC90LjRjyDQutC+0LvQuNGH0LXRgdGC0LLQsCDRg9Cy0LXQtNC+0LzQu9C10L3QuNC5LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRVc2VyTm90aWZpY2F0aW9uc0NvdW50JCgpOiBPYnNlcnZhYmxlPFNjSU5vdGlmaWNhdGlvbnNDb3VudD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxTY0lOb3RpZmljYXRpb25zQ291bnQ+KGAke3RoaXMudXJscy5hcGlVcmx9L3VzZXIvbm90aWZpY2F0aW9ucy9jb3VudGApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0L7Qt9C00LDQtdGCINC30LDQv9GA0L7RgSDQvdCwINGD0LTQsNC70LXQvdC40LUg0LLRgdC10YUg0YPQstC10LTQvtC80LvQtdC90LjQuS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGVsZXRlQWxsTm90aWZpY2F0aW9ucyQoKTogT2JzZXJ2YWJsZTx1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8dW5kZWZpbmVkPihgJHt0aGlzLnVybHMuYXBpVXJsfS91c2VyL25vdGlmaWNhdGlvbnNgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0LXRgiDQt9Cw0L/RgNC+0YEg0L3QsCDQv9GA0L7Rh9GC0LXQvdC40LUg0LLRgdC10YUg0YPQstC10LTQvtC80LvQtdC90LjQuS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZEFsbE5vdGlmaWNhdGlvbnMkKCk6IE9ic2VydmFibGU8dW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucGF0Y2g8dW5kZWZpbmVkPihgJHt0aGlzLnVybHMuYXBpVXJsfS91c2VyL25vdGlmaWNhdGlvbnNgLCB7fSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNC10YIg0LfQsNC/0YDQvtGBINC90LAg0YPQtNCw0LvQtdC90LjQtSDRg9Cy0LXQtNC+0LzQu9C10L3QuNGPINC/0L4g0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRgy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBub3RpZmljYXRpb25JZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRg9Cy0LXQtNC+0LzQu9C10L3QuNGPLCDQutC+0YLQvtGA0L7QtSDQvdC10L7QsdGF0L7QtNC40LzQviDRg9C00LDQu9C40YLRjC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGVsZXRlTm90aWZpY2F0aW9uQnlJZCQobm90aWZpY2F0aW9uSWQ6IG51bWJlcik6IE9ic2VydmFibGU8dW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPHVuZGVmaW5lZD4oYCR7dGhpcy51cmxzLmFwaVVybH0vdXNlci9ub3RpZmljYXRpb25zLyR7bm90aWZpY2F0aW9uSWR9YCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNC10YIg0LfQsNC/0YDQvtGBINC90LAg0L/RgNC+0YfRgtC10L3QuNC1INGD0LLQtdC00L7QvNC70LXQvdC40Y8g0L/QviDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNGDLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5vdGlmaWNhdGlvbklkINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGD0LLQtdC00L7QvNC70LXQvdC40Y8sINC60L7RgtC+0YDQvtC1INC90LXQvtCx0YXQvtC00LjQvNC+INC/0L7QvNC10YLQuNGC0Ywg0L/RgNC+0YfQuNGC0LDQvdC90YvQvC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZE5vdGlmaWNhdGlvbkJ5SWQkKG5vdGlmaWNhdGlvbklkOiBudW1iZXIpOiBPYnNlcnZhYmxlPHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBhdGNoPHVuZGVmaW5lZD4oYCR7dGhpcy51cmxzLmFwaVVybH0vdXNlci9ub3RpZmljYXRpb25zLyR7bm90aWZpY2F0aW9uSWR9YCwge30pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQutC+0LvQuNGH0LXRgdGC0LLQsCDRg9Cy0LXQtNC+0LzQu9C10L3QuNC5INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Tm90aWZpY2F0aW9uc0NvdW50Q2hhbmdlJCgpOiBPYnNlcnZhYmxlPFNjSU5vdGlmaWNhdGlvbnNDb3VudCB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ub3RpZmljYXRpb25zQ291bnQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgdC/0LjRgdC60LAg0YPQstC10LTQvtC80LvQtdC90LjQuSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uXG4gICAgICovXG4gICAgcHVibGljIGdldE5vdGlmaWNhdGlvbnNDaGFuZ2UkKCk6IE9ic2VydmFibGU8U2NJVXNlck5vdGlmaWNhdGlvbltdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5vdGlmaWNhdGlvbnMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQutC+0LvQuNGH0LXRgdGC0LLQsCDRg9Cy0LXQtNC+0LzQu9C10L3QuNC5INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBub3RpZmljYXRpb25zQ291bnQg0JTQsNC90L3Ri9C1INC+INC60L7Qu9C40YfQtdGB0YLQstC1INGD0LLQtdC00L7QvNC70LXQvdC40LkuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXROb3RpZmljYXRpb25zQ291bnRDaGFuZ2Uobm90aWZpY2F0aW9uc0NvdW50OiBTY0lOb3RpZmljYXRpb25zQ291bnQgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zQ291bnQkLm5leHQobm90aWZpY2F0aW9uc0NvdW50KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YHQv9C40YHQutCwINGD0LLQtdC00L7QvNC70LXQvdC40Lkg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5vdGlmaWNhdGlvbnMg0JTQsNC90L3Ri9C1INC+INGB0L/QuNGB0LrQtSDRg9Cy0LXQtNC+0LzQu9C10L3QuNC5LlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0Tm90aWZpY2F0aW9uc0NoYW5nZShub3RpZmljYXRpb25zOiBTY0lVc2VyTm90aWZpY2F0aW9uW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zJC5uZXh0KG5vdGlmaWNhdGlvbnMpO1xuICAgIH1cbn1cbiJdfQ==
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtbm90aWZpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9ub3RpZmljYXRpb25zL3NlcnZpY2VzL3NjLW5vdGlmaWNhdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRy9FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQU1uRSxNQUFNLE9BQU8sc0JBQXNCO0lBNkMvQjs7O09BR0c7SUFDSDtRQWhEQTs7V0FFRztRQUNjLFNBQUksR0FBZSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFdkQ7O1dBRUc7UUFDYyxTQUFJLEdBQVksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWpEOztXQUVHO1FBQ2MsVUFBSyxHQUF1QixNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFbEU7O1dBRUc7UUFDYyxlQUFVLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTdEOztXQUVHO1FBQ2MsbUJBQWMsR0FBc0IsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFaEY7O1dBRUc7UUFDYyx3QkFBbUIsR0FBcUQsSUFBSSxhQUFhLENBQW9DLENBQUMsQ0FBQyxDQUFDO1FBRWpKOztXQUVHO1FBQ2MsbUJBQWMs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bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IERlc3Ryb3lSZWYsIGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgaW50ZXJ2YWwsIE9ic2VydmFibGUsIG9mLCBSZXBsYXlTdWJqZWN0LCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY0lVcGRhdGVJbnRlcnZhbCwgU2NJVXJscyB9IGZyb20gJy4uLy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBTQ19VUERBVEVfSU5URVJWQUwsIFNDX1VSTFMgfSBmcm9tICcuLi8uLi90b2tlbnMnO1xuaW1wb3J0IHsgU2NVc2VyIH0gZnJvbSAnLi4vLi4vdXNlci9kdG8vc2MtdXNlcic7XG5pbXBvcnQgeyBTQ19VU0VSX0lORk8gfSBmcm9tICcuLi8uLi91c2VyL3Rva2Vucy9zYy11c2VyLXByb3ZpZGVycyc7XG5pbXBvcnQgeyBTY0lOb3RpZmljYXRpb25zQ291bnQsIFNjSVVzZXJOb3RpZmljYXRpb24gfSBmcm9tICcuLic7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNjTm90aWZpY2F0aW9uc1NlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqIEhUVFAt0LrQu9C40LXQvdGCLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcblxuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDRgdGB0YvQu9C+0Log0L/RgNC40LvQvtC20LXQvdC40Y8uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB1cmxzOiBTY0lVcmxzID0gaW5qZWN0KFNDX1VSTFMpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC00LDQvdC90YvRhSDQviDRgtC10LrRg9GJ0LXQvCDQv9C+0LvRjNC30L7QstCw0YLQtdC70LUuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyJDogT2JzZXJ2YWJsZTxTY1VzZXI+ID0gaW5qZWN0KFNDX1VTRVJfSU5GTyk7XG5cbiAgICAvKipcbiAgICAgKiDQodGB0YvQu9C60LAg0L3QsCDQttC40LfQvdC10L3QvdGL0Lkg0YbQuNC60Lsg0YHQtdGA0LLQuNGB0LAuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmOiBEZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdGC0LXRgNCy0LDQu9GLINC+0LHQvdC+0LLQu9C10L3QuNGPINC00LDQvdC90YvRhS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVwZGF0ZUludGVydmFsOiBTY0lVcGRhdGVJbnRlcnZhbCA9IGluamVjdChTQ19VUERBVEVfSU5URVJWQUwpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIFJlcGxheVN1YmplY3R9INC00LDQvdC90YvRhSDQviDQutC+0LvQuNGH0LXRgdGC0LLQtSDRg9Cy0LXQtNC+0LzQu9C10L3QuNC5INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG5vdGlmaWNhdGlvbnNDb3VudCQ6IFJlcGxheVN1YmplY3Q8U2NJTm90aWZpY2F0aW9uc0NvdW50IHwgdW5kZWZpbmVkPiA9IG5ldyBSZXBsYXlTdWJqZWN0PFNjSU5vdGlmaWNhdGlvbnNDb3VudCB8IHVuZGVmaW5lZD4oMSk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgUmVwbGF5U3ViamVjdH0g0LTQsNC90L3Ri9GFINC+0LEg0YPQstC10LTQvtC80LvQtdC90LjRj9GFINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG5vdGlmaWNhdGlvbnMkOiBSZXBsYXlTdWJqZWN0PFNjSVVzZXJOb3RpZmljYXRpb25bXT4gPSBuZXcgUmVwbGF5U3ViamVjdDxTY0lVc2VyTm90aWZpY2F0aW9uW10+KDEpO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdGC0LXRgNCy0LDQuywg0YfQtdGA0LXQtyDQutC+0YLQvtGA0YvQuSDQstGL0L/QvtC70L3Rj9C10YLRgdGPINC30LDQv9GA0L7RgSDRg9Cy0LXQtNC+0LzQu9C10L3QuNC5INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGludGVydmFsJDogT2JzZXJ2YWJsZTxudW1iZXI+ID0gaW50ZXJ2YWwodGhpcy51cGRhdGVJbnRlcnZhbC5ub3RpZmljYXRpb25zVXBkYXRlKS5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVVc2VyTm90aWZpY2F0aW9uc0NvdW50KCk7XG4gICAgICAgIH0pXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NOb3RpZmljYXRpb25zU2VydmljZX0uXG4gICAgICpcbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMudXNlciRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgodXNlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXJqcy9uby1zZWxlY3Rvci1wYXJhbWV0ZXJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHVzZXIuaXNHdWVzdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vbm8tdXNlbGVzcy11bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uc0NvdW50JC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVVzZXJOb3RpZmljYXRpb25zQ291bnQoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgodXNlcikgPT4gKHVzZXIuaXNHdWVzdCA/IG9mKCkgOiB0aGlzLmludGVydmFsJCkpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7QsdC90L7QstC70Y/QtdGCINC60L7Qu9C40YfQtdGB0YLQstC+INGD0LLQtdC00L7QvNC70LXQvdC40LkuXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZVVzZXJOb3RpZmljYXRpb25zQ291bnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0VXNlck5vdGlmaWNhdGlvbnNDb3VudCQoKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFwKChjb3VudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldE5vdGlmaWNhdGlvbnNDb3VudENoYW5nZShjb3VudCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0L3QvtCy0LvRj9C10YIg0YHQv9C40YHQvtC6INGD0LLQtdC00L7QvNC70LXQvdC40LkuXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZVVzZXJOb3RpZmljYXRpb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdldFVzZXJOb3RpZmljYXRpb25zJCgpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YXAoKG5vdGlmaWNhdGlvbnNMaXN0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0Tm90aWZpY2F0aW9uc0NoYW5nZShub3RpZmljYXRpb25zTGlzdCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0L3QvtCy0LvRj9C10YIg0LrQvtC70LjRh9C10YHRgtCy0L4g0Lgg0YHQv9C40YHQvtC6INGD0LLQtdC00L7QvNC70LXQvdC40LkuXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZU5vdGlmaWNhdGlvbnNMaXN0QW5kQ291bnQkKCk6IE9ic2VydmFibGU8U2NJVXNlck5vdGlmaWNhdGlvbltdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFVzZXJOb3RpZmljYXRpb25zQ291bnQkKCkucGlwZShcbiAgICAgICAgICAgIHRhcCgoY291bnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldE5vdGlmaWNhdGlvbnNDb3VudENoYW5nZShjb3VudCk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmdldFVzZXJOb3RpZmljYXRpb25zJCgpKSxcbiAgICAgICAgICAgIHRhcCgobm90aWZpY2F0aW9uc0xpc3QpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldE5vdGlmaWNhdGlvbnNDaGFuZ2Uobm90aWZpY2F0aW9uc0xpc3QpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0LXRgiDQt9Cw0L/RgNC+0YEg0L/QvtC70YPRh9C10L3QuNGPINGB0L/QuNGB0LrQsCDRg9Cy0LXQtNC+0LzQu9C10L3QuNC5LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRVc2VyTm90aWZpY2F0aW9ucyQoKTogT2JzZXJ2YWJsZTxTY0lVc2VyTm90aWZpY2F0aW9uW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8U2NJVXNlck5vdGlmaWNhdGlvbltdPihgJHt0aGlzLnVybHMuYXBpVXJsfS91c2VyL25vdGlmaWNhdGlvbnNgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0LXRgiDQt9Cw0L/RgNC+0YEg0L/QvtC70YPRh9C10L3QuNGPINC60L7Qu9C40YfQtdGB0YLQstCwINGD0LLQtdC00L7QvNC70LXQvdC40LkuXG4gICAgICovXG4gICAgcHVibGljIGdldFVzZXJOb3RpZmljYXRpb25zQ291bnQkKCk6IE9ic2VydmFibGU8U2NJTm90aWZpY2F0aW9uc0NvdW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFNjSU5vdGlmaWNhdGlvbnNDb3VudD4oYCR7dGhpcy51cmxzLmFwaVVybH0vdXNlci9ub3RpZmljYXRpb25zL2NvdW50YCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNC10YIg0LfQsNC/0YDQvtGBINC90LAg0YPQtNCw0LvQtdC90LjQtSDQstGB0LXRhSDRg9Cy0LXQtNC+0LzQu9C10L3QuNC5LlxuICAgICAqL1xuICAgIHB1YmxpYyBkZWxldGVBbGxOb3RpZmljYXRpb25zJCgpOiBPYnNlcnZhYmxlPHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTx1bmRlZmluZWQ+KGAke3RoaXMudXJscy5hcGlVcmx9L3VzZXIvbm90aWZpY2F0aW9uc2ApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0L7Qt9C00LDQtdGCINC30LDQv9GA0L7RgSDQvdCwINC/0YDQvtGH0YLQtdC90LjQtSDQstGB0LXRhSDRg9Cy0LXQtNC+0LzQu9C10L3QuNC5LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkQWxsTm90aWZpY2F0aW9ucyQoKTogT2JzZXJ2YWJsZTx1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDx1bmRlZmluZWQ+KGAke3RoaXMudXJscy5hcGlVcmx9L3VzZXIvbm90aWZpY2F0aW9uc2AsIHt9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0LXRgiDQt9Cw0L/RgNC+0YEg0L3QsCDRg9C00LDQu9C10L3QuNC1INGD0LLQtdC00L7QvNC70LXQvdC40Y8g0L/QviDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNGDLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5vdGlmaWNhdGlvbklkINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGD0LLQtdC00L7QvNC70LXQvdC40Y8sINC60L7RgtC+0YDQvtC1INC90LXQvtCx0YXQvtC00LjQvNC+INGD0LTQsNC70LjRgtGMLlxuICAgICAqL1xuICAgIHB1YmxpYyBkZWxldGVOb3RpZmljYXRpb25CeUlkJChub3RpZmljYXRpb25JZDogbnVtYmVyKTogT2JzZXJ2YWJsZTx1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8dW5kZWZpbmVkPihgJHt0aGlzLnVybHMuYXBpVXJsfS91c2VyL25vdGlmaWNhdGlvbnMvJHtub3RpZmljYXRpb25JZH1gKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0LXRgiDQt9Cw0L/RgNC+0YEg0L3QsCDQv9GA0L7Rh9GC0LXQvdC40LUg0YPQstC10LTQvtC80LvQtdC90LjRjyDQv9C+INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0YMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbm90aWZpY2F0aW9uSWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0YPQstC10LTQvtC80LvQtdC90LjRjywg0LrQvtGC0L7RgNC+0LUg0L3QtdC+0LHRhdC+0LTQuNC80L4g0L/QvtC80LXRgtC40YLRjCDQv9GA0L7Rh9C40YLQsNC90L3Ri9C8LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkTm90aWZpY2F0aW9uQnlJZCQobm90aWZpY2F0aW9uSWQ6IG51bWJlcik6IE9ic2VydmFibGU8dW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucGF0Y2g8dW5kZWZpbmVkPihgJHt0aGlzLnVybHMuYXBpVXJsfS91c2VyL25vdGlmaWNhdGlvbnMvJHtub3RpZmljYXRpb25JZH1gLCB7fSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC60L7Qu9C40YfQtdGB0YLQstCwINGD0LLQtdC00L7QvNC70LXQvdC40Lkg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXROb3RpZmljYXRpb25zQ291bnRDaGFuZ2UkKCk6IE9ic2VydmFibGU8U2NJTm90aWZpY2F0aW9uc0NvdW50IHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5vdGlmaWNhdGlvbnNDb3VudCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INGB0L/QuNGB0LrQsCDRg9Cy0LXQtNC+0LzQu9C10L3QuNC5INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Tm90aWZpY2F0aW9uc0NoYW5nZSQoKTogT2JzZXJ2YWJsZTxTY0lVc2VyTm90aWZpY2F0aW9uW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubm90aWZpY2F0aW9ucyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC60L7Qu9C40YfQtdGB0YLQstCwINGD0LLQtdC00L7QvNC70LXQvdC40Lkg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5vdGlmaWNhdGlvbnNDb3VudCDQlNCw0L3QvdGL0LUg0L4g0LrQvtC70LjRh9C10YHRgtCy0LUg0YPQstC10LTQvtC80LvQtdC90LjQuS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldE5vdGlmaWNhdGlvbnNDb3VudENoYW5nZShub3RpZmljYXRpb25zQ291bnQ6IFNjSU5vdGlmaWNhdGlvbnNDb3VudCB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnNDb3VudCQubmV4dChub3RpZmljYXRpb25zQ291bnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgdC/0LjRgdC60LAg0YPQstC10LTQvtC80LvQtdC90LjQuSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbm90aWZpY2F0aW9ucyDQlNCw0L3QvdGL0LUg0L4g0YHQv9C40YHQutC1INGD0LLQtdC00L7QvNC70LXQvdC40LkuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXROb3RpZmljYXRpb25zQ2hhbmdlKG5vdGlmaWNhdGlvbnM6IFNjSVVzZXJOb3RpZmljYXRpb25bXSk6IHZvaWQge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMkLm5leHQobm90aWZpY2F0aW9ucyk7XG4gICAgfVxufVxuIl19
|