@bitgo-beta/utxo-lib 8.0.3-beta.43 → 8.0.3-beta.430

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 (90) hide show
  1. package/README.md +19 -16
  2. package/dist/src/address.js +5 -5
  3. package/dist/src/addressFormat.js +9 -9
  4. package/dist/src/bitgo/Musig2.js +19 -19
  5. package/dist/src/bitgo/PsbtUtil.d.ts +5 -0
  6. package/dist/src/bitgo/PsbtUtil.d.ts.map +1 -1
  7. package/dist/src/bitgo/PsbtUtil.js +18 -3
  8. package/dist/src/bitgo/Unspent.js +3 -3
  9. package/dist/src/bitgo/UtxoPsbt.d.ts +15 -3
  10. package/dist/src/bitgo/UtxoPsbt.d.ts.map +1 -1
  11. package/dist/src/bitgo/UtxoPsbt.js +118 -76
  12. package/dist/src/bitgo/UtxoTransaction.d.ts.map +1 -1
  13. package/dist/src/bitgo/UtxoTransaction.js +9 -9
  14. package/dist/src/bitgo/bitcoincash/address.js +6 -6
  15. package/dist/src/bitgo/bitcoincash/index.js +6 -2
  16. package/dist/src/bitgo/dash/DashTransaction.js +3 -3
  17. package/dist/src/bitgo/dash/index.js +6 -2
  18. package/dist/src/bitgo/index.d.ts +2 -0
  19. package/dist/src/bitgo/index.d.ts.map +1 -1
  20. package/dist/src/bitgo/index.js +9 -3
  21. package/dist/src/bitgo/legacysafe/index.d.ts +15 -0
  22. package/dist/src/bitgo/legacysafe/index.d.ts.map +1 -0
  23. package/dist/src/bitgo/legacysafe/index.js +61 -0
  24. package/dist/src/bitgo/litecoin/LitecoinTransaction.js +2 -2
  25. package/dist/src/bitgo/litecoin/index.js +6 -2
  26. package/dist/src/bitgo/outputScripts.d.ts +1 -0
  27. package/dist/src/bitgo/outputScripts.d.ts.map +1 -1
  28. package/dist/src/bitgo/outputScripts.js +29 -14
  29. package/dist/src/bitgo/parseInput.d.ts +4 -0
  30. package/dist/src/bitgo/parseInput.d.ts.map +1 -1
  31. package/dist/src/bitgo/parseInput.js +23 -7
  32. package/dist/src/bitgo/psbt/fromHalfSigned.js +5 -5
  33. package/dist/src/bitgo/signature.d.ts.map +1 -1
  34. package/dist/src/bitgo/signature.js +17 -8
  35. package/dist/src/bitgo/transaction.js +10 -10
  36. package/dist/src/bitgo/transactionAmounts.d.ts +9 -0
  37. package/dist/src/bitgo/transactionAmounts.d.ts.map +1 -0
  38. package/dist/src/bitgo/transactionAmounts.js +33 -0
  39. package/dist/src/bitgo/types.d.ts +7 -0
  40. package/dist/src/bitgo/types.d.ts.map +1 -1
  41. package/dist/src/bitgo/types.js +11 -2
  42. package/dist/src/bitgo/wallet/Psbt.d.ts +31 -1
  43. package/dist/src/bitgo/wallet/Psbt.d.ts.map +1 -1
  44. package/dist/src/bitgo/wallet/Psbt.js +129 -29
  45. package/dist/src/bitgo/wallet/Unspent.d.ts +23 -13
  46. package/dist/src/bitgo/wallet/Unspent.d.ts.map +1 -1
  47. package/dist/src/bitgo/wallet/Unspent.js +59 -54
  48. package/dist/src/bitgo/wallet/WalletOutput.d.ts +17 -1
  49. package/dist/src/bitgo/wallet/WalletOutput.d.ts.map +1 -1
  50. package/dist/src/bitgo/wallet/WalletOutput.js +68 -27
  51. package/dist/src/bitgo/wallet/WalletScripts.js +2 -2
  52. package/dist/src/bitgo/wallet/WalletUnspentSigner.js +4 -4
  53. package/dist/src/bitgo/wallet/index.d.ts +2 -0
  54. package/dist/src/bitgo/wallet/index.d.ts.map +1 -1
  55. package/dist/src/bitgo/wallet/index.js +8 -2
  56. package/dist/src/bitgo/wallet/psbt/PsbtOutputs.d.ts +50 -0
  57. package/dist/src/bitgo/wallet/psbt/PsbtOutputs.d.ts.map +1 -0
  58. package/dist/src/bitgo/wallet/psbt/PsbtOutputs.js +87 -0
  59. package/dist/src/bitgo/wallet/psbt/RootNodes.d.ts +32 -0
  60. package/dist/src/bitgo/wallet/psbt/RootNodes.d.ts.map +1 -0
  61. package/dist/src/bitgo/wallet/psbt/RootNodes.js +125 -0
  62. package/dist/src/bitgo/zcash/ZcashPsbt.d.ts +0 -1
  63. package/dist/src/bitgo/zcash/ZcashPsbt.d.ts.map +1 -1
  64. package/dist/src/bitgo/zcash/ZcashPsbt.js +5 -14
  65. package/dist/src/bitgo/zcash/ZcashTransaction.js +15 -15
  66. package/dist/src/bitgo/zcash/ZcashTransactionBuilder.js +4 -4
  67. package/dist/src/bitgo/zcash/address.js +3 -3
  68. package/dist/src/bitgo/zcash/hashZip0244.js +3 -3
  69. package/dist/src/bitgo/zcash/index.js +6 -2
  70. package/dist/src/index.js +6 -2
  71. package/dist/src/networks.d.ts +1 -1
  72. package/dist/src/networks.d.ts.map +1 -1
  73. package/dist/src/networks.js +19 -1
  74. package/dist/src/noble_ecc.d.ts +7 -7
  75. package/dist/src/noble_ecc.d.ts.map +1 -1
  76. package/dist/src/noble_ecc.js +4 -4
  77. package/dist/src/testutil/index.js +6 -2
  78. package/dist/src/testutil/keys.d.ts +3 -0
  79. package/dist/src/testutil/keys.d.ts.map +1 -1
  80. package/dist/src/testutil/keys.js +18 -3
  81. package/dist/src/testutil/mock.js +15 -15
  82. package/dist/src/testutil/psbt.d.ts +26 -5
  83. package/dist/src/testutil/psbt.d.ts.map +1 -1
  84. package/dist/src/testutil/psbt.js +40 -29
  85. package/dist/src/testutil/transaction.d.ts +14 -5
  86. package/dist/src/testutil/transaction.d.ts.map +1 -1
  87. package/dist/src/testutil/transaction.js +20 -20
  88. package/dist/src/transaction_builder.d.ts.map +1 -1
  89. package/dist/src/transaction_builder.js +1 -6
  90. package/package.json +7 -7
@@ -12,17 +12,17 @@ exports.txnInputScriptTypes = ['p2sh', 'p2shP2wsh', 'p2wsh', 'p2tr', outputScrip
12
12
  /**
13
13
  * array of supported output script types.
14
14
  */
15
- exports.txnOutputScriptTypes = ['p2sh', 'p2shP2wsh', 'p2wsh', 'p2tr'];
15
+ exports.txnOutputScriptTypes = outputScripts_1.scriptTypes2Of3;
16
16
  /**
17
17
  * create unspent object from input script type, index, network and root wallet key.
18
18
  */
19
19
  function toTxnUnspent(input, index, network, rootWalletKeys) {
20
20
  if (input.scriptType === 'p2shP2pk') {
21
- return mock_1.mockReplayProtectionUnspent(network, input.value, { key: rootWalletKeys['user'], vout: index });
21
+ return (0, mock_1.mockReplayProtectionUnspent)(network, input.value, { key: rootWalletKeys['user'], vout: index });
22
22
  }
23
23
  else {
24
- return mock_1.mockWalletUnspent(network, input.value, {
25
- chain: bitgo_1.getInternalChainCode(input.scriptType),
24
+ return (0, mock_1.mockWalletUnspent)(network, input.value, {
25
+ chain: (0, bitgo_1.getInternalChainCode)(input.scriptType),
26
26
  vout: index,
27
27
  keys: rootWalletKeys,
28
28
  index,
@@ -46,19 +46,19 @@ exports.getTxnSigners = getTxnSigners;
46
46
  * signs with first or second signature for single input.
47
47
  * p2shP2pk is signed only with first sign.
48
48
  */
49
- function signTxnInput(txb, input, inputIndex, rootWalletKeys, sign) {
50
- const { signerName, cosignerName } = getTxnSigners(input.scriptType);
49
+ function signTxnInput(txb, input, inputIndex, rootWalletKeys, sign, signers) {
50
+ const { signerName, cosignerName } = signers ? signers : getTxnSigners(input.scriptType);
51
51
  const unspent = toTxnUnspent(input, inputIndex, txb.network, rootWalletKeys);
52
52
  if (sign === 'halfsigned') {
53
53
  if (input.scriptType === 'p2shP2pk') {
54
- bitgo_1.signInputP2shP2pk(txb, inputIndex, rootWalletKeys[signerName]);
54
+ (0, bitgo_1.signInputP2shP2pk)(txb, inputIndex, rootWalletKeys[signerName]);
55
55
  }
56
- else if (bitgo_1.isWalletUnspent(unspent) && cosignerName) {
57
- bitgo_1.signInputWithUnspent(txb, inputIndex, unspent, bitgo_1.WalletUnspentSigner.from(rootWalletKeys, rootWalletKeys[signerName], rootWalletKeys[cosignerName]));
56
+ else if ((0, bitgo_1.isWalletUnspent)(unspent) && cosignerName) {
57
+ (0, bitgo_1.signInputWithUnspent)(txb, inputIndex, unspent, bitgo_1.WalletUnspentSigner.from(rootWalletKeys, rootWalletKeys[signerName], rootWalletKeys[cosignerName]));
58
58
  }
59
59
  }
60
- if (bitgo_1.isWalletUnspent(unspent) && sign === 'fullsigned' && cosignerName) {
61
- bitgo_1.signInputWithUnspent(txb, inputIndex, unspent, bitgo_1.WalletUnspentSigner.from(rootWalletKeys, rootWalletKeys[cosignerName], rootWalletKeys[signerName]));
60
+ if ((0, bitgo_1.isWalletUnspent)(unspent) && sign === 'fullsigned' && cosignerName) {
61
+ (0, bitgo_1.signInputWithUnspent)(txb, inputIndex, unspent, bitgo_1.WalletUnspentSigner.from(rootWalletKeys, rootWalletKeys[cosignerName], rootWalletKeys[signerName]));
62
62
  }
63
63
  }
64
64
  exports.signTxnInput = signTxnInput;
@@ -66,28 +66,28 @@ exports.signTxnInput = signTxnInput;
66
66
  * signs with first or second signature for all inputs.
67
67
  * p2shP2pk is signed only with first sign.
68
68
  */
69
- function signAllTxnInputs(txb, inputs, rootWalletKeys, sign) {
69
+ function signAllTxnInputs(txb, inputs, rootWalletKeys, sign, signers) {
70
70
  inputs.forEach((input, index) => {
71
- signTxnInput(txb, input, index, rootWalletKeys, sign);
71
+ signTxnInput(txb, input, index, rootWalletKeys, sign, signers);
72
72
  });
73
73
  }
74
74
  exports.signAllTxnInputs = signAllTxnInputs;
75
75
  /**
76
76
  * construct transaction for given inputs, outputs, network and root wallet keys.
77
77
  */
78
- function constructTxnBuilder(inputs, outputs, network, rootWalletKeys, sign) {
78
+ function constructTxnBuilder(inputs, outputs, network, rootWalletKeys, sign, signers) {
79
79
  const totalInputAmount = inputs.reduce((sum, input) => sum + BigInt(input.value), BigInt(0));
80
80
  const outputInputAmount = outputs.reduce((sum, output) => sum + BigInt(output.value), BigInt(0));
81
81
  assert(totalInputAmount >= outputInputAmount, 'total output can not exceed total input');
82
82
  assert(!outputs.some((o) => (o.scriptType && o.address) || (!o.scriptType && !o.address)), 'only either output script type or address should be provided');
83
- const txb = bitgo_1.createTransactionBuilderForNetwork(network);
83
+ const txb = (0, bitgo_1.createTransactionBuilderForNetwork)(network);
84
84
  const unspents = inputs.map((input, i) => toTxnUnspent(input, i, network, rootWalletKeys));
85
85
  unspents.forEach((u, i) => {
86
- bitgo_1.addToTransactionBuilder(txb, u);
86
+ (0, bitgo_1.addToTransactionBuilder)(txb, u);
87
87
  });
88
88
  outputs.forEach((output, i) => {
89
89
  const address = output.scriptType
90
- ? bitgo_1.getWalletAddress(rootWalletKeys, output.isInternalAddress ? bitgo_1.getInternalChainCode(output.scriptType) : bitgo_1.getExternalChainCode(output.scriptType), i, network)
90
+ ? (0, bitgo_1.getWalletAddress)(rootWalletKeys, output.isInternalAddress ? (0, bitgo_1.getInternalChainCode)(output.scriptType) : (0, bitgo_1.getExternalChainCode)(output.scriptType), i, network)
91
91
  : output.address;
92
92
  if (!address) {
93
93
  throw new Error('address is missing');
@@ -97,11 +97,11 @@ function constructTxnBuilder(inputs, outputs, network, rootWalletKeys, sign) {
97
97
  if (sign === 'unsigned') {
98
98
  return txb;
99
99
  }
100
- signAllTxnInputs(txb, inputs, rootWalletKeys, 'halfsigned');
100
+ signAllTxnInputs(txb, inputs, rootWalletKeys, 'halfsigned', signers);
101
101
  if (sign === 'fullsigned') {
102
- signAllTxnInputs(txb, inputs, rootWalletKeys, sign);
102
+ signAllTxnInputs(txb, inputs, rootWalletKeys, sign, signers);
103
103
  }
104
104
  return txb;
105
105
  }
106
106
  exports.constructTxnBuilder = constructTxnBuilder;
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdHV0aWwvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQWlDO0FBRWpDLDBEQUF3RjtBQUN4RixvQ0Fja0I7QUFFbEIsaUNBQXdFO0FBMkJ4RTs7R0FFRztBQUNVLFFBQUEsbUJBQW1CLEdBQUcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsa0NBQWtCLENBQVUsQ0FBQztBQUV2Rzs7R0FFRztBQUNVLFFBQUEsb0JBQW9CLEdBQUcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQVUsQ0FBQztBQUVwRjs7R0FFRztBQUNILFNBQWdCLFlBQVksQ0FDMUIsS0FBd0IsRUFDeEIsS0FBYSxFQUNiLE9BQWdCLEVBQ2hCLGNBQThCO0lBRTlCLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7UUFDbkMsT0FBTyxrQ0FBMkIsQ0FBVSxPQUFPLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDakg7U0FBTTtRQUNMLE9BQU8sd0JBQWlCLENBQVUsT0FBTyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUU7WUFDdEQsS0FBSyxFQUFFLDRCQUFvQixDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDN0MsSUFBSSxFQUFFLEtBQUs7WUFDWCxJQUFJLEVBQUUsY0FBYztZQUNwQixLQUFLO1NBQ04sQ0FBQyxDQUFDO0tBQ0o7QUFDSCxDQUFDO0FBaEJELG9DQWdCQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixhQUFhLENBQUMsU0FBNkI7SUFDekQsT0FBTztRQUNMLFVBQVUsRUFBRSxNQUFNO1FBQ2xCLFlBQVksRUFBRSxTQUFTLEtB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SSxLQUFLLFlBQVksRUFBRTtRQUN6QixnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUNyRDtJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQWpERCxrREFpREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHsgU2NyaXB0VHlwZSwgU2NyaXB0VHlwZTJPZjMsIHNjcmlwdFR5cGVQMnNoUDJwayB9IGZyb20gJy4uL2JpdGdvL291dHB1dFNjcmlwdHMnO1xuaW1wb3J0IHtcbiAgZ2V0RXh0ZXJuYWxDaGFpbkNvZGUsXG4gIGlzV2FsbGV0VW5zcGVudCxcbiAgS2V5TmFtZSxcbiAgZ2V0SW50ZXJuYWxDaGFpbkNvZGUsXG4gIFJvb3RXYWxsZXRLZXlzLFxuICBVbnNwZW50LFxuICBVdHhvVHJhbnNhY3Rpb25CdWlsZGVyLFxuICBjcmVhdGVUcmFuc2FjdGlvbkJ1aWxkZXJGb3JOZXR3b3JrLFxuICBhZGRUb1RyYW5zYWN0aW9uQnVpbGRlcixcbiAgZ2V0V2FsbGV0QWRkcmVzcyxcbiAgc2lnbklucHV0UDJzaFAycGssXG4gIHNpZ25JbnB1dFdpdGhVbnNwZW50LFxuICBXYWxsZXRVbnNwZW50U2lnbmVyLFxufSBmcm9tICcuLi9iaXRnbyc7XG5pbXBvcnQgeyBOZXR3b3JrIH0gZnJvbSAnLi4vbmV0d29ya3MnO1xuaW1wb3J0IHsgbW9ja1JlcGxheVByb3RlY3Rpb25VbnNwZW50LCBtb2NrV2FsbGV0VW5zcGVudCB9IGZyb20gJy4vbW9jayc7XG5cbi8qKlxuICogaW5wdXQgc2NyaXB0IHR5cGUgYW5kIHZhbHVlLlxuICovXG5leHBvcnQgdHlwZSBUeG5JbnB1dFNjcmlwdFR5cGUgPSBFeGNsdWRlPFNjcmlwdFR5cGUsICdwMnRyTXVzaWcyJz47XG5leHBvcnQgdHlwZSBUeG5PdXRwdXRTY3JpcHRUeXBlID0gRXhjbHVkZTxTY3JpcHRUeXBlMk9mMywgJ3AydHJNdXNpZzInPjtcblxuLyoqXG4gKiBvdXRwdXQgc2NyaXB0IHR5cGUgYW5kIHZhbHVlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHhuSW5wdXQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4ge1xuICBzY3JpcHRUeXBlOiBUeG5JbnB1dFNjcmlwdFR5cGU7XG4gIHZhbHVlOiBUTnVtYmVyO1xufVxuXG4vKipcbiAqIHNob3VsZCBzZXQgZWl0aGVyIGFkZHJlc3Mgb3Igc2NyaXB0VHlwZSwgbmV2ZXIgYm90aC5cbiAqIHNldCBpc0ludGVybmFsQWRkcmVzcz10cnVlIGZvciBpbnRlcm5hbCBvdXRwdXQgYWRkcmVzc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFR4bk91dHB1dDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PiB7XG4gIGFkZHJlc3M/OiBzdHJpbmc7XG4gIHNjcmlwdFR5cGU/OiBUeG5PdXRwdXRTY3JpcHRUeXBlO1xuICB2YWx1ZTogVE51bWJlcjtcbiAgaXNJbnRlcm5hbEFkZHJlc3M/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIGFycmF5IG9mIHN1cHBvcnRlZCBpbnB1dCBzY3JpcHQgdHlwZXMuXG4gKi9cbmV4cG9ydCBjb25zdCB0eG5JbnB1dFNjcmlwdFR5cGVzID0gWydwMnNoJywgJ3Ayc2hQMndzaCcsICdwMndzaCcsICdwMnRyJywgc2NyaXB0VHlwZVAyc2hQMnBrXSBhcyBjb25zdDtcblxuLyoqXG4gKiBhcnJheSBvZiBzdXBwb3J0ZWQgb3V0cHV0IHNjcmlwdCB0eXBlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IHR4bk91dHB1dFNjcmlwdFR5cGVzID0gWydwMnNoJywgJ3Ayc2hQMndzaCcsICdwMndzaCcsICdwMnRyJ10gYXMgY29uc3Q7XG5cbi8qKlxuICogY3JlYXRlIHVuc3BlbnQgb2JqZWN0IGZyb20gaW5wdXQgc2NyaXB0IHR5cGUsIGluZGV4LCBuZXR3b3JrIGFuZCByb290IHdhbGxldCBrZXkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1R4blVuc3BlbnQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIGlucHV0OiBUeG5JbnB1dDxUTnVtYmVyPixcbiAgaW5kZXg6IG51bWJlcixcbiAgbmV0d29yazogTmV0d29yayxcbiAgcm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzXG4pOiBVbnNwZW50PFROdW1iZXI+IHtcbiAgaWYgKGlucHV0LnNjcmlwdFR5cGUgPT09ICdwMnNoUDJwaycpIHtcbiAgICByZXR1cm4gbW9ja1JlcGxheVByb3RlY3Rpb25VbnNwZW50PFROdW1iZXI+KG5ldHdvcmssIGlucHV0LnZhbHVlLCB7IGtleTogcm9vdFdhbGxldEtleXNbJ3VzZXInXSwgdm91dDogaW5kZXggfSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG1vY2tXYWxsZXRVbnNwZW50PFROdW1iZXI+KG5ldHdvcmssIGlucHV0LnZhbHVlLCB7XG4gICAgICBjaGFpbjogZ2V0SW50ZXJuYWxDaGFpbkNvZGUoaW5wdXQuc2NyaXB0VHlwZSksXG4gICAgICB2b3V0OiBpbmRleCxcbiAgICAgIGtleXM6IHJvb3RXYWxsZXRLZXlzLFxuICAgICAgaW5kZXgsXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiByZXR1cm5zIHNpZ25lciBhbmQgY29zaWduZXIgbmFtZXMgZm9yIFR4bklucHV0U2NyaXB0VHlwZS5cbiAqIHVzZXIgYW5kIHVuZGVmaW5lZCBhcyBzaWduZXIgYW5kIGNvc2lnbmVyIHJlc3BlY3RpdmVseSBmb3IgcDJzaFAycGsuXG4gKiB1c2VyIGFuZCBiaXRnbyBhcyBzaWduZXIgYW5kIGNvc2lnbmVyIHJlc3BlY3RpdmVseSBmb3Igb3RoZXIgaW5wdXQgc2NyaXB0IHR5cGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHhuU2lnbmVycyhpbnB1dFR5cGU6IFR4bklucHV0U2NyaXB0VHlwZSk6IHsgc2lnbmVyTmFtZTogS2V5TmFtZTsgY29zaWduZXJOYW1lPzogS2V5TmFtZSB9IHtcbiAgcmV0dXJuIHtcbiAgICBzaWduZXJOYW1lOiAndXNlcicsXG4gICAgY29zaWduZXJOYW1lOiBpbnB1dFR5cGUgPT09ICdwMnNoUDJwaycgPyB1bmRlZmluZWQgOiAnYml0Z28nLFxuICB9O1xufVxuXG4vKipcbiAqIHNpZ25zIHdpdGggZmlyc3Qgb3Igc2Vjb25kIHNpZ25hdHVyZSBmb3Igc2luZ2xlIGlucHV0LlxuICogcDJzaFAycGsgaXMgc2lnbmVkIG9ubHkgd2l0aCBmaXJzdCBzaWduLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2lnblR4bklucHV0PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICB0eGI6IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXI8VE51bWJlcj4sXG4gIGlucHV0OiBUeG5JbnB1dDxUTnVtYmVyPixcbiAgaW5wdXRJbmRleDogbnVtYmVyLFxuICByb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gIHNpZ246ICdoYWxmc2lnbmVkJyB8ICdmdWxsc2lnbmVkJ1xuKTogdm9pZCB7XG4gIGNvbnN0IHsgc2lnbmVyTmFtZSwgY29zaWduZXJOYW1lIH0gPSBnZXRUeG5TaWduZXJzKGlucHV0LnNjcmlwdFR5cGUpO1xuICBjb25zdCB1bnNwZW50ID0gdG9UeG5VbnNwZW50KGlucHV0LCBpbnB1dEluZGV4LCB0eGIubmV0d29yaywgcm9vdFdhbGxldEtleXMpO1xuICBpZiAoc2lnbiA9PT0gJ2hhbGZzaWduZWQnKSB7XG4gICAgaWYgKGlucHV0LnNjcmlwdFR5cGUgPT09ICdwMnNoUDJwaycpIHtcbiAgICAgIHNpZ25JbnB1dFAyc2hQMnBrKHR4YiwgaW5wdXRJbmRleCwgcm9vdFdhbGxldEtleXNbc2lnbmVyTmFtZV0pO1xuICAgIH0gZWxzZSBpZiAoaXNXYWxsZXRVbnNwZW50KHVuc3BlbnQpICYmIGNvc2lnbmVyTmFtZSkge1xuICAgICAgc2lnbklucHV0V2l0aFVuc3BlbnQoXG4gICAgICAgIHR4YixcbiAgICAgICAgaW5wdXRJbmRleCxcbiAgICAgICAgdW5zcGVudCxcbiAgICAgICAgV2FsbGV0VW5zcGVudFNpZ25lci5mcm9tKHJvb3RXYWxsZXRLZXlzLCByb290V2FsbGV0S2V5c1tzaWduZXJOYW1lXSwgcm9vdFdhbGxldEtleXNbY29zaWduZXJOYW1lXSlcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIGlmIChpc1dhbGxldFVuc3BlbnQodW5zcGVudCkgJiYgc2lnbiA9PT0gJ2Z1bGxzaWduZWQnICYmIGNvc2lnbmVyTmFtZSkge1xuICAgIHNpZ25JbnB1dFdpdGhVbnNwZW50KFxuICAgICAgdHhiLFxuICAgICAgaW5wdXRJbmRleCxcbiAgICAgIHVuc3BlbnQsXG4gICAgICBXYWxsZXRVbnNwZW50U2lnbmVyLmZyb20ocm9vdFdhbGxldEtleXMsIHJvb3RXYWxsZXRLZXlzW2Nvc2lnbmVyTmFtZV0sIHJvb3RXYWxsZXRLZXlzW3NpZ25lck5hbWVdKVxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBzaWducyB3aXRoIGZpcnN0IG9yIHNlY29uZCBzaWduYXR1cmUgZm9yIGFsbCBpbnB1dHMuXG4gKiBwMnNoUDJwayBpcyBzaWduZWQgb25seSB3aXRoIGZpcnN0IHNpZ24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaWduQWxsVHhuSW5wdXRzPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICB0eGI6IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXI8VE51bWJlcj4sXG4gIGlucHV0czogVHhuSW5wdXQ8VE51bWJlcj5bXSxcbiAgcm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICBzaWduOiAnaGFsZnNpZ25lZCcgfCAnZnVsbHNpZ25lZCdcbik6IHZvaWQge1xuICBpbnB1dHMuZm9yRWFjaCgoaW5wdXQsIGluZGV4KSA9PiB7XG4gICAgc2lnblR4bklucHV0KHR4YiwgaW5wdXQsIGluZGV4LCByb290V2FsbGV0S2V5cywgc2lnbik7XG4gIH0pO1xufVxuXG4vKipcbiAqIGNvbnN0cnVjdCB0cmFuc2FjdGlvbiBmb3IgZ2l2ZW4gaW5wdXRzLCBvdXRwdXRzLCBuZXR3b3JrIGFuZCByb290IHdhbGxldCBrZXlzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29uc3RydWN0VHhuQnVpbGRlcjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgaW5wdXRzOiBUeG5JbnB1dDxUTnVtYmVyPltdLFxuICBvdXRwdXRzOiBUeG5PdXRwdXQ8VE51bWJlcj5bXSxcbiAgbmV0d29yazogTmV0d29yayxcbiAgcm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICBzaWduOiAndW5zaWduZWQnIHwgJ2hhbGZzaWduZWQnIHwgJ2Z1bGxzaWduZWQnXG4pOiBVdHhvVHJhbnNhY3Rpb25CdWlsZGVyPFROdW1iZXI+IHtcbiAgY29uc3QgdG90YWxJbnB1dEFtb3VudCA9IGlucHV0cy5yZWR1Y2UoKHN1bSwgaW5wdXQpID0+IHN1bSArIEJpZ0ludChpbnB1dC52YWx1ZSksIEJpZ0ludCgwKSk7XG4gIGNvbnN0IG91dHB1dElucHV0QW1vdW50ID0gb3V0cHV0cy5yZWR1Y2UoKHN1bSwgb3V0cHV0KSA9PiBzdW0gKyBCaWdJbnQob3V0cHV0LnZhbHVlKSwgQmlnSW50KDApKTtcbiAgYXNzZXJ0KHRvdGFsSW5wdXRBbW91bnQgPj0gb3V0cHV0SW5wdXRBbW91bnQsICd0b3RhbCBvdXRwdXQgY2FuIG5vdCBleGNlZWQgdG90YWwgaW5wdXQnKTtcbiAgYXNzZXJ0KFxuICAgICFvdXRwdXRzLnNvbWUoKG8pID0+IChvLnNjcmlwdFR5cGUgJiYgby5hZGRyZXNzKSB8fCAoIW8uc2NyaXB0VHlwZSAmJiAhby5hZGRyZXNzKSksXG4gICAgJ29ubHkgZWl0aGVyIG91dHB1dCBzY3JpcHQgdHlwZSBvciBhZGRyZXNzIHNob3VsZCBiZSBwcm92aWRlZCdcbiAgKTtcblxuICBjb25zdCB0eGIgPSBjcmVhdGVUcmFuc2FjdGlvbkJ1aWxkZXJGb3JOZXR3b3JrPFROdW1iZXI+KG5ldHdvcmspO1xuXG4gIGNvbnN0IHVuc3BlbnRzID0gaW5wdXRzLm1hcCgoaW5wdXQsIGkpID0+IHRvVHhuVW5zcGVudChpbnB1dCwgaSwgbmV0d29yaywgcm9vdFdhbGxldEtleXMpKTtcblxuICB1bnNwZW50cy5mb3JFYWNoKCh1LCBpKSA9PiB7XG4gICAgYWRkVG9UcmFuc2FjdGlvbkJ1aWxkZXIodHhiLCB1KTtcbiAgfSk7XG5cbiAgb3V0cHV0cy5mb3JFYWNoKChvdXRwdXQsIGkpID0+IHtcbiAgICBjb25zdCBhZGRyZXNzID0gb3V0cHV0LnNjcmlwdFR5cGVcbiAgICAgID8gZ2V0V2FsbGV0QWRkcmVzcyhcbiAgICAgICAgICByb290V2FsbGV0S2V5cyxcbiAgICAgICAgICBvdXRwdXQuaXNJbnRlcm5hbEFkZHJlc3MgPyBnZXRJbnRlcm5hbENoYWluQ29kZShvdXRwdXQuc2NyaXB0VHlwZSkgOiBnZXRFeHRlcm5hbENoYWluQ29kZShvdXRwdXQuc2NyaXB0VHlwZSksXG4gICAgICAgICAgaSxcbiAgICAgICAgICBuZXR3b3JrXG4gICAgICAgIClcbiAgICAgIDogb3V0cHV0LmFkZHJlc3M7XG4gICAgaWYgKCFhZGRyZXNzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FkZHJlc3MgaXMgbWlzc2luZycpO1xuICAgIH1cbiAgICB0eGIuYWRkT3V0cHV0KGFkZHJlc3MsIG91dHB1dC52YWx1ZSk7XG4gIH0pO1xuXG4gIGlmIChzaWduID09PSAndW5zaWduZWQnKSB7XG4gICAgcmV0dXJuIHR4YjtcbiAgfVxuXG4gIHNpZ25BbGxUeG5JbnB1dHModHhiLCBpbnB1dHMsIHJvb3RXYWxsZXRLZXlzLCAnaGFsZnNpZ25lZCcpO1xuXG4gIGlmIChzaWduID09PSAnZnVsbHNpZ25lZCcpIHtcbiAgICBzaWduQWxsVHhuSW5wdXRzKHR4YiwgaW5wdXRzLCByb290V2FsbGV0S2V5cywgc2lnbik7XG4gIH1cblxuICByZXR1cm4gdHhiO1xufVxuIl19
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdHV0aWwvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQWlDO0FBRWpDLDBEQUF5RztBQUN6RyxvQ0Fja0I7QUFFbEIsaUNBQXdFO0FBMkJ4RTs7R0FFRztBQUNVLFFBQUEsbUJBQW1CLEdBQUcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsa0NBQWtCLENBQVUsQ0FBQztBQUV2Rzs7R0FFRztBQUNVLFFBQUEsb0JBQW9CLEdBQUcsK0JBQWUsQ0FBQztBQUVwRDs7R0FFRztBQUNILFNBQWdCLFlBQVksQ0FDMUIsS0FBd0IsRUFDeEIsS0FBYSxFQUNiLE9BQWdCLEVBQ2hCLGNBQThCO0lBRTlCLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7UUFDbkMsT0FBTyxJQUFBLGtDQUEyQixFQUFVLE9BQU8sRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztLQUNqSDtTQUFNO1FBQ0wsT0FBTyxJQUFBLHdCQUFpQixFQUFVLE9BQU8sRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFO1lBQ3RELEtBQUssRUFBRSxJQUFBLDRCQUFvQixFQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDN0MsSUFBSSxFQUFFLEtBQUs7WUFDWCxJQUFJLEVBQUUsY0FBYztZQUNwQixLQUFLO1NBQ04sQ0FBQyxDQUFDO0tBQ0o7QUFDSCxDQUFDO0FBaEJELG9DQWdCQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixhQUFhLENBQUMsU0FBNkI7SUFDekQsT0FBTztRQUNMLFVBQVUsRUFBRSxNQUFNO1FBQ2xCLFlBQVksRUFBRSxTQUFTLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU87S0FDN0QsQ0FBQztBQUNKLENBQUM7QUFMRCxzQ0FLQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLFlBQVksQ0FDMUIsR0FBb0MsRUFDcEMsS0FBd0IsRUFDeEIsVUFBa0IsRUFDbEIsY0FBOEIsRUFDOUIsSUFBaUMsRUFDakMsT0FBeUQ7SUFFekQsTUFBTSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6RixNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzdFLElBQUksSUFBSSxLQUFLLFlBQVksRUFBRTtRQUN6QixJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFO1lBQ25DLElBQUEseUJBQWlCLEVBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztTQUNoRTthQUFNLElBQUksSUFBQSx1QkFBZSxFQUFDLE9BQU8sQ0FBQyxJQUFJLFlBQVksRUFBRTtZQUNuRCxJQUFBLDRCQUFvQixFQUNsQixHQUFHLEVBQ0gsVUFBVSxFQUNWLE9BQU8sRUFDUCwyQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxVQUFVLENBQUMsRUFBRSxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FDbkcsQ0FBQztTQUNIO0tBQ0Y7SUFDRCxJQUFJLElBQUEsdUJBQWUsRUFBQyxPQUFPLENBQUMsSUFBSSxJQUFJLEtBQUssWUFBWSxJQUFJLFlBQVksRUFBRTtRQUNyRSxJQUFBLDRCQUFvQixFQUNsQixHQUFHLEVBQ0gsVUFBVSxFQUNWLE9BQU8sRUFDUCwyQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxZQUFZLENBQUMsRUFBRSxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FDbkcsQ0FBQztLQUNIO0FBQ0gsQ0FBQztBQTlCRCxvQ0E4QkM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixnQkFBZ0IsQ0FDOUIsR0FBb0MsRUFDcEMsTUFBMkIsRUFDM0IsY0FBOEIsRUFDOUIsSUFBaUMsRUFDakMsT0FBeUQ7SUFFekQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUM5QixZQUFZLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqRSxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFWRCw0Q0FVQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQ2pDLE1BQTJCLEVBQzNCLE9BQTZCLEVBQzdCLE9BQWdCLEVBQ2hCLGNBQThCLEVBQzlCLElBQThDLEVBQzlDLE9BQXlEO0lBRXpELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdGLE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pHLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxpQkFBaUIsRUFBRSx5Q0FBeUMsQ0FBQyxDQUFDO0lBQ3pGLE1BQU0sQ0FDSixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFDbEYsOERBQThELENBQy9ELENBQUM7SUFFRixNQUFNLEdBQUcsR0FBRyxJQUFBLDBDQUFrQyxFQUFVLE9BQU8sQ0FBQyxDQUFDO0lBRWpFLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUUzRixRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3hCLElBQUEsK0JBQXVCLEVBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUM1QixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVTtZQUMvQixDQUFDLENBQUMsSUFBQSx3QkFBZ0IsRUFDZCxjQUFjLEVBQ2QsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFBLDRCQUFvQixFQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBQSw0QkFBb0IsRUFBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQzVHLENBQUMsRUFDRCxPQUFPLENBQ1I7WUFDSCxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQ3ZDO1FBQ0QsR0FBRyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxJQUFJLEtBQUssVUFBVSxFQUFFO1FBQ3ZCLE9BQU8sR0FBRyxDQUFDO0tBQ1o7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFckUsSUFBSSxJQUFJLEtBQUssWUFBWSxFQUFFO1FBQ3pCLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztLQUM5RDtJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQWxERCxrREFrREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHsgU2NyaXB0VHlwZSwgU2NyaXB0VHlwZTJPZjMsIHNjcmlwdFR5cGVQMnNoUDJwaywgc2NyaXB0VHlwZXMyT2YzIH0gZnJvbSAnLi4vYml0Z28vb3V0cHV0U2NyaXB0cyc7XG5pbXBvcnQge1xuICBnZXRFeHRlcm5hbENoYWluQ29kZSxcbiAgaXNXYWxsZXRVbnNwZW50LFxuICBLZXlOYW1lLFxuICBnZXRJbnRlcm5hbENoYWluQ29kZSxcbiAgUm9vdFdhbGxldEtleXMsXG4gIFVuc3BlbnQsXG4gIFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIGNyZWF0ZVRyYW5zYWN0aW9uQnVpbGRlckZvck5ldHdvcmssXG4gIGFkZFRvVHJhbnNhY3Rpb25CdWlsZGVyLFxuICBnZXRXYWxsZXRBZGRyZXNzLFxuICBzaWduSW5wdXRQMnNoUDJwayxcbiAgc2lnbklucHV0V2l0aFVuc3BlbnQsXG4gIFdhbGxldFVuc3BlbnRTaWduZXIsXG59IGZyb20gJy4uL2JpdGdvJztcbmltcG9ydCB7IE5ldHdvcmsgfSBmcm9tICcuLi9uZXR3b3Jrcyc7XG5pbXBvcnQgeyBtb2NrUmVwbGF5UHJvdGVjdGlvblVuc3BlbnQsIG1vY2tXYWxsZXRVbnNwZW50IH0gZnJvbSAnLi9tb2NrJztcblxuLyoqXG4gKiBpbnB1dCBzY3JpcHQgdHlwZSBhbmQgdmFsdWUuXG4gKi9cbmV4cG9ydCB0eXBlIFR4bklucHV0U2NyaXB0VHlwZSA9IEV4Y2x1ZGU8U2NyaXB0VHlwZSwgJ3AydHJNdXNpZzInPjtcbmV4cG9ydCB0eXBlIFR4bk91dHB1dFNjcmlwdFR5cGUgPSBTY3JpcHRUeXBlMk9mMztcblxuLyoqXG4gKiBvdXRwdXQgc2NyaXB0IHR5cGUgYW5kIHZhbHVlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHhuSW5wdXQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4ge1xuICBzY3JpcHRUeXBlOiBUeG5JbnB1dFNjcmlwdFR5cGU7XG4gIHZhbHVlOiBUTnVtYmVyO1xufVxuXG4vKipcbiAqIHNob3VsZCBzZXQgZWl0aGVyIGFkZHJlc3Mgb3Igc2NyaXB0VHlwZSwgbmV2ZXIgYm90aC5cbiAqIHNldCBpc0ludGVybmFsQWRkcmVzcz10cnVlIGZvciBpbnRlcm5hbCBvdXRwdXQgYWRkcmVzc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFR4bk91dHB1dDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PiB7XG4gIGFkZHJlc3M/OiBzdHJpbmc7XG4gIHNjcmlwdFR5cGU/OiBUeG5PdXRwdXRTY3JpcHRUeXBlO1xuICB2YWx1ZTogVE51bWJlcjtcbiAgaXNJbnRlcm5hbEFkZHJlc3M/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIGFycmF5IG9mIHN1cHBvcnRlZCBpbnB1dCBzY3JpcHQgdHlwZXMuXG4gKi9cbmV4cG9ydCBjb25zdCB0eG5JbnB1dFNjcmlwdFR5cGVzID0gWydwMnNoJywgJ3Ayc2hQMndzaCcsICdwMndzaCcsICdwMnRyJywgc2NyaXB0VHlwZVAyc2hQMnBrXSBhcyBjb25zdDtcblxuLyoqXG4gKiBhcnJheSBvZiBzdXBwb3J0ZWQgb3V0cHV0IHNjcmlwdCB0eXBlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IHR4bk91dHB1dFNjcmlwdFR5cGVzID0gc2NyaXB0VHlwZXMyT2YzO1xuXG4vKipcbiAqIGNyZWF0ZSB1bnNwZW50IG9iamVjdCBmcm9tIGlucHV0IHNjcmlwdCB0eXBlLCBpbmRleCwgbmV0d29yayBhbmQgcm9vdCB3YWxsZXQga2V5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9UeG5VbnNwZW50PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICBpbnB1dDogVHhuSW5wdXQ8VE51bWJlcj4sXG4gIGluZGV4OiBudW1iZXIsXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIHJvb3RXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5c1xuKTogVW5zcGVudDxUTnVtYmVyPiB7XG4gIGlmIChpbnB1dC5zY3JpcHRUeXBlID09PSAncDJzaFAycGsnKSB7XG4gICAgcmV0dXJuIG1vY2tSZXBsYXlQcm90ZWN0aW9uVW5zcGVudDxUTnVtYmVyPihuZXR3b3JrLCBpbnB1dC52YWx1ZSwgeyBrZXk6IHJvb3RXYWxsZXRLZXlzWyd1c2VyJ10sIHZvdXQ6IGluZGV4IH0pO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBtb2NrV2FsbGV0VW5zcGVudDxUTnVtYmVyPihuZXR3b3JrLCBpbnB1dC52YWx1ZSwge1xuICAgICAgY2hhaW46IGdldEludGVybmFsQ2hhaW5Db2RlKGlucHV0LnNjcmlwdFR5cGUpLFxuICAgICAgdm91dDogaW5kZXgsXG4gICAgICBrZXlzOiByb290V2FsbGV0S2V5cyxcbiAgICAgIGluZGV4LFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogcmV0dXJucyBzaWduZXIgYW5kIGNvc2lnbmVyIG5hbWVzIGZvciBUeG5JbnB1dFNjcmlwdFR5cGUuXG4gKiB1c2VyIGFuZCB1bmRlZmluZWQgYXMgc2lnbmVyIGFuZCBjb3NpZ25lciByZXNwZWN0aXZlbHkgZm9yIHAyc2hQMnBrLlxuICogdXNlciBhbmQgYml0Z28gYXMgc2lnbmVyIGFuZCBjb3NpZ25lciByZXNwZWN0aXZlbHkgZm9yIG90aGVyIGlucHV0IHNjcmlwdCB0eXBlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFR4blNpZ25lcnMoaW5wdXRUeXBlOiBUeG5JbnB1dFNjcmlwdFR5cGUpOiB7IHNpZ25lck5hbWU6IEtleU5hbWU7IGNvc2lnbmVyTmFtZT86IEtleU5hbWUgfSB7XG4gIHJldHVybiB7XG4gICAgc2lnbmVyTmFtZTogJ3VzZXInLFxuICAgIGNvc2lnbmVyTmFtZTogaW5wdXRUeXBlID09PSAncDJzaFAycGsnID8gdW5kZWZpbmVkIDogJ2JpdGdvJyxcbiAgfTtcbn1cblxuLyoqXG4gKiBzaWducyB3aXRoIGZpcnN0IG9yIHNlY29uZCBzaWduYXR1cmUgZm9yIHNpbmdsZSBpbnB1dC5cbiAqIHAyc2hQMnBrIGlzIHNpZ25lZCBvbmx5IHdpdGggZmlyc3Qgc2lnbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25UeG5JbnB1dDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgdHhiOiBVdHhvVHJhbnNhY3Rpb25CdWlsZGVyPFROdW1iZXI+LFxuICBpbnB1dDogVHhuSW5wdXQ8VE51bWJlcj4sXG4gIGlucHV0SW5kZXg6IG51bWJlcixcbiAgcm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICBzaWduOiAnaGFsZnNpZ25lZCcgfCAnZnVsbHNpZ25lZCcsXG4gIHNpZ25lcnM/OiB7IHNpZ25lck5hbWU6IEtleU5hbWU7IGNvc2lnbmVyTmFtZT86IEtleU5hbWUgfVxuKTogdm9pZCB7XG4gIGNvbnN0IHsgc2lnbmVyTmFtZSwgY29zaWduZXJOYW1lIH0gPSBzaWduZXJzID8gc2lnbmVycyA6IGdldFR4blNpZ25lcnMoaW5wdXQuc2NyaXB0VHlwZSk7XG4gIGNvbnN0IHVuc3BlbnQgPSB0b1R4blVuc3BlbnQoaW5wdXQsIGlucHV0SW5kZXgsIHR4Yi5uZXR3b3JrLCByb290V2FsbGV0S2V5cyk7XG4gIGlmIChzaWduID09PSAnaGFsZnNpZ25lZCcpIHtcbiAgICBpZiAoaW5wdXQuc2NyaXB0VHlwZSA9PT0gJ3Ayc2hQMnBrJykge1xuICAgICAgc2lnbklucHV0UDJzaFAycGsodHhiLCBpbnB1dEluZGV4LCByb290V2FsbGV0S2V5c1tzaWduZXJOYW1lXSk7XG4gICAgfSBlbHNlIGlmIChpc1dhbGxldFVuc3BlbnQodW5zcGVudCkgJiYgY29zaWduZXJOYW1lKSB7XG4gICAgICBzaWduSW5wdXRXaXRoVW5zcGVudChcbiAgICAgICAgdHhiLFxuICAgICAgICBpbnB1dEluZGV4LFxuICAgICAgICB1bnNwZW50LFxuICAgICAgICBXYWxsZXRVbnNwZW50U2lnbmVyLmZyb20ocm9vdFdhbGxldEtleXMsIHJvb3RXYWxsZXRLZXlzW3NpZ25lck5hbWVdLCByb290V2FsbGV0S2V5c1tjb3NpZ25lck5hbWVdKVxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgaWYgKGlzV2FsbGV0VW5zcGVudCh1bnNwZW50KSAmJiBzaWduID09PSAnZnVsbHNpZ25lZCcgJiYgY29zaWduZXJOYW1lKSB7XG4gICAgc2lnbklucHV0V2l0aFVuc3BlbnQoXG4gICAgICB0eGIsXG4gICAgICBpbnB1dEluZGV4LFxuICAgICAgdW5zcGVudCxcbiAgICAgIFdhbGxldFVuc3BlbnRTaWduZXIuZnJvbShyb290V2FsbGV0S2V5cywgcm9vdFdhbGxldEtleXNbY29zaWduZXJOYW1lXSwgcm9vdFdhbGxldEtleXNbc2lnbmVyTmFtZV0pXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIHNpZ25zIHdpdGggZmlyc3Qgb3Igc2Vjb25kIHNpZ25hdHVyZSBmb3IgYWxsIGlucHV0cy5cbiAqIHAyc2hQMnBrIGlzIHNpZ25lZCBvbmx5IHdpdGggZmlyc3Qgc2lnbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25BbGxUeG5JbnB1dHM8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIHR4YjogVXR4b1RyYW5zYWN0aW9uQnVpbGRlcjxUTnVtYmVyPixcbiAgaW5wdXRzOiBUeG5JbnB1dDxUTnVtYmVyPltdLFxuICByb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gIHNpZ246ICdoYWxmc2lnbmVkJyB8ICdmdWxsc2lnbmVkJyxcbiAgc2lnbmVycz86IHsgc2lnbmVyTmFtZTogS2V5TmFtZTsgY29zaWduZXJOYW1lPzogS2V5TmFtZSB9XG4pOiB2b2lkIHtcbiAgaW5wdXRzLmZvckVhY2goKGlucHV0LCBpbmRleCkgPT4ge1xuICAgIHNpZ25UeG5JbnB1dCh0eGIsIGlucHV0LCBpbmRleCwgcm9vdFdhbGxldEtleXMsIHNpZ24sIHNpZ25lcnMpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBjb25zdHJ1Y3QgdHJhbnNhY3Rpb24gZm9yIGdpdmVuIGlucHV0cywgb3V0cHV0cywgbmV0d29yayBhbmQgcm9vdCB3YWxsZXQga2V5cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnN0cnVjdFR4bkJ1aWxkZXI8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIGlucHV0czogVHhuSW5wdXQ8VE51bWJlcj5bXSxcbiAgb3V0cHV0czogVHhuT3V0cHV0PFROdW1iZXI+W10sXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIHJvb3RXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgc2lnbjogJ3Vuc2lnbmVkJyB8ICdoYWxmc2lnbmVkJyB8ICdmdWxsc2lnbmVkJyxcbiAgc2lnbmVycz86IHsgc2lnbmVyTmFtZTogS2V5TmFtZTsgY29zaWduZXJOYW1lPzogS2V5TmFtZSB9XG4pOiBVdHhvVHJhbnNhY3Rpb25CdWlsZGVyPFROdW1iZXI+IHtcbiAgY29uc3QgdG90YWxJbnB1dEFtb3VudCA9IGlucHV0cy5yZWR1Y2UoKHN1bSwgaW5wdXQpID0+IHN1bSArIEJpZ0ludChpbnB1dC52YWx1ZSksIEJpZ0ludCgwKSk7XG4gIGNvbnN0IG91dHB1dElucHV0QW1vdW50ID0gb3V0cHV0cy5yZWR1Y2UoKHN1bSwgb3V0cHV0KSA9PiBzdW0gKyBCaWdJbnQob3V0cHV0LnZhbHVlKSwgQmlnSW50KDApKTtcbiAgYXNzZXJ0KHRvdGFsSW5wdXRBbW91bnQgPj0gb3V0cHV0SW5wdXRBbW91bnQsICd0b3RhbCBvdXRwdXQgY2FuIG5vdCBleGNlZWQgdG90YWwgaW5wdXQnKTtcbiAgYXNzZXJ0KFxuICAgICFvdXRwdXRzLnNvbWUoKG8pID0+IChvLnNjcmlwdFR5cGUgJiYgby5hZGRyZXNzKSB8fCAoIW8uc2NyaXB0VHlwZSAmJiAhby5hZGRyZXNzKSksXG4gICAgJ29ubHkgZWl0aGVyIG91dHB1dCBzY3JpcHQgdHlwZSBvciBhZGRyZXNzIHNob3VsZCBiZSBwcm92aWRlZCdcbiAgKTtcblxuICBjb25zdCB0eGIgPSBjcmVhdGVUcmFuc2FjdGlvbkJ1aWxkZXJGb3JOZXR3b3JrPFROdW1iZXI+KG5ldHdvcmspO1xuXG4gIGNvbnN0IHVuc3BlbnRzID0gaW5wdXRzLm1hcCgoaW5wdXQsIGkpID0+IHRvVHhuVW5zcGVudChpbnB1dCwgaSwgbmV0d29yaywgcm9vdFdhbGxldEtleXMpKTtcblxuICB1bnNwZW50cy5mb3JFYWNoKCh1LCBpKSA9PiB7XG4gICAgYWRkVG9UcmFuc2FjdGlvbkJ1aWxkZXIodHhiLCB1KTtcbiAgfSk7XG5cbiAgb3V0cHV0cy5mb3JFYWNoKChvdXRwdXQsIGkpID0+IHtcbiAgICBjb25zdCBhZGRyZXNzID0gb3V0cHV0LnNjcmlwdFR5cGVcbiAgICAgID8gZ2V0V2FsbGV0QWRkcmVzcyhcbiAgICAgICAgICByb290V2FsbGV0S2V5cyxcbiAgICAgICAgICBvdXRwdXQuaXNJbnRlcm5hbEFkZHJlc3MgPyBnZXRJbnRlcm5hbENoYWluQ29kZShvdXRwdXQuc2NyaXB0VHlwZSkgOiBnZXRFeHRlcm5hbENoYWluQ29kZShvdXRwdXQuc2NyaXB0VHlwZSksXG4gICAgICAgICAgaSxcbiAgICAgICAgICBuZXR3b3JrXG4gICAgICAgIClcbiAgICAgIDogb3V0cHV0LmFkZHJlc3M7XG4gICAgaWYgKCFhZGRyZXNzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FkZHJlc3MgaXMgbWlzc2luZycpO1xuICAgIH1cbiAgICB0eGIuYWRkT3V0cHV0KGFkZHJlc3MsIG91dHB1dC52YWx1ZSk7XG4gIH0pO1xuXG4gIGlmIChzaWduID09PSAndW5zaWduZWQnKSB7XG4gICAgcmV0dXJuIHR4YjtcbiAgfVxuXG4gIHNpZ25BbGxUeG5JbnB1dHModHhiLCBpbnB1dHMsIHJvb3RXYWxsZXRLZXlzLCAnaGFsZnNpZ25lZCcsIHNpZ25lcnMpO1xuXG4gIGlmIChzaWduID09PSAnZnVsbHNpZ25lZCcpIHtcbiAgICBzaWduQWxsVHhuSW5wdXRzKHR4YiwgaW5wdXRzLCByb290V2FsbGV0S2V5cywgc2lnbiwgc2lnbmVycyk7XG4gIH1cblxuICByZXR1cm4gdHhiO1xufVxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"transaction_builder.d.ts","sourceRoot":"","sources":["../../src/transaction_builder.ts"],"names":[],"mappings":";AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAM7B,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAG3C,MAAM,WAAW,MAAM;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,IAAI,MAAM,CAAC;IACxB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3C,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACnC;AAuED,UAAU,UAAU,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM;IAC3D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAsBD,qBAAa,kBAAkB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM;IAyCnD,OAAO,EAAE,OAAO;IAA4B,cAAc,EAAE,MAAM;IAxCrF,MAAM,CAAC,eAAe,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAC7D,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,EACjC,OAAO,CAAC,EAAE,OAAO,EACjB,WAAW,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,GAChC,kBAAkB,CAAC,OAAO,CAAC;IA6B9B,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,IAAI,CAAuB;IACnC,OAAO,CAAC,WAAW,CAAU;gBAIV,OAAO,GAAE,OAA0B,EAAS,cAAc,GAAE,MAAa;IAe5F,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO;IASnC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAiBnC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAOjC,QAAQ,CACN,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,EAC9C,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,MAAM,EACtB,KAAK,CAAC,EAAE,OAAO,GACd,MAAM;IA0BT,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM;IAahE,KAAK,IAAI,WAAW,CAAC,OAAO,CAAC;IAI7B,eAAe,IAAI,WAAW,CAAC,OAAO,CAAC;IAIvC,IAAI,CACF,UAAU,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,EACxC,OAAO,CAAC,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,OAAO,EACtB,aAAa,CAAC,EAAE,MAAM,EACtB,YAAY,CAAC,EAAE,MAAM,EACrB,KAAK,CAAC,EAAE,MAAM,GACb,IAAI;IAoBP,OAAO,CAAC,gBAAgB;IA4CxB,OAAO,CAAC,OAAO;IAmCf,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,kBAAkB;IAwB1B,OAAO,CAAC,iBAAiB;CAe1B"}
1
+ {"version":3,"file":"transaction_builder.d.ts","sourceRoot":"","sources":["../../src/transaction_builder.ts"],"names":[],"mappings":";AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAM7B,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAG3C,MAAM,WAAW,MAAM;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,IAAI,MAAM,CAAC;IACxB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3C,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACnC;AAuED,UAAU,UAAU,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM;IAC3D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAsBD,qBAAa,kBAAkB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM;IAyCnD,OAAO,EAAE,OAAO;IAA4B,cAAc,EAAE,MAAM;IAxCrF,MAAM,CAAC,eAAe,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAC7D,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,EACjC,OAAO,CAAC,EAAE,OAAO,EACjB,WAAW,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,GAChC,kBAAkB,CAAC,OAAO,CAAC;IA6B9B,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,IAAI,CAAuB;IACnC,OAAO,CAAC,WAAW,CAAU;gBAIV,OAAO,GAAE,OAA0B,EAAS,cAAc,GAAE,MAAa;IAQ5F,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO;IASnC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAiBnC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAOjC,QAAQ,CACN,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,EAC9C,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,MAAM,EACtB,KAAK,CAAC,EAAE,OAAO,GACd,MAAM;IA0BT,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM;IAahE,KAAK,IAAI,WAAW,CAAC,OAAO,CAAC;IAI7B,eAAe,IAAI,WAAW,CAAC,OAAO,CAAC;IAIvC,IAAI,CACF,UAAU,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,EACxC,OAAO,CAAC,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,OAAO,EACtB,aAAa,CAAC,EAAE,MAAM,EACtB,YAAY,CAAC,EAAE,MAAM,EACrB,KAAK,CAAC,EAAE,MAAM,GACb,IAAI;IAoBP,OAAO,CAAC,gBAAgB;IA4CxB,OAAO,CAAC,OAAO;IAmCf,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,kBAAkB;IAwB1B,OAAO,CAAC,iBAAiB;CAe1B"}