@bitgo/account-lib 2.18.0 → 2.19.0-rc.10

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 (182) hide show
  1. package/.mocharc.js +10 -0
  2. package/DEVELOPER.md +1 -1
  3. package/dist/browser/bitgo-account-lib.js +1 -1
  4. package/dist/browser/bitgo-account-lib.js.LICENSE.txt +10 -17
  5. package/dist/package.json +12 -15
  6. package/dist/src/coin/algo/ifaces.d.ts +1 -0
  7. package/dist/src/coin/algo/ifaces.d.ts.map +1 -1
  8. package/dist/src/coin/algo/ifaces.js +1 -1
  9. package/dist/src/coin/algo/index.d.ts +2 -0
  10. package/dist/src/coin/algo/index.d.ts.map +1 -1
  11. package/dist/src/coin/algo/index.js +23 -2
  12. package/dist/src/coin/algo/keyRegistrationBuilder.d.ts +24 -5
  13. package/dist/src/coin/algo/keyRegistrationBuilder.d.ts.map +1 -1
  14. package/dist/src/coin/algo/keyRegistrationBuilder.js +100 -21
  15. package/dist/src/coin/algo/transaction.d.ts.map +1 -1
  16. package/dist/src/coin/algo/transaction.js +15 -6
  17. package/dist/src/coin/algo/txnSchema.d.ts.map +1 -1
  18. package/dist/src/coin/algo/txnSchema.js +2 -1
  19. package/dist/src/coin/algo/utils.d.ts +5 -0
  20. package/dist/src/coin/algo/utils.d.ts.map +1 -1
  21. package/dist/src/coin/algo/utils.js +19 -2
  22. package/dist/src/coin/avaxc/resources.js +3 -3
  23. package/dist/src/coin/avaxc/transactionBuilder.d.ts +1 -1
  24. package/dist/src/coin/avaxc/transactionBuilder.d.ts.map +1 -1
  25. package/dist/src/coin/avaxc/transactionBuilder.js +1 -1
  26. package/dist/src/coin/baseCoin/baseTransaction.d.ts +6 -0
  27. package/dist/src/coin/baseCoin/baseTransaction.d.ts.map +1 -1
  28. package/dist/src/coin/baseCoin/baseTransaction.js +13 -1
  29. package/dist/src/coin/baseCoin/baseTransactionBuilder.d.ts +9 -1
  30. package/dist/src/coin/baseCoin/baseTransactionBuilder.d.ts.map +1 -1
  31. package/dist/src/coin/baseCoin/baseTransactionBuilder.js +10 -1
  32. package/dist/src/coin/baseCoin/blsKeyPair.js +7 -7
  33. package/dist/src/coin/baseCoin/iface.d.ts +7 -0
  34. package/dist/src/coin/baseCoin/iface.d.ts.map +1 -1
  35. package/dist/src/coin/baseCoin/iface.js +1 -1
  36. package/dist/src/coin/baseCoin/index.d.ts +1 -0
  37. package/dist/src/coin/baseCoin/index.d.ts.map +1 -1
  38. package/dist/src/coin/baseCoin/index.js +4 -2
  39. package/dist/src/coin/celo/stakingBuilder.d.ts +1 -1
  40. package/dist/src/coin/celo/stakingBuilder.d.ts.map +1 -1
  41. package/dist/src/coin/celo/stakingBuilder.js +1 -1
  42. package/dist/src/coin/celo/transactionBuilder.d.ts +1 -1
  43. package/dist/src/coin/celo/transactionBuilder.d.ts.map +1 -1
  44. package/dist/src/coin/celo/transactionBuilder.js +1 -1
  45. package/dist/src/coin/cspr/delegateBuilder.d.ts +1 -1
  46. package/dist/src/coin/cspr/delegateBuilder.d.ts.map +1 -1
  47. package/dist/src/coin/cspr/delegateBuilder.js +1 -1
  48. package/dist/src/coin/cspr/transaction.d.ts +1 -1
  49. package/dist/src/coin/cspr/transaction.d.ts.map +1 -1
  50. package/dist/src/coin/cspr/transaction.js +1 -1
  51. package/dist/src/coin/cspr/transactionBuilder.d.ts +1 -1
  52. package/dist/src/coin/cspr/transactionBuilder.d.ts.map +1 -1
  53. package/dist/src/coin/cspr/transactionBuilder.js +1 -1
  54. package/dist/src/coin/cspr/transactionBuilderFactory.d.ts +1 -1
  55. package/dist/src/coin/cspr/transactionBuilderFactory.d.ts.map +1 -1
  56. package/dist/src/coin/cspr/transactionBuilderFactory.js +1 -1
  57. package/dist/src/coin/cspr/transferBuilder.d.ts +1 -1
  58. package/dist/src/coin/cspr/transferBuilder.d.ts.map +1 -1
  59. package/dist/src/coin/cspr/transferBuilder.js +1 -1
  60. package/dist/src/coin/cspr/undelegateBuilder.d.ts +1 -1
  61. package/dist/src/coin/cspr/undelegateBuilder.d.ts.map +1 -1
  62. package/dist/src/coin/cspr/undelegateBuilder.js +1 -1
  63. package/dist/src/coin/cspr/walletInitializationBuilder.d.ts +1 -1
  64. package/dist/src/coin/cspr/walletInitializationBuilder.d.ts.map +1 -1
  65. package/dist/src/coin/cspr/walletInitializationBuilder.js +1 -1
  66. package/dist/src/coin/dot/batchTransactionBuilder.d.ts.map +1 -1
  67. package/dist/src/coin/dot/batchTransactionBuilder.js +1 -1
  68. package/dist/src/coin/dot/iface.d.ts +8 -2
  69. package/dist/src/coin/dot/iface.d.ts.map +1 -1
  70. package/dist/src/coin/dot/iface.js +2 -1
  71. package/dist/src/coin/dot/index.d.ts +2 -0
  72. package/dist/src/coin/dot/index.d.ts.map +1 -1
  73. package/dist/src/coin/dot/index.js +6 -2
  74. package/dist/src/coin/dot/keyPair.d.ts.map +1 -1
  75. package/dist/src/coin/dot/keyPair.js +4 -2
  76. package/dist/src/coin/dot/singletonRegistry.d.ts +7 -0
  77. package/dist/src/coin/dot/singletonRegistry.d.ts.map +1 -0
  78. package/dist/src/coin/dot/singletonRegistry.js +23 -0
  79. package/dist/src/coin/dot/transaction.d.ts +18 -2
  80. package/dist/src/coin/dot/transaction.d.ts.map +1 -1
  81. package/dist/src/coin/dot/transaction.js +66 -66
  82. package/dist/src/coin/dot/transactionBuilder.d.ts +6 -2
  83. package/dist/src/coin/dot/transactionBuilder.d.ts.map +1 -1
  84. package/dist/src/coin/dot/transactionBuilder.js +19 -8
  85. package/dist/src/coin/dot/transactionBuilderFactory.d.ts +2 -1
  86. package/dist/src/coin/dot/transactionBuilderFactory.d.ts.map +1 -1
  87. package/dist/src/coin/dot/transactionBuilderFactory.js +6 -7
  88. package/dist/src/coin/dot/transferBuilder.d.ts.map +1 -1
  89. package/dist/src/coin/dot/transferBuilder.js +4 -3
  90. package/dist/src/coin/dot/txnSchema.d.ts +1 -0
  91. package/dist/src/coin/dot/txnSchema.d.ts.map +1 -1
  92. package/dist/src/coin/dot/txnSchema.js +5 -2
  93. package/dist/src/coin/dot/utils.d.ts +19 -4
  94. package/dist/src/coin/dot/utils.d.ts.map +1 -1
  95. package/dist/src/coin/dot/utils.js +39 -11
  96. package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts +38 -0
  97. package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts.map +1 -0
  98. package/dist/src/coin/dot/withdrawUnstakedBuilder.js +112 -0
  99. package/dist/src/coin/etc/transactionBuilder.d.ts +1 -1
  100. package/dist/src/coin/etc/transactionBuilder.d.ts.map +1 -1
  101. package/dist/src/coin/etc/transactionBuilder.js +1 -1
  102. package/dist/src/coin/eth2/keyPair.js +2 -2
  103. package/dist/src/coin/hbar/transaction.d.ts +1 -1
  104. package/dist/src/coin/hbar/transaction.d.ts.map +1 -1
  105. package/dist/src/coin/hbar/transaction.js +1 -1
  106. package/dist/src/coin/hbar/transactionBuilder.d.ts +1 -1
  107. package/dist/src/coin/hbar/transactionBuilder.d.ts.map +1 -1
  108. package/dist/src/coin/hbar/transactionBuilder.js +1 -1
  109. package/dist/src/coin/hbar/transactionBuilderFactory.d.ts +1 -1
  110. package/dist/src/coin/hbar/transactionBuilderFactory.d.ts.map +1 -1
  111. package/dist/src/coin/hbar/transactionBuilderFactory.js +1 -1
  112. package/dist/src/coin/hbar/transferBuilder.d.ts +1 -1
  113. package/dist/src/coin/hbar/transferBuilder.d.ts.map +1 -1
  114. package/dist/src/coin/hbar/transferBuilder.js +1 -1
  115. package/dist/src/coin/hbar/walletInitializationBuilder.d.ts +1 -1
  116. package/dist/src/coin/hbar/walletInitializationBuilder.d.ts.map +1 -1
  117. package/dist/src/coin/hbar/walletInitializationBuilder.js +1 -1
  118. package/dist/src/coin/near/iface.d.ts +29 -0
  119. package/dist/src/coin/near/iface.d.ts.map +1 -0
  120. package/dist/src/coin/near/iface.js +8 -0
  121. package/dist/src/coin/near/index.d.ts +3 -0
  122. package/dist/src/coin/near/index.d.ts.map +1 -1
  123. package/dist/src/coin/near/index.js +8 -2
  124. package/dist/src/coin/near/keyPair.d.ts +7 -0
  125. package/dist/src/coin/near/keyPair.d.ts.map +1 -1
  126. package/dist/src/coin/near/keyPair.js +15 -1
  127. package/dist/src/coin/near/transaction.d.ts +57 -2
  128. package/dist/src/coin/near/transaction.d.ts.map +1 -1
  129. package/dist/src/coin/near/transaction.js +244 -6
  130. package/dist/src/coin/near/transactionBuilder.d.ts +64 -2
  131. package/dist/src/coin/near/transactionBuilder.d.ts.map +1 -1
  132. package/dist/src/coin/near/transactionBuilder.js +219 -8
  133. package/dist/src/coin/near/transactionBuilderFactory.d.ts +1 -1
  134. package/dist/src/coin/near/transactionBuilderFactory.d.ts.map +1 -1
  135. package/dist/src/coin/near/transactionBuilderFactory.js +17 -2
  136. package/dist/src/coin/near/transferBuilder.d.ts +14 -2
  137. package/dist/src/coin/near/transferBuilder.d.ts.map +1 -1
  138. package/dist/src/coin/near/transferBuilder.js +63 -8
  139. package/dist/src/coin/near/utils.d.ts +24 -1
  140. package/dist/src/coin/near/utils.d.ts.map +1 -1
  141. package/dist/src/coin/near/utils.js +42 -8
  142. package/dist/src/coin/near/walletInitializationBuilder.d.ts +0 -2
  143. package/dist/src/coin/near/walletInitializationBuilder.d.ts.map +1 -1
  144. package/dist/src/coin/near/walletInitializationBuilder.js +2 -6
  145. package/dist/src/coin/rbtc/transactionBuilder.d.ts +1 -1
  146. package/dist/src/coin/rbtc/transactionBuilder.d.ts.map +1 -1
  147. package/dist/src/coin/rbtc/transactionBuilder.js +1 -1
  148. package/dist/src/coin/sol/ataInitializationBuilder.d.ts +12 -1
  149. package/dist/src/coin/sol/ataInitializationBuilder.d.ts.map +1 -1
  150. package/dist/src/coin/sol/ataInitializationBuilder.js +37 -10
  151. package/dist/src/coin/sol/ataInitializationTransaction.d.ts +14 -0
  152. package/dist/src/coin/sol/ataInitializationTransaction.d.ts.map +1 -0
  153. package/dist/src/coin/sol/ataInitializationTransaction.js +104 -0
  154. package/dist/src/coin/sol/index.d.ts +3 -1
  155. package/dist/src/coin/sol/index.d.ts.map +1 -1
  156. package/dist/src/coin/sol/index.js +6 -2
  157. package/dist/src/coin/sol/tokenEncodeDecode.d.ts +85 -0
  158. package/dist/src/coin/sol/tokenEncodeDecode.d.ts.map +1 -0
  159. package/dist/src/coin/sol/tokenEncodeDecode.js +162 -0
  160. package/dist/src/coin/sol/transaction.d.ts +8 -2
  161. package/dist/src/coin/sol/transaction.d.ts.map +1 -1
  162. package/dist/src/coin/sol/transaction.js +21 -3
  163. package/dist/src/coin/sol/transactionBuilder.d.ts +6 -2
  164. package/dist/src/coin/sol/transactionBuilder.d.ts.map +1 -1
  165. package/dist/src/coin/sol/transactionBuilder.js +11 -1
  166. package/dist/src/coin/sol/transactionBuilderFactory.d.ts +3 -1
  167. package/dist/src/coin/sol/transactionBuilderFactory.d.ts.map +1 -1
  168. package/dist/src/coin/sol/transactionBuilderFactory.js +8 -3
  169. package/dist/src/coin/sol/utils.d.ts +9 -0
  170. package/dist/src/coin/sol/utils.d.ts.map +1 -1
  171. package/dist/src/coin/sol/utils.js +27 -2
  172. package/dist/src/index.d.ts +2 -0
  173. package/dist/src/index.d.ts.map +1 -1
  174. package/dist/src/index.js +7 -2
  175. package/dist/src/mpc/tss.d.ts +7 -7
  176. package/dist/src/mpc/tss.d.ts.map +1 -1
  177. package/dist/src/mpc/tss.js +3 -2
  178. package/dist/src/utils/crypto.d.ts +15 -0
  179. package/dist/src/utils/crypto.d.ts.map +1 -1
  180. package/dist/src/utils/crypto.js +33 -2
  181. package/dist/tsconfig.tsbuildinfo +1 -0
  182. package/package.json +12 -15
@@ -52,7 +52,7 @@ object-assign
52
52
  /*!
53
53
  * URI.js - Mutating URLs
54
54
  *
55
- * Version: 1.19.6
55
+ * Version: 1.19.10
56
56
  *
57
57
  * Author: Rodney Rehm
58
58
  * Web: http://medialize.github.io/URI.js/
@@ -66,7 +66,7 @@ object-assign
66
66
  * URI.js - Mutating URLs
67
67
  * IPv6 Support
68
68
  *
69
- * Version: 1.19.6
69
+ * Version: 1.19.10
70
70
  *
71
71
  * Author: Rodney Rehm
72
72
  * Web: http://medialize.github.io/URI.js/
@@ -80,7 +80,7 @@ object-assign
80
80
  * URI.js - Mutating URLs
81
81
  * Second Level Domain (SLD) Support
82
82
  *
83
- * Version: 1.19.6
83
+ * Version: 1.19.10
84
84
  *
85
85
  * Author: Rodney Rehm
86
86
  * Web: http://medialize.github.io/URI.js/
@@ -94,7 +94,7 @@ object-assign
94
94
  * URI.js - Mutating URLs
95
95
  * URI Template Support - http://tools.ietf.org/html/rfc6570
96
96
  *
97
- * Version: 1.19.6
97
+ * Version: 1.19.10
98
98
  *
99
99
  * Author: Rodney Rehm
100
100
  * Web: http://medialize.github.io/URI.js/
@@ -174,22 +174,24 @@ PERFORMANCE OF THIS SOFTWARE.
174
174
 
175
175
  /*! bignumber.js v4.1.0 https://github.com/MikeMcl/bignumber.js/LICENCE */
176
176
 
177
+ /*! crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */
178
+
177
179
  /*! https://mths.be/punycode v1.3.2 by @mathias */
178
180
 
179
181
  /*! https://mths.be/punycode v1.4.0 by @mathias */
180
182
 
181
183
  /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
182
184
 
183
- /*! micro-base - MIT License (c) 2021 Paul Miller (paulmillr.com) */
184
-
185
185
  /*! noble-bls12-381 - MIT License (c) Paul Miller (paulmillr.com) */
186
186
 
187
- /*! noble-hashes - MIT License (c) 2021 Paul Miller (paulmillr.com) */
187
+ /*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
188
188
 
189
- /*! noble-secp256k1 - MIT License (c) Paul Miller (paulmillr.com) */
189
+ /*! noble-secp256k1 - MIT License (c) 2019 Paul Miller (paulmillr.com) */
190
190
 
191
191
  /*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
192
192
 
193
+ /*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */
194
+
193
195
  /**
194
196
  * @license
195
197
  * Lodash <https://lodash.com/>
@@ -323,15 +325,6 @@ PERFORMANCE OF THIS SOFTWARE.
323
325
  * @license MIT
324
326
  */
325
327
 
326
- /**
327
- * [js-sha3]{@link https://github.com/emn178/js-sha3}
328
- *
329
- * @version 0.5.7
330
- * @author Chen, Yi-Cyuan [emn178@gmail.com]
331
- * @copyright Chen, Yi-Cyuan 2015-2016
332
- * @license MIT
333
- */
334
-
335
328
  /**
336
329
  * [js-sha3]{@link https://github.com/emn178/js-sha3}
337
330
  *
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo/account-lib",
3
- "version": "2.18.0",
3
+ "version": "2.19.0-rc.10",
4
4
  "description": "BitGo's account library functions",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
@@ -21,7 +21,7 @@
21
21
  "lint-fix": "eslint --fix 'src/**/*.ts' 'test/**/*.ts'",
22
22
  "prepublishOnly": "npm run compile",
23
23
  "prepare": "npm run gen-protobuf && npm run gen-protobufts && npm run hedera-gen-protobuf && npm run hedera-gen-protobufts && tsc && cp -r ./resources ./dist",
24
- "unit-test": "nyc -- mocha --opts test/mocha.opts \"test/unit/**/*.ts\"",
24
+ "unit-test": "nyc -- mocha",
25
25
  "test": "npm run unit-test",
26
26
  "unprettied": "grep -R -L --include '*.ts' --include '*.js' --include '*.json' '@prettier' src test"
27
27
  },
@@ -38,24 +38,24 @@
38
38
  "dependencies": {
39
39
  "@bitgo/blake2b": "^3.0.2",
40
40
  "@bitgo/bls": "^0.1.0",
41
- "@bitgo/bls-dkg": "^1.0.1",
42
- "@bitgo/statics": "^6.16.0",
41
+ "@bitgo/bls-dkg": "^1.0.2-rc.0",
42
+ "@bitgo/statics": "^6.17.0-rc.5",
43
43
  "@celo/contractkit": "^1.2.4",
44
44
  "@ethereumjs/common": "^2.4.0",
45
45
  "@ethereumjs/tx": "^3.3.0",
46
46
  "@hashgraph/sdk": "~2.3.0",
47
- "@polkadot/api": "^7.3.1",
48
- "@solana/spl-token": "^0.1.8",
49
- "@solana/web3.js": "^1.30.2",
47
+ "@polkadot/api": "^7.8.1",
48
+ "@solana/spl-token": "0.1.8",
49
+ "@solana/web3.js": "1.31.0",
50
50
  "@stablelib/hex": "^1.0.0",
51
51
  "@stablelib/sha384": "^1.0.0",
52
52
  "@stacks/transactions": "2.0.1",
53
- "@substrate/txwrapper-core": "1.5.1",
54
- "@substrate/txwrapper-polkadot": "1.5.1",
53
+ "@substrate/txwrapper-core": "1.5.3",
54
+ "@substrate/txwrapper-polkadot": "1.5.3",
55
55
  "@taquito/local-forging": "6.3.5-beta.0",
56
56
  "@taquito/signer": "6.3.5-beta.0",
57
57
  "@types/lodash": "^4.14.151",
58
- "algosdk": "^1.12.0",
58
+ "algosdk": "^1.14.0",
59
59
  "bignumber.js": "^9.0.0",
60
60
  "bip32": "^2.0.6",
61
61
  "bitcoinjs-lib": "npm:@bitgo/bitcoinjs-lib@6.1.0-rc.3",
@@ -78,7 +78,7 @@
78
78
  "noble-bls12-381": "0.7.2",
79
79
  "protobufjs": "^6.8.9",
80
80
  "secp256k1": "4.0.2",
81
- "stellar-sdk": "^9.0.1",
81
+ "stellar-sdk": "^10.0.1",
82
82
  "tronweb": "^3.2.6",
83
83
  "tweetnacl": "^1.0.3"
84
84
  },
@@ -86,7 +86,6 @@
86
86
  "@types/bs58": "^4.0.1",
87
87
  "@types/elliptic": "^6.4.12",
88
88
  "@types/libsodium-wrappers": "^0.7.7",
89
- "@types/mocha": "^5.2.6",
90
89
  "@types/node": "^11.13.22",
91
90
  "@types/sinon": "^7.5.0",
92
91
  "cross-env": "^7.0.3",
@@ -96,8 +95,6 @@
96
95
  "glob": "^7.1.3",
97
96
  "https-browserify": "^1.0.0",
98
97
  "lint-staged": "^8.1.4",
99
- "mocha": "^6.1.4",
100
- "mochawesome": "^4.1.0",
101
98
  "nyc": "^15.0.0",
102
99
  "process": "^0.11.10",
103
100
  "should": "^13.1.3",
@@ -129,5 +126,5 @@
129
126
  "publishConfig": {
130
127
  "access": "public"
131
128
  },
132
- "gitHead": "6e5ced0a1afd015f348271481c18772b8899c260"
129
+ "gitHead": "b64534b74abe7a84410e43edb344290bbbe78d09"
133
130
  }
@@ -15,6 +15,7 @@ export interface TxData {
15
15
  voteFirst?: number;
16
16
  voteLast?: number;
17
17
  voteKeyDilution?: number;
18
+ stateProofKey?: string;
18
19
  tokenId?: number;
19
20
  genesisID: string;
20
21
  genesisHash: string | Buffer;
@@ -1 +1 @@
1
- {"version":3,"file":"ifaces.d.ts","sourceRoot":"","sources":["../../../../src/coin/algo/ifaces.ts"],"names":[],"mappings":";AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,UAAU,CAAC;IAC3B,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,UAAU,CAAC;CAChB"}
1
+ {"version":3,"file":"ifaces.d.ts","sourceRoot":"","sources":["../../../../src/coin/algo/ifaces.ts"],"names":[],"mappings":";AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,UAAU,CAAC;IAC3B,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,UAAU,CAAC;CAChB"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vYWxnby9pZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhbGdvc2RrIGZyb20gJ2FsZ29zZGsnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFR4RGF0YSB7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIGZyb206IHN0cmluZztcbiAgdG8/OiBzdHJpbmc7XG4gIGZlZTogbnVtYmVyO1xuICBhbW91bnQ/OiBzdHJpbmc7XG4gIGZpcnN0Um91bmQ6IG51bWJlcjtcbiAgbGFzdFJvdW5kOiBudW1iZXI7XG4gIG5vdGU/OiBVaW50OEFycmF5O1xuICB2b3RlS2V5Pzogc3RyaW5nO1xuICBzZWxlY3Rpb25LZXk/OiBzdHJpbmc7XG4gIHZvdGVGaXJzdD86IG51bWJlcjtcbiAgdm90ZUxhc3Q/OiBudW1iZXI7XG4gIHZvdGVLZXlEaWx1dGlvbj86IG51bWJlcjtcbiAgdG9rZW5JZD86IG51bWJlcjtcbiAgZ2VuZXNpc0lEOiBzdHJpbmc7XG4gIGdlbmVzaXNIYXNoOiBzdHJpbmcgfCBCdWZmZXI7XG4gIGNsb3NlUmVtYWluZGVyVG8/OiBzdHJpbmc7XG4gIG5vblBhcnRpY2lwYXRpb24/OiBib29sZWFuO1xuICB0eFR5cGU/OiBzdHJpbmc7XG4gIHRva2VuTmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZGRyZXNzIHtcbiAgcHVibGljS2V5OiBVaW50OEFycmF5O1xuICBjaGVja3N1bTogVWludDhBcnJheTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWVkIHtcbiAgc2VlZDogVWludDhBcnJheTtcbiAgY2hlY2tzdW06IFVpbnQ4QXJyYXk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW5jb2RlZFR4IHtcbiAgcmF3VHJhbnNhY3Rpb246IFVpbnQ4QXJyYXk7XG4gIHR4bjogYWxnb3Nkay5UcmFuc2FjdGlvbjtcbiAgc2lnbmVkOiBib29sZWFuO1xuICBzaWduZXJzPzogc3RyaW5nW107XG4gIHNpZ25lZEJ5Pzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjb3VudCB7XG4gIGFkZHI6IHN0cmluZztcbiAgc2s6IFVpbnQ4QXJyYXk7XG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vYWxnby9pZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhbGdvc2RrIGZyb20gJ2FsZ29zZGsnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFR4RGF0YSB7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIGZyb206IHN0cmluZztcbiAgdG8/OiBzdHJpbmc7XG4gIGZlZTogbnVtYmVyO1xuICBhbW91bnQ/OiBzdHJpbmc7XG4gIGZpcnN0Um91bmQ6IG51bWJlcjtcbiAgbGFzdFJvdW5kOiBudW1iZXI7XG4gIG5vdGU/OiBVaW50OEFycmF5O1xuICB2b3RlS2V5Pzogc3RyaW5nO1xuICBzZWxlY3Rpb25LZXk/OiBzdHJpbmc7XG4gIHZvdGVGaXJzdD86IG51bWJlcjtcbiAgdm90ZUxhc3Q/OiBudW1iZXI7XG4gIHZvdGVLZXlEaWx1dGlvbj86IG51bWJlcjtcbiAgc3RhdGVQcm9vZktleT86IHN0cmluZztcbiAgdG9rZW5JZD86IG51bWJlcjtcbiAgZ2VuZXNpc0lEOiBzdHJpbmc7XG4gIGdlbmVzaXNIYXNoOiBzdHJpbmcgfCBCdWZmZXI7XG4gIGNsb3NlUmVtYWluZGVyVG8/OiBzdHJpbmc7XG4gIG5vblBhcnRpY2lwYXRpb24/OiBib29sZWFuO1xuICB0eFR5cGU/OiBzdHJpbmc7XG4gIHRva2VuTmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZGRyZXNzIHtcbiAgcHVibGljS2V5OiBVaW50OEFycmF5O1xuICBjaGVja3N1bTogVWludDhBcnJheTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWVkIHtcbiAgc2VlZDogVWludDhBcnJheTtcbiAgY2hlY2tzdW06IFVpbnQ4QXJyYXk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW5jb2RlZFR4IHtcbiAgcmF3VHJhbnNhY3Rpb246IFVpbnQ4QXJyYXk7XG4gIHR4bjogYWxnb3Nkay5UcmFuc2FjdGlvbjtcbiAgc2lnbmVkOiBib29sZWFuO1xuICBzaWduZXJzPzogc3RyaW5nW107XG4gIHNpZ25lZEJ5Pzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjb3VudCB7XG4gIGFkZHI6IHN0cmluZztcbiAgc2s6IFVpbnQ4QXJyYXk7XG59XG4iXX0=
@@ -1,4 +1,5 @@
1
1
  import utils from './utils';
2
+ import * as Interface from './ifaces';
2
3
  export { KeyPair } from './keyPair';
3
4
  export { TransactionBuilder } from './transactionBuilder';
4
5
  export { TransferBuilder } from './transferBuilder';
@@ -7,5 +8,6 @@ export { Transaction } from './transaction';
7
8
  export { AssetTransferBuilder } from './assetTransferBuilder';
8
9
  export { TransactionBuilderFactory } from './transactionBuilderFactory';
9
10
  export { InsufficientFeeError, AddressValidationError } from './errors';
11
+ export { Interface };
10
12
  export { utils as algoUtils };
11
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/coin/algo/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/coin/algo/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,KAAK,SAAS,MAAM,UAAU,CAAC;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,CAAC"}
@@ -1,11 +1,32 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
2
21
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
23
  };
5
24
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.algoUtils = exports.AddressValidationError = exports.InsufficientFeeError = exports.TransactionBuilderFactory = exports.AssetTransferBuilder = exports.Transaction = exports.KeyRegistrationBuilder = exports.TransferBuilder = exports.TransactionBuilder = exports.KeyPair = void 0;
25
+ exports.algoUtils = exports.Interface = exports.AddressValidationError = exports.InsufficientFeeError = exports.TransactionBuilderFactory = exports.AssetTransferBuilder = exports.Transaction = exports.KeyRegistrationBuilder = exports.TransferBuilder = exports.TransactionBuilder = exports.KeyPair = void 0;
7
26
  var utils_1 = __importDefault(require("./utils"));
8
27
  exports.algoUtils = utils_1.default;
28
+ var Interface = __importStar(require("./ifaces"));
29
+ exports.Interface = Interface;
9
30
  var keyPair_1 = require("./keyPair");
10
31
  Object.defineProperty(exports, "KeyPair", { enumerable: true, get: function () { return keyPair_1.KeyPair; } });
11
32
  var transactionBuilder_1 = require("./transactionBuilder");
@@ -23,4 +44,4 @@ Object.defineProperty(exports, "TransactionBuilderFactory", { enumerable: true,
23
44
  var errors_1 = require("./errors");
24
45
  Object.defineProperty(exports, "InsufficientFeeError", { enumerable: true, get: function () { return errors_1.InsufficientFeeError; } });
25
46
  Object.defineProperty(exports, "AddressValidationError", { enumerable: true, get: function () { return errors_1.AddressValidationError; } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9hbGdvL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUE0QjtBQVVWLG9CQVZYLGVBQUssQ0FVZTtBQVIzQixxQ0FBb0M7QUFBM0Isa0dBQUEsT0FBTyxPQUFBO0FBQ2hCLDJEQUEwRDtBQUFqRCx3SEFBQSxrQkFBa0IsT0FBQTtBQUMzQixxREFBb0Q7QUFBM0Msa0hBQUEsZUFBZSxPQUFBO0FBQ3hCLG1FQUFrRTtBQUF6RCxnSUFBQSxzQkFBc0IsT0FBQTtBQUMvQiw2Q0FBNEM7QUFBbkMsMEdBQUEsV0FBVyxPQUFBO0FBQ3BCLCtEQUE4RDtBQUFyRCw0SEFBQSxvQkFBb0IsT0FBQTtBQUM3Qix5RUFBd0U7QUFBL0Qsc0lBQUEseUJBQXlCLE9BQUE7QUFDbEMsbUNBQXdFO0FBQS9ELDhHQUFBLG9CQUFvQixPQUFBO0FBQUUsZ0hBQUEsc0JBQXNCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuZXhwb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXInO1xuZXhwb3J0IHsgS2V5UmVnaXN0cmF0aW9uQnVpbGRlciB9IGZyb20gJy4va2V5UmVnaXN0cmF0aW9uQnVpbGRlcic7XG5leHBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuZXhwb3J0IHsgQXNzZXRUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL2Fzc2V0VHJhbnNmZXJCdWlsZGVyJztcbmV4cG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnknO1xuZXhwb3J0IHsgSW5zdWZmaWNpZW50RmVlRXJyb3IsIEFkZHJlc3NWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuL2Vycm9ycyc7XG5leHBvcnQgeyB1dGlscyBhcyBhbGdvVXRpbHMgfTtcbiJdfQ==
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9hbGdvL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBNEI7QUFZVixvQkFaWCxlQUFLLENBWWU7QUFYM0Isa0RBQXNDO0FBVTdCLDhCQUFTO0FBUmxCLHFDQUFvQztBQUEzQixrR0FBQSxPQUFPLE9BQUE7QUFDaEIsMkRBQTBEO0FBQWpELHdIQUFBLGtCQUFrQixPQUFBO0FBQzNCLHFEQUFvRDtBQUEzQyxrSEFBQSxlQUFlLE9BQUE7QUFDeEIsbUVBQWtFO0FBQXpELGdJQUFBLHNCQUFzQixPQUFBO0FBQy9CLDZDQUE0QztBQUFuQywwR0FBQSxXQUFXLE9BQUE7QUFDcEIsK0RBQThEO0FBQXJELDRIQUFBLG9CQUFvQixPQUFBO0FBQzdCLHlFQUF3RTtBQUEvRCxzSUFBQSx5QkFBeUIsT0FBQTtBQUNsQyxtQ0FBd0U7QUFBL0QsOEdBQUEsb0JBQW9CLE9BQUE7QUFBRSxnSEFBQSxzQkFBc0IsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCAqIGFzIEludGVyZmFjZSBmcm9tICcuL2lmYWNlcyc7XG5cbmV4cG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuZXhwb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXInO1xuZXhwb3J0IHsgS2V5UmVnaXN0cmF0aW9uQnVpbGRlciB9IGZyb20gJy4va2V5UmVnaXN0cmF0aW9uQnVpbGRlcic7XG5leHBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuZXhwb3J0IHsgQXNzZXRUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL2Fzc2V0VHJhbnNmZXJCdWlsZGVyJztcbmV4cG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnknO1xuZXhwb3J0IHsgSW5zdWZmaWNpZW50RmVlRXJyb3IsIEFkZHJlc3NWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuL2Vycm9ycyc7XG5leHBvcnQgeyBJbnRlcmZhY2UgfTtcbmV4cG9ydCB7IHV0aWxzIGFzIGFsZ29VdGlscyB9O1xuIl19
@@ -10,25 +10,35 @@ export declare class KeyRegistrationBuilder extends TransactionBuilder {
10
10
  protected _voteLast: number;
11
11
  protected _voteKeyDilution: number;
12
12
  protected _nonParticipation: boolean;
13
+ protected _stateProofKey: string;
13
14
  constructor(coinConfig: Readonly<CoinConfig>);
14
15
  /**
15
16
  * Sets the vote key
16
17
  *
17
18
  * @returns {KeyRegistrationBuilder} This Key Registration builder.
18
19
  *
19
- * @param {number} key The root participation public key. See Generate a Participation Key to learn more.
20
+ * @param {string} key The root participation public key. See Generate a Participation Key to learn more.
20
21
  * https://developer.algorand.org/docs/reference/transactions/#key-registration-transaction
21
22
  */
22
23
  voteKey(key: string): KeyRegistrationBuilder;
23
24
  /**
24
- *Sets the selection key
25
+ * Sets the selection key
25
26
  *
26
27
  * @returns {KeyRegistrationBuilder} This Key Registration builder.
27
28
  *
28
- * @param {number} key The VRF public key for the account.
29
+ * @param {string} key The VRF public key for the account.
29
30
  * https://developer.algorand.org/docs/reference/transactions/#key-registration-transaction
30
31
  */
31
32
  selectionKey(key: string): KeyRegistrationBuilder;
33
+ /**
34
+ * Sets the stateProof key
35
+ *
36
+ * @returns {KeyRegistrationBuilder} This Key Registration builder.
37
+ *
38
+ * @param {string} key The stateproof key. See consensus for more information.
39
+ * https://developer.algorand.org/docs/get-details/algorand_consensus/?from_query=state#state-proof-keys
40
+ */
41
+ stateProofKey(key: string): KeyRegistrationBuilder;
32
42
  /**
33
43
  *Sets the vote first round
34
44
  *
@@ -66,18 +76,27 @@ export declare class KeyRegistrationBuilder extends TransactionBuilder {
66
76
  *
67
77
  * @returns {KeyRegistrationBuilder} This Key Registration builder.
68
78
  *
69
- * @param {boolean} nonPart. All new Algorand accounts are participating by default.
79
+ * @param {boolean} nonParticipation All new Algorand accounts are participating by default.
70
80
  * This means that they earn rewards. Mark an account nonparticipating by setting this value to true and this account
71
- * will no longer earn rewards
81
+ * will no longer earn rewards NEVER.
72
82
  * https://developer.algorand.org/docs/reference/transactions/#key-registration-transaction
73
83
  */
74
84
  nonParticipation(nonParticipation: boolean): KeyRegistrationBuilder;
75
85
  protected buildAlgoTxn(): algosdk.Transaction;
86
+ private buildOfflineKeyRegTransaction;
87
+ private buildOnlineKeyRegTransaction;
88
+ private buildNonParticipationKeyRegTransaction;
76
89
  protected get transactionType(): TransactionType;
77
90
  /** @inheritdoc */
78
91
  protected fromImplementation(rawTransaction: Uint8Array | string): Transaction;
79
92
  /** @inheritdoc */
80
93
  validateRawTransaction(rawTransaction: Uint8Array | string): void;
94
+ private isNonParticipationKeyRegAlgoSDKTransaction;
95
+ private isNonParticipationKeyRegAccountLibTransaction;
96
+ private isOnlineKeyRegAlgoSDKTransaction;
97
+ private isOnlineKeyRegAccountLibTransaction;
98
+ private isOfflineKeyRegAlgoSDKTransaction;
99
+ private isOfflineKeyRegAccountLibTransaction;
81
100
  /** @inheritdoc */
82
101
  validateTransaction(transaction: Transaction): void;
83
102
  private validateFields;
@@ -1 +1 @@
1
- {"version":3,"file":"keyRegistrationBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/algo/keyRegistrationBuilder.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,qBAAa,sBAAuB,SAAQ,kBAAkB;IAC5D,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC;gBAEzB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAG5C;;;;;;;OAOG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB;IAI5C;;;;;;;OAOG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB;IAKjD;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB;IAOhD;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB;IAO/C;;;;;;;;;;OAUG;IACH,eAAe,CAAC,IAAI,SAAQ,GAAG,sBAAsB;IAOrD;;;;;;;;;OASG;IACH,gBAAgB,CAAC,gBAAgB,EAAE,OAAO,GAAG,sBAAsB;IAMnE,SAAS,CAAC,YAAY,IAAI,OAAO,CAAC,WAAW;IA4B7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,UAAU,GAAG,MAAM,GAAG,WAAW;IAkB9E,kBAAkB;IAClB,sBAAsB,CAAC,cAAc,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI;IAoBjE,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAOnD,OAAO,CAAC,cAAc;CAmBvB"}
1
+ {"version":3,"file":"keyRegistrationBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/algo/keyRegistrationBuilder.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,qBAAa,sBAAuB,SAAQ,kBAAkB;IAC5D,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACrC,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC;gBAErB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C;;;;;;;OAOG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB;IAK5C;;;;;;;OAOG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB;IAKjD;;;;;;;OAOG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB;IAMlD;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB;IAOhD;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB;IAO/C;;;;;;;;;;OAUG;IACH,eAAe,CAAC,IAAI,SAAQ,GAAG,sBAAsB;IAOrD;;;;;;;;;OASG;IACH,gBAAgB,CAAC,gBAAgB,EAAE,OAAO,GAAG,sBAAsB;IAMnE,SAAS,CAAC,YAAY,IAAI,OAAO,CAAC,WAAW;IAQ7C,OAAO,CAAC,6BAA6B;IAarC,OAAO,CAAC,4BAA4B;IAgBpC,OAAO,CAAC,sCAAsC;IAe9C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,UAAU,GAAG,MAAM,GAAG,WAAW;IAqB9E,kBAAkB;IAClB,sBAAsB,CAAC,cAAc,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI;IAqBjE,OAAO,CAAC,0CAA0C;IAIlD,OAAO,CAAC,6CAA6C;IAIrD,OAAO,CAAC,gCAAgC;IAMxC,OAAO,CAAC,mCAAmC;IAI3C,OAAO,CAAC,iCAAiC;IAYzC,OAAO,CAAC,oCAAoC;IAY5C,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IA6BnD,OAAO,CAAC,cAAc;CAqBvB"}
@@ -36,7 +36,7 @@ var KeyRegistrationBuilder = /** @class */ (function (_super) {
36
36
  *
37
37
  * @returns {KeyRegistrationBuilder} This Key Registration builder.
38
38
  *
39
- * @param {number} key The root participation public key. See Generate a Participation Key to learn more.
39
+ * @param {string} key The root participation public key. See Generate a Participation Key to learn more.
40
40
  * https://developer.algorand.org/docs/reference/transactions/#key-registration-transaction
41
41
  */
42
42
  KeyRegistrationBuilder.prototype.voteKey = function (key) {
@@ -44,17 +44,30 @@ var KeyRegistrationBuilder = /** @class */ (function (_super) {
44
44
  return this;
45
45
  };
46
46
  /**
47
- *Sets the selection key
47
+ * Sets the selection key
48
48
  *
49
49
  * @returns {KeyRegistrationBuilder} This Key Registration builder.
50
50
  *
51
- * @param {number} key The VRF public key for the account.
51
+ * @param {string} key The VRF public key for the account.
52
52
  * https://developer.algorand.org/docs/reference/transactions/#key-registration-transaction
53
53
  */
54
54
  KeyRegistrationBuilder.prototype.selectionKey = function (key) {
55
55
  this._selectionKey = key;
56
56
  return this;
57
57
  };
58
+ /**
59
+ * Sets the stateProof key
60
+ *
61
+ * @returns {KeyRegistrationBuilder} This Key Registration builder.
62
+ *
63
+ * @param {string} key The stateproof key. See consensus for more information.
64
+ * https://developer.algorand.org/docs/get-details/algorand_consensus/?from_query=state#state-proof-keys
65
+ */
66
+ KeyRegistrationBuilder.prototype.stateProofKey = function (key) {
67
+ utils_1.default.validateBase64(key);
68
+ this._stateProofKey = key;
69
+ return this;
70
+ };
58
71
  /**
59
72
  *Sets the vote first round
60
73
  *
@@ -105,9 +118,9 @@ var KeyRegistrationBuilder = /** @class */ (function (_super) {
105
118
  *
106
119
  * @returns {KeyRegistrationBuilder} This Key Registration builder.
107
120
  *
108
- * @param {boolean} nonPart. All new Algorand accounts are participating by default.
121
+ * @param {boolean} nonParticipation All new Algorand accounts are participating by default.
109
122
  * This means that they earn rewards. Mark an account nonparticipating by setting this value to true and this account
110
- * will no longer earn rewards
123
+ * will no longer earn rewards NEVER.
111
124
  * https://developer.algorand.org/docs/reference/transactions/#key-registration-transaction
112
125
  */
113
126
  KeyRegistrationBuilder.prototype.nonParticipation = function (nonParticipation) {
@@ -115,12 +128,32 @@ var KeyRegistrationBuilder = /** @class */ (function (_super) {
115
128
  return this;
116
129
  };
117
130
  KeyRegistrationBuilder.prototype.buildAlgoTxn = function () {
118
- if (!this._nonParticipation) {
119
- return algosdk_1.default.makeKeyRegistrationTxnWithSuggestedParams(this._sender, this._note, this._voteKey, this._selectionKey, this._voteFirst, this._voteLast, this._voteKeyDilution, this.suggestedParams);
120
- }
121
- else {
122
- return algosdk_1.default.makeKeyRegistrationTxnWithSuggestedParams(this._sender, this._note, undefined, undefined, undefined, undefined, undefined, this.suggestedParams, this._reKeyTo, this._nonParticipation);
123
- }
131
+ return this.isOfflineKeyRegAccountLibTransaction()
132
+ ? this.buildOfflineKeyRegTransaction()
133
+ : this.isNonParticipationKeyRegAccountLibTransaction()
134
+ ? this.buildNonParticipationKeyRegTransaction()
135
+ : this.buildOnlineKeyRegTransaction();
136
+ };
137
+ KeyRegistrationBuilder.prototype.buildOfflineKeyRegTransaction = function () {
138
+ return algosdk_1.default.makeKeyRegistrationTxnWithSuggestedParams(this._sender, this._note, undefined, // voteKey param
139
+ undefined, // selectionKey param
140
+ undefined, // voteFirst param
141
+ undefined, // voteLast param
142
+ undefined, // voteKeyDilution param
143
+ this.suggestedParams);
144
+ };
145
+ KeyRegistrationBuilder.prototype.buildOnlineKeyRegTransaction = function () {
146
+ return algosdk_1.default.makeKeyRegistrationTxnWithSuggestedParams(this._sender, this._note, this._voteKey, this._selectionKey, this._voteFirst, this._voteLast, this._voteKeyDilution, this.suggestedParams, undefined, // reKeyTo param
147
+ undefined, // nonParticipation param
148
+ this._stateProofKey);
149
+ };
150
+ KeyRegistrationBuilder.prototype.buildNonParticipationKeyRegTransaction = function () {
151
+ return algosdk_1.default.makeKeyRegistrationTxnWithSuggestedParams(this._sender, this._note, undefined, // voteKey param
152
+ undefined, // selectionKey param
153
+ undefined, // voteFirst param
154
+ undefined, // voteLast param
155
+ undefined, // voteKeyDilution param
156
+ this.suggestedParams, this._reKeyTo, true);
124
157
  };
125
158
  Object.defineProperty(KeyRegistrationBuilder.prototype, "transactionType", {
126
159
  get: function () {
@@ -134,15 +167,18 @@ var KeyRegistrationBuilder = /** @class */ (function (_super) {
134
167
  var tx = _super.prototype.fromImplementation.call(this, rawTransaction);
135
168
  var algoTxn = tx.getAlgoTransaction();
136
169
  if (algoTxn) {
137
- if (!algoTxn.nonParticipation) {
170
+ if (this.isNonParticipationKeyRegAlgoSDKTransaction(algoTxn)) {
171
+ this.nonParticipation(!!algoTxn.nonParticipation);
172
+ }
173
+ else if (this.isOnlineKeyRegAlgoSDKTransaction(algoTxn)) {
138
174
  this.voteKey(algoTxn.voteKey.toString('base64'));
139
175
  this.selectionKey(algoTxn.selectionKey.toString('base64'));
140
176
  this.voteFirst(algoTxn.voteFirst);
141
177
  this.voteLast(algoTxn.voteLast);
142
178
  this.voteKeyDilution(algoTxn.voteKeyDilution);
143
- }
144
- else {
145
- this.nonParticipation(algoTxn.nonParticipation);
179
+ if (algoTxn.stateProofKey) {
180
+ this.stateProofKey(algoTxn.stateProofKey.toString('base64'));
181
+ }
146
182
  }
147
183
  }
148
184
  return tx;
@@ -154,24 +190,67 @@ var KeyRegistrationBuilder = /** @class */ (function (_super) {
154
190
  if (algoTxn.type !== algosdk_1.default.TransactionType.keyreg) {
155
191
  throw new errors_1.InvalidTransactionError("Invalid Transaction Type: " + algoTxn.type + ". Expected " + algosdk_1.default.TransactionType.keyreg);
156
192
  }
157
- if (!algoTxn.nonParticipation) {
158
- this.validateFields(algoTxn.voteKey.toString('base64'), algoTxn.selectionKey.toString('base64'), algoTxn.voteFirst, algoTxn.voteLast, algoTxn.voteKeyDilution);
193
+ if (this.isOnlineKeyRegAlgoSDKTransaction(algoTxn)) {
194
+ this.validateFields(algoTxn.voteKey.toString('base64'), algoTxn.selectionKey.toString('base64'), algoTxn.voteFirst, algoTxn.voteLast, algoTxn.voteKeyDilution, algoTxn.stateProofKey && algoTxn.stateProofKey.toString('base64'));
159
195
  }
160
196
  };
197
+ KeyRegistrationBuilder.prototype.isNonParticipationKeyRegAlgoSDKTransaction = function (algoTxn) {
198
+ return !!algoTxn.nonParticipation;
199
+ };
200
+ KeyRegistrationBuilder.prototype.isNonParticipationKeyRegAccountLibTransaction = function () {
201
+ return !!this._nonParticipation;
202
+ };
203
+ KeyRegistrationBuilder.prototype.isOnlineKeyRegAlgoSDKTransaction = function (algoTxn) {
204
+ return !(this.isOfflineKeyRegAlgoSDKTransaction(algoTxn) || this.isNonParticipationKeyRegAlgoSDKTransaction(algoTxn));
205
+ };
206
+ KeyRegistrationBuilder.prototype.isOnlineKeyRegAccountLibTransaction = function () {
207
+ return !(this.isOfflineKeyRegAccountLibTransaction() || this.isNonParticipationKeyRegAccountLibTransaction());
208
+ };
209
+ KeyRegistrationBuilder.prototype.isOfflineKeyRegAlgoSDKTransaction = function (algoTxn) {
210
+ return (!algoTxn.voteKey &&
211
+ !algoTxn.selectionKey &&
212
+ !algoTxn.voteFirst &&
213
+ !algoTxn.voteLast &&
214
+ !algoTxn.voteKeyDilution &&
215
+ !algoTxn.stateProofKey &&
216
+ !algoTxn.nonParticipation);
217
+ };
218
+ KeyRegistrationBuilder.prototype.isOfflineKeyRegAccountLibTransaction = function () {
219
+ return (!this._voteKey &&
220
+ !this._selectionKey &&
221
+ !this._voteFirst &&
222
+ !this._voteLast &&
223
+ !this._voteKeyDilution &&
224
+ !this._stateProofKey &&
225
+ !this._nonParticipation);
226
+ };
161
227
  /** @inheritdoc */
162
228
  KeyRegistrationBuilder.prototype.validateTransaction = function (transaction) {
163
229
  _super.prototype.validateTransaction.call(this, transaction);
164
- if (!this._nonParticipation) {
165
- this.validateFields(this._voteKey, this._selectionKey, this._voteFirst, this._voteLast, this._voteKeyDilution);
230
+ if (this.isOnlineKeyRegAccountLibTransaction()) {
231
+ // invalid offline will reach here
232
+ this.validateFields(this._voteKey, this._selectionKey, this._voteFirst, this._voteLast, this._voteKeyDilution, this._stateProofKey);
233
+ }
234
+ else {
235
+ // offline or nonparticipation transaction
236
+ if (this._voteKey ||
237
+ this._selectionKey ||
238
+ this._voteFirst ||
239
+ this._voteLast ||
240
+ this._voteKeyDilution ||
241
+ this._stateProofKey) {
242
+ throw new errors_1.InvalidTransactionError('VoteKey, SelectionKey, VoteFirst, VoteLast, VoteKeyDilution, StateProofKey fields cannot be set when offline or nonparticipation is set');
243
+ }
166
244
  }
167
245
  };
168
- KeyRegistrationBuilder.prototype.validateFields = function (voteKey, selectionKey, voteFirst, voteLast, voteKeyDilution) {
246
+ KeyRegistrationBuilder.prototype.validateFields = function (voteKey, selectionKey, voteFirst, voteLast, voteKeyDilution, stateProofKey) {
169
247
  var validationResult = txnSchema_1.KeyRegTxnSchema.validate({
170
248
  voteKey: voteKey,
171
249
  selectionKey: selectionKey,
172
250
  voteFirst: voteFirst,
173
251
  voteLast: voteLast,
174
252
  voteKeyDilution: voteKeyDilution,
253
+ stateProofKey: stateProofKey,
175
254
  });
176
255
  if (validationResult.error) {
177
256
  throw new errors_1.InvalidTransactionError("Transaction validation failed: " + validationResult.error.message);
@@ -180,4 +259,4 @@ var KeyRegistrationBuilder = /** @class */ (function (_super) {
180
259
  return KeyRegistrationBuilder;
181
260
  }(transactionBuilder_1.TransactionBuilder));
182
261
  exports.KeyRegistrationBuilder = KeyRegistrationBuilder;
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UmVnaXN0cmF0aW9uQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2luL2FsZ28va2V5UmVnaXN0cmF0aW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4REFBcUM7QUFDckMsb0RBQThCO0FBRTlCLHdDQUE4QztBQUM5Qyw2Q0FBNkQ7QUFDN0QsMkRBQTBEO0FBRTFELHlDQUE4QztBQUM5QyxrREFBNEI7QUFFNUI7SUFBNEMsMENBQWtCO0lBUTVELGdDQUFZLFVBQWdDO2VBQzFDLGtCQUFNLFVBQVUsQ0FBQztJQUNuQixDQUFDO0lBQ0Q7Ozs7Ozs7T0FPRztJQUNILHdDQUFPLEdBQVAsVUFBUSxHQUFXO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ3BCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNEOzs7Ozs7O09BT0c7SUFDSCw2Q0FBWSxHQUFaLFVBQWEsR0FBVztRQUN0QixJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsMENBQVMsR0FBVCxVQUFVLEtBQWE7UUFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLHNCQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUV4QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCx5Q0FBUSxHQUFSLFVBQVMsS0FBYTtRQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksc0JBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBRXZCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVE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dCI6WyJpbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgYWxnb3NkayBmcm9tICdhbGdvc2RrJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICcuLi9iYXNlQ29pbic7XG5pbXBvcnQgeyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciB9IGZyb20gJy4uL2Jhc2VDb2luL2Vycm9ycyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgS2V5UmVnVHhuU2NoZW1hIH0gZnJvbSAnLi90eG5TY2hlbWEnO1xuaW1wb3J0IFV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgS2V5UmVnaXN0cmF0aW9uQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfdm90ZUtleTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3NlbGVjdGlvbktleTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3ZvdGVGaXJzdDogbnVtYmVyO1xuICBwcm90ZWN0ZWQgX3ZvdGVMYXN0OiBudW1iZXI7XG4gIHByb3RlY3RlZCBfdm90ZUtleURpbHV0aW9uOiBudW1iZXI7XG4gIHByb3RlY3RlZCBfbm9uUGFydGljaXBhdGlvbjogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICB9XG4gIC8qKlxuICAgKiBTZXRzIHRoZSB2b3RlIGtleVxuICAgKlxuICAgKiBAcmV0dXJucyB7S2V5UmVnaXN0cmF0aW9uQnVpbGRlcn0gVGhpcyBLZXkgUmVnaXN0cmF0aW9uIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBrZXkgVGhlIHJvb3QgcGFydGljaXBhdGlvbiBwdWJsaWMga2V5LiBTZWUgR2VuZXJhdGUgYSBQYXJ0aWNpcGF0aW9uIEtleSB0byBsZWFybiBtb3JlLlxuICAgKiBodHRwczovL2RldmVsb3Blci5hbGdvcmFuZC5vcmcvZG9jcy9yZWZlcmVuY2UvdHJhbnNhY3Rpb25zLyNrZXktcmVnaXN0cmF0aW9uLXRyYW5zYWN0aW9uXG4gICAqL1xuICB2b3RlS2V5KGtleTogc3RyaW5nKTogS2V5UmVnaXN0cmF0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5fdm90ZUtleSA9IGtleTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICAvKipcbiAgICpTZXRzIHRoZSBzZWxlY3Rpb24ga2V5XG4gICAqXG4gICAqIEByZXR1cm5zIHtLZXlSZWdpc3RyYXRpb25CdWlsZGVyfSBUaGlzIEtleSBSZWdpc3RyYXRpb24gYnVpbGRlci5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGtleSBUaGUgVlJGIHB1YmxpYyBrZXkgZm9yIHRoZSBhY2NvdW50LlxuICAgKiBodHRwczovL2RldmVsb3Blci5hbGdvcmFuZC5vcmcvZG9jcy9yZWZlcmVuY2UvdHJhbnNhY3Rpb25zLyNrZXktcmVnaXN0cmF0aW9uLXRyYW5zYWN0aW9uXG4gICAqL1xuICBzZWxlY3Rpb25LZXkoa2V5OiBzdHJpbmcpOiBLZXlSZWdpc3RyYXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLl9zZWxlY3Rpb25LZXkgPSBrZXk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICpTZXRzIHRoZSB2b3RlIGZpcnN0IHJvdW5kXG4gICAqXG4gICAqIEByZXR1cm5zIHtLZXlSZWdpc3RyYXRpb25CdWlsZGVyfSBUaGlzIEtleSBSZWdpc3RyYXRpb24gYnVpbGRlci5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHJvdW5kIFRoZSBmaXJzdCByb3VuZCB0aGF0IHRoZSBwYXJ0aWNpcGF0aW9uIGtleSBpcyB2YWxpZC4gTm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggdGhlIEZpcnN0VmFsaWQgcm91bmQgb2YgdGhlIGtleXJlZyB0cmFuc2FjdGlvbi5cbiAgICogaHR0cHM6Ly9kZXZlbG9wZXIuYWxnb3JhbmQub3JnL2RvY3MvcmVmZXJlbmNlL3RyYW5zYWN0aW9ucy8ja2V5LXJlZ2lzdHJhdGlvbi10cmFuc2FjdGlvblxuICAgKi9cbiAgdm90ZUZpcnN0KHJvdW5kOiBudW1iZXIpOiBLZXlSZWdpc3RyYXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWUobmV3IEJpZ051bWJlcihyb3VuZCkpO1xuICAgIHRoaXMuX3ZvdGVGaXJzdCA9IHJvdW5kO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdm90ZSBsYXN0IHJvdW5kXG4gICAqXG4gICAqIEByZXR1cm5zIHtLZXlSZWdpc3RyYXRpb25CdWlsZGVyfSBUaGlzIEtleSBSZWdpc3RyYXRpb24gYnVpbGRlci5cbiAgICpcbiAgICogQSByZWNvbW1lbmRlZCByYW5nZSBpcyAzLDAwMCwwMDAgcm91bmRzLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gcm91bmQgTm8gdGhlb3JldGljYWwgbGltaXQuXG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVyLmFsZ29yYW5kLm9yZy9kb2NzL3J1bi1hLW5vZGUvcGFydGljaXBhdGUvZ2VuZXJhdGVfa2V5cy9cbiAgICovXG4gIHZvdGVMYXN0KHJvdW5kOiBudW1iZXIpOiBLZXlSZWdpc3RyYXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWUobmV3IEJpZ051bWJlcihyb3VuZCkpO1xuICAgIHRoaXMuX3ZvdGVMYXN0ID0gcm91bmQ7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB2b3RlIGtleSBkaWx1dGlvblxuICAgKlxuICAgKiBAcmV0dXJucyB7S2V5UmVnaXN0cmF0aW9uQnVpbGRlcn0gVGhpcyBLZXkgUmVnaXN0cmF0aW9uIGJ1aWxkZXIuXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIDEwLDAwMFxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gc2l6ZSBbMTAwMDBdLiBUbyByZWR1Y2UgdGhlIHNpemUgb2YgdGhlIHBhcnRpY2lwYXRpb24ga2V5LCBzZXQgdGhlIGtleSBkaWx1dGlvbiB2YWx1ZSB0byByb3VnaGx5IHRoZSBzcXVhcmUgcm9vdCBvZiB0aGUgcmFuZ2UgdGhhdCB0aGUgcGFydGtleSBpcyB2YWxpZCBmb3IuXG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVyLmFsZ29yYW5kLm9yZy9kb2NzL3J1bi1hLW5vZGUvcGFydGljaXBhdGUvZ2VuZXJhdGVfa2V5cy8jZ2VuZXJhdGUtdGhlLXBhcnRpY2lwYXRpb24ta2V5LXdpdGgtZ29hbFxuICAgKiBAcGFyYW0gc2l6ZVxuICAgKi9cbiAgdm90ZUtleURpbHV0aW9uKHNpemUgPSAxMDAwMCk6IEtleVJlZ2lzdHJhdGlvbkJ1aWxkZXIge1xuICAgIHRoaXMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKHNpemUpKTtcbiAgICB0aGlzLl92b3RlS2V5RGlsdXRpb24gPSBzaXplO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgbm9uIHBhcnRpY2lwYXRpb24gZmxhZ1xuICAgKlxuICAgKiBAcmV0dXJucyB7S2V5UmVnaXN0cmF0aW9uQnVpbGRlcn0gVGhpcyBLZXkgUmVnaXN0cmF0aW9uIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gbm9uUGFydC4gQWxsIG5ldyBBbGdvcmFuZCBhY2NvdW50cyBhcmUgcGFydGljaXBhdGluZyBieSBkZWZhdWx0LlxuICAgKiBUaGlzIG1lYW5zIHRoYXQgdGhleSBlYXJuIHJld2FyZHMuIE1hcmsgYW4gYWNjb3VudCBub25wYXJ0aWNpcGF0aW5nIGJ5IHNldHRpbmcgdGhpcyB2YWx1ZSB0byB0cnVlIGFuZCB0aGlzIGFjY291bnRcbiAgICogd2lsbCBubyBsb25nZXIgZWFybiByZXdhcmRzXG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVyLmFsZ29yYW5kLm9yZy9kb2NzL3JlZmVyZW5jZS90cmFuc2FjdGlvbnMvI2tleS1yZWdpc3RyYXRpb24tdHJhbnNhY3Rpb25cbiAgICovXG4gIG5vblBhcnRpY2lwYXRpb24obm9uUGFydGljaXBhdGlvbjogYm9vbGVhbik6IEtleVJlZ2lzdHJhdGlvbkJ1aWxkZXIge1xuICAgIHRoaXMuX25vblBhcnRpY2lwYXRpb24gPSBub25QYXJ0aWNpcGF0aW9uO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRBbGdvVHhuKCk6IGFsZ29zZGsuVHJhbnNhY3Rpb24ge1xuICAgIGlmICghdGhpcy5fbm9uUGFydGljaXBhdGlvbikge1xuICAgICAgcmV0dXJuIGFsZ29zZGsubWFrZUtleVJlZ2lzdHJhdGlvblR4bldpdGhTdWdnZXN0ZWRQYXJhbXMoXG4gICAgICAgIHRoaXMuX3NlbmRlcixcbiAgICAgICAgdGhpcy5fbm90ZSxcbiAgICAgICAgdGhpcy5fdm90ZUtleSxcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uS2V5LFxuICAgICAgICB0aGlzLl92b3RlRmlyc3QsXG4gICAgICAgIHRoaXMuX3ZvdGVMYXN0LFxuICAgICAgICB0aGlzLl92b3RlS2V5RGlsdXRpb24sXG4gICAgICAgIHRoaXMuc3VnZ2VzdGVkUGFyYW1zLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGFsZ29zZGsubWFrZUtleVJlZ2lzdHJhdGlvblR4bldpdGhTdWdnZXN0ZWRQYXJhbXMoXG4gICAgICAgIHRoaXMuX3NlbmRlcixcbiAgICAgICAgdGhpcy5fbm90ZSxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIHRoaXMuc3VnZ2VzdGVkUGFyYW1zLFxuICAgICAgICB0aGlzLl9yZUtleVRvLFxuICAgICAgICB0aGlzLl9ub25QYXJ0aWNpcGF0aW9uLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogVWludDhBcnJheSB8IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCB0eCA9IHN1cGVyLmZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgY29uc3QgYWxnb1R4biA9IHR4LmdldEFsZ29UcmFuc2FjdGlvbigpO1xuXG4gICAgaWYgKGFsZ29UeG4pIHtcbiAgICAgIGlmICghYWxnb1R4bi5ub25QYXJ0aWNpcGF0aW9uKSB7XG4gICAgICAgIHRoaXMudm90ZUtleShhbGdvVHhuLnZvdGVLZXkudG9TdHJpbmcoJ2Jhc2U2NCcpKTtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25LZXkoYWxnb1R4bi5zZWxlY3Rpb25LZXkudG9TdHJpbmcoJ2Jhc2U2NCcpKTtcbiAgICAgICAgdGhpcy52b3RlRmlyc3QoYWxnb1R4bi52b3RlRmlyc3QpO1xuICAgICAgICB0aGlzLnZvdGVMYXN0KGFsZ29UeG4udm90ZUxhc3QpO1xuICAgICAgICB0aGlzLnZvdGVLZXlEaWx1dGlvbihhbGdvVHhuLnZvdGVLZXlEaWx1dGlvbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm5vblBhcnRpY2lwYXRpb24oYWxnb1R4bi5ub25QYXJ0aWNpcGF0aW9uKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHR4O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IFVpbnQ4QXJyYXkgfCBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBkZWNvZGVUeG4gPSBVdGlscy5kZWNvZGVBbGdvVHhuKHJhd1RyYW5zYWN0aW9uKTtcbiAgICBjb25zdCBhbGdvVHhuID0gZGVjb2RlVHhuLnR4bjtcbiAgICBpZiAoYWxnb1R4bi50eXBlICE9PSBhbGdvc2RrLlRyYW5zYWN0aW9uVHlwZS5rZXlyZWcpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgYEludmFsaWQgVHJhbnNhY3Rpb24gVHlwZTogJHthbGdvVHhuLnR5cGV9LiBFeHBlY3RlZCAke2FsZ29zZGsuVHJhbnNhY3Rpb25UeXBlLmtleXJlZ31gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIWFsZ29UeG4ubm9uUGFydGljaXBhdGlvbikge1xuICAgICAgdGhpcy52YWxpZGF0ZUZpZWxkcyhcbiAgICAgICAgYWxnb1R4bi52b3RlS2V5LnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgICAgICAgYWxnb1R4bi5zZWxlY3Rpb25LZXkudG9TdHJpbmcoJ2Jhc2U2NCcpLFxuICAgICAgICBhbGdvVHhuLnZvdGVGaXJzdCxcbiAgICAgICAgYWxnb1R4bi52b3RlTGFzdCxcbiAgICAgICAgYWxnb1R4bi52b3RlS2V5RGlsdXRpb24sXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLnZhbGlkYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pO1xuICAgIGlmICghdGhpcy5fbm9uUGFydGljaXBhdGlvbikge1xuICAgICAgdGhpcy52YWxpZGF0ZUZpZWxkcyh0aGlzLl92b3RlS2V5LCB0aGlzLl9zZWxlY3Rpb25LZXksIHRoaXMuX3ZvdGVGaXJzdCwgdGhpcy5fdm90ZUxhc3QsIHRoaXMuX3ZvdGVLZXlEaWx1dGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUZpZWxkcyhcbiAgICB2b3RlS2V5OiBzdHJpbmcsXG4gICAgc2VsZWN0aW9uS2V5OiBzdHJpbmcsXG4gICAgdm90ZUZpcnN0OiBudW1iZXIsXG4gICAgdm90ZUxhc3Q6IG51bWJlcixcbiAgICB2b3RlS2V5RGlsdXRpb246IG51bWJlcixcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IEtleVJlZ1R4blNjaGVtYS52YWxpZGF0ZSh7XG4gICAgICB2b3RlS2V5LFxuICAgICAgc2VsZWN0aW9uS2V5LFxuICAgICAgdm90ZUZpcnN0LFxuICAgICAgdm90ZUxhc3QsXG4gICAgICB2b3RlS2V5RGlsdXRpb24sXG4gICAgfSk7XG5cbiAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBUcmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHt2YWxpZGF0aW9uUmVzdWx0LmVycm9yLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG59XG4iXX0=
262
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UmVnaXN0cmF0aW9uQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2luL2FsZ28va2V5UmVnaXN0cmF0aW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4REFBcUM7QUFDckMsb0RBQThCO0FBRTlCLHdDQUE4QztBQUM5Qyw2Q0FBNkQ7QUFDN0QsMkRBQTBEO0FBRTFELHlDQUE4QztBQUM5QyxrREFBNEI7QUFFNUI7SUFBNEMsMENBQWtCO0lBUzVELGdDQUFZLFVBQWdDO2VBQzFDLGtCQUFNLFVBQVUsQ0FBQztJQUNuQixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILHdDQUFPLEdBQVAsVUFBUSxHQUFXO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ3BCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCw2Q0FBWSxHQUFaLFVBQWEsR0FBVztRQUN0QixJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsOENBQWEsR0FBYixVQUFjLEdBQVc7UUFDdkIsZUFBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsMENBQVMsR0FBVCxVQUFVLEtBQWE7UUFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLHNCQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUV4QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCx5Q0FBUSxHQUFSLFVBQVMsS0FBYTtRQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksc0JBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBRXZCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxnREFBZSxHQUFmLFVBQWdCLElBQVk7UUFBWixxQkFBQSxFQUFBLFlBQVk7UUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLHNCQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBRTdCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILGlEQUFnQixHQUFoQixVQUFpQixnQkFBeUI7UUFDeEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDO1FBRTFDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVTLDZDQUFZLEdBQXRCO1FBQ0UsT0FBTyxJQUFJLENBQUMsb0NBQW9DLEVBQUU7WUFDaEQsQ0FBQyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsRUFBRTtZQUN0QyxDQUFDLENBQUMsSUFBSSxDQUFDLDZDQUE2QyxFQUFFO2dCQUN0RCxDQUFDLENBQUMsSUFBSSxDQUFDLHNDQUFzQyxFQUFFO2dCQUMvQyxDQUFDLENBQUMsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVPLDhEQUE2QixHQUFyQztRQUNFLE9BQU8saUJBQU8sQ0FBQyx5Q0FBeUMsQ0FDdEQsSUFBSSxDQUFDLE9BQU8sRUFDWixJQUFJLENBQUMsS0FBSyxFQUNWLFNBQVMsRUFBRSxnQkFBZ0I7UUFDM0IsU0FBUyxFQUFFLHFCQUFxQjtRQUNoQyxTQUFTLEVBQUUsa0JBQWtCO1FBQzdCLFNBQVMsRUFBRSxpQkFBaUI7UUFDNUIsU0FBUyxFQUFFLHdCQUF3QjtRQUNuQyxJQUFJLENBQUMsZUFBZSxDQUNyQixDQUFDO0lBQ0osQ0FBQztJQUVPLDZEQUE0QixHQUFwQztRQUNFLE9BQU8saUJBQU8sQ0FBQyx5Q0FBeUMsQ0FDdEQsSUFBSSxDQUFDLE9BQU8sRUFDWixJQUFJLENBQUMsS0FBSyxFQUNWLElBQUksQ0FBQyxRQUFRLEVBQ2IsSUFBSSxDQUFDLGFBQWEsRUFDbEIsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxnQkFBZ0IsRUFDckIsSUFBSSxDQUFDLGVBQWUsRUFDcEIsU0FBUyxFQUFFLGdCQUFnQjtRQUMzQixTQUFTLEVBQUUseUJBQXlCO1FBQ3BDLElBQUksQ0FBQyxjQUFjLENBQ3BCLENBQUM7SUFDSixDQUFDO0lBRU8sdUVBQXNDLEdBQTlDO1FBQ0UsT0FBTyxpQkFBTyxDQUFDLHlDQUF5QyxDQUN0RCxJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxLQUFLLEVBQ1YsU0FBUyxFQUFFLGdCQUFnQjtRQUMzQixTQUFTLEVBQUUscUJBQXFCO1FBQ2hDLFNBQVMsRUFBRSxrQkFBa0I7UUFDN0IsU0FBUyxFQUFFLGlCQUFpQjtRQUM1QixTQUFTLEVBQUUsd0JBQXdCO1FBQ25DLElBQUksQ0FBQyxlQUFlLEVBQ3BCLElBQUksQ0FBQyxRQUFRLEVBQ2IsSUFBSSxDQUNMLENBQUM7SUFDSixDQUFDO0lBRUQsc0JBQWMsbURBQWU7YUFBN0I7WUFDRSxPQUFPLDBCQUFlLENBQUMsb0JBQW9CLENBQUM7UUFDOUMsQ0FBQzs7O09BQUE7SUFFRCxrQkFBa0I7SUFDUixtREFBa0IsR0FBNUIsVUFBNkIsY0FBbUM7UUFDOUQsSUFBTSxFQUFFLEdBQUcsaUJBQU0sa0JBQWtCLFlBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEQsSUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFFeEMsSUFBSSxPQUFPLEVBQUU7WUFDWCxJQUFJLElBQUksQ0FBQywwQ0FBMEMsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDNUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzthQUNuRDtpQkFBTSxJQUFJLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDekQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUNqRCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQzNELElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQzlDLElBQUksT0FBTyxDQUFDLGFBQWEsRUFBRTtvQkFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2lCQUM5RDthQUNGO1NBQ0Y7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsdURBQXNCLEdBQXRCLFVBQXVCLGNBQW1DO1FBQ3hELElBQU0sU0FBUyxHQUFHLGVBQUssQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEQsSUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQztRQUM5QixJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssaUJBQU8sQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFO1lBQ25ELE1BQU0sSUFBSSxnQ0FBdUIsQ0FDL0IsK0JBQTZCLE9BQU8sQ0FBQyxJQUFJLG1CQUFjLGlCQUFPLENBQUMsZUFBZSxDQUFDLE1BQVEsQ0FDeEYsQ0FBQztTQUNIO1FBRUQsSUFBSSxJQUFJLENBQUMsZ0NBQWdDLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDbEQsSUFBSSxDQUFDLGNBQWMsQ0FDakIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQ2xDLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUN2QyxPQUFPLENBQUMsU0FBUyxFQUNqQixPQUFPLENBQUMsUUFBUSxFQUNoQixPQUFPLENBQUMsZUFBZSxFQUN2QixPQUFPLENBQUMsYUFBYSxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUNsRSxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRU8sMkVBQTBDLEdBQWxELFVBQW1ELE9BQTRCO1FBQzdFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztJQUNwQyxDQUFDO0lBRU8sOEVBQTZDLEdBQXJEO1FBQ0UsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2xDLENBQUM7SUFFTyxpRUFBZ0MsR0FBeEMsVUFBeUMsT0FBNEI7UUFDbkUsT0FBTyxDQUFDLENBQ04sSUFBSSxDQUFDLGlDQUFpQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQywwQ0FBMEMsQ0FBQyxPQUFPLENBQUMsQ0FDNUcsQ0FBQztJQUNKLENBQUM7SUFFTyxvRUFBbUMsR0FBM0M7UUFDRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsb0NBQW9DLEVBQUUsSUFBSSxJQUFJLENBQUMsNkNBQTZDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hILENBQUM7SUFFTyxrRUFBaUMsR0FBekMsVUFBMEMsT0FBNEI7UUFDcEUsT0FBTyxDQUNMLENBQUMsT0FBTyxDQUFDLE9BQU87WUFDaEIsQ0FBQyxPQUFPLENBQUMsWUFBWTtZQUNyQixDQUFDLE9BQU8sQ0FBQyxTQUFTO1lBQ2xCLENBQUMsT0FBTyxDQUFDLFFBQVE7WUFDakIsQ0FBQyxPQUFPLENBQUMsZUFBZTtZQUN4QixDQUFDLE9BQU8sQ0FBQyxhQUFhO1lBQ3RCLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUMxQixDQUFDO0lBQ0osQ0FBQztJQUVPLHFFQUFvQyxHQUE1QztRQUNFLE9BQU8sQ0FDTCxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQ2QsQ0FBQyxJQUFJLENBQUMsYUFBYTtZQUNuQixDQUFDLElBQUksQ0FBQyxVQUFVO1lBQ2hCLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFDZixDQUFDLElBQUksQ0FBQyxnQkFBZ0I7WUFDdEIsQ0FBQyxJQUFJLENBQUMsY0FBYztZQUNwQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FDeEIsQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsb0RBQW1CLEdBQW5CLFVBQW9CLFdBQXdCO1FBQzFDLGlCQUFNLG1CQUFtQixZQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksSUFBSSxDQUFDLG1DQUFtQyxFQUFFLEVBQUU7WUFDOUMsa0NBQWtDO1lBQ2xDLElBQUksQ0FBQyxjQUFjLENBQ2pCLElBQUksQ0FBQyxRQUFRLEVBQ2IsSUFBSSxDQUFDLGFBQWEsRUFDbEIsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxnQkFBZ0IsRUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FDcEIsQ0FBQztTQUNIO2FBQU07WUFDTCwwQ0FBMEM7WUFDMUMsSUFDRSxJQUFJLENBQUMsUUFBUTtnQkFDYixJQUFJLENBQUMsYUFBYTtnQkFDbEIsSUFBSSxDQUFDLFVBQVU7Z0JBQ2YsSUFBSSxDQUFDLFNBQVM7Z0JBQ2QsSUFBSSxDQUFDLGdCQUFnQjtnQkFDckIsSUFBSSxDQUFDLGNBQWMsRUFDbkI7Z0JBQ0EsTUFBTSxJQUFJLGdDQUF1QixDQUMvQix5SUFBeUksQ0FDMUksQ0FBQzthQUNIO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sK0NBQWMsR0FBdEIsVUFDRSxPQUFlLEVBQ2YsWUFBb0IsRUFDcEIsU0FBaUIsRUFDakIsUUFBZ0IsRUFDaEIsZUFBdUIsRUFDdkIsYUFBc0I7UUFFdEIsSUFBTSxnQkFBZ0IsR0FBRywyQkFBZSxDQUFDLFFBQVEsQ0FBQztZQUNoRCxPQUFPLFNBQUE7WUFDUCxZQUFZLGNBQUE7WUFDWixTQUFTLFdBQUE7WUFDVCxRQUFRLFVBQUE7WUFDUixlQUFlLGlCQUFBO1lBQ2YsYUFBYSxlQUFBO1NBQ2QsQ0FBQyxDQUFDO1FBRUgsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUU7WUFDMUIsTUFBTSxJQUFJLGdDQUF1QixDQUFDLG9DQUFrQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBUyxDQUFDLENBQUM7U0FDdkc7SUFDSCxDQUFDO0lBQ0gsNkJBQUM7QUFBRCxDQUFDLEFBeFRELENBQTRDLHVDQUFrQixHQXdUN0Q7QUF4VFksd0RBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IGFsZ29zZGsgZnJvbSAnYWxnb3Nkayc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IgfSBmcm9tICcuLi9iYXNlQ29pbi9lcnJvcnMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IEtleVJlZ1R4blNjaGVtYSB9IGZyb20gJy4vdHhuU2NoZW1hJztcbmltcG9ydCBVdGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIEtleVJlZ2lzdHJhdGlvbkJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX3ZvdGVLZXk6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9zZWxlY3Rpb25LZXk6IHN0cmluZztcbiAgcHJvdGVjdGVkIF92b3RlRmlyc3Q6IG51bWJlcjtcbiAgcHJvdGVjdGVkIF92b3RlTGFzdDogbnVtYmVyO1xuICBwcm90ZWN0ZWQgX3ZvdGVLZXlEaWx1dGlvbjogbnVtYmVyO1xuICBwcm90ZWN0ZWQgX25vblBhcnRpY2lwYXRpb246IGJvb2xlYW47XG4gIHByb3RlY3RlZCBfc3RhdGVQcm9vZktleTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdm90ZSBrZXlcbiAgICpcbiAgICogQHJldHVybnMge0tleVJlZ2lzdHJhdGlvbkJ1aWxkZXJ9IFRoaXMgS2V5IFJlZ2lzdHJhdGlvbiBidWlsZGVyLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSByb290IHBhcnRpY2lwYXRpb24gcHVibGljIGtleS4gU2VlIEdlbmVyYXRlIGEgUGFydGljaXBhdGlvbiBLZXkgdG8gbGVhcm4gbW9yZS5cbiAgICogaHR0cHM6Ly9kZXZlbG9wZXIuYWxnb3JhbmQub3JnL2RvY3MvcmVmZXJlbmNlL3RyYW5zYWN0aW9ucy8ja2V5LXJlZ2lzdHJhdGlvbi10cmFuc2FjdGlvblxuICAgKi9cbiAgdm90ZUtleShrZXk6IHN0cmluZyk6IEtleVJlZ2lzdHJhdGlvbkJ1aWxkZXIge1xuICAgIHRoaXMuX3ZvdGVLZXkgPSBrZXk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgc2VsZWN0aW9uIGtleVxuICAgKlxuICAgKiBAcmV0dXJucyB7S2V5UmVnaXN0cmF0aW9uQnVpbGRlcn0gVGhpcyBLZXkgUmVnaXN0cmF0aW9uIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIFZSRiBwdWJsaWMga2V5IGZvciB0aGUgYWNjb3VudC5cbiAgICogaHR0cHM6Ly9kZXZlbG9wZXIuYWxnb3JhbmQub3JnL2RvY3MvcmVmZXJlbmNlL3RyYW5zYWN0aW9ucy8ja2V5LXJlZ2lzdHJhdGlvbi10cmFuc2FjdGlvblxuICAgKi9cbiAgc2VsZWN0aW9uS2V5KGtleTogc3RyaW5nKTogS2V5UmVnaXN0cmF0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5fc2VsZWN0aW9uS2V5ID0ga2V5O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHN0YXRlUHJvb2Yga2V5XG4gICAqXG4gICAqIEByZXR1cm5zIHtLZXlSZWdpc3RyYXRpb25CdWlsZGVyfSBUaGlzIEtleSBSZWdpc3RyYXRpb24gYnVpbGRlci5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUgc3RhdGVwcm9vZiBrZXkuIFNlZSBjb25zZW5zdXMgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVyLmFsZ29yYW5kLm9yZy9kb2NzL2dldC1kZXRhaWxzL2FsZ29yYW5kX2NvbnNlbnN1cy8/ZnJvbV9xdWVyeT1zdGF0ZSNzdGF0ZS1wcm9vZi1rZXlzXG4gICAqL1xuICBzdGF0ZVByb29mS2V5KGtleTogc3RyaW5nKTogS2V5UmVnaXN0cmF0aW9uQnVpbGRlciB7XG4gICAgVXRpbHMudmFsaWRhdGVCYXNlNjQoa2V5KTtcbiAgICB0aGlzLl9zdGF0ZVByb29mS2V5ID0ga2V5O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqU2V0cyB0aGUgdm90ZSBmaXJzdCByb3VuZFxuICAgKlxuICAgKiBAcmV0dXJucyB7S2V5UmVnaXN0cmF0aW9uQnVpbGRlcn0gVGhpcyBLZXkgUmVnaXN0cmF0aW9uIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSByb3VuZCBUaGUgZmlyc3Qgcm91bmQgdGhhdCB0aGUgcGFydGljaXBhdGlvbiBrZXkgaXMgdmFsaWQuIE5vdCB0byBiZSBjb25mdXNlZCB3aXRoIHRoZSBGaXJzdFZhbGlkIHJvdW5kIG9mIHRoZSBrZXlyZWcgdHJhbnNhY3Rpb24uXG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVyLmFsZ29yYW5kLm9yZy9kb2NzL3JlZmVyZW5jZS90cmFuc2FjdGlvbnMvI2tleS1yZWdpc3RyYXRpb24tdHJhbnNhY3Rpb25cbiAgICovXG4gIHZvdGVGaXJzdChyb3VuZDogbnVtYmVyKTogS2V5UmVnaXN0cmF0aW9uQnVpbGRlciB7XG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlKG5ldyBCaWdOdW1iZXIocm91bmQpKTtcbiAgICB0aGlzLl92b3RlRmlyc3QgPSByb3VuZDtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHZvdGUgbGFzdCByb3VuZFxuICAgKlxuICAgKiBAcmV0dXJucyB7S2V5UmVnaXN0cmF0aW9uQnVpbGRlcn0gVGhpcyBLZXkgUmVnaXN0cmF0aW9uIGJ1aWxkZXIuXG4gICAqXG4gICAqIEEgcmVjb21tZW5kZWQgcmFuZ2UgaXMgMywwMDAsMDAwIHJvdW5kcy5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHJvdW5kIE5vIHRoZW9yZXRpY2FsIGxpbWl0LlxuICAgKiBodHRwczovL2RldmVsb3Blci5hbGdvcmFuZC5vcmcvZG9jcy9ydW4tYS1ub2RlL3BhcnRpY2lwYXRlL2dlbmVyYXRlX2tleXMvXG4gICAqL1xuICB2b3RlTGFzdChyb3VuZDogbnVtYmVyKTogS2V5UmVnaXN0cmF0aW9uQnVpbGRlciB7XG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlKG5ldyBCaWdOdW1iZXIocm91bmQpKTtcbiAgICB0aGlzLl92b3RlTGFzdCA9IHJvdW5kO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdm90ZSBrZXkgZGlsdXRpb25cbiAgICpcbiAgICogQHJldHVybnMge0tleVJlZ2lzdHJhdGlvbkJ1aWxkZXJ9IFRoaXMgS2V5IFJlZ2lzdHJhdGlvbiBidWlsZGVyLlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byAxMCwwMDBcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHNpemUgWzEwMDAwXS4gVG8gcmVkdWNlIHRoZSBzaXplIG9mIHRoZSBwYXJ0aWNpcGF0aW9uIGtleSwgc2V0IHRoZSBrZXkgZGlsdXRpb24gdmFsdWUgdG8gcm91Z2hseSB0aGUgc3F1YXJlIHJvb3Qgb2YgdGhlIHJhbmdlIHRoYXQgdGhlIHBhcnRrZXkgaXMgdmFsaWQgZm9yLlxuICAgKiBodHRwczovL2RldmVsb3Blci5hbGdvcmFuZC5vcmcvZG9jcy9ydW4tYS1ub2RlL3BhcnRpY2lwYXRlL2dlbmVyYXRlX2tleXMvI2dlbmVyYXRlLXRoZS1wYXJ0aWNpcGF0aW9uLWtleS13aXRoLWdvYWxcbiAgICogQHBhcmFtIHNpemVcbiAgICovXG4gIHZvdGVLZXlEaWx1dGlvbihzaXplID0gMTAwMDApOiBLZXlSZWdpc3RyYXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWUobmV3IEJpZ051bWJlcihzaXplKSk7XG4gICAgdGhpcy5fdm90ZUtleURpbHV0aW9uID0gc2l6ZTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIG5vbiBwYXJ0aWNpcGF0aW9uIGZsYWdcbiAgICpcbiAgICogQHJldHVybnMge0tleVJlZ2lzdHJhdGlvbkJ1aWxkZXJ9IFRoaXMgS2V5IFJlZ2lzdHJhdGlvbiBidWlsZGVyLlxuICAgKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG5vblBhcnRpY2lwYXRpb24gQWxsIG5ldyBBbGdvcmFuZCBhY2NvdW50cyBhcmUgcGFydGljaXBhdGluZyBieSBkZWZhdWx0LlxuICAgKiBUaGlzIG1lYW5zIHRoYXQgdGhleSBlYXJuIHJld2FyZHMuIE1hcmsgYW4gYWNjb3VudCBub25wYXJ0aWNpcGF0aW5nIGJ5IHNldHRpbmcgdGhpcyB2YWx1ZSB0byB0cnVlIGFuZCB0aGlzIGFjY291bnRcbiAgICogd2lsbCBubyBsb25nZXIgZWFybiByZXdhcmRzIE5FVkVSLlxuICAgKiBodHRwczovL2RldmVsb3Blci5hbGdvcmFuZC5vcmcvZG9jcy9yZWZlcmVuY2UvdHJhbnNhY3Rpb25zLyNrZXktcmVnaXN0cmF0aW9uLXRyYW5zYWN0aW9uXG4gICAqL1xuICBub25QYXJ0aWNpcGF0aW9uKG5vblBhcnRpY2lwYXRpb246IGJvb2xlYW4pOiBLZXlSZWdpc3RyYXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLl9ub25QYXJ0aWNpcGF0aW9uID0gbm9uUGFydGljaXBhdGlvbjtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkQWxnb1R4bigpOiBhbGdvc2RrLlRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5pc09mZmxpbmVLZXlSZWdBY2NvdW50TGliVHJhbnNhY3Rpb24oKVxuICAgICAgPyB0aGlzLmJ1aWxkT2ZmbGluZUtleVJlZ1RyYW5zYWN0aW9uKClcbiAgICAgIDogdGhpcy5pc05vblBhcnRpY2lwYXRpb25LZXlSZWdBY2NvdW50TGliVHJhbnNhY3Rpb24oKVxuICAgICAgPyB0aGlzLmJ1aWxkTm9uUGFydGljaXBhdGlvbktleVJlZ1RyYW5zYWN0aW9uKClcbiAgICAgIDogdGhpcy5idWlsZE9ubGluZUtleVJlZ1RyYW5zYWN0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkT2ZmbGluZUtleVJlZ1RyYW5zYWN0aW9uKCk6IGFsZ29zZGsuVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiBhbGdvc2RrLm1ha2VLZXlSZWdpc3RyYXRpb25UeG5XaXRoU3VnZ2VzdGVkUGFyYW1zKFxuICAgICAgdGhpcy5fc2VuZGVyLFxuICAgICAgdGhpcy5fbm90ZSxcbiAgICAgIHVuZGVmaW5lZCwgLy8gdm90ZUtleSBwYXJhbVxuICAgICAgdW5kZWZpbmVkLCAvLyBzZWxlY3Rpb25LZXkgcGFyYW1cbiAgICAgIHVuZGVmaW5lZCwgLy8gdm90ZUZpcnN0IHBhcmFtXG4gICAgICB1bmRlZmluZWQsIC8vIHZvdGVMYXN0IHBhcmFtXG4gICAgICB1bmRlZmluZWQsIC8vIHZvdGVLZXlEaWx1dGlvbiBwYXJhbVxuICAgICAgdGhpcy5zdWdnZXN0ZWRQYXJhbXMsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRPbmxpbmVLZXlSZWdUcmFuc2FjdGlvbigpOiBhbGdvc2RrLlRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gYWxnb3Nkay5tYWtlS2V5UmVnaXN0cmF0aW9uVHhuV2l0aFN1Z2dlc3RlZFBhcmFtcyhcbiAgICAgIHRoaXMuX3NlbmRlcixcbiAgICAgIHRoaXMuX25vdGUsXG4gICAgICB0aGlzLl92b3RlS2V5LFxuICAgICAgdGhpcy5fc2VsZWN0aW9uS2V5LFxuICAgICAgdGhpcy5fdm90ZUZpcnN0LFxuICAgICAgdGhpcy5fdm90ZUxhc3QsXG4gICAgICB0aGlzLl92b3RlS2V5RGlsdXRpb24sXG4gICAgICB0aGlzLnN1Z2dlc3RlZFBhcmFtcyxcbiAgICAgIHVuZGVmaW5lZCwgLy8gcmVLZXlUbyBwYXJhbVxuICAgICAgdW5kZWZpbmVkLCAvLyBub25QYXJ0aWNpcGF0aW9uIHBhcmFtXG4gICAgICB0aGlzLl9zdGF0ZVByb29mS2V5LFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkTm9uUGFydGljaXBhdGlvbktleVJlZ1RyYW5zYWN0aW9uKCk6IGFsZ29zZGsuVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiBhbGdvc2RrLm1ha2VLZXlSZWdpc3RyYXRpb25UeG5XaXRoU3VnZ2VzdGVkUGFyYW1zKFxuICAgICAgdGhpcy5fc2VuZGVyLFxuICAgICAgdGhpcy5fbm90ZSxcbiAgICAgIHVuZGVmaW5lZCwgLy8gdm90ZUtleSBwYXJhbVxuICAgICAgdW5kZWZpbmVkLCAvLyBzZWxlY3Rpb25LZXkgcGFyYW1cbiAgICAgIHVuZGVmaW5lZCwgLy8gdm90ZUZpcnN0IHBhcmFtXG4gICAgICB1bmRlZmluZWQsIC8vIHZvdGVMYXN0IHBhcmFtXG4gICAgICB1bmRlZmluZWQsIC8vIHZvdGVLZXlEaWx1dGlvbiBwYXJhbVxuICAgICAgdGhpcy5zdWdnZXN0ZWRQYXJhbXMsXG4gICAgICB0aGlzLl9yZUtleVRvLFxuICAgICAgdHJ1ZSwgLy8gbm9uUGFydGljaXBhdGlvbiBwYXJhbVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogVWludDhBcnJheSB8IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCB0eCA9IHN1cGVyLmZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgY29uc3QgYWxnb1R4biA9IHR4LmdldEFsZ29UcmFuc2FjdGlvbigpO1xuXG4gICAgaWYgKGFsZ29UeG4pIHtcbiAgICAgIGlmICh0aGlzLmlzTm9uUGFydGljaXBhdGlvbktleVJlZ0FsZ29TREtUcmFuc2FjdGlvbihhbGdvVHhuKSkge1xuICAgICAgICB0aGlzLm5vblBhcnRpY2lwYXRpb24oISFhbGdvVHhuLm5vblBhcnRpY2lwYXRpb24pO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmlzT25saW5lS2V5UmVnQWxnb1NES1RyYW5zYWN0aW9uKGFsZ29UeG4pKSB7XG4gICAgICAgIHRoaXMudm90ZUtleShhbGdvVHhuLnZvdGVLZXkudG9TdHJpbmcoJ2Jhc2U2NCcpKTtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25LZXkoYWxnb1R4bi5zZWxlY3Rpb25LZXkudG9TdHJpbmcoJ2Jhc2U2NCcpKTtcbiAgICAgICAgdGhpcy52b3RlRmlyc3QoYWxnb1R4bi52b3RlRmlyc3QpO1xuICAgICAgICB0aGlzLnZvdGVMYXN0KGFsZ29UeG4udm90ZUxhc3QpO1xuICAgICAgICB0aGlzLnZvdGVLZXlEaWx1dGlvbihhbGdvVHhuLnZvdGVLZXlEaWx1dGlvbik7XG4gICAgICAgIGlmIChhbGdvVHhuLnN0YXRlUHJvb2ZLZXkpIHtcbiAgICAgICAgICB0aGlzLnN0YXRlUHJvb2ZLZXkoYWxnb1R4bi5zdGF0ZVByb29mS2V5LnRvU3RyaW5nKCdiYXNlNjQnKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHR4O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IFVpbnQ4QXJyYXkgfCBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBkZWNvZGVUeG4gPSBVdGlscy5kZWNvZGVBbGdvVHhuKHJhd1RyYW5zYWN0aW9uKTtcbiAgICBjb25zdCBhbGdvVHhuID0gZGVjb2RlVHhuLnR4bjtcbiAgICBpZiAoYWxnb1R4bi50eXBlICE9PSBhbGdvc2RrLlRyYW5zYWN0aW9uVHlwZS5rZXlyZWcpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgYEludmFsaWQgVHJhbnNhY3Rpb24gVHlwZTogJHthbGdvVHhuLnR5cGV9LiBFeHBlY3RlZCAke2FsZ29zZGsuVHJhbnNhY3Rpb25UeXBlLmtleXJlZ31gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc09ubGluZUtleVJlZ0FsZ29TREtUcmFuc2FjdGlvbihhbGdvVHhuKSkge1xuICAgICAgdGhpcy52YWxpZGF0ZUZpZWxkcyhcbiAgICAgICAgYWxnb1R4bi52b3RlS2V5LnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgICAgICAgYWxnb1R4bi5zZWxlY3Rpb25LZXkudG9TdHJpbmcoJ2Jhc2U2NCcpLFxuICAgICAgICBhbGdvVHhuLnZvdGVGaXJzdCxcbiAgICAgICAgYWxnb1R4bi52b3RlTGFzdCxcbiAgICAgICAgYWxnb1R4bi52b3RlS2V5RGlsdXRpb24sXG4gICAgICAgIGFsZ29UeG4uc3RhdGVQcm9vZktleSAmJiBhbGdvVHhuLnN0YXRlUHJvb2ZLZXkudG9TdHJpbmcoJ2Jhc2U2NCcpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzTm9uUGFydGljaXBhdGlvbktleVJlZ0FsZ29TREtUcmFuc2FjdGlvbihhbGdvVHhuOiBhbGdvc2RrLlRyYW5zYWN0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhYWxnb1R4bi5ub25QYXJ0aWNpcGF0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBpc05vblBhcnRpY2lwYXRpb25LZXlSZWdBY2NvdW50TGliVHJhbnNhY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5fbm9uUGFydGljaXBhdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgaXNPbmxpbmVLZXlSZWdBbGdvU0RLVHJhbnNhY3Rpb24oYWxnb1R4bjogYWxnb3Nkay5UcmFuc2FjdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhKFxuICAgICAgdGhpcy5pc09mZmxpbmVLZXlSZWdBbGdvU0RLVHJhbnNhY3Rpb24oYWxnb1R4bikgfHwgdGhpcy5pc05vblBhcnRpY2lwYXRpb25LZXlSZWdBbGdvU0RLVHJhbnNhY3Rpb24oYWxnb1R4bilcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpc09ubGluZUtleVJlZ0FjY291bnRMaWJUcmFuc2FjdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISh0aGlzLmlzT2ZmbGluZUtleVJlZ0FjY291bnRMaWJUcmFuc2FjdGlvbigpIHx8IHRoaXMuaXNOb25QYXJ0aWNpcGF0aW9uS2V5UmVnQWNjb3VudExpYlRyYW5zYWN0aW9uKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc09mZmxpbmVLZXlSZWdBbGdvU0RLVHJhbnNhY3Rpb24oYWxnb1R4bjogYWxnb3Nkay5UcmFuc2FjdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhYWxnb1R4bi52b3RlS2V5ICYmXG4gICAgICAhYWxnb1R4bi5zZWxlY3Rpb25LZXkgJiZcbiAgICAgICFhbGdvVHhuLnZvdGVGaXJzdCAmJlxuICAgICAgIWFsZ29UeG4udm90ZUxhc3QgJiZcbiAgICAgICFhbGdvVHhuLnZvdGVLZXlEaWx1dGlvbiAmJlxuICAgICAgIWFsZ29UeG4uc3RhdGVQcm9vZktleSAmJlxuICAgICAgIWFsZ29UeG4ubm9uUGFydGljaXBhdGlvblxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGlzT2ZmbGluZUtleVJlZ0FjY291bnRMaWJUcmFuc2FjdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgIXRoaXMuX3ZvdGVLZXkgJiZcbiAgICAgICF0aGlzLl9zZWxlY3Rpb25LZXkgJiZcbiAgICAgICF0aGlzLl92b3RlRmlyc3QgJiZcbiAgICAgICF0aGlzLl92b3RlTGFzdCAmJlxuICAgICAgIXRoaXMuX3ZvdGVLZXlEaWx1dGlvbiAmJlxuICAgICAgIXRoaXMuX3N0YXRlUHJvb2ZLZXkgJiZcbiAgICAgICF0aGlzLl9ub25QYXJ0aWNpcGF0aW9uXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLnZhbGlkYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pO1xuICAgIGlmICh0aGlzLmlzT25saW5lS2V5UmVnQWNjb3VudExpYlRyYW5zYWN0aW9uKCkpIHtcbiAgICAgIC8vIGludmFsaWQgb2ZmbGluZSB3aWxsIHJlYWNoIGhlcmVcbiAgICAgIHRoaXMudmFsaWRhdGVGaWVsZHMoXG4gICAgICAgIHRoaXMuX3ZvdGVLZXksXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbktleSxcbiAgICAgICAgdGhpcy5fdm90ZUZpcnN0LFxuICAgICAgICB0aGlzLl92b3RlTGFzdCxcbiAgICAgICAgdGhpcy5fdm90ZUtleURpbHV0aW9uLFxuICAgICAgICB0aGlzLl9zdGF0ZVByb29mS2V5LFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gb2ZmbGluZSBvciBub25wYXJ0aWNpcGF0aW9uIHRyYW5zYWN0aW9uXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuX3ZvdGVLZXkgfHxcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uS2V5IHx8XG4gICAgICAgIHRoaXMuX3ZvdGVGaXJzdCB8fFxuICAgICAgICB0aGlzLl92b3RlTGFzdCB8fFxuICAgICAgICB0aGlzLl92b3RlS2V5RGlsdXRpb24gfHxcbiAgICAgICAgdGhpcy5fc3RhdGVQcm9vZktleVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgICAnVm90ZUtleSwgU2VsZWN0aW9uS2V5LCBWb3RlRmlyc3QsIFZvdGVMYXN0LCBWb3RlS2V5RGlsdXRpb24sIFN0YXRlUHJvb2ZLZXkgZmllbGRzIGNhbm5vdCBiZSBzZXQgd2hlbiBvZmZsaW5lIG9yIG5vbnBhcnRpY2lwYXRpb24gaXMgc2V0JyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlRmllbGRzKFxuICAgIHZvdGVLZXk6IHN0cmluZyxcbiAgICBzZWxlY3Rpb25LZXk6IHN0cmluZyxcbiAgICB2b3RlRmlyc3Q6IG51bWJlcixcbiAgICB2b3RlTGFzdDogbnVtYmVyLFxuICAgIHZvdGVLZXlEaWx1dGlvbjogbnVtYmVyLFxuICAgIHN0YXRlUHJvb2ZLZXk/OiBzdHJpbmcsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBLZXlSZWdUeG5TY2hlbWEudmFsaWRhdGUoe1xuICAgICAgdm90ZUtleSxcbiAgICAgIHNlbGVjdGlvbktleSxcbiAgICAgIHZvdGVGaXJzdCxcbiAgICAgIHZvdGVMYXN0LFxuICAgICAgdm90ZUtleURpbHV0aW9uLFxuICAgICAgc3RhdGVQcm9vZktleSxcbiAgICB9KTtcblxuICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0LmVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../src/coin/algo/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,gBAAgB,CAAC,CAAsB;IAC/C,OAAO,CAAC,kBAAkB,CAAC,CAAa;IACxC,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,SAAS,CAAW;gBAEhB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAM5C,kBAAkB;IAClB,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,GAAG,OAAO;IAiBlC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI7B;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI;IAW9B;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAYlB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IA+BpB,IAAI,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAEpC;IAED,IAAI,uBAAuB,IAAI,MAAM,CAEpC;IAED;;;;OAIG;IACH,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI7C,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAE1B;IAED,IAAI,OAAO,IAAI,MAAM,EAAE,CAEtB;IAED,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAE5B;IAED,IAAI,QAAQ,IAAI,MAAM,EAAE,CAEvB;IAED;;;;OAIG;IAEH,kBAAkB,CAAC,EAAE,EAAE,OAAO,CAAC,WAAW,GAAG,IAAI;IAIjD;;;;OAIG;IAEH,kBAAkB,IAAI,OAAO,CAAC,WAAW,GAAG,SAAS;IAIrD;;;;OAIG;IACH,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAI1D,YAAY,IAAI,MAAM;IAQtB,kBAAkB;IAClB,iBAAiB,IAAI,UAAU;IAW/B,kBAAkB;IAClB,MAAM,IAAI,MAAM;IAyChB;;OAEG;IACH,oBAAoB,IAAI,IAAI;CAsB7B"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../src/coin/algo/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,gBAAgB,CAAC,CAAsB;IAC/C,OAAO,CAAC,kBAAkB,CAAC,CAAa;IACxC,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,SAAS,CAAW;gBAEhB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAM5C,kBAAkB;IAClB,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,GAAG,OAAO;IAiBlC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI7B;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI;IAW9B;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAYlB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IA+BpB,IAAI,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAEpC;IAED,IAAI,uBAAuB,IAAI,MAAM,CAEpC;IAED;;;;OAIG;IACH,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI7C,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAE1B;IAED,IAAI,OAAO,IAAI,MAAM,EAAE,CAEtB;IAED,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAE5B;IAED,IAAI,QAAQ,IAAI,MAAM,EAAE,CAEvB;IAED;;;;OAIG;IAEH,kBAAkB,CAAC,EAAE,EAAE,OAAO,CAAC,WAAW,GAAG,IAAI;IAIjD;;;;OAIG;IAEH,kBAAkB,IAAI,OAAO,CAAC,WAAW,GAAG,SAAS;IAIrD;;;;OAIG;IACH,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAI1D,YAAY,IAAI,MAAM;IAQtB,kBAAkB;IAClB,iBAAiB,IAAI,UAAU;IAW/B,kBAAkB;IAClB,MAAM,IAAI,MAAM;IAoDhB;;OAEG;IACH,oBAAoB,IAAI,IAAI;CAsB7B"}