@bitgo/sdk-core 2.0.0-rc.7 → 2.0.0-rc.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.d.ts +5 -5
- package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.js +9 -10
- package/dist/src/account-lib/util/crypto.d.ts.map +1 -1
- package/dist/src/account-lib/util/crypto.js +9 -10
- package/dist/src/bitgo/baseCoin/baseCoin.js +4 -4
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +3 -2
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
- package/dist/src/bitgo/baseCoin/iBaseCoin.js +1 -1
- package/dist/src/bitgo/bip32util.d.ts +3 -3
- package/dist/src/bitgo/bip32util.d.ts.map +1 -1
- package/dist/src/bitgo/bip32util.js +1 -1
- package/dist/src/bitgo/bitcoin.d.ts +4 -3
- package/dist/src/bitgo/bitcoin.d.ts.map +1 -1
- package/dist/src/bitgo/bitcoin.js +1 -1
- package/dist/src/bitgo/ecdh.d.ts +3 -3
- package/dist/src/bitgo/ecdh.d.ts.map +1 -1
- package/dist/src/bitgo/ecdh.js +1 -1
- package/dist/src/bitgo/environments.d.ts +1 -0
- package/dist/src/bitgo/environments.d.ts.map +1 -1
- package/dist/src/bitgo/environments.js +3 -1
- package/dist/src/bitgo/legacyBitcoin.d.ts +4 -3
- package/dist/src/bitgo/legacyBitcoin.d.ts.map +1 -1
- package/dist/src/bitgo/legacyBitcoin.js +4 -4
- package/dist/src/bitgo/recovery/initiate.d.ts +3 -3
- package/dist/src/bitgo/recovery/initiate.d.ts.map +1 -1
- package/dist/src/bitgo/recovery/initiate.js +5 -24
- package/dist/src/bitgo/staking/stakingWallet.js +2 -2
- package/dist/src/bitgo/utils/opengpgUtils.d.ts +33 -0
- package/dist/src/bitgo/utils/opengpgUtils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/opengpgUtils.js +105 -2
- package/dist/src/bitgo/utils/util.js +4 -4
- package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallet.js +20 -3
- package/dist/src/bitgo/wallet/wallets.js +3 -3
- package/dist/src/coins/ofc.js +4 -23
- package/dist/tsconfig.tsbuildinfo +493 -428
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opengpgUtils.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/utils/opengpgUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,GAAG,EAOJ,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"opengpgUtils.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/utils/opengpgUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,GAAG,EAOJ,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAQtE;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,MAAM,EACzB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,CAYlB;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,eAAe,EAAE,MAAM,EACvB,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,GAC9C,OAAO,CAAC,OAAO,CAAC,CAalB;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,iBAAiB,EAAE,MAAM,EACzB,sBAAsB,EAAE,MAAM,EAC9B,SAAS,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,GAC3C,OAAO,CAAC,MAAM,CAAC,CAsDjB;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsD5F;AAED;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAczE;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBjH;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAclH;AAED;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAWlF;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAoBnH"}
|
|
@@ -20,9 +20,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
20
20
|
return result;
|
|
21
21
|
};
|
|
22
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
-
exports.verifySignature = exports.signText = exports.readSignedMessage = exports.encryptAndSignText = exports.encryptText = exports.createShareProof = exports.getBitgoGpgPubKey = void 0;
|
|
23
|
+
exports.verifySignature = exports.signText = exports.readSignedMessage = exports.encryptAndSignText = exports.encryptText = exports.createShareProof = exports.createSharedDataProof = exports.verifySharedDataProof = exports.verifyEdShareProof = exports.getBitgoGpgPubKey = void 0;
|
|
24
24
|
const openpgp_1 = require("openpgp");
|
|
25
25
|
const pgp = __importStar(require("openpgp"));
|
|
26
|
+
const _ = __importStar(require("lodash"));
|
|
26
27
|
const sodium = require('libsodium-wrappers-sumo');
|
|
27
28
|
/**
|
|
28
29
|
* Fetches BitGo's pubic gpg key used in MPC flows
|
|
@@ -38,6 +39,108 @@ async function getBitgoGpgPubKey(bitgo) {
|
|
|
38
39
|
return await openpgp_1.readKey({ armoredKey: bitgoPublicKeyStr });
|
|
39
40
|
}
|
|
40
41
|
exports.getBitgoGpgPubKey = getBitgoGpgPubKey;
|
|
42
|
+
/**
|
|
43
|
+
* Verify an Eddsa KeyShare Proof.
|
|
44
|
+
*
|
|
45
|
+
* @param senderPubKey public key of the sender of the privateShareProof
|
|
46
|
+
* @param privateShareProof u value proof
|
|
47
|
+
* @param uValue u value from an Eddsa keyshare
|
|
48
|
+
* @return {boolean} whether uValue proof actually was signed by sender as part of their subkeys
|
|
49
|
+
*/
|
|
50
|
+
async function verifyEdShareProof(senderPubKey, privateShareProof, uValue) {
|
|
51
|
+
const decodedProof = await pgp.readKey({ armoredKey: privateShareProof });
|
|
52
|
+
const senderGpgKey = await pgp.readKey({ armoredKey: senderPubKey });
|
|
53
|
+
if (!(await decodedProof.verifyPrimaryUser([senderGpgKey]))[0].valid) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
const proofSubkeys = decodedProof.getSubkeys()[1];
|
|
57
|
+
const decodedUValueProof = Buffer.from(proofSubkeys.keyPacket.publicParams['Q'].slice(1)).toString('hex');
|
|
58
|
+
const rawUValueProof = Buffer.from(sodium.crypto_scalarmult_ed25519_base_noclamp(Buffer.from(uValue, 'hex'))).toString('hex');
|
|
59
|
+
return decodedUValueProof === rawUValueProof;
|
|
60
|
+
}
|
|
61
|
+
exports.verifyEdShareProof = verifyEdShareProof;
|
|
62
|
+
/**
|
|
63
|
+
* Verify a shared data proof.
|
|
64
|
+
*
|
|
65
|
+
* @param senderPubKeyArm public key of the signer of the key with proof data
|
|
66
|
+
* @param keyWithNotation signed reciever key with notation data
|
|
67
|
+
* @param dataToVerify data to be checked against notation data in the signed key
|
|
68
|
+
* @return {boolean} whether proof is valid
|
|
69
|
+
*/
|
|
70
|
+
async function verifySharedDataProof(senderPubKeyArm, keyWithNotation, dataToVerify) {
|
|
71
|
+
const senderPubKey = await pgp.readKey({ armoredKey: senderPubKeyArm });
|
|
72
|
+
const signedKey = await pgp.readKey({ armoredKey: keyWithNotation });
|
|
73
|
+
if (!(await signedKey.verifyPrimaryUser([senderPubKey]).then((values) => _.some(values, (value) => value.valid)))) {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
const primaryUser = await signedKey.getPrimaryUser();
|
|
77
|
+
const anyInvalidProof = _.some(
|
|
78
|
+
// @ts-ignore
|
|
79
|
+
primaryUser.user.otherCertifications[0].rawNotations, (notation) => { var _a; return ((_a = dataToVerify.find((i) => i.name == notation.name)) === null || _a === void 0 ? void 0 : _a.value) !== Buffer.from(notation.value).toString(); });
|
|
80
|
+
return !anyInvalidProof;
|
|
81
|
+
}
|
|
82
|
+
exports.verifySharedDataProof = verifySharedDataProof;
|
|
83
|
+
/**
|
|
84
|
+
* Creates a proof through adding notation data to a GPG ceritifying signature.
|
|
85
|
+
*
|
|
86
|
+
* @param privateKeyArmored gpg private key in armor format of the sender
|
|
87
|
+
* @param publicKeyToCertArmored gpg public key in armor fomrat of the reciever
|
|
88
|
+
* @param notations data to be proofed
|
|
89
|
+
* @return {string} keyshare proof
|
|
90
|
+
*/
|
|
91
|
+
async function createSharedDataProof(privateKeyArmored, publicKeyToCertArmored, notations) {
|
|
92
|
+
const certifyingKey = await pgp.readKey({ armoredKey: privateKeyArmored });
|
|
93
|
+
const publicKeyToCert = await pgp.readKey({ armoredKey: publicKeyToCertArmored });
|
|
94
|
+
const dateTime = new Date();
|
|
95
|
+
// UserId Packet.
|
|
96
|
+
const userIdPkt = new pgp.UserIDPacket();
|
|
97
|
+
const primaryUser = await publicKeyToCert.getPrimaryUser();
|
|
98
|
+
// @ts-ignore
|
|
99
|
+
userIdPkt.userID = primaryUser.user.userID.userID;
|
|
100
|
+
// Signature packet.
|
|
101
|
+
const signaturePacket = new pgp.SignaturePacket();
|
|
102
|
+
signaturePacket.signatureType = pgp.enums.signature.certPositive;
|
|
103
|
+
signaturePacket.publicKeyAlgorithm = pgp.enums.publicKey.ecdsa;
|
|
104
|
+
signaturePacket.hashAlgorithm = pgp.enums.hash.sha256;
|
|
105
|
+
// @ts-ignore
|
|
106
|
+
signaturePacket.issuerFingerprint = await primaryUser.user.mainKey.keyPacket.getFingerprintBytes();
|
|
107
|
+
// @ts-ignore
|
|
108
|
+
signaturePacket.issuerKeyID = primaryUser.user.mainKey.keyPacket.keyID;
|
|
109
|
+
// @ts-ignore
|
|
110
|
+
signaturePacket.signingKeyID = primaryUser.user.mainKey.keyPacket.keyID;
|
|
111
|
+
// @ts-ignore
|
|
112
|
+
signaturePacket.signersUserID = primaryUser.user.userID.userID;
|
|
113
|
+
// @ts-ignore
|
|
114
|
+
signaturePacket.features = [1];
|
|
115
|
+
notations.forEach(({ name, value }) => {
|
|
116
|
+
// @ts-ignore
|
|
117
|
+
signaturePacket.rawNotations.push([
|
|
118
|
+
{
|
|
119
|
+
name: name,
|
|
120
|
+
value: new Uint8Array(Buffer.from(value)),
|
|
121
|
+
humanReadable: true,
|
|
122
|
+
critical: 0,
|
|
123
|
+
},
|
|
124
|
+
]);
|
|
125
|
+
});
|
|
126
|
+
// Prepare signing data.
|
|
127
|
+
const keydataToSign = {};
|
|
128
|
+
// @ts-ignore
|
|
129
|
+
keydataToSign.key = publicKeyToCert.keyPacket;
|
|
130
|
+
// @ts-ignore
|
|
131
|
+
keydataToSign.userID = userIdPkt;
|
|
132
|
+
// Sign the data (create certification).
|
|
133
|
+
// @ts-ignore
|
|
134
|
+
await signaturePacket.sign(certifyingKey.keyPacket, keydataToSign, dateTime);
|
|
135
|
+
// Assemble packets together.
|
|
136
|
+
const publicKeyToCertPkts = publicKeyToCert.toPacketList();
|
|
137
|
+
const newKeyPktList = new pgp.PacketList();
|
|
138
|
+
newKeyPktList.push(...publicKeyToCertPkts.slice(0, 3), signaturePacket, ...publicKeyToCertPkts.slice(3));
|
|
139
|
+
// @ts-ignore
|
|
140
|
+
const newPubKey = new pgp.PublicKey(newKeyPktList);
|
|
141
|
+
return newPubKey.armor().replace(/\r\n/g, '\n');
|
|
142
|
+
}
|
|
143
|
+
exports.createSharedDataProof = createSharedDataProof;
|
|
41
144
|
/**
|
|
42
145
|
* Creates an Eddsa KeyShare Proof by appending an ed25519 subkey to an armored gpg private key.
|
|
43
146
|
*
|
|
@@ -210,4 +313,4 @@ async function verifySignature(text, armoredSignature, publicArmor) {
|
|
|
210
313
|
}
|
|
211
314
|
}
|
|
212
315
|
exports.verifySignature = verifySignature;
|
|
213
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmdwZ1V0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3V0aWxzL29wZW5ncGdVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsc0RBQXNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXRELHFDQVdpQjtBQUNqQiw2Q0FBK0I7QUFHL0IsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBQUM7QUFFbEQ7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxpQkFBaUIsQ0FBQyxLQUFnQjtJQUN0RCxNQUFNLFNBQVMsR0FBRyxNQUFNLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFO1FBQ25ELE1BQU0sSUFBSSxLQUFLLENBQUMsc0VBQXNFLENBQUMsQ0FBQztLQUN6RjtJQUVELE1BQU0saUJBQWlCLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxjQUF3QixDQUFDO0lBQ2pFLE9BQU8sTUFBTSxpQkFBTyxDQUFDLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBUkQsOENBUUM7QUFFRDs7Ozs7O0dBTUc7QUFDSSxLQUFLLFVBQVUsZ0JBQWdCLENBQUMsWUFBb0IsRUFBRSxNQUFjO0lBQ3pFLE1BQU0sVUFBVSxHQUFHLE1BQU0saUJBQU8sQ0FBQyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDNUIsTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ25CLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQzNCLE1BQU0sQ0FBQyxzQ0FBc0MsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFL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RUFBRSxTQUFTO1FBQ2pCLFFBQVEsRUFBRSxJQUFJO0tBQ2YsQ0FBQyxDQUFDO0lBRUgsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQVhELDRCQVdDO0FBRUQ7Ozs7OztHQU1HO0FBQ0ksS0FBSyxVQUFVLGVBQWUsQ0FBQyxJQUFZLEVBQUUsZ0JBQXdCLEVBQUUsV0FBbUI7SUFDL0YsTUFBTSxTQUFTLEdBQUcsTUFBTSxpQkFBTyxDQUFDLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDN0QsTUFBTSxTQUFTLEdBQUcsTUFBTSx1QkFBYSxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQzVELE1BQU0sT0FBTyxHQUFHLE1BQU0sdUJBQWEsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUMsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLGdCQUFNLENBQUM7UUFDdEMsT0FBTztRQUNQLFNBQVM7UUFDVCxnQkFBZ0IsRUFBRSxTQUFTO0tBQzVCLENBQUMsQ0FBQztJQUVILElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDOUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0tBQ2pEO0lBRUQsSUFBSTtRQUNGLE1BQU0sa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUNoRCxPQUFPLElBQUksS0FBSyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7S0FDekM7SUFBQyxNQUFNO1FBQ04sT0FBTyxLQUFLLENBQUM7S0FDZDtBQUNILENBQUM7QUFwQkQsMENBb0JDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50ICovXG5cbmltcG9ydCB7XG4gIGNyZWF0ZU1lc3NhZ2UsXG4gIGRlY3J5cHQsXG4gIGVuY3J5cHQsXG4gIEtleSxcbiAgcmVhZEtleSxcbiAgcmVhZE1lc3NhZ2UsXG4gIHJlYWRQcml2YXRlS2V5LFxuICByZWFkU2lnbmF0dXJlLFxuICBzaWduLFxuICB2ZXJpZnksXG59IGZyb20gJ29wZW5wZ3AnO1xuaW1wb3J0ICogYXMgcGdwIGZyb20gJ29wZW5wZ3AnO1xuaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnLi4vYml0Z29CYXNlJztcblxuY29uc3Qgc29kaXVtID0gcmVxdWlyZSgnbGlic29kaXVtLXdyYXBwZXJzLXN1bW8nKTtcblxuLyoqXG4gKiBGZXRjaGVzIEJpdEdvJ3MgcHViaWMgZ3BnIGtleSB1c2VkIGluIE1QQyBmbG93c1xuICogQHBhcmFtIHtCaXRHb30gYml0Z28gQml0R28gb2JqZWN0XG4gKiBAcmV0dXJuIHtLZXl9IHB1YmxpYyBncGcga2V5XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRCaXRnb0dwZ1B1YktleShiaXRnbzogQml0R29CYXNlKTogUHJvbWlzZTxLZXk+IHtcbiAgY29uc3QgY29uc3RhbnRzID0gYXdhaXQgYml0Z28uZmV0Y2hDb25zdGFudHMoKTtcbiAgaWYgKCFjb25zdGFudHMubXBjIHx8ICFjb25zdGFudHMubXBjLmJpdGdvUHVibGljS2V5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gY3JlYXRlIE1QQyBrZXlzIC0gYml0Z29QdWJsaWNLZXkgaXMgbWlzc2luZyBmcm9tIGNvbnN0YW50cycpO1xuICB9XG5cbiAgY29uc3QgYml0Z29QdWJsaWNLZXlTdHIgPSBjb25zdGFudHMubXBjLmJpdGdvUHVibGljS2V5IGFzIHN0cmluZztcbiAgcmV0dXJuIGF3YWl0IHJlYWRLZXkoeyBhcm1vcmVkS2V5OiBiaXRnb1B1YmxpY0tleVN0ciB9KTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIEVkZHNhIEtleVNoYXJlIFByb29mIGJ5IGFwcGVuZGluZyBhbiBlZDI1NTE5IHN1YmtleSB0byBhbiBhcm1vcmVkIGdwZyBwcml2YXRlIGtleS5cbiAqXG4gKiBAcGFyYW0gcHJpdmF0ZUFybW9yIGdwZyBwcml2YXRlIGtleSBpbiBhcm1vciBmb3JtYXRcbiAqIEBwYXJhbSB1VmFsdWUgdSB2YWx1ZSBmcm9tIGFuIEVkZHNhIGtleXNoYXJlXG4gKiBAcmV0dXJuIHtzdHJpbmd9IGtleXNoYXJlIHByb29mXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVTaGFyZVByb29mKHByaXZhdGVBcm1vcjogc3RyaW5nLCB1VmFsdWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHByaXZhdGVLZXkgPSBhd2FpdCByZWFkS2V5KHsgYXJtb3JlZEtleTogcHJpdmF0ZUFybW9yIH0pO1xuICBjb25zdCBkYXRlVGltZSA9IG5ldyBEYXRlKCk7XG4gIGF3YWl0IHNvZGl1bS5yZWFkeTtcbiAgY29uc3Qgc3ViS2V5VmFsID0gQnVmZmVyLmZyb20oXG4gICAgc29kaXVtLmNyeXB0b19zY2FsYXJtdWx0X2VkMjU1MTlfYmFzZV9ub2NsYW1wKEJ1ZmZlci5mcm9tKHVWYWx1ZSwgJ2hleCcpLCAndWludDhhcnJheScpXG4gICk7XG5cbiAgLy8gU3ViLWtleSAoZW5jcnlwdGlvbiBrZXkpIHBhY2tldC5cbiAgY29uc3QgcHVibGljU3ViS2V5ID0gbmV3IFVpbnQ4QXJyYXkoWy4uLm5ldyBVaW50OEFycmF5KFsweDQwXSksIC4uLm5ldyBVaW50OEFycmF5KHN1YktleVZhbCldKTtcbiAgY29uc3Qgc3ViT2lkID0gWzB4MmIsIDB4MDYsIDB4MDEsIDB4MDQsIDB4MDEsIDB4ZGEsIDB4NDcsIDB4MGYsIDB4MDFdO1xuXG4gIC8vIEB0cy1pZ25vcmVcbiAgc3ViT2lkLndyaXRlID0gKCkgPT4gbmV3IFVpbnQ4QXJyYXkoQnVmZmVyLmZyb20oJzA5MmIwNjAxMDQwMWRhNDcwZjAxJywgJ2hleCcpKTtcbiAgLy8gQHRzLWlnbm9yZSAtIHR5cGUgaW5jb25zaXN0ZW5jeSwgdGhpcyBjdG9yIHN1cHBvcnRzIGEgZGF0ZSBwYXJhbTogaHR0cHM6Ly9kb2NzLm9wZW5wZ3Bqcy5vcmcvU2VjcmV0U3Via2V5UGFja2V0Lmh0bWxcbiAgY29uc3Qgc2VjcmV0U3Via2V5UGFja2V0ID0gbmV3IHBncC5TZWNyZXRTdWJrZXlQYWNrZXQoZGF0ZVRpbWUpO1xuICBzZWNyZXRTdWJrZXlQYWNrZXQuYWxnb3JpdGhtID0gcGdwLmVudW1zLnB1YmxpY0tleS5lZGRzYTtcbiAgLy8gQHRzLWlnbm9yZSAtIHNhbWUgYXMgYWJvdmVcbiAgc2VjcmV0U3Via2V5UGFja2V0LmlzRW5jcnlwdGVkID0gZmFsc2U7XG4gIHNlY3JldFN1YmtleVBhY2tldC5wdWJsaWNQYXJhbXMgPSB7XG4gICAgb2lkOiBzdWJPaWQsXG4gICAgUTogbmV3IFVpbnQ4QXJyYXkocHVibGljU3ViS2V5KSxcbiAgfTtcbiAgLy8gQHRzLWlnbm9yZSAtIHNhbWUgYXMgYWJvdmVcbiAgYXdhaXQgc2VjcmV0U3Via2V5UGFja2V0LmNvbXB1dGVGaW5nZXJwcmludEFuZEtleUlEKCk7XG5cbiAgLy8gU3ViLWtleSBzaWduYXR1cmUgcGFja2V0LlxuICBjb25zdCBzdWJLZXlkYXRhVG9TaWduID0ge1xuICAgIGtleTogcHJpdmF0ZUtleS5rZXlQYWNrZXQsXG4gICAgYmluZDogcHJpdmF0ZUtleS5rZXlQYWNrZXQsXG4gIH07XG4gIGNvbnN0IHN1YmtleVNpZ25hdHVyZVBhY2tldCA9IG5ldyBwZ3AuU2lnbmF0dXJlUGFja2V0KCk7XG4gIHN1YmtleVNpZ25hdHVyZVBhY2tldC5zaWduYXR1cmVUeXBlID0gcGdwLmVudW1zLnNpZ25hdHVyZS5zdWJrZXlCaW5kaW5nO1xuICBzdWJrZXlTaWduYXR1cmVQYWNrZXQucHVibGljS2V5QWxnb3JpdGhtID0gcGdwLmVudW1zLnB1YmxpY0tleS5lY2RzYTtcbiAgc3Via2V5U2lnbmF0dXJlUGFja2V0Lmhhc2hBbGdvcml0aG0gPSBwZ3AuZW51bXMuaGFzaC5zaGEyNTY7XG4gIHN1YmtleVNpZ25hdHVyZVBhY2tldC5rZXlGbGFncyA9IG5ldyBVaW50OEFycmF5KFtwZ3AuZW51bXMua2V5RmxhZ3MuYXV0aGVudGljYXRpb25dKTtcblxuICAvLyBTaWduIHRoZSBzdWJrZXlcbiAgLy8gQHRzLWlnbm9yZSAtIHNpZ24gc3VwcG9ydHMgYXJiaXRyYXJ5IGRhdGEgZm9yIDJuZCBwYXJhbTogaHR0cHM6Ly9kb2NzLm9wZW5wZ3Bqcy5vcmcvU2lnbmF0dXJlUGFja2V0Lmh0bWxcbiAgYXdhaXQgc3Via2V5U2lnbmF0dXJlUGFja2V0LnNpZ24ocHJpdmF0ZUtleS5rZXlQYWNrZXQsIHN1YktleWRhdGFUb1NpZ24sIGRhdGVUaW1lKTtcblxuICAvLyBBc3NlbWJsZSBwYWNrZXRzIHRvZ2V0aGVyLlxuICBjb25zdCBuZXdLZXlQa3RMaXN0ID0gbmV3IHBncC5QYWNrZXRMaXN0KCk7XG4gIGNvbnN0IHByaXZhdGVLZXlQa3RzID0gcHJpdmF0ZUtleS50b1BhY2tldExpc3QoKTtcbiAgcHJpdmF0ZUtleVBrdHMuZm9yRWFjaCgocGFja2V0KSA9PiBuZXdLZXlQa3RMaXN0LnB1c2gocGFja2V0KSk7XG4gIG5ld0tleVBrdExpc3QucHVzaChzZWNyZXRTdWJrZXlQYWNrZXQsIHN1YmtleVNpZ25hdHVyZVBhY2tldCk7XG4gIC8vIEB0cy1pZ25vcmUgLSBzdXBwb3J0cyBwYWNrZXQgbGlzdCBhcyBjdG9yIHBhcmFtOiBodHRwczovL2RvY3Mub3BlbnBncGpzLm9yZy9Qcml2YXRlS2V5Lmh0bWxcbiAgY29uc3QgbmV3UHViS2V5ID0gbmV3IHBncC5Qcml2YXRlS2V5KG5ld0tleVBrdExpc3QpLnRvUHVibGljKCk7XG5cbiAgaWYgKCEoYXdhaXQgbmV3UHViS2V5LnZlcmlmeVByaW1hcnlVc2VyKFtwcml2YXRlS2V5XSkpWzBdLnZhbGlkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbmNvcnJlY3Qgc2lnbmF0dXJlJyk7XG4gIH1cblxuICByZXR1cm4gbmV3UHViS2V5LmFybW9yKCkucmVwbGFjZSgvXFxyXFxuL2csICdcXG4nKTtcbn1cblxuLyoqXG4gKiBFbmNyeXB0cyBzdHJpbmcgdXNpbmcgZ3BnIGtleVxuICogQERFUFJFQ0FURUQgLSBzaG91bGQgdXNlIGVuY3J5cHRBbmRTaWduVGV4dCBpbnN0ZWFkIGZvciBhZGRlZCBzZWN1cml0eVxuICpcbiAqIEBwYXJhbSB0ZXh0IHN0cmluZyB0byBlbmNyeXB0XG4gKiBAcGFyYW0ga2V5IGVuY3J5cHRpb24ga2V5XG4gKiBAcmV0dXJuIHtzdHJpbmd9IGVuY3J5cHRlZCBzdHJpbmdcbiAqXG4gKiBUT0RPKEJHLTQ3MTcwKTogRGVsZXRlIG9uY2UgZ3BnIHNpZ25hdHVyZXMgYXJlIGZ1bGx5IHN1cHBvcnRlZFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5jcnlwdFRleHQodGV4dDogc3RyaW5nLCBrZXk6IEtleSk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IG1lc3NhZ2VUb0VuY3J5cHQgPSBhd2FpdCBjcmVhdGVNZXNzYWdlKHtcbiAgICB0ZXh0LFxuICB9KTtcbiAgcmV0dXJuIGF3YWl0IGVuY3J5cHQoe1xuICAgIG1lc3NhZ2U6IG1lc3NhZ2VUb0VuY3J5cHQsXG4gICAgZW5jcnlwdGlvbktleXM6IFtrZXldLFxuICAgIGZvcm1hdDogJ2FybW9yZWQnLFxuICAgIGNvbmZpZzoge1xuICAgICAgcmVqZWN0Q3VydmVzOiBuZXcgU2V0KCksXG4gICAgICBzaG93VmVyc2lvbjogZmFsc2UsXG4gICAgICBzaG93Q29tbWVudDogZmFsc2UsXG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKlxuICogRW5jcnlwdHMgYW5kIHNpZ25zIGEgc3RyaW5nXG4gKiBAcGFyYW0gdGV4dCBzdHJpbmcgdG8gZW5jcnlwdCBhbmQgc2lnblxuICogQHBhcmFtIHB1YmxpY0FybW9yIHB1YmxpYyBrZXkgdG8gZW5jcnlwdCB3aXRoXG4gKiBAcGFyYW0gcHJpdmF0ZUFybW9yIHByaXZhdGUga2V5IHRvIHNpZ24gd2l0aFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5jcnlwdEFuZFNpZ25UZXh0KHRleHQ6IHN0cmluZywgcHVibGljQXJtb3I6IHN0cmluZywgcHJpdmF0ZUFybW9yOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBwdWJsaWNLZXkgPSBhd2FpdCByZWFkS2V5KHsgYXJtb3JlZEtleTogcHVibGljQXJtb3IgfSk7XG4gIGNvbnN0IHByaXZhdGVLZXkgPSBhd2FpdCByZWFkUHJpdmF0ZUtleSh7IGFybW9yZWRLZXk6IHByaXZhdGVBcm1vciB9KTtcblxuICBjb25zdCBtZXNzYWdlID0gYXdhaXQgY3JlYXRlTWVzc2FnZSh7IHRleHQgfSk7XG5cbiAgY29uc3Qgc2lnbmVkTWVzc2FnZSA9IGF3YWl0IGVuY3J5cHQoe1xuICAgIG1lc3NhZ2UsXG4gICAgZW5jcnlwdGlvbktleXM6IHB1YmxpY0tleSxcbiAgICBzaWduaW5nS2V5czogcHJpdmF0ZUtleSxcbiAgICBmb3JtYXQ6ICdhcm1vcmVkJyxcbiAgICBjb25maWc6IHtcbiAgICAgIHJlamVjdEN1cnZlczogbmV3IFNldCgpLFxuICAgICAgc2hvd1ZlcnNpb246IGZhbHNlLFxuICAgICAgc2hvd0NvbW1lbnQ6IGZhbHNlLFxuICAgIH0sXG4gIH0pO1xuXG4gIHJldHVybiBzaWduZWRNZXNzYWdlO1xufVxuXG4vKipcbiAqIFJlYWRzIGEgc2lnbmVkIGFuZCBlbmNyeXB0ZWQgbWVzc2FnZVxuICpcbiAqIEBwYXJhbSBzaWduZWQgc2lnbmVkIGFuZCBlbmNyeXB0ZWQgbWVzc2FnZVxuICogQHBhcmFtIHB1YmxpY0FybW9yIHB1YmxpYyBrZXkgdG8gdmVyaWZ5IHNpZ25hdHVyZVxuICogQHBhcmFtIHByaXZhdGVBcm1vciBwcml2YXRlIGtleSB0byBkZWNyeXB0IG1lc3NhZ2VcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRTaWduZWRNZXNzYWdlKHNpZ25lZDogc3RyaW5nLCBwdWJsaWNBcm1vcjogc3RyaW5nLCBwcml2YXRlQXJtb3I6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHB1YmxpY0tleSA9IGF3YWl0IHJlYWRLZXkoeyBhcm1vcmVkS2V5OiBwdWJsaWNBcm1vciB9KTtcbiAgY29uc3QgcHJpdmF0ZUtleSA9IGF3YWl0IHJlYWRQcml2YXRlS2V5KHsgYXJtb3JlZEtleTogcHJpdmF0ZUFybW9yIH0pO1xuXG4gIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCByZWFkTWVzc2FnZSh7IGFybW9yZWRNZXNzYWdlOiBzaWduZWQgfSk7XG4gIGNvbnN0IGRlY3J5cHRlZCA9IGF3YWl0IGRlY3J5cHQoe1xuICAgIG1lc3NhZ2UsXG4gICAgdmVyaWZpY2F0aW9uS2V5czogcHVibGljS2V5LFxuICAgIGRlY3J5cHRpb25LZXlzOiBwcml2YXRlS2V5LFxuICAgIGV4cGVjdFNpZ25lZDogdHJ1ZSxcbiAgICBjb25maWc6IHsgcmVqZWN0Q3VydmVzOiBuZXcgU2V0KCkgfSxcbiAgfSk7XG5cbiAgcmV0dXJuIGRlY3J5cHRlZC5kYXRhO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlcyBhIHNpZ25hdHVyZVxuICpcbiAqIEBwYXJhbSB0ZXh0IHN0cmluZyB0byBnZW5lcmF0ZSBhIHNpZ25hdHVyZSBmb3JcbiAqIEBwYXJhbSBwcml2YXRlQXJtb3IgcHJpdmF0ZSBrZXkgYXMgYXJtb3JlZCBzdHJpbmdcbiAqIEByZXR1cm4ge3N0cmluZ30gYXJtb3JlZCBzaWduYXR1cmUgc3RyaW5nXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaWduVGV4dCh0ZXh0OiBzdHJpbmcsIHByaXZhdGVBcm1vcjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgcHJpdmF0ZUtleSA9IGF3YWl0IHJlYWRQcml2YXRlS2V5KHsgYXJtb3JlZEtleTogcHJpdmF0ZUFybW9yIH0pO1xuICBjb25zdCBtZXNzYWdlID0gYXdhaXQgY3JlYXRlTWVzc2FnZSh7IHRleHQgfSk7XG4gIGNvbnN0IHNpZ25hdHVyZSA9IGF3YWl0IHNpZ24oe1xuICAgIG1lc3NhZ2UsXG4gICAgc2lnbmluZ0tleXM6IHByaXZhdGVLZXksXG4gICAgZm9ybWF0OiAnYXJtb3JlZCcsXG4gICAgZGV0YWNoZWQ6IHRydWUsXG4gIH0pO1xuXG4gIHJldHVybiBzaWduYXR1cmU7XG59XG5cbi8qKlxuICogVmVyaWZpZXMgc2lnbmF0dXJlIHdhcyBnZW5lcmF0ZWQgYnkgdGhlIHB1YmxpYyBrZXkgYW5kIG1hdGNoZXMgdGhlIGV4cGVjdGVkIHRleHRcbiAqXG4gKiBAcGFyYW0gdGV4dCB0ZXh0IHRoYXQgdGhlIHNpZ25hdHVyZSB3YXMgZm9yXG4gKiBAcGFyYW0gYXJtb3JlZFNpZ25hdHVyZSBzaWduZWQgbWVzc2FnZSBhcyBhbiBhcm1vcmVkIHN0cmluZ1xuICogQHBhcmFtIHB1YmxpY0FybW9yIHB1YmxpYyBrZXkgdGhhdCBnZW5lcmF0ZWQgdGhlIHNpZ25hdHVyZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdmVyaWZ5U2lnbmF0dXJlKHRleHQ6IHN0cmluZywgYXJtb3JlZFNpZ25hdHVyZTogc3RyaW5nLCBwdWJsaWNBcm1vcjogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IHB1YmxpY0tleSA9IGF3YWl0IHJlYWRLZXkoeyBhcm1vcmVkS2V5OiBwdWJsaWNBcm1vciB9KTtcbiAgY29uc3Qgc2lnbmF0dXJlID0gYXdhaXQgcmVhZFNpZ25hdHVyZSh7IGFybW9yZWRTaWduYXR1cmUgfSk7XG4gIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBjcmVhdGVNZXNzYWdlKHsgdGV4dCB9KTtcbiAgY29uc3QgdmVyaWZpY2F0aW9uUmVzdWx0ID0gYXdhaXQgdmVyaWZ5KHtcbiAgICBtZXNzYWdlLFxuICAgIHNpZ25hdHVyZSxcbiAgICB2ZXJpZmljYXRpb25LZXlzOiBwdWJsaWNLZXksXG4gIH0pO1xuXG4gIGlmICh2ZXJpZmljYXRpb25SZXN1bHQuc2lnbmF0dXJlcy5sZW5ndGggIT09IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbnVtYmVyIG9mIHNpZ25hdHVyZXMnKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgYXdhaXQgdmVyaWZpY2F0aW9uUmVzdWx0LnNpZ25hdHVyZXNbMF0udmVyaWZpZWQ7XG4gICAgcmV0dXJuIHRleHQgPT09IHZlcmlmaWNhdGlvblJlc3VsdC5kYXRhO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
|
|
316
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmdwZ1V0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3V0aWxzL29wZW5ncGdVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsc0RBQXNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXRELHFDQVdpQjtBQUNqQiw2Q0FBK0I7QUFDL0IsMENBQTRCO0FBRzVCLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0FBRWxEOzs7O0dBSUc7QUFDSSxLQUFLLFVBQVUsaUJBQWlCLENBQUMsS0FBZ0I7SUFDdEQsTUFBTSxTQUFTLEdBQUcsTUFBTSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDL0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRTtRQUNuRCxNQUFNLElBQUksS0FBSyxDQUFDLHNFQUFzRSxDQUFDLENBQUM7S0FDekY7SUFFRCxNQUFNLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsY0FBd0IsQ0FBQztJQUNqRSxPQUFPLE1BQU0saUJBQU8sQ0FBQyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7QUFDMUQsQ0FBQztBQVJELDhDQVFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNJLEtBQUssVUFBVSxrQkFBa0IsQ0FDdEMsWUFBb0IsRUFDcEIsaUJBQXlCLEVBQ3pCLE1BQWM7SUFFZCxNQUFNLFlBQVksR0FBRyxNQUFNLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLE1BQU0sWUFBWSxHQUFHLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLElBQUksQ0FBQyxDQUFDLE1BQU0sWUFBWSxDQUFDLGlCQUFpQixDQUFDLENB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dCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnQgKi9cblxuaW1wb3J0IHtcbiAgY3JlYXRlTWVzc2FnZSxcbiAgZGVjcnlwdCxcbiAgZW5jcnlwdCxcbiAgS2V5LFxuICByZWFkS2V5LFxuICByZWFkTWVzc2FnZSxcbiAgcmVhZFByaXZhdGVLZXksXG4gIHJlYWRTaWduYXR1cmUsXG4gIHNpZ24sXG4gIHZlcmlmeSxcbn0gZnJvbSAnb3BlbnBncCc7XG5pbXBvcnQgKiBhcyBwZ3AgZnJvbSAnb3BlbnBncCc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi9iaXRnb0Jhc2UnO1xuXG5jb25zdCBzb2RpdW0gPSByZXF1aXJlKCdsaWJzb2RpdW0td3JhcHBlcnMtc3VtbycpO1xuXG4vKipcbiAqIEZldGNoZXMgQml0R28ncyBwdWJpYyBncGcga2V5IHVzZWQgaW4gTVBDIGZsb3dzXG4gKiBAcGFyYW0ge0JpdEdvfSBiaXRnbyBCaXRHbyBvYmplY3RcbiAqIEByZXR1cm4ge0tleX0gcHVibGljIGdwZyBrZXlcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEJpdGdvR3BnUHViS2V5KGJpdGdvOiBCaXRHb0Jhc2UpOiBQcm9taXNlPEtleT4ge1xuICBjb25zdCBjb25zdGFudHMgPSBhd2FpdCBiaXRnby5mZXRjaENvbnN0YW50cygpO1xuICBpZiAoIWNvbnN0YW50cy5tcGMgfHwgIWNvbnN0YW50cy5tcGMuYml0Z29QdWJsaWNLZXkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBjcmVhdGUgTVBDIGtleXMgLSBiaXRnb1B1YmxpY0tleSBpcyBtaXNzaW5nIGZyb20gY29uc3RhbnRzJyk7XG4gIH1cblxuICBjb25zdCBiaXRnb1B1YmxpY0tleVN0ciA9IGNvbnN0YW50cy5tcGMuYml0Z29QdWJsaWNLZXkgYXMgc3RyaW5nO1xuICByZXR1cm4gYXdhaXQgcmVhZEtleSh7IGFybW9yZWRLZXk6IGJpdGdvUHVibGljS2V5U3RyIH0pO1xufVxuXG4vKipcbiAqIFZlcmlmeSBhbiBFZGRzYSBLZXlTaGFyZSBQcm9vZi5cbiAqXG4gKiBAcGFyYW0gc2VuZGVyUHViS2V5IHB1YmxpYyBrZXkgb2YgdGhlIHNlbmRlciBvZiB0aGUgcHJpdmF0ZVNoYXJlUHJvb2ZcbiAqIEBwYXJhbSBwcml2YXRlU2hhcmVQcm9vZiB1IHZhbHVlIHByb29mXG4gKiBAcGFyYW0gdVZhbHVlIHUgdmFsdWUgZnJvbSBhbiBFZGRzYSBrZXlzaGFyZVxuICogQHJldHVybiB7Ym9vbGVhbn0gd2hldGhlciB1VmFsdWUgcHJvb2YgYWN0dWFsbHkgd2FzIHNpZ25lZCBieSBzZW5kZXIgYXMgcGFydCBvZiB0aGVpciBzdWJrZXlzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB2ZXJpZnlFZFNoYXJlUHJvb2YoXG4gIHNlbmRlclB1YktleTogc3RyaW5nLFxuICBwcml2YXRlU2hhcmVQcm9vZjogc3RyaW5nLFxuICB1VmFsdWU6IHN0cmluZ1xuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IGRlY29kZWRQcm9vZiA9IGF3YWl0IHBncC5yZWFkS2V5KHsgYXJtb3JlZEtleTogcHJpdmF0ZVNoYXJlUHJvb2YgfSk7XG4gIGNvbnN0IHNlbmRlckdwZ0tleSA9IGF3YWl0IHBncC5yZWFkS2V5KHsgYXJtb3JlZEtleTogc2VuZGVyUHViS2V5IH0pO1xuICBpZiAoIShhd2FpdCBkZWNvZGVkUHJvb2YudmVyaWZ5UHJpbWFyeVVzZXIoW3NlbmRlckdwZ0tleV0pKVswXS52YWxpZCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCBwcm9vZlN1YmtleXMgPSBkZWNvZGVkUHJvb2YuZ2V0U3Via2V5cygpWzFdO1xuICBjb25zdCBkZWNvZGVkVVZhbHVlUHJvb2YgPSBCdWZmZXIuZnJvbShwcm9vZlN1YmtleXMua2V5UGFja2V0LnB1YmxpY1BhcmFtc1snUSddLnNsaWNlKDEpKS50b1N0cmluZygnaGV4Jyk7XG4gIGNvbnN0IHJhd1VWYWx1ZVByb29mID0gQnVmZmVyLmZyb20oXG4gICAgc29kaXVtLmNyeXB0b19zY2FsYXJtdWx0X2VkMjU1MTlfYmFzZV9ub2NsYW1wKEJ1ZmZlci5mcm9tKHVWYWx1ZSwgJ2hleCcpKVxuICApLnRvU3RyaW5nKCdoZXgnKTtcbiAgcmV0dXJuIGRlY29kZWRVVmFsdWVQcm9vZiA9PT0gcmF3VVZhbHVlUHJvb2Y7XG59XG5cbi8qKlxuICogVmVyaWZ5IGEgc2hhcmVkIGRhdGEgcHJvb2YuXG4gKlxuICogQHBhcmFtIHNlbmRlclB1YktleUFybSBwdWJsaWMga2V5IG9mIHRoZSBzaWduZXIgb2YgdGhlIGtleSB3aXRoIHByb29mIGRhdGFcbiAqIEBwYXJhbSBrZXlXaXRoTm90YXRpb24gc2lnbmVkIHJlY2lldmVyIGtleSB3aXRoIG5vdGF0aW9uIGRhdGFcbiAqIEBwYXJhbSBkYXRhVG9WZXJpZnkgZGF0YSB0byBiZSBjaGVja2VkIGFnYWluc3Qgbm90YXRpb24gZGF0YSBpbiB0aGUgc2lnbmVkIGtleVxuICogQHJldHVybiB7Ym9vbGVhbn0gd2hldGhlciBwcm9vZiBpcyB2YWxpZFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdmVyaWZ5U2hhcmVkRGF0YVByb29mKFxuICBzZW5kZXJQdWJLZXlBcm06IHN0cmluZyxcbiAga2V5V2l0aE5vdGF0aW9uOiBzdHJpbmcsXG4gIGRhdGFUb1ZlcmlmeTogeyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdXG4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3Qgc2VuZGVyUHViS2V5ID0gYXdhaXQgcGdwLnJlYWRLZXkoeyBhcm1vcmVkS2V5OiBzZW5kZXJQdWJLZXlBcm0gfSk7XG4gIGNvbnN0IHNpZ25lZEtleSA9IGF3YWl0IHBncC5yZWFkS2V5KHsgYXJtb3JlZEtleToga2V5V2l0aE5vdGF0aW9uIH0pO1xuICBpZiAoIShhd2FpdCBzaWduZWRLZXkudmVyaWZ5UHJpbWFyeVVzZXIoW3NlbmRlclB1YktleV0pLnRoZW4oKHZhbHVlcykgPT4gXy5zb21lKHZhbHVlcywgKHZhbHVlKSA9PiB2YWx1ZS52YWxpZCkpKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCBwcmltYXJ5VXNlciA9IGF3YWl0IHNpZ25lZEtleS5nZXRQcmltYXJ5VXNlcigpO1xuICBjb25zdCBhbnlJbnZhbGlkUHJvb2YgPSBfLnNvbWUoXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHByaW1hcnlVc2VyLnVzZXIub3RoZXJDZXJ0aWZpY2F0aW9uc1swXS5yYXdOb3RhdGlvbnMsXG4gICAgKG5vdGF0aW9uKSA9PiBkYXRhVG9WZXJpZnkuZmluZCgoaSkgPT4gaS5uYW1lID09IG5vdGF0aW9uLm5hbWUpPy52YWx1ZSAhPT0gQnVmZmVyLmZyb20obm90YXRpb24udmFsdWUpLnRvU3RyaW5nKClcbiAgKTtcbiAgcmV0dXJuICFhbnlJbnZhbGlkUHJvb2Y7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHByb29mIHRocm91Z2ggYWRkaW5nIG5vdGF0aW9uIGRhdGEgdG8gYSBHUEcgY2VyaXRpZnlpbmcgc2lnbmF0dXJlLlxuICpcbiAqIEBwYXJhbSBwcml2YXRlS2V5QXJtb3JlZCBncGcgcHJpdmF0ZSBrZXkgaW4gYXJtb3IgZm9ybWF0IG9mIHRoZSBzZW5kZXJcbiAqIEBwYXJhbSBwdWJsaWNLZXlUb0NlcnRBcm1vcmVkIGdwZyBwdWJsaWMga2V5IGluIGFybW9yIGZvbXJhdCBvZiB0aGUgcmVjaWV2ZXJcbiAqIEBwYXJhbSBub3RhdGlvbnMgZGF0YSB0byBiZSBwcm9vZmVkXG4gKiBAcmV0dXJuIHtzdHJpbmd9IGtleXNoYXJlIHByb29mXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVTaGFyZWREYXRhUHJvb2YoXG4gIHByaXZhdGVLZXlBcm1vcmVkOiBzdHJpbmcsXG4gIHB1YmxpY0tleVRvQ2VydEFybW9yZWQ6IHN0cmluZyxcbiAgbm90YXRpb25zOiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W11cbik6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IGNlcnRpZnlpbmdLZXkgPSBhd2FpdCBwZ3AucmVhZEtleSh7IGFybW9yZWRLZXk6IHByaXZhdGVLZXlBcm1vcmVkIH0pO1xuICBjb25zdCBwdWJsaWNLZXlUb0NlcnQgPSBhd2FpdCBwZ3AucmVhZEtleSh7IGFybW9yZWRLZXk6IHB1YmxpY0tleVRvQ2VydEFybW9yZWQgfSk7XG4gIGNvbnN0IGRhdGVUaW1lID0gbmV3IERhdGUoKTtcbiAgLy8gVXNlcklkIFBhY2tldC5cbiAgY29uc3QgdXNlcklkUGt0ID0gbmV3IHBncC5Vc2VySURQYWNrZXQoKTtcbiAgY29uc3QgcHJpbWFyeVVzZXIgPSBhd2FpdCBwdWJsaWNLZXlUb0NlcnQuZ2V0UHJpbWFyeVVzZXIoKTtcbiAgLy8gQHRzLWlnbm9yZVxuICB1c2VySWRQa3QudXNlcklEID0gcHJpbWFyeVVzZXIudXNlci51c2VySUQudXNlcklEO1xuICAvLyBTaWduYXR1cmUgcGFja2V0LlxuICBjb25zdCBzaWduYXR1cmVQYWNrZXQgPSBuZXcgcGdwLlNpZ25hdHVyZVBhY2tldCgpO1xuICBzaWduYXR1cmVQYWNrZXQuc2lnbmF0dXJlVHlwZSA9IHBncC5lbnVtcy5zaWduYXR1cmUuY2VydFBvc2l0aXZlO1xuICBzaWduYXR1cmVQYWNrZXQucHVibGljS2V5QWxnb3JpdGhtID0gcGdwLmVudW1zLnB1YmxpY0tleS5lY2RzYTtcbiAgc2lnbmF0dXJlUGFja2V0Lmhhc2hBbGdvcml0aG0gPSBwZ3AuZW51bXMuaGFzaC5zaGEyNTY7XG4gIC8vIEB0cy1pZ25vcmVcbiAgc2lnbmF0dXJlUGFja2V0Lmlzc3VlckZpbmdlcnByaW50ID0gYXdhaXQgcHJpbWFyeVVzZXIudXNlci5tYWluS2V5LmtleVBhY2tldC5nZXRGaW5nZXJwcmludEJ5dGVzKCk7XG4gIC8vIEB0cy1pZ25vcmVcbiAgc2lnbmF0dXJlUGFja2V0Lmlzc3VlcktleUlEID0gcHJpbWFyeVVzZXIudXNlci5tYWluS2V5LmtleVBhY2tldC5rZXlJRDtcbiAgLy8gQHRzLWlnbm9yZVxuICBzaWduYXR1cmVQYWNrZXQuc2lnbmluZ0tleUlEID0gcHJpbWFyeVVzZXIudXNlci5tYWluS2V5LmtleVBhY2tldC5rZXlJRDtcbiAgLy8gQHRzLWlnbm9yZVxuICBzaWduYXR1cmVQYWNrZXQuc2lnbmVyc1VzZXJJRCA9IHByaW1hcnlVc2VyLnVzZXIudXNlcklELnVzZXJJRDtcbiAgLy8gQHRzLWlnbm9yZVxuICBzaWduYXR1cmVQYWNrZXQuZmVhdHVyZXMgPSBbMV07XG4gIG5vdGF0aW9ucy5mb3JFYWNoKCh7IG5hbWUsIHZhbHVlIH0pID0+IHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgc2lnbmF0dXJlUGFja2V0LnJhd05vdGF0aW9ucy5wdXNoKFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgdmFsdWU6IG5ldyBVaW50OEFycmF5KEJ1ZmZlci5mcm9tKHZhbHVlKSksXG4gICAgICAgIGh1bWFuUmVhZGFibGU6IHRydWUsXG4gICAgICAgIGNyaXRpY2FsOiAwLFxuICAgICAgfSxcbiAgICBdKTtcbiAgfSk7XG5cbiAgLy8gUHJlcGFyZSBzaWduaW5nIGRhdGEuXG4gIGNvbnN0IGtleWRhdGFUb1NpZ24gPSB7fTtcbiAgLy8gQHRzLWlnbm9yZVxuICBrZXlkYXRhVG9TaWduLmtleSA9IHB1YmxpY0tleVRvQ2VydC5rZXlQYWNrZXQ7XG4gIC8vIEB0cy1pZ25vcmVcbiAga2V5ZGF0YVRvU2lnbi51c2VySUQgPSB1c2VySWRQa3Q7XG5cbiAgLy8gU2lnbiB0aGUgZGF0YSAoY3JlYXRlIGNlcnRpZmljYXRpb24pLlxuICAvLyBAdHMtaWdub3JlXG4gIGF3YWl0IHNpZ25hdHVyZVBhY2tldC5zaWduKGNlcnRpZnlpbmdLZXkua2V5UGFja2V0LCBrZXlkYXRhVG9TaWduLCBkYXRlVGltZSk7XG5cbiAgLy8gQXNzZW1ibGUgcGFja2V0cyB0b2dldGhlci5cbiAgY29uc3QgcHVibGljS2V5VG9DZXJ0UGt0cyA9IHB1YmxpY0tleVRvQ2VydC50b1BhY2tldExpc3QoKTtcbiAgY29uc3QgbmV3S2V5UGt0TGlzdCA9IG5ldyBwZ3AuUGFja2V0TGlzdCgpO1xuICBuZXdLZXlQa3RMaXN0LnB1c2goLi4ucHVibGljS2V5VG9DZXJ0UGt0cy5zbGljZSgwLCAzKSwgc2lnbmF0dXJlUGFja2V0LCAuLi5wdWJsaWNLZXlUb0NlcnRQa3RzLnNsaWNlKDMpKTtcbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdCBuZXdQdWJLZXkgPSBuZXcgcGdwLlB1YmxpY0tleShuZXdLZXlQa3RMaXN0KTtcbiAgcmV0dXJuIG5ld1B1YktleS5hcm1vcigpLnJlcGxhY2UoL1xcclxcbi9nLCAnXFxuJyk7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBFZGRzYSBLZXlTaGFyZSBQcm9vZiBieSBhcHBlbmRpbmcgYW4gZWQyNTUxOSBzdWJrZXkgdG8gYW4gYXJtb3JlZCBncGcgcHJpdmF0ZSBrZXkuXG4gKlxuICogQHBhcmFtIHByaXZhdGVBcm1vciBncGcgcHJpdmF0ZSBrZXkgaW4gYXJtb3IgZm9ybWF0XG4gKiBAcGFyYW0gdVZhbHVlIHUgdmFsdWUgZnJvbSBhbiBFZGRzYSBrZXlzaGFyZVxuICogQHJldHVybiB7c3RyaW5nfSBrZXlzaGFyZSBwcm9vZlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlU2hhcmVQcm9vZihwcml2YXRlQXJtb3I6IHN0cmluZywgdVZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBwcml2YXRlS2V5ID0gYXdhaXQgcmVhZEtleSh7IGFybW9yZWRLZXk6IHByaXZhdGVBcm1vciB9KTtcbiAgY29uc3QgZGF0ZVRpbWUgPSBuZXcgRGF0ZSgpO1xuICBhd2FpdCBzb2RpdW0ucmVhZHk7XG4gIGNvbnN0IHN1YktleVZhbCA9IEJ1ZmZlci5mcm9tKFxuICAgIHNvZGl1bS5jcnlwdG9fc2NhbGFybXVsdF9lZDI1NTE5X2Jhc2Vfbm9jbGFtcChCdWZmZXIuZnJvbSh1VmFsdWUsICdoZXgnKSwgJ3VpbnQ4YXJyYXknKVxuICApO1xuXG4gIC8vIFN1Yi1rZXkgKGVuY3J5cHRpb24ga2V5KSBwYWNrZXQuXG4gIGNvbnN0IHB1YmxpY1N1YktleSA9IG5ldyBVaW50OEFycmF5KFsuLi5uZXcgVWludDhBcnJheShbMHg0MF0pLCAuLi5uZXcgVWludDhBcnJheShzdWJLZXlWYWwpXSk7XG4gIGNvbnN0IHN1Yk9pZCA9IFsweDJiLCAweDA2LCAweDAxLCAweDA0LCAweDAxLCAweGRhLCAweDQ3LCAweDBmLCAweDAxXTtcblxuICAvLyBAdHMtaWdub3JlXG4gIHN1Yk9pZC53cml0ZSA9ICgpID0+IG5ldyBVaW50OEFycmF5KEJ1ZmZlci5mcm9tKCcwOTJiMDYwMTA0MDFkYTQ3MGYwMScsICdoZXgnKSk7XG4gIC8vIEB0cy1pZ25vcmUgLSB0eXBlIGluY29uc2lzdGVuY3ksIHRoaXMgY3RvciBzdXBwb3J0cyBhIGRhdGUgcGFyYW06IGh0dHBzOi8vZG9jcy5vcGVucGdwanMub3JnL1NlY3JldFN1YmtleVBhY2tldC5odG1sXG4gIGNvbnN0IHNlY3JldFN1YmtleVBhY2tldCA9IG5ldyBwZ3AuU2VjcmV0U3Via2V5UGFja2V0KGRhdGVUaW1lKTtcbiAgc2VjcmV0U3Via2V5UGFja2V0LmFsZ29yaXRobSA9IHBncC5lbnVtcy5wdWJsaWNLZXkuZWRkc2E7XG4gIC8vIEB0cy1pZ25vcmUgLSBzYW1lIGFzIGFib3ZlXG4gIHNlY3JldFN1YmtleVBhY2tldC5pc0VuY3J5cHRlZCA9IGZhbHNlO1xuICBzZWNyZXRTdWJrZXlQYWNrZXQucHVibGljUGFyYW1zID0ge1xuICAgIG9pZDogc3ViT2lkLFxuICAgIFE6IG5ldyBVaW50OEFycmF5KHB1YmxpY1N1YktleSksXG4gIH07XG4gIC8vIEB0cy1pZ25vcmUgLSBzYW1lIGFzIGFib3ZlXG4gIGF3YWl0IHNlY3JldFN1YmtleVBhY2tldC5jb21wdXRlRmluZ2VycHJpbnRBbmRLZXlJRCgpO1xuXG4gIC8vIFN1Yi1rZXkgc2lnbmF0dXJlIHBhY2tldC5cbiAgY29uc3Qgc3ViS2V5ZGF0YVRvU2lnbiA9IHtcbiAgICBrZXk6IHByaXZhdGVLZXkua2V5UGFja2V0LFxuICAgIGJpbmQ6IHByaXZhdGVLZXkua2V5UGFja2V0LFxuICB9O1xuICBjb25zdCBzdWJrZXlTaWduYXR1cmVQYWNrZXQgPSBuZXcgcGdwLlNpZ25hdHVyZVBhY2tldCgpO1xuICBzdWJrZXlTaWduYXR1cmVQYWNrZXQuc2lnbmF0dXJlVHlwZSA9IHBncC5lbnVtcy5zaWduYXR1cmUuc3Via2V5QmluZGluZztcbiAgc3Via2V5U2lnbmF0dXJlUGFja2V0LnB1YmxpY0tleUFsZ29yaXRobSA9IHBncC5lbnVtcy5wdWJsaWNLZXkuZWNkc2E7XG4gIHN1YmtleVNpZ25hdHVyZVBhY2tldC5oYXNoQWxnb3JpdGhtID0gcGdwLmVudW1zLmhhc2guc2hhMjU2O1xuICBzdWJrZXlTaWduYXR1cmVQYWNrZXQua2V5RmxhZ3MgPSBuZXcgVWludDhBcnJheShbcGdwLmVudW1zLmtleUZsYWdzLmF1dGhlbnRpY2F0aW9uXSk7XG5cbiAgLy8gU2lnbiB0aGUgc3Via2V5XG4gIC8vIEB0cy1pZ25vcmUgLSBzaWduIHN1cHBvcnRzIGFyYml0cmFyeSBkYXRhIGZvciAybmQgcGFyYW06IGh0dHBzOi8vZG9jcy5vcGVucGdwanMub3JnL1NpZ25hdHVyZVBhY2tldC5odG1sXG4gIGF3YWl0IHN1YmtleVNpZ25hdHVyZVBhY2tldC5zaWduKHByaXZhdGVLZXkua2V5UGFja2V0LCBzdWJLZXlkYXRhVG9TaWduLCBkYXRlVGltZSk7XG5cbiAgLy8gQXNzZW1ibGUgcGFja2V0cyB0b2dldGhlci5cbiAgY29uc3QgbmV3S2V5UGt0TGlzdCA9IG5ldyBwZ3AuUGFja2V0TGlzdCgpO1xuICBjb25zdCBwcml2YXRlS2V5UGt0cyA9IHByaXZhdGVLZXkudG9QYWNrZXRMaXN0KCk7XG4gIHByaXZhdGVLZXlQa3RzLmZvckVhY2goKHBhY2tldCkgPT4gbmV3S2V5UGt0TGlzdC5wdXNoKHBhY2tldCkpO1xuICBuZXdLZXlQa3RMaXN0LnB1c2goc2VjcmV0U3Via2V5UGFja2V0LCBzdWJrZXlTaWduYXR1cmVQYWNrZXQpO1xuICAvLyBAdHMtaWdub3JlIC0gc3VwcG9ydHMgcGFja2V0IGxpc3QgYXMgY3RvciBwYXJhbTogaHR0cHM6Ly9kb2NzLm9wZW5wZ3Bqcy5vcmcvUHJpdmF0ZUtleS5odG1sXG4gIGNvbnN0IG5ld1B1YktleSA9IG5ldyBwZ3AuUHJpdmF0ZUtleShuZXdLZXlQa3RMaXN0KS50b1B1YmxpYygpO1xuXG4gIGlmICghKGF3YWl0IG5ld1B1YktleS52ZXJpZnlQcmltYXJ5VXNlcihbcHJpdmF0ZUtleV0pKVswXS52YWxpZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW5jb3JyZWN0IHNpZ25hdHVyZScpO1xuICB9XG5cbiAgcmV0dXJuIG5ld1B1YktleS5hcm1vcigpLnJlcGxhY2UoL1xcclxcbi9nLCAnXFxuJyk7XG59XG5cbi8qKlxuICogRW5jcnlwdHMgc3RyaW5nIHVzaW5nIGdwZyBrZXlcbiAqIEBERVBSRUNBVEVEIC0gc2hvdWxkIHVzZSBlbmNyeXB0QW5kU2lnblRleHQgaW5zdGVhZCBmb3IgYWRkZWQgc2VjdXJpdHlcbiAqXG4gKiBAcGFyYW0gdGV4dCBzdHJpbmcgdG8gZW5jcnlwdFxuICogQHBhcmFtIGtleSBlbmNyeXB0aW9uIGtleVxuICogQHJldHVybiB7c3RyaW5nfSBlbmNyeXB0ZWQgc3RyaW5nXG4gKlxuICogVE9ETyhCRy00NzE3MCk6IERlbGV0ZSBvbmNlIGdwZyBzaWduYXR1cmVzIGFyZSBmdWxseSBzdXBwb3J0ZWRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVuY3J5cHRUZXh0KHRleHQ6IHN0cmluZywga2V5OiBLZXkpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBtZXNzYWdlVG9FbmNyeXB0ID0gYXdhaXQgY3JlYXRlTWVzc2FnZSh7XG4gICAgdGV4dCxcbiAgfSk7XG4gIHJldHVybiBhd2FpdCBlbmNyeXB0KHtcbiAgICBtZXNzYWdlOiBtZXNzYWdlVG9FbmNyeXB0LFxuICAgIGVuY3J5cHRpb25LZXlzOiBba2V5XSxcbiAgICBmb3JtYXQ6ICdhcm1vcmVkJyxcbiAgICBjb25maWc6IHtcbiAgICAgIHJlamVjdEN1cnZlczogbmV3IFNldCgpLFxuICAgICAgc2hvd1ZlcnNpb246IGZhbHNlLFxuICAgICAgc2hvd0NvbW1lbnQ6IGZhbHNlLFxuICAgIH0sXG4gIH0pO1xufVxuXG4vKipcbiAqIEVuY3J5cHRzIGFuZCBzaWducyBhIHN0cmluZ1xuICogQHBhcmFtIHRleHQgc3RyaW5nIHRvIGVuY3J5cHQgYW5kIHNpZ25cbiAqIEBwYXJhbSBwdWJsaWNBcm1vciBwdWJsaWMga2V5IHRvIGVuY3J5cHQgd2l0aFxuICogQHBhcmFtIHByaXZhdGVBcm1vciBwcml2YXRlIGtleSB0byBzaWduIHdpdGhcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVuY3J5cHRBbmRTaWduVGV4dCh0ZXh0OiBzdHJpbmcsIHB1YmxpY0FybW9yOiBzdHJpbmcsIHByaXZhdGVBcm1vcjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgcHVibGljS2V5ID0gYXdhaXQgcmVhZEtleSh7IGFybW9yZWRLZXk6IHB1YmxpY0FybW9yIH0pO1xuICBjb25zdCBwcml2YXRlS2V5ID0gYXdhaXQgcmVhZFByaXZhdGVLZXkoeyBhcm1vcmVkS2V5OiBwcml2YXRlQXJtb3IgfSk7XG5cbiAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGNyZWF0ZU1lc3NhZ2UoeyB0ZXh0IH0pO1xuXG4gIGNvbnN0IHNpZ25lZE1lc3NhZ2UgPSBhd2FpdCBlbmNyeXB0KHtcbiAgICBtZXNzYWdlLFxuICAgIGVuY3J5cHRpb25LZXlzOiBwdWJsaWNLZXksXG4gICAgc2lnbmluZ0tleXM6IHByaXZhdGVLZXksXG4gICAgZm9ybWF0OiAnYXJtb3JlZCcsXG4gICAgY29uZmlnOiB7XG4gICAgICByZWplY3RDdXJ2ZXM6IG5ldyBTZXQoKSxcbiAgICAgIHNob3dWZXJzaW9uOiBmYWxzZSxcbiAgICAgIHNob3dDb21tZW50OiBmYWxzZSxcbiAgICB9LFxuICB9KTtcblxuICByZXR1cm4gc2lnbmVkTWVzc2FnZTtcbn1cblxuLyoqXG4gKiBSZWFkcyBhIHNpZ25lZCBhbmQgZW5jcnlwdGVkIG1lc3NhZ2VcbiAqXG4gKiBAcGFyYW0gc2lnbmVkIHNpZ25lZCBhbmQgZW5jcnlwdGVkIG1lc3NhZ2VcbiAqIEBwYXJhbSBwdWJsaWNBcm1vciBwdWJsaWMga2V5IHRvIHZlcmlmeSBzaWduYXR1cmVcbiAqIEBwYXJhbSBwcml2YXRlQXJtb3IgcHJpdmF0ZSBrZXkgdG8gZGVjcnlwdCBtZXNzYWdlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkU2lnbmVkTWVzc2FnZShzaWduZWQ6IHN0cmluZywgcHVibGljQXJtb3I6IHN0cmluZywgcHJpdmF0ZUFybW9yOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBwdWJsaWNLZXkgPSBhd2FpdCByZWFkS2V5KHsgYXJtb3JlZEtleTogcHVibGljQXJtb3IgfSk7XG4gIGNvbnN0IHByaXZhdGVLZXkgPSBhd2FpdCByZWFkUHJpdmF0ZUtleSh7IGFybW9yZWRLZXk6IHByaXZhdGVBcm1vciB9KTtcblxuICBjb25zdCBtZXNzYWdlID0gYXdhaXQgcmVhZE1lc3NhZ2UoeyBhcm1vcmVkTWVzc2FnZTogc2lnbmVkIH0pO1xuICBjb25zdCBkZWNyeXB0ZWQgPSBhd2FpdCBkZWNyeXB0KHtcbiAgICBtZXNzYWdlLFxuICAgIHZlcmlmaWNhdGlvbktleXM6IHB1YmxpY0tleSxcbiAgICBkZWNyeXB0aW9uS2V5czogcHJpdmF0ZUtleSxcbiAgICBleHBlY3RTaWduZWQ6IHRydWUsXG4gICAgY29uZmlnOiB7IHJlamVjdEN1cnZlczogbmV3IFNldCgpIH0sXG4gIH0pO1xuXG4gIHJldHVybiBkZWNyeXB0ZWQuZGF0YTtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgYSBzaWduYXR1cmVcbiAqXG4gKiBAcGFyYW0gdGV4dCBzdHJpbmcgdG8gZ2VuZXJhdGUgYSBzaWduYXR1cmUgZm9yXG4gKiBAcGFyYW0gcHJpdmF0ZUFybW9yIHByaXZhdGUga2V5IGFzIGFybW9yZWQgc3RyaW5nXG4gKiBAcmV0dXJuIHtzdHJpbmd9IGFybW9yZWQgc2lnbmF0dXJlIHN0cmluZ1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2lnblRleHQodGV4dDogc3RyaW5nLCBwcml2YXRlQXJtb3I6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHByaXZhdGVLZXkgPSBhd2FpdCByZWFkUHJpdmF0ZUtleSh7IGFybW9yZWRLZXk6IHByaXZhdGVBcm1vciB9KTtcbiAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGNyZWF0ZU1lc3NhZ2UoeyB0ZXh0IH0pO1xuICBjb25zdCBzaWduYXR1cmUgPSBhd2FpdCBzaWduKHtcbiAgICBtZXNzYWdlLFxuICAgIHNpZ25pbmdLZXlzOiBwcml2YXRlS2V5LFxuICAgIGZvcm1hdDogJ2FybW9yZWQnLFxuICAgIGRldGFjaGVkOiB0cnVlLFxuICB9KTtcblxuICByZXR1cm4gc2lnbmF0dXJlO1xufVxuXG4vKipcbiAqIFZlcmlmaWVzIHNpZ25hdHVyZSB3YXMgZ2VuZXJhdGVkIGJ5IHRoZSBwdWJsaWMga2V5IGFuZCBtYXRjaGVzIHRoZSBleHBlY3RlZCB0ZXh0XG4gKlxuICogQHBhcmFtIHRleHQgdGV4dCB0aGF0IHRoZSBzaWduYXR1cmUgd2FzIGZvclxuICogQHBhcmFtIGFybW9yZWRTaWduYXR1cmUgc2lnbmVkIG1lc3NhZ2UgYXMgYW4gYXJtb3JlZCBzdHJpbmdcbiAqIEBwYXJhbSBwdWJsaWNBcm1vciBwdWJsaWMga2V5IHRoYXQgZ2VuZXJhdGVkIHRoZSBzaWduYXR1cmVcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHZlcmlmeVNpZ25hdHVyZSh0ZXh0OiBzdHJpbmcsIGFybW9yZWRTaWduYXR1cmU6IHN0cmluZywgcHVibGljQXJtb3I6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCBwdWJsaWNLZXkgPSBhd2FpdCByZWFkS2V5KHsgYXJtb3JlZEtleTogcHVibGljQXJtb3IgfSk7XG4gIGNvbnN0IHNpZ25hdHVyZSA9IGF3YWl0IHJlYWRTaWduYXR1cmUoeyBhcm1vcmVkU2lnbmF0dXJlIH0pO1xuICBjb25zdCBtZXNzYWdlID0gYXdhaXQgY3JlYXRlTWVzc2FnZSh7IHRleHQgfSk7XG4gIGNvbnN0IHZlcmlmaWNhdGlvblJlc3VsdCA9IGF3YWl0IHZlcmlmeSh7XG4gICAgbWVzc2FnZSxcbiAgICBzaWduYXR1cmUsXG4gICAgdmVyaWZpY2F0aW9uS2V5czogcHVibGljS2V5LFxuICB9KTtcblxuICBpZiAodmVyaWZpY2F0aW9uUmVzdWx0LnNpZ25hdHVyZXMubGVuZ3RoICE9PSAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG51bWJlciBvZiBzaWduYXR1cmVzJyk7XG4gIH1cblxuICB0cnkge1xuICAgIGF3YWl0IHZlcmlmaWNhdGlvblJlc3VsdC5zaWduYXR1cmVzWzBdLnZlcmlmaWVkO1xuICAgIHJldHVybiB0ZXh0ID09PSB2ZXJpZmljYXRpb25SZXN1bHQuZGF0YTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=
|
|
@@ -26,7 +26,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
exports.Util = exports.RequestTracer = void 0;
|
|
27
27
|
/**
|
|
28
28
|
*/
|
|
29
|
-
const
|
|
29
|
+
const utxo_lib_1 = require("@bitgo/utxo-lib");
|
|
30
30
|
const Big = __importStar(require("big.js"));
|
|
31
31
|
const _ = __importStar(require("lodash"));
|
|
32
32
|
const crypto_1 = require("crypto");
|
|
@@ -125,7 +125,7 @@ class Util {
|
|
|
125
125
|
if (!isEthAvailable) {
|
|
126
126
|
throw new errors_1.EthereumLibraryUnavailableError(ethImport);
|
|
127
127
|
}
|
|
128
|
-
return ethUtil.bufferToHex(ethUtil.publicToAddress(bip32.fromBase58(xpub).publicKey, true /* sanitize */));
|
|
128
|
+
return ethUtil.bufferToHex(ethUtil.publicToAddress(utxo_lib_1.bip32.fromBase58(xpub).publicKey, true /* sanitize */));
|
|
129
129
|
}
|
|
130
130
|
/**
|
|
131
131
|
* Convert a BTC xpriv to an Ethereum private key (without 0x prefix)
|
|
@@ -133,7 +133,7 @@ class Util {
|
|
|
133
133
|
* @deprecated
|
|
134
134
|
*/
|
|
135
135
|
static xprvToEthPrivateKey(xprv) {
|
|
136
|
-
const node = bip32.fromBase58(xprv);
|
|
136
|
+
const node = utxo_lib_1.bip32.fromBase58(xprv);
|
|
137
137
|
if (!node.privateKey) {
|
|
138
138
|
throw new Error(`no privateKey`);
|
|
139
139
|
}
|
|
@@ -195,4 +195,4 @@ class Util {
|
|
|
195
195
|
}
|
|
196
196
|
}
|
|
197
197
|
exports.Util = Util;
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby91dGlscy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSDtHQUNHO0FBQ0gsNkNBQStCO0FBQy9CLDRDQUE4QjtBQUM5QiwwQ0FBNEI7QUFDNUIsbUNBQXFDO0FBRXJDLHNDQUE0RDtBQUU1RCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUM7QUFFaEQsSUFBSSxPQUFPLENBQUM7QUFDWixJQUFJLGNBQWMsR0FBRyxLQUFLLENBQUM7QUFFM0IsTUFBTSxTQUFTLEdBQUcsaUJBQWlCLENBQUM7QUFDcEMsa0RBQU8saUJBQWlCLElBQ3JCLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO0lBQ1osT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUNkLGNBQWMsR0FBRyxJQUFJLENBQUM7QUFDeEIsQ0FBQyxDQUFDO0tBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDWCxtQ0FBbUM7SUFDbkMsS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFDekMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNqQixDQUFDLENBQUMsQ0FBQztBQUVMOztHQUVHO0FBQ0gsTUFBYSxhQUFhO0lBR3hCO1FBRlEsU0FBSSxHQUFHLENBQUMsQ0FBQztRQUdmLElBQUksQ0FBQyxLQUFLLEdBQUcsb0JBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsR0FBRztRQUNELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxD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QUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztDQUNGO0FBcEpELG9CQW9KQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKiBAaGlkZGVuXG4gKi9cblxuLyoqXG4gKi9cbmltcG9ydCAqIGFzIGJpcDMyIGZyb20gJ2JpcDMyJztcbmltcG9ydCAqIGFzIEJpZyBmcm9tICdiaWcuanMnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgcmFuZG9tQnl0ZXMgfSBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHsgSVJlcXVlc3RUcmFjZXIgfSBmcm9tICcuLi8uLi9hcGknO1xuaW1wb3J0IHsgRXRoZXJldW1MaWJyYXJ5VW5hdmFpbGFibGVFcnJvciB9IGZyb20gJy4uL2Vycm9ycyc7XG5cbmNvbnN0IGRlYnVnID0gcmVxdWlyZSgnZGVidWcnKSgnYml0Z286djI6dXRpbCcpO1xuXG5sZXQgZXRoVXRpbDtcbmxldCBpc0V0aEF2YWlsYWJsZSA9IGZhbHNlO1xuXG5jb25zdCBldGhJbXBvcnQgPSAnZXRoZXJldW1qcy11dGlsJztcbmltcG9ydCgnZXRoZXJldW1qcy11dGlsJylcbiAgLnRoZW4oKGV0aCkgPT4ge1xuICAgIGV0aFV0aWwgPSBldGg7XG4gICAgaXNFdGhBdmFpbGFibGUgPSB0cnVlO1xuICB9KVxuICAuY2F0Y2goKGUpID0+IHtcbiAgICAvLyBldGhlcmV1bSBjdXJyZW50bHkgbm90IHN1cHBvcnRlZFxuICAgIGRlYnVnKCd1bmFibGUgdG8gbG9hZCBldGhlcmV1bWpzLXV0aWw6Jyk7XG4gICAgZGVidWcoZS5zdGFjayk7XG4gIH0pO1xuXG4vKipcbiAqIENyZWF0ZSBhIHJlcXVlc3QgdHJhY2VyIGZvciB0cmFjaW5nIHdvcmtmbG93cyB3aGljaCBpbnZvbHZlIG11bHRpcGxlIHJvdW5kIHRyaXBzIHRvIHRoZSBzZXJ2ZXJcbiAqL1xuZXhwb3J0IGNsYXNzIFJlcXVlc3RUcmFjZXIgaW1wbGVtZW50cyBJUmVxdWVzdFRyYWNlciB7XG4gIHByaXZhdGUgX3NlcSA9IDA7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlZWQ6IEJ1ZmZlcjtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5fc2VlZCA9IHJhbmRvbUJ5dGVzKDEwKTtcbiAgfVxuXG4gIGluYygpIHtcbiAgICB0aGlzLl9zZXErKztcbiAgfVxuXG4gIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiBgJHt0aGlzLl9zZWVkLnRvU3RyaW5nKCdoZXgnKX0tJHtfLnBhZFN0YXJ0KHRoaXMuX3NlcS50b1N0cmluZygxNiksIDQsICcwJyl9YDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVXRpbCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBzdGF0aWMgaXNFdGhBdmFpbGFibGUoKSB7XG4gICAgcmV0dXJuIGlzRXRoQXZhaWxhYmxlO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgYSBiaWcuanMgYmlnIG51bWJlciB0byBhbiBhcnJheSBvZiB1bnNpZ25lZCBieXRlc1xuICAgKiBAcGFyYW0gYm5cbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIHN0YXRpYyBiblRvQnl0ZUFycmF5VW5zaWduZWQoYm46IGFueSk6IGFueSB7XG4gICAgbGV0IGJhID0gYm4uYWJzKCkudG9CeXRlQXJyYXkoKTtcbiAgICBpZiAoYmEubGVuZ3RoKSB7XG4gICAgICBpZiAoYmFbMF0gPT09IDApIHtcbiAgICAgICAgYmEgPSBiYS5zbGljZSgxKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYS5tYXAoZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgcmV0dXJuIHYgPCAwID8gdiArIDI1NiA6IHY7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRW1wdHkgYXJyYXksIG5vdGhpbmcgdG8gZG9cbiAgICAgIHJldHVybiBiYTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXRpbGl0eSBtZXRob2QgZm9yIGhhbmRsaW5nIGFyZ3VtZW50cyBvZiBwYWdlYWJsZSBxdWVyaWVzXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIHN0YXRpYyBwcmVwYXJlUGFnZWFibGVRdWVyeShwYXJhbXM6IHsgbGltaXQ/OiBudW1iZXI7IHNraXA/OiBudW1iZXIgfSA9IHt9KTogeyBsaW1pdD86IG51bWJlcjsgc2tpcD86IG51bWJlciB9IHtcbiAgICBjb25zdCBxdWVyeTogYW55ID0ge307XG4gICAgaWYgKHBhcmFtcy5saW1pdCkge1xuICAgICAgaWYgKCFfLmlzTnVtYmVyKHBhcmFtcy5saW1pdCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIGxpbWl0IGFyZ3VtZW50LCBleHBlY3RpbmcgbnVtYmVyJyk7XG4gICAgICB9XG4gICAgICBxdWVyeS5saW1pdCA9IHBhcmFtcy5saW1pdDtcbiAgICB9XG4gICAgaWYgKHBhcmFtcy5za2lwKSB7XG4gICAgICBpZiAoIV8uaXNOdW1iZXIocGFyYW1zLnNraXApKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBza2lwIGFyZ3VtZW50LCBleHBlY3RpbmcgbnVtYmVyJyk7XG4gICAgICB9XG4gICAgICBxdWVyeS5za2lwID0gcGFyYW1zLnNraXA7XG4gICAgfVxuICAgIHJldHVybiBxdWVyeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSByZXF1ZXN0IGlkZW50aWZpZXIgZm9yIHRyYWNpbmcgbXVsdGktcmVxdWVzdCB3b3JrZmxvd3NcbiAgICovXG4gIHN0YXRpYyBjcmVhdGVSZXF1ZXN0SWQoKTogUmVxdWVzdFRyYWNlciB7XG4gICAgcmV0dXJuIG5ldyBSZXF1ZXN0VHJhY2VyKCk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCBhIEJUQyB4cHViIHRvIGFuIEV0aGVyZXVtIGFkZHJlc3MgKHdpdGggMHggcHJlZml4KVxuICAgKiBAcGFyYW0geHB1YlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgc3RhdGljIHhwdWJUb0V0aEFkZHJlc3MoeHB1Yjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWlzRXRoQXZhaWxhYmxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXRoZXJldW1MaWJyYXJ5VW5hdmFpbGFibGVFcnJvcihldGhJbXBvcnQpO1xuICAgIH1cbiAgICByZXR1cm4gZXRoVXRpbC5idWZmZXJUb0hleChldGhVdGlsLnB1YmxpY1RvQWRkcmVzcyhiaXAzMi5mcm9tQmFzZTU4KHhwdWIpLnB1YmxpY0tleSwgdHJ1ZSAvKiBzYW5pdGl6ZSAqLykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgYSBCVEMgeHByaXYgdG8gYW4gRXRoZXJldW0gcHJpdmF0ZSBrZXkgKHdpdGhvdXQgMHggcHJlZml4KVxuICAgKiBAcGFyYW0geHBydlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgc3RhdGljIHhwcnZUb0V0aFByaXZhdGVLZXkoeHBydjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBub2RlID0gYmlwMzIuZnJvbUJhc2U1OCh4cHJ2KTtcbiAgICBpZiAoIW5vZGUucHJpdmF0ZUtleSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBubyBwcml2YXRlS2V5YCk7XG4gICAgfVxuICAgIHJldHVybiBub2RlLnByaXZhdGVLZXkudG9TdHJpbmcoJ2hleCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gYSBtZXNzYWdlIHVzaW5nIEV0aGVyZXVtJ3MgRUNzaWduIG1ldGhvZCBhbmQgcmV0dXJuIHRoZSBzaWduYXR1cmUgc3RyaW5nXG4gICAqIEBwYXJhbSBtc2dIYXNoXG4gICAqIEBwYXJhbSBwcml2S2V5XG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBzdGF0aWMgZXRoU2lnbk1zZ0hhc2gobXNnSGFzaDogc3RyaW5nLCBwcml2S2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghaXNFdGhBdmFpbGFibGUpIHtcbiAgICAgIHRocm93IG5ldyBFdGhlcmV1bUxpYnJhcnlVbmF2YWlsYWJsZUVycm9yKGV0aEltcG9ydCk7XG4gICAgfVxuICAgIGNvbnN0IHNpZ25hdHVyZUluUGFydHMgPSBldGhVdGlsLmVjc2lnbihcbiAgICAgIEJ1ZmZlci5mcm9tKGV0aFV0aWwuc3RyaXBIZXhQcmVmaXgobXNnSGFzaCksICdoZXgnKSxcbiAgICAgIEJ1ZmZlci5mcm9tKHByaXZLZXksICdoZXgnKVxuICAgICk7XG5cbiAgICAvLyBBc3NlbWJsZSBzdHJpbmdzIGZyb20gciwgcyBhbmQgdlxuICAgIGNvbnN0IHIgPSBldGhVdGlsLnNldExlbmd0aExlZnQoc2lnbmF0dXJlSW5QYXJ0cy5yLCAzMikudG9TdHJpbmcoJ2hleCcpO1xuICAgIGNvbnN0IHMgPSBldGhVdGlsLnNldExlbmd0aExlZnQoc2lnbmF0dXJlSW5QYXJ0cy5zLCAzMikudG9TdHJpbmcoJ2hleCcpO1xuICAgIGNvbnN0IHYgPSBldGhVdGlsLnN0cmlwSGV4UHJlZml4KGV0aFV0aWwuaW50VG9IZXgoc2lnbmF0dXJlSW5QYXJ0cy52KSk7XG5cbiAgICAvLyBDb25jYXRlbmF0ZSB0aGUgciwgcyBhbmQgdiBwYXJ0cyB0byBtYWtlIHRoZSBzaWduYXR1cmUgc3RyaW5nXG4gICAgcmV0dXJuIGV0aFV0aWwuYWRkSGV4UHJlZml4KHIuY29uY2F0KHMsIHYpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGZyb20gd2VpIHN0cmluZyAob3IgQk4pIHRvIEV0aGVyIChtdWx0aXBseSBieSAxZTE4KVxuICAgKiBAcGFyYW0gd2VpXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBzdGF0aWMgd2VpVG9FdGhlclN0cmluZyh3ZWk6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKCFpc0V0aEF2YWlsYWJsZSkge1xuICAgICAgdGhyb3cgbmV3IEV0aGVyZXVtTGlicmFyeVVuYXZhaWxhYmxlRXJyb3IoZXRoSW1wb3J0KTtcbiAgICB9XG4gICAgbGV0IGJuID0gd2VpO1xuICAgIGlmICghKHdlaSBpbnN0YW5jZW9mIGV0aFV0aWwuQk4pKSB7XG4gICAgICBibiA9IG5ldyBldGhVdGlsLkJOKHdlaSk7XG4gICAgfVxuICAgIEJpZy5FX1BPUyA9IDI1NjtcbiAgICBCaWcuRV9ORUcgPSAtMTg7XG4gICAgY29uc3Qgd2VpU3RyaW5nID0gYm4udG9TdHJpbmcoMTApO1xuICAgIGNvbnN0IGJpZyA9IG5ldyBCaWcod2VpU3RyaW5nKTtcbiAgICAvLyAxMF4xOFxuICAgIGNvbnN0IGV0aGVyID0gYmlnLmRpdignMTAwMDAwMDAwMDAwMDAwMDAwMCcpO1xuICAgIHJldHVybiBldGhlci50b1ByZWNpc2lvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY292ZXIgYW4gZXRoZXJldW0gYWRkcmVzcyBmcm9tIGEgc2lnbmF0dXJlIGFuZCBtZXNzYWdlIGhhc2hcbiAgICogQHBhcmFtIG1zZ0hhc2hcbiAgICogQHBhcmFtIHNpZ25hdHVyZVxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgc3RhdGljIGVjUmVjb3ZlckV0aEFkZHJlc3MobXNnSGFzaDogc3RyaW5nLCBzaWduYXR1cmU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbXNnSGFzaCA9IGV0aFV0aWwuc3RyaXBIZXhQcmVmaXgobXNnSGFzaCk7XG4gICAgc2lnbmF0dXJlID0gZXRoVXRpbC5zdHJpcEhleFByZWZpeChzaWduYXR1cmUpO1xuXG4gICAgY29uc3QgdiA9IHBhcnNlSW50KHNpZ25hdHVyZS5zbGljZSgxMjgsIDEzMCksIDE2KTtcbiAgICBjb25zdCByID0gQnVmZmVyLmZyb20oc2lnbmF0dXJlLnNsaWNlKDAsIDY0KSwgJ2hleCcpO1xuICAgIGNvbnN0IHMgPSBCdWZmZXIuZnJvbShzaWduYXR1cmUuc2xpY2UoNjQsIDEyOCksICdoZXgnKTtcblxuICAgIGNvbnN0IHB1YktleSA9IGV0aFV0aWwuZWNyZWNvdmVyKEJ1ZmZlci5mcm9tKG1zZ0hhc2gsICdoZXgnKSwgdiwgciwgcyk7XG4gICAgcmV0dXJuIGV0aFV0aWwuYnVmZmVyVG9IZXgoZXRoVXRpbC5wdWJUb0FkZHJlc3MocHViS2V5KSk7XG4gIH1cbn1cbiJdfQ==
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby91dGlscy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSDtHQUNHO0FBQ0gsOENBQXdDO0FBQ3hDLDRDQUE4QjtBQUM5QiwwQ0FBNEI7QUFDNUIsbUNBQXFDO0FBRXJDLHNDQUE0RDtBQUU1RCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUM7QUFFaEQsSUFBSSxPQUFPLENBQUM7QUFDWixJQUFJLGNBQWMsR0FBRyxLQUFLLENBQUM7QUFFM0IsTUFBTSxTQUFTLEdBQUcsaUJBQWlCLENBQUM7QUFDcEMsa0RBQU8saUJBQWlCLElBQ3JCLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO0lBQ1osT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUNkLGNBQWMsR0FBRyxJQUFJLENBQUM7QUFDeEIsQ0FBQyxDQUFDO0tBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDWCxtQ0FBbUM7SUFDbkMsS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFDekMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNqQixDQUFDLENBQUMsQ0FBQztBQUVMOztHQUVHO0FBQ0gsTUFBYSxhQUFhO0lBR3hCO1FBRlEsU0FBSSxHQUFHLENBQUMsQ0FBQztRQUdmLElBQUksQ0FBQyxLQUFLLEdBQUcsb0JBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsR0FBRztRQUNELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxD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LE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0NBQ0Y7QUFwSkQsb0JBb0pDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqIEBoaWRkZW5cbiAqL1xuXG4vKipcbiAqL1xuaW1wb3J0IHsgYmlwMzIgfSBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0ICogYXMgQmlnIGZyb20gJ2JpZy5qcyc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyByYW5kb21CeXRlcyB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBJUmVxdWVzdFRyYWNlciB9IGZyb20gJy4uLy4uL2FwaSc7XG5pbXBvcnQgeyBFdGhlcmV1bUxpYnJhcnlVbmF2YWlsYWJsZUVycm9yIH0gZnJvbSAnLi4vZXJyb3JzJztcblxuY29uc3QgZGVidWcgPSByZXF1aXJlKCdkZWJ1ZycpKCdiaXRnbzp2Mjp1dGlsJyk7XG5cbmxldCBldGhVdGlsO1xubGV0IGlzRXRoQXZhaWxhYmxlID0gZmFsc2U7XG5cbmNvbnN0IGV0aEltcG9ydCA9ICdldGhlcmV1bWpzLXV0aWwnO1xuaW1wb3J0KCdldGhlcmV1bWpzLXV0aWwnKVxuICAudGhlbigoZXRoKSA9PiB7XG4gICAgZXRoVXRpbCA9IGV0aDtcbiAgICBpc0V0aEF2YWlsYWJsZSA9IHRydWU7XG4gIH0pXG4gIC5jYXRjaCgoZSkgPT4ge1xuICAgIC8vIGV0aGVyZXVtIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkXG4gICAgZGVidWcoJ3VuYWJsZSB0byBsb2FkIGV0aGVyZXVtanMtdXRpbDonKTtcbiAgICBkZWJ1ZyhlLnN0YWNrKTtcbiAgfSk7XG5cbi8qKlxuICogQ3JlYXRlIGEgcmVxdWVzdCB0cmFjZXIgZm9yIHRyYWNpbmcgd29ya2Zsb3dzIHdoaWNoIGludm9sdmUgbXVsdGlwbGUgcm91bmQgdHJpcHMgdG8gdGhlIHNlcnZlclxuICovXG5leHBvcnQgY2xhc3MgUmVxdWVzdFRyYWNlciBpbXBsZW1lbnRzIElSZXF1ZXN0VHJhY2VyIHtcbiAgcHJpdmF0ZSBfc2VxID0gMDtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2VlZDogQnVmZmVyO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLl9zZWVkID0gcmFuZG9tQnl0ZXMoMTApO1xuICB9XG5cbiAgaW5jKCkge1xuICAgIHRoaXMuX3NlcSsrO1xuICB9XG5cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuX3NlZWQudG9TdHJpbmcoJ2hleCcpfS0ke18ucGFkU3RhcnQodGhpcy5fc2VxLnRvU3RyaW5nKDE2KSwgNCwgJzAnKX1gO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVdGlsIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge31cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIHN0YXRpYyBpc0V0aEF2YWlsYWJsZSgpIHtcbiAgICByZXR1cm4gaXNFdGhBdmFpbGFibGU7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCBhIGJpZy5qcyBiaWcgbnVtYmVyIHRvIGFuIGFycmF5IG9mIHVuc2lnbmVkIGJ5dGVzXG4gICAqIEBwYXJhbSBiblxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgc3RhdGljIGJuVG9CeXRlQXJyYXlVbnNpZ25lZChibjogYW55KTogYW55IHtcbiAgICBsZXQgYmEgPSBibi5hYnMoKS50b0J5dGVBcnJheSgpO1xuICAgIGlmIChiYS5sZW5ndGgpIHtcbiAgICAgIGlmIChiYVswXSA9PT0gMCkge1xuICAgICAgICBiYSA9IGJhLnNsaWNlKDEpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhLm1hcChmdW5jdGlvbiAodikge1xuICAgICAgICByZXR1cm4gdiA8IDAgPyB2ICsgMjU2IDogdjtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBFbXB0eSBhcnJheSwgbm90aGluZyB0byBkb1xuICAgICAgcmV0dXJuIGJhO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVdGlsaXR5IG1ldGhvZCBmb3IgaGFuZGxpbmcgYXJndW1lbnRzIG9mIHBhZ2VhYmxlIHF1ZXJpZXNcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgc3RhdGljIHByZXBhcmVQYWdlYWJsZVF1ZXJ5KHBhcmFtczogeyBsaW1pdD86IG51bWJlcjsgc2tpcD86IG51bWJlciB9ID0ge30pOiB7IGxpbWl0PzogbnVtYmVyOyBza2lwPzogbnVtYmVyIH0ge1xuICAgIGNvbnN0IHF1ZXJ5OiBhbnkgPSB7fTtcbiAgICBpZiAocGFyYW1zLmxpbWl0KSB7XG4gICAgICBpZiAoIV8uaXNOdW1iZXIocGFyYW1zLmxpbWl0KSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgbGltaXQgYXJndW1lbnQsIGV4cGVjdGluZyBudW1iZXInKTtcbiAgICAgIH1cbiAgICAgIHF1ZXJ5LmxpbWl0ID0gcGFyYW1zLmxpbWl0O1xuICAgIH1cbiAgICBpZiAocGFyYW1zLnNraXApIHtcbiAgICAgIGlmICghXy5pc051bWJlcihwYXJhbXMuc2tpcCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHNraXAgYXJndW1lbnQsIGV4cGVjdGluZyBudW1iZXInKTtcbiAgICAgIH1cbiAgICAgIHF1ZXJ5LnNraXAgPSBwYXJhbXMuc2tpcDtcbiAgICB9XG4gICAgcmV0dXJuIHF1ZXJ5O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHJlcXVlc3QgaWRlbnRpZmllciBmb3IgdHJhY2luZyBtdWx0aS1yZXF1ZXN0IHdvcmtmbG93c1xuICAgKi9cbiAgc3RhdGljIGNyZWF0ZVJlcXVlc3RJZCgpOiBSZXF1ZXN0VHJhY2VyIHtcbiAgICByZXR1cm4gbmV3IFJlcXVlc3RUcmFjZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGEgQlRDIHhwdWIgdG8gYW4gRXRoZXJldW0gYWRkcmVzcyAod2l0aCAweCBwcmVmaXgpXG4gICAqIEBwYXJhbSB4cHViXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBzdGF0aWMgeHB1YlRvRXRoQWRkcmVzcyh4cHViOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghaXNFdGhBdmFpbGFibGUpIHtcbiAgICAgIHRocm93IG5ldyBFdGhlcmV1bUxpYnJhcnlVbmF2YWlsYWJsZUVycm9yKGV0aEltcG9ydCk7XG4gICAgfVxuICAgIHJldHVybiBldGhVdGlsLmJ1ZmZlclRvSGV4KGV0aFV0aWwucHVibGljVG9BZGRyZXNzKGJpcDMyLmZyb21CYXNlNTgoeHB1YikucHVibGljS2V5LCB0cnVlIC8qIHNhbml0aXplICovKSk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCBhIEJUQyB4cHJpdiB0byBhbiBFdGhlcmV1bSBwcml2YXRlIGtleSAod2l0aG91dCAweCBwcmVmaXgpXG4gICAqIEBwYXJhbSB4cHJ2XG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBzdGF0aWMgeHBydlRvRXRoUHJpdmF0ZUtleSh4cHJ2OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IG5vZGUgPSBiaXAzMi5mcm9tQmFzZTU4KHhwcnYpO1xuICAgIGlmICghbm9kZS5wcml2YXRlS2V5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYG5vIHByaXZhdGVLZXlgKTtcbiAgICB9XG4gICAgcmV0dXJuIG5vZGUucHJpdmF0ZUtleS50b1N0cmluZygnaGV4Jyk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbiBhIG1lc3NhZ2UgdXNpbmcgRXRoZXJldW0ncyBFQ3NpZ24gbWV0aG9kIGFuZCByZXR1cm4gdGhlIHNpZ25hdHVyZSBzdHJpbmdcbiAgICogQHBhcmFtIG1zZ0hhc2hcbiAgICogQHBhcmFtIHByaXZLZXlcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIHN0YXRpYyBldGhTaWduTXNnSGFzaChtc2dIYXNoOiBzdHJpbmcsIHByaXZLZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFpc0V0aEF2YWlsYWJsZSkge1xuICAgICAgdGhyb3cgbmV3IEV0aGVyZXVtTGlicmFyeVVuYXZhaWxhYmxlRXJyb3IoZXRoSW1wb3J0KTtcbiAgICB9XG4gICAgY29uc3Qgc2lnbmF0dXJlSW5QYXJ0cyA9IGV0aFV0aWwuZWNzaWduKFxuICAgICAgQnVmZmVyLmZyb20oZXRoVXRpbC5zdHJpcEhleFByZWZpeChtc2dIYXNoKSwgJ2hleCcpLFxuICAgICAgQnVmZmVyLmZyb20ocHJpdktleSwgJ2hleCcpXG4gICAgKTtcblxuICAgIC8vIEFzc2VtYmxlIHN0cmluZ3MgZnJvbSByLCBzIGFuZCB2XG4gICAgY29uc3QgciA9IGV0aFV0aWwuc2V0TGVuZ3RoTGVmdChzaWduYXR1cmVJblBhcnRzLnIsIDMyKS50b1N0cmluZygnaGV4Jyk7XG4gICAgY29uc3QgcyA9IGV0aFV0aWwuc2V0TGVuZ3RoTGVmdChzaWduYXR1cmVJblBhcnRzLnMsIDMyKS50b1N0cmluZygnaGV4Jyk7XG4gICAgY29uc3QgdiA9IGV0aFV0aWwuc3RyaXBIZXhQcmVmaXgoZXRoVXRpbC5pbnRUb0hleChzaWduYXR1cmVJblBhcnRzLnYpKTtcblxuICAgIC8vIENvbmNhdGVuYXRlIHRoZSByLCBzIGFuZCB2IHBhcnRzIHRvIG1ha2UgdGhlIHNpZ25hdHVyZSBzdHJpbmdcbiAgICByZXR1cm4gZXRoVXRpbC5hZGRIZXhQcmVmaXgoci5jb25jYXQocywgdikpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgZnJvbSB3ZWkgc3RyaW5nIChvciBCTikgdG8gRXRoZXIgKG11bHRpcGx5IGJ5IDFlMTgpXG4gICAqIEBwYXJhbSB3ZWlcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIHN0YXRpYyB3ZWlUb0V0aGVyU3RyaW5nKHdlaTogYW55KTogc3RyaW5nIHtcbiAgICBpZiAoIWlzRXRoQXZhaWxhYmxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXRoZXJldW1MaWJyYXJ5VW5hdmFpbGFibGVFcnJvcihldGhJbXBvcnQpO1xuICAgIH1cbiAgICBsZXQgYm4gPSB3ZWk7XG4gICAgaWYgKCEod2VpIGluc3RhbmNlb2YgZXRoVXRpbC5CTikpIHtcbiAgICAgIGJuID0gbmV3IGV0aFV0aWwuQk4od2VpKTtcbiAgICB9XG4gICAgQmlnLkVfUE9TID0gMjU2O1xuICAgIEJpZy5FX05FRyA9IC0xODtcbiAgICBjb25zdCB3ZWlTdHJpbmcgPSBibi50b1N0cmluZygxMCk7XG4gICAgY29uc3QgYmlnID0gbmV3IEJpZyh3ZWlTdHJpbmcpO1xuICAgIC8vIDEwXjE4XG4gICAgY29uc3QgZXRoZXIgPSBiaWcuZGl2KCcxMDAwMDAwMDAwMDAwMDAwMDAwJyk7XG4gICAgcmV0dXJuIGV0aGVyLnRvUHJlY2lzaW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVjb3ZlciBhbiBldGhlcmV1bSBhZGRyZXNzIGZyb20gYSBzaWduYXR1cmUgYW5kIG1lc3NhZ2UgaGFzaFxuICAgKiBAcGFyYW0gbXNnSGFzaFxuICAgKiBAcGFyYW0gc2lnbmF0dXJlXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBzdGF0aWMgZWNSZWNvdmVyRXRoQWRkcmVzcyhtc2dIYXNoOiBzdHJpbmcsIHNpZ25hdHVyZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBtc2dIYXNoID0gZXRoVXRpbC5zdHJpcEhleFByZWZpeChtc2dIYXNoKTtcbiAgICBzaWduYXR1cmUgPSBldGhVdGlsLnN0cmlwSGV4UHJlZml4KHNpZ25hdHVyZSk7XG5cbiAgICBjb25zdCB2ID0gcGFyc2VJbnQoc2lnbmF0dXJlLnNsaWNlKDEyOCwgMTMwKSwgMTYpO1xuICAgIGNvbnN0IHIgPSBCdWZmZXIuZnJvbShzaWduYXR1cmUuc2xpY2UoMCwgNjQpLCAnaGV4Jyk7XG4gICAgY29uc3QgcyA9IEJ1ZmZlci5mcm9tKHNpZ25hdHVyZS5zbGljZSg2NCwgMTI4KSwgJ2hleCcpO1xuXG4gICAgY29uc3QgcHViS2V5ID0gZXRoVXRpbC5lY3JlY292ZXIoQnVmZmVyLmZyb20obXNnSGFzaCwgJ2hleCcpLCB2LCByLCBzKTtcbiAgICByZXR1cm4gZXRoVXRpbC5idWZmZXJUb0hleChldGhVdGlsLnB1YlRvQWRkcmVzcyhwdWJLZXkpKTtcbiAgfVxufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/wallet/wallet.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EACL,SAAS,EACT,iBAAiB,EAIlB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAMzC,OAAO,EAAE,gBAAgB,EAAmB,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EACL,4BAA4B,EAC5B,gBAAgB,EAChB,oCAAoC,EACpC,2BAA2B,EAC3B,gBAAgB,EAChB,0BAA0B,EAC1B,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,OAAO,EACP,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,EACjB,iCAAiC,EACjC,0BAA0B,EAC1B,yBAAyB,EACzB,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,YAAY,EACZ,2BAA2B,EAC3B,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EACV,4BAA4B,EAC7B,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/wallet/wallet.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EACL,SAAS,EACT,iBAAiB,EAIlB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAMzC,OAAO,EAAE,gBAAgB,EAAmB,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EACL,4BAA4B,EAC5B,gBAAgB,EAChB,oCAAoC,EACpC,2BAA2B,EAC3B,gBAAgB,EAChB,0BAA0B,EAC1B,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,OAAO,EACP,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,EACjB,iCAAiC,EACjC,0BAA0B,EAC1B,yBAAyB,EACzB,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,YAAY,EACZ,2BAA2B,EAC3B,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EACV,4BAA4B,EAC7B,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAOzC,qBAAa,MAAO,YAAW,OAAO;IACpC,SAAgB,KAAK,EAAE,SAAS,CAAC;IACjC,SAAgB,QAAQ,EAAE,SAAS,CAAC;IACpC,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsC;IAC/D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAW;gBAE7B,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG;IAuBlE;;;OAGG;IACH,GAAG,CAAC,KAAK,SAAK,GAAG,MAAM;IAIvB;;OAEG;IACH,EAAE,IAAI,MAAM;IAIZ;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB,yBAAyB,IAAI,MAAM,EAAE;IAoDrC;;OAEG;IACH,gCAAgC,IAAI,MAAM,EAAE;IAI5C;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;;;OAIG;IACH,aAAa,IAAI,MAAM;IAIvB;;;;OAIG;IACH,sBAAsB,IAAI,MAAM;IAIhC;;;;OAIG;IACH,sBAAsB,IAAI,MAAM;IAIhC;;OAEG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACI,KAAK,IAAI,MAAM;IAItB;;OAEG;IACI,MAAM,IAAI,MAAM,EAAE;IAIzB;;OAEG;IACI,cAAc,IAAI,MAAM;IAI/B;;;;;OAKG;IACI,YAAY,IAAI,MAAM,GAAG,SAAS;IAIzC;;;OAGG;IACH,oBAAoB,IAAI,GAAG;IAO3B;;OAEG;IACH,YAAY,IAAI,kBAAkB,GAAG,SAAS;IAI9C;;OAEG;IACH,gBAAgB,IAAI,gBAAgB,EAAE;IAMtC;;;;OAIG;IACG,OAAO,CAAC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKlE;;;;OAIG;IACG,YAAY,CAAC,MAAM,GAAE,iBAAsB,GAAG,OAAO,CAAC,GAAG,CAAC;IAuBhE;;;;;OAKG;IACG,cAAc,CAAC,MAAM,GAAE,qBAA0B,GAAG,OAAO,CAAC,GAAG,CAAC;IAwBtE;;;;OAIG;IACG,SAAS,CAAC,MAAM,GAAE,gBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC;IAwG5D;;;OAGG;IACG,WAAW,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC;IAKhE;;;OAGG;IACG,oBAAoB,CAAC,MAAM,GAAE,2BAAgC,GAAG,OAAO,CAAC,GAAG,CAAC;IAKlF;;;;;;;;;;;;;;;OAeG;IACG,gBAAgB,CAAC,MAAM,GAAE,uBAA4B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAkBvF;;;;OAIG;IACG,QAAQ,CAAC,MAAM,GAAE,eAAoB,GAAG,OAAO,CAAC,GAAG,CAAC;IAgB1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;YACW,cAAc;IAkD5B;;;;;;;;;;;;;;;;;;;OAmBG;IACG,mBAAmB,CAAC,MAAM,GAAE,0BAA+B,GAAG,OAAO,CAAC,GAAG,CAAC;IAIhF;;;;;;;;;;;;;;;;OAgBG;IACG,cAAc,CAAC,MAAM,GAAE,qBAA0B,GAAG,OAAO,CAAC,GAAG,CAAC;IAItE;;;;OAIG;IACG,0BAA0B,CAAC,UAAU,GAAE,GAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAYpE;;;;;;;;;;UAUM;IACA,gBAAgB,CAAC,cAAc,GAAE,GAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAO9D;;;;;;;OAOG;IACG,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC;IAerE;;;;;;;;;;;OAWG;IACG,mBAAmB,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,GAAG,CAAC;IAe3E;;;;;;;;;;;;;OAaG;IACG,KAAK,CAAC,MAAM,GAAE,YAAiB,GAAG,OAAO,CAAC,GAAG,CAAC;IA+DpD;;;;OAIG;IACG,MAAM,CAAC,MAAM,GAAE,aAAkB,GAAG,OAAO,CAAC,GAAG,CAAC;IAYtD;;;;OAIG;IACG,eAAe,CAAC,MAAM,GAAE,sBAA2B,GAAG,OAAO,CAAC,GAAG,CAAC;IASxE;;;;OAIG;IACG,SAAS,CAAC,MAAM,GAAE,gBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC;IA4F5D;;;;OAIG;IACG,UAAU,CAAC,MAAM,GAAE,iBAAsB,GAAG,OAAO,CAAC,GAAG,CAAC;IAqB9D;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,aAAa,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC;IAwIpE;;;;OAIG;IACG,aAAa,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC;IAapE;;;OAGG;IACG,YAAY,CAAC,MAAM,GAAE,iBAAsB,GAAG,OAAO,CAAC,GAAG,CAAC;IAmBhE;;;;;;;OAOG;IACG,eAAe,CAAC,MAAM,GAAE,sBAA2B,GAAG,OAAO,CAAC,GAAG,CAAC;IA0BxE;;;OAGG;IACG,UAAU,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC;IAMjE;;;OAGG;IACG,aAAa,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC;IAMpE;;;;;;OAMG;IACG,wBAAwB,CAAC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAM,GAAG,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAmBrG;;;;;OAKG;IACG,MAAM,CAAC,MAAM,GAAE,aAAkB,GAAG,OAAO,CAAC,GAAG,CAAC;IAiCtD;;;OAGG;IACG,WAAW,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC;IAkBhE;;;;OAIG;IACG,WAAW,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC;IA+EhE;;;;;OAKG;IACG,UAAU,CAAC,MAAM,GAAE,iBAAsB,GAAG,OAAO,CAAC,GAAG,CAAC;IAO9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACG,mBAAmB,CAAC,MAAM,GAAE,0BAA+B,GAAG,OAAO,CAAC,yBAAyB,CAAC;IA8CtG;;;;;;;OAOG;IACG,eAAe,CAAC,MAAM,GAAE,4BAAiC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAsC5F;;;;OAIG;IACH,UAAU,CAAC,MAAM,GAAE,iBAAsB,GAAG,MAAM;IAsClD;;;OAGG;IACG,0BAA0B,CAAC,MAAM,GAAE,iCAAsC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAqF5G;;;OAGG;IACG,qBAAqB,CAAC,MAAM,GAAE,4BAAiC,GAAG,OAAO,CAAC,GAAG,CAAC;IAmDpF;;;;;OAKG;IACG,iBAAiB,CAAC,MAAM,GAAE,wBAA6B,GAAG,OAAO,CAAC,GAAG,CAAC;IAiB5E;;;;;;;;;;;;;OAaG;IACG,IAAI,CAAC,MAAM,GAAE,WAAgB,GAAG,OAAO,CAAC,GAAG,CAAC;IAqClD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACG,QAAQ,CAAC,MAAM,GAAE,eAAoB,GAAG,OAAO,CAAC,GAAG,CAAC;IAwD1D;;;;;;;;OAQG;IACG,YAAY,CAAC,MAAM,GAAE,mBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC;IAmBlE;;;;OAIG;IACG,0BAA0B,CAAC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAIlF;;;;;;;OAOG;IACG,SAAS,CAAC,MAAM,GAAE,gBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC;IAS5D;;;;;;OAMG;IACG,cAAc,CAAC,MAAM,GAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAOjE;;;;;;;;;OASG;IACG,mBAAmB,CAAC,MAAM,GAAE,GAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAIzD;;;;;;OAMG;IACG,gBAAgB,CAAC,MAAM,GAAE,uBAA4B,GAAG,OAAO,CAAC,GAAG,CAAC;IAc1E;;;;;;OAMG;IACG,aAAa,CAAC,MAAM,GAAE,GAAQ;IAcpC;;;;OAIG;IACG,gBAAgB,CAAC,MAAM,GAAE,uBAA4B,GAAG,OAAO,CAAC,GAAG,CAAC;IAM1E;;;;OAIG;IACG,MAAM,CAAC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAI9D;;OAEG;IACH,MAAM,IAAI,UAAU;IAIpB;;OAEG;IACH,gBAAgB,IAAI,cAAc;IAOlC;;OAEG;IACH,eAAe,IAAI,aAAa;IAOhC;;;;;;;;;;;;;;;;;OAiBG;IACH,eAAe,CAAC,MAAM,GAAE,sBAA2B,GAAG,IAAI;IA8E1D;;;;OAIG;IACG,0BAA0B,CAC9B,MAAM,GAAE,oCAAyC,GAChD,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAsCvC;;;;;;OAMG;IACG,wBAAwB,CAAC,MAAM,GAAE,iCAAsC,GAAG,OAAO,CAAC,GAAG,CAAC;IAgC5F;;;;OAIG;IACG,yBAAyB,CAAC,MAAM,GAAE,oCAAyC,GAAG,OAAO,CAAC,GAAG,CAAC;IA8BhG;;;;;OAKG;IACU,qBAAqB,CAChC,MAAM,GAAE,2BAAkD,GACzD,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAqDvC;;;;;;;OAOG;IACU,mBAAmB,CAAC,MAAM,GAAE,iCAAsC,GAAG,OAAO,CAAC,GAAG,CAAC;IA2B9F;;;;;;;;;;OAUG;IACU,oBAAoB,CAAC,MAAM,GAAE,2BAAkD,GAAG,OAAO,CAAC;QACrG,OAAO,EAAE,GAAG,EAAE,CAAC;QACf,OAAO,EAAE,KAAK,EAAE,CAAC;KAClB,CAAC;IAwBF;;OAEG;IACI,SAAS,IAAI,SAAS;IAU7B;;;;OAIG;YACW,sBAAsB;IAiEpC;;;;OAIG;YACW,kBAAkB;IA2BhC;;;;OAIG;YACW,WAAW;CAmB1B"}
|