@thinkhive/sdk 4.2.2 → 4.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -5
- package/dist/api/calibration.d.ts +19 -4
- package/dist/api/calibration.js +44 -6
- package/dist/api/claims.d.ts +24 -4
- package/dist/api/claims.js +16 -7
- package/dist/api/conversation-eval.d.ts +7 -8
- package/dist/api/conversation-eval.js +30 -17
- package/dist/api/deterministic-graders.d.ts +37 -28
- package/dist/api/deterministic-graders.js +25 -22
- package/dist/api/llm-costs.d.ts +2 -0
- package/dist/api/llm-costs.js +5 -1
- package/dist/api/nondeterminism.d.ts +16 -8
- package/dist/api/nondeterminism.js +43 -11
- package/dist/api/notifications.d.ts +2 -0
- package/dist/api/notifications.js +5 -1
- package/dist/api/quality-metrics.d.ts +11 -0
- package/dist/api/quality-metrics.js +5 -1
- package/dist/api/signals.d.ts +2 -0
- package/dist/api/signals.js +5 -1
- package/dist/core/client.d.ts +1 -1
- package/dist/core/client.js +10 -3
- package/dist/core/config.d.ts +1 -1
- package/dist/core/config.js +2 -2
- package/dist/guardrails.d.ts +2 -0
- package/dist/guardrails.js +5 -1
- package/dist/index.d.ts +15 -0
- package/dist/integrations/customer-context.d.ts +2 -0
- package/dist/integrations/customer-context.js +5 -1
- package/package.json +1 -1
|
@@ -173,19 +173,42 @@ exports.nondeterminism = {
|
|
|
173
173
|
// HELPER FUNCTIONS
|
|
174
174
|
// ============================================================================
|
|
175
175
|
/**
|
|
176
|
-
* Calculate pass@k probability
|
|
176
|
+
* Calculate pass@k probability
|
|
177
|
+
*
|
|
178
|
+
* Supports two calling conventions:
|
|
179
|
+
* - calculatePassAtK(passRate, k) — from pass rate directly
|
|
180
|
+
* - calculatePassAtK(n, c, k) — from n total runs, c correct, sample k
|
|
177
181
|
*
|
|
178
|
-
* @param passRate - Single-run pass rate (0-1)
|
|
179
|
-
* @param k - Number of runs
|
|
180
182
|
* @returns Probability that at least 1 of k runs passes
|
|
181
183
|
*
|
|
182
184
|
* @example
|
|
183
185
|
* ```typescript
|
|
184
|
-
*
|
|
186
|
+
* calculatePassAtK(0.7, 3); // ~0.973 (from pass rate)
|
|
187
|
+
* calculatePassAtK(10, 8, 3); // ~0.983 (from 10 total, 8 correct, sample 3)
|
|
185
188
|
* ```
|
|
186
189
|
*/
|
|
187
|
-
function calculatePassAtK(
|
|
188
|
-
|
|
190
|
+
function calculatePassAtK(passRateOrN, kOrC, k) {
|
|
191
|
+
if (k !== undefined) {
|
|
192
|
+
// (n, c, k) form: 1 - C(n-c, k) / C(n, k)
|
|
193
|
+
const n = passRateOrN;
|
|
194
|
+
const c = kOrC;
|
|
195
|
+
if (c >= n)
|
|
196
|
+
return 1;
|
|
197
|
+
if (c === 0)
|
|
198
|
+
return 0;
|
|
199
|
+
if (k > n)
|
|
200
|
+
return c > 0 ? 1 : 0;
|
|
201
|
+
// Use logarithmic calculation to avoid overflow
|
|
202
|
+
let logNumerator = 0;
|
|
203
|
+
let logDenominator = 0;
|
|
204
|
+
for (let i = 0; i < k; i++) {
|
|
205
|
+
logNumerator += Math.log(n - c - i);
|
|
206
|
+
logDenominator += Math.log(n - i);
|
|
207
|
+
}
|
|
208
|
+
return 1 - Math.exp(logNumerator - logDenominator);
|
|
209
|
+
}
|
|
210
|
+
// (passRate, k) form
|
|
211
|
+
return 1 - Math.pow(1 - passRateOrN, kOrC);
|
|
189
212
|
}
|
|
190
213
|
/**
|
|
191
214
|
* Calculate pass^k probability from pass rate
|
|
@@ -220,12 +243,21 @@ function requiredPassRateForPassAtK(targetPassAtK, k) {
|
|
|
220
243
|
/**
|
|
221
244
|
* Determine if evaluation is reliable based on analysis
|
|
222
245
|
*
|
|
223
|
-
*
|
|
224
|
-
*
|
|
246
|
+
* Accepts either a CriterionAnalysis object or a raw reliability score:
|
|
247
|
+
* - isReliableEvaluation(analysis) — from analysis result
|
|
248
|
+
* - isReliableEvaluation(0.95, 5) — score and k value (k ignored, checks score)
|
|
249
|
+
* - isReliableEvaluation(analysis, 0.9) — with custom threshold
|
|
250
|
+
*
|
|
251
|
+
* @param analysisOrScore - Criterion analysis result or raw reliability score
|
|
252
|
+
* @param thresholdOrK - Reliability threshold (default 0.8)
|
|
225
253
|
* @returns Whether the evaluation is considered reliable
|
|
226
254
|
*/
|
|
227
|
-
function isReliableEvaluation(
|
|
228
|
-
|
|
255
|
+
function isReliableEvaluation(analysisOrScore, thresholdOrK = 0.8) {
|
|
256
|
+
if (typeof analysisOrScore === 'number') {
|
|
257
|
+
// Raw score: isReliableEvaluation(0.95, 5) or isReliableEvaluation(0.95)
|
|
258
|
+
return analysisOrScore >= thresholdOrK;
|
|
259
|
+
}
|
|
260
|
+
return analysisOrScore.reliabilityScore >= thresholdOrK;
|
|
229
261
|
}
|
|
230
262
|
/**
|
|
231
263
|
* Get recommendation based on reliability analysis
|
|
@@ -247,4 +279,4 @@ function getReliabilityRecommendation(analysis) {
|
|
|
247
279
|
return 'Evaluation is unreliable. Consider using deterministic checks or restructuring criteria.';
|
|
248
280
|
}
|
|
249
281
|
}
|
|
250
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9uZGV0ZXJtaW5pc20uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL25vbmRldGVybWluaXNtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7OztHQUlHOzs7QUFxVUgsNENBRUM7QUFjRCw0Q0FFQztBQWNELGdFQUVDO0FBU0Qsb0RBS0M7QUFRRCxvRUFVQztBQXJZRCwyQ0FBZ0U7QUE0SGhFLCtFQUErRTtBQUMvRSw2QkFBNkI7QUFDN0IsK0VBQStFO0FBRS9FOztHQUVHO0FBQ1UsUUFBQSxjQUFjLEdBQUc7SUFDNUI7Ozs7Ozs7Ozs7Ozs7T0FhRztJQUNILEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBeUI7UUFDdkMsT0FBTyxJQUFBLDJCQUFrQixFQUFvQixzQkFBc0IsRUFBRTtZQUNuRSxNQUFNLEVBQUUsTUFBTTtZQUNkLElBQUksRUFBRSxPQUFPO1lBQ2IsVUFBVSxFQUFFLE1BQU07U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQTJCLEVBQUU7UUFDekMsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNyQyxJQUFJLE9BQU8sQ0FBQyxPQUFPO1lBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVELElBQUksT0FBTyxDQUFDLE1BQU07WUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekQsSUFBSSxPQUFPLENBQUMsS0FBSztZQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM5RCxJQUFJLE9BQU8sQ0FBQyxNQUFNO1lBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFD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QUcsYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQ2xDLFFBQTJCLEVBQzNCLG9CQUFvQixHQUFHLEdBQUc7SUFFMUIsT0FBTyxRQUFRLENBQUMsZ0JBQWdCLElBQUksb0JBQW9CLENBQUM7QUFDM0QsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsNEJBQTRCLENBQUMsUUFBMkI7SUFDdEUsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksR0FBRyxFQUFFLENBQUM7UUFDckMsT0FBTyxtREFBbUQsQ0FBQztJQUM3RCxDQUFDO1NBQU0sSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksR0FBRyxFQUFFLENBQUM7UUFDNUMsT0FBTyw4REFBOEQsQ0FBQztJQUN4RSxDQUFDO1NBQU0sSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksR0FBRyxFQUFFLENBQUM7UUFDNUMsT0FBTyw4RUFBOEUsQ0FBQztJQUN4RixDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sMEZBQTBGLENBQUM7SUFDcEcsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaW5rSGl2ZSBTREsgdjMuMCAtIE5vbi1EZXRlcm1pbmlzbSBBUElcbiAqXG4gKiBBUEkgZm9yIHBhc3NAayAvIHBhc3NeayBhbmFseXNpcyB0byBtZWFzdXJlIExMTSBldmFsdWF0aW9uIHJlbGlhYmlsaXR5XG4gKi9cblxuaW1wb3J0IHsgYXBpUmVxdWVzdCwgYXBpUmVxdWVzdFdpdGhEYXRhIH0gZnJvbSAnLi4vY29yZS9jbGllbnQnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBOb25kZXRlcm1pbmlzbVJ1blR5cGUgPSAncGFzc19hdF9rJyB8ICdwYXNzX3RvX2snIHwgJ3ZhcmlhbmNlJyB8ICdyZWxpYWJpbGl0eSc7XG5leHBvcnQgdHlwZSBOb25kZXRlcm1pbmlzbVJ1blN0YXR1cyA9ICdwZW5kaW5nJyB8ICdydW5uaW5nJyB8ICdjb21wbGV0ZWQnIHwgJ2ZhaWxlZCcgfCAnY2FuY2VsbGVkJztcblxuZXhwb3J0IGludGVyZmFjZSBOb25kZXRlcm1pbmlzbVJ1biB7XG4gIGlkOiBzdHJpbmc7XG4gIGNvbXBhbnlJZDogc3RyaW5nO1xuICBhZ2VudElkOiBzdHJpbmc7XG4gIHJ1blR5cGU6IE5vbmRldGVybWluaXNtUnVuVHlwZTtcbiAga1ZhbHVlOiBudW1iZXI7XG4gIHN0YXR1czogTm9uZGV0ZXJtaW5pc21SdW5TdGF0dXM7XG4gIHRyYWNlQ291bnQ6IG51bWJlcjtcbiAgY3JpdGVyaW9uSWQ/OiBzdHJpbmc7XG4gIGNyaXRlcmlhSWRzOiBzdHJpbmdbXTtcbiAgdGVtcGVyYXR1cmU/OiBzdHJpbmc7XG4gIG1vZGVsPzogc3RyaW5nO1xuICBwcm9ncmVzc1BlcmNlbnQ6IG51bWJlcjtcbiAgcGFzc0F0S1JhdGU/OiBzdHJpbmc7XG4gIHBhc3NUb0tSYXRlPzogc3RyaW5nO1xuICBhdmdWYXJpYW5jZT86IHN0cmluZztcbiAgcmVsaWFiaWxpdHlTY29yZT86IHN0cmluZztcbiAgc3RhcnRlZEF0Pzogc3RyaW5nO1xuICBjb21wbGV0ZWRBdD86IHN0cmluZztcbiAgY3JlYXRlZEJ5Pzogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOb25kZXRlcm1pbmlzbVNhbXBsZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHJ1bklkOiBzdHJpbmc7XG4gIHRyYWNlSWQ6IHN0cmluZztcbiAgY3JpdGVyaW9uSWQ6IHN0cmluZztcbiAgc2FtcGxlSW5kZXg6IG51bWJlcjtcbiAgc2NvcmU6IHN0cmluZztcbiAgcGFzc2VkOiBib29sZWFuO1xuICByZWFzb25pbmc/OiBzdHJpbmc7XG4gIGNvbmZpZGVuY2U/OiBzdHJpbmc7XG4gIHRva2Vuc1VzZWQ/OiBudW1iZXI7XG4gIGNvc3RVc2Q/OiBzdHJpbmc7XG4gIG1vZGVsPzogc3RyaW5nO1xuICB0ZW1wZXJhdHVyZT86IHN0cmluZztcbiAgbGF0ZW5jeU1zPzogbnVtYmVyO1xuICBlcnJvcj86IHN0cmluZztcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlUnVuT3B0aW9ucyB7XG4gIGFnZW50SWQ6IHN0cmluZztcbiAgY3JpdGVyaW9uSWQ/OiBzdHJpbmc7XG4gIGNyaXRlcmlhSWRzPzogc3RyaW5nW107XG4gIGtWYWx1ZTogbnVtYmVyO1xuICB0cmFjZUlkczogc3RyaW5nW107XG4gIHJ1blR5cGU/OiBOb25kZXRlcm1pbmlzbVJ1blR5cGU7XG4gIHRlbXBlcmF0dXJlPzogbnVtYmVyO1xuICBtb2RlbD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWNvcmRTYW1wbGVPcHRpb25zIHtcbiAgcnVuSWQ6IHN0cmluZztcbiAgdHJhY2VJZDogc3RyaW5nO1xuICBjcml0ZXJpb25JZDogc3RyaW5nO1xuICBzYW1wbGVJbmRleDogbnVtYmVyO1xuICBzY29yZTogbnVtYmVyO1xuICBwYXNzZWQ6IGJvb2xlYW47XG4gIHJlYXNvbmluZz86IHN0cmluZztcbiAgY29uZmlkZW5jZT86IG51bWJlcjtcbiAgdG9rZW5zVXNlZD86IG51bWJlcjtcbiAgY29zdFVzZD86IG51bWJlcjtcbiAgbW9kZWw/OiBzdHJpbmc7XG4gIHRlbXBlcmF0dXJlPzogbnVtYmVyO1xuICBsYXRlbmN5TXM/OiBudW1iZXI7XG4gIGVycm9yPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYWNlQW5hbHlzaXMge1xuICB0cmFjZUlkOiBzdHJpbmc7XG4gIHNhbXBsZXM6IE5vbmRldGVybWluaXNtU2FtcGxlW107XG4gIHBhc3NDb3VudDogbnVtYmVyO1xuICB0b3RhbENvdW50OiBudW1iZXI7XG4gIHBhc3NSYXRlOiBudW1iZXI7XG4gIHNjb3JlVmFyaWFuY2U6IG51bWJlcjtcbiAgbWVhblNjb3JlOiBudW1iZXI7XG4gIGlzQ29uc2lzdGVudDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcml0ZXJpb25BbmFseXNpcyB7XG4gIGNyaXRlcmlvbklkOiBzdHJpbmc7XG4gIHRyYWNlQW5hbHlzZXM6IFRyYWNlQW5hbHlzaXNbXTtcbiAgcGFzc0F0S1JhdGU6IG51bWJlcjtcbiAgcGFzc1RvS1JhdGU6IG51bWJlcjtcbiAgcmVsaWFiaWxpdHlTY29yZTogbnVtYmVyO1xuICBpc1JlbGlhYmxlOiBib29sZWFuO1xuICByZWNvbW1lbmRhdGlvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1blN1bW1hcnkge1xuICBydW46IE5vbmRldGVybWluaXNtUnVuO1xuICB0cmFjZUFuYWx5c2VzOiBUcmFjZUFuYWx5c2lzW107XG4gIGNyaXRlcmlvbkFuYWx5c2VzOiBDcml0ZXJpb25BbmFseXNpc1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RSdW5zT3B0aW9ucyB7XG4gIGFnZW50SWQ/OiBzdHJpbmc7XG4gIHN0YXR1cz86IE5vbmRldGVybWluaXNtUnVuU3RhdHVzO1xuICBsaW1pdD86IG51bWJlcjtcbiAgb2Zmc2V0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhc3NBdEtJbmZvIHtcbiAgY29uY2VwdHM6IHtcbiAgICBwYXNzQXRLOiB7IG5hbWU6IHN0cmluZzsgZGVzY3JpcHRpb246IHN0cmluZzsgZm9ybXVsYTogc3RyaW5nOyB1c2VDYXNlOiBzdHJpbmcgfTtcbiAgICBwYXNzVG9LOiB7IG5hbWU6IHN0cmluZzsgZGVzY3JpcHRpb246IHN0cmluZzsgZm9ybXVsYTogc3RyaW5nOyB1c2VDYXNlOiBzdHJpbmcgfTtcbiAgICB2YXJpYW5jZTogeyBuYW1lOiBzdHJpbmc7IGRlc2NyaXB0aW9uOiBzdHJpbmc7IHVzZUNhc2U6IHN0cmluZyB9O1xuICAgIHJlbGlhYmlsaXR5OiB7IG5hbWU6IHN0cmluZzsgZGVzY3JpcHRpb246IHN0cmluZzsgdXNlQ2FzZTogc3RyaW5nIH07XG4gIH07XG4gIHJlY29tbWVuZGF0aW9uczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgZGVmYXVsdHM6IHsga1ZhbHVlOiBudW1iZXI7IHJlbGlhYmlsaXR5VGhyZXNob2xkOiBudW1iZXI7IHZhcmlhbmNlVGhyZXNob2xkOiBudW1iZXIgfTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTk9OLURFVEVSTUlOSVNNIEFQSSBDTElFTlRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBOb24tRGV0ZXJtaW5pc20gQVBJIGNsaWVudCBmb3IgcGFzc0BrIGFuYWx5c2lzIGFuZCByZWxpYWJpbGl0eSBtZWFzdXJlbWVudFxuICovXG5leHBvcnQgY29uc3Qgbm9uZGV0ZXJtaW5pc20gPSB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgbm9uLWRldGVybWluaXNtIGFuYWx5c2lzIHJ1blxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHJ1biA9IGF3YWl0IG5vbmRldGVybWluaXNtLmNyZWF0ZVJ1bih7XG4gICAqICAgYWdlbnRJZDogJ2FnZW50XzEyMycsXG4gICAqICAgY3JpdGVyaW9uSWQ6ICdjcml0ZXJpb25fNDU2JyxcbiAgICogICBrVmFsdWU6IDUsXG4gICAqICAgdHJhY2VJZHM6IFsndHJhY2VfMScsICd0cmFjZV8yJywgJ3RyYWNlXzMnXSxcbiAgICogICBydW5UeXBlOiAncGFzc19hdF9rJyxcbiAgICogfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgY3JlYXRlUnVuKG9wdGlvbnM6IENyZWF0ZVJ1bk9wdGlvbnMpOiBQcm9taXNlPE5vbmRldGVybWluaXNtUnVuPiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxOb25kZXRlcm1pbmlzbVJ1bj4oJy9ub25kZXRlcm1pbmlzbS9ydW5zJywge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBvcHRpb25zLFxuICAgICAgYXBpVmVyc2lvbjogJ25vbmUnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgbm9uLWRldGVybWluaXNtIHJ1bnNcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBydW5zID0gYXdhaXQgbm9uZGV0ZXJtaW5pc20uZ2V0UnVucyh7IGFnZW50SWQ6ICdhZ2VudF8xMjMnIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGdldFJ1bnMob3B0aW9uczogTGlzdFJ1bnNPcHRpb25zID0ge30pOiBQcm9taXNlPE5vbmRldGVybWluaXNtUnVuW10+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgaWYgKG9wdGlvbnMuYWdlbnRJZCkgcGFyYW1zLnNldCgnYWdlbnRJZCcsIG9wdGlvbnMuYWdlbnRJZCk7XG4gICAgaWYgKG9wdGlvbnMuc3RhdHVzKSBwYXJhbXMuc2V0KCdzdGF0dXMnLCBvcHRpb25zLnN0YXR1cyk7XG4gICAgaWYgKG9wdGlvbnMubGltaXQpIHBhcmFtcy5zZXQoJ2xpbWl0JywgU3RyaW5nKG9wdGlvbnMubGltaXQpKTtcbiAgICBpZiAob3B0aW9ucy5vZmZzZXQpIHBhcmFtcy5zZXQoJ29mZnNldCcsIFN0cmluZyhvcHRpb25zLm9mZnNldCkpO1xuXG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxOb25kZXRlcm1pbmlzbVJ1bltdPihcbiAgICAgIGAvbm9uZGV0ZXJtaW5pc20vcnVucz8ke3BhcmFtcy50b1N0cmluZygpfWAsXG4gICAgICB7IGFwaVZlcnNpb246ICdub25lJyB9XG4gICAgKTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IGEgc3BlY2lmaWMgcnVuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgcnVuID0gYXdhaXQgbm9uZGV0ZXJtaW5pc20uZ2V0UnVuKCdydW5fMTIzJyk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgZ2V0UnVuKHJ1bklkOiBzdHJpbmcpOiBQcm9taXNlPE5vbmRldGVybWluaXNtUnVuPiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxOb25kZXRlcm1pbmlzbVJ1bj4oXG4gICAgICBgL25vbmRldGVybWluaXNtL3J1bnMvJHtydW5JZH1gLFxuICAgICAgeyBhcGlWZXJzaW9uOiAnbm9uZScgfVxuICAgICk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFN0YXJ0IGEgcnVuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogYXdhaXQgbm9uZGV0ZXJtaW5pc20uc3RhcnRSdW4oJ3J1bl8xMjMnKTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBzdGFydFJ1bihydW5JZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgYXBpUmVxdWVzdChgL25vbmRldGVybWluaXNtL3J1bnMvJHtydW5JZH0vc3RhcnRgLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGFwaVZlcnNpb246ICdub25lJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogQ29tcGxldGUgYSBydW5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBhd2FpdCBub25kZXRlcm1pbmlzbS5jb21wbGV0ZVJ1bigncnVuXzEyMycpO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGNvbXBsZXRlUnVuKHJ1bklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBhcGlSZXF1ZXN0KGAvbm9uZGV0ZXJtaW5pc20vcnVucy8ke3J1bklkfS9jb21wbGV0ZWAsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYXBpVmVyc2lvbjogJ25vbmUnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBSZWNvcmQgYSBzYW1wbGUgcmVzdWx0XG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3Qgc2FtcGxlID0gYXdhaXQgbm9uZGV0ZXJtaW5pc20ucmVjb3JkU2FtcGxlKHtcbiAgICogICBydW5JZDogJ3J1bl8xMjMnLFxuICAgKiAgIHRyYWNlSWQ6ICd0cmFjZV80NTYnLFxuICAgKiAgIGNyaXRlcmlvbklkOiAnY3JpdGVyaW9uXzc4OScsXG4gICAqICAgc2FtcGxlSW5kZXg6IDAsXG4gICAqICAgc2NvcmU6IDg1LFxuICAgKiAgIHBhc3NlZDogdHJ1ZSxcbiAgICogICByZWFzb25pbmc6ICdSZXNwb25zZSBtZWV0cyBxdWFsaXR5IGNyaXRlcmlhJyxcbiAgICogfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgcmVjb3JkU2FtcGxlKG9wdGlvbnM6IFJlY29yZFNhbXBsZU9wdGlvbnMpOiBQcm9taXNlPE5vbmRldGVybWluaXNtU2FtcGxlPiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxOb25kZXRlcm1pbmlzbVNhbXBsZT4oJy9ub25kZXRlcm1pbmlzbS9zYW1wbGVzJywge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBvcHRpb25zLFxuICAgICAgYXBpVmVyc2lvbjogJ25vbmUnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgc2FtcGxlcyBmb3IgYSBydW5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBzYW1wbGVzID0gYXdhaXQgbm9uZGV0ZXJtaW5pc20uZ2V0U2FtcGxlcygncnVuXzEyMycpO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGdldFNhbXBsZXMocnVuSWQ6IHN0cmluZyk6IFByb21pc2U8Tm9uZGV0ZXJtaW5pc21TYW1wbGVbXT4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8Tm9uZGV0ZXJtaW5pc21TYW1wbGVbXT4oXG4gICAgICBgL25vbmRldGVybWluaXNtL3J1bnMvJHtydW5JZH0vc2FtcGxlc2AsXG4gICAgICB7IGFwaVZlcnNpb246ICdub25lJyB9XG4gICAgKTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IHJ1biBzdW1tYXJ5IHdpdGggYW5hbHlzaXNcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBzdW1tYXJ5ID0gYXdhaXQgbm9uZGV0ZXJtaW5pc20uZ2V0UnVuU3VtbWFyeSgncnVuXzEyMycpO1xuICAgKiBjb25zb2xlLmxvZyhgUGFzc0BrIHJhdGU6ICR7c3VtbWFyeS5jcml0ZXJpb25BbmFseXNlc1swXS5wYXNzQXRLUmF0ZX1gKTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBnZXRSdW5TdW1tYXJ5KHJ1bklkOiBzdHJpbmcpOiBQcm9taXNlPFJ1blN1bW1hcnk+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPFJ1blN1bW1hcnk+KFxuICAgICAgYC9ub25kZXRlcm1pbmlzbS9ydW5zLyR7cnVuSWR9L3N1bW1hcnlgLFxuICAgICAgeyBhcGlWZXJzaW9uOiAnbm9uZScgfVxuICAgICk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFRyaWdnZXIgYW5hbHlzaXMgb2YgYSBjb21wbGV0ZWQgcnVuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3Qgc3VtbWFyeSA9IGF3YWl0IG5vbmRldGVybWluaXNtLmFuYWx5emVSdW4oJ3J1bl8xMjMnKTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBhbmFseXplUnVuKHJ1bklkOiBzdHJpbmcpOiBQcm9taXNlPFJ1blN1bW1hcnk+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPFJ1blN1bW1hcnk+KFxuICAgICAgYC9ub25kZXRlcm1pbmlzbS9ydW5zLyR7cnVuSWR9L2FuYWx5emVgLFxuICAgICAgeyBtZXRob2Q6ICdQT1NUJywgYXBpVmVyc2lvbjogJ25vbmUnIH1cbiAgICApO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgaW5mb3JtYXRpb24gYWJvdXQgcGFzc0BrIGFuYWx5c2lzXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgaW5mbyA9IGF3YWl0IG5vbmRldGVybWluaXNtLmdldEluZm8oKTtcbiAgICogY29uc29sZS5sb2coaW5mby5jb25jZXB0cy5wYXNzQXRLLmRlc2NyaXB0aW9uKTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBnZXRJbmZvKCk6IFByb21pc2U8UGFzc0F0S0luZm8+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPFBhc3NBdEtJbmZvPihcbiAgICAgICcvbm9uZGV0ZXJtaW5pc20vaW5mbycsXG4gICAgICB7IGFwaVZlcnNpb246ICdub25lJyB9XG4gICAgKTtcbiAgfSxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEhFTFBFUiBGVU5DVElPTlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDYWxjdWxhdGUgcGFzc0BrIHByb2JhYmlsaXR5IGZyb20gcGFzcyByYXRlXG4gKlxuICogQHBhcmFtIHBhc3NSYXRlIC0gU2luZ2xlLXJ1biBwYXNzIHJhdGUgKDAtMSlcbiAqIEBwYXJhbSBrIC0gTnVtYmVyIG9mIHJ1bnNcbiAqIEByZXR1cm5zIFByb2JhYmlsaXR5IHRoYXQgYXQgbGVhc3QgMSBvZiBrIHJ1bnMgcGFzc2VzXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHBhc3NBdEsgPSBjYWxjdWxhdGVQYXNzQXRLKDAuNywgMyk7IC8vIH4wLjk3M1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVQYXNzQXRLKHBhc3NSYXRlOiBudW1iZXIsIGs6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiAxIC0gTWF0aC5wb3coMSAtIHBhc3NSYXRlLCBrKTtcbn1cblxuLyoqXG4gKiBDYWxjdWxhdGUgcGFzc15rIHByb2JhYmlsaXR5IGZyb20gcGFzcyByYXRlXG4gKlxuICogQHBhcmFtIHBhc3NSYXRlIC0gU2luZ2xlLXJ1biBwYXNzIHJhdGUgKDAtMSlcbiAqIEBwYXJhbSBrIC0gTnVtYmVyIG9mIHJ1bnNcbiAqIEByZXR1cm5zIFByb2JhYmlsaXR5IHRoYXQgYWxsIGsgcnVucyBwYXNzXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHBhc3NUb0sgPSBjYWxjdWxhdGVQYXNzVG9LKDAuNywgMyk7IC8vIH4wLjM0M1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVQYXNzVG9LKHBhc3NSYXRlOiBudW1iZXIsIGs6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiBNYXRoLnBvdyhwYXNzUmF0ZSwgayk7XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlIHJlcXVpcmVkIHBhc3MgcmF0ZSB0byBhY2hpZXZlIHRhcmdldCBwYXNzQGtcbiAqXG4gKiBAcGFyYW0gdGFyZ2V0UGFzc0F0SyAtIERlc2lyZWQgcGFzc0BrIHByb2JhYmlsaXR5XG4gKiBAcGFyYW0gayAtIE51bWJlciBvZiBydW5zXG4gKiBAcmV0dXJucyBSZXF1aXJlZCBzaW5nbGUtcnVuIHBhc3MgcmF0ZVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByZXF1aXJlZFJhdGUgPSByZXF1aXJlZFBhc3NSYXRlRm9yUGFzc0F0SygwLjk1LCAzKTsgLy8gfjAuNjMyXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlcXVpcmVkUGFzc1JhdGVGb3JQYXNzQXRLKHRhcmdldFBhc3NBdEs6IG51bWJlciwgazogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIDEgLSBNYXRoLnBvdygxIC0gdGFyZ2V0UGFzc0F0SywgMSAvIGspO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBldmFsdWF0aW9uIGlzIHJlbGlhYmxlIGJhc2VkIG9uIGFuYWx5c2lzXG4gKlxuICogQHBhcmFtIGFuYWx5c2lzIC0gQ3JpdGVyaW9uIGFuYWx5c2lzIHJlc3VsdFxuICogQHBhcmFtIHJlbGlhYmlsaXR5VGhyZXNob2xkIC0gTWluaW11bSByZWxpYWJpbGl0eSBzY29yZSAoZGVmYXVsdCAwLjgpXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBldmFsdWF0aW9uIGlzIGNvbnNpZGVyZWQgcmVsaWFibGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUmVsaWFibGVFdmFsdWF0aW9uKFxuICBhbmFseXNpczogQ3JpdGVyaW9uQW5hbHlzaXMsXG4gIHJlbGlhYmlsaXR5VGhyZXNob2xkID0gMC44XG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIGFuYWx5c2lzLnJlbGlhYmlsaXR5U2NvcmUgPj0gcmVsaWFiaWxpdHlUaHJlc2hvbGQ7XG59XG5cbi8qKlxuICogR2V0IHJlY29tbWVuZGF0aW9uIGJhc2VkIG9uIHJlbGlhYmlsaXR5IGFuYWx5c2lzXG4gKlxuICogQHBhcmFtIGFuYWx5c2lzIC0gQ3JpdGVyaW9uIGFuYWx5c2lzIHJlc3VsdFxuICogQHJldHVybnMgQWN0aW9uYWJsZSByZWNvbW1lbmRhdGlvbiBzdHJpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlbGlhYmlsaXR5UmVjb21tZW5kYXRpb24oYW5hbHlzaXM6IENyaXRlcmlvbkFuYWx5c2lzKTogc3RyaW5nIHtcbiAgaWYgKGFuYWx5c2lzLnJlbGlhYmlsaXR5U2NvcmUgPj0gMC45KSB7XG4gICAgcmV0dXJuICdFdmFsdWF0aW9uIGlzIGhpZ2hseSByZWxpYWJsZS4gTm8gY2hhbmdlcyBuZWVkZWQuJztcbiAgfSBlbHNlIGlmIChhbmFseXNpcy5yZWxpYWJpbGl0eVNjb3JlID49IDAuOCkge1xuICAgIHJldHVybiAnRXZhbHVhdGlvbiBpcyByZWxpYWJsZS4gQ29uc2lkZXIgbWlub3IgY3JpdGVyaWEgcmVmaW5lbWVudHMuJztcbiAgfSBlbHNlIGlmIChhbmFseXNpcy5yZWxpYWJpbGl0eVNjb3JlID49IDAuNikge1xuICAgIHJldHVybiAnRXZhbHVhdGlvbiBoYXMgbW9kZXJhdGUgcmVsaWFiaWxpdHkuIEFkZCBtb3JlIHNwZWNpZmljIGNyaXRlcmlhIG9yIGV4YW1wbGVzLic7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuICdFdmFsdWF0aW9uIGlzIHVucmVsaWFibGUuIENvbnNpZGVyIHVzaW5nIGRldGVybWluaXN0aWMgY2hlY2tzIG9yIHJlc3RydWN0dXJpbmcgY3JpdGVyaWEuJztcbiAgfVxufVxuIl19
|
|
282
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9uZGV0ZXJtaW5pc20uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL25vbmRldGVybWluaXNtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7OztHQUlHOzs7QUF3VUgsNENBcUJDO0FBY0QsNENBRUM7QUFjRCxnRUFFQztBQWNELG9EQVNDO0FBUUQsb0VBVUM7QUFwYUQsMkNBQWdFO0FBNEhoRSwrRUFBK0U7QUFDL0UsNkJBQTZCO0FBQzdCLCtFQUErRTtBQUUvRTs7R0FFRztBQUNVLFFBQUEsY0FBYyxHQUFHO0lBQzVCOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSCxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQXlCO1FBQ3ZDLE9BQU8sSUFBQSwyQkFBa0IsRUFBb0Isc0JBQXNCLEVBQUU7WUFDbkUsTUFBTSxFQUFFLE1BQU07WUFDZCxJQUFJLEVBQUUsT0FBTztZQUNiLFVBQVUsRUFBRSxNQUFNO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUEyQixFQUFFO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDckMsSUFBSSxPQUFPLENBQUMsT0FBTztZQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1RCxJQUFJLE9BQU8sQ0FBQyxNQUFNO1lBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pELElBQUksT0FBTyxDQUFDLEtBQUs7WUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDOUQsSUFBSSxPQUFPLENBQUMsTUFBTTtZQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FB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QUN6QyxDQUFDO0lBQ0QsT0FBTyxlQUFlLENBQUMsZ0JBQWdCLElBQUksWUFBWSxDQUFDO0FBQzFELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLDRCQUE0QixDQUFDLFFBQTJCO0lBQ3RFLElBQUksUUFBUSxDQUFDLGdCQUFnQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3JDLE9BQU8sbURBQW1ELENBQUM7SUFDN0QsQ0FBQztTQUFNLElBQUksUUFBUSxDQUFDLGdCQUFnQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzVDLE9BQU8sOERBQThELENBQUM7SUFDeEUsQ0FBQztTQUFNLElBQUksUUFBUSxDQUFDLGdCQUFnQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzVDLE9BQU8sOEVBQThFLENBQUM7SUFDeEYsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLDBGQUEwRixDQUFDO0lBQ3BHLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlua0hpdmUgU0RLIHYzLjAgLSBOb24tRGV0ZXJtaW5pc20gQVBJXG4gKlxuICogQVBJIGZvciBwYXNzQGsgLyBwYXNzXmsgYW5hbHlzaXMgdG8gbWVhc3VyZSBMTE0gZXZhbHVhdGlvbiByZWxpYWJpbGl0eVxuICovXG5cbmltcG9ydCB7IGFwaVJlcXVlc3QsIGFwaVJlcXVlc3RXaXRoRGF0YSB9IGZyb20gJy4uL2NvcmUvY2xpZW50JztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgTm9uZGV0ZXJtaW5pc21SdW5UeXBlID0gJ3Bhc3NfYXRfaycgfCAncGFzc190b19rJyB8ICd2YXJpYW5jZScgfCAncmVsaWFiaWxpdHknO1xuZXhwb3J0IHR5cGUgTm9uZGV0ZXJtaW5pc21SdW5TdGF0dXMgPSAncGVuZGluZycgfCAncnVubmluZycgfCAnY29tcGxldGVkJyB8ICdmYWlsZWQnIHwgJ2NhbmNlbGxlZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm9uZGV0ZXJtaW5pc21SdW4ge1xuICBpZDogc3RyaW5nO1xuICBjb21wYW55SWQ6IHN0cmluZztcbiAgYWdlbnRJZDogc3RyaW5nO1xuICBydW5UeXBlOiBOb25kZXRlcm1pbmlzbVJ1blR5cGU7XG4gIGtWYWx1ZTogbnVtYmVyO1xuICBzdGF0dXM6IE5vbmRldGVybWluaXNtUnVuU3RhdHVzO1xuICB0cmFjZUNvdW50OiBudW1iZXI7XG4gIGNyaXRlcmlvbklkPzogc3RyaW5nO1xuICBjcml0ZXJpYUlkczogc3RyaW5nW107XG4gIHRlbXBlcmF0dXJlPzogc3RyaW5nO1xuICBtb2RlbD86IHN0cmluZztcbiAgcHJvZ3Jlc3NQZXJjZW50OiBudW1iZXI7XG4gIHBhc3NBdEtSYXRlPzogc3RyaW5nO1xuICBwYXNzVG9LUmF0ZT86IHN0cmluZztcbiAgYXZnVmFyaWFuY2U/OiBzdHJpbmc7XG4gIHJlbGlhYmlsaXR5U2NvcmU/OiBzdHJpbmc7XG4gIHN0YXJ0ZWRBdD86IHN0cmluZztcbiAgY29tcGxldGVkQXQ/OiBzdHJpbmc7XG4gIGNyZWF0ZWRCeT86IHN0cmluZztcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm9uZGV0ZXJtaW5pc21TYW1wbGUge1xuICBpZDogc3RyaW5nO1xuICBydW5JZDogc3RyaW5nO1xuICB0cmFjZUlkOiBzdHJpbmc7XG4gIGNyaXRlcmlvbklkOiBzdHJpbmc7XG4gIHNhbXBsZUluZGV4OiBudW1iZXI7XG4gIHNjb3JlOiBzdHJpbmc7XG4gIHBhc3NlZDogYm9vbGVhbjtcbiAgcmVhc29uaW5nPzogc3RyaW5nO1xuICBjb25maWRlbmNlPzogc3RyaW5nO1xuICB0b2tlbnNVc2VkPzogbnVtYmVyO1xuICBjb3N0VXNkPzogc3RyaW5nO1xuICBtb2RlbD86IHN0cmluZztcbiAgdGVtcGVyYXR1cmU/OiBzdHJpbmc7XG4gIGxhdGVuY3lNcz86IG51bWJlcjtcbiAgZXJyb3I/OiBzdHJpbmc7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVJ1bk9wdGlvbnMge1xuICBhZ2VudElkOiBzdHJpbmc7XG4gIGNyaXRlcmlvbklkPzogc3RyaW5nO1xuICBjcml0ZXJpYUlkcz86IHN0cmluZ1tdO1xuICBrVmFsdWU6IG51bWJlcjtcbiAgdHJhY2VJZHM6IHN0cmluZ1tdO1xuICBydW5UeXBlPzogTm9uZGV0ZXJtaW5pc21SdW5UeXBlO1xuICB0ZW1wZXJhdHVyZT86IG51bWJlcjtcbiAgbW9kZWw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjb3JkU2FtcGxlT3B0aW9ucyB7XG4gIHJ1bklkOiBzdHJpbmc7XG4gIHRyYWNlSWQ6IHN0cmluZztcbiAgY3JpdGVyaW9uSWQ6IHN0cmluZztcbiAgc2FtcGxlSW5kZXg6IG51bWJlcjtcbiAgc2NvcmU6IG51bWJlcjtcbiAgcGFzc2VkOiBib29sZWFuO1xuICByZWFzb25pbmc/OiBzdHJpbmc7XG4gIGNvbmZpZGVuY2U/OiBudW1iZXI7XG4gIHRva2Vuc1VzZWQ/OiBudW1iZXI7XG4gIGNvc3RVc2Q/OiBudW1iZXI7XG4gIG1vZGVsPzogc3RyaW5nO1xuICB0ZW1wZXJhdHVyZT86IG51bWJlcjtcbiAgbGF0ZW5jeU1zPzogbnVtYmVyO1xuICBlcnJvcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFjZUFuYWx5c2lzIHtcbiAgdHJhY2VJZDogc3RyaW5nO1xuICBzYW1wbGVzOiBOb25kZXRlcm1pbmlzbVNhbXBsZVtdO1xuICBwYXNzQ291bnQ6IG51bWJlcjtcbiAgdG90YWxDb3VudDogbnVtYmVyO1xuICBwYXNzUmF0ZTogbnVtYmVyO1xuICBzY29yZVZhcmlhbmNlOiBudW1iZXI7XG4gIG1lYW5TY29yZTogbnVtYmVyO1xuICBpc0NvbnNpc3RlbnQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JpdGVyaW9uQW5hbHlzaXMge1xuICBjcml0ZXJpb25JZDogc3RyaW5nO1xuICB0cmFjZUFuYWx5c2VzOiBUcmFjZUFuYWx5c2lzW107XG4gIHBhc3NBdEtSYXRlOiBudW1iZXI7XG4gIHBhc3NUb0tSYXRlOiBudW1iZXI7XG4gIHJlbGlhYmlsaXR5U2NvcmU6IG51bWJlcjtcbiAgaXNSZWxpYWJsZTogYm9vbGVhbjtcbiAgcmVjb21tZW5kYXRpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSdW5TdW1tYXJ5IHtcbiAgcnVuOiBOb25kZXRlcm1pbmlzbVJ1bjtcbiAgdHJhY2VBbmFseXNlczogVHJhY2VBbmFseXNpc1tdO1xuICBjcml0ZXJpb25BbmFseXNlczogQ3JpdGVyaW9uQW5hbHlzaXNbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0UnVuc09wdGlvbnMge1xuICBhZ2VudElkPzogc3RyaW5nO1xuICBzdGF0dXM/OiBOb25kZXRlcm1pbmlzbVJ1blN0YXR1cztcbiAgbGltaXQ/OiBudW1iZXI7XG4gIG9mZnNldD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXNzQXRLSW5mbyB7XG4gIGNvbmNlcHRzOiB7XG4gICAgcGFzc0F0SzogeyBuYW1lOiBzdHJpbmc7IGRlc2NyaXB0aW9uOiBzdHJpbmc7IGZvcm11bGE6IHN0cmluZzsgdXNlQ2FzZTogc3RyaW5nIH07XG4gICAgcGFzc1RvSzogeyBuYW1lOiBzdHJpbmc7IGRlc2NyaXB0aW9uOiBzdHJpbmc7IGZvcm11bGE6IHN0cmluZzsgdXNlQ2FzZTogc3RyaW5nIH07XG4gICAgdmFyaWFuY2U6IHsgbmFtZTogc3RyaW5nOyBkZXNjcmlwdGlvbjogc3RyaW5nOyB1c2VDYXNlOiBzdHJpbmcgfTtcbiAgICByZWxpYWJpbGl0eTogeyBuYW1lOiBzdHJpbmc7IGRlc2NyaXB0aW9uOiBzdHJpbmc7IHVzZUNhc2U6IHN0cmluZyB9O1xuICB9O1xuICByZWNvbW1lbmRhdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIGRlZmF1bHRzOiB7IGtWYWx1ZTogbnVtYmVyOyByZWxpYWJpbGl0eVRocmVzaG9sZDogbnVtYmVyOyB2YXJpYW5jZVRocmVzaG9sZDogbnVtYmVyIH07XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE5PTi1ERVRFUk1JTklTTSBBUEkgQ0xJRU5UXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogTm9uLURldGVybWluaXNtIEFQSSBjbGllbnQgZm9yIHBhc3NAayBhbmFseXNpcyBhbmQgcmVsaWFiaWxpdHkgbWVhc3VyZW1lbnRcbiAqL1xuZXhwb3J0IGNvbnN0IG5vbmRldGVybWluaXNtID0ge1xuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IG5vbi1kZXRlcm1pbmlzbSBhbmFseXNpcyBydW5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBydW4gPSBhd2FpdCBub25kZXRlcm1pbmlzbS5jcmVhdGVSdW4oe1xuICAgKiAgIGFnZW50SWQ6ICdhZ2VudF8xMjMnLFxuICAgKiAgIGNyaXRlcmlvbklkOiAnY3JpdGVyaW9uXzQ1NicsXG4gICAqICAga1ZhbHVlOiA1LFxuICAgKiAgIHRyYWNlSWRzOiBbJ3RyYWNlXzEnLCAndHJhY2VfMicsICd0cmFjZV8zJ10sXG4gICAqICAgcnVuVHlwZTogJ3Bhc3NfYXRfaycsXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGNyZWF0ZVJ1bihvcHRpb25zOiBDcmVhdGVSdW5PcHRpb25zKTogUHJvbWlzZTxOb25kZXRlcm1pbmlzbVJ1bj4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8Tm9uZGV0ZXJtaW5pc21SdW4+KCcvbm9uZGV0ZXJtaW5pc20vcnVucycsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogb3B0aW9ucyxcbiAgICAgIGFwaVZlcnNpb246ICdub25lJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IG5vbi1kZXRlcm1pbmlzbSBydW5zXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgcnVucyA9IGF3YWl0IG5vbmRldGVybWluaXNtLmdldFJ1bnMoeyBhZ2VudElkOiAnYWdlbnRfMTIzJyB9KTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBnZXRSdW5zKG9wdGlvbnM6IExpc3RSdW5zT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxOb25kZXRlcm1pbmlzbVJ1bltdPiB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIGlmIChvcHRpb25zLmFnZW50SWQpIHBhcmFtcy5zZXQoJ2FnZW50SWQnLCBvcHRpb25zLmFnZW50SWQpO1xuICAgIGlmIChvcHRpb25zLnN0YXR1cykgcGFyYW1zLnNldCgnc3RhdHVzJywgb3B0aW9ucy5zdGF0dXMpO1xuICAgIGlmIChvcHRpb25zLmxpbWl0KSBwYXJhbXMuc2V0KCdsaW1pdCcsIFN0cmluZyhvcHRpb25zLmxpbWl0KSk7XG4gICAgaWYgKG9wdGlvbnMub2Zmc2V0KSBwYXJhbXMuc2V0KCdvZmZzZXQnLCBTdHJpbmcob3B0aW9ucy5vZmZzZXQpKTtcblxuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8Tm9uZGV0ZXJtaW5pc21SdW5bXT4oXG4gICAgICBgL25vbmRldGVybWluaXNtL3J1bnM/JHtwYXJhbXMudG9TdHJpbmcoKX1gLFxuICAgICAgeyBhcGlWZXJzaW9uOiAnbm9uZScgfVxuICAgICk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEdldCBhIHNwZWNpZmljIHJ1blxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHJ1biA9IGF3YWl0IG5vbmRldGVybWluaXNtLmdldFJ1bigncnVuXzEyMycpO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGdldFJ1bihydW5JZDogc3RyaW5nKTogUHJvbWlzZTxOb25kZXRlcm1pbmlzbVJ1bj4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8Tm9uZGV0ZXJtaW5pc21SdW4+KFxuICAgICAgYC9ub25kZXRlcm1pbmlzbS9ydW5zLyR7cnVuSWR9YCxcbiAgICAgIHsgYXBpVmVyc2lvbjogJ25vbmUnIH1cbiAgICApO1xuICB9LFxuXG4gIC8qKlxuICAgKiBTdGFydCBhIHJ1blxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGF3YWl0IG5vbmRldGVybWluaXNtLnN0YXJ0UnVuKCdydW5fMTIzJyk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgc3RhcnRSdW4ocnVuSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IGFwaVJlcXVlc3QoYC9ub25kZXRlcm1pbmlzbS9ydW5zLyR7cnVuSWR9L3N0YXJ0YCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBhcGlWZXJzaW9uOiAnbm9uZScsXG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENvbXBsZXRlIGEgcnVuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogYXdhaXQgbm9uZGV0ZXJtaW5pc20uY29tcGxldGVSdW4oJ3J1bl8xMjMnKTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBjb21wbGV0ZVJ1bihydW5JZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgYXBpUmVxdWVzdChgL25vbmRldGVybWluaXNtL3J1bnMvJHtydW5JZH0vY29tcGxldGVgLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGFwaVZlcnNpb246ICdub25lJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogUmVjb3JkIGEgc2FtcGxlIHJlc3VsdFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHNhbXBsZSA9IGF3YWl0IG5vbmRldGVybWluaXNtLnJlY29yZFNhbXBsZSh7XG4gICAqICAgcnVuSWQ6ICdydW5fMTIzJyxcbiAgICogICB0cmFjZUlkOiAndHJhY2VfNDU2JyxcbiAgICogICBjcml0ZXJpb25JZDogJ2NyaXRlcmlvbl83ODknLFxuICAgKiAgIHNhbXBsZUluZGV4OiAwLFxuICAgKiAgIHNjb3JlOiA4NSxcbiAgICogICBwYXNzZWQ6IHRydWUsXG4gICAqICAgcmVhc29uaW5nOiAnUmVzcG9uc2UgbWVldHMgcXVhbGl0eSBjcml0ZXJpYScsXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIHJlY29yZFNhbXBsZShvcHRpb25zOiBSZWNvcmRTYW1wbGVPcHRpb25zKTogUHJvbWlzZTxOb25kZXRlcm1pbmlzbVNhbXBsZT4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8Tm9uZGV0ZXJtaW5pc21TYW1wbGU+KCcvbm9uZGV0ZXJtaW5pc20vc2FtcGxlcycsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogb3B0aW9ucyxcbiAgICAgIGFwaVZlcnNpb246ICdub25lJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IHNhbXBsZXMgZm9yIGEgcnVuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3Qgc2FtcGxlcyA9IGF3YWl0IG5vbmRldGVybWluaXNtLmdldFNhbXBsZXMoJ3J1bl8xMjMnKTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBnZXRTYW1wbGVzKHJ1bklkOiBzdHJpbmcpOiBQcm9taXNlPE5vbmRldGVybWluaXNtU2FtcGxlW10+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPE5vbmRldGVybWluaXNtU2FtcGxlW10+KFxuICAgICAgYC9ub25kZXRlcm1pbmlzbS9ydW5zLyR7cnVuSWR9L3NhbXBsZXNgLFxuICAgICAgeyBhcGlWZXJzaW9uOiAnbm9uZScgfVxuICAgICk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEdldCBydW4gc3VtbWFyeSB3aXRoIGFuYWx5c2lzXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3Qgc3VtbWFyeSA9IGF3YWl0IG5vbmRldGVybWluaXNtLmdldFJ1blN1bW1hcnkoJ3J1bl8xMjMnKTtcbiAgICogY29uc29sZS5sb2coYFBhc3NAayByYXRlOiAke3N1bW1hcnkuY3JpdGVyaW9uQW5hbHlzZXNbMF0ucGFzc0F0S1JhdGV9YCk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgZ2V0UnVuU3VtbWFyeShydW5JZDogc3RyaW5nKTogUHJvbWlzZTxSdW5TdW1tYXJ5PiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxSdW5TdW1tYXJ5PihcbiAgICAgIGAvbm9uZGV0ZXJtaW5pc20vcnVucy8ke3J1bklkfS9zdW1tYXJ5YCxcbiAgICAgIHsgYXBpVmVyc2lvbjogJ25vbmUnIH1cbiAgICApO1xuICB9LFxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyIGFuYWx5c2lzIG9mIGEgY29tcGxldGVkIHJ1blxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHN1bW1hcnkgPSBhd2FpdCBub25kZXRlcm1pbmlzbS5hbmFseXplUnVuKCdydW5fMTIzJyk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgYW5hbHl6ZVJ1bihydW5JZDogc3RyaW5nKTogUHJvbWlzZTxSdW5TdW1tYXJ5PiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxSdW5TdW1tYXJ5PihcbiAgICAgIGAvbm9uZGV0ZXJtaW5pc20vcnVucy8ke3J1bklkfS9hbmFseXplYCxcbiAgICAgIHsgbWV0aG9kOiAnUE9TVCcsIGFwaVZlcnNpb246ICdub25lJyB9XG4gICAgKTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IGluZm9ybWF0aW9uIGFib3V0IHBhc3NAayBhbmFseXNpc1xuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGluZm8gPSBhd2FpdCBub25kZXRlcm1pbmlzbS5nZXRJbmZvKCk7XG4gICAqIGNvbnNvbGUubG9nKGluZm8uY29uY2VwdHMucGFzc0F0Sy5kZXNjcmlwdGlvbik7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgZ2V0SW5mbygpOiBQcm9taXNlPFBhc3NBdEtJbmZvPiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxQYXNzQXRLSW5mbz4oXG4gICAgICAnL25vbmRldGVybWluaXNtL2luZm8nLFxuICAgICAgeyBhcGlWZXJzaW9uOiAnbm9uZScgfVxuICAgICk7XG4gIH0sXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBIRUxQRVIgRlVOQ1RJT05TXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ2FsY3VsYXRlIHBhc3NAayBwcm9iYWJpbGl0eVxuICpcbiAqIFN1cHBvcnRzIHR3byBjYWxsaW5nIGNvbnZlbnRpb25zOlxuICogLSBjYWxjdWxhdGVQYXNzQXRLKHBhc3NSYXRlLCBrKSDigJQgZnJvbSBwYXNzIHJhdGUgZGlyZWN0bHlcbiAqIC0gY2FsY3VsYXRlUGFzc0F0SyhuLCBjLCBrKSAgICDigJQgZnJvbSBuIHRvdGFsIHJ1bnMsIGMgY29ycmVjdCwgc2FtcGxlIGtcbiAqXG4gKiBAcmV0dXJucyBQcm9iYWJpbGl0eSB0aGF0IGF0IGxlYXN0IDEgb2YgayBydW5zIHBhc3Nlc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjYWxjdWxhdGVQYXNzQXRLKDAuNywgMyk7ICAgIC8vIH4wLjk3MyAoZnJvbSBwYXNzIHJhdGUpXG4gKiBjYWxjdWxhdGVQYXNzQXRLKDEwLCA4LCAzKTsgIC8vIH4wLjk4MyAoZnJvbSAxMCB0b3RhbCwgOCBjb3JyZWN0LCBzYW1wbGUgMylcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlUGFzc0F0SyhwYXNzUmF0ZU9yTjogbnVtYmVyLCBrT3JDOiBudW1iZXIsIGs/OiBudW1iZXIpOiBudW1iZXIge1xuICBpZiAoayAhPT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gKG4sIGMsIGspIGZvcm06IDEgLSBDKG4tYywgaykgLyBDKG4sIGspXG4gICAgY29uc3QgbiA9IHBhc3NSYXRlT3JOO1xuICAgIGNvbnN0IGMgPSBrT3JDO1xuICAgIGlmIChjID49IG4pIHJldHVybiAxO1xuICAgIGlmIChjID09PSAwKSByZXR1cm4gMDtcbiAgICBpZiAoayA+IG4pIHJldHVybiBjID4gMCA/IDEgOiAwO1xuXG4gICAgLy8gVXNlIGxvZ2FyaXRobWljIGNhbGN1bGF0aW9uIHRvIGF2b2lkIG92ZXJmbG93XG4gICAgbGV0IGxvZ051bWVyYXRvciA9IDA7XG4gICAgbGV0IGxvZ0Rlbm9taW5hdG9yID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGs7IGkrKykge1xuICAgICAgbG9nTnVtZXJhdG9yICs9IE1hdGgubG9nKG4gLSBjIC0gaSk7XG4gICAgICBsb2dEZW5vbWluYXRvciArPSBNYXRoLmxvZyhuIC0gaSk7XG4gICAgfVxuICAgIHJldHVybiAxIC0gTWF0aC5leHAobG9nTnVtZXJhdG9yIC0gbG9nRGVub21pbmF0b3IpO1xuICB9XG5cbiAgLy8gKHBhc3NSYXRlLCBrKSBmb3JtXG4gIHJldHVybiAxIC0gTWF0aC5wb3coMSAtIHBhc3NSYXRlT3JOLCBrT3JDKTtcbn1cblxuLyoqXG4gKiBDYWxjdWxhdGUgcGFzc15rIHByb2JhYmlsaXR5IGZyb20gcGFzcyByYXRlXG4gKlxuICogQHBhcmFtIHBhc3NSYXRlIC0gU2luZ2xlLXJ1biBwYXNzIHJhdGUgKDAtMSlcbiAqIEBwYXJhbSBrIC0gTnVtYmVyIG9mIHJ1bnNcbiAqIEByZXR1cm5zIFByb2JhYmlsaXR5IHRoYXQgYWxsIGsgcnVucyBwYXNzXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHBhc3NUb0sgPSBjYWxjdWxhdGVQYXNzVG9LKDAuNywgMyk7IC8vIH4wLjM0M1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVQYXNzVG9LKHBhc3NSYXRlOiBudW1iZXIsIGs6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiBNYXRoLnBvdyhwYXNzUmF0ZSwgayk7XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlIHJlcXVpcmVkIHBhc3MgcmF0ZSB0byBhY2hpZXZlIHRhcmdldCBwYXNzQGtcbiAqXG4gKiBAcGFyYW0gdGFyZ2V0UGFzc0F0SyAtIERlc2lyZWQgcGFzc0BrIHByb2JhYmlsaXR5XG4gKiBAcGFyYW0gayAtIE51bWJlciBvZiBydW5zXG4gKiBAcmV0dXJucyBSZXF1aXJlZCBzaW5nbGUtcnVuIHBhc3MgcmF0ZVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByZXF1aXJlZFJhdGUgPSByZXF1aXJlZFBhc3NSYXRlRm9yUGFzc0F0SygwLjk1LCAzKTsgLy8gfjAuNjMyXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlcXVpcmVkUGFzc1JhdGVGb3JQYXNzQXRLKHRhcmdldFBhc3NBdEs6IG51bWJlciwgazogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIDEgLSBNYXRoLnBvdygxIC0gdGFyZ2V0UGFzc0F0SywgMSAvIGspO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBldmFsdWF0aW9uIGlzIHJlbGlhYmxlIGJhc2VkIG9uIGFuYWx5c2lzXG4gKlxuICogQWNjZXB0cyBlaXRoZXIgYSBDcml0ZXJpb25BbmFseXNpcyBvYmplY3Qgb3IgYSByYXcgcmVsaWFiaWxpdHkgc2NvcmU6XG4gKiAtIGlzUmVsaWFibGVFdmFsdWF0aW9uKGFuYWx5c2lzKSAgICAgICAgIOKAlCBmcm9tIGFuYWx5c2lzIHJlc3VsdFxuICogLSBpc1JlbGlhYmxlRXZhbHVhdGlvbigwLjk1LCA1KSAgICAgICAgICDigJQgc2NvcmUgYW5kIGsgdmFsdWUgKGsgaWdub3JlZCwgY2hlY2tzIHNjb3JlKVxuICogLSBpc1JlbGlhYmxlRXZhbHVhdGlvbihhbmFseXNpcywgMC45KSAgICDigJQgd2l0aCBjdXN0b20gdGhyZXNob2xkXG4gKlxuICogQHBhcmFtIGFuYWx5c2lzT3JTY29yZSAtIENyaXRlcmlvbiBhbmFseXNpcyByZXN1bHQgb3IgcmF3IHJlbGlhYmlsaXR5IHNjb3JlXG4gKiBAcGFyYW0gdGhyZXNob2xkT3JLIC0gUmVsaWFiaWxpdHkgdGhyZXNob2xkIChkZWZhdWx0IDAuOClcbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGV2YWx1YXRpb24gaXMgY29uc2lkZXJlZCByZWxpYWJsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNSZWxpYWJsZUV2YWx1YXRpb24oXG4gIGFuYWx5c2lzT3JTY29yZTogQ3JpdGVyaW9uQW5hbHlzaXMgfCBudW1iZXIsXG4gIHRocmVzaG9sZE9ySyA9IDAuOFxuKTogYm9vbGVhbiB7XG4gIGlmICh0eXBlb2YgYW5hbHlzaXNPclNjb3JlID09PSAnbnVtYmVyJykge1xuICAgIC8vIFJhdyBzY29yZTogaXNSZWxpYWJsZUV2YWx1YXRpb24oMC45NSwgNSkgb3IgaXNSZWxpYWJsZUV2YWx1YXRpb24oMC45NSlcbiAgICByZXR1cm4gYW5hbHlzaXNPclNjb3JlID49IHRocmVzaG9sZE9ySztcbiAgfVxuICByZXR1cm4gYW5hbHlzaXNPclNjb3JlLnJlbGlhYmlsaXR5U2NvcmUgPj0gdGhyZXNob2xkT3JLO1xufVxuXG4vKipcbiAqIEdldCByZWNvbW1lbmRhdGlvbiBiYXNlZCBvbiByZWxpYWJpbGl0eSBhbmFseXNpc1xuICpcbiAqIEBwYXJhbSBhbmFseXNpcyAtIENyaXRlcmlvbiBhbmFseXNpcyByZXN1bHRcbiAqIEByZXR1cm5zIEFjdGlvbmFibGUgcmVjb21tZW5kYXRpb24gc3RyaW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWxpYWJpbGl0eVJlY29tbWVuZGF0aW9uKGFuYWx5c2lzOiBDcml0ZXJpb25BbmFseXNpcyk6IHN0cmluZyB7XG4gIGlmIChhbmFseXNpcy5yZWxpYWJpbGl0eVNjb3JlID49IDAuOSkge1xuICAgIHJldHVybiAnRXZhbHVhdGlvbiBpcyBoaWdobHkgcmVsaWFibGUuIE5vIGNoYW5nZXMgbmVlZGVkLic7XG4gIH0gZWxzZSBpZiAoYW5hbHlzaXMucmVsaWFiaWxpdHlTY29yZSA+PSAwLjgpIHtcbiAgICByZXR1cm4gJ0V2YWx1YXRpb24gaXMgcmVsaWFibGUuIENvbnNpZGVyIG1pbm9yIGNyaXRlcmlhIHJlZmluZW1lbnRzLic7XG4gIH0gZWxzZSBpZiAoYW5hbHlzaXMucmVsaWFiaWxpdHlTY29yZSA+PSAwLjYpIHtcbiAgICByZXR1cm4gJ0V2YWx1YXRpb24gaGFzIG1vZGVyYXRlIHJlbGlhYmlsaXR5LiBBZGQgbW9yZSBzcGVjaWZpYyBjcml0ZXJpYSBvciBleGFtcGxlcy4nO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAnRXZhbHVhdGlvbiBpcyB1bnJlbGlhYmxlLiBDb25zaWRlciB1c2luZyBkZXRlcm1pbmlzdGljIGNoZWNrcyBvciByZXN0cnVjdHVyaW5nIGNyaXRlcmlhLic7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -99,5 +99,7 @@ export declare const notifications: {
|
|
|
99
99
|
* @returns The updated notification
|
|
100
100
|
*/
|
|
101
101
|
markAsRead(id: string): Promise<Notification>;
|
|
102
|
+
/** Alias for listNotifications() */
|
|
103
|
+
list(agentId: string, unreadOnly?: boolean): Promise<Notification[]>;
|
|
102
104
|
};
|
|
103
105
|
export { notifications as default };
|
|
@@ -105,6 +105,10 @@ exports.notifications = {
|
|
|
105
105
|
apiVersion: 'none',
|
|
106
106
|
});
|
|
107
107
|
},
|
|
108
|
+
/** Alias for listNotifications() */
|
|
109
|
+
async list(agentId, unreadOnly) {
|
|
110
|
+
return this.listNotifications(agentId, unreadOnly);
|
|
111
|
+
},
|
|
108
112
|
};
|
|
109
113
|
exports.default = exports.notifications;
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvbm90aWZpY2F0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7O0FBRUgsMkNBQWdFO0FBbURoRSwrRUFBK0U7QUFDL0UsMkJBQTJCO0FBQzNCLCtFQUErRTtBQUUvRTs7R0FFRztBQUNVLFFBQUEsYUFBYSxHQUFHO0lBQzNCOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFlO1FBQzdCLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNoRCxPQUFPLElBQUEsMkJBQWtCLEVBQXFCLHVCQUF1QixNQUFNLEVBQUUsRUFBRTtZQUM3RSxVQUFVLEVBQUUsTUFBTTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFVLEVBQUUsT0FBZ0I7UUFDeEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNyQyxJQUFJLE9BQU87WUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEMsT0FBTyxJQUFBLDJCQUFrQixFQUN2Qix1QkFBdUIsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQ3RELEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUN2QixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFnQztRQUMvQyxPQUFPLElBQUEsMkJBQWtCLEVBQW1CLHFCQUFxQixFQUFFO1lBQ2pFLE1BQU0sRUFBRSxNQUFNO1lBQ2QsSUFBSSxFQUFFLElBQUk7WUFDVixVQUFVLEVBQUUsTUFBTTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFVLEVBQUUsSUFBZ0M7UUFDM0QsT0FBTyxJQUFBLDJCQUFrQixFQUFtQix1QkFBdUIsRUFBRSxFQUFFLEVBQUU7WUFDdkUsTUFBTSxFQUFFLE9BQU87WUFDZixJQUFJLEVBQUUsSUFBSTtZQUNWLFVBQVUsRUFBRSxNQUFNO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFVO1FBQ3pCLE9BQU8sSUFBQSxtQkFBVSxFQUFPLHVCQUF1QixFQUFFLEVBQUUsRUFBRTtZQUNuRCxNQUFNLEVBQUUsUUFBUTtZQUNoQixVQUFVLEVBQUUsTUFBTTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE9BQWUsRUFBRSxVQUFvQjtRQUMzRCxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxVQUFVLEtBQUssU0FBUztZQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQzNFLE9BQU8sSUFBQSwyQkFBa0IsRUFBaUIsa0JBQWtCLE1BQU0sRUFBRSxFQUFFO1lBQ3BFLFVBQVUsRUFBRSxNQUFNO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBVTtRQUN6QixPQUFPLElBQUEsMkJBQWtCLEVBQWUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFO1lBQ25FLE1BQU0sRUFBRSxPQUFPO1lBQ2YsVUFBVSxFQUFFLE1BQU07U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG9DQUFvQztJQUNwQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQWUsRUFBRSxVQUFvQjtRQUM5QyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDckQsQ0FBQztDQUNGLENBQUM7QUFFd0Isa0JBMUdiLHFCQUFhLENBMEdPIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlua0hpdmUgU0RLIC0gTm90aWZpY2F0aW9ucyBBUElcbiAqXG4gKiBOb3RpZmljYXRpb24gcnVsZXMgYW5kIGFsZXJ0IG1hbmFnZW1lbnRcbiAqL1xuXG5pbXBvcnQgeyBhcGlSZXF1ZXN0LCBhcGlSZXF1ZXN0V2l0aERhdGEgfSBmcm9tICcuLi9jb3JlL2NsaWVudCc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKiBOb3RpZmljYXRpb24gcnVsZSBkZWZpbml0aW9uICovXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvblJ1bGUge1xuICBpZDogc3RyaW5nO1xuICBhZ2VudElkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgY29uZGl0aW9uOiBzdHJpbmc7XG4gIGNoYW5uZWw6IHN0cmluZztcbiAgaXNFbmFibGVkOiBib29sZWFuO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgdXBkYXRlZEF0OiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG59XG5cbi8qKiBEYXRhIGZvciBjcmVhdGluZyBhIG5vdGlmaWNhdGlvbiBydWxlICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZU5vdGlmaWNhdGlvblJ1bGVEYXRhIHtcbiAgYWdlbnRJZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGNvbmRpdGlvbjogc3RyaW5nO1xuICBjaGFubmVsOiBzdHJpbmc7XG4gIGlzRW5hYmxlZD86IGJvb2xlYW47XG4gIHRocmVzaG9sZD86IG51bWJlcjtcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqIERhdGEgZm9yIHVwZGF0aW5nIGEgbm90aWZpY2F0aW9uIHJ1bGUgKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlTm90aWZpY2F0aW9uUnVsZURhdGEge1xuICBuYW1lPzogc3RyaW5nO1xuICBjb25kaXRpb24/OiBzdHJpbmc7XG4gIGNoYW5uZWw/OiBzdHJpbmc7XG4gIGlzRW5hYmxlZD86IGJvb2xlYW47XG4gIHRocmVzaG9sZD86IG51bWJlcjtcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqIEEgbm90aWZpY2F0aW9uIGFsZXJ0ICovXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIGFnZW50SWQ6IHN0cmluZztcbiAgcnVsZUlkOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgaXNSZWFkOiBib29sZWFuO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTk9USUZJQ0FUSU9OUyBBUEkgQ0xJRU5UXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogTm90aWZpY2F0aW9ucyBBUEkgY2xpZW50IGZvciBtYW5hZ2luZyBub3RpZmljYXRpb24gcnVsZXMgYW5kIGFsZXJ0c1xuICovXG5leHBvcnQgY29uc3Qgbm90aWZpY2F0aW9ucyA9IHtcbiAgLyoqXG4gICAqIExpc3Qgbm90aWZpY2F0aW9uIHJ1bGVzIGZvciBhbiBhZ2VudFxuICAgKlxuICAgKiBAcGFyYW0gYWdlbnRJZCAtIFRoZSBhZ2VudCBJRCB0byBsaXN0IHJ1bGVzIGZvclxuICAgKiBAcmV0dXJucyBMaXN0IG9mIG5vdGlmaWNhdGlvbiBydWxlc1xuICAgKi9cbiAgYXN5bmMgbGlzdFJ1bGVzKGFnZW50SWQ6IHN0cmluZyk6IFByb21pc2U8Tm90aWZpY2F0aW9uUnVsZVtdPiB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7IGFnZW50SWQgfSk7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxOb3RpZmljYXRpb25SdWxlW10+KGAvbm90aWZpY2F0aW9uLXJ1bGVzPyR7cGFyYW1zfWAsIHtcbiAgICAgIGFwaVZlcnNpb246ICdub25lJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IGEgbm90aWZpY2F0aW9uIHJ1bGUgYnkgSURcbiAgICpcbiAgICogQHBhcmFtIGlkIC0gVGhlIHJ1bGUgSURcbiAgICogQHBhcmFtIGFnZW50SWQgLSBPcHRpb25hbCBhZ2VudCBJRCBmb3Igc2NvcGluZ1xuICAgKiBAcmV0dXJucyBUaGUgbm90aWZpY2F0aW9uIHJ1bGVcbiAgICovXG4gIGFzeW5jIGdldFJ1bGUoaWQ6IHN0cmluZywgYWdlbnRJZD86IHN0cmluZyk6IFByb21pc2U8Tm90aWZpY2F0aW9uUnVsZT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBpZiAoYWdlbnRJZCkgcGFyYW1zLnNldCgnYWdlbnRJZCcsIGFnZW50SWQpO1xuICAgIGNvbnN0IHF1ZXJ5ID0gcGFyYW1zLnRvU3RyaW5nKCk7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxOb3RpZmljYXRpb25SdWxlPihcbiAgICAgIGAvbm90aWZpY2F0aW9uLXJ1bGVzLyR7aWR9JHtxdWVyeSA/IGA/JHtxdWVyeX1gIDogJyd9YCxcbiAgICAgIHsgYXBpVmVyc2lvbjogJ25vbmUnIH1cbiAgICApO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgbm90aWZpY2F0aW9uIHJ1bGVcbiAgICpcbiAgICogQHBhcmFtIGRhdGEgLSBSdWxlIGNvbmZpZ3VyYXRpb24gZGF0YVxuICAgKiBAcmV0dXJucyBUaGUgY3JlYXRlZCBub3RpZmljYXRpb24gcnVsZVxuICAgKi9cbiAgYXN5bmMgY3JlYXRlUnVsZShkYXRhOiBDcmVhdGVOb3RpZmljYXRpb25SdWxlRGF0YSk6IFByb21pc2U8Tm90aWZpY2F0aW9uUnVsZT4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8Tm90aWZpY2F0aW9uUnVsZT4oJy9ub3RpZmljYXRpb24tcnVsZXMnLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IGRhdGEsXG4gICAgICBhcGlWZXJzaW9uOiAnbm9uZScsXG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBhbiBleGlzdGluZyBub3RpZmljYXRpb24gcnVsZVxuICAgKlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgcnVsZSBJRCB0byB1cGRhdGVcbiAgICogQHBhcmFtIGRhdGEgLSBGaWVsZHMgdG8gdXBkYXRlXG4gICAqIEByZXR1cm5zIFRoZSB1cGRhdGVkIG5vdGlmaWNhdGlvbiBydWxlXG4gICAqL1xuICBhc3luYyB1cGRhdGVSdWxlKGlkOiBzdHJpbmcsIGRhdGE6IFVwZGF0ZU5vdGlmaWNhdGlvblJ1bGVEYXRhKTogUHJvbWlzZTxOb3RpZmljYXRpb25SdWxlPiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxOb3RpZmljYXRpb25SdWxlPihgL25vdGlmaWNhdGlvbi1ydWxlcy8ke2lkfWAsIHtcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIGJvZHk6IGRhdGEsXG4gICAgICBhcGlWZXJzaW9uOiAnbm9uZScsXG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhIG5vdGlmaWNhdGlvbiBydWxlXG4gICAqXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBydWxlIElEIHRvIGRlbGV0ZVxuICAgKi9cbiAgYXN5bmMgZGVsZXRlUnVsZShpZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3Q8dm9pZD4oYC9ub3RpZmljYXRpb24tcnVsZXMvJHtpZH1gLCB7XG4gICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgICAgYXBpVmVyc2lvbjogJ25vbmUnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBMaXN0IG5vdGlmaWNhdGlvbnMgZm9yIGFuIGFnZW50XG4gICAqXG4gICAqIEBwYXJhbSBhZ2VudElkIC0gVGhlIGFnZW50IElEXG4gICAqIEBwYXJhbSB1bnJlYWRPbmx5IC0gV2hldGhlciB0byBvbmx5IHJldHVybiB1bnJlYWQgbm90aWZpY2F0aW9uc1xuICAgKiBAcmV0dXJucyBMaXN0IG9mIG5vdGlmaWNhdGlvbnNcbiAgICovXG4gIGFzeW5jIGxpc3ROb3RpZmljYXRpb25zKGFnZW50SWQ6IHN0cmluZywgdW5yZWFkT25seT86IGJvb2xlYW4pOiBQcm9taXNlPE5vdGlmaWNhdGlvbltdPiB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7IGFnZW50SWQgfSk7XG4gICAgaWYgKHVucmVhZE9ubHkgIT09IHVuZGVmaW5lZCkgcGFyYW1zLnNldCgndW5yZWFkT25seScsIFN0cmluZyh1bnJlYWRPbmx5KSk7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxOb3RpZmljYXRpb25bXT4oYC9ub3RpZmljYXRpb25zPyR7cGFyYW1zfWAsIHtcbiAgICAgIGFwaVZlcnNpb246ICdub25lJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogTWFyayBhIG5vdGlmaWNhdGlvbiBhcyByZWFkXG4gICAqXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBub3RpZmljYXRpb24gSUQgdG8gbWFyayBhcyByZWFkXG4gICAqIEByZXR1cm5zIFRoZSB1cGRhdGVkIG5vdGlmaWNhdGlvblxuICAgKi9cbiAgYXN5bmMgbWFya0FzUmVhZChpZDogc3RyaW5nKTogUHJvbWlzZTxOb3RpZmljYXRpb24+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPE5vdGlmaWNhdGlvbj4oYC9ub3RpZmljYXRpb25zLyR7aWR9L3JlYWRgLCB7XG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICBhcGlWZXJzaW9uOiAnbm9uZScsXG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqIEFsaWFzIGZvciBsaXN0Tm90aWZpY2F0aW9ucygpICovXG4gIGFzeW5jIGxpc3QoYWdlbnRJZDogc3RyaW5nLCB1bnJlYWRPbmx5PzogYm9vbGVhbik6IFByb21pc2U8Tm90aWZpY2F0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5saXN0Tm90aWZpY2F0aW9ucyhhZ2VudElkLCB1bnJlYWRPbmx5KTtcbiAgfSxcbn07XG5cbmV4cG9ydCB7IG5vdGlmaWNhdGlvbnMgYXMgZGVmYXVsdCB9O1xuIl19
|
|
@@ -276,6 +276,17 @@ export declare const qualityMetrics: {
|
|
|
276
276
|
summary: BatchEvaluationSummary;
|
|
277
277
|
results: BatchEvaluationResult[];
|
|
278
278
|
}>;
|
|
279
|
+
/** Alias for evaluateRag() */
|
|
280
|
+
evaluate(input: {
|
|
281
|
+
query: string;
|
|
282
|
+
response: string;
|
|
283
|
+
retrievedContexts: RetrievedContext[];
|
|
284
|
+
groundTruthContexts?: GroundTruthContext[];
|
|
285
|
+
citations?: string[];
|
|
286
|
+
}): Promise<{
|
|
287
|
+
evaluation: RAGEvaluation;
|
|
288
|
+
evidence: RAGEvidence;
|
|
289
|
+
}>;
|
|
279
290
|
};
|
|
280
291
|
/**
|
|
281
292
|
* Check if a RAG evaluation passes quality thresholds
|
|
@@ -132,6 +132,10 @@ exports.qualityMetrics = {
|
|
|
132
132
|
apiVersion: 'v1',
|
|
133
133
|
});
|
|
134
134
|
},
|
|
135
|
+
/** Alias for evaluateRag() */
|
|
136
|
+
async evaluate(input) {
|
|
137
|
+
return this.evaluateRag(input);
|
|
138
|
+
},
|
|
135
139
|
};
|
|
136
140
|
// ============================================================================
|
|
137
141
|
// HELPER FUNCTIONS
|
|
@@ -195,4 +199,4 @@ function getGradeColor(grade) {
|
|
|
195
199
|
};
|
|
196
200
|
return colors[grade];
|
|
197
201
|
}
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhbGl0eS1tZXRyaWNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9xdWFsaXR5LW1ldHJpY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7OztBQXFWSCx3REFnQkM7QUFLRCxzRUFNQztBQUtELDhEQTJCQztBQUtELGdEQUVDO0FBS0Qsc0NBV0M7QUFyYUQsMkNBQWdFO0FBa0toRSwrRUFBK0U7QUFDL0UsNkJBQTZCO0FBQzdCLCtFQUErRTtBQUUvRTs7R0FFRztBQUNVLFFBQUEsY0FBYyxHQUFHO0lBQzVCOzs7Ozs7Ozs7T0FTRztJQUNILEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBZTtRQUtoQyxPQUFPLElBQUEsMkJBQWtCLEVBQUMsdUJBQXVCLE9BQU8sRUFBRSxFQUFFO1lBQzFELFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0gsS0FBSyxDQUFDLHNCQUFzQixDQUFDLE9BQWU7UUFJMUMsT0FBTyxJQUFBLDJCQUFrQixFQUFDLGlDQUFpQyxPQUFPLEVBQUUsRUFBRTtZQUNwRSxVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7O09BY0c7SUFDSCxLQUFLLENBQUMsV0FBVyxDQUFDLEtBTWpCO1FBSUMsT0FBTyxJQUFBLDJCQUFrQixFQUFDLHVCQUF1QixFQUFFO1lBQ2pELE1BQU0sRUFBRSxNQUFNO1lBQ2QsSUFBSSxFQUFFLEtBQUs7WUFDWCxVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7OztPQWVHO0lBQ0gsS0FBSyxDQUFDLG9CQUFvQixDQUFDLEtBSzFCO1FBR0MsT0FBTyxJQUFBLDJCQUFrQixFQUFDLGdDQUFnQyxFQUFFO1lBQzFELE1BQU0sRUFBRSxNQUFNO1lBQ2QsSUFBSSxFQUFFLEtBQUs7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O0dBRUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxLQUFhO0lBQzlDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDO0FBQ3ZDLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGFBQWEsQ0FDM0IsS0FBa0M7SUFFbEMsTUFBTSxNQUFNLEdBQUc7UUFDYixDQUFDLEVBQUUsT0FBZ0I7UUFDbkIsQ0FBQyxFQUFFLE1BQWU7UUFDbEIsQ0FBQyxFQUFFLFFBQWlCO1FBQ3BCLENBQUMsRUFBRSxRQUFpQjtRQUNwQixDQUFDLEVBQUUsS0FBYztLQUNsQixDQUFDO0lBQ0YsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpbmtIaXZlIFNESyB2My4xIC0gUXVhbGl0eSBNZXRyaWNzIEFQSVxuICpcbiAqIFJBRyBFdmFsdWF0aW9uICYgSGFsbHVjaW5hdGlvbiBEZXRlY3Rpb24gZm9yIEFJIHF1YWxpdHkgYXNzdXJhbmNlXG4gKi9cblxuaW1wb3J0IHsgYXBpUmVxdWVzdCwgYXBpUmVxdWVzdFdpdGhEYXRhIH0gZnJvbSAnLi4vY29yZS9jbGllbnQnO1xuaW1wb3J0IHR5cGUgeyBBcGlSZXNwb25zZSB9IGZyb20gJy4uL2NvcmUvdHlwZXMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFJldHJpZXZlZCBjb250ZXh0IGZvciBSQUcgZXZhbHVhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJldHJpZXZlZENvbnRleHQge1xuICBjb250ZW50OiBzdHJpbmc7XG4gIGNodW5rSW5kZXg/OiBudW1iZXI7XG4gIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHNjb3JlPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEdyb3VuZCB0cnV0aCBjb250ZXh0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdW5kVHJ1dGhDb250ZXh0IHtcbiAgY29udGVudDogc3RyaW5nO1xuICBjaHVua0luZGV4PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEdyb3VuZGVkIHNwYW4gZXZpZGVuY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcm91bmRlZFNwYW4ge1xuICB0ZXh0OiBzdHJpbmc7XG4gIGNvbmZpZGVuY2U6IG51bWJlcjtcbiAgc291cmNlQ2h1bmtJbmRleD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBVbmdyb3VuZGVkIHNwYW4gZXZpZGVuY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVbmdyb3VuZGVkU3BhbiB7XG4gIHRleHQ6IHN0cmluZztcbiAgY29uZmlkZW5jZTogbnVtYmVyO1xufVxuXG4vKipcbiAqIENpdGF0aW9uIG1hcHBpbmdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaXRhdGlvbk1hcCB7XG4gIGNsYWltOiBzdHJpbmc7XG4gIGNpdGVkSW5kZXg6IG51bWJlcjtcbiAgaXNWYWxpZDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSQUcgZXZhbHVhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSQUdFdmFsdWF0aW9uIHtcbiAgLy8gUmV0cmlldmFsIFF1YWxpdHlcbiAgY29udGV4dFJlbGV2YW5jZTogbnVtYmVyO1xuICBjb250ZXh0UHJlY2lzaW9uOiBudW1iZXI7XG4gIGNvbnRleHRSZWNhbGw6IG51bWJlcjtcblxuICAvLyBHZW5lcmF0aW9uIFF1YWxpdHlcbiAgZ3JvdW5kZWRuZXNzOiBudW1iZXI7XG4gIGZhaXRoZnVsbmVzczogbnVtYmVyO1xuICBhbnN3ZXJSZWxldmFuY2U6IG51bWJlcjtcblxuICAvLyBDaXRhdGlvbiBRdWFsaXR5XG4gIGNpdGF0aW9uQWNjdXJhY3k6IG51bWJlcjtcbiAgY2l0YXRpb25Db21wbGV0ZW5lc3M6IG51bWJlcjtcblxuICAvLyBPdmVyYWxsXG4gIG92ZXJhbGxTY29yZTogbnVtYmVyO1xuICBncmFkZTogJ0EnIHwgJ0InIHwgJ0MnIHwgJ0QnIHwgJ0YnO1xuXG4gIC8vIERldGFpbHNcbiAgZ3JvdW5kZWRTcGFuQ291bnQ/OiBudW1iZXI7XG4gIHVuZ3JvdW5kZWRTcGFuQ291bnQ/OiBudW1iZXI7XG4gIGlzc3Vlczogc3RyaW5nW107XG4gIHJlY29tbWVuZGF0aW9uczogc3RyaW5nW107XG59XG5cbi8qKlxuICogUkFHIGV2YWx1YXRpb24gZXZpZGVuY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSQUdFdmlkZW5jZSB7XG4gIGdyb3VuZGVkU3BhbnM6IEdyb3VuZGVkU3BhbltdO1xuICB1bmdyb3VuZGVkU3BhbnM6IFVuZ3JvdW5kZWRTcGFuW107XG4gIGNpdGF0aW9uTWFwOiBDaXRhdGlvbk1hcFtdO1xufVxuXG4vKipcbiAqIEhhbGx1Y2luYXRpb24gaW5zdGFuY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIYWxsdWNpbmF0aW9uSW5zdGFuY2Uge1xuICB0eXBlOiBzdHJpbmc7XG4gIHNldmVyaXR5OiAnbG93JyB8ICdtZWRpdW0nIHwgJ2hpZ2gnIHwgJ2NyaXRpY2FsJztcbiAgdGV4dDogc3RyaW5nO1xuICBleHBsYW5hdGlvbjogc3RyaW5nO1xuICBjb25maWRlbmNlOiBudW1iZXI7XG4gIHN1Z2dlc3RlZEZpeD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBIYWxsdWNpbmF0aW9uIGRldGVjdGlvbiByZXBvcnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIYWxsdWNpbmF0aW9uUmVwb3J0IHtcbiAgaGFzSGFsbHVjaW5hdGlvbnM6IGJvb2xlYW47XG4gIGhhbGx1Y2luYXRpb25TY29yZTogbnVtYmVyO1xuICByaXNrTGV2ZWw6ICdsb3cnIHwgJ21lZGl1bScgfCAnaGlnaCcgfCAnY3JpdGljYWwnO1xuICBmYWN0dWFsQ2xhaW1zOiBudW1iZXI7XG4gIHZlcmlmaWVkQ2xhaW1zOiBudW1iZXI7XG4gIHVudmVyaWZpZWRDbGFpbXM6IG51bWJlcjtcbiAgc3VtbWFyeTogc3RyaW5nO1xuICByZWNvbW1lbmRhdGlvbnM6IHN0cmluZ1tdO1xuICBpbnN0YW5jZXM6IEhhbGx1Y2luYXRpb25JbnN0YW5jZVtdO1xufVxuXG4vKipcbiAqIEdyb3VuZGVkbmVzcyBhbmFseXNpcyByZXN1bHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcm91bmRlZG5lc3NSZXN1bHQge1xuICBzY29yZTogbnVtYmVyO1xuICBmYWl0aGZ1bG5lc3M6IG51bWJlcjtcbiAgY29udGV4dFJlbGV2YW5jZTogbnVtYmVyO1xuICBncmFkZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEJhdGNoIGV2YWx1YXRpb24gcmVzdWx0IGZvciBhIHNpbmdsZSB0cmFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhdGNoRXZhbHVhdGlvblJlc3VsdCB7XG4gIHRyYWNlSWQ6IHN0cmluZztcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgZXJyb3I/OiBzdHJpbmc7XG4gIHJhZz86IHtcbiAgICBzY29yZTogbnVtYmVyO1xuICAgIGdyYWRlOiBzdHJpbmc7XG4gICAgbWFpbklzc3VlPzogc3RyaW5nO1xuICB9O1xuICBoYWxsdWNpbmF0aW9uPzoge1xuICAgIGhhc0lzc3VlczogYm9vbGVhbjtcbiAgICBzY29yZTogbnVtYmVyO1xuICAgIHRvcElzc3VlPzogc3RyaW5nO1xuICB9O1xufVxuXG4vKipcbiAqIEJhdGNoIGV2YWx1YXRpb24gc3VtbWFyeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhdGNoRXZhbHVhdGlvblN1bW1hcnkge1xuICB0b3RhbFRyYWNlczogbnVtYmVyO1xuICBzdWNjZXNzZnVsRXZhbHVhdGlvbnM6IG51bWJlcjtcbiAgYXZnUmFnU2NvcmU6IG51bWJlcjtcbiAgaGFsbHVjaW5hdGlvblJhdGU6IG51bWJlcjtcbiAgZ3JhZGVEaXN0cmlidXRpb246IHtcbiAgICBBOiBudW1iZXI7XG4gICAgQjogbnVtYmVyO1xuICAgIEM6IG51bWJlcjtcbiAgICBEOiBudW1iZXI7XG4gICAgRjogbnVtYmVyO1xuICB9O1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBRVUFMSVRZIE1FVFJJQ1MgQVBJIENMSUVOVFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFF1YWxpdHkgTWV0cmljcyBBUEkgY2xpZW50IGZvciBSQUcgZXZhbHVhdGlvbiBhbmQgaGFsbHVjaW5hdGlvbiBkZXRlY3Rpb25cbiAqL1xuZXhwb3J0IGNvbnN0IHF1YWxpdHlNZXRyaWNzID0ge1xuICAvKipcbiAgICogR2V0IFJBRyBxdWFsaXR5IHNjb3JlcyBmb3IgYSBzcGVjaWZpYyB0cmFjZVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHNjb3JlcyA9IGF3YWl0IHF1YWxpdHlNZXRyaWNzLmdldFJhZ1Njb3JlcygndHJhY2VfYWJjMTIzJyk7XG4gICAqIGNvbnNvbGUubG9nKGBHcm91bmRlZG5lc3M6ICR7c2NvcmVzLmV2YWx1YXRpb24uZ3JvdW5kZWRuZXNzfWApO1xuICAgKiBjb25zb2xlLmxvZyhgR3JhZGU6ICR7c2NvcmVzLmV2YWx1YXRpb24uZ3JhZGV9YCk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgZ2V0UmFnU2NvcmVzKHRyYWNlSWQ6IHN0cmluZyk6IFByb21pc2U8e1xuICAgIHRyYWNlSWQ6IHN0cmluZztcbiAgICBldmFsdWF0aW9uOiBSQUdFdmFsdWF0aW9uO1xuICAgIGV2aWRlbmNlOiBSQUdFdmlkZW5jZTtcbiAgfT4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGEoYC9xdWFsaXR5L3JhZy1zY29yZXMvJHt0cmFjZUlkfWAsIHtcbiAgICAgIGFwaVZlcnNpb246ICd2MScsXG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEdldCBoYWxsdWNpbmF0aW9uIGRldGVjdGlvbiByZXBvcnQgZm9yIGEgdHJhY2VcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCByZXBvcnQgPSBhd2FpdCBxdWFsaXR5TWV0cmljcy5nZXRIYWxsdWNpbmF0aW9uUmVwb3J0KCd0cmFjZV9hYmMxMjMnKTtcbiAgICogaWYgKHJlcG9ydC5yZXBvcnQuaGFzSGFsbHVjaW5hdGlvbnMpIHtcbiAgICogICBjb25zb2xlLmxvZyhgUmlzayBsZXZlbDogJHtyZXBvcnQucmVwb3J0LnJpc2tMZXZlbH1gKTtcbiAgICogICBmb3IgKGNvbnN0IGluc3RhbmNlIG9mIHJlcG9ydC5yZXBvcnQuaW5zdGFuY2VzKSB7XG4gICAqICAgICBjb25zb2xlLmxvZyhgLSAke2luc3RhbmNlLnR5cGV9OiAke2luc3RhbmNlLnRleHR9YCk7XG4gICAqICAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgZ2V0SGFsbHVjaW5hdGlvblJlcG9ydCh0cmFjZUlkOiBzdHJpbmcpOiBQcm9taXNlPHtcbiAgICB0cmFjZUlkOiBzdHJpbmc7XG4gICAgcmVwb3J0OiBIYWxsdWNpbmF0aW9uUmVwb3J0O1xuICB9PiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YShgL3F1YWxpdHkvaGFsbHVjaW5hdGlvbi1yZXBvcnQvJHt0cmFjZUlkfWAsIHtcbiAgICAgIGFwaVZlcnNpb246ICd2MScsXG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEV2YWx1YXRlIFJBRyBxdWFsaXR5IGZvciBwcm92aWRlZCBjb250ZW50IChhZC1ob2MgZXZhbHVhdGlvbilcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCByZXN1bHQgPSBhd2FpdCBxdWFsaXR5TWV0cmljcy5ldmFsdWF0ZVJhZyh7XG4gICAqICAgcXVlcnk6ICdXaGF0IGlzIHRoZSByZWZ1bmQgcG9saWN5PycsXG4gICAqICAgcmVzcG9uc2U6ICdZb3UgY2FuIGdldCBhIHJlZnVuZCB3aXRoaW4gMzAgZGF5cy4nLFxuICAgKiAgIHJldHJpZXZlZENvbnRleHRzOiBbXG4gICAqICAgICB7IGNvbnRlbnQ6ICdPdXIgcmVmdW5kIHBvbGljeSBhbGxvd3MgcmV0dXJucyB3aXRoaW4gMzAgZGF5cyBvZiBwdXJjaGFzZS4nIH0sXG4gICAqICAgXSxcbiAgICogfSk7XG4gICAqIGNvbnNvbGUubG9nKGBHcm91bmRlZG5lc3M6ICR7cmVzdWx0LmV2YWx1YXRpb24uZ3JvdW5kZWRuZXNzfWApO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGV2YWx1YXRlUmFnKGlucHV0OiB7XG4gICAgcXVlcnk6IHN0cmluZztcbiAgICByZXNwb25zZTogc3RyaW5nO1xuICAgIHJldHJpZXZlZENvbnRleHRzOiBSZXRyaWV2ZWRDb250ZXh0W107XG4gICAgZ3JvdW5kVHJ1dGhDb250ZXh0cz86IEdyb3VuZFRydXRoQ29udGV4dFtdO1xuICAgIGNpdGF0aW9ucz86IHN0cmluZ1tdO1xuICB9KTogUHJvbWlzZTx7XG4gICAgZXZhbHVhdGlvbjogUkFHRXZhbHVhdGlvbjtcbiAgICBldmlkZW5jZTogUkFHRXZpZGVuY2U7XG4gIH0+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhKCcvcXVhbGl0eS9ldmFsdWF0ZS1yYWcnLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IGlucHV0LFxuICAgICAgYXBpVmVyc2lvbjogJ3YxJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogRGV0ZWN0IGhhbGx1Y2luYXRpb25zIGluIHByb3ZpZGVkIGNvbnRlbnQgKGFkLWhvYyBkZXRlY3Rpb24pXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgcmVzdWx0ID0gYXdhaXQgcXVhbGl0eU1ldHJpY3MuZGV0ZWN0SGFsbHVjaW5hdGlvbnMoe1xuICAgKiAgIHJlc3BvbnNlOiAnVGhlIHByb2R1Y3QgY29zdHMgJDk5IGFuZCBjb21lcyB3aXRoIGEgMi15ZWFyIHdhcnJhbnR5LicsXG4gICAqICAgY29udGV4dHM6IFtcbiAgICogICAgIHsgY29udGVudDogJ1RoZSBwcm9kdWN0IGNvc3RzICQ5OSB3aXRoIGEgMS15ZWFyIHdhcnJhbnR5LicgfSxcbiAgICogICBdLFxuICAgKiB9KTtcbiAgICogaWYgKHJlc3VsdC5yZXBvcnQuaGFzSGFsbHVjaW5hdGlvbnMpIHtcbiAgICogICBjb25zb2xlLmxvZygnRGV0ZWN0ZWQgaGFsbHVjaW5hdGlvbnM6JywgcmVzdWx0LnJlcG9ydC5pbnN0YW5jZXMpO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgZGV0ZWN0SGFsbHVjaW5hdGlvbnMoaW5wdXQ6IHtcbiAgICByZXNwb25zZTogc3RyaW5nO1xuICAgIGNvbnRleHRzOiBBcnJheTx7IGNvbnRlbnQ6IHN0cmluZzsgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB9PjtcbiAgICBxdWVyeT86IHN0cmluZztcbiAgICBwcmV2aW91c1Jlc3BvbnNlcz86IHN0cmluZ1tdO1xuICB9KTogUHJvbWlzZTx7XG4gICAgcmVwb3J0OiBIYWxsdWNpbmF0aW9uUmVwb3J0O1xuICB9PiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YSgnL3F1YWxpdHkvZGV0ZWN0LWhhbGx1Y2luYXRpb25zJywge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBpbnB1dCxcbiAgICAgIGFwaVZlcnNpb246ICd2MScsXG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEdldCBncm91bmRlZG5lc3MgYW5hbHlzaXMgZm9yIGEgdHJhY2VcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCByZXN1bHQgPSBhd2FpdCBxdWFsaXR5TWV0cmljcy5nZXRHcm91bmRlZG5lc3MoJ3RyYWNlX2FiYzEyMycpO1xuICAgKiBjb25zb2xlLmxvZyhgR3JvdW5kZWRuZXNzIHNjb3JlOiAke3Jlc3VsdC5ncm91bmRlZG5lc3Muc2NvcmV9YCk7XG4gICAqIGNvbnNvbGUubG9nKGBHcm91bmRlZCBzcGFuczogJHtyZXN1bHQuc3VtbWFyeS5ncm91bmRlZFNwYW5zfWApO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGdldEdyb3VuZGVkbmVzcyh0cmFjZUlkOiBzdHJpbmcpOiBQcm9taXNlPHtcbiAgICB0cmFjZUlkOiBzdHJpbmc7XG4gICAgZ3JvdW5kZWRuZXNzOiBHcm91bmRlZG5lc3NSZXN1bHQ7XG4gICAgc3BhbnM6IHtcbiAgICAgIGdyb3VuZGVkOiBBcnJheTx7IHRleHQ6IHN0cmluZzsgY29uZmlkZW5jZTogbnVtYmVyOyBzb3VyY2VJbmRleDogbnVtYmVyIH0+O1xuICAgICAgdW5ncm91bmRlZDogQXJyYXk8eyB0ZXh0OiBzdHJpbmc7IGNvbmZpZGVuY2U6IG51bWJlciB9PjtcbiAgICB9O1xuICAgIHN1bW1hcnk6IHtcbiAgICAgIHRvdGFsU3BhbnM6IG51bWJlcjtcbiAgICAgIGdyb3VuZGVkU3BhbnM6IG51bWJlcjtcbiAgICAgIHVuZ3JvdW5kZWRTcGFuczogbnVtYmVyO1xuICAgICAgZ3JvdW5kZWRuZXNzUmF0aW86IG51bWJlcjtcbiAgICB9O1xuICB9PiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YShgL3F1YWxpdHkvZ3JvdW5kZWRuZXNzLyR7dHJhY2VJZH1gLCB7XG4gICAgICBhcGlWZXJzaW9uOiAndjEnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBFdmFsdWF0ZSBtdWx0aXBsZSB0cmFjZXMgZm9yIHF1YWxpdHkgbWV0cmljcyBpbiBiYXRjaFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHF1YWxpdHlNZXRyaWNzLmV2YWx1YXRlQmF0Y2goe1xuICAgKiAgIHRyYWNlSWRzOiBbJ3RyYWNlXzEnLCAndHJhY2VfMicsICd0cmFjZV8zJ10sXG4gICAqIH0pO1xuICAgKiBjb25zb2xlLmxvZyhgQXZlcmFnZSBSQUcgc2NvcmU6ICR7cmVzdWx0LnN1bW1hcnkuYXZnUmFnU2NvcmV9YCk7XG4gICAqIGNvbnNvbGUubG9nKGBIYWxsdWNpbmF0aW9uIHJhdGU6ICR7cmVzdWx0LnN1bW1hcnkuaGFsbHVjaW5hdGlvblJhdGV9JWApO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGV2YWx1YXRlQmF0Y2gob3B0aW9uczoge1xuICAgIHRyYWNlSWRzOiBzdHJpbmdbXTtcbiAgICBpbmNsdWRlRGV0YWlscz86IGJvb2xlYW47XG4gIH0pOiBQcm9taXNlPHtcbiAgICBzdW1tYXJ5OiBCYXRjaEV2YWx1YXRpb25TdW1tYXJ5O1xuICAgIHJlc3VsdHM6IEJhdGNoRXZhbHVhdGlvblJlc3VsdFtdO1xuICB9PiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YSgnL3F1YWxpdHkvZXZhbHVhdGUtYmF0Y2gnLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IG9wdGlvbnMsXG4gICAgICBhcGlWZXJzaW9uOiAndjEnLFxuICAgIH0pO1xuICB9LFxufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gSEVMUEVSIEZVTkNUSU9OU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIENoZWNrIGlmIGEgUkFHIGV2YWx1YXRpb24gcGFzc2VzIHF1YWxpdHkgdGhyZXNob2xkc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcGFzc2VzUXVhbGl0eVRocmVzaG9sZChcbiAgZXZhbHVhdGlvbjogUkFHRXZhbHVhdGlvbixcbiAgdGhyZXNob2xkczoge1xuICAgIG1pbkdyb3VuZGVkbmVzcz86IG51bWJlcjtcbiAgICBtaW5PdmVyYWxsU2NvcmU/OiBudW1iZXI7XG4gICAgbWluR3JhZGU/OiAnQScgfCAnQicgfCAnQycgfCAnRCc7XG4gIH0gPSB7fVxuKTogYm9vbGVhbiB7XG4gIGNvbnN0IHsgbWluR3JvdW5kZWRuZXNzID0gMC43LCBtaW5PdmVyYWxsU2NvcmUgPSA2MCwgbWluR3JhZGUgPSAnQycgfSA9IHRocmVzaG9sZHM7XG5cbiAgY29uc3QgZ3JhZGVPcmRlciA9IHsgQTogNCwgQjogMywgQzogMiwgRDogMSwgRjogMCB9O1xuICBjb25zdCBtZWV0c0dyb3VuZGVkbmVzcyA9IGV2YWx1YXRpb24uZ3JvdW5kZWRuZXNzID49IG1pbkdyb3VuZGVkbmVzcztcbiAgY29uc3QgbWVldHNTY29yZSA9IGV2YWx1YXRpb24ub3ZlcmFsbFNjb3JlID49IG1pbk92ZXJhbGxTY29yZTtcbiAgY29uc3QgbWVldHNHcmFkZSA9IGdyYWRlT3JkZXJbZXZhbHVhdGlvbi5ncmFkZV0gPj0gZ3JhZGVPcmRlclttaW5HcmFkZV07XG5cbiAgcmV0dXJuIG1lZXRzR3JvdW5kZWRuZXNzICYmIG1lZXRzU2NvcmUgJiYgbWVldHNHcmFkZTtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBoYWxsdWNpbmF0aW9uIHJpc2sgaXMgYWNjZXB0YWJsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNIYWxsdWNpbmF0aW9uUmlza0FjY2VwdGFibGUoXG4gIHJlcG9ydDogSGFsbHVjaW5hdGlvblJlcG9ydCxcbiAgbWF4Umlza0xldmVsOiAnbG93JyB8ICdtZWRpdW0nIHwgJ2hpZ2gnID0gJ21lZGl1bSdcbik6IGJvb2xlYW4ge1xuICBjb25zdCByaXNrT3JkZXIgPSB7IGxvdzogMCwgbWVkaXVtOiAxLCBoaWdoOiAyLCBjcml0aWNhbDogMyB9O1xuICByZXR1cm4gcmlza09yZGVyW3JlcG9ydC5yaXNrTGV2ZWxdIDw9IHJpc2tPcmRlclttYXhSaXNrTGV2ZWxdO1xufVxuXG4vKipcbiAqIEdldCBxdWFsaXR5IHJlY29tbWVuZGF0aW9ucyBiYXNlZCBvbiBldmFsdWF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWFsaXR5UmVjb21tZW5kYXRpb25zKFxuICByYWdFdmFsOiBSQUdFdmFsdWF0aW9uLFxuICBoYWxsdWNpbmF0aW9uUmVwb3J0PzogSGFsbHVjaW5hdGlvblJlcG9ydFxuKTogc3RyaW5nW10ge1xuICBjb25zdCByZWNvbW1lbmRhdGlvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgaWYgKHJhZ0V2YWwuZ3JvdW5kZWRuZXNzIDwgMC43KSB7XG4gICAgcmVjb21tZW5kYXRpb25zLnB1c2goJ0ltcHJvdmUgZ3JvdW5kaW5nIGJ5IGluY3JlYXNpbmcgY29udGV4dCByZWxldmFuY2UnKTtcbiAgfVxuXG4gIGlmIChyYWdFdmFsLmNvbnRleHRSZWxldmFuY2UgPCAwLjYpIHtcbiAgICByZWNvbW1lbmRhdGlvbnMucHVzaCgnVHVuZSByZXRyaWV2YWwgdG8gcmV0dXJuIG1vcmUgcmVsZXZhbnQgY29udGV4dHMnKTtcbiAgfVxuXG4gIGlmIChyYWdFdmFsLmNpdGF0aW9uQWNjdXJhY3kgPCAwLjgpIHtcbiAgICByZWNvbW1lbmRhdGlvbnMucHVzaCgnSW1wcm92ZSBjaXRhdGlvbiBhY2N1cmFjeSBpbiByZXNwb25zZXMnKTtcbiAgfVxuXG4gIGlmIChoYWxsdWNpbmF0aW9uUmVwb3J0Py5oYXNIYWxsdWNpbmF0aW9ucykge1xuICAgIHJlY29tbWVuZGF0aW9ucy5wdXNoKCdBZGQgZmFjdC1jaGVja2luZyBsYXllciB0byByZWR1Y2UgaGFsbHVjaW5hdGlvbnMnKTtcbiAgfVxuXG4gIGlmIChyZWNvbW1lbmRhdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmVjb21tZW5kYXRpb25zLnB1c2goJ1F1YWxpdHkgbWV0cmljcyBhcmUgd2l0aGluIGFjY2VwdGFibGUgcmFuZ2VzJyk7XG4gIH1cblxuICByZXR1cm4gcmVjb21tZW5kYXRpb25zO1xufVxuXG4vKipcbiAqIEZvcm1hdCBxdWFsaXR5IHNjb3JlIGZvciBkaXNwbGF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRRdWFsaXR5U2NvcmUoc2NvcmU6IG51bWJlcik6IHN0cmluZyB7XG4gIHJldHVybiBgJHtNYXRoLnJvdW5kKHNjb3JlICogMTAwKX0lYDtcbn1cblxuLyoqXG4gKiBHZXQgY29sb3IgaW5kaWNhdG9yIGZvciBncmFkZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0R3JhZGVDb2xvcihcbiAgZ3JhZGU6ICdBJyB8ICdCJyB8ICdDJyB8ICdEJyB8ICdGJ1xuKTogJ2dyZWVuJyB8ICdibHVlJyB8ICd5ZWxsb3cnIHwgJ29yYW5nZScgfCAncmVkJyB7XG4gIGNvbnN0IGNvbG9ycyA9IHtcbiAgICBBOiAnZ3JlZW4nIGFzIGNvbnN0LFxuICAgIEI6ICdibHVlJyBhcyBjb25zdCxcbiAgICBDOiAneWVsbG93JyBhcyBjb25zdCxcbiAgICBEOiAnb3JhbmdlJyBhcyBjb25zdCxcbiAgICBGOiAncmVkJyBhcyBjb25zdCxcbiAgfTtcbiAgcmV0dXJuIGNvbG9yc1tncmFkZV07XG59XG4iXX0=
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhbGl0eS1tZXRyaWNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9xdWFsaXR5LW1ldHJpY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7OztBQW1XSCx3REFnQkM7QUFLRCxzRUFNQztBQUtELDhEQTJCQztBQUtELGdEQUVDO0FBS0Qsc0NBV0M7QUFuYkQsMkNBQWdFO0FBa0toRSwrRUFBK0U7QUFDL0UsNkJBQTZCO0FBQzdCLCtFQUErRTtBQUUvRTs7R0FFRztBQUNVLFFBQUEsY0FBYyxHQUFHO0lBQzVCOzs7Ozs7Ozs7T0FTRztJQUNILEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBZTtRQUtoQyxPQUFPLElBQUEsMkJBQWtCLEVBQUMsdUJBQXVCLE9BQU8sRUFBRSxFQUFFO1lBQzFELFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0gsS0FBSyxDQUFDLHNCQUFzQixDQUFDLE9BQWU7UUFJMUMsT0FBTyxJQUFBLDJCQUFrQixFQUFDLGlDQUFpQyxPQUFPLEVBQUUsRUFBRTtZQUNwRSxVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7O09BY0c7SUFDSCxLQUFLLENBQUMsV0FBVyxDQUFDLEtBTWpCO1FBSUMsT0FBTyxJQUFBLDJCQUFrQixFQUFDLHVCQUF1QixFQUFFO1lBQ2pELE1BQU0sRUFBRSxNQUFNO1lBQ2QsSUFBSSxFQUFFLEtBQUs7WUFDWCxVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7OztPQWVHO0lBQ0gsS0FBSyxDQUFDLG9CQUFvQixDQUFDLEtBSzFCO1FBR0MsT0FBTyxJQUFBLDJCQUFrQixFQUFDLGdDQUFnQyxFQUFFO1lBQzFELE1BQU0sRUFBRSxNQUFNO1lBQ2QsSUFBSSxFQUFFLEtBQUs7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QUFFLENBQUM7UUFDakMsZUFBZSxDQUFDLElBQUksQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxLQUFhO0lBQzlDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDO0FBQ3ZDLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGFBQWEsQ0FDM0IsS0FBa0M7SUFFbEMsTUFBTSxNQUFNLEdBQUc7UUFDYixDQUFDLEVBQUUsT0FBZ0I7UUFDbkIsQ0FBQyxFQUFFLE1BQWU7UUFDbEIsQ0FBQyxFQUFFLFFBQWlCO1FBQ3BCLENBQUMsRUFBRSxRQUFpQjtRQUNwQixDQUFDLEVBQUUsS0FBYztLQUNsQixDQUFDO0lBQ0YsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpbmtIaXZlIFNESyB2My4xIC0gUXVhbGl0eSBNZXRyaWNzIEFQSVxuICpcbiAqIFJBRyBFdmFsdWF0aW9uICYgSGFsbHVjaW5hdGlvbiBEZXRlY3Rpb24gZm9yIEFJIHF1YWxpdHkgYXNzdXJhbmNlXG4gKi9cblxuaW1wb3J0IHsgYXBpUmVxdWVzdCwgYXBpUmVxdWVzdFdpdGhEYXRhIH0gZnJvbSAnLi4vY29yZS9jbGllbnQnO1xuaW1wb3J0IHR5cGUgeyBBcGlSZXNwb25zZSB9IGZyb20gJy4uL2NvcmUvdHlwZXMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFJldHJpZXZlZCBjb250ZXh0IGZvciBSQUcgZXZhbHVhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJldHJpZXZlZENvbnRleHQge1xuICBjb250ZW50OiBzdHJpbmc7XG4gIGNodW5rSW5kZXg/OiBudW1iZXI7XG4gIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHNjb3JlPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEdyb3VuZCB0cnV0aCBjb250ZXh0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdW5kVHJ1dGhDb250ZXh0IHtcbiAgY29udGVudDogc3RyaW5nO1xuICBjaHVua0luZGV4PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEdyb3VuZGVkIHNwYW4gZXZpZGVuY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcm91bmRlZFNwYW4ge1xuICB0ZXh0OiBzdHJpbmc7XG4gIGNvbmZpZGVuY2U6IG51bWJlcjtcbiAgc291cmNlQ2h1bmtJbmRleD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBVbmdyb3VuZGVkIHNwYW4gZXZpZGVuY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVbmdyb3VuZGVkU3BhbiB7XG4gIHRleHQ6IHN0cmluZztcbiAgY29uZmlkZW5jZTogbnVtYmVyO1xufVxuXG4vKipcbiAqIENpdGF0aW9uIG1hcHBpbmdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaXRhdGlvbk1hcCB7XG4gIGNsYWltOiBzdHJpbmc7XG4gIGNpdGVkSW5kZXg6IG51bWJlcjtcbiAgaXNWYWxpZDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSQUcgZXZhbHVhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSQUdFdmFsdWF0aW9uIHtcbiAgLy8gUmV0cmlldmFsIFF1YWxpdHlcbiAgY29udGV4dFJlbGV2YW5jZTogbnVtYmVyO1xuICBjb250ZXh0UHJlY2lzaW9uOiBudW1iZXI7XG4gIGNvbnRleHRSZWNhbGw6IG51bWJlcjtcblxuICAvLyBHZW5lcmF0aW9uIFF1YWxpdHlcbiAgZ3JvdW5kZWRuZXNzOiBudW1iZXI7XG4gIGZhaXRoZnVsbmVzczogbnVtYmVyO1xuICBhbnN3ZXJSZWxldmFuY2U6IG51bWJlcjtcblxuICAvLyBDaXRhdGlvbiBRdWFsaXR5XG4gIGNpdGF0aW9uQWNjdXJhY3k6IG51bWJlcjtcbiAgY2l0YXRpb25Db21wbGV0ZW5lc3M6IG51bWJlcjtcblxuICAvLyBPdmVyYWxsXG4gIG92ZXJhbGxTY29yZTogbnVtYmVyO1xuICBncmFkZTogJ0EnIHwgJ0InIHwgJ0MnIHwgJ0QnIHwgJ0YnO1xuXG4gIC8vIERldGFpbHNcbiAgZ3JvdW5kZWRTcGFuQ291bnQ/OiBudW1iZXI7XG4gIHVuZ3JvdW5kZWRTcGFuQ291bnQ/OiBudW1iZXI7XG4gIGlzc3Vlczogc3RyaW5nW107XG4gIHJlY29tbWVuZGF0aW9uczogc3RyaW5nW107XG59XG5cbi8qKlxuICogUkFHIGV2YWx1YXRpb24gZXZpZGVuY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSQUdFdmlkZW5jZSB7XG4gIGdyb3VuZGVkU3BhbnM6IEdyb3VuZGVkU3BhbltdO1xuICB1bmdyb3VuZGVkU3BhbnM6IFVuZ3JvdW5kZWRTcGFuW107XG4gIGNpdGF0aW9uTWFwOiBDaXRhdGlvbk1hcFtdO1xufVxuXG4vKipcbiAqIEhhbGx1Y2luYXRpb24gaW5zdGFuY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIYWxsdWNpbmF0aW9uSW5zdGFuY2Uge1xuICB0eXBlOiBzdHJpbmc7XG4gIHNldmVyaXR5OiAnbG93JyB8ICdtZWRpdW0nIHwgJ2hpZ2gnIHwgJ2NyaXRpY2FsJztcbiAgdGV4dDogc3RyaW5nO1xuICBleHBsYW5hdGlvbjogc3RyaW5nO1xuICBjb25maWRlbmNlOiBudW1iZXI7XG4gIHN1Z2dlc3RlZEZpeD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBIYWxsdWNpbmF0aW9uIGRldGVjdGlvbiByZXBvcnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIYWxsdWNpbmF0aW9uUmVwb3J0IHtcbiAgaGFzSGFsbHVjaW5hdGlvbnM6IGJvb2xlYW47XG4gIGhhbGx1Y2luYXRpb25TY29yZTogbnVtYmVyO1xuICByaXNrTGV2ZWw6ICdsb3cnIHwgJ21lZGl1bScgfCAnaGlnaCcgfCAnY3JpdGljYWwnO1xuICBmYWN0dWFsQ2xhaW1zOiBudW1iZXI7XG4gIHZlcmlmaWVkQ2xhaW1zOiBudW1iZXI7XG4gIHVudmVyaWZpZWRDbGFpbXM6IG51bWJlcjtcbiAgc3VtbWFyeTogc3RyaW5nO1xuICByZWNvbW1lbmRhdGlvbnM6IHN0cmluZ1tdO1xuICBpbnN0YW5jZXM6IEhhbGx1Y2luYXRpb25JbnN0YW5jZVtdO1xufVxuXG4vKipcbiAqIEdyb3VuZGVkbmVzcyBhbmFseXNpcyByZXN1bHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcm91bmRlZG5lc3NSZXN1bHQge1xuICBzY29yZTogbnVtYmVyO1xuICBmYWl0aGZ1bG5lc3M6IG51bWJlcjtcbiAgY29udGV4dFJlbGV2YW5jZTogbnVtYmVyO1xuICBncmFkZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEJhdGNoIGV2YWx1YXRpb24gcmVzdWx0IGZvciBhIHNpbmdsZSB0cmFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhdGNoRXZhbHVhdGlvblJlc3VsdCB7XG4gIHRyYWNlSWQ6IHN0cmluZztcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgZXJyb3I/OiBzdHJpbmc7XG4gIHJhZz86IHtcbiAgICBzY29yZTogbnVtYmVyO1xuICAgIGdyYWRlOiBzdHJpbmc7XG4gICAgbWFpbklzc3VlPzogc3RyaW5nO1xuICB9O1xuICBoYWxsdWNpbmF0aW9uPzoge1xuICAgIGhhc0lzc3VlczogYm9vbGVhbjtcbiAgICBzY29yZTogbnVtYmVyO1xuICAgIHRvcElzc3VlPzogc3RyaW5nO1xuICB9O1xufVxuXG4vKipcbiAqIEJhdGNoIGV2YWx1YXRpb24gc3VtbWFyeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhdGNoRXZhbHVhdGlvblN1bW1hcnkge1xuICB0b3RhbFRyYWNlczogbnVtYmVyO1xuICBzdWNjZXNzZnVsRXZhbHVhdGlvbnM6IG51bWJlcjtcbiAgYXZnUmFnU2NvcmU6IG51bWJlcjtcbiAgaGFsbHVjaW5hdGlvblJhdGU6IG51bWJlcjtcbiAgZ3JhZGVEaXN0cmlidXRpb246IHtcbiAgICBBOiBudW1iZXI7XG4gICAgQjogbnVtYmVyO1xuICAgIEM6IG51bWJlcjtcbiAgICBEOiBudW1iZXI7XG4gICAgRjogbnVtYmVyO1xuICB9O1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBRVUFMSVRZIE1FVFJJQ1MgQVBJIENMSUVOVFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFF1YWxpdHkgTWV0cmljcyBBUEkgY2xpZW50IGZvciBSQUcgZXZhbHVhdGlvbiBhbmQgaGFsbHVjaW5hdGlvbiBkZXRlY3Rpb25cbiAqL1xuZXhwb3J0IGNvbnN0IHF1YWxpdHlNZXRyaWNzID0ge1xuICAvKipcbiAgICogR2V0IFJBRyBxdWFsaXR5IHNjb3JlcyBmb3IgYSBzcGVjaWZpYyB0cmFjZVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHNjb3JlcyA9IGF3YWl0IHF1YWxpdHlNZXRyaWNzLmdldFJhZ1Njb3JlcygndHJhY2VfYWJjMTIzJyk7XG4gICAqIGNvbnNvbGUubG9nKGBHcm91bmRlZG5lc3M6ICR7c2NvcmVzLmV2YWx1YXRpb24uZ3JvdW5kZWRuZXNzfWApO1xuICAgKiBjb25zb2xlLmxvZyhgR3JhZGU6ICR7c2NvcmVzLmV2YWx1YXRpb24uZ3JhZGV9YCk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgZ2V0UmFnU2NvcmVzKHRyYWNlSWQ6IHN0cmluZyk6IFByb21pc2U8e1xuICAgIHRyYWNlSWQ6IHN0cmluZztcbiAgICBldmFsdWF0aW9uOiBSQUdFdmFsdWF0aW9uO1xuICAgIGV2aWRlbmNlOiBSQUdFdmlkZW5jZTtcbiAgfT4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGEoYC9xdWFsaXR5L3JhZy1zY29yZXMvJHt0cmFjZUlkfWAsIHtcbiAgICAgIGFwaVZlcnNpb246ICd2MScsXG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEdldCBoYWxsdWNpbmF0aW9uIGRldGVjdGlvbiByZXBvcnQgZm9yIGEgdHJhY2VcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCByZXBvcnQgPSBhd2FpdCBxdWFsaXR5TWV0cmljcy5nZXRIYWxsdWNpbmF0aW9uUmVwb3J0KCd0cmFjZV9hYmMxMjMnKTtcbiAgICogaWYgKHJlcG9ydC5yZXBvcnQuaGFzSGFsbHVjaW5hdGlvbnMpIHtcbiAgICogICBjb25zb2xlLmxvZyhgUmlzayBsZXZlbDogJHtyZXBvcnQucmVwb3J0LnJpc2tMZXZlbH1gKTtcbiAgICogICBmb3IgKGNvbnN0IGluc3RhbmNlIG9mIHJlcG9ydC5yZXBvcnQuaW5zdGFuY2VzKSB7XG4gICAqICAgICBjb25zb2xlLmxvZyhgLSAke2luc3RhbmNlLnR5cGV9OiAke2luc3RhbmNlLnRleHR9YCk7XG4gICAqICAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgZ2V0SGFsbHVjaW5hdGlvblJlcG9ydCh0cmFjZUlkOiBzdHJpbmcpOiBQcm9taXNlPHtcbiAgICB0cmFjZUlkOiBzdHJpbmc7XG4gICAgcmVwb3J0OiBIYWxsdWNpbmF0aW9uUmVwb3J0O1xuICB9PiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YShgL3F1YWxpdHkvaGFsbHVjaW5hdGlvbi1yZXBvcnQvJHt0cmFjZUlkfWAsIHtcbiAgICAgIGFwaVZlcnNpb246ICd2MScsXG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEV2YWx1YXRlIFJBRyBxdWFsaXR5IGZvciBwcm92aWRlZCBjb250ZW50IChhZC1ob2MgZXZhbHVhdGlvbilcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCByZXN1bHQgPSBhd2FpdCBxdWFsaXR5TWV0cmljcy5ldmFsdWF0ZVJhZyh7XG4gICAqICAgcXVlcnk6ICdXaGF0IGlzIHRoZSByZWZ1bmQgcG9saWN5PycsXG4gICAqICAgcmVzcG9uc2U6ICdZb3UgY2FuIGdldCBhIHJlZnVuZCB3aXRoaW4gMzAgZGF5cy4nLFxuICAgKiAgIHJldHJpZXZlZENvbnRleHRzOiBbXG4gICAqICAgICB7IGNvbnRlbnQ6ICdPdXIgcmVmdW5kIHBvbGljeSBhbGxvd3MgcmV0dXJucyB3aXRoaW4gMzAgZGF5cyBvZiBwdXJjaGFzZS4nIH0sXG4gICAqICAgXSxcbiAgICogfSk7XG4gICAqIGNvbnNvbGUubG9nKGBHcm91bmRlZG5lc3M6ICR7cmVzdWx0LmV2YWx1YXRpb24uZ3JvdW5kZWRuZXNzfWApO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGV2YWx1YXRlUmFnKGlucHV0OiB7XG4gICAgcXVlcnk6IHN0cmluZztcbiAgICByZXNwb25zZTogc3RyaW5nO1xuICAgIHJldHJpZXZlZENvbnRleHRzOiBSZXRyaWV2ZWRDb250ZXh0W107XG4gICAgZ3JvdW5kVHJ1dGhDb250ZXh0cz86IEdyb3VuZFRydXRoQ29udGV4dFtdO1xuICAgIGNpdGF0aW9ucz86IHN0cmluZ1tdO1xuICB9KTogUHJvbWlzZTx7XG4gICAgZXZhbHVhdGlvbjogUkFHRXZhbHVhdGlvbjtcbiAgICBldmlkZW5jZTogUkFHRXZpZGVuY2U7XG4gIH0+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhKCcvcXVhbGl0eS9ldmFsdWF0ZS1yYWcnLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IGlucHV0LFxuICAgICAgYXBpVmVyc2lvbjogJ3YxJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogRGV0ZWN0IGhhbGx1Y2luYXRpb25zIGluIHByb3ZpZGVkIGNvbnRlbnQgKGFkLWhvYyBkZXRlY3Rpb24pXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgcmVzdWx0ID0gYXdhaXQgcXVhbGl0eU1ldHJpY3MuZGV0ZWN0SGFsbHVjaW5hdGlvbnMoe1xuICAgKiAgIHJlc3BvbnNlOiAnVGhlIHByb2R1Y3QgY29zdHMgJDk5IGFuZCBjb21lcyB3aXRoIGEgMi15ZWFyIHdhcnJhbnR5LicsXG4gICAqICAgY29udGV4dHM6IFtcbiAgICogICAgIHsgY29udGVudDogJ1RoZSBwcm9kdWN0IGNvc3RzICQ5OSB3aXRoIGEgMS15ZWFyIHdhcnJhbnR5LicgfSxcbiAgICogICBdLFxuICAgKiB9KTtcbiAgICogaWYgKHJlc3VsdC5yZXBvcnQuaGFzSGFsbHVjaW5hdGlvbnMpIHtcbiAgICogICBjb25zb2xlLmxvZygnRGV0ZWN0ZWQgaGFsbHVjaW5hdGlvbnM6JywgcmVzdWx0LnJlcG9ydC5pbnN0YW5jZXMpO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgZGV0ZWN0SGFsbHVjaW5hdGlvbnMoaW5wdXQ6IHtcbiAgICByZXNwb25zZTogc3RyaW5nO1xuICAgIGNvbnRleHRzOiBBcnJheTx7IGNvbnRlbnQ6IHN0cmluZzsgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB9PjtcbiAgICBxdWVyeT86IHN0cmluZztcbiAgICBwcmV2aW91c1Jlc3BvbnNlcz86IHN0cmluZ1tdO1xuICB9KTogUHJvbWlzZTx7XG4gICAgcmVwb3J0OiBIYWxsdWNpbmF0aW9uUmVwb3J0O1xuICB9PiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YSgnL3F1YWxpdHkvZGV0ZWN0LWhhbGx1Y2luYXRpb25zJywge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBpbnB1dCxcbiAgICAgIGFwaVZlcnNpb246ICd2MScsXG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEdldCBncm91bmRlZG5lc3MgYW5hbHlzaXMgZm9yIGEgdHJhY2VcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCByZXN1bHQgPSBhd2FpdCBxdWFsaXR5TWV0cmljcy5nZXRHcm91bmRlZG5lc3MoJ3RyYWNlX2FiYzEyMycpO1xuICAgKiBjb25zb2xlLmxvZyhgR3JvdW5kZWRuZXNzIHNjb3JlOiAke3Jlc3VsdC5ncm91bmRlZG5lc3Muc2NvcmV9YCk7XG4gICAqIGNvbnNvbGUubG9nKGBHcm91bmRlZCBzcGFuczogJHtyZXN1bHQuc3VtbWFyeS5ncm91bmRlZFNwYW5zfWApO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGdldEdyb3VuZGVkbmVzcyh0cmFjZUlkOiBzdHJpbmcpOiBQcm9taXNlPHtcbiAgICB0cmFjZUlkOiBzdHJpbmc7XG4gICAgZ3JvdW5kZWRuZXNzOiBHcm91bmRlZG5lc3NSZXN1bHQ7XG4gICAgc3BhbnM6IHtcbiAgICAgIGdyb3VuZGVkOiBBcnJheTx7IHRleHQ6IHN0cmluZzsgY29uZmlkZW5jZTogbnVtYmVyOyBzb3VyY2VJbmRleDogbnVtYmVyIH0+O1xuICAgICAgdW5ncm91bmRlZDogQXJyYXk8eyB0ZXh0OiBzdHJpbmc7IGNvbmZpZGVuY2U6IG51bWJlciB9PjtcbiAgICB9O1xuICAgIHN1bW1hcnk6IHtcbiAgICAgIHRvdGFsU3BhbnM6IG51bWJlcjtcbiAgICAgIGdyb3VuZGVkU3BhbnM6IG51bWJlcjtcbiAgICAgIHVuZ3JvdW5kZWRTcGFuczogbnVtYmVyO1xuICAgICAgZ3JvdW5kZWRuZXNzUmF0aW86IG51bWJlcjtcbiAgICB9O1xuICB9PiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YShgL3F1YWxpdHkvZ3JvdW5kZWRuZXNzLyR7dHJhY2VJZH1gLCB7XG4gICAgICBhcGlWZXJzaW9uOiAndjEnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBFdmFsdWF0ZSBtdWx0aXBsZSB0cmFjZXMgZm9yIHF1YWxpdHkgbWV0cmljcyBpbiBiYXRjaFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHF1YWxpdHlNZXRyaWNzLmV2YWx1YXRlQmF0Y2goe1xuICAgKiAgIHRyYWNlSWRzOiBbJ3RyYWNlXzEnLCAndHJhY2VfMicsICd0cmFjZV8zJ10sXG4gICAqIH0pO1xuICAgKiBjb25zb2xlLmxvZyhgQXZlcmFnZSBSQUcgc2NvcmU6ICR7cmVzdWx0LnN1bW1hcnkuYXZnUmFnU2NvcmV9YCk7XG4gICAqIGNvbnNvbGUubG9nKGBIYWxsdWNpbmF0aW9uIHJhdGU6ICR7cmVzdWx0LnN1bW1hcnkuaGFsbHVjaW5hdGlvblJhdGV9JWApO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGV2YWx1YXRlQmF0Y2gob3B0aW9uczoge1xuICAgIHRyYWNlSWRzOiBzdHJpbmdbXTtcbiAgICBpbmNsdWRlRGV0YWlscz86IGJvb2xlYW47XG4gIH0pOiBQcm9taXNlPHtcbiAgICBzdW1tYXJ5OiBCYXRjaEV2YWx1YXRpb25TdW1tYXJ5O1xuICAgIHJlc3VsdHM6IEJhdGNoRXZhbHVhdGlvblJlc3VsdFtdO1xuICB9PiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YSgnL3F1YWxpdHkvZXZhbHVhdGUtYmF0Y2gnLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IG9wdGlvbnMsXG4gICAgICBhcGlWZXJzaW9uOiAndjEnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKiBBbGlhcyBmb3IgZXZhbHVhdGVSYWcoKSAqL1xuICBhc3luYyBldmFsdWF0ZShpbnB1dDoge1xuICAgIHF1ZXJ5OiBzdHJpbmc7XG4gICAgcmVzcG9uc2U6IHN0cmluZztcbiAgICByZXRyaWV2ZWRDb250ZXh0czogUmV0cmlldmVkQ29udGV4dFtdO1xuICAgIGdyb3VuZFRydXRoQ29udGV4dHM/OiBHcm91bmRUcnV0aENvbnRleHRbXTtcbiAgICBjaXRhdGlvbnM/OiBzdHJpbmdbXTtcbiAgfSk6IFByb21pc2U8e1xuICAgIGV2YWx1YXRpb246IFJBR0V2YWx1YXRpb247XG4gICAgZXZpZGVuY2U6IFJBR0V2aWRlbmNlO1xuICB9PiB7XG4gICAgcmV0dXJuIHRoaXMuZXZhbHVhdGVSYWcoaW5wdXQpO1xuICB9LFxufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gSEVMUEVSIEZVTkNUSU9OU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIENoZWNrIGlmIGEgUkFHIGV2YWx1YXRpb24gcGFzc2VzIHF1YWxpdHkgdGhyZXNob2xkc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcGFzc2VzUXVhbGl0eVRocmVzaG9sZChcbiAgZXZhbHVhdGlvbjogUkFHRXZhbHVhdGlvbixcbiAgdGhyZXNob2xkczoge1xuICAgIG1pbkdyb3VuZGVkbmVzcz86IG51bWJlcjtcbiAgICBtaW5PdmVyYWxsU2NvcmU/OiBudW1iZXI7XG4gICAgbWluR3JhZGU/OiAnQScgfCAnQicgfCAnQycgfCAnRCc7XG4gIH0gPSB7fVxuKTogYm9vbGVhbiB7XG4gIGNvbnN0IHsgbWluR3JvdW5kZWRuZXNzID0gMC43LCBtaW5PdmVyYWxsU2NvcmUgPSA2MCwgbWluR3JhZGUgPSAnQycgfSA9IHRocmVzaG9sZHM7XG5cbiAgY29uc3QgZ3JhZGVPcmRlciA9IHsgQTogNCwgQjogMywgQzogMiwgRDogMSwgRjogMCB9O1xuICBjb25zdCBtZWV0c0dyb3VuZGVkbmVzcyA9IGV2YWx1YXRpb24uZ3JvdW5kZWRuZXNzID49IG1pbkdyb3VuZGVkbmVzcztcbiAgY29uc3QgbWVldHNTY29yZSA9IGV2YWx1YXRpb24ub3ZlcmFsbFNjb3JlID49IG1pbk92ZXJhbGxTY29yZTtcbiAgY29uc3QgbWVldHNHcmFkZSA9IGdyYWRlT3JkZXJbZXZhbHVhdGlvbi5ncmFkZV0gPj0gZ3JhZGVPcmRlclttaW5HcmFkZV07XG5cbiAgcmV0dXJuIG1lZXRzR3JvdW5kZWRuZXNzICYmIG1lZXRzU2NvcmUgJiYgbWVldHNHcmFkZTtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBoYWxsdWNpbmF0aW9uIHJpc2sgaXMgYWNjZXB0YWJsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNIYWxsdWNpbmF0aW9uUmlza0FjY2VwdGFibGUoXG4gIHJlcG9ydDogSGFsbHVjaW5hdGlvblJlcG9ydCxcbiAgbWF4Umlza0xldmVsOiAnbG93JyB8ICdtZWRpdW0nIHwgJ2hpZ2gnID0gJ21lZGl1bSdcbik6IGJvb2xlYW4ge1xuICBjb25zdCByaXNrT3JkZXIgPSB7IGxvdzogMCwgbWVkaXVtOiAxLCBoaWdoOiAyLCBjcml0aWNhbDogMyB9O1xuICByZXR1cm4gcmlza09yZGVyW3JlcG9ydC5yaXNrTGV2ZWxdIDw9IHJpc2tPcmRlclttYXhSaXNrTGV2ZWxdO1xufVxuXG4vKipcbiAqIEdldCBxdWFsaXR5IHJlY29tbWVuZGF0aW9ucyBiYXNlZCBvbiBldmFsdWF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWFsaXR5UmVjb21tZW5kYXRpb25zKFxuICByYWdFdmFsOiBSQUdFdmFsdWF0aW9uLFxuICBoYWxsdWNpbmF0aW9uUmVwb3J0PzogSGFsbHVjaW5hdGlvblJlcG9ydFxuKTogc3RyaW5nW10ge1xuICBjb25zdCByZWNvbW1lbmRhdGlvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgaWYgKHJhZ0V2YWwuZ3JvdW5kZWRuZXNzIDwgMC43KSB7XG4gICAgcmVjb21tZW5kYXRpb25zLnB1c2goJ0ltcHJvdmUgZ3JvdW5kaW5nIGJ5IGluY3JlYXNpbmcgY29udGV4dCByZWxldmFuY2UnKTtcbiAgfVxuXG4gIGlmIChyYWdFdmFsLmNvbnRleHRSZWxldmFuY2UgPCAwLjYpIHtcbiAgICByZWNvbW1lbmRhdGlvbnMucHVzaCgnVHVuZSByZXRyaWV2YWwgdG8gcmV0dXJuIG1vcmUgcmVsZXZhbnQgY29udGV4dHMnKTtcbiAgfVxuXG4gIGlmIChyYWdFdmFsLmNpdGF0aW9uQWNjdXJhY3kgPCAwLjgpIHtcbiAgICByZWNvbW1lbmRhdGlvbnMucHVzaCgnSW1wcm92ZSBjaXRhdGlvbiBhY2N1cmFjeSBpbiByZXNwb25zZXMnKTtcbiAgfVxuXG4gIGlmIChoYWxsdWNpbmF0aW9uUmVwb3J0Py5oYXNIYWxsdWNpbmF0aW9ucykge1xuICAgIHJlY29tbWVuZGF0aW9ucy5wdXNoKCdBZGQgZmFjdC1jaGVja2luZyBsYXllciB0byByZWR1Y2UgaGFsbHVjaW5hdGlvbnMnKTtcbiAgfVxuXG4gIGlmIChyZWNvbW1lbmRhdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmVjb21tZW5kYXRpb25zLnB1c2goJ1F1YWxpdHkgbWV0cmljcyBhcmUgd2l0aGluIGFjY2VwdGFibGUgcmFuZ2VzJyk7XG4gIH1cblxuICByZXR1cm4gcmVjb21tZW5kYXRpb25zO1xufVxuXG4vKipcbiAqIEZvcm1hdCBxdWFsaXR5IHNjb3JlIGZvciBkaXNwbGF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRRdWFsaXR5U2NvcmUoc2NvcmU6IG51bWJlcik6IHN0cmluZyB7XG4gIHJldHVybiBgJHtNYXRoLnJvdW5kKHNjb3JlICogMTAwKX0lYDtcbn1cblxuLyoqXG4gKiBHZXQgY29sb3IgaW5kaWNhdG9yIGZvciBncmFkZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0R3JhZGVDb2xvcihcbiAgZ3JhZGU6ICdBJyB8ICdCJyB8ICdDJyB8ICdEJyB8ICdGJ1xuKTogJ2dyZWVuJyB8ICdibHVlJyB8ICd5ZWxsb3cnIHwgJ29yYW5nZScgfCAncmVkJyB7XG4gIGNvbnN0IGNvbG9ycyA9IHtcbiAgICBBOiAnZ3JlZW4nIGFzIGNvbnN0LFxuICAgIEI6ICdibHVlJyBhcyBjb25zdCxcbiAgICBDOiAneWVsbG93JyBhcyBjb25zdCxcbiAgICBEOiAnb3JhbmdlJyBhcyBjb25zdCxcbiAgICBGOiAncmVkJyBhcyBjb25zdCxcbiAgfTtcbiAgcmV0dXJuIGNvbG9yc1tncmFkZV07XG59XG4iXX0=
|
package/dist/api/signals.d.ts
CHANGED
package/dist/api/signals.js
CHANGED
|
@@ -74,6 +74,10 @@ exports.signals = {
|
|
|
74
74
|
apiVersion: 'v1',
|
|
75
75
|
});
|
|
76
76
|
},
|
|
77
|
+
/** Alias for remove() */
|
|
78
|
+
async delete(id) {
|
|
79
|
+
return this.remove(id);
|
|
80
|
+
},
|
|
77
81
|
/**
|
|
78
82
|
* Seed default signal definitions
|
|
79
83
|
*
|
|
@@ -169,4 +173,4 @@ exports.signals = {
|
|
|
169
173
|
},
|
|
170
174
|
};
|
|
171
175
|
exports.default = exports.signals;
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvc2lnbmFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7O0FBRUgsMkNBQWdFO0FBMkdoRSwrRUFBK0U7QUFDL0UscUJBQXFCO0FBQ3JCLCtFQUErRTtBQUUvRTs7R0FFRztBQUNVLFFBQUEsT0FBTyxHQUFHO0lBQ3JCOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUF5QjtRQUNsQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3JDLElBQUksSUFBSSxFQUFFLEtBQUs7WUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsSUFBSSxJQUFJLEVBQUUsTUFBTTtZQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRCxJQUFJLElBQUksRUFBRSxTQUFTLEtBQUssU0FBUztZQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUVuRixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEMsT0FBTyxJQUFBLDJCQUFrQixFQUFXLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUMxRSxVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUNWLElBQVksRUFDWixLQUFhLEVBQ2IsZUFBZ0MsRUFDaEMsSUFBMEI7UUFFMUIsT0FBTyxJQUFBLDJCQUFrQixFQUFTLFdBQVcsRUFBRTtZQUM3QyxNQUFN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QUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksSUFBSSxFQUFFLE1BQU0sS0FBSyxTQUFTO1lBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBRTFFLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQyxPQUFPLElBQUEsMkJBQWtCLEVBQUMsWUFBWSxFQUFFLFVBQVUsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUM1RSxVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YsQ0FBQztBQUVrQixrQkF2S1AsZUFBTyxDQXVLTyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpbmtIaXZlIFNESyAtIFNpZ25hbHMgQVBJXG4gKlxuICogQmVoYXZpb3JhbCBzaWduYWwgbWFuYWdlbWVudCBmb3IgZGV0ZWN0aW5nIHBhdHRlcm5zIGluIGFnZW50IGludGVyYWN0aW9uc1xuICovXG5cbmltcG9ydCB7IGFwaVJlcXVlc3QsIGFwaVJlcXVlc3RXaXRoRGF0YSB9IGZyb20gJy4uL2NvcmUvY2xpZW50JztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqIFNpZ25hbCBkZXRlY3Rpb24gY29uZmlndXJhdGlvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXRlY3Rpb25Db25maWcge1xuICB0eXBlOiBzdHJpbmc7XG4gIHRocmVzaG9sZD86IG51bWJlcjtcbiAgcGF0dGVybj86IHN0cmluZztcbiAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIGNyZWF0aW5nIGEgc2lnbmFsICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVNpZ25hbE9wdGlvbnMge1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgaXNFbmFibGVkPzogYm9vbGVhbjtcbiAgc2V2ZXJpdHk/OiBzdHJpbmc7XG59XG5cbi8qKiBPcHRpb25zIGZvciB1cGRhdGluZyBhIHNpZ25hbCAqL1xuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVTaWduYWxPcHRpb25zIHtcbiAgbmFtZT86IHN0cmluZztcbiAgZ3JvdXA/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBkZXRlY3Rpb25Db25maWc/OiBEZXRlY3Rpb25Db25maWc7XG4gIGlzRW5hYmxlZD86IGJvb2xlYW47XG4gIHNldmVyaXR5Pzogc3RyaW5nO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgbGlzdGluZyBzaWduYWxzICovXG5leHBvcnQgaW50ZXJmYWNlIExpc3RTaWduYWxzT3B0aW9ucyB7XG4gIGdyb3VwPzogc3RyaW5nO1xuICBzb3VyY2U/OiBzdHJpbmc7XG4gIGlzRW5hYmxlZD86IGJvb2xlYW47XG59XG5cbi8qKiBPcHRpb25zIGZvciBnZXR0aW5nIHNpZ25hbCBzdGF0cyAqL1xuZXhwb3J0IGludGVyZmFjZSBTaWduYWxTdGF0c09wdGlvbnMge1xuICBzdGFydERhdGU/OiBzdHJpbmc7XG4gIGVuZERhdGU/OiBzdHJpbmc7XG4gIGFnZW50SWQ/OiBzdHJpbmc7XG59XG5cbi8qKiBPcHRpb25zIGZvciBnZXR0aW5nIHNpZ25hbCB0cmVuZHMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmFsVHJlbmRzT3B0aW9ucyB7XG4gIHN0YXJ0RGF0ZT86IHN0cmluZztcbiAgZW5kRGF0ZT86IHN0cmluZztcbiAgYWdlbnRJZD86IHN0cmluZztcbiAgZ3JhbnVsYXJpdHk/OiAnaG91cicgfCAnZGF5JyB8ICd3ZWVrJyB8ICdtb250aCc7XG59XG5cbi8qKiBPcHRpb25zIGZvciBnZXR0aW5nIHNpZ25hbCB0cmFjZXMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmFsVHJhY2VzT3B0aW9ucyB7XG4gIGxpbWl0PzogbnVtYmVyO1xuICBvZmZzZXQ/OiBudW1iZXI7XG4gIHN0YXJ0RGF0ZT86IHN0cmluZztcbiAgZW5kRGF0ZT86IHN0cmluZztcbiAgYWdlbnRJZD86IHN0cmluZztcbn1cblxuLyoqIE9wdGlvbnMgZm9yIGdldHRpbmcgc2lnbmFsIGV2ZW50cyAqL1xuZXhwb3J0IGludGVyZmFjZSBTaWduYWxFdmVudHNPcHRpb25zIHtcbiAgbGltaXQ/OiBudW1iZXI7XG4gIG9mZnNldD86IG51bWJlcjtcbn1cblxuLyoqIEEgYmVoYXZpb3JhbCBzaWduYWwgZGVmaW5pdGlvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaWduYWwge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGdyb3VwOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBkZXRlY3Rpb25Db25maWc6IERldGVjdGlvbkNvbmZpZztcbiAgaXNFbmFibGVkOiBib29sZWFuO1xuICBzZXZlcml0eT86IHN0cmluZztcbiAgc291cmNlPzogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgdXBkYXRlZEF0OiBzdHJpbmc7XG59XG5cbi8qKiBTaWduYWwgc3RhdGlzdGljcyAqL1xuZXhwb3J0IGludGVyZmFjZSBTaWduYWxTdGF0cyB7XG4gIHNpZ25hbElkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZXZlbnRDb3VudDogbnVtYmVyO1xuICB0cmFjZUNvdW50OiBudW1iZXI7XG4gIGxhc3RUcmlnZ2VyZWRBdD86IHN0cmluZztcbn1cblxuLyoqIFNpZ25hbCB0cmVuZCBkYXRhIHBvaW50ICovXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hbFRyZW5kUG9pbnQge1xuICBwZXJpb2Q6IHN0cmluZztcbiAgZXZlbnRDb3VudDogbnVtYmVyO1xuICB0cmFjZUNvdW50OiBudW1iZXI7XG59XG5cbi8qKiBBIHNpZ25hbCBldmVudCBvY2N1cnJlbmNlICovXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hbEV2ZW50IHtcbiAgaWQ6IHN0cmluZztcbiAgc2lnbmFsSWQ6IHN0cmluZztcbiAgdHJhY2VJZDogc3RyaW5nO1xuICBkZXRlY3RlZEF0OiBzdHJpbmc7XG4gIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNJR05BTFMgQVBJIENMSUVOVFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFNpZ25hbHMgQVBJIGNsaWVudCBmb3IgbWFuYWdpbmcgYmVoYXZpb3JhbCBzaWduYWwgZGV0ZWN0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBzaWduYWxzID0ge1xuICAvKipcbiAgICogTGlzdCBhbGwgc2lnbmFscyB3aXRoIG9wdGlvbmFsIGZpbHRlcnNcbiAgICpcbiAgICogQHBhcmFtIG9wdHMgLSBGaWx0ZXIgb3B0aW9ucyBmb3IgZ3JvdXAsIHNvdXJjZSwgb3IgZW5hYmxlZCBzdGF0dXNcbiAgICogQHJldHVybnMgTGlzdCBvZiBzaWduYWxzXG4gICAqL1xuICBhc3luYyBsaXN0KG9wdHM/OiBMaXN0U2lnbmFsc09wdGlvbnMpOiBQcm9taXNlPFNpZ25hbFtdPiB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIGlmIChvcHRzPy5ncm91cCkgcGFyYW1zLnNldCgnZ3JvdXAnLCBvcHRzLmdyb3VwKTtcbiAgICBpZiAob3B0cz8uc291cmNlKSBwYXJhbXMuc2V0KCdzb3VyY2UnLCBvcHRzLnNvdXJjZSk7XG4gICAgaWYgKG9wdHM/LmlzRW5hYmxlZCAhPT0gdW5kZWZpbmVkKSBwYXJhbXMuc2V0KCdpc0VuYWJsZWQnLCBTdHJpbmcob3B0cy5pc0VuYWJsZWQpKTtcblxuICAgIGNvbnN0IHF1ZXJ5ID0gcGFyYW1zLnRvU3RyaW5nKCk7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxTaWduYWxbXT4oYC9zaWduYWxzLyR7cXVlcnkgPyBgPyR7cXVlcnl9YCA6ICcnfWAsIHtcbiAgICAgIGFwaVZlcnNpb246ICd2MScsXG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBiZWhhdmlvcmFsIHNpZ25hbFxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSAtIFNpZ25hbCBuYW1lXG4gICAqIEBwYXJhbSBncm91cCAtIFNpZ25hbCBncm91cC9jYXRlZ29yeVxuICAgKiBAcGFyYW0gZGV0ZWN0aW9uQ29uZmlnIC0gRGV0ZWN0aW9uIGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtIG9wdHMgLSBBZGRpdGlvbmFsIHNpZ25hbCBvcHRpb25zXG4gICAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIHNpZ25hbFxuICAgKi9cbiAgYXN5bmMgY3JlYXRlKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBncm91cDogc3RyaW5nLFxuICAgIGRldGVjdGlvbkNvbmZpZzogRGV0ZWN0aW9uQ29uZmlnLFxuICAgIG9wdHM/OiBDcmVhdGVTaWduYWxPcHRpb25zXG4gICk6IFByb21pc2U8U2lnbmFsPiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxTaWduYWw+KCcvc2lnbmFscy8nLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHsgbmFtZSwgZ3JvdXAsIGRldGVjdGlvbkNvbmZpZywgLi4ub3B0cyB9LFxuICAgICAgYXBpVmVyc2lvbjogJ3YxJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogVXBkYXRlIGFuIGV4aXN0aW5nIHNpZ25hbFxuICAgKlxuICAgKiBAcGFyYW0gaWQgLSBTaWduYWwgSUQgdG8gdXBkYXRlXG4gICAqIEBwYXJhbSBvcHRzIC0gRmllbGRzIHRvIHVwZGF0ZVxuICAgKiBAcmV0dXJucyBUaGUgdXBkYXRlZCBzaWduYWxcbiAgICovXG4gIGFzeW5jIHVwZGF0ZShpZDogc3RyaW5nLCBvcHRzOiBVcGRhdGVTaWduYWxPcHRpb25zKTogUHJvbWlzZTxTaWduYWw+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPFNpZ25hbD4oYC9zaWduYWxzLyR7aWR9YCwge1xuICAgICAgbWV0aG9kOiAnUFVUJyxcbiAgICAgIGJvZHk6IG9wdHMsXG4gICAgICBhcGlWZXJzaW9uOiAndjEnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBEZWxldGUgYSBzaWduYWxcbiAgICpcbiAgICogQHBhcmFtIGlkIC0gU2lnbmFsIElEIHRvIGRlbGV0ZVxuICAgKi9cbiAgYXN5bmMgcmVtb3ZlKGlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdDx2b2lkPihgL3NpZ25hbHMvJHtpZH1gLCB7XG4gICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgICAgYXBpVmVyc2lvbjogJ3YxJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogU2VlZCBkZWZhdWx0IHNpZ25hbCBkZWZpbml0aW9uc1xuICAgKlxuICAgKiBAcmV0dXJucyBMaXN0IG9mIHNlZWRlZCBzaWduYWxzXG4gICAqL1xuICBhc3luYyBzZWVkRGVmYXVsdHMoKTogUHJvbWlzZTxTaWduYWxbXT4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8U2lnbmFsW10+KCcvc2lnbmFscy9zZWVkJywge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBhcGlWZXJzaW9uOiAndjEnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgc2lnbmFsIHN0YXRpc3RpY3NcbiAgICpcbiAgICogQHBhcmFtIG9wdHMgLSBEYXRlIHJhbmdlIGFuZCBhZ2VudCBmaWx0ZXIgb3B0aW9uc1xuICAgKiBAcmV0dXJucyBTaWduYWwgc3RhdGlzdGljc1xuICAgKi9cbiAgYXN5bmMgZ2V0U3RhdHMob3B0cz86IFNpZ25hbFN0YXRzT3B0aW9ucyk6IFByb21pc2U8U2lnbmFsU3RhdHNbXT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBpZiAob3B0cz8uc3RhcnREYXRlKSBwYXJhbXMuc2V0KCdzdGFydERhdGUnLCBvcHRzLnN0YXJ0RGF0ZSk7XG4gICAgaWYgKG9wdHM/LmVuZERhdGUpIHBhcmFtcy5zZXQoJ2VuZERhdGUnLCBvcHRzLmVuZERhdGUpO1xuICAgIGlmIChvcHRzPy5hZ2VudElkKSBwYXJhbXMuc2V0KCdhZ2VudElkJywgb3B0cy5hZ2VudElkKTtcblxuICAgIGNvbnN0IHF1ZXJ5ID0gcGFyYW1zLnRvU3RyaW5nKCk7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxTaWduYWxTdGF0c1tdPihgL3NpZ25hbHMvc3RhdHMke3F1ZXJ5ID8gYD8ke3F1ZXJ5fWAgOiAnJ31gLCB7XG4gICAgICBhcGlWZXJzaW9uOiAndjEnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgc2lnbmFsIHRyZW5kIGRhdGEgb3ZlciB0aW1lXG4gICAqXG4gICAqIEBwYXJhbSBvcHRzIC0gRGF0ZSByYW5nZSwgYWdlbnQsIGFuZCBncmFudWxhcml0eSBvcHRpb25zXG4gICAqIEByZXR1cm5zIFNpZ25hbCB0cmVuZCBkYXRhIHBvaW50c1xuICAgKi9cbiAgYXN5bmMgZ2V0VHJlbmRzKG9wdHM/OiBTaWduYWxUcmVuZHNPcHRpb25zKTogUHJvbWlzZTxTaWduYWxUcmVuZFBvaW50W10+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgaWYgKG9wdHM/LnN0YXJ0RGF0ZSkgcGFyYW1zLnNldCgnc3RhcnREYXRlJywgb3B0cy5zdGFydERhdGUpO1xuICAgIGlmIChvcHRzPy5lbmREYXRlKSBwYXJhbXMuc2V0KCdlbmREYXRlJywgb3B0cy5lbmREYXRlKTtcbiAgICBpZiAob3B0cz8uYWdlbnRJZCkgcGFyYW1zLnNldCgnYWdlbnRJZCcsIG9wdHMuYWdlbnRJZCk7XG4gICAgaWYgKG9wdHM/LmdyYW51bGFyaXR5KSBwYXJhbXMuc2V0KCdncmFudWxhcml0eScsIG9wdHMuZ3JhbnVsYXJpdHkpO1xuXG4gICAgY29uc3QgcXVlcnkgPSBwYXJhbXMudG9TdHJpbmcoKTtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPFNpZ25hbFRyZW5kUG9pbnRbXT4oYC9zaWduYWxzL3RyZW5kcyR7cXVlcnkgPyBgPyR7cXVlcnl9YCA6ICcnfWAsIHtcbiAgICAgIGFwaVZlcnNpb246ICd2MScsXG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEdldCB0cmFjZXMgdGhhdCB0cmlnZ2VyZWQgYSBzcGVjaWZpYyBzaWduYWxcbiAgICpcbiAgICogQHBhcmFtIGlkIC0gU2lnbmFsIElEXG4gICAqIEBwYXJhbSBvcHRzIC0gUGFnaW5hdGlvbiBhbmQgZmlsdGVyIG9wdGlvbnNcbiAgICogQHJldHVybnMgVHJhY2VzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2lnbmFsXG4gICAqL1xuICBhc3luYyBnZXRUcmFjZXMoaWQ6IHN0cmluZywgb3B0cz86IFNpZ25hbFRyYWNlc09wdGlvbnMpOiBQcm9taXNlPHtcbiAgICB0cmFjZXM6IGFueVtdO1xuICAgIGxpbWl0OiBudW1iZXI7XG4gICAgb2Zmc2V0OiBudW1iZXI7XG4gICAgaGFzTW9yZTogYm9vbGVhbjtcbiAgfT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBpZiAob3B0cz8ubGltaXQgIT09IHVuZGVmaW5lZCkgcGFyYW1zLnNldCgnbGltaXQnLCBTdHJpbmcob3B0cy5saW1pdCkpO1xuICAgIGlmIChvcHRzPy5vZmZzZXQgIT09IHVuZGVmaW5lZCkgcGFyYW1zLnNldCgnb2Zmc2V0JywgU3RyaW5nKG9wdHMub2Zmc2V0KSk7XG4gICAgaWYgKG9wdHM/LnN0YXJ0RGF0ZSkgcGFyYW1zLnNldCgnc3RhcnREYXRlJywgb3B0cy5zdGFydERhdGUpO1xuICAgIGlmIChvcHRzPy5lbmREYXRlKSBwYXJhbXMuc2V0KCdlbmREYXRlJywgb3B0cy5lbmREYXRlKTtcbiAgICBpZiAob3B0cz8uYWdlbnRJZCkgcGFyYW1zLnNldCgnYWdlbnRJZCcsIG9wdHMuYWdlbnRJZCk7XG5cbiAgICBjb25zdCBxdWVyeSA9IHBhcmFtcy50b1N0cmluZygpO1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGEoYC9zaWduYWxzLyR7aWR9L3RyYWNlcyR7cXVlcnkgPyBgPyR7cXVlcnl9YCA6ICcnfWAsIHtcbiAgICAgIGFwaVZlcnNpb246ICd2MScsXG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEdldCBldmVudHMgZm9yIGEgc3BlY2lmaWMgc2lnbmFsXG4gICAqXG4gICAqIEBwYXJhbSBpZCAtIFNpZ25hbCBJRFxuICAgKiBAcGFyYW0gb3B0cyAtIFBhZ2luYXRpb24gb3B0aW9uc1xuICAgKiBAcmV0dXJucyBTaWduYWwgZXZlbnRzXG4gICAqL1xuICBhc3luYyBnZXRFdmVudHMoaWQ6IHN0cmluZywgb3B0cz86IFNpZ25hbEV2ZW50c09wdGlvbnMpOiBQcm9taXNlPHtcbiAgICBldmVudHM6IFNpZ25hbEV2ZW50W107XG4gICAgbGltaXQ6IG51bWJlcjtcbiAgICBvZmZzZXQ6IG51bWJlcjtcbiAgICBoYXNNb3JlOiBib29sZWFuO1xuICB9PiB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIGlmIChvcHRzPy5saW1pdCAhPT0gdW5kZWZpbmVkKSBwYXJhbXMuc2V0KCdsaW1pdCcsIFN0cmluZyhvcHRzLmxpbWl0KSk7XG4gICAgaWYgKG9wdHM/Lm9mZnNldCAhPT0gdW5kZWZpbmVkKSBwYXJhbXMuc2V0KCdvZmZzZXQnLCBTdHJpbmcob3B0cy5vZmZzZXQpKTtcblxuICAgIGNvbnN0IHF1ZXJ5ID0gcGFyYW1zLnRvU3RyaW5nKCk7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YShgL3NpZ25hbHMvJHtpZH0vZXZlbnRzJHtxdWVyeSA/IGA/JHtxdWVyeX1gIDogJyd9YCwge1xuICAgICAgYXBpVmVyc2lvbjogJ3YxJyxcbiAgICB9KTtcbiAgfSxcbn07XG5cbmV4cG9ydCB7IHNpZ25hbHMgYXMgZGVmYXVsdCB9O1xuIl19
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvc2lnbmFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7O0FBRUgsMkNBQWdFO0FBMkdoRSwrRUFBK0U7QUFDL0UscUJBQXFCO0FBQ3JCLCtFQUErRTtBQUUvRTs7R0FFRztBQUNVLFFBQUEsT0FBTyxHQUFHO0lBQ3JCOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUF5QjtRQUNsQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3JDLElBQUksSUFBSSxFQUFFLEtBQUs7WUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsSUFBSSxJQUFJLEVBQUUsTUFBTTtZQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRCxJQUFJLElBQUksRUFBRSxTQUFTLEtBQUssU0FBUztZQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUVuRixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEMsT0FBTyxJQUFBLDJCQUFrQixFQUFXLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUMxRSxVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUNWLElBQVksRUFDWixLQUFhLEVBQ2IsZUFBZ0MsRUFDaEMsSUFBMEI7UUFFMUIsT0FBTyxJQUFBLDJCQUFrQixFQUFTLFdBQVcsRUFBRTtZQUM3QyxNQUFN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SUFBMEI7UUFNcEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNyQyxJQUFJLElBQUksRUFBRSxLQUFLLEtBQUssU0FBUztZQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN2RSxJQUFJLElBQUksRUFBRSxNQUFNLEtBQUssU0FBUztZQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUUxRSxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEMsT0FBTyxJQUFBLDJCQUFrQixFQUFDLFlBQVksRUFBRSxVQUFVLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7WUFDNUUsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGLENBQUM7QUFFa0Isa0JBNUtQLGVBQU8sQ0E0S08iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaW5rSGl2ZSBTREsgLSBTaWduYWxzIEFQSVxuICpcbiAqIEJlaGF2aW9yYWwgc2lnbmFsIG1hbmFnZW1lbnQgZm9yIGRldGVjdGluZyBwYXR0ZXJucyBpbiBhZ2VudCBpbnRlcmFjdGlvbnNcbiAqL1xuXG5pbXBvcnQgeyBhcGlSZXF1ZXN0LCBhcGlSZXF1ZXN0V2l0aERhdGEgfSBmcm9tICcuLi9jb3JlL2NsaWVudCc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKiBTaWduYWwgZGV0ZWN0aW9uIGNvbmZpZ3VyYXRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGV0ZWN0aW9uQ29uZmlnIHtcbiAgdHlwZTogc3RyaW5nO1xuICB0aHJlc2hvbGQ/OiBudW1iZXI7XG4gIHBhdHRlcm4/OiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG59XG5cbi8qKiBPcHRpb25zIGZvciBjcmVhdGluZyBhIHNpZ25hbCAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVTaWduYWxPcHRpb25zIHtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGlzRW5hYmxlZD86IGJvb2xlYW47XG4gIHNldmVyaXR5Pzogc3RyaW5nO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgdXBkYXRpbmcgYSBzaWduYWwgKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlU2lnbmFsT3B0aW9ucyB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGdyb3VwPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgZGV0ZWN0aW9uQ29uZmlnPzogRGV0ZWN0aW9uQ29uZmlnO1xuICBpc0VuYWJsZWQ/OiBib29sZWFuO1xuICBzZXZlcml0eT86IHN0cmluZztcbn1cblxuLyoqIE9wdGlvbnMgZm9yIGxpc3Rpbmcgc2lnbmFscyAqL1xuZXhwb3J0IGludGVyZmFjZSBMaXN0U2lnbmFsc09wdGlvbnMge1xuICBncm91cD86IHN0cmluZztcbiAgc291cmNlPzogc3RyaW5nO1xuICBpc0VuYWJsZWQ/OiBib29sZWFuO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgZ2V0dGluZyBzaWduYWwgc3RhdHMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmFsU3RhdHNPcHRpb25zIHtcbiAgc3RhcnREYXRlPzogc3RyaW5nO1xuICBlbmREYXRlPzogc3RyaW5nO1xuICBhZ2VudElkPzogc3RyaW5nO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgZ2V0dGluZyBzaWduYWwgdHJlbmRzICovXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hbFRyZW5kc09wdGlvbnMge1xuICBzdGFydERhdGU/OiBzdHJpbmc7XG4gIGVuZERhdGU/OiBzdHJpbmc7XG4gIGFnZW50SWQ/OiBzdHJpbmc7XG4gIGdyYW51bGFyaXR5PzogJ2hvdXInIHwgJ2RheScgfCAnd2VlaycgfCAnbW9udGgnO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgZ2V0dGluZyBzaWduYWwgdHJhY2VzICovXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hbFRyYWNlc09wdGlvbnMge1xuICBsaW1pdD86IG51bWJlcjtcbiAgb2Zmc2V0PzogbnVtYmVyO1xuICBzdGFydERhdGU/OiBzdHJpbmc7XG4gIGVuZERhdGU/OiBzdHJpbmc7XG4gIGFnZW50SWQ/OiBzdHJpbmc7XG59XG5cbi8qKiBPcHRpb25zIGZvciBnZXR0aW5nIHNpZ25hbCBldmVudHMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmFsRXZlbnRzT3B0aW9ucyB7XG4gIGxpbWl0PzogbnVtYmVyO1xuICBvZmZzZXQ/OiBudW1iZXI7XG59XG5cbi8qKiBBIGJlaGF2aW9yYWwgc2lnbmFsIGRlZmluaXRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmFsIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBncm91cDogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgZGV0ZWN0aW9uQ29uZmlnOiBEZXRlY3Rpb25Db25maWc7XG4gIGlzRW5hYmxlZDogYm9vbGVhbjtcbiAgc2V2ZXJpdHk/OiBzdHJpbmc7XG4gIHNvdXJjZT86IHN0cmluZztcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xufVxuXG4vKiogU2lnbmFsIHN0YXRpc3RpY3MgKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmFsU3RhdHMge1xuICBzaWduYWxJZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGV2ZW50Q291bnQ6IG51bWJlcjtcbiAgdHJhY2VDb3VudDogbnVtYmVyO1xuICBsYXN0VHJpZ2dlcmVkQXQ/OiBzdHJpbmc7XG59XG5cbi8qKiBTaWduYWwgdHJlbmQgZGF0YSBwb2ludCAqL1xuZXhwb3J0IGludGVyZmFjZSBTaWduYWxUcmVuZFBvaW50IHtcbiAgcGVyaW9kOiBzdHJpbmc7XG4gIGV2ZW50Q291bnQ6IG51bWJlcjtcbiAgdHJhY2VDb3VudDogbnVtYmVyO1xufVxuXG4vKiogQSBzaWduYWwgZXZlbnQgb2NjdXJyZW5jZSAqL1xuZXhwb3J0IGludGVyZmFjZSBTaWduYWxFdmVudCB7XG4gIGlkOiBzdHJpbmc7XG4gIHNpZ25hbElkOiBzdHJpbmc7XG4gIHRyYWNlSWQ6IHN0cmluZztcbiAgZGV0ZWN0ZWRBdDogc3RyaW5nO1xuICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTSUdOQUxTIEFQSSBDTElFTlRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBTaWduYWxzIEFQSSBjbGllbnQgZm9yIG1hbmFnaW5nIGJlaGF2aW9yYWwgc2lnbmFsIGRldGVjdGlvblxuICovXG5leHBvcnQgY29uc3Qgc2lnbmFscyA9IHtcbiAgLyoqXG4gICAqIExpc3QgYWxsIHNpZ25hbHMgd2l0aCBvcHRpb25hbCBmaWx0ZXJzXG4gICAqXG4gICAqIEBwYXJhbSBvcHRzIC0gRmlsdGVyIG9wdGlvbnMgZm9yIGdyb3VwLCBzb3VyY2UsIG9yIGVuYWJsZWQgc3RhdHVzXG4gICAqIEByZXR1cm5zIExpc3Qgb2Ygc2lnbmFsc1xuICAgKi9cbiAgYXN5bmMgbGlzdChvcHRzPzogTGlzdFNpZ25hbHNPcHRpb25zKTogUHJvbWlzZTxTaWduYWxbXT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBpZiAob3B0cz8uZ3JvdXApIHBhcmFtcy5zZXQoJ2dyb3VwJywgb3B0cy5ncm91cCk7XG4gICAgaWYgKG9wdHM/LnNvdXJjZSkgcGFyYW1zLnNldCgnc291cmNlJywgb3B0cy5zb3VyY2UpO1xuICAgIGlmIChvcHRzPy5pc0VuYWJsZWQgIT09IHVuZGVmaW5lZCkgcGFyYW1zLnNldCgnaXNFbmFibGVkJywgU3RyaW5nKG9wdHMuaXNFbmFibGVkKSk7XG5cbiAgICBjb25zdCBxdWVyeSA9IHBhcmFtcy50b1N0cmluZygpO1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8U2lnbmFsW10+KGAvc2lnbmFscy8ke3F1ZXJ5ID8gYD8ke3F1ZXJ5fWAgOiAnJ31gLCB7XG4gICAgICBhcGlWZXJzaW9uOiAndjEnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgYmVoYXZpb3JhbCBzaWduYWxcbiAgICpcbiAgICogQHBhcmFtIG5hbWUgLSBTaWduYWwgbmFtZVxuICAgKiBAcGFyYW0gZ3JvdXAgLSBTaWduYWwgZ3JvdXAvY2F0ZWdvcnlcbiAgICogQHBhcmFtIGRldGVjdGlvbkNvbmZpZyAtIERldGVjdGlvbiBjb25maWd1cmF0aW9uXG4gICAqIEBwYXJhbSBvcHRzIC0gQWRkaXRpb25hbCBzaWduYWwgb3B0aW9uc1xuICAgKiBAcmV0dXJucyBUaGUgY3JlYXRlZCBzaWduYWxcbiAgICovXG4gIGFzeW5jIGNyZWF0ZShcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgZ3JvdXA6IHN0cmluZyxcbiAgICBkZXRlY3Rpb25Db25maWc6IERldGVjdGlvbkNvbmZpZyxcbiAgICBvcHRzPzogQ3JlYXRlU2lnbmFsT3B0aW9uc1xuICApOiBQcm9taXNlPFNpZ25hbD4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8U2lnbmFsPignL3NpZ25hbHMvJywge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiB7IG5hbWUsIGdyb3VwLCBkZXRlY3Rpb25Db25maWcsIC4uLm9wdHMgfSxcbiAgICAgIGFwaVZlcnNpb246ICd2MScsXG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBhbiBleGlzdGluZyBzaWduYWxcbiAgICpcbiAgICogQHBhcmFtIGlkIC0gU2lnbmFsIElEIHRvIHVwZGF0ZVxuICAgKiBAcGFyYW0gb3B0cyAtIEZpZWxkcyB0byB1cGRhdGVcbiAgICogQHJldHVybnMgVGhlIHVwZGF0ZWQgc2lnbmFsXG4gICAqL1xuICBhc3luYyB1cGRhdGUoaWQ6IHN0cmluZywgb3B0czogVXBkYXRlU2lnbmFsT3B0aW9ucyk6IFByb21pc2U8U2lnbmFsPiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxTaWduYWw+KGAvc2lnbmFscy8ke2lkfWAsIHtcbiAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgICBib2R5OiBvcHRzLFxuICAgICAgYXBpVmVyc2lvbjogJ3YxJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogRGVsZXRlIGEgc2lnbmFsXG4gICAqXG4gICAqIEBwYXJhbSBpZCAtIFNpZ25hbCBJRCB0byBkZWxldGVcbiAgICovXG4gIGFzeW5jIHJlbW92ZShpZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3Q8dm9pZD4oYC9zaWduYWxzLyR7aWR9YCwge1xuICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICAgIGFwaVZlcnNpb246ICd2MScsXG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqIEFsaWFzIGZvciByZW1vdmUoKSAqL1xuICBhc3luYyBkZWxldGUoaWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnJlbW92ZShpZCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFNlZWQgZGVmYXVsdCBzaWduYWwgZGVmaW5pdGlvbnNcbiAgICpcbiAgICogQHJldHVybnMgTGlzdCBvZiBzZWVkZWQgc2lnbmFsc1xuICAgKi9cbiAgYXN5bmMgc2VlZERlZmF1bHRzKCk6IFByb21pc2U8U2lnbmFsW10+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPFNpZ25hbFtdPignL3NpZ25hbHMvc2VlZCcsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYXBpVmVyc2lvbjogJ3YxJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IHNpZ25hbCBzdGF0aXN0aWNzXG4gICAqXG4gICAqIEBwYXJhbSBvcHRzIC0gRGF0ZSByYW5nZSBhbmQgYWdlbnQgZmlsdGVyIG9wdGlvbnNcbiAgICogQHJldHVybnMgU2lnbmFsIHN0YXRpc3RpY3NcbiAgICovXG4gIGFzeW5jIGdldFN0YXRzKG9wdHM/OiBTaWduYWxTdGF0c09wdGlvbnMpOiBQcm9taXNlPFNpZ25hbFN0YXRzW10+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgaWYgKG9wdHM/LnN0YXJ0RGF0ZSkgcGFyYW1zLnNldCgnc3RhcnREYXRlJywgb3B0cy5zdGFydERhdGUpO1xuICAgIGlmIChvcHRzPy5lbmREYXRlKSBwYXJhbXMuc2V0KCdlbmREYXRlJywgb3B0cy5lbmREYXRlKTtcbiAgICBpZiAob3B0cz8uYWdlbnRJZCkgcGFyYW1zLnNldCgnYWdlbnRJZCcsIG9wdHMuYWdlbnRJZCk7XG5cbiAgICBjb25zdCBxdWVyeSA9IHBhcmFtcy50b1N0cmluZygpO1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8U2lnbmFsU3RhdHNbXT4oYC9zaWduYWxzL3N0YXRzJHtxdWVyeSA/IGA/JHtxdWVyeX1gIDogJyd9YCwge1xuICAgICAgYXBpVmVyc2lvbjogJ3YxJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IHNpZ25hbCB0cmVuZCBkYXRhIG92ZXIgdGltZVxuICAgKlxuICAgKiBAcGFyYW0gb3B0cyAtIERhdGUgcmFuZ2UsIGFnZW50LCBhbmQgZ3JhbnVsYXJpdHkgb3B0aW9uc1xuICAgKiBAcmV0dXJucyBTaWduYWwgdHJlbmQgZGF0YSBwb2ludHNcbiAgICovXG4gIGFzeW5jIGdldFRyZW5kcyhvcHRzPzogU2lnbmFsVHJlbmRzT3B0aW9ucyk6IFByb21pc2U8U2lnbmFsVHJlbmRQb2ludFtdPiB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIGlmIChvcHRzPy5zdGFydERhdGUpIHBhcmFtcy5zZXQoJ3N0YXJ0RGF0ZScsIG9wdHMuc3RhcnREYXRlKTtcbiAgICBpZiAob3B0cz8uZW5kRGF0ZSkgcGFyYW1zLnNldCgnZW5kRGF0ZScsIG9wdHMuZW5kRGF0ZSk7XG4gICAgaWYgKG9wdHM/LmFnZW50SWQpIHBhcmFtcy5zZXQoJ2FnZW50SWQnLCBvcHRzLmFnZW50SWQpO1xuICAgIGlmIChvcHRzPy5ncmFudWxhcml0eSkgcGFyYW1zLnNldCgnZ3JhbnVsYXJpdHknLCBvcHRzLmdyYW51bGFyaXR5KTtcblxuICAgIGNvbnN0IHF1ZXJ5ID0gcGFyYW1zLnRvU3RyaW5nKCk7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxTaWduYWxUcmVuZFBvaW50W10+KGAvc2lnbmFscy90cmVuZHMke3F1ZXJ5ID8gYD8ke3F1ZXJ5fWAgOiAnJ31gLCB7XG4gICAgICBhcGlWZXJzaW9uOiAndjEnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgdHJhY2VzIHRoYXQgdHJpZ2dlcmVkIGEgc3BlY2lmaWMgc2lnbmFsXG4gICAqXG4gICAqIEBwYXJhbSBpZCAtIFNpZ25hbCBJRFxuICAgKiBAcGFyYW0gb3B0cyAtIFBhZ2luYXRpb24gYW5kIGZpbHRlciBvcHRpb25zXG4gICAqIEByZXR1cm5zIFRyYWNlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHNpZ25hbFxuICAgKi9cbiAgYXN5bmMgZ2V0VHJhY2VzKGlkOiBzdHJpbmcsIG9wdHM/OiBTaWduYWxUcmFjZXNPcHRpb25zKTogUHJvbWlzZTx7XG4gICAgdHJhY2VzOiBhbnlbXTtcbiAgICBsaW1pdDogbnVtYmVyO1xuICAgIG9mZnNldDogbnVtYmVyO1xuICAgIGhhc01vcmU6IGJvb2xlYW47XG4gIH0+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgaWYgKG9wdHM/LmxpbWl0ICE9PSB1bmRlZmluZWQpIHBhcmFtcy5zZXQoJ2xpbWl0JywgU3RyaW5nKG9wdHMubGltaXQpKTtcbiAgICBpZiAob3B0cz8ub2Zmc2V0ICE9PSB1bmRlZmluZWQpIHBhcmFtcy5zZXQoJ29mZnNldCcsIFN0cmluZyhvcHRzLm9mZnNldCkpO1xuICAgIGlmIChvcHRzPy5zdGFydERhdGUpIHBhcmFtcy5zZXQoJ3N0YXJ0RGF0ZScsIG9wdHMuc3RhcnREYXRlKTtcbiAgICBpZiAob3B0cz8uZW5kRGF0ZSkgcGFyYW1zLnNldCgnZW5kRGF0ZScsIG9wdHMuZW5kRGF0ZSk7XG4gICAgaWYgKG9wdHM/LmFnZW50SWQpIHBhcmFtcy5zZXQoJ2FnZW50SWQnLCBvcHRzLmFnZW50SWQpO1xuXG4gICAgY29uc3QgcXVlcnkgPSBwYXJhbXMudG9TdHJpbmcoKTtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhKGAvc2lnbmFscy8ke2lkfS90cmFjZXMke3F1ZXJ5ID8gYD8ke3F1ZXJ5fWAgOiAnJ31gLCB7XG4gICAgICBhcGlWZXJzaW9uOiAndjEnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgZXZlbnRzIGZvciBhIHNwZWNpZmljIHNpZ25hbFxuICAgKlxuICAgKiBAcGFyYW0gaWQgLSBTaWduYWwgSURcbiAgICogQHBhcmFtIG9wdHMgLSBQYWdpbmF0aW9uIG9wdGlvbnNcbiAgICogQHJldHVybnMgU2lnbmFsIGV2ZW50c1xuICAgKi9cbiAgYXN5bmMgZ2V0RXZlbnRzKGlkOiBzdHJpbmcsIG9wdHM/OiBTaWduYWxFdmVudHNPcHRpb25zKTogUHJvbWlzZTx7XG4gICAgZXZlbnRzOiBTaWduYWxFdmVudFtdO1xuICAgIGxpbWl0OiBudW1iZXI7XG4gICAgb2Zmc2V0OiBudW1iZXI7XG4gICAgaGFzTW9yZTogYm9vbGVhbjtcbiAgfT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBpZiAob3B0cz8ubGltaXQgIT09IHVuZGVmaW5lZCkgcGFyYW1zLnNldCgnbGltaXQnLCBTdHJpbmcob3B0cy5saW1pdCkpO1xuICAgIGlmIChvcHRzPy5vZmZzZXQgIT09IHVuZGVmaW5lZCkgcGFyYW1zLnNldCgnb2Zmc2V0JywgU3RyaW5nKG9wdHMub2Zmc2V0KSk7XG5cbiAgICBjb25zdCBxdWVyeSA9IHBhcmFtcy50b1N0cmluZygpO1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGEoYC9zaWduYWxzLyR7aWR9L2V2ZW50cyR7cXVlcnkgPyBgPyR7cXVlcnl9YCA6ICcnfWAsIHtcbiAgICAgIGFwaVZlcnNpb246ICd2MScsXG4gICAgfSk7XG4gIH0sXG59O1xuXG5leHBvcnQgeyBzaWduYWxzIGFzIGRlZmF1bHQgfTtcbiJdfQ==
|
package/dist/core/client.d.ts
CHANGED
|
@@ -95,7 +95,7 @@ export declare class AgentScopeError extends ThinkHiveError {
|
|
|
95
95
|
*/
|
|
96
96
|
export declare class RateLimitError extends ThinkHiveError {
|
|
97
97
|
readonly retryAfter: number;
|
|
98
|
-
constructor(
|
|
98
|
+
constructor(messageOrRetryAfter: string | number, retryAfterMs?: number);
|
|
99
99
|
}
|
|
100
100
|
/**
|
|
101
101
|
* IP whitelist violation error
|
package/dist/core/client.js
CHANGED
|
@@ -270,8 +270,15 @@ exports.AgentScopeError = AgentScopeError;
|
|
|
270
270
|
* ```
|
|
271
271
|
*/
|
|
272
272
|
class RateLimitError extends ThinkHiveError {
|
|
273
|
-
constructor(
|
|
274
|
-
|
|
273
|
+
constructor(messageOrRetryAfter, retryAfterMs) {
|
|
274
|
+
// Support both: new RateLimitError(60000) and new RateLimitError('msg', 60000)
|
|
275
|
+
const retryAfter = typeof messageOrRetryAfter === 'number'
|
|
276
|
+
? messageOrRetryAfter
|
|
277
|
+
: (retryAfterMs ?? 60000);
|
|
278
|
+
const message = typeof messageOrRetryAfter === 'string'
|
|
279
|
+
? messageOrRetryAfter
|
|
280
|
+
: `Rate limit exceeded. Retry after ${retryAfter}ms`;
|
|
281
|
+
super(message, 'RATE_LIMIT_EXCEEDED', 429, { retryAfter });
|
|
275
282
|
this.retryAfter = retryAfter;
|
|
276
283
|
this.name = 'RateLimitError';
|
|
277
284
|
}
|
|
@@ -287,4 +294,4 @@ class IpWhitelistError extends ThinkHiveError {
|
|
|
287
294
|
}
|
|
288
295
|
}
|
|
289
296
|
exports.IpWhitelistError = IpWhitelistError;
|
|
290
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvcmUvY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7OztHQUlHOzs7QUFxREgsZ0NBMEpDO0FBS0QsZ0RBYUM7QUEvTkQscUNBQTREO0FBRzVELCtFQUErRTtBQUMvRSxzQkFBc0I7QUFDdEIsK0VBQStFO0FBRS9FLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQztBQUN0QixNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLO0FBQ2xDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7QUFDL0IsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFFaEU7O0dBRUc7QUFDSCxTQUFTLGdCQUFnQixDQUFDLE9BQWUsRUFBRSxVQUFtQjtJQUM1RCxJQUFJLFVBQVUsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFHLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLHdCQUF3QjtJQUMzRSxDQUFDO0lBQ0QsTUFBTSxPQUFPLEdBQUcsZUFBZSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxLQUFLLENBQUMsRUFBVTtJQUN2QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQW9CRDs7R0FFRztBQUNJLEtB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QixDQUFDO0lBQ2hDLENBQUM7Q0FDRjtBQWJELDBDQWFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFhLGNBQWUsU0FBUSxjQUFjO0lBQ2hELFlBQ2tCLFVBQWtCO1FBRWxDLEtBQUssQ0FDSCxvQ0FBb0MsVUFBVSxJQUFJLEVBQ2xELHFCQUFxQixFQUNyQixHQUFHLEVBQ0gsRUFBRSxVQUFVLEVBQUUsQ0FDZixDQUFDO1FBUGMsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQVFsQyxJQUFJLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7Q0FDRjtBQVpELHdDQVlDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLGdCQUFpQixTQUFRLGNBQWM7SUFDbEQsWUFBWSxRQUFnQjtRQUMxQixLQUFLLENBQ0gsdURBQXVELEVBQ3ZELHdCQUF3QixFQUN4QixHQUFHLEVBQ0gsRUFBRSxRQUFRLEVBQUUsQ0FDYixDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksR0FBRyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0NBQ0Y7QUFWRCw0Q0FVQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpbmtIaXZlIFNESyB2My4wIC0gSFRUUCBDbGllbnRcbiAqXG4gKiBDZW50cmFsaXplZCBIVFRQIGNsaWVudCB3aXRoIGF1dGhlbnRpY2F0aW9uIGFuZCBlcnJvciBoYW5kbGluZ1xuICovXG5cbmltcG9ydCB7IGdldENvbmZpZywgZGVidWdMb2csIFNES19WRVJTSU9OIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHR5cGUgeyBBcGlSZXNwb25zZSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSRVRSWSBDT05GSUdVUkFUSU9OXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmNvbnN0IE1BWF9SRVRSSUVTID0gMztcbmNvbnN0IElOSVRJQUxfQkFDS09GRiA9IDUwMDsgLy8gbXNcbmNvbnN0IE1BWF9CQUNLT0ZGID0gODAwMDsgLy8gbXNcbmNvbnN0IFJFVFJZQUJMRV9DT0RFUyA9IG5ldyBTZXQoWzQwOCwgNDI5LCA1MDAsIDUwMiwgNTAzLCA1MDRdKTtcblxuLyoqXG4gKiBDYWxjdWxhdGUgYmFja29mZiB0aW1lIGZvciByZXRyeSBhdHRlbXB0XG4gKi9cbmZ1bmN0aW9uIGNhbGN1bGF0ZUJhY2tvZmYoYXR0ZW1wdDogbnVtYmVyLCByZXRyeUFmdGVyPzogbnVtYmVyKTogbnVtYmVyIHtcbiAgaWYgKHJldHJ5QWZ0ZXIgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBNYXRoLm1pbihyZXRyeUFmdGVyICogMTAwMCwgTUFYX0JBQ0tPRkYpOyAvLyBDb252ZXJ0IHNlY29uZHMgdG8gbXNcbiAgfVxuICBjb25zdCBiYWNrb2ZmID0gSU5JVElBTF9CQUNLT0ZGICogTWF0aC5wb3coMiwgYXR0ZW1wdCk7XG4gIHJldHVybiBNYXRoLm1pbihiYWNrb2ZmLCBNQVhfQkFDS09GRik7XG59XG5cbi8qKlxuICogU2xlZXAgZm9yIGEgZ2l2ZW4gbnVtYmVyIG9mIG1pbGxpc2Vjb25kc1xuICovXG5mdW5jdGlvbiBzbGVlcChtczogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBtcykpO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBIVFRQIENMSUVOVFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RPcHRpb25zIHtcbiAgbWV0aG9kPzogJ0dFVCcgfCAnUE9TVCcgfCAnUFVUJyB8ICdQQVRDSCcgfCAnREVMRVRFJztcbiAgYm9keT86IHVua25vd247XG4gIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKiogT3ZlcnJpZGUgQVBJIHZlcnNpb24gZm9yIHRoaXMgcmVxdWVzdC4gVXNlICdub25lJyBmb3IgdW52ZXJzaW9uZWQgcm91dGVzIChlLmcuLCAvYXBpL2FnZW50cykuICovXG4gIGFwaVZlcnNpb24/OiAndjEnIHwgJ3YyJyB8ICd2MycgfCAnbm9uZSc7XG4gIC8qKiBPdmVycmlkZSBtYXggcmV0cmllcyBmb3IgdGhpcyByZXF1ZXN0ICovXG4gIG1heFJldHJpZXM/OiBudW1iZXI7XG4gIC8qKiBSZXF1ZXN0IHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzICovXG4gIHRpbWVvdXQ/OiBudW1iZXI7XG4gIC8qKiBVc2UgcGF0aCBhcy1pcyB3aXRob3V0IHByZXBlbmRpbmcgL2FwaS8gcHJlZml4IChmb3Igcm91dGVzIGxpa2UgL3YxL2d1YXJkcmFpbHMvc2NhbikgKi9cbiAgcmF3UGF0aD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogTWFrZSBhbiBhdXRoZW50aWNhdGVkIEFQSSByZXF1ZXN0IHdpdGggcmV0cnkgbG9naWNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwaVJlcXVlc3Q8VD4oXG4gIHBhdGg6IHN0cmluZyxcbiAgb3B0aW9uczogUmVxdWVzdE9wdGlvbnMgPSB7fVxuKTogUHJvbWlzZTxUPiB7XG4gIGNvbnN0IGNvbmZpZyA9IGdldENvbmZpZygpO1xuICBjb25zdCB7IG1ldGhvZCA9ICdHRVQnLCBib2R5LCBoZWFkZXJzID0ge30sIGFwaVZlcnNpb24sIG1heFJldHJpZXMsIHRpbWVvdXQsIHJhd1BhdGggfSA9IG9wdGlvbnM7XG5cbiAgbGV0IHVybDogc3RyaW5nO1xuICBpZiAocmF3UGF0aCkge1xuICAgIHVybCA9IGAke2NvbmZpZy5lbmRwb2ludH0ke3BhdGh9YDtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB2ZXJzaW9uID0gYXBpVmVyc2lvbiA9PT0gJ25vbmUnID8gJycgOiAoYXBpVmVyc2lvbiB8fCAnJyk7XG4gICAgdXJsID0gdmVyc2lvbiA/IGAke2NvbmZpZy5lbmRwb2ludH0vYXBpLyR7dmVyc2lvbn0ke3BhdGh9YCA6IGAke2NvbmZpZy5lbmRwb2ludH0vYXBpJHtwYXRofWA7XG4gIH1cbiAgY29uc3QgcmV0cmllcyA9IG1heFJldHJpZXMgPz8gTUFYX1JFVFJJRVM7XG4gIGNvbnN0IHJlcXVlc3RUaW1lb3V0ID0gdGltZW91dCA/PyAzMDAwMDsgLy8gRGVmYXVsdCAzMHNcblxuICBjb25zdCByZXF1ZXN0SGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICdYLVNESy1WZXJzaW9uJzogU0RLX1ZFUlNJT04sXG4gICAgLi4uaGVhZGVycyxcbiAgfTtcblxuICBpZiAoY29uZmlnLmFwaUtleSkge1xuICAgIHJlcXVlc3RIZWFkZXJzWydBdXRob3JpemF0aW9uJ10gPSBgQmVhcmVyICR7Y29uZmlnLmFwaUtleX1gO1xuICB9IGVsc2UgaWYgKGNvbmZpZy5hZ2VudElkKSB7XG4gICAgcmVxdWVzdEhlYWRlcnNbJ1gtQWdlbnQtSUQnXSA9IGNvbmZpZy5hZ2VudElkO1xuICB9XG5cbiAgZGVidWdMb2coYCR7bWV0aG9kfSAke3VybH1gKTtcblxuICBsZXQgbGFzdEVycm9yOiBFcnJvciB8IG51bGwgPSBudWxsO1xuXG4gIGZvciAobGV0IGF0dGVtcHQgPSAwOyBhdHRlbXB0IDw9IHJldHJpZXM7IGF0dGVtcHQrKykge1xuICAgIHRyeSB7XG4gICAgICAvLyBDcmVhdGUgYWJvcnQgY29udHJvbGxlciBmb3IgdGltZW91dFxuICAgICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICAgIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4gY29udHJvbGxlci5hYm9ydCgpLCByZXF1ZXN0VGltZW91dCk7XG5cbiAgICAgIGxldCByZXNwb25zZTogUmVzcG9uc2U7XG4gICAgICB0cnkge1xuICAgICAgICByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCwge1xuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICBoZWFkZXJzOiByZXF1ZXN0SGVhZGVycyxcbiAgICAgICAgICBib2R5OiBib2R5ID8gSlNPTi5zdHJpbmdpZnkoYm9keSkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbCxcbiAgICAgICAgfSk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcbiAgICAgIH1cblxuICAgICAgLy8gSGFuZGxlIGRlcHJlY2F0aW9uIHdhcm5pbmdzXG4gICAgICBpZiAocmVzcG9uc2UuaGVhZGVycy5oYXMoJ0RlcHJlY2F0aW9uJykpIHtcbiAgICAgICAgY29uc3Qgc3Vuc2V0ID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ1N1bnNldCcpO1xuICAgICAgICBjb25zdCBsaW5rID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ0xpbmsnKTtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBbVGhpbmtIaXZlXSBEZXByZWNhdGlvbiB3YXJuaW5nOiBUaGlzIGVuZHBvaW50IGlzIGRlcHJlY2F0ZWQuYCArXG4gICAgICAgICAgICAoc3Vuc2V0ID8gYCBTdW5zZXQ6ICR7c3Vuc2V0fWAgOiAnJykgK1xuICAgICAgICAgICAgKGxpbmsgPyBgIFN1Y2Nlc3NvcjogJHtsaW5rfWAgOiAnJylcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2hlY2sgaWYgcmVzcG9uc2UgaXMgcmV0cnlhYmxlXG4gICAgICBpZiAoUkVUUllBQkxFX0NPREVTLmhhcyhyZXNwb25zZS5zdGF0dXMpICYmIGF0dGVtcHQgPCByZXRyaWVzKSB7XG4gICAgICAgIC8vIEdldCBSZXRyeS1BZnRlciBoZWFkZXIgaWYgcHJlc2VudCAoZm9yIDQyOSByZXNwb25zZXMpXG4gICAgICAgIGxldCByZXRyeUFmdGVyOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDQyOSkge1xuICAgICAgICAgIGNvbnN0IHJldHJ5QWZ0ZXJIZWFkZXIgPSByZXNwb25zZS5oZWFkZXJzLmdldCgnUmV0cnktQWZ0ZXInKTtcbiAgICAgICAgICBpZiAocmV0cnlBZnRlckhlYWRlcikge1xuICAgICAgICAgICAgcmV0cnlBZnRlciA9IHBhcnNlRmxvYXQocmV0cnlBZnRlckhlYWRlcik7XG4gICAgICAgICAgICBpZiAoaXNOYU4ocmV0cnlBZnRlcikpIHtcbiAgICAgICAgICAgICAgcmV0cnlBZnRlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBiYWNrb2ZmID0gY2FsY3VsYXRlQmFja29mZihhdHRlbXB0LCByZXRyeUFmdGVyKTtcbiAgICAgICAgZGVidWdMb2coYFJldHJ5aW5nIGFmdGVyICR7YmFja29mZn1tcyAoYXR0ZW1wdCAke2F0dGVtcHQgKyAxfS8ke3JldHJpZXN9KWApO1xuICAgICAgICBhd2FpdCBzbGVlcChiYWNrb2ZmKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgY29uc3QgZXJyb3JUZXh0ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuICAgICAgICBsZXQgZXJyb3JEYXRhOiB7IG1lc3NhZ2U/OiBzdHJpbmc7IGNvZGU/OiBzdHJpbmcgfSA9IHt9O1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGVycm9yRGF0YSA9IEpTT04ucGFyc2UoZXJyb3JUZXh0KTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgZXJyb3JEYXRhID0geyBtZXNzYWdlOiBlcnJvclRleHQgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEhhbmRsZSByYXRlIGxpbWl0IHNwZWNpZmljYWxseVxuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MjkpIHtcbiAgICAgICAgICBjb25zdCByZXRyeUFmdGVySGVhZGVyID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ1JldHJ5LUFmdGVyJyk7XG4gICAgICAgICAgY29uc3QgcmV0cnlBZnRlciA9IHJldHJ5QWZ0ZXJIZWFkZXIgPyBwYXJzZUZsb2F0KHJldHJ5QWZ0ZXJIZWFkZXIpICogMTAwMCA6IDYwMDAwO1xuICAgICAgICAgIHRocm93IG5ldyBSYXRlTGltaXRFcnJvcihyZXRyeUFmdGVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IG5ldyBUaGlua0hpdmVBcGlFcnJvcihcbiAgICAgICAgICBlcnJvckRhdGEubWVzc2FnZSB8fCBgSFRUUCAke3Jlc3BvbnNlLnN0YXR1c31gLFxuICAgICAgICAgIHJlc3BvbnNlLnN0YXR1cyxcbiAgICAgICAgICBlcnJvckRhdGEuY29kZVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICAvLyBIYW5kbGUgMjA0IE5vIENvbnRlbnQgKGUuZy4sIHN1Y2Nlc3NmdWwgREVMRVRFKVxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gMjA0KSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQgYXMgdW5rbm93biBhcyBUO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzcG9uc2UuanNvbigpIGFzIFByb21pc2U8VD47XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIEhhbmRsZSBhYm9ydCAodGltZW91dClcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmIGVycm9yLm5hbWUgPT09ICdBYm9ydEVycm9yJykge1xuICAgICAgICBsYXN0RXJyb3IgPSBuZXcgVGhpbmtIaXZlQXBpRXJyb3IoYFJlcXVlc3QgdGltZWQgb3V0IGFmdGVyICR7cmVxdWVzdFRpbWVvdXR9bXNgLCA0MDgpO1xuICAgICAgICBpZiAoYXR0ZW1wdCA8IHJldHJpZXMpIHtcbiAgICAgICAgICBjb25zdCBiYWNrb2ZmID0gY2FsY3VsYXRlQmFja29mZihhdHRlbXB0KTtcbiAgICAgICAgICBkZWJ1Z0xvZyhgUmVxdWVzdCB0aW1lZCBvdXQsIHJldHJ5aW5nIGFmdGVyICR7YmFja29mZn1tcyAoYXR0ZW1wdCAke2F0dGVtcHQgKyAxfS8ke3JldHJpZXN9KWApO1xuICAgICAgICAgIGF3YWl0IHNsZWVwKGJhY2tvZmYpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGxhc3RFcnJvcjtcbiAgICAgIH1cblxuICAgICAgLy8gSGFuZGxlIG5ldHdvcmsgZXJyb3JzIChUeXBlRXJyb3IgZnJvbSBmZXRjaClcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIFR5cGVFcnJvcikge1xuICAgICAgICBsYXN0RXJyb3IgPSBuZXcgVGhpbmtIaXZlQXBpRXJyb3IoYE5ldHdvcmsgZXJyb3I6ICR7ZXJyb3IubWVzc2FnZX1gLCA1MDMpO1xuICAgICAgICBpZiAoYXR0ZW1wdCA8IHJldHJpZXMpIHtcbiAgICAgICAgICBjb25zdCBiYWNrb2ZmID0gY2FsY3VsYXRlQmFja29mZihhdHRlbXB0KTtcbiAgICAgICAgICBkZWJ1Z0xvZyhgTmV0d29yayBlcnJvciwgcmV0cnlpbmcgYWZ0ZXIgJHtiYWNrb2ZmfW1zIChhdHRlbXB0ICR7YXR0ZW1wdCArIDF9LyR7cmV0cmllc30pYCk7XG4gICAgICAgICAgYXdhaXQgc2xlZXAoYmFja29mZik7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbGFzdEVycm9yO1xuICAgICAgfVxuXG4gICAgICAvLyBSZS10aHJvdyBUaGlua0hpdmUgZXJyb3JzIChub24tcmV0cnlhYmxlKVxuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgVGhpbmtIaXZlRXJyb3IpIHtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG5cbiAgICAgIC8vIFVua25vd24gZXJyb3JcbiAgICAgIGxhc3RFcnJvciA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvciA6IG5ldyBFcnJvcihTdHJpbmcoZXJyb3IpKTtcbiAgICAgIGlmIChhdHRlbXB0IDwgcmV0cmllcykge1xuICAgICAgICBjb25zdCBiYWNrb2ZmID0gY2FsY3VsYXRlQmFja29mZihhdHRlbXB0KTtcbiAgICAgICAgYXdhaXQgc2xlZXAoYmFja29mZik7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IFRoaW5rSGl2ZUFwaUVycm9yKGBSZXF1ZXN0IGZhaWxlZDogJHtsYXN0RXJyb3IubWVzc2FnZX1gLCA1MDApO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNob3VsZCBub3QgcmVhY2ggaGVyZSwgYnV0IGp1c3QgaW4gY2FzZVxuICB0aHJvdyBsYXN0RXJyb3IgfHwgbmV3IFRoaW5rSGl2ZUFwaUVycm9yKCdSZXF1ZXN0IGZhaWxlZCBhZnRlciBhbGwgcmV0cmllcycsIDUwMCk7XG59XG5cbi8qKlxuICogTWFrZSBhbiBBUEkgcmVxdWVzdCBhbmQgZXh0cmFjdCBkYXRhIGZyb20gcmVzcG9uc2Ugd3JhcHBlclxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBpUmVxdWVzdFdpdGhEYXRhPFQ+KFxuICBwYXRoOiBzdHJpbmcsXG4gIG9wdGlvbnM6IFJlcXVlc3RPcHRpb25zID0ge31cbik6IFByb21pc2U8VD4ge1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaVJlcXVlc3Q8QXBpUmVzcG9uc2U8VD4+KHBhdGgsIG9wdGlvbnMpO1xuICBpZiAoIXJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICB0aHJvdyBuZXcgVGhpbmtIaXZlQXBpRXJyb3IoXG4gICAgICByZXNwb25zZS5lcnJvcj8ubWVzc2FnZSB8fCAnVW5rbm93biBlcnJvcicsXG4gICAgICA1MDAsXG4gICAgICByZXNwb25zZS5lcnJvcj8uY29kZVxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHJlc3BvbnNlLmRhdGEgYXMgVDtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRVJST1JTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQmFzZSBlcnJvciBjbGFzcyBmb3IgVGhpbmtIaXZlIFNESyBlcnJvcnNcbiAqL1xuZXhwb3J0IGNsYXNzIFRoaW5rSGl2ZUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IGNvZGU6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3RhdHVzQ29kZT86IG51bWJlcixcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGV0YWlscz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdUaGlua0hpdmVFcnJvcic7XG4gIH1cbn1cblxuLyoqXG4gKiBBUEkgcmVxdWVzdCBlcnJvciAtIHJldHVybmVkIGZyb20gVGhpbmtIaXZlIHNlcnZlclxuICovXG5leHBvcnQgY2xhc3MgVGhpbmtIaXZlQXBpRXJyb3IgZXh0ZW5kcyBUaGlua0hpdmVFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBzdGF0dXNDb2RlOiBudW1iZXIsXG4gICAgY29kZT86IHN0cmluZ1xuICApIHtcbiAgICBzdXBlcihtZXNzYWdlLCBjb2RlIHx8ICdBUElfRVJST1InLCBzdGF0dXNDb2RlKTtcbiAgICB0aGlzLm5hbWUgPSAnVGhpbmtIaXZlQXBpRXJyb3InO1xuICB9XG59XG5cbi8qKlxuICogVmFsaWRhdGlvbiBlcnJvciAtIGludmFsaWQgaW5wdXQgcGFyYW1ldGVyc1xuICovXG5leHBvcnQgY2xhc3MgVGhpbmtIaXZlVmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgVGhpbmtIaXZlRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IGZpZWxkPzogc3RyaW5nXG4gICkge1xuICAgIHN1cGVyKG1lc3NhZ2UsICdWQUxJREFUSU9OX0VSUk9SJywgNDAwLCBmaWVsZCA/IHsgZmllbGQgfSA6IHVuZGVmaW5lZCk7XG4gICAgdGhpcy5uYW1lID0gJ1RoaW5rSGl2ZVZhbGlkYXRpb25FcnJvcic7XG4gIH1cbn1cblxuLyoqXG4gKiBQZXJtaXNzaW9uIGRlbmllZCBlcnJvciAtIEFQSSBrZXkgbGFja3MgcmVxdWlyZWQgcGVybWlzc2lvbnNcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiB0cnkge1xuICogICBhd2FpdCB0aGlua0hpdmUudHJhY2VzLmNyZWF0ZSguLi4pO1xuICogfSBjYXRjaCAoZXJyb3IpIHtcbiAqICAgaWYgKGVycm9yIGluc3RhbmNlb2YgUGVybWlzc2lvbkRlbmllZEVycm9yKSB7XG4gKiAgICAgY29uc29sZS5sb2coJ0FQSSBrZXkgbmVlZHMgd3JpdGUgcGVybWlzc2lvbicpO1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25EZW5pZWRFcnJvciBleHRlbmRzIFRoaW5rSGl2ZUVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBkZXRhaWxzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pIHtcbiAgICBzdXBlcihtZXNzYWdlLCAnUEVSTUlTU0lPTl9ERU5JRUQnLCA0MDMsIGRldGFpbHMpO1xuICAgIHRoaXMubmFtZSA9ICdQZXJtaXNzaW9uRGVuaWVkRXJyb3InO1xuICB9XG59XG5cbi8qKlxuICogQWdlbnQgc2NvcGUgdmlvbGF0aW9uIGVycm9yIC0gQVBJIGtleSBub3QgYXV0aG9yaXplZCBmb3IgdGhpcyBhZ2VudFxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIENyZWF0ZSBrZXkgc2NvcGVkIHRvIHNwZWNpZmljIGFnZW50c1xuICogY29uc3Qga2V5ID0gYXdhaXQgdGhpbmtIaXZlLmFwaUtleXMuY3JlYXRlKHtcbiAqICAgbmFtZTogJ0FnZW50IEEgS2V5JyxcbiAqICAgYWxsb3dlZEFnZW50SWRzOiBbJ2FnZW50LWEtaWQnXVxuICogfSk7XG4gKlxuICogLy8gQXR0ZW1wdGluZyB0byB1c2UgZm9yIEFnZW50IEIgd2lsbCB0aHJvdyBBZ2VudFNjb3BlRXJyb3JcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgQWdlbnRTY29wZUVycm9yIGV4dGVuZHMgVGhpbmtIaXZlRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBhZ2VudElkOiBzdHJpbmcsXG4gICAgYWxsb3dlZEFnZW50czogc3RyaW5nW11cbiAgKSB7XG4gICAgc3VwZXIoXG4gICAgICBgQVBJIGtleSBub3QgYXV0aG9yaXplZCBmb3IgYWdlbnQgJHthZ2VudElkfWAsXG4gICAgICAnQUdFTlRfU0NPUEVfVklPTEFUSU9OJyxcbiAgICAgIDQwMyxcbiAgICAgIHsgYWdlbnRJZCwgYWxsb3dlZEFnZW50cyB9XG4gICAgKTtcbiAgICB0aGlzLm5hbWUgPSAnQWdlbnRTY29wZUVycm9yJztcbiAgfVxufVxuXG4vKipcbiAqIFJhdGUgbGltaXQgZXhjZWVkZWQgZXJyb3JcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiB0cnkge1xuICogICBhd2FpdCB0aGlua0hpdmUudHJhY2VzLmNyZWF0ZSguLi4pO1xuICogfSBjYXRjaCAoZXJyb3IpIHtcbiAqICAgaWYgKGVycm9yIGluc3RhbmNlb2YgUmF0ZUxpbWl0RXJyb3IpIHtcbiAqICAgICAvLyBXYWl0IGFuZCByZXRyeVxuICogICAgIGF3YWl0IHNsZWVwKGVycm9yLnJldHJ5QWZ0ZXIpO1xuICogICAgIGF3YWl0IHRoaW5rSGl2ZS50cmFjZXMuY3JlYXRlKC4uLik7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgUmF0ZUxpbWl0RXJyb3IgZXh0ZW5kcyBUaGlua0hpdmVFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSByZXRyeUFmdGVyOiBudW1iZXJcbiAgKSB7XG4gICAgc3VwZXIoXG4gICAgICBgUmF0ZSBsaW1pdCBleGNlZWRlZC4gUmV0cnkgYWZ0ZXIgJHtyZXRyeUFmdGVyfW1zYCxcbiAgICAgICdSQVRFX0xJTUlUX0VYQ0VFREVEJyxcbiAgICAgIDQyOSxcbiAgICAgIHsgcmV0cnlBZnRlciB9XG4gICAgKTtcbiAgICB0aGlzLm5hbWUgPSAnUmF0ZUxpbWl0RXJyb3InO1xuICB9XG59XG5cbi8qKlxuICogSVAgd2hpdGVsaXN0IHZpb2xhdGlvbiBlcnJvclxuICovXG5leHBvcnQgY2xhc3MgSXBXaGl0ZWxpc3RFcnJvciBleHRlbmRzIFRoaW5rSGl2ZUVycm9yIHtcbiAgY29uc3RydWN0b3IoY2xpZW50SXA6IHN0cmluZykge1xuICAgIHN1cGVyKFxuICAgICAgJ1JlcXVlc3QgSVAgYWRkcmVzcyBpcyBub3QgYXV0aG9yaXplZCBmb3IgdGhpcyBBUEkga2V5JyxcbiAgICAgICdJUF9XSElURUxJU1RfVklPTEFUSU9OJyxcbiAgICAgIDQwMyxcbiAgICAgIHsgY2xpZW50SXAgfVxuICAgICk7XG4gICAgdGhpcy5uYW1lID0gJ0lwV2hpdGVsaXN0RXJyb3InO1xuICB9XG59XG4iXX0=
|
|
297
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvcmUvY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7OztHQUlHOzs7QUFxREgsZ0NBMEpDO0FBS0QsZ0RBYUM7QUEvTkQscUNBQTREO0FBRzVELCtFQUErRTtBQUMvRSxzQkFBc0I7QUFDdEIsK0VBQStFO0FBRS9FLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQztBQUN0QixNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLO0FBQ2xDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7QUFDL0IsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFFaEU7O0dBRUc7QUFDSCxTQUFTLGdCQUFnQixDQUFDLE9BQWUsRUFBRSxVQUFtQjtJQUM1RCxJQUFJLFVBQVUsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFHLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLHdCQUF3QjtJQUMzRSxDQUFDO0lBQ0QsTUFBTSxPQUFPLEdBQUcsZUFBZSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxLQUFLLENBQUMsRUFBVTtJQUN2QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQW9CRDs7R0FFRztBQUNJLEtB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QixDQUFDO0lBQ2hDLENBQUM7Q0FDRjtBQWJELDBDQWFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFhLGNBQWUsU0FBUSxjQUFjO0lBR2hELFlBQVksbUJBQW9DLEVBQUUsWUFBcUI7UUFDckUsK0VBQStFO1FBQy9FLE1BQU0sVUFBVSxHQUFHLE9BQU8sbUJBQW1CLEtBQUssUUFBUTtZQUN4RCxDQUFDLENBQUMsbUJBQW1CO1lBQ3JCLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMsQ0FBQztRQUM1QixNQUFNLE9BQU8sR0FBRyxPQUFPLG1CQUFtQixLQUFLLFFBQVE7WUFDckQsQ0FBQyxDQUFDLG1CQUFtQjtZQUNyQixDQUFDLENBQUMsb0NBQW9DLFVBQVUsSUFBSSxDQUFDO1FBRXZELEtBQUssQ0FBQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7Q0FDRjtBQWhCRCx3Q0FnQkM7QUFFRDs7R0FFRztBQUNILE1BQWEsZ0JBQWlCLFNBQVEsY0FBYztJQUNsRCxZQUFZLFFBQWdCO1FBQzFCLEtBQUssQ0FDSCx1REFBdUQsRUFDdkQsd0JBQXdCLEVBQ3hCLEdBQUcsRUFDSCxFQUFFLFFBQVEsRUFBRSxDQUNiLENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxHQUFHLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7Q0FDRjtBQVZELDRDQVVDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlua0hpdmUgU0RLIHYzLjAgLSBIVFRQIENsaWVudFxuICpcbiAqIENlbnRyYWxpemVkIEhUVFAgY2xpZW50IHdpdGggYXV0aGVudGljYXRpb24gYW5kIGVycm9yIGhhbmRsaW5nXG4gKi9cblxuaW1wb3J0IHsgZ2V0Q29uZmlnLCBkZWJ1Z0xvZywgU0RLX1ZFUlNJT04gfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgdHlwZSB7IEFwaVJlc3BvbnNlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFJFVFJZIENPTkZJR1VSQVRJT05cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgTUFYX1JFVFJJRVMgPSAzO1xuY29uc3QgSU5JVElBTF9CQUNLT0ZGID0gNTAwOyAvLyBtc1xuY29uc3QgTUFYX0JBQ0tPRkYgPSA4MDAwOyAvLyBtc1xuY29uc3QgUkVUUllBQkxFX0NPREVTID0gbmV3IFNldChbNDA4LCA0MjksIDUwMCwgNTAyLCA1MDMsIDUwNF0pO1xuXG4vKipcbiAqIENhbGN1bGF0ZSBiYWNrb2ZmIHRpbWUgZm9yIHJldHJ5IGF0dGVtcHRcbiAqL1xuZnVuY3Rpb24gY2FsY3VsYXRlQmFja29mZihhdHRlbXB0OiBudW1iZXIsIHJldHJ5QWZ0ZXI/OiBudW1iZXIpOiBudW1iZXIge1xuICBpZiAocmV0cnlBZnRlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIE1hdGgubWluKHJldHJ5QWZ0ZXIgKiAxMDAwLCBNQVhfQkFDS09GRik7IC8vIENvbnZlcnQgc2Vjb25kcyB0byBtc1xuICB9XG4gIGNvbnN0IGJhY2tvZmYgPSBJTklUSUFMX0JBQ0tPRkYgKiBNYXRoLnBvdygyLCBhdHRlbXB0KTtcbiAgcmV0dXJuIE1hdGgubWluKGJhY2tvZmYsIE1BWF9CQUNLT0ZGKTtcbn1cblxuLyoqXG4gKiBTbGVlcCBmb3IgYSBnaXZlbiBudW1iZXIgb2YgbWlsbGlzZWNvbmRzXG4gKi9cbmZ1bmN0aW9uIHNsZWVwKG1zOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEhUVFAgQ0xJRU5UXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWVzdE9wdGlvbnMge1xuICBtZXRob2Q/OiAnR0VUJyB8ICdQT1NUJyB8ICdQVVQnIHwgJ1BBVENIJyB8ICdERUxFVEUnO1xuICBib2R5PzogdW5rbm93bjtcbiAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKiBPdmVycmlkZSBBUEkgdmVyc2lvbiBmb3IgdGhpcyByZXF1ZXN0LiBVc2UgJ25vbmUnIGZvciB1bnZlcnNpb25lZCByb3V0ZXMgKGUuZy4sIC9hcGkvYWdlbnRzKS4gKi9cbiAgYXBpVmVyc2lvbj86ICd2MScgfCAndjInIHwgJ3YzJyB8ICdub25lJztcbiAgLyoqIE92ZXJyaWRlIG1heCByZXRyaWVzIGZvciB0aGlzIHJlcXVlc3QgKi9cbiAgbWF4UmV0cmllcz86IG51bWJlcjtcbiAgLyoqIFJlcXVlc3QgdGltZW91dCBpbiBtaWxsaXNlY29uZHMgKi9cbiAgdGltZW91dD86IG51bWJlcjtcbiAgLyoqIFVzZSBwYXRoIGFzLWlzIHdpdGhvdXQgcHJlcGVuZGluZyAvYXBpLyBwcmVmaXggKGZvciByb3V0ZXMgbGlrZSAvdjEvZ3VhcmRyYWlscy9zY2FuKSAqL1xuICByYXdQYXRoPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBNYWtlIGFuIGF1dGhlbnRpY2F0ZWQgQVBJIHJlcXVlc3Qgd2l0aCByZXRyeSBsb2dpY1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBpUmVxdWVzdDxUPihcbiAgcGF0aDogc3RyaW5nLFxuICBvcHRpb25zOiBSZXF1ZXN0T3B0aW9ucyA9IHt9XG4pOiBQcm9taXNlPFQ+IHtcbiAgY29uc3QgY29uZmlnID0gZ2V0Q29uZmlnKCk7XG4gIGNvbnN0IHsgbWV0aG9kID0gJ0dFVCcsIGJvZHksIGhlYWRlcnMgPSB7fSwgYXBpVmVyc2lvbiwgbWF4UmV0cmllcywgdGltZW91dCwgcmF3UGF0aCB9ID0gb3B0aW9ucztcblxuICBsZXQgdXJsOiBzdHJpbmc7XG4gIGlmIChyYXdQYXRoKSB7XG4gICAgdXJsID0gYCR7Y29uZmlnLmVuZHBvaW50fSR7cGF0aH1gO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHZlcnNpb24gPSBhcGlWZXJzaW9uID09PSAnbm9uZScgPyAnJyA6IChhcGlWZXJzaW9uIHx8ICcnKTtcbiAgICB1cmwgPSB2ZXJzaW9uID8gYCR7Y29uZmlnLmVuZHBvaW50fS9hcGkvJHt2ZXJzaW9ufSR7cGF0aH1gIDogYCR7Y29uZmlnLmVuZHBvaW50fS9hcGkke3BhdGh9YDtcbiAgfVxuICBjb25zdCByZXRyaWVzID0gbWF4UmV0cmllcyA/PyBNQVhfUkVUUklFUztcbiAgY29uc3QgcmVxdWVzdFRpbWVvdXQgPSB0aW1lb3V0ID8/IDMwMDAwOyAvLyBEZWZhdWx0IDMwc1xuXG4gIGNvbnN0IHJlcXVlc3RIZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgJ1gtU0RLLVZlcnNpb24nOiBTREtfVkVSU0lPTixcbiAgICAuLi5oZWFkZXJzLFxuICB9O1xuXG4gIGlmIChjb25maWcuYXBpS2V5KSB7XG4gICAgcmVxdWVzdEhlYWRlcnNbJ0F1dGhvcml6YXRpb24nXSA9IGBCZWFyZXIgJHtjb25maWcuYXBpS2V5fWA7XG4gIH0gZWxzZSBpZiAoY29uZmlnLmFnZW50SWQpIHtcbiAgICByZXF1ZXN0SGVhZGVyc1snWC1BZ2VudC1JRCddID0gY29uZmlnLmFnZW50SWQ7XG4gIH1cblxuICBkZWJ1Z0xvZyhgJHttZXRob2R9ICR7dXJsfWApO1xuXG4gIGxldCBsYXN0RXJyb3I6IEVycm9yIHwgbnVsbCA9IG51bGw7XG5cbiAgZm9yIChsZXQgYXR0ZW1wdCA9IDA7IGF0dGVtcHQgPD0gcmV0cmllczsgYXR0ZW1wdCsrKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIENyZWF0ZSBhYm9ydCBjb250cm9sbGVyIGZvciB0aW1lb3V0XG4gICAgICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgICAgY29uc3QgdGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiBjb250cm9sbGVyLmFib3J0KCksIHJlcXVlc3RUaW1lb3V0KTtcblxuICAgICAgbGV0IHJlc3BvbnNlOiBSZXNwb25zZTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3RIZWFkZXJzLFxuICAgICAgICAgIGJvZHk6IGJvZHkgPyBKU09OLnN0cmluZ2lmeShib2R5KSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBzaWduYWw6IGNvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgICB9KTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICAgICAgfVxuXG4gICAgICAvLyBIYW5kbGUgZGVwcmVjYXRpb24gd2FybmluZ3NcbiAgICAgIGlmIChyZXNwb25zZS5oZWFkZXJzLmhhcygnRGVwcmVjYXRpb24nKSkge1xuICAgICAgICBjb25zdCBzdW5zZXQgPSByZXNwb25zZS5oZWFkZXJzLmdldCgnU3Vuc2V0Jyk7XG4gICAgICAgIGNvbnN0IGxpbmsgPSByZXNwb25zZS5oZWFkZXJzLmdldCgnTGluaycpO1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgYFtUaGlua0hpdmVdIERlcHJlY2F0aW9uIHdhcm5pbmc6IFRoaXMgZW5kcG9pbnQgaXMgZGVwcmVjYXRlZC5gICtcbiAgICAgICAgICAgIChzdW5zZXQgPyBgIFN1bnNldDogJHtzdW5zZXR9YCA6ICcnKSArXG4gICAgICAgICAgICAobGluayA/IGAgU3VjY2Vzc29yOiAke2xpbmt9YCA6ICcnKVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICAvLyBDaGVjayBpZiByZXNwb25zZSBpcyByZXRyeWFibGVcbiAgICAgIGlmIChSRVRSWUFCTEVfQ09ERVMuaGFzKHJlc3BvbnNlLnN0YXR1cykgJiYgYXR0ZW1wdCA8IHJldHJpZXMpIHtcbiAgICAgICAgLy8gR2V0IFJldHJ5LUFmdGVyIGhlYWRlciBpZiBwcmVzZW50IChmb3IgNDI5IHJlc3BvbnNlcylcbiAgICAgICAgbGV0IHJldHJ5QWZ0ZXI6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDI5KSB7XG4gICAgICAgICAgY29uc3QgcmV0cnlBZnRlckhlYWRlciA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdSZXRyeS1BZnRlcicpO1xuICAgICAgICAgIGlmIChyZXRyeUFmdGVySGVhZGVyKSB7XG4gICAgICAgICAgICByZXRyeUFmdGVyID0gcGFyc2VGbG9hdChyZXRyeUFmdGVySGVhZGVyKTtcbiAgICAgICAgICAgIGlmIChpc05hTihyZXRyeUFmdGVyKSkge1xuICAgICAgICAgICAgICByZXRyeUFmdGVyID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGJhY2tvZmYgPSBjYWxjdWxhdGVCYWNrb2ZmKGF0dGVtcHQsIHJldHJ5QWZ0ZXIpO1xuICAgICAgICBkZWJ1Z0xvZyhgUmV0cnlpbmcgYWZ0ZXIgJHtiYWNrb2ZmfW1zIChhdHRlbXB0ICR7YXR0ZW1wdCArIDF9LyR7cmV0cmllc30pYCk7XG4gICAgICAgIGF3YWl0IHNsZWVwKGJhY2tvZmYpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICBjb25zdCBlcnJvclRleHQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG4gICAgICAgIGxldCBlcnJvckRhdGE6IHsgbWVzc2FnZT86IHN0cmluZzsgY29kZT86IHN0cmluZyB9ID0ge307XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZXJyb3JEYXRhID0gSlNPTi5wYXJzZShlcnJvclRleHQpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICBlcnJvckRhdGEgPSB7IG1lc3NhZ2U6IGVycm9yVGV4dCB9O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSGFuZGxlIHJhdGUgbGltaXQgc3BlY2lmaWNhbGx5XG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDQyOSkge1xuICAgICAgICAgIGNvbnN0IHJldHJ5QWZ0ZXJIZWFkZXIgPSByZXNwb25zZS5oZWFkZXJzLmdldCgnUmV0cnktQWZ0ZXInKTtcbiAgICAgICAgICBjb25zdCByZXRyeUFmdGVyID0gcmV0cnlBZnRlckhlYWRlciA/IHBhcnNlRmxvYXQocmV0cnlBZnRlckhlYWRlcikgKiAxMDAwIDogNjAwMDA7XG4gICAgICAgICAgdGhyb3cgbmV3IFJhdGVMaW1pdEVycm9yKHJldHJ5QWZ0ZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3cgbmV3IFRoaW5rSGl2ZUFwaUVycm9yKFxuICAgICAgICAgIGVycm9yRGF0YS5tZXNzYWdlIHx8IGBIVFRQICR7cmVzcG9uc2Uuc3RhdHVzfWAsXG4gICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgICAgIGVycm9yRGF0YS5jb2RlXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIEhhbmRsZSAyMDQgTm8gQ29udGVudCAoZS5nLiwgc3VjY2Vzc2Z1bCBERUxFVEUpXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAyMDQpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIFQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXNwb25zZS5qc29uKCkgYXMgUHJvbWlzZTxUPjtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gSGFuZGxlIGFib3J0ICh0aW1lb3V0KVxuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgJiYgZXJyb3IubmFtZSA9PT0gJ0Fib3J0RXJyb3InKSB7XG4gICAgICAgIGxhc3RFcnJvciA9IG5ldyBUaGlua0hpdmVBcGlFcnJvcihgUmVxdWVzdCB0aW1lZCBvdXQgYWZ0ZXIgJHtyZXF1ZXN0VGltZW91dH1tc2AsIDQwOCk7XG4gICAgICAgIGlmIChhdHRlbXB0IDwgcmV0cmllcykge1xuICAgICAgICAgIGNvbnN0IGJhY2tvZmYgPSBjYWxjdWxhdGVCYWNrb2ZmKGF0dGVtcHQpO1xuICAgICAgICAgIGRlYnVnTG9nKGBSZXF1ZXN0IHRpbWVkIG91dCwgcmV0cnlpbmcgYWZ0ZXIgJHtiYWNrb2ZmfW1zIChhdHRlbXB0ICR7YXR0ZW1wdCArIDF9LyR7cmV0cmllc30pYCk7XG4gICAgICAgICAgYXdhaXQgc2xlZXAoYmFja29mZik7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbGFzdEVycm9yO1xuICAgICAgfVxuXG4gICAgICAvLyBIYW5kbGUgbmV0d29yayBlcnJvcnMgKFR5cGVFcnJvciBmcm9tIGZldGNoKVxuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgVHlwZUVycm9yKSB7XG4gICAgICAgIGxhc3RFcnJvciA9IG5ldyBUaGlua0hpdmVBcGlFcnJvcihgTmV0d29yayBlcnJvcjogJHtlcnJvci5tZXNzYWdlfWAsIDUwMyk7XG4gICAgICAgIGlmIChhdHRlbXB0IDwgcmV0cmllcykge1xuICAgICAgICAgIGNvbnN0IGJhY2tvZmYgPSBjYWxjdWxhdGVCYWNrb2ZmKGF0dGVtcHQpO1xuICAgICAgICAgIGRlYnVnTG9nKGBOZXR3b3JrIGVycm9yLCByZXRyeWluZyBhZnRlciAke2JhY2tvZmZ9bXMgKGF0dGVtcHQgJHthdHRlbXB0ICsgMX0vJHtyZXRyaWVzfSlgKTtcbiAgICAgICAgICBhd2FpdCBzbGVlcChiYWNrb2ZmKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBsYXN0RXJyb3I7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlLXRocm93IFRoaW5rSGl2ZSBlcnJvcnMgKG5vbi1yZXRyeWFibGUpXG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBUaGlua0hpdmVFcnJvcikge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cblxuICAgICAgLy8gVW5rbm93biBlcnJvclxuICAgICAgbGFzdEVycm9yID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yIDogbmV3IEVycm9yKFN0cmluZyhlcnJvcikpO1xuICAgICAgaWYgKGF0dGVtcHQgPCByZXRyaWVzKSB7XG4gICAgICAgIGNvbnN0IGJhY2tvZmYgPSBjYWxjdWxhdGVCYWNrb2ZmKGF0dGVtcHQpO1xuICAgICAgICBhd2FpdCBzbGVlcChiYWNrb2ZmKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgVGhpbmtIaXZlQXBpRXJyb3IoYFJlcXVlc3QgZmFpbGVkOiAke2xhc3RFcnJvci5tZXNzYWdlfWAsIDUwMCk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2hvdWxkIG5vdCByZWFjaCBoZXJlLCBidXQganVzdCBpbiBjYXNlXG4gIHRocm93IGxhc3RFcnJvciB8fCBuZXcgVGhpbmtIaXZlQXBpRXJyb3IoJ1JlcXVlc3QgZmFpbGVkIGFmdGVyIGFsbCByZXRyaWVzJywgNTAwKTtcbn1cblxuLyoqXG4gKiBNYWtlIGFuIEFQSSByZXF1ZXN0IGFuZCBleHRyYWN0IGRhdGEgZnJvbSByZXNwb25zZSB3cmFwcGVyXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhcGlSZXF1ZXN0V2l0aERhdGE8VD4oXG4gIHBhdGg6IHN0cmluZyxcbiAgb3B0aW9uczogUmVxdWVzdE9wdGlvbnMgPSB7fVxuKTogUHJvbWlzZTxUPiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpUmVxdWVzdDxBcGlSZXNwb25zZTxUPj4ocGF0aCwgb3B0aW9ucyk7XG4gIGlmICghcmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgIHRocm93IG5ldyBUaGlua0hpdmVBcGlFcnJvcihcbiAgICAgIHJlc3BvbnNlLmVycm9yPy5tZXNzYWdlIHx8ICdVbmtub3duIGVycm9yJyxcbiAgICAgIDUwMCxcbiAgICAgIHJlc3BvbnNlLmVycm9yPy5jb2RlXG4gICAgKTtcbiAgfVxuICByZXR1cm4gcmVzcG9uc2UuZGF0YSBhcyBUO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBFUlJPUlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBCYXNlIGVycm9yIGNsYXNzIGZvciBUaGlua0hpdmUgU0RLIGVycm9yc1xuICovXG5leHBvcnQgY2xhc3MgVGhpbmtIaXZlRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29kZTogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSBzdGF0dXNDb2RlPzogbnVtYmVyLFxuICAgIHB1YmxpYyByZWFkb25seSBkZXRhaWxzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ1RoaW5rSGl2ZUVycm9yJztcbiAgfVxufVxuXG4vKipcbiAqIEFQSSByZXF1ZXN0IGVycm9yIC0gcmV0dXJuZWQgZnJvbSBUaGlua0hpdmUgc2VydmVyXG4gKi9cbmV4cG9ydCBjbGFzcyBUaGlua0hpdmVBcGlFcnJvciBleHRlbmRzIFRoaW5rSGl2ZUVycm9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIHN0YXR1c0NvZGU6IG51bWJlcixcbiAgICBjb2RlPzogc3RyaW5nXG4gICkge1xuICAgIHN1cGVyKG1lc3NhZ2UsIGNvZGUgfHwgJ0FQSV9FUlJPUicsIHN0YXR1c0NvZGUpO1xuICAgIHRoaXMubmFtZSA9ICdUaGlua0hpdmVBcGlFcnJvcic7XG4gIH1cbn1cblxuLyoqXG4gKiBWYWxpZGF0aW9uIGVycm9yIC0gaW52YWxpZCBpbnB1dCBwYXJhbWV0ZXJzXG4gKi9cbmV4cG9ydCBjbGFzcyBUaGlua0hpdmVWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBUaGlua0hpdmVFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZmllbGQ/OiBzdHJpbmdcbiAgKSB7XG4gICAgc3VwZXIobWVzc2FnZSwgJ1ZBTElEQVRJT05fRVJST1InLCA0MDAsIGZpZWxkID8geyBmaWVsZCB9IDogdW5kZWZpbmVkKTtcbiAgICB0aGlzLm5hbWUgPSAnVGhpbmtIaXZlVmFsaWRhdGlvbkVycm9yJztcbiAgfVxufVxuXG4vKipcbiAqIFBlcm1pc3Npb24gZGVuaWVkIGVycm9yIC0gQVBJIGtleSBsYWNrcyByZXF1aXJlZCBwZXJtaXNzaW9uc1xuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHRyeSB7XG4gKiAgIGF3YWl0IHRoaW5rSGl2ZS50cmFjZXMuY3JlYXRlKC4uLik7XG4gKiB9IGNhdGNoIChlcnJvcikge1xuICogICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBQZXJtaXNzaW9uRGVuaWVkRXJyb3IpIHtcbiAqICAgICBjb25zb2xlLmxvZygnQVBJIGtleSBuZWVkcyB3cml0ZSBwZXJtaXNzaW9uJyk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbkRlbmllZEVycm9yIGV4dGVuZHMgVGhpbmtIaXZlRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIGRldGFpbHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikge1xuICAgIHN1cGVyKG1lc3NhZ2UsICdQRVJNSVNTSU9OX0RFTklFRCcsIDQwMywgZGV0YWlscyk7XG4gICAgdGhpcy5uYW1lID0gJ1Blcm1pc3Npb25EZW5pZWRFcnJvcic7XG4gIH1cbn1cblxuLyoqXG4gKiBBZ2VudCBzY29wZSB2aW9sYXRpb24gZXJyb3IgLSBBUEkga2V5IG5vdCBhdXRob3JpemVkIGZvciB0aGlzIGFnZW50XG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gQ3JlYXRlIGtleSBzY29wZWQgdG8gc3BlY2lmaWMgYWdlbnRzXG4gKiBjb25zdCBrZXkgPSBhd2FpdCB0aGlua0hpdmUuYXBpS2V5cy5jcmVhdGUoe1xuICogICBuYW1lOiAnQWdlbnQgQSBLZXknLFxuICogICBhbGxvd2VkQWdlbnRJZHM6IFsnYWdlbnQtYS1pZCddXG4gKiB9KTtcbiAqXG4gKiAvLyBBdHRlbXB0aW5nIHRvIHVzZSBmb3IgQWdlbnQgQiB3aWxsIHRocm93IEFnZW50U2NvcGVFcnJvclxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBBZ2VudFNjb3BlRXJyb3IgZXh0ZW5kcyBUaGlua0hpdmVFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIGFnZW50SWQ6IHN0cmluZyxcbiAgICBhbGxvd2VkQWdlbnRzOiBzdHJpbmdbXVxuICApIHtcbiAgICBzdXBlcihcbiAgICAgIGBBUEkga2V5IG5vdCBhdXRob3JpemVkIGZvciBhZ2VudCAke2FnZW50SWR9YCxcbiAgICAgICdBR0VOVF9TQ09QRV9WSU9MQVRJT04nLFxuICAgICAgNDAzLFxuICAgICAgeyBhZ2VudElkLCBhbGxvd2VkQWdlbnRzIH1cbiAgICApO1xuICAgIHRoaXMubmFtZSA9ICdBZ2VudFNjb3BlRXJyb3InO1xuICB9XG59XG5cbi8qKlxuICogUmF0ZSBsaW1pdCBleGNlZWRlZCBlcnJvclxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHRyeSB7XG4gKiAgIGF3YWl0IHRoaW5rSGl2ZS50cmFjZXMuY3JlYXRlKC4uLik7XG4gKiB9IGNhdGNoIChlcnJvcikge1xuICogICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBSYXRlTGltaXRFcnJvcikge1xuICogICAgIC8vIFdhaXQgYW5kIHJldHJ5XG4gKiAgICAgYXdhaXQgc2xlZXAoZXJyb3IucmV0cnlBZnRlcik7XG4gKiAgICAgYXdhaXQgdGhpbmtIaXZlLnRyYWNlcy5jcmVhdGUoLi4uKTtcbiAqICAgfVxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBSYXRlTGltaXRFcnJvciBleHRlbmRzIFRoaW5rSGl2ZUVycm9yIHtcbiAgcHVibGljIHJlYWRvbmx5IHJldHJ5QWZ0ZXI6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihtZXNzYWdlT3JSZXRyeUFmdGVyOiBzdHJpbmcgfCBudW1iZXIsIHJldHJ5QWZ0ZXJNcz86IG51bWJlcikge1xuICAgIC8vIFN1cHBvcnQgYm90aDogbmV3IFJhdGVMaW1pdEVycm9yKDYwMDAwKSBhbmQgbmV3IFJhdGVMaW1pdEVycm9yKCdtc2cnLCA2MDAwMClcbiAgICBjb25zdCByZXRyeUFmdGVyID0gdHlwZW9mIG1lc3NhZ2VPclJldHJ5QWZ0ZXIgPT09ICdudW1iZXInXG4gICAgICA/IG1lc3NhZ2VPclJldHJ5QWZ0ZXJcbiAgICAgIDogKHJldHJ5QWZ0ZXJNcyA/PyA2MDAwMCk7XG4gICAgY29uc3QgbWVzc2FnZSA9IHR5cGVvZiBtZXNzYWdlT3JSZXRyeUFmdGVyID09PSAnc3RyaW5nJ1xuICAgICAgPyBtZXNzYWdlT3JSZXRyeUFmdGVyXG4gICAgICA6IGBSYXRlIGxpbWl0IGV4Y2VlZGVkLiBSZXRyeSBhZnRlciAke3JldHJ5QWZ0ZXJ9bXNgO1xuXG4gICAgc3VwZXIobWVzc2FnZSwgJ1JBVEVfTElNSVRfRVhDRUVERUQnLCA0MjksIHsgcmV0cnlBZnRlciB9KTtcbiAgICB0aGlzLnJldHJ5QWZ0ZXIgPSByZXRyeUFmdGVyO1xuICAgIHRoaXMubmFtZSA9ICdSYXRlTGltaXRFcnJvcic7XG4gIH1cbn1cblxuLyoqXG4gKiBJUCB3aGl0ZWxpc3QgdmlvbGF0aW9uIGVycm9yXG4gKi9cbmV4cG9ydCBjbGFzcyBJcFdoaXRlbGlzdEVycm9yIGV4dGVuZHMgVGhpbmtIaXZlRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihjbGllbnRJcDogc3RyaW5nKSB7XG4gICAgc3VwZXIoXG4gICAgICAnUmVxdWVzdCBJUCBhZGRyZXNzIGlzIG5vdCBhdXRob3JpemVkIGZvciB0aGlzIEFQSSBrZXknLFxuICAgICAgJ0lQX1dISVRFTElTVF9WSU9MQVRJT04nLFxuICAgICAgNDAzLFxuICAgICAgeyBjbGllbnRJcCB9XG4gICAgKTtcbiAgICB0aGlzLm5hbWUgPSAnSXBXaGl0ZWxpc3RFcnJvcic7XG4gIH1cbn1cbiJdfQ==
|