@bitgo/sdk-core 27.8.0 → 28.0.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.
Files changed (81) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +5 -2
  3. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
  4. package/dist/src/bitgo/baseCoin/iBaseCoin.js +1 -1
  5. package/dist/src/bitgo/enterprise/enterprise.d.ts +1 -1
  6. package/dist/src/bitgo/enterprise/enterprise.d.ts.map +1 -1
  7. package/dist/src/bitgo/enterprise/enterprise.js +3 -3
  8. package/dist/src/bitgo/enterprise/iEnterprise.d.ts +1 -1
  9. package/dist/src/bitgo/enterprise/iEnterprise.d.ts.map +1 -1
  10. package/dist/src/bitgo/enterprise/iEnterprise.js +1 -1
  11. package/dist/src/bitgo/environments.d.ts +1 -0
  12. package/dist/src/bitgo/environments.d.ts.map +1 -1
  13. package/dist/src/bitgo/environments.js +3 -1
  14. package/dist/src/bitgo/index.d.ts +1 -0
  15. package/dist/src/bitgo/index.d.ts.map +1 -1
  16. package/dist/src/bitgo/index.js +2 -1
  17. package/dist/src/bitgo/lightning/custodial/iLightning.d.ts.map +1 -0
  18. package/dist/src/bitgo/lightning/custodial/iLightning.js +110 -0
  19. package/dist/src/bitgo/lightning/custodial/index.d.ts +5 -0
  20. package/dist/src/bitgo/lightning/custodial/index.d.ts.map +1 -0
  21. package/dist/src/bitgo/lightning/custodial/index.js +21 -0
  22. package/dist/src/bitgo/lightning/{lightning.d.ts → custodial/lightning.d.ts} +2 -2
  23. package/dist/src/bitgo/lightning/custodial/lightning.d.ts.map +1 -0
  24. package/dist/src/bitgo/lightning/custodial/lightning.js +111 -0
  25. package/dist/src/bitgo/lightning/custodial/lightningUtils.d.ts +46 -0
  26. package/dist/src/bitgo/lightning/custodial/lightningUtils.d.ts.map +1 -0
  27. package/dist/src/bitgo/lightning/custodial/lightningUtils.js +137 -0
  28. package/dist/src/bitgo/lightning/custodial/lnurlCodec.d.ts.map +1 -0
  29. package/dist/src/bitgo/lightning/custodial/lnurlCodec.js +28 -0
  30. package/dist/src/bitgo/lightning/index.d.ts +2 -3
  31. package/dist/src/bitgo/lightning/index.d.ts.map +1 -1
  32. package/dist/src/bitgo/lightning/index.js +3 -4
  33. package/dist/src/bitgo/lightning/lightningUtils.d.ts +23 -37
  34. package/dist/src/bitgo/lightning/lightningUtils.d.ts.map +1 -1
  35. package/dist/src/bitgo/lightning/lightningUtils.js +41 -96
  36. package/dist/src/bitgo/lightning/signableJson.d.ts +17 -0
  37. package/dist/src/bitgo/lightning/signableJson.d.ts.map +1 -0
  38. package/dist/src/bitgo/lightning/signableJson.js +30 -0
  39. package/dist/src/bitgo/lightning/signature.d.ts +22 -0
  40. package/dist/src/bitgo/lightning/signature.d.ts.map +1 -0
  41. package/dist/src/bitgo/lightning/signature.js +60 -0
  42. package/dist/src/bitgo/staking/iStakingWallet.d.ts +6 -0
  43. package/dist/src/bitgo/staking/iStakingWallet.d.ts.map +1 -1
  44. package/dist/src/bitgo/staking/iStakingWallet.js +1 -1
  45. package/dist/src/bitgo/utils/mpcUtils.js +2 -2
  46. package/dist/src/bitgo/utils/tss/baseTypes.d.ts +5 -1
  47. package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
  48. package/dist/src/bitgo/utils/tss/baseTypes.js +1 -1
  49. package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.d.ts.map +1 -1
  50. package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.js +42 -45
  51. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts +1 -1
  52. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts.map +1 -1
  53. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.js +11 -4
  54. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -1
  55. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +6 -5
  56. package/dist/src/bitgo/wallet/iWallet.d.ts +1 -1
  57. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
  58. package/dist/src/bitgo/wallet/iWallet.js +1 -1
  59. package/dist/src/bitgo/wallet/wallet.d.ts +1 -1
  60. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
  61. package/dist/src/bitgo/wallet/wallet.js +3 -3
  62. package/dist/test/unit/account-lib/mpc/tss/ecdsa/ecdsa.js +5 -3
  63. package/dist/test/unit/bitgo/lightning/lightningUtils.d.ts +2 -0
  64. package/dist/test/unit/bitgo/lightning/lightningUtils.d.ts.map +1 -0
  65. package/dist/test/unit/bitgo/lightning/lightningUtils.js +62 -0
  66. package/dist/test/unit/bitgo/lightning/signableJson.d.ts +2 -0
  67. package/dist/test/unit/bitgo/lightning/signableJson.d.ts.map +1 -0
  68. package/dist/test/unit/bitgo/lightning/signableJson.js +52 -0
  69. package/dist/test/unit/bitgo/lightning/signature.d.ts +2 -0
  70. package/dist/test/unit/bitgo/lightning/signature.d.ts.map +1 -0
  71. package/dist/test/unit/bitgo/lightning/signature.js +81 -0
  72. package/dist/tsconfig.tsbuildinfo +1 -1
  73. package/package.json +6 -5
  74. package/dist/src/bitgo/lightning/iLightning.d.ts.map +0 -1
  75. package/dist/src/bitgo/lightning/iLightning.js +0 -110
  76. package/dist/src/bitgo/lightning/lightning.d.ts.map +0 -1
  77. package/dist/src/bitgo/lightning/lightning.js +0 -111
  78. package/dist/src/bitgo/lightning/lnurlCodec.d.ts.map +0 -1
  79. package/dist/src/bitgo/lightning/lnurlCodec.js +0 -28
  80. /package/dist/src/bitgo/lightning/{iLightning.d.ts → custodial/iLightning.d.ts} +0 -0
  81. /package/dist/src/bitgo/lightning/{lnurlCodec.d.ts → custodial/lnurlCodec.d.ts} +0 -0
@@ -32,6 +32,8 @@ const sinon_1 = __importDefault(require("sinon"));
32
32
  const sdk_lib_mpc_1 = require("@bitgo/sdk-lib-mpc");
33
33
  const tss_1 = require("../../../../../../src/account-lib/mpc/tss");
34
34
  const fixtures_1 = require("./fixtures");
35
+ const sdk_opensslbytes_1 = require("@bitgo/sdk-opensslbytes");
36
+ const openSSLBytes = (0, sdk_opensslbytes_1.loadWebAssembly)().buffer;
35
37
  describe('ecdsa tss', function () {
36
38
  const ecdsa = new tss_1.Ecdsa();
37
39
  let signCombine1, signCombine2;
@@ -82,8 +84,8 @@ describe('ecdsa tss', function () {
82
84
  .verifySchnorrProofX(derivedY, derivedVSSs, 2, keyCombined2FromKeyDerive1.xShare.schnorrProofX)
83
85
  .should.be.true();
84
86
  const [ntilde1, ntilde2] = await Promise.all([
85
- sdk_lib_mpc_1.EcdsaRangeProof.generateNtilde(512),
86
- sdk_lib_mpc_1.EcdsaRangeProof.generateNtilde(512),
87
+ sdk_lib_mpc_1.EcdsaRangeProof.generateNtilde(openSSLBytes, 512),
88
+ sdk_lib_mpc_1.EcdsaRangeProof.generateNtilde(openSSLBytes, 512),
87
89
  ]);
88
90
  const [serializeNtilde1, serializeNtilde2] = [
89
91
  sdk_lib_mpc_1.EcdsaTypes.serializeNtildeWithProofs(ntilde1),
@@ -218,4 +220,4 @@ describe('ecdsa tss', function () {
218
220
  (() => ecdsa.verifyUTShares(UT2, [publicUTShares_1])).should.throw('Sum of all U_i does not match sum of all T_i');
219
221
  });
220
222
  });
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNkc2EuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvYWNjb3VudC1saWIvbXBjL3Rzcy9lY2RzYS9lY2RzYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0VBQWtEO0FBQ2xELGtCQUFnQjtBQUNoQixrREFBMEI7QUFDMUIsb0RBUTRCO0FBQzVCLG1FQUFrRTtBQU1sRSx5Q0FBOEM7QUFFOUMsUUFBUSxDQUFDLFdBQVcsRUFBRTtJQUNwQixNQUFNLEtBQUssR0FBRyxJQUFJLFdBQUssRUFBRSxDQUFDO0lBRTFCLElBQUksWUFBMkIsRUFBRSxZQUEyQixDQUFDO0lBRTdELE1BQU0sQ0FBQyxvQ0FBb0MsRUFBRSxLQUFLO1FBQ2hELE1BQU0sZUFBZSxHQUFHLGVBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFFekUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQywyQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQywyQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQywyQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFeEUsTUFBTSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQzFELEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFB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R0FBRyxDQUFDLEdBQW9CLEVBQUUsR0FBb0IsQ0FBQyxDQUFDO1FBQzFGLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7UUFDbkgsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztJQUNySCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGFpbGxpZXJCaWdpbnQgZnJvbSAncGFpbGxpZXItYmlnaW50JztcbmltcG9ydCAnc2hvdWxkJztcbmltcG9ydCBzaW5vbiBmcm9tICdzaW5vbic7XG5pbXBvcnQge1xuICBFY2RzYVBhaWxsaWVyUHJvb2YsXG4gIEVjZHNhUmFuZ2VQcm9vZixcbiAgRWNkc2FUeXBlcyxcbiAgRWNkc2Faa1ZQcm9vZixcbiAgSGFzaENvbW1pdG1lbnQsXG4gIGhleFRvQmlnSW50LFxuICBiaWdJbnRUb0J1ZmZlckJFLFxufSBmcm9tICdAYml0Z28vc2RrLWxpYi1tcGMnO1xuaW1wb3J0IHsgRWNkc2EgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYWNjb3VudC1saWIvbXBjL3Rzcyc7XG5pbXBvcnQge1xuICBQdWJsaWNVVFNoYXJlLFxuICBQdWJsaWNWQVNoYXJlV2l0aFByb29mcyxcbiAgU2lnbkNvbWJpbmVSVCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FjY291bnQtbGliL21wYy90c3MvZWNkc2EvdHlwZXMnO1xuaW1wb3J0IHsgcGFpbGxpZXJLZXlQYWlycyB9IGZyb20gJy4vZml4dHVyZXMnO1xuXG5kZXNjcmliZSgnZWNkc2EgdHNzJywgZnVuY3Rpb24gKCkge1xuICBjb25zdCBlY2RzYSA9IG5ldyBFY2RzYSgpO1xuXG4gIGxldCBzaWduQ29tYmluZTE6IFNpZ25Db21iaW5lUlQsIHNpZ25Db21iaW5lMjogU2lnbkNvbWJpbmVSVDtcblxuICBiZWZvcmUoJ2dlbmVyYXRlIGtleSBhbmQgc2lnbiBwaGFzZSAxIHRvIDQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgcGFpbGxpZXJLZXlTdHViID0gc2lub24uc3R1YihwYWlsbGllckJpZ2ludCwgJ2dlbmVyYXRlUmFuZG9tS2V5cycpO1xuXG4gICAgcGFpbGxpZXJLZXlTdHViLm9uQ2FsbCgwKS5yZXR1cm5zKFByb21pc2UucmVzb2x2ZShwYWlsbGllcktleVBhaXJzWzBdKSk7XG4gICAgcGFpbGxpZXJLZXlTdHViLm9uQ2FsbCgxKS5yZXR1cm5zKFByb21pc2UucmVzb2x2ZShwYWlsbGllcktleVBhaXJzWzFdKSk7XG4gICAgcGFpbGxpZXJLZXlTdHViLm9uQ2FsbCgyKS5yZXR1cm5zKFByb21pc2UucmVzb2x2ZShwYWlsbGllcktleVBhaXJzWzJdKSk7XG5cbiAgICBjb25zdCBba2V5U2hhcmUxLCBrZXlTaGFyZTIsIGtleVNoYXJlM10gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICBlY2RzYS5rZXlTaGFyZSgxLCAyLCAzKSxcbiAgICAgIGVjZHNhLmtleVNoYXJlKDIsIDIsIDMpLFxuICAgICAgZWNkc2Eua2V5U2hhcmUoMywgMiwgMyksXG4gICAgXSk7XG5cbiAgICBjb25zdCBba2V5Q29tYmluZWQxLCBrZXlDb21iaW5lZDIsIGtleUNvbWJpbmVkM10gPSBbXG4gICAgICBlY2RzYS5rZXlDb21iaW5lKGtleVNoYXJlMS5wU2hhcmUsIFtrZXlTaGFyZTIublNoYXJlc1sxXSwga2V5U2hhcmUzLm5TaGFyZXNbMV1dKSxcbiAgICAgIGVjZHNhLmtleUNvbWJpbmUoa2V5U2hhcmUyLnBTaGFyZSwgW2tleVNoYXJlMS5uU2hhcmVzWzJdLCBrZXlTaGFyZTMublNoYXJlc1syXV0pLFxuICAgICAgZWNkc2Eua2V5Q29tYmluZShrZXlTaGFyZTMucFNoYXJlLCBba2V5U2hhcmUxLm5TaGFyZXNbM10sIGtleVNoYXJlMi5uU2hhcmVzWzNdXSksXG4gICAgXTtcblxuICAgIGtleUNvbWJpbmVkMS54U2hhcmUueS5zaG91bGQuZXF1YWwoa2V5Q29tYmluZWQyLnhTaGFyZS55KTtcbiAgICBrZXlDb21iaW5lZDEueFNoYXJlLnkuc2hvdWxkLmVxdWFsKGtleUNvbWJpbmVkMy54U2hhcmUueSk7XG5cbiAgICAvLyBDb2xsZWN0IGFsbCBWU1MgZnJvbSBuU2hhcmVzIGFuZCB2ZXJpZnkgU2Nobm9yciBwcm9vZnMgYWdhaW5zdCBYX2kuXG4gICAgLy8gTm90ZSB0aGF0IHRoaXMgaXMgc29tZXRoaW5nIFdQIG5lZWRzIHRvIGRvIGFmdGVyIGtleUNvbWJpbmUva2V5RGVyaXZlLlxuICAgIGNvbnN0IFkgPSBoZXhUb0JpZ0ludChrZXlDb21iaW5lZDEueFNoYXJlLnkpO1xuXG4gICAgY29uc3QgVlNTcyA9IFtcbiAgICAgIFtoZXhUb0JpZ0ludChrZXlTaGFyZTEublNoYXJlc1syXS52ISldLFxuICAgICAgW2hleFRvQmlnSW50KGtleVNoYXJlMi5uU2hhcmVzWzNdLnYhKV0sXG4gICAgICBbaGV4VG9CaWdJbnQoa2V5U2hhcmUzLm5TaGFyZXNbMV0udiEpXSxcbiAgICBdO1xuXG4gICAgZWNkc2EudmVyaWZ5U2Nobm9yclByb29mWChZLCBWU1NzLCAxLCBrZXlDb21iaW5lZDEueFNoYXJlLnNjaG5vcnJQcm9vZlgpLnNob3VsZC5iZS50cnVlKCk7XG4gICAgZWNkc2EudmVyaWZ5U2Nobm9yclByb29mWChZLCBWU1NzLCAyLCBrZXlDb21iaW5lZDIueFNoYXJlLnNjaG5vcnJQcm9vZlgpLnNob3VsZC5iZS50cnVlKCk7XG4gICAgZWNkc2EudmVyaWZ5U2Nobm9yclByb29mWChZLCBWU1NzLCAzLCBrZXlDb21iaW5lZDMueFNoYXJlLnNjaG5vcnJQcm9vZlgpLnNob3VsZC5iZS50cnVlKCk7XG5cbiAgICAvLyBWZXJpZnkgU2Nobm9yciBwcm9vZnMgYWdhaW5zdCBYX2kgZm9yIGtleURlcml2ZSBhbmQgc3Vic2VxdWVudCBrZXlDb21iaW5lLlxuICAgIGNvbnN0IHBhdGggPSAnbS8wLzEvMic7XG4gICAgY29uc3Qga2V5RGVyaXZlMSA9IGVjZHNhLmtleURlcml2ZShrZXlTaGFyZTEucFNoYXJlLCBba2V5U2hhcmUyLm5TaGFyZXNbMV0sIGtleVNoYXJlMy5uU2hhcmVzWzFdXSwgcGF0aCk7XG5cbiAgICAvLyBOb3RlIHRoZSBWU1NzIHVzZWQgaGVyZSBhcmUgZGlmZmVyZW50IGZyb20gdGhlIG9uZXMgdXNlZCBhYm92ZS5cbiAgICBjb25zdCBkZXJpdmVkWSA9IGhleFRvQmlnSW50KGtleURlcml2ZTEueFNoYXJlLnkpO1xuICAgIGNvbnN0IGRlcml2ZWRWU1NzID0gW1xuICAgICAgW2hleFRvQmlnSW50KGtleURlcml2ZTEublNoYXJlc1syXS52ISldLFxuICAgICAgW2hleFRvQmlnSW50KGtleVNoYXJlMi5uU2hhcmVzWzNdLnYhKV0sXG4gICAgICBbaGV4VG9CaWdJbnQoa2V5U2hhcmUzLm5TaGFyZXNbMV0udiEpXSxcbiAgICBdO1xuICAgIGVjZHNhLnZlcmlmeVNjaG5vcnJQcm9vZlgoZGVyaXZlZFksIGRlcml2ZWRWU1NzLCAxLCBrZXlEZXJpdmUxLnhTaGFyZS5zY2hub3JyUHJvb2ZYKS5zaG91bGQuYmUudHJ1ZSgpO1xuXG4gICAgY29uc3Qga2V5Q29tYmluZWQyRnJvbUtleURlcml2ZTEgPSBlY2RzYS5rZXlDb21iaW5lKGtleVNoYXJlMi5wU2hhcmUsIFtcbiAgICAgIGtleURlcml2ZTEublNoYXJlc1syXSxcbiAgICAgIGtleVNoYXJlMy5uU2hhcmVzWzJdLFxuICAgIF0pO1xuICAgIGVjZHNhXG4gICAgICAudmVyaWZ5U2Nobm9yclByb29mWChkZXJpdmVkWSwgZGVyaXZlZFZTU3MsIDIsIGtleUNvbWJpbmVkMkZyb21LZXlEZXJpdmUxLnhTaGFyZS5zY2hub3JyUHJvb2ZYKVxuICAgICAgLnNob3VsZC5iZS50cnVlKCk7XG5cbiAgICBjb25zdCBbbnRpbGRlMSwgbnRpbGRlMl0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICBFY2RzYVJhbmdlUHJvb2YuZ2VuZXJhdGVOdGlsZGUoNTEyKSxcbiAgICAgIEVjZHNhUmFuZ2VQcm9vZi5nZW5lcmF0ZU50aWxkZSg1MTIpLFxuICAgIF0pO1xuXG4gICAgY29uc3QgW3NlcmlhbGl6ZU50aWxkZTEsIHNlcmlhbGl6ZU50aWxkZTJdID0gW1xuICAgICAgRWNkc2FUeXBlcy5zZXJpYWxpemVOdGlsZGVXaXRoUHJvb2ZzKG50aWxkZTEpLFxuICAgICAgRWNkc2FUeXBlcy5zZXJpYWxpemVOdGlsZGVXaXRoUHJvb2ZzKG50aWxkZTIpLFxuICAgIF07XG5cbiAgICBjb25zdCBbaW5kZXgxLCBpbmRleDJdID0gW2tleUNvbWJpbmVkMS54U2hhcmUuaSwga2V5Q29tYmluZWQyLnhTaGFyZS5pXTtcblxuICAgIGNvbnN0IFtwYWlsbGllck4xdG8yLCBwYWlsbGllck4ydG8xXSA9IFtrZXlDb21iaW5lZDEueVNoYXJlc1tpbmRleDJdLm4sIGtleUNvbWJpbmVkMi55U2hhcmVzW2luZGV4MV0ubl07XG5cbiAgICBjb25zdCBbcGFpbGxpZXJDaGFsbGVuZ2VyMXRvMiwgcGFpbGxpZXJDaGFsbGVuZ2VyMnRvMV0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICBFY2RzYVBhaWxsaWVyUHJvb2YuZ2VuZXJhdGVQKGhleFRvQmlnSW50KHBhaWxsaWVyTjF0bzIpKSxcbiAgICAgIEVjZHNhUGFpbGxpZXJQcm9vZi5nZW5lcmF0ZVAoaGV4VG9CaWdJbnQocGFpbGxpZXJOMnRvMSkpLFxuICAgIF0pO1xuXG4gICAgY29uc3QgW3hTaGFyZTEsIHhTaGFyZTJdID0gW1xuICAgICAgZWNkc2EuYXBwZW5kQ2hhbGxlbmdlKFxuICAgICAgICBrZXlDb21iaW5lZDEueFNoYXJlLFxuICAgICAgICBzZXJpYWxpemVOdGlsZGUxLFxuICAgICAgICBFY2RzYVR5cGVzLnNlcmlhbGl6ZVBhaWxsaWVyQ2hhbGxlbmdlKHsgcDogcGFpbGxpZXJDaGFsbGVuZ2VyMXRvMiB9KVxuICAgICAgKSxcbiAgICAgIGVjZHNhLmFwcGVuZENoYWxsZW5nZShcbiAgICAgICAga2V5Q29tYmluZWQyLnhTaGFyZSxcbiAgICAgICAgc2VyaWFsaXplTnRpbGRlMixcbiAgICAgICAgRWNkc2FUeXBlcy5zZXJpYWxpemVQYWlsbGllckNoYWxsZW5nZSh7IHA6IHBhaWxsaWVyQ2hhbGxlbmdlcjJ0bzEgfSlcbiAgICAgICksXG4gICAgXTtcblxuICAgIGNvbnN0IHlTaGFyZTIgPSBlY2RzYS5hcHBlbmRDaGFsbGVuZ2UoXG4gICAgICBrZXlDb21iaW5lZDEueVNoYXJlc1tpbmRleDJdLFxuICAgICAgc2VyaWFsaXplTnRpbGRlMixcbiAgICAgIEVjZHNhVHlwZXMuc2VyaWFsaXplUGFpbGxpZXJDaGFsbGVuZ2UoeyBwOiBwYWlsbGllckNoYWxsZW5nZXIydG8xIH0pXG4gICAgKTtcblxuICAgIGNvbnN0IHNpZ25TaGFyZXMgPSBhd2FpdCBlY2RzYS5zaWduU2hhcmUoeFNoYXJlMSwgeVNoYXJlMik7XG5cbiAgICBjb25zdCBzaWduQ29udmVydFMyMSA9IGF3YWl0IGVjZHNhLnNpZ25Db252ZXJ0U3RlcDEoe1xuICAgICAgeFNoYXJlOiB4U2hhcmUyLFxuICAgICAgeVNoYXJlOiBrZXlDb21iaW5lZDIueVNoYXJlc1tpbmRleDFdLFxuICAgICAga1NoYXJlOiBzaWduU2hhcmVzLmtTaGFyZSxcbiAgICB9KTtcbiAgICBjb25zdCBzaWduQ29udmVydFMxMiA9IGF3YWl0IGVjZHNhLnNpZ25Db252ZXJ0U3RlcDIoe1xuICAgICAgYVNoYXJlOiBzaWduQ29udmVydFMyMS5hU2hhcmUsXG4gICAgICB3U2hhcmU6IHNpZ25TaGFyZXMud1NoYXJlLFxuICAgIH0pO1xuICAgIGNvbnN0IHNpZ25Db252ZXJ0UzIxXzIgPSBhd2FpdCBlY2RzYS5zaWduQ29udmVydFN0ZXAzKHtcbiAgICAgIG11U2hhcmU6IHNpZ25Db252ZXJ0UzEyLm11U2hhcmUsXG4gICAgICBiU2hhcmU6IHNpZ25Db252ZXJ0UzIxLmJTaGFyZSxcbiAgICB9KTtcblxuICAgIFtzaWduQ29tYmluZTEsIHNpZ25Db21iaW5lMl0gPSBbXG4gICAgICBlY2RzYS5zaWduQ29tYmluZSh7XG4gICAgICAgIGdTaGFyZTogc2lnbkNvbnZlcnRTMTIuZ1NoYXJlLFxuICAgICAgICBzaWduSW5kZXg6IHtcbiAgICAgICAgICBpOiBzaWduQ29udmVydFMxMi5tdVNoYXJlLmksXG4gICAgICAgICAgajogc2lnbkNvbnZlcnRTMTIubXVTaGFyZS5qLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBlY2RzYS5zaWduQ29tYmluZSh7XG4gICAgICAgIGdTaGFyZTogc2lnbkNvbnZlcnRTMjFfMi5nU2hhcmUsXG4gICAgICAgIHNpZ25JbmRleDoge1xuICAgICAgICAgIGk6IHNpZ25Db252ZXJ0UzIxXzIuc2lnbkluZGV4LmksXG4gICAgICAgICAgajogc2lnbkNvbnZlcnRTMjFfMi5zaWduSW5kZXguaixcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgIF07XG4gIH0pO1xuXG4gIGl0KCdzaWduIHBoYXNlIDUgc2hvdWxkIHN1Y2NlZWQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgLy8gVE9ETyhIU00tMTI5KTogVGhlcmUgaXMgYSBidWcgc2lnbmluZyB1bmhhc2hlZCBtZXNzYWdlIChhbHRob3VnaCB0aGlzIGRldmlhdGVzIGZyb20gRFNBIHNwZWMpIGlmIHRoZSBtZXNzYWdlIGlzIGEgbGl0dGxlIGxvbmcuXG4gICAgLy8gICAgICAgU29tZSBkaXNjcmVwYW5jeSBiZXR3ZWVuIEVjZHNhLnNpZ24gYW5kIHNlY3AyNTZrMS5yZWNvdmVyUHVibGljS2V5IG9uIGhhbmRsaW5nIHRoZSBtZXNzYWdlIGlucHV0LlxuICAgIGNvbnN0IG1lc3NhZ2UgPSBCdWZmZXIuZnJvbSgnR0cxOCBQSEFTRSA1Jyk7XG5cbiAgICAvLyBTdGFydGluZyBwaGFzZSA1XG4gICAgLy8gSW4gYWRkaXRpb24gdG8gcmV0dXJuaW5nIHNfaSwgRWNkc2Euc2lnbigpIG5vdyBhbHNvIGNhbGN1bGF0ZXMgZGF0YSBuZWVkZWQgZm9yIHN0ZXBzIDVBIGFuZCA1QjpcbiAgICAvLyAgIC0gc2FtcGxlIHJhbmRvbSBsX2kgYW5kIHJob19pICg1QSlcbiAgICAvLyAgIC0gY29tcHV0ZXMgVl9pIGFuZCBBX2kgKDVCKV1cbiAgICAvLyAgIC0gY29tcHV0ZXMgY29tbWl0bWVudCBhbmQgZGVjb21taXRtZW50IG9mIChWX2ksIEFfaSkgKDVBLCA1QilcbiAgICAvLyAgIC0gZ2VuZXJhdGVzIHByb29mcyBvZiBrbm93bGVkZ2Ugb2Ygc19pLCBsX2ksIHJob19pIHcuci50LiBWX2ksIEFfaSAoNUIpXG4gICAgY29uc3QgW3NpZ24xLCBzaWduMl0gPSBbXG4gICAgICBlY2RzYS5nZW5lcmF0ZVZBUHJvb2ZzKG1lc3NhZ2UsIGVjZHNhLnNpZ24obWVzc2FnZSwgc2lnbkNvbWJpbmUxLm9TaGFyZSwgc2lnbkNvbWJpbmUyLmRTaGFyZSkpLFxuICAgICAgZWNkc2EuZ2VuZXJhdGVWQVByb29mcyhtZXNzYWdlLCBlY2RzYS5zaWduKG1lc3NhZ2UsIHNpZ25Db21iaW5lMi5vU2hhcmUsIHNpZ25Db21iaW5lMS5kU2hhcmUpKSxcbiAgICBdO1xuXG4gICAgc2lnbjEuUi5zaG91bGQuZXF1YWwoc2lnbjIuUik7XG4gICAgc2lnbjEueS5zaG91bGQuZXF1YWwoc2lnbjIueSk7XG4gICAgc2lnbjEubS50b1N0cmluZygnaGV4Jykuc2hvdWxkLmVxdWFsKHNpZ24yLm0udG9TdHJpbmcoJ2hleCcpKTtcblxuICAgIC8vIFN0ZXAgNUE6IENhbGN1bGF0aW9ucyBkb25lIGJ5IEVjZHNhLnNpZ24oKSBhYm92ZSwgYW5kIGJyb2FkY2FzdCBjb21taXRtZW50IG9mIChWX2ksIEFfaSkgdG8gb3RoZXIgcGFydGllcy5cbiAgICAvLyAgICAgICAgICBUaGUgZm9sbG93aW5nIHZhbHVlcyB3aWxsIGJlIHNlbnQgdmlhIGNvbW11bmljYXRpb24gY2hhbm5lbCBhdCB0aGUgZW5kIG9mIDVBLlxuICAgIC8vIGNvbnN0IGNvbW1pdG1lbnRWQTEgPSBzaWduMS5jb21EZWNvbVZBLmNvbW1pdG1lbnQ7XG4gICAgLy8gY29uc3QgY29tbWl0bWVudFZBMiA9IHNpZ24yLmNvbURlY29tVkEuY29tbWl0bWVudDtcblxuICAgIC8vIFN0ZXAgNUI6IEFmdGVyIGhhdmluZyByZWNlaXZlZCBhbGwgY29tbWl0bWVudHMgb2YgKFZfaSwgQV9pKSBmcm9tIG90aGVyIHBhcnRpZXMsXG4gICAgLy8gICAgICAgICAgZWFjaCBwYXJ0eSB3aWxsIGJyb2FkY2FzdCBkZWNvbW1pdG1lbnQgb2YgKFZfaSwgQV9pKSBhbmQgWksgcHJvb2ZzIHJldHVybmVkIGJ5IEVjZHNhLnNpZ24oKSBhYm92ZVxuICAgIC8vICAgICAgICAgIHRvIG90aGVyIHBhcnRpZXMuICBUaGVuIEVjZHNhLnZlcmlmeVZBU2hhcmVzKCkgYmVsb3cgd2lsbDpcbiAgICAvLyAgIC0gdmVyaWZ5IGNvbW1pdG1lbnRzIG9mIChWX2ksIEFfaSkgcmVjZWl2ZWQgZnJvbSBvdGhlciBwYXJ0aWVzICg1QilcbiAgICAvLyAgIC0gdmVyaWZ5IFpLIHByb29mcyBvZiAoVl9pLCBBX2kpIHJlY2VpdmVkIGZyb20gb3RoZXIgcGFydGllcyAoNUIpXG4gICAgLy8gICAtIGNhbGN1bGF0ZSBWIG91dCBvZiBHLCB5LCByLCBtLCBhbmQgYWxsIFZfaSwgY2FsY3VsYXRlIEEgYXMgc3VtIG9mIGFsbCBBX2kgKDVCKVxuICAgIC8vICAgLSBjYWxjdWxhdGUgVV9pIGFuZCBUX2kgYW5kIGNvbW1pdG1lbnQgYW5kIGRlY29tbWl0bWVudCBvZiAoVV9pLCBUX2kpICg1QylcbiAgICBjb25zdCBbcHVibGljVkFTaGFyZXNfMSwgcHVibGljVkFTaGFyZXNfMl0gPSBbc2lnbjEgYXMgUHVibGljVkFTaGFyZVdpdGhQcm9vZnMsIHNpZ24yIGFzIFB1YmxpY1ZBU2hhcmVXaXRoUHJvb2ZzXTtcbiAgICBjb25zdCBbVVQxLCBVVDJdID0gW1xuICAgICAgZWNkc2EudmVyaWZ5VkFTaGFyZXMoc2lnbjEsIFtwdWJsaWNWQVNoYXJlc18yXSksXG4gICAgICBlY2RzYS52ZXJpZnlWQVNoYXJlcyhzaWduMiwgW3B1YmxpY1ZBU2hhcmVzXzFdKSxcbiAgICBdO1xuXG4gICAgLy8gU3RlcCA1QzogQ2FsY3VsYXRpb25zIG9mIFVfaSwgVF9pIGRvbmUgYnkgRWNkc2EudmVyaWZ5VkFTaGFyZXMgYWJvdmUsXG4gICAgLy8gICAgICAgICAgYW5kIGJyb2FkY2FzdCBjb21taXRtZW50IG9mIChVX2ksIFRfaSkgdG8gb3RoZXIgcGFydGllcy5cbiAgICAvLyAgICAgICAgICBUaGUgZm9sbG93aW5nIHZhbHVlcyB3aWxsIGJlIHNlbnQgdmlhIGNvbW11bmljYXRpb24gY2hhbm5lbCBhdCB0aGUgZW5kIG9mIDVDLlxuICAgIC8vIGNvbnN0IGNvbW1pdG1lbnRVVDEgPSBVVDEuY29tRGVjb21VVC5jb21taXRtZW50O1xuICAgIC8vIGNvbnN0IGNvbW1pdG1lbnRVVDIgPSBVVDIuY29tRGVjb21VVC5jb21taXRtZW50O1xuXG4gICAgLy8gU3RlcCA1RDogQWZ0ZXIgaGF2aW5nIHJlY2VpdmVkIGFsbCBjb21taXRtZW50cyBvZiAoVV9pLCBUX2kpIGZyb20gb3RoZXIgcGFydGllcyxcbiAgICAvLyAgICAgICAgICBlYWNoIHBhcnR5IHdpbGwgYnJvYWRjYXN0IGRlY29tbWl0bWVudCBvZiAoVV9pLCBUX2kpIHJldHVybmVkIGJ5IEVjZHNhLnZlcmlmeVZBU2hhcmVzKCkgYWJvdmVcbiAgICAvLyAgICAgICAgICB0byBvdGhlciBwYXJ0aWVzLiAgVGhlbiBFY2RzYS52ZXJpZnlVVFNoYXJlcygpIGJlbG93IHdpbGw6XG4gICAgLy8gIC0gdmVyaWZ5IGNvbW1pdG1lbnRzIG9mIChVX2ksIFRfaSkgcmVjZWl2ZWQgZnJvbSBvdGhlciBwYXJ0aWVzICg1RClcbiAgICAvLyAgLSBjYWxjdWxhdGUgVSBhcyBzdW0gb2YgYWxsIFVfaSwgY2FsY3VsYXRlIFQgYXMgc3VtIG9mIGFsbCBUX2kgKDVEKVxuICAgIC8vICAtIGlmIFUgZXF1YWxzIFQsIHRoZW4gcmV0dXJuIG93biBTU2hhcmUgd2hpY2ggaXMgYmVpbmcgcmV0dXJuZWQgYnkgRWNkc2Euc2lnbigpIHJpZ2h0IG5vdyAoNUUpXG4gICAgY29uc3QgW3B1YmxpY1VUU2hhcmVzXzEsIHB1YmxpY1VUU2hhcmVzXzJdID0gW1VUMSBhcyBQdWJsaWNVVFNoYXJlLCBVVDIgYXMgUHVibGljVVRTaGFyZV07XG4gICAgY29uc3QgW3NpZ25hdHVyZTEsIHNpZ25hdHVyZTJdID0gW1xuICAgICAgZWNkc2EudmVyaWZ5VVRTaGFyZXMoVVQxLCBbcHVibGljVVRTaGFyZXNfMl0pLFxuICAgICAgZWNkc2EudmVyaWZ5VVRTaGFyZXMoVVQyLCBbcHVibGljVVRTaGFyZXNfMV0pLFxuICAgIF07XG5cbiAgICAvLyBTdGVwIDVFOiBCcm9hZGNhc3Qgc19pIHJldHVybmVkIGJ5IEVjZHNhLnZlcmlmeVVUU2hhcmVzKCkgYWJvdmUgdG8gb3RoZXIgcGFydGllcy5cbiAgICAvLyAgICAgICAgICBWZXJpZnkgdGhlIHN1bSBvZiBzX2kgc2hvdWxkIGJlIGEgdmFsaWQgc2lnbmF0dXJlLlxuICAgIGNvbnN0IHNpZ25hdHVyZSA9IGVjZHNhLmNvbnN0cnVjdFNpZ25hdHVyZShbc2lnbmF0dXJlMSwgc2lnbmF0dXJlMl0pO1xuICAgIGVjZHNhLnZlcmlmeShtZXNzYWdlLCBzaWduYXR1cmUpLnNob3VsZC5iZS50cnVlKCk7XG4gIH0pO1xuXG4gIGl0KCdzaWduIHBoYXNlIDUgZmFpbCAtIG1hbGljaW91cyBwbGF5ZXIgY2hlYXRzIHdpdGggYmFkIHMgc2hhcmUnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IEJ1ZmZlci5mcm9tKCdHRzE4IFBIQVNFIDUnKTtcblxuICAgIGNvbnN0IFtzaWduMSwgc2lnbjJdID0gW1xuICAgICAgZWNkc2EuZ2VuZXJhdGVWQVByb29mcyhtZXNzYWdlLCBlY2RzYS5zaWduKG1lc3NhZ2UsIHNpZ25Db21iaW5lMS5vU2hhcmUsIHNpZ25Db21iaW5lMi5kU2hhcmUpKSxcbiAgICAgIGVjZHNhLmdlbmVyYXRlVkFQcm9vZnMobWVzc2FnZSwgZWNkc2Euc2lnbihtZXNzYWdlLCBzaWduQ29tYmluZTIub1NoYXJlLCBzaWduQ29tYmluZTEuZFNoYXJlKSksXG4gICAgXTtcblxuICAgIHNpZ24xLlIuc2hvdWxkLmVxdWFsKHNpZ24yLlIpO1xuICAgIHNpZ24xLnkuc2hvdWxkLmVxdWFsKHNpZ24yLnkpO1xuICAgIHNpZ24xLm0udG9TdHJpbmcoJ2hleCcpLnNob3VsZC5lcXVhbChzaWduMi5tLnRvU3RyaW5nKCdoZXgnKSk7XG5cbiAgICAvLyBDaGFuZ2UgdGhlIHMgc2hhcmUgb2Ygc2lnbjEsIGFuZCByZWNhbGN1YWx0ZSBpdHMgViBhbG9uZyB3aXRoIHRoZSBjb21taXRtZW50L3Byb29mIGJ5IGZvbGxvd2luZyBwcm90b2NvbC5cbiAgICBjb25zdCBiYWRfcyA9IGhleFRvQmlnSW50KHNpZ24xLnMpICsgQmlnSW50KDEpO1xuXG4gICAgY29uc3QgYmFkX1YgPSBFY2RzYS5jdXJ2ZS5wb2ludEFkZChcbiAgICAgIEVjZHNhLmN1cnZlLnBvaW50TXVsdGlwbHkoaGV4VG9CaWdJbnQoc2lnbjEuUiksIGJhZF9zKSxcbiAgICAgIEVjZHNhLmN1cnZlLmJhc2VQb2ludE11bHQoc2lnbjEubClcbiAgICApO1xuXG4gICAgY29uc3QgY29tRGVjb21fVl9BID0gSGFzaENvbW1pdG1lbnQuY3JlYXRlQ29tbWl0bWVudChcbiAgICAgIEJ1ZmZlci5jb25jYXQoW1xuICAgICAgICBiaWdJbnRUb0J1ZmZlckJFKGJhZF9WLCBFY2RzYS5jdXJ2ZS5wb2ludEJ5dGVzKSxcbiAgICAgICAgYmlnSW50VG9CdWZmZXJCRShzaWduMS5BLCBFY2RzYS5jdXJ2ZS5wb2ludEJ5dGVzKSxcbiAgICAgIF0pXG4gICAgKTtcbiAgICBjb25zdCB6a1ZQcm9vZiA9IEVjZHNhWmtWUHJvb2YuY3JlYXRlWmtWUHJvb2YoXG4gICAgICBiYWRfVixcbiAgICAgIGJhZF9zLFxuICAgICAgc2lnbjEubCxcbiAgICAgIGhleFRvQmlnSW50KHNpZ24xLlIpLFxuICAgICAgRWNkc2EuY3VydmUsXG4gICAgICBzaWduMS5wcm9vZkNvbnRleHRcbiAgICApO1xuXG4gICAgc2lnbjEucyA9IGJpZ0ludFRvQnVmZmVyQkUoYmFkX3MsIDMyKS50b1N0cmluZygnaGV4Jyk7XG4gICAgc2lnbjEuViA9IGJhZF9WO1xuICAgIHNpZ24xLmNvbURlY29tVkEgPSBjb21EZWNvbV9WX0E7XG4gICAgc2lnbjEuemtWUHJvb2ZWID0gemtWUHJvb2Y7XG5cbiAgICAvLyA1QiB3aWxsIHBhc3MuXG4gICAgY29uc3QgW3B1YmxpY1ZBU2hhcmVzXzEsIHB1YmxpY1ZBU2hhcmVzXzJdID0gW3NpZ24xIGFzIFB1YmxpY1ZBU2hhcmVXaXRoUHJvb2ZzLCBzaWduMiBhcyBQdWJsaWNWQVNoYXJlV2l0aFByb29mc107XG4gICAgY29uc3QgW1VUMSwgVVQyXSA9IFtcbiAgICAgIGVjZHNhLnZlcmlmeVZBU2hhcmVzKHNpZ24xLCBbcHVibGljVkFTaGFyZXNfMl0pLFxuICAgICAgZWNkc2EudmVyaWZ5VkFTaGFyZXMoc2lnbjIsIFtwdWJsaWNWQVNoYXJlc18xXSksXG4gICAgXTtcblxuICAgIC8vIEJ1dCB2ZXJpZmljYXRpb24gYXQgYmVnaW5uaW5nIG9mIDVFIHdpbGwgZmFpbC5cbiAgICBjb25zdCBbcHVibGljVVRTaGFyZXNfMSwgcHVibGljVVRTaGFyZXNfMl0gPSBbVVQxIGFzIFB1YmxpY1VUU2hhcmUsIFVUMiBhcyBQdWJsaWNVVFNoYXJlXTtcbiAgICAoKCkgPT4gZWNkc2EudmVyaWZ5VVRTaGFyZXMoVVQxLCBbcHVibGljVVRTaGFyZXNfMl0pKS5zaG91bGQudGhyb3coJ1N1bSBvZiBhbGwgVV9pIGRvZXMgbm90IG1hdGNoIHN1bSBvZiBhbGwgVF9pJyk7XG4gICAgKCgpID0+IGVjZHNhLnZlcmlmeVVUU2hhcmVzKFVUMiwgW3B1YmxpY1VUU2hhcmVzXzFdKSkuc2hvdWxkLnRocm93KCdTdW0gb2YgYWxsIFVfaSBkb2VzIG5vdCBtYXRjaCBzdW0gb2YgYWxsIFRfaScpO1xuICB9KTtcbn0pO1xuIl19
223
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNkc2EuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvYWNjb3VudC1saWIvbXBjL3Rzcy9lY2RzYS9lY2RzYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0VBQWtEO0FBQ2xELGtCQUFnQjtBQUNoQixrREFBMEI7QUFDMUIsb0RBUTRCO0FBQzVCLG1FQUFrRTtBQU1sRSx5Q0FBOEM7QUFDOUMsOERBQTBEO0FBRTFELE1BQU0sWUFBWSxHQUFHLElBQUEsa0NBQWUsR0FBRSxDQUFDLE1BQU0sQ0FBQztBQUU5QyxRQUFRLENBQUMsV0FBVyxFQUFFO0lBQ3BCLE1BQU0sS0FBSyxHQUFHLElBQUksV0FBSyxFQUFFLENBQUM7SUFFMUIsSUFBSSxZQUEyQixFQUFFLFlBQTJCLENBQUM7SUFFN0QsTUFBTSxDQUFDLG9DQUFvQyxFQUFFLEtBQUs7UUFDaEQsTUFBTSxlQUFlLEdBQUcsZUFBSyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUV6RSxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLDJCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RSxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLDJCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RSxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLDJCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV4RSxNQUFNLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsR0FBRyxNQUFN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Q0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ2hELENBQUM7UUFFRixpREFBaUQ7UUFDakQsTUFBTSxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxHQUFvQixFQUFFLEdBQW9CLENBQUMsQ0FBQztRQUMxRixDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1FBQ25ILENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7SUFDckgsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhaWxsaWVyQmlnaW50IGZyb20gJ3BhaWxsaWVyLWJpZ2ludCc7XG5pbXBvcnQgJ3Nob3VsZCc7XG5pbXBvcnQgc2lub24gZnJvbSAnc2lub24nO1xuaW1wb3J0IHtcbiAgRWNkc2FQYWlsbGllclByb29mLFxuICBFY2RzYVJhbmdlUHJvb2YsXG4gIEVjZHNhVHlwZXMsXG4gIEVjZHNhWmtWUHJvb2YsXG4gIEhhc2hDb21taXRtZW50LFxuICBoZXhUb0JpZ0ludCxcbiAgYmlnSW50VG9CdWZmZXJCRSxcbn0gZnJvbSAnQGJpdGdvL3Nkay1saWItbXBjJztcbmltcG9ydCB7IEVjZHNhIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FjY291bnQtbGliL21wYy90c3MnO1xuaW1wb3J0IHtcbiAgUHVibGljVVRTaGFyZSxcbiAgUHVibGljVkFTaGFyZVdpdGhQcm9vZnMsXG4gIFNpZ25Db21iaW5lUlQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hY2NvdW50LWxpYi9tcGMvdHNzL2VjZHNhL3R5cGVzJztcbmltcG9ydCB7IHBhaWxsaWVyS2V5UGFpcnMgfSBmcm9tICcuL2ZpeHR1cmVzJztcbmltcG9ydCB7IGxvYWRXZWJBc3NlbWJseSB9IGZyb20gJ0BiaXRnby9zZGstb3BlbnNzbGJ5dGVzJztcblxuY29uc3Qgb3BlblNTTEJ5dGVzID0gbG9hZFdlYkFzc2VtYmx5KCkuYnVmZmVyO1xuXG5kZXNjcmliZSgnZWNkc2EgdHNzJywgZnVuY3Rpb24gKCkge1xuICBjb25zdCBlY2RzYSA9IG5ldyBFY2RzYSgpO1xuXG4gIGxldCBzaWduQ29tYmluZTE6IFNpZ25Db21iaW5lUlQsIHNpZ25Db21iaW5lMjogU2lnbkNvbWJpbmVSVDtcblxuICBiZWZvcmUoJ2dlbmVyYXRlIGtleSBhbmQgc2lnbiBwaGFzZSAxIHRvIDQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgcGFpbGxpZXJLZXlTdHViID0gc2lub24uc3R1YihwYWlsbGllckJpZ2ludCwgJ2dlbmVyYXRlUmFuZG9tS2V5cycpO1xuXG4gICAgcGFpbGxpZXJLZXlTdHViLm9uQ2FsbCgwKS5yZXR1cm5zKFByb21pc2UucmVzb2x2ZShwYWlsbGllcktleVBhaXJzWzBdKSk7XG4gICAgcGFpbGxpZXJLZXlTdHViLm9uQ2FsbCgxKS5yZXR1cm5zKFByb21pc2UucmVzb2x2ZShwYWlsbGllcktleVBhaXJzWzFdKSk7XG4gICAgcGFpbGxpZXJLZXlTdHViLm9uQ2FsbCgyKS5yZXR1cm5zKFByb21pc2UucmVzb2x2ZShwYWlsbGllcktleVBhaXJzWzJdKSk7XG5cbiAgICBjb25zdCBba2V5U2hhcmUxLCBrZXlTaGFyZTIsIGtleVNoYXJlM10gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICBlY2RzYS5rZXlTaGFyZSgxLCAyLCAzKSxcbiAgICAgIGVjZHNhLmtleVNoYXJlKDIsIDIsIDMpLFxuICAgICAgZWNkc2Eua2V5U2hhcmUoMywgMiwgMyksXG4gICAgXSk7XG5cbiAgICBjb25zdCBba2V5Q29tYmluZWQxLCBrZXlDb21iaW5lZDIsIGtleUNvbWJpbmVkM10gPSBbXG4gICAgICBlY2RzYS5rZXlDb21iaW5lKGtleVNoYXJlMS5wU2hhcmUsIFtrZXlTaGFyZTIublNoYXJlc1sxXSwga2V5U2hhcmUzLm5TaGFyZXNbMV1dKSxcbiAgICAgIGVjZHNhLmtleUNvbWJpbmUoa2V5U2hhcmUyLnBTaGFyZSwgW2tleVNoYXJlMS5uU2hhcmVzWzJdLCBrZXlTaGFyZTMublNoYXJlc1syXV0pLFxuICAgICAgZWNkc2Eua2V5Q29tYmluZShrZXlTaGFyZTMucFNoYXJlLCBba2V5U2hhcmUxLm5TaGFyZXNbM10sIGtleVNoYXJlMi5uU2hhcmVzWzNdXSksXG4gICAgXTtcblxuICAgIGtleUNvbWJpbmVkMS54U2hhcmUueS5zaG91bGQuZXF1YWwoa2V5Q29tYmluZWQyLnhTaGFyZS55KTtcbiAgICBrZXlDb21iaW5lZDEueFNoYXJlLnkuc2hvdWxkLmVxdWFsKGtleUNvbWJpbmVkMy54U2hhcmUueSk7XG5cbiAgICAvLyBDb2xsZWN0IGFsbCBWU1MgZnJvbSBuU2hhcmVzIGFuZCB2ZXJpZnkgU2Nobm9yciBwcm9vZnMgYWdhaW5zdCBYX2kuXG4gICAgLy8gTm90ZSB0aGF0IHRoaXMgaXMgc29tZXRoaW5nIFdQIG5lZWRzIHRvIGRvIGFmdGVyIGtleUNvbWJpbmUva2V5RGVyaXZlLlxuICAgIGNvbnN0IFkgPSBoZXhUb0JpZ0ludChrZXlDb21iaW5lZDEueFNoYXJlLnkpO1xuXG4gICAgY29uc3QgVlNTcyA9IFtcbiAgICAgIFtoZXhUb0JpZ0ludChrZXlTaGFyZTEublNoYXJlc1syXS52ISldLFxuICAgICAgW2hleFRvQmlnSW50KGtleVNoYXJlMi5uU2hhcmVzWzNdLnYhKV0sXG4gICAgICBbaGV4VG9CaWdJbnQoa2V5U2hhcmUzLm5TaGFyZXNbMV0udiEpXSxcbiAgICBdO1xuXG4gICAgZWNkc2EudmVyaWZ5U2Nobm9yclByb29mWChZLCBWU1NzLCAxLCBrZXlDb21iaW5lZDEueFNoYXJlLnNjaG5vcnJQcm9vZlgpLnNob3VsZC5iZS50cnVlKCk7XG4gICAgZWNkc2EudmVyaWZ5U2Nobm9yclByb29mWChZLCBWU1NzLCAyLCBrZXlDb21iaW5lZDIueFNoYXJlLnNjaG5vcnJQcm9vZlgpLnNob3VsZC5iZS50cnVlKCk7XG4gICAgZWNkc2EudmVyaWZ5U2Nobm9yclByb29mWChZLCBWU1NzLCAzLCBrZXlDb21iaW5lZDMueFNoYXJlLnNjaG5vcnJQcm9vZlgpLnNob3VsZC5iZS50cnVlKCk7XG5cbiAgICAvLyBWZXJpZnkgU2Nobm9yciBwcm9vZnMgYWdhaW5zdCBYX2kgZm9yIGtleURlcml2ZSBhbmQgc3Vic2VxdWVudCBrZXlDb21iaW5lLlxuICAgIGNvbnN0IHBhdGggPSAnbS8wLzEvMic7XG4gICAgY29uc3Qga2V5RGVyaXZlMSA9IGVjZHNhLmtleURlcml2ZShrZXlTaGFyZTEucFNoYXJlLCBba2V5U2hhcmUyLm5TaGFyZXNbMV0sIGtleVNoYXJlMy5uU2hhcmVzWzFdXSwgcGF0aCk7XG5cbiAgICAvLyBOb3RlIHRoZSBWU1NzIHVzZWQgaGVyZSBhcmUgZGlmZmVyZW50IGZyb20gdGhlIG9uZXMgdXNlZCBhYm92ZS5cbiAgICBjb25zdCBkZXJpdmVkWSA9IGhleFRvQmlnSW50KGtleURlcml2ZTEueFNoYXJlLnkpO1xuICAgIGNvbnN0IGRlcml2ZWRWU1NzID0gW1xuICAgICAgW2hleFRvQmlnSW50KGtleURlcml2ZTEublNoYXJlc1syXS52ISldLFxuICAgICAgW2hleFRvQmlnSW50KGtleVNoYXJlMi5uU2hhcmVzWzNdLnYhKV0sXG4gICAgICBbaGV4VG9CaWdJbnQoa2V5U2hhcmUzLm5TaGFyZXNbMV0udiEpXSxcbiAgICBdO1xuICAgIGVjZHNhLnZlcmlmeVNjaG5vcnJQcm9vZlgoZGVyaXZlZFksIGRlcml2ZWRWU1NzLCAxLCBrZXlEZXJpdmUxLnhTaGFyZS5zY2hub3JyUHJvb2ZYKS5zaG91bGQuYmUudHJ1ZSgpO1xuXG4gICAgY29uc3Qga2V5Q29tYmluZWQyRnJvbUtleURlcml2ZTEgPSBlY2RzYS5rZXlDb21iaW5lKGtleVNoYXJlMi5wU2hhcmUsIFtcbiAgICAgIGtleURlcml2ZTEublNoYXJlc1syXSxcbiAgICAgIGtleVNoYXJlMy5uU2hhcmVzWzJdLFxuICAgIF0pO1xuICAgIGVjZHNhXG4gICAgICAudmVyaWZ5U2Nobm9yclByb29mWChkZXJpdmVkWSwgZGVyaXZlZFZTU3MsIDIsIGtleUNvbWJpbmVkMkZyb21LZXlEZXJpdmUxLnhTaGFyZS5zY2hub3JyUHJvb2ZYKVxuICAgICAgLnNob3VsZC5iZS50cnVlKCk7XG5cbiAgICBjb25zdCBbbnRpbGRlMSwgbnRpbGRlMl0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICBFY2RzYVJhbmdlUHJvb2YuZ2VuZXJhdGVOdGlsZGUob3BlblNTTEJ5dGVzLCA1MTIpLFxuICAgICAgRWNkc2FSYW5nZVByb29mLmdlbmVyYXRlTnRpbGRlKG9wZW5TU0xCeXRlcywgNTEyKSxcbiAgICBdKTtcblxuICAgIGNvbnN0IFtzZXJpYWxpemVOdGlsZGUxLCBzZXJpYWxpemVOdGlsZGUyXSA9IFtcbiAgICAgIEVjZHNhVHlwZXMuc2VyaWFsaXplTnRpbGRlV2l0aFByb29mcyhudGlsZGUxKSxcbiAgICAgIEVjZHNhVHlwZXMuc2VyaWFsaXplTnRpbGRlV2l0aFByb29mcyhudGlsZGUyKSxcbiAgICBdO1xuXG4gICAgY29uc3QgW2luZGV4MSwgaW5kZXgyXSA9IFtrZXlDb21iaW5lZDEueFNoYXJlLmksIGtleUNvbWJpbmVkMi54U2hhcmUuaV07XG5cbiAgICBjb25zdCBbcGFpbGxpZXJOMXRvMiwgcGFpbGxpZXJOMnRvMV0gPSBba2V5Q29tYmluZWQxLnlTaGFyZXNbaW5kZXgyXS5uLCBrZXlDb21iaW5lZDIueVNoYXJlc1tpbmRleDFdLm5dO1xuXG4gICAgY29uc3QgW3BhaWxsaWVyQ2hhbGxlbmdlcjF0bzIsIHBhaWxsaWVyQ2hhbGxlbmdlcjJ0bzFdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgRWNkc2FQYWlsbGllclByb29mLmdlbmVyYXRlUChoZXhUb0JpZ0ludChwYWlsbGllck4xdG8yKSksXG4gICAgICBFY2RzYVBhaWxsaWVyUHJvb2YuZ2VuZXJhdGVQKGhleFRvQmlnSW50KHBhaWxsaWVyTjJ0bzEpKSxcbiAgICBdKTtcblxuICAgIGNvbnN0IFt4U2hhcmUxLCB4U2hhcmUyXSA9IFtcbiAgICAgIGVjZHNhLmFwcGVuZENoYWxsZW5nZShcbiAgICAgICAga2V5Q29tYmluZWQxLnhTaGFyZSxcbiAgICAgICAgc2VyaWFsaXplTnRpbGRlMSxcbiAgICAgICAgRWNkc2FUeXBlcy5zZXJpYWxpemVQYWlsbGllckNoYWxsZW5nZSh7IHA6IHBhaWxsaWVyQ2hhbGxlbmdlcjF0bzIgfSlcbiAgICAgICksXG4gICAgICBlY2RzYS5hcHBlbmRDaGFsbGVuZ2UoXG4gICAgICAgIGtleUNvbWJpbmVkMi54U2hhcmUsXG4gICAgICAgIHNlcmlhbGl6ZU50aWxkZTIsXG4gICAgICAgIEVjZHNhVHlwZXMuc2VyaWFsaXplUGFpbGxpZXJDaGFsbGVuZ2UoeyBwOiBwYWlsbGllckNoYWxsZW5nZXIydG8xIH0pXG4gICAgICApLFxuICAgIF07XG5cbiAgICBjb25zdCB5U2hhcmUyID0gZWNkc2EuYXBwZW5kQ2hhbGxlbmdlKFxuICAgICAga2V5Q29tYmluZWQxLnlTaGFyZXNbaW5kZXgyXSxcbiAgICAgIHNlcmlhbGl6ZU50aWxkZTIsXG4gICAgICBFY2RzYVR5cGVzLnNlcmlhbGl6ZVBhaWxsaWVyQ2hhbGxlbmdlKHsgcDogcGFpbGxpZXJDaGFsbGVuZ2VyMnRvMSB9KVxuICAgICk7XG5cbiAgICBjb25zdCBzaWduU2hhcmVzID0gYXdhaXQgZWNkc2Euc2lnblNoYXJlKHhTaGFyZTEsIHlTaGFyZTIpO1xuXG4gICAgY29uc3Qgc2lnbkNvbnZlcnRTMjEgPSBhd2FpdCBlY2RzYS5zaWduQ29udmVydFN0ZXAxKHtcbiAgICAgIHhTaGFyZTogeFNoYXJlMixcbiAgICAgIHlTaGFyZToga2V5Q29tYmluZWQyLnlTaGFyZXNbaW5kZXgxXSxcbiAgICAgIGtTaGFyZTogc2lnblNoYXJlcy5rU2hhcmUsXG4gICAgfSk7XG4gICAgY29uc3Qgc2lnbkNvbnZlcnRTMTIgPSBhd2FpdCBlY2RzYS5zaWduQ29udmVydFN0ZXAyKHtcbiAgICAgIGFTaGFyZTogc2lnbkNvbnZlcnRTMjEuYVNoYXJlLFxuICAgICAgd1NoYXJlOiBzaWduU2hhcmVzLndTaGFyZSxcbiAgICB9KTtcbiAgICBjb25zdCBzaWduQ29udmVydFMyMV8yID0gYXdhaXQgZWNkc2Euc2lnbkNvbnZlcnRTdGVwMyh7XG4gICAgICBtdVNoYXJlOiBzaWduQ29udmVydFMxMi5tdVNoYXJlLFxuICAgICAgYlNoYXJlOiBzaWduQ29udmVydFMyMS5iU2hhcmUsXG4gICAgfSk7XG5cbiAgICBbc2lnbkNvbWJpbmUxLCBzaWduQ29tYmluZTJdID0gW1xuICAgICAgZWNkc2Euc2lnbkNvbWJpbmUoe1xuICAgICAgICBnU2hhcmU6IHNpZ25Db252ZXJ0UzEyLmdTaGFyZSxcbiAgICAgICAgc2lnbkluZGV4OiB7XG4gICAgICAgICAgaTogc2lnbkNvbnZlcnRTMTIubXVTaGFyZS5pLFxuICAgICAgICAgIGo6IHNpZ25Db252ZXJ0UzEyLm11U2hhcmUuaixcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgZWNkc2Euc2lnbkNvbWJpbmUoe1xuICAgICAgICBnU2hhcmU6IHNpZ25Db252ZXJ0UzIxXzIuZ1NoYXJlLFxuICAgICAgICBzaWduSW5kZXg6IHtcbiAgICAgICAgICBpOiBzaWduQ29udmVydFMyMV8yLnNpZ25JbmRleC5pLFxuICAgICAgICAgIGo6IHNpZ25Db252ZXJ0UzIxXzIuc2lnbkluZGV4LmosXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICBdO1xuICB9KTtcblxuICBpdCgnc2lnbiBwaGFzZSA1IHNob3VsZCBzdWNjZWVkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIC8vIFRPRE8oSFNNLTEyOSk6IFRoZXJlIGlzIGEgYnVnIHNpZ25pbmcgdW5oYXNoZWQgbWVzc2FnZSAoYWx0aG91Z2ggdGhpcyBkZXZpYXRlcyBmcm9tIERTQSBzcGVjKSBpZiB0aGUgbWVzc2FnZSBpcyBhIGxpdHRsZSBsb25nLlxuICAgIC8vICAgICAgIFNvbWUgZGlzY3JlcGFuY3kgYmV0d2VlbiBFY2RzYS5zaWduIGFuZCBzZWNwMjU2azEucmVjb3ZlclB1YmxpY0tleSBvbiBoYW5kbGluZyB0aGUgbWVzc2FnZSBpbnB1dC5cbiAgICBjb25zdCBtZXNzYWdlID0gQnVmZmVyLmZyb20oJ0dHMTggUEhBU0UgNScpO1xuXG4gICAgLy8gU3RhcnRpbmcgcGhhc2UgNVxuICAgIC8vIEluIGFkZGl0aW9uIHRvIHJldHVybmluZyBzX2ksIEVjZHNhLnNpZ24oKSBub3cgYWxzbyBjYWxjdWxhdGVzIGRhdGEgbmVlZGVkIGZvciBzdGVwcyA1QSBhbmQgNUI6XG4gICAgLy8gICAtIHNhbXBsZSByYW5kb20gbF9pIGFuZCByaG9faSAoNUEpXG4gICAgLy8gICAtIGNvbXB1dGVzIFZfaSBhbmQgQV9pICg1QildXG4gICAgLy8gICAtIGNvbXB1dGVzIGNvbW1pdG1lbnQgYW5kIGRlY29tbWl0bWVudCBvZiAoVl9pLCBBX2kpICg1QSwgNUIpXG4gICAgLy8gICAtIGdlbmVyYXRlcyBwcm9vZnMgb2Yga25vd2xlZGdlIG9mIHNfaSwgbF9pLCByaG9faSB3LnIudC4gVl9pLCBBX2kgKDVCKVxuICAgIGNvbnN0IFtzaWduMSwgc2lnbjJdID0gW1xuICAgICAgZWNkc2EuZ2VuZXJhdGVWQVByb29mcyhtZXNzYWdlLCBlY2RzYS5zaWduKG1lc3NhZ2UsIHNpZ25Db21iaW5lMS5vU2hhcmUsIHNpZ25Db21iaW5lMi5kU2hhcmUpKSxcbiAgICAgIGVjZHNhLmdlbmVyYXRlVkFQcm9vZnMobWVzc2FnZSwgZWNkc2Euc2lnbihtZXNzYWdlLCBzaWduQ29tYmluZTIub1NoYXJlLCBzaWduQ29tYmluZTEuZFNoYXJlKSksXG4gICAgXTtcblxuICAgIHNpZ24xLlIuc2hvdWxkLmVxdWFsKHNpZ24yLlIpO1xuICAgIHNpZ24xLnkuc2hvdWxkLmVxdWFsKHNpZ24yLnkpO1xuICAgIHNpZ24xLm0udG9TdHJpbmcoJ2hleCcpLnNob3VsZC5lcXVhbChzaWduMi5tLnRvU3RyaW5nKCdoZXgnKSk7XG5cbiAgICAvLyBTdGVwIDVBOiBDYWxjdWxhdGlvbnMgZG9uZSBieSBFY2RzYS5zaWduKCkgYWJvdmUsIGFuZCBicm9hZGNhc3QgY29tbWl0bWVudCBvZiAoVl9pLCBBX2kpIHRvIG90aGVyIHBhcnRpZXMuXG4gICAgLy8gICAgICAgICAgVGhlIGZvbGxvd2luZyB2YWx1ZXMgd2lsbCBiZSBzZW50IHZpYSBjb21tdW5pY2F0aW9uIGNoYW5uZWwgYXQgdGhlIGVuZCBvZiA1QS5cbiAgICAvLyBjb25zdCBjb21taXRtZW50VkExID0gc2lnbjEuY29tRGVjb21WQS5jb21taXRtZW50O1xuICAgIC8vIGNvbnN0IGNvbW1pdG1lbnRWQTIgPSBzaWduMi5jb21EZWNvbVZBLmNvbW1pdG1lbnQ7XG5cbiAgICAvLyBTdGVwIDVCOiBBZnRlciBoYXZpbmcgcmVjZWl2ZWQgYWxsIGNvbW1pdG1lbnRzIG9mIChWX2ksIEFfaSkgZnJvbSBvdGhlciBwYXJ0aWVzLFxuICAgIC8vICAgICAgICAgIGVhY2ggcGFydHkgd2lsbCBicm9hZGNhc3QgZGVjb21taXRtZW50IG9mIChWX2ksIEFfaSkgYW5kIFpLIHByb29mcyByZXR1cm5lZCBieSBFY2RzYS5zaWduKCkgYWJvdmVcbiAgICAvLyAgICAgICAgICB0byBvdGhlciBwYXJ0aWVzLiAgVGhlbiBFY2RzYS52ZXJpZnlWQVNoYXJlcygpIGJlbG93IHdpbGw6XG4gICAgLy8gICAtIHZlcmlmeSBjb21taXRtZW50cyBvZiAoVl9pLCBBX2kpIHJlY2VpdmVkIGZyb20gb3RoZXIgcGFydGllcyAoNUIpXG4gICAgLy8gICAtIHZlcmlmeSBaSyBwcm9vZnMgb2YgKFZfaSwgQV9pKSByZWNlaXZlZCBmcm9tIG90aGVyIHBhcnRpZXMgKDVCKVxuICAgIC8vICAgLSBjYWxjdWxhdGUgViBvdXQgb2YgRywgeSwgciwgbSwgYW5kIGFsbCBWX2ksIGNhbGN1bGF0ZSBBIGFzIHN1bSBvZiBhbGwgQV9pICg1QilcbiAgICAvLyAgIC0gY2FsY3VsYXRlIFVfaSBhbmQgVF9pIGFuZCBjb21taXRtZW50IGFuZCBkZWNvbW1pdG1lbnQgb2YgKFVfaSwgVF9pKSAoNUMpXG4gICAgY29uc3QgW3B1YmxpY1ZBU2hhcmVzXzEsIHB1YmxpY1ZBU2hhcmVzXzJdID0gW3NpZ24xIGFzIFB1YmxpY1ZBU2hhcmVXaXRoUHJvb2ZzLCBzaWduMiBhcyBQdWJsaWNWQVNoYXJlV2l0aFByb29mc107XG4gICAgY29uc3QgW1VUMSwgVVQyXSA9IFtcbiAgICAgIGVjZHNhLnZlcmlmeVZBU2hhcmVzKHNpZ24xLCBbcHVibGljVkFTaGFyZXNfMl0pLFxuICAgICAgZWNkc2EudmVyaWZ5VkFTaGFyZXMoc2lnbjIsIFtwdWJsaWNWQVNoYXJlc18xXSksXG4gICAgXTtcblxuICAgIC8vIFN0ZXAgNUM6IENhbGN1bGF0aW9ucyBvZiBVX2ksIFRfaSBkb25lIGJ5IEVjZHNhLnZlcmlmeVZBU2hhcmVzIGFib3ZlLFxuICAgIC8vICAgICAgICAgIGFuZCBicm9hZGNhc3QgY29tbWl0bWVudCBvZiAoVV9pLCBUX2kpIHRvIG90aGVyIHBhcnRpZXMuXG4gICAgLy8gICAgICAgICAgVGhlIGZvbGxvd2luZyB2YWx1ZXMgd2lsbCBiZSBzZW50IHZpYSBjb21tdW5pY2F0aW9uIGNoYW5uZWwgYXQgdGhlIGVuZCBvZiA1Qy5cbiAgICAvLyBjb25zdCBjb21taXRtZW50VVQxID0gVVQxLmNvbURlY29tVVQuY29tbWl0bWVudDtcbiAgICAvLyBjb25zdCBjb21taXRtZW50VVQyID0gVVQyLmNvbURlY29tVVQuY29tbWl0bWVudDtcblxuICAgIC8vIFN0ZXAgNUQ6IEFmdGVyIGhhdmluZyByZWNlaXZlZCBhbGwgY29tbWl0bWVudHMgb2YgKFVfaSwgVF9pKSBmcm9tIG90aGVyIHBhcnRpZXMsXG4gICAgLy8gICAgICAgICAgZWFjaCBwYXJ0eSB3aWxsIGJyb2FkY2FzdCBkZWNvbW1pdG1lbnQgb2YgKFVfaSwgVF9pKSByZXR1cm5lZCBieSBFY2RzYS52ZXJpZnlWQVNoYXJlcygpIGFib3ZlXG4gICAgLy8gICAgICAgICAgdG8gb3RoZXIgcGFydGllcy4gIFRoZW4gRWNkc2EudmVyaWZ5VVRTaGFyZXMoKSBiZWxvdyB3aWxsOlxuICAgIC8vICAtIHZlcmlmeSBjb21taXRtZW50cyBvZiAoVV9pLCBUX2kpIHJlY2VpdmVkIGZyb20gb3RoZXIgcGFydGllcyAoNUQpXG4gICAgLy8gIC0gY2FsY3VsYXRlIFUgYXMgc3VtIG9mIGFsbCBVX2ksIGNhbGN1bGF0ZSBUIGFzIHN1bSBvZiBhbGwgVF9pICg1RClcbiAgICAvLyAgLSBpZiBVIGVxdWFscyBULCB0aGVuIHJldHVybiBvd24gU1NoYXJlIHdoaWNoIGlzIGJlaW5nIHJldHVybmVkIGJ5IEVjZHNhLnNpZ24oKSByaWdodCBub3cgKDVFKVxuICAgIGNvbnN0IFtwdWJsaWNVVFNoYXJlc18xLCBwdWJsaWNVVFNoYXJlc18yXSA9IFtVVDEgYXMgUHVibGljVVRTaGFyZSwgVVQyIGFzIFB1YmxpY1VUU2hhcmVdO1xuICAgIGNvbnN0IFtzaWduYXR1cmUxLCBzaWduYXR1cmUyXSA9IFtcbiAgICAgIGVjZHNhLnZlcmlmeVVUU2hhcmVzKFVUMSwgW3B1YmxpY1VUU2hhcmVzXzJdKSxcbiAgICAgIGVjZHNhLnZlcmlmeVVUU2hhcmVzKFVUMiwgW3B1YmxpY1VUU2hhcmVzXzFdKSxcbiAgICBdO1xuXG4gICAgLy8gU3RlcCA1RTogQnJvYWRjYXN0IHNfaSByZXR1cm5lZCBieSBFY2RzYS52ZXJpZnlVVFNoYXJlcygpIGFib3ZlIHRvIG90aGVyIHBhcnRpZXMuXG4gICAgLy8gICAgICAgICAgVmVyaWZ5IHRoZSBzdW0gb2Ygc19pIHNob3VsZCBiZSBhIHZhbGlkIHNpZ25hdHVyZS5cbiAgICBjb25zdCBzaWduYXR1cmUgPSBlY2RzYS5jb25zdHJ1Y3RTaWduYXR1cmUoW3NpZ25hdHVyZTEsIHNpZ25hdHVyZTJdKTtcbiAgICBlY2RzYS52ZXJpZnkobWVzc2FnZSwgc2lnbmF0dXJlKS5zaG91bGQuYmUudHJ1ZSgpO1xuICB9KTtcblxuICBpdCgnc2lnbiBwaGFzZSA1IGZhaWwgLSBtYWxpY2lvdXMgcGxheWVyIGNoZWF0cyB3aXRoIGJhZCBzIHNoYXJlJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBCdWZmZXIuZnJvbSgnR0cxOCBQSEFTRSA1Jyk7XG5cbiAgICBjb25zdCBbc2lnbjEsIHNpZ24yXSA9IFtcbiAgICAgIGVjZHNhLmdlbmVyYXRlVkFQcm9vZnMobWVzc2FnZSwgZWNkc2Euc2lnbihtZXNzYWdlLCBzaWduQ29tYmluZTEub1NoYXJlLCBzaWduQ29tYmluZTIuZFNoYXJlKSksXG4gICAgICBlY2RzYS5nZW5lcmF0ZVZBUHJvb2ZzKG1lc3NhZ2UsIGVjZHNhLnNpZ24obWVzc2FnZSwgc2lnbkNvbWJpbmUyLm9TaGFyZSwgc2lnbkNvbWJpbmUxLmRTaGFyZSkpLFxuICAgIF07XG5cbiAgICBzaWduMS5SLnNob3VsZC5lcXVhbChzaWduMi5SKTtcbiAgICBzaWduMS55LnNob3VsZC5lcXVhbChzaWduMi55KTtcbiAgICBzaWduMS5tLnRvU3RyaW5nKCdoZXgnKS5zaG91bGQuZXF1YWwoc2lnbjIubS50b1N0cmluZygnaGV4JykpO1xuXG4gICAgLy8gQ2hhbmdlIHRoZSBzIHNoYXJlIG9mIHNpZ24xLCBhbmQgcmVjYWxjdWFsdGUgaXRzIFYgYWxvbmcgd2l0aCB0aGUgY29tbWl0bWVudC9wcm9vZiBieSBmb2xsb3dpbmcgcHJvdG9jb2wuXG4gICAgY29uc3QgYmFkX3MgPSBoZXhUb0JpZ0ludChzaWduMS5zKSArIEJpZ0ludCgxKTtcblxuICAgIGNvbnN0IGJhZF9WID0gRWNkc2EuY3VydmUucG9pbnRBZGQoXG4gICAgICBFY2RzYS5jdXJ2ZS5wb2ludE11bHRpcGx5KGhleFRvQmlnSW50KHNpZ24xLlIpLCBiYWRfcyksXG4gICAgICBFY2RzYS5jdXJ2ZS5iYXNlUG9pbnRNdWx0KHNpZ24xLmwpXG4gICAgKTtcblxuICAgIGNvbnN0IGNvbURlY29tX1ZfQSA9IEhhc2hDb21taXRtZW50LmNyZWF0ZUNvbW1pdG1lbnQoXG4gICAgICBCdWZmZXIuY29uY2F0KFtcbiAgICAgICAgYmlnSW50VG9CdWZmZXJCRShiYWRfViwgRWNkc2EuY3VydmUucG9pbnRCeXRlcyksXG4gICAgICAgIGJpZ0ludFRvQnVmZmVyQkUoc2lnbjEuQSwgRWNkc2EuY3VydmUucG9pbnRCeXRlcyksXG4gICAgICBdKVxuICAgICk7XG4gICAgY29uc3QgemtWUHJvb2YgPSBFY2RzYVprVlByb29mLmNyZWF0ZVprVlByb29mKFxuICAgICAgYmFkX1YsXG4gICAgICBiYWRfcyxcbiAgICAgIHNpZ24xLmwsXG4gICAgICBoZXhUb0JpZ0ludChzaWduMS5SKSxcbiAgICAgIEVjZHNhLmN1cnZlLFxuICAgICAgc2lnbjEucHJvb2ZDb250ZXh0XG4gICAgKTtcblxuICAgIHNpZ24xLnMgPSBiaWdJbnRUb0J1ZmZlckJFKGJhZF9zLCAzMikudG9TdHJpbmcoJ2hleCcpO1xuICAgIHNpZ24xLlYgPSBiYWRfVjtcbiAgICBzaWduMS5jb21EZWNvbVZBID0gY29tRGVjb21fVl9BO1xuICAgIHNpZ24xLnprVlByb29mViA9IHprVlByb29mO1xuXG4gICAgLy8gNUIgd2lsbCBwYXNzLlxuICAgIGNvbnN0IFtwdWJsaWNWQVNoYXJlc18xLCBwdWJsaWNWQVNoYXJlc18yXSA9IFtzaWduMSBhcyBQdWJsaWNWQVNoYXJlV2l0aFByb29mcywgc2lnbjIgYXMgUHVibGljVkFTaGFyZVdpdGhQcm9vZnNdO1xuICAgIGNvbnN0IFtVVDEsIFVUMl0gPSBbXG4gICAgICBlY2RzYS52ZXJpZnlWQVNoYXJlcyhzaWduMSwgW3B1YmxpY1ZBU2hhcmVzXzJdKSxcbiAgICAgIGVjZHNhLnZlcmlmeVZBU2hhcmVzKHNpZ24yLCBbcHVibGljVkFTaGFyZXNfMV0pLFxuICAgIF07XG5cbiAgICAvLyBCdXQgdmVyaWZpY2F0aW9uIGF0IGJlZ2lubmluZyBvZiA1RSB3aWxsIGZhaWwuXG4gICAgY29uc3QgW3B1YmxpY1VUU2hhcmVzXzEsIHB1YmxpY1VUU2hhcmVzXzJdID0gW1VUMSBhcyBQdWJsaWNVVFNoYXJlLCBVVDIgYXMgUHVibGljVVRTaGFyZV07XG4gICAgKCgpID0+IGVjZHNhLnZlcmlmeVVUU2hhcmVzKFVUMSwgW3B1YmxpY1VUU2hhcmVzXzJdKSkuc2hvdWxkLnRocm93KCdTdW0gb2YgYWxsIFVfaSBkb2VzIG5vdCBtYXRjaCBzdW0gb2YgYWxsIFRfaScpO1xuICAgICgoKSA9PiBlY2RzYS52ZXJpZnlVVFNoYXJlcyhVVDIsIFtwdWJsaWNVVFNoYXJlc18xXSkpLnNob3VsZC50aHJvdygnU3VtIG9mIGFsbCBVX2kgZG9lcyBub3QgbWF0Y2ggc3VtIG9mIGFsbCBUX2knKTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=lightningUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lightningUtils.d.ts","sourceRoot":"","sources":["../../../../../test/unit/bitgo/lightning/lightningUtils.ts"],"names":[],"mappings":""}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
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);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const assert_1 = __importDefault(require("assert"));
30
+ const utxolib = __importStar(require("@bitgo/utxo-lib"));
31
+ const lightning_1 = require("../../../../src/bitgo/lightning");
32
+ describe('lightning utils', function () {
33
+ [
34
+ { name: 'lnbtc', networkName: 'bitcoin' },
35
+ { name: 'tlnbtc', networkName: 'testnet' },
36
+ ].forEach(({ name, networkName }) => {
37
+ describe(`success - coin ${name} and network ${networkName}`, function () {
38
+ it(`isValidLightningNetworkName and getLightningNetwork`, function () {
39
+ (0, assert_1.default)((0, lightning_1.isValidLightningNetworkName)(networkName));
40
+ const network = (0, lightning_1.getLightningNetwork)(networkName);
41
+ assert_1.default.strictEqual(network, utxolib.networks[networkName]);
42
+ });
43
+ it(`isValidLightningNetwork`, function () {
44
+ (0, assert_1.default)((0, lightning_1.isValidLightningNetworkName)(networkName));
45
+ (0, assert_1.default)((0, lightning_1.isValidLightningNetwork)(utxolib.networks[networkName]));
46
+ });
47
+ it(`getUtxolibNetworkName`, function () {
48
+ assert_1.default.strictEqual((0, lightning_1.getUtxolibNetworkName)(name), networkName);
49
+ });
50
+ });
51
+ });
52
+ it(`isValidLightningNetworkName should return false for non lightning network name`, function () {
53
+ assert_1.default.strictEqual((0, lightning_1.isValidLightningNetworkName)('litecoin'), false);
54
+ });
55
+ it(`isValidLightningNetwork should return false for non lightning network`, function () {
56
+ assert_1.default.strictEqual((0, lightning_1.isValidLightningNetwork)(utxolib.networks['litecoin']), false);
57
+ });
58
+ it(`isValidLightningNetwork should return undefined for non lightning coin`, function () {
59
+ assert_1.default.strictEqual((0, lightning_1.getUtxolibNetworkName)('ltc'), undefined);
60
+ });
61
+ });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRuaW5nVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvYml0Z28vbGlnaHRuaW5nL2xpZ2h0bmluZ1V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIseURBQTJDO0FBRTNDLCtEQUt5QztBQUV6QyxRQUFRLENBQUMsaUJBQWlCLEVBQUU7SUFDMUI7UUFDRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRTtRQUN6QyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRTtLQUMzQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUU7UUFDbEMsUUFBUSxDQUFDLGtCQUFrQixJQUFJLGdCQUFnQixXQUFXLEVBQUUsRUFBRTtZQUM1RCxFQUFFLENBQUMscURBQXFELEVBQUU7Z0JBQ3hELElBQUEsZ0JBQU0sRUFBQyxJQUFBLHVDQUEyQixFQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pELE1BQU0sT0FBTyxHQUFHLElBQUEsK0JBQW1CLEVBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ2pELGdCQUFNLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDN0QsQ0FBQyxDQUFDLENBQUM7WUFFSCxFQUFFLENBQUMseUJBQXlCLEVBQUU7Z0JBQzVCLElBQUEsZ0JBQU0sRUFBQyxJQUFBLHVDQUEyQixFQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pELElBQUEsZ0JBQU0sRUFBQyxJQUFBLG1DQUF1QixFQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLENBQUMsQ0FBQyxDQUFDO1lBRUgsRUFBRSxDQUFDLHVCQUF1QixFQUFFO2dCQUMxQixnQkFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFBLGlDQUFxQixFQUFDLElBQUksQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQy9ELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxnRkFBZ0YsRUFBRTtRQUNuRixnQkFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFBLHVDQUEyQixFQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JFLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHVFQUF1RSxFQUFFO1FBQzFFLGdCQUFNLENBQUMsV0FBVyxDQUFDLElBQUEsbUNBQXVCLEVBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ25GLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHdFQUF3RSxFQUFFO1FBQzNFLGdCQUFNLENBQUMsV0FBVyxDQUFDLElBQUEsaUNBQXFCLEVBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDOUQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcblxuaW1wb3J0IHtcbiAgZ2V0TGlnaHRuaW5nTmV0d29yayxcbiAgZ2V0VXR4b2xpYk5ldHdvcmtOYW1lLFxuICBpc1ZhbGlkTGlnaHRuaW5nTmV0d29yayxcbiAgaXNWYWxpZExpZ2h0bmluZ05ldHdvcmtOYW1lLFxufSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvYml0Z28vbGlnaHRuaW5nJztcblxuZGVzY3JpYmUoJ2xpZ2h0bmluZyB1dGlscycsIGZ1bmN0aW9uICgpIHtcbiAgW1xuICAgIHsgbmFtZTogJ2xuYnRjJywgbmV0d29ya05hbWU6ICdiaXRjb2luJyB9LFxuICAgIHsgbmFtZTogJ3RsbmJ0YycsIG5ldHdvcmtOYW1lOiAndGVzdG5ldCcgfSxcbiAgXS5mb3JFYWNoKCh7IG5hbWUsIG5ldHdvcmtOYW1lIH0pID0+IHtcbiAgICBkZXNjcmliZShgc3VjY2VzcyAtIGNvaW4gJHtuYW1lfSBhbmQgbmV0d29yayAke25ldHdvcmtOYW1lfWAsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGl0KGBpc1ZhbGlkTGlnaHRuaW5nTmV0d29ya05hbWUgYW5kIGdldExpZ2h0bmluZ05ldHdvcmtgLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGFzc2VydChpc1ZhbGlkTGlnaHRuaW5nTmV0d29ya05hbWUobmV0d29ya05hbWUpKTtcbiAgICAgICAgY29uc3QgbmV0d29yayA9IGdldExpZ2h0bmluZ05ldHdvcmsobmV0d29ya05hbWUpO1xuICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV0d29yaywgdXR4b2xpYi5uZXR3b3Jrc1tuZXR3b3JrTmFtZV0pO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KGBpc1ZhbGlkTGlnaHRuaW5nTmV0d29ya2AsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgYXNzZXJ0KGlzVmFsaWRMaWdodG5pbmdOZXR3b3JrTmFtZShuZXR3b3JrTmFtZSkpO1xuICAgICAgICBhc3NlcnQoaXNWYWxpZExpZ2h0bmluZ05ldHdvcmsodXR4b2xpYi5uZXR3b3Jrc1tuZXR3b3JrTmFtZV0pKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdChgZ2V0VXR4b2xpYk5ldHdvcmtOYW1lYCwgZnVuY3Rpb24gKCkge1xuICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ2V0VXR4b2xpYk5ldHdvcmtOYW1lKG5hbWUpLCBuZXR3b3JrTmFtZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoYGlzVmFsaWRMaWdodG5pbmdOZXR3b3JrTmFtZSBzaG91bGQgcmV0dXJuIGZhbHNlIGZvciBub24gbGlnaHRuaW5nIG5ldHdvcmsgbmFtZWAsIGZ1bmN0aW9uICgpIHtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaXNWYWxpZExpZ2h0bmluZ05ldHdvcmtOYW1lKCdsaXRlY29pbicpLCBmYWxzZSk7XG4gIH0pO1xuXG4gIGl0KGBpc1ZhbGlkTGlnaHRuaW5nTmV0d29yayBzaG91bGQgcmV0dXJuIGZhbHNlIGZvciBub24gbGlnaHRuaW5nIG5ldHdvcmtgLCBmdW5jdGlvbiAoKSB7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlzVmFsaWRMaWdodG5pbmdOZXR3b3JrKHV0eG9saWIubmV0d29ya3NbJ2xpdGVjb2luJ10pLCBmYWxzZSk7XG4gIH0pO1xuXG4gIGl0KGBpc1ZhbGlkTGlnaHRuaW5nTmV0d29yayBzaG91bGQgcmV0dXJuIHVuZGVmaW5lZCBmb3Igbm9uIGxpZ2h0bmluZyBjb2luYCwgZnVuY3Rpb24gKCkge1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChnZXRVdHhvbGliTmV0d29ya05hbWUoJ2x0YycpLCB1bmRlZmluZWQpO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=signableJson.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signableJson.d.ts","sourceRoot":"","sources":["../../../../../test/unit/bitgo/lightning/signableJson.ts"],"names":[],"mappings":""}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const lightning_1 = require("../../../../src/bitgo/lightning");
7
+ const assert_1 = __importDefault(require("assert"));
8
+ describe('canonicalizeObject', function () {
9
+ it('should return the canonicalized object with sorted keys', function () {
10
+ const input = { b: 1, a: 2 };
11
+ const expected = { a: 2, b: 1 };
12
+ const result = (0, lightning_1.canonicalizeObject)(input);
13
+ assert_1.default.notDeepStrictEqual(JSON.stringify(input), JSON.stringify(expected));
14
+ assert_1.default.deepStrictEqual(JSON.stringify(result), JSON.stringify(expected));
15
+ });
16
+ it('should handle nested objects and sort their keys', function () {
17
+ const input = { b: { d: 4, c: 3 }, a: 2 };
18
+ const expected = { a: 2, b: { c: 3, d: 4 } };
19
+ const result = (0, lightning_1.canonicalizeObject)(input);
20
+ assert_1.default.notDeepStrictEqual(JSON.stringify(input), JSON.stringify(expected));
21
+ assert_1.default.deepStrictEqual(JSON.stringify(result), JSON.stringify(expected));
22
+ });
23
+ it('should handle arrays within objects', function () {
24
+ const input = { b: [3, 2, 1], a: 2 };
25
+ const expected = { a: 2, b: [3, 2, 1] };
26
+ const result = (0, lightning_1.canonicalizeObject)(input);
27
+ assert_1.default.notDeepStrictEqual(JSON.stringify(input), JSON.stringify(expected));
28
+ assert_1.default.deepStrictEqual(JSON.stringify(result), JSON.stringify(expected));
29
+ });
30
+ it('should handle arrays of objects and sort their keys', function () {
31
+ const input = [
32
+ { b: 2, a: 1 },
33
+ { d: 4, c: 3 },
34
+ ];
35
+ const expected = [
36
+ { a: 1, b: 2 },
37
+ { c: 3, d: 4 },
38
+ ];
39
+ const result = (0, lightning_1.canonicalizeObject)(input);
40
+ assert_1.default.notDeepStrictEqual(JSON.stringify(input), JSON.stringify(expected));
41
+ assert_1.default.deepStrictEqual(JSON.stringify(result), JSON.stringify(expected));
42
+ });
43
+ it('should return primitive values as is', function () {
44
+ assert_1.default.strictEqual(JSON.stringify((0, lightning_1.canonicalizeObject)(42)), JSON.stringify(42));
45
+ assert_1.default.strictEqual(JSON.stringify((0, lightning_1.canonicalizeObject)('string')), JSON.stringify('string'));
46
+ });
47
+ it('should throw an error for invalid object types', function () {
48
+ assert_1.default.throws(() => (0, lightning_1.canonicalizeObject)(null), /Invalid object type/);
49
+ assert_1.default.throws(() => (0, lightning_1.canonicalizeObject)(undefined), /Invalid object type/);
50
+ });
51
+ });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFibGVKc29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L2JpdGdvL2xpZ2h0bmluZy9zaWduYWJsZUpzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrREFBcUU7QUFDckUsb0RBQTRCO0FBRTVCLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRTtJQUM3QixFQUFFLENBQUMseURBQXlELEVBQUU7UUFDNUQsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUM3QixNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLElBQUEsOEJBQWtCLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsZ0JBQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMzRSxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxrREFBa0QsRUFBRTtRQUNyRCxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUMxQyxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUs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QyxHQUFHLEVBQUUsQ0FBQyxJQUFBLDhCQUFrQixFQUFDLFNBQWtCLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3JGLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjYW5vbmljYWxpemVPYmplY3QgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvYml0Z28vbGlnaHRuaW5nJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuZGVzY3JpYmUoJ2Nhbm9uaWNhbGl6ZU9iamVjdCcsIGZ1bmN0aW9uICgpIHtcbiAgaXQoJ3Nob3VsZCByZXR1cm4gdGhlIGNhbm9uaWNhbGl6ZWQgb2JqZWN0IHdpdGggc29ydGVkIGtleXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgaW5wdXQgPSB7IGI6IDEsIGE6IDIgfTtcbiAgICBjb25zdCBleHBlY3RlZCA9IHsgYTogMiwgYjogMSB9O1xuICAgIGNvbnN0IHJlc3VsdCA9IGNhbm9uaWNhbGl6ZU9iamVjdChpbnB1dCk7XG4gICAgYXNzZXJ0Lm5vdERlZXBTdHJpY3RFcXVhbChKU09OLnN0cmluZ2lmeShpbnB1dCksIEpTT04uc3RyaW5naWZ5KGV4cGVjdGVkKSk7XG4gICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChKU09OLnN0cmluZ2lmeShyZXN1bHQpLCBKU09OLnN0cmluZ2lmeShleHBlY3RlZCkpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGhhbmRsZSBuZXN0ZWQgb2JqZWN0cyBhbmQgc29ydCB0aGVpciBrZXlzJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGlucHV0ID0geyBiOiB7IGQ6IDQsIGM6IDMgfSwgYTogMiB9O1xuICAgIGNvbnN0IGV4cGVjdGVkID0geyBhOiAyLCBiOiB7IGM6IDMsIGQ6IDQgfSB9O1xuICAgIGNvbnN0IHJlc3VsdCA9IGNhbm9uaWNhbGl6ZU9iamVjdChpbnB1dCk7XG4gICAgYXNzZXJ0Lm5vdERlZXBTdHJpY3RFcXVhbChKU09OLnN0cmluZ2lmeShpbnB1dCksIEpTT04uc3RyaW5naWZ5KGV4cGVjdGVkKSk7XG4gICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChKU09OLnN0cmluZ2lmeShyZXN1bHQpLCBKU09OLnN0cmluZ2lmeShleHBlY3RlZCkpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGhhbmRsZSBhcnJheXMgd2l0aGluIG9iamVjdHMnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgaW5wdXQgPSB7IGI6IFszLCAyLCAxXSwgYTogMiB9O1xuICAgIGNvbnN0IGV4cGVjdGVkID0geyBhOiAyLCBiOiBbMywgMiwgMV0gfTtcbiAgICBjb25zdCByZXN1bHQgPSBjYW5vbmljYWxpemVPYmplY3QoaW5wdXQpO1xuICAgIGFzc2VydC5ub3REZWVwU3RyaWN0RXF1YWwoSlNPTi5zdHJpbmdpZnkoaW5wdXQpLCBKU09OLnN0cmluZ2lmeShleHBlY3RlZCkpO1xuICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoSlNPTi5zdHJpbmdpZnkocmVzdWx0KSwgSlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWQpKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBoYW5kbGUgYXJyYXlzIG9mIG9iamVjdHMgYW5kIHNvcnQgdGhlaXIga2V5cycsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBpbnB1dCA9IFtcbiAgICAgIHsgYjogMiwgYTogMSB9LFxuICAgICAgeyBkOiA0LCBjOiAzIH0sXG4gICAgXTtcbiAgICBjb25zdCBleHBlY3RlZCA9IFtcbiAgICAgIHsgYTogMSwgYjogMiB9LFxuICAgICAgeyBjOiAzLCBkOiA0IH0sXG4gICAgXTtcbiAgICBjb25zdCByZXN1bHQgPSBjYW5vbmljYWxpemVPYmplY3QoaW5wdXQpO1xuICAgIGFzc2VydC5ub3REZWVwU3RyaWN0RXF1YWwoSlNPTi5zdHJpbmdpZnkoaW5wdXQpLCBKU09OLnN0cmluZ2lmeShleHBlY3RlZCkpO1xuICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoSlNPTi5zdHJpbmdpZnkocmVzdWx0KSwgSlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWQpKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCByZXR1cm4gcHJpbWl0aXZlIHZhbHVlcyBhcyBpcycsIGZ1bmN0aW9uICgpIHtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoSlNPTi5zdHJpbmdpZnkoY2Fub25pY2FsaXplT2JqZWN0KDQyKSksIEpTT04uc3RyaW5naWZ5KDQyKSk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKEpTT04uc3RyaW5naWZ5KGNhbm9uaWNhbGl6ZU9iamVjdCgnc3RyaW5nJykpLCBKU09OLnN0cmluZ2lmeSgnc3RyaW5nJykpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIGZvciBpbnZhbGlkIG9iamVjdCB0eXBlcycsIGZ1bmN0aW9uICgpIHtcbiAgICBhc3NlcnQudGhyb3dzKCgpID0+IGNhbm9uaWNhbGl6ZU9iamVjdChudWxsIGFzIG5ldmVyKSwgL0ludmFsaWQgb2JqZWN0IHR5cGUvKTtcbiAgICBhc3NlcnQudGhyb3dzKCgpID0+IGNhbm9uaWNhbGl6ZU9iamVjdCh1bmRlZmluZWQgYXMgbmV2ZXIpLCAvSW52YWxpZCBvYmplY3QgdHlwZS8pO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=signature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../../../../test/unit/bitgo/lightning/signature.ts"],"names":[],"mappings":""}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
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);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const assert_1 = __importDefault(require("assert"));
30
+ const utxolib = __importStar(require("@bitgo/utxo-lib"));
31
+ const lightning_1 = require("../../../../src/bitgo/lightning");
32
+ const crypto_1 = __importDefault(require("crypto"));
33
+ function getKey(seed) {
34
+ return utxolib.bip32.fromSeed(crypto_1.default.createHash('sha256').update(seed).digest());
35
+ }
36
+ describe('verifySignature', function () {
37
+ const key = getKey('key');
38
+ const keyPub = key.neutered();
39
+ const wrongKey = getKey('wrongKey');
40
+ it('returns true on valid signature', function () {
41
+ const request = {
42
+ invoice: 'some data',
43
+ };
44
+ const signature = (0, lightning_1.createMessageSignature)(request, key.toBase58());
45
+ const result = (0, lightning_1.verifyMessageSignature)(request, signature, keyPub.toBase58());
46
+ (0, assert_1.default)(result);
47
+ });
48
+ it('returns true on different order', function () {
49
+ const request = {
50
+ invoice: 'some data',
51
+ fee: 123,
52
+ };
53
+ const otherRequest = {
54
+ fee: 123,
55
+ invoice: 'some data',
56
+ };
57
+ const signature = (0, lightning_1.createMessageSignature)(request, key.toBase58());
58
+ const result = (0, lightning_1.verifyMessageSignature)(otherRequest, signature, keyPub.toBase58());
59
+ (0, assert_1.default)(result);
60
+ });
61
+ it('returns false on wrong message', function () {
62
+ const request = {
63
+ invoice: 'some data',
64
+ };
65
+ const wrongRequest = {
66
+ invoice: 'some other data',
67
+ };
68
+ const signature = (0, lightning_1.createMessageSignature)(request, key.toBase58());
69
+ const result = (0, lightning_1.verifyMessageSignature)(wrongRequest, signature, keyPub.toBase58());
70
+ (0, assert_1.default)(!result);
71
+ });
72
+ it('returns false on wrong key', function () {
73
+ const request = {
74
+ invoice: 'some data',
75
+ };
76
+ const signature = (0, lightning_1.createMessageSignature)(request, wrongKey.toBase58());
77
+ const result = (0, lightning_1.verifyMessageSignature)(request, signature, keyPub.toBase58());
78
+ (0, assert_1.default)(!result);
79
+ });
80
+ });
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L2JpdGdvL2xpZ2h0bmluZy9zaWduYXR1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9EQUE0QjtBQUU1Qix5REFBMkM7QUFFM0MsK0RBQWlHO0FBQ2pHLG9EQUE0QjtBQU81QixTQUFTLE1BQU0sQ0FBQyxJQUFZO0lBQzFCLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDbkYsQ0FBQztBQUVELFFBQVEsQ0FBQyxpQkFBaUIsRUFBRTtJQUMxQixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVwQyxFQUFFLENBQUMsaUNBQWlDLEVBQUU7UUFDcEMsTUFBTSxPQUFPLEdBQVk7WUFDdkIsT0FBTyxFQUFFLFdBQVc7U0FDckIsQ0FBQztRQUNGLE1BQU0sU0FBUyxHQUFHLElBQUEsa0NBQXNCLEVBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sTUFBTSxHQUFHLElBQUEsa0NBQXNCLEVBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUM3RSxJQUFBLGdCQUFNLEVBQUMsTUFBTSxDQUFDLENBQUM7SUFDakIsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsaUNBQWlDLEVBQUU7UUFDcEMsTUFBTSxPQUFPLEdBQVk7WUFDdkIsT0FBTyxFQUFFLFdBQVc7WUFDcEIsR0FBRyxFQUFFLEdBQUc7U0FDVCxDQUFDO1FBQ0YsTUFBTSxZQUFZLEdBQVk7WUFDNUIsR0FBRyxFQUFFLEdBQUc7WUFDUixPQUFPLEVBQUUsV0FBVztTQUNyQixDQUFDO1FBQ0YsTUFBTSxTQUFTLEdBQUcsSUFBQSxrQ0FBc0IsRUFBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDbEUsTUFBTSxNQUFNLEdBQUcsSUFBQSxrQ0FBc0IsRUFBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2xGLElBQUEsZ0JBQU0sRUFBQyxNQUFNLENBQUMsQ0FBQztJQUNqQixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxnQ0FBZ0MsRUFBRTtRQUNuQyxNQUFNLE9BQU8sR0FBWTtZQUN2QixPQUFPLEVBQUUsV0FBVztTQUNyQixDQUFDO1FBQ0YsTUFBTSxZQUFZLEdBQVk7WUFDNUIsT0FBTyxFQUFFLGlCQUFpQjtTQUMzQixDQUFDO1FBQ0YsTUFBTSxTQUFTLEdBQUcsSUFBQSxrQ0FBc0IsRUFBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDbEUsTUFBTSxNQUFNLEdBQUcsSUFBQSxrQ0FBc0IsRUFBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2xGLElBQUEsZ0JBQU0sRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDRCQUE0QixFQUFFO1FBQy9CLE1BQU0sT0FBTyxHQUFZO1lBQ3ZCLE9BQU8sRUFBRSxXQUFXO1NBQ3JCLENBQUM7UUFDRixNQUFNLFNBQVMsR0FBRyxJQUFBLGtDQUFzQixFQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2RSxNQUFNLE1BQU0sR0FBRyxJQUFBLGtDQUFzQixFQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDN0UsSUFBQSxnQkFBTSxFQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuXG5pbXBvcnQgeyBjcmVhdGVNZXNzYWdlU2lnbmF0dXJlLCB2ZXJpZnlNZXNzYWdlU2lnbmF0dXJlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL2JpdGdvL2xpZ2h0bmluZyc7XG5pbXBvcnQgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5cbnR5cGUgUmVxdWVzdCA9IHtcbiAgaW52b2ljZTogc3RyaW5nO1xuICBmZWU/OiBudW1iZXI7XG59O1xuXG5mdW5jdGlvbiBnZXRLZXkoc2VlZDogc3RyaW5nKTogdXR4b2xpYi5CSVAzMkludGVyZmFjZSB7XG4gIHJldHVybiB1dHhvbGliLmJpcDMyLmZyb21TZWVkKGNyeXB0by5jcmVhdGVIYXNoKCdzaGEyNTYnKS51cGRhdGUoc2VlZCkuZGlnZXN0KCkpO1xufVxuXG5kZXNjcmliZSgndmVyaWZ5U2lnbmF0dXJlJywgZnVuY3Rpb24gKCkge1xuICBjb25zdCBrZXkgPSBnZXRLZXkoJ2tleScpO1xuICBjb25zdCBrZXlQdWIgPSBrZXkubmV1dGVyZWQoKTtcbiAgY29uc3Qgd3JvbmdLZXkgPSBnZXRLZXkoJ3dyb25nS2V5Jyk7XG5cbiAgaXQoJ3JldHVybnMgdHJ1ZSBvbiB2YWxpZCBzaWduYXR1cmUnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgcmVxdWVzdDogUmVxdWVzdCA9IHtcbiAgICAgIGludm9pY2U6ICdzb21lIGRhdGEnLFxuICAgIH07XG4gICAgY29uc3Qgc2lnbmF0dXJlID0gY3JlYXRlTWVzc2FnZVNpZ25hdHVyZShyZXF1ZXN0LCBrZXkudG9CYXNlNTgoKSk7XG4gICAgY29uc3QgcmVzdWx0ID0gdmVyaWZ5TWVzc2FnZVNpZ25hdHVyZShyZXF1ZXN0LCBzaWduYXR1cmUsIGtleVB1Yi50b0Jhc2U1OCgpKTtcbiAgICBhc3NlcnQocmVzdWx0KTtcbiAgfSk7XG5cbiAgaXQoJ3JldHVybnMgdHJ1ZSBvbiBkaWZmZXJlbnQgb3JkZXInLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgcmVxdWVzdDogUmVxdWVzdCA9IHtcbiAgICAgIGludm9pY2U6ICdzb21lIGRhdGEnLFxuICAgICAgZmVlOiAxMjMsXG4gICAgfTtcbiAgICBjb25zdCBvdGhlclJlcXVlc3Q6IFJlcXVlc3QgPSB7XG4gICAgICBmZWU6IDEyMyxcbiAgICAgIGludm9pY2U6ICdzb21lIGRhdGEnLFxuICAgIH07XG4gICAgY29uc3Qgc2lnbmF0dXJlID0gY3JlYXRlTWVzc2FnZVNpZ25hdHVyZShyZXF1ZXN0LCBrZXkudG9CYXNlNTgoKSk7XG4gICAgY29uc3QgcmVzdWx0ID0gdmVyaWZ5TWVzc2FnZVNpZ25hdHVyZShvdGhlclJlcXVlc3QsIHNpZ25hdHVyZSwga2V5UHViLnRvQmFzZTU4KCkpO1xuICAgIGFzc2VydChyZXN1bHQpO1xuICB9KTtcblxuICBpdCgncmV0dXJucyBmYWxzZSBvbiB3cm9uZyBtZXNzYWdlJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHJlcXVlc3Q6IFJlcXVlc3QgPSB7XG4gICAgICBpbnZvaWNlOiAnc29tZSBkYXRhJyxcbiAgICB9O1xuICAgIGNvbnN0IHdyb25nUmVxdWVzdDogUmVxdWVzdCA9IHtcbiAgICAgIGludm9pY2U6ICdzb21lIG90aGVyIGRhdGEnLFxuICAgIH07XG4gICAgY29uc3Qgc2lnbmF0dXJlID0gY3JlYXRlTWVzc2FnZVNpZ25hdHVyZShyZXF1ZXN0LCBrZXkudG9CYXNlNTgoKSk7XG4gICAgY29uc3QgcmVzdWx0ID0gdmVyaWZ5TWVzc2FnZVNpZ25hdHVyZSh3cm9uZ1JlcXVlc3QsIHNpZ25hdHVyZSwga2V5UHViLnRvQmFzZTU4KCkpO1xuICAgIGFzc2VydCghcmVzdWx0KTtcbiAgfSk7XG5cbiAgaXQoJ3JldHVybnMgZmFsc2Ugb24gd3Jvbmcga2V5JywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHJlcXVlc3Q6IFJlcXVlc3QgPSB7XG4gICAgICBpbnZvaWNlOiAnc29tZSBkYXRhJyxcbiAgICB9O1xuICAgIGNvbnN0IHNpZ25hdHVyZSA9IGNyZWF0ZU1lc3NhZ2VTaWduYXR1cmUocmVxdWVzdCwgd3JvbmdLZXkudG9CYXNlNTgoKSk7XG4gICAgY29uc3QgcmVzdWx0ID0gdmVyaWZ5TWVzc2FnZVNpZ25hdHVyZShyZXF1ZXN0LCBzaWduYXR1cmUsIGtleVB1Yi50b0Jhc2U1OCgpKTtcbiAgICBhc3NlcnQoIXJlc3VsdCk7XG4gIH0pO1xufSk7XG4iXX0=