@bitgo/sdk-core 26.2.0 → 26.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/dist/src/account-lib/baseCoin/blsKeyPair.js +26 -22
- package/dist/src/account-lib/baseCoin/ed25519KeyPair.js +20 -16
- package/dist/src/account-lib/baseCoin/enum.d.ts +3 -1
- package/dist/src/account-lib/baseCoin/enum.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/enum.js +3 -1
- package/dist/src/account-lib/baseCoin/index.js +6 -2
- package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.js +6 -2
- package/dist/src/account-lib/index.js +6 -2
- package/dist/src/account-lib/mpc/index.js +6 -2
- package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts +1 -0
- package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts.map +1 -1
- package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.js +346 -342
- package/dist/src/account-lib/mpc/tss/ecdsa/index.js +6 -2
- package/dist/src/account-lib/mpc/tss/eddsa/eddsa.js +60 -60
- package/dist/src/account-lib/mpc/tss/eddsa/index.js +6 -2
- package/dist/src/account-lib/mpc/tss/index.js +6 -2
- package/dist/src/account-lib/staking/index.js +6 -2
- package/dist/src/account-lib/util/crypto.js +7 -3
- package/dist/src/account-lib/util/ed25519KeyDeriver.js +3 -3
- package/dist/src/api/index.js +6 -2
- package/dist/src/bitgo/address-book/index.js +6 -2
- package/dist/src/bitgo/baseCoin/baseCoin.d.ts +1 -0
- package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -1
- package/dist/src/bitgo/baseCoin/baseCoin.js +7 -3
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +1 -0
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
- package/dist/src/bitgo/baseCoin/index.js +6 -2
- package/dist/src/bitgo/bip32util.js +6 -2
- package/dist/src/bitgo/bitcoin.js +6 -2
- package/dist/src/bitgo/config.js +6 -2
- package/dist/src/bitgo/ecdh.js +6 -2
- package/dist/src/bitgo/enterprise/enterprise.js +10 -6
- package/dist/src/bitgo/enterprise/enterprises.js +6 -2
- package/dist/src/bitgo/enterprise/index.js +6 -2
- package/dist/src/bitgo/index.js +6 -2
- package/dist/src/bitgo/inscriptionBuilder/index.js +6 -2
- package/dist/src/bitgo/internal/index.js +6 -2
- package/dist/src/bitgo/internal/internal.js +4 -4
- package/dist/src/bitgo/internal/keycard.js +5 -5
- package/dist/src/bitgo/keychain/index.js +6 -2
- package/dist/src/bitgo/keychain/keychains.js +17 -13
- package/dist/src/bitgo/keychain/ovcJsonCodec.js +6 -2
- package/dist/src/bitgo/legacyBitcoin.js +7 -3
- package/dist/src/bitgo/lightning/iLightning.js +6 -2
- package/dist/src/bitgo/lightning/index.js +6 -2
- package/dist/src/bitgo/lightning/lightning.js +12 -12
- package/dist/src/bitgo/lightning/lightningUtils.js +8 -4
- package/dist/src/bitgo/market/index.js +6 -2
- package/dist/src/bitgo/market/markets.js +6 -2
- package/dist/src/bitgo/pendingApproval/index.js +6 -2
- package/dist/src/bitgo/pendingApproval/pendingApproval.js +6 -2
- package/dist/src/bitgo/pendingApproval/pendingApprovals.js +6 -2
- package/dist/src/bitgo/recovery/index.js +6 -2
- package/dist/src/bitgo/staking/iStakingWallet.d.ts +8 -0
- package/dist/src/bitgo/staking/iStakingWallet.d.ts.map +1 -1
- package/dist/src/bitgo/staking/iStakingWallet.js +1 -1
- package/dist/src/bitgo/staking/index.js +6 -2
- package/dist/src/bitgo/trading/index.js +6 -2
- package/dist/src/bitgo/trading/network/index.js +6 -2
- package/dist/src/bitgo/trading/network/network.js +2 -2
- package/dist/src/bitgo/tss/common.js +6 -6
- package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts +1 -0
- package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts.map +1 -1
- package/dist/src/bitgo/tss/ecdsa/ecdsa.js +18 -14
- package/dist/src/bitgo/tss/ecdsa/index.js +6 -2
- package/dist/src/bitgo/tss/eddsa/eddsa.js +9 -9
- package/dist/src/bitgo/tss/eddsa/index.js +6 -2
- package/dist/src/bitgo/tss/index.js +6 -2
- package/dist/src/bitgo/utils/abstractUtxoCoinUtil.js +7 -3
- package/dist/src/bitgo/utils/blsUtils.js +5 -5
- package/dist/src/bitgo/utils/codecProps.js +6 -2
- package/dist/src/bitgo/utils/decode.js +10 -6
- package/dist/src/bitgo/utils/index.js +6 -2
- package/dist/src/bitgo/utils/mpcUtils.js +8 -8
- package/dist/src/bitgo/utils/opengpgUtils.js +26 -22
- package/dist/src/bitgo/utils/tss/baseTSSUtils.js +9 -5
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.js +43 -39
- package/dist/src/bitgo/utils/tss/ecdsa/index.js +6 -2
- package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +45 -41
- package/dist/src/bitgo/utils/tss/eddsa/index.js +6 -2
- package/dist/src/bitgo/utils/tss/index.js +6 -2
- package/dist/src/bitgo/utils/util.js +7 -3
- package/dist/src/bitgo/wallet/BuildParams.js +7 -3
- package/dist/src/bitgo/wallet/index.js +6 -2
- package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallet.js +35 -35
- package/dist/src/bitgo/wallet/wallets.js +17 -13
- package/dist/src/bitgo/webhook/index.js +6 -2
- package/dist/src/bitgo/webhook/webhooks.js +6 -2
- package/dist/src/coins/index.js +6 -2
- package/dist/src/coins/ofc.js +2 -2
- package/dist/src/coins/ofcToken.js +2 -2
- package/dist/src/common.js +6 -2
- package/dist/src/index.js +6 -2
- package/dist/test/unit/account-lib/mpc/tss/ecdsa/ecdsa.js +22 -18
- package/dist/test/unit/bitgo/utils/abstractUtxoCoinUtil.js +7 -7
- package/dist/test/unit/bitgo/utils/notEmpty.js +3 -3
- package/dist/test/unit/bitgo/utils/postWithCodec.js +7 -3
- package/dist/test/unit/bitgo/wallet/BuildParams.js +6 -2
- package/dist/test/unit/bitgo/wallet/SendTransactionRequest.js +6 -2
- package/dist/test/unit/openssl.js +4 -4
- package/dist/test/unit/units.js +63 -63
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -5
- package/LICENSE +0 -191
|
@@ -32,7 +32,7 @@ async function createCombinedKey(params) {
|
|
|
32
32
|
let userYShare;
|
|
33
33
|
let backupYShare;
|
|
34
34
|
for (const encryptedYShare of encryptedYShares) {
|
|
35
|
-
const privateShare = await utils_1.readSignedMessage(encryptedYShare.yShare.encryptedPrivateShare, encryptedYShare.senderPublicArmor, encryptedYShare.recipientPrivateArmor);
|
|
35
|
+
const privateShare = await (0, utils_1.readSignedMessage)(encryptedYShare.yShare.encryptedPrivateShare, encryptedYShare.senderPublicArmor, encryptedYShare.recipientPrivateArmor);
|
|
36
36
|
const yShare = {
|
|
37
37
|
i: encryptedYShare.yShare.i,
|
|
38
38
|
j: encryptedYShare.yShare.j,
|
|
@@ -172,7 +172,7 @@ async function offerUserToBitgoRShare(bitgo, walletId, txRequestId, userSignShar
|
|
|
172
172
|
publicShare,
|
|
173
173
|
};
|
|
174
174
|
// TODO (BG-57944): implement message signing for EDDSA
|
|
175
|
-
await common_1.sendSignatureShare(bitgo, walletId, txRequestId, signatureShare, utils_1.RequestType.tx, encryptedSignerShare, 'eddsa', apiMode, userPublicGpgKey);
|
|
175
|
+
await (0, common_1.sendSignatureShare)(bitgo, walletId, txRequestId, signatureShare, utils_1.RequestType.tx, encryptedSignerShare, 'eddsa', apiMode, userPublicGpgKey);
|
|
176
176
|
}
|
|
177
177
|
exports.offerUserToBitgoRShare = offerUserToBitgoRShare;
|
|
178
178
|
/**
|
|
@@ -184,10 +184,10 @@ exports.offerUserToBitgoRShare = offerUserToBitgoRShare;
|
|
|
184
184
|
* @returns {Promise<SignatureShareRecord>} - a Signature Share
|
|
185
185
|
*/
|
|
186
186
|
async function getBitgoToUserRShare(bitgo, walletId, txRequestId) {
|
|
187
|
-
const txRequest = await common_1.getTxRequest(bitgo, walletId, txRequestId);
|
|
187
|
+
const txRequest = await (0, common_1.getTxRequest)(bitgo, walletId, txRequestId);
|
|
188
188
|
let signatureShares;
|
|
189
189
|
if (txRequest.apiVersion === 'full') {
|
|
190
|
-
assert_1.default(txRequest.transactions, 'transactions required as part of txRequest');
|
|
190
|
+
(0, assert_1.default)(txRequest.transactions, 'transactions required as part of txRequest');
|
|
191
191
|
signatureShares = txRequest.transactions[0].signatureShares;
|
|
192
192
|
}
|
|
193
193
|
else {
|
|
@@ -223,7 +223,7 @@ async function sendUserToBitgoGShare(bitgo, walletId, txRequestId, userToBitgoGS
|
|
|
223
223
|
share: userToBitgoGShare.R + userToBitgoGShare.gamma,
|
|
224
224
|
};
|
|
225
225
|
// TODO (BG-57944): implement message signing for EDDSA
|
|
226
|
-
await common_1.sendSignatureShare(bitgo, walletId, txRequestId, signatureShare, utils_1.RequestType.tx, undefined, 'eddsa', apiMode);
|
|
226
|
+
await (0, common_1.sendSignatureShare)(bitgo, walletId, txRequestId, signatureShare, utils_1.RequestType.tx, undefined, 'eddsa', apiMode);
|
|
227
227
|
}
|
|
228
228
|
exports.sendUserToBitgoGShare = sendUserToBitgoGShare;
|
|
229
229
|
/**
|
|
@@ -248,7 +248,7 @@ async function encryptYShare(params) {
|
|
|
248
248
|
Buffer.from(keyShare.uShare.chaincode, 'hex'),
|
|
249
249
|
]).toString('hex');
|
|
250
250
|
const privateShare = Buffer.concat([Buffer.from(yShare.u, 'hex'), Buffer.from(yShare.chaincode, 'hex')]).toString('hex');
|
|
251
|
-
const encryptedPrivateShare = await utils_1.encryptAndSignText(privateShare, recipientGpgPublicArmor, senderGpgPrivateArmor);
|
|
251
|
+
const encryptedPrivateShare = await (0, utils_1.encryptAndSignText)(privateShare, recipientGpgPublicArmor, senderGpgPrivateArmor);
|
|
252
252
|
return {
|
|
253
253
|
i: yShare.i,
|
|
254
254
|
j: yShare.j,
|
|
@@ -313,11 +313,11 @@ exports.getTSSSignature = getTSSSignature;
|
|
|
313
313
|
* private share that was passed in.
|
|
314
314
|
*/
|
|
315
315
|
async function verifyWalletSignature(params) {
|
|
316
|
-
const rawNotations = await common_1.commonVerifyWalletSignature(params);
|
|
316
|
+
const rawNotations = await (0, common_1.commonVerifyWalletSignature)(params);
|
|
317
317
|
const { decryptedShare, verifierIndex } = params;
|
|
318
318
|
const publicShare = Buffer.from(await libsodium_wrappers_sumo_1.default.crypto_scalarmult_ed25519_base_noclamp(Buffer.from(decryptedShare.slice(0, 64), 'hex'))).toString('hex') + decryptedShare.slice(64);
|
|
319
319
|
const publicShareRawNotationIndex = 2 + verifierIndex;
|
|
320
|
-
assert_1.default(publicShare === Buffer.from(rawNotations[publicShareRawNotationIndex].value).toString(), 'bitgo share mismatch');
|
|
320
|
+
(0, assert_1.default)(publicShare === Buffer.from(rawNotations[publicShareRawNotationIndex].value).toString(), 'bitgo share mismatch');
|
|
321
321
|
}
|
|
322
322
|
exports.verifyWalletSignature = verifyWalletSignature;
|
|
323
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRkc2EuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdHNzL2VkZHNhL2VkZHNhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUE0QjtBQUU1QixzRkFBNkM7QUFDN0MseUVBQW9IO0FBVXBILG9DQUE0QztBQUM1Qyx1Q0FRcUI7QUFFckIsb0RBQXdEO0FBQ3hELDRCQUE2QjtBQUM3QixzQ0FBMEY7QUFFakYsNkZBRjZCLHFCQUFZLE9BRTdCO0FBQUUsbUdBRjZCLDJCQUFrQixPQUU3QjtBQUV6Qzs7Ozs7Ozs7R0FRRztBQUNJLEtBQUssVUFBVSxpQkFBaUIsQ0FBQyxNQUl2QztJQUNDLE1BQU0sYUFBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3pCLE1BQU0sR0FBRyxHQUFHLElBQUksYUFBSyxFQUFFLENBQUM7SUFFeEIsTUFBTSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDOUQsTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFDO0lBRTdCLElBQUksV0FBK0IsQ0FBQztJQUNwQyxJQUFJLFVBQThCLENBQUM7SUFDbkMsSUFBSSxZQUFnQyxDQUFDO0lBRXJDLEtBQUssTUFBTSxlQUFlLElBQUksZ0JBQWdCLEVBQUU7UUFDOUMsTUFBTSxZQUFZLEdBQUcsTUFBTSx5QkFBaUIsQ0FDMUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsRUFDNUMsZUFBZSxDQUFDLGlCQUFpQixFQUNqQyxlQUFlLENBQUMscUJBQXFCLENBQ3RDLENBQUM7UUFFRixNQUFNLE1BQU0sR0FBVztZQUNyQixDQUFDLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNCLENBQUMsRUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDM0IsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVB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QVksR0FBRyxNQUFNLG9DQUEyQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRS9ELE1BQU0sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRWpELE1BQU0sV0FBVyxHQUNmLE1BQU0sQ0FBQyxJQUFJLENBQ1QsTUFBTSxpQ0FBTSxDQUFDLHNDQUFzQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FDckcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvQyxNQUFNLDJCQUEyQixHQUFHLENBQUMsR0FBRyxhQUFhLENBQUM7SUFFdEQsZ0JBQU0sQ0FDSixXQUFXLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFDdkYsc0JBQXNCLENBQ3ZCLENBQUM7QUFDSixDQUFDO0FBdkJELHNEQXVCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCBvcGVucGdwIGZyb20gJ29wZW5wZ3AnO1xuaW1wb3J0IHNvZGl1bSBmcm9tICdsaWJzb2RpdW0td3JhcHBlcnMtc3Vtbyc7XG5pbXBvcnQgRWRkc2EsIHsgR1NoYXJlLCBKU2hhcmUsIEtleVNoYXJlLCBQU2hhcmUsIFJTaGFyZSwgU2lnblNoYXJlLCBZU2hhcmUgfSBmcm9tICcuLy4uLy4uLy4uL2FjY291bnQtbGliL21wYy90c3MnO1xuaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnLi4vLi4vYml0Z29CYXNlJztcbmltcG9ydCB7XG4gIERlY3J5cHRhYmxlWVNoYXJlLFxuICBDb21iaW5lZEtleSxcbiAgU2lnbmluZ01hdGVyaWFsLFxuICBFbmNyeXB0ZWRZU2hhcmUsXG4gIFVzZXJTaWduaW5nTWF0ZXJpYWwsXG4gIEJhY2t1cFNpZ25pbmdNYXRlcmlhbCxcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBTaGFyZUtleVBvc2l0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgZW5jcnlwdEFuZFNpZ25UZXh0LFxuICByZWFkU2lnbmVkTWVzc2FnZSxcbiAgU2lnbmF0dXJlU2hhcmVSZWNvcmQsXG4gIFNpZ25hdHVyZVNoYXJlVHlwZSxcbiAgUmVxdWVzdFR5cGUsXG4gIENvbW1pdG1lbnRTaGFyZVJlY29yZCxcbiAgQ29tbWl0bWVudFR5cGUsXG59IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2FjY291bnQtbGliJztcbmltcG9ydCB7IEVkMjU1MTlCaXAzMkhkVHJlZSB9IGZyb20gJ0BiaXRnby9zZGstbGliLW1wYyc7XG5pbXBvcnQgXyA9IHJlcXVpcmUoJ2xvZGFzaCcpO1xuaW1wb3J0IHsgY29tbW9uVmVyaWZ5V2FsbGV0U2lnbmF0dXJlLCBnZXRUeFJlcXVlc3QsIHNlbmRTaWduYXR1cmVTaGFyZSB9IGZyb20gJy4uL2NvbW1vbic7XG5cbmV4cG9ydCB7IGdldFR4UmVxdWVzdCwgc2VuZFNpZ25hdHVyZVNoYXJlIH07XG5cbi8qKlxuICogQ29tYmluZXMgWVNoYXJlcyB0byBjb21iaW5lIHRoZSBmaW5hbCBUU1Mga2V5XG4gKiBUaGlzIGNhbiBvbmx5IGJlIHVzZWQgdG8gY3JlYXRlIHRoZSBVc2VyIG9yIEJhY2t1cCBrZXkgc2luY2UgaXQgcmVxdWlyZXMgdGhlIGNvbW1vbiBrZXljaGFpbiBmcm9tIEJpdEdvIGZpcnN0XG4gKlxuICogQHBhcmFtIHBhcmFtcy5rZXlTaGFyZSAtIFRTUyBrZXkgc2hhcmVcbiAqIEBwYXJhbSBwYXJhbXMuZW5jcnlwdGVkWVNoYXJlcyAtIGVuY3J5cHRlZCBZU2hhcmVzIHdpdGggaW5mb3JtYXRpb24gb24gaG93IHRvIGRlY3J5cHRcbiAqIEBwYXJhbSBwYXJhbXMuY29tbW9uS2V5Y2hhaW4gLSBleHBlY3RlZCBjb21tb24ga2V5Y2hhaW4gb2YgdGhlIGNvbWJpbmVkIGtleVxuICogQHJldHVybnMge0NvbWJpbmVkS2V5fSBjb21iaW5lZCBUU1Mga2V5XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVDb21iaW5lZEtleShwYXJhbXM6IHtcbiAga2V5U2hhcmU6IEtleVNoYXJlO1xuICBlbmNyeXB0ZWRZU2hhcmVzOiBEZWNyeXB0YWJsZVlTaGFyZVtdO1xuICBjb21tb25LZXljaGFpbjogc3RyaW5nO1xufSk6IFByb21pc2U8Q29tYmluZWRLZXk+IHtcbiAgYXdhaXQgRWRkc2EuaW5pdGlhbGl6ZSgpO1xuICBjb25zdCBNUEMgPSBuZXcgRWRkc2EoKTtcblxuICBjb25zdCB7IGtleVNoYXJlLCBlbmNyeXB0ZWRZU2hhcmVzLCBjb21tb25LZXljaGFpbiB9ID0gcGFyYW1zO1xuICBjb25zdCB5U2hhcmVzOiBZU2hhcmVbXSA9IFtdO1xuXG4gIGxldCBiaXRnb1lTaGFyZTogWVNoYXJlIHwgdW5kZWZpbmVkO1xuICBsZXQgdXNlcllTaGFyZTogWVNoYXJlIHwgdW5kZWZpbmVkO1xuICBsZXQgYmFja3VwWVNoYXJlOiBZU2hhcmUgfCB1bmRlZmluZWQ7XG5cbiAgZm9yIChjb25zdCBlbmNyeXB0ZWRZU2hhcmUgb2YgZW5jcnlwdGVkWVNoYXJlcykge1xuICAgIGNvbnN0IHByaXZhdGVTaGFyZSA9IGF3YWl0IHJlYWRTaWduZWRNZXNzYWdlKFxuICAgICAgZW5jcnlwdGVkWVNoYXJlLnlTaGFyZS5lbmNyeXB0ZWRQcml2YXRlU2hhcmUsXG4gICAgICBlbmNyeXB0ZWRZU2hhcmUuc2VuZGVyUHVibGljQXJtb3IsXG4gICAgICBlbmNyeXB0ZWRZU2hhcmUucmVjaXBpZW50UHJpdmF0ZUFybW9yXG4gICAgKTtcblxuICAgIGNvbnN0IHlTaGFyZTogWVNoYXJlID0ge1xuICAgICAgaTogZW5jcnlwdGVkWVNoYXJlLnlTaGFyZS5pLFxuICAgICAgajogZW5jcnlwdGVkWVNoYXJlLnlTaGFyZS5qLFxuICAgICAgeTogZW5jcnlwdGVkWVNoYXJlLnlTaGFyZS5wdWJsaWNTaGFyZS5zbGljZSgwLCA2NCksXG4gICAgICB2OiBlbmNyeXB0ZWRZU2hhcmUueVNoYXJlLnB1YmxpY1NoYXJlLnNsaWNlKDY0LCAxMjgpLFxuICAgICAgdTogcHJpdmF0ZVNoYXJlLnNsaWNlKDAsIDY0KSxcbiAgICAgIGNoYWluY29kZTogcHJpdmF0ZVNoYXJlLnNsaWNlKDY0KSxcbiAgICB9O1xuXG4gICAgc3dpdGNoIChlbmNyeXB0ZWRZU2hhcmUueVNoYXJlLmopIHtcbiAgICAgIGNhc2UgMTpcbiAgICAgICAgdXNlcllTaGFyZSA9IHlTaGFyZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIGJhY2t1cFlTaGFyZSA9IHlTaGFyZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDM6XG4gICAgICAgIGJpdGdvWVNoYXJlID0geVNoYXJlO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBZU2hhcmUgaW5kZXgnKTtcbiAgICB9XG5cbiAgICB5U2hhcmVzLnB1c2goeVNoYXJlKTtcbiAgfVxuXG4gIGNvbnN0IGNvbWJpbmVkS2V5ID0gTVBDLmtleUNvbWJpbmUoa2V5U2hhcmUudVNoYXJlLCB5U2hhcmVzKTtcbiAgaWYgKGNvbWJpbmVkS2V5LnBTaGFyZS55ICsgY29tYmluZWRLZXkucFNoYXJlLmNoYWluY29kZSAhPT0gY29tbW9uS2V5Y2hhaW4pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbW1vbiBrZXljaGFpbnMgZG8gbm90IG1hdGNoJyk7XG4gIH1cbiAgaWYgKCFiaXRnb1lTaGFyZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBCaXRHbyBZIFNoYXJlJyk7XG4gIH1cblxuICBjb25zdCBzaWduaW5nTWF0ZXJpYWw6IFNpZ25pbmdNYXRlcmlhbCA9IHtcbiAgICB1U2hhcmU6IGtleVNoYXJlLnVTaGFyZSxcbiAgICBiaXRnb1lTaGFyZSxcbiAgICBiYWNrdXBZU2hhcmUsXG4gICAgdXNlcllTaGFyZSxcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIHNpZ25pbmdNYXRlcmlhbCxcbiAgICBjb21tb25LZXljaGFpbixcbiAgfTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBVc2VyIFNpZ24gU2hhcmUgY29udGFpbmluZyB0aGUgVXNlciBYU2hhcmUgLCB0aGUgVXNlciB0byBCaXRnbyBSU2hhcmUgYW5kIFVzZXIgdG8gQml0Z28gY29tbWl0bWVudFxuICpcbiAqIEBwYXJhbSB7QnVmZmVyfSBzaWduYWJsZVBheWxvYWQgLSB0aGUgc2lnbmFibGVQYXlsb2FkIGFzIGEgYnVmZmVyXG4gKiBAcGFyYW0ge1BTaGFyZX0gcFNoYXJlIC0gVXNlcidzIHNpZ25pbmcgbWF0ZXJpYWxcbiAqIEByZXR1cm5zIHtQcm9taXNlPFNpZ25TaGFyZT59IC0gVXNlciBTaWduIFNoYXJlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVVc2VyU2lnblNoYXJlKHNpZ25hYmxlUGF5bG9hZDogQnVmZmVyLCBwU2hhcmU6IFBTaGFyZSk6IFByb21pc2U8U2lnblNoYXJlPiB7XG4gIGNvbnN0IE1QQyA9IGF3YWl0IEVkZHNhLmluaXRpYWxpemUoKTtcblxuICBpZiAocFNoYXJlLmkgIT09IFNoYXJlS2V5UG9zaXRpb24uVVNFUikge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBQU2hhcmUsIFBTaGFyZSBkb2VzbnQgYmVsb25nIHRvIHRoZSBVc2VyJyk7XG4gIH1cbiAgY29uc3QgalNoYXJlOiBKU2hhcmUgPSB7IGk6IFNoYXJlS2V5UG9zaXRpb24uQklUR08sIGo6IFNoYXJlS2V5UG9zaXRpb24uVVNFUiB9O1xuICByZXR1cm4gTVBDLnNpZ25TaGFyZShzaWduYWJsZVBheWxvYWQsIHBTaGFyZSwgW2pTaGFyZV0pO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgdGhlIFVzZXIgdG8gQml0Z28gR1NoYXJlXG4gKlxuICogQHBhcmFtIHtTaWduU2hhcmV9IHVzZXJTaWduU2hhcmUgLSB0aGUgVXNlciBTaWduIFNoYXJlXG4gKiBAcGFyYW0ge1NpZ25hdHVyZVNoYXJlUmVjb3JkfSBiaXRnb1RvVXNlclJTaGFyZSAtIHRoZSBCaXRnbyB0byBVc2VyIFJTaGFyZVxuICogQHBhcmFtIHtZU2hhcmV9IGJhY2t1cFRvVXNlcllTaGFyZSAtIHRoZSBiYWNrdXAga2V5IFkgc2hhcmUgcmVjZWl2ZWQgZHVyaW5nIHdhbGxldCBjcmVhdGlvblxuICogQHBhcmFtIHtCdWZmZXJ9IHNpZ25hYmxlUGF5bG9hZCAtIHRoZSBzaWduYWJsZSBwYXlsb2FkIGZyb20gYSB0eFxuICogQHBhcmFtIHtDb21taXRtZW50U2hhcmVSZWNvcmR9IFtiaXRnb1RvVXNlckNvbW1pdG1lbnRdIC0gdGhlIEJpdGdvIHRvIFVzZXIgQ29tbWl0bWVudFxuICogQHJldHVybnMge1Byb21pc2U8R1NoYXJlPn0gLSB0aGUgVXNlciB0byBCaXRnbyBHU2hhcmVcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVVzZXJUb0JpdEdvR1NoYXJlKFxuICB1c2VyU2lnblNoYXJlOiBTaWduU2hhcmUsXG4gIGJpdGdvVG9Vc2VyUlNoYXJlOiBTaWduYXR1cmVTaGFyZVJlY29yZCxcbiAgYmFja3VwVG9Vc2VyWVNoYXJlOiBZU2hhcmUsXG4gIGJpdGdvVG9Vc2VyWVNoYXJlOiBZU2hhcmUsXG4gIHNpZ25hYmxlUGF5bG9hZDogQnVmZmVyLFxuICBiaXRnb1RvVXNlckNvbW1pdG1lbnQ/OiBDb21taXRtZW50U2hhcmVSZWNvcmRcbik6IFByb21pc2U8R1NoYXJlPiB7XG4gIGlmICh1c2VyU2lnblNoYXJlLnhTaGFyZS5pICE9PSBTaGFyZUtleVBvc2l0aW9uLlVTRVIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgWFNoYXJlLCBkb2VzbnQgYmVsb25nIHRvIHRoZSBVc2VyJyk7XG4gIH1cbiAgaWYgKGJpdGdvVG9Vc2VyUlNoYXJlLmZyb20gIT09IFNpZ25hdHVyZVNoYXJlVHlwZS5CSVRHTyB8fCBiaXRnb1RvVXNlclJTaGFyZS50byAhPT0gU2lnbmF0dXJlU2hhcmVUeXBlLlVTRVIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgUlNoYXJlLCBpcyBub3QgZnJvbSBCaXRnbyB0byBVc2VyJyk7XG4gIH1cbiAgaWYgKGJhY2t1cFRvVXNlcllTaGFyZS5pICE9PSBTaGFyZUtleVBvc2l0aW9uLlVTRVIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgWVNoYXJlLCBkb2VzbnQgYmVsb25nIHRvIHRoZSBVc2VyJyk7XG4gIH1cbiAgaWYgKGJhY2t1cFRvVXNlcllTaGFyZS5qICE9PSBTaGFyZUtleVBvc2l0aW9uLkJBQ0tVUCkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBZU2hhcmUsIGlzIG5vdCBiYWNrdXAga2V5Jyk7XG4gIH1cblxuICBsZXQgdiwgciwgUjtcbiAgaWYgKGJpdGdvVG9Vc2VyUlNoYXJlLnNoYXJlLmxlbmd0aCA+IDEyOCkge1xuICAgIHYgPSBiaXRnb1RvVXNlclJTaGFyZS5zaGFyZS5zdWJzdHJpbmcoMCwgNjQpO1xuICAgIHIgPSBiaXRnb1RvVXNlclJTaGFyZS5zaGFyZS5zdWJzdHJpbmcoNjQsIDEyOCk7XG4gICAgUiA9IGJpdGdvVG9Vc2VyUlNoYXJlLnNoYXJlLnN1YnN0cmluZygxMjgsIDE5Mik7XG4gIH0gZWxzZSB7XG4gICAgciA9IGJpdGdvVG9Vc2VyUlNoYXJlLnNoYXJlLnN1YnN0cmluZygwLCA2NCk7XG4gICAgUiA9IGJpdGdvVG9Vc2VyUlNoYXJlLnNoYXJlLnN1YnN0cmluZyg2NCwgMTI4KTtcbiAgfVxuXG4gIGNvbnN0IHVwZGF0ZWRCaXRnb1RvVXNlclJTaGFyZTogUlNoYXJlID0ge1xuICAgIGk6IFNoYXJlS2V5UG9zaXRpb24uVVNFUixcbiAgICBqOiBTaGFyZUtleVBvc2l0aW9uLkJJVEdPLFxuICAgIHU6IGJpdGdvVG9Vc2VyWVNoYXJlLnUsXG4gICAgdixcbiAgICByLFxuICAgIFIsXG4gIH07XG5cbiAgY29uc3QgTVBDID0gYXdhaXQgRWRkc2EuaW5pdGlhbGl6ZSgpO1xuXG4gIGlmIChiaXRnb1RvVXNlckNvbW1pdG1lbnQpIHtcbiAgICBpZiAoXG4gICAgICBiaXRnb1RvVXNlckNvbW1pdG1lbnQuZnJvbSAhPT0gU2lnbmF0dXJlU2hhcmVUeXBlLkJJVEdPIHx8XG4gICAgICBiaXRnb1RvVXNlckNvbW1pdG1lbnQudG8gIT09IFNpZ25hdHVyZVNoYXJlVHlwZS5VU0VSXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgQ29tbWl0bWVudCwgaXMgbm90IGZyb20gQml0Z28gdG8gVXNlcicpO1xuICAgIH1cbiAgICBpZiAoYml0Z29Ub1VzZXJDb21taXRtZW50LnR5cGUgIT09IENvbW1pdG1lbnRUeXBlLkNPTU1JVE1FTlQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBDb21taXRtZW50IHR5cGUsIGdvdDogJyArIGJpdGdvVG9Vc2VyQ29tbWl0bWVudC50eXBlICsgJyBleHBlY3RlZDogY29tbWl0bWVudCcpO1xuICAgIH1cbiAgICB1cGRhdGVkQml0Z29Ub1VzZXJSU2hhcmUuY29tbWl0bWVudCA9IGJpdGdvVG9Vc2VyQ29tbWl0bWVudC5zaGFyZTtcbiAgfVxuXG4gIHJldHVybiBNUEMuc2lnbihzaWduYWJsZVBheWxvYWQsIHVzZXJTaWduU2hhcmUueFNoYXJlLCBbdXBkYXRlZEJpdGdvVG9Vc2VyUlNoYXJlXSwgW2JhY2t1cFRvVXNlcllTaGFyZV0pO1xufVxuXG4vKipcbiAqIFNlbmRzIHRoZSBVc2VyIHRvIEJpdGdvIFJTaGFyZSB0byBCaXRnb1xuICogQHBhcmFtIHtCaXRHb0Jhc2V9IGJpdGdvIC0gdGhlIGJpdGdvIGluc3RhbmNlXG4gKiBAcGFyYW0ge1N0cmluZ30gd2FsbGV0SWQgLSB0aGUgd2FsbGV0IGlkXG4gKiBAcGFyYW0ge1N0cmluZ30gdHhSZXF1ZXN0SWQgLSB0aGUgdHhSZXF1ZXN0IElkXG4gKiBAcGFyYW0ge1NpZ25TaGFyZX0gdXNlclNpZ25TaGFyZSAtIHRoZSB1c2VyIFNpZ24gU2hhcmVcbiAqIEBwYXJhbSB7U3RyaW5nfSBlbmNyeXB0ZWRTaWduZXJTaGFyZSAtIHNpZ25lciBzaGFyZSBlbmNyeXB0ZWQgdG8gYml0Z28ga2V5XG4gKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG9mZmVyVXNlclRvQml0Z29SU2hhcmUoXG4gIGJpdGdvOiBCaXRHb0Jhc2UsXG4gIHdhbGxldElkOiBzdHJpbmcsXG4gIHR4UmVxdWVzdElkOiBzdHJpbmcsXG4gIHVzZXJTaWduU2hhcmU6IFNpZ25TaGFyZSxcbiAgZW5jcnlwdGVkU2lnbmVyU2hhcmU6IHN0cmluZyxcbiAgYXBpTW9kZTogJ2Z1bGwnIHwgJ2xpdGUnID0gJ2xpdGUnLFxuICB2c3NQcm9vZj86IHN0cmluZyxcbiAgcHJpdmF0ZVNoYXJlUHJvb2Y/OiBzdHJpbmcsXG4gIHVzZXJQdWJsaWNHcGdLZXk/OiBzdHJpbmcsXG4gIHB1YmxpY1NoYXJlPzogc3RyaW5nXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgclNoYXJlOiBSU2hhcmUgPSB1c2VyU2lnblNoYXJlLnJTaGFyZXNbU2hhcmVLZXlQb3NpdGlvbi5CSVRHT107XG4gIGlmIChfLmlzTmlsKHJTaGFyZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZXJUb0JpdGdvIFJTaGFyZSBub3QgZm91bmQnKTtcbiAgfVxuICBpZiAoclNoYXJlLmkgIT09IFNoYXJlS2V5UG9zaXRpb24uQklUR08gfHwgclNoYXJlLmogIT09IFNoYXJlS2V5UG9zaXRpb24uVVNFUikge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBSU2hhcmUsIGlzIG5vdCBmcm9tIFVzZXIgdG8gQml0Z28nKTtcbiAgfVxuICBjb25zdCBzaWduYXR1cmVTaGFyZTogU2lnbmF0dXJlU2hhcmVSZWNvcmQgPSB7XG4gICAgZnJvbTogU2lnbmF0dXJlU2hhcmVUeXBlLlVTRVIsXG4gICAgdG86IFNpZ25hdHVyZVNoYXJlVHlwZS5CSVRHTyxcbiAgICBzaGFyZTogclNoYXJlLnIgKyByU2hhcmUuUixcbiAgICB2c3NQcm9vZixcbiAgICBwcml2YXRlU2hhcmVQcm9vZixcbiAgICBwdWJsaWNTaGFyZSxcbiAgfTtcblxuICAvLyBUT0RPIChCRy01Nzk0NCk6IGltcGxlbWVudCBtZXNzYWdlIHNpZ25pbmcgZm9yIEVERFNBXG4gIGF3YWl0IHNlbmRTaWduYXR1cmVTaGFyZShcbiAgICBiaXRnbyxcbiAgICB3YWxsZXRJZCxcbiAgICB0eFJlcXVlc3RJZCxcbiAgICBzaWduYXR1cmVTaGFyZSxcbiAgICBSZXF1ZXN0VHlwZS50eCxcbiAgICBlbmNyeXB0ZWRTaWduZXJTaGFyZSxcbiAgICAnZWRkc2EnLFxuICAgIGFwaU1vZGUsXG4gICAgdXNlclB1YmxpY0dwZ0tleVxuICApO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIEJpdGdvIHRvIFVzZXIgUlNoYXJlIGZyb20gQml0Z29cbiAqXG4gKiBAcGFyYW0ge0JpdEdvQmFzZX0gYml0Z28gLSB0aGUgYml0Z28gaW5zdGFuY2VcbiAqIEBwYXJhbSB7U3RyaW5nfSB3YWxsZXRJZCAtIHRoZSB3YWxsZXQgaWRcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eFJlcXVlc3RJZCAtIHRoZSB0eFJlcXVlc3QgSWRcbiAqIEByZXR1cm5zIHtQcm9taXNlPFNpZ25hdHVyZVNoYXJlUmVjb3JkPn0gLSBhIFNpZ25hdHVyZSBTaGFyZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0Qml0Z29Ub1VzZXJSU2hhcmUoXG4gIGJpdGdvOiBCaXRHb0Jhc2UsXG4gIHdhbGxldElkOiBzdHJpbmcsXG4gIHR4UmVxdWVzdElkOiBzdHJpbmdcbik6IFByb21pc2U8U2lnbmF0dXJlU2hhcmVSZWNvcmQ+IHtcbiAgY29uc3QgdHhSZXF1ZXN0ID0gYXdhaXQgZ2V0VHhSZXF1ZXN0KGJpdGdvLCB3YWxsZXRJZCwgdHhSZXF1ZXN0SWQpO1xuICBsZXQgc2lnbmF0dXJlU2hhcmVzO1xuICBpZiAodHhSZXF1ZXN0LmFwaVZlcnNpb24gPT09ICdmdWxsJykge1xuICAgIGFzc2VydCh0eFJlcXVlc3QudHJhbnNhY3Rpb25zLCAndHJhbnNhY3Rpb25zIHJlcXVpcmVkIGFzIHBhcnQgb2YgdHhSZXF1ZXN0Jyk7XG4gICAgc2lnbmF0dXJlU2hhcmVzID0gdHhSZXF1ZXN0LnRyYW5zYWN0aW9uc1swXS5zaWduYXR1cmVTaGFyZXM7XG4gIH0gZWxzZSB7XG4gICAgc2lnbmF0dXJlU2hhcmVzID0gdHhSZXF1ZXN0LnNpZ25hdHVyZVNoYXJlcztcbiAgfVxuICBpZiAoXy5pc05pbChzaWduYXR1cmVTaGFyZXMpIHx8IF8uaXNFbXB0eShzaWduYXR1cmVTaGFyZXMpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBObyBzaWduYXR1cmVzIHNoYXJlcyBmb3VuZCBmb3IgaWQ6ICR7dHhSZXF1ZXN0SWR9YCk7XG4gIH1cbiAgLy8gYXQgdGhpcyBwb2ludCB3ZSBleHBlY3QgdGhlIG9ubHkgc2hhcmUgdG8gYmUgdGhlIFJTaGFyZVxuICBjb25zdCBiaXRnb1RvVXNlclJTaGFyZSA9IHNpZ25hdHVyZVNoYXJlcy5maW5kKFxuICAgIChzaWdTaGFyZSkgPT4gc2lnU2hhcmUuZnJvbSA9PT0gU2lnbmF0dXJlU2hhcmVUeXBlLkJJVEdPICYmIHNpZ1NoYXJlLnRvID09PSBTaWduYXR1cmVTaGFyZVR5cGUuVVNFUlxuICApO1xuICBpZiAoXy5pc05pbChiaXRnb1RvVXNlclJTaGFyZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEJpdGdvIHRvIFVzZXIgUlNoYXJlIG5vdCBmb3VuZCBmb3IgaWQ6ICR7dHhSZXF1ZXN0SWR9YCk7XG4gIH1cbiAgcmV0dXJuIGJpdGdvVG9Vc2VyUlNoYXJlO1xufVxuXG4vKipcbiAqIFNlbmRzIHRoZSBVc2VyIHRvIEJpdGdvIEdTaGFyZSB0byBCaXRnb1xuICpcbiAqIEBwYXJhbSB7Qml0R29CYXNlfSBiaXRnbyAtIHRoZSBiaXRnbyBpbnN0YW5jZVxuICogQHBhcmFtIHtTdHJpbmd9IHdhbGxldElkIC0gdGhlIHdhbGxldCBpZFxuICogQHBhcmFtIHtTdHJpbmd9IHR4UmVxdWVzdElkIC0gdGhlIHR4UmVxdWVzdCBJZFxuICogQHBhcmFtIHtHU2hhcmV9IHVzZXJUb0JpdGdvR1NoYXJlIC0gdGhlIFVzZXIgdG8gQml0Z28gR1NoYXJlXG4gKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbmRVc2VyVG9CaXRnb0dTaGFyZShcbiAgYml0Z286IEJpdEdvQmFzZSxcbiAgd2FsbGV0SWQ6IHN0cmluZyxcbiAgdHhSZXF1ZXN0SWQ6IHN0cmluZyxcbiAgdXNlclRvQml0Z29HU2hhcmU6IEdTaGFyZSxcbiAgYXBpTW9kZTogJ2Z1bGwnIHwgJ2xpdGUnID0gJ2xpdGUnXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKHVzZXJUb0JpdGdvR1NoYXJlLmkgIT09IFNoYXJlS2V5UG9zaXRpb24uVVNFUikge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBHU2hhcmUsIGRvZXNudCBiZWxvbmcgdG8gdGhlIFVzZXInKTtcbiAgfVxuICBjb25zdCBzaWduYXR1cmVTaGFyZTogU2lnbmF0dXJlU2hhcmVSZWNvcmQgPSB7XG4gICAgZnJvbTogU2lnbmF0dXJlU2hhcmVUeXBlLlVTRVIsXG4gICAgdG86IFNpZ25hdHVyZVNoYXJlVHlwZS5CSVRHTyxcbiAgICBzaGFyZTogdXNlclRvQml0Z29HU2hhcmUuUiArIHVzZXJUb0JpdGdvR1NoYXJlLmdhbW1hLFxuICB9O1xuXG4gIC8vIFRPRE8gKEJHLTU3OTQ0KTogaW1wbGVtZW50IG1lc3NhZ2Ugc2lnbmluZyBmb3IgRUREU0FcbiAgYXdhaXQgc2VuZFNpZ25hdHVyZVNoYXJlKGJpdGdvLCB3YWxsZXRJZCwgdHhSZXF1ZXN0SWQsIHNpZ25hdHVyZVNoYXJlLCBSZXF1ZXN0VHlwZS50eCwgdW5kZWZpbmVkLCAnZWRkc2EnLCBhcGlNb2RlKTtcbn1cblxuLyoqXG4gKiBQcmVwYXJlcyBhIFlTaGFyZSB0byBiZSBleGNoYW5nZWQgd2l0aCBvdGhlciBrZXkgaG9sZGVycy5cbiAqIE91dHB1dCBpcyBpbiBhIGZvcm1hdCB0aGF0IGlzIHVzYWJsZSB3aXRoaW4gQml0R28ncyBlY29zeXN0ZW0uXG4gKlxuICogQHBhcmFtIHBhcmFtcy5rZXlTaGFyZSAtIFRTUyBrZXkgc2hhcmUgb2YgdGhlIHBhcnR5IHByZXBhcmluZyBleGNoYW5nZSBtYXRlcmlhbHNcbiAqIEBwYXJhbSBwYXJhbXMucmVjaXBpZW50SW5kZXggLSBpbmRleCBvZiB0aGUgcmVjaXBpZW50ICgxLCAyLCBvciAzKVxuICogQHBhcmFtIHBhcmFtcy5yZWNpcGllbnRHcGdQdWJsaWNBcm1vciAtIHJlY2lwaWVudCdzIHB1YmxpYyBncGcga2V5IGluIGFybW9yIGZvcm1hdFxuICogQHBhcmFtIHBhcmFtcy5zZW5kZXJHcGdQcml2YXRlQXJtb3IgLSBzZW5kZXIncyBwcml2YXRlIGdwZyBrZXkgaW4gYXJtb3IgZm9ybWF0XG4gKiBAcmV0dXJucyB7IEVuY3J5cHRlZFlTaGFyZSB9IGVuY3J5cHRlZCBZIFNoYXJlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbmNyeXB0WVNoYXJlKHBhcmFtczoge1xuICBrZXlTaGFyZTogS2V5U2hhcmU7XG4gIHJlY2lwaWVudEluZGV4OiBudW1iZXI7XG4gIHJlY2lwaWVudEdwZ1B1YmxpY0FybW9yOiBzdHJpbmc7XG4gIHNlbmRlckdwZ1ByaXZhdGVBcm1vcjogc3RyaW5nO1xufSk6IFByb21pc2U8RW5jcnlwdGVkWVNoYXJlPiB7XG4gIGNvbnN0IHsga2V5U2hhcmUsIHJlY2lwaWVudEluZGV4LCByZWNpcGllbnRHcGdQdWJsaWNBcm1vciwgc2VuZGVyR3BnUHJpdmF0ZUFybW9yIH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgeVNoYXJlID0ga2V5U2hhcmUueVNoYXJlc1tyZWNpcGllbnRJbmRleF07XG4gIGlmICgheVNoYXJlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHJlY2lwaWVudCcpO1xuICB9XG5cbiAgY29uc3QgcHVibGljU2hhcmUgPSBCdWZmZXIuY29uY2F0KFtcbiAgICBCdWZmZXIuZnJvbShrZXlTaGFyZS51U2hhcmUueSwgJ2hleCcpLFxuICAgIEJ1ZmZlci5mcm9tKHlTaGFyZS52ISwgJ2hleCcpLFxuICAgIEJ1ZmZlci5mcm9tKGtleVNoYXJlLnVTaGFyZS5jaGFpbmNvZGUsICdoZXgnKSxcbiAgXSkudG9TdHJpbmcoJ2hleCcpO1xuXG4gIGNvbnN0IHByaXZhdGVTaGFyZSA9IEJ1ZmZlci5jb25jYXQoW0J1ZmZlci5mcm9tKHlTaGFyZS51LCAnaGV4JyksIEJ1ZmZlci5mcm9tKHlTaGFyZS5jaGFpbmNvZGUsICdoZXgnKV0pLnRvU3RyaW5nKFxuICAgICdoZXgnXG4gICk7XG5cbiAgY29uc3QgZW5jcnlwdGVkUHJpdmF0ZVNoYXJlID0gYXdhaXQgZW5jcnlwdEFuZFNpZ25UZXh0KHByaXZhdGVTaGFyZSwgcmVjaXBpZW50R3BnUHVibGljQXJtb3IsIHNlbmRlckdwZ1ByaXZhdGVBcm1vcik7XG5cbiAgcmV0dXJuIHtcbiAgICBpOiB5U2hhcmUuaSxcbiAgICBqOiB5U2hhcmUuaixcbiAgICBwdWJsaWNTaGFyZSxcbiAgICBlbmNyeXB0ZWRQcml2YXRlU2hhcmUsXG4gIH07XG59XG5cbi8qKlxuICpcbiAqIEluaXRpYWxpemVzIEVkZHNhIGluc3RhbmNlXG4gKlxuICogQHJldHVybnMge1Byb21pc2U8RWRkc2E+fSB0aGUgRWRkc2EgaW5zdGFuY2VcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEluaXRpYWxpemVkTXBjSW5zdGFuY2UoKSB7XG4gIGNvbnN0IGhkVHJlZSA9IGF3YWl0IEVkMjU1MTlCaXAzMkhkVHJlZS5pbml0aWFsaXplKCk7XG4gIHJldHVybiBhd2FpdCBFZGRzYS5pbml0aWFsaXplKGhkVHJlZSk7XG59XG5cbi8qKlxuICpcbiAqIEdlbmVyYXRlcyBhIFRTUyBzaWduYXR1cmUgdXNpbmcgdGhlIHVzZXIgYW5kIGJhY2t1cCBrZXlcbiAqXG4gKiBAcGFyYW0ge1VzZXJTaWduaW5nTWF0ZXJpYWx9IHVzZXJTaWduaW5nTWF0ZXJpYWwgZGVjcnlwdGVkIHVzZXIgVFNTIGtleVxuICogQHBhcmFtIHtCYWNrdXBTaWduaW5nTWF0ZXJpYWx9IGJhY2t1cFNpZ25pbmdNYXRlcmlhbCBkZWNyeXB0ZWQgYmFja3VwIFRTUyBrZXlcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIGJpcDMyIGRlcml2YXRpb24gcGF0aFxuICogQHBhcmFtIHtCYXNlVHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uIHRoZSB0cmFuc2FjdGlvbiB0byBzaWduXG4gKiBAcmV0dXJucyB7QnVmZmVyfSB0aGUgc2lnbmF0dXJlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRUU1NTaWduYXR1cmUoXG4gIHVzZXJTaWduaW5nTWF0ZXJpYWw6IFVzZXJTaWduaW5nTWF0ZXJpYWwsXG4gIGJhY2t1cFNpZ25pbmdNYXRlcmlhbDogQmFja3VwU2lnbmluZ01hdGVyaWFsLFxuICBwYXRoID0gJ20vMCcsXG4gIHRyYW5zYWN0aW9uOiBCYXNlVHJhbnNhY3Rpb25cbik6IFByb21pc2U8QnVmZmVyPiB7XG4gIGNvbnN0IE1QQyA9IGF3YWl0IGdldEluaXRpYWxpemVkTXBjSW5zdGFuY2UoKTtcblxuICBjb25zdCB1c2VyQ29tYmluZSA9IE1QQy5rZXlDb21iaW5lKHVzZXJTaWduaW5nTWF0ZXJpYWwudVNoYXJlLCBbXG4gICAgdXNlclNpZ25pbmdNYXRlcmlhbC5iaXRnb1lTaGFyZSxcbiAgICB1c2VyU2lnbmluZ01hdGVyaWFsLmJhY2t1cFlTaGFyZSxcbiAgXSk7XG4gIGNvbnN0IGJhY2t1cENvbWJpbmUgPSBNUEMua2V5Q29tYmluZShiYWNrdXBTaWduaW5nTWF0ZXJpYWwudVNoYXJlLCBbXG4gICAgYmFja3VwU2lnbmluZ01hdGVyaWFsLmJpdGdvWVNoYXJlLFxuICAgIGJhY2t1cFNpZ25pbmdNYXRlcmlhbC51c2VyWVNoYXJlLFxuICBdKTtcblxuICBjb25zdCB1c2VyU3Via2V5ID0gTVBDLmtleURlcml2ZShcbiAgICB1c2VyU2lnbmluZ01hdGVyaWFsLnVTaGFyZSxcbiAgICBbdXNlclNpZ25pbmdNYXRlcmlhbC5iaXRnb1lTaGFyZSwgdXNlclNpZ25pbmdNYXRlcmlhbC5iYWNrdXBZU2hhcmVdLFxuICAgIHBhdGhcbiAgKTtcblxuICBjb25zdCBiYWNrdXBTdWJrZXkgPSBNUEMua2V5Q29tYmluZShiYWNrdXBTaWduaW5nTWF0ZXJpYWwudVNoYXJlLCBbXG4gICAgdXNlclN1YmtleS55U2hhcmVzWzJdLFxuICAgIGJhY2t1cFNpZ25pbmdNYXRlcmlhbC5iaXRnb1lTaGFyZSxcbiAgXSk7XG5cbiAgY29uc3QgbWVzc2FnZUJ1ZmZlciA9IHRyYW5zYWN0aW9uLnNpZ25hYmxlUGF5bG9hZDtcbiAgY29uc3QgdXNlclNpZ25TaGFyZSA9IE1QQy5zaWduU2hhcmUobWVzc2FnZUJ1ZmZlciwgdXNlclN1YmtleS5wU2hhcmUsIFt1c2VyQ29tYmluZS5qU2hhcmVzWzJdXSk7XG4gIGNvbnN0IGJhY2t1cFNpZ25TaGFyZSA9IE1QQy5zaWduU2hhcmUobWVzc2FnZUJ1ZmZlciwgYmFja3VwU3Via2V5LnBTaGFyZSwgW2JhY2t1cENvbWJpbmUualNoYXJlc1sxXV0pO1xuICBjb25zdCB1c2VyU2lnbiA9IE1QQy5zaWduKFxuICAgIG1lc3NhZ2VCdWZmZXIsXG4gICAgdXNlclNpZ25TaGFyZS54U2hhcmUsXG4gICAgW2JhY2t1cFNpZ25TaGFyZS5yU2hhcmVzWzFdXSxcbiAgICBbdXNlclNpZ25pbmdNYXRlcmlhbC5iaXRnb1lTaGFyZV1cbiAgKTtcbiAgY29uc3QgYmFja3VwU2lnbiA9IE1QQy5zaWduKFxuICAgIG1lc3NhZ2VCdWZmZXIsXG4gICAgYmFja3VwU2lnblNoYXJlLnhTaGFyZSxcbiAgICBbdXNlclNpZ25TaGFyZS5yU2hhcmVzWzJdXSxcbiAgICBbYmFja3VwU2lnbmluZ01hdGVyaWFsLmJpdGdvWVNoYXJlXVxuICApO1xuICBjb25zdCBzaWduYXR1cmUgPSBNUEMuc2lnbkNvbWJpbmUoW3VzZXJTaWduLCBiYWNrdXBTaWduXSk7XG4gIGNvbnN0IHJlc3VsdCA9IE1QQy52ZXJpZnkobWVzc2FnZUJ1ZmZlciwgc2lnbmF0dXJlKTtcbiAgaWYgKCFyZXN1bHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc2lnbmF0dXJlJyk7XG4gIH1cbiAgY29uc3QgcmF3U2lnbmF0dXJlID0gQnVmZmVyLmNvbmNhdChbQnVmZmVyLmZyb20oc2lnbmF0dXJlLlIsICdoZXgnKSwgQnVmZmVyLmZyb20oc2lnbmF0dXJlLnNpZ21hLCAnaGV4JyldKTtcbiAgcmV0dXJuIHJhd1NpZ25hdHVyZTtcbn1cblxuLyoqXG4gKiBWZXJpZmllcyB0aGF0IGEgVFNTIHdhbGxldCBzaWduYXR1cmUgd2FzIHByb2R1Y2VkIHdpdGggdGhlIGV4cGVjdGVkIGtleSBhbmQgdGhhdCB0aGUgc2lnbmVkIGRhdGEgY29udGFpbnMgdGhlXG4gKiBleHBlY3RlZCBjb21tb24ga2V5Y2hhaW4sIHRoZSBleHBlY3RlZCB1c2VyIGFuZCBiYWNrdXAga2V5IGlkcyBhcyB3ZWxsIGFzIHRoZSBwdWJsaWMgc2hhcmUgdGhhdCBpcyBnZW5lcmF0ZWQgZnJvbSB0aGVcbiAqIHByaXZhdGUgc2hhcmUgdGhhdCB3YXMgcGFzc2VkIGluLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdmVyaWZ5V2FsbGV0U2lnbmF0dXJlKHBhcmFtczoge1xuICB3YWxsZXRTaWduYXR1cmU6IG9wZW5wZ3AuS2V5O1xuICBiaXRnb1B1Yjogb3BlbnBncC5LZXk7XG4gIGNvbW1vbktleWNoYWluOiBzdHJpbmc7XG4gIHVzZXJLZXlJZDogc3RyaW5nO1xuICBiYWNrdXBLZXlJZDogc3RyaW5nO1xuICBkZWNyeXB0ZWRTaGFyZTogc3RyaW5nO1xuICB2ZXJpZmllckluZGV4OiAxIHwgMjsgLy8gdGhlIGluZGV4IG9mIHRoZSB2ZXJpZmllciwgMSBtZWFucyB1c2VyLCAyIG1lYW5zIGJhY2t1cFxufSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCByYXdOb3RhdGlvbnMgPSBhd2FpdCBjb21tb25WZXJpZnlXYWxsZXRTaWduYXR1cmUocGFyYW1zKTtcblxuICBjb25zdCB7IGRlY3J5cHRlZFNoYXJlLCB2ZXJpZmllckluZGV4IH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgcHVibGljU2hhcmUgPVxuICAgIEJ1ZmZlci5mcm9tKFxuICAgICAgYXdhaXQgc29kaXVtLmNyeXB0b19zY2FsYXJtdWx0X2VkMjU1MTlfYmFzZV9ub2NsYW1wKEJ1ZmZlci5mcm9tKGRlY3J5cHRlZFNoYXJlLnNsaWNlKDAsIDY0KSwgJ2hleCcpKVxuICAgICkudG9TdHJpbmcoJ2hleCcpICsgZGVjcnlwdGVkU2hhcmUuc2xpY2UoNjQpO1xuICBjb25zdCBwdWJsaWNTaGFyZVJhd05vdGF0aW9uSW5kZXggPSAyICsgdmVyaWZpZXJJbmRleDtcblxuICBhc3NlcnQoXG4gICAgcHVibGljU2hhcmUgPT09IEJ1ZmZlci5mcm9tKHJhd05vdGF0aW9uc1twdWJsaWNTaGFyZVJhd05vdGF0aW9uSW5kZXhdLnZhbHVlKS50b1N0cmluZygpLFxuICAgICdiaXRnbyBzaGFyZSBtaXNtYXRjaCdcbiAgKTtcbn1cbiJdfQ==
|
|
323
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRkc2EuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdHNzL2VkZHNhL2VkZHNhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUE0QjtBQUU1QixzRkFBNkM7QUFDN0MseUVBQW9IO0FBVXBILG9DQUE0QztBQUM1Qyx1Q0FRcUI7QUFFckIsb0RBQXdEO0FBQ3hELDRCQUE2QjtBQUM3QixzQ0FBMEY7QUFFakYsNkZBRjZCLHFCQUFZLE9BRTdCO0FBQUUsbUdBRjZCLDJCQUFrQixPQUU3QjtBQUV6Qzs7Ozs7Ozs7R0FRRztBQUNJLEtBQUssVUFBVSxpQkFBaUIsQ0FBQyxNQUl2QztJQUNDLE1BQU0sYUFBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3pCLE1BQU0sR0FBRyxHQUFHLElBQUksYUFBSyxFQUFFLENBQUM7SUFFeEIsTUFBTSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDOUQsTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFDO0lBRTdCLElBQUksV0FBK0IsQ0FBQztJQUNwQyxJQUFJLFVBQThCLENBQUM7SUFDbkMsSUFBSSxZQUFnQyxDQUFDO0lBRXJDLEtBQUssTUFBTSxlQUFlLElBQUksZ0JBQWdCLEVBQUU7UUFDOUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFBLHlCQUFpQixFQUMxQyxlQUFlLENBQUMsTUFBTSxDQUFDLHFCQUFxQixFQUM1QyxlQUFlLENBQUMsaUJBQWlCLEVBQ2pDLGVBQWUsQ0FBQyxxQkFBcUIsQ0FDdEMsQ0FBQztRQUVGLE1BQU0sTUFBTSxHQUFXO1lBQ3JCLENBQUMsRUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDM0IsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMzQixDQUFDLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENB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cUJBQXFCLENBQUMsTUFRM0M7SUFDQyxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUEsb0NBQTJCLEVBQUMsTUFBTSxDQUFDLENBQUM7SUFFL0QsTUFBTSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFakQsTUFBTSxXQUFXLEdBQ2YsTUFBTSxDQUFDLElBQUksQ0FDVCxNQUFNLGlDQUFNLENBQUMsc0NBQXNDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUNyRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxHQUFHLGFBQWEsQ0FBQztJQUV0RCxJQUFBLGdCQUFNLEVBQ0osV0FBVyxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLDJCQUEyQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQ3ZGLHNCQUFzQixDQUN2QixDQUFDO0FBQ0osQ0FBQztBQXZCRCxzREF1QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgb3BlbnBncCBmcm9tICdvcGVucGdwJztcbmltcG9ydCBzb2RpdW0gZnJvbSAnbGlic29kaXVtLXdyYXBwZXJzLXN1bW8nO1xuaW1wb3J0IEVkZHNhLCB7IEdTaGFyZSwgSlNoYXJlLCBLZXlTaGFyZSwgUFNoYXJlLCBSU2hhcmUsIFNpZ25TaGFyZSwgWVNoYXJlIH0gZnJvbSAnLi8uLi8uLi8uLi9hY2NvdW50LWxpYi9tcGMvdHNzJztcbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uLy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQge1xuICBEZWNyeXB0YWJsZVlTaGFyZSxcbiAgQ29tYmluZWRLZXksXG4gIFNpZ25pbmdNYXRlcmlhbCxcbiAgRW5jcnlwdGVkWVNoYXJlLFxuICBVc2VyU2lnbmluZ01hdGVyaWFsLFxuICBCYWNrdXBTaWduaW5nTWF0ZXJpYWwsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgU2hhcmVLZXlQb3NpdGlvbiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7XG4gIGVuY3J5cHRBbmRTaWduVGV4dCxcbiAgcmVhZFNpZ25lZE1lc3NhZ2UsXG4gIFNpZ25hdHVyZVNoYXJlUmVjb3JkLFxuICBTaWduYXR1cmVTaGFyZVR5cGUsXG4gIFJlcXVlc3RUeXBlLFxuICBDb21taXRtZW50U2hhcmVSZWNvcmQsXG4gIENvbW1pdG1lbnRUeXBlLFxufSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9hY2NvdW50LWxpYic7XG5pbXBvcnQgeyBFZDI1NTE5QmlwMzJIZFRyZWUgfSBmcm9tICdAYml0Z28vc2RrLWxpYi1tcGMnO1xuaW1wb3J0IF8gPSByZXF1aXJlKCdsb2Rhc2gnKTtcbmltcG9ydCB7IGNvbW1vblZlcmlmeVdhbGxldFNpZ25hdHVyZSwgZ2V0VHhSZXF1ZXN0LCBzZW5kU2lnbmF0dXJlU2hhcmUgfSBmcm9tICcuLi9jb21tb24nO1xuXG5leHBvcnQgeyBnZXRUeFJlcXVlc3QsIHNlbmRTaWduYXR1cmVTaGFyZSB9O1xuXG4vKipcbiAqIENvbWJpbmVzIFlTaGFyZXMgdG8gY29tYmluZSB0aGUgZmluYWwgVFNTIGtleVxuICogVGhpcyBjYW4gb25seSBiZSB1c2VkIHRvIGNyZWF0ZSB0aGUgVXNlciBvciBCYWNrdXAga2V5IHNpbmNlIGl0IHJlcXVpcmVzIHRoZSBjb21tb24ga2V5Y2hhaW4gZnJvbSBCaXRHbyBmaXJzdFxuICpcbiAqIEBwYXJhbSBwYXJhbXMua2V5U2hhcmUgLSBUU1Mga2V5IHNoYXJlXG4gKiBAcGFyYW0gcGFyYW1zLmVuY3J5cHRlZFlTaGFyZXMgLSBlbmNyeXB0ZWQgWVNoYXJlcyB3aXRoIGluZm9ybWF0aW9uIG9uIGhvdyB0byBkZWNyeXB0XG4gKiBAcGFyYW0gcGFyYW1zLmNvbW1vbktleWNoYWluIC0gZXhwZWN0ZWQgY29tbW9uIGtleWNoYWluIG9mIHRoZSBjb21iaW5lZCBrZXlcbiAqIEByZXR1cm5zIHtDb21iaW5lZEtleX0gY29tYmluZWQgVFNTIGtleVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ29tYmluZWRLZXkocGFyYW1zOiB7XG4gIGtleVNoYXJlOiBLZXlTaGFyZTtcbiAgZW5jcnlwdGVkWVNoYXJlczogRGVjcnlwdGFibGVZU2hhcmVbXTtcbiAgY29tbW9uS2V5Y2hhaW46IHN0cmluZztcbn0pOiBQcm9taXNlPENvbWJpbmVkS2V5PiB7XG4gIGF3YWl0IEVkZHNhLmluaXRpYWxpemUoKTtcbiAgY29uc3QgTVBDID0gbmV3IEVkZHNhKCk7XG5cbiAgY29uc3QgeyBrZXlTaGFyZSwgZW5jcnlwdGVkWVNoYXJlcywgY29tbW9uS2V5Y2hhaW4gfSA9IHBhcmFtcztcbiAgY29uc3QgeVNoYXJlczogWVNoYXJlW10gPSBbXTtcblxuICBsZXQgYml0Z29ZU2hhcmU6IFlTaGFyZSB8IHVuZGVmaW5lZDtcbiAgbGV0IHVzZXJZU2hhcmU6IFlTaGFyZSB8IHVuZGVmaW5lZDtcbiAgbGV0IGJhY2t1cFlTaGFyZTogWVNoYXJlIHwgdW5kZWZpbmVkO1xuXG4gIGZvciAoY29uc3QgZW5jcnlwdGVkWVNoYXJlIG9mIGVuY3J5cHRlZFlTaGFyZXMpIHtcbiAgICBjb25zdCBwcml2YXRlU2hhcmUgPSBhd2FpdCByZWFkU2lnbmVkTWVzc2FnZShcbiAgICAgIGVuY3J5cHRlZFlTaGFyZS55U2hhcmUuZW5jcnlwdGVkUHJpdmF0ZVNoYXJlLFxuICAgICAgZW5jcnlwdGVkWVNoYXJlLnNlbmRlclB1YmxpY0FybW9yLFxuICAgICAgZW5jcnlwdGVkWVNoYXJlLnJlY2lwaWVudFByaXZhdGVBcm1vclxuICAgICk7XG5cbiAgICBjb25zdCB5U2hhcmU6IFlTaGFyZSA9IHtcbiAgICAgIGk6IGVuY3J5cHRlZFlTaGFyZS55U2hhcmUuaSxcbiAgICAgIGo6IGVuY3J5cHRlZFlTaGFyZS55U2hhcmUuaixcbiAgICAgIHk6IGVuY3J5cHRlZFlTaGFyZS55U2hhcmUucHVibGljU2hhcmUuc2xpY2UoMCwgNjQpLFxuICAgICAgdjogZW5jcnlwdGVkWVNoYXJlLnlTaGFyZS5wdWJsaWNTaGFyZS5zbGljZSg2NCwgMTI4KSxcbiAgICAgIHU6IHByaXZhdGVTaGFyZS5zbGljZSgwLCA2NCksXG4gICAgICBjaGFpbmNvZGU6IHByaXZhdGVTaGFyZS5zbGljZSg2NCksXG4gICAgfTtcblxuICAgIHN3aXRjaCAoZW5jcnlwdGVkWVNoYXJlLnlTaGFyZS5qKSB7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIHVzZXJZU2hhcmUgPSB5U2hhcmU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyOlxuICAgICAgICBiYWNrdXBZU2hhcmUgPSB5U2hhcmU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAzOlxuICAgICAgICBiaXRnb1lTaGFyZSA9IHlTaGFyZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgWVNoYXJlIGluZGV4Jyk7XG4gICAgfVxuXG4gICAgeVNoYXJlcy5wdXNoKHlTaGFyZSk7XG4gIH1cblxuICBjb25zdCBjb21iaW5lZEtleSA9IE1QQy5rZXlDb21iaW5lKGtleVNoYXJlLnVTaGFyZSwgeVNoYXJlcyk7XG4gIGlmIChjb21iaW5lZEtleS5wU2hhcmUueSArIGNvbWJpbmVkS2V5LnBTaGFyZS5jaGFpbmNvZGUgIT09IGNvbW1vbktleWNoYWluKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDb21tb24ga2V5Y2hhaW5zIGRvIG5vdCBtYXRjaCcpO1xuICB9XG4gIGlmICghYml0Z29ZU2hhcmUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgQml0R28gWSBTaGFyZScpO1xuICB9XG5cbiAgY29uc3Qgc2lnbmluZ01hdGVyaWFsOiBTaWduaW5nTWF0ZXJpYWwgPSB7XG4gICAgdVNoYXJlOiBrZXlTaGFyZS51U2hhcmUsXG4gICAgYml0Z29ZU2hhcmUsXG4gICAgYmFja3VwWVNoYXJlLFxuICAgIHVzZXJZU2hhcmUsXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBzaWduaW5nTWF0ZXJpYWwsXG4gICAgY29tbW9uS2V5Y2hhaW4sXG4gIH07XG59XG5cbi8qKlxuICogQ3JlYXRlcyB0aGUgVXNlciBTaWduIFNoYXJlIGNvbnRhaW5pbmcgdGhlIFVzZXIgWFNoYXJlICwgdGhlIFVzZXIgdG8gQml0Z28gUlNoYXJlIGFuZCBVc2VyIHRvIEJpdGdvIGNvbW1pdG1lbnRcbiAqXG4gKiBAcGFyYW0ge0J1ZmZlcn0gc2lnbmFibGVQYXlsb2FkIC0gdGhlIHNpZ25hYmxlUGF5bG9hZCBhcyBhIGJ1ZmZlclxuICogQHBhcmFtIHtQU2hhcmV9IHBTaGFyZSAtIFVzZXIncyBzaWduaW5nIG1hdGVyaWFsXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxTaWduU2hhcmU+fSAtIFVzZXIgU2lnbiBTaGFyZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVXNlclNpZ25TaGFyZShzaWduYWJsZVBheWxvYWQ6IEJ1ZmZlciwgcFNoYXJlOiBQU2hhcmUpOiBQcm9taXNlPFNpZ25TaGFyZT4ge1xuICBjb25zdCBNUEMgPSBhd2FpdCBFZGRzYS5pbml0aWFsaXplKCk7XG5cbiAgaWYgKHBTaGFyZS5pICE9PSBTaGFyZUtleVBvc2l0aW9uLlVTRVIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgUFNoYXJlLCBQU2hhcmUgZG9lc250IGJlbG9uZyB0byB0aGUgVXNlcicpO1xuICB9XG4gIGNvbnN0IGpTaGFyZTogSlNoYXJlID0geyBpOiBTaGFyZUtleVBvc2l0aW9uLkJJVEdPLCBqOiBTaGFyZUtleVBvc2l0aW9uLlVTRVIgfTtcbiAgcmV0dXJuIE1QQy5zaWduU2hhcmUoc2lnbmFibGVQYXlsb2FkLCBwU2hhcmUsIFtqU2hhcmVdKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBVc2VyIHRvIEJpdGdvIEdTaGFyZVxuICpcbiAqIEBwYXJhbSB7U2lnblNoYXJlfSB1c2VyU2lnblNoYXJlIC0gdGhlIFVzZXIgU2lnbiBTaGFyZVxuICogQHBhcmFtIHtTaWduYXR1cmVTaGFyZVJlY29yZH0gYml0Z29Ub1VzZXJSU2hhcmUgLSB0aGUgQml0Z28gdG8gVXNlciBSU2hhcmVcbiAqIEBwYXJhbSB7WVNoYXJlfSBiYWNrdXBUb1VzZXJZU2hhcmUgLSB0aGUgYmFja3VwIGtleSBZIHNoYXJlIHJlY2VpdmVkIGR1cmluZyB3YWxsZXQgY3JlYXRpb25cbiAqIEBwYXJhbSB7QnVmZmVyfSBzaWduYWJsZVBheWxvYWQgLSB0aGUgc2lnbmFibGUgcGF5bG9hZCBmcm9tIGEgdHhcbiAqIEBwYXJhbSB7Q29tbWl0bWVudFNoYXJlUmVjb3JkfSBbYml0Z29Ub1VzZXJDb21taXRtZW50XSAtIHRoZSBCaXRnbyB0byBVc2VyIENvbW1pdG1lbnRcbiAqIEByZXR1cm5zIHtQcm9taXNlPEdTaGFyZT59IC0gdGhlIFVzZXIgdG8gQml0Z28gR1NoYXJlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVVc2VyVG9CaXRHb0dTaGFyZShcbiAgdXNlclNpZ25TaGFyZTogU2lnblNoYXJlLFxuICBiaXRnb1RvVXNlclJTaGFyZTogU2lnbmF0dXJlU2hhcmVSZWNvcmQsXG4gIGJhY2t1cFRvVXNlcllTaGFyZTogWVNoYXJlLFxuICBiaXRnb1RvVXNlcllTaGFyZTogWVNoYXJlLFxuICBzaWduYWJsZVBheWxvYWQ6IEJ1ZmZlcixcbiAgYml0Z29Ub1VzZXJDb21taXRtZW50PzogQ29tbWl0bWVudFNoYXJlUmVjb3JkXG4pOiBQcm9taXNlPEdTaGFyZT4ge1xuICBpZiAodXNlclNpZ25TaGFyZS54U2hhcmUuaSAhPT0gU2hhcmVLZXlQb3NpdGlvbi5VU0VSKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFhTaGFyZSwgZG9lc250IGJlbG9uZyB0byB0aGUgVXNlcicpO1xuICB9XG4gIGlmIChiaXRnb1RvVXNlclJTaGFyZS5mcm9tICE9PSBTaWduYXR1cmVTaGFyZVR5cGUuQklUR08gfHwgYml0Z29Ub1VzZXJSU2hhcmUudG8gIT09IFNpZ25hdHVyZVNoYXJlVHlwZS5VU0VSKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFJTaGFyZSwgaXMgbm90IGZyb20gQml0Z28gdG8gVXNlcicpO1xuICB9XG4gIGlmIChiYWNrdXBUb1VzZXJZU2hhcmUuaSAhPT0gU2hhcmVLZXlQb3NpdGlvbi5VU0VSKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFlTaGFyZSwgZG9lc250IGJlbG9uZyB0byB0aGUgVXNlcicpO1xuICB9XG4gIGlmIChiYWNrdXBUb1VzZXJZU2hhcmUuaiAhPT0gU2hhcmVLZXlQb3NpdGlvbi5CQUNLVVApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgWVNoYXJlLCBpcyBub3QgYmFja3VwIGtleScpO1xuICB9XG5cbiAgbGV0IHYsIHIsIFI7XG4gIGlmIChiaXRnb1RvVXNlclJTaGFyZS5zaGFyZS5sZW5ndGggPiAxMjgpIHtcbiAgICB2ID0gYml0Z29Ub1VzZXJSU2hhcmUuc2hhcmUuc3Vic3RyaW5nKDAsIDY0KTtcbiAgICByID0gYml0Z29Ub1VzZXJSU2hhcmUuc2hhcmUuc3Vic3RyaW5nKDY0LCAxMjgpO1xuICAgIFIgPSBiaXRnb1RvVXNlclJTaGFyZS5zaGFyZS5zdWJzdHJpbmcoMTI4LCAxOTIpO1xuICB9IGVsc2Uge1xuICAgIHIgPSBiaXRnb1RvVXNlclJTaGFyZS5zaGFyZS5zdWJzdHJpbmcoMCwgNjQpO1xuICAgIFIgPSBiaXRnb1RvVXNlclJTaGFyZS5zaGFyZS5zdWJzdHJpbmcoNjQsIDEyOCk7XG4gIH1cblxuICBjb25zdCB1cGRhdGVkQml0Z29Ub1VzZXJSU2hhcmU6IFJTaGFyZSA9IHtcbiAgICBpOiBTaGFyZUtleVBvc2l0aW9uLlVTRVIsXG4gICAgajogU2hhcmVLZXlQb3NpdGlvbi5CSVRHTyxcbiAgICB1OiBiaXRnb1RvVXNlcllTaGFyZS51LFxuICAgIHYsXG4gICAgcixcbiAgICBSLFxuICB9O1xuXG4gIGNvbnN0IE1QQyA9IGF3YWl0IEVkZHNhLmluaXRpYWxpemUoKTtcblxuICBpZiAoYml0Z29Ub1VzZXJDb21taXRtZW50KSB7XG4gICAgaWYgKFxuICAgICAgYml0Z29Ub1VzZXJDb21taXRtZW50LmZyb20gIT09IFNpZ25hdHVyZVNoYXJlVHlwZS5CSVRHTyB8fFxuICAgICAgYml0Z29Ub1VzZXJDb21taXRtZW50LnRvICE9PSBTaWduYXR1cmVTaGFyZVR5cGUuVVNFUlxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIENvbW1pdG1lbnQsIGlzIG5vdCBmcm9tIEJpdGdvIHRvIFVzZXInKTtcbiAgICB9XG4gICAgaWYgKGJpdGdvVG9Vc2VyQ29tbWl0bWVudC50eXBlICE9PSBDb21taXRtZW50VHlwZS5DT01NSVRNRU5UKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgQ29tbWl0bWVudCB0eXBlLCBnb3Q6ICcgKyBiaXRnb1RvVXNlckNvbW1pdG1lbnQudHlwZSArICcgZXhwZWN0ZWQ6IGNvbW1pdG1lbnQnKTtcbiAgICB9XG4gICAgdXBkYXRlZEJpdGdvVG9Vc2VyUlNoYXJlLmNvbW1pdG1lbnQgPSBiaXRnb1RvVXNlckNvbW1pdG1lbnQuc2hhcmU7XG4gIH1cblxuICByZXR1cm4gTVBDLnNpZ24oc2lnbmFibGVQYXlsb2FkLCB1c2VyU2lnblNoYXJlLnhTaGFyZSwgW3VwZGF0ZWRCaXRnb1RvVXNlclJTaGFyZV0sIFtiYWNrdXBUb1VzZXJZU2hhcmVdKTtcbn1cblxuLyoqXG4gKiBTZW5kcyB0aGUgVXNlciB0byBCaXRnbyBSU2hhcmUgdG8gQml0Z29cbiAqIEBwYXJhbSB7Qml0R29CYXNlfSBiaXRnbyAtIHRoZSBiaXRnbyBpbnN0YW5jZVxuICogQHBhcmFtIHtTdHJpbmd9IHdhbGxldElkIC0gdGhlIHdhbGxldCBpZFxuICogQHBhcmFtIHtTdHJpbmd9IHR4UmVxdWVzdElkIC0gdGhlIHR4UmVxdWVzdCBJZFxuICogQHBhcmFtIHtTaWduU2hhcmV9IHVzZXJTaWduU2hhcmUgLSB0aGUgdXNlciBTaWduIFNoYXJlXG4gKiBAcGFyYW0ge1N0cmluZ30gZW5jcnlwdGVkU2lnbmVyU2hhcmUgLSBzaWduZXIgc2hhcmUgZW5jcnlwdGVkIHRvIGJpdGdvIGtleVxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvZmZlclVzZXJUb0JpdGdvUlNoYXJlKFxuICBiaXRnbzogQml0R29CYXNlLFxuICB3YWxsZXRJZDogc3RyaW5nLFxuICB0eFJlcXVlc3RJZDogc3RyaW5nLFxuICB1c2VyU2lnblNoYXJlOiBTaWduU2hhcmUsXG4gIGVuY3J5cHRlZFNpZ25lclNoYXJlOiBzdHJpbmcsXG4gIGFwaU1vZGU6ICdmdWxsJyB8ICdsaXRlJyA9ICdsaXRlJyxcbiAgdnNzUHJvb2Y/OiBzdHJpbmcsXG4gIHByaXZhdGVTaGFyZVByb29mPzogc3RyaW5nLFxuICB1c2VyUHVibGljR3BnS2V5Pzogc3RyaW5nLFxuICBwdWJsaWNTaGFyZT86IHN0cmluZ1xuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHJTaGFyZTogUlNoYXJlID0gdXNlclNpZ25TaGFyZS5yU2hhcmVzW1NoYXJlS2V5UG9zaXRpb24uQklUR09dO1xuICBpZiAoXy5pc05pbChyU2hhcmUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1c2VyVG9CaXRnbyBSU2hhcmUgbm90IGZvdW5kJyk7XG4gIH1cbiAgaWYgKHJTaGFyZS5pICE9PSBTaGFyZUtleVBvc2l0aW9uLkJJVEdPIHx8IHJTaGFyZS5qICE9PSBTaGFyZUtleVBvc2l0aW9uLlVTRVIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgUlNoYXJlLCBpcyBub3QgZnJvbSBVc2VyIHRvIEJpdGdvJyk7XG4gIH1cbiAgY29uc3Qgc2lnbmF0dXJlU2hhcmU6IFNpZ25hdHVyZVNoYXJlUmVjb3JkID0ge1xuICAgIGZyb206IFNpZ25hdHVyZVNoYXJlVHlwZS5VU0VSLFxuICAgIHRvOiBTaWduYXR1cmVTaGFyZVR5cGUuQklUR08sXG4gICAgc2hhcmU6IHJTaGFyZS5yICsgclNoYXJlLlIsXG4gICAgdnNzUHJvb2YsXG4gICAgcHJpdmF0ZVNoYXJlUHJvb2YsXG4gICAgcHVibGljU2hhcmUsXG4gIH07XG5cbiAgLy8gVE9ETyAoQkctNTc5NDQpOiBpbXBsZW1lbnQgbWVzc2FnZSBzaWduaW5nIGZvciBFRERTQVxuICBhd2FpdCBzZW5kU2lnbmF0dXJlU2hhcmUoXG4gICAgYml0Z28sXG4gICAgd2FsbGV0SWQsXG4gICAgdHhSZXF1ZXN0SWQsXG4gICAgc2lnbmF0dXJlU2hhcmUsXG4gICAgUmVxdWVzdFR5cGUudHgsXG4gICAgZW5jcnlwdGVkU2lnbmVyU2hhcmUsXG4gICAgJ2VkZHNhJyxcbiAgICBhcGlNb2RlLFxuICAgIHVzZXJQdWJsaWNHcGdLZXlcbiAgKTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBCaXRnbyB0byBVc2VyIFJTaGFyZSBmcm9tIEJpdGdvXG4gKlxuICogQHBhcmFtIHtCaXRHb0Jhc2V9IGJpdGdvIC0gdGhlIGJpdGdvIGluc3RhbmNlXG4gKiBAcGFyYW0ge1N0cmluZ30gd2FsbGV0SWQgLSB0aGUgd2FsbGV0IGlkXG4gKiBAcGFyYW0ge1N0cmluZ30gdHhSZXF1ZXN0SWQgLSB0aGUgdHhSZXF1ZXN0IElkXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxTaWduYXR1cmVTaGFyZVJlY29yZD59IC0gYSBTaWduYXR1cmUgU2hhcmVcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEJpdGdvVG9Vc2VyUlNoYXJlKFxuICBiaXRnbzogQml0R29CYXNlLFxuICB3YWxsZXRJZDogc3RyaW5nLFxuICB0eFJlcXVlc3RJZDogc3RyaW5nXG4pOiBQcm9taXNlPFNpZ25hdHVyZVNoYXJlUmVjb3JkPiB7XG4gIGNvbnN0IHR4UmVxdWVzdCA9IGF3YWl0IGdldFR4UmVxdWVzdChiaXRnbywgd2FsbGV0SWQsIHR4UmVxdWVzdElkKTtcbiAgbGV0IHNpZ25hdHVyZVNoYXJlcztcbiAgaWYgKHR4UmVxdWVzdC5hcGlWZXJzaW9uID09PSAnZnVsbCcpIHtcbiAgICBhc3NlcnQodHhSZXF1ZXN0LnRyYW5zYWN0aW9ucywgJ3RyYW5zYWN0aW9ucyByZXF1aXJlZCBhcyBwYXJ0IG9mIHR4UmVxdWVzdCcpO1xuICAgIHNpZ25hdHVyZVNoYXJlcyA9IHR4UmVxdWVzdC50cmFuc2FjdGlvbnNbMF0uc2lnbmF0dXJlU2hhcmVzO1xuICB9IGVsc2Uge1xuICAgIHNpZ25hdHVyZVNoYXJlcyA9IHR4UmVxdWVzdC5zaWduYXR1cmVTaGFyZXM7XG4gIH1cbiAgaWYgKF8uaXNOaWwoc2lnbmF0dXJlU2hhcmVzKSB8fCBfLmlzRW1wdHkoc2lnbmF0dXJlU2hhcmVzKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTm8gc2lnbmF0dXJlcyBzaGFyZXMgZm91bmQgZm9yIGlkOiAke3R4UmVxdWVzdElkfWApO1xuICB9XG4gIC8vIGF0IHRoaXMgcG9pbnQgd2UgZXhwZWN0IHRoZSBvbmx5IHNoYXJlIHRvIGJlIHRoZSBSU2hhcmVcbiAgY29uc3QgYml0Z29Ub1VzZXJSU2hhcmUgPSBzaWduYXR1cmVTaGFyZXMuZmluZChcbiAgICAoc2lnU2hhcmUpID0+IHNpZ1NoYXJlLmZyb20gPT09IFNpZ25hdHVyZVNoYXJlVHlwZS5CSVRHTyAmJiBzaWdTaGFyZS50byA9PT0gU2lnbmF0dXJlU2hhcmVUeXBlLlVTRVJcbiAgKTtcbiAgaWYgKF8uaXNOaWwoYml0Z29Ub1VzZXJSU2hhcmUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBCaXRnbyB0byBVc2VyIFJTaGFyZSBub3QgZm91bmQgZm9yIGlkOiAke3R4UmVxdWVzdElkfWApO1xuICB9XG4gIHJldHVybiBiaXRnb1RvVXNlclJTaGFyZTtcbn1cblxuLyoqXG4gKiBTZW5kcyB0aGUgVXNlciB0byBCaXRnbyBHU2hhcmUgdG8gQml0Z29cbiAqXG4gKiBAcGFyYW0ge0JpdEdvQmFzZX0gYml0Z28gLSB0aGUgYml0Z28gaW5zdGFuY2VcbiAqIEBwYXJhbSB7U3RyaW5nfSB3YWxsZXRJZCAtIHRoZSB3YWxsZXQgaWRcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eFJlcXVlc3RJZCAtIHRoZSB0eFJlcXVlc3QgSWRcbiAqIEBwYXJhbSB7R1NoYXJlfSB1c2VyVG9CaXRnb0dTaGFyZSAtIHRoZSBVc2VyIHRvIEJpdGdvIEdTaGFyZVxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kVXNlclRvQml0Z29HU2hhcmUoXG4gIGJpdGdvOiBCaXRHb0Jhc2UsXG4gIHdhbGxldElkOiBzdHJpbmcsXG4gIHR4UmVxdWVzdElkOiBzdHJpbmcsXG4gIHVzZXJUb0JpdGdvR1NoYXJlOiBHU2hhcmUsXG4gIGFwaU1vZGU6ICdmdWxsJyB8ICdsaXRlJyA9ICdsaXRlJ1xuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICh1c2VyVG9CaXRnb0dTaGFyZS5pICE9PSBTaGFyZUtleVBvc2l0aW9uLlVTRVIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgR1NoYXJlLCBkb2VzbnQgYmVsb25nIHRvIHRoZSBVc2VyJyk7XG4gIH1cbiAgY29uc3Qgc2lnbmF0dXJlU2hhcmU6IFNpZ25hdHVyZVNoYXJlUmVjb3JkID0ge1xuICAgIGZyb206IFNpZ25hdHVyZVNoYXJlVHlwZS5VU0VSLFxuICAgIHRvOiBTaWduYXR1cmVTaGFyZVR5cGUuQklUR08sXG4gICAgc2hhcmU6IHVzZXJUb0JpdGdvR1NoYXJlLlIgKyB1c2VyVG9CaXRnb0dTaGFyZS5nYW1tYSxcbiAgfTtcblxuICAvLyBUT0RPIChCRy01Nzk0NCk6IGltcGxlbWVudCBtZXNzYWdlIHNpZ25pbmcgZm9yIEVERFNBXG4gIGF3YWl0IHNlbmRTaWduYXR1cmVTaGFyZShiaXRnbywgd2FsbGV0SWQsIHR4UmVxdWVzdElkLCBzaWduYXR1cmVTaGFyZSwgUmVxdWVzdFR5cGUudHgsIHVuZGVmaW5lZCwgJ2VkZHNhJywgYXBpTW9kZSk7XG59XG5cbi8qKlxuICogUHJlcGFyZXMgYSBZU2hhcmUgdG8gYmUgZXhjaGFuZ2VkIHdpdGggb3RoZXIga2V5IGhvbGRlcnMuXG4gKiBPdXRwdXQgaXMgaW4gYSBmb3JtYXQgdGhhdCBpcyB1c2FibGUgd2l0aGluIEJpdEdvJ3MgZWNvc3lzdGVtLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMua2V5U2hhcmUgLSBUU1Mga2V5IHNoYXJlIG9mIHRoZSBwYXJ0eSBwcmVwYXJpbmcgZXhjaGFuZ2UgbWF0ZXJpYWxzXG4gKiBAcGFyYW0gcGFyYW1zLnJlY2lwaWVudEluZGV4IC0gaW5kZXggb2YgdGhlIHJlY2lwaWVudCAoMSwgMiwgb3IgMylcbiAqIEBwYXJhbSBwYXJhbXMucmVjaXBpZW50R3BnUHVibGljQXJtb3IgLSByZWNpcGllbnQncyBwdWJsaWMgZ3BnIGtleSBpbiBhcm1vciBmb3JtYXRcbiAqIEBwYXJhbSBwYXJhbXMuc2VuZGVyR3BnUHJpdmF0ZUFybW9yIC0gc2VuZGVyJ3MgcHJpdmF0ZSBncGcga2V5IGluIGFybW9yIGZvcm1hdFxuICogQHJldHVybnMgeyBFbmNyeXB0ZWRZU2hhcmUgfSBlbmNyeXB0ZWQgWSBTaGFyZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5jcnlwdFlTaGFyZShwYXJhbXM6IHtcbiAga2V5U2hhcmU6IEtleVNoYXJlO1xuICByZWNpcGllbnRJbmRleDogbnVtYmVyO1xuICByZWNpcGllbnRHcGdQdWJsaWNBcm1vcjogc3RyaW5nO1xuICBzZW5kZXJHcGdQcml2YXRlQXJtb3I6IHN0cmluZztcbn0pOiBQcm9taXNlPEVuY3J5cHRlZFlTaGFyZT4ge1xuICBjb25zdCB7IGtleVNoYXJlLCByZWNpcGllbnRJbmRleCwgcmVjaXBpZW50R3BnUHVibGljQXJtb3IsIHNlbmRlckdwZ1ByaXZhdGVBcm1vciB9ID0gcGFyYW1zO1xuXG4gIGNvbnN0IHlTaGFyZSA9IGtleVNoYXJlLnlTaGFyZXNbcmVjaXBpZW50SW5kZXhdO1xuICBpZiAoIXlTaGFyZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCByZWNpcGllbnQnKTtcbiAgfVxuXG4gIGNvbnN0IHB1YmxpY1NoYXJlID0gQnVmZmVyLmNvbmNhdChbXG4gICAgQnVmZmVyLmZyb20oa2V5U2hhcmUudVNoYXJlLnksICdoZXgnKSxcbiAgICBCdWZmZXIuZnJvbSh5U2hhcmUudiEsICdoZXgnKSxcbiAgICBCdWZmZXIuZnJvbShrZXlTaGFyZS51U2hhcmUuY2hhaW5jb2RlLCAnaGV4JyksXG4gIF0pLnRvU3RyaW5nKCdoZXgnKTtcblxuICBjb25zdCBwcml2YXRlU2hhcmUgPSBCdWZmZXIuY29uY2F0KFtCdWZmZXIuZnJvbSh5U2hhcmUudSwgJ2hleCcpLCBCdWZmZXIuZnJvbSh5U2hhcmUuY2hhaW5jb2RlLCAnaGV4JyldKS50b1N0cmluZyhcbiAgICAnaGV4J1xuICApO1xuXG4gIGNvbnN0IGVuY3J5cHRlZFByaXZhdGVTaGFyZSA9IGF3YWl0IGVuY3J5cHRBbmRTaWduVGV4dChwcml2YXRlU2hhcmUsIHJlY2lwaWVudEdwZ1B1YmxpY0FybW9yLCBzZW5kZXJHcGdQcml2YXRlQXJtb3IpO1xuXG4gIHJldHVybiB7XG4gICAgaTogeVNoYXJlLmksXG4gICAgajogeVNoYXJlLmosXG4gICAgcHVibGljU2hhcmUsXG4gICAgZW5jcnlwdGVkUHJpdmF0ZVNoYXJlLFxuICB9O1xufVxuXG4vKipcbiAqXG4gKiBJbml0aWFsaXplcyBFZGRzYSBpbnN0YW5jZVxuICpcbiAqIEByZXR1cm5zIHtQcm9taXNlPEVkZHNhPn0gdGhlIEVkZHNhIGluc3RhbmNlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRJbml0aWFsaXplZE1wY0luc3RhbmNlKCkge1xuICBjb25zdCBoZFRyZWUgPSBhd2FpdCBFZDI1NTE5QmlwMzJIZFRyZWUuaW5pdGlhbGl6ZSgpO1xuICByZXR1cm4gYXdhaXQgRWRkc2EuaW5pdGlhbGl6ZShoZFRyZWUpO1xufVxuXG4vKipcbiAqXG4gKiBHZW5lcmF0ZXMgYSBUU1Mgc2lnbmF0dXJlIHVzaW5nIHRoZSB1c2VyIGFuZCBiYWNrdXAga2V5XG4gKlxuICogQHBhcmFtIHtVc2VyU2lnbmluZ01hdGVyaWFsfSB1c2VyU2lnbmluZ01hdGVyaWFsIGRlY3J5cHRlZCB1c2VyIFRTUyBrZXlcbiAqIEBwYXJhbSB7QmFja3VwU2lnbmluZ01hdGVyaWFsfSBiYWNrdXBTaWduaW5nTWF0ZXJpYWwgZGVjcnlwdGVkIGJhY2t1cCBUU1Mga2V5XG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aCBiaXAzMiBkZXJpdmF0aW9uIHBhdGhcbiAqIEBwYXJhbSB7QmFzZVRyYW5zYWN0aW9ufSB0cmFuc2FjdGlvbiB0aGUgdHJhbnNhY3Rpb24gdG8gc2lnblxuICogQHJldHVybnMge0J1ZmZlcn0gdGhlIHNpZ25hdHVyZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0VFNTU2lnbmF0dXJlKFxuICB1c2VyU2lnbmluZ01hdGVyaWFsOiBVc2VyU2lnbmluZ01hdGVyaWFsLFxuICBiYWNrdXBTaWduaW5nTWF0ZXJpYWw6IEJhY2t1cFNpZ25pbmdNYXRlcmlhbCxcbiAgcGF0aCA9ICdtLzAnLFxuICB0cmFuc2FjdGlvbjogQmFzZVRyYW5zYWN0aW9uXG4pOiBQcm9taXNlPEJ1ZmZlcj4ge1xuICBjb25zdCBNUEMgPSBhd2FpdCBnZXRJbml0aWFsaXplZE1wY0luc3RhbmNlKCk7XG5cbiAgY29uc3QgdXNlckNvbWJpbmUgPSBNUEMua2V5Q29tYmluZSh1c2VyU2lnbmluZ01hdGVyaWFsLnVTaGFyZSwgW1xuICAgIHVzZXJTaWduaW5nTWF0ZXJpYWwuYml0Z29ZU2hhcmUsXG4gICAgdXNlclNpZ25pbmdNYXRlcmlhbC5iYWNrdXBZU2hhcmUsXG4gIF0pO1xuICBjb25zdCBiYWNrdXBDb21iaW5lID0gTVBDLmtleUNvbWJpbmUoYmFja3VwU2lnbmluZ01hdGVyaWFsLnVTaGFyZSwgW1xuICAgIGJhY2t1cFNpZ25pbmdNYXRlcmlhbC5iaXRnb1lTaGFyZSxcbiAgICBiYWNrdXBTaWduaW5nTWF0ZXJpYWwudXNlcllTaGFyZSxcbiAgXSk7XG5cbiAgY29uc3QgdXNlclN1YmtleSA9IE1QQy5rZXlEZXJpdmUoXG4gICAgdXNlclNpZ25pbmdNYXRlcmlhbC51U2hhcmUsXG4gICAgW3VzZXJTaWduaW5nTWF0ZXJpYWwuYml0Z29ZU2hhcmUsIHVzZXJTaWduaW5nTWF0ZXJpYWwuYmFja3VwWVNoYXJlXSxcbiAgICBwYXRoXG4gICk7XG5cbiAgY29uc3QgYmFja3VwU3Via2V5ID0gTVBDLmtleUNvbWJpbmUoYmFja3VwU2lnbmluZ01hdGVyaWFsLnVTaGFyZSwgW1xuICAgIHVzZXJTdWJrZXkueVNoYXJlc1syXSxcbiAgICBiYWNrdXBTaWduaW5nTWF0ZXJpYWwuYml0Z29ZU2hhcmUsXG4gIF0pO1xuXG4gIGNvbnN0IG1lc3NhZ2VCdWZmZXIgPSB0cmFuc2FjdGlvbi5zaWduYWJsZVBheWxvYWQ7XG4gIGNvbnN0IHVzZXJTaWduU2hhcmUgPSBNUEMuc2lnblNoYXJlKG1lc3NhZ2VCdWZmZXIsIHVzZXJTdWJrZXkucFNoYXJlLCBbdXNlckNvbWJpbmUualNoYXJlc1syXV0pO1xuICBjb25zdCBiYWNrdXBTaWduU2hhcmUgPSBNUEMuc2lnblNoYXJlKG1lc3NhZ2VCdWZmZXIsIGJhY2t1cFN1YmtleS5wU2hhcmUsIFtiYWNrdXBDb21iaW5lLmpTaGFyZXNbMV1dKTtcbiAgY29uc3QgdXNlclNpZ24gPSBNUEMuc2lnbihcbiAgICBtZXNzYWdlQnVmZmVyLFxuICAgIHVzZXJTaWduU2hhcmUueFNoYXJlLFxuICAgIFtiYWNrdXBTaWduU2hhcmUuclNoYXJlc1sxXV0sXG4gICAgW3VzZXJTaWduaW5nTWF0ZXJpYWwuYml0Z29ZU2hhcmVdXG4gICk7XG4gIGNvbnN0IGJhY2t1cFNpZ24gPSBNUEMuc2lnbihcbiAgICBtZXNzYWdlQnVmZmVyLFxuICAgIGJhY2t1cFNpZ25TaGFyZS54U2hhcmUsXG4gICAgW3VzZXJTaWduU2hhcmUuclNoYXJlc1syXV0sXG4gICAgW2JhY2t1cFNpZ25pbmdNYXRlcmlhbC5iaXRnb1lTaGFyZV1cbiAgKTtcbiAgY29uc3Qgc2lnbmF0dXJlID0gTVBDLnNpZ25Db21iaW5lKFt1c2VyU2lnbiwgYmFja3VwU2lnbl0pO1xuICBjb25zdCByZXN1bHQgPSBNUEMudmVyaWZ5KG1lc3NhZ2VCdWZmZXIsIHNpZ25hdHVyZSk7XG4gIGlmICghcmVzdWx0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHNpZ25hdHVyZScpO1xuICB9XG4gIGNvbnN0IHJhd1NpZ25hdHVyZSA9IEJ1ZmZlci5jb25jYXQoW0J1ZmZlci5mcm9tKHNpZ25hdHVyZS5SLCAnaGV4JyksIEJ1ZmZlci5mcm9tKHNpZ25hdHVyZS5zaWdtYSwgJ2hleCcpXSk7XG4gIHJldHVybiByYXdTaWduYXR1cmU7XG59XG5cbi8qKlxuICogVmVyaWZpZXMgdGhhdCBhIFRTUyB3YWxsZXQgc2lnbmF0dXJlIHdhcyBwcm9kdWNlZCB3aXRoIHRoZSBleHBlY3RlZCBrZXkgYW5kIHRoYXQgdGhlIHNpZ25lZCBkYXRhIGNvbnRhaW5zIHRoZVxuICogZXhwZWN0ZWQgY29tbW9uIGtleWNoYWluLCB0aGUgZXhwZWN0ZWQgdXNlciBhbmQgYmFja3VwIGtleSBpZHMgYXMgd2VsbCBhcyB0aGUgcHVibGljIHNoYXJlIHRoYXQgaXMgZ2VuZXJhdGVkIGZyb20gdGhlXG4gKiBwcml2YXRlIHNoYXJlIHRoYXQgd2FzIHBhc3NlZCBpbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHZlcmlmeVdhbGxldFNpZ25hdHVyZShwYXJhbXM6IHtcbiAgd2FsbGV0U2lnbmF0dXJlOiBvcGVucGdwLktleTtcbiAgYml0Z29QdWI6IG9wZW5wZ3AuS2V5O1xuICBjb21tb25LZXljaGFpbjogc3RyaW5nO1xuICB1c2VyS2V5SWQ6IHN0cmluZztcbiAgYmFja3VwS2V5SWQ6IHN0cmluZztcbiAgZGVjcnlwdGVkU2hhcmU6IHN0cmluZztcbiAgdmVyaWZpZXJJbmRleDogMSB8IDI7IC8vIHRoZSBpbmRleCBvZiB0aGUgdmVyaWZpZXIsIDEgbWVhbnMgdXNlciwgMiBtZWFucyBiYWNrdXBcbn0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcmF3Tm90YXRpb25zID0gYXdhaXQgY29tbW9uVmVyaWZ5V2FsbGV0U2lnbmF0dXJlKHBhcmFtcyk7XG5cbiAgY29uc3QgeyBkZWNyeXB0ZWRTaGFyZSwgdmVyaWZpZXJJbmRleCB9ID0gcGFyYW1zO1xuXG4gIGNvbnN0IHB1YmxpY1NoYXJlID1cbiAgICBCdWZmZXIuZnJvbShcbiAgICAgIGF3YWl0IHNvZGl1bS5jcnlwdG9fc2NhbGFybXVsdF9lZDI1NTE5X2Jhc2Vfbm9jbGFtcChCdWZmZXIuZnJvbShkZWNyeXB0ZWRTaGFyZS5zbGljZSgwLCA2NCksICdoZXgnKSlcbiAgICApLnRvU3RyaW5nKCdoZXgnKSArIGRlY3J5cHRlZFNoYXJlLnNsaWNlKDY0KTtcbiAgY29uc3QgcHVibGljU2hhcmVSYXdOb3RhdGlvbkluZGV4ID0gMiArIHZlcmlmaWVySW5kZXg7XG5cbiAgYXNzZXJ0KFxuICAgIHB1YmxpY1NoYXJlID09PSBCdWZmZXIuZnJvbShyYXdOb3RhdGlvbnNbcHVibGljU2hhcmVSYXdOb3RhdGlvbkluZGV4XS52YWx1ZSkudG9TdHJpbmcoKSxcbiAgICAnYml0Z28gc2hhcmUgbWlzbWF0Y2gnXG4gICk7XG59XG4iXX0=
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -34,4 +38,4 @@ Object.defineProperty(exports, "sendUserToBitgoGShare", { enumerable: true, get:
|
|
|
34
38
|
Object.defineProperty(exports, "getTxRequest", { enumerable: true, get: function () { return eddsa_1.getTxRequest; } });
|
|
35
39
|
Object.defineProperty(exports, "sendSignatureShare", { enumerable: true, get: function () { return eddsa_1.sendSignatureShare; } });
|
|
36
40
|
Object.defineProperty(exports, "encryptYShare", { enumerable: true, get: function () { return eddsa_1.encryptYShare; } });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdHNzL2VkZHNhL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0RBQXdDO0FBQ3hDLDREQUE0QztBQUU1QyxrQkFBZSxZQUFZLENBQUM7QUFFNUIsbURBQW1EO0FBQ25ELGlDQVVpQjtBQVRmLDBHQUFBLGlCQUFpQixPQUFBO0FBQ2pCLDRHQUFBLG1CQUFtQixPQUFBO0FBQ25CLGdIQUFBLHVCQUF1QixPQUFBO0FBQ3ZCLCtHQUFBLHNCQUFzQixPQUFBO0FBQ3RCLDZHQUFBLG9CQUFvQixPQUFBO0FBQ3BCLDhHQUFBLHFCQUFxQixPQUFBO0FBQ3JCLHFHQUFBLFlBQVksT0FBQTtBQUNaLDJHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLHNHQUFBLGFBQWEsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIEVERFNBTWV0aG9kcyBmcm9tICcuL2VkZHNhJztcbmV4cG9ydCAqIGFzIEVERFNBTWV0aG9kVHlwZXMgZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBkZWZhdWx0IEVERFNBTWV0aG9kcztcblxuLy8gZXhwb3J0aW5nIHRoaXMgdHlwZXMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG5leHBvcnQge1xuICBjcmVhdGVDb21iaW5lZEtleSxcbiAgY3JlYXRlVXNlclNpZ25TaGFyZSxcbiAgY3JlYXRlVXNlclRvQml0R29HU2hhcmUsXG4gIG9mZmVyVXNlclRvQml0Z29SU2hhcmUsXG4gIGdldEJpdGdvVG9Vc2VyUlNoYXJlLFxuICBzZW5kVXNlclRvQml0Z29HU2hhcmUsXG4gIGdldFR4UmVxdWVzdCxcbiAgc2VuZFNpZ25hdHVyZVNoYXJlLFxuICBlbmNyeXB0WVNoYXJlLFxufSBmcm9tICcuL2VkZHNhJztcblxuZXhwb3J0IHsgRW5jcnlwdGVkWVNoYXJlLCBEZWNyeXB0YWJsZVlTaGFyZSwgQ29tYmluZWRLZXksIFNpZ25pbmdNYXRlcmlhbCB9IGZyb20gJy4vdHlwZXMnO1xuIl19
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -41,4 +45,4 @@ Object.defineProperty(exports, "getTxRequest", { enumerable: true, get: function
|
|
|
41
45
|
Object.defineProperty(exports, "sendSignatureShare", { enumerable: true, get: function () { return eddsa_2.sendSignatureShare; } });
|
|
42
46
|
Object.defineProperty(exports, "encryptYShare", { enumerable: true, get: function () { return eddsa_2.encryptYShare; } });
|
|
43
47
|
exports.commonTssMethods = __importStar(require("./common"));
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vdHNzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQXlEO0FBR2hELHVCQUhGLGVBQVksQ0FHRTtBQUFFLGlHQUhBLHdCQUFnQixPQUdBO0FBRnZDLGlEQUF5RDtBQUVoQix1QkFGbEMsZUFBWSxDQUVrQztBQUFFLGlHQUZoQyx3QkFBZ0IsT0FFZ0M7QUFDdkUsaUNBQTJDO0FBQWxDLHlHQUFBLGdCQUFnQixPQUFBO0FBRXpCLG1EQUFtRDtBQUNuRCxtQ0FBbUM7QUFDbkMsaUNBY2lCO0FBYmYsMEdBQUEsaUJBQWlCLE9BQUE7QUFDakIsNEdBQUEsbUJBQW1CLE9BQUE7QUFDbkIsZ0hBQUEsdUJBQXVCLE9BQUE7QUFDdkIsK0dBQUEsc0JBQXNCLE9BQUE7QUFDdEIsNkdBQUEsb0JBQW9CLE9BQUE7QUFDcEIsOEdBQUEscUJBQXFCLE9BQUE7QUFDckIscUdBQUEsWUFBWSxPQUFBO0FBQ1osMkdBQUEsa0JBQWtCLE9BQUE7QUFDbEIsc0dBQUEsYUFBYSxPQUFBO0FBT2YsNkRBQTZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEVERFNBTWV0aG9kcywgeyBFRERTQU1ldGhvZFR5cGVzIH0gZnJvbSAnLi9lZGRzYSc7XG5pbXBvcnQgRUNEU0FNZXRob2RzLCB7IEVDRFNBTWV0aG9kVHlwZXMgfSBmcm9tICcuL2VjZHNhJztcblxuZXhwb3J0IHsgRUREU0FNZXRob2RzLCBFRERTQU1ldGhvZFR5cGVzLCBFQ0RTQU1ldGhvZHMsIEVDRFNBTWV0aG9kVHlwZXMgfTtcbmV4cG9ydCB7IFNoYXJlS2V5UG9zaXRpb24gfSBmcm9tICcuL3R5cGVzJztcblxuLy8gZXhwb3J0aW5nIHRoaXMgdHlwZXMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4vKiogQGRlcHJlY2F0ZWQgVXNlIEVERFNBTWV0aG9kcyAqL1xuZXhwb3J0IHtcbiAgY3JlYXRlQ29tYmluZWRLZXksXG4gIGNyZWF0ZVVzZXJTaWduU2hhcmUsXG4gIGNyZWF0ZVVzZXJUb0JpdEdvR1NoYXJlLFxuICBvZmZlclVzZXJUb0JpdGdvUlNoYXJlLFxuICBnZXRCaXRnb1RvVXNlclJTaGFyZSxcbiAgc2VuZFVzZXJUb0JpdGdvR1NoYXJlLFxuICBnZXRUeFJlcXVlc3QsXG4gIHNlbmRTaWduYXR1cmVTaGFyZSxcbiAgZW5jcnlwdFlTaGFyZSxcbiAgRW5jcnlwdGVkWVNoYXJlLFxuICBEZWNyeXB0YWJsZVlTaGFyZSxcbiAgQ29tYmluZWRLZXksXG4gIFNpZ25pbmdNYXRlcmlhbCxcbn0gZnJvbSAnLi9lZGRzYSc7XG5cbmV4cG9ydCAqIGFzIGNvbW1vblRzc01ldGhvZHMgZnJvbSAnLi9jb21tb24nO1xuIl19
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -37,7 +41,7 @@ exports.inferAddressType = inferAddressType;
|
|
|
37
41
|
*/
|
|
38
42
|
function getUtxoCoinScriptTypes2Of3(coinName) {
|
|
39
43
|
const coin = statics_1.coins.get(coinName);
|
|
40
|
-
assert_1.default(coin instanceof statics_1.UtxoCoin, `coin ${coinName} is not a utxo coin`);
|
|
44
|
+
(0, assert_1.default)(coin instanceof statics_1.UtxoCoin, `coin ${coinName} is not a utxo coin`);
|
|
41
45
|
const network = utxolib.networks[coin.network.utxolibName];
|
|
42
46
|
return utxolib.bitgo.outputScripts.scriptTypes2Of3.filter((v) => utxolib.bitgo.outputScripts.isSupportedScriptType(network, v));
|
|
43
47
|
}
|
|
@@ -53,4 +57,4 @@ function getUtxoCoinScriptTypesForWalletType(coinName, walletType) {
|
|
|
53
57
|
return scriptTypes.filter((scriptType) => (scriptType === 'p2trMusig2' ? walletType === 'hot' : true));
|
|
54
58
|
}
|
|
55
59
|
exports.getUtxoCoinScriptTypesForWalletType = getUtxoCoinScriptTypesForWalletType;
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RVdHhvQ29pblV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvYWJzdHJhY3RVdHhvQ29pblV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsNENBQWlEO0FBQ2pELHlEQUEyQztBQUkzQyxTQUFnQixnQkFBZ0IsQ0FBQyxjQUFpQztJQUNoRSxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFDcEQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztRQUN4RCxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ1gsQ0FBQztBQUpELDRDQUlDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQiwwQkFBMEIsQ0FBQyxRQUFnQjtJQUN6RCxNQUFNLElBQUksR0FBRyxlQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLElBQUEsZ0JBQU0sRUFBQyxJQUFJLFlBQVksa0JBQVEsRUFBRSxRQUFRLFFBQVEscUJBQXFCLENBQUMsQ0FBQztJQUN4RSxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBa0MsQ0FBQyxDQUFDO0lBQ2xGLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQzlELE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FDOUQsQ0FBQztBQUNKLENBQUM7QUFQRCxnRUFPQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixtQ0FBbUMsQ0FDakQsUUFBZ0IsRUFDaEIsVUFBc0I7SUFFdEIsTUFBTSxXQUFXLEdBQUcsMEJBQTBCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFekQsNERBQTREO0lBQzVELE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxVQUFVLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxVQUFVLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3pHLENBQUM7QUFSRCxrRkFRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IGNvaW5zLCBVdHhvQ29pbiB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCBTY3JpcHRUeXBlMk9mMyA9IHV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5TY3JpcHRUeXBlMk9mMztcbmltcG9ydCB7IFdhbGxldFR5cGUgfSBmcm9tICcuLi93YWxsZXQnO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5mZXJBZGRyZXNzVHlwZShhZGRyZXNzRGV0YWlsczogeyBjaGFpbjogbnVtYmVyIH0pOiBTY3JpcHRUeXBlMk9mMyB8IG51bGwge1xuICByZXR1cm4gdXR4b2xpYi5iaXRnby5pc0NoYWluQ29kZShhZGRyZXNzRGV0YWlscy5jaGFpbilcbiAgICA/IHV0eG9saWIuYml0Z28uc2NyaXB0VHlwZUZvckNoYWluKGFkZHJlc3NEZXRhaWxzLmNoYWluKVxuICAgIDogbnVsbDtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHN1cHBvcnRlZCAyIG9mIDMgc2NyaXB0IHR5cGVzIGZvciBhIGdpdmVuIHV0eG8gY29pblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VXR4b0NvaW5TY3JpcHRUeXBlczJPZjMoY29pbk5hbWU6IHN0cmluZyk6IHV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5TY3JpcHRUeXBlMk9mM1tdIHtcbiAgY29uc3QgY29pbiA9IGNvaW5zLmdldChjb2luTmFtZSk7XG4gIGFzc2VydChjb2luIGluc3RhbmNlb2YgVXR4b0NvaW4sIGBjb2luICR7Y29pbk5hbWV9IGlzIG5vdCBhIHV0eG8gY29pbmApO1xuICBjb25zdCBuZXR3b3JrID0gdXR4b2xpYi5uZXR3b3Jrc1tjb2luLm5ldHdvcmsudXR4b2xpYk5hbWUgYXMgdXR4b2xpYi5OZXR3b3JrTmFtZV07XG4gIHJldHVybiB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuc2NyaXB0VHlwZXMyT2YzLmZpbHRlcigodikgPT5cbiAgICB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuaXNTdXBwb3J0ZWRTY3JpcHRUeXBlKG5ldHdvcmssIHYpXG4gICk7XG59XG5cbi8qKlxuICogR2V0IHRoZSBzdXBwb3J0ZWQgMiBvZiAzIHNjcmlwdCB0eXBlcyBmb3IgYSBnaXZlbiB1dHhvIGNvaW4gYW5kIHdhbGxldCB0eXBlXG4gKiBAcGFyYW0gY29pbk5hbWVcbiAqIEBwYXJhbSB3YWxsZXRUeXBlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRVdHhvQ29pblNjcmlwdFR5cGVzRm9yV2FsbGV0VHlwZShcbiAgY29pbk5hbWU6IHN0cmluZyxcbiAgd2FsbGV0VHlwZTogV2FsbGV0VHlwZVxuKTogdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLlNjcmlwdFR5cGUyT2YzW10ge1xuICBjb25zdCBzY3JpcHRUeXBlcyA9IGdldFV0eG9Db2luU2NyaXB0VHlwZXMyT2YzKGNvaW5OYW1lKTtcblxuICAvLyBPbmx5IHJldHVybiB0cnVlIGZvciBwMnRyTXVzaWcyIGlmIHRoZSB3YWxsZXQgdHlwZSBpcyBob3RcbiAgcmV0dXJuIHNjcmlwdFR5cGVzLmZpbHRlcigoc2NyaXB0VHlwZSkgPT4gKHNjcmlwdFR5cGUgPT09ICdwMnRyTXVzaWcyJyA/IHdhbGxldFR5cGUgPT09ICdob3QnIDogdHJ1ZSkpO1xufVxuIl19
|
|
@@ -202,9 +202,9 @@ class BlsUtils extends mpcUtils_1.MpcUtils {
|
|
|
202
202
|
async createKeychains(params) {
|
|
203
203
|
const userKeyShare = this.baseCoin.generateKeyPair();
|
|
204
204
|
const backupKeyShare = this.baseCoin.generateKeyPair();
|
|
205
|
-
const randomHexString = crypto_1.randomBytes(12).toString('hex');
|
|
206
|
-
const randomHexString2 = crypto_1.randomBytes(12).toString('hex');
|
|
207
|
-
const userGpgKey = await openpgp_1.generateKey({
|
|
205
|
+
const randomHexString = (0, crypto_1.randomBytes)(12).toString('hex');
|
|
206
|
+
const randomHexString2 = (0, crypto_1.randomBytes)(12).toString('hex');
|
|
207
|
+
const userGpgKey = await (0, openpgp_1.generateKey)({
|
|
208
208
|
userIDs: [
|
|
209
209
|
{
|
|
210
210
|
name: randomHexString,
|
|
@@ -212,7 +212,7 @@ class BlsUtils extends mpcUtils_1.MpcUtils {
|
|
|
212
212
|
},
|
|
213
213
|
],
|
|
214
214
|
});
|
|
215
|
-
const backupGpgKey = await openpgp_1.generateKey({
|
|
215
|
+
const backupGpgKey = await (0, openpgp_1.generateKey)({
|
|
216
216
|
userIDs: [
|
|
217
217
|
{
|
|
218
218
|
name: randomHexString2,
|
|
@@ -234,4 +234,4 @@ class BlsUtils extends mpcUtils_1.MpcUtils {
|
|
|
234
234
|
}
|
|
235
235
|
}
|
|
236
236
|
exports.BlsUtils = BlsUtils;
|
|
237
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxzVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvYmxzVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxtQ0FBcUM7QUFDckMscUNBQXlEO0FBQ3pELHlEQUEyRTtBQU0zRSx5Q0FBc0M7QUFldEM7O0dBRUc7QUFDSCxNQUFhLFFBQVMsU0FBUSxtQkFBUTtJQUNwQyxZQUFZLEtBQWdCLEVBQUUsUUFBbUI7UUFDL0MsS0FBSyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxLQUFLLENBQUMsa0JBQWtCLENBQ3RCLFVBQXFDLEVBQ3JDLFlBQXlCLEVBQ3pCLGNBQTJCLEVBQzNCLGFBQXVCLEVBQ3ZCLFVBQWtCLEVBQ2xCLDhCQUF1QztRQUV2QyxNQUFNLGNBQWMsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDO1FBQy9DLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1NBQzdDO1FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxRQUFRLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBQ2hILElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7U0FDcEQ7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUU7WUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLElBQUksQ0FBQyxjQUFj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cG9ydCB7IHJhbmRvbUJ5dGVzIH0gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IGdlbmVyYXRlS2V5LCBTZXJpYWxpemVkS2V5UGFpciB9IGZyb20gJ29wZW5wZ3AnO1xuaW1wb3J0IHsgQmxzS2V5UGFpciBhcyBCbHNLZXlQYWlyQ2xhc3MgfSBmcm9tICcuLi8uLi9hY2NvdW50LWxpYi9iYXNlQ29pbic7XG5pbXBvcnQgeyBJQmFzZUNvaW4sIElCbHNLZXlQYWlyLCBLZXljaGFpbnNUcmlwbGV0IH0gZnJvbSAnLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnLi4vYml0Z29CYXNlJztcbmltcG9ydCB7IEtleWNoYWluIH0gZnJvbSAnLi4va2V5Y2hhaW4nO1xuaW1wb3J0IHsgQWRkS2V5Y2hhaW5PcHRpb25zIH0gZnJvbSAnLi4va2V5Y2hhaW4vaUtleWNoYWlucyc7XG5pbXBvcnQgeyBJQmxzVXRpbHMgfSBmcm9tICcuL2lCbHNVdGlscyc7XG5pbXBvcnQgeyBNcGNVdGlscyB9IGZyb20gJy4vbXBjVXRpbHMnO1xuXG50eXBlIFNpZ25pbmdTaGFyZSA9IHtcbiAgc2VlZD86IHN0cmluZztcbiAgcHViOiBzdHJpbmc7XG4gIHByaXY6IHN0cmluZztcbiAgY2hhaW5jb2RlOiBzdHJpbmc7XG59O1xuXG50eXBlIFNpZ25pbmdNYXRlcmlhbCA9IHtcbiAgdXNlclNoYXJlOiBTaWduaW5nU2hhcmU7XG4gIGJhY2t1cFNoYXJlOiBTaWduaW5nU2hhcmU7XG4gIGJpdGdvU2hhcmU6IFNpZ25pbmdTaGFyZTtcbn07XG5cbi8qKlxuICogVXRpbGl0eSBmdW5jdGlvbnMgZm9yIEJMUy1ES0cgd29yayBmbG93cy5cbiAqL1xuZXhwb3J0IGNsYXNzIEJsc1V0aWxzIGV4dGVuZHMgTXBjVXRpbHMgaW1wbGVtZW50cyBJQmxzVXRpbHMge1xuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCBiYXNlQ29pbjogSUJhc2VDb2luKSB7XG4gICAgc3VwZXIoYml0Z28sIGJhc2VDb2luKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgS2V5Y2hhaW4gY29udGFpbmluZyB0aGUgVXNlcidzIEJMUy1ES0cgc2lnbmluZyBtYXRlcmlhbHMuXG4gICAqXG4gICAqIEBwYXJhbSB1c2VyR3BnS2V5IC0gZXBoZW1lcmFsIEdQRyBrZXkgdG8gZW5jcnlwdCAvIGRlY3J5cHQgc2Vuc2l0dmUgZGF0YSBleGNoYW5nZWQgYmV0d2VlbiB1c2VyIGFuZCBzZXJ2ZXJcbiAgICogQHBhcmFtIHVzZXJLZXlTaGFyZSAtIHVzZXIncyBCTFMtREtHIGtleSBzaGFyZVxuICAgKiBAcGFyYW0gYmFja3VwS2V5U2hhcmUgLSBiYWNrdXAncyBCTFMtREtHIGtleSBzaGFyZVxuICAgKiBAcGFyYW0gYml0Z29LZXljaGFpbiAtIHByZXZpb3VzbHkgY3JlYXRlZCBCaXRHbyBrZXljaGFpbjsgbXVzdCBiZSBjb21wYXRpYmxlIHdpdGggdXNlciBhbmQgYmFja3VwIGtleSBzaGFyZXNcbiAgICogQHBhcmFtIHBhc3NwaHJhc2UgLSB3YWxsZXQgcGFzc3BocmFzZSB1c2VkIHRvIGVuY3J5cHQgdXNlcidzIHNpZ25pbmcgbWF0ZXJpYWxzXG4gICAqL1xuICBhc3luYyBjcmVhdGVVc2VyS2V5Y2hhaW4oXG4gICAgdXNlckdwZ0tleTogU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPixcbiAgICB1c2VyS2V5U2hhcmU6IElCbHNLZXlQYWlyLFxuICAgIGJhY2t1cEtleVNoYXJlOiBJQmxzS2V5UGFpcixcbiAgICBiaXRnb0tleWNoYWluOiBLZXljaGFpbixcbiAgICBwYXNzcGhyYXNlOiBzdHJpbmcsXG4gICAgb3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlPzogc3RyaW5nXG4gICk6IFByb21pc2U8S2V5Y2hhaW4+IHtcbiAgICBjb25zdCBiaXRnb0tleVNoYXJlcyA9IGJpdGdvS2V5Y2hhaW4ua2V5U2hhcmVzO1xuICAgIGlmICghYml0Z29LZXlTaGFyZXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBCaXRHbyBrZXkgc2hhcmVzJyk7XG4gICAgfVxuXG4gICAgY29uc3QgYml0R29Ub1VzZXJTaGFyZSA9IGJpdGdvS2V5U2hhcmVzLmZpbmQoKGtleVNoYXJlKSA9PiBrZXlTaGFyZS5mcm9tID09PSAnYml0Z28nICYmIGtleVNoYXJlLnRvID09PSAndXNlcicpO1xuICAgIGlmICghYml0R29Ub1VzZXJTaGFyZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIEJpdEdvIHRvIFVzZXIga2V5IHNoYXJlJyk7XG4gICAgfVxuXG4gICAgaWYgKCF1c2VyS2V5U2hhcmUuc2VjcmV0U2hhcmVzIHx8ICF1c2VyS2V5U2hhcmUucHViKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdXNlciBrZXkgc2hhcmVzJyk7XG4gICAgfVxuICAgIGlmICghYmFja3VwS2V5U2hhcmUuc2VjcmV0U2hhcmVzIHx8ICFiYWNrdXBLZXlTaGFyZS5wdWIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBiYWNrdXAga2V5IHNoYXJlcycpO1xuICAgIH1cblxuICAgIGNvbnN0IGJpdEdvVG9Vc2VyUHVibGljU2hhcmUgPSBiaXRHb1RvVXNlclNoYXJlLnB1YmxpY1NoYXJlLnNsaWNlKDAsIDk2KTtcbiAgICBjb25zdCBiaXRHb1RvVXNlckNoYWluY29kZSA9IGJpdEdvVG9Vc2VyU2hhcmUucHVibGljU2hhcmUuc2xpY2UoOTYpO1xuICAgIGNvbnN0IGNvbW1vblB1YiA9IEJsc0tleVBhaXJDbGFzcy5hZ2dyZWdhdGVQdWJrZXlzKFt1c2VyS2V5U2hhcmUucHViLCBiYWNrdXBLZXlTaGFyZS5wdWIsIGJpdEdvVG9Vc2VyUHVibGljU2hhcmVdKTtcbiAgICBjb25zdCBjb21tb25DaGFpbmNvZGUgPSBCbHNLZXlQYWlyQ2xhc3MuYWdncmVnYXRlQ2hhaW5jb2RlcyhbXG4gICAgICB1c2VyS2V5U2hhcmUuY2hhaW5jb2RlLFxuICAgICAgYmFja3VwS2V5U2hhcmUuY2hhaW5jb2RlLFxuICAgICAgYml0R29Ub1VzZXJDaGFpbmNvZGUsXG4gICAgXSk7XG4gICAgY29uc3QgY29tbW9uS2V5Y2hhaW4gPSBjb21tb25QdWIgKyBjb21tb25DaGFpbmNvZGU7XG4gICAgaWYgKGNvbW1vbktleWNoYWluICE9PSBiaXRnb0tleWNoYWluLmNvbW1vbktleWNoYWluKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgdXNlciBrZXljaGFpbiAtIGNvbW1vbktleWNoYWlucyBkbyBub3QgbWF0Y2guJyk7XG4gICAgfVxuXG4gICAgY29uc3QgYml0R29Ub1VzZXJQcml2YXRlU2hhcmUgPSBhd2FpdCB0aGlzLmRlY3J5cHRQcml2YXRlU2hhcmUoYml0R29Ub1VzZXJTaGFyZS5wcml2YXRlU2hhcmUsIHVzZXJHcGdLZXkpO1xuICAgIGlmIChiaXRHb1RvVXNlclByaXZhdGVTaGFyZS5zbGljZSg2NCkgIT09IGJpdEdvVG9Vc2VyQ2hhaW5jb2RlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgdXNlciBrZXljaGFpbiAtIGJpdGdvIHRvIHVzZXIgY2hhaW5jb2RlIGRvIG5vdCBtYXRjaC4nKTtcbiAgICB9XG4gICAgY29uc3QgdXNlclNpZ25pbmdNYXRlcmlhbDogU2lnbmluZ01hdGVyaWFsID0ge1xuICAgICAgdXNlclNoYXJlOiB7XG4gICAgICAgIHB1YjogdXNlcktleVNoYXJlLnB1YixcbiAgICAgICAgcHJpdjogdXNlcktleVNoYXJlLnNlY3JldFNoYXJlc1swXSxcbiAgICAgICAgc2VlZDogdXNlcktleVNoYXJlLnNlZWQsXG4gICAgICAgIGNoYWluY29kZTogdXNlcktleVNoYXJlLmNoYWluY29kZSxcbiAgICAgIH0sXG4gICAgICBiYWNrdXBTaGFyZToge1xuICAgICAgICBwdWI6IGJhY2t1cEtleVNoYXJlLnB1YixcbiAgICAgICAgcHJpdjogYmFja3VwS2V5U2hhcmUuc2VjcmV0U2hhcmVzWzBdLFxuICAgICAgICBjaGFpbmNvZGU6IGJhY2t1cEtleVNoYXJlLmNoYWluY29kZSxcbiAgICAgIH0sXG4gICAgICBiaXRnb1NoYXJlOiB7XG4gICAgICAgIHB1YjogYml0R29Ub1VzZXJQdWJsaWNTaGFyZSxcbiAgICAgICAgcHJpdjogYml0R29Ub1VzZXJQcml2YXRlU2hhcmUuc2xpY2UoMCwgNjQpLFxuICAgICAgICBjaGFpbmNvZGU6IGJpdEdvVG9Vc2VyQ2hhaW5jb2RlLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgdXNlcktleWNoYWluUGFyYW1zOiBBZGRLZXljaGFpbk9wdGlvbnMgPSB7XG4gICAgICBzb3VyY2U6ICd1c2VyJyxcbiAgICAgIGtleVR5cGU6ICdibHNka2cnLFxuICAgICAgY29tbW9uS2V5Y2hhaW46IGNvbW1vbktleWNoYWluLFxuICAgICAgZW5jcnlwdGVkUHJ2OiB0aGlzLmJpdGdvLmVuY3J5cHQoeyBpbnB1dDogSlNPTi5zdHJpbmdpZnkodXNlclNpZ25pbmdNYXRlcmlhbCksIHBhc3N3b3JkOiBwYXNzcGhyYXNlIH0pLFxuICAgICAgb3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlLFxuICAgIH07XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5iYXNlQ29pbi5rZXljaGFpbnMoKS5hZGQodXNlcktleWNoYWluUGFyYW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgS2V5Y2hhaW4gY29udGFpbmluZyB0aGUgQmFja3VwIHBhcnR5J3MgQkxTLURLRyBzaWduaW5nIG1hdGVyaWFscy5cbiAgICpcbiAgICogQHBhcmFtIGJhY2t1cEdwZ0tleSAtIGVwaGVtZXJhbCBHUEcga2V5IHRvIGVuY3J5cHQgLyBkZWNyeXB0IHNlbnNpdGl2ZSBkYXRhIGV4Y2hhbmdlZCBiZXR3ZWVuIGJhY2t1cCBhbmQgc2VydmVyXG4gICAqIEBwYXJhbSB1c2VyS2V5U2hhcmUgLSBVc2VyJ3MgQkxTLURLRyBLZXlzaGFyZVxuICAgKiBAcGFyYW0gYmFja3VwS2V5U2hhcmUgLSBCYWNrdXAncyBCTFMtREtHIEtleXNoYXJlXG4gICAqIEBwYXJhbSBiaXRnb0tleWNoYWluIC0gcHJldmlvdXNseSBjcmVhdGVkIEJpdEdvIGtleWNoYWluOyBtdXN0IGJlIGNvbXBhdGlibGUgd2l0aCB1c2VyIGFuZCBiYWNrdXAga2V5IHNoYXJlc1xuICAgKiBAcGFyYW0gcGFzc3BocmFzZSAtIHdhbGxldCBwYXNzcGhyYXNlIHVzZWQgdG8gZW5jcnlwdCB1c2VyJ3Mgc2lnbmluZyBtYXRlcmlhbHNcbiAgICovXG4gIGFzeW5jIGNyZWF0ZUJhY2t1cEtleWNoYWluKFxuICAgIGJhY2t1cEdwZ0tleTogU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPixcbiAgICB1c2VyS2V5U2hhcmU6IElCbHNLZXlQYWlyLFxuICAgIGJhY2t1cEtleVNoYXJlOiBJQmxzS2V5UGFpcixcbiAgICBiaXRnb0tleWNoYWluOiBLZXljaGFpbixcbiAgICBwYXNzcGhyYXNlOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxLZXljaGFpbj4ge1xuICAgIGNvbnN0IGJpdGdvS2V5U2hhcmVzID0gYml0Z29LZXljaGFpbi5rZXlTaGFyZXM7XG4gICAgaWYgKCFiaXRnb0tleVNoYXJlcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGJpdGdvIGtleXNoYXJlcycpO1xuICAgIH1cblxuICAgIGNvbnN0IGJpdEdvVG9CYWNrdXBTaGFyZSA9IGJpdGdvS2V5U2hhcmVzLmZpbmQoKGtleVNoYXJlKSA9PiBrZXlTaGFyZS5mcm9tID09PSAnYml0Z28nICYmIGtleVNoYXJlLnRvID09PSAnYmFja3VwJyk7XG4gICAgaWYgKCFiaXRHb1RvQmFja3VwU2hhcmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBCaXRHbyB0byBiYWNrdXAga2V5IHNoYXJlJyk7XG4gICAgfVxuXG4gICAgaWYgKCF1c2VyS2V5U2hhcmUuc2VjcmV0U2hhcmVzIHx8ICF1c2VyS2V5U2hhcmUucHViKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdXNlciBrZXkgc2hhcmVzJyk7XG4gICAgfVxuICAgIGlmICghYmFja3VwS2V5U2hhcmUuc2VjcmV0U2hhcmVzIHx8ICFiYWNrdXBLZXlTaGFyZS5wdWIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBiYWNrdXAga2V5IHNoYXJlcycpO1xuICAgIH1cblxuICAgIGNvbnN0IGJpdEdvVG9CYWNrdXBQdWJsaWNTaGFyZSA9IGJpdEdvVG9CYWNrdXBTaGFyZS5wdWJsaWNTaGFyZS5zbGljZSgwLCA5Nik7XG4gICAgY29uc3QgYml0R29Ub0JhY2t1cENoYWluY29kZSA9IGJpdEdvVG9CYWNrdXBTaGFyZS5wdWJsaWNTaGFyZS5zbGljZSg5Nik7XG4gICAgY29uc3QgY29tbW9uUHViID0gQmxzS2V5UGFpckNsYXNzLmFnZ3JlZ2F0ZVB1YmtleXMoW1xuICAgICAgdXNlcktleVNoYXJlLnB1YixcbiAgICAgIGJhY2t1cEtleVNoYXJlLnB1YixcbiAgICAgIGJpdEdvVG9CYWNrdXBQdWJsaWNTaGFyZSxcbiAgICBdKTtcbiAgICBjb25zdCBjb21tb25DaGFpbmNvZGUgPSBCbHNLZXlQYWlyQ2xhc3MuYWdncmVnYXRlQ2hhaW5jb2RlcyhbXG4gICAgICB1c2VyS2V5U2hhcmUuY2hhaW5jb2RlLFxuICAgICAgYmFja3VwS2V5U2hhcmUuY2hhaW5jb2RlLFxuICAgICAgYml0R29Ub0JhY2t1cENoYWluY29kZSxcbiAgICBdKTtcbiAgICBjb25zdCBjb21tb25LZXljaGFpbiA9IGNvbW1vblB1YiArIGNvbW1vbkNoYWluY29kZTtcbiAgICBpZiAoY29tbW9uS2V5Y2hhaW4gIT09IGJpdGdvS2V5Y2hhaW4uY29tbW9uS2V5Y2hhaW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGNyZWF0ZSBiYWNrdXAga2V5Y2hhaW4gLSBjb21tb25LZXljaGFpbnMgZG8gbm90IG1hdGNoLicpO1xuICAgIH1cblxuICAgIGNvbnN0IGJpdEdvVG9CYWNrdXBQcml2YXRlU2hhcmUgPSBhd2FpdCB0aGlzLmRlY3J5cHRQcml2YXRlU2hhcmUoYml0R29Ub0JhY2t1cFNoYXJlLnByaXZhdGVTaGFyZSwgYmFja3VwR3BnS2V5KTtcbiAgICBpZiAoYml0R29Ub0JhY2t1cFByaXZhdGVTaGFyZS5zbGljZSg2NCkgIT09IGJpdEdvVG9CYWNrdXBDaGFpbmNvZGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGNyZWF0ZSB1c2VyIGtleWNoYWluIC0gYml0Z28gdG8gdXNlciBjaGFpbmNvZGUgZG8gbm90IG1hdGNoLicpO1xuICAgIH1cbiAgICBjb25zdCBiYWNrdXBTaWduaW5nTWF0ZXJpYWw6IFNpZ25pbmdNYXRlcmlhbCA9IHtcbiAgICAgIHVzZXJTaGFyZToge1xuICAgICAgICBwdWI6IHVzZXJLZXlTaGFyZS5wdWIsXG4gICAgICAgIHByaXY6IHVzZXJLZXlTaGFyZS5zZWNyZXRTaGFyZXNbMV0sXG4gICAgICAgIGNoYWluY29kZTogdXNlcktleVNoYXJlLmNoYWluY29kZSxcbiAgICAgIH0sXG4gICAgICBiYWNrdXBTaGFyZToge1xuICAgICAgICBwdWI6IGJhY2t1cEtleVNoYXJlLnB1YixcbiAgICAgICAgcHJpdjogYmFja3VwS2V5U2hhcmUuc2VjcmV0U2hhcmVzWzFdLFxuICAgICAgICBjaGFpbmNvZGU6IGJhY2t1cEtleVNoYXJlLmNoYWluY29kZSxcbiAgICAgICAgc2VlZDogYmFja3VwS2V5U2hhcmUuc2VlZCxcbiAgICAgIH0sXG4gICAgICBiaXRnb1NoYXJlOiB7XG4gICAgICAgIHB1YjogYml0R29Ub0JhY2t1cFB1YmxpY1NoYXJlLFxuICAgICAgICBwcml2OiBiaXRHb1RvQmFja3VwUHJpdmF0ZVNoYXJlLnNsaWNlKDAsIDY0KSxcbiAgICAgICAgY2hhaW5jb2RlOiBiaXRHb1RvQmFja3VwQ2hhaW5jb2RlLFxuICAgICAgfSxcbiAgICB9O1xuICAgIGNvbnN0IHBydiA9IEpTT04uc3RyaW5naWZ5KGJhY2t1cFNpZ25pbmdNYXRlcmlhbCk7XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5iYXNlQ29pbi5rZXljaGFpbnMoKS5jcmVhdGVCYWNrdXAoe1xuICAgICAgc291cmNlOiAnYmFja3VwJyxcbiAgICAgIGtleVR5cGU6ICdibHNka2cnLFxuICAgICAgY29tbW9uS2V5Y2hhaW46IGNvbW1vbktleWNoYWluLFxuICAgICAgcHJ2LFxuICAgICAgZW5jcnlwdGVkUHJ2OiB0aGlzLmJpdGdvLmVuY3J5cHQoeyBpbnB1dDogcHJ2LCBwYXNzd29yZDogcGFzc3BocmFzZSB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgS2V5Y2hhaW4gY29udGFpbmluZyBCaXRHbydzIEJMUy1ES0cgc2lnbmluZyBtYXRlcmlhbHMuXG4gICAqXG4gICAqIEBwYXJhbSB1c2VyR3BnS2V5IC0gZXBoZW1lcmFsIEdQRyBrZXkgdG8gZW5jcnlwdCAvIGRlY3J5cHQgc2Vuc2l0dmUgZGF0YSBleGNoYW5nZWQgYmV0d2VlbiB1c2VyIGFuZCBzZXJ2ZXJcbiAgICogQHBhcmFtIGJhY2t1cEdwZ0tleSAtIGVwaGVtZXJhbCBHUEcga2V5IHRvIGVuY3J5cHQgLyBkZWNyeXB0IHNlbnNpdHZlIGRhdGEgZXhjaGFuZ2VkIGJldHdlZW4gYmFja3VwIGFuZCBzZXJ2ZXJcbiAgICogQHBhcmFtIHVzZXJLZXlTaGFyZSAtIHVzZXIncyBCTFMtREtHIGtleSBzaGFyZVxuICAgKiBAcGFyYW0gYmFja3VwS2V5U2hhcmUgLSBiYWNrdXAncyBCTFMtREtHIGtleSBzaGFyZVxuICAgKi9cbiAgYXN5bmMgY3JlYXRlQml0Z29LZXljaGFpbihcbiAgICB1c2VyR3BnS2V5OiBTZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgIGJhY2t1cEdwZ0tleTogU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPixcbiAgICB1c2VyS2V5U2hhcmU6IElCbHNLZXlQYWlyLFxuICAgIGJhY2t1cEtleVNoYXJlOiBJQmxzS2V5UGFpcixcbiAgICBlbnRlcnByaXNlPzogc3RyaW5nXG4gICk6IFByb21pc2U8S2V5Y2hhaW4+IHtcbiAgICBpZiAoIXVzZXJLZXlTaGFyZS5zZWNyZXRTaGFyZXMgfHwgIXVzZXJLZXlTaGFyZS5wdWIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB1c2VyIGtleSBzaGFyZXMnKTtcbiAgICB9XG4gICAgaWYgKCFiYWNrdXBLZXlTaGFyZS5zZWNyZXRTaGFyZXMgfHwgIWJhY2t1cEtleVNoYXJlLnB1Yikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGJhY2t1cCBrZXkgc2hhcmVzJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdXNlclRvQml0Z29QdWJsaWNTaGFyZSA9IEJ1ZmZlci5jb25jYXQoW1xuICAgICAgQnVmZmVyLmZyb20odXNlcktleVNoYXJlLnB1YiwgJ2hleCcpLFxuICAgICAgQnVmZmVyLmZyb20odXNlcktleVNoYXJlLmNoYWluY29kZSwgJ2hleCcpLFxuICAgIF0pLnRvU3RyaW5nKCdoZXgnKTtcbiAgICBjb25zdCB1c2VyVG9CaXRnb1ByaXZhdGVTaGFyZSA9IEJ1ZmZlci5jb25jYXQoW1xuICAgICAgQnVmZmVyLmZyb20odXNlcktleVNoYXJlLnNlY3JldFNoYXJlc1syXSwgJ2hleCcpLFxuICAgICAgQnVmZmVyLmZyb20odXNlcktleVNoYXJlLmNoYWluY29kZSwgJ2hleCcpLFxuICAgIF0pLnRvU3RyaW5nKCdoZXgnKTtcblxuICAgIGNvbnN0IHVzZXJUb0JpdGdvS2V5U2hhcmUgPSB7XG4gICAgICBwdWJsaWNTaGFyZTogdXNlclRvQml0Z29QdWJsaWNTaGFyZSxcbiAgICAgIHByaXZhdGVTaGFyZTogdXNlclRvQml0Z29Qcml2YXRlU2hhcmUsXG4gICAgfTtcblxuICAgIGNvbnN0IGJhY2t1cFRvQml0Z29QdWJsaWNTaGFyZSA9IEJ1ZmZlci5jb25jYXQoW1xuICAgICAgQnVmZmVyLmZyb20oYmFja3VwS2V5U2hhcmUucHViLCAnaGV4JyksXG4gICAgICBCdWZmZXIuZnJvbShiYWNrdXBLZXlTaGFyZS5jaGFpbmNvZGUsICdoZXgnKSxcbiAgICBdKS50b1N0cmluZygnaGV4Jyk7XG4gICAgY29uc3QgYmFja3VwVG9CaXRnb1ByaXZhdGVTaGFyZSA9IEJ1ZmZlci5jb25jYXQoW1xuICAgICAgQnVmZmVyLmZyb20oYmFja3VwS2V5U2hhcmUuc2VjcmV0U2hhcmVzWzJdLCAnaGV4JyksXG4gICAgICBCdWZmZXIuZnJvbShiYWNrdXBLZXlTaGFyZS5jaGFpbmNvZGUsICdoZXgnKSxcbiAgICBdKS50b1N0cmluZygnaGV4Jyk7XG4gICAgY29uc3QgYmFja3VwVG9CaXRnb0tleVNoYXJlID0ge1xuICAgICAgcHVibGljU2hhcmU6IGJhY2t1cFRvQml0Z29QdWJsaWNTaGFyZSxcbiAgICAgIHByaXZhdGVTaGFyZTogYmFja3VwVG9CaXRnb1ByaXZhdGVTaGFyZSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY3JlYXRlQml0Z29LZXljaGFpbkluV1AoXG4gICAgICB1c2VyR3BnS2V5LFxuICAgICAgYmFja3VwR3BnS2V5LFxuICAgICAgdXNlclRvQml0Z29LZXlTaGFyZSxcbiAgICAgIGJhY2t1cFRvQml0Z29LZXlTaGFyZSxcbiAgICAgICdibHNka2cnLFxuICAgICAgZW50ZXJwcmlzZVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBVc2VyLCBCYWNrdXAsIGFuZCBCaXRHbyBCTFMtREtHIEtleWNoYWlucy5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcy5wYXNzcGhyYXNlIC0gcGFzc3BocmFzZSB1c2VkIHRvIGVuY3J5cHQgc2lnbmluZyBtYXRlcmlhbHMgY3JlYXRlZCBmb3IgVXNlciBhbmQgQmFja3VwXG4gICAqL1xuICBhc3luYyBjcmVhdGVLZXljaGFpbnMocGFyYW1zOiB7XG4gICAgcGFzc3BocmFzZTogc3RyaW5nO1xuICAgIGVudGVycHJpc2U/OiBzdHJpbmc7XG4gICAgb3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlPzogc3RyaW5nO1xuICB9KTogUHJvbWlzZTxLZXljaGFpbnNUcmlwbGV0PiB7XG4gICAgY29uc3QgdXNlcktleVNoYXJlID0gdGhpcy5iYXNlQ29pbi5nZW5lcmF0ZUtleVBhaXIoKSBhcyBJQmxzS2V5UGFpcjtcbiAgICBjb25zdCBiYWNrdXBLZXlTaGFyZSA9IHRoaXMuYmFzZUNvaW4uZ2VuZXJhdGVLZXlQYWlyKCkgYXMgSUJsc0tleVBhaXI7XG5cbiAgICBjb25zdCByYW5kb21IZXhTdHJpbmcgPSByYW5kb21CeXRlcygxMikudG9TdHJpbmcoJ2hleCcpO1xuICAgIGNvbnN0IHJhbmRvbUhleFN0cmluZzIgPSByYW5kb21CeXRlcygxMikudG9TdHJpbmcoJ2hleCcpO1xuXG4gICAgY29uc3QgdXNlckdwZ0tleSA9IGF3YWl0IGdlbmVyYXRlS2V5KHtcbiAgICAgIHVzZXJJRHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IHJhbmRvbUhleFN0cmluZyxcbiAgICAgICAgICBlbWFpbDogYCR7cmFuZG9tSGV4U3RyaW5nfUAke3JhbmRvbUhleFN0cmluZ30uY29tYCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBiYWNrdXBHcGdLZXkgPSBhd2FpdCBnZW5lcmF0ZUtleSh7XG4gICAgICB1c2VySURzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiByYW5kb21IZXhTdHJpbmcyLFxuICAgICAgICAgIGVtYWlsOiBgJHtyYW5kb21IZXhTdHJpbmcyfUAke3JhbmRvbUhleFN0cmluZzJ9LmNvbWAsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgY29uc3QgYml0Z29LZXljaGFpbiA9IGF3YWl0IHRoaXMuY3JlYXRlQml0Z29LZXljaGFpbihcbiAgICAgIHVzZXJHcGdLZXksXG4gICAgICBiYWNrdXBHcGdLZXksXG4gICAgICB1c2VyS2V5U2hhcmUsXG4gICAgICBiYWNrdXBLZXlTaGFyZSxcbiAgICAgIHBhcmFtcy5lbnRlcnByaXNlXG4gICAgKTtcbiAgICBjb25zdCB1c2VyS2V5Y2hhaW5Qcm9taXNlID0gdGhpcy5jcmVhdGVVc2VyS2V5Y2hhaW4oXG4gICAgICB1c2VyR3BnS2V5LFxuICAgICAgdXNlcktleVNoYXJlLFxuICAgICAgYmFja3VwS2V5U2hhcmUsXG4gICAgICBiaXRnb0tleWNoYWluLFxuICAgICAgcGFyYW1zLnBhc3NwaHJhc2UsXG4gICAgICBwYXJhbXMub3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlXG4gICAgKTtcbiAgICBjb25zdCBiYWNrdXBLZXljaGFpblByb21pc2UgPSB0aGlzLmNyZWF0ZUJhY2t1cEtleWNoYWluKFxuICAgICAgYmFja3VwR3BnS2V5LFxuICAgICAgdXNlcktleVNoYXJlLFxuICAgICAgYmFja3VwS2V5U2hhcmUsXG4gICAgICBiaXRnb0tleWNoYWluLFxuICAgICAgcGFyYW1zLnBhc3NwaHJhc2VcbiAgICApO1xuICAgIGNvbnN0IFt1c2VyS2V5Y2hhaW4sIGJhY2t1cEtleWNoYWluXSA9IGF3YWl0IFByb21pc2UuYWxsKFt1c2VyS2V5Y2hhaW5Qcm9taXNlLCBiYWNrdXBLZXljaGFpblByb21pc2VdKTtcblxuICAgIC8vIGNyZWF0ZSB3YWxsZXRcbiAgICBjb25zdCBrZXljaGFpbnMgPSB7XG4gICAgICB1c2VyS2V5Y2hhaW4sXG4gICAgICBiYWNrdXBLZXljaGFpbixcbiAgICAgIGJpdGdvS2V5Y2hhaW4sXG4gICAgfTtcblxuICAgIHJldHVybiBrZXljaGFpbnM7XG4gIH1cbn1cbiJdfQ==
|
|
237
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxzVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvYmxzVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxtQ0FBcUM7QUFDckMscUNBQXlEO0FBQ3pELHlEQUEyRTtBQU0zRSx5Q0FBc0M7QUFldEM7O0dBRUc7QUFDSCxNQUFhLFFBQVMsU0FBUSxtQkFBUTtJQUNwQyxZQUFZLEtBQWdCLEVBQUUsUUFBbUI7UUFDL0MsS0FBSyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxLQUFLLENBQUMsa0JBQWtCLENBQ3RCLFVBQXFDLEVBQ3JDLFlBQXlCLEVBQ3pCLGNBQTJCLEVBQzNCLGFBQXVCLEVBQ3ZCLFVBQWtCLEVBQ2xCLDhCQUF1QztRQUV2QyxNQUFNLGNBQWMsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDO1FBQy9DLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1NBQzdDO1FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxRQUFRLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBQ2hILElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7U0FDcEQ7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUU7WUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLElBQUksQ0FBQyxjQUFj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KiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgcmFuZG9tQnl0ZXMgfSBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHsgZ2VuZXJhdGVLZXksIFNlcmlhbGl6ZWRLZXlQYWlyIH0gZnJvbSAnb3BlbnBncCc7XG5pbXBvcnQgeyBCbHNLZXlQYWlyIGFzIEJsc0tleVBhaXJDbGFzcyB9IGZyb20gJy4uLy4uL2FjY291bnQtbGliL2Jhc2VDb2luJztcbmltcG9ydCB7IElCYXNlQ29pbiwgSUJsc0tleVBhaXIsIEtleWNoYWluc1RyaXBsZXQgfSBmcm9tICcuLi9iYXNlQ29pbic7XG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi9iaXRnb0Jhc2UnO1xuaW1wb3J0IHsgS2V5Y2hhaW4gfSBmcm9tICcuLi9rZXljaGFpbic7XG5pbXBvcnQgeyBBZGRLZXljaGFpbk9wdGlvbnMgfSBmcm9tICcuLi9rZXljaGFpbi9pS2V5Y2hhaW5zJztcbmltcG9ydCB7IElCbHNVdGlscyB9IGZyb20gJy4vaUJsc1V0aWxzJztcbmltcG9ydCB7IE1wY1V0aWxzIH0gZnJvbSAnLi9tcGNVdGlscyc7XG5cbnR5cGUgU2lnbmluZ1NoYXJlID0ge1xuICBzZWVkPzogc3RyaW5nO1xuICBwdWI6IHN0cmluZztcbiAgcHJpdjogc3RyaW5nO1xuICBjaGFpbmNvZGU6IHN0cmluZztcbn07XG5cbnR5cGUgU2lnbmluZ01hdGVyaWFsID0ge1xuICB1c2VyU2hhcmU6IFNpZ25pbmdTaGFyZTtcbiAgYmFja3VwU2hhcmU6IFNpZ25pbmdTaGFyZTtcbiAgYml0Z29TaGFyZTogU2lnbmluZ1NoYXJlO1xufTtcblxuLyoqXG4gKiBVdGlsaXR5IGZ1bmN0aW9ucyBmb3IgQkxTLURLRyB3b3JrIGZsb3dzLlxuICovXG5leHBvcnQgY2xhc3MgQmxzVXRpbHMgZXh0ZW5kcyBNcGNVdGlscyBpbXBsZW1lbnRzIElCbHNVdGlscyB7XG4gIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UsIGJhc2VDb2luOiBJQmFzZUNvaW4pIHtcbiAgICBzdXBlcihiaXRnbywgYmFzZUNvaW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBLZXljaGFpbiBjb250YWluaW5nIHRoZSBVc2VyJ3MgQkxTLURLRyBzaWduaW5nIG1hdGVyaWFscy5cbiAgICpcbiAgICogQHBhcmFtIHVzZXJHcGdLZXkgLSBlcGhlbWVyYWwgR1BHIGtleSB0byBlbmNyeXB0IC8gZGVjcnlwdCBzZW5zaXR2ZSBkYXRhIGV4Y2hhbmdlZCBiZXR3ZWVuIHVzZXIgYW5kIHNlcnZlclxuICAgKiBAcGFyYW0gdXNlcktleVNoYXJlIC0gdXNlcidzIEJMUy1ES0cga2V5IHNoYXJlXG4gICAqIEBwYXJhbSBiYWNrdXBLZXlTaGFyZSAtIGJhY2t1cCdzIEJMUy1ES0cga2V5IHNoYXJlXG4gICAqIEBwYXJhbSBiaXRnb0tleWNoYWluIC0gcHJldmlvdXNseSBjcmVhdGVkIEJpdEdvIGtleWNoYWluOyBtdXN0IGJlIGNvbXBhdGlibGUgd2l0aCB1c2VyIGFuZCBiYWNrdXAga2V5IHNoYXJlc1xuICAgKiBAcGFyYW0gcGFzc3BocmFzZSAtIHdhbGxldCBwYXNzcGhyYXNlIHVzZWQgdG8gZW5jcnlwdCB1c2VyJ3Mgc2lnbmluZyBtYXRlcmlhbHNcbiAgICovXG4gIGFzeW5jIGNyZWF0ZVVzZXJLZXljaGFpbihcbiAgICB1c2VyR3BnS2V5OiBTZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgIHVzZXJLZXlTaGFyZTogSUJsc0tleVBhaXIsXG4gICAgYmFja3VwS2V5U2hhcmU6IElCbHNLZXlQYWlyLFxuICAgIGJpdGdvS2V5Y2hhaW46IEtleWNoYWluLFxuICAgIHBhc3NwaHJhc2U6IHN0cmluZyxcbiAgICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGU/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxLZXljaGFpbj4ge1xuICAgIGNvbnN0IGJpdGdvS2V5U2hhcmVzID0gYml0Z29LZXljaGFpbi5rZXlTaGFyZXM7XG4gICAgaWYgKCFiaXRnb0tleVNoYXJlcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIEJpdEdvIGtleSBzaGFyZXMnKTtcbiAgICB9XG5cbiAgICBjb25zdCBiaXRHb1RvVXNlclNoYXJlID0gYml0Z29LZXlTaGFyZXMuZmluZCgoa2V5U2hhcmUpID0+IGtleVNoYXJlLmZyb20gPT09ICdiaXRnbycgJiYga2V5U2hhcmUudG8gPT09ICd1c2VyJyk7XG4gICAgaWYgKCFiaXRHb1RvVXNlclNoYXJlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgQml0R28gdG8gVXNlciBrZXkgc2hhcmUnKTtcbiAgICB9XG5cbiAgICBpZiAoIXVzZXJLZXlTaGFyZS5zZWNyZXRTaGFyZXMgfHwgIXVzZXJLZXlTaGFyZS5wdWIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB1c2VyIGtleSBzaGFyZXMnKTtcbiAgICB9XG4gICAgaWYgKCFiYWNrdXBLZXlTaGFyZS5zZWNyZXRTaGFyZXMgfHwgIWJhY2t1cEtleVNoYXJlLnB1Yikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGJhY2t1cCBrZXkgc2hhcmVzJyk7XG4gICAgfVxuXG4gICAgY29uc3QgYml0R29Ub1VzZXJQdWJsaWNTaGFyZSA9IGJpdEdvVG9Vc2VyU2hhcmUucHVibGljU2hhcmUuc2xpY2UoMCwgOTYpO1xuICAgIGNvbnN0IGJpdEdvVG9Vc2VyQ2hhaW5jb2RlID0gYml0R29Ub1VzZXJTaGFyZS5wdWJsaWNTaGFyZS5zbGljZSg5Nik7XG4gICAgY29uc3QgY29tbW9uUHViID0gQmxzS2V5UGFpckNsYXNzLmFnZ3JlZ2F0ZVB1YmtleXMoW3VzZXJLZXlTaGFyZS5wdWIsIGJhY2t1cEtleVNoYXJlLnB1YiwgYml0R29Ub1VzZXJQdWJsaWNTaGFyZV0pO1xuICAgIGNvbnN0IGNvbW1vbkNoYWluY29kZSA9IEJsc0tleVBhaXJDbGFzcy5hZ2dyZWdhdGVDaGFpbmNvZGVzKFtcbiAgICAgIHVzZXJLZXlTaGFyZS5jaGFpbmNvZGUsXG4gICAgICBiYWNrdXBLZXlTaGFyZS5jaGFpbmNvZGUsXG4gICAgICBiaXRHb1RvVXNlckNoYWluY29kZSxcbiAgICBdKTtcbiAgICBjb25zdCBjb21tb25LZXljaGFpbiA9IGNvbW1vblB1YiArIGNvbW1vbkNoYWluY29kZTtcbiAgICBpZiAoY29tbW9uS2V5Y2hhaW4gIT09IGJpdGdvS2V5Y2hhaW4uY29tbW9uS2V5Y2hhaW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGNyZWF0ZSB1c2VyIGtleWNoYWluIC0gY29tbW9uS2V5Y2hhaW5zIGRvIG5vdCBtYXRjaC4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBiaXRHb1RvVXNlclByaXZhdGVTaGFyZSA9IGF3YWl0IHRoaXMuZGVjcnlwdFByaXZhdGVTaGFyZShiaXRHb1RvVXNlclNoYXJlLnByaXZhdGVTaGFyZSwgdXNlckdwZ0tleSk7XG4gICAgaWYgKGJpdEdvVG9Vc2VyUHJpdmF0ZVNoYXJlLnNsaWNlKDY0KSAhPT0gYml0R29Ub1VzZXJDaGFpbmNvZGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGNyZWF0ZSB1c2VyIGtleWNoYWluIC0gYml0Z28gdG8gdXNlciBjaGFpbmNvZGUgZG8gbm90IG1hdGNoLicpO1xuICAgIH1cbiAgICBjb25zdCB1c2VyU2lnbmluZ01hdGVyaWFsOiBTaWduaW5nTWF0ZXJpYWwgPSB7XG4gICAgICB1c2VyU2hhcmU6IHtcbiAgICAgICAgcHViOiB1c2VyS2V5U2hhcmUucHViLFxuICAgICAgICBwcml2OiB1c2VyS2V5U2hhcmUuc2VjcmV0U2hhcmVzWzBdLFxuICAgICAgICBzZWVkOiB1c2VyS2V5U2hhcmUuc2VlZCxcbiAgICAgICAgY2hhaW5jb2RlOiB1c2VyS2V5U2hhcmUuY2hhaW5jb2RlLFxuICAgICAgfSxcbiAgICAgIGJhY2t1cFNoYXJlOiB7XG4gICAgICAgIHB1YjogYmFja3VwS2V5U2hhcmUucHViLFxuICAgICAgICBwcml2OiBiYWNrdXBLZXlTaGFyZS5zZWNyZXRTaGFyZXNbMF0sXG4gICAgICAgIGNoYWluY29kZTogYmFja3VwS2V5U2hhcmUuY2hhaW5jb2RlLFxuICAgICAgfSxcbiAgICAgIGJpdGdvU2hhcmU6IHtcbiAgICAgICAgcHViOiBiaXRHb1RvVXNlclB1YmxpY1NoYXJlLFxuICAgICAgICBwcml2OiBiaXRHb1RvVXNlclByaXZhdGVTaGFyZS5zbGljZSgwLCA2NCksXG4gICAgICAgIGNoYWluY29kZTogYml0R29Ub1VzZXJDaGFpbmNvZGUsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCB1c2VyS2V5Y2hhaW5QYXJhbXM6IEFkZEtleWNoYWluT3B0aW9ucyA9IHtcbiAgICAgIHNvdXJjZTogJ3VzZXInLFxuICAgICAga2V5VHlwZTogJ2Jsc2RrZycsXG4gICAgICBjb21tb25LZXljaGFpbjogY29tbW9uS2V5Y2hhaW4sXG4gICAgICBlbmNyeXB0ZWRQcnY6IHRoaXMuYml0Z28uZW5jcnlwdCh7IGlucHV0OiBKU09OLnN0cmluZ2lmeSh1c2VyU2lnbmluZ01hdGVyaWFsKSwgcGFzc3dvcmQ6IHBhc3NwaHJhc2UgfSksXG4gICAgICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGUsXG4gICAgfTtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJhc2VDb2luLmtleWNoYWlucygpLmFkZCh1c2VyS2V5Y2hhaW5QYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBLZXljaGFpbiBjb250YWluaW5nIHRoZSBCYWNrdXAgcGFydHkncyBCTFMtREtHIHNpZ25pbmcgbWF0ZXJpYWxzLlxuICAgKlxuICAgKiBAcGFyYW0gYmFja3VwR3BnS2V5IC0gZXBoZW1lcmFsIEdQRyBrZXkgdG8gZW5jcnlwdCAvIGRlY3J5cHQgc2Vuc2l0aXZlIGRhdGEgZXhjaGFuZ2VkIGJldHdlZW4gYmFja3VwIGFuZCBzZXJ2ZXJcbiAgICogQHBhcmFtIHVzZXJLZXlTaGFyZSAtIFVzZXIncyBCTFMtREtHIEtleXNoYXJlXG4gICAqIEBwYXJhbSBiYWNrdXBLZXlTaGFyZSAtIEJhY2t1cCdzIEJMUy1ES0cgS2V5c2hhcmVcbiAgICogQHBhcmFtIGJpdGdvS2V5Y2hhaW4gLSBwcmV2aW91c2x5IGNyZWF0ZWQgQml0R28ga2V5Y2hhaW47IG11c3QgYmUgY29tcGF0aWJsZSB3aXRoIHVzZXIgYW5kIGJhY2t1cCBrZXkgc2hhcmVzXG4gICAqIEBwYXJhbSBwYXNzcGhyYXNlIC0gd2FsbGV0IHBhc3NwaHJhc2UgdXNlZCB0byBlbmNyeXB0IHVzZXIncyBzaWduaW5nIG1hdGVyaWFsc1xuICAgKi9cbiAgYXN5bmMgY3JlYXRlQmFja3VwS2V5Y2hhaW4oXG4gICAgYmFja3VwR3BnS2V5OiBTZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgIHVzZXJLZXlTaGFyZTogSUJsc0tleVBhaXIsXG4gICAgYmFja3VwS2V5U2hhcmU6IElCbHNLZXlQYWlyLFxuICAgIGJpdGdvS2V5Y2hhaW46IEtleWNoYWluLFxuICAgIHBhc3NwaHJhc2U6IHN0cmluZ1xuICApOiBQcm9taXNlPEtleWNoYWluPiB7XG4gICAgY29uc3QgYml0Z29LZXlTaGFyZXMgPSBiaXRnb0tleWNoYWluLmtleVNoYXJlcztcbiAgICBpZiAoIWJpdGdvS2V5U2hhcmVzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgYml0Z28ga2V5c2hhcmVzJyk7XG4gICAgfVxuXG4gICAgY29uc3QgYml0R29Ub0JhY2t1cFNoYXJlID0gYml0Z29LZXlTaGFyZXMuZmluZCgoa2V5U2hhcmUpID0+IGtleVNoYXJlLmZyb20gPT09ICdiaXRnbycgJiYga2V5U2hhcmUudG8gPT09ICdiYWNrdXAnKTtcbiAgICBpZiAoIWJpdEdvVG9CYWNrdXBTaGFyZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIEJpdEdvIHRvIGJhY2t1cCBrZXkgc2hhcmUnKTtcbiAgICB9XG5cbiAgICBpZiAoIXVzZXJLZXlTaGFyZS5zZWNyZXRTaGFyZXMgfHwgIXVzZXJLZXlTaGFyZS5wdWIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB1c2VyIGtleSBzaGFyZXMnKTtcbiAgICB9XG4gICAgaWYgKCFiYWNrdXBLZXlTaGFyZS5zZWNyZXRTaGFyZXMgfHwgIWJhY2t1cEtleVNoYXJlLnB1Yikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGJhY2t1cCBrZXkgc2hhcmVzJyk7XG4gICAgfVxuXG4gICAgY29uc3QgYml0R29Ub0JhY2t1cFB1YmxpY1NoYXJlID0gYml0R29Ub0JhY2t1cFNoYXJlLnB1YmxpY1NoYXJlLnNsaWNlKDAsIDk2KTtcbiAgICBjb25zdCBiaXRHb1RvQmFja3VwQ2hhaW5jb2RlID0gYml0R29Ub0JhY2t1cFNoYXJlLnB1YmxpY1NoYXJlLnNsaWNlKDk2KTtcbiAgICBjb25zdCBjb21tb25QdWIgPSBCbHNLZXlQYWlyQ2xhc3MuYWdncmVnYXRlUHVia2V5cyhbXG4gICAgICB1c2VyS2V5U2hhcmUucHViLFxuICAgICAgYmFja3VwS2V5U2hhcmUucHViLFxuICAgICAgYml0R29Ub0JhY2t1cFB1YmxpY1NoYXJlLFxuICAgIF0pO1xuICAgIGNvbnN0IGNvbW1vbkNoYWluY29kZSA9IEJsc0tleVBhaXJDbGFzcy5hZ2dyZWdhdGVDaGFpbmNvZGVzKFtcbiAgICAgIHVzZXJLZXlTaGFyZS5jaGFpbmNvZGUsXG4gICAgICBiYWNrdXBLZXlTaGFyZS5jaGFpbmNvZGUsXG4gICAgICBiaXRHb1RvQmFja3VwQ2hhaW5jb2RlLFxuICAgIF0pO1xuICAgIGNvbnN0IGNvbW1vbktleWNoYWluID0gY29tbW9uUHViICsgY29tbW9uQ2hhaW5jb2RlO1xuICAgIGlmIChjb21tb25LZXljaGFpbiAhPT0gYml0Z29LZXljaGFpbi5jb21tb25LZXljaGFpbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gY3JlYXRlIGJhY2t1cCBrZXljaGFpbiAtIGNvbW1vbktleWNoYWlucyBkbyBub3QgbWF0Y2guJyk7XG4gICAgfVxuXG4gICAgY29uc3QgYml0R29Ub0JhY2t1cFByaXZhdGVTaGFyZSA9IGF3YWl0IHRoaXMuZGVjcnlwdFByaXZhdGVTaGFyZShiaXRHb1RvQmFja3VwU2hhcmUucHJpdmF0ZVNoYXJlLCBiYWNrdXBHcGdLZXkpO1xuICAgIGlmIChiaXRHb1RvQmFja3VwUHJpdmF0ZVNoYXJlLnNsaWNlKDY0KSAhPT0gYml0R29Ub0JhY2t1cENoYWluY29kZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gY3JlYXRlIHVzZXIga2V5Y2hhaW4gLSBiaXRnbyB0byB1c2VyIGNoYWluY29kZSBkbyBub3QgbWF0Y2guJyk7XG4gICAgfVxuICAgIGNvbnN0IGJhY2t1cFNpZ25pbmdNYXRlcmlhbDogU2lnbmluZ01hdGVyaWFsID0ge1xuICAgICAgdXNlclNoYXJlOiB7XG4gICAgICAgIHB1YjogdXNlcktleVNoYXJlLnB1YixcbiAgICAgICAgcHJpdjogdXNlcktleVNoYXJlLnNlY3JldFNoYXJlc1sxXSxcbiAgICAgICAgY2hhaW5jb2RlOiB1c2VyS2V5U2hhcmUuY2hhaW5jb2RlLFxuICAgICAgfSxcbiAgICAgIGJhY2t1cFNoYXJlOiB7XG4gICAgICAgIHB1YjogYmFja3VwS2V5U2hhcmUucHViLFxuICAgICAgICBwcml2OiBiYWNrdXBLZXlTaGFyZS5zZWNyZXRTaGFyZXNbMV0sXG4gICAgICAgIGNoYWluY29kZTogYmFja3VwS2V5U2hhcmUuY2hhaW5jb2RlLFxuICAgICAgICBzZWVkOiBiYWNrdXBLZXlTaGFyZS5zZWVkLFxuICAgICAgfSxcbiAgICAgIGJpdGdvU2hhcmU6IHtcbiAgICAgICAgcHViOiBiaXRHb1RvQmFja3VwUHVibGljU2hhcmUsXG4gICAgICAgIHByaXY6IGJpdEdvVG9CYWNrdXBQcml2YXRlU2hhcmUuc2xpY2UoMCwgNjQpLFxuICAgICAgICBjaGFpbmNvZGU6IGJpdEdvVG9CYWNrdXBDaGFpbmNvZGUsXG4gICAgICB9LFxuICAgIH07XG4gICAgY29uc3QgcHJ2ID0gSlNPTi5zdHJpbmdpZnkoYmFja3VwU2lnbmluZ01hdGVyaWFsKTtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJhc2VDb2luLmtleWNoYWlucygpLmNyZWF0ZUJhY2t1cCh7XG4gICAgICBzb3VyY2U6ICdiYWNrdXAnLFxuICAgICAga2V5VHlwZTogJ2Jsc2RrZycsXG4gICAgICBjb21tb25LZXljaGFpbjogY29tbW9uS2V5Y2hhaW4sXG4gICAgICBwcnYsXG4gICAgICBlbmNyeXB0ZWRQcnY6IHRoaXMuYml0Z28uZW5jcnlwdCh7IGlucHV0OiBwcnYsIHBhc3N3b3JkOiBwYXNzcGhyYXNlIH0pLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBLZXljaGFpbiBjb250YWluaW5nIEJpdEdvJ3MgQkxTLURLRyBzaWduaW5nIG1hdGVyaWFscy5cbiAgICpcbiAgICogQHBhcmFtIHVzZXJHcGdLZXkgLSBlcGhlbWVyYWwgR1BHIGtleSB0byBlbmNyeXB0IC8gZGVjcnlwdCBzZW5zaXR2ZSBkYXRhIGV4Y2hhbmdlZCBiZXR3ZWVuIHVzZXIgYW5kIHNlcnZlclxuICAgKiBAcGFyYW0gYmFja3VwR3BnS2V5IC0gZXBoZW1lcmFsIEdQRyBrZXkgdG8gZW5jcnlwdCAvIGRlY3J5cHQgc2Vuc2l0dmUgZGF0YSBleGNoYW5nZWQgYmV0d2VlbiBiYWNrdXAgYW5kIHNlcnZlclxuICAgKiBAcGFyYW0gdXNlcktleVNoYXJlIC0gdXNlcidzIEJMUy1ES0cga2V5IHNoYXJlXG4gICAqIEBwYXJhbSBiYWNrdXBLZXlTaGFyZSAtIGJhY2t1cCdzIEJMUy1ES0cga2V5IHNoYXJlXG4gICAqL1xuICBhc3luYyBjcmVhdGVCaXRnb0tleWNoYWluKFxuICAgIHVzZXJHcGdLZXk6IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz4sXG4gICAgYmFja3VwR3BnS2V5OiBTZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgIHVzZXJLZXlTaGFyZTogSUJsc0tleVBhaXIsXG4gICAgYmFja3VwS2V5U2hhcmU6IElCbHNLZXlQYWlyLFxuICAgIGVudGVycHJpc2U/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxLZXljaGFpbj4ge1xuICAgIGlmICghdXNlcktleVNoYXJlLnNlY3JldFNoYXJlcyB8fCAhdXNlcktleVNoYXJlLnB1Yikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHVzZXIga2V5IHNoYXJlcycpO1xuICAgIH1cbiAgICBpZiAoIWJhY2t1cEtleVNoYXJlLnNlY3JldFNoYXJlcyB8fCAhYmFja3VwS2V5U2hhcmUucHViKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgYmFja3VwIGtleSBzaGFyZXMnKTtcbiAgICB9XG5cbiAgICBjb25zdCB1c2VyVG9CaXRnb1B1YmxpY1NoYXJlID0gQnVmZmVyLmNvbmNhdChbXG4gICAgICBCdWZmZXIuZnJvbSh1c2VyS2V5U2hhcmUucHViLCAnaGV4JyksXG4gICAgICBCdWZmZXIuZnJvbSh1c2VyS2V5U2hhcmUuY2hhaW5jb2RlLCAnaGV4JyksXG4gICAgXSkudG9TdHJpbmcoJ2hleCcpO1xuICAgIGNvbnN0IHVzZXJUb0JpdGdvUHJpdmF0ZVNoYXJlID0gQnVmZmVyLmNvbmNhdChbXG4gICAgICBCdWZmZXIuZnJvbSh1c2VyS2V5U2hhcmUuc2VjcmV0U2hhcmVzWzJdLCAnaGV4JyksXG4gICAgICBCdWZmZXIuZnJvbSh1c2VyS2V5U2hhcmUuY2hhaW5jb2RlLCAnaGV4JyksXG4gICAgXSkudG9TdHJpbmcoJ2hleCcpO1xuXG4gICAgY29uc3QgdXNlclRvQml0Z29LZXlTaGFyZSA9IHtcbiAgICAgIHB1YmxpY1NoYXJlOiB1c2VyVG9CaXRnb1B1YmxpY1NoYXJlLFxuICAgICAgcHJpdmF0ZVNoYXJlOiB1c2VyVG9CaXRnb1ByaXZhdGVTaGFyZSxcbiAgICB9O1xuXG4gICAgY29uc3QgYmFja3VwVG9CaXRnb1B1YmxpY1NoYXJlID0gQnVmZmVyLmNvbmNhdChbXG4gICAgICBCdWZmZXIuZnJvbShiYWNrdXBLZXlTaGFyZS5wdWIsICdoZXgnKSxcbiAgICAgIEJ1ZmZlci5mcm9tKGJhY2t1cEtleVNoYXJlLmNoYWluY29kZSwgJ2hleCcpLFxuICAgIF0pLnRvU3RyaW5nKCdoZXgnKTtcbiAgICBjb25zdCBiYWNrdXBUb0JpdGdvUHJpdmF0ZVNoYXJlID0gQnVmZmVyLmNvbmNhdChbXG4gICAgICBCdWZmZXIuZnJvbShiYWNrdXBLZXlTaGFyZS5zZWNyZXRTaGFyZXNbMl0sICdoZXgnKSxcbiAgICAgIEJ1ZmZlci5mcm9tKGJhY2t1cEtleVNoYXJlLmNoYWluY29kZSwgJ2hleCcpLFxuICAgIF0pLnRvU3RyaW5nKCdoZXgnKTtcbiAgICBjb25zdCBiYWNrdXBUb0JpdGdvS2V5U2hhcmUgPSB7XG4gICAgICBwdWJsaWNTaGFyZTogYmFja3VwVG9CaXRnb1B1YmxpY1NoYXJlLFxuICAgICAgcHJpdmF0ZVNoYXJlOiBiYWNrdXBUb0JpdGdvUHJpdmF0ZVNoYXJlLFxuICAgIH07XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jcmVhdGVCaXRnb0tleWNoYWluSW5XUChcbiAgICAgIHVzZXJHcGdLZXksXG4gICAgICBiYWNrdXBHcGdLZXksXG4gICAgICB1c2VyVG9CaXRnb0tleVNoYXJlLFxuICAgICAgYmFja3VwVG9CaXRnb0tleVNoYXJlLFxuICAgICAgJ2Jsc2RrZycsXG4gICAgICBlbnRlcnByaXNlXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIFVzZXIsIEJhY2t1cCwgYW5kIEJpdEdvIEJMUy1ES0cgS2V5Y2hhaW5zLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zLnBhc3NwaHJhc2UgLSBwYXNzcGhyYXNlIHVzZWQgdG8gZW5jcnlwdCBzaWduaW5nIG1hdGVyaWFscyBjcmVhdGVkIGZvciBVc2VyIGFuZCBCYWNrdXBcbiAgICovXG4gIGFzeW5jIGNyZWF0ZUtleWNoYWlucyhwYXJhbXM6IHtcbiAgICBwYXNzcGhyYXNlOiBzdHJpbmc7XG4gICAgZW50ZXJwcmlzZT86IHN0cmluZztcbiAgICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGU/OiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPEtleWNoYWluc1RyaXBsZXQ+IHtcbiAgICBjb25zdCB1c2VyS2V5U2hhcmUgPSB0aGlzLmJhc2VDb2luLmdlbmVyYXRlS2V5UGFpcigpIGFzIElCbHNLZXlQYWlyO1xuICAgIGNvbnN0IGJhY2t1cEtleVNoYXJlID0gdGhpcy5iYXNlQ29pbi5nZW5lcmF0ZUtleVBhaXIoKSBhcyBJQmxzS2V5UGFpcjtcblxuICAgIGNvbnN0IHJhbmRvbUhleFN0cmluZyA9IHJhbmRvbUJ5dGVzKDEyKS50b1N0cmluZygnaGV4Jyk7XG4gICAgY29uc3QgcmFuZG9tSGV4U3RyaW5nMiA9IHJhbmRvbUJ5dGVzKDEyKS50b1N0cmluZygnaGV4Jyk7XG5cbiAgICBjb25zdCB1c2VyR3BnS2V5ID0gYXdhaXQgZ2VuZXJhdGVLZXkoe1xuICAgICAgdXNlcklEczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogcmFuZG9tSGV4U3RyaW5nLFxuICAgICAgICAgIGVtYWlsOiBgJHtyYW5kb21IZXhTdHJpbmd9QCR7cmFuZG9tSGV4U3RyaW5nfS5jb21gLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGJhY2t1cEdwZ0tleSA9IGF3YWl0IGdlbmVyYXRlS2V5KHtcbiAgICAgIHVzZXJJRHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IHJhbmRvbUhleFN0cmluZzIsXG4gICAgICAgICAgZW1haWw6IGAke3JhbmRvbUhleFN0cmluZzJ9QCR7cmFuZG9tSGV4U3RyaW5nMn0uY29tYCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBiaXRnb0tleWNoYWluID0gYXdhaXQgdGhpcy5jcmVhdGVCaXRnb0tleWNoYWluKFxuICAgICAgdXNlckdwZ0tleSxcbiAgICAgIGJhY2t1cEdwZ0tleSxcbiAgICAgIHVzZXJLZXlTaGFyZSxcbiAgICAgIGJhY2t1cEtleVNoYXJlLFxuICAgICAgcGFyYW1zLmVudGVycHJpc2VcbiAgICApO1xuICAgIGNvbnN0IHVzZXJLZXljaGFpblByb21pc2UgPSB0aGlzLmNyZWF0ZVVzZXJLZXljaGFpbihcbiAgICAgIHVzZXJHcGdLZXksXG4gICAgICB1c2VyS2V5U2hhcmUsXG4gICAgICBiYWNrdXBLZXlTaGFyZSxcbiAgICAgIGJpdGdvS2V5Y2hhaW4sXG4gICAgICBwYXJhbXMucGFzc3BocmFzZSxcbiAgICAgIHBhcmFtcy5vcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGVcbiAgICApO1xuICAgIGNvbnN0IGJhY2t1cEtleWNoYWluUHJvbWlzZSA9IHRoaXMuY3JlYXRlQmFja3VwS2V5Y2hhaW4oXG4gICAgICBiYWNrdXBHcGdLZXksXG4gICAgICB1c2VyS2V5U2hhcmUsXG4gICAgICBiYWNrdXBLZXlTaGFyZSxcbiAgICAgIGJpdGdvS2V5Y2hhaW4sXG4gICAgICBwYXJhbXMucGFzc3BocmFzZVxuICAgICk7XG4gICAgY29uc3QgW3VzZXJLZXljaGFpbiwgYmFja3VwS2V5Y2hhaW5dID0gYXdhaXQgUHJvbWlzZS5hbGwoW3VzZXJLZXljaGFpblByb21pc2UsIGJhY2t1cEtleWNoYWluUHJvbWlzZV0pO1xuXG4gICAgLy8gY3JlYXRlIHdhbGxldFxuICAgIGNvbnN0IGtleWNoYWlucyA9IHtcbiAgICAgIHVzZXJLZXljaGFpbixcbiAgICAgIGJhY2t1cEtleWNoYWluLFxuICAgICAgYml0Z29LZXljaGFpbixcbiAgICB9O1xuXG4gICAgcmV0dXJuIGtleWNoYWlucztcbiAgfVxufVxuIl19
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -38,4 +42,4 @@ function getCodecProperties(type) {
|
|
|
38
42
|
throw new Error(`Unsupported type: ${type.name}`);
|
|
39
43
|
}
|
|
40
44
|
exports.getCodecProperties = getCodecProperties;
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWNQcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby91dGlscy9jb2RlY1Byb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQTJCO0FBRTNCOzs7R0FHRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLElBQWlCO0lBQ2xELElBQUksSUFBSSxZQUFZLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRTtRQUN0QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FDL0M7SUFDRCxJQUFJLElBQUksWUFBWSxDQUFDLENBQUMsU0FBUyxFQUFFO1FBQy9CLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3RDO0lBQ0QsSUFBSSxJQUFJLFlBQVksQ0FBQyxDQUFDLFdBQVcsSUFBSSxJQUFJLFlBQVksQ0FBQyxDQUFDLGFBQWEsRUFBRTtRQUNwRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ2hDO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7QUFDcEQsQ0FBQztBQVpELGdEQVlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdCBmcm9tICdpby10cyc7XG5cbi8qKlxuICogQHBhcmFtIHR5cGVcbiAqIEByZXR1cm5zIHtzdHJpbmdbXX0gdGhlIHRvcC1sZXZlbCBwcm9wZXJ0aWVzIG9mIGEgY29kZWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENvZGVjUHJvcGVydGllcyh0eXBlOiB0LlR5cGU8YW55Pik6IHN0cmluZ1tdIHtcbiAgaWYgKHR5cGUgaW5zdGFuY2VvZiB0LkludGVyc2VjdGlvblR5cGUpIHtcbiAgICByZXR1cm4gdHlwZS50eXBlcy5mbGF0TWFwKGdldENvZGVjUHJvcGVydGllcyk7XG4gIH1cbiAgaWYgKHR5cGUgaW5zdGFuY2VvZiB0LkV4YWN0VHlwZSkge1xuICAgIHJldHVybiBnZXRDb2RlY1Byb3BlcnRpZXModHlwZS50eXBlKTtcbiAgfVxuICBpZiAodHlwZSBpbnN0YW5jZW9mIHQuUGFydGlhbFR5cGUgfHwgdHlwZSBpbnN0YW5jZW9mIHQuSW50ZXJmYWNlVHlwZSkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0eXBlLnByb3BzKTtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgdHlwZTogJHt0eXBlLm5hbWV9YCk7XG59XG4iXX0=
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -32,17 +36,17 @@ const NEA = __importStar(require("fp-ts/ReadonlyNonEmptyArray"));
|
|
|
32
36
|
*/
|
|
33
37
|
const validationErrors = (typeAlias) => (errors) => {
|
|
34
38
|
return errors
|
|
35
|
-
.map((error) => function_1.pipe(NEA.fromReadonlyArray(error.context), O.map((context) => {
|
|
39
|
+
.map((error) => (0, function_1.pipe)(NEA.fromReadonlyArray(error.context), O.map((context) => {
|
|
36
40
|
const name = typeAlias || NEA.head(context).type.name;
|
|
37
41
|
const lastType = NEA.last(context).type.name;
|
|
38
42
|
const path = name + error.context.map((c) => c.key).join('.');
|
|
39
|
-
return function_1.pipe(Json.stringify(error.value), E.getOrElse(() => error.value), (value) => `Invalid value '${value}' supplied to ${path}, expected ${lastType}.`);
|
|
43
|
+
return (0, function_1.pipe)(Json.stringify(error.value), E.getOrElse(() => error.value), (value) => `Invalid value '${value}' supplied to ${path}, expected ${lastType}.`);
|
|
40
44
|
}), O.getOrElse(() => `Unable to decode ${typeAlias}, but no error reported`)))
|
|
41
45
|
.join('\n');
|
|
42
46
|
};
|
|
43
47
|
exports.validationErrors = validationErrors;
|
|
44
48
|
function decode(codecName, codec, u) {
|
|
45
|
-
return function_1.pipe(codec.decode(u), E.mapLeft((errors) => exports.validationErrors(codecName)(errors)));
|
|
49
|
+
return (0, function_1.pipe)(codec.decode(u), E.mapLeft((errors) => (0, exports.validationErrors)(codecName)(errors)));
|
|
46
50
|
}
|
|
47
51
|
exports.decode = decode;
|
|
48
52
|
/**
|
|
@@ -50,7 +54,7 @@ exports.decode = decode;
|
|
|
50
54
|
* `validationErrors`.
|
|
51
55
|
*/
|
|
52
56
|
function decodeOrElse(codecName, codec, value, orElse) {
|
|
53
|
-
return function_1.pipe(decode(codecName, codec, value), E.getOrElseW(orElse));
|
|
57
|
+
return (0, function_1.pipe)(decode(codecName, codec, value), E.getOrElseW(orElse));
|
|
54
58
|
}
|
|
55
59
|
exports.decodeOrElse = decodeOrElse;
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3V0aWxzL2RlY29kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUFzQztBQUN0QyxnREFBa0M7QUFDbEMsaURBQW1DO0FBQ25DLGdEQUFrQztBQUNsQyxpRUFBbUQ7QUFHbkQ7Ozs7R0FJRztBQUNJLE1BQU0sZ0JBQWdCLEdBQzNCLENBQUMsU0FBaUIsRUFBRSxFQUFFLENBQ3RCLENBQUMsTUFBZ0IsRUFBVSxFQUFFO0lBQzNCLE9BQU8sTUFBTTtTQUNWLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2IsSUFBQSxlQUFJLEVBQ0YsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFDcEMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQ2hCLE1BQU0sSUFBSSxHQUFHLFNBQVMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzdDLE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5RCxPQUFPLElBQUEsZUFBSSxFQUNULElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUMzQixDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFDOUIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixLQUFLLGlCQUFpQixJQUFJLGNBQWMsUUFBUSxHQUFHLENBQ2pGLENBQUM7SUFDSixDQUFDLENBQUMsRUFDRixDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixTQUFTLHlCQUF5QixDQUFDLENBQzFFLENBQ0Y7U0FDQSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBckJTLFFBQUEsZ0JBQWdCLG9CQXFCekI7QUFFSixTQUFnQixNQUFNLENBQVUsU0FBaUIsRUFBRSxLQUFzQixFQUFFLENBQUk7SUFDN0UsT0FBTyxJQUFBLGVBQUksRUFDVCxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUNmLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUEsd0JBQWdCLEVBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FDM0QsQ0FBQztBQUNKLENBQUM7QUFMRCx3QkFLQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLFlBQVksQ0FDMUIsU0FBaUIsRUFDakIsS0FBc0IsRUFDdEIsS0FBUSxFQUNSLE1BQTZCO0lBRTdCLE9BQU8sSUFBQSxlQUFJLEVBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFQRCxvQ0FPQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBpcGUgfSBmcm9tICdmcC10cy9mdW5jdGlvbic7XG5pbXBvcnQgKiBhcyBFIGZyb20gJ2ZwLXRzL0VpdGhlcic7XG5pbXBvcnQgKiBhcyBKc29uIGZyb20gJ2ZwLXRzL0pzb24nO1xuaW1wb3J0ICogYXMgTyBmcm9tICdmcC10cy9PcHRpb24nO1xuaW1wb3J0ICogYXMgTkVBIGZyb20gJ2ZwLXRzL1JlYWRvbmx5Tm9uRW1wdHlBcnJheSc7XG5pbXBvcnQgKiBhcyB0IGZyb20gJ2lvLXRzJztcblxuLyoqXG4gKiBGb3JtYXQgYW4gYEVycm9yc2Agb2JqZWN0IGFzIGEgaHVtYW4tcmVhZGFibGUgYHN0cmluZ2AuIFNlZSBgZGVjb2RlYCBpbiBgZGVjb2RlLnRzYCBmb3IgYW4gZXhhbXBsZS5cbiAqIEluc3BpcmVkIGJ5XG4gKiBodHRwczovL2dpdGh1Yi5jb20vbW1rYWwvdHMvYmxvYi85NGE5YmE4ZjI5MzFjOWM5MTEyMmQwMGIwYmYxYmQyMWIyYmUwNWNkL3BhY2thZ2VzL2lvLXRzLWV4dHJhL3NyYy9yZXBvcnRlcnMudHMjTDExLlxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGlvbkVycm9ycyA9XG4gICh0eXBlQWxpYXM6IHN0cmluZykgPT5cbiAgKGVycm9yczogdC5FcnJvcnMpOiBzdHJpbmcgPT4ge1xuICAgIHJldHVybiBlcnJvcnNcbiAgICAgIC5tYXAoKGVycm9yKSA9PlxuICAgICAgICBwaXBlKFxuICAgICAgICAgIE5FQS5mcm9tUmVhZG9ubHlBcnJheShlcnJvci5jb250ZXh0KSxcbiAgICAgICAgICBPLm1hcCgoY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmFtZSA9IHR5cGVBbGlhcyB8fCBORUEuaGVhZChjb250ZXh0KS50eXBlLm5hbWU7XG4gICAgICAgICAgICBjb25zdCBsYXN0VHlwZSA9IE5FQS5sYXN0KGNvbnRleHQpLnR5cGUubmFtZTtcbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBuYW1lICsgZXJyb3IuY29udGV4dC5tYXAoKGMpID0+IGMua2V5KS5qb2luKCcuJyk7XG4gICAgICAgICAgICByZXR1cm4gcGlwZShcbiAgICAgICAgICAgICAgSnNvbi5zdHJpbmdpZnkoZXJyb3IudmFsdWUpLFxuICAgICAgICAgICAgICBFLmdldE9yRWxzZSgoKSA9PiBlcnJvci52YWx1ZSksXG4gICAgICAgICAgICAgICh2YWx1ZSkgPT4gYEludmFsaWQgdmFsdWUgJyR7dmFsdWV9JyBzdXBwbGllZCB0byAke3BhdGh9LCBleHBlY3RlZCAke2xhc3RUeXBlfS5gXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIE8uZ2V0T3JFbHNlKCgpID0+IGBVbmFibGUgdG8gZGVjb2RlICR7dHlwZUFsaWFzfSwgYnV0IG5vIGVycm9yIHJlcG9ydGVkYClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLmpvaW4oJ1xcbicpO1xuICB9O1xuXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlPEEsIE8sIEk+KGNvZGVjTmFtZTogc3RyaW5nLCBjb2RlYzogdC5UeXBlPEEsIE8sIEk+LCB1OiBJKTogRS5FaXRoZXI8c3RyaW5nLCBBPiB7XG4gIHJldHVybiBwaXBlKFxuICAgIGNvZGVjLmRlY29kZSh1KSxcbiAgICBFLm1hcExlZnQoKGVycm9ycykgPT4gdmFsaWRhdGlvbkVycm9ycyhjb2RlY05hbWUpKGVycm9ycykpXG4gICk7XG59XG5cbi8qKlxuICogRGVjb2RlcyBpbnB1dCBgdmFsdWVgIHdpdGggYGNvZGVjYC4gV2hlbiBkZWNvZGluZyBmYWlscywgY2FsbHMgdGhlIGBvckVsc2VgIGZ1bmN0aW9uIHdpdGggdGhlIGVycm9yIG1lc3NhZ2UgZnJvbVxuICogYHZhbGlkYXRpb25FcnJvcnNgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlT3JFbHNlPEEsIE8sIEksIEU+KFxuICBjb2RlY05hbWU6IHN0cmluZyxcbiAgY29kZWM6IHQuVHlwZTxBLCBPLCBJPixcbiAgdmFsdWU6IEksXG4gIG9yRWxzZTogKGVycm9yczogc3RyaW5nKSA9PiBFXG4pOiBFIHwgQSB7XG4gIHJldHVybiBwaXBlKGRlY29kZShjb2RlY05hbWUsIGNvZGVjLCB2YWx1ZSksIEUuZ2V0T3JFbHNlVyhvckVsc2UpKTtcbn1cbiJdfQ==
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -36,4 +40,4 @@ __exportStar(require("./tss"), exports);
|
|
|
36
40
|
__exportStar(require("./util"), exports);
|
|
37
41
|
__exportStar(require("./decode"), exports);
|
|
38
42
|
__exportStar(require("./notEmpty"), exports);
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2REFBK0M7QUFjdEMsb0NBQVk7QUFackIseURBQXVDO0FBQ3ZDLDZDQUEyQjtBQUMzQiw4Q0FBNEI7QUFDNUIsNkNBQTJCO0FBQzNCLGlEQUErQjtBQUMvQixrREFBZ0M7QUFDaEMsMkNBQXlCO0FBQ3pCLHdDQUFzQjtBQUN0Qix5Q0FBdUI7QUFDdkIsMkNBQXlCO0FBQ3pCLDZDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9wZW5wZ3BVdGlscyBmcm9tICcuL29wZW5ncGdVdGlscyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vYWJzdHJhY3RVdHhvQ29pblV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9ibHNVdGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2lCbHNVdGlscyc7XG5leHBvcnQgKiBmcm9tICcuL21wY1V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vb3BlbmdwZ1V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvbWlzZS11dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3RyaXBsZSc7XG5leHBvcnQgKiBmcm9tICcuL3Rzcyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvZGUnO1xuZXhwb3J0ICogZnJvbSAnLi9ub3RFbXB0eSc7XG5cbmV4cG9ydCB7IG9wZW5wZ3BVdGlscyB9O1xuIl19
|