@bitgo-beta/sdk-core 8.2.1-beta.312 → 8.2.1-beta.314
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/CHANGELOG.md +11 -0
- package/dist/src/account-lib/mpc/util.d.ts +7 -1
- package/dist/src/account-lib/mpc/util.d.ts.map +1 -1
- package/dist/src/account-lib/mpc/util.js +21 -2
- package/dist/src/bitgo/address-book/address-book.js +2 -2
- package/dist/src/bitgo/wallet/wallet.js +8 -8
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [26.7.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-core@26.6.2...@bitgo/sdk-core@26.7.0) (2024-04-12)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- pending approvals for txRequestLite should not use multiSig flow ([7802998](https://github.com/BitGo/BitGoJS/commit/7802998082594a970c8ef71a794cf48b748cc555))
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
- **bitgo:** add PATCH and OPTIONS to redirectRequest ([4c8ba7a](https://github.com/BitGo/BitGoJS/commit/4c8ba7abb5718261774352e1a191f0ab5dc5e616))
|
|
15
|
+
- **sdk-coin-stx:** add support to nakamoto updgrade stack-stx tx ([f9cab3a](https://github.com/BitGo/BitGoJS/commit/f9cab3a0f836f3411f45e3ab1a04ee131680f649))
|
|
16
|
+
|
|
6
17
|
## [26.6.2](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-core@26.6.1...@bitgo/sdk-core@26.6.2) (2024-04-10)
|
|
7
18
|
|
|
8
19
|
**Note:** Version bump only for package @bitgo/sdk-core
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import { bigIntFromBufferLE, bigIntToBufferLE, bigIntFromU8ABE, bigIntFromBufferBE, bigIntToBufferBE, clamp, getPaillierPublicKey } from '@bitgo-beta/sdk-lib-mpc';
|
|
1
|
+
import { bigIntFromBufferLE, bigIntToBufferLE, bigIntFromU8ABE, bigIntFromBufferBE, bigIntToBufferBE, clamp, getPaillierPublicKey, DklsTypes } from '@bitgo-beta/sdk-lib-mpc';
|
|
2
|
+
/**
|
|
3
|
+
* Combines serialized partial signatures from parties participating in DSG.
|
|
4
|
+
* @param round4DsgMessages - round 4 serialized broadcast messages payloads from participating parties
|
|
5
|
+
* @returns {DklsTypes.SerializedDklsSignature} - serialized final signature
|
|
6
|
+
*/
|
|
7
|
+
export declare function combineRound4DklsDsgMessages(round4DsgMessages: DklsTypes.SerializedBroadcastMessage[]): DklsTypes.SerializedDklsSignature;
|
|
2
8
|
/**
|
|
3
9
|
* @deprecated - use exported methods from @bitgo-beta/sdk-lib-mpc instead
|
|
4
10
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/account-lib/mpc/util.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,EACL,oBAAoB,
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/account-lib/mpc/util.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,EACL,oBAAoB,EAEpB,SAAS,EACV,MAAM,yBAAyB,CAAC;AAEjC;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,iBAAiB,EAAE,SAAS,CAAC,0BAA0B,EAAE,GACxD,SAAS,CAAC,uBAAuB,CAcnC;AAED;;GAEG;AACH,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,EACL,oBAAoB,GACrB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getPaillierPublicKey = exports.clamp = exports.bigIntToBufferBE = exports.bigIntFromBufferBE = exports.bigIntFromU8ABE = exports.bigIntToBufferLE = exports.bigIntFromBufferLE = void 0;
|
|
3
|
+
exports.getPaillierPublicKey = exports.clamp = exports.bigIntToBufferBE = exports.bigIntFromBufferBE = exports.bigIntFromU8ABE = exports.bigIntToBufferLE = exports.bigIntFromBufferLE = exports.combineRound4DklsDsgMessages = void 0;
|
|
4
4
|
const sdk_lib_mpc_1 = require("@bitgo-beta/sdk-lib-mpc");
|
|
5
5
|
Object.defineProperty(exports, "bigIntFromBufferLE", { enumerable: true, get: function () { return sdk_lib_mpc_1.bigIntFromBufferLE; } });
|
|
6
6
|
Object.defineProperty(exports, "bigIntToBufferLE", { enumerable: true, get: function () { return sdk_lib_mpc_1.bigIntToBufferLE; } });
|
|
@@ -9,4 +9,23 @@ Object.defineProperty(exports, "bigIntFromBufferBE", { enumerable: true, get: fu
|
|
|
9
9
|
Object.defineProperty(exports, "bigIntToBufferBE", { enumerable: true, get: function () { return sdk_lib_mpc_1.bigIntToBufferBE; } });
|
|
10
10
|
Object.defineProperty(exports, "clamp", { enumerable: true, get: function () { return sdk_lib_mpc_1.clamp; } });
|
|
11
11
|
Object.defineProperty(exports, "getPaillierPublicKey", { enumerable: true, get: function () { return sdk_lib_mpc_1.getPaillierPublicKey; } });
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Combines serialized partial signatures from parties participating in DSG.
|
|
14
|
+
* @param round4DsgMessages - round 4 serialized broadcast messages payloads from participating parties
|
|
15
|
+
* @returns {DklsTypes.SerializedDklsSignature} - serialized final signature
|
|
16
|
+
*/
|
|
17
|
+
function combineRound4DklsDsgMessages(round4DsgMessages) {
|
|
18
|
+
var _a;
|
|
19
|
+
const round4DsgMessagesDeser = round4DsgMessages.map(sdk_lib_mpc_1.DklsTypes.deserializeBroadcastMessage);
|
|
20
|
+
const signatureR = (_a = round4DsgMessagesDeser.find((m) => m.signatureR !== undefined)) === null || _a === void 0 ? void 0 : _a.signatureR;
|
|
21
|
+
if (!signatureR) {
|
|
22
|
+
throw Error('None of the round 4 Dkls messages contain a Signature.R value.');
|
|
23
|
+
}
|
|
24
|
+
const signatureDeser = sdk_lib_mpc_1.DklsUtils.combinePartialSignatures(round4DsgMessagesDeser.map((m) => m.payload), Buffer.from(signatureR).toString('hex'));
|
|
25
|
+
return {
|
|
26
|
+
R: Buffer.from(signatureDeser.R).toString('hex'),
|
|
27
|
+
S: Buffer.from(signatureDeser.S).toString('hex'),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
exports.combineRound4DklsDsgMessages = combineRound4DklsDsgMessages;
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hY2NvdW50LWxpYi9tcGMvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5REFVaUM7QUE2Qi9CLG1HQXRDQSxnQ0FBa0IsT0FzQ0E7QUFDbEIsaUdBdENBLDhCQUFnQixPQXNDQTtBQUNoQixnR0F0Q0EsNkJBQWUsT0FzQ0E7QUFDZixtR0F0Q0EsZ0NBQWtCLE9Bc0NBO0FBQ2xCLGlHQXRDQSw4QkFBZ0IsT0FzQ0E7QUFDaEIsc0ZBdENBLG1CQUFLLE9Bc0NBO0FBQ0wscUdBdENBLGtDQUFvQixPQXNDQTtBQWpDdEI7Ozs7R0FJRztBQUNILFNBQWdCLDRCQUE0QixDQUMxQyxpQkFBeUQ7O0lBRXpELE1BQU0sc0JBQXNCLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLHVCQUFTLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUM1RixNQUFNLFVBQVUsR0FBRyxNQUFBLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsS0FBSyxTQUFTLENBQUMsMENBQUUsVUFBVSxDQUFDO0lBQzlGLElBQUksQ0FBQyxVQUFVLEVBQUU7UUFDZixNQUFNLEtBQUssQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO0tBQy9FO0lBQ0QsTUFBTSxjQUFjLEdBQUcsdUJBQVMsQ0FBQyx3QkFBd0IsQ0FDdkQsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQzVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUN4QyxDQUFDO0lBQ0YsT0FBTztRQUNMLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQ2hELENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO0tBQ2pELENBQUM7QUFDSixDQUFDO0FBaEJELG9FQWdCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGJpZ0ludEZyb21CdWZmZXJMRSxcbiAgYmlnSW50VG9CdWZmZXJMRSxcbiAgYmlnSW50RnJvbVU4QUJFLFxuICBiaWdJbnRGcm9tQnVmZmVyQkUsXG4gIGJpZ0ludFRvQnVmZmVyQkUsXG4gIGNsYW1wLFxuICBnZXRQYWlsbGllclB1YmxpY0tleSxcbiAgRGtsc1V0aWxzLFxuICBEa2xzVHlwZXMsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1saWItbXBjJztcblxuLyoqXG4gKiBDb21iaW5lcyBzZXJpYWxpemVkIHBhcnRpYWwgc2lnbmF0dXJlcyBmcm9tIHBhcnRpZXMgcGFydGljaXBhdGluZyBpbiBEU0cuXG4gKiBAcGFyYW0gcm91bmQ0RHNnTWVzc2FnZXMgLSByb3VuZCA0IHNlcmlhbGl6ZWQgYnJvYWRjYXN0IG1lc3NhZ2VzIHBheWxvYWRzIGZyb20gcGFydGljaXBhdGluZyBwYXJ0aWVzXG4gKiBAcmV0dXJucyB7RGtsc1R5cGVzLlNlcmlhbGl6ZWREa2xzU2lnbmF0dXJlfSAtIHNlcmlhbGl6ZWQgZmluYWwgc2lnbmF0dXJlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lUm91bmQ0RGtsc0RzZ01lc3NhZ2VzKFxuICByb3VuZDREc2dNZXNzYWdlczogRGtsc1R5cGVzLlNlcmlhbGl6ZWRCcm9hZGNhc3RNZXNzYWdlW11cbik6IERrbHNUeXBlcy5TZXJpYWxpemVkRGtsc1NpZ25hdHVyZSB7XG4gIGNvbnN0IHJvdW5kNERzZ01lc3NhZ2VzRGVzZXIgPSByb3VuZDREc2dNZXNzYWdlcy5tYXAoRGtsc1R5cGVzLmRlc2VyaWFsaXplQnJvYWRjYXN0TWVzc2FnZSk7XG4gIGNvbnN0IHNpZ25hdHVyZVIgPSByb3VuZDREc2dNZXNzYWdlc0Rlc2VyLmZpbmQoKG0pID0+IG0uc2lnbmF0dXJlUiAhPT0gdW5kZWZpbmVkKT8uc2lnbmF0dXJlUjtcbiAgaWYgKCFzaWduYXR1cmVSKSB7XG4gICAgdGhyb3cgRXJyb3IoJ05vbmUgb2YgdGhlIHJvdW5kIDQgRGtscyBtZXNzYWdlcyBjb250YWluIGEgU2lnbmF0dXJlLlIgdmFsdWUuJyk7XG4gIH1cbiAgY29uc3Qgc2lnbmF0dXJlRGVzZXIgPSBEa2xzVXRpbHMuY29tYmluZVBhcnRpYWxTaWduYXR1cmVzKFxuICAgIHJvdW5kNERzZ01lc3NhZ2VzRGVzZXIubWFwKChtKSA9PiBtLnBheWxvYWQpLFxuICAgIEJ1ZmZlci5mcm9tKHNpZ25hdHVyZVIpLnRvU3RyaW5nKCdoZXgnKVxuICApO1xuICByZXR1cm4ge1xuICAgIFI6IEJ1ZmZlci5mcm9tKHNpZ25hdHVyZURlc2VyLlIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICBTOiBCdWZmZXIuZnJvbShzaWduYXR1cmVEZXNlci5TKS50b1N0cmluZygnaGV4JyksXG4gIH07XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgLSB1c2UgZXhwb3J0ZWQgbWV0aG9kcyBmcm9tIEBiaXRnby1iZXRhL3Nkay1saWItbXBjIGluc3RlYWRcbiAqL1xuZXhwb3J0IHtcbiAgYmlnSW50RnJvbUJ1ZmZlckxFLFxuICBiaWdJbnRUb0J1ZmZlckxFLFxuICBiaWdJbnRGcm9tVThBQkUsXG4gIGJpZ0ludEZyb21CdWZmZXJCRSxcbiAgYmlnSW50VG9CdWZmZXJCRSxcbiAgY2xhbXAsXG4gIGdldFBhaWxsaWVyUHVibGljS2V5LFxufTtcbiJdfQ==
|
|
@@ -12,7 +12,7 @@ class AddressBook {
|
|
|
12
12
|
* TODO(PX-2794): Move to structuredClone
|
|
13
13
|
* https://github.com/BitGo/BitGoJS/pull/4119
|
|
14
14
|
*/
|
|
15
|
-
return
|
|
15
|
+
return JSON.parse(JSON.stringify(this._listing));
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* Get a list of connections the wallet has made to other directory or manually added contacts.
|
|
@@ -139,4 +139,4 @@ class AddressBook {
|
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
141
|
exports.AddressBook = AddressBook;
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1ib29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL2FkZHJlc3MtYm9vay9hZGRyZXNzLWJvb2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMEJBLE1BQWEsV0FBVztJQU90QixZQUFZLFlBQW9CLEVBQUUsS0FBZ0IsRUFBRSxNQUFnQjtRQUNsRSxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsT0FBTztRQUNMOzs7V0FHRztRQUNILE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjLENBQUMsTUFBd0M7UUFDckQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQzVFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNGLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxnQkFBZ0IsQ0FBQyxNQUF5QztRQUN4RCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDNUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENB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LEVBQUUsQ0FBQyxDQUFDO1FBQ2hHLE1BQU0sUUFBUSxHQUEwQyxNQUFNLElBQUksQ0FBQyxLQUFLO2FBQ3JFLEdBQUcsQ0FBQyxHQUFHLENBQUM7YUFDUixHQUFHLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQzthQUNaLE1BQU0sRUFBRSxDQUFDO1FBQ1osSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLE1BQU0sS0FBSyxHQUFHLE1BQUEsTUFBQSxNQUFBLElBQUksQ0FBQyxRQUFRLDBDQUFFLGNBQWMsMENBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxFQUFFLENBQUMsbUNBQUksQ0FBQyxDQUFDLENBQUM7WUFDMUYsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUU7Z0JBQzlDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxRQUFRLEVBQUUsQ0FBQzthQUN2RDtpQkFBTTtnQkFDTCxNQUFBLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYywwQ0FBRSxJQUFJLENBQUMsRUFBRSxHQUFHLFFBQVEsRUFBRSxDQUFDLENBQUM7YUFDckQ7U0FDRjtRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7Q0FDRjtBQWhLRCxrQ0FnS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi9iaXRnb0Jhc2UnO1xuaW1wb3J0IHsgSVdhbGxldCB9IGZyb20gJy4uL3dhbGxldCc7XG5pbXBvcnQge1xuICBBZGRyZXNzQm9va0xpc3RpbmcsXG4gIENyZWF0ZUFkZHJlc3NCb29rQ29ubmVjdGlvblBhcmFtcyxcbiAgQ3JlYXRlQWRkcmVzc0Jvb2tDb25uZWN0aW9uUmVzcG9uc2UsXG4gIENyZWF0ZUFkZHJlc3NCb29rTGlzdGluZ0VudHJ5UGFyYW1zLFxuICBDcmVhdGVBZGRyZXNzQm9va0xpc3RpbmdFbnRyeVJlc3BvbnNlLFxuICBDcmVhdGVBZGRyZXNzQm9va0xpc3RpbmdQYXJhbXMsXG4gIENyZWF0ZUFkZHJlc3NCb29rTGlzdGluZ1Jlc3BvbnNlLFxuICBHZXRBZGRyZXNzQm9va0Nvbm5lY3Rpb25zUGFyYW1zLFxuICBHZXRBZGRyZXNzQm9va0Nvbm5lY3Rpb25zUmVzcG9uc2UsXG4gIEdldEFkZHJlc3NCb29rTGlzdGluZ0VudHJ5Q29udGFjdHNQYXJhbXMsXG4gIEdldEFkZHJlc3NCb29rTGlzdGluZ0VudHJ5Q29udGFjdHNSZXNwb25zZSxcbiAgR2V0QWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlEaXJlY3RvcnlQYXJhbXMsXG4gIEdldEFkZHJlc3NCb29rTGlzdGluZ0VudHJ5RGlyZWN0b3J5UmVzcG9uc2UsXG4gIEdldEFkZHJlc3NCb29rTGlzdGluZ1Jlc3BvbnNlLFxuICBJQWRkcmVzc0Jvb2ssXG4gIFVwZGF0ZUFkZHJlc3NCb29rQ29ubmVjdGlvblBhcmFtcyxcbiAgVXBkYXRlQWRkcmVzc0Jvb2tDb25uZWN0aW9uUmVzcG9uc2UsXG4gIFVwZGF0ZUFkZHJlc3NCb29rTGlzdGluZ0VudHJ5UGFyYW1zLFxuICBVcGRhdGVBZGRyZXNzQm9va0xpc3RpbmdFbnRyeVJlc3BvbnNlLFxuICBVcGRhdGVBZGRyZXNzQm9va0xpc3RpbmdQYXJhbXMsXG4gIFVwZGF0ZUFkZHJlc3NCb29rTGlzdGluZ1Jlc3BvbnNlLFxufSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIEFkZHJlc3NCb29rIGltcGxlbWVudHMgSUFkZHJlc3NCb29rIHtcbiAgcHJpdmF0ZSByZWFkb25seSBiaXRnbzogQml0R29CYXNlO1xuICBwcml2YXRlIHJlYWRvbmx5IGVudGVycHJpc2VJZDogc3RyaW5nO1xuXG4gIHB1YmxpYyB3YWxsZXQ/OiBJV2FsbGV0O1xuICBwcml2YXRlIF9saXN0aW5nPzogQWRkcmVzc0Jvb2tMaXN0aW5nO1xuXG4gIGNvbnN0cnVjdG9yKGVudGVycHJpc2VJZDogc3RyaW5nLCBiaXRnbzogQml0R29CYXNlLCB3YWxsZXQ/OiBJV2FsbGV0KSB7XG4gICAgdGhpcy5lbnRlcnByaXNlSWQgPSBlbnRlcnByaXNlSWQ7XG4gICAgdGhpcy53YWxsZXQgPSB3YWxsZXQ7XG4gICAgdGhpcy5iaXRnbyA9IGJpdGdvO1xuICB9XG5cbiAgbGlzdGluZygpOiBBZGRyZXNzQm9va0xpc3RpbmcgfCB1bmRlZmluZWQge1xuICAgIC8qKlxuICAgICAqIFRPRE8oUFgtMjc5NCk6IE1vdmUgdG8gc3RydWN0dXJlZENsb25lXG4gICAgICogaHR0cHM6Ly9naXRodWIuY29tL0JpdEdvL0JpdEdvSlMvcHVsbC80MTE5XG4gICAgICovXG4gICAgcmV0dXJuIHN0cnVjdHVyZWRDbG9uZSh0aGlzLl9saXN0aW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBsaXN0IG9mIGNvbm5lY3Rpb25zIHRoZSB3YWxsZXQgaGFzIG1hZGUgdG8gb3RoZXIgZGlyZWN0b3J5IG9yIG1hbnVhbGx5IGFkZGVkIGNvbnRhY3RzLlxuICAgKi9cbiAgZ2V0Q29ubmVjdGlvbnMocGFyYW1zPzogR2V0QWRkcmVzc0Jvb2tDb25uZWN0aW9uc1BhcmFtcyk6IFByb21pc2U8R2V0QWRkcmVzc0Jvb2tDb25uZWN0aW9uc1Jlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKCcvYXBpL2FkZHJlc3MtYm9vay92MS9jb25uZWN0aW9ucycpO1xuICAgIHJldHVybiB0aGlzLmJpdGdvLmdldCh1cmwpLnNldCgnZW50ZXJwcmlzZS1pZCcsIHRoaXMuZW50ZXJwcmlzZUlkKS5zZW5kKHBhcmFtcykucmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgY29ubmVjdGlvbiBiZXR3ZWVuIGFuIGVudGVycHJpc2UgbGlzdGluZyBlbnRyeSAod2FsbGV0KSB0byBhbm90aGVyIGxpc3RpbmcgZW50cnlcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gbGlzdGluZ0VudHJ5SWQgWW91ciBlbnRlcnByaXNlIGxpc3RpbmcgZW50cnkgaWQuIFJlcXVpcmVzIHRoZSBjcmVhdGlvbiBvZiBhIGxpc3RpbmcgZW50cnkgYmVmb3JlIHVzZS5cbiAgICogQHBhcmFtIHtzdHJpbmc9fSBsb2NhbExpc3RpbmdFbnRyeURlc2NyaXB0aW9uIE9wdGlvbmFsIG5hbWUgdG8gb3ZlcnJpZGUgdGhlIG5hbWUgb2YgdGhlIGNvdW50ZXJwYXJ0aWVzIGxpc3RpbmcgZW50cnkuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YXJnZXRMaXN0aW5nRW50cnlJZCBJZiB5b3Uga25vdyB0aGUgb3RoZXIgcGFydGllcyBsaXN0aW5nIGVudHJ5IGlkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB3YWxsZXRJZCBJZiB5b3UgZG9uJ3Qga25vdyB0aGUgdGFyZ2V0TGlzdGluZ0VudHJ5SWQgYW5kIGFyZSBhZGRpbmcgbWFudWFsbHlcbiAgICogQHBhcmFtIHtzdHJpbmd9IGxvY2FsTGlzdGluZ05hbWUgUmVxdWlyZWQgaWYgdXNpbmcgd2FsbGV0SWRcbiAgICogQHJldHVybnMge1Byb21pc2U8Q3JlYXRlQWRkcmVzc0Jvb2tDb25uZWN0aW9uUmVzcG9uc2U+fVxuICAgKi9cbiAgY3JlYXRlQ29ubmVjdGlvbihwYXJhbXM6IENyZWF0ZUFkZHJlc3NCb29rQ29ubmVjdGlvblBhcmFtcyk6IFByb21pc2U8Q3JlYXRlQWRkcmVzc0Jvb2tDb25uZWN0aW9uUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwoJy9hcGkvYWRkcmVzcy1ib29rL3YxL2Nvbm5lY3Rpb25zJyk7XG4gICAgcmV0dXJuIHRoaXMuYml0Z28ucG9zdCh1cmwpLnNldCgnZW50ZXJwcmlzZS1pZCcsIHRoaXMuZW50ZXJwcmlzZUlkKS5zZW5kKHBhcmFtcykucmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIG9uZSBvciBtYW55IGNvbm5lY3Rpb25zIHRvIGEgbmV3IHN0YXR1c1xuICAgKi9cbiAgdXBkYXRlQ29ubmVjdGlvbihwYXJhbXM6IFVwZGF0ZUFkZHJlc3NCb29rQ29ubmVjdGlvblBhcmFtcyk6IFByb21pc2U8VXBkYXRlQWRkcmVzc0Jvb2tDb25uZWN0aW9uUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwoJy9hcGkvYWRkcmVzcy1ib29rL3YxL2Nvbm5lY3Rpb25zJyk7XG4gICAgcmV0dXJuIHRoaXMuYml0Z28ucHV0KHVybCkuc2V0KCdlbnRlcnByaXNlLWlkJywgdGhpcy5lbnRlcnByaXNlSWQpLnNlbmQocGFyYW1zKS5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGFkZHJlc3MgYm9vayBsaXN0aW5nIGZvciB0aGUgZW50ZXJwcmlzZVxuICAgKi9cbiAgYXN5bmMgZ2V0TGlzdGluZygpOiBQcm9taXNlPEFkZHJlc3NCb29rTGlzdGluZz4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybCgnL2FwaS9hZGRyZXNzLWJvb2svdjEvbGlzdGluZy9nbG9iYWwnKTtcbiAgICBjb25zdCByZXNwb25zZTogR2V0QWRkcmVzc0Jvb2tMaXN0aW5nUmVzcG9uc2UgPSBhd2FpdCB0aGlzLmJpdGdvXG4gICAgICAuZ2V0KHVybClcbiAgICAgIC5zZXQoJ2VudGVycHJpc2UtaWQnLCB0aGlzLmVudGVycHJpc2VJZClcbiAgICAgIC5zZW5kKClcbiAgICAgIC5yZXN1bHQoKTtcbiAgICB0aGlzLl9saXN0aW5nID0gcmVzcG9uc2U7XG4gICAgcmV0dXJuIHRoaXMubGlzdGluZygpIGFzIEFkZHJlc3NCb29rTGlzdGluZztcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdGhlIGxpc3RpbmcgdXNlZCBmb3IgZWFjaCB3YWxsZXQncyBsaXN0aW5nIGVudHJ5XG4gICAqL1xuICBhc3luYyBjcmVhdGVMaXN0aW5nKHBhcmFtczogQ3JlYXRlQWRkcmVzc0Jvb2tMaXN0aW5nUGFyYW1zKTogUHJvbWlzZTxBZGRyZXNzQm9va0xpc3Rpbmc+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwoJy9hcGkvYWRkcmVzcy1ib29rL3YxL2xpc3RpbmcvZ2xvYmFsJyk7XG4gICAgY29uc3QgcmVzcG9uc2U6IENyZWF0ZUFkZHJlc3NCb29rTGlzdGluZ1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLnBvc3QodXJsKVxuICAgICAgLnNldCgnZW50ZXJwcmlzZS1pZCcsIHRoaXMuZW50ZXJwcmlzZUlkKVxuICAgICAgLnNlbmQocGFyYW1zKVxuICAgICAgLnJlc3VsdCgpO1xuICAgIHRoaXMuX2xpc3RpbmcgPSB7IC4uLnJlc3BvbnNlLCBsaXN0aW5nRW50cmllczogW10gfTtcbiAgICByZXR1cm4gdGhpcy5saXN0aW5nKCkgYXMgQWRkcmVzc0Jvb2tMaXN0aW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgbmFtZSBhbmQgZGVzY3JpcHRpb24gb2YgdGhlIGxpc3RpbmdcbiAgICovXG4gIGFzeW5jIHVwZGF0ZUxpc3RpbmcoeyBsaXN0aW5nSWQsIC4uLnBhcmFtcyB9OiBVcGRhdGVBZGRyZXNzQm9va0xpc3RpbmdQYXJhbXMpOiBQcm9taXNlPEFkZHJlc3NCb29rTGlzdGluZz4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybChgL2FwaS9hZGRyZXNzLWJvb2svdjEvbGlzdGluZy8ke2xpc3RpbmdJZH1gKTtcbiAgICBjb25zdCByZXNwb25zZTogVXBkYXRlQWRkcmVzc0Jvb2tMaXN0aW5nUmVzcG9uc2UgPSBhd2FpdCB0aGlzLmJpdGdvXG4gICAgICAucHV0KHVybClcbiAgICAgIC5zZXQoJ2VudGVycHJpc2UtaWQnLCB0aGlzLmVudGVycHJpc2VJZClcbiAgICAgIC5zZW5kKHBhcmFtcylcbiAgICAgIC5yZXN1bHQoKTtcbiAgICB0aGlzLl9saXN0aW5nID0geyAuLi5yZXNwb25zZSwgbGlzdGluZ0VudHJpZXM6IHRoaXMuX2xpc3Rpbmc/Lmxpc3RpbmdFbnRyaWVzID8gdGhpcy5fbGlzdGluZy5saXN0aW5nRW50cmllcyA6IFtdIH07XG4gICAgcmV0dXJuIHRoaXMubGlzdGluZygpIGFzIEFkZHJlc3NCb29rTGlzdGluZztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBsaXN0IG9mIGxpc3RpbmcgZW50cnkgY29udGFjdHMgdGhhdCBhcmUgY29ubmVjdGVkIHRvIHlvdXIgZW50ZXJwcmlzZSBsaXN0aW5nIGVudHJpZXMgKHdhbGxldHMpXG4gICAqL1xuICBnZXRMaXN0aW5nRW50cnlDb250YWN0cyhcbiAgICBwYXJhbXM/OiBHZXRBZGRyZXNzQm9va0xpc3RpbmdFbnRyeUNvbnRhY3RzUGFyYW1zXG4gICk6IFByb21pc2U8R2V0QWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlDb250YWN0c1Jlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKCcvYXBpL2FkZHJlc3MtYm9vay92MS9saXN0aW5nL2VudHJ5L2NvbnRhY3RzJyk7XG4gICAgcmV0dXJuIHRoaXMuYml0Z28uZ2V0KHVybCkuc2V0KCdlbnRlcnByaXNlLWlkJywgdGhpcy5lbnRlcnByaXNlSWQpLnNlbmQocGFyYW1zKS5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBwdWJsaWMgbGlzdCBvZiBvdGhlciBsaXN0aW5nIGVudHJpZXMgdGhhdCB5b3UgY2FuIGNvbm5lY3Qgd2l0aC5cbiAgICovXG4gIGdldExpc3RpbmdFbnRyeURpcmVjdG9yeShcbiAgICBwYXJhbXM/OiBHZXRBZGRyZXNzQm9va0xpc3RpbmdFbnRyeURpcmVjdG9yeVBhcmFtc1xuICApOiBQcm9taXNlPEdldEFkZHJlc3NCb29rTGlzdGluZ0VudHJ5RGlyZWN0b3J5UmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwoJy9hcGkvYWRkcmVzcy1ib29rL3YxL2xpc3RpbmcvZW50cnkvZGlyZWN0b3J5Jyk7XG4gICAgcmV0dXJuIHRoaXMuYml0Z28uZ2V0KHVybCkuc2V0KCdlbnRlcnByaXNlLWlkJywgdGhpcy5lbnRlcnByaXNlSWQpLnNlbmQocGFyYW1zKS5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBsaXN0aW5nIGVudHJ5IGZvciB1c2UgaW4gdGhlIHB1YmxpYyBkaXJlY3Rvcnkgb3Iga2VlcCBwcml2YXRlIGFuZCBzaGFyZSB0aGUgbGlzdGluZyBlbnRyeSBpZCB3aXRoIG90aGVycy5cbiAgICovXG4gIGFzeW5jIGNyZWF0ZUxpc3RpbmdFbnRyeShcbiAgICBwYXJhbXM6IE9taXQ8Q3JlYXRlQWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlQYXJhbXMsICd3YWxsZXRJZCc+ICYge1xuICAgICAgd2FsbGV0SWQ/OiBzdHJpbmc7XG4gICAgfVxuICApOiBQcm9taXNlPENyZWF0ZUFkZHJlc3NCb29rTGlzdGluZ0VudHJ5UmVzcG9uc2U+IHtcbiAgICBpZiAoIXBhcmFtcy53YWxsZXRJZCAmJiB0aGlzLndhbGxldCkge1xuICAgICAgcGFyYW1zLndhbGxldElkID0gdGhpcy53YWxsZXQuaWQoKTtcbiAgICB9XG4gICAgY29uc3QgdXJsID0gdGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKCcvYXBpL2FkZHJlc3MtYm9vay92MS9saXN0aW5nL2VudHJ5L2dsb2JhbCcpO1xuICAgIGNvbnN0IHJlc3BvbnNlOiBDcmVhdGVBZGRyZXNzQm9va0xpc3RpbmdFbnRyeVJlc3BvbnNlID0gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLnBvc3QodXJsKVxuICAgICAgLnNldCgnZW50ZXJwcmlzZS1pZCcsIHRoaXMuZW50ZXJwcmlzZUlkKVxuICAgICAgLnNlbmQocGFyYW1zKVxuICAgICAgLnJlc3VsdCgpO1xuICAgIGlmICh0aGlzLl9saXN0aW5nKSB7XG4gICAgICB0aGlzLl9saXN0aW5nLmxpc3RpbmdFbnRyaWVzPy5wdXNoKHsgLi4ucmVzcG9uc2UgfSk7XG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgYSBsaXN0aW5nIGVudHJ5ICh3YWxsZXQpXG4gICAqL1xuICBhc3luYyB1cGRhdGVMaXN0aW5nRW50cnkoe1xuICAgIGxpc3RpbmdFbnRyeUlkLFxuICAgIC4uLnBhcmFtc1xuICB9OiBVcGRhdGVBZGRyZXNzQm9va0xpc3RpbmdFbnRyeVBhcmFtcyk6IFByb21pc2U8VXBkYXRlQWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybChgL2FwaS9hZGRyZXNzLWJvb2svdjEvbGlzdGluZy9lbnRyeS8ke2xpc3RpbmdFbnRyeUlkfWApO1xuICAgIGNvbnN0IHJlc3BvbnNlOiBVcGRhdGVBZGRyZXNzQm9va0xpc3RpbmdFbnRyeVJlc3BvbnNlID0gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLnB1dCh1cmwpXG4gICAgICAuc2V0KCdlbnRlcnByaXNlLWlkJywgdGhpcy5lbnRlcnByaXNlSWQpXG4gICAgICAuc2VuZChwYXJhbXMpXG4gICAgICAucmVzdWx0KCk7XG4gICAgaWYgKHRoaXMuX2xpc3RpbmcpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fbGlzdGluZz8ubGlzdGluZ0VudHJpZXM/LmZpbmRJbmRleCgoeCkgPT4geC5pZCA9PT0gcmVzcG9uc2UuaWQpID8/IC0xO1xuICAgICAgaWYgKGluZGV4ID4gLTEgJiYgdGhpcy5fbGlzdGluZy5saXN0aW5nRW50cmllcykge1xuICAgICAgICB0aGlzLl9saXN0aW5nLmxpc3RpbmdFbnRyaWVzW2luZGV4XSA9IHsgLi4ucmVzcG9uc2UgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2xpc3RpbmcubGlzdGluZ0VudHJpZXM/LnB1c2goeyAuLi5yZXNwb25zZSB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3BvbnNlO1xuICB9XG59XG4iXX0=
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1ib29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL2FkZHJlc3MtYm9vay9hZGRyZXNzLWJvb2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMEJBLE1BQWEsV0FBVztJQU90QixZQUFZLFlBQW9CLEVBQUUsS0FBZ0IsRUFBRSxNQUFnQjtRQUNsRSxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsT0FBTztRQUNMOzs7V0FHRztRQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBQyxNQUF3QztRQUNyRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDNUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDM0YsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILGdCQUFnQixDQUFDLE1BQXlDO1FBQ3hELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUM1RSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElB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QyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsc0NBQXNDLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDaEcsTUFBTSxRQUFRLEdBQTBDLE1BQU0sSUFBSSxDQUFDLEtBQUs7YUFDckUsR0FBRyxDQUFDLEdBQUcsQ0FBQzthQUNSLEdBQUcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQzthQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDO2FBQ1osTUFBTSxFQUFFLENBQUM7UUFDWixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsTUFBTSxLQUFLLEdBQUcsTUFBQSxNQUFBLE1BQUEsSUFBSSxDQUFDLFFBQVEsMENBQUUsY0FBYywwQ0FBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssUUFBUSxDQUFDLEVBQUUsQ0FBQyxtQ0FBSSxDQUFDLENBQUMsQ0FBQztZQUMxRixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRTtnQkFDOUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLFFBQVEsRUFBRSxDQUFDO2FBQ3ZEO2lCQUFNO2dCQUNMLE1BQUEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLDBDQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsUUFBUSxFQUFFLENBQUMsQ0FBQzthQUNyRDtTQUNGO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGO0FBaEtELGtDQWdLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBJV2FsbGV0IH0gZnJvbSAnLi4vd2FsbGV0JztcbmltcG9ydCB7XG4gIEFkZHJlc3NCb29rTGlzdGluZyxcbiAgQ3JlYXRlQWRkcmVzc0Jvb2tDb25uZWN0aW9uUGFyYW1zLFxuICBDcmVhdGVBZGRyZXNzQm9va0Nvbm5lY3Rpb25SZXNwb25zZSxcbiAgQ3JlYXRlQWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlQYXJhbXMsXG4gIENyZWF0ZUFkZHJlc3NCb29rTGlzdGluZ0VudHJ5UmVzcG9uc2UsXG4gIENyZWF0ZUFkZHJlc3NCb29rTGlzdGluZ1BhcmFtcyxcbiAgQ3JlYXRlQWRkcmVzc0Jvb2tMaXN0aW5nUmVzcG9uc2UsXG4gIEdldEFkZHJlc3NCb29rQ29ubmVjdGlvbnNQYXJhbXMsXG4gIEdldEFkZHJlc3NCb29rQ29ubmVjdGlvbnNSZXNwb25zZSxcbiAgR2V0QWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlDb250YWN0c1BhcmFtcyxcbiAgR2V0QWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlDb250YWN0c1Jlc3BvbnNlLFxuICBHZXRBZGRyZXNzQm9va0xpc3RpbmdFbnRyeURpcmVjdG9yeVBhcmFtcyxcbiAgR2V0QWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlEaXJlY3RvcnlSZXNwb25zZSxcbiAgR2V0QWRkcmVzc0Jvb2tMaXN0aW5nUmVzcG9uc2UsXG4gIElBZGRyZXNzQm9vayxcbiAgVXBkYXRlQWRkcmVzc0Jvb2tDb25uZWN0aW9uUGFyYW1zLFxuICBVcGRhdGVBZGRyZXNzQm9va0Nvbm5lY3Rpb25SZXNwb25zZSxcbiAgVXBkYXRlQWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlQYXJhbXMsXG4gIFVwZGF0ZUFkZHJlc3NCb29rTGlzdGluZ0VudHJ5UmVzcG9uc2UsXG4gIFVwZGF0ZUFkZHJlc3NCb29rTGlzdGluZ1BhcmFtcyxcbiAgVXBkYXRlQWRkcmVzc0Jvb2tMaXN0aW5nUmVzcG9uc2UsXG59IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgQWRkcmVzc0Jvb2sgaW1wbGVtZW50cyBJQWRkcmVzc0Jvb2sge1xuICBwcml2YXRlIHJlYWRvbmx5IGJpdGdvOiBCaXRHb0Jhc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgZW50ZXJwcmlzZUlkOiBzdHJpbmc7XG5cbiAgcHVibGljIHdhbGxldD86IElXYWxsZXQ7XG4gIHByaXZhdGUgX2xpc3Rpbmc/OiBBZGRyZXNzQm9va0xpc3Rpbmc7XG5cbiAgY29uc3RydWN0b3IoZW50ZXJwcmlzZUlkOiBzdHJpbmcsIGJpdGdvOiBCaXRHb0Jhc2UsIHdhbGxldD86IElXYWxsZXQpIHtcbiAgICB0aGlzLmVudGVycHJpc2VJZCA9IGVudGVycHJpc2VJZDtcbiAgICB0aGlzLndhbGxldCA9IHdhbGxldDtcbiAgICB0aGlzLmJpdGdvID0gYml0Z287XG4gIH1cblxuICBsaXN0aW5nKCk6IEFkZHJlc3NCb29rTGlzdGluZyB8IHVuZGVmaW5lZCB7XG4gICAgLyoqXG4gICAgICogVE9ETyhQWC0yNzk0KTogTW92ZSB0byBzdHJ1Y3R1cmVkQ2xvbmVcbiAgICAgKiBodHRwczovL2dpdGh1Yi5jb20vQml0R28vQml0R29KUy9wdWxsLzQxMTlcbiAgICAgKi9cbiAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLl9saXN0aW5nKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgbGlzdCBvZiBjb25uZWN0aW9ucyB0aGUgd2FsbGV0IGhhcyBtYWRlIHRvIG90aGVyIGRpcmVjdG9yeSBvciBtYW51YWxseSBhZGRlZCBjb250YWN0cy5cbiAgICovXG4gIGdldENvbm5lY3Rpb25zKHBhcmFtcz86IEdldEFkZHJlc3NCb29rQ29ubmVjdGlvbnNQYXJhbXMpOiBQcm9taXNlPEdldEFkZHJlc3NCb29rQ29ubmVjdGlvbnNSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybCgnL2FwaS9hZGRyZXNzLWJvb2svdjEvY29ubmVjdGlvbnMnKTtcbiAgICByZXR1cm4gdGhpcy5iaXRnby5nZXQodXJsKS5zZXQoJ2VudGVycHJpc2UtaWQnLCB0aGlzLmVudGVycHJpc2VJZCkuc2VuZChwYXJhbXMpLnJlc3VsdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGNvbm5lY3Rpb24gYmV0d2VlbiBhbiBlbnRlcnByaXNlIGxpc3RpbmcgZW50cnkgKHdhbGxldCkgdG8gYW5vdGhlciBsaXN0aW5nIGVudHJ5XG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICogQHBhcmFtIHtzdHJpbmd9IGxpc3RpbmdFbnRyeUlkIFlvdXIgZW50ZXJwcmlzZSBsaXN0aW5nIGVudHJ5IGlkLiBSZXF1aXJlcyB0aGUgY3JlYXRpb24gb2YgYSBsaXN0aW5nIGVudHJ5IGJlZm9yZSB1c2UuXG4gICAqIEBwYXJhbSB7c3RyaW5nPX0gbG9jYWxMaXN0aW5nRW50cnlEZXNjcmlwdGlvbiBPcHRpb25hbCBuYW1lIHRvIG92ZXJyaWRlIHRoZSBuYW1lIG9mIHRoZSBjb3VudGVycGFydGllcyBsaXN0aW5nIGVudHJ5LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFyZ2V0TGlzdGluZ0VudHJ5SWQgSWYgeW91IGtub3cgdGhlIG90aGVyIHBhcnRpZXMgbGlzdGluZyBlbnRyeSBpZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gd2FsbGV0SWQgSWYgeW91IGRvbid0IGtub3cgdGhlIHRhcmdldExpc3RpbmdFbnRyeUlkIGFuZCBhcmUgYWRkaW5nIG1hbnVhbGx5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBsb2NhbExpc3RpbmdOYW1lIFJlcXVpcmVkIGlmIHVzaW5nIHdhbGxldElkXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPENyZWF0ZUFkZHJlc3NCb29rQ29ubmVjdGlvblJlc3BvbnNlPn1cbiAgICovXG4gIGNyZWF0ZUNvbm5lY3Rpb24ocGFyYW1zOiBDcmVhdGVBZGRyZXNzQm9va0Nvbm5lY3Rpb25QYXJhbXMpOiBQcm9taXNlPENyZWF0ZUFkZHJlc3NCb29rQ29ubmVjdGlvblJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKCcvYXBpL2FkZHJlc3MtYm9vay92MS9jb25uZWN0aW9ucycpO1xuICAgIHJldHVybiB0aGlzLmJpdGdvLnBvc3QodXJsKS5zZXQoJ2VudGVycHJpc2UtaWQnLCB0aGlzLmVudGVycHJpc2VJZCkuc2VuZChwYXJhbXMpLnJlc3VsdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBvbmUgb3IgbWFueSBjb25uZWN0aW9ucyB0byBhIG5ldyBzdGF0dXNcbiAgICovXG4gIHVwZGF0ZUNvbm5lY3Rpb24ocGFyYW1zOiBVcGRhdGVBZGRyZXNzQm9va0Nvbm5lY3Rpb25QYXJhbXMpOiBQcm9taXNlPFVwZGF0ZUFkZHJlc3NCb29rQ29ubmVjdGlvblJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKCcvYXBpL2FkZHJlc3MtYm9vay92MS9jb25uZWN0aW9ucycpO1xuICAgIHJldHVybiB0aGlzLmJpdGdvLnB1dCh1cmwpLnNldCgnZW50ZXJwcmlzZS1pZCcsIHRoaXMuZW50ZXJwcmlzZUlkKS5zZW5kKHBhcmFtcykucmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBhZGRyZXNzIGJvb2sgbGlzdGluZyBmb3IgdGhlIGVudGVycHJpc2VcbiAgICovXG4gIGFzeW5jIGdldExpc3RpbmcoKTogUHJvbWlzZTxBZGRyZXNzQm9va0xpc3Rpbmc+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwoJy9hcGkvYWRkcmVzcy1ib29rL3YxL2xpc3RpbmcvZ2xvYmFsJyk7XG4gICAgY29uc3QgcmVzcG9uc2U6IEdldEFkZHJlc3NCb29rTGlzdGluZ1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLmdldCh1cmwpXG4gICAgICAuc2V0KCdlbnRlcnByaXNlLWlkJywgdGhpcy5lbnRlcnByaXNlSWQpXG4gICAgICAuc2VuZCgpXG4gICAgICAucmVzdWx0KCk7XG4gICAgdGhpcy5fbGlzdGluZyA9IHJlc3BvbnNlO1xuICAgIHJldHVybiB0aGlzLmxpc3RpbmcoKSBhcyBBZGRyZXNzQm9va0xpc3Rpbmc7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHRoZSBsaXN0aW5nIHVzZWQgZm9yIGVhY2ggd2FsbGV0J3MgbGlzdGluZyBlbnRyeVxuICAgKi9cbiAgYXN5bmMgY3JlYXRlTGlzdGluZyhwYXJhbXM6IENyZWF0ZUFkZHJlc3NCb29rTGlzdGluZ1BhcmFtcyk6IFByb21pc2U8QWRkcmVzc0Jvb2tMaXN0aW5nPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKCcvYXBpL2FkZHJlc3MtYm9vay92MS9saXN0aW5nL2dsb2JhbCcpO1xuICAgIGNvbnN0IHJlc3BvbnNlOiBDcmVhdGVBZGRyZXNzQm9va0xpc3RpbmdSZXNwb25zZSA9IGF3YWl0IHRoaXMuYml0Z29cbiAgICAgIC5wb3N0KHVybClcbiAgICAgIC5zZXQoJ2VudGVycHJpc2UtaWQnLCB0aGlzLmVudGVycHJpc2VJZClcbiAgICAgIC5zZW5kKHBhcmFtcylcbiAgICAgIC5yZXN1bHQoKTtcbiAgICB0aGlzLl9saXN0aW5nID0geyAuLi5yZXNwb25zZSwgbGlzdGluZ0VudHJpZXM6IFtdIH07XG4gICAgcmV0dXJuIHRoaXMubGlzdGluZygpIGFzIEFkZHJlc3NCb29rTGlzdGluZztcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIG5hbWUgYW5kIGRlc2NyaXB0aW9uIG9mIHRoZSBsaXN0aW5nXG4gICAqL1xuICBhc3luYyB1cGRhdGVMaXN0aW5nKHsgbGlzdGluZ0lkLCAuLi5wYXJhbXMgfTogVXBkYXRlQWRkcmVzc0Jvb2tMaXN0aW5nUGFyYW1zKTogUHJvbWlzZTxBZGRyZXNzQm9va0xpc3Rpbmc+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwoYC9hcGkvYWRkcmVzcy1ib29rL3YxL2xpc3RpbmcvJHtsaXN0aW5nSWR9YCk7XG4gICAgY29uc3QgcmVzcG9uc2U6IFVwZGF0ZUFkZHJlc3NCb29rTGlzdGluZ1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLnB1dCh1cmwpXG4gICAgICAuc2V0KCdlbnRlcnByaXNlLWlkJywgdGhpcy5lbnRlcnByaXNlSWQpXG4gICAgICAuc2VuZChwYXJhbXMpXG4gICAgICAucmVzdWx0KCk7XG4gICAgdGhpcy5fbGlzdGluZyA9IHsgLi4ucmVzcG9uc2UsIGxpc3RpbmdFbnRyaWVzOiB0aGlzLl9saXN0aW5nPy5saXN0aW5nRW50cmllcyA/IHRoaXMuX2xpc3RpbmcubGlzdGluZ0VudHJpZXMgOiBbXSB9O1xuICAgIHJldHVybiB0aGlzLmxpc3RpbmcoKSBhcyBBZGRyZXNzQm9va0xpc3Rpbmc7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbGlzdCBvZiBsaXN0aW5nIGVudHJ5IGNvbnRhY3RzIHRoYXQgYXJlIGNvbm5lY3RlZCB0byB5b3VyIGVudGVycHJpc2UgbGlzdGluZyBlbnRyaWVzICh3YWxsZXRzKVxuICAgKi9cbiAgZ2V0TGlzdGluZ0VudHJ5Q29udGFjdHMoXG4gICAgcGFyYW1zPzogR2V0QWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlDb250YWN0c1BhcmFtc1xuICApOiBQcm9taXNlPEdldEFkZHJlc3NCb29rTGlzdGluZ0VudHJ5Q29udGFjdHNSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybCgnL2FwaS9hZGRyZXNzLWJvb2svdjEvbGlzdGluZy9lbnRyeS9jb250YWN0cycpO1xuICAgIHJldHVybiB0aGlzLmJpdGdvLmdldCh1cmwpLnNldCgnZW50ZXJwcmlzZS1pZCcsIHRoaXMuZW50ZXJwcmlzZUlkKS5zZW5kKHBhcmFtcykucmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgcHVibGljIGxpc3Qgb2Ygb3RoZXIgbGlzdGluZyBlbnRyaWVzIHRoYXQgeW91IGNhbiBjb25uZWN0IHdpdGguXG4gICAqL1xuICBnZXRMaXN0aW5nRW50cnlEaXJlY3RvcnkoXG4gICAgcGFyYW1zPzogR2V0QWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlEaXJlY3RvcnlQYXJhbXNcbiAgKTogUHJvbWlzZTxHZXRBZGRyZXNzQm9va0xpc3RpbmdFbnRyeURpcmVjdG9yeVJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKCcvYXBpL2FkZHJlc3MtYm9vay92MS9saXN0aW5nL2VudHJ5L2RpcmVjdG9yeScpO1xuICAgIHJldHVybiB0aGlzLmJpdGdvLmdldCh1cmwpLnNldCgnZW50ZXJwcmlzZS1pZCcsIHRoaXMuZW50ZXJwcmlzZUlkKS5zZW5kKHBhcmFtcykucmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbGlzdGluZyBlbnRyeSBmb3IgdXNlIGluIHRoZSBwdWJsaWMgZGlyZWN0b3J5IG9yIGtlZXAgcHJpdmF0ZSBhbmQgc2hhcmUgdGhlIGxpc3RpbmcgZW50cnkgaWQgd2l0aCBvdGhlcnMuXG4gICAqL1xuICBhc3luYyBjcmVhdGVMaXN0aW5nRW50cnkoXG4gICAgcGFyYW1zOiBPbWl0PENyZWF0ZUFkZHJlc3NCb29rTGlzdGluZ0VudHJ5UGFyYW1zLCAnd2FsbGV0SWQnPiAmIHtcbiAgICAgIHdhbGxldElkPzogc3RyaW5nO1xuICAgIH1cbiAgKTogUHJvbWlzZTxDcmVhdGVBZGRyZXNzQm9va0xpc3RpbmdFbnRyeVJlc3BvbnNlPiB7XG4gICAgaWYgKCFwYXJhbXMud2FsbGV0SWQgJiYgdGhpcy53YWxsZXQpIHtcbiAgICAgIHBhcmFtcy53YWxsZXRJZCA9IHRoaXMud2FsbGV0LmlkKCk7XG4gICAgfVxuICAgIGNvbnN0IHVybCA9IHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybCgnL2FwaS9hZGRyZXNzLWJvb2svdjEvbGlzdGluZy9lbnRyeS9nbG9iYWwnKTtcbiAgICBjb25zdCByZXNwb25zZTogQ3JlYXRlQWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlSZXNwb25zZSA9IGF3YWl0IHRoaXMuYml0Z29cbiAgICAgIC5wb3N0KHVybClcbiAgICAgIC5zZXQoJ2VudGVycHJpc2UtaWQnLCB0aGlzLmVudGVycHJpc2VJZClcbiAgICAgIC5zZW5kKHBhcmFtcylcbiAgICAgIC5yZXN1bHQoKTtcbiAgICBpZiAodGhpcy5fbGlzdGluZykge1xuICAgICAgdGhpcy5fbGlzdGluZy5saXN0aW5nRW50cmllcz8ucHVzaCh7IC4uLnJlc3BvbnNlIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGEgbGlzdGluZyBlbnRyeSAod2FsbGV0KVxuICAgKi9cbiAgYXN5bmMgdXBkYXRlTGlzdGluZ0VudHJ5KHtcbiAgICBsaXN0aW5nRW50cnlJZCxcbiAgICAuLi5wYXJhbXNcbiAgfTogVXBkYXRlQWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlQYXJhbXMpOiBQcm9taXNlPFVwZGF0ZUFkZHJlc3NCb29rTGlzdGluZ0VudHJ5UmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwoYC9hcGkvYWRkcmVzcy1ib29rL3YxL2xpc3RpbmcvZW50cnkvJHtsaXN0aW5nRW50cnlJZH1gKTtcbiAgICBjb25zdCByZXNwb25zZTogVXBkYXRlQWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlSZXNwb25zZSA9IGF3YWl0IHRoaXMuYml0Z29cbiAgICAgIC5wdXQodXJsKVxuICAgICAgLnNldCgnZW50ZXJwcmlzZS1pZCcsIHRoaXMuZW50ZXJwcmlzZUlkKVxuICAgICAgLnNlbmQocGFyYW1zKVxuICAgICAgLnJlc3VsdCgpO1xuICAgIGlmICh0aGlzLl9saXN0aW5nKSB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuX2xpc3Rpbmc/Lmxpc3RpbmdFbnRyaWVzPy5maW5kSW5kZXgoKHgpID0+IHguaWQgPT09IHJlc3BvbnNlLmlkKSA/PyAtMTtcbiAgICAgIGlmIChpbmRleCA+IC0xICYmIHRoaXMuX2xpc3RpbmcubGlzdGluZ0VudHJpZXMpIHtcbiAgICAgICAgdGhpcy5fbGlzdGluZy5saXN0aW5nRW50cmllc1tpbmRleF0gPSB7IC4uLnJlc3BvbnNlIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9saXN0aW5nLmxpc3RpbmdFbnRyaWVzPy5wdXNoKHsgLi4ucmVzcG9uc2UgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxufVxuIl19
|