@bitgo-beta/utxo-staking 1.1.1-beta.710 → 1.1.1-beta.711
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegationMessage.d.ts","sourceRoot":"","sources":["../../../src/babylon/delegationMessage.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,2CAA2C,CAAC;AACpE,OAAO,KAAK,eAAe,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAGxD,OAAO,EAAE,kBAAkB,EAAsB,MAAM,WAAW,CAAC;AAEnE,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAkChE,wBAAgB,aAAa,CAC3B,IAAI,EAAE,YAAY,CAAC,IAAI,EACvB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,CAAC,eAAe,EAAE,EAClC,EAAE,QAAgB,EAAE;;CAAA,GACnB,YAAY,CAAC,IAAI,CAmBnB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,EAC5C,OAAO,EAAE,kBAAkB,GAC1B,YAAY,CAAC,IAAI,CAWnB;AAED,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,wBAAwB,EAC3C,SAAS,EAAE,OAAO,CAAC,eAAe,GACjC,MAAM,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"delegationMessage.d.ts","sourceRoot":"","sources":["../../../src/babylon/delegationMessage.ts"],"names":[],"mappings":"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"}
|
|
@@ -186,6 +186,13 @@ function getBtcProviderForECKey(descriptorBuilder, stakerKey) {
|
|
|
186
186
|
throw new Error(`unexpected signing step: ${options.action.name}`);
|
|
187
187
|
}
|
|
188
188
|
},
|
|
189
|
+
/**
|
|
190
|
+
* This function is only used by btc-staking-ts to create a staking expansion registration
|
|
191
|
+
* transaction, which we do not currently support.
|
|
192
|
+
*/
|
|
193
|
+
async getTransactionHex(txid) {
|
|
194
|
+
throw new Error(`Unsupported operation getTransactionHex (txid=${txid})`);
|
|
195
|
+
},
|
|
189
196
|
};
|
|
190
197
|
}
|
|
191
198
|
/**
|
|
@@ -228,6 +235,19 @@ function toStakingTransaction(tx) {
|
|
|
228
235
|
}
|
|
229
236
|
return bitcoinjslib.Transaction.fromHex(tx.toHex());
|
|
230
237
|
}
|
|
238
|
+
/**
|
|
239
|
+
* As of babylonlabs-io/btc-staking-ts v1.5.7, the BTC delegation message creation functions support two message types:
|
|
240
|
+
* - MsgCreateBTCDelegation
|
|
241
|
+
* - MsgBtcStakeExpand
|
|
242
|
+
*
|
|
243
|
+
* BitGo still only supports MsgCreateBTCDelegation, so we need to check the message type here.
|
|
244
|
+
*
|
|
245
|
+
* @param msg - the message to check
|
|
246
|
+
* @return `true` if the message is of type MsgCreateBTCDelegation
|
|
247
|
+
*/
|
|
248
|
+
function isMsgBtcStakeExpand(msg) {
|
|
249
|
+
return 'previousStakingTxHash' in msg;
|
|
250
|
+
}
|
|
231
251
|
/*
|
|
232
252
|
* This is mostly lifted from
|
|
233
253
|
* https://github.com/babylonlabs-io/btc-staking-ts/blob/v0.4.0-rc.2/src/staking/manager.ts#L100-L172
|
|
@@ -239,11 +259,17 @@ async function createDelegationMessageWithTransaction(channel, manager, staking,
|
|
|
239
259
|
throw new Error('Invalid Babylon address');
|
|
240
260
|
}
|
|
241
261
|
// Create delegation message without including inclusion proof
|
|
242
|
-
|
|
262
|
+
const msg = await manager.createBtcDelegationMsg(channel, staking, {
|
|
243
263
|
stakingTimelock: staking.stakingTimelock,
|
|
244
264
|
finalityProviderPksNoCoordHex: staking.finalityProviderPksNoCoordHex,
|
|
245
265
|
stakingAmountSat,
|
|
246
266
|
}, toStakingTransaction(transaction), babylonAddress, staking.stakerInfo, staking.params);
|
|
267
|
+
// It shouldn't be possible for us to create a MsgBtcStakeExpand here because that only gets created when
|
|
268
|
+
// we pass channel = delegation:expand into createBtcDelegationMsg, which we cannot do.
|
|
269
|
+
if (isMsgBtcStakeExpand(msg.value)) {
|
|
270
|
+
throw new Error('MsgBtcStakeExpand is not supported');
|
|
271
|
+
}
|
|
272
|
+
return { ...msg, value: msg.value };
|
|
247
273
|
}
|
|
248
274
|
async function createUnsignedPreStakeRegistrationBabylonTransactionWithBtcProvider(btcProvider, network, stakerBtcInfo, stakingInput, babylonBtcTipHeight, inputUTXOs, feeRateSatB, babylonAddress, channel, stakingParams = (0, stakingParams_1.getStakingParams)(network)) {
|
|
249
275
|
if (inputUTXOs.length === 0) {
|
|
@@ -256,4 +282,4 @@ async function createUnsignedPreStakeRegistrationBabylonTransactionWithBtcProvid
|
|
|
256
282
|
const unsignedDelegationMsg = await createDelegationMessageWithTransaction(channel, manager, staking, stakingInput.stakingAmountSat, transaction, babylonAddress);
|
|
257
283
|
return { unsignedDelegationMsg, stakingTx: transaction };
|
|
258
284
|
}
|
|
259
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZWdhdGlvbk1lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFieWxvbi9kZWxlZ2F0aW9uTWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFEQSxzQ0F3QkM7QUFRRCw4Q0FjQztBQUVELHdEQTRFQztBQVVELG9DQWNDO0FBRUQsc0NBcUJDO0FBdUJELG9EQUtDO0FBUUQsd0ZBeUJDO0FBRUQsa0pBNEJDO0FBM1REOztHQUVHO0FBQ0gsb0RBQTRCO0FBRTVCLHlDQUFtQztBQUNuQyxrRkFBb0U7QUFFcEUsNERBQThDO0FBQzlDLDhEQUFnRDtBQUVoRCxxREFBeUQ7QUFDekQsaUVBQThFO0FBRzlFLHFEQUF3RDtBQUN4RCxtREFBbUQ7QUFDbkQsdUNBQW1FO0FBSW5FOzs7O0dBSUc7QUFDSCxTQUFTLFdBQVcsQ0FBQyxDQUFTLEVBQUUsUUFBMEI7SUFDeEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDeEMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLFFBQVEsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLFFBQVEsQ0FBQyxDQUFrQjtJQUNsQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzFCLEtBQUssTUFBTSxRQUFRLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFVLEVBQUUsQ0FBQztZQUNsRCxJQUFJLENBQUM7Z0JBQ0gsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxR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Q0FBQyxnQkFBZ0IsRUFDN0IsV0FBVyxFQUNYLGNBQWMsQ0FDZixDQUFDO0lBQ0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQztBQUMzRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBodHRwczovL2dpdGh1Yi5jb20vYmFieWxvbmxhYnMtaW8vYmFieWxvbi9ibG9iL3YxLjk5LjAtc25hcHNob3QuMjUwMjExL3gvYnRjc3Rha2luZy90eXBlcy92YWxpZGF0ZV9wYXJzZWRfbWVzc2FnZS5nb1xuICovXG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IEJJUDMyMiB9IGZyb20gJ2JpcDMyMi1qcyc7XG5pbXBvcnQgKiBhcyB2ZW5kb3IgZnJvbSAnQGJpdGdvLWJldGEvYmFieWxvbmxhYnMtaW8tYnRjLXN0YWtpbmctdHMnO1xuaW1wb3J0ICogYXMgYmFieWxvblByb3RvYnVmIGZyb20gJ0BiYWJ5bG9ubGFicy1pby9iYWJ5bG9uLXByb3RvLXRzJztcbmltcG9ydCAqIGFzIGJpdGNvaW5qc2xpYiBmcm9tICdiaXRjb2luanMtbGliJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgRGVzY3JpcHRvciB9IGZyb20gJ0BiaXRnby93YXNtLW1pbmlzY3JpcHQnO1xuaW1wb3J0IHsgdG9YT25seVB1YmxpY0tleSB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tY29yZSc7XG5pbXBvcnQgeyBzaWduV2l0aEtleSwgdG9XcmFwcGVkUHNidCB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tY29yZS9kZXNjcmlwdG9yJztcblxuaW1wb3J0IHsgQmFieWxvbkRlc2NyaXB0b3JCdWlsZGVyIH0gZnJvbSAnLi9kZXNjcmlwdG9yJztcbmltcG9ydCB7IGNyZWF0ZVN0YWtpbmdNYW5hZ2VyIH0gZnJvbSAnLi9zdGFraW5nTWFuYWdlcic7XG5pbXBvcnQgeyBnZXRTdGFraW5nUGFyYW1zIH0gZnJvbSAnLi9zdGFraW5nUGFyYW1zJztcbmltcG9ydCB7IEJhYnlsb25OZXR3b3JrTGlrZSwgdG9CaXRjb2luSnNOZXR3b3JrIH0gZnJvbSAnLi9uZXR3b3JrJztcblxuZXhwb3J0IHR5cGUgVmFsdWVXaXRoVHlwZVVybDxUPiA9IHsgdHlwZVVybDogc3RyaW5nOyB2YWx1ZTogVCB9O1xuXG4vKipcbiAqIERlY29kZSBhIGhleCBvciBiYXNlNjQgZW5jb2RlZCBzdHJpbmcgYW5kIGNoZWNrIGlmIHRoZSBsZW5ndGggaXMgdmFsaWQuXG4gKiBAcGFyYW0gdlxuICogQHBhcmFtIGVuY29kaW5nXG4gKi9cbmZ1bmN0aW9uIGRlY29kZUNoZWNrKHY6IHN0cmluZywgZW5jb2Rpbmc6ICdoZXgnIHwgJ2Jhc2U2NCcpIHtcbiAgY29uc3QgcmVzdWx0ID0gQnVmZmVyLmZyb20odiwgZW5jb2RpbmcpO1xuICBpZiAocmVzdWx0LnRvU3RyaW5nKGVuY29kaW5nKS5sZW5ndGggIT09IHYubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkICR7ZW5jb2Rpbmd9IGVuY29kaW5nYCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgQnVmZmVyIG9yIHN0cmluZyB0byBhIGJhc2U2NCBlbmNvZGVkIHN0cmluZy5cbiAqIEBwYXJhbSB2XG4gKi9cbmZ1bmN0aW9uIHRvQmFzZTY0KHY6IEJ1ZmZlciB8IHN0cmluZykge1xuICBpZiAodHlwZW9mIHYgPT09ICdzdHJpbmcnKSB7XG4gICAgZm9yIChjb25zdCBlbmNvZGluZyBvZiBbJ2Jhc2U2NCcsICdoZXgnXSBhcyBjb25zdCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHRvQmFzZTY0KGRlY29kZUNoZWNrKHYsIGVuY29kaW5nKSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIHRyeSBuZXh0XG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBiYXNlNjQgb3IgaGV4IGVuY29kaW5nOiAke3Z9YCk7XG4gIH1cblxuICByZXR1cm4gdi50b1N0cmluZygnYmFzZTY0Jyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTaWduZWRQc2J0KFxuICBwc2J0OiBiaXRjb2luanNsaWIuUHNidCxcbiAgZGVzY3JpcHRvcjogRGVzY3JpcHRvcixcbiAgc2lnbmVyczogdXR4b2xpYi5FQ1BhaXJJbnRlcmZhY2VbXSxcbiAgeyBmaW5hbGl6ZSA9IGZhbHNlIH1cbik6IGJpdGNvaW5qc2xpYi5Qc2J0IHtcbiAgY29uc3Qgd3JhcHBlZFBzYnQgPSB0b1dyYXBwZWRQc2J0KHBzYnQudG9CdWZmZXIoKSk7XG4gIGNvbnN0IHNpZ25lZElucHV0cyA9IHBzYnQuZGF0YS5pbnB1dHMuZmxhdE1hcCgoaW5wdXQsIGkpID0+IHtcbiAgICBhc3NlcnQoaW5wdXQud2l0bmVzc1V0eG8pO1xuICAgIGlmIChCdWZmZXIuZnJvbShkZXNjcmlwdG9yLnNjcmlwdFB1YmtleSgpKS5lcXVhbHMoaW5wdXQud2l0bmVzc1V0eG8uc2NyaXB0KSkge1xuICAgICAgd3JhcHBlZFBzYnQudXBkYXRlSW5wdXRXaXRoRGVzY3JpcHRvcihpLCBkZXNjcmlwdG9yKTtcbiAgICAgIGNvbnN0IHNpZ25SZXN1bHRzID0gc2lnbmVycy5tYXAoKHNpZ25lcikgPT4ge1xuICAgICAgICBhc3NlcnQoc2lnbmVyLnByaXZhdGVLZXkpO1xuICAgICAgICByZXR1cm4gd3JhcHBlZFBzYnQuc2lnbldpdGhQcnYoc2lnbmVyLnByaXZhdGVLZXkpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gW1tpLCBzaWduUmVzdWx0c11dO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH0pO1xuICBhc3NlcnQoc2lnbmVkSW5wdXRzLmxlbmd0aCA+IDApO1xuICBpZiAoZmluYWxpemUpIHtcbiAgICB3cmFwcGVkUHNidC5maW5hbGl6ZSgpO1xuICB9XG4gIHJldHVybiBiaXRjb2luanNsaWIuUHNidC5mcm9tQnVmZmVyKEJ1ZmZlci5mcm9tKHdyYXBwZWRQc2J0LnNlcmlhbGl6ZSgpKSk7XG59XG5cbi8qKlxuICogVXRpbGl0eSBtZXRob2QgdG8gd29yayBhcm91bmQgYSBidWcgaW4gYnRjLXN0YWtpbmctdHNcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9iYWJ5bG9ubGFicy1pby9idGMtc3Rha2luZy10cy9pc3N1ZXMvNzFcbiAqIEBwYXJhbSB2XG4gKiBAcGFyYW0gbmV0d29ya1xuICovXG5leHBvcnQgZnVuY3Rpb24gZm9yY2VGaW5hbGl6ZVBzYnQoXG4gIHY6IEJ1ZmZlciB8IHV0eG9saWIuUHNidCB8IGJpdGNvaW5qc2xpYi5Qc2J0LFxuICBuZXR3b3JrOiBCYWJ5bG9uTmV0d29ya0xpa2Vcbik6IGJpdGNvaW5qc2xpYi5Qc2J0IHtcbiAgaWYgKHYgaW5zdGFuY2VvZiB1dHhvbGliLlBzYnQpIHtcbiAgICB2ID0gdi50b0J1ZmZlcigpO1xuICB9XG4gIGlmICh2IGluc3RhbmNlb2YgYml0Y29pbmpzbGliLlBzYnQpIHtcbiAgICB2ID0gdi50b0J1ZmZlcigpO1xuICB9XG4gIGNvbnN0IHBzYnQgPSBiaXRjb2luanNsaWIuUHNidC5mcm9tQnVmZmVyKHYsIHsgbmV0d29yazogdG9CaXRjb2luSnNOZXR3b3JrKG5ldHdvcmspIH0pO1xuICAvLyB0aGlzIG9ubHkgd29ya3Mgd2l0aCBjZXJ0YWluIGJpdGNvaW5qc2xpYiB2ZXJzaW9uc1xuICBwc2J0LmZpbmFsaXplQWxsSW5wdXRzKCk7XG4gIHJldHVybiBwc2J0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QnRjUHJvdmlkZXJGb3JFQ0tleShcbiAgZGVzY3JpcHRvckJ1aWxkZXI6IEJhYnlsb25EZXNjcmlwdG9yQnVpbGRlcixcbiAgc3Rha2VyS2V5OiB1dHhvbGliLkVDUGFpckludGVyZmFjZVxuKTogdmVuZG9yLkJ0Y1Byb3ZpZGVyIHtcbiAgZnVuY3Rpb24gc2lnbldpdGhEZXNjcmlwdG9yKFxuICAgIHBzYnQ6IGJpdGNvaW5qc2xpYi5Qc2J0LFxuICAgIGRlc2NyaXB0b3I6IERlc2NyaXB0b3IsXG4gICAga2V5OiB1dHhvbGliLkVDUGFpckludGVyZmFjZVxuICApOiBiaXRjb2luanNsaWIuUHNidCB7XG4gICAgcHNidCA9IGdldFNpZ25lZFBzYnQocHNidCwgZGVzY3JpcHRvciwgW2tleV0sIHsgZmluYWxpemU6IGZhbHNlIH0pO1xuICAgIC8vIEJVRzogd2UgbmVlZCB0byBibGluZGx5IGZpbmFsaXplIGhlcmUgZXZlbiB0aG91Z2ggd2UgaGF2ZSBub3QgZnVsbHkgc2lnbmVkXG4gICAgcHNidC5maW5hbGl6ZUFsbElucHV0cygpO1xuICAgIHJldHVybiBwc2J0O1xuICB9XG5cbiAgZnVuY3Rpb24gc2lnbkJpcDMyMlNpbXBsZShtZXNzYWdlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIEdldCB0aGUgc2NyaXB0IHB1YmxpYyBrZXkgZnJvbSB0aGUgc3Rha2luZyBkZXNjcmlwdG9yXG4gICAgY29uc3Qgc2NyaXB0UHViS2V5ID0gQnVmZmVyLmZyb20oZGVzY3JpcHRvckJ1aWxkZXIuZ2V0U3Rha2luZ0Rlc2NyaXB0b3IoKS5zY3JpcHRQdWJrZXkoKSk7XG4gICAgY29uc3QgdG9TcGVuZFR4ID0gQklQMzIyLmJ1aWxkVG9TcGVuZFR4KG1lc3NhZ2UsIHNjcmlwdFB1YktleSk7XG5cbiAgICAvLyBHZXQgdGhlIHRvX3NwZW5kIHR4aWRcbiAgICBjb25zdCB0b1NwZW5kVHhJZCA9IHRvU3BlbmRUeC5nZXRJZCgpO1xuXG4gICAgLy8gQ3JlYXRlIFBTQlQgb2JqZWN0IGZvciBjb25zdHJ1Y3RpbmcgdGhlIHRyYW5zYWN0aW9uXG4gICAgY29uc3QgdG9TaWduUHNidCA9IG5ldyBiaXRjb2luanNsaWIuUHNidCgpO1xuICAgIHRvU2lnblBzYnQuc2V0VmVyc2lvbigyKTsgLy8gblZlcnNpb24gPSAwXG4gICAgdG9TaWduUHNidC5zZXRMb2NrdGltZSgwKTsgLy8gbkxvY2tUaW1lID0gMFxuICAgIHRvU2lnblBzYnQuYWRkSW5wdXQoe1xuICAgICAgaGFzaDogdG9TcGVuZFR4SWQsXG4gICAgICBpbmRleDogMCxcbiAgICAgIHNlcXVlbmNlOiBkZXNjcmlwdG9yQnVpbGRlci5zdGFraW5nVGltZUxvY2ssXG4gICAgICB3aXRuZXNzVXR4bzoge1xuICAgICAgICBzY3JpcHQ6IHNjcmlwdFB1YktleSxcbiAgICAgICAgdmFsdWU6IDAsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gU2lnbiB0aGUgUFNCVCB3aXRoIHRoZSBzdGFrZXIga2V5XG4gICAgY29uc3Qgd3JhcHBlZFBzYnQgPSB0b1dyYXBwZWRQc2J0KHRvU2lnblBzYnQudG9CdWZmZXIoKSk7XG4gICAgd3JhcHBlZFBzYnQudXBkYXRlSW5wdXRXaXRoRGVzY3JpcHRvcigwLCBkZXNjcmlwdG9yQnVpbGRlci5nZXRTdGFraW5nRGVzY3JpcHRvcigpKTtcbiAgICBzaWduV2l0aEtleSh3cmFwcGVkUHNidCwgc3Rha2VyS2V5KTtcbiAgICB3cmFwcGVkUHNidC5maW5hbGl6ZSgpO1xuXG4gICAgLy8gRW5jb2RlIHRoZSB3aXRuZXNzIGRhdGEgYW5kIHJldHVyblxuICAgIHJldHVybiBCSVAzMjIuZW5jb2RlV2l0bmVzcyhiaXRjb2luanNsaWIuUHNidC5mcm9tQnVmZmVyKEJ1ZmZlci5mcm9tKHdyYXBwZWRQc2J0LnNlcmlhbGl6ZSgpKSkpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0gbWVzc2FnZVxuICAgICAqIEBwYXJhbSB0eXBlXG4gICAgICogQHJldHVybnMgQmFzZTY0IGVuY29kZWQgc3RyaW5nXG4gICAgICovXG4gICAgYXN5bmMgc2lnbk1lc3NhZ2UobWVzc2FnZTogc3RyaW5nLCB0eXBlOiAnZWNkc2EnIHwgJ2JpcDMyMi1zaW1wbGUnKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlICdlY2RzYSc6XG4gICAgICAgICAgcmV0dXJuIHRvQmFzZTY0KHN0YWtlcktleS5zaWduKEJ1ZmZlci5mcm9tKG1lc3NhZ2UsICdoZXgnKSkpO1xuICAgICAgICBjYXNlICdiaXAzMjItc2ltcGxlJzpcbiAgICAgICAgICByZXR1cm4gdG9CYXNlNjQoc2lnbkJpcDMyMlNpbXBsZShtZXNzYWdlKSk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIHR5cGU6ICR7dHlwZX1gKTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgYXN5bmMgc2lnblBzYnQocHNidEhleDogc3RyaW5nLCBvcHRpb25zOiB2ZW5kb3IuU2lnblBzYnRPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgIGNvbnN0IHBzYnQgPSBiaXRjb2luanNsaWIuUHNidC5mcm9tSGV4KHBzYnRIZXgpO1xuICAgICAgc3dpdGNoIChvcHRpb25zLmFjdGlvbi5uYW1lKSB7XG4gICAgICAgIGNhc2UgJ3NpZ24tYnRjLXNsYXNoaW5nLXRyYW5zYWN0aW9uJzpcbiAgICAgICAgICByZXR1cm4gc2lnbldpdGhEZXNjcmlwdG9yKHBzYnQsIGRlc2NyaXB0b3JCdWlsZGVyLmdldFN0YWtpbmdEZXNjcmlwdG9yKCksIHN0YWtlcktleSkudG9IZXgoKTtcbiAgICAgICAgY2FzZSAnc2lnbi1idGMtdW5ib25kaW5nLXNsYXNoaW5nLXRyYW5zYWN0aW9uJzpcbiAgICAgICAgICByZXR1cm4gc2lnbldpdGhEZXNjcmlwdG9yKHBzYnQsIGRlc2NyaXB0b3JCdWlsZGVyLmdldFVuYm9uZGluZ0Rlc2NyaXB0b3IoKSwgc3Rha2VyS2V5KS50b0hleCgpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBzaWduaW5nIHN0ZXA6ICR7b3B0aW9ucy5hY3Rpb24ubmFtZX1gKTtcbiAgICAgIH1cbiAgICB9LFxuICB9O1xufVxudHlwZSBSZXN1bHQgPSB7XG4gIHVuc2lnbmVkRGVsZWdhdGlvbk1zZzogVmFsdWVXaXRoVHlwZVVybDxiYWJ5bG9uUHJvdG9idWYuYnRjc3Rha2luZ3R4Lk1zZ0NyZWF0ZUJUQ0RlbGVnYXRpb24+O1xuICBzdGFraW5nVHg6IGJpdGNvaW5qc2xpYi5UcmFuc2FjdGlvbjtcbn07XG5cbi8qKlxuICogQHBhcmFtIHN0YWtpbmdLZXkgLSB0aGlzIGlzIHRoZSBzaW5nbGUtc2lnIGtleSB0aGF0IGlzIHVzZWQgZm9yIGNvLXNpZ25pbmcgdGhlIHN0YWtpbmcgb3V0cHV0XG4gKiBAcGFyYW0gY2hhbmdlQWRkcmVzcyAtIHRoaXMgaXMgdW5yZWxhdGVkIHRvIHRoZSBzdGFraW5nIGtleSBhbmQgaXMgdXNlZCBmb3IgdGhlIGNoYW5nZSBvdXRwdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvU3Rha2VySW5mbyhcbiAgc3Rha2luZ0tleTogdXR4b2xpYi5FQ1BhaXJJbnRlcmZhY2UgfCBCdWZmZXIgfCBzdHJpbmcsXG4gIGNoYW5nZUFkZHJlc3M6IHN0cmluZ1xuKTogdmVuZG9yLlN0YWtlckluZm8ge1xuICBpZiAodHlwZW9mIHN0YWtpbmdLZXkgPT09ICdvYmplY3QnICYmICdwdWJsaWNLZXknIGluIHN0YWtpbmdLZXkpIHtcbiAgICBzdGFraW5nS2V5ID0gc3Rha2luZ0tleS5wdWJsaWNLZXk7XG4gIH1cbiAgaWYgKHR5cGVvZiBzdGFraW5nS2V5ID09PSAnc3RyaW5nJykge1xuICAgIHN0YWtpbmdLZXkgPSBCdWZmZXIuZnJvbShzdGFraW5nS2V5LCAnaGV4Jyk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBwdWJsaWNLZXlOb0Nvb3JkSGV4OiB0b1hPbmx5UHVibGljS2V5KHN0YWtpbmdLZXkpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICBhZGRyZXNzOiBjaGFuZ2VBZGRyZXNzLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3Rha2luZyhcbiAgbmV0d29yazogQmFieWxvbk5ldHdvcmtMaWtlLFxuICBibG9ja0hlaWdodDogbnVtYmVyLFxuICBzdGFrZXJCdGNJbmZvOiB2ZW5kb3IuU3Rha2VySW5mbyxcbiAgc3Rha2luZ0lucHV0OiB2ZW5kb3IuU3Rha2luZ0lucHV0cyxcbiAgdmVyc2lvbmVkUGFyYW1zOiB2ZW5kb3IuVmVyc2lvbmVkU3Rha2luZ1BhcmFtc1tdID0gZ2V0U3Rha2luZ1BhcmFtcyhuZXR3b3JrKVxuKTogdmVuZG9yLlN0YWtpbmcge1xuICBpZiAoYmxvY2tIZWlnaHQgPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0JhYnlsb24gQlRDIHRpcCBoZWlnaHQgY2Fubm90IGJlIDAnKTtcbiAgfVxuXG4gIC8vIEdldCB0aGUgQmFieWxvbiBwYXJhbXMgYmFzZWQgb24gdGhlIEJUQyB0aXAgaGVpZ2h0IGZyb20gQmFieWxvbiBjaGFpblxuICBjb25zdCBwYXJhbXMgPSB2ZW5kb3IuZ2V0QmFieWxvblBhcmFtQnlCdGNIZWlnaHQoYmxvY2tIZWlnaHQsIHZlcnNpb25lZFBhcmFtcyk7XG5cbiAgcmV0dXJuIG5ldyB2ZW5kb3IuU3Rha2luZyhcbiAgICB0b0JpdGNvaW5Kc05ldHdvcmsobmV0d29yayksXG4gICAgc3Rha2VyQnRjSW5mbyxcbiAgICBwYXJhbXMsXG4gICAgc3Rha2luZ0lucHV0LmZpbmFsaXR5UHJvdmlkZXJQa3NOb0Nvb3JkSGV4LFxuICAgIHN0YWtpbmdJbnB1dC5zdGFraW5nVGltZWxvY2tcbiAgKTtcbn1cblxudHlwZSBUcmFuc2FjdGlvbkxpa2UgPVxuICB8IGJpdGNvaW5qc2xpYi5Qc2J0XG4gIHwgYml0Y29pbmpzbGliLlRyYW5zYWN0aW9uXG4gIHwgdXR4b2xpYi5UcmFuc2FjdGlvblxuICB8IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPGJpZ2ludCB8IG51bWJlcj5cbiAgfCB1dHhvbGliLlBzYnRcbiAgfCB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0O1xuXG5mdW5jdGlvbiB0b1N0YWtpbmdUcmFuc2FjdGlvbkZyb21Qc2J0KFxuICBwc2J0OiBiaXRjb2luanNsaWIuUHNidCB8IHV0eG9saWIuUHNidCB8IHV0eG9saWIuYml0Z28uVXR4b1BzYnRcbik6IGJpdGNvaW5qc2xpYi5UcmFuc2FjdGlvbiB7XG4gIGlmICghKHBzYnQgaW5zdGFuY2VvZiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0KSkge1xuICAgIHBzYnQgPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVBzYnRGcm9tQnVmZmVyKHBzYnQudG9CdWZmZXIoKSwgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luKTtcbiAgfVxuICBpZiAocHNidCBpbnN0YW5jZW9mIHV0eG9saWIuYml0Z28uVXR4b1BzYnQpIHtcbiAgICAvLyBvbmx5IHV0eG9saWIuYml0Z28uVXR4b1BzYnQgaGFzIHRoZSBnZXRVbnNpZ25lZFR4IG1ldGhvZFxuICAgIHJldHVybiBiaXRjb2luanNsaWIuVHJhbnNhY3Rpb24uZnJvbUhleChwc2J0LmdldFVuc2lnbmVkVHgoKS50b0hleCgpKTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoJ2lsbGVnYWwgc3RhdGUnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvU3Rha2luZ1RyYW5zYWN0aW9uKHR4OiBUcmFuc2FjdGlvbkxpa2UpOiBiaXRjb2luanNsaWIuVHJhbnNhY3Rpb24ge1xuICBpZiAodHggaW5zdGFuY2VvZiBiaXRjb2luanNsaWIuUHNidCB8fCB0eCBpbnN0YW5jZW9mIHV0eG9saWIuUHNidCkge1xuICAgIHJldHVybiB0b1N0YWtpbmdUcmFuc2FjdGlvbkZyb21Qc2J0KHR4KTtcbiAgfVxuICByZXR1cm4gYml0Y29pbmpzbGliLlRyYW5zYWN0aW9uLmZyb21IZXgodHgudG9IZXgoKSk7XG59XG5cbi8qXG4gKiBUaGlzIGlzIG1vc3RseSBsaWZ0ZWQgZnJvbVxuICogaHR0cHM6Ly9naXRodWIuY29tL2JhYnlsb25sYWJzLWlvL2J0Yy1zdGFraW5nLXRzL2Jsb2IvdjAuNC4wLXJjLjIvc3JjL3N0YWtpbmcvbWFuYWdlci50cyNMMTAwLUwxNzJcbiAqXG4gKiBUaGUgZGlmZmVyZW5jZSBpcyB0aGF0IGhlcmUgd2UgYXJlIHJldHVybmluZyBhbiBfdW5zaWduZWRfIGRlbGVnYXRpb24gbWVzc2FnZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZURlbGVnYXRpb25NZXNzYWdlV2l0aFRyYW5zYWN0aW9uKFxuICBjaGFubmVsOiAnZGVsZWdhdGlvbjpjcmVhdGUnIHwgJ2RlbGVnYXRpb246cmVnaXN0ZXInLFxuICBtYW5hZ2VyOiB2ZW5kb3IuQmFieWxvbkJ0Y1N0YWtpbmdNYW5hZ2VyLFxuICBzdGFraW5nOiB2ZW5kb3IuU3Rha2luZyxcbiAgc3Rha2luZ0Ftb3VudFNhdDogbnVtYmVyLFxuICB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25MaWtlLFxuICBiYWJ5bG9uQWRkcmVzczogc3RyaW5nXG4pOiBQcm9taXNlPFZhbHVlV2l0aFR5cGVVcmw8YmFieWxvblByb3RvYnVmLmJ0Y3N0YWtpbmd0eC5Nc2dDcmVhdGVCVENEZWxlZ2F0aW9uPj4ge1xuICBpZiAoIXZlbmRvci5pc1ZhbGlkQmFieWxvbkFkZHJlc3MoYmFieWxvbkFkZHJlc3MpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIEJhYnlsb24gYWRkcmVzcycpO1xuICB9XG4gIC8vIENyZWF0ZSBkZWxlZ2F0aW9uIG1lc3NhZ2Ugd2l0aG91dCBpbmNsdWRpbmcgaW5jbHVzaW9uIHByb29mXG4gIHJldHVybiBtYW5hZ2VyLmNyZWF0ZUJ0Y0RlbGVnYXRpb25Nc2coXG4gICAgY2hhbm5lbCxcbiAgICBzdGFraW5nLFxuICAgIHtcbiAgICAgIHN0YWtpbmdUaW1lbG9jazogc3Rha2luZy5zdGFraW5nVGltZWxvY2ssXG4gICAgICBmaW5hbGl0eVByb3ZpZGVyUGtzTm9Db29yZEhleDogc3Rha2luZy5maW5hbGl0eVByb3ZpZGVyUGtzTm9Db29yZEhleCxcbiAgICAgIHN0YWtpbmdBbW91bnRTYXQsXG4gICAgfSxcbiAgICB0b1N0YWtpbmdUcmFuc2FjdGlvbih0cmFuc2FjdGlvbiksXG4gICAgYmFieWxvbkFkZHJlc3MsXG4gICAgc3Rha2luZy5zdGFrZXJJbmZvLFxuICAgIHN0YWtpbmcucGFyYW1zXG4gICk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVVbnNpZ25lZFByZVN0YWtlUmVnaXN0cmF0aW9uQmFieWxvblRyYW5zYWN0aW9uV2l0aEJ0Y1Byb3ZpZGVyKFxuICBidGNQcm92aWRlcjogdmVuZG9yLkJ0Y1Byb3ZpZGVyLFxuICBuZXR3b3JrOiBiaXRjb2luanNsaWIuTmV0d29yayxcbiAgc3Rha2VyQnRjSW5mbzogdmVuZG9yLlN0YWtlckluZm8sXG4gIHN0YWtpbmdJbnB1dDogdmVuZG9yLlN0YWtpbmdJbnB1dHMsXG4gIGJhYnlsb25CdGNUaXBIZWlnaHQ6IG51bWJlcixcbiAgaW5wdXRVVFhPczogdmVuZG9yLlVUWE9bXSxcbiAgZmVlUmF0ZVNhdEI6IG51bWJlcixcbiAgYmFieWxvbkFkZHJlc3M6IHN0cmluZyxcbiAgY2hhbm5lbDogJ2RlbGVnYXRpb246Y3JlYXRlJyB8ICdkZWxlZ2F0aW9uOnJlZ2lzdGVyJyxcbiAgc3Rha2luZ1BhcmFtczogdmVuZG9yLlZlcnNpb25lZFN0YWtpbmdQYXJhbXNbXSA9IGdldFN0YWtpbmdQYXJhbXMobmV0d29yaylcbik6IFByb21pc2U8UmVzdWx0PiB7XG4gIGlmIChpbnB1dFVUWE9zLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignTm8gaW5wdXQgVVRYT3MgcHJvdmlkZWQnKTtcbiAgfVxuICBjb25zdCBtYW5hZ2VyID0gY3JlYXRlU3Rha2luZ01hbmFnZXIobmV0d29yaywgYnRjUHJvdmlkZXIsIHN0YWtpbmdQYXJhbXMpO1xuICBjb25zdCBzdGFraW5nID0gY3JlYXRlU3Rha2luZyhuZXR3b3JrLCBiYWJ5bG9uQnRjVGlwSGVpZ2h0LCBzdGFrZXJCdGNJbmZvLCBzdGFraW5nSW5wdXQsIHN0YWtpbmdQYXJhbXMpO1xuICAvLyBDcmVhdGUgdW5zaWduZWQgc3Rha2luZyB0cmFuc2FjdGlvblxuICBjb25zdCB7IHRyYW5zYWN0aW9uIH0gPSBzdGFraW5nLmNyZWF0ZVN0YWtpbmdUcmFuc2FjdGlvbihzdGFraW5nSW5wdXQuc3Rha2luZ0Ftb3VudFNhdCwgaW5wdXRVVFhPcywgZmVlUmF0ZVNhdEIpO1xuICBjb25zdCB1bnNpZ25lZERlbGVnYXRpb25Nc2cgPSBhd2FpdCBjcmVhdGVEZWxlZ2F0aW9uTWVzc2FnZVdpdGhUcmFuc2FjdGlvbihcbiAgICBjaGFubmVsLFxuICAgIG1hbmFnZXIsXG4gICAgc3Rha2luZyxcbiAgICBzdGFraW5nSW5wdXQuc3Rha2luZ0Ftb3VudFNhdCxcbiAgICB0cmFuc2FjdGlvbixcbiAgICBiYWJ5bG9uQWRkcmVzc1xuICApO1xuICByZXR1cm4geyB1bnNpZ25lZERlbGVnYXRpb25Nc2csIHN0YWtpbmdUeDogdHJhbnNhY3Rpb24gfTtcbn1cbiJdfQ==
|
|
285
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZWdhdGlvbk1lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFieWxvbi9kZWxlZ2F0aW9uTWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFEQSxzQ0F3QkM7QUFRRCw4Q0FjQztBQUVELHdEQW9GQztBQVVELG9DQWNDO0FBRUQsc0NBcUJDO0FBdUJELG9EQUtDO0FBd0JELHdGQWlDQztBQUVELGtKQTRCQztBQTNWRDs7R0FFRztBQUNILG9EQUE0QjtBQUU1Qix5Q0FBbUM7QUFDbkMsa0ZBQW9FO0FBRXBFLDREQUE4QztBQUM5Qyw4REFBZ0Q7QUFFaEQscURBQXlEO0FBQ3pELGlFQUE4RTtBQUc5RSxxREFBd0Q7QUFDeEQsbURBQW1EO0FBQ25ELHVDQUFtRTtBQUluRTs7OztHQUlHO0FBQ0gsU0FBUyxXQUFXLENBQUMsQ0FBUyxFQUFFLFFBQTBCO0lBQ3hELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xELE1BQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxRQUFRLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxRQUFRLENBQUMsQ0FBa0I7SUFDbEMsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUMxQixLQUFLLE1BQU0sUUFBUSxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBVSxFQUFFLENBQUM7WUFDbEQsSUFBSSxDQUFDO2dCQUNILE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUs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LEVBQUUsQ0FBQztRQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLElBQUEscUNBQW9CLEVBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUMxRSxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDeEcsc0NBQXNDO0lBQ3RDLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUMsd0JBQXdCLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNqSCxNQUFNLHFCQUFxQixHQUFHLE1BQU0sc0NBQXNDLENBQ3hFLE9BQU8sRUFDUCxPQUFPLEVBQ1AsT0FBTyxFQUNQLFlBQVksQ0FBQyxnQkFBZ0IsRUFDN0IsV0FBVyxFQUNYLGNBQWMsQ0FDZixDQUFDO0lBQ0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQztBQUMzRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBodHRwczovL2dpdGh1Yi5jb20vYmFieWxvbmxhYnMtaW8vYmFieWxvbi9ibG9iL3YxLjk5LjAtc25hcHNob3QuMjUwMjExL3gvYnRjc3Rha2luZy90eXBlcy92YWxpZGF0ZV9wYXJzZWRfbWVzc2FnZS5nb1xuICovXG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IEJJUDMyMiB9IGZyb20gJ2JpcDMyMi1qcyc7XG5pbXBvcnQgKiBhcyB2ZW5kb3IgZnJvbSAnQGJpdGdvLWJldGEvYmFieWxvbmxhYnMtaW8tYnRjLXN0YWtpbmctdHMnO1xuaW1wb3J0ICogYXMgYmFieWxvblByb3RvYnVmIGZyb20gJ0BiYWJ5bG9ubGFicy1pby9iYWJ5bG9uLXByb3RvLXRzJztcbmltcG9ydCAqIGFzIGJpdGNvaW5qc2xpYiBmcm9tICdiaXRjb2luanMtbGliJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgRGVzY3JpcHRvciB9IGZyb20gJ0BiaXRnby93YXNtLW1pbmlzY3JpcHQnO1xuaW1wb3J0IHsgdG9YT25seVB1YmxpY0tleSB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tY29yZSc7XG5pbXBvcnQgeyBzaWduV2l0aEtleSwgdG9XcmFwcGVkUHNidCB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tY29yZS9kZXNjcmlwdG9yJztcblxuaW1wb3J0IHsgQmFieWxvbkRlc2NyaXB0b3JCdWlsZGVyIH0gZnJvbSAnLi9kZXNjcmlwdG9yJztcbmltcG9ydCB7IGNyZWF0ZVN0YWtpbmdNYW5hZ2VyIH0gZnJvbSAnLi9zdGFraW5nTWFuYWdlcic7XG5pbXBvcnQgeyBnZXRTdGFraW5nUGFyYW1zIH0gZnJvbSAnLi9zdGFraW5nUGFyYW1zJztcbmltcG9ydCB7IEJhYnlsb25OZXR3b3JrTGlrZSwgdG9CaXRjb2luSnNOZXR3b3JrIH0gZnJvbSAnLi9uZXR3b3JrJztcblxuZXhwb3J0IHR5cGUgVmFsdWVXaXRoVHlwZVVybDxUPiA9IHsgdHlwZVVybDogc3RyaW5nOyB2YWx1ZTogVCB9O1xuXG4vKipcbiAqIERlY29kZSBhIGhleCBvciBiYXNlNjQgZW5jb2RlZCBzdHJpbmcgYW5kIGNoZWNrIGlmIHRoZSBsZW5ndGggaXMgdmFsaWQuXG4gKiBAcGFyYW0gdlxuICogQHBhcmFtIGVuY29kaW5nXG4gKi9cbmZ1bmN0aW9uIGRlY29kZUNoZWNrKHY6IHN0cmluZywgZW5jb2Rpbmc6ICdoZXgnIHwgJ2Jhc2U2NCcpIHtcbiAgY29uc3QgcmVzdWx0ID0gQnVmZmVyLmZyb20odiwgZW5jb2RpbmcpO1xuICBpZiAocmVzdWx0LnRvU3RyaW5nKGVuY29kaW5nKS5sZW5ndGggIT09IHYubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkICR7ZW5jb2Rpbmd9IGVuY29kaW5nYCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgQnVmZmVyIG9yIHN0cmluZyB0byBhIGJhc2U2NCBlbmNvZGVkIHN0cmluZy5cbiAqIEBwYXJhbSB2XG4gKi9cbmZ1bmN0aW9uIHRvQmFzZTY0KHY6IEJ1ZmZlciB8IHN0cmluZykge1xuICBpZiAodHlwZW9mIHYgPT09ICdzdHJpbmcnKSB7XG4gICAgZm9yIChjb25zdCBlbmNvZGluZyBvZiBbJ2Jhc2U2NCcsICdoZXgnXSBhcyBjb25zdCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHRvQmFzZTY0KGRlY29kZUNoZWNrKHYsIGVuY29kaW5nKSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIHRyeSBuZXh0XG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBiYXNlNjQgb3IgaGV4IGVuY29kaW5nOiAke3Z9YCk7XG4gIH1cblxuICByZXR1cm4gdi50b1N0cmluZygnYmFzZTY0Jyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTaWduZWRQc2J0KFxuICBwc2J0OiBiaXRjb2luanNsaWIuUHNidCxcbiAgZGVzY3JpcHRvcjogRGVzY3JpcHRvcixcbiAgc2lnbmVyczogdXR4b2xpYi5FQ1BhaXJJbnRlcmZhY2VbXSxcbiAgeyBmaW5hbGl6ZSA9IGZhbHNlIH1cbik6IGJpdGNvaW5qc2xpYi5Qc2J0IHtcbiAgY29uc3Qgd3JhcHBlZFBzYnQgPSB0b1dyYXBwZWRQc2J0KHBzYnQudG9CdWZmZXIoKSk7XG4gIGNvbnN0IHNpZ25lZElucHV0cyA9IHBzYnQuZGF0YS5pbnB1dHMuZmxhdE1hcCgoaW5wdXQsIGkpID0+IHtcbiAgICBhc3NlcnQoaW5wdXQud2l0bmVzc1V0eG8pO1xuICAgIGlmIChCdWZmZXIuZnJvbShkZXNjcmlwdG9yLnNjcmlwdFB1YmtleSgpKS5lcXVhbHMoaW5wdXQud2l0bmVzc1V0eG8uc2NyaXB0KSkge1xuICAgICAgd3JhcHBlZFBzYnQudXBkYXRlSW5wdXRXaXRoRGVzY3JpcHRvcihpLCBkZXNjcmlwdG9yKTtcbiAgICAgIGNvbnN0IHNpZ25SZXN1bHRzID0gc2lnbmVycy5tYXAoKHNpZ25lcikgPT4ge1xuICAgICAgICBhc3NlcnQoc2lnbmVyLnByaXZhdGVLZXkpO1xuICAgICAgICByZXR1cm4gd3JhcHBlZFBzYnQuc2lnbldpdGhQcnYoc2lnbmVyLnByaXZhdGVLZXkpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gW1tpLCBzaWduUmVzdWx0c11dO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH0pO1xuICBhc3NlcnQoc2lnbmVkSW5wdXRzLmxlbmd0aCA+IDApO1xuICBpZiAoZmluYWxpemUpIHtcbiAgICB3cmFwcGVkUHNidC5maW5hbGl6ZSgpO1xuICB9XG4gIHJldHVybiBiaXRjb2luanNsaWIuUHNidC5mcm9tQnVmZmVyKEJ1ZmZlci5mcm9tKHdyYXBwZWRQc2J0LnNlcmlhbGl6ZSgpKSk7XG59XG5cbi8qKlxuICogVXRpbGl0eSBtZXRob2QgdG8gd29yayBhcm91bmQgYSBidWcgaW4gYnRjLXN0YWtpbmctdHNcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9iYWJ5bG9ubGFicy1pby9idGMtc3Rha2luZy10cy9pc3N1ZXMvNzFcbiAqIEBwYXJhbSB2XG4gKiBAcGFyYW0gbmV0d29ya1xuICovXG5leHBvcnQgZnVuY3Rpb24gZm9yY2VGaW5hbGl6ZVBzYnQoXG4gIHY6IEJ1ZmZlciB8IHV0eG9saWIuUHNidCB8IGJpdGNvaW5qc2xpYi5Qc2J0LFxuICBuZXR3b3JrOiBCYWJ5bG9uTmV0d29ya0xpa2Vcbik6IGJpdGNvaW5qc2xpYi5Qc2J0IHtcbiAgaWYgKHYgaW5zdGFuY2VvZiB1dHhvbGliLlBzYnQpIHtcbiAgICB2ID0gdi50b0J1ZmZlcigpO1xuICB9XG4gIGlmICh2IGluc3RhbmNlb2YgYml0Y29pbmpzbGliLlBzYnQpIHtcbiAgICB2ID0gdi50b0J1ZmZlcigpO1xuICB9XG4gIGNvbnN0IHBzYnQgPSBiaXRjb2luanNsaWIuUHNidC5mcm9tQnVmZmVyKHYsIHsgbmV0d29yazogdG9CaXRjb2luSnNOZXR3b3JrKG5ldHdvcmspIH0pO1xuICAvLyB0aGlzIG9ubHkgd29ya3Mgd2l0aCBjZXJ0YWluIGJpdGNvaW5qc2xpYiB2ZXJzaW9uc1xuICBwc2J0LmZpbmFsaXplQWxsSW5wdXRzKCk7XG4gIHJldHVybiBwc2J0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QnRjUHJvdmlkZXJGb3JFQ0tleShcbiAgZGVzY3JpcHRvckJ1aWxkZXI6IEJhYnlsb25EZXNjcmlwdG9yQnVpbGRlcixcbiAgc3Rha2VyS2V5OiB1dHhvbGliLkVDUGFpckludGVyZmFjZVxuKTogdmVuZG9yLkJ0Y1Byb3ZpZGVyIHtcbiAgZnVuY3Rpb24gc2lnbldpdGhEZXNjcmlwdG9yKFxuICAgIHBzYnQ6IGJpdGNvaW5qc2xpYi5Qc2J0LFxuICAgIGRlc2NyaXB0b3I6IERlc2NyaXB0b3IsXG4gICAga2V5OiB1dHhvbGliLkVDUGFpckludGVyZmFjZVxuICApOiBiaXRjb2luanNsaWIuUHNidCB7XG4gICAgcHNidCA9IGdldFNpZ25lZFBzYnQocHNidCwgZGVzY3JpcHRvciwgW2tleV0sIHsgZmluYWxpemU6IGZhbHNlIH0pO1xuICAgIC8vIEJVRzogd2UgbmVlZCB0byBibGluZGx5IGZpbmFsaXplIGhlcmUgZXZlbiB0aG91Z2ggd2UgaGF2ZSBub3QgZnVsbHkgc2lnbmVkXG4gICAgcHNidC5maW5hbGl6ZUFsbElucHV0cygpO1xuICAgIHJldHVybiBwc2J0O1xuICB9XG5cbiAgZnVuY3Rpb24gc2lnbkJpcDMyMlNpbXBsZShtZXNzYWdlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIEdldCB0aGUgc2NyaXB0IHB1YmxpYyBrZXkgZnJvbSB0aGUgc3Rha2luZyBkZXNjcmlwdG9yXG4gICAgY29uc3Qgc2NyaXB0UHViS2V5ID0gQnVmZmVyLmZyb20oZGVzY3JpcHRvckJ1aWxkZXIuZ2V0U3Rha2luZ0Rlc2NyaXB0b3IoKS5zY3JpcHRQdWJrZXkoKSk7XG4gICAgY29uc3QgdG9TcGVuZFR4ID0gQklQMzIyLmJ1aWxkVG9TcGVuZFR4KG1lc3NhZ2UsIHNjcmlwdFB1YktleSk7XG5cbiAgICAvLyBHZXQgdGhlIHRvX3NwZW5kIHR4aWRcbiAgICBjb25zdCB0b1NwZW5kVHhJZCA9IHRvU3BlbmRUeC5nZXRJZCgpO1xuXG4gICAgLy8gQ3JlYXRlIFBTQlQgb2JqZWN0IGZvciBjb25zdHJ1Y3RpbmcgdGhlIHRyYW5zYWN0aW9uXG4gICAgY29uc3QgdG9TaWduUHNidCA9IG5ldyBiaXRjb2luanNsaWIuUHNidCgpO1xuICAgIHRvU2lnblBzYnQuc2V0VmVyc2lvbigyKTsgLy8gblZlcnNpb24gPSAwXG4gICAgdG9TaWduUHNidC5zZXRMb2NrdGltZSgwKTsgLy8gbkxvY2tUaW1lID0gMFxuICAgIHRvU2lnblBzYnQuYWRkSW5wdXQoe1xuICAgICAgaGFzaDogdG9TcGVuZFR4SWQsXG4gICAgICBpbmRleDogMCxcbiAgICAgIHNlcXVlbmNlOiBkZXNjcmlwdG9yQnVpbGRlci5zdGFraW5nVGltZUxvY2ssXG4gICAgICB3aXRuZXNzVXR4bzoge1xuICAgICAgICBzY3JpcHQ6IHNjcmlwdFB1YktleSxcbiAgICAgICAgdmFsdWU6IDAsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gU2lnbiB0aGUgUFNCVCB3aXRoIHRoZSBzdGFrZXIga2V5XG4gICAgY29uc3Qgd3JhcHBlZFBzYnQgPSB0b1dyYXBwZWRQc2J0KHRvU2lnblBzYnQudG9CdWZmZXIoKSk7XG4gICAgd3JhcHBlZFBzYnQudXBkYXRlSW5wdXRXaXRoRGVzY3JpcHRvcigwLCBkZXNjcmlwdG9yQnVpbGRlci5nZXRTdGFraW5nRGVzY3JpcHRvcigpKTtcbiAgICBzaWduV2l0aEtleSh3cmFwcGVkUHNidCwgc3Rha2VyS2V5KTtcbiAgICB3cmFwcGVkUHNidC5maW5hbGl6ZSgpO1xuXG4gICAgLy8gRW5jb2RlIHRoZSB3aXRuZXNzIGRhdGEgYW5kIHJldHVyblxuICAgIHJldHVybiBCSVAzMjIuZW5jb2RlV2l0bmVzcyhiaXRjb2luanNsaWIuUHNidC5mcm9tQnVmZmVyKEJ1ZmZlci5mcm9tKHdyYXBwZWRQc2J0LnNlcmlhbGl6ZSgpKSkpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0gbWVzc2FnZVxuICAgICAqIEBwYXJhbSB0eXBlXG4gICAgICogQHJldHVybnMgQmFzZTY0IGVuY29kZWQgc3RyaW5nXG4gICAgICovXG4gICAgYXN5bmMgc2lnbk1lc3NhZ2UobWVzc2FnZTogc3RyaW5nLCB0eXBlOiAnZWNkc2EnIHwgJ2JpcDMyMi1zaW1wbGUnKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlICdlY2RzYSc6XG4gICAgICAgICAgcmV0dXJuIHRvQmFzZTY0KHN0YWtlcktleS5zaWduKEJ1ZmZlci5mcm9tKG1lc3NhZ2UsICdoZXgnKSkpO1xuICAgICAgICBjYXNlICdiaXAzMjItc2ltcGxlJzpcbiAgICAgICAgICByZXR1cm4gdG9CYXNlNjQoc2lnbkJpcDMyMlNpbXBsZShtZXNzYWdlKSk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIHR5cGU6ICR7dHlwZX1gKTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgYXN5bmMgc2lnblBzYnQocHNidEhleDogc3RyaW5nLCBvcHRpb25zOiB2ZW5kb3IuU2lnblBzYnRPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgIGNvbnN0IHBzYnQgPSBiaXRjb2luanNsaWIuUHNidC5mcm9tSGV4KHBzYnRIZXgpO1xuICAgICAgc3dpdGNoIChvcHRpb25zLmFjdGlvbi5uYW1lKSB7XG4gICAgICAgIGNhc2UgJ3NpZ24tYnRjLXNsYXNoaW5nLXRyYW5zYWN0aW9uJzpcbiAgICAgICAgICByZXR1cm4gc2lnbldpdGhEZXNjcmlwdG9yKHBzYnQsIGRlc2NyaXB0b3JCdWlsZGVyLmdldFN0YWtpbmdEZXNjcmlwdG9yKCksIHN0YWtlcktleSkudG9IZXgoKTtcbiAgICAgICAgY2FzZSAnc2lnbi1idGMtdW5ib25kaW5nLXNsYXNoaW5nLXRyYW5zYWN0aW9uJzpcbiAgICAgICAgICByZXR1cm4gc2lnbldpdGhEZXNjcmlwdG9yKHBzYnQsIGRlc2NyaXB0b3JCdWlsZGVyLmdldFVuYm9uZGluZ0Rlc2NyaXB0b3IoKSwgc3Rha2VyS2V5KS50b0hleCgpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBzaWduaW5nIHN0ZXA6ICR7b3B0aW9ucy5hY3Rpb24ubmFtZX1gKTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBvbmx5IHVzZWQgYnkgYnRjLXN0YWtpbmctdHMgdG8gY3JlYXRlIGEgc3Rha2luZyBleHBhbnNpb24gcmVnaXN0cmF0aW9uXG4gICAgICogdHJhbnNhY3Rpb24sIHdoaWNoIHdlIGRvIG5vdCBjdXJyZW50bHkgc3VwcG9ydC5cbiAgICAgKi9cbiAgICBhc3luYyBnZXRUcmFuc2FjdGlvbkhleCh0eGlkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBvcGVyYXRpb24gZ2V0VHJhbnNhY3Rpb25IZXggKHR4aWQ9JHt0eGlkfSlgKTtcbiAgICB9LFxuICB9O1xufVxudHlwZSBSZXN1bHQgPSB7XG4gIHVuc2lnbmVkRGVsZWdhdGlvbk1zZzogVmFsdWVXaXRoVHlwZVVybDxiYWJ5bG9uUHJvdG9idWYuYnRjc3Rha2luZ3R4Lk1zZ0NyZWF0ZUJUQ0RlbGVnYXRpb24+O1xuICBzdGFraW5nVHg6IGJpdGNvaW5qc2xpYi5UcmFuc2FjdGlvbjtcbn07XG5cbi8qKlxuICogQHBhcmFtIHN0YWtpbmdLZXkgLSB0aGlzIGlzIHRoZSBzaW5nbGUtc2lnIGtleSB0aGF0IGlzIHVzZWQgZm9yIGNvLXNpZ25pbmcgdGhlIHN0YWtpbmcgb3V0cHV0XG4gKiBAcGFyYW0gY2hhbmdlQWRkcmVzcyAtIHRoaXMgaXMgdW5yZWxhdGVkIHRvIHRoZSBzdGFraW5nIGtleSBhbmQgaXMgdXNlZCBmb3IgdGhlIGNoYW5nZSBvdXRwdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvU3Rha2VySW5mbyhcbiAgc3Rha2luZ0tleTogdXR4b2xpYi5FQ1BhaXJJbnRlcmZhY2UgfCBCdWZmZXIgfCBzdHJpbmcsXG4gIGNoYW5nZUFkZHJlc3M6IHN0cmluZ1xuKTogdmVuZG9yLlN0YWtlckluZm8ge1xuICBpZiAodHlwZW9mIHN0YWtpbmdLZXkgPT09ICdvYmplY3QnICYmICdwdWJsaWNLZXknIGluIHN0YWtpbmdLZXkpIHtcbiAgICBzdGFraW5nS2V5ID0gc3Rha2luZ0tleS5wdWJsaWNLZXk7XG4gIH1cbiAgaWYgKHR5cGVvZiBzdGFraW5nS2V5ID09PSAnc3RyaW5nJykge1xuICAgIHN0YWtpbmdLZXkgPSBCdWZmZXIuZnJvbShzdGFraW5nS2V5LCAnaGV4Jyk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBwdWJsaWNLZXlOb0Nvb3JkSGV4OiB0b1hPbmx5UHVibGljS2V5KHN0YWtpbmdLZXkpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICBhZGRyZXNzOiBjaGFuZ2VBZGRyZXNzLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3Rha2luZyhcbiAgbmV0d29yazogQmFieWxvbk5ldHdvcmtMaWtlLFxuICBibG9ja0hlaWdodDogbnVtYmVyLFxuICBzdGFrZXJCdGNJbmZvOiB2ZW5kb3IuU3Rha2VySW5mbyxcbiAgc3Rha2luZ0lucHV0OiB2ZW5kb3IuU3Rha2luZ0lucHV0cyxcbiAgdmVyc2lvbmVkUGFyYW1zOiB2ZW5kb3IuVmVyc2lvbmVkU3Rha2luZ1BhcmFtc1tdID0gZ2V0U3Rha2luZ1BhcmFtcyhuZXR3b3JrKVxuKTogdmVuZG9yLlN0YWtpbmcge1xuICBpZiAoYmxvY2tIZWlnaHQgPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0JhYnlsb24gQlRDIHRpcCBoZWlnaHQgY2Fubm90IGJlIDAnKTtcbiAgfVxuXG4gIC8vIEdldCB0aGUgQmFieWxvbiBwYXJhbXMgYmFzZWQgb24gdGhlIEJUQyB0aXAgaGVpZ2h0IGZyb20gQmFieWxvbiBjaGFpblxuICBjb25zdCBwYXJhbXMgPSB2ZW5kb3IuZ2V0QmFieWxvblBhcmFtQnlCdGNIZWlnaHQoYmxvY2tIZWlnaHQsIHZlcnNpb25lZFBhcmFtcyk7XG5cbiAgcmV0dXJuIG5ldyB2ZW5kb3IuU3Rha2luZyhcbiAgICB0b0JpdGNvaW5Kc05ldHdvcmsobmV0d29yayksXG4gICAgc3Rha2VyQnRjSW5mbyxcbiAgICBwYXJhbXMsXG4gICAgc3Rha2luZ0lucHV0LmZpbmFsaXR5UHJvdmlkZXJQa3NOb0Nvb3JkSGV4LFxuICAgIHN0YWtpbmdJbnB1dC5zdGFraW5nVGltZWxvY2tcbiAgKTtcbn1cblxudHlwZSBUcmFuc2FjdGlvbkxpa2UgPVxuICB8IGJpdGNvaW5qc2xpYi5Qc2J0XG4gIHwgYml0Y29pbmpzbGliLlRyYW5zYWN0aW9uXG4gIHwgdXR4b2xpYi5UcmFuc2FjdGlvblxuICB8IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPGJpZ2ludCB8IG51bWJlcj5cbiAgfCB1dHhvbGliLlBzYnRcbiAgfCB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0O1xuXG5mdW5jdGlvbiB0b1N0YWtpbmdUcmFuc2FjdGlvbkZyb21Qc2J0KFxuICBwc2J0OiBiaXRjb2luanNsaWIuUHNidCB8IHV0eG9saWIuUHNidCB8IHV0eG9saWIuYml0Z28uVXR4b1BzYnRcbik6IGJpdGNvaW5qc2xpYi5UcmFuc2FjdGlvbiB7XG4gIGlmICghKHBzYnQgaW5zdGFuY2VvZiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0KSkge1xuICAgIHBzYnQgPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVBzYnRGcm9tQnVmZmVyKHBzYnQudG9CdWZmZXIoKSwgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luKTtcbiAgfVxuICBpZiAocHNidCBpbnN0YW5jZW9mIHV0eG9saWIuYml0Z28uVXR4b1BzYnQpIHtcbiAgICAvLyBvbmx5IHV0eG9saWIuYml0Z28uVXR4b1BzYnQgaGFzIHRoZSBnZXRVbnNpZ25lZFR4IG1ldGhvZFxuICAgIHJldHVybiBiaXRjb2luanNsaWIuVHJhbnNhY3Rpb24uZnJvbUhleChwc2J0LmdldFVuc2lnbmVkVHgoKS50b0hleCgpKTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoJ2lsbGVnYWwgc3RhdGUnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvU3Rha2luZ1RyYW5zYWN0aW9uKHR4OiBUcmFuc2FjdGlvbkxpa2UpOiBiaXRjb2luanNsaWIuVHJhbnNhY3Rpb24ge1xuICBpZiAodHggaW5zdGFuY2VvZiBiaXRjb2luanNsaWIuUHNidCB8fCB0eCBpbnN0YW5jZW9mIHV0eG9saWIuUHNidCkge1xuICAgIHJldHVybiB0b1N0YWtpbmdUcmFuc2FjdGlvbkZyb21Qc2J0KHR4KTtcbiAgfVxuICByZXR1cm4gYml0Y29pbmpzbGliLlRyYW5zYWN0aW9uLmZyb21IZXgodHgudG9IZXgoKSk7XG59XG5cbi8qKlxuICogQXMgb2YgYmFieWxvbmxhYnMtaW8vYnRjLXN0YWtpbmctdHMgdjEuNS43LCB0aGUgQlRDIGRlbGVnYXRpb24gbWVzc2FnZSBjcmVhdGlvbiBmdW5jdGlvbnMgc3VwcG9ydCB0d28gbWVzc2FnZSB0eXBlczpcbiAqIC0gTXNnQ3JlYXRlQlRDRGVsZWdhdGlvblxuICogLSBNc2dCdGNTdGFrZUV4cGFuZFxuICpcbiAqIEJpdEdvIHN0aWxsIG9ubHkgc3VwcG9ydHMgTXNnQ3JlYXRlQlRDRGVsZWdhdGlvbiwgc28gd2UgbmVlZCB0byBjaGVjayB0aGUgbWVzc2FnZSB0eXBlIGhlcmUuXG4gKlxuICogQHBhcmFtIG1zZyAtIHRoZSBtZXNzYWdlIHRvIGNoZWNrXG4gKiBAcmV0dXJuIGB0cnVlYCBpZiB0aGUgbWVzc2FnZSBpcyBvZiB0eXBlIE1zZ0NyZWF0ZUJUQ0RlbGVnYXRpb25cbiAqL1xuZnVuY3Rpb24gaXNNc2dCdGNTdGFrZUV4cGFuZChcbiAgbXNnOiBiYWJ5bG9uUHJvdG9idWYuYnRjc3Rha2luZ3R4Lk1zZ0NyZWF0ZUJUQ0RlbGVnYXRpb24gfCBiYWJ5bG9uUHJvdG9idWYuYnRjc3Rha2luZ3R4Lk1zZ0J0Y1N0YWtlRXhwYW5kXG4pIHtcbiAgcmV0dXJuICdwcmV2aW91c1N0YWtpbmdUeEhhc2gnIGluIG1zZztcbn1cblxuLypcbiAqIFRoaXMgaXMgbW9zdGx5IGxpZnRlZCBmcm9tXG4gKiBodHRwczovL2dpdGh1Yi5jb20vYmFieWxvbmxhYnMtaW8vYnRjLXN0YWtpbmctdHMvYmxvYi92MC40LjAtcmMuMi9zcmMvc3Rha2luZy9tYW5hZ2VyLnRzI0wxMDAtTDE3MlxuICpcbiAqIFRoZSBkaWZmZXJlbmNlIGlzIHRoYXQgaGVyZSB3ZSBhcmUgcmV0dXJuaW5nIGFuIF91bnNpZ25lZF8gZGVsZWdhdGlvbiBtZXNzYWdlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlRGVsZWdhdGlvbk1lc3NhZ2VXaXRoVHJhbnNhY3Rpb24oXG4gIGNoYW5uZWw6ICdkZWxlZ2F0aW9uOmNyZWF0ZScgfCAnZGVsZWdhdGlvbjpyZWdpc3RlcicsXG4gIG1hbmFnZXI6IHZlbmRvci5CYWJ5bG9uQnRjU3Rha2luZ01hbmFnZXIsXG4gIHN0YWtpbmc6IHZlbmRvci5TdGFraW5nLFxuICBzdGFraW5nQW1vdW50U2F0OiBudW1iZXIsXG4gIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbkxpa2UsXG4gIGJhYnlsb25BZGRyZXNzOiBzdHJpbmdcbik6IFByb21pc2U8VmFsdWVXaXRoVHlwZVVybDxiYWJ5bG9uUHJvdG9idWYuYnRjc3Rha2luZ3R4Lk1zZ0NyZWF0ZUJUQ0RlbGVnYXRpb24+PiB7XG4gIGlmICghdmVuZG9yLmlzVmFsaWRCYWJ5bG9uQWRkcmVzcyhiYWJ5bG9uQWRkcmVzcykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgQmFieWxvbiBhZGRyZXNzJyk7XG4gIH1cbiAgLy8gQ3JlYXRlIGRlbGVnYXRpb24gbWVzc2FnZSB3aXRob3V0IGluY2x1ZGluZyBpbmNsdXNpb24gcHJvb2ZcbiAgY29uc3QgbXNnID0gYXdhaXQgbWFuYWdlci5jcmVhdGVCdGNEZWxlZ2F0aW9uTXNnKFxuICAgIGNoYW5uZWwsXG4gICAgc3Rha2luZyxcbiAgICB7XG4gICAgICBzdGFraW5nVGltZWxvY2s6IHN0YWtpbmcuc3Rha2luZ1RpbWVsb2NrLFxuICAgICAgZmluYWxpdHlQcm92aWRlclBrc05vQ29vcmRIZXg6IHN0YWtpbmcuZmluYWxpdHlQcm92aWRlclBrc05vQ29vcmRIZXgsXG4gICAgICBzdGFraW5nQW1vdW50U2F0LFxuICAgIH0sXG4gICAgdG9TdGFraW5nVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pLFxuICAgIGJhYnlsb25BZGRyZXNzLFxuICAgIHN0YWtpbmcuc3Rha2VySW5mbyxcbiAgICBzdGFraW5nLnBhcmFtc1xuICApO1xuXG4gIC8vIEl0IHNob3VsZG4ndCBiZSBwb3NzaWJsZSBmb3IgdXMgdG8gY3JlYXRlIGEgTXNnQnRjU3Rha2VFeHBhbmQgaGVyZSBiZWNhdXNlIHRoYXQgb25seSBnZXRzIGNyZWF0ZWQgd2hlblxuICAvLyB3ZSBwYXNzIGNoYW5uZWwgPSBkZWxlZ2F0aW9uOmV4cGFuZCBpbnRvIGNyZWF0ZUJ0Y0RlbGVnYXRpb25Nc2csIHdoaWNoIHdlIGNhbm5vdCBkby5cbiAgaWYgKGlzTXNnQnRjU3Rha2VFeHBhbmQobXNnLnZhbHVlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignTXNnQnRjU3Rha2VFeHBhbmQgaXMgbm90IHN1cHBvcnRlZCcpO1xuICB9XG5cbiAgcmV0dXJuIHsgLi4ubXNnLCB2YWx1ZTogbXNnLnZhbHVlIGFzIGJhYnlsb25Qcm90b2J1Zi5idGNzdGFraW5ndHguTXNnQ3JlYXRlQlRDRGVsZWdhdGlvbiB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVW5zaWduZWRQcmVTdGFrZVJlZ2lzdHJhdGlvbkJhYnlsb25UcmFuc2FjdGlvbldpdGhCdGNQcm92aWRlcihcbiAgYnRjUHJvdmlkZXI6IHZlbmRvci5CdGNQcm92aWRlcixcbiAgbmV0d29yazogYml0Y29pbmpzbGliLk5ldHdvcmssXG4gIHN0YWtlckJ0Y0luZm86IHZlbmRvci5TdGFrZXJJbmZvLFxuICBzdGFraW5nSW5wdXQ6IHZlbmRvci5TdGFraW5nSW5wdXRzLFxuICBiYWJ5bG9uQnRjVGlwSGVpZ2h0OiBudW1iZXIsXG4gIGlucHV0VVRYT3M6IHZlbmRvci5VVFhPW10sXG4gIGZlZVJhdGVTYXRCOiBudW1iZXIsXG4gIGJhYnlsb25BZGRyZXNzOiBzdHJpbmcsXG4gIGNoYW5uZWw6ICdkZWxlZ2F0aW9uOmNyZWF0ZScgfCAnZGVsZWdhdGlvbjpyZWdpc3RlcicsXG4gIHN0YWtpbmdQYXJhbXM6IHZlbmRvci5WZXJzaW9uZWRTdGFraW5nUGFyYW1zW10gPSBnZXRTdGFraW5nUGFyYW1zKG5ldHdvcmspXG4pOiBQcm9taXNlPFJlc3VsdD4ge1xuICBpZiAoaW5wdXRVVFhPcy5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGlucHV0IFVUWE9zIHByb3ZpZGVkJyk7XG4gIH1cbiAgY29uc3QgbWFuYWdlciA9IGNyZWF0ZVN0YWtpbmdNYW5hZ2VyKG5ldHdvcmssIGJ0Y1Byb3ZpZGVyLCBzdGFraW5nUGFyYW1zKTtcbiAgY29uc3Qgc3Rha2luZyA9IGNyZWF0ZVN0YWtpbmcobmV0d29yaywgYmFieWxvbkJ0Y1RpcEhlaWdodCwgc3Rha2VyQnRjSW5mbywgc3Rha2luZ0lucHV0LCBzdGFraW5nUGFyYW1zKTtcbiAgLy8gQ3JlYXRlIHVuc2lnbmVkIHN0YWtpbmcgdHJhbnNhY3Rpb25cbiAgY29uc3QgeyB0cmFuc2FjdGlvbiB9ID0gc3Rha2luZy5jcmVhdGVTdGFraW5nVHJhbnNhY3Rpb24oc3Rha2luZ0lucHV0LnN0YWtpbmdBbW91bnRTYXQsIGlucHV0VVRYT3MsIGZlZVJhdGVTYXRCKTtcbiAgY29uc3QgdW5zaWduZWREZWxlZ2F0aW9uTXNnID0gYXdhaXQgY3JlYXRlRGVsZWdhdGlvbk1lc3NhZ2VXaXRoVHJhbnNhY3Rpb24oXG4gICAgY2hhbm5lbCxcbiAgICBtYW5hZ2VyLFxuICAgIHN0YWtpbmcsXG4gICAgc3Rha2luZ0lucHV0LnN0YWtpbmdBbW91bnRTYXQsXG4gICAgdHJhbnNhY3Rpb24sXG4gICAgYmFieWxvbkFkZHJlc3NcbiAgKTtcbiAgcmV0dXJuIHsgdW5zaWduZWREZWxlZ2F0aW9uTXNnLCBzdGFraW5nVHg6IHRyYW5zYWN0aW9uIH07XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitgo-beta/utxo-staking",
|
|
3
|
-
"version": "1.1.1-beta.
|
|
3
|
+
"version": "1.1.1-beta.711",
|
|
4
4
|
"description": "BitGo SDK for build UTXO staking transactions",
|
|
5
5
|
"main": "./dist/src/index.js",
|
|
6
6
|
"types": "./dist/src/index.d.ts",
|
|
@@ -43,10 +43,10 @@
|
|
|
43
43
|
},
|
|
44
44
|
"type": "commonjs",
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@babylonlabs-io/babylon-proto-ts": "1.
|
|
47
|
-
"@bitgo-beta/babylonlabs-io-btc-staking-ts": "0.4.0-beta.
|
|
48
|
-
"@bitgo-beta/utxo-core": "1.8.1-beta.
|
|
49
|
-
"@bitgo-beta/utxo-lib": "8.0.3-beta.
|
|
46
|
+
"@babylonlabs-io/babylon-proto-ts": "1.7.2",
|
|
47
|
+
"@bitgo-beta/babylonlabs-io-btc-staking-ts": "0.4.0-beta.516",
|
|
48
|
+
"@bitgo-beta/utxo-core": "1.8.1-beta.387",
|
|
49
|
+
"@bitgo-beta/utxo-lib": "8.0.3-beta.1271",
|
|
50
50
|
"@bitgo/wasm-miniscript": "2.0.0-beta.7",
|
|
51
51
|
"bip174": "npm:@bitgo-forks/bip174@3.1.0-master.4",
|
|
52
52
|
"bip322-js": "^2.0.0",
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"yargs": "^17.7.2"
|
|
60
60
|
},
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "bdc3f789411e3c4249f170968dd64b7c4ec92e23"
|
|
62
62
|
}
|