@stigg/node-server-sdk 1.9.0 → 1.10.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/dist/api/entitlements/entitlementsApi.d.ts +1 -1
- package/dist/api/entitlements/entitlementsApi.js +5 -5
- package/dist/api/managementApi.d.ts +2 -1
- package/dist/api/managementApi.js +10 -1
- package/dist/client.d.ts +9 -1
- package/dist/client.js +33 -6
- package/dist/models.d.ts +4 -0
- package/dist/models.js +1 -1
- package/dist/services/EdgeApiClient.d.ts +1 -1
- package/dist/services/EdgeApiClient.js +4 -3
- package/dist/services/cache/cacheService.d.ts +2 -2
- package/dist/services/cache/inMemoryCacheService.d.ts +2 -2
- package/dist/services/cache/inMemoryCacheService.js +11 -9
- package/dist/services/cache/redisCacheService.d.ts +3 -3
- package/dist/services/cache/redisCacheService.js +16 -21
- package/dist/services/entitlementsService.d.ts +1 -1
- package/dist/services/entitlementsService.js +24 -26
- package/dist/services/inMemoryEntitlementsService.js +2 -2
- package/dist/services/redisEntitlementsService.js +7 -9
- package/dist/utils/CacheMapper.js +8 -6
- package/dist/utils/ModelMapper.d.ts +3 -2
- package/dist/utils/ModelMapper.js +4 -1
- package/dist/utils/apiErrorHandling.d.ts +1 -0
- package/dist/utils/apiErrorHandling.js +1 -1
- package/dist/utils/cacheKeysHelpers.d.ts +2 -6
- package/dist/utils/cacheKeysHelpers.js +10 -29
- package/package.json +2 -2
|
@@ -30,8 +30,8 @@ class RedisCacheService {
|
|
|
30
30
|
await this.updateKey(timestamp, entitlementUsageKey, usageValue);
|
|
31
31
|
return true;
|
|
32
32
|
}
|
|
33
|
-
async setCustomer(environmentPrefix, customerId, customerEntitlements, entitlementsTimestamp, featureIdToUsageTimestamp) {
|
|
34
|
-
const entitlementsDbKey = (0, cacheKeysHelpers_1.buildCustomerKey)(environmentPrefix, customerId);
|
|
33
|
+
async setCustomer(environmentPrefix, customerId, customerEntitlements, resourceId, entitlementsTimestamp, featureIdToUsageTimestamp) {
|
|
34
|
+
const entitlementsDbKey = (0, cacheKeysHelpers_1.buildCustomerKey)(environmentPrefix, customerId, resourceId);
|
|
35
35
|
const customerEntitlementsAsObject = Object.fromEntries(customerEntitlements);
|
|
36
36
|
await this.redlock.using([`${environmentPrefix}-${customerId}`], LOCK_DURATION, async () => {
|
|
37
37
|
await this.updateKey(new Date(entitlementsTimestamp), entitlementsDbKey, customerEntitlementsAsObject);
|
|
@@ -50,7 +50,7 @@ class RedisCacheService {
|
|
|
50
50
|
throw new Error(`Customer ${customerId} has an entitlement without feature data`);
|
|
51
51
|
}
|
|
52
52
|
const featureId = feature.id;
|
|
53
|
-
const featureUsageTimestamp = featureIdToUsageTimestamp.get(
|
|
53
|
+
const featureUsageTimestamp = featureIdToUsageTimestamp.get(featureId);
|
|
54
54
|
if (featureUsageTimestamp) {
|
|
55
55
|
return this.updateFeatureUsage({
|
|
56
56
|
featureId,
|
|
@@ -84,8 +84,8 @@ class RedisCacheService {
|
|
|
84
84
|
.forEach((result) => console.log(`Failed to update feature usage result: ${result.reason}`));
|
|
85
85
|
});
|
|
86
86
|
}
|
|
87
|
-
async getCustomerEntitlements(environmentPrefix, customerId) {
|
|
88
|
-
const customerKey = (0, cacheKeysHelpers_1.buildCustomerKey)(environmentPrefix, customerId);
|
|
87
|
+
async getCustomerEntitlements(environmentPrefix, customerId, resourceId) {
|
|
88
|
+
const customerKey = (0, cacheKeysHelpers_1.buildCustomerKey)(environmentPrefix, customerId, resourceId);
|
|
89
89
|
const entitlements = await this.redisClient.get(customerKey);
|
|
90
90
|
if (entitlements === null || (0, lodash_1.isEmpty)(entitlements)) {
|
|
91
91
|
return null;
|
|
@@ -93,24 +93,19 @@ class RedisCacheService {
|
|
|
93
93
|
this.loggerService.debug(`Found entitlements in persisted cache for customer`, { customerId });
|
|
94
94
|
return new Map(Object.entries(JSON.parse(entitlements)));
|
|
95
95
|
}
|
|
96
|
-
async getCustomerEntitlementsWithUsage(environmentPrefix, customerId) {
|
|
97
|
-
const cachedEntitlements = await this.getCustomerEntitlements(environmentPrefix, customerId);
|
|
96
|
+
async getCustomerEntitlementsWithUsage(environmentPrefix, customerId, resourceId) {
|
|
97
|
+
const cachedEntitlements = await this.getCustomerEntitlements(environmentPrefix, customerId, resourceId);
|
|
98
98
|
if (cachedEntitlements === null) {
|
|
99
99
|
return null;
|
|
100
100
|
}
|
|
101
|
-
const
|
|
101
|
+
const meteredFeatureIds = Array.from(cachedEntitlements === null || cachedEntitlements === void 0 ? void 0 : cachedEntitlements.values())
|
|
102
102
|
.filter((entitlement) => {
|
|
103
103
|
var _a, _b;
|
|
104
104
|
return ((_a = entitlement.calculatedEntitlement.feature) === null || _a === void 0 ? void 0 : _a.meterType) &&
|
|
105
105
|
((_b = entitlement.calculatedEntitlement.feature) === null || _b === void 0 ? void 0 : _b.meterType) !== sdk_1.MeterType.None;
|
|
106
106
|
})
|
|
107
|
-
.map((entitlement) =>
|
|
108
|
-
|
|
109
|
-
featureId: entitlement.calculatedEntitlement.feature.id,
|
|
110
|
-
resourceId: entitlement.calculatedEntitlement.resourceId,
|
|
111
|
-
};
|
|
112
|
-
});
|
|
113
|
-
const featuresUsageByFeatureKey = await this.getFeaturesUsage(this.environmentPrefix, customerId, meteredEntitlementsKeys);
|
|
107
|
+
.map((entitlement) => entitlement.calculatedEntitlement.feature.id);
|
|
108
|
+
const featuresUsageByFeatureKey = await this.getFeaturesUsage(this.environmentPrefix, customerId, resourceId, meteredFeatureIds);
|
|
114
109
|
featuresUsageByFeatureKey.forEach((usageValue, featureKey) => {
|
|
115
110
|
const cachedEntitlement = cachedEntitlements.get(featureKey);
|
|
116
111
|
if (cachedEntitlement) {
|
|
@@ -129,18 +124,18 @@ class RedisCacheService {
|
|
|
129
124
|
async getFeatureUsage(environmentPrefix, customerId, featureId, resourceId) {
|
|
130
125
|
return this.redisClient.get((0, cacheKeysHelpers_1.buildUsageKey)(environmentPrefix, customerId, featureId, resourceId));
|
|
131
126
|
}
|
|
132
|
-
async getFeaturesUsage(environmentPrefix, customerId,
|
|
133
|
-
const keysToFetch =
|
|
127
|
+
async getFeaturesUsage(environmentPrefix, customerId, resourceId, meteredFeatureIds) {
|
|
128
|
+
const keysToFetch = meteredFeatureIds.map((featureId) => (0, cacheKeysHelpers_1.buildUsageKey)(environmentPrefix, customerId, featureId, resourceId));
|
|
134
129
|
const usageValues = await this.redisClient.mget(keysToFetch);
|
|
135
130
|
const featureIdToFeatureUsage = new Map();
|
|
136
131
|
// Redis guarantees returning values in the same order of the keys so this is legit!
|
|
137
|
-
|
|
132
|
+
meteredFeatureIds.forEach((featureId, index) => {
|
|
138
133
|
const featureUsageValue = usageValues[index];
|
|
139
134
|
if (featureUsageValue === null) {
|
|
140
|
-
this.loggerService.log(`Failed to find usage for metered feature: ${
|
|
135
|
+
this.loggerService.log(`Failed to find usage for metered feature: ${featureId}`);
|
|
141
136
|
return;
|
|
142
137
|
}
|
|
143
|
-
featureIdToFeatureUsage.set(
|
|
138
|
+
featureIdToFeatureUsage.set(featureId, JSON.parse(featureUsageValue));
|
|
144
139
|
});
|
|
145
140
|
return featureIdToFeatureUsage;
|
|
146
141
|
}
|
|
@@ -171,4 +166,4 @@ class RedisCacheService {
|
|
|
171
166
|
}
|
|
172
167
|
}
|
|
173
168
|
exports.RedisCacheService = RedisCacheService;
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXNDYWNoZVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvY2FjaGUvcmVkaXNDYWNoZVNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsc0RBQTRCO0FBQzVCLG1DQUFpQztBQUNqQyxnRUFBbUU7QUFFbkUsc0RBQThCO0FBRTlCLG1FQUErRTtBQUUvRSxNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQztBQUNyQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUM7QUFDM0IsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFFMUMsTUFBYSxpQkFBaUI7SUFLNUIsWUFBWSxPQUEwQixFQUFtQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUNuRixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksaUJBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksaUJBQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUM7UUFDbkQsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxJQUFJLGdCQUFnQixDQUFDO1FBRTNDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsa0NBQWtDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3RyxDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsVUFBVSxFQUNWLFNB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
|
|
@@ -41,7 +41,7 @@ export declare abstract class EntitlementsService {
|
|
|
41
41
|
customerExists: boolean;
|
|
42
42
|
entitlement: CachedEntitlement | null;
|
|
43
43
|
}>;
|
|
44
|
-
refetchEntitlements(customerRefId: string, skipEdge?: boolean): Promise<{
|
|
44
|
+
refetchEntitlements(customerRefId: string, resourceId: string | undefined, skipEdge?: boolean): Promise<{
|
|
45
45
|
entitlements: Map<string, CachedEntitlement> | null;
|
|
46
46
|
customerExists: boolean;
|
|
47
47
|
}>;
|
|
@@ -11,7 +11,6 @@ const ModelMapper_1 = require("../utils/ModelMapper");
|
|
|
11
11
|
const entitlementDecisionService_1 = require("./entitlementDecisionService");
|
|
12
12
|
const lodash_1 = require("lodash");
|
|
13
13
|
const dateUtils_1 = require("../utils/dateUtils");
|
|
14
|
-
const cacheKeysHelpers_1 = require("../utils/cacheKeysHelpers");
|
|
15
14
|
const CacheMapper_1 = __importDefault(require("../utils/CacheMapper"));
|
|
16
15
|
class EntitlementsService {
|
|
17
16
|
constructor(client, loggerService, batchedGraphqlClient, edgeApiClient, cacheService, environmentPrefix) {
|
|
@@ -30,9 +29,8 @@ class EntitlementsService {
|
|
|
30
29
|
const shouldTrack = (options === null || options === void 0 ? void 0 : options.shouldTrack) || false;
|
|
31
30
|
let { entitlement, customerExists } = await this.tryGetCacheCustomerAndEntitlement(featureRefId, customerRefId, resourceId);
|
|
32
31
|
if (!entitlement) {
|
|
33
|
-
const refetchResult = await this.refetchEntitlements(customerRefId);
|
|
34
|
-
|
|
35
|
-
entitlement = ((_a = refetchResult.entitlements) === null || _a === void 0 ? void 0 : _a.get(key)) || null;
|
|
32
|
+
const refetchResult = await this.refetchEntitlements(customerRefId, resourceId);
|
|
33
|
+
entitlement = ((_a = refetchResult.entitlements) === null || _a === void 0 ? void 0 : _a.get(featureRefId)) || null;
|
|
36
34
|
customerExists = refetchResult.customerExists;
|
|
37
35
|
}
|
|
38
36
|
const decision = entitlementDecisionService_1.EntitlementDecisionService.decideEntitlementPolicy(customerExists, entitlement);
|
|
@@ -57,9 +55,8 @@ class EntitlementsService {
|
|
|
57
55
|
const shouldTrack = (options === null || options === void 0 ? void 0 : options.shouldTrack) || false;
|
|
58
56
|
let { entitlement, customerExists } = await this.tryGetCacheCustomerAndEntitlement(featureRefId, customerRefId, resourceId);
|
|
59
57
|
if (!entitlement) {
|
|
60
|
-
const refetchResult = await this.refetchEntitlements(customerRefId);
|
|
61
|
-
|
|
62
|
-
entitlement = ((_a = refetchResult.entitlements) === null || _a === void 0 ? void 0 : _a.get(key)) || null;
|
|
58
|
+
const refetchResult = await this.refetchEntitlements(customerRefId, resourceId);
|
|
59
|
+
entitlement = ((_a = refetchResult.entitlements) === null || _a === void 0 ? void 0 : _a.get(featureRefId)) || null;
|
|
63
60
|
customerExists = refetchResult.customerExists;
|
|
64
61
|
}
|
|
65
62
|
const decision = entitlementDecisionService_1.EntitlementDecisionService.decideEntitlementPolicy(customerExists, entitlement);
|
|
@@ -85,9 +82,8 @@ class EntitlementsService {
|
|
|
85
82
|
const requestUsage = options === null || options === void 0 ? void 0 : options.requestedUsage;
|
|
86
83
|
let { entitlement, customerExists } = await this.tryGetCacheCustomerAndEntitlement(featureRefId, customerRefId, resourceId);
|
|
87
84
|
if (!entitlement) {
|
|
88
|
-
const refetchResult = await this.refetchEntitlements(customerRefId);
|
|
89
|
-
|
|
90
|
-
entitlement = ((_a = refetchResult.entitlements) === null || _a === void 0 ? void 0 : _a.get(key)) || null;
|
|
85
|
+
const refetchResult = await this.refetchEntitlements(customerRefId, resourceId);
|
|
86
|
+
entitlement = ((_a = refetchResult.entitlements) === null || _a === void 0 ? void 0 : _a.get(featureRefId)) || null;
|
|
91
87
|
customerExists = refetchResult.customerExists;
|
|
92
88
|
}
|
|
93
89
|
const decision = entitlementDecisionService_1.EntitlementDecisionService.decideEntitlementPolicy(customerExists, entitlement, requestUsage);
|
|
@@ -112,13 +108,13 @@ class EntitlementsService {
|
|
|
112
108
|
return this.getCustomerEntitlements(customerRefId, resourceId);
|
|
113
109
|
}
|
|
114
110
|
async getCustomerEntitlements(customerRefId, resourceId) {
|
|
115
|
-
const entitlements = await this.cacheService.getCustomerEntitlements(this.environmentPrefix, customerRefId);
|
|
111
|
+
const entitlements = await this.cacheService.getCustomerEntitlements(this.environmentPrefix, customerRefId, resourceId);
|
|
116
112
|
if (!entitlements) {
|
|
117
|
-
await this.refetchEntitlements(customerRefId);
|
|
113
|
+
await this.refetchEntitlements(customerRefId, resourceId);
|
|
118
114
|
// TODO: currently there is no good way to find out if the customer exists or not
|
|
119
115
|
}
|
|
120
|
-
const cachedEntitlements = (await this.cacheService.getCustomerEntitlements(this.environmentPrefix, customerRefId)) || new Map();
|
|
121
|
-
return (
|
|
116
|
+
const cachedEntitlements = (await this.cacheService.getCustomerEntitlements(this.environmentPrefix, customerRefId, resourceId)) || new Map();
|
|
117
|
+
return Array.from(cachedEntitlements.values()).map((value) => {
|
|
122
118
|
const decision = entitlementDecisionService_1.EntitlementDecisionService.decideEntitlementPolicy(true, value);
|
|
123
119
|
return this.modelMapper.mapEntitlement(value, decision);
|
|
124
120
|
});
|
|
@@ -127,20 +123,19 @@ class EntitlementsService {
|
|
|
127
123
|
return this.entitlementsApi.createUsageMeasurement(input);
|
|
128
124
|
}
|
|
129
125
|
async tryGetCacheCustomerAndEntitlement(featureRefId, customerRefId, resourceId) {
|
|
130
|
-
const customer = await this.cacheService.getCustomerEntitlements(this.environmentPrefix, customerRefId);
|
|
126
|
+
const customer = await this.cacheService.getCustomerEntitlements(this.environmentPrefix, customerRefId, resourceId);
|
|
131
127
|
if (!customer) {
|
|
132
128
|
return { customerExists: false, entitlement: null };
|
|
133
129
|
}
|
|
134
|
-
const
|
|
135
|
-
const entitlement = customer.get(key) || null;
|
|
130
|
+
const entitlement = customer.get(featureRefId) || null;
|
|
136
131
|
return { customerExists: true, entitlement };
|
|
137
132
|
}
|
|
138
|
-
async refetchEntitlements(customerRefId, skipEdge = false) {
|
|
133
|
+
async refetchEntitlements(customerRefId, resourceId, skipEdge = false) {
|
|
139
134
|
var _a;
|
|
140
135
|
let cachedEntitlements = null;
|
|
141
136
|
let customerExists = false;
|
|
142
137
|
this.loggerService.log(`Customer with id: ${customerRefId} not found in cache`, { customerRefId });
|
|
143
|
-
const entitlementsResult = await this.entitlementsApi.getEntitlements(customerRefId, skipEdge);
|
|
138
|
+
const entitlementsResult = await this.entitlementsApi.getEntitlements(customerRefId, resourceId, skipEdge);
|
|
144
139
|
const entitlements = entitlementsResult.data.entitlements;
|
|
145
140
|
if (!(0, lodash_1.isEmpty)(entitlements)) {
|
|
146
141
|
const entitlementsUpdatedAt = (_a = entitlements.find((entitlement) => (entitlement === null || entitlement === void 0 ? void 0 : entitlement.entitlementUpdatedAt) && (0, dateUtils_1.isValidDate)(entitlement === null || entitlement === void 0 ? void 0 : entitlement.entitlementUpdatedAt))) === null || _a === void 0 ? void 0 : _a.entitlementUpdatedAt;
|
|
@@ -161,12 +156,15 @@ class EntitlementsService {
|
|
|
161
156
|
entitlement.usageUpdatedAt &&
|
|
162
157
|
(0, dateUtils_1.isValidDate)(entitlement.usageUpdatedAt);
|
|
163
158
|
})
|
|
164
|
-
.map((entitlement) =>
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
159
|
+
.map((entitlement) => {
|
|
160
|
+
var _a;
|
|
161
|
+
return [
|
|
162
|
+
((_a = entitlement.feature) === null || _a === void 0 ? void 0 : _a.refId) || '',
|
|
163
|
+
new Date(entitlement.usageUpdatedAt).getTime(),
|
|
164
|
+
];
|
|
165
|
+
}));
|
|
168
166
|
cachedEntitlements = this.cacheMapper.mapCachedEntitlements(entitlements);
|
|
169
|
-
await this.cacheService.setCustomer(this.environmentPrefix, customerRefId, cachedEntitlements, entitlementsUpdatedAtTimestamp, featureIdToUsageTimestamp);
|
|
167
|
+
await this.cacheService.setCustomer(this.environmentPrefix, customerRefId, cachedEntitlements, resourceId, entitlementsUpdatedAtTimestamp, featureIdToUsageTimestamp);
|
|
170
168
|
customerExists = true;
|
|
171
169
|
}
|
|
172
170
|
return { entitlements: cachedEntitlements, customerExists };
|
|
@@ -178,7 +176,7 @@ class EntitlementsService {
|
|
|
178
176
|
this.entitlementCheckReportingService.reportEntitlementCheckRequested(featureRefId, customerRefId, resourceRefId, result, requestedUsage);
|
|
179
177
|
}
|
|
180
178
|
async updateFeatureUsage({ featureId, currentUsage, customerId, nextResetDate, timestamp, resourceId, }) {
|
|
181
|
-
const cachedCustomer = await this.cacheService.getCustomerEntitlements(this.environmentPrefix, customerId);
|
|
179
|
+
const cachedCustomer = await this.cacheService.getCustomerEntitlements(this.environmentPrefix, customerId, resourceId);
|
|
182
180
|
if (cachedCustomer === null) {
|
|
183
181
|
return;
|
|
184
182
|
}
|
|
@@ -194,4 +192,4 @@ class EntitlementsService {
|
|
|
194
192
|
}
|
|
195
193
|
}
|
|
196
194
|
exports.EntitlementsService = EntitlementsService;
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRsZW1lbnRzU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9lbnRpdGxlbWVudHNTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHlGQUFzRjtBQUN0RiwwRkFBa0U7QUFHbEUsc0NBVW1CO0FBRW5CLHNEQUFtRDtBQUNuRCw2RUFBMEU7QUFHMUUsbUNBQWlDO0FBRWpDLGtEQUFpRDtBQUVqRCxnRUFBd0g7QUFDeEgsdUVBQStDO0FBVy9DLE1BQXNCLG1CQUFtQjtJQU12QyxZQUNVLE1BQTJDLEVBQ2hDLGFBQTRCLEVBQzlCLG9CQUF5RCxFQUMxRSxhQUFtQyxFQUNoQixZQUEwQixFQUMxQixpQkFBeUI7UUFMcEMsV0FBTSxHQUFOLE1BQU0sQ0FBcUM7UUFDaEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDOUIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQztRQUV2RCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQVE7UUFFNUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLHlCQUFXLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUkscUJBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLHlCQUFlLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsZ0NBQWdDLEdBQUcsSUFBSSxtRUFBZ0MsQ0FDMUUsSUFBSSx5QkFBZSxDQUFDLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFDdkUsSUFBSSxDQUFDLGFBQWEsQ0FDbkIsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMscUJBQXFCLENBQ3pCLGFBQXFCLEVBQ3JCLFlBQW9CLEVBQ3BCLG1CQUF1QyxFQUN2QyxVQUFtQixFQUNuQixPQUFtQzs7UUFFbkMsTUFBTSxXQUFXLEdBQUcsQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsV0FBVyxLQUFJLEtBQUssQ0FBQztRQUNsRCxJQUFJLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLGlDQUFpQyxDQUNoRixZQUFZLEVBQ1osYUFBYSxFQUNiLFVBQVUsQ0FDWCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNwRSxNQUFNLEdBQUcsR0FBRyxJQUFBLGdDQUFhLEVBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3BELFdBQVcsR0FBRyxDQUFBLE1BQUEsYUFBYSxDQUFDLFlBQVksMENBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFJLElBQUksQ0FBQztZQUMzRCxjQUFjLEdBQUcsYUFBYSxDQUFDLGNBQWMsQ0FBQztTQUMvQztRQUNELE1BQU0sUUFBUSxHQUFHLHVEQUEwQixDQUFDLHVCQUF1QixDQUFDLGNBQWMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUVqRyxJQUNFLENBQUEsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLHFCQUFxQixDQUFDLE9BQU87WUFDMUMsQ0FBQSxNQUFBLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLDBDQUFFLFdBQVcsTUFBSyxvQkFBVyxDQUFDLE9BQU8sRUFDOUU7WUFDQSxNQUFNLHlCQUF5QixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsbUNBQW1DLENBQ3BGLG1CQUFtQixFQUNuQixRQUFRLENBQ1QsQ0FBQztZQUNGLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUseUJBQXlCLENBQUMsQ0FBQztZQUMvRyxPQUFPLG1CQUFtQixDQUFDO1NBQzVCO1FBRUQsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsYUFBYSxtQkFBbUIsRUFBRSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7WUFDakcsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzFFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztZQUN2Ryx1Q0FBWSxRQUFRLEtBQUUsVUFBVSxFQUFFLEtBQUssSUFBRztTQUMzQztRQUVELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBRXZHLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELEtBQUssQ0FBQyxxQkFBcUIsQ0FDekIsYUFBcUIsRUFDckIsWUFBb0IsRUFDcEIsbUJBQXVDLEVBQ3ZDLFVBQW1CLEVBQ25CLE9BQW1DOztRQUVuQyxNQUFNLFdBQVcsR0FBRyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxXQUFXLEtBQUksS0FBSyxDQUFDO1FBQ2xELElBQUksRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsaUNBQWlDLENBQ2hGLFlBQVksRUFDWixhQUFhLEVBQ2IsVUFBVSxDQUNYLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3BFLE1BQU0sR0FBRyxHQUFHLElBQUEsZ0NBQWEsRUFBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDcEQsV0FBVyxHQUFHLENBQUEsTUFBQSxhQUFhLENBQUMsWUFBWSwwQ0FBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUksSUFBSSxDQUFDO1lBQzNELGNBQWMsR0FBRyxhQUFhLENBQUMsY0FBYyxDQUFDO1NBQy9DO1FBQ0QsTUFBTSxRQUFRLEdBQUcsdURBQTBCLENBQUMsdUJBQXVCLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRWpHLElBQ0UsQ0FBQSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUscUJBQXFCLENBQUMsT0FBTztZQUMxQyxDQUFBLE1BQUEsV0FBVyxDQUFDLHFCQUFxQixDQUFDLE9BQU8sMENBQUUsV0FBVyxNQUFLLG9CQUFXLENBQUMsT0FBTyxFQUM5RTtZQUNBLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQ0FBbUMsQ0FBQyxtQkFBbUIsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUM5RyxJQUFJLENBQUMsd0JBQXdCLENBQUMsV0FBVyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDdkcsT0FBTyxtQkFBbUIsQ0FBQztTQUM1QjtRQUVELElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMscUJBQXFCLGFBQWEsbUJBQW1CLEVBQUUsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBRWpHLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsV0FBVyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFFdkcsdUNBQVksUUFBUSxLQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssSUFBRztTQUMvRDtRQUVELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBRXZHLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELEtBQUssQ0FBQyxxQkFBcUIsQ0FDekIsYUFBcUIsRUFDckIsWUFBb0IsRUFDcEIsbUJBQXVDLEVBQ3ZDLFVBQW1CLEVBQ25CLE9BQW1DOztRQUVuQyxNQUFNLFdBQVcsR0FBRyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxXQUFXLEtBQUksS0FBSyxDQUFDO1FBQ2xELE1BQU0sWUFBWSxHQUFHLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxjQUFjLENBQUM7UUFDN0MsSUFBSSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxpQ0FBaUMsQ0FDaEYsWUFBWSxFQUNaLGFBQWEsRUFDYixVQUFVLENBQ1gsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDcEUsTUFBTSxHQUFHLEdBQUcsSUFBQSxnQ0FBYSxFQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNwRCxXQUFXLEdBQUcsQ0FBQSxNQUFBLGFBQWEsQ0FBQyxZQUFZLDBDQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSSxJQUFJLENBQUM7WUFDM0QsY0FBYyxHQUFHLGFBQWEsQ0FBQyxjQUFjLENBQUM7U0FDL0M7UUFDRCxNQUFNLFFBQVEsR0FBRyx1REFBMEIsQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRS9HLElBQ0UsQ0FBQSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUscUJBQXFCLENBQUMsT0FBTztZQUMxQyxDQUFBLE1BQUEsV0FBVyxDQUFDLHFCQUFxQixDQUFDLE9BQU8sMENBQUUsU0FBUyxNQUFLLGtCQUFTLENBQUMsV0FBVztZQUM5RSxDQUFBLE1BQUEsV0FBVyxDQUFDLHFCQUFxQixDQUFDLE9BQU8sMENBQUUsU0FBUyxNQUFLLGtCQUFTLENBQUMsV0FBVyxFQUM5RTtZQUNBLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQ0FBbUMsQ0FDNUUsbUJBQW1CLEVBQ25CLFFBQVEsRUFDUixZQUFZLENBQ2IsQ0FBQztZQUNGLElBQUksQ0FBQyx3QkFBd0IsQ0FDM0IsV0FBVyxFQUNYLFlBQVksRUFDWixhQUFhLEVBQ2IsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixZQUFZLENBQ2IsQ0FBQztZQUNGLE9BQU8sbUJBQW1CLENBQUM7U0FDNUI7UUFFRCxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLHFCQUFxQixhQUFhLG1CQUFtQixFQUFFLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztZQUVqRyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQztZQUNuRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsV0FBVyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFFdkcsdUNBQ0ssUUFBUSxLQUNYLFlBQVksRUFBRSxDQUFDLEVBQ2YsVUFBVSxFQUFFLEtBQUssRUFDakIsV0FBVyxFQUFFLEtBQUssRUFDbEIsY0FBYyxFQUFFLFlBQVksSUFBSSxDQUFDLElBQ2pDO1NBQ0g7UUFFRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNyRyxJQUFJLENBQUMsd0JBQXdCLENBQzNCLFdBQVcsRUFDWCxZQUFZLEVBQ1osYUFBYSxFQUNiLFVBQVUsRUFDVixpQkFBaUIsRUFDakIsWUFBWSxDQUNiLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsS0FBSyxDQUFDLGdDQUFnQyxDQUFDLGFBQXFCLEVBQUUsVUFBOEI7UUFDMUYsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxLQUFLLENBQUMsdUJBQXVCLENBQUMsYUFBcUIsRUFBRSxVQUE4QjtRQUNqRixNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBRTVHLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDakIsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDOUMsaUZBQWlGO1NBQ2xGO1FBRUQsTUFBTSxrQkFBa0IsR0FDdEIsQ0FBQyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGFBQWEsQ0FBQyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUV4RyxPQUFPLElBQUEsaURBQThCLEVBQUMsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUN2RSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQThCLEVBQUUsRUFBRTtZQUN6QyxNQUFNLFFBQVEsR0FBRyx1REFBMEIsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDakYsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDMUQsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBTUQsc0JBQXNCLENBQUMsS0FBNkI7UUFDbEQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFUyxLQUFLLENBQUMsaUNBQWlDLENBQy9DLFlBQW9CLEVBQ3BCLGFBQXFCLEVBQ3JCLFVBQW1CO1FBRW5CLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFeEcsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUNyRDtRQUVELE1BQU0sR0FBRyxHQUFHLElBQUEsZ0NBQWEsRUFBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDcEQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUM7UUFFOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVELEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxhQUFxQixFQUFFLFFBQVEsR0FBRyxLQUFLOztRQUMvRCxJQUFJLGtCQUFrQixHQUEwQyxJQUFJLENBQUM7UUFDckUsSUFBSSxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLHFCQUFxQixhQUFhLHFCQUFxQixFQUFFLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUNuRyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9GLE1BQU0sWUFBWSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7UUFFMUQsSUFBSSxDQUFDLElBQUEsZ0JBQU8sRUFBQyxZQUFZLENBQUMsRUFBRTtZQUMxQixNQUFNLHFCQUFxQixHQUFHLE1BQUEsWUFBWSxDQUFDLElBQUksQ0FDN0MsQ0FBQyxXQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFBLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxvQkFBb0IsS0FBSSxJQUFBLHVCQUFXLEVBQUMsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLG9CQUFvQixDQUFDLENBQzFHLDBDQUFFLG9CQUFvQixDQUFDO1lBRXhCLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsK0RBQStELEVBQUU7b0JBQ3hGLFVBQVUsRUFBRSxhQUFhO2lCQUMxQixDQUFDLENBQUM7YUFDSjtZQUNELE1BQU0sOEJBQThCLEdBQUcscUJBQXFCO2dCQUMxRCxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxPQUFPLEVBQUU7Z0JBQzNDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBRXpCLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxHQUFHLENBQ3ZDLFlBQVk7aUJBQ1QsTUFBTSxDQUNMLENBQUMsV0FBZ0IsRUFBRSxFQUFFOztnQkFDbkIsT0FBQSxDQUFBLE1BQUEsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLE9BQU8sMENBQUUsU0FBUztvQkFDL0IsQ0FBQSxNQUFBLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxPQUFPLDBDQUFFLFNBQVMsTUFBSyxrQkFBUyxDQUFDLElBQUk7cUJBQ2xELFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxPQUFPLENBQUMsS0FBSyxDQUFBO29CQUMxQixXQUFXLENBQUMsY0FBYztvQkFDMUIsSUFBQSx1QkFBVyxFQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQTthQUFBLENBQzFDO2lCQUNBLEdBQUcsQ0FBQyxDQUFDLFdBQWdCLEVBQUUsRUFBRSxDQUFDO2dCQUN6QixJQUFBLCtDQUE0QixFQUFDLFdBQVcsQ0FBQztnQkFDekMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWUsQ0FBQyxDQUFDLE9BQU8sRUFBRTthQUNoRCxDQUFDLENBQ0wsQ0FBQztZQUVGLGtCQUFrQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDMUUsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FDakMsSUFBSSxDQUFDLGlCQUFpQixFQUN0QixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLDhCQUE4QixFQUM5Qix5QkFBeUIsQ0FDMUIsQ0FBQztZQUVGLGNBQWMsR0FBRyxJQUFJLENBQUM7U0FDdkI7UUFFRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxDQUFDO0lBQzlELENBQUM7SUFFUyx3QkFBd0IsQ0FDaEMsV0FBb0IsRUFDcEIsWUFBb0IsRUFDcEIsYUFBcUIsRUFDckIsYUFBaUMsRUFDakMsTUFBOEIsRUFDOUIsY0FBdUI7UUFFdkIsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsZ0NBQWdDLENBQUMsK0JBQStCLENBQ25FLFlBQVksRUFDWixhQUFhLEVBQ2IsYUFBYSxFQUNiLE1BQU0sRUFDTixjQUFjLENBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsa0JBQWtCLENBQUMsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsYUFBYSxFQUNiLFNBQVMsRUFDVCxVQUFVLEdBQ2dCO1FBQzFCLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDM0csSUFBSSxjQUFjLEtBQUssSUFBSSxFQUFFO1lBQzNCLE9BQU87U0FDUjtRQUVELE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQztZQUN6QyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCO1lBQ3pDLFVBQVU7WUFDVixTQUFTO1lBQ1QsWUFBWTtZQUNaLFNBQVM7WUFDVCxVQUFVO1lBQ1YsYUFBYTtTQUNkLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXhVRCxrREF3VUMifQ==
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRsZW1lbnRzU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9lbnRpdGxlbWVudHNTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHlGQUFzRjtBQUN0RiwwRkFBa0U7QUFHbEUsc0NBVW1CO0FBRW5CLHNEQUFtRDtBQUNuRCw2RUFBMEU7QUFHMUUsbUNBQWlDO0FBRWpDLGtEQUFpRDtBQUdqRCx1RUFBK0M7QUFXL0MsTUFBc0IsbUJBQW1CO0lBTXZDLFlBQ1UsTUFBMkMsRUFDaEMsYUFBNEIsRUFDOUIsb0JBQXlELEVBQzFFLGFBQW1DLEVBQ2hCLFlBQTBCLEVBQzFCLGlCQUF5QjtRQUxwQyxXQUFNLEdBQU4sTUFBTSxDQUFxQztRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM5Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFDO1FBRXZELGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtRQUU1QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUkseUJBQVcsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxxQkFBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUkseUJBQWUsQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxnQ0FBZ0MsR0FBRyxJQUFJLG1FQUFnQyxDQUMxRSxJQUFJLHlCQUFlLENBQUMsb0JBQW9CLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxFQUN2RSxJQUFJLENBQUMsYUFBYSxDQUNuQixDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxxQkFBcUIsQ0FDekIsYUFBcUIsRUFDckIsWUFBb0IsRUFDcEIsbUJBQXVDLEVBQ3ZDLFVBQW1CLEVBQ25CLE9BQW1D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
|
|
@@ -23,7 +23,7 @@ class InMemoryEntitlementsService extends entitlementsService_1.EntitlementsServ
|
|
|
23
23
|
entitlements: entitlementsUpdated.entitlements,
|
|
24
24
|
});
|
|
25
25
|
const entitlements = this.cacheMapper.mapCachedEntitlements(entitlementsUpdated.entitlements);
|
|
26
|
-
this.cacheService.setCustomer(this.environmentPrefix, entitlementsUpdated.customerId, entitlements);
|
|
26
|
+
this.cacheService.setCustomer(this.environmentPrefix, entitlementsUpdated.customerId, entitlements, entitlementsUpdated.resourceId || undefined);
|
|
27
27
|
this.eventEmitter.emit('entitlementsUpdated', entitlementsUpdated);
|
|
28
28
|
};
|
|
29
29
|
this.onUsageUpdated = (result) => {
|
|
@@ -88,4 +88,4 @@ class InMemoryEntitlementsService extends entitlementsService_1.EntitlementsServ
|
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
exports.InMemoryEntitlementsService = InMemoryEntitlementsService;
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5NZW1vcnlFbnRpdGxlbWVudHNTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL2luTWVtb3J5RW50aXRsZW1lbnRzU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSwrREFBNEQ7QUFLNUQsTUFBTSw4QkFBOEIsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBRWhELE1BQWEsMkJBQTRCLFNBQVEseUNBQW1CO0lBSWxFLFlBQ3FCLFlBQWtDLEVBQ3JELE1BQTJDLEVBQzNDLG9CQUF5RCxFQUN4QyxZQUErQixFQUNoRCxhQUE0QixFQUM1QixhQUFtQztRQUVuQyxLQUFLLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBUGpFLGlCQUFZLEdBQVosWUFBWSxDQUFzQjtRQUdwQyxpQkFBWSxHQUFaLFlBQVksQ0FBbUI7UUFQMUMsNkJBQXdCLEdBQWtDLElBQUksQ0FBQztRQUMvRCxzQkFBaUIsR0FBa0MsSUFBSSxDQUFDO1FBa0R4RCwwQkFBcUIsR0FBRyxDQUFDLE1BQW9ELEVBQUUsRUFBRTtZQUN2RixJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO2dCQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyx3REFBd0QsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFO29CQUNoRyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO2lCQUN0QyxDQUFDLENBQUM7Z0JBQ0gsT0FBTzthQUNSO1lBRUQsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1lBRTVELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLHFDQUFxQyxFQUFFO2dCQUM5RCxVQUFVLEVBQUUsbUJBQW1C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
|
|
@@ -5,7 +5,6 @@ const entitlementsService_1 = require("./entitlementsService");
|
|
|
5
5
|
const models_1 = require("../models");
|
|
6
6
|
const entitlementDecisionService_1 = require("./entitlementDecisionService");
|
|
7
7
|
const lodash_1 = require("lodash");
|
|
8
|
-
const cacheKeysHelpers_1 = require("../utils/cacheKeysHelpers");
|
|
9
8
|
class RedisEntitlementsService extends entitlementsService_1.EntitlementsService {
|
|
10
9
|
constructor(environmentPrefix, cacheService, graphqlClient, loggerService, batchedGraphClient, edgeApiClient) {
|
|
11
10
|
super(graphqlClient, loggerService, batchedGraphClient, edgeApiClient, cacheService, environmentPrefix);
|
|
@@ -20,9 +19,8 @@ class RedisEntitlementsService extends entitlementsService_1.EntitlementsService
|
|
|
20
19
|
const requestUsage = options === null || options === void 0 ? void 0 : options.requestedUsage;
|
|
21
20
|
let { entitlement, customerExists } = await this.tryGetCacheCustomerAndEntitlement(featureRefId, customerRefId, resourceId);
|
|
22
21
|
if (!entitlement) {
|
|
23
|
-
const refetchResult = await this.refetchEntitlements(customerRefId);
|
|
24
|
-
|
|
25
|
-
entitlement = ((_a = refetchResult.entitlements) === null || _a === void 0 ? void 0 : _a.get(key)) || null;
|
|
22
|
+
const refetchResult = await this.refetchEntitlements(customerRefId, resourceId);
|
|
23
|
+
entitlement = ((_a = refetchResult.entitlements) === null || _a === void 0 ? void 0 : _a.get(featureRefId)) || null;
|
|
26
24
|
customerExists = refetchResult.customerExists;
|
|
27
25
|
}
|
|
28
26
|
if (!(0, lodash_1.isEmpty)(entitlement)) {
|
|
@@ -59,15 +57,15 @@ class RedisEntitlementsService extends entitlementsService_1.EntitlementsService
|
|
|
59
57
|
return this.modelMapper.mapMeteredEntitlement(entitlement, decision, requestUsage);
|
|
60
58
|
}
|
|
61
59
|
async getCustomerEntitlementsWithUsage(customerRefId, resourceId) {
|
|
62
|
-
let cachedEntitlements = await this.cacheService.getCustomerEntitlementsWithUsage(this.environmentPrefix, customerRefId);
|
|
60
|
+
let cachedEntitlements = await this.cacheService.getCustomerEntitlementsWithUsage(this.environmentPrefix, customerRefId, resourceId);
|
|
63
61
|
if (cachedEntitlements === null) {
|
|
64
|
-
await this.refetchEntitlements(customerRefId);
|
|
65
|
-
cachedEntitlements = await this.cacheService.getCustomerEntitlementsWithUsage(this.environmentPrefix, customerRefId);
|
|
62
|
+
await this.refetchEntitlements(customerRefId, resourceId);
|
|
63
|
+
cachedEntitlements = await this.cacheService.getCustomerEntitlementsWithUsage(this.environmentPrefix, customerRefId, resourceId);
|
|
66
64
|
if (cachedEntitlements === null) {
|
|
67
65
|
return [];
|
|
68
66
|
}
|
|
69
67
|
}
|
|
70
|
-
return (
|
|
68
|
+
return Array.from(cachedEntitlements.values()).map((entitlement) => {
|
|
71
69
|
const decision = entitlementDecisionService_1.EntitlementDecisionService.decideEntitlementPolicy(true, entitlement);
|
|
72
70
|
return this.modelMapper.mapEntitlement(entitlement, decision);
|
|
73
71
|
});
|
|
@@ -86,4 +84,4 @@ class RedisEntitlementsService extends entitlementsService_1.EntitlementsService
|
|
|
86
84
|
}
|
|
87
85
|
}
|
|
88
86
|
exports.RedisEntitlementsService = RedisEntitlementsService;
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXNFbnRpdGxlbWVudHNTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL3JlZGlzRW50aXRsZW1lbnRzU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrREFBNEQ7QUFJNUQsc0NBQXFGO0FBQ3JGLDZFQUEwRTtBQUMxRSxtQ0FBaUM7QUFHakMsTUFBYSx3QkFBeUIsU0FBUSx5Q0FBbUI7SUFDL0QsWUFDRSxpQkFBeUIsRUFDTixZQUErQixFQUMvQixhQUFrRCxFQUNsRCxhQUE0QixFQUM1QixrQkFBdUQsRUFDMUUsYUFBbUM7UUFFbkMsS0FBSyxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBTnJGLGlCQUFZLEdBQVosWUFBWSxDQUFtQjtRQUMvQixrQkFBYSxHQUFiLGFBQWEsQ0FBcUM7UUFDbEQsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFxQztJQUk1RSxDQUFDO0lBRUQsS0FBSyxDQUFDLHFCQUFxQixDQUN6QixhQUFxQixFQUNyQixZQUFvQixFQUNwQixtQkFBdUMsRUFDdkMsVUFBbUIsRUFDbkIsT0FBbUM7O1FBRW5DLE1BQU0sV0FBVyxHQUFHLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFdBQVcsS0FBSSxLQUFLLENBQUM7UUFDbEQsTUFBTSxZQUFZLEdBQUcsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLGNBQWMsQ0FBQztRQUM3QyxJQUFJLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLGlDQUFpQyxDQUNoRixZQUFZLEVBQ1osYUFBYSxFQUNiLFVBQVUsQ0FDWCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixNQUFNLGFBQWEsR0FBRyxNQUFN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
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const cacheKeysHelpers_1 = require("./cacheKeysHelpers");
|
|
4
3
|
class CacheMapper {
|
|
5
4
|
constructor(modelMapper) {
|
|
6
5
|
this.modelMapper = modelMapper;
|
|
@@ -35,11 +34,14 @@ class CacheMapper {
|
|
|
35
34
|
};
|
|
36
35
|
}
|
|
37
36
|
mapCachedEntitlements(updatedEntitlements) {
|
|
38
|
-
return new Map(updatedEntitlements.map((entitlement) =>
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
return new Map(updatedEntitlements.map((entitlement) => {
|
|
38
|
+
var _a;
|
|
39
|
+
return [
|
|
40
|
+
((_a = entitlement.feature) === null || _a === void 0 ? void 0 : _a.refId) || '',
|
|
41
|
+
this.mapCachedEntitlement(entitlement),
|
|
42
|
+
];
|
|
43
|
+
}));
|
|
42
44
|
}
|
|
43
45
|
}
|
|
44
46
|
exports.default = CacheMapper;
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FjaGVNYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvQ2FjaGVNYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxNQUFxQixXQUFXO0lBQzlCLFlBQTZCLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQUcsQ0FBQztJQUV6RCxvQkFBb0IsQ0FBQyxXQUFnQzs7UUFDbkQsSUFBSSxPQUFPLEdBQUcsU0FBUyxDQUFDO1FBQ3hCLElBQUksV0FBVyxDQUFDLE9BQU8sRUFBRTtZQUN2QixPQUFPLEdBQUc7Z0JBQ1IsRUFBRSxFQUFFLE1BQUEsV0FBVyxDQUFDLE9BQU8sMENBQUUsS0FBSztnQkFDOUIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO2dCQUM3RSxTQUFTLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksU0FBUztnQkFDckQsS0FBSyxFQUFFLFdBQVcsQ0FBQyxPQUFPLENBQUMsWUFBWSxJQUFJLEVBQUU7Z0JBQzdDLFdBQVcsRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLGtCQUFrQixJQUFJLEVBQUU7YUFDMUQsQ0FBQztTQUNIO1FBQ0QsT0FBTztZQUNMLHFCQUFxQixFQUFFO2dCQUNyQixPQUFPO2dCQUNQLFVBQVUsRUFBRSxXQUFXLENBQUMsVUFBVSxJQUFJLFNBQVM7Z0JBQy9DLFVBQVUsRUFBRSxXQUFXLENBQUMsVUFBVTtnQkFDbEMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLGlCQUFpQjthQUNqRDtZQUNELFlBQVksRUFBRTtnQkFDWixXQUFXLEVBQUUsV0FBVyxDQUFDLFdBQVc7b0JBQ2xDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLHlCQUF5QixDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUM7b0JBQ3JFLENBQUMsQ0FBQyxTQUFTO2dCQUNiLHdCQUF3QixFQUFFLFdBQVcsQ0FBQyx3QkFBd0I7Z0JBQzlELFlBQVksRUFBRSxXQUFXLENBQUMsWUFBWSxJQUFJLENBQUM7Z0JBQzNDLGFBQWEsRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVM7YUFDckc7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELHFCQUFxQixDQUFDLG1CQUEwQztRQUM5RCxPQUFPLElBQUksR0FBRyxDQUNaLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFOztZQUFDLE9BQUE7Z0JBQ3ZDLENBQUEsTUFBQSxXQUFXLENBQUMsT0FBTywwQ0FBRSxLQUFLLEtBQUksRUFBRTtnQkFDaEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQzthQUN2QyxDQUFBO1NBQUEsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF4Q0QsOEJBd0NDIn0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { CustomerFragment, EntitlementCheckResult, EntitlementResetPeriod as ApiEntitlementResetPeriod, FeatureType as ApiFeatureType, GetCouponsQuery, GetPaywallQuery, GetProductsQuery, InitiateCheckoutMutation, ProvisionCustomerMutation, ProvisionSubscriptionMutation, ReportUsageMutation, SlimCustomerFragment, SlimSubscriptionFragment, SubscriptionPreviewFragment } from '@stigg/api-client-js/src/generated/sdk';
|
|
2
|
-
import { BooleanEntitlement, BooleanEntitlementFallback, Checkout, Coupon, Entitlement, EntitlementResetPeriod, FeatureType, FullCustomer, MeteredEntitlement, MeteredEntitlementFallback, Money, NumericEntitlement, NumericEntitlementFallback, Plan, Product, ProvisionedCustomer, ProvisionSubscriptionResult, ReportUsageAck, SlimCustomer, Subscription, SubscriptionPreview, SubscriptionPreviewDiscount, Paywall } from '../models';
|
|
1
|
+
import { CustomerFragment, EntitlementCheckResult, EntitlementResetPeriod as ApiEntitlementResetPeriod, FeatureType as ApiFeatureType, GetCouponsQuery, GetPaywallQuery, GetProductsQuery, InitiateCheckoutMutation, ProvisionCustomerMutation, ProvisionSubscriptionMutation, ReportUsageMutation, SlimCustomerFragment, SlimSubscriptionFragment, SubscriptionFragment, SubscriptionPreviewFragment } from '@stigg/api-client-js/src/generated/sdk';
|
|
2
|
+
import { BooleanEntitlement, BooleanEntitlementFallback, Checkout, Coupon, Entitlement, EntitlementResetPeriod, FeatureType, FullCustomer, FullSubscription, MeteredEntitlement, MeteredEntitlementFallback, Money, NumericEntitlement, NumericEntitlementFallback, Plan, Product, ProvisionedCustomer, ProvisionSubscriptionResult, ReportUsageAck, SlimCustomer, Subscription, SubscriptionPreview, SubscriptionPreviewDiscount, Paywall } from '../models';
|
|
3
3
|
import { Decision } from '../services/entitlementDecisionService';
|
|
4
4
|
import CachedEntitlement from '../services/cache/cachedEntitlement';
|
|
5
5
|
declare class ModelMapper {
|
|
@@ -28,6 +28,7 @@ declare class ModelMapper {
|
|
|
28
28
|
mapProducts(resultData: GetProductsQuery): Product[];
|
|
29
29
|
private mapCompatibleAddons;
|
|
30
30
|
private mapPackageEntitlement;
|
|
31
|
+
mapFullSubscriptions(subscriptions: SubscriptionFragment[]): FullSubscription[];
|
|
31
32
|
private mapFullSubscription;
|
|
32
33
|
private mapTotalPrice;
|
|
33
34
|
private mapAddon;
|
|
@@ -323,6 +323,9 @@ class ModelMapper {
|
|
|
323
323
|
displayNameOverride: entitlement.displayNameOverride,
|
|
324
324
|
};
|
|
325
325
|
}
|
|
326
|
+
mapFullSubscriptions(subscriptions) {
|
|
327
|
+
return subscriptions.map((subscription) => this.mapFullSubscription(subscription));
|
|
328
|
+
}
|
|
326
329
|
mapFullSubscription(subscription) {
|
|
327
330
|
var _a, _b;
|
|
328
331
|
const { totalPrice } = subscription;
|
|
@@ -485,4 +488,4 @@ class ModelMapper {
|
|
|
485
488
|
}
|
|
486
489
|
}
|
|
487
490
|
exports.ModelMapper = ModelMapper;
|
|
488
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxNYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvTW9kZWxNYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsZ0VBNkJnRDtBQUNoRCxzQ0FvQ21CO0FBR25CLG1DQUF5QztBQUV6QyxNQUFNLFdBQVc7SUFBakI7UUFtS0UsbUJBQWMsR0FBRyxDQUFDLFdBQTJCLEVBQWUsRUFBRTtZQUM1RCxRQUFRLFdBQVcsRUFBRTtnQkFDbkIsS0FBSyxpQkFBYyxDQUFDLE9BQU87b0JBQ3pCLE9BQU8sb0JBQVcsQ0FBQyxPQUFPLENBQUM7Z0JBQzdCLEtBQUssaUJBQWMsQ0FBQyxNQUFNO29CQUN4QixPQUFPLG9CQUFXLENBQUMsT0FBTyxDQUFDO2FBQzlCO1FBQ0gsQ0FBQyxDQUFDO1FBRUYsb0JBQWUsR0FBRyxDQUFDLFFBQThCLEVBQWdCLEVBQUU7WUFDakUsT0FBTztnQkFDTCxFQUFFLEVBQUUsUUFBUSxDQUFDLEtBQUs7Z0JBQ2xCLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxJQUFJLFNBQVM7Z0JBQ2hDLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSyxJQUFJLFNBQVM7Z0JBQ2xDLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUyxJQUFJLFNBQVM7Z0JBQzFDLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO2dCQUN2QyxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztnQkFDdkMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxrQkFBa0I7YUFDdEMsQ0FBQztRQUNKLENBQUMsQ0FBQztRQUVGLDJCQUFzQixHQUFHLENBQUMsd0JBQW1ELEVBQXVCLEVBQUU7WUFDcEcsTUFBTSxRQUFRLEdBQWlCLElBQUksQ0FBQyxlQUFlLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFekcsTUFBTSxZQUFZLEdBQTZC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
|
|
491
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxNYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvTW9kZWxNYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsZ0VBNkJnRDtBQUNoRCxzQ0FvQ21CO0FBR25CLG1DQUF5QztBQUV6QyxNQUFNLFdBQVc7SUFBakI7UUFtS0UsbUJBQWMsR0FBRyxDQUFDLFdBQTJCLEVBQWUsRUFBRTtZQUM1RCxRQUFRLFdBQVcsRUFBRTtnQkFDbkIsS0FBSyxpQkFBYyxDQUFDLE9BQU87b0JBQ3pCLE9BQU8sb0JBQVcsQ0FBQyxPQUFPLENBQUM7Z0JBQzdCLEtBQUssaUJBQWMsQ0FBQyxNQUFNO29CQUN4QixPQUFPLG9CQUFXLENBQUMsT0FBTyxDQUFDO2FBQzlCO1FBQ0gsQ0FBQyxDQUFDO1FBRUYsb0JBQWUsR0FBRyxDQUFDLFFBQThCLEVBQWdCLEVBQUU7WUFDakUsT0FBTztnQkFDTCxFQUFFLEVBQUUsUUFBUSxDQUFDLEtBQUs7Z0JBQ2xCLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxJQUFJLFNBQVM7Z0JBQ2hDLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSyxJQUFJLFNBQVM7Z0JBQ2xDLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUyxJQUFJLFNBQVM7Z0JBQzFDLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO2dCQUN2QyxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztnQkFDdkMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxrQkFBa0I7YUFDdEMsQ0FBQztRQUNKLENBQUMsQ0FBQztRQUVGLDJCQUFzQixHQUFHLENBQUMsd0JBQW1ELEVBQXVCLEVBQUU7WUFDcEcsTUFBTSxRQUFRLEdBQWlCLElBQUksQ0FBQyxlQUFlLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFekcsTUFBTSxZQUFZLEdBQTZCLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLFlBQVk7Z0JBQ3BHLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDO2dCQUNuRixDQUFDLENBQUMsU0FBUyxDQUFDO1lBRWQsT0FBTztnQkFDTCxRQUFRO2dCQUNSLDRCQUE0QixFQUFFLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLDRCQUE0QjtnQkFDckcsWUFBWTthQUNiLENBQUM7UUFDSixDQUFDLENBQUM7UUFFRixxQ0FBZ0MsR0FBRyxDQUNqQyxrQ0FBaUUsRUFDcEMsRUFBRTtZQUMvQixNQUFNLEVBQ0oscUJBQXFCLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUM3RCxHQUFHLGtDQUFrQyxDQUFDO1lBRXZDLE9BQU87Z0JBQ0wsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUMvRSxXQUFXLEVBQUUsV0FBVztnQkFDeEIsZUFBZSxFQUNiLE1BQU0sS0FBSyxpQ0FBOEIsQ0FBQyxlQUFlO29CQUN2RCxDQUFDLENBQUMsb0NBQTJCLENBQUMsZUFBZTtvQkFDN0MsQ0FBQyxDQUFDLG9DQUEyQixDQUFDLE9BQU87YUFDMUMsQ0FBQztRQUNKLENBQUMsQ0FBQztRQUVGLHdCQUFtQixHQUFHLENBQUMsZ0JBQTBDLEVBQWdCLEVBQUU7O1lBQ2pGLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1lBQ2xELE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQztZQUN4QyxPQUFPO2dCQUNMLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO2dCQUMxQixVQUFVLEVBQUUsQ0FBQSxNQUFBLGdCQUFnQixDQUFDLFFBQVEsMENBQUUsVUFBVSxLQUFJLFNBQVM7Z0JBQzlELE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSztnQkFDbkMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLE1BQU07Z0JBQy9CLE1BQU0sRUFBRSxDQUFBLE1BQUEsZ0JBQWdCLENBQUMsTUFBTSwwQ0FBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEtBQUksRUFBRTtnQkFDakgsUUFBUSxFQUFFLENBQUEsTUFBQSxnQkFBZ0IsQ0FBQyxNQUFNLDBDQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSSxFQUFFO2dCQUN4RSxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUs7Z0JBQzNDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxrQkFBa0I7Z0JBQzdDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTLElBQUksU0FBUztnQkFDbEQsY0FBYyxFQUFFLGdCQUFnQixDQUFDLGNBQWMsSUFBSSxTQUFTO2dCQUM1RCxLQUFLLEVBQ0gsU0FBUyxJQUFJLFVBQVUsSUFBSSxTQUFTLENBQUMsS0FBSztvQkFDeEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDLFVBQVUsQ0FBQztvQkFDdkUsQ0FBQyxDQUFDLElBQUk7Z0JBQ1YsV0FBVyxFQUFFLGdCQUFnQixDQUFDLFdBQVc7Z0JBQ3pDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ2pFLGNBQWMsRUFBRSxJQUFBLGFBQUksRUFBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsWUFBWSxDQUFDO2FBQ3BFLENBQUM7UUFDSixDQUFDLENBQUM7UUFFRixnQkFBVyxHQUFHLENBQUMsUUFBc0QsRUFBWSxFQUFFO1lBQ2pGLE9BQU87Z0JBQ0wsV0FBVyxFQUFFLFFBQVEsQ0FBQyxXQUFXO2dCQUNqQyxpQkFBaUIsRUFBRSxRQUFRLENBQUMsaUJBQWlCO2FBQzlDLENBQUM7UUFDSixDQUFDLENBQUM7UUFFRixvQkFBZSxHQUFHLENBQUMsUUFBMEIsRUFBZ0IsRUFBRTs7WUFDN0QsT0FBTyxJQUFJLHNCQUFhLGlDQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxLQUNqQyxpQkFBaUIsRUFDZixDQUFBLE1BQUEsUUFBUSxDQUFDLFlBQVksMENBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQy9CLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLFNBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLFlBQWEsRUFBRSxDQUFDO2dCQUM5RCxDQUFDLENBQUMsS0FBSSxFQUFFLEVBQ1YsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixFQUMzQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEVBQ3RELGFBQWEsRUFBRSxJQUFBLFlBQUcsRUFBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDOUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQ3JFLHVCQUF1QixFQUFFLElBQUEsWUFBRyxFQUFDLFFBQVEsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3hHLGNBQWMsRUFBRSxJQUFBLGFBQUksRUFBQyxRQUFRLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQyxJQUMzRCxDQUFDO1FBQ0wsQ0FBQyxDQUFDO0lBb1ZKLENBQUM7SUF2bEJDLGNBQWMsQ0FBQyxXQUE4QixFQUFFLFFBQWtCLEVBQUUsY0FBdUI7UUFDeEYsTUFBTSxFQUFFLHFCQUFxQixFQUFFLEdBQUcsV0FBVyxDQUFDO1FBQzlDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUU7WUFDbEMsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQzFEO1FBQ0QsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxxQkFBcUIsQ0FBQyxPQUFPLENBQUM7UUFDakUsTUFBTSxTQUFTLEdBQ2IsV0FBVyxLQUFLLG9CQUFXLENBQUMsT0FBTztZQUNuQyxDQUFDLFNBQVMsS0FBSyxrQkFBUyxDQUFDLFdBQVcsSUFBSSxTQUFTLEtBQUssa0JBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUvRSxRQUFRLFdBQVcsRUFBRTtZQUNuQixLQUFLLG9CQUFXLENBQUMsT0FBTztnQkFDdEIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzNELEtBQUssb0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDeEIsT0FBTyxTQUFTO29CQUNkLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxjQUFjLENBQUM7b0JBQ25FLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2FBQ3ZEO1NBQ0Y7SUFDSCxDQUFDO0lBRUQscUJBQXFCLENBQUMsV0FBOEIsRUFBRSxRQUFrQjtRQUN0RSxPQUFPO1lBQ0wsVUFBVSxFQUFFLEtBQUs7WUFDakIsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTO1lBQzdCLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxrQkFBa0I7WUFDL0MsT0FBTyxFQUFFLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPO2dCQUNoRCxDQUFDLGlDQUNNLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLEtBQzVDLFNBQVMsRUFBRSxLQUFLLElBRXBCLENBQUMsQ0FBQyxTQUFTO1NBQ2QsQ0FBQztJQUNKLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxXQUE4QixFQUFFLFFBQWtCO1FBQ3RFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsR0FBRyxXQUFXLENBQUMscUJBQXFCLENBQUM7UUFDNUUsT0FBTztZQUNMLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUztZQUM3QixrQkFBa0IsRUFBRSxRQUFRLENBQUMsa0JBQWtCO1lBQy9DLFdBQVcsRUFBRSxpQkFBaUI7WUFDOUIsS0FBSyxFQUFFLFVBQVUsSUFBSSxTQUFTO1lBQzlCLE9BQU8sRUFBRSxXQUFXLENBQUMscUJBQXFCLENBQUMsT0FBTztnQkFDaEQsQ0FBQyxpQ0FDTSxXQUFXLENBQUMscUJBQXFCLENBQUMsT0FBTyxLQUM1QyxTQUFTLEVBQUUsS0FBSyxJQUVwQixDQUFDLENBQUMsU0FBUztTQUNkLENBQUM7SUFDSixDQUFDO0lBRUQscUJBQXFCLENBQ25CLFdBQThCLEVBQzlCLFFBQWtCLEVBQ2xCLGNBQXVCO1FBRXZCLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsR0FBRyxXQUFXLENBQUMscUJBQXFCLENBQUM7UUFDNUUsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUM7UUFFbEQsT0FBTztZQUNMLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUztZQUM3QixrQkFBa0IsRUFBRSxRQUFRLENBQUMsa0JBQWtCO1lBQy9DLFdBQVcsRUFBRSxpQkFBaUI7WUFDOUIsVUFBVSxFQUFFLFVBQVUsSUFBSSxTQUFTO1lBQ25DLFlBQVksRUFBRSxZQUFZO1lBQzFCLGNBQWMsRUFBRSxjQUFjLElBQUksQ0FBQztZQUNuQyxPQUFPLEVBQUUsV0FBVyxDQUFDLHFCQUFxQixDQUFDLE9BQU87Z0JBQ2hELENBQUMsaUNBQ00sV0FBVyxDQUFDLHFCQUFxQixDQUFDLE9BQU8sS0FDNUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLFNBQVMsRUFDM0UsU0FBUyxFQUFFLElBQUksSUFFbkIsQ0FBQyxDQUFDLFNBQVM7U0FDZCxDQUFDO0lBQ0osQ0FBQztJQUVPLHFCQUFxQixDQUFDLGtCQUFzQztRQUNsRSxRQUFRLGtCQUFrQixFQUFFO1lBQzFCLEtBQUssMkJBQWtCLENBQUMsa0JBQWtCO2dCQUN4QyxPQUFPLHdCQUFxQixDQUFDLE9BQU8sQ0FBQztZQUN2QyxLQUFLLDJCQUFrQixDQUFDLGdCQUFnQjtnQkFDdEMsT0FBTyx3QkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQztZQUNoRCxLQUFLLDJCQUFrQixDQUFDLGVBQWU7Z0JBQ3JDLE9BQU8sd0JBQXFCLENBQUMsZUFBZSxDQUFDO1lBQy9DLEtBQUssMkJBQWtCLENBQUMscUJBQXFCO2dCQUMzQyxPQUFPLHdCQUFxQixDQUFDLG9CQUFvQixDQUFDO1lBQ3BELEtBQUssMkJBQWtCLENBQUMsNkJBQTZCO2dCQUNuRCxPQUFPLHdCQUFxQixDQUFDLGtDQUFrQyxDQUFDO1lBQ2xFLEtBQUssMkJBQWtCLENBQUMsMEJBQTBCO2dCQUNoRCxPQUFPLHdCQUFxQixDQUFDLDRCQUE0QixDQUFDO1lBQzVELEtBQUssMkJBQWtCLENBQUMsT0FBTztnQkFDN0IsT0FBTyx3QkFBcUIsQ0FBQyxPQUFPLENBQUM7U0FDeEM7SUFDSCxDQUFDO0lBRUQsbUNBQW1DLENBQ2pDLFdBQXVDLEVBQ3ZDLFFBQWtCO1FBRWxCLE9BQU87WUFDTCxTQUFTLEVBQUUsV0FBVyxDQUFDLFNBQVM7WUFDaEMsa0JBQWtCLEVBQUUsUUFBUSxDQUFDLGtCQUFrQjtnQkFDN0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUM7Z0JBQ3pELENBQUMsQ0FBQyxTQUFTO1NBQ2QsQ0FBQztJQUNKLENBQUM7SUFFRCxtQ0FBbUMsQ0FDakMsV0FBdUMsRUFDdkMsUUFBa0I7UUFFbEIsT0FBTztZQUNMLFNBQVMsRUFBRSxXQUFXLENBQUMsU0FBUztZQUNoQyxrQkFBa0IsRUFBRSxRQUFRLENBQUMsa0JBQWtCO2dCQUM3QyxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQztnQkFDekQsQ0FBQyxDQUFDLFNBQVM7WUFDYixVQUFVLEVBQUUsV0FBVyxDQUFDLEtBQUs7WUFDN0IsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLFdBQVc7U0FDM0MsQ0FBQztJQUNKLENBQUM7SUFFRCxvQkFBb0IsQ0FDbEIsUUFBa0IsRUFDbEIsV0FBK0IsRUFDL0IsY0FBdUI7UUFFdkIsT0FBTztZQUNMLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUztZQUM3QixrQkFBa0IsRUFBRSxRQUFRLENBQUMsa0JBQWtCO2dCQUM3QyxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQztnQkFDekQsQ0FBQyxDQUFDLFNBQVM7WUFDYixpQkFBaUIsRUFBRSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUscUJBQXFCLENBQUMsaUJBQWlCO1lBQ3ZFLFVBQVUsRUFBRSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUscUJBQXFCLENBQUMsVUFBVTtZQUN6RCxZQUFZLEVBQUUsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLFlBQVksQ0FBQyxZQUFZO1lBQ3BELGNBQWM7WUFDZCxhQUFhLEVBQUUsQ0FBQSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsWUFBWSxDQUFDLGFBQWE7Z0JBQ3BELENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFdBQVcsRUFBRTtnQkFDakUsQ0FBQyxDQUFDLFNBQVM7WUFDYixXQUFXLEVBQUUsQ0FBQSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsWUFBWSxDQUFDLFdBQVc7Z0JBQ2hELENBQUMsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7Z0JBQ3pFLENBQUMsQ0FBQyxTQUFTO1NBQ2QsQ0FBQztJQUNKLENBQUM7SUFFRCxtQ0FBbUMsQ0FDakMsV0FBdUMsRUFDdkMsUUFBa0IsRUFDbEIsY0FBdUI7UUFFdkIsT0FBTztZQUNMLFNBQVMsRUFBRSxXQUFXLENBQUMsU0FBUztZQUNoQyxrQkFBa0IsRUFBRSxRQUFRLENBQUMsa0JBQWtCO2dCQUM3QyxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQztnQkFDekQsQ0FBQyxDQUFDLFNBQVM7WUFDYixpQkFBaUIsRUFBRSxXQUFXLENBQUMsV0FBVztZQUMxQyxVQUFVLEVBQUUsV0FBVyxDQUFDLFVBQVU7WUFDbEMsY0FBYztTQUNmLENBQUM7SUFDSixDQUFDO0lBcUdELFVBQVUsQ0FBQyxVQUEyQjtRQUNwQyxPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxRQUEwQjtRQUNsRCxNQUFNLEVBQUUsNEJBQTRCLEVBQUUsNkJBQTZCLEVBQUUsK0JBQStCLEVBQUUsR0FBRyxRQUFRLENBQUM7UUFDbEgsSUFDRSxJQUFBLGFBQUksRUFDRixDQUFDLCtCQUErQixFQUFFLDZCQUE2QixFQUFFLDRCQUE0QixDQUFDLEVBQzlGLENBQUMsQ0FBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUMxQixFQUNEO1lBQ0EsT0FBTztnQkFDTCxlQUFlLEVBQUUsNkJBQTZCO2dCQUM5QyxjQUFjLEVBQUUsNEJBQTRCO2dCQUM1QyxXQUFXLEVBQUUsK0JBQStCO2FBQzdDLENBQUM7U0FDSDtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTyxTQUFTLENBQUMsTUFBc0I7UUFDdEMsT0FBTztZQUNMLEVBQUUsRUFBRSxNQUFNLENBQUMsS0FBSztZQUNoQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7WUFDakIsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1lBQy9CLFFBQVEsRUFBRSxNQUFNLENBQUMsa0JBQWtCO1lBQ25DLGFBQWEsRUFBRSxNQUFNLENBQUMsYUFBYTtTQUNwQyxDQUFDO0lBQ0osQ0FBQztJQUVPLFFBQVEsQ0FBQyxPQUFzQixFQUFFLFVBQTBCO1FBQ2pFLE1BQU0sRUFDSixPQUFPLEVBQ1AsS0FBSyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osYUFBYSxFQUNiLGVBQWUsRUFDZixlQUFlLEVBQ2Ysa0JBQWtCLEdBQ25CLEdBQUcsT0FBTyxDQUFDO1FBQ1osTUFBTSxXQUFXLEdBQVU7WUFDekIsWUFBWSxFQUFFLFlBQVk7WUFDMUIsYUFBYTtZQUNiLFNBQVM7WUFDVCxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07WUFDcEIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLGVBQWU7WUFDZixlQUFlO1lBQ2Ysa0JBQWtCO1NBQ25CLENBQUM7UUFDRixJQUFJLE9BQU8sRUFBRTtZQUNYLFdBQVcsQ0FBQyxPQUFPLEdBQUc7Z0JBQ3BCLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztnQkFDaEMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO2dCQUNoQyxLQUFLLEVBQUUsT0FBTyxDQUFDLFlBQVk7Z0JBQzNCLFdBQVcsRUFBRSxPQUFPLENBQUMsa0JBQWtCO2dCQUN2QyxZQUFZLEVBQUUsVUFBVTthQUN6QixDQUFDO1NBQ0g7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU8sT0FBTyxDQUFDLElBQXdDLEVBQUUsS0FBSyxHQUFHLENBQUM7UUFDakUsT0FBTztZQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSztZQUNkLEtBQUs7WUFDTCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDekcsWUFBWSxFQUFFLElBQUEsWUFBRyxFQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM5RixxQkFBcUIsRUFBRSxJQUFBLFlBQUcsRUFBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNoSCxXQUFXLEVBQUUsSUFBQSxZQUFHLEVBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5RCxrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1lBQzNDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7WUFDaEQsT0FBTyxFQUFFO2dCQUNQLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUs7Z0JBQ3RCLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVc7Z0JBQ3JDLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVc7Z0JBQ3JDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQjtnQkFDekMsYUFBYSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLGFBQWE7b0JBQ3ZELENBQUMsQ0FBQzt3QkFDRSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEtBQUs7d0JBQ3BELFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsV0FBVztxQkFDcEU7b0JBQ0gsQ0FBQyxDQUFDLFNBQVM7YUFDZDtZQUNELFFBQVEsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1NBQ2xDLENBQUM7SUFDSixDQUFDO0lBRU8sVUFBVSxDQUFDLE9BQXdCO1FBQ3pDLE9BQU87WUFDTCxFQUFFLEVBQUUsT0FBTyxDQUFDLEtBQUs7WUFDakIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO1lBQ2hDLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztZQUNoQyxRQUFRLEVBQUUsT0FBTyxDQUFDLGtCQUFrQjtZQUNwQyxhQUFhLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxhQUFhO2dCQUNsRCxDQUFDLENBQUM7b0JBQ0UsRUFBRSxFQUFFLE9BQU8sQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEtBQUs7b0JBQy9DLFdBQVcsRUFBRSxPQUFPLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxXQUFXO2lCQUMvRDtnQkFDSCxDQUFDLENBQUMsU0FBUztTQUNkLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVyxDQUFDLFVBQTRCO1FBQ3RDLE9BQU8sVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDN0csQ0FBQztJQUVPLG1CQUFtQixDQUFDLElBQTREO1FBQ3RGLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxpQkFBVyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUNuRSxPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsTUFBTSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLE1BQU0sd0JBQXdCLEdBQzVCLElBQUksQ0FBQyxXQUFXLEtBQUssaUJBQVcsQ0FBQyxJQUFJO1lBQ25DLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLEtBQUssaUJBQVcsQ0FBQyxJQUFJLENBQUM7WUFDNUUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDO1FBQ3ZCLE9BQU8sd0JBQXdCLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVPLHFCQUFxQixDQUFDLFdBQXVDO1FBQ25FLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxXQUFXLENBQUM7UUFDaEMsT0FBTztZQUNMLFVBQVUsRUFBRSxXQUFXLENBQUMsVUFBVSxJQUFJLENBQUM7WUFDdkMsT0FBTyxFQUFFO2dCQUNQLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSztnQkFDakIsV0FBVyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztnQkFDckQsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXLElBQUksRUFBRTtnQkFDdEMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLElBQUksU0FBUztnQkFDekMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxZQUFZLElBQUksU0FBUztnQkFDeEMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxrQkFBa0IsSUFBSSxTQUFTO2dCQUNwRCxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7Z0JBQ2hDLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxLQUFLLGtCQUFTLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssa0JBQVMsQ0FBQyxXQUFXO2dCQUNyRyxRQUFRLEVBQUUsT0FBTyxDQUFDLGtCQUFrQjthQUNyQztZQUNELGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxpQkFBaUI7WUFDaEQsV0FBVyxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDMUcsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLGlCQUFpQjtZQUNoRCxtQkFBbUIsRUFBRSxXQUFXLENBQUMsbUJBQW1CO1NBQ3JELENBQUM7SUFDSixDQUFDO0lBRUQsb0JBQW9CLENBQUMsYUFBcUM7UUFDeEQsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRU8sbUJBQW1CLENBQUMsWUFBa0M7O1FBQzVELE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxZQUFZLENBQUM7UUFDcEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQzlDLE9BQU87WUFDTCxFQUFFLEVBQUUsWUFBWSxDQUFDLEtBQUs7WUFDdEIsVUFBVSxFQUFFLENBQUEsTUFBQSxZQUFZLENBQUMsUUFBUSwwQ0FBRSxVQUFVLEtBQUksU0FBUztZQUMxRCxNQUFNLEVBQUUsWUFBWSxDQUFDLE1BQU07WUFDM0IsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztZQUNyQyxLQUFLLEVBQ0gsU0FBUyxJQUFJLFVBQVUsSUFBSSxTQUFTLENBQUMsS0FBSztnQkFDeEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDLFVBQVUsQ0FBQztnQkFDdkUsQ0FBQyxDQUFDLElBQUk7WUFDVixXQUFXLEVBQUUsWUFBWSxDQUFDLFdBQVc7WUFDckMsTUFBTSxFQUNKLENBQUEsTUFBQSxZQUFZLENBQUMsTUFBTSwwQ0FBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDakQsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQzthQUM1QixDQUFDLENBQUMsS0FBSSxFQUFFO1lBQ1gsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBRTtZQUNoRCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1lBQzNDLFlBQVksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUM7WUFDckQsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUM7WUFDN0QsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsdUJBQXVCLENBQUM7WUFDM0UsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUM7WUFDN0QsUUFBUSxFQUFFLFlBQVksQ0FBQyxrQkFBa0I7WUFDekMsU0FBUyxFQUFFLFlBQVksQ0FBQyxTQUFTLElBQUksU0FBUztZQUM5QyxjQUFjLEVBQUUsWUFBWSxDQUFDLGNBQWMsSUFBSSxTQUFTO1lBQ3hELGNBQWMsRUFBRSxJQUFBLGFBQUksRUFBQyxZQUFZLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQztTQUNoRSxDQUFDO0lBQ0osQ0FBQztJQUVPLGFBQWEsQ0FDbkIsT0FBc0IsRUFDdEIsVUFBOEIsRUFDOUIsVUFBMEI7UUFFMUIsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUNoRSxNQUFNLFdBQVcsR0FBc0I7WUFDckMsWUFBWSxFQUFFLFlBQVk7WUFDMUIsYUFBYTtZQUNiLE1BQU0sRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU07WUFDL0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTTtZQUN2QyxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7U0FDekIsQ0FBQztRQUNGLElBQUksT0FBTyxFQUFFO1lBQ1gsV0FBVyxDQUFDLE9BQU8sR0FBRztnQkFDcEIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO2dCQUNoQyxLQUFLLEVBQUUsT0FBTyxDQUFDLFlBQVk7Z0JBQzNCLFdBQVcsRUFBRSxPQUFPLENBQUMsa0JBQWtCO2dCQUN2QyxZQUFZLEVBQUUsVUFBVTthQUN6QixDQUFDO1NBQ0g7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU8sUUFBUSxDQUFDLEtBQW9CO1FBQ25DLE9BQU87WUFDTCxFQUFFLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDZixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1lBQzFCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxJQUFJLEVBQUU7WUFDcEMsWUFBWSxFQUFFLElBQUEsWUFBRyxFQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzRSxRQUFRLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjtTQUNuQyxDQUFDO0lBQ0osQ0FBQztJQUVPLHlCQUF5QixDQUFDLFdBQTJDO1FBQzNFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxXQUFXLENBQUM7UUFDaEMsT0FBTztZQUNMLE1BQU0sRUFBRSxXQUFXLENBQUMsTUFBTTtZQUMxQixVQUFVLEVBQUUsV0FBVyxDQUFDLFVBQVUsSUFBSSxDQUFDO1lBQ3ZDLE9BQU8sRUFBRTtnQkFDUCxFQUFFLEVBQUUsT0FBTyxDQUFDLEtBQUs7Z0JBQ2pCLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztnQkFDaEMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXLElBQUksRUFBRTtnQkFDdEMsV0FBVyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztnQkFDckQsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLElBQUksU0FBUztnQkFDekMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxZQUFZLElBQUksU0FBUztnQkFDeEMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxrQkFBa0IsSUFBSSxTQUFTO2dCQUNwRCxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVMsS0FBSyxrQkFBUyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsU0FBUyxLQUFLLGtCQUFTLENBQUMsV0FBVztnQkFDckcsUUFBUSxFQUFFLE9BQU8sQ0FBQyxrQkFBa0I7YUFDckM7WUFDRCxpQkFBaUIsRUFBRSxXQUFXLENBQUMsaUJBQWlCO1lBQ2hELFNBQVMsRUFBRSxXQUFXLENBQUMsT0FBTztZQUM5QixpQkFBaUIsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU87WUFDeEMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxTQUFTO1NBQ2pDLENBQUM7SUFDSixDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBeUI7UUFDekMsT0FBTztZQUNMLGFBQWEsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRTtTQUM5QyxDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVUsQ0FBQyxVQUEyQjtRQUNwQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sYUFBYSxHQUFHLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQ3hELElBQUksUUFBUSxHQUFvQixJQUFJLENBQUM7UUFDckMsSUFBSSxVQUFVLGFBQVYsVUFBVSx1QkFBVixVQUFVLENBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUNoQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLGFBQVYsVUFBVSx1QkFBVixVQUFVLENBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQy9EO1FBRUQsT0FBTztZQUNMLEtBQUssRUFBRSxXQUFXO1lBQ2xCLGFBQWE7WUFDYixRQUFRO1lBQ1IsUUFBUSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUTtTQUN0QyxDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVEsQ0FBQyxVQUEyQjs7UUFDbEMsTUFBTSxLQUFLLEdBQUcsQ0FBQSxNQUFBLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxPQUFPLDBDQUFFLEtBQUssS0FBSSxFQUFFLENBQUM7UUFDL0MsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsc0JBQXNCLENBQUMsUUFBcUM7UUFDMUQsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxRQUFRLENBQUM7UUFDakUscUNBQ0UsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUNwQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQ3ZDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQy9FLGtCQUFrQixFQUFFO2dCQUNsQixLQUFLLEVBQUUsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztnQkFDaEYsR0FBRyxFQUFFLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7YUFDM0UsRUFDRCxTQUFTLEVBQUUsU0FBUztnQkFDbEIsQ0FBQyxDQUFDO29CQUNFLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7b0JBQ3ZDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7b0JBQ3JDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7b0JBQzdDLGFBQWEsRUFBRSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDO2lCQUNqRDtnQkFDSCxDQUFDLENBQUMsU0FBUyxFQUNiLFlBQVksRUFBRSxZQUFZO2dCQUN4QixDQUFDLENBQUM7b0JBQ0UsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztvQkFDeEMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztpQkFDL0M7Z0JBQ0gsQ0FBQyxDQUFDLFNBQVMsSUFDYjtJQUNKLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBOEQ7UUFDeEUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsUUFBUSxDQUFDO1FBQ2pFLHVCQUFTLElBQUksRUFBRSxLQUFLLEVBQUUsWUFBWSxJQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUc7SUFDMUYsQ0FBQztJQUVELFFBQVEsQ0FBQyxRQUE4QztRQUNyRCxPQUFPO1lBQ0wsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNO1lBQ3ZCLFFBQVEsRUFBRSxRQUFRLENBQUMsUUFBUTtTQUM1QixDQUFDO0lBQ0osQ0FBQztJQUVPLDRCQUE0QixDQUFDLFdBQW1DO1FBQ3RFLFFBQVEsV0FBVyxFQUFFO1lBQ25CLEtBQUssK0JBQXNCLENBQUMsS0FBSztnQkFDL0IsT0FBTyw0QkFBeUIsQ0FBQyxHQUFHLENBQUM7WUFDdkMsS0FBSywrQkFBc0IsQ0FBQyxNQUFNO2dCQUNoQyxPQUFPLDRCQUF5QixDQUFDLElBQUksQ0FBQztZQUN4QyxLQUFLLCtCQUFzQixDQUFDLE1BQU07Z0JBQ2hDLE9BQU8sNEJBQXlCLENBQUMsSUFBSSxDQUFDO1lBQ3hDLEtBQUssK0JBQXNCLENBQUMsT0FBTztnQkFDakMsT0FBTyw0QkFBeUIsQ0FBQyxLQUFLLENBQUM7U0FDMUM7SUFDSCxDQUFDO0lBRUQseUJBQXlCLENBQUMsV0FBc0M7UUFDOUQsUUFBUSxXQUFXLEVBQUU7WUFDbkIsS0FBSyw0QkFBeUIsQ0FBQyxHQUFHO2dCQUNoQyxPQUFPLCtCQUFzQixDQUFDLEtBQUssQ0FBQztZQUN0QyxLQUFLLDRCQUF5QixDQUFDLElBQUk7Z0JBQ2pDLE9BQU8sK0JBQXNCLENBQUMsTUFBTSxDQUFDO1lBQ3ZDLEtBQUssNEJBQXlCLENBQUMsSUFBSTtnQkFDakMsT0FBTywrQkFBc0IsQ0FBQyxNQUFNLENBQUM7WUFDdkMsS0FBSyw0QkFBeUIsQ0FBQyxLQUFLO2dCQUNsQyxPQUFPLCtCQUFzQixDQUFDLE9BQU8sQ0FBQztTQUN6QztJQUNILENBQUM7SUFFTyxPQUFPLENBQUMsSUFBb0I7UUFDbEMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDM0MsQ0FBQztDQUNGO0FBRVEsa0NBQVcifQ==
|
|
@@ -3,6 +3,7 @@ import { getConfiguration } from '../configuration';
|
|
|
3
3
|
declare type WithErrorHandlingProps = {
|
|
4
4
|
errorMessagePrefix: string;
|
|
5
5
|
customerId?: string;
|
|
6
|
+
resourceId?: string;
|
|
6
7
|
sdkConfiguration?: ReturnType<typeof getConfiguration>;
|
|
7
8
|
errorReportMetadata?: Record<string, unknown>;
|
|
8
9
|
rethrowError: boolean;
|