@bitgo-beta/utxo-lib 8.0.3-beta.587 → 8.0.3-beta.588
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/address.d.ts +0 -2
- package/dist/src/address.d.ts.map +1 -1
- package/dist/src/address.js +6 -6
- package/dist/src/addressFormat.d.ts +0 -2
- package/dist/src/addressFormat.d.ts.map +1 -1
- package/dist/src/addressFormat.js +8 -8
- package/dist/src/bitgo/Musig2.d.ts +0 -2
- package/dist/src/bitgo/Musig2.d.ts.map +1 -1
- package/dist/src/bitgo/Musig2.js +24 -24
- package/dist/src/bitgo/PsbtUtil.d.ts +0 -2
- package/dist/src/bitgo/PsbtUtil.d.ts.map +1 -1
- package/dist/src/bitgo/PsbtUtil.js +9 -9
- package/dist/src/bitgo/Unspent.d.ts +0 -2
- package/dist/src/bitgo/Unspent.d.ts.map +1 -1
- package/dist/src/bitgo/Unspent.js +12 -13
- package/dist/src/bitgo/UtxoPsbt.d.ts +0 -2
- package/dist/src/bitgo/UtxoPsbt.d.ts.map +1 -1
- package/dist/src/bitgo/UtxoPsbt.js +1 -1
- package/dist/src/bitgo/UtxoTransaction.d.ts +0 -2
- package/dist/src/bitgo/UtxoTransaction.d.ts.map +1 -1
- package/dist/src/bitgo/UtxoTransaction.js +3 -3
- package/dist/src/bitgo/UtxoTransactionBuilder.d.ts +0 -2
- package/dist/src/bitgo/UtxoTransactionBuilder.d.ts.map +1 -1
- package/dist/src/bitgo/UtxoTransactionBuilder.js +1 -1
- package/dist/src/bitgo/bitcoincash/address.d.ts +0 -2
- package/dist/src/bitgo/bitcoincash/address.d.ts.map +1 -1
- package/dist/src/bitgo/bitcoincash/address.js +6 -7
- package/dist/src/bitgo/dash/DashPsbt.d.ts +0 -2
- package/dist/src/bitgo/dash/DashPsbt.d.ts.map +1 -1
- package/dist/src/bitgo/dash/DashTransaction.d.ts +0 -2
- package/dist/src/bitgo/dash/DashTransaction.d.ts.map +1 -1
- package/dist/src/bitgo/dash/DashTransaction.js +1 -1
- package/dist/src/bitgo/dash/DashTransactionBuilder.d.ts +0 -2
- package/dist/src/bitgo/dash/DashTransactionBuilder.d.ts.map +1 -1
- package/dist/src/bitgo/dash/DashTransactionBuilder.js +1 -1
- package/dist/src/bitgo/keyutil.d.ts +0 -2
- package/dist/src/bitgo/keyutil.d.ts.map +1 -1
- package/dist/src/bitgo/keyutil.js +4 -5
- package/dist/src/bitgo/legacysafe/index.d.ts +0 -2
- package/dist/src/bitgo/legacysafe/index.d.ts.map +1 -1
- package/dist/src/bitgo/legacysafe/index.js +4 -5
- package/dist/src/bitgo/litecoin/LitecoinPsbt.d.ts +0 -2
- package/dist/src/bitgo/litecoin/LitecoinPsbt.d.ts.map +1 -1
- package/dist/src/bitgo/litecoin/LitecoinTransaction.d.ts +0 -2
- package/dist/src/bitgo/litecoin/LitecoinTransaction.d.ts.map +1 -1
- package/dist/src/bitgo/litecoin/LitecoinTransaction.js +1 -1
- package/dist/src/bitgo/nonStandardHalfSigned.js +2 -3
- package/dist/src/bitgo/outputScripts.d.ts +0 -2
- package/dist/src/bitgo/outputScripts.d.ts.map +1 -1
- package/dist/src/bitgo/outputScripts.js +20 -20
- package/dist/src/bitgo/parseInput.d.ts +0 -2
- package/dist/src/bitgo/parseInput.d.ts.map +1 -1
- package/dist/src/bitgo/parseInput.js +10 -11
- package/dist/src/bitgo/psbt/fromHalfSigned.d.ts +0 -2
- package/dist/src/bitgo/psbt/fromHalfSigned.d.ts.map +1 -1
- package/dist/src/bitgo/psbt/fromHalfSigned.js +3 -4
- package/dist/src/bitgo/psbt/scriptTypes.d.ts +0 -2
- package/dist/src/bitgo/psbt/scriptTypes.d.ts.map +1 -1
- package/dist/src/bitgo/psbt/scriptTypes.js +5 -6
- package/dist/src/bitgo/signature.d.ts +0 -2
- package/dist/src/bitgo/signature.d.ts.map +1 -1
- package/dist/src/bitgo/signature.js +9 -10
- package/dist/src/bitgo/tnumber.js +2 -3
- package/dist/src/bitgo/transaction.d.ts +0 -2
- package/dist/src/bitgo/transaction.d.ts.map +1 -1
- package/dist/src/bitgo/transaction.js +13 -14
- package/dist/src/bitgo/transactionAmounts.js +2 -3
- package/dist/src/bitgo/types.d.ts +0 -2
- package/dist/src/bitgo/types.d.ts.map +1 -1
- package/dist/src/bitgo/types.js +4 -5
- package/dist/src/bitgo/wallet/Psbt.d.ts +0 -2
- package/dist/src/bitgo/wallet/Psbt.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/Psbt.js +19 -18
- package/dist/src/bitgo/wallet/Unspent.d.ts +0 -2
- package/dist/src/bitgo/wallet/Unspent.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/Unspent.js +10 -10
- package/dist/src/bitgo/wallet/WalletKeys.d.ts +0 -2
- package/dist/src/bitgo/wallet/WalletKeys.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/WalletKeys.js +3 -3
- package/dist/src/bitgo/wallet/WalletOutput.js +3 -4
- package/dist/src/bitgo/wallet/WalletScripts.js +3 -4
- package/dist/src/bitgo/wallet/WalletUnspentSigner.js +1 -1
- package/dist/src/bitgo/wallet/chains.js +10 -10
- package/dist/src/bitgo/wallet/psbt/PsbtOutputs.js +7 -8
- package/dist/src/bitgo/wallet/psbt/RootNodes.js +5 -5
- package/dist/src/bitgo/zcash/ZcashBufferutils.d.ts +1 -3
- package/dist/src/bitgo/zcash/ZcashBufferutils.d.ts.map +1 -1
- package/dist/src/bitgo/zcash/ZcashBufferutils.js +15 -15
- package/dist/src/bitgo/zcash/ZcashPsbt.d.ts +0 -2
- package/dist/src/bitgo/zcash/ZcashPsbt.d.ts.map +1 -1
- package/dist/src/bitgo/zcash/ZcashPsbt.js +1 -1
- package/dist/src/bitgo/zcash/ZcashTransaction.d.ts +0 -2
- package/dist/src/bitgo/zcash/ZcashTransaction.d.ts.map +1 -1
- package/dist/src/bitgo/zcash/ZcashTransaction.js +4 -4
- package/dist/src/bitgo/zcash/ZcashTransactionBuilder.d.ts +0 -2
- package/dist/src/bitgo/zcash/ZcashTransactionBuilder.d.ts.map +1 -1
- package/dist/src/bitgo/zcash/ZcashTransactionBuilder.js +1 -1
- package/dist/src/bitgo/zcash/address.d.ts +0 -2
- package/dist/src/bitgo/zcash/address.d.ts.map +1 -1
- package/dist/src/bitgo/zcash/address.js +5 -6
- package/dist/src/bitgo/zcash/hashZip0244.d.ts +0 -2
- package/dist/src/bitgo/zcash/hashZip0244.d.ts.map +1 -1
- package/dist/src/bitgo/zcash/hashZip0244.js +7 -8
- package/dist/src/classify.d.ts +0 -2
- package/dist/src/classify.d.ts.map +1 -1
- package/dist/src/classify.js +5 -5
- package/dist/src/networks.js +21 -21
- package/dist/src/noble_ecc.js +1 -1
- package/dist/src/payments/p2tr.js +3 -4
- package/dist/src/payments/p2tr_ns.js +2 -3
- package/dist/src/taproot.d.ts +1 -3
- package/dist/src/taproot.d.ts.map +1 -1
- package/dist/src/taproot.js +19 -19
- package/dist/src/templates/multisig/input.d.ts +0 -2
- package/dist/src/templates/multisig/input.d.ts.map +1 -1
- package/dist/src/templates/multisig/input.js +2 -3
- package/dist/src/templates/multisig/output.d.ts +0 -2
- package/dist/src/templates/multisig/output.d.ts.map +1 -1
- package/dist/src/templates/multisig/output.js +2 -3
- package/dist/src/templates/nulldata.d.ts +0 -2
- package/dist/src/templates/nulldata.d.ts.map +1 -1
- package/dist/src/templates/nulldata.js +3 -3
- package/dist/src/templates/pubkey/input.d.ts +0 -2
- package/dist/src/templates/pubkey/input.d.ts.map +1 -1
- package/dist/src/templates/pubkey/input.js +2 -3
- package/dist/src/templates/pubkey/output.d.ts +0 -2
- package/dist/src/templates/pubkey/output.d.ts.map +1 -1
- package/dist/src/templates/pubkey/output.js +2 -3
- package/dist/src/templates/pubkeyhash/input.d.ts +0 -2
- package/dist/src/templates/pubkeyhash/input.d.ts.map +1 -1
- package/dist/src/templates/pubkeyhash/input.js +2 -3
- package/dist/src/templates/pubkeyhash/output.d.ts +0 -2
- package/dist/src/templates/pubkeyhash/output.d.ts.map +1 -1
- package/dist/src/templates/pubkeyhash/output.js +2 -3
- package/dist/src/templates/scripthash/input.d.ts +0 -2
- package/dist/src/templates/scripthash/input.d.ts.map +1 -1
- package/dist/src/templates/scripthash/input.js +2 -3
- package/dist/src/templates/scripthash/output.d.ts +0 -2
- package/dist/src/templates/scripthash/output.d.ts.map +1 -1
- package/dist/src/templates/scripthash/output.js +2 -3
- package/dist/src/templates/taproot/input.d.ts +0 -2
- package/dist/src/templates/taproot/input.d.ts.map +1 -1
- package/dist/src/templates/taproot/input.js +2 -3
- package/dist/src/templates/taproot/output.d.ts +0 -2
- package/dist/src/templates/taproot/output.d.ts.map +1 -1
- package/dist/src/templates/taproot/output.js +2 -3
- package/dist/src/templates/taprootnofn/input.d.ts +0 -2
- package/dist/src/templates/taprootnofn/input.d.ts.map +1 -1
- package/dist/src/templates/taprootnofn/input.js +2 -3
- package/dist/src/templates/taprootnofn/output.d.ts +0 -2
- package/dist/src/templates/taprootnofn/output.d.ts.map +1 -1
- package/dist/src/templates/taprootnofn/output.js +2 -3
- package/dist/src/templates/witnesscommitment/output.d.ts +0 -2
- package/dist/src/templates/witnesscommitment/output.d.ts.map +1 -1
- package/dist/src/templates/witnesscommitment/output.js +4 -5
- package/dist/src/templates/witnesspubkeyhash/input.d.ts +0 -2
- package/dist/src/templates/witnesspubkeyhash/input.d.ts.map +1 -1
- package/dist/src/templates/witnesspubkeyhash/input.js +2 -3
- package/dist/src/templates/witnesspubkeyhash/output.d.ts +0 -2
- package/dist/src/templates/witnesspubkeyhash/output.d.ts.map +1 -1
- package/dist/src/templates/witnesspubkeyhash/output.js +2 -3
- package/dist/src/templates/witnessscripthash/input.d.ts +0 -2
- package/dist/src/templates/witnessscripthash/input.d.ts.map +1 -1
- package/dist/src/templates/witnessscripthash/input.js +2 -3
- package/dist/src/templates/witnessscripthash/output.d.ts +0 -2
- package/dist/src/templates/witnessscripthash/output.d.ts.map +1 -1
- package/dist/src/templates/witnessscripthash/output.js +2 -3
- package/dist/src/testutil/keys.js +7 -8
- package/dist/src/testutil/mock.d.ts +0 -2
- package/dist/src/testutil/mock.d.ts.map +1 -1
- package/dist/src/testutil/mock.js +7 -7
- package/dist/src/testutil/psbt.js +8 -8
- package/dist/src/testutil/transaction.js +7 -7
- package/dist/src/transaction_builder.d.ts +0 -2
- package/dist/src/transaction_builder.d.ts.map +1 -1
- package/dist/src/transaction_builder.js +1 -1
- package/package.json +3 -3
package/dist/src/address.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/address.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/address.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG5E,OAAO,EAA2B,OAAO,EAAE,MAAM,YAAY,CAAC;AAG9D,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAe/E;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAKxE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAKrF;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,iBAAiB,CAKpF;AAED,eAAO,MAAQ,UAAU,uCAAE,QAAQ,mCAAsB,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAC"}
|
package/dist/src/address.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var _a;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.toBech32 = exports.fromBech32 =
|
|
4
|
+
exports.toBech32 = exports.fromBech32 = void 0;
|
|
5
|
+
exports.fromOutputScript = fromOutputScript;
|
|
6
|
+
exports.toOutputScript = toOutputScript;
|
|
7
|
+
exports.toBase58Check = toBase58Check;
|
|
8
|
+
exports.fromBase58Check = fromBase58Check;
|
|
5
9
|
const bitcoinjs = require("bitcoinjs-lib");
|
|
6
10
|
const zcashAddress = require("../src/bitgo/zcash/address");
|
|
7
11
|
const networks_1 = require("./networks");
|
|
@@ -21,27 +25,23 @@ function fromOutputScript(outputScript, network) {
|
|
|
21
25
|
}
|
|
22
26
|
return bitcoinjs.address.fromOutputScript(outputScript, network);
|
|
23
27
|
}
|
|
24
|
-
exports.fromOutputScript = fromOutputScript;
|
|
25
28
|
function toOutputScript(address, network) {
|
|
26
29
|
if ((0, networks_1.isValidNetwork)(network) && (0, networks_1.isZcash)(network)) {
|
|
27
30
|
return zcashAddress.toOutputScript(address, network);
|
|
28
31
|
}
|
|
29
32
|
return bitcoinjs.address.toOutputScript(address, network);
|
|
30
33
|
}
|
|
31
|
-
exports.toOutputScript = toOutputScript;
|
|
32
34
|
function toBase58Check(hash, version, network) {
|
|
33
35
|
if ((0, networks_1.isValidNetwork)(network) && (0, networks_1.isZcash)(network)) {
|
|
34
36
|
return zcashAddress.toBase58Check(hash, version);
|
|
35
37
|
}
|
|
36
38
|
return bitcoinjs.address.toBase58Check(hash, version);
|
|
37
39
|
}
|
|
38
|
-
exports.toBase58Check = toBase58Check;
|
|
39
40
|
function fromBase58Check(address, network) {
|
|
40
41
|
if ((0, networks_1.isValidNetwork)(network) && (0, networks_1.isZcash)(network)) {
|
|
41
42
|
return zcashAddress.fromBase58Check(address);
|
|
42
43
|
}
|
|
43
44
|
return bitcoinjs.address.fromBase58Check(address);
|
|
44
45
|
}
|
|
45
|
-
exports.fromBase58Check = fromBase58Check;
|
|
46
46
|
_a = bitcoinjs.address, exports.fromBech32 = _a.fromBech32, exports.toBech32 = _a.toBech32;
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGRyZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFPQSw0Q0FlQztBQUVELHdDQUtDO0FBRUQsc0NBS0M7QUFFRCwwQ0FLQztBQTNDRCwyQ0FBMkM7QUFHM0MsMkRBQTJEO0FBQzNELHlDQUE4RDtBQUM5RCxtQ0FBdUM7QUFFdkMsU0FBZ0IsZ0JBQWdCLENBQUMsWUFBb0IsRUFBRSxPQUFnQjtJQUNyRSxJQUFJLElBQUEseUJBQWMsRUFBQyxPQUFPLENBQUMsSUFBSSxJQUFBLGtCQUFPLEVBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNoRCxPQUFPLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELG1IQUFtSDtJQUNuSCxpSEFBaUg7SUFDakgscUNBQXFDO0lBQ3JDLElBQUksQ0FBQztRQUNILE9BQU8sb0JBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBaUIsQ0FBQztJQUNoRixDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLGlDQUFpQztJQUNuQyxDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxPQUE0QixDQUFDLENBQUM7QUFDeEYsQ0FBQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxPQUFlLEVBQUUsT0FBZ0I7SUFDOUQsSUFBSSxJQUFBLHlCQUFjLEVBQUMsT0FBTyxDQUFDLElBQUksSUFBQSxrQkFBTyxFQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDaEQsT0FBTyxZQUFZLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsT0FBNEIsQ0FBQyxDQUFDO0FBQ2pGLENBQUM7QUFFRCxTQUFnQixhQUFhLENBQUMsSUFBWSxFQUFFLE9BQWUsRUFBRSxPQUFnQjtJQUMzRSxJQUFJLElBQUEseUJBQWMsRUFBQyxPQUFPLENBQUMsSUFBSSxJQUFBLGtCQUFPLEVBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNoRCxPQUFPLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLE9BQWUsRUFBRSxPQUFnQjtJQUMvRCxJQUFJLElBQUEseUJBQWMsRUFBQyxPQUFPLENBQUMsSUFBSSxJQUFBLGtCQUFPLEVBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNoRCxPQUFPLFlBQVksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDcEQsQ0FBQztBQUVZLEtBQTJCLFNBQVMsQ0FBQyxPQUFPLEVBQTFDLGtCQUFVLGtCQUFFLGdCQUFRLGVBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYml0Y29pbmpzIGZyb20gJ2JpdGNvaW5qcy1saWInO1xuaW1wb3J0IHsgQmFzZTU4Q2hlY2tSZXN1bHQsIEJlY2gzMlJlc3VsdCB9IGZyb20gJ2JpdGNvaW5qcy1saWIvc3JjL2FkZHJlc3MnO1xuXG5pbXBvcnQgKiBhcyB6Y2FzaEFkZHJlc3MgZnJvbSAnLi4vc3JjL2JpdGdvL3pjYXNoL2FkZHJlc3MnO1xuaW1wb3J0IHsgaXNWYWxpZE5ldHdvcmssIGlzWmNhc2gsIE5ldHdvcmsgfSBmcm9tICcuL25ldHdvcmtzJztcbmltcG9ydCB7IHAydHJQYXltZW50cyB9IGZyb20gJy4vaW5kZXgnO1xuXG5leHBvcnQgZnVuY3Rpb24gZnJvbU91dHB1dFNjcmlwdChvdXRwdXRTY3JpcHQ6IEJ1ZmZlciwgbmV0d29yazogTmV0d29yayk6IHN0cmluZyB7XG4gIGlmIChpc1ZhbGlkTmV0d29yayhuZXR3b3JrKSAmJiBpc1pjYXNoKG5ldHdvcmspKSB7XG4gICAgcmV0dXJuIHpjYXNoQWRkcmVzcy5mcm9tT3V0cHV0U2NyaXB0KG91dHB1dFNjcmlwdCwgbmV0d29yayk7XG4gIH1cblxuICAvLyBXZSBhZGRlZCBwMnRyIHBheW1lbnRzIGZyb20gb3VyIGZvcmtlZCBiaXRjb2luanMtbGliIHRvIHV0eG8tbGliIGluc3RlYWQuIE91ciBiaXRjb2luanMgZm9yayB3aWxsIG5vIGxvbmdlciBoYXZlXG4gIC8vIHAydHIgc3VwcG9ydCBzbyB1dHhvLWxpYiBzaG91bGQgdGFrZSBjYXJlIG9mIHJldHJpZXZpbmcgYSBwMnRyIGFkZHJlc3MgZnJvbSBvdXRwdXRTY3JpcHQgYW5kIGJpdGNvaW5qcy1saWIgY2FuXG4gIC8vIGhhbmRsZSB0aGUgb3RoZXIgdHlwZSBvZiBwYXltZW50cy5cbiAgdHJ5IHtcbiAgICByZXR1cm4gcDJ0clBheW1lbnRzLnAydHIoeyBvdXRwdXQ6IG91dHB1dFNjcmlwdCwgbmV0d29yayB9KS5hZGRyZXNzIGFzIHN0cmluZztcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIG5vb3AuIHRyeSB0aGUgYml0Y29pbmpzIG1ldGhvZFxuICB9XG5cbiAgcmV0dXJuIGJpdGNvaW5qcy5hZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQob3V0cHV0U2NyaXB0LCBuZXR3b3JrIGFzIGJpdGNvaW5qcy5OZXR3b3JrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvT3V0cHV0U2NyaXB0KGFkZHJlc3M6IHN0cmluZywgbmV0d29yazogTmV0d29yayk6IEJ1ZmZlciB7XG4gIGlmIChpc1ZhbGlkTmV0d29yayhuZXR3b3JrKSAmJiBpc1pjYXNoKG5ldHdvcmspKSB7XG4gICAgcmV0dXJuIHpjYXNoQWRkcmVzcy50b091dHB1dFNjcmlwdChhZGRyZXNzLCBuZXR3b3JrKTtcbiAgfVxuICByZXR1cm4gYml0Y29pbmpzLmFkZHJlc3MudG9PdXRwdXRTY3JpcHQoYWRkcmVzcywgbmV0d29yayBhcyBiaXRjb2luanMuTmV0d29yayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0Jhc2U1OENoZWNrKGhhc2g6IEJ1ZmZlciwgdmVyc2lvbjogbnVtYmVyLCBuZXR3b3JrOiBOZXR3b3JrKTogc3RyaW5nIHtcbiAgaWYgKGlzVmFsaWROZXR3b3JrKG5ldHdvcmspICYmIGlzWmNhc2gobmV0d29yaykpIHtcbiAgICByZXR1cm4gemNhc2hBZGRyZXNzLnRvQmFzZTU4Q2hlY2soaGFzaCwgdmVyc2lvbik7XG4gIH1cbiAgcmV0dXJuIGJpdGNvaW5qcy5hZGRyZXNzLnRvQmFzZTU4Q2hlY2soaGFzaCwgdmVyc2lvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmcm9tQmFzZTU4Q2hlY2soYWRkcmVzczogc3RyaW5nLCBuZXR3b3JrOiBOZXR3b3JrKTogQmFzZTU4Q2hlY2tSZXN1bHQge1xuICBpZiAoaXNWYWxpZE5ldHdvcmsobmV0d29yaykgJiYgaXNaY2FzaChuZXR3b3JrKSkge1xuICAgIHJldHVybiB6Y2FzaEFkZHJlc3MuZnJvbUJhc2U1OENoZWNrKGFkZHJlc3MpO1xuICB9XG4gIHJldHVybiBiaXRjb2luanMuYWRkcmVzcy5mcm9tQmFzZTU4Q2hlY2soYWRkcmVzcyk7XG59XG5cbmV4cG9ydCBjb25zdCB7IGZyb21CZWNoMzIsIHRvQmVjaDMyIH0gPSBiaXRjb2luanMuYWRkcmVzcztcblxuZXhwb3J0IHsgQmFzZTU4Q2hlY2tSZXN1bHQsIEJlY2gzMlJlc3VsdCB9O1xuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addressFormat.d.ts","sourceRoot":"","sources":["../../src/addressFormat.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"addressFormat.d.ts","sourceRoot":"","sources":["../../src/addressFormat.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAA8C,OAAO,EAAY,MAAM,YAAY,CAAC;AAK3F,eAAO,MAAM,cAAc,kCAAmC,CAAC;AAE/D,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAM5D;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAQzF;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAQhH;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAQzG;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,aAAa,EAAE,GACxB,CAAC,aAAa,EAAE,MAAM,CAAC,CAczB;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,EAAE,GAAG,MAAM,CAG7G;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAE3E"}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.addressFormats = void 0;
|
|
4
|
+
exports.isSupportedAddressFormat = isSupportedAddressFormat;
|
|
5
|
+
exports.fromOutputScriptWithFormat = fromOutputScriptWithFormat;
|
|
6
|
+
exports.toOutputScriptWithFormat = toOutputScriptWithFormat;
|
|
7
|
+
exports.toOutputScriptAndFormat = toOutputScriptAndFormat;
|
|
8
|
+
exports.toOutputScriptTryFormats = toOutputScriptTryFormats;
|
|
9
|
+
exports.toCanonicalFormat = toCanonicalFormat;
|
|
4
10
|
/**
|
|
5
11
|
* Implements methods for nonstandard (non-canonical) address formats.
|
|
6
12
|
*
|
|
@@ -28,7 +34,6 @@ function isSupportedAddressFormat(format, network) {
|
|
|
28
34
|
}
|
|
29
35
|
throw new Error(`unknown address format ${format}`);
|
|
30
36
|
}
|
|
31
|
-
exports.isSupportedAddressFormat = isSupportedAddressFormat;
|
|
32
37
|
/**
|
|
33
38
|
* @param outputScript
|
|
34
39
|
* @param format
|
|
@@ -43,7 +48,6 @@ function fromOutputScriptWithFormat(outputScript, format, network) {
|
|
|
43
48
|
? bitgo_1.bcashAddress.fromOutputScriptWithFormat(outputScript, format, network)
|
|
44
49
|
: (0, address_1.fromOutputScript)(outputScript, network);
|
|
45
50
|
}
|
|
46
|
-
exports.fromOutputScriptWithFormat = fromOutputScriptWithFormat;
|
|
47
51
|
/**
|
|
48
52
|
* @param address
|
|
49
53
|
* @param format
|
|
@@ -58,7 +62,6 @@ function toOutputScriptWithFormat(address, format, network) {
|
|
|
58
62
|
? bitgo_1.bcashAddress.toOutputScriptWithFormat(address, format, network)
|
|
59
63
|
: (0, address_1.toOutputScript)(address, network);
|
|
60
64
|
}
|
|
61
|
-
exports.toOutputScriptWithFormat = toOutputScriptWithFormat;
|
|
62
65
|
/**
|
|
63
66
|
* Attempts to parse address with different address formats, returns first hit.
|
|
64
67
|
* @param address
|
|
@@ -80,7 +83,6 @@ function toOutputScriptAndFormat(address, network, formats) {
|
|
|
80
83
|
}
|
|
81
84
|
throw new Error(`could not parse outputScript [formats=${formats}]`);
|
|
82
85
|
}
|
|
83
|
-
exports.toOutputScriptAndFormat = toOutputScriptAndFormat;
|
|
84
86
|
/**
|
|
85
87
|
* Same as `toOutputScriptAndFormat`, only returning script
|
|
86
88
|
* @param address - {@see toOutputScriptAndFormat}
|
|
@@ -92,7 +94,6 @@ function toOutputScriptTryFormats(address, network, formats) {
|
|
|
92
94
|
const [, outputScript] = toOutputScriptAndFormat(address, network, formats);
|
|
93
95
|
return outputScript;
|
|
94
96
|
}
|
|
95
|
-
exports.toOutputScriptTryFormats = toOutputScriptTryFormats;
|
|
96
97
|
/**
|
|
97
98
|
* @param address
|
|
98
99
|
* @param network
|
|
@@ -101,5 +102,4 @@ exports.toOutputScriptTryFormats = toOutputScriptTryFormats;
|
|
|
101
102
|
function toCanonicalFormat(address, network) {
|
|
102
103
|
return (0, address_1.fromOutputScript)(toOutputScriptTryFormats(address, network), network);
|
|
103
104
|
}
|
|
104
|
-
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzc0Zvcm1hdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGRyZXNzRm9ybWF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7OztHQUtHO0FBQ0gseUNBQTJGO0FBQzNGLHVDQUE2RDtBQUU3RCxtQ0FBdUM7QUFFMUIsUUFBQSxjQUFjLEdBQUcsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFVLENBQUM7QUFJL0QsU0FBUyxpQkFBaUIsQ0FBQyxPQUFnQjtJQUN6QyxPQUFPLElBQUEseUJBQWMsRUFBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFRLENBQUMsV0FBVyxFQUFFLG1CQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUEscUJBQVUsRUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ3pHLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQUMsTUFBcUIsRUFBRSxPQUFnQjtJQUM5RSxRQUFRLE1BQU0sRUFBRTtRQUNkLEtBQUssU0FBUztZQUNaLE9BQU8sSUFBSSxDQUFDO1FBQ2QsS0FBSyxVQUFVO1lBQ2IsT0FBTyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUNyQztJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDdEQsQ0FBQztBQVJELDREQVFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQiwwQkFBMEIsQ0FBQyxZQUFvQixFQUFFLE1BQXFCLEVBQUUsT0FBZ0I7SUFDdEcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRTtRQUM5QyxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixNQUFNLGdCQUFnQixJQUFBLHlCQUFjLEVBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQ2hHO0lBRUQsT0FBTyxpQkFBaUIsQ0FBQyxPQUFPLENBQUM7UUFDL0IsQ0FBQyxDQUFDLG9CQUFZLENBQUMsMEJBQTBCLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUM7UUFDeEUsQ0FBQyxDQUFDLElBQUEsMEJBQWdCLEVBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFSRCxnRUFRQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQUMsT0FBZSxFQUFFLE1BQXFCLEVBQUUsT0FBZ0I7SUFDL0YsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRTtRQUM5QyxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixNQUFNLGdCQUFnQixJQUFBLHlCQUFjLEVBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQ2hHO0lBRUQsT0FBTyxpQkFBaUIsQ0FBQyxPQUFPLENBQUM7UUFDL0IsQ0FBQyxDQUFDLG9CQUFZLENBQUMsd0JBQXdCLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUM7UUFDakUsQ0FBQyxDQUFDLElBQUEsd0JBQWMsRUFBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdkMsQ0FBQztBQVJELDREQVFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQ3JDLE9BQWUsRUFDZixPQUFnQixFQUNoQixPQUF5QjtJQUV6QixJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ1osT0FBTyxHQUFHLHNCQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztLQUM5RTtJQUVELEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFO1FBQzVCLElBQUk7WUFDRixPQUFPLENBQUMsTUFBTSxFQUFFLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNyRTtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsV0FBVztTQUNaO0tBQ0Y7SUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxPQUFPLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZFLENBQUM7QUFsQkQsMERBa0JDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQUMsT0FBZSxFQUFFLE9BQWdCLEVBQUUsT0FBeUI7SUFDbkcsTUFBTSxDQUFDLEVBQUUsWUFBWSxDQUFDLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RSxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDO0FBSEQsNERBR0M7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsaUJBQWlCLENBQUMsT0FBZSxFQUFFLE9BQWdCO0lBQ2pFLE9BQU8sSUFBQSwwQkFBZ0IsRUFBQyx3QkFBd0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDL0UsQ0FBQztBQUZELDhDQUVDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJbXBsZW1lbnRzIG1ldGhvZHMgZm9yIG5vbnN0YW5kYXJkIChub24tY2Fub25pY2FsKSBhZGRyZXNzIGZvcm1hdHMuXG4gKlxuICogVXNlIGB0b091dHB1dFNjcmlwdFRyeUZvcm1hdHMoKWAgaW5zdGVhZCBvZiBgdG9PdXRwdXRTY3JpcHQoKWAgdG8gcGFyc2UgYWRkcmVzc2VzIGluXG4gKiBub24tY2Fub25pY2FsIGZvcm1hdHNcbiAqL1xuaW1wb3J0IHsgZ2V0TWFpbm5ldCwgZ2V0TmV0d29ya05hbWUsIGlzVmFsaWROZXR3b3JrLCBOZXR3b3JrLCBuZXR3b3JrcyB9IGZyb20gJy4vbmV0d29ya3MnO1xuaW1wb3J0IHsgZnJvbU91dHB1dFNjcmlwdCwgdG9PdXRwdXRTY3JpcHQgfSBmcm9tICcuL2FkZHJlc3MnO1xuXG5pbXBvcnQgeyBiY2FzaEFkZHJlc3MgfSBmcm9tICcuL2JpdGdvJztcblxuZXhwb3J0IGNvbnN0IGFkZHJlc3NGb3JtYXRzID0gWydkZWZhdWx0JywgJ2Nhc2hhZGRyJ10gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIEFkZHJlc3NGb3JtYXQgPSAodHlwZW9mIGFkZHJlc3NGb3JtYXRzKVtudW1iZXJdO1xuXG5mdW5jdGlvbiBpc0Nhc2hhZGRyTmV0d29yayhuZXR3b3JrOiBOZXR3b3JrKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc1ZhbGlkTmV0d29yayhuZXR3b3JrKSAmJiBbbmV0d29ya3MuYml0Y29pbmNhc2gsIG5ldHdvcmtzLmVjYXNoXS5pbmNsdWRlcyhnZXRNYWlubmV0KG5ldHdvcmspKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0gZm9ybWF0XG4gKiBAcGFyYW0gbmV0d29ya1xuICogQHJldHVybiB0cnVlIGlmZiBmb3JtYXQgaXMgc3VwcG9ydGVkIGZvciBuZXR3b3JrXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1N1cHBvcnRlZEFkZHJlc3NGb3JtYXQoZm9ybWF0OiBBZGRyZXNzRm9ybWF0LCBuZXR3b3JrOiBOZXR3b3JrKTogYm9vbGVhbiB7XG4gIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgY2FzZSAnZGVmYXVsdCc6XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICBjYXNlICdjYXNoYWRkcic6XG4gICAgICByZXR1cm4gaXNDYXNoYWRkck5ldHdvcmsobmV0d29yayk7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGB1bmtub3duIGFkZHJlc3MgZm9ybWF0ICR7Zm9ybWF0fWApO1xufVxuXG4vKipcbiAqIEBwYXJhbSBvdXRwdXRTY3JpcHRcbiAqIEBwYXJhbSBmb3JtYXRcbiAqIEBwYXJhbSBuZXR3b3JrXG4gKiBAcmV0dXJuIGFkZHJlc3MgZm9ybWF0dGVkIHVzaW5nIHByb3ZpZGVkIEFkZHJlc3NGb3JtYXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21PdXRwdXRTY3JpcHRXaXRoRm9ybWF0KG91dHB1dFNjcmlwdDogQnVmZmVyLCBmb3JtYXQ6IEFkZHJlc3NGb3JtYXQsIG5ldHdvcms6IE5ldHdvcmspOiBzdHJpbmcge1xuICBpZiAoIWlzU3VwcG9ydGVkQWRkcmVzc0Zvcm1hdChmb3JtYXQsIG5ldHdvcmspKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB1bnN1cHBvcnRlZCBhZGRyZXNzIGZvcm1hdCAke2Zvcm1hdH0gZm9yIG5ldHdvcmsgJHtnZXROZXR3b3JrTmFtZShuZXR3b3JrKX1gKTtcbiAgfVxuXG4gIHJldHVybiBpc0Nhc2hhZGRyTmV0d29yayhuZXR3b3JrKVxuICAgID8gYmNhc2hBZGRyZXNzLmZyb21PdXRwdXRTY3JpcHRXaXRoRm9ybWF0KG91dHB1dFNjcmlwdCwgZm9ybWF0LCBuZXR3b3JrKVxuICAgIDogZnJvbU91dHB1dFNjcmlwdChvdXRwdXRTY3JpcHQsIG5ldHdvcmspO1xufVxuXG4vKipcbiAqIEBwYXJhbSBhZGRyZXNzXG4gKiBAcGFyYW0gZm9ybWF0XG4gKiBAcGFyYW0gbmV0d29ya1xuICogQHJldHVybiBvdXRwdXQgc2NyaXB0IHBhcnNlZCB3aXRoIHByb3ZpZGVkIEFkZHJlc3NGb3JtYXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvT3V0cHV0U2NyaXB0V2l0aEZvcm1hdChhZGRyZXNzOiBzdHJpbmcsIGZvcm1hdDogQWRkcmVzc0Zvcm1hdCwgbmV0d29yazogTmV0d29yayk6IEJ1ZmZlciB7XG4gIGlmICghaXNTdXBwb3J0ZWRBZGRyZXNzRm9ybWF0KGZvcm1hdCwgbmV0d29yaykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHVuc3VwcG9ydGVkIGFkZHJlc3MgZm9ybWF0ICR7Zm9ybWF0fSBmb3IgbmV0d29yayAke2dldE5ldHdvcmtOYW1lKG5ldHdvcmspfWApO1xuICB9XG5cbiAgcmV0dXJuIGlzQ2FzaGFkZHJOZXR3b3JrKG5ldHdvcmspXG4gICAgPyBiY2FzaEFkZHJlc3MudG9PdXRwdXRTY3JpcHRXaXRoRm9ybWF0KGFkZHJlc3MsIGZvcm1hdCwgbmV0d29yaylcbiAgICA6IHRvT3V0cHV0U2NyaXB0KGFkZHJlc3MsIG5ldHdvcmspO1xufVxuXG4vKipcbiAqIEF0dGVtcHRzIHRvIHBhcnNlIGFkZHJlc3Mgd2l0aCBkaWZmZXJlbnQgYWRkcmVzcyBmb3JtYXRzLCByZXR1cm5zIGZpcnN0IGhpdC5cbiAqIEBwYXJhbSBhZGRyZXNzXG4gKiBAcGFyYW0gbmV0d29ya1xuICogQHBhcmFtIGZvcm1hdHMgLSBkZWZhdWx0cyB0byBhbGwgc3VwcG9ydGVkIGFkZHJlc3MgZm9ybWF0cyBmb3IgbmV0d29ya1xuICogQHJldHVybiB0dXBsZSB3aXRoIFtBZGRyZXNzRm9ybWF0LCBCdWZmZXJdIGNvbnRhaW5pbmcgZm9ybWF0IGFuZCBwYXJzZWQgb3V0cHV0IHNjcmlwdFxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9PdXRwdXRTY3JpcHRBbmRGb3JtYXQoXG4gIGFkZHJlc3M6IHN0cmluZyxcbiAgbmV0d29yazogTmV0d29yayxcbiAgZm9ybWF0cz86IEFkZHJlc3NGb3JtYXRbXVxuKTogW0FkZHJlc3NGb3JtYXQsIEJ1ZmZlcl0ge1xuICBpZiAoIWZvcm1hdHMpIHtcbiAgICBmb3JtYXRzID0gYWRkcmVzc0Zvcm1hdHMuZmlsdGVyKChmKSA9PiBpc1N1cHBvcnRlZEFkZHJlc3NGb3JtYXQoZiwgbmV0d29yaykpO1xuICB9XG5cbiAgZm9yIChjb25zdCBmb3JtYXQgb2YgZm9ybWF0cykge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gW2Zvcm1hdCwgdG9PdXRwdXRTY3JpcHRXaXRoRm9ybWF0KGFkZHJlc3MsIGZvcm1hdCwgbmV0d29yayldO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIHRyeSBuZXh0XG4gICAgfVxuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKGBjb3VsZCBub3QgcGFyc2Ugb3V0cHV0U2NyaXB0IFtmb3JtYXRzPSR7Zm9ybWF0c31dYCk7XG59XG5cbi8qKlxuICogU2FtZSBhcyBgdG9PdXRwdXRTY3JpcHRBbmRGb3JtYXRgLCBvbmx5IHJldHVybmluZyBzY3JpcHRcbiAqIEBwYXJhbSBhZGRyZXNzIC0ge0BzZWUgdG9PdXRwdXRTY3JpcHRBbmRGb3JtYXR9XG4gKiBAcGFyYW0gbmV0d29yayAtIHtAc2VlIHRvT3V0cHV0U2NyaXB0QW5kRm9ybWF0fVxuICogQHBhcmFtIGZvcm1hdHMgLSB7QHNlZSB0b091dHB1dFNjcmlwdEFuZEZvcm1hdH1cbiAqIEByZXR1cm4gcGFyc2VkIG91dHB1dCBzY3JpcHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvT3V0cHV0U2NyaXB0VHJ5Rm9ybWF0cyhhZGRyZXNzOiBzdHJpbmcsIG5ldHdvcms6IE5ldHdvcmssIGZvcm1hdHM/OiBBZGRyZXNzRm9ybWF0W10pOiBCdWZmZXIge1xuICBjb25zdCBbLCBvdXRwdXRTY3JpcHRdID0gdG9PdXRwdXRTY3JpcHRBbmRGb3JtYXQoYWRkcmVzcywgbmV0d29yaywgZm9ybWF0cyk7XG4gIHJldHVybiBvdXRwdXRTY3JpcHQ7XG59XG5cbi8qKlxuICogQHBhcmFtIGFkZHJlc3NcbiAqIEBwYXJhbSBuZXR3b3JrXG4gKiBAcmV0dXJuIGFkZHJlc3MgaW4gY2Fub25pY2FsIGZvcm1hdFxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9DYW5vbmljYWxGb3JtYXQoYWRkcmVzczogc3RyaW5nLCBuZXR3b3JrOiBOZXR3b3JrKTogc3RyaW5nIHtcbiAgcmV0dXJuIGZyb21PdXRwdXRTY3JpcHQodG9PdXRwdXRTY3JpcHRUcnlGb3JtYXRzKGFkZHJlc3MsIG5ldHdvcmspLCBuZXR3b3JrKTtcbn1cbiJdfQ==
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzc0Zvcm1hdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGRyZXNzRm9ybWF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXdCQSw0REFRQztBQVFELGdFQVFDO0FBUUQsNERBUUM7QUFTRCwwREFrQkM7QUFTRCw0REFHQztBQU9ELDhDQUVDO0FBaEhEOzs7OztHQUtHO0FBQ0gseUNBQTJGO0FBQzNGLHVDQUE2RDtBQUU3RCxtQ0FBdUM7QUFFMUIsUUFBQSxjQUFjLEdBQUcsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFVLENBQUM7QUFJL0QsU0FBUyxpQkFBaUIsQ0FBQyxPQUFnQjtJQUN6QyxPQUFPLElBQUEseUJBQWMsRUFBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFRLENBQUMsV0FBVyxFQUFFLG1CQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUEscUJBQVUsRUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ3pHLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQUMsTUFBcUIsRUFBRSxPQUFnQjtJQUM5RSxRQUFRLE1BQU0sRUFBRSxDQUFDO1FBQ2YsS0FBSyxTQUFTO1lBQ1osT0FBTyxJQUFJLENBQUM7UUFDZCxLQUFLLFVBQVU7WUFDYixPQUFPLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBQ3RELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLDBCQUEwQixDQUFDLFlBQW9CLEVBQUUsTUFBcUIsRUFBRSxPQUFnQjtJQUN0RyxJQUFJLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDL0MsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsTUFBTSxnQkFBZ0IsSUFBQSx5QkFBYyxFQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRUQsT0FBTyxpQkFBaUIsQ0FBQyxPQUFPLENBQUM7UUFDL0IsQ0FBQyxDQUFDLG9CQUFZLENBQUMsMEJBQTBCLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUM7UUFDeEUsQ0FBQyxDQUFDLElBQUEsMEJBQWdCLEVBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLHdCQUF3QixDQUFDLE9BQWUsRUFBRSxNQUFxQixFQUFFLE9BQWdCO0lBQy9GLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUMvQyxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixNQUFNLGdCQUFnQixJQUFBLHlCQUFjLEVBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFRCxPQUFPLGlCQUFpQixDQUFDLE9BQU8sQ0FBQztRQUMvQixDQUFDLENBQUMsb0JBQVksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztRQUNqRSxDQUFDLENBQUMsSUFBQSx3QkFBYyxFQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQ3JDLE9BQWUsRUFDZixPQUFnQixFQUNoQixPQUF5QjtJQUV6QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixPQUFPLEdBQUcsc0JBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRCxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQztZQUNILE9BQU8sQ0FBQyxNQUFNLEVBQUUsd0JBQXdCLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsV0FBVztRQUNiLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsT0FBTyxHQUFHLENBQUMsQ0FBQztBQUN2RSxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQUMsT0FBZSxFQUFFLE9BQWdCLEVBQUUsT0FBeUI7SUFDbkcsTUFBTSxDQUFDLEVBQUUsWUFBWSxDQUFDLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RSxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLE9BQWUsRUFBRSxPQUFnQjtJQUNqRSxPQUFPLElBQUEsMEJBQWdCLEVBQUMsd0JBQXdCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEltcGxlbWVudHMgbWV0aG9kcyBmb3Igbm9uc3RhbmRhcmQgKG5vbi1jYW5vbmljYWwpIGFkZHJlc3MgZm9ybWF0cy5cbiAqXG4gKiBVc2UgYHRvT3V0cHV0U2NyaXB0VHJ5Rm9ybWF0cygpYCBpbnN0ZWFkIG9mIGB0b091dHB1dFNjcmlwdCgpYCB0byBwYXJzZSBhZGRyZXNzZXMgaW5cbiAqIG5vbi1jYW5vbmljYWwgZm9ybWF0c1xuICovXG5pbXBvcnQgeyBnZXRNYWlubmV0LCBnZXROZXR3b3JrTmFtZSwgaXNWYWxpZE5ldHdvcmssIE5ldHdvcmssIG5ldHdvcmtzIH0gZnJvbSAnLi9uZXR3b3Jrcyc7XG5pbXBvcnQgeyBmcm9tT3V0cHV0U2NyaXB0LCB0b091dHB1dFNjcmlwdCB9IGZyb20gJy4vYWRkcmVzcyc7XG5cbmltcG9ydCB7IGJjYXNoQWRkcmVzcyB9IGZyb20gJy4vYml0Z28nO1xuXG5leHBvcnQgY29uc3QgYWRkcmVzc0Zvcm1hdHMgPSBbJ2RlZmF1bHQnLCAnY2FzaGFkZHInXSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgQWRkcmVzc0Zvcm1hdCA9ICh0eXBlb2YgYWRkcmVzc0Zvcm1hdHMpW251bWJlcl07XG5cbmZ1bmN0aW9uIGlzQ2FzaGFkZHJOZXR3b3JrKG5ldHdvcms6IE5ldHdvcmspOiBib29sZWFuIHtcbiAgcmV0dXJuIGlzVmFsaWROZXR3b3JrKG5ldHdvcmspICYmIFtuZXR3b3Jrcy5iaXRjb2luY2FzaCwgbmV0d29ya3MuZWNhc2hdLmluY2x1ZGVzKGdldE1haW5uZXQobmV0d29yaykpO1xufVxuXG4vKipcbiAqIEBwYXJhbSBmb3JtYXRcbiAqIEBwYXJhbSBuZXR3b3JrXG4gKiBAcmV0dXJuIHRydWUgaWZmIGZvcm1hdCBpcyBzdXBwb3J0ZWQgZm9yIG5ldHdvcmtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3VwcG9ydGVkQWRkcmVzc0Zvcm1hdChmb3JtYXQ6IEFkZHJlc3NGb3JtYXQsIG5ldHdvcms6IE5ldHdvcmspOiBib29sZWFuIHtcbiAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICBjYXNlICdkZWZhdWx0JzpcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIGNhc2UgJ2Nhc2hhZGRyJzpcbiAgICAgIHJldHVybiBpc0Nhc2hhZGRyTmV0d29yayhuZXR3b3JrKTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYHVua25vd24gYWRkcmVzcyBmb3JtYXQgJHtmb3JtYXR9YCk7XG59XG5cbi8qKlxuICogQHBhcmFtIG91dHB1dFNjcmlwdFxuICogQHBhcmFtIGZvcm1hdFxuICogQHBhcmFtIG5ldHdvcmtcbiAqIEByZXR1cm4gYWRkcmVzcyBmb3JtYXR0ZWQgdXNpbmcgcHJvdmlkZWQgQWRkcmVzc0Zvcm1hdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZnJvbU91dHB1dFNjcmlwdFdpdGhGb3JtYXQob3V0cHV0U2NyaXB0OiBCdWZmZXIsIGZvcm1hdDogQWRkcmVzc0Zvcm1hdCwgbmV0d29yazogTmV0d29yayk6IHN0cmluZyB7XG4gIGlmICghaXNTdXBwb3J0ZWRBZGRyZXNzRm9ybWF0KGZvcm1hdCwgbmV0d29yaykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHVuc3VwcG9ydGVkIGFkZHJlc3MgZm9ybWF0ICR7Zm9ybWF0fSBmb3IgbmV0d29yayAke2dldE5ldHdvcmtOYW1lKG5ldHdvcmspfWApO1xuICB9XG5cbiAgcmV0dXJuIGlzQ2FzaGFkZHJOZXR3b3JrKG5ldHdvcmspXG4gICAgPyBiY2FzaEFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdFdpdGhGb3JtYXQob3V0cHV0U2NyaXB0LCBmb3JtYXQsIG5ldHdvcmspXG4gICAgOiBmcm9tT3V0cHV0U2NyaXB0KG91dHB1dFNjcmlwdCwgbmV0d29yayk7XG59XG5cbi8qKlxuICogQHBhcmFtIGFkZHJlc3NcbiAqIEBwYXJhbSBmb3JtYXRcbiAqIEBwYXJhbSBuZXR3b3JrXG4gKiBAcmV0dXJuIG91dHB1dCBzY3JpcHQgcGFyc2VkIHdpdGggcHJvdmlkZWQgQWRkcmVzc0Zvcm1hdFxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9PdXRwdXRTY3JpcHRXaXRoRm9ybWF0KGFkZHJlc3M6IHN0cmluZywgZm9ybWF0OiBBZGRyZXNzRm9ybWF0LCBuZXR3b3JrOiBOZXR3b3JrKTogQnVmZmVyIHtcbiAgaWYgKCFpc1N1cHBvcnRlZEFkZHJlc3NGb3JtYXQoZm9ybWF0LCBuZXR3b3JrKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgdW5zdXBwb3J0ZWQgYWRkcmVzcyBmb3JtYXQgJHtmb3JtYXR9IGZvciBuZXR3b3JrICR7Z2V0TmV0d29ya05hbWUobmV0d29yayl9YCk7XG4gIH1cblxuICByZXR1cm4gaXNDYXNoYWRkck5ldHdvcmsobmV0d29yaylcbiAgICA/IGJjYXNoQWRkcmVzcy50b091dHB1dFNjcmlwdFdpdGhGb3JtYXQoYWRkcmVzcywgZm9ybWF0LCBuZXR3b3JrKVxuICAgIDogdG9PdXRwdXRTY3JpcHQoYWRkcmVzcywgbmV0d29yayk7XG59XG5cbi8qKlxuICogQXR0ZW1wdHMgdG8gcGFyc2UgYWRkcmVzcyB3aXRoIGRpZmZlcmVudCBhZGRyZXNzIGZvcm1hdHMsIHJldHVybnMgZmlyc3QgaGl0LlxuICogQHBhcmFtIGFkZHJlc3NcbiAqIEBwYXJhbSBuZXR3b3JrXG4gKiBAcGFyYW0gZm9ybWF0cyAtIGRlZmF1bHRzIHRvIGFsbCBzdXBwb3J0ZWQgYWRkcmVzcyBmb3JtYXRzIGZvciBuZXR3b3JrXG4gKiBAcmV0dXJuIHR1cGxlIHdpdGggW0FkZHJlc3NGb3JtYXQsIEJ1ZmZlcl0gY29udGFpbmluZyBmb3JtYXQgYW5kIHBhcnNlZCBvdXRwdXQgc2NyaXB0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b091dHB1dFNjcmlwdEFuZEZvcm1hdChcbiAgYWRkcmVzczogc3RyaW5nLFxuICBuZXR3b3JrOiBOZXR3b3JrLFxuICBmb3JtYXRzPzogQWRkcmVzc0Zvcm1hdFtdXG4pOiBbQWRkcmVzc0Zvcm1hdCwgQnVmZmVyXSB7XG4gIGlmICghZm9ybWF0cykge1xuICAgIGZvcm1hdHMgPSBhZGRyZXNzRm9ybWF0cy5maWx0ZXIoKGYpID0+IGlzU3VwcG9ydGVkQWRkcmVzc0Zvcm1hdChmLCBuZXR3b3JrKSk7XG4gIH1cblxuICBmb3IgKGNvbnN0IGZvcm1hdCBvZiBmb3JtYXRzKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBbZm9ybWF0LCB0b091dHB1dFNjcmlwdFdpdGhGb3JtYXQoYWRkcmVzcywgZm9ybWF0LCBuZXR3b3JrKV07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gdHJ5IG5leHRcbiAgICB9XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYGNvdWxkIG5vdCBwYXJzZSBvdXRwdXRTY3JpcHQgW2Zvcm1hdHM9JHtmb3JtYXRzfV1gKTtcbn1cblxuLyoqXG4gKiBTYW1lIGFzIGB0b091dHB1dFNjcmlwdEFuZEZvcm1hdGAsIG9ubHkgcmV0dXJuaW5nIHNjcmlwdFxuICogQHBhcmFtIGFkZHJlc3MgLSB7QHNlZSB0b091dHB1dFNjcmlwdEFuZEZvcm1hdH1cbiAqIEBwYXJhbSBuZXR3b3JrIC0ge0BzZWUgdG9PdXRwdXRTY3JpcHRBbmRGb3JtYXR9XG4gKiBAcGFyYW0gZm9ybWF0cyAtIHtAc2VlIHRvT3V0cHV0U2NyaXB0QW5kRm9ybWF0fVxuICogQHJldHVybiBwYXJzZWQgb3V0cHV0IHNjcmlwdFxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9PdXRwdXRTY3JpcHRUcnlGb3JtYXRzKGFkZHJlc3M6IHN0cmluZywgbmV0d29yazogTmV0d29yaywgZm9ybWF0cz86IEFkZHJlc3NGb3JtYXRbXSk6IEJ1ZmZlciB7XG4gIGNvbnN0IFssIG91dHB1dFNjcmlwdF0gPSB0b091dHB1dFNjcmlwdEFuZEZvcm1hdChhZGRyZXNzLCBuZXR3b3JrLCBmb3JtYXRzKTtcbiAgcmV0dXJuIG91dHB1dFNjcmlwdDtcbn1cblxuLyoqXG4gKiBAcGFyYW0gYWRkcmVzc1xuICogQHBhcmFtIG5ldHdvcmtcbiAqIEByZXR1cm4gYWRkcmVzcyBpbiBjYW5vbmljYWwgZm9ybWF0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0Nhbm9uaWNhbEZvcm1hdChhZGRyZXNzOiBzdHJpbmcsIG5ldHdvcms6IE5ldHdvcmspOiBzdHJpbmcge1xuICByZXR1cm4gZnJvbU91dHB1dFNjcmlwdCh0b091dHB1dFNjcmlwdFRyeUZvcm1hdHMoYWRkcmVzcywgbmV0d29yayksIG5ldHdvcmspO1xufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Musig2.d.ts","sourceRoot":"","sources":["../../../src/bitgo/Musig2.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Musig2.d.ts","sourceRoot":"","sources":["../../../src/bitgo/Musig2.ts"],"names":[],"mappings":"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"}
|
package/dist/src/bitgo/Musig2.js
CHANGED
|
@@ -1,6 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.Musig2NonceStore = void 0;
|
|
4
|
+
exports.encodePsbtMusig2Participants = encodePsbtMusig2Participants;
|
|
5
|
+
exports.encodePsbtMusig2PubNonce = encodePsbtMusig2PubNonce;
|
|
6
|
+
exports.encodePsbtMusig2PartialSig = encodePsbtMusig2PartialSig;
|
|
7
|
+
exports.decodePsbtMusig2Participants = decodePsbtMusig2Participants;
|
|
8
|
+
exports.decodePsbtMusig2Nonce = decodePsbtMusig2Nonce;
|
|
9
|
+
exports.decodePsbtMusig2PartialSig = decodePsbtMusig2PartialSig;
|
|
10
|
+
exports.createTapInternalKey = createTapInternalKey;
|
|
11
|
+
exports.createTapOutputKey = createTapOutputKey;
|
|
12
|
+
exports.createAggregateNonce = createAggregateNonce;
|
|
13
|
+
exports.createTapTweak = createTapTweak;
|
|
14
|
+
exports.musig2PartialSign = musig2PartialSign;
|
|
15
|
+
exports.musig2PartialSigVerify = musig2PartialSigVerify;
|
|
16
|
+
exports.musig2AggregateSigs = musig2AggregateSigs;
|
|
17
|
+
exports.createMusig2SigningSession = createMusig2SigningSession;
|
|
18
|
+
exports.parsePsbtMusig2Participants = parsePsbtMusig2Participants;
|
|
19
|
+
exports.parsePsbtMusig2Nonces = parsePsbtMusig2Nonces;
|
|
20
|
+
exports.parsePsbtMusig2PartialSigs = parsePsbtMusig2PartialSigs;
|
|
21
|
+
exports.assertPsbtMusig2Participants = assertPsbtMusig2Participants;
|
|
22
|
+
exports.assertPsbtMusig2Nonces = assertPsbtMusig2Nonces;
|
|
23
|
+
exports.getSigHashTypeFromSigs = getSigHashTypeFromSigs;
|
|
24
|
+
exports.createMusig2DeterministicNonce = createMusig2DeterministicNonce;
|
|
25
|
+
exports.musig2DeterministicSign = musig2DeterministicSign;
|
|
4
26
|
const outputScripts_1 = require("./outputScripts");
|
|
5
27
|
const noble_ecc_1 = require("../noble_ecc");
|
|
6
28
|
const taproot_1 = require("../taproot");
|
|
@@ -62,7 +84,6 @@ function encodePsbtMusig2Participants(participants) {
|
|
|
62
84
|
};
|
|
63
85
|
return { key, value: Buffer.concat(value) };
|
|
64
86
|
}
|
|
65
|
-
exports.encodePsbtMusig2Participants = encodePsbtMusig2Participants;
|
|
66
87
|
/**
|
|
67
88
|
* Psbt proprietary key val util function for pub nonce. SubType is 0x02
|
|
68
89
|
* Ref: https://gist.github.com/sanket1729/4b525c6049f4d9e034d27368c49f28a6
|
|
@@ -83,7 +104,6 @@ function encodePsbtMusig2PubNonce(nonce) {
|
|
|
83
104
|
};
|
|
84
105
|
return { key, value: nonce.pubNonce };
|
|
85
106
|
}
|
|
86
|
-
exports.encodePsbtMusig2PubNonce = encodePsbtMusig2PubNonce;
|
|
87
107
|
function encodePsbtMusig2PartialSig(partialSig) {
|
|
88
108
|
if (partialSig.partialSig.length !== 32 && partialSig.partialSig.length !== 33) {
|
|
89
109
|
throw new Error(`Invalid partialSig length ${partialSig.partialSig.length}`);
|
|
@@ -99,7 +119,6 @@ function encodePsbtMusig2PartialSig(partialSig) {
|
|
|
99
119
|
};
|
|
100
120
|
return { key, value: partialSig.partialSig };
|
|
101
121
|
}
|
|
102
|
-
exports.encodePsbtMusig2PartialSig = encodePsbtMusig2PartialSig;
|
|
103
122
|
/**
|
|
104
123
|
* Decodes proprietary key value data for participant pub keys
|
|
105
124
|
* @param kv
|
|
@@ -123,7 +142,6 @@ function decodePsbtMusig2Participants(kv) {
|
|
|
123
142
|
}
|
|
124
143
|
return { tapOutputKey: key.subarray(0, 32), tapInternalKey: key.subarray(32), participantPubKeys };
|
|
125
144
|
}
|
|
126
|
-
exports.decodePsbtMusig2Participants = decodePsbtMusig2Participants;
|
|
127
145
|
/**
|
|
128
146
|
* Decodes proprietary key value data for musig2 nonce
|
|
129
147
|
* @param kv
|
|
@@ -142,7 +160,6 @@ function decodePsbtMusig2Nonce(kv) {
|
|
|
142
160
|
}
|
|
143
161
|
return { participantPubKey: key.subarray(0, 33), tapOutputKey: key.subarray(33), pubNonce: value };
|
|
144
162
|
}
|
|
145
|
-
exports.decodePsbtMusig2Nonce = decodePsbtMusig2Nonce;
|
|
146
163
|
/**
|
|
147
164
|
* Decodes proprietary key value data for musig2 partial sig
|
|
148
165
|
* @param kv
|
|
@@ -162,23 +179,18 @@ function decodePsbtMusig2PartialSig(kv) {
|
|
|
162
179
|
}
|
|
163
180
|
return { participantPubKey: key.subarray(0, 33), tapOutputKey: key.subarray(33), partialSig: value };
|
|
164
181
|
}
|
|
165
|
-
exports.decodePsbtMusig2PartialSig = decodePsbtMusig2PartialSig;
|
|
166
182
|
function createTapInternalKey(plainPubKeys) {
|
|
167
183
|
return Buffer.from(noble_ecc_1.musig.getXOnlyPubkey(noble_ecc_1.musig.keyAgg(plainPubKeys)));
|
|
168
184
|
}
|
|
169
|
-
exports.createTapInternalKey = createTapInternalKey;
|
|
170
185
|
function createTapOutputKey(internalPubKey, tapTreeRoot) {
|
|
171
186
|
return Buffer.from((0, taproot_1.tapTweakPubkey)(noble_ecc_1.ecc, (0, outputScripts_1.toXOnlyPublicKey)(internalPubKey), (0, outputScripts_1.checkTapMerkleRoot)(tapTreeRoot)).xOnlyPubkey);
|
|
172
187
|
}
|
|
173
|
-
exports.createTapOutputKey = createTapOutputKey;
|
|
174
188
|
function createAggregateNonce(pubNonces) {
|
|
175
189
|
return Buffer.from(noble_ecc_1.musig.nonceAgg(pubNonces));
|
|
176
190
|
}
|
|
177
|
-
exports.createAggregateNonce = createAggregateNonce;
|
|
178
191
|
function createTapTweak(tapInternalKey, tapMerkleRoot) {
|
|
179
192
|
return Buffer.from((0, taproot_1.calculateTapTweak)((0, outputScripts_1.checkXOnlyPublicKey)(tapInternalKey), (0, outputScripts_1.checkTapMerkleRoot)(tapMerkleRoot)));
|
|
180
193
|
}
|
|
181
|
-
exports.createTapTweak = createTapTweak;
|
|
182
194
|
function startMusig2SigningSession(aggNonce, hash, publicKeys, tweak) {
|
|
183
195
|
return noble_ecc_1.musig.startSigningSession(aggNonce, hash, publicKeys, { tweak, xOnly: true });
|
|
184
196
|
}
|
|
@@ -190,16 +202,13 @@ function musig2PartialSign(privateKey, publicNonce, sessionKey, nonceStore) {
|
|
|
190
202
|
sessionKey,
|
|
191
203
|
}));
|
|
192
204
|
}
|
|
193
|
-
exports.musig2PartialSign = musig2PartialSign;
|
|
194
205
|
function musig2PartialSigVerify(sig, publicKey, publicNonce, sessionKey) {
|
|
195
206
|
(0, outputScripts_1.checkTxHash)(Buffer.from(sessionKey.msg));
|
|
196
207
|
return noble_ecc_1.musig.partialVerify({ sig, publicKey, publicNonce, sessionKey });
|
|
197
208
|
}
|
|
198
|
-
exports.musig2PartialSigVerify = musig2PartialSigVerify;
|
|
199
209
|
function musig2AggregateSigs(sigs, sessionKey) {
|
|
200
210
|
return Buffer.from(noble_ecc_1.musig.signAgg(sigs, sessionKey));
|
|
201
211
|
}
|
|
202
|
-
exports.musig2AggregateSigs = musig2AggregateSigs;
|
|
203
212
|
/** @return session key that can be used to reference the session later */
|
|
204
213
|
function createMusig2SigningSession(sessionArgs) {
|
|
205
214
|
(0, outputScripts_1.checkTxHash)(sessionArgs.txHash);
|
|
@@ -207,7 +216,6 @@ function createMusig2SigningSession(sessionArgs) {
|
|
|
207
216
|
const tweak = createTapTweak(sessionArgs.internalPubKey, sessionArgs.tapTreeRoot);
|
|
208
217
|
return startMusig2SigningSession(aggNonce, sessionArgs.txHash, sessionArgs.pubKeys, tweak);
|
|
209
218
|
}
|
|
210
|
-
exports.createMusig2SigningSession = createMusig2SigningSession;
|
|
211
219
|
/**
|
|
212
220
|
* @returns psbt proprietary key for musig2 participant key value data
|
|
213
221
|
* If no key value exists, undefined is returned.
|
|
@@ -225,7 +233,6 @@ function parsePsbtMusig2Participants(input) {
|
|
|
225
233
|
}
|
|
226
234
|
return decodePsbtMusig2Participants(participantsKeyVals[0]);
|
|
227
235
|
}
|
|
228
|
-
exports.parsePsbtMusig2Participants = parsePsbtMusig2Participants;
|
|
229
236
|
/**
|
|
230
237
|
* @returns psbt proprietary key for musig2 public nonce key value data
|
|
231
238
|
* If no key value exists, undefined is returned.
|
|
@@ -243,7 +250,6 @@ function parsePsbtMusig2Nonces(input) {
|
|
|
243
250
|
}
|
|
244
251
|
return nonceKeyVals.map((kv) => decodePsbtMusig2Nonce(kv));
|
|
245
252
|
}
|
|
246
|
-
exports.parsePsbtMusig2Nonces = parsePsbtMusig2Nonces;
|
|
247
253
|
/**
|
|
248
254
|
* @returns psbt proprietary key for musig2 partial sig key value data
|
|
249
255
|
* If no key value exists, undefined is returned.
|
|
@@ -261,7 +267,6 @@ function parsePsbtMusig2PartialSigs(input) {
|
|
|
261
267
|
}
|
|
262
268
|
return sigKeyVals.map((kv) => decodePsbtMusig2PartialSig(kv));
|
|
263
269
|
}
|
|
264
|
-
exports.parsePsbtMusig2PartialSigs = parsePsbtMusig2PartialSigs;
|
|
265
270
|
/**
|
|
266
271
|
* Assert musig2 participant key value data with tapInternalKey and tapMerkleRoot.
|
|
267
272
|
* <tapOutputKey><tapInputKey> => <participantKey1><participantKey2>
|
|
@@ -284,7 +289,6 @@ function assertPsbtMusig2Participants(participantKeyValData, tapInternalKey, tap
|
|
|
284
289
|
throw new Error('tapInternalKey and aggregated participant pub keys does not match');
|
|
285
290
|
}
|
|
286
291
|
}
|
|
287
|
-
exports.assertPsbtMusig2Participants = assertPsbtMusig2Participants;
|
|
288
292
|
/**
|
|
289
293
|
* Assert musig2 public nonce key value data with participant key value data
|
|
290
294
|
* (refer assertPsbtMusig2ParticipantsKeyValData).
|
|
@@ -311,7 +315,6 @@ function assertPsbtMusig2Nonces(noncesKeyValData, participantKeyValData) {
|
|
|
311
315
|
}
|
|
312
316
|
});
|
|
313
317
|
}
|
|
314
|
-
exports.assertPsbtMusig2Nonces = assertPsbtMusig2Nonces;
|
|
315
318
|
/**
|
|
316
319
|
* @returns Input object but sig hash type data is taken out from partialSig field.
|
|
317
320
|
* If sig hash type is not common for all sigs, error out, otherwise returns the modified object and single hash type.
|
|
@@ -332,7 +335,6 @@ function getSigHashTypeFromSigs(partialSigs) {
|
|
|
332
335
|
}
|
|
333
336
|
return { partialSigs: pSigsWithHashType.map(({ pSig }) => pSig), sigHashType };
|
|
334
337
|
}
|
|
335
|
-
exports.getSigHashTypeFromSigs = getSigHashTypeFromSigs;
|
|
336
338
|
function createMusig2DeterministicNonce(params) {
|
|
337
339
|
return Buffer.from(noble_ecc_1.musig.deterministicNonceGen({
|
|
338
340
|
secretKey: params.privateKey,
|
|
@@ -342,7 +344,6 @@ function createMusig2DeterministicNonce(params) {
|
|
|
342
344
|
msg: params.hash,
|
|
343
345
|
}).publicNonce);
|
|
344
346
|
}
|
|
345
|
-
exports.createMusig2DeterministicNonce = createMusig2DeterministicNonce;
|
|
346
347
|
function musig2DeterministicSign(params) {
|
|
347
348
|
const { sig, sessionKey, publicNonce } = noble_ecc_1.musig.deterministicSign({
|
|
348
349
|
secretKey: params.privateKey,
|
|
@@ -353,5 +354,4 @@ function musig2DeterministicSign(params) {
|
|
|
353
354
|
});
|
|
354
355
|
return { sig: Buffer.from(sig), sessionKey, publicNonce: Buffer.from(publicNonce) };
|
|
355
356
|
}
|
|
356
|
-
exports.musig2DeterministicSign = musig2DeterministicSign;
|
|
357
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXVzaWcyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL011c2lnMi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxtREFNeUI7QUFDekIsNENBQTBDO0FBRTFDLHdDQUErRDtBQUMvRCxvQ0FBdUM7QUFFdkMseUNBS29CO0FBc0NwQjs7O0dBR0c7QUFDSCxNQUFhLGdCQUFnQjtJQUE3QjtRQUNVLFdBQU0sR0FBaUIsRUFBRSxDQUFDO0lBd0NwQyxDQUFDO0lBdENDOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxLQUFpQjtRQUN0QixLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDM0IsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDaEMsT0FBTyxDQUFDLENBQUM7YUFDVjtTQUNGO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILGlCQUFpQixDQUNmLFVBQXNCLEVBQ3RCLFNBQXFCLEVBQ3JCLGNBQTBCLEVBQzFCLE1BQWtCLEVBQ2xCLFNBQWtCO1FBRWxCLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLEVBQUU7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsTUFBTSxFQUFFLENBQUMsQ0FBQztTQUNsRDtRQUNELE1BQU0sR0FBRyxHQUFHLGlCQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUN6RyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7Q0FDRjtBQXpDRCw0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QUFLLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUMzRixHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUk7S0FDakIsQ0FBQyxDQUFDLFdBQVcsQ0FDZixDQUFDO0FBQ0osQ0FBQztBQVZELHdFQVVDO0FBRUQsU0FBZ0IsdUJBQXVCLENBQUMsTUFBcUM7SUFLM0UsTUFBTSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEdBQUcsaUJBQUssQ0FBQyxpQkFBaUIsQ0FBQztRQUMvRCxTQUFTLEVBQUUsTUFBTSxDQUFDLFVBQVU7UUFDNUIsYUFBYSxFQUFFLGlCQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xELFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVTtRQUM3QixNQUFNLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxjQUFjLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzNGLEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSTtLQUNqQixDQUFDLENBQUM7SUFDSCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7QUFDdEYsQ0FBQztBQWJELDBEQWFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2Vzc2lvbktleSB9IGZyb20gJ0BicmFuZG9uYmxhY2svbXVzaWcnO1xuXG5pbXBvcnQge1xuICBjaGVja1BsYWluUHVibGljS2V5LFxuICBjaGVja1RhcE1lcmtsZVJvb3QsXG4gIGNoZWNrVHhIYXNoLFxuICBjaGVja1hPbmx5UHVibGljS2V5LFxuICB0b1hPbmx5UHVibGljS2V5LFxufSBmcm9tICcuL291dHB1dFNjcmlwdHMnO1xuaW1wb3J0IHsgZWNjLCBtdXNpZyB9IGZyb20gJy4uL25vYmxlX2VjYyc7XG5pbXBvcnQgeyBUdXBsZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgY2FsY3VsYXRlVGFwVHdlYWssIHRhcFR3ZWFrUHVia2V5IH0gZnJvbSAnLi4vdGFwcm9vdCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4uL2luZGV4JztcbmltcG9ydCB7IFBzYnRJbnB1dCB9IGZyb20gJ2JpcDE3NC9zcmMvbGliL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtcbiAgZ2V0UHNidElucHV0UHJvcHJpZXRhcnlLZXlWYWxzLFxuICBQcm9wcmlldGFyeUtleVN1YnR5cGUsXG4gIFByb3ByaWV0YXJ5S2V5VmFsdWUsXG4gIFBTQlRfUFJPUFJJRVRBUllfSURFTlRJRklFUixcbn0gZnJvbSAnLi9Qc2J0VXRpbCc7XG5cbi8qKlxuICogIFBhcnRpY2lwYW50IGtleSB2YWx1ZSBvYmplY3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHNidE11c2lnMlBhcnRpY2lwYW50cyB7XG4gIHRhcE91dHB1dEtleTogQnVmZmVyO1xuICB0YXBJbnRlcm5hbEtleTogQnVmZmVyO1xuICBwYXJ0aWNpcGFudFB1YktleXM6IFR1cGxlPEJ1ZmZlcj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHNidE11c2lnMkRldGVybWluaXN0aWNQYXJhbXMge1xuICBwcml2YXRlS2V5OiBCdWZmZXI7XG4gIG90aGVyTm9uY2U6IEJ1ZmZlcjtcbiAgcHVibGljS2V5czogVHVwbGU8QnVmZmVyPjtcbiAgaW50ZXJuYWxQdWJLZXk6IEJ1ZmZlcjtcbiAgdGFwVHJlZVJvb3Q6IEJ1ZmZlcjtcbiAgaGFzaDogQnVmZmVyO1xufVxuXG4vKipcbiAqICBOb25jZSBrZXkgdmFsdWUgb2JqZWN0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBzYnRNdXNpZzJQdWJOb25jZSB7XG4gIHBhcnRpY2lwYW50UHViS2V5OiBCdWZmZXI7XG4gIHRhcE91dHB1dEtleTogQnVmZmVyO1xuICBwdWJOb25jZTogQnVmZmVyO1xufVxuXG4vKipcbiAqICBQYXJ0aWFsIHNpZ25hdHVyZSBrZXkgdmFsdWUgb2JqZWN0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBzYnRNdXNpZzJQYXJ0aWFsU2lnIHtcbiAgcGFydGljaXBhbnRQdWJLZXk6IEJ1ZmZlcjtcbiAgdGFwT3V0cHV0S2V5OiBCdWZmZXI7XG4gIHBhcnRpYWxTaWc6IEJ1ZmZlcjtcbn1cblxuLyoqXG4gKiBCZWNhdXNlIG11c2lnIHVzZXMgcmVmZXJlbmNlLWVxdWFsIGJ1ZmZlcnMgdG8gY2FjaGUgbm9uY2VzLCB3ZSB3cmFwIGl0IGhlcmUgdG8gYWxsb3cgdXNpbmdcbiAqIG5vbmNlcyB0aGF0IGFyZSBieXRlLWVxdWFsIGJ1dCBub3QgcmVmZXJlbmNlLWVxdWFsLlxuICovXG5leHBvcnQgY2xhc3MgTXVzaWcyTm9uY2VTdG9yZSB7XG4gIHByaXZhdGUgbm9uY2VzOiBVaW50OEFycmF5W10gPSBbXTtcblxuICAvKipcbiAgICogR2V0IG9yaWdpbmFsIEJ1ZmZlciBpbnN0YW5jZSBmb3Igbm9uY2UgKHdoaWNoIG1heSBiZSBhIGNvcHkpLlxuICAgKiBAcmV0dXJuIGJ5dGUtZXF1YWwgYnVmZmVyIHRoYXQgaXMgcmVmZXJlbmNlLWVxdWFsIHRvIHdoYXQgd2FzIHN0b3JlZCBlYXJsaWVyIGluIGNyZWF0ZU11c2lnMk5vbmNlXG4gICAqL1xuICBnZXRSZWYobm9uY2U6IFVpbnQ4QXJyYXkpOiBVaW50OEFycmF5IHtcbiAgICBmb3IgKGNvbnN0IGIgb2YgdGhpcy5ub25jZXMpIHtcbiAgICAgIGlmIChCdWZmZXIuZnJvbShiKS5lcXVhbHMobm9uY2UpKSB7XG4gICAgICAgIHJldHVybiBiO1xuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYHVua25vd24gbm9uY2VgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIG11c2lnMiBub25jZSBhbmQgc3RvcmVzIGJ1ZmZlciByZWZlcmVuY2UuXG4gICAqIHRhcEludGVybmFsa2V5LCB0YXBNZXJrbGVSb290LCB0YXBCaXAzMkRlcml2YXRpb24gZm9yIHJvb3RXYWxsZXRLZXkgYXJlIHJlcXVpcmVkIHBlciBwMnRyTXVzaWcyIGtleSBwYXRoIGlucHV0LlxuICAgKiBBbHNvIHBhcnRpY2lwYW50IGtleXMgYXJlIHJlcXVpcmVkIGZyb20gcHNidCBwcm9wcmlldGFyeSBrZXkgdmFsdWVzLlxuICAgKiBSZWY6IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL3NhbmtldDE3MjkvNGI1MjVjNjA0OWY0ZDllMDM0ZDI3MzY4YzQ5ZjI4YTZcbiAgICogQHBhcmFtIHByaXZhdGVLZXkgLSBzaWduZXIgcHJpdmF0ZSBrZXlcbiAgICogQHBhcmFtIHB1YmxpY0tleSAtIHNpZ25lciB4eSBwdWJsaWMga2V5XG4gICAqIEBwYXJhbSB4T25seVB1YmxpY0tleSAtIHR3ZWFrZWQgYWdncmVnYXRlZCBrZXkgKHRhcE91dHB1dEtleSlcbiAgICogQHBhcmFtIHNlc3Npb25JZCBBZGRpdGlvbmFsIGVudHJvcHkuIElmIHByb3ZpZGVkIGl0IG11c3QgZWl0aGVyIGJlIGEgY291bnRlciB1bmlxdWUgdG8gdGhpcyBzZWNyZXQga2V5LFxuICAgKiAoY29udmVydGVkIHRvIGFuIGFycmF5IG9mIDMyIGJ5dGVzKSwgb3IgMzIgdW5pZm9ybWx5IHJhbmRvbSBieXRlcy5cbiAgICovXG4gIGNyZWF0ZU11c2lnMk5vbmNlKFxuICAgIHByaXZhdGVLZXk6IFVpbnQ4QXJyYXksXG4gICAgcHVibGljS2V5OiBVaW50OEFycmF5LFxuICAgIHhPbmx5UHVibGljS2V5OiBVaW50OEFycmF5LFxuICAgIHR4SGFzaDogVWludDhBcnJheSxcbiAgICBzZXNzaW9uSWQ/OiBCdWZmZXJcbiAgKTogVWludDhBcnJheSB7XG4gICAgaWYgKHR4SGFzaC5sZW5ndGggIT0gMzIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB0eEhhc2ggc2l6ZSAke3R4SGFzaH1gKTtcbiAgICB9XG4gICAgY29uc3QgYnVmID0gbXVzaWcubm9uY2VHZW4oeyBzZWNyZXRLZXk6IHByaXZhdGVLZXksIHB1YmxpY0tleSwgeE9ubHlQdWJsaWNLZXksIG1zZzogdHhIYXNoLCBzZXNzaW9uSWQgfSk7XG4gICAgdGhpcy5ub25jZXMucHVzaChidWYpO1xuICAgIHJldHVybiBidWY7XG4gIH1cbn1cblxuLyoqXG4gKiBQc2J0IHByb3ByaWV0YXJ5IGtleSB2YWwgdXRpbCBmdW5jdGlvbiBmb3IgcGFydGljaXBhbnRzIHB1YiBrZXlzLiBTdWJUeXBlIGlzIDB4MDFcbiAqIFJlZjogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vc2Fua2V0MTcyOS80YjUyNWM2MDQ5ZjRkOWUwMzRkMjczNjhjNDlmMjhhNlxuICogQHJldHVybiB4LW9ubHkgdGFwT3V0cHV0S2V5fHx0YXBJbnRlcm5hbEtleSBhcyBzdWIga2V5ZGF0YSwgcGxhaW4gc2lnaW5pbmcgcGFydGljaXBhbnQga2V5cyBhcyB2YWx1ZWRhdGFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZVBzYnRNdXNpZzJQYXJ0aWNpcGFudHMocGFydGljaXBhbnRzOiBQc2J0TXVzaWcyUGFydGljaXBhbnRzKTogUHJvcHJpZXRhcnlLZXlWYWx1ZSB7XG4gIGNvbnN0IGtleWRhdGEgPSBbcGFydGljaXBhbnRzLnRhcE91dHB1dEtleSwgcGFydGljaXBhbnRzLnRhcEludGVybmFsS2V5XS5tYXAoKHB1YmtleSkgPT4gY2hlY2tYT25seVB1YmxpY0tleShwdWJrZXkpKTtcbiAgY29uc3QgdmFsdWUgPSBwYXJ0aWNpcGFudHMucGFydGljaXBhbnRQdWJLZXlzLm1hcCgocHVia2V5KSA9PiBjaGVja1BsYWluUHVibGljS2V5KHB1YmtleSkpO1xuICBjb25zdCBrZXkgPSB7XG4gICAgaWRlbnRpZmllcjogUFNCVF9QUk9QUklFVEFSWV9JREVOVElGSUVSLFxuICAgIHN1YnR5cGU6IFByb3ByaWV0YXJ5S2V5U3VidHlwZS5NVVNJRzJfUEFSVElDSVBBTlRfUFVCX0tFWVMsXG4gICAga2V5ZGF0YTogQnVmZmVyLmNvbmNhdChrZXlkYXRhKSxcbiAgfTtcbiAgcmV0dXJuIHsga2V5LCB2YWx1ZTogQnVmZmVyLmNvbmNhdCh2YWx1ZSkgfTtcbn1cblxuLyoqXG4gKiBQc2J0IHByb3ByaWV0YXJ5IGtleSB2YWwgdXRpbCBmdW5jdGlvbiBmb3IgcHViIG5vbmNlLiBTdWJUeXBlIGlzIDB4MDJcbiAqIFJlZjogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vc2Fua2V0MTcyOS80YjUyNWM2MDQ5ZjRkOWUwMzRkMjczNjhjNDlmMjhhNlxuICogQHJldHVybiBwbGFpbi1wYXJ0aWNpcGFudFB1YktleXx8eC1vbmx5LXRhcE91dHB1dEtleSBhcyBzdWIga2V5ZGF0YSwgNjYgYnl0ZXMgb2YgMiBwdWIgbm9uY2VzIGFzIHZhbHVlZGF0YVxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlUHNidE11c2lnMlB1Yk5vbmNlKG5vbmNlOiBQc2J0TXVzaWcyUHViTm9uY2UpOiBQcm9wcmlldGFyeUtleVZhbHVlIHtcbiAgaWYgKG5vbmNlLnB1Yk5vbmNlLmxlbmd0aCAhPT0gNjYpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcHViTm9uY2VzIGxlbmd0aCAke25vbmNlLnB1Yk5vbmNlLmxlbmd0aH1gKTtcbiAgfVxuICBjb25zdCBrZXlkYXRhID0gQnVmZmVyLmNvbmNhdChbXG4gICAgY2hlY2tQbGFpblB1YmxpY0tleShub25jZS5wYXJ0aWNpcGFudFB1YktleSksXG4gICAgY2hlY2tYT25seVB1YmxpY0tleShub25jZS50YXBPdXRwdXRLZXkpLFxuICBdKTtcbiAgY29uc3Qga2V5ID0ge1xuICAgIGlkZW50aWZpZXI6IFBTQlRfUFJPUFJJRVRBUllfSURFTlRJRklFUixcbiAgICBzdWJ0eXBlOiBQcm9wcmlldGFyeUtleVN1YnR5cGUuTVVTSUcyX1BVQl9OT05DRSxcbiAgICBrZXlkYXRhLFxuICB9O1xuICByZXR1cm4geyBrZXksIHZhbHVlOiBub25jZS5wdWJOb25jZSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlUHNidE11c2lnMlBhcnRpYWxTaWcocGFydGlhbFNpZzogUHNidE11c2lnMlBhcnRpYWxTaWcpOiBQcm9wcmlldGFyeUtleVZhbHVlIHtcbiAgaWYgKHBhcnRpYWxTaWcucGFydGlhbFNpZy5sZW5ndGggIT09IDMyICYmIHBhcnRpYWxTaWcucGFydGlhbFNpZy5sZW5ndGggIT09IDMzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHBhcnRpYWxTaWcgbGVuZ3RoICR7cGFydGlhbFNpZy5wYXJ0aWFsU2lnLmxlbmd0aH1gKTtcbiAgfVxuICBjb25zdCBrZXlkYXRhID0gQnVmZmVyLmNvbmNhdChbXG4gICAgY2hlY2tQbGFpblB1YmxpY0tleShwYXJ0aWFsU2lnLnBhcnRpY2lwYW50UHViS2V5KSxcbiAgICBjaGVja1hPbmx5UHVibGljS2V5KHBhcnRpYWxTaWcudGFwT3V0cHV0S2V5KSxcbiAgXSk7XG4gIGNvbnN0IGtleSA9IHtcbiAgICBpZGVudGlmaWVyOiBQU0JUX1BST1BSSUVUQVJZX0lERU5USUZJRVIsXG4gICAgc3VidHlwZTogUHJvcHJpZXRhcnlLZXlTdWJ0eXBlLk1VU0lHMl9QQVJUSUFMX1NJRyxcbiAgICBrZXlkYXRhLFxuICB9O1xuICByZXR1cm4geyBrZXksIHZhbHVlOiBwYXJ0aWFsU2lnLnBhcnRpYWxTaWcgfTtcbn1cblxuLyoqXG4gKiBEZWNvZGVzIHByb3ByaWV0YXJ5IGtleSB2YWx1ZSBkYXRhIGZvciBwYXJ0aWNpcGFudCBwdWIga2V5c1xuICogQHBhcmFtIGt2XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVQc2J0TXVzaWcyUGFydGljaXBhbnRzKGt2OiBQcm9wcmlldGFyeUtleVZhbHVlKTogUHNidE11c2lnMlBhcnRpY2lwYW50cyB7XG4gIGlmIChcbiAgICBrdi5rZXkuaWRlbnRpZmllciAhPT0gUFNCVF9QUk9QUklFVEFSWV9JREVOVElGSUVSIHx8XG4gICAga3Yua2V5LnN1YnR5cGUgIT09IFByb3ByaWV0YXJ5S2V5U3VidHlwZS5NVVNJRzJfUEFSVElDSVBBTlRfUFVCX0tFWVNcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGlkZW50aWZpZXIgJHtrdi5rZXkuaWRlbnRpZmllcn0gb3Igc3VidHlwZSAke2t2LmtleS5zdWJ0eXBlfSBmb3IgcGFydGljaXBhbnRzIHB1YiBrZXlzYCk7XG4gIH1cblxuICBjb25zdCBrZXkgPSBrdi5rZXkua2V5ZGF0YTtcbiAgaWYgKGtleS5sZW5ndGggIT09IDY0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGtleWRhdGEgc2l6ZSAke2tleS5sZW5ndGh9IGZvciBwYXJ0aWNpcGFudCBwdWIga2V5c2ApO1xuICB9XG5cbiAgY29uc3QgdmFsdWUgPSBrdi52YWx1ZTtcbiAgaWYgKHZhbHVlLmxlbmd0aCAhPT0gNjYpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdmFsdWVkYXRhIHNpemUgJHt2YWx1ZS5sZW5ndGh9IGZvciBwYXJ0aWNpcGFudCBwdWIga2V5c2ApO1xuICB9XG4gIGNvbnN0IHBhcnRpY2lwYW50UHViS2V5czogVHVwbGU8QnVmZmVyPiA9IFt2YWx1ZS5zdWJhcnJheSgwLCAzMyksIHZhbHVlLnN1YmFycmF5KDMzKV07XG4gIGlmIChwYXJ0aWNpcGFudFB1YktleXNbMF0uZXF1YWxzKHBhcnRpY2lwYW50UHViS2V5c1sxXSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYER1cGxpY2F0ZSBwYXJ0aWNpcGFudCBwdWIga2V5cyBmb3VuZGApO1xuICB9XG5cbiAgcmV0dXJuIHsgdGFwT3V0cHV0S2V5OiBrZXkuc3ViYXJyYXkoMCwgMzIpLCB0YXBJbnRlcm5hbEtleToga2V5LnN1YmFycmF5KDMyKSwgcGFydGljaXBhbnRQdWJLZXlzIH07XG59XG5cbi8qKlxuICogRGVjb2RlcyBwcm9wcmlldGFyeSBrZXkgdmFsdWUgZGF0YSBmb3IgbXVzaWcyIG5vbmNlXG4gKiBAcGFyYW0ga3ZcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZVBzYnRNdXNpZzJOb25jZShrdjogUHJvcHJpZXRhcnlLZXlWYWx1ZSk6IFBzYnRNdXNpZzJQdWJOb25jZSB7XG4gIGlmIChrdi5rZXkuaWRlbnRpZmllciAhPT0gUFNCVF9QUk9QUklFVEFSWV9JREVOVElGSUVSIHx8IGt2LmtleS5zdWJ0eXBlICE9PSBQcm9wcmlldGFyeUtleVN1YnR5cGUuTVVTSUcyX1BVQl9OT05DRSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBpZGVudGlmaWVyICR7a3Yua2V5LmlkZW50aWZpZXJ9IG9yIHN1YnR5cGUgJHtrdi5rZXkuc3VidHlwZX0gZm9yIG5vbmNlYCk7XG4gIH1cblxuICBjb25zdCBrZXkgPSBrdi5rZXkua2V5ZGF0YTtcbiAgaWYgKGtleS5sZW5ndGggIT09IDY1KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGtleWRhdGEgc2l6ZSAke2tleS5sZW5ndGh9IGZvciBub25jZWApO1xuICB9XG5cbiAgY29uc3QgdmFsdWUgPSBrdi52YWx1ZTtcbiAgaWYgKHZhbHVlLmxlbmd0aCAhPT0gNjYpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdmFsdWVkYXRhIHNpemUgJHt2YWx1ZS5sZW5ndGh9IGZvciBub25jZWApO1xuICB9XG5cbiAgcmV0dXJuIHsgcGFydGljaXBhbnRQdWJLZXk6IGtleS5zdWJhcnJheSgwLCAzMyksIHRhcE91dHB1dEtleToga2V5LnN1YmFycmF5KDMzKSwgcHViTm9uY2U6IHZhbHVlIH07XG59XG5cbi8qKlxuICogRGVjb2RlcyBwcm9wcmlldGFyeSBrZXkgdmFsdWUgZGF0YSBmb3IgbXVzaWcyIHBhcnRpYWwgc2lnXG4gKiBAcGFyYW0ga3ZcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZVBzYnRNdXNpZzJQYXJ0aWFsU2lnKGt2OiBQcm9wcmlldGFyeUtleVZhbHVlKTogUHNidE11c2lnMlBhcnRpYWxTaWcge1xuICBpZiAoXG4gICAga3Yua2V5LmlkZW50aWZpZXIgIT09IFBTQlRfUFJPUFJJRVRBUllfSURFTlRJRklFUiB8fFxuICAgIGt2LmtleS5zdWJ0eXBlICE9PSBQcm9wcmlldGFyeUtleVN1YnR5cGUuTVVTSUcyX1BBUlRJQUxfU0lHXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBpZGVudGlmaWVyICR7a3Yua2V5LmlkZW50aWZpZXJ9IG9yIHN1YnR5cGUgJHtrdi5rZXkuc3VidHlwZX0gZm9yIHBhcnRpYWwgc2lnYCk7XG4gIH1cblxuICBjb25zdCBrZXkgPSBrdi5rZXkua2V5ZGF0YTtcbiAgaWYgKGtleS5sZW5ndGggIT09IDY1KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGtleWRhdGEgc2l6ZSAke2tleS5sZW5ndGh9IGZvciBwYXJ0aWFsIHNpZ2ApO1xuICB9XG5cbiAgY29uc3QgdmFsdWUgPSBrdi52YWx1ZTtcbiAgaWYgKHZhbHVlLmxlbmd0aCAhPT0gMzIgJiYgdmFsdWUubGVuZ3RoICE9PSAzMykge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB2YWx1ZWRhdGEgc2l6ZSAke3ZhbHVlLmxlbmd0aH0gZm9yIHBhcnRpYWwgc2lnYCk7XG4gIH1cblxuICByZXR1cm4geyBwYXJ0aWNpcGFudFB1YktleToga2V5LnN1YmFycmF5KDAsIDMzKSwgdGFwT3V0cHV0S2V5OiBrZXkuc3ViYXJyYXkoMzMpLCBwYXJ0aWFsU2lnOiB2YWx1ZSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVGFwSW50ZXJuYWxLZXkocGxhaW5QdWJLZXlzOiBCdWZmZXJbXSk6IEJ1ZmZlciB7XG4gIHJldHVybiBCdWZmZXIuZnJvbShtdXNpZy5nZXRYT25seVB1YmtleShtdXNpZy5rZXlBZ2cocGxhaW5QdWJLZXlzKSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVGFwT3V0cHV0S2V5KGludGVybmFsUHViS2V5OiBCdWZmZXIsIHRhcFRyZWVSb290OiBCdWZmZXIpOiBCdWZmZXIge1xuICByZXR1cm4gQnVmZmVyLmZyb20oXG4gICAgdGFwVHdlYWtQdWJrZXkoZWNjLCB0b1hPbmx5UHVibGljS2V5KGludGVybmFsUHViS2V5KSwgY2hlY2tUYXBNZXJrbGVSb290KHRhcFRyZWVSb290KSkueE9ubHlQdWJrZXlcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFnZ3JlZ2F0ZU5vbmNlKHB1Yk5vbmNlczogVHVwbGU8QnVmZmVyPik6IEJ1ZmZlciB7XG4gIHJldHVybiBCdWZmZXIuZnJvbShtdXNpZy5ub25jZUFnZyhwdWJOb25jZXMpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRhcFR3ZWFrKHRhcEludGVybmFsS2V5OiBCdWZmZXIsIHRhcE1lcmtsZVJvb3Q6IEJ1ZmZlcik6IEJ1ZmZlciB7XG4gIHJldHVybiBCdWZmZXIuZnJvbShjYWxjdWxhdGVUYXBUd2VhayhjaGVja1hPbmx5UHVibGljS2V5KHRhcEludGVybmFsS2V5KSwgY2hlY2tUYXBNZXJrbGVSb290KHRhcE1lcmtsZVJvb3QpKSk7XG59XG5cbmZ1bmN0aW9uIHN0YXJ0TXVzaWcyU2lnbmluZ1Nlc3Npb24oXG4gIGFnZ05vbmNlOiBCdWZmZXIsXG4gIGhhc2g6IEJ1ZmZlcixcbiAgcHVibGljS2V5czogVHVwbGU8QnVmZmVyPixcbiAgdHdlYWs6IEJ1ZmZlclxuKTogU2Vzc2lvbktleSB7XG4gIHJldHVybiBtdXNpZy5zdGFydFNpZ25pbmdTZXNzaW9uKGFnZ05vbmNlLCBoYXNoLCBwdWJsaWNLZXlzLCB7IHR3ZWFrLCB4T25seTogdHJ1ZSB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG11c2lnMlBhcnRpYWxTaWduKFxuICBwcml2YXRlS2V5OiBCdWZmZXIsXG4gIHB1YmxpY05vbmNlOiBVaW50OEFycmF5LFxuICBzZXNzaW9uS2V5OiBTZXNzaW9uS2V5LFxuICBub25jZVN0b3JlOiBNdXNpZzJOb25jZVN0b3JlXG4pOiBCdWZmZXIge1xuICBjaGVja1R4SGFzaChCdWZmZXIuZnJvbShzZXNzaW9uS2V5Lm1zZykpO1xuICByZXR1cm4gQnVmZmVyLmZyb20oXG4gICAgbXVzaWcucGFydGlhbFNpZ24oe1xuICAgICAgc2VjcmV0S2V5OiBwcml2YXRlS2V5LFxuICAgICAgcHVibGljTm9uY2U6IG5vbmNlU3RvcmUuZ2V0UmVmKHB1YmxpY05vbmNlKSxcbiAgICAgIHNlc3Npb25LZXksXG4gICAgfSlcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG11c2lnMlBhcnRpYWxTaWdWZXJpZnkoXG4gIHNpZzogQnVmZmVyLFxuICBwdWJsaWNLZXk6IEJ1ZmZlcixcbiAgcHVibGljTm9uY2U6IEJ1ZmZlcixcbiAgc2Vzc2lvbktleTogU2Vzc2lvbktleVxuKTogYm9vbGVhbiB7XG4gIGNoZWNrVHhIYXNoKEJ1ZmZlci5mcm9tKHNlc3Npb25LZXkubXNnKSk7XG4gIHJldHVybiBtdXNpZy5wYXJ0aWFsVmVyaWZ5KHsgc2lnLCBwdWJsaWNLZXksIHB1YmxpY05vbmNlLCBzZXNzaW9uS2V5IH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbXVzaWcyQWdncmVnYXRlU2lncyhzaWdzOiBCdWZmZXJbXSwgc2Vzc2lvbktleTogU2Vzc2lvbktleSk6IEJ1ZmZlciB7XG4gIHJldHVybiBCdWZmZXIuZnJvbShtdXNpZy5zaWduQWdnKHNpZ3MsIHNlc3Npb25LZXkpKTtcbn1cblxuLyoqIEByZXR1cm4gc2Vzc2lvbiBrZXkgdGhhdCBjYW4gYmUgdXNlZCB0byByZWZlcmVuY2UgdGhlIHNlc3Npb24gbGF0ZXIgKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNdXNpZzJTaWduaW5nU2Vzc2lvbihzZXNzaW9uQXJnczoge1xuICBwdWJOb25jZXM6IFR1cGxlPEJ1ZmZlcj47XG4gIHR4SGFzaDogQnVmZmVyO1xuICBwdWJLZXlzOiBUdXBsZTxCdWZmZXI+O1xuICBpbnRlcm5hbFB1YktleTogQnVmZmVyO1xuICB0YXBUcmVlUm9vdDogQnVmZmVyO1xufSk6IFNlc3Npb25LZXkge1xuICBjaGVja1R4SGFzaChzZXNzaW9uQXJncy50eEhhc2gpO1xuICBjb25zdCBhZ2dOb25jZSA9IGNyZWF0ZUFnZ3JlZ2F0ZU5vbmNlKHNlc3Npb25BcmdzLnB1Yk5vbmNlcyk7XG4gIGNvbnN0IHR3ZWFrID0gY3JlYXRlVGFwVHdlYWsoc2Vzc2lvbkFyZ3MuaW50ZXJuYWxQdWJLZXksIHNlc3Npb25BcmdzLnRhcFRyZWVSb290KTtcbiAgcmV0dXJuIHN0YXJ0TXVzaWcyU2lnbmluZ1Nlc3Npb24oYWdnTm9uY2UsIHNlc3Npb25BcmdzLnR4SGFzaCwgc2Vzc2lvbkFyZ3MucHViS2V5cywgdHdlYWspO1xufVxuXG4vKipcbiAqIEByZXR1cm5zIHBzYnQgcHJvcHJpZXRhcnkga2V5IGZvciBtdXNpZzIgcGFydGljaXBhbnQga2V5IHZhbHVlIGRhdGFcbiAqIElmIG5vIGtleSB2YWx1ZSBleGlzdHMsIHVuZGVmaW5lZCBpcyByZXR1cm5lZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUHNidE11c2lnMlBhcnRpY2lwYW50cyhpbnB1dDogUHNidElucHV0KTogUHNidE11c2lnMlBhcnRpY2lwYW50cyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHBhcnRpY2lwYW50c0tleVZhbHMgPSBnZXRQc2J0SW5wdXRQcm9wcmlldGFyeUtleVZhbHMoaW5wdXQsIHtcbiAgICBpZGVudGlmaWVyOiBQU0JUX1BST1BSSUVUQVJZX0lERU5USUZJRVIsXG4gICAgc3VidHlwZTogUHJvcHJpZXRhcnlLZXlTdWJ0eXBlLk1VU0lHMl9QQVJUSUNJUEFOVF9QVUJfS0VZUyxcbiAgfSk7XG5cbiAgaWYgKCFwYXJ0aWNpcGFudHNLZXlWYWxzLmxlbmd0aCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBpZiAocGFydGljaXBhbnRzS2V5VmFscy5sZW5ndGggPiAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGb3VuZCAke3BhcnRpY2lwYW50c0tleVZhbHMubGVuZ3RofSBtYXRjaGluZyBwYXJ0aWNpcGFudCBrZXkgdmFsdWUgaW5zdGVhZCBvZiAxYCk7XG4gIH1cblxuICByZXR1cm4gZGVjb2RlUHNidE11c2lnMlBhcnRpY2lwYW50cyhwYXJ0aWNpcGFudHNLZXlWYWxzWzBdKTtcbn1cblxuLyoqXG4gKiBAcmV0dXJucyBwc2J0IHByb3ByaWV0YXJ5IGtleSBmb3IgbXVzaWcyIHB1YmxpYyBub25jZSBrZXkgdmFsdWUgZGF0YVxuICogSWYgbm8ga2V5IHZhbHVlIGV4aXN0cywgdW5kZWZpbmVkIGlzIHJldHVybmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VQc2J0TXVzaWcyTm9uY2VzKGlucHV0OiBQc2J0SW5wdXQpOiBQc2J0TXVzaWcyUHViTm9uY2VbXSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IG5vbmNlS2V5VmFscyA9IGdldFBzYnRJbnB1dFByb3ByaWV0YXJ5S2V5VmFscyhpbnB1dCwge1xuICAgIGlkZW50aWZpZXI6IFBTQlRfUFJPUFJJRVRBUllfSURFTlRJRklFUixcbiAgICBzdWJ0eXBlOiBQcm9wcmlldGFyeUtleVN1YnR5cGUuTVVTSUcyX1BVQl9OT05DRSxcbiAgfSk7XG5cbiAgaWYgKCFub25jZUtleVZhbHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChub25jZUtleVZhbHMubGVuZ3RoID4gMikge1xuICAgIHRocm93IG5ldyBFcnJvcihgRm91bmQgJHtub25jZUtleVZhbHMubGVuZ3RofSBtYXRjaGluZyBub25jZSBrZXkgdmFsdWUgaW5zdGVhZCBvZiAxIG9yIDJgKTtcbiAgfVxuXG4gIHJldHVybiBub25jZUtleVZhbHMubWFwKChrdikgPT4gZGVjb2RlUHNidE11c2lnMk5vbmNlKGt2KSk7XG59XG5cbi8qKlxuICogQHJldHVybnMgcHNidCBwcm9wcmlldGFyeSBrZXkgZm9yIG11c2lnMiBwYXJ0aWFsIHNpZyBrZXkgdmFsdWUgZGF0YVxuICogSWYgbm8ga2V5IHZhbHVlIGV4aXN0cywgdW5kZWZpbmVkIGlzIHJldHVybmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VQc2J0TXVzaWcyUGFydGlhbFNpZ3MoaW5wdXQ6IFBzYnRJbnB1dCk6IFBzYnRNdXNpZzJQYXJ0aWFsU2lnW10gfCB1bmRlZmluZWQge1xuICBjb25zdCBzaWdLZXlWYWxzID0gZ2V0UHNidElucHV0UHJvcHJpZXRhcnlLZXlWYWxzKGlucHV0LCB7XG4gICAgaWRlbnRpZmllcjogUFNCVF9QUk9QUklFVEFSWV9JREVOVElGSUVSLFxuICAgIHN1YnR5cGU6IFByb3ByaWV0YXJ5S2V5U3VidHlwZS5NVVNJRzJfUEFSVElBTF9TSUcsXG4gIH0pO1xuXG4gIGlmICghc2lnS2V5VmFscy5sZW5ndGgpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKHNpZ0tleVZhbHMubGVuZ3RoID4gMikge1xuICAgIHRocm93IG5ldyBFcnJvcihgRm91bmQgJHtzaWdLZXlWYWxzLmxlbmd0aH0gbWF0Y2hpbmcgcGFydGlhbCBzaWduYXR1cmUga2V5IHZhbHVlIGluc3RlYWQgb2YgMSBvciAyYCk7XG4gIH1cblxuICByZXR1cm4gc2lnS2V5VmFscy5tYXAoKGt2KSA9PiBkZWNvZGVQc2J0TXVzaWcyUGFydGlhbFNpZyhrdikpO1xufVxuXG4vKipcbiAqIEFzc2VydCBtdXNpZzIgcGFydGljaXBhbnQga2V5IHZhbHVlIGRhdGEgd2l0aCB0YXBJbnRlcm5hbEtleSBhbmQgdGFwTWVya2xlUm9vdC5cbiAqIDx0YXBPdXRwdXRLZXk+PHRhcElucHV0S2V5PiA9PiA8cGFydGljaXBhbnRLZXkxPjxwYXJ0aWNpcGFudEtleTI+XG4gKiBVc2luZyB0YXBNZXJrbGVSb290IGFuZCAyIHBhcnRpY2lwYW50IGtleXMsIHRoZSB0YXBJbnB1dEtleSBpcyB2YWxpZGF0ZWQgYW5kIHVzaW5nIHRhcE1lcmtsZVJvb3QgYW5kIHRhcElucHV0S2V5LFxuICogdGhlIHRhcE91dHB1dEtleSBpcyB2YWxpZGF0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRQc2J0TXVzaWcyUGFydGljaXBhbnRzKFxuICBwYXJ0aWNpcGFudEtleVZhbERhdGE6IFBzYnRNdXNpZzJQYXJ0aWNpcGFudHMsXG4gIHRhcEludGVybmFsS2V5OiBCdWZmZXIsXG4gIHRhcE1lcmtsZVJvb3Q6IEJ1ZmZlclxuKTogdm9pZCB7XG4gIGNoZWNrWE9ubHlQdWJsaWNLZXkodGFwSW50ZXJuYWxLZXkpO1xuICBjaGVja1RhcE1lcmtsZVJvb3QodGFwTWVya2xlUm9vdCk7XG5cbiAgY29uc3QgcGFydGljaXBhbnRQdWJLZXlzID0gcGFydGljaXBhbnRLZXlWYWxEYXRhLnBhcnRpY2lwYW50UHViS2V5cztcblxuICBjb25zdCBpbnRlcm5hbEtleSA9IGNyZWF0ZVRhcEludGVybmFsS2V5KHBhcnRpY2lwYW50UHViS2V5cyk7XG4gIGlmICghaW50ZXJuYWxLZXkuZXF1YWxzKHBhcnRpY2lwYW50S2V5VmFsRGF0YS50YXBJbnRlcm5hbEtleSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcGFydGljaXBhbnRzIGtleWRhdGEgdGFwSW50ZXJuYWxLZXknKTtcbiAgfVxuXG4gIGNvbnN0IG91dHB1dEtleSA9IGNyZWF0ZVRhcE91dHB1dEtleShpbnRlcm5hbEtleSwgdGFwTWVya2xlUm9vdCk7XG4gIGlmICghb3V0cHV0S2V5LmVxdWFscyhwYXJ0aWNpcGFudEtleVZhbERhdGEudGFwT3V0cHV0S2V5KSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBwYXJ0aWNpcGFudHMga2V5ZGF0YSB0YXBPdXRwdXRLZXknKTtcbiAgfVxuXG4gIGlmICghaW50ZXJuYWxLZXkuZXF1YWxzKHRhcEludGVybmFsS2V5KSkge1xuICAgIHRocm93IG5ldyBFcnJvcigndGFwSW50ZXJuYWxLZXkgYW5kIGFnZ3JlZ2F0ZWQgcGFydGljaXBhbnQgcHViIGtleXMgZG9lcyBub3QgbWF0Y2gnKTtcbiAgfVxufVxuXG4vKipcbiAqIEFzc2VydCBtdXNpZzIgcHVibGljIG5vbmNlIGtleSB2YWx1ZSBkYXRhIHdpdGggcGFydGljaXBhbnQga2V5IHZhbHVlIGRhdGFcbiAqIChyZWZlciBhc3NlcnRQc2J0TXVzaWcyUGFydGljaXBhbnRzS2V5VmFsRGF0YSkuXG4gKiA8cGFydGljaXBhbnRLZXkxPjx0YXBPdXRwdXRLZXk+ID0+IDxwdWJOb25jZTE+XG4gKiA8cGFydGljaXBhbnRLZXkyPjx0YXBPdXRwdXRLZXk+ID0+IDxwdWJOb25jZTI+XG4gKiBDaGVja3MgYWdhaW5zdCBwYXJ0aWNpcGFudCBrZXlzIGFuZCB0YXBPdXRwdXRLZXlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydFBzYnRNdXNpZzJOb25jZXMoXG4gIG5vbmNlc0tleVZhbERhdGE6IFBzYnRNdXNpZzJQdWJOb25jZVtdLFxuICBwYXJ0aWNpcGFudEtleVZhbERhdGE6IFBzYnRNdXNpZzJQYXJ0aWNpcGFudHNcbik6IHZvaWQge1xuICBjaGVja1hPbmx5UHVibGljS2V5KHBhcnRpY2lwYW50S2V5VmFsRGF0YS50YXBPdXRwdXRLZXkpO1xuICBwYXJ0aWNpcGFudEtleVZhbERhdGEucGFydGljaXBhbnRQdWJLZXlzLmZvckVhY2goKGt2KSA9PiBjaGVja1BsYWluUHVibGljS2V5KGt2KSk7XG4gIGlmIChwYXJ0aWNpcGFudEtleVZhbERhdGEucGFydGljaXBhbnRQdWJLZXlzWzBdLmVxdWFscyhwYXJ0aWNpcGFudEtleVZhbERhdGEucGFydGljaXBhbnRQdWJLZXlzWzFdKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRHVwbGljYXRlIHBhcnRpY2lwYW50IHB1YiBrZXlzIGZvdW5kYCk7XG4gIH1cblxuICBpZiAobm9uY2VzS2V5VmFsRGF0YS5sZW5ndGggPiAyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIG5vbmNlIGtleSB2YWx1ZSBjb3VudCAke25vbmNlc0tleVZhbERhdGEubGVuZ3RofWApO1xuICB9XG5cbiAgbm9uY2VzS2V5VmFsRGF0YS5mb3JFYWNoKChub25jZUt2KSA9PiB7XG4gICAgY29uc3QgaW5kZXggPSBwYXJ0aWNpcGFudEtleVZhbERhdGEucGFydGljaXBhbnRQdWJLZXlzLmZpbmRJbmRleCgocHViS2V5KSA9PlxuICAgICAgbm9uY2VLdi5wYXJ0aWNpcGFudFB1YktleS5lcXVhbHMocHViS2V5KVxuICAgICk7XG4gICAgaWYgKGluZGV4IDwgMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG5vbmNlIGtleWRhdGEgcGFydGljaXBhbnQgcHViIGtleScpO1xuICAgIH1cblxuICAgIGlmICghbm9uY2VLdi50YXBPdXRwdXRLZXkuZXF1YWxzKHBhcnRpY2lwYW50S2V5VmFsRGF0YS50YXBPdXRwdXRLZXkpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbm9uY2Uga2V5ZGF0YSB0YXBPdXRwdXRLZXknKTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIEByZXR1cm5zIElucHV0IG9iamVjdCBidXQgc2lnIGhhc2ggdHlwZSBkYXRhIGlzIHRha2VuIG91dCBmcm9tIHBhcnRpYWxTaWcgZmllbGQuXG4gKiBJZiBzaWcgaGFzaCB0eXBlIGlzIG5vdCBjb21tb24gZm9yIGFsbCBzaWdzLCBlcnJvciBvdXQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBtb2RpZmllZCBvYmplY3QgYW5kIHNpbmdsZSBoYXNoIHR5cGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTaWdIYXNoVHlwZUZyb21TaWdzKHBhcnRpYWxTaWdzOiBQc2J0TXVzaWcyUGFydGlhbFNpZ1tdKToge1xuICBwYXJ0aWFsU2lnczogUHNidE11c2lnMlBhcnRpYWxTaWdbXTtcbiAgc2lnSGFzaFR5cGU6IG51bWJlcjtcbn0ge1xuICBpZiAoIXBhcnRpYWxTaWdzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcigncGFydGlhbFNpZ3MgYXJyYXkgY2FuIG5vdCBiZSBlbXB0eScpO1xuICB9XG4gIGNvbnN0IHBTaWdzV2l0aEhhc2hUeXBlID0gcGFydGlhbFNpZ3MubWFwKChrdikgPT4ge1xuICAgIGNvbnN0IHsgcGFydGlhbFNpZywgcGFydGljaXBhbnRQdWJLZXksIHRhcE91dHB1dEtleSB9ID0ga3Y7XG4gICAgcmV0dXJuIHBhcnRpYWxTaWcubGVuZ3RoID09PSAzM1xuICAgICAgPyB7IHBTaWc6IHsgcGFydGlhbFNpZzogcGFydGlhbFNpZy5zbGljZSgwLCAzMiksIHBhcnRpY2lwYW50UHViS2V5LCB0YXBPdXRwdXRLZXkgfSwgc2lnSGFzaFR5cGU6IHBhcnRpYWxTaWdbMzJdIH1cbiAgICAgIDogeyBwU2lnOiB7IHBhcnRpYWxTaWcsIHBhcnRpY2lwYW50UHViS2V5LCB0YXBPdXRwdXRLZXkgfSwgc2lnSGFzaFR5cGU6IFRyYW5zYWN0aW9uLlNJR0hBU0hfREVGQVVMVCB9O1xuICB9KTtcblxuICBjb25zdCBzaWdIYXNoVHlwZSA9IHBTaWdzV2l0aEhhc2hUeXBlWzBdLnNpZ0hhc2hUeXBlO1xuICBpZiAoIXBTaWdzV2l0aEhhc2hUeXBlLmV2ZXJ5KChwU2lnKSA9PiBwU2lnLnNpZ0hhc2hUeXBlID09PSBzaWdIYXNoVHlwZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3NpZ25hdHVyZXMgbXVzdCB1c2Ugc2FtZSBzaWcgaGFzaCB0eXBlJyk7XG4gIH1cblxuICByZXR1cm4geyBwYXJ0aWFsU2lnczogcFNpZ3NXaXRoSGFzaFR5cGUubWFwKCh7IHBTaWcgfSkgPT4gcFNpZyksIHNpZ0hhc2hUeXBlIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNdXNpZzJEZXRlcm1pbmlzdGljTm9uY2UocGFyYW1zOiBQc2J0TXVzaWcyRGV0ZXJtaW5pc3RpY1BhcmFtcyk6IEJ1ZmZlciB7XG4gIHJldHVybiBCdWZmZXIuZnJvbShcbiAgICBtdXNpZy5kZXRlcm1pbmlzdGljTm9uY2VHZW4oe1xuICAgICAgc2VjcmV0S2V5OiBwYXJhbXMucHJpdmF0ZUtleSxcbiAgICAgIGFnZ090aGVyTm9uY2U6IG11c2lnLm5vbmNlQWdnKFtwYXJhbXMub3RoZXJOb25jZV0pLFxuICAgICAgcHVibGljS2V5czogcGFyYW1zLnB1YmxpY0tleXMsXG4gICAgICB0d2Vha3M6IFt7IHR3ZWFrOiBjcmVhdGVUYXBUd2VhayhwYXJhbXMuaW50ZXJuYWxQdWJLZXksIHBhcmFtcy50YXBUcmVlUm9vdCksIHhPbmx5OiB0cnVlIH1dLFxuICAgICAgbXNnOiBwYXJhbXMuaGFzaCxcbiAgICB9KS5wdWJsaWNOb25jZVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbXVzaWcyRGV0ZXJtaW5pc3RpY1NpZ24ocGFyYW1zOiBQc2J0TXVzaWcyRGV0ZXJtaW5pc3RpY1BhcmFtcyk6IHtcbiAgc2lnOiBCdWZmZXI7XG4gIHNlc3Npb25LZXk6IFNlc3Npb25LZXk7XG4gIHB1YmxpY05vbmNlOiBCdWZmZXI7XG59IHtcbiAgY29uc3QgeyBzaWcsIHNlc3Npb25LZXksIHB1YmxpY05vbmNlIH0gPSBtdXNpZy5kZXRlcm1pbmlzdGljU2lnbih7XG4gICAgc2VjcmV0S2V5OiBwYXJhbXMucHJpdmF0ZUtleSxcbiAgICBhZ2dPdGhlck5vbmNlOiBtdXNpZy5ub25jZUFnZyhbcGFyYW1zLm90aGVyTm9uY2VdKSxcbiAgICBwdWJsaWNLZXlzOiBwYXJhbXMucHVibGljS2V5cyxcbiAgICB0d2Vha3M6IFt7IHR3ZWFrOiBjcmVhdGVUYXBUd2VhayhwYXJhbXMuaW50ZXJuYWxQdWJLZXksIHBhcmFtcy50YXBUcmVlUm9vdCksIHhPbmx5OiB0cnVlIH1dLFxuICAgIG1zZzogcGFyYW1zLmhhc2gsXG4gIH0pO1xuICByZXR1cm4geyBzaWc6IEJ1ZmZlci5mcm9tKHNpZyksIHNlc3Npb25LZXksIHB1YmxpY05vbmNlOiBCdWZmZXIuZnJvbShwdWJsaWNOb25jZSkgfTtcbn1cbiJdfQ==
|
|
357
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXVzaWcyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL011c2lnMi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE2R0Esb0VBU0M7QUFPRCw0REFjQztBQUVELGdFQWNDO0FBTUQsb0VBdUJDO0FBTUQsc0RBZ0JDO0FBTUQsZ0VBbUJDO0FBRUQsb0RBRUM7QUFFRCxnREFJQztBQUVELG9EQUVDO0FBRUQsd0NBRUM7QUFXRCw4Q0FjQztBQUVELHdEQVFDO0FBRUQsa0RBRUM7QUFHRCxnRUFXQztBQU1ELGtFQWVDO0FBTUQsc0RBZUM7QUFNRCxnRUFlQztBQVFELG9FQXVCQztBQVNELHdEQTBCQztBQU1ELHdEQW9CQztBQUVELHdFQVVDO0FBRUQsMERBYUM7QUFsZUQsbURBTXlCO0FBQ3pCLDRDQUEwQztBQUUxQyx3Q0FBK0Q7QUFDL0Qsb0NBQXVDO0FBRXZDLHlDQUtvQjtBQXNDcEI7OztHQUdHO0FBQ0gsTUFBYSxnQkFBZ0I7SUFBN0I7UUFDVSxXQUFNLEdBQWlCLEVBQUUsQ0FBQztJQXdDcEMsQ0FBQztJQXRDQzs7O09BR0c7SUFDSCxNQUFNLENBQUMsS0FBaUI7UUFDdEIsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxPQUFPLENBQUMsQ0FBQztZQUNYLENBQUM7UUFDSCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILGlCQUFpQixDQUNmLFVBQXNCLEVBQ3RCLFNBQXFCLEVBQ3JCLGNBQTBCLEVBQzFCLE1BQWtCLEVBQ2xCLFNBQWtCO1FBRWxCLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN4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QUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO0FBQ3RGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXNzaW9uS2V5IH0gZnJvbSAnQGJyYW5kb25ibGFjay9tdXNpZyc7XG5cbmltcG9ydCB7XG4gIGNoZWNrUGxhaW5QdWJsaWNLZXksXG4gIGNoZWNrVGFwTWVya2xlUm9vdCxcbiAgY2hlY2tUeEhhc2gsXG4gIGNoZWNrWE9ubHlQdWJsaWNLZXksXG4gIHRvWE9ubHlQdWJsaWNLZXksXG59IGZyb20gJy4vb3V0cHV0U2NyaXB0cyc7XG5pbXBvcnQgeyBlY2MsIG11c2lnIH0gZnJvbSAnLi4vbm9ibGVfZWNjJztcbmltcG9ydCB7IFR1cGxlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBjYWxjdWxhdGVUYXBUd2VhaywgdGFwVHdlYWtQdWJrZXkgfSBmcm9tICcuLi90YXByb290JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IHsgUHNidElucHV0IH0gZnJvbSAnYmlwMTc0L3NyYy9saWIvaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuICBnZXRQc2J0SW5wdXRQcm9wcmlldGFyeUtleVZhbHMsXG4gIFByb3ByaWV0YXJ5S2V5U3VidHlwZSxcbiAgUHJvcHJpZXRhcnlLZXlWYWx1ZSxcbiAgUFNCVF9QUk9QUklFVEFSWV9JREVOVElGSUVSLFxufSBmcm9tICcuL1BzYnRVdGlsJztcblxuLyoqXG4gKiAgUGFydGljaXBhbnQga2V5IHZhbHVlIG9iamVjdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQc2J0TXVzaWcyUGFydGljaXBhbnRzIHtcbiAgdGFwT3V0cHV0S2V5OiBCdWZmZXI7XG4gIHRhcEludGVybmFsS2V5OiBCdWZmZXI7XG4gIHBhcnRpY2lwYW50UHViS2V5czogVHVwbGU8QnVmZmVyPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQc2J0TXVzaWcyRGV0ZXJtaW5pc3RpY1BhcmFtcyB7XG4gIHByaXZhdGVLZXk6IEJ1ZmZlcjtcbiAgb3RoZXJOb25jZTogQnVmZmVyO1xuICBwdWJsaWNLZXlzOiBUdXBsZTxCdWZmZXI+O1xuICBpbnRlcm5hbFB1YktleTogQnVmZmVyO1xuICB0YXBUcmVlUm9vdDogQnVmZmVyO1xuICBoYXNoOiBCdWZmZXI7XG59XG5cbi8qKlxuICogIE5vbmNlIGtleSB2YWx1ZSBvYmplY3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHNidE11c2lnMlB1Yk5vbmNlIHtcbiAgcGFydGljaXBhbnRQdWJLZXk6IEJ1ZmZlcjtcbiAgdGFwT3V0cHV0S2V5OiBCdWZmZXI7XG4gIHB1Yk5vbmNlOiBCdWZmZXI7XG59XG5cbi8qKlxuICogIFBhcnRpYWwgc2lnbmF0dXJlIGtleSB2YWx1ZSBvYmplY3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHNidE11c2lnMlBhcnRpYWxTaWcge1xuICBwYXJ0aWNpcGFudFB1YktleTogQnVmZmVyO1xuICB0YXBPdXRwdXRLZXk6IEJ1ZmZlcjtcbiAgcGFydGlhbFNpZzogQnVmZmVyO1xufVxuXG4vKipcbiAqIEJlY2F1c2UgbXVzaWcgdXNlcyByZWZlcmVuY2UtZXF1YWwgYnVmZmVycyB0byBjYWNoZSBub25jZXMsIHdlIHdyYXAgaXQgaGVyZSB0byBhbGxvdyB1c2luZ1xuICogbm9uY2VzIHRoYXQgYXJlIGJ5dGUtZXF1YWwgYnV0IG5vdCByZWZlcmVuY2UtZXF1YWwuXG4gKi9cbmV4cG9ydCBjbGFzcyBNdXNpZzJOb25jZVN0b3JlIHtcbiAgcHJpdmF0ZSBub25jZXM6IFVpbnQ4QXJyYXlbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBHZXQgb3JpZ2luYWwgQnVmZmVyIGluc3RhbmNlIGZvciBub25jZSAod2hpY2ggbWF5IGJlIGEgY29weSkuXG4gICAqIEByZXR1cm4gYnl0ZS1lcXVhbCBidWZmZXIgdGhhdCBpcyByZWZlcmVuY2UtZXF1YWwgdG8gd2hhdCB3YXMgc3RvcmVkIGVhcmxpZXIgaW4gY3JlYXRlTXVzaWcyTm9uY2VcbiAgICovXG4gIGdldFJlZihub25jZTogVWludDhBcnJheSk6IFVpbnQ4QXJyYXkge1xuICAgIGZvciAoY29uc3QgYiBvZiB0aGlzLm5vbmNlcykge1xuICAgICAgaWYgKEJ1ZmZlci5mcm9tKGIpLmVxdWFscyhub25jZSkpIHtcbiAgICAgICAgcmV0dXJuIGI7XG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgdW5rbm93biBub25jZWApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgbXVzaWcyIG5vbmNlIGFuZCBzdG9yZXMgYnVmZmVyIHJlZmVyZW5jZS5cbiAgICogdGFwSW50ZXJuYWxrZXksIHRhcE1lcmtsZVJvb3QsIHRhcEJpcDMyRGVyaXZhdGlvbiBmb3Igcm9vdFdhbGxldEtleSBhcmUgcmVxdWlyZWQgcGVyIHAydHJNdXNpZzIga2V5IHBhdGggaW5wdXQuXG4gICAqIEFsc28gcGFydGljaXBhbnQga2V5cyBhcmUgcmVxdWlyZWQgZnJvbSBwc2J0IHByb3ByaWV0YXJ5IGtleSB2YWx1ZXMuXG4gICAqIFJlZjogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vc2Fua2V0MTcyOS80YjUyNWM2MDQ5ZjRkOWUwMzRkMjczNjhjNDlmMjhhNlxuICAgKiBAcGFyYW0gcHJpdmF0ZUtleSAtIHNpZ25lciBwcml2YXRlIGtleVxuICAgKiBAcGFyYW0gcHVibGljS2V5IC0gc2lnbmVyIHh5IHB1YmxpYyBrZXlcbiAgICogQHBhcmFtIHhPbmx5UHVibGljS2V5IC0gdHdlYWtlZCBhZ2dyZWdhdGVkIGtleSAodGFwT3V0cHV0S2V5KVxuICAgKiBAcGFyYW0gc2Vzc2lvbklkIEFkZGl0aW9uYWwgZW50cm9weS4gSWYgcHJvdmlkZWQgaXQgbXVzdCBlaXRoZXIgYmUgYSBjb3VudGVyIHVuaXF1ZSB0byB0aGlzIHNlY3JldCBrZXksXG4gICAqIChjb252ZXJ0ZWQgdG8gYW4gYXJyYXkgb2YgMzIgYnl0ZXMpLCBvciAzMiB1bmlmb3JtbHkgcmFuZG9tIGJ5dGVzLlxuICAgKi9cbiAgY3JlYXRlTXVzaWcyTm9uY2UoXG4gICAgcHJpdmF0ZUtleTogVWludDhBcnJheSxcbiAgICBwdWJsaWNLZXk6IFVpbnQ4QXJyYXksXG4gICAgeE9ubHlQdWJsaWNLZXk6IFVpbnQ4QXJyYXksXG4gICAgdHhIYXNoOiBVaW50OEFycmF5LFxuICAgIHNlc3Npb25JZD86IEJ1ZmZlclxuICApOiBVaW50OEFycmF5IHtcbiAgICBpZiAodHhIYXNoLmxlbmd0aCAhPSAzMikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHR4SGFzaCBzaXplICR7dHhIYXNofWApO1xuICAgIH1cbiAgICBjb25zdCBidWYgPSBtdXNpZy5ub25jZUdlbih7IHNlY3JldEtleTogcHJpdmF0ZUtleSwgcHVibGljS2V5LCB4T25seVB1YmxpY0tleSwgbXNnOiB0eEhhc2gsIHNlc3Npb25JZCB9KTtcbiAgICB0aGlzLm5vbmNlcy5wdXNoKGJ1Zik7XG4gICAgcmV0dXJuIGJ1ZjtcbiAgfVxufVxuXG4vKipcbiAqIFBzYnQgcHJvcHJpZXRhcnkga2V5IHZhbCB1dGlsIGZ1bmN0aW9uIGZvciBwYXJ0aWNpcGFudHMgcHViIGtleXMuIFN1YlR5cGUgaXMgMHgwMVxuICogUmVmOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9zYW5rZXQxNzI5LzRiNTI1YzYwNDlmNGQ5ZTAzNGQyNzM2OGM0OWYyOGE2XG4gKiBAcmV0dXJuIHgtb25seSB0YXBPdXRwdXRLZXl8fHRhcEludGVybmFsS2V5IGFzIHN1YiBrZXlkYXRhLCBwbGFpbiBzaWdpbmluZyBwYXJ0aWNpcGFudCBrZXlzIGFzIHZhbHVlZGF0YVxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlUHNidE11c2lnMlBhcnRpY2lwYW50cyhwYXJ0aWNpcGFudHM6IFBzYnRNdXNpZzJQYXJ0aWNpcGFudHMpOiBQcm9wcmlldGFyeUtleVZhbHVlIHtcbiAgY29uc3Qga2V5ZGF0YSA9IFtwYXJ0aWNpcGFudHMudGFwT3V0cHV0S2V5LCBwYXJ0aWNpcGFudHMudGFwSW50ZXJuYWxLZXldLm1hcCgocHVia2V5KSA9PiBjaGVja1hPbmx5UHVibGljS2V5KHB1YmtleSkpO1xuICBjb25zdCB2YWx1ZSA9IHBhcnRpY2lwYW50cy5wYXJ0aWNpcGFudFB1YktleXMubWFwKChwdWJrZXkpID0+IGNoZWNrUGxhaW5QdWJsaWNLZXkocHVia2V5KSk7XG4gIGNvbnN0IGtleSA9IHtcbiAgICBpZGVudGlmaWVyOiBQU0JUX1BST1BSSUVUQVJZX0lERU5USUZJRVIsXG4gICAgc3VidHlwZTogUHJvcHJpZXRhcnlLZXlTdWJ0eXBlLk1VU0lHMl9QQVJUSUNJUEFOVF9QVUJfS0VZUyxcbiAgICBrZXlkYXRhOiBCdWZmZXIuY29uY2F0KGtleWRhdGEpLFxuICB9O1xuICByZXR1cm4geyBrZXksIHZhbHVlOiBCdWZmZXIuY29uY2F0KHZhbHVlKSB9O1xufVxuXG4vKipcbiAqIFBzYnQgcHJvcHJpZXRhcnkga2V5IHZhbCB1dGlsIGZ1bmN0aW9uIGZvciBwdWIgbm9uY2UuIFN1YlR5cGUgaXMgMHgwMlxuICogUmVmOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9zYW5rZXQxNzI5LzRiNTI1YzYwNDlmNGQ5ZTAzNGQyNzM2OGM0OWYyOGE2XG4gKiBAcmV0dXJuIHBsYWluLXBhcnRpY2lwYW50UHViS2V5fHx4LW9ubHktdGFwT3V0cHV0S2V5IGFzIHN1YiBrZXlkYXRhLCA2NiBieXRlcyBvZiAyIHB1YiBub25jZXMgYXMgdmFsdWVkYXRhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVQc2J0TXVzaWcyUHViTm9uY2Uobm9uY2U6IFBzYnRNdXNpZzJQdWJOb25jZSk6IFByb3ByaWV0YXJ5S2V5VmFsdWUge1xuICBpZiAobm9uY2UucHViTm9uY2UubGVuZ3RoICE9PSA2Nikge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwdWJOb25jZXMgbGVuZ3RoICR7bm9uY2UucHViTm9uY2UubGVuZ3RofWApO1xuICB9XG4gIGNvbnN0IGtleWRhdGEgPSBCdWZmZXIuY29uY2F0KFtcbiAgICBjaGVja1BsYWluUHVibGljS2V5KG5vbmNlLnBhcnRpY2lwYW50UHViS2V5KSxcbiAgICBjaGVja1hPbmx5UHVibGljS2V5KG5vbmNlLnRhcE91dHB1dEtleSksXG4gIF0pO1xuICBjb25zdCBrZXkgPSB7XG4gICAgaWRlbnRpZmllcjogUFNCVF9QUk9QUklFVEFSWV9JREVOVElGSUVSLFxuICAgIHN1YnR5cGU6IFByb3ByaWV0YXJ5S2V5U3VidHlwZS5NVVNJRzJfUFVCX05PTkNFLFxuICAgIGtleWRhdGEsXG4gIH07XG4gIHJldHVybiB7IGtleSwgdmFsdWU6IG5vbmNlLnB1Yk5vbmNlIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVQc2J0TXVzaWcyUGFydGlhbFNpZyhwYXJ0aWFsU2lnOiBQc2J0TXVzaWcyUGFydGlhbFNpZyk6IFByb3ByaWV0YXJ5S2V5VmFsdWUge1xuICBpZiAocGFydGlhbFNpZy5wYXJ0aWFsU2lnLmxlbmd0aCAhPT0gMzIgJiYgcGFydGlhbFNpZy5wYXJ0aWFsU2lnLmxlbmd0aCAhPT0gMzMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcGFydGlhbFNpZyBsZW5ndGggJHtwYXJ0aWFsU2lnLnBhcnRpYWxTaWcubGVuZ3RofWApO1xuICB9XG4gIGNvbnN0IGtleWRhdGEgPSBCdWZmZXIuY29uY2F0KFtcbiAgICBjaGVja1BsYWluUHVibGljS2V5KHBhcnRpYWxTaWcucGFydGljaXBhbnRQdWJLZXkpLFxuICAgIGNoZWNrWE9ubHlQdWJsaWNLZXkocGFydGlhbFNpZy50YXBPdXRwdXRLZXkpLFxuICBdKTtcbiAgY29uc3Qga2V5ID0ge1xuICAgIGlkZW50aWZpZXI6IFBTQlRfUFJPUFJJRVRBUllfSURFTlRJRklFUixcbiAgICBzdWJ0eXBlOiBQcm9wcmlldGFyeUtleVN1YnR5cGUuTVVTSUcyX1BBUlRJQUxfU0lHLFxuICAgIGtleWRhdGEsXG4gIH07XG4gIHJldHVybiB7IGtleSwgdmFsdWU6IHBhcnRpYWxTaWcucGFydGlhbFNpZyB9O1xufVxuXG4vKipcbiAqIERlY29kZXMgcHJvcHJpZXRhcnkga2V5IHZhbHVlIGRhdGEgZm9yIHBhcnRpY2lwYW50IHB1YiBrZXlzXG4gKiBAcGFyYW0ga3ZcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZVBzYnRNdXNpZzJQYXJ0aWNpcGFudHMoa3Y6IFByb3ByaWV0YXJ5S2V5VmFsdWUpOiBQc2J0TXVzaWcyUGFydGljaXBhbnRzIHtcbiAgaWYgKFxuICAgIGt2LmtleS5pZGVudGlmaWVyICE9PSBQU0JUX1BST1BSSUVUQVJZX0lERU5USUZJRVIgfHxcbiAgICBrdi5rZXkuc3VidHlwZSAhPT0gUHJvcHJpZXRhcnlLZXlTdWJ0eXBlLk1VU0lHMl9QQVJUSUNJUEFOVF9QVUJfS0VZU1xuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaWRlbnRpZmllciAke2t2LmtleS5pZGVudGlmaWVyfSBvciBzdWJ0eXBlICR7a3Yua2V5LnN1YnR5cGV9IGZvciBwYXJ0aWNpcGFudHMgcHViIGtleXNgKTtcbiAgfVxuXG4gIGNvbnN0IGtleSA9IGt2LmtleS5rZXlkYXRhO1xuICBpZiAoa2V5Lmxlbmd0aCAhPT0gNjQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQga2V5ZGF0YSBzaXplICR7a2V5Lmxlbmd0aH0gZm9yIHBhcnRpY2lwYW50IHB1YiBrZXlzYCk7XG4gIH1cblxuICBjb25zdCB2YWx1ZSA9IGt2LnZhbHVlO1xuICBpZiAodmFsdWUubGVuZ3RoICE9PSA2Nikge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB2YWx1ZWRhdGEgc2l6ZSAke3ZhbHVlLmxlbmd0aH0gZm9yIHBhcnRpY2lwYW50IHB1YiBrZXlzYCk7XG4gIH1cbiAgY29uc3QgcGFydGljaXBhbnRQdWJLZXlzOiBUdXBsZTxCdWZmZXI+ID0gW3ZhbHVlLnN1YmFycmF5KDAsIDMzKSwgdmFsdWUuc3ViYXJyYXkoMzMpXTtcbiAgaWYgKHBhcnRpY2lwYW50UHViS2V5c1swXS5lcXVhbHMocGFydGljaXBhbnRQdWJLZXlzWzFdKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRHVwbGljYXRlIHBhcnRpY2lwYW50IHB1YiBrZXlzIGZvdW5kYCk7XG4gIH1cblxuICByZXR1cm4geyB0YXBPdXRwdXRLZXk6IGtleS5zdWJhcnJheSgwLCAzMiksIHRhcEludGVybmFsS2V5OiBrZXkuc3ViYXJyYXkoMzIpLCBwYXJ0aWNpcGFudFB1YktleXMgfTtcbn1cblxuLyoqXG4gKiBEZWNvZGVzIHByb3ByaWV0YXJ5IGtleSB2YWx1ZSBkYXRhIGZvciBtdXNpZzIgbm9uY2VcbiAqIEBwYXJhbSBrdlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlUHNidE11c2lnMk5vbmNlKGt2OiBQcm9wcmlldGFyeUtleVZhbHVlKTogUHNidE11c2lnMlB1Yk5vbmNlIHtcbiAgaWYgKGt2LmtleS5pZGVudGlmaWVyICE9PSBQU0JUX1BST1BSSUVUQVJZX0lERU5USUZJRVIgfHwga3Yua2V5LnN1YnR5cGUgIT09IFByb3ByaWV0YXJ5S2V5U3VidHlwZS5NVVNJRzJfUFVCX05PTkNFKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGlkZW50aWZpZXIgJHtrdi5rZXkuaWRlbnRpZmllcn0gb3Igc3VidHlwZSAke2t2LmtleS5zdWJ0eXBlfSBmb3Igbm9uY2VgKTtcbiAgfVxuXG4gIGNvbnN0IGtleSA9IGt2LmtleS5rZXlkYXRhO1xuICBpZiAoa2V5Lmxlbmd0aCAhPT0gNjUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQga2V5ZGF0YSBzaXplICR7a2V5Lmxlbmd0aH0gZm9yIG5vbmNlYCk7XG4gIH1cblxuICBjb25zdCB2YWx1ZSA9IGt2LnZhbHVlO1xuICBpZiAodmFsdWUubGVuZ3RoICE9PSA2Nikge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB2YWx1ZWRhdGEgc2l6ZSAke3ZhbHVlLmxlbmd0aH0gZm9yIG5vbmNlYCk7XG4gIH1cblxuICByZXR1cm4geyBwYXJ0aWNpcGFudFB1YktleToga2V5LnN1YmFycmF5KDAsIDMzKSwgdGFwT3V0cHV0S2V5OiBrZXkuc3ViYXJyYXkoMzMpLCBwdWJOb25jZTogdmFsdWUgfTtcbn1cblxuLyoqXG4gKiBEZWNvZGVzIHByb3ByaWV0YXJ5IGtleSB2YWx1ZSBkYXRhIGZvciBtdXNpZzIgcGFydGlhbCBzaWdcbiAqIEBwYXJhbSBrdlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlUHNidE11c2lnMlBhcnRpYWxTaWcoa3Y6IFByb3ByaWV0YXJ5S2V5VmFsdWUpOiBQc2J0TXVzaWcyUGFydGlhbFNpZyB7XG4gIGlmIChcbiAgICBrdi5rZXkuaWRlbnRpZmllciAhPT0gUFNCVF9QUk9QUklFVEFSWV9JREVOVElGSUVSIHx8XG4gICAga3Yua2V5LnN1YnR5cGUgIT09IFByb3ByaWV0YXJ5S2V5U3VidHlwZS5NVVNJRzJfUEFSVElBTF9TSUdcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGlkZW50aWZpZXIgJHtrdi5rZXkuaWRlbnRpZmllcn0gb3Igc3VidHlwZSAke2t2LmtleS5zdWJ0eXBlfSBmb3IgcGFydGlhbCBzaWdgKTtcbiAgfVxuXG4gIGNvbnN0IGtleSA9IGt2LmtleS5rZXlkYXRhO1xuICBpZiAoa2V5Lmxlbmd0aCAhPT0gNjUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQga2V5ZGF0YSBzaXplICR7a2V5Lmxlbmd0aH0gZm9yIHBhcnRpYWwgc2lnYCk7XG4gIH1cblxuICBjb25zdCB2YWx1ZSA9IGt2LnZhbHVlO1xuICBpZiAodmFsdWUubGVuZ3RoICE9PSAzMiAmJiB2YWx1ZS5sZW5ndGggIT09IDMzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHZhbHVlZGF0YSBzaXplICR7dmFsdWUubGVuZ3RofSBmb3IgcGFydGlhbCBzaWdgKTtcbiAgfVxuXG4gIHJldHVybiB7IHBhcnRpY2lwYW50UHViS2V5OiBrZXkuc3ViYXJyYXkoMCwgMzMpLCB0YXBPdXRwdXRLZXk6IGtleS5zdWJhcnJheSgzMyksIHBhcnRpYWxTaWc6IHZhbHVlIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUYXBJbnRlcm5hbEtleShwbGFpblB1YktleXM6IEJ1ZmZlcltdKTogQnVmZmVyIHtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKG11c2lnLmdldFhPbmx5UHVia2V5KG11c2lnLmtleUFnZyhwbGFpblB1YktleXMpKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUYXBPdXRwdXRLZXkoaW50ZXJuYWxQdWJLZXk6IEJ1ZmZlciwgdGFwVHJlZVJvb3Q6IEJ1ZmZlcik6IEJ1ZmZlciB7XG4gIHJldHVybiBCdWZmZXIuZnJvbShcbiAgICB0YXBUd2Vha1B1YmtleShlY2MsIHRvWE9ubHlQdWJsaWNLZXkoaW50ZXJuYWxQdWJLZXkpLCBjaGVja1RhcE1lcmtsZVJvb3QodGFwVHJlZVJvb3QpKS54T25seVB1YmtleVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQWdncmVnYXRlTm9uY2UocHViTm9uY2VzOiBUdXBsZTxCdWZmZXI+KTogQnVmZmVyIHtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKG11c2lnLm5vbmNlQWdnKHB1Yk5vbmNlcykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVGFwVHdlYWsodGFwSW50ZXJuYWxLZXk6IEJ1ZmZlciwgdGFwTWVya2xlUm9vdDogQnVmZmVyKTogQnVmZmVyIHtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKGNhbGN1bGF0ZVRhcFR3ZWFrKGNoZWNrWE9ubHlQdWJsaWNLZXkodGFwSW50ZXJuYWxLZXkpLCBjaGVja1RhcE1lcmtsZVJvb3QodGFwTWVya2xlUm9vdCkpKTtcbn1cblxuZnVuY3Rpb24gc3RhcnRNdXNpZzJTaWduaW5nU2Vzc2lvbihcbiAgYWdnTm9uY2U6IEJ1ZmZlcixcbiAgaGFzaDogQnVmZmVyLFxuICBwdWJsaWNLZXlzOiBUdXBsZTxCdWZmZXI+LFxuICB0d2VhazogQnVmZmVyXG4pOiBTZXNzaW9uS2V5IHtcbiAgcmV0dXJuIG11c2lnLnN0YXJ0U2lnbmluZ1Nlc3Npb24oYWdnTm9uY2UsIGhhc2gsIHB1YmxpY0tleXMsIHsgdHdlYWssIHhPbmx5OiB0cnVlIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbXVzaWcyUGFydGlhbFNpZ24oXG4gIHByaXZhdGVLZXk6IEJ1ZmZlcixcbiAgcHVibGljTm9uY2U6IFVpbnQ4QXJyYXksXG4gIHNlc3Npb25LZXk6IFNlc3Npb25LZXksXG4gIG5vbmNlU3RvcmU6IE11c2lnMk5vbmNlU3RvcmVcbik6IEJ1ZmZlciB7XG4gIGNoZWNrVHhIYXNoKEJ1ZmZlci5mcm9tKHNlc3Npb25LZXkubXNnKSk7XG4gIHJldHVybiBCdWZmZXIuZnJvbShcbiAgICBtdXNpZy5wYXJ0aWFsU2lnbih7XG4gICAgICBzZWNyZXRLZXk6IHByaXZhdGVLZXksXG4gICAgICBwdWJsaWNOb25jZTogbm9uY2VTdG9yZS5nZXRSZWYocHVibGljTm9uY2UpLFxuICAgICAgc2Vzc2lvbktleSxcbiAgICB9KVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbXVzaWcyUGFydGlhbFNpZ1ZlcmlmeShcbiAgc2lnOiBCdWZmZXIsXG4gIHB1YmxpY0tleTogQnVmZmVyLFxuICBwdWJsaWNOb25jZTogQnVmZmVyLFxuICBzZXNzaW9uS2V5OiBTZXNzaW9uS2V5XG4pOiBib29sZWFuIHtcbiAgY2hlY2tUeEhhc2goQnVmZmVyLmZyb20oc2Vzc2lvbktleS5tc2cpKTtcbiAgcmV0dXJuIG11c2lnLnBhcnRpYWxWZXJpZnkoeyBzaWcsIHB1YmxpY0tleSwgcHVibGljTm9uY2UsIHNlc3Npb25LZXkgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtdXNpZzJBZ2dyZWdhdGVTaWdzKHNpZ3M6IEJ1ZmZlcltdLCBzZXNzaW9uS2V5OiBTZXNzaW9uS2V5KTogQnVmZmVyIHtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKG11c2lnLnNpZ25BZ2coc2lncywgc2Vzc2lvbktleSkpO1xufVxuXG4vKiogQHJldHVybiBzZXNzaW9uIGtleSB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlZmVyZW5jZSB0aGUgc2Vzc2lvbiBsYXRlciAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU11c2lnMlNpZ25pbmdTZXNzaW9uKHNlc3Npb25BcmdzOiB7XG4gIHB1Yk5vbmNlczogVHVwbGU8QnVmZmVyPjtcbiAgdHhIYXNoOiBCdWZmZXI7XG4gIHB1YktleXM6IFR1cGxlPEJ1ZmZlcj47XG4gIGludGVybmFsUHViS2V5OiBCdWZmZXI7XG4gIHRhcFRyZWVSb290OiBCdWZmZXI7XG59KTogU2Vzc2lvbktleSB7XG4gIGNoZWNrVHhIYXNoKHNlc3Npb25BcmdzLnR4SGFzaCk7XG4gIGNvbnN0IGFnZ05vbmNlID0gY3JlYXRlQWdncmVnYXRlTm9uY2Uoc2Vzc2lvbkFyZ3MucHViTm9uY2VzKTtcbiAgY29uc3QgdHdlYWsgPSBjcmVhdGVUYXBUd2VhayhzZXNzaW9uQXJncy5pbnRlcm5hbFB1YktleSwgc2Vzc2lvbkFyZ3MudGFwVHJlZVJvb3QpO1xuICByZXR1cm4gc3RhcnRNdXNpZzJTaWduaW5nU2Vzc2lvbihhZ2dOb25jZSwgc2Vzc2lvbkFyZ3MudHhIYXNoLCBzZXNzaW9uQXJncy5wdWJLZXlzLCB0d2Vhayk7XG59XG5cbi8qKlxuICogQHJldHVybnMgcHNidCBwcm9wcmlldGFyeSBrZXkgZm9yIG11c2lnMiBwYXJ0aWNpcGFudCBrZXkgdmFsdWUgZGF0YVxuICogSWYgbm8ga2V5IHZhbHVlIGV4aXN0cywgdW5kZWZpbmVkIGlzIHJldHVybmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VQc2J0TXVzaWcyUGFydGljaXBhbnRzKGlucHV0OiBQc2J0SW5wdXQpOiBQc2J0TXVzaWcyUGFydGljaXBhbnRzIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgcGFydGljaXBhbnRzS2V5VmFscyA9IGdldFBzYnRJbnB1dFByb3ByaWV0YXJ5S2V5VmFscyhpbnB1dCwge1xuICAgIGlkZW50aWZpZXI6IFBTQlRfUFJPUFJJRVRBUllfSURFTlRJRklFUixcbiAgICBzdWJ0eXBlOiBQcm9wcmlldGFyeUtleVN1YnR5cGUuTVVTSUcyX1BBUlRJQ0lQQU5UX1BVQl9LRVlTLFxuICB9KTtcblxuICBpZiAoIXBhcnRpY2lwYW50c0tleVZhbHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChwYXJ0aWNpcGFudHNLZXlWYWxzLmxlbmd0aCA+IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZvdW5kICR7cGFydGljaXBhbnRzS2V5VmFscy5sZW5ndGh9IG1hdGNoaW5nIHBhcnRpY2lwYW50IGtleSB2YWx1ZSBpbnN0ZWFkIG9mIDFgKTtcbiAgfVxuXG4gIHJldHVybiBkZWNvZGVQc2J0TXVzaWcyUGFydGljaXBhbnRzKHBhcnRpY2lwYW50c0tleVZhbHNbMF0pO1xufVxuXG4vKipcbiAqIEByZXR1cm5zIHBzYnQgcHJvcHJpZXRhcnkga2V5IGZvciBtdXNpZzIgcHVibGljIG5vbmNlIGtleSB2YWx1ZSBkYXRhXG4gKiBJZiBubyBrZXkgdmFsdWUgZXhpc3RzLCB1bmRlZmluZWQgaXMgcmV0dXJuZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVBzYnRNdXNpZzJOb25jZXMoaW5wdXQ6IFBzYnRJbnB1dCk6IFBzYnRNdXNpZzJQdWJOb25jZVtdIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgbm9uY2VLZXlWYWxzID0gZ2V0UHNidElucHV0UHJvcHJpZXRhcnlLZXlWYWxzKGlucHV0LCB7XG4gICAgaWRlbnRpZmllcjogUFNCVF9QUk9QUklFVEFSWV9JREVOVElGSUVSLFxuICAgIHN1YnR5cGU6IFByb3ByaWV0YXJ5S2V5U3VidHlwZS5NVVNJRzJfUFVCX05PTkNFLFxuICB9KTtcblxuICBpZiAoIW5vbmNlS2V5VmFscy5sZW5ndGgpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKG5vbmNlS2V5VmFscy5sZW5ndGggPiAyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGb3VuZCAke25vbmNlS2V5VmFscy5sZW5ndGh9IG1hdGNoaW5nIG5vbmNlIGtleSB2YWx1ZSBpbnN0ZWFkIG9mIDEgb3IgMmApO1xuICB9XG5cbiAgcmV0dXJuIG5vbmNlS2V5VmFscy5tYXAoKGt2KSA9PiBkZWNvZGVQc2J0TXVzaWcyTm9uY2Uoa3YpKTtcbn1cblxuLyoqXG4gKiBAcmV0dXJucyBwc2J0IHByb3ByaWV0YXJ5IGtleSBmb3IgbXVzaWcyIHBhcnRpYWwgc2lnIGtleSB2YWx1ZSBkYXRhXG4gKiBJZiBubyBrZXkgdmFsdWUgZXhpc3RzLCB1bmRlZmluZWQgaXMgcmV0dXJuZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVBzYnRNdXNpZzJQYXJ0aWFsU2lncyhpbnB1dDogUHNidElucHV0KTogUHNidE11c2lnMlBhcnRpYWxTaWdbXSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHNpZ0tleVZhbHMgPSBnZXRQc2J0SW5wdXRQcm9wcmlldGFyeUtleVZhbHMoaW5wdXQsIHtcbiAgICBpZGVudGlmaWVyOiBQU0JUX1BST1BSSUVUQVJZX0lERU5USUZJRVIsXG4gICAgc3VidHlwZTogUHJvcHJpZXRhcnlLZXlTdWJ0eXBlLk1VU0lHMl9QQVJUSUFMX1NJRyxcbiAgfSk7XG5cbiAgaWYgKCFzaWdLZXlWYWxzLmxlbmd0aCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBpZiAoc2lnS2V5VmFscy5sZW5ndGggPiAyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGb3VuZCAke3NpZ0tleVZhbHMubGVuZ3RofSBtYXRjaGluZyBwYXJ0aWFsIHNpZ25hdHVyZSBrZXkgdmFsdWUgaW5zdGVhZCBvZiAxIG9yIDJgKTtcbiAgfVxuXG4gIHJldHVybiBzaWdLZXlWYWxzLm1hcCgoa3YpID0+IGRlY29kZVBzYnRNdXNpZzJQYXJ0aWFsU2lnKGt2KSk7XG59XG5cbi8qKlxuICogQXNzZXJ0IG11c2lnMiBwYXJ0aWNpcGFudCBrZXkgdmFsdWUgZGF0YSB3aXRoIHRhcEludGVybmFsS2V5IGFuZCB0YXBNZXJrbGVSb290LlxuICogPHRhcE91dHB1dEtleT48dGFwSW5wdXRLZXk+ID0+IDxwYXJ0aWNpcGFudEtleTE+PHBhcnRpY2lwYW50S2V5Mj5cbiAqIFVzaW5nIHRhcE1lcmtsZVJvb3QgYW5kIDIgcGFydGljaXBhbnQga2V5cywgdGhlIHRhcElucHV0S2V5IGlzIHZhbGlkYXRlZCBhbmQgdXNpbmcgdGFwTWVya2xlUm9vdCBhbmQgdGFwSW5wdXRLZXksXG4gKiB0aGUgdGFwT3V0cHV0S2V5IGlzIHZhbGlkYXRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydFBzYnRNdXNpZzJQYXJ0aWNpcGFudHMoXG4gIHBhcnRpY2lwYW50S2V5VmFsRGF0YTogUHNidE11c2lnMlBhcnRpY2lwYW50cyxcbiAgdGFwSW50ZXJuYWxLZXk6IEJ1ZmZlcixcbiAgdGFwTWVya2xlUm9vdDogQnVmZmVyXG4pOiB2b2lkIHtcbiAgY2hlY2tYT25seVB1YmxpY0tleSh0YXBJbnRlcm5hbEtleSk7XG4gIGNoZWNrVGFwTWVya2xlUm9vdCh0YXBNZXJrbGVSb290KTtcblxuICBjb25zdCBwYXJ0aWNpcGFudFB1YktleXMgPSBwYXJ0aWNpcGFudEtleVZhbERhdGEucGFydGljaXBhbnRQdWJLZXlzO1xuXG4gIGNvbnN0IGludGVybmFsS2V5ID0gY3JlYXRlVGFwSW50ZXJuYWxLZXkocGFydGljaXBhbnRQdWJLZXlzKTtcbiAgaWYgKCFpbnRlcm5hbEtleS5lcXVhbHMocGFydGljaXBhbnRLZXlWYWxEYXRhLnRhcEludGVybmFsS2V5KSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBwYXJ0aWNpcGFudHMga2V5ZGF0YSB0YXBJbnRlcm5hbEtleScpO1xuICB9XG5cbiAgY29uc3Qgb3V0cHV0S2V5ID0gY3JlYXRlVGFwT3V0cHV0S2V5KGludGVybmFsS2V5LCB0YXBNZXJrbGVSb290KTtcbiAgaWYgKCFvdXRwdXRLZXkuZXF1YWxzKHBhcnRpY2lwYW50S2V5VmFsRGF0YS50YXBPdXRwdXRLZXkpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHBhcnRpY2lwYW50cyBrZXlkYXRhIHRhcE91dHB1dEtleScpO1xuICB9XG5cbiAgaWYgKCFpbnRlcm5hbEtleS5lcXVhbHModGFwSW50ZXJuYWxLZXkpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd0YXBJbnRlcm5hbEtleSBhbmQgYWdncmVnYXRlZCBwYXJ0aWNpcGFudCBwdWIga2V5cyBkb2VzIG5vdCBtYXRjaCcpO1xuICB9XG59XG5cbi8qKlxuICogQXNzZXJ0IG11c2lnMiBwdWJsaWMgbm9uY2Uga2V5IHZhbHVlIGRhdGEgd2l0aCBwYXJ0aWNpcGFudCBrZXkgdmFsdWUgZGF0YVxuICogKHJlZmVyIGFzc2VydFBzYnRNdXNpZzJQYXJ0aWNpcGFudHNLZXlWYWxEYXRhKS5cbiAqIDxwYXJ0aWNpcGFudEtleTE+PHRhcE91dHB1dEtleT4gPT4gPHB1Yk5vbmNlMT5cbiAqIDxwYXJ0aWNpcGFudEtleTI+PHRhcE91dHB1dEtleT4gPT4gPHB1Yk5vbmNlMj5cbiAqIENoZWNrcyBhZ2FpbnN0IHBhcnRpY2lwYW50IGtleXMgYW5kIHRhcE91dHB1dEtleVxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0UHNidE11c2lnMk5vbmNlcyhcbiAgbm9uY2VzS2V5VmFsRGF0YTogUHNidE11c2lnMlB1Yk5vbmNlW10sXG4gIHBhcnRpY2lwYW50S2V5VmFsRGF0YTogUHNidE11c2lnMlBhcnRpY2lwYW50c1xuKTogdm9pZCB7XG4gIGNoZWNrWE9ubHlQdWJsaWNLZXkocGFydGljaXBhbnRLZXlWYWxEYXRhLnRhcE91dHB1dEtleSk7XG4gIHBhcnRpY2lwYW50S2V5VmFsRGF0YS5wYXJ0aWNpcGFudFB1YktleXMuZm9yRWFjaCgoa3YpID0+IGNoZWNrUGxhaW5QdWJsaWNLZXkoa3YpKTtcbiAgaWYgKHBhcnRpY2lwYW50S2V5VmFsRGF0YS5wYXJ0aWNpcGFudFB1YktleXNbMF0uZXF1YWxzKHBhcnRpY2lwYW50S2V5VmFsRGF0YS5wYXJ0aWNpcGFudFB1YktleXNbMV0pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBEdXBsaWNhdGUgcGFydGljaXBhbnQgcHViIGtleXMgZm91bmRgKTtcbiAgfVxuXG4gIGlmIChub25jZXNLZXlWYWxEYXRhLmxlbmd0aCA+IDIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbm9uY2Uga2V5IHZhbHVlIGNvdW50ICR7bm9uY2VzS2V5VmFsRGF0YS5sZW5ndGh9YCk7XG4gIH1cblxuICBub25jZXNLZXlWYWxEYXRhLmZvckVhY2goKG5vbmNlS3YpID0+IHtcbiAgICBjb25zdCBpbmRleCA9IHBhcnRpY2lwYW50S2V5VmFsRGF0YS5wYXJ0aWNpcGFudFB1YktleXMuZmluZEluZGV4KChwdWJLZXkpID0+XG4gICAgICBub25jZUt2LnBhcnRpY2lwYW50UHViS2V5LmVxdWFscyhwdWJLZXkpXG4gICAgKTtcbiAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbm9uY2Uga2V5ZGF0YSBwYXJ0aWNpcGFudCBwdWIga2V5Jyk7XG4gICAgfVxuXG4gICAgaWYgKCFub25jZUt2LnRhcE91dHB1dEtleS5lcXVhbHMocGFydGljaXBhbnRLZXlWYWxEYXRhLnRhcE91dHB1dEtleSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBub25jZSBrZXlkYXRhIHRhcE91dHB1dEtleScpO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogQHJldHVybnMgSW5wdXQgb2JqZWN0IGJ1dCBzaWcgaGFzaCB0eXBlIGRhdGEgaXMgdGFrZW4gb3V0IGZyb20gcGFydGlhbFNpZyBmaWVsZC5cbiAqIElmIHNpZyBoYXNoIHR5cGUgaXMgbm90IGNvbW1vbiBmb3IgYWxsIHNpZ3MsIGVycm9yIG91dCwgb3RoZXJ3aXNlIHJldHVybnMgdGhlIG1vZGlmaWVkIG9iamVjdCBhbmQgc2luZ2xlIGhhc2ggdHlwZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNpZ0hhc2hUeXBlRnJvbVNpZ3MocGFydGlhbFNpZ3M6IFBzYnRNdXNpZzJQYXJ0aWFsU2lnW10pOiB7XG4gIHBhcnRpYWxTaWdzOiBQc2J0TXVzaWcyUGFydGlhbFNpZ1tdO1xuICBzaWdIYXNoVHlwZTogbnVtYmVyO1xufSB7XG4gIGlmICghcGFydGlhbFNpZ3MubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwYXJ0aWFsU2lncyBhcnJheSBjYW4gbm90IGJlIGVtcHR5Jyk7XG4gIH1cbiAgY29uc3QgcFNpZ3NXaXRoSGFzaFR5cGUgPSBwYXJ0aWFsU2lncy5tYXAoKGt2KSA9PiB7XG4gICAgY29uc3QgeyBwYXJ0aWFsU2lnLCBwYXJ0aWNpcGFudFB1YktleSwgdGFwT3V0cHV0S2V5IH0gPSBrdjtcbiAgICByZXR1cm4gcGFydGlhbFNpZy5sZW5ndGggPT09IDMzXG4gICAgICA/IHsgcFNpZzogeyBwYXJ0aWFsU2lnOiBwYXJ0aWFsU2lnLnNsaWNlKDAsIDMyKSwgcGFydGljaXBhbnRQdWJLZXksIHRhcE91dHB1dEtleSB9LCBzaWdIYXNoVHlwZTogcGFydGlhbFNpZ1szMl0gfVxuICAgICAgOiB7IHBTaWc6IHsgcGFydGlhbFNpZywgcGFydGljaXBhbnRQdWJLZXksIHRhcE91dHB1dEtleSB9LCBzaWdIYXNoVHlwZTogVHJhbnNhY3Rpb24uU0lHSEFTSF9ERUZBVUxUIH07XG4gIH0pO1xuXG4gIGNvbnN0IHNpZ0hhc2hUeXBlID0gcFNpZ3NXaXRoSGFzaFR5cGVbMF0uc2lnSGFzaFR5cGU7XG4gIGlmICghcFNpZ3NXaXRoSGFzaFR5cGUuZXZlcnkoKHBTaWcpID0+IHBTaWcuc2lnSGFzaFR5cGUgPT09IHNpZ0hhc2hUeXBlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignc2lnbmF0dXJlcyBtdXN0IHVzZSBzYW1lIHNpZyBoYXNoIHR5cGUnKTtcbiAgfVxuXG4gIHJldHVybiB7IHBhcnRpYWxTaWdzOiBwU2lnc1dpdGhIYXNoVHlwZS5tYXAoKHsgcFNpZyB9KSA9PiBwU2lnKSwgc2lnSGFzaFR5cGUgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU11c2lnMkRldGVybWluaXN0aWNOb25jZShwYXJhbXM6IFBzYnRNdXNpZzJEZXRlcm1pbmlzdGljUGFyYW1zKTogQnVmZmVyIHtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKFxuICAgIG11c2lnLmRldGVybWluaXN0aWNOb25jZUdlbih7XG4gICAgICBzZWNyZXRLZXk6IHBhcmFtcy5wcml2YXRlS2V5LFxuICAgICAgYWdnT3RoZXJOb25jZTogbXVzaWcubm9uY2VBZ2coW3BhcmFtcy5vdGhlck5vbmNlXSksXG4gICAgICBwdWJsaWNLZXlzOiBwYXJhbXMucHVibGljS2V5cyxcbiAgICAgIHR3ZWFrczogW3sgdHdlYWs6IGNyZWF0ZVRhcFR3ZWFrKHBhcmFtcy5pbnRlcm5hbFB1YktleSwgcGFyYW1zLnRhcFRyZWVSb290KSwgeE9ubHk6IHRydWUgfV0sXG4gICAgICBtc2c6IHBhcmFtcy5oYXNoLFxuICAgIH0pLnB1YmxpY05vbmNlXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtdXNpZzJEZXRlcm1pbmlzdGljU2lnbihwYXJhbXM6IFBzYnRNdXNpZzJEZXRlcm1pbmlzdGljUGFyYW1zKToge1xuICBzaWc6IEJ1ZmZlcjtcbiAgc2Vzc2lvbktleTogU2Vzc2lvbktleTtcbiAgcHVibGljTm9uY2U6IEJ1ZmZlcjtcbn0ge1xuICBjb25zdCB7IHNpZywgc2Vzc2lvbktleSwgcHVibGljTm9uY2UgfSA9IG11c2lnLmRldGVybWluaXN0aWNTaWduKHtcbiAgICBzZWNyZXRLZXk6IHBhcmFtcy5wcml2YXRlS2V5LFxuICAgIGFnZ090aGVyTm9uY2U6IG11c2lnLm5vbmNlQWdnKFtwYXJhbXMub3RoZXJOb25jZV0pLFxuICAgIHB1YmxpY0tleXM6IHBhcmFtcy5wdWJsaWNLZXlzLFxuICAgIHR3ZWFrczogW3sgdHdlYWs6IGNyZWF0ZVRhcFR3ZWFrKHBhcmFtcy5pbnRlcm5hbFB1YktleSwgcGFyYW1zLnRhcFRyZWVSb290KSwgeE9ubHk6IHRydWUgfV0sXG4gICAgbXNnOiBwYXJhbXMuaGFzaCxcbiAgfSk7XG4gIHJldHVybiB7IHNpZzogQnVmZmVyLmZyb20oc2lnKSwgc2Vzc2lvbktleSwgcHVibGljTm9uY2U6IEJ1ZmZlci5mcm9tKHB1YmxpY05vbmNlKSB9O1xufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PsbtUtil.d.ts","sourceRoot":"","sources":["../../../src/bitgo/PsbtUtil.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PsbtUtil.d.ts","sourceRoot":"","sources":["../../../src/bitgo/PsbtUtil.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACxF,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,2BAA2B,UAAU,CAAC;AAEnD;;GAEG;AACH,oBAAY,qBAAqB;IAC/B,uBAAuB,IAAO;IAC9B,2BAA2B,IAAO;IAClC,gBAAgB,IAAO;IACvB,kBAAkB,IAAO;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,cAAc,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,cAAc,CAAC;CACrC;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,SAAS,EAChB,SAAS,CAAC,EAAE,oBAAoB,GAC/B,mBAAmB,EAAE,CAmBvB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAYnE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAE9D;AAED;;;KAGK;AACL,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAUrD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CA6B1D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,UAAO,GAAG,CAAC,CAShF"}
|