@coti-io/coti-contracts 1.0.9 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. package/.github/workflows/npm-publish.yml +18 -14
  2. package/README.md +3 -1
  3. package/contracts/disperse/coinByRatio/FixedRatioCoinDisperser.sol +452 -0
  4. package/contracts/disperse/coinByRatio/FixedRatioCoinDisperserLeftoverS1.sol +490 -0
  5. package/contracts/disperse/coinByRatio/FixedRatioCoinDisperserUnlimitedWindow.sol +432 -0
  6. package/contracts/disperse/disperseToken/MintDisperser.sol +120 -0
  7. package/contracts/disperse/disperseToken/TokenDisperser.sol +139 -0
  8. package/contracts/mocks/token/ERC20Mock.sol +19 -0
  9. package/contracts/mocks/token/PrivateERC20/EncryptedTokenReceiverMock.sol +18 -0
  10. package/contracts/mocks/token/PrivateERC20/PrivacyBridgeERC20Mock.sol +13 -0
  11. package/contracts/mocks/token/PrivateERC20/PrivateERC20AuditorSupplyMock.sol +44 -0
  12. package/contracts/mocks/token/PrivateERC20/PrivateERC20CappedMock.sol +23 -0
  13. package/contracts/mocks/token/PrivateERC20/PrivateERC20GtCallerMock.sol +29 -0
  14. package/contracts/mocks/token/PrivateERC20/PrivateERC20Mock.sol +9 -4
  15. package/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol +39 -0
  16. package/contracts/mocks/token/PrivateERC20/PublicReentrantTokenReceiverMock.sol +29 -0
  17. package/contracts/mocks/token/PrivateERC20/PublicTokenReceiverBoolMock.sol +18 -0
  18. package/contracts/mocks/token/PrivateERC20/PublicTokenReceiverMock.sol +12 -0
  19. package/contracts/mocks/utils/mpc/Arithmetic128TestsContract.sol +123 -0
  20. package/contracts/mocks/utils/mpc/Arithmetic256TestsContract.sol +122 -0
  21. package/contracts/mocks/utils/mpc/Bitwise128TestsContract.sol +65 -0
  22. package/contracts/mocks/utils/mpc/Bitwise256TestsContract.sol +65 -0
  23. package/contracts/mocks/utils/mpc/CheckedArithmetic128WithOverflowBitTestsContract.sol +64 -0
  24. package/contracts/mocks/utils/mpc/CheckedArithmetic256WithOverflowBitTestsContract.sol +64 -0
  25. package/contracts/mocks/utils/mpc/Comparison128TestsContract.sol +98 -0
  26. package/contracts/mocks/utils/mpc/Comparison256TestsContract.sol +98 -0
  27. package/contracts/mocks/utils/mpc/MinMax128TestsContract.sol +44 -0
  28. package/contracts/mocks/utils/mpc/MinMax256TestsContract.sol +44 -0
  29. package/contracts/mocks/utils/mpc/MinimalImplementation.sol +55 -0
  30. package/contracts/mocks/utils/mpc/MinimalProxy.sol +27 -0
  31. package/contracts/mocks/utils/mpc/MpcOperations128TestContract.sol +267 -0
  32. package/contracts/mocks/utils/mpc/MpcOperationsTestContract.sol +334 -0
  33. package/contracts/mocks/utils/mpc/Mux128TestsContract.sol +24 -0
  34. package/contracts/mocks/utils/mpc/Mux256TestsContract.sol +24 -0
  35. package/contracts/mocks/utils/mpc/OnBoard128TestsContract.sol +93 -0
  36. package/contracts/mocks/utils/mpc/OnBoard256TestsContract.sol +116 -0
  37. package/contracts/mocks/utils/mpc/PrivacyImplementationV1.sol +157 -0
  38. package/contracts/mocks/utils/mpc/PrivacyImplementationV2.sol +133 -0
  39. package/contracts/mocks/utils/mpc/PrivacyProxy.sol +137 -0
  40. package/contracts/mocks/utils/mpc/Random128TestsContract.sol +32 -0
  41. package/contracts/mocks/utils/mpc/Random256TestsContract.sol +32 -0
  42. package/contracts/mocks/utils/mpc/Shift128TestsContract.sol +36 -0
  43. package/contracts/mocks/utils/mpc/Shift256TestsContract.sol +36 -0
  44. package/contracts/mocks/utils/mpc/Transfer128TestsContract.sol +29 -0
  45. package/contracts/mocks/utils/mpc/Transfer256TestsContract.sol +29 -0
  46. package/contracts/mocks/utils/mpc/TransferWithAllowance128TestsContract.sol +32 -0
  47. package/contracts/mocks/utils/mpc/TransferWithAllowance256TestsContract.sol +32 -0
  48. package/contracts/mocks/utils/mpc/ValidateCiphertext128TestsContract.sol +59 -0
  49. package/contracts/mocks/utils/mpc/ValidateCiphertext256TestsContract.sol +63 -0
  50. package/contracts/mocks/utils/mpc/ValidateCiphertextTestsContract.sol +99 -0
  51. package/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock.sol +7 -6
  52. package/contracts/node/CotiNodeRewards.sol +199 -0
  53. package/contracts/node/SoulboundNodeNFT.sol +519 -0
  54. package/contracts/privacyBridge/PrivacyBridge.sol +318 -0
  55. package/contracts/privacyBridge/PrivacyBridgeCotiNative.sol +268 -0
  56. package/contracts/privacyBridge/PrivacyBridgeERC20.sol +251 -0
  57. package/contracts/privacyBridge/PrivacyBridgeUSDCe.sol +16 -0
  58. package/contracts/privacyBridge/PrivacyBridgeUSDT.sol +17 -0
  59. package/contracts/privacyBridge/PrivacyBridgeWADA.sol +17 -0
  60. package/contracts/privacyBridge/PrivacyBridgeWBTC.sol +17 -0
  61. package/contracts/privacyBridge/PrivacyBridgeWETH.sol +17 -0
  62. package/contracts/privacyBridge/PrivacyBridgegCoti.sol +17 -0
  63. package/contracts/token/PrivateERC20/IPrivateERC20.sol +273 -40
  64. package/contracts/token/PrivateERC20/ITokenReceiver.sol +17 -0
  65. package/contracts/token/PrivateERC20/ITokenReceiverEncrypted.sol +20 -0
  66. package/contracts/token/PrivateERC20/PrivateERC20.sol +861 -152
  67. package/contracts/token/PrivateERC20/tokens/PrivateBridgedUSDC.sol +17 -0
  68. package/contracts/token/PrivateERC20/tokens/PrivateCOTI.sol +13 -0
  69. package/contracts/token/PrivateERC20/tokens/PrivateCOTITreasuryGovernanceToken.sol +17 -0
  70. package/contracts/token/PrivateERC20/tokens/PrivateTetherUSD.sol +17 -0
  71. package/contracts/token/PrivateERC20/tokens/PrivateWrappedADA.sol +17 -0
  72. package/contracts/token/PrivateERC20/tokens/PrivateWrappedBTC.sol +17 -0
  73. package/contracts/token/PrivateERC20/tokens/PrivateWrappedEther.sol +13 -0
  74. package/contracts/utils/mpc/MpcCore.sol +10891 -2449
  75. package/contracts/utils/mpc/MpcInterface.sol +7 -2
  76. package/hardhat/gasPriceBump.ts +60 -0
  77. package/hardhat.config.ts +60 -12
  78. package/package.json +21 -3
  79. package/scripts/deploySoulboundNodeNFT.ts +57 -0
  80. package/test/token/PrivateERC20/PrivacyBridge.fees.test.ts +327 -0
  81. package/test/token/PrivateERC20/PrivateERC20.test.ts +1109 -268
  82. package/test/utils/mpc/Bitwise128.test.ts +92 -0
  83. package/test/utils/mpc/Bitwise256.test.ts +101 -0
  84. package/test/utils/mpc/BuildInputText128.test.ts +398 -0
  85. package/test/utils/mpc/CheckedArithmetic128.test.ts +45 -0
  86. package/test/utils/mpc/CheckedArithmetic256.test.ts +45 -0
  87. package/test/utils/mpc/Comparison128.test.ts +48 -0
  88. package/test/utils/mpc/Comparison256.test.ts +48 -0
  89. package/test/utils/mpc/InvalidCiphertext.test.ts +179 -0
  90. package/test/utils/mpc/InvalidCiphertext128.test.ts +179 -0
  91. package/test/utils/mpc/InvalidCiphertext256.test.ts +201 -0
  92. package/test/utils/mpc/InvalidTransfer128.test.ts +166 -0
  93. package/test/utils/mpc/InvalidTransfer256.test.ts +158 -0
  94. package/test/utils/mpc/MinMax128.test.ts +44 -0
  95. package/test/utils/mpc/MinMax256.test.ts +44 -0
  96. package/test/utils/mpc/MinimalProxyDemo.test.ts +280 -0
  97. package/test/utils/mpc/MpcOperations.test.ts +589 -0
  98. package/test/utils/mpc/MpcOperations128.test.ts +632 -0
  99. package/test/utils/mpc/Mux128.test.ts +41 -0
  100. package/test/utils/mpc/Mux256.test.ts +41 -0
  101. package/test/utils/mpc/NegativeCases.test.ts +478 -0
  102. package/test/utils/mpc/NegativeCases128.test.ts +237 -0
  103. package/test/utils/mpc/NegativeCases256.test.ts +236 -0
  104. package/test/utils/mpc/OnBoard128.test.ts +90 -0
  105. package/test/utils/mpc/OnBoard256.test.ts +114 -0
  106. package/test/utils/mpc/Precompile128.test.ts +51 -0
  107. package/test/utils/mpc/Precompile256.test.ts +115 -0
  108. package/test/utils/mpc/ProxyValidation.test.ts +199 -0
  109. package/test/utils/mpc/Random128.test.ts +47 -0
  110. package/test/utils/mpc/Random256.test.ts +47 -0
  111. package/test/utils/mpc/Shift128.test.ts +41 -0
  112. package/test/utils/mpc/Shift256.test.ts +41 -0
  113. package/test/utils/mpc/Transfer128.test.ts +46 -0
  114. package/test/utils/mpc/Transfer256.test.ts +46 -0
  115. package/test/utils/mpc/TransferWithAllowance128.test.ts +48 -0
  116. package/test/utils/mpc/TransferWithAllowance256.test.ts +48 -0
  117. package/test/utils/mpc/UpgradeablePrivacyProxy.test.ts +307 -0
  118. package/test/utils/mpc/ValidateCiphertext.test.ts +221 -0
  119. package/test/utils/mpc/ValidateCiphertext256.test.ts +161 -0
  120. package/test/utils/mpc/ValidateCiphertext256Decryption.test.ts +383 -0
  121. package/test/utils/mpc/WalletEncryptionFailures.test.ts +494 -0
  122. package/test/utils/privateErc20Helpers.ts +97 -0
  123. package/typechain-types/@openzeppelin/contracts/access/Ownable.ts +153 -0
  124. package/typechain-types/@openzeppelin/contracts/access/index.ts +4 -0
  125. package/typechain-types/@openzeppelin/contracts/index.ts +2 -0
  126. package/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts +262 -0
  127. package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.ts +143 -0
  128. package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts +4 -0
  129. package/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts +6 -0
  130. package/typechain-types/@openzeppelin/contracts/token/index.ts +2 -0
  131. package/typechain-types/contracts/disperse/coinByRatio/FixedRatioCoinDisperser.ts +679 -0
  132. package/typechain-types/contracts/disperse/coinByRatio/index.ts +4 -0
  133. package/typechain-types/contracts/disperse/disperseToken/MintDisperser.sol/IMintableERC20.ts +97 -0
  134. package/typechain-types/contracts/disperse/disperseToken/MintDisperser.sol/MintDisperser.ts +206 -0
  135. package/typechain-types/contracts/disperse/disperseToken/MintDisperser.sol/index.ts +5 -0
  136. package/typechain-types/contracts/disperse/disperseToken/TokenDisperser.ts +191 -0
  137. package/typechain-types/contracts/disperse/disperseToken/index.ts +6 -0
  138. package/typechain-types/contracts/disperse/index.ts +7 -0
  139. package/typechain-types/contracts/index.ts +2 -0
  140. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20Mock.ts +77 -60
  141. package/typechain-types/contracts/mocks/utils/mpc/Arithmetic128BitTestsContract.ts +341 -0
  142. package/typechain-types/contracts/mocks/utils/mpc/Arithmetic128TestsContract.ts +311 -0
  143. package/typechain-types/contracts/mocks/utils/mpc/Arithmetic256BitTestsContract.ts +347 -0
  144. package/typechain-types/contracts/mocks/utils/mpc/Arithmetic256TestsContract.ts +311 -0
  145. package/typechain-types/contracts/mocks/utils/mpc/Bitwise128BitTestsContract.ts +186 -0
  146. package/typechain-types/contracts/mocks/utils/mpc/Bitwise128TestsContract.ts +179 -0
  147. package/typechain-types/contracts/mocks/utils/mpc/Bitwise256BitTestsContract.ts +186 -0
  148. package/typechain-types/contracts/mocks/utils/mpc/Bitwise256TestsContract.ts +179 -0
  149. package/typechain-types/contracts/mocks/utils/mpc/CheckedArithmetic128WithOverflowBitTestsContract.ts +206 -0
  150. package/typechain-types/contracts/mocks/utils/mpc/CheckedArithmetic256WithOverflowBitTestsContract.ts +206 -0
  151. package/typechain-types/contracts/mocks/utils/mpc/Comparison128BitTestsContract.ts +260 -0
  152. package/typechain-types/contracts/mocks/utils/mpc/Comparison128TestsContract.ts +278 -0
  153. package/typechain-types/contracts/mocks/utils/mpc/Comparison256BitTestsContract.ts +260 -0
  154. package/typechain-types/contracts/mocks/utils/mpc/Comparison256TestsContract.ts +278 -0
  155. package/typechain-types/contracts/mocks/utils/mpc/MinMax128TestsContract.ts +142 -0
  156. package/typechain-types/contracts/mocks/utils/mpc/MinMax256TestsContract.ts +142 -0
  157. package/typechain-types/contracts/mocks/utils/mpc/MinimalImplementation.ts +259 -0
  158. package/typechain-types/contracts/mocks/utils/mpc/MinimalProxy.ts +90 -0
  159. package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous128BitTestsContract.ts +302 -0
  160. package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous256BitTestsContract.ts +322 -0
  161. package/typechain-types/contracts/mocks/utils/mpc/MpcOperations128TestContract.ts +388 -0
  162. package/typechain-types/contracts/mocks/utils/mpc/MpcOperationsTestContract.ts +455 -0
  163. package/typechain-types/contracts/mocks/utils/mpc/Mux128TestsContract.ts +109 -0
  164. package/typechain-types/contracts/mocks/utils/mpc/Mux256TestsContract.ts +109 -0
  165. package/typechain-types/contracts/mocks/utils/mpc/OnBoard128TestsContract.ts +166 -0
  166. package/typechain-types/contracts/mocks/utils/mpc/OnBoard256TestsContract.ts +194 -0
  167. package/typechain-types/contracts/mocks/utils/mpc/PrivacyImplementationV1.ts +385 -0
  168. package/typechain-types/contracts/mocks/utils/mpc/PrivacyImplementationV2.ts +441 -0
  169. package/typechain-types/contracts/mocks/utils/mpc/PrivacyProxy.ts +201 -0
  170. package/typechain-types/contracts/mocks/utils/mpc/Random128TestsContract.ts +131 -0
  171. package/typechain-types/contracts/mocks/utils/mpc/Random256TestsContract.ts +131 -0
  172. package/typechain-types/contracts/mocks/utils/mpc/Shift128TestsContract.ts +142 -0
  173. package/typechain-types/contracts/mocks/utils/mpc/Shift256TestsContract.ts +142 -0
  174. package/typechain-types/contracts/mocks/utils/mpc/Transfer128TestsContract.ts +109 -0
  175. package/typechain-types/contracts/mocks/utils/mpc/Transfer256TestsContract.ts +109 -0
  176. package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance128TestsContract.ts +128 -0
  177. package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance256TestsContract.ts +128 -0
  178. package/typechain-types/contracts/mocks/utils/mpc/ValidateCiphertext128TestsContract.ts +198 -0
  179. package/typechain-types/contracts/mocks/utils/mpc/ValidateCiphertext256TestsContract.ts +182 -0
  180. package/typechain-types/contracts/mocks/utils/mpc/ValidateCiphertextTestsContract.ts +257 -0
  181. package/typechain-types/contracts/mocks/utils/mpc/index.ts +32 -0
  182. package/typechain-types/contracts/token/PrivateERC20/IPrivateERC20.ts +77 -60
  183. package/typechain-types/contracts/token/PrivateERC20/PrivateERC20.ts +77 -60
  184. package/typechain-types/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations.ts +111 -10
  185. package/typechain-types/factories/@openzeppelin/contracts/access/Ownable__factory.ts +74 -0
  186. package/typechain-types/factories/@openzeppelin/contracts/access/index.ts +4 -0
  187. package/typechain-types/factories/@openzeppelin/contracts/index.ts +1 -0
  188. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts +205 -0
  189. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit__factory.ts +100 -0
  190. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts +4 -0
  191. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts +5 -0
  192. package/typechain-types/factories/@openzeppelin/contracts/token/index.ts +1 -0
  193. package/typechain-types/factories/contracts/disperse/coinByRatio/FixedRatioCoinDisperser__factory.ts +759 -0
  194. package/typechain-types/factories/contracts/disperse/coinByRatio/index.ts +4 -0
  195. package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/IMintableERC20__factory.ts +43 -0
  196. package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/MintDisperser__factory.ts +185 -0
  197. package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/index.ts +5 -0
  198. package/typechain-types/factories/contracts/disperse/disperseToken/TokenDisperser__factory.ts +198 -0
  199. package/typechain-types/factories/contracts/disperse/disperseToken/index.ts +5 -0
  200. package/typechain-types/factories/contracts/disperse/index.ts +5 -0
  201. package/typechain-types/factories/contracts/index.ts +1 -0
  202. package/typechain-types/factories/contracts/mocks/access/DataPrivacyFramework/DataPrivacyFrameworkMock__factory.ts +1 -1
  203. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20Mock__factory.ts +179 -47
  204. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic128BitTestsContract__factory.ts +349 -0
  205. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic128TestsContract__factory.ts +330 -0
  206. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic256BitTestsContract__factory.ts +364 -0
  207. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic256TestsContract__factory.ts +330 -0
  208. package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract__factory.ts +1 -1
  209. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise128BitTestsContract__factory.ts +182 -0
  210. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise128TestsContract__factory.ts +184 -0
  211. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise256BitTestsContract__factory.ts +182 -0
  212. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise256TestsContract__factory.ts +184 -0
  213. package/typechain-types/factories/contracts/mocks/utils/mpc/BitwiseTestsContract__factory.ts +1 -1
  214. package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmetic128WithOverflowBitTestsContract__factory.ts +203 -0
  215. package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmetic256WithOverflowBitTestsContract__factory.ts +203 -0
  216. package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmeticWIthOverflowBitTestsContract.sol/CheckedArithmeticWithOverflowBitTestsContract__factory.ts +1 -1
  217. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison128BitTestsContract__factory.ts +255 -0
  218. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison128TestsContract__factory.ts +295 -0
  219. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1TestsContract__factory.ts +1 -1
  220. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison256BitTestsContract__factory.ts +255 -0
  221. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison256TestsContract__factory.ts +295 -0
  222. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison2TestsContract__factory.ts +1 -1
  223. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMax128TestsContract__factory.ts +147 -0
  224. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMax256TestsContract__factory.ts +147 -0
  225. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMaxTestsContract__factory.ts +1 -1
  226. package/typechain-types/factories/contracts/mocks/utils/mpc/MinimalImplementation__factory.ts +263 -0
  227. package/typechain-types/factories/contracts/mocks/utils/mpc/MinimalProxy__factory.ts +104 -0
  228. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous128BitTestsContract__factory.ts +332 -0
  229. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous1TestsContract__factory.ts +1 -1
  230. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous256BitTestsContract__factory.ts +380 -0
  231. package/typechain-types/factories/contracts/mocks/utils/mpc/MiscellaneousTestsContract__factory.ts +1 -1
  232. package/typechain-types/factories/contracts/mocks/utils/mpc/MpcOperations128TestContract__factory.ts +723 -0
  233. package/typechain-types/factories/contracts/mocks/utils/mpc/MpcOperationsTestContract__factory.ts +1410 -0
  234. package/typechain-types/factories/contracts/mocks/utils/mpc/Mux128TestsContract__factory.ts +115 -0
  235. package/typechain-types/factories/contracts/mocks/utils/mpc/Mux256TestsContract__factory.ts +115 -0
  236. package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract__factory.ts +1 -1
  237. package/typechain-types/factories/contracts/mocks/utils/mpc/OnBoard128TestsContract__factory.ts +175 -0
  238. package/typechain-types/factories/contracts/mocks/utils/mpc/OnBoard256TestsContract__factory.ts +205 -0
  239. package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyImplementationV1__factory.ts +521 -0
  240. package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyImplementationV2__factory.ts +648 -0
  241. package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyProxy__factory.ts +179 -0
  242. package/typechain-types/factories/contracts/mocks/utils/mpc/Random128TestsContract__factory.ts +131 -0
  243. package/typechain-types/factories/contracts/mocks/utils/mpc/Random256TestsContract__factory.ts +131 -0
  244. package/typechain-types/factories/contracts/mocks/utils/mpc/Shift128TestsContract__factory.ts +147 -0
  245. package/typechain-types/factories/contracts/mocks/utils/mpc/Shift256TestsContract__factory.ts +147 -0
  246. package/typechain-types/factories/contracts/mocks/utils/mpc/ShiftTestsContract__factory.ts +1 -1
  247. package/typechain-types/factories/contracts/mocks/utils/mpc/StringTestsContract__factory.ts +1 -1
  248. package/typechain-types/factories/contracts/mocks/utils/mpc/Transfer128TestsContract__factory.ts +135 -0
  249. package/typechain-types/factories/contracts/mocks/utils/mpc/Transfer256TestsContract__factory.ts +135 -0
  250. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferScalarTestsContract__factory.ts +1 -1
  251. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferTestsContract__factory.ts +1 -1
  252. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance128TestsContract__factory.ts +154 -0
  253. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance256TestsContract__factory.ts +154 -0
  254. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract__factory.ts +1 -1
  255. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract__factory.ts +1 -1
  256. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract__factory.ts +1 -1
  257. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract__factory.ts +1 -1
  258. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract__factory.ts +1 -1
  259. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract__factory.ts +1 -1
  260. package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertext128TestsContract__factory.ts +190 -0
  261. package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertext256TestsContract__factory.ts +210 -0
  262. package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertextTestsContract__factory.ts +260 -0
  263. package/typechain-types/factories/contracts/mocks/utils/mpc/index.ts +32 -0
  264. package/typechain-types/factories/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock__factory.ts +7 -7
  265. package/typechain-types/factories/contracts/token/PrivateERC20/IPrivateERC20__factory.ts +174 -42
  266. package/typechain-types/factories/contracts/token/PrivateERC20/PrivateERC20__factory.ts +174 -42
  267. package/typechain-types/factories/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations__factory.ts +126 -0
  268. package/typechain-types/hardhat.d.ts +702 -0
  269. package/typechain-types/index.ts +78 -0
  270. package/contracts/mocks/utils/mpc/README.md +0 -486
  271. package/contracts/package.json +0 -11
@@ -386,7 +386,7 @@ const _abi = [
386
386
  ] as const;
387
387
 
388
388
  const _bytecode =
389
- "0x608060405234801561001057600080fd5b50613308806100206000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063701251311161005057806370125131146100c1578063d7b0fe63146100d4578063f6029cb3146100e757600080fd5b80634717f97c1461006c5780636a3ae654146100ac575b600080fd5b60005460ff80821691610100810482169162010000909104165b6040805160ff948516815293909216602084015215159082015260600160405180910390f35b6100bf6100ba36600461317a565b6100fa565b005b6100866100cf366004613242565b610b69565b6100bf6100e236600461317a565b610e0a565b6100bf6100f536600461317a565b6112c6565b600080600061011688608001518960a0015189604001516126af565b9250925092506101258361276d565b63ffffffff168660ff1614801561014c57506101408261276d565b63ffffffff168560ff16145b8015610163575061015c81612810565b1515841515145b6101b45760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064015b60405180910390fd5b6101cb88600001518960a0015189604001516128a1565b919450925090506101db8361276d565b63ffffffff168660ff1614801561020257506101f68261276d565b63ffffffff168560ff16145b8015610219575061021281612810565b1515841515145b6102655760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b61027c8860800151896020015189604001516128bd565b9194509250905061028c8361276d565b63ffffffff168660ff161480156102b357506102a78261276d565b63ffffffff168560ff16145b80156102ca57506102c381612810565b1515841515145b6103165760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b61032d88604001518960a0015189604001516128d9565b9194509250905061033d8361276d565b63ffffffff168660ff1614801561036457506103588261276d565b63ffffffff168560ff16145b801561037b575061037481612810565b1515841515145b6103c75760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6103de8860800151896060015189604001516128f5565b919450925090506103ee8361276d565b63ffffffff168660ff1614801561041557506104098261276d565b63ffffffff168560ff16145b801561042c575061042581612810565b1515841515145b6104785760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b61048f88608001518960a001518960000151612911565b9194509250905061049f8361276d565b63ffffffff168660ff161480156104c657506104ba8261276d565b63ffffffff168560ff16145b80156104dd57506104d681612810565b1515841515145b6105295760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b875160a0890151885161053d92919061292d565b9194509250905061054d8361276d565b63ffffffff168660ff1614801561057457506105688261276d565b63ffffffff168560ff16145b801561058b575061058481612810565b1515841515145b6105d75760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6105ee886080015189602001518960000151612949565b919450925090506105fe8361276d565b63ffffffff168660ff1614801561062557506106198261276d565b63ffffffff168560ff16145b801561063c575061063581612810565b1515841515145b6106885760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b61069f88604001518960a001518960000151612965565b919450925090506106af8361276d565b63ffffffff168660ff161480156106d657506106ca8261276d565b63ffffffff168560ff16145b80156106ed57506106e681612810565b1515841515145b6107395760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b610750886080015189606001518960000151612982565b919450925090506107608361276d565b63ffffffff168660ff16148015610787575061077b8261276d565b63ffffffff168560ff16145b801561079e575061079781612810565b1515841515145b6107ea5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b61080188608001518960a00151896020015161299f565b919450925090506108118361276d565b63ffffffff168660ff16148015610838575061082c8261276d565b63ffffffff168560ff16145b801561084f575061084881612810565b1515841515145b61089b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6108b288600001518960a0015189602001516129bb565b919450925090506108c28361276d565b63ffffffff168660ff161480156108e957506108dd8261276d565b63ffffffff168560ff16145b801561090057506108f981612810565b1515841515145b61094c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6109638860800151896020015189602001516129d8565b919450925090506109738361276d565b63ffffffff168660ff1614801561099a575061098e8261276d565b63ffffffff168560ff16145b80156109b157506109aa81612810565b1515841515145b6109fd5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b610a1488604001518960a0015189602001516129f5565b91945092509050610a248361276d565b63ffffffff168660ff16148015610a4b5750610a3f8261276d565b63ffffffff168560ff16145b8015610a625750610a5b81612810565b1515841515145b610aae5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b610ac5886080015189606001518960200151612a11565b91945092509050610ad58361276d565b63ffffffff168660ff16148015610afc5750610af08261276d565b63ffffffff168560ff16145b8015610b135750610b0c81612810565b1515841515145b610b5f5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b5050505050505050565b6000806000610bb660405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b610beb6040518060a0016040528060008152602001600081526020016000815260200160008152602001600060ff1681525090565b610bf488612a2d565b8252610bff87612a2d565b6020830152610c1060ff8916612a96565b6040830152610c2160ff8816612a96565b6060830152610c3260ff8916612b00565b6080830152610c4360ff8816612b00565b60a0830152610c5460ff8916612b6c565b60c0830152610c6560ff8816612b6c565b60e0830152610c7386612a2d565b8152610c8160ff8716612a96565b6020820152610c9260ff8716612b00565b6040820152610ca360ff8716612b6c565b606082015260ff8616608082015281516020830151825160009283928392610ccc929190612bdc565b925092509250610cdb83612bf7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff92909216919091179055610d1682612bf7565b600060016101000a81548160ff021916908360ff160217905550610d3981612810565b60008054911515620100009081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff8416811792839055610d96938993899360ff9384169284169290921792610100820481169290910416610e0a565b600054610dbc908690869060ff80821691610100810482169162010000909104166100fa565b600054610de2908690869060ff80821691610100810482169162010000909104166112c6565b505060005460ff8082169b610100830482169b50620100009092041698509650505050505050565b6000806000610e26886040015189606001518960000151612c07565b925092509250610e3583612c23565b61ffff168660ff16148015610e585750610e4e82612c23565b61ffff168560ff16145b8015610e6f5750610e6881612810565b1515841515145b610ebb5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b875160608901518851610ecf929190612c33565b91945092509050610edf83612c23565b61ffff168660ff16148015610f025750610ef882612c23565b61ffff168560ff16145b8015610f195750610f1281612810565b1515841515145b610f655760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b610f7c886040015189602001518960000151612c4f565b91945092509050610f8c83612c23565b61ffff168660ff16148015610faf5750610fa582612c23565b61ffff168560ff16145b8015610fc65750610fbf81612810565b1515841515145b6110125760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b611029886040015189606001518960200151612c6b565b9194509250905061103983612c23565b61ffff168660ff1614801561105c575061105282612c23565b61ffff168560ff16145b8015611073575061106c81612810565b1515841515145b6110bf5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b6110d6886000015189606001518960200151612c86565b919450925090506110e683612c23565b61ffff168660ff1614801561110957506110ff82612c23565b61ffff168560ff16145b8015611120575061111981612810565b1515841515145b61116c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b611183886040015189602001518960200151612ca2565b9194509250905061119383612c23565b61ffff168660ff161480156111b657506111ac82612c23565b61ffff168560ff16145b80156111cd57506111c681612810565b1515841515145b6112195760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b611230886040015189606001518960000151612c07565b9194509250905061124083612c23565b61ffff168660ff16148015611263575061125982612c23565b61ffff168560ff16145b801561127a575061127381612810565b1515841515145b610b5f5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b60008060006112e28860c001518960e001518960600151612cbe565b9250925092506112f183612cd9565b67ffffffffffffffff168660ff16148015611320575061131082612cd9565b67ffffffffffffffff168560ff16145b8015611337575061133081612810565b1515841515145b6113835760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b61139a88600001518960e001518960600151612ce9565b919450925090506113aa83612cd9565b67ffffffffffffffff168660ff161480156113d957506113c982612cd9565b67ffffffffffffffff168560ff16145b80156113f057506113e981612810565b1515841515145b61143c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b6114538860c0015189602001518960600151612d05565b9194509250905061146383612cd9565b67ffffffffffffffff168660ff16148015611492575061148282612cd9565b67ffffffffffffffff168560ff16145b80156114a957506114a281612810565b1515841515145b6114f55760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b61150c88604001518960e001518960600151612d21565b9194509250905061151c83612cd9565b67ffffffffffffffff168660ff1614801561154b575061153b82612cd9565b67ffffffffffffffff168560ff16145b8015611562575061155b81612810565b1515841515145b6115ae5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b6115c58860c0015189606001518960600151612d3d565b919450925090506115d583612cd9565b67ffffffffffffffff168660ff1614801561160457506115f482612cd9565b67ffffffffffffffff168560ff16145b801561161b575061161481612810565b1515841515145b6116675760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b61167e88608001518960e001518960600151612d59565b9194509250905061168e83612cd9565b67ffffffffffffffff168660ff161480156116bd57506116ad82612cd9565b67ffffffffffffffff168560ff16145b80156116d457506116cd81612810565b1515841515145b6117205760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b6117378860c001518960a001518960600151612d75565b9194509250905061174783612cd9565b67ffffffffffffffff168660ff16148015611776575061176682612cd9565b67ffffffffffffffff168560ff16145b801561178d575061178681612810565b1515841515145b6117d95760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b6117f08860c001518960e001518960400151612d91565b9194509250905061180083612cd9565b67ffffffffffffffff168660ff1614801561182f575061181f82612cd9565b67ffffffffffffffff168560ff16145b8015611846575061183f81612810565b1515841515145b6118925760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6118a988600001518960e001518960400151612dad565b919450925090506118b983612cd9565b67ffffffffffffffff168660ff161480156118e857506118d882612cd9565b67ffffffffffffffff168560ff16145b80156118ff57506118f881612810565b1515841515145b61194b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6119628860c0015189602001518960400151612dca565b9194509250905061197283612cd9565b67ffffffffffffffff168660ff161480156119a1575061199182612cd9565b67ffffffffffffffff168560ff16145b80156119b857506119b181612810565b1515841515145b611a045760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b611a1b88604001518960e001518960400151612de7565b91945092509050611a2b83612cd9565b67ffffffffffffffff168660ff16148015611a5a5750611a4a82612cd9565b67ffffffffffffffff168560ff16145b8015611a715750611a6a81612810565b1515841515145b611abd5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b611ad48860c0015189606001518960400151612e04565b91945092509050611ae483612cd9565b67ffffffffffffffff168660ff16148015611b135750611b0382612cd9565b67ffffffffffffffff168560ff16145b8015611b2a5750611b2381612810565b1515841515145b611b765760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b611b8d88608001518960e001518960400151612e21565b91945092509050611b9d83612cd9565b67ffffffffffffffff168660ff16148015611bcc5750611bbc82612cd9565b67ffffffffffffffff168560ff16145b8015611be35750611bdc81612810565b1515841515145b611c2f5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b611c468860c001518960a001518960400151612e3d565b91945092509050611c5683612cd9565b67ffffffffffffffff168660ff16148015611c855750611c7582612cd9565b67ffffffffffffffff168560ff16145b8015611c9c5750611c9581612810565b1515841515145b611ce85760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b611cff8860c001518960e001518960000151612e59565b91945092509050611d0f83612cd9565b67ffffffffffffffff168660ff16148015611d3e5750611d2e82612cd9565b67ffffffffffffffff168560ff16145b8015611d555750611d4e81612810565b1515841515145b611da15760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b875160e08901518851611db5929190612e75565b91945092509050611dc583612cd9565b67ffffffffffffffff168660ff16148015611df45750611de482612cd9565b67ffffffffffffffff168560ff16145b8015611e0b5750611e0481612810565b1515841515145b611e575760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b611e6e8860c0015189602001518960000151612e91565b91945092509050611e7e83612cd9565b67ffffffffffffffff168660ff16148015611ead5750611e9d82612cd9565b67ffffffffffffffff168560ff16145b8015611ec45750611ebd81612810565b1515841515145b611f105760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b611f2788604001518960e001518960000151612ead565b91945092509050611f3783612cd9565b67ffffffffffffffff168660ff16148015611f665750611f5682612cd9565b67ffffffffffffffff168560ff16145b8015611f7d5750611f7681612810565b1515841515145b611fc95760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b611fe08860c0015189606001518960000151612eca565b91945092509050611ff083612cd9565b67ffffffffffffffff168660ff1614801561201f575061200f82612cd9565b67ffffffffffffffff168560ff16145b8015612036575061202f81612810565b1515841515145b6120825760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b61209988608001518960e001518960000151612ee7565b919450925090506120a983612cd9565b67ffffffffffffffff168660ff161480156120d857506120c882612cd9565b67ffffffffffffffff168560ff16145b80156120ef57506120e881612810565b1515841515145b61213b5760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b6121528860c001518960a001518960000151612f04565b9194509250905061216283612cd9565b67ffffffffffffffff168660ff16148015612191575061218182612cd9565b67ffffffffffffffff168560ff16145b80156121a857506121a181612810565b1515841515145b6121f45760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b61220b8860c001518960e001518960200151612f21565b9194509250905061221b83612cd9565b67ffffffffffffffff168660ff1614801561224a575061223a82612cd9565b67ffffffffffffffff168560ff16145b8015612261575061225a81612810565b1515841515145b6122ad5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b6122c488600001518960e001518960200151612f3d565b919450925090506122d483612cd9565b67ffffffffffffffff168660ff1614801561230357506122f382612cd9565b67ffffffffffffffff168560ff16145b801561231a575061231381612810565b1515841515145b6123665760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b61237d8860c0015189602001518960200151612f5a565b9194509250905061238d83612cd9565b67ffffffffffffffff168660ff161480156123bc57506123ac82612cd9565b67ffffffffffffffff168560ff16145b80156123d357506123cc81612810565b1515841515145b61241f5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b61243688604001518960e001518960200151612f77565b9194509250905061244683612cd9565b67ffffffffffffffff168660ff16148015612475575061246582612cd9565b67ffffffffffffffff168560ff16145b801561248c575061248581612810565b1515841515145b6124d85760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b6124ef8860c0015189606001518960200151612f93565b919450925090506124ff83612cd9565b67ffffffffffffffff168660ff1614801561252e575061251e82612cd9565b67ffffffffffffffff168560ff16145b8015612545575061253e81612810565b1515841515145b6125915760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b6125a888608001518960e001518960200151612faf565b919450925090506125b883612cd9565b67ffffffffffffffff168660ff161480156125e757506125d782612cd9565b67ffffffffffffffff168560ff16145b80156125fe57506125f781612810565b1515841515145b61264a5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b6126618860c001518960a001518960200151612fcc565b9194509250905061267183612cd9565b67ffffffffffffffff168660ff16148015611263575061269082612cd9565b67ffffffffffffffff168560ff1614801561127a575061127381612810565b6000808080808060646356c72d286126ca6003808086612fe5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b81168252919091166004820152602481018c9052604481018b9052606481018a90526084016060604051808303816000875af1158015612737573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275b9190613285565b919b909a509098509650505050505050565b60006064630cfed56160035b60f81b846040518363ffffffff1660e01b81526004016127c79291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6020604051808303816000875af11580156127e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061280a91906132e2565b92915050565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af1158015612874573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061289891906132e2565b15159392505050565b6000808080808060646356c72d286126ca600160038086612fe5565b6000808080808060646356c72d286126ca600360018186612fe5565b6000808080808060646356c72d286126ca600260038086612fe5565b6000808080808060646356c72d286126ca600360028186612fe5565b6000808080808060646356c72d286126ca600380600186612fe5565b6000808080808060646356c72d286126ca600160038186612fe5565b6000808080808060646356c72d286126ca600360018086612fe5565b6000808080808060646356c72d286126ca60026003600186612fe5565b6000808080808060646356c72d286126ca60036002600186612fe5565b6000808080808060646356c72d286126ca600380600286612fe5565b6000808080808060646356c72d286126ca60016003600286612fe5565b6000808080808060646356c72d286126ca60036001600286612fe5565b6000808080808060646356c72d286126ca600260038186612fe5565b6000808080808060646356c72d286126ca600360028086612fe5565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0100000000000000000000000000000000000000000000000000000000000000600482015260ff8216602482015260009060649063d9b60b60906044016127c7565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0200000000000000000000000000000000000000000000000000000000000000600482015261ffff8216602482015260009060649063d9b60b60906044016127c7565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0300000000000000000000000000000000000000000000000000000000000000600482015263ffffffff8216602482015260009060649063d9b60b60906044016127c7565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015267ffffffffffffffff8216602482015260009060649063d9b60b60906044016127c7565b6000808080808060646356c72d286126ca6001808086612fe5565b60006064630cfed5616001612779565b6000808080808060646356c72d286126ca600280600186612fe5565b60006064630cfed5616002612779565b6000808080808060646356c72d286126ca600160028186612fe5565b6000808080808060646356c72d286126ca600260018086612fe5565b6000808080808060646356c72d286126ca6002808086612fe5565b6000808080808060646356c72d286126ca600160028086612fe5565b6000808080808060646356c72d286126ca600260018186612fe5565b6000808080808060646356c72d286126ca6004808086612fe5565b60006064630cfed5616004612779565b6000808080808060646356c72d286126ca600160048086612fe5565b6000808080808060646356c72d286126ca600460018186612fe5565b6000808080808060646356c72d286126ca600260048086612fe5565b6000808080808060646356c72d286126ca600460028186612fe5565b6000808080808060646356c72d286126ca600360048086612fe5565b6000808080808060646356c72d286126ca600460038186612fe5565b6000808080808060646356c72d286126ca600480600386612fe5565b6000808080808060646356c72d286126ca60016004600386612fe5565b6000808080808060646356c72d286126ca60046001600386612fe5565b6000808080808060646356c72d286126ca60026004600386612fe5565b6000808080808060646356c72d286126ca60046002600386612fe5565b6000808080808060646356c72d286126ca600360048186612fe5565b6000808080808060646356c72d286126ca600460038086612fe5565b6000808080808060646356c72d286126ca600480600186612fe5565b6000808080808060646356c72d286126ca600160048186612fe5565b6000808080808060646356c72d286126ca600460018086612fe5565b6000808080808060646356c72d286126ca60026004600186612fe5565b6000808080808060646356c72d286126ca60046002600186612fe5565b6000808080808060646356c72d286126ca60036004600186612fe5565b6000808080808060646356c72d286126ca60046003600186612fe5565b6000808080808060646356c72d286126ca600480600286612fe5565b6000808080808060646356c72d286126ca60016004600286612fe5565b6000808080808060646356c72d286126ca60046001600286612fe5565b6000808080808060646356c72d286126ca600260048186612fe5565b6000808080808060646356c72d286126ca600460028086612fe5565b6000808080808060646356c72d286126ca60036004600286612fe5565b6000808080808060646356c72d286126ca600460036002865b6000816002811115612ff957612ff96132b3565b60ff166008846004811115613010576130106132b3565b61ffff16901b61ffff16601086600481111561302e5761302e6132b3565b62ffffff16901b62ffffff16601888600481111561304e5761304e6132b3565b63ffffffff16901b17171760e01b95945050505050565b604051610100810167ffffffffffffffff811182821017156130b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b803560ff811681146130c757600080fd5b919050565b600060a082840312156130de57600080fd5b60405160a0810181811067ffffffffffffffff82111715613128577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b80604052508091508235815260208301356020820152604083013560408201526060830135606082015261315e608084016130b6565b60808201525092915050565b803580151581146130c757600080fd5b600080600080600085870361020081121561319457600080fd5b610100808212156131a457600080fd5b6131ac613065565b9150873582526020880135602083015260408801356040830152606088013560608301526080880135608083015260a088013560a083015260c088013560c083015260e088013560e083015281965061320789828a016130cc565b955050506132186101a087016130b6565b92506132276101c087016130b6565b91506132366101e0870161316a565b90509295509295909350565b60008060006060848603121561325757600080fd5b613260846130b6565b925061326e602085016130b6565b915061327c604085016130b6565b90509250925092565b60008060006060848603121561329a57600080fd5b8351925060208401519150604084015190509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000602082840312156132f457600080fd5b505191905056fea164736f6c6343000813000a";
389
+ "0x608060405234801561001057600080fd5b50613308806100206000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063701251311161005057806370125131146100c1578063d7b0fe63146100d4578063f6029cb3146100e757600080fd5b80634717f97c1461006c5780636a3ae654146100ac575b600080fd5b60005460ff80821691610100810482169162010000909104165b6040805160ff948516815293909216602084015215159082015260600160405180910390f35b6100bf6100ba36600461317a565b6100fa565b005b6100866100cf366004613242565b610b69565b6100bf6100e236600461317a565b610e0a565b6100bf6100f536600461317a565b6112c6565b600080600061011688608001518960a0015189604001516126af565b9250925092506101258361276d565b63ffffffff168660ff1614801561014c57506101408261276d565b63ffffffff168560ff16145b8015610163575061015c81612810565b1515841515145b6101b45760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064015b60405180910390fd5b6101cb88600001518960a0015189604001516128a1565b919450925090506101db8361276d565b63ffffffff168660ff1614801561020257506101f68261276d565b63ffffffff168560ff16145b8015610219575061021281612810565b1515841515145b6102655760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b61027c8860800151896020015189604001516128bd565b9194509250905061028c8361276d565b63ffffffff168660ff161480156102b357506102a78261276d565b63ffffffff168560ff16145b80156102ca57506102c381612810565b1515841515145b6103165760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b61032d88604001518960a0015189604001516128d9565b9194509250905061033d8361276d565b63ffffffff168660ff1614801561036457506103588261276d565b63ffffffff168560ff16145b801561037b575061037481612810565b1515841515145b6103c75760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6103de8860800151896060015189604001516128f5565b919450925090506103ee8361276d565b63ffffffff168660ff1614801561041557506104098261276d565b63ffffffff168560ff16145b801561042c575061042581612810565b1515841515145b6104785760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b61048f88608001518960a001518960000151612911565b9194509250905061049f8361276d565b63ffffffff168660ff161480156104c657506104ba8261276d565b63ffffffff168560ff16145b80156104dd57506104d681612810565b1515841515145b6105295760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b875160a0890151885161053d92919061292d565b9194509250905061054d8361276d565b63ffffffff168660ff1614801561057457506105688261276d565b63ffffffff168560ff16145b801561058b575061058481612810565b1515841515145b6105d75760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6105ee886080015189602001518960000151612949565b919450925090506105fe8361276d565b63ffffffff168660ff1614801561062557506106198261276d565b63ffffffff168560ff16145b801561063c575061063581612810565b1515841515145b6106885760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b61069f88604001518960a001518960000151612965565b919450925090506106af8361276d565b63ffffffff168660ff161480156106d657506106ca8261276d565b63ffffffff168560ff16145b80156106ed57506106e681612810565b1515841515145b6107395760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b610750886080015189606001518960000151612982565b919450925090506107608361276d565b63ffffffff168660ff16148015610787575061077b8261276d565b63ffffffff168560ff16145b801561079e575061079781612810565b1515841515145b6107ea5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b61080188608001518960a00151896020015161299f565b919450925090506108118361276d565b63ffffffff168660ff16148015610838575061082c8261276d565b63ffffffff168560ff16145b801561084f575061084881612810565b1515841515145b61089b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6108b288600001518960a0015189602001516129bb565b919450925090506108c28361276d565b63ffffffff168660ff161480156108e957506108dd8261276d565b63ffffffff168560ff16145b801561090057506108f981612810565b1515841515145b61094c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6109638860800151896020015189602001516129d8565b919450925090506109738361276d565b63ffffffff168660ff1614801561099a575061098e8261276d565b63ffffffff168560ff16145b80156109b157506109aa81612810565b1515841515145b6109fd5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b610a1488604001518960a0015189602001516129f5565b91945092509050610a248361276d565b63ffffffff168660ff16148015610a4b5750610a3f8261276d565b63ffffffff168560ff16145b8015610a625750610a5b81612810565b1515841515145b610aae5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b610ac5886080015189606001518960200151612a11565b91945092509050610ad58361276d565b63ffffffff168660ff16148015610afc5750610af08261276d565b63ffffffff168560ff16145b8015610b135750610b0c81612810565b1515841515145b610b5f5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b5050505050505050565b6000806000610bb660405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b610beb6040518060a0016040528060008152602001600081526020016000815260200160008152602001600060ff1681525090565b610bf488612a2d565b8252610bff87612a2d565b6020830152610c1060ff8916612a96565b6040830152610c2160ff8816612a96565b6060830152610c3260ff8916612b00565b6080830152610c4360ff8816612b00565b60a0830152610c5460ff8916612b6c565b60c0830152610c6560ff8816612b6c565b60e0830152610c7386612a2d565b8152610c8160ff8716612a96565b6020820152610c9260ff8716612b00565b6040820152610ca360ff8716612b6c565b606082015260ff8616608082015281516020830151825160009283928392610ccc929190612bdc565b925092509250610cdb83612bf7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff92909216919091179055610d1682612bf7565b600060016101000a81548160ff021916908360ff160217905550610d3981612810565b60008054911515620100009081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff8416811792839055610d96938993899360ff9384169284169290921792610100820481169290910416610e0a565b600054610dbc908690869060ff80821691610100810482169162010000909104166100fa565b600054610de2908690869060ff80821691610100810482169162010000909104166112c6565b505060005460ff8082169b610100830482169b50620100009092041698509650505050505050565b6000806000610e26886040015189606001518960000151612c07565b925092509250610e3583612c23565b61ffff168660ff16148015610e585750610e4e82612c23565b61ffff168560ff16145b8015610e6f5750610e6881612810565b1515841515145b610ebb5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b875160608901518851610ecf929190612c33565b91945092509050610edf83612c23565b61ffff168660ff16148015610f025750610ef882612c23565b61ffff168560ff16145b8015610f195750610f1281612810565b1515841515145b610f655760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b610f7c886040015189602001518960000151612c4f565b91945092509050610f8c83612c23565b61ffff168660ff16148015610faf5750610fa582612c23565b61ffff168560ff16145b8015610fc65750610fbf81612810565b1515841515145b6110125760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b611029886040015189606001518960200151612c6b565b9194509250905061103983612c23565b61ffff168660ff1614801561105c575061105282612c23565b61ffff168560ff16145b8015611073575061106c81612810565b1515841515145b6110bf5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b6110d6886000015189606001518960200151612c86565b919450925090506110e683612c23565b61ffff168660ff1614801561110957506110ff82612c23565b61ffff168560ff16145b8015611120575061111981612810565b1515841515145b61116c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b611183886040015189602001518960200151612ca2565b9194509250905061119383612c23565b61ffff168660ff161480156111b657506111ac82612c23565b61ffff168560ff16145b80156111cd57506111c681612810565b1515841515145b6112195760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b611230886040015189606001518960000151612c07565b9194509250905061124083612c23565b61ffff168660ff16148015611263575061125982612c23565b61ffff168560ff16145b801561127a575061127381612810565b1515841515145b610b5f5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b60008060006112e28860c001518960e001518960600151612cbe565b9250925092506112f183612cd9565b67ffffffffffffffff168660ff16148015611320575061131082612cd9565b67ffffffffffffffff168560ff16145b8015611337575061133081612810565b1515841515145b6113835760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b61139a88600001518960e001518960600151612ce9565b919450925090506113aa83612cd9565b67ffffffffffffffff168660ff161480156113d957506113c982612cd9565b67ffffffffffffffff168560ff16145b80156113f057506113e981612810565b1515841515145b61143c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b6114538860c0015189602001518960600151612d05565b9194509250905061146383612cd9565b67ffffffffffffffff168660ff16148015611492575061148282612cd9565b67ffffffffffffffff168560ff16145b80156114a957506114a281612810565b1515841515145b6114f55760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b61150c88604001518960e001518960600151612d21565b9194509250905061151c83612cd9565b67ffffffffffffffff168660ff1614801561154b575061153b82612cd9565b67ffffffffffffffff168560ff16145b8015611562575061155b81612810565b1515841515145b6115ae5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b6115c58860c0015189606001518960600151612d3d565b919450925090506115d583612cd9565b67ffffffffffffffff168660ff1614801561160457506115f482612cd9565b67ffffffffffffffff168560ff16145b801561161b575061161481612810565b1515841515145b6116675760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b61167e88608001518960e001518960600151612d59565b9194509250905061168e83612cd9565b67ffffffffffffffff168660ff161480156116bd57506116ad82612cd9565b67ffffffffffffffff168560ff16145b80156116d457506116cd81612810565b1515841515145b6117205760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b6117378860c001518960a001518960600151612d75565b9194509250905061174783612cd9565b67ffffffffffffffff168660ff16148015611776575061176682612cd9565b67ffffffffffffffff168560ff16145b801561178d575061178681612810565b1515841515145b6117d95760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b6117f08860c001518960e001518960400151612d91565b9194509250905061180083612cd9565b67ffffffffffffffff168660ff1614801561182f575061181f82612cd9565b67ffffffffffffffff168560ff16145b8015611846575061183f81612810565b1515841515145b6118925760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6118a988600001518960e001518960400151612dad565b919450925090506118b983612cd9565b67ffffffffffffffff168660ff161480156118e857506118d882612cd9565b67ffffffffffffffff168560ff16145b80156118ff57506118f881612810565b1515841515145b61194b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6119628860c0015189602001518960400151612dca565b9194509250905061197283612cd9565b67ffffffffffffffff168660ff161480156119a1575061199182612cd9565b67ffffffffffffffff168560ff16145b80156119b857506119b181612810565b1515841515145b611a045760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b611a1b88604001518960e001518960400151612de7565b91945092509050611a2b83612cd9565b67ffffffffffffffff168660ff16148015611a5a5750611a4a82612cd9565b67ffffffffffffffff168560ff16145b8015611a715750611a6a81612810565b1515841515145b611abd5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b611ad48860c0015189606001518960400151612e04565b91945092509050611ae483612cd9565b67ffffffffffffffff168660ff16148015611b135750611b0382612cd9565b67ffffffffffffffff168560ff16145b8015611b2a5750611b2381612810565b1515841515145b611b765760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b611b8d88608001518960e001518960400151612e21565b91945092509050611b9d83612cd9565b67ffffffffffffffff168660ff16148015611bcc5750611bbc82612cd9565b67ffffffffffffffff168560ff16145b8015611be35750611bdc81612810565b1515841515145b611c2f5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b611c468860c001518960a001518960400151612e3d565b91945092509050611c5683612cd9565b67ffffffffffffffff168660ff16148015611c855750611c7582612cd9565b67ffffffffffffffff168560ff16145b8015611c9c5750611c9581612810565b1515841515145b611ce85760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b611cff8860c001518960e001518960000151612e59565b91945092509050611d0f83612cd9565b67ffffffffffffffff168660ff16148015611d3e5750611d2e82612cd9565b67ffffffffffffffff168560ff16145b8015611d555750611d4e81612810565b1515841515145b611da15760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b875160e08901518851611db5929190612e75565b91945092509050611dc583612cd9565b67ffffffffffffffff168660ff16148015611df45750611de482612cd9565b67ffffffffffffffff168560ff16145b8015611e0b5750611e0481612810565b1515841515145b611e575760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b611e6e8860c0015189602001518960000151612e91565b91945092509050611e7e83612cd9565b67ffffffffffffffff168660ff16148015611ead5750611e9d82612cd9565b67ffffffffffffffff168560ff16145b8015611ec45750611ebd81612810565b1515841515145b611f105760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b611f2788604001518960e001518960000151612ead565b91945092509050611f3783612cd9565b67ffffffffffffffff168660ff16148015611f665750611f5682612cd9565b67ffffffffffffffff168560ff16145b8015611f7d5750611f7681612810565b1515841515145b611fc95760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b611fe08860c0015189606001518960000151612eca565b91945092509050611ff083612cd9565b67ffffffffffffffff168660ff1614801561201f575061200f82612cd9565b67ffffffffffffffff168560ff16145b8015612036575061202f81612810565b1515841515145b6120825760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b61209988608001518960e001518960000151612ee7565b919450925090506120a983612cd9565b67ffffffffffffffff168660ff161480156120d857506120c882612cd9565b67ffffffffffffffff168560ff16145b80156120ef57506120e881612810565b1515841515145b61213b5760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b6121528860c001518960a001518960000151612f04565b9194509250905061216283612cd9565b67ffffffffffffffff168660ff16148015612191575061218182612cd9565b67ffffffffffffffff168560ff16145b80156121a857506121a181612810565b1515841515145b6121f45760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b61220b8860c001518960e001518960200151612f21565b9194509250905061221b83612cd9565b67ffffffffffffffff168660ff1614801561224a575061223a82612cd9565b67ffffffffffffffff168560ff16145b8015612261575061225a81612810565b1515841515145b6122ad5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b6122c488600001518960e001518960200151612f3d565b919450925090506122d483612cd9565b67ffffffffffffffff168660ff1614801561230357506122f382612cd9565b67ffffffffffffffff168560ff16145b801561231a575061231381612810565b1515841515145b6123665760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b61237d8860c0015189602001518960200151612f5a565b9194509250905061238d83612cd9565b67ffffffffffffffff168660ff161480156123bc57506123ac82612cd9565b67ffffffffffffffff168560ff16145b80156123d357506123cc81612810565b1515841515145b61241f5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b61243688604001518960e001518960200151612f77565b9194509250905061244683612cd9565b67ffffffffffffffff168660ff16148015612475575061246582612cd9565b67ffffffffffffffff168560ff16145b801561248c575061248581612810565b1515841515145b6124d85760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b6124ef8860c0015189606001518960200151612f93565b919450925090506124ff83612cd9565b67ffffffffffffffff168660ff1614801561252e575061251e82612cd9565b67ffffffffffffffff168560ff16145b8015612545575061253e81612810565b1515841515145b6125915760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b6125a888608001518960e001518960200151612faf565b919450925090506125b883612cd9565b67ffffffffffffffff168660ff161480156125e757506125d782612cd9565b67ffffffffffffffff168560ff16145b80156125fe57506125f781612810565b1515841515145b61264a5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b6126618860c001518960a001518960200151612fcc565b9194509250905061267183612cd9565b67ffffffffffffffff168660ff16148015611263575061269082612cd9565b67ffffffffffffffff168560ff1614801561127a575061127381612810565b6000808080808060646356c72d286126ca6003808086612fe5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b81168252919091166004820152602481018c9052604481018b9052606481018a90526084016060604051808303816000875af1158015612737573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275b9190613285565b919b909a509098509650505050505050565b60006064630cfed56160035b60f81b846040518363ffffffff1660e01b81526004016127c79291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6020604051808303816000875af11580156127e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061280a91906132e2565b92915050565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af1158015612874573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061289891906132e2565b15159392505050565b6000808080808060646356c72d286126ca600160038086612fe5565b6000808080808060646356c72d286126ca600360018186612fe5565b6000808080808060646356c72d286126ca600260038086612fe5565b6000808080808060646356c72d286126ca600360028186612fe5565b6000808080808060646356c72d286126ca600380600186612fe5565b6000808080808060646356c72d286126ca600160038186612fe5565b6000808080808060646356c72d286126ca600360018086612fe5565b6000808080808060646356c72d286126ca60026003600186612fe5565b6000808080808060646356c72d286126ca60036002600186612fe5565b6000808080808060646356c72d286126ca600380600286612fe5565b6000808080808060646356c72d286126ca60016003600286612fe5565b6000808080808060646356c72d286126ca60036001600286612fe5565b6000808080808060646356c72d286126ca600260038186612fe5565b6000808080808060646356c72d286126ca600360028086612fe5565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0100000000000000000000000000000000000000000000000000000000000000600482015260ff8216602482015260009060649063d9b60b60906044016127c7565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0200000000000000000000000000000000000000000000000000000000000000600482015261ffff8216602482015260009060649063d9b60b60906044016127c7565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0300000000000000000000000000000000000000000000000000000000000000600482015263ffffffff8216602482015260009060649063d9b60b60906044016127c7565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015267ffffffffffffffff8216602482015260009060649063d9b60b60906044016127c7565b6000808080808060646356c72d286126ca6001808086612fe5565b60006064630cfed5616001612779565b6000808080808060646356c72d286126ca600280600186612fe5565b60006064630cfed5616002612779565b6000808080808060646356c72d286126ca600160028186612fe5565b6000808080808060646356c72d286126ca600260018086612fe5565b6000808080808060646356c72d286126ca6002808086612fe5565b6000808080808060646356c72d286126ca600160028086612fe5565b6000808080808060646356c72d286126ca600260018186612fe5565b6000808080808060646356c72d286126ca6004808086612fe5565b60006064630cfed5616004612779565b6000808080808060646356c72d286126ca600160048086612fe5565b6000808080808060646356c72d286126ca600460018186612fe5565b6000808080808060646356c72d286126ca600260048086612fe5565b6000808080808060646356c72d286126ca600460028186612fe5565b6000808080808060646356c72d286126ca600360048086612fe5565b6000808080808060646356c72d286126ca600460038186612fe5565b6000808080808060646356c72d286126ca600480600386612fe5565b6000808080808060646356c72d286126ca60016004600386612fe5565b6000808080808060646356c72d286126ca60046001600386612fe5565b6000808080808060646356c72d286126ca60026004600386612fe5565b6000808080808060646356c72d286126ca60046002600386612fe5565b6000808080808060646356c72d286126ca600360048186612fe5565b6000808080808060646356c72d286126ca600460038086612fe5565b6000808080808060646356c72d286126ca600480600186612fe5565b6000808080808060646356c72d286126ca600160048186612fe5565b6000808080808060646356c72d286126ca600460018086612fe5565b6000808080808060646356c72d286126ca60026004600186612fe5565b6000808080808060646356c72d286126ca60046002600186612fe5565b6000808080808060646356c72d286126ca60036004600186612fe5565b6000808080808060646356c72d286126ca60046003600186612fe5565b6000808080808060646356c72d286126ca600480600286612fe5565b6000808080808060646356c72d286126ca60016004600286612fe5565b6000808080808060646356c72d286126ca60046001600286612fe5565b6000808080808060646356c72d286126ca600260048186612fe5565b6000808080808060646356c72d286126ca600460028086612fe5565b6000808080808060646356c72d286126ca60036004600286612fe5565b6000808080808060646356c72d286126ca600460036002865b6000816002811115612ff957612ff96132b3565b60ff166008846006811115613010576130106132b3565b61ffff16901b61ffff16601086600681111561302e5761302e6132b3565b62ffffff16901b62ffffff16601888600681111561304e5761304e6132b3565b63ffffffff16901b17171760e01b95945050505050565b604051610100810167ffffffffffffffff811182821017156130b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b803560ff811681146130c757600080fd5b919050565b600060a082840312156130de57600080fd5b60405160a0810181811067ffffffffffffffff82111715613128577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b80604052508091508235815260208301356020820152604083013560408201526060830135606082015261315e608084016130b6565b60808201525092915050565b803580151581146130c757600080fd5b600080600080600085870361020081121561319457600080fd5b610100808212156131a457600080fd5b6131ac613065565b9150873582526020880135602083015260408801356040830152606088013560608301526080880135608083015260a088013560a083015260c088013560c083015260e088013560e083015281965061320789828a016130cc565b955050506132186101a087016130b6565b92506132276101c087016130b6565b91506132366101e0870161316a565b90509295509295909350565b60008060006060848603121561325757600080fd5b613260846130b6565b925061326e602085016130b6565b915061327c604085016130b6565b90509250925092565b60008060006060848603121561329a57600080fd5b8351925060208401519150604084015190509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000602082840312156132f457600080fd5b505191905056fea164736f6c6343000813000a";
390
390
 
391
391
  type TransferTestsContractConstructorParams =
392
392
  | [signer?: Signer]
@@ -0,0 +1,154 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import {
5
+ Contract,
6
+ ContractFactory,
7
+ ContractTransactionResponse,
8
+ Interface,
9
+ } from "ethers";
10
+ import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers";
11
+ import type { NonPayableOverrides } from "../../../../../common";
12
+ import type {
13
+ TransferWithAllowance128TestsContract,
14
+ TransferWithAllowance128TestsContractInterface,
15
+ } from "../../../../../contracts/mocks/utils/mpc/TransferWithAllowance128TestsContract";
16
+
17
+ const _abi = [
18
+ {
19
+ inputs: [],
20
+ name: "getResults",
21
+ outputs: [
22
+ {
23
+ internalType: "uint128",
24
+ name: "",
25
+ type: "uint128",
26
+ },
27
+ {
28
+ internalType: "uint128",
29
+ name: "",
30
+ type: "uint128",
31
+ },
32
+ {
33
+ internalType: "bool",
34
+ name: "",
35
+ type: "bool",
36
+ },
37
+ {
38
+ internalType: "uint128",
39
+ name: "",
40
+ type: "uint128",
41
+ },
42
+ ],
43
+ stateMutability: "view",
44
+ type: "function",
45
+ },
46
+ {
47
+ inputs: [
48
+ {
49
+ internalType: "uint128",
50
+ name: "a",
51
+ type: "uint128",
52
+ },
53
+ {
54
+ internalType: "uint128",
55
+ name: "b",
56
+ type: "uint128",
57
+ },
58
+ {
59
+ internalType: "uint128",
60
+ name: "amount",
61
+ type: "uint128",
62
+ },
63
+ {
64
+ internalType: "uint128",
65
+ name: "allowance",
66
+ type: "uint128",
67
+ },
68
+ ],
69
+ name: "transferWithAllowanceTest",
70
+ outputs: [
71
+ {
72
+ internalType: "uint128",
73
+ name: "",
74
+ type: "uint128",
75
+ },
76
+ {
77
+ internalType: "uint128",
78
+ name: "",
79
+ type: "uint128",
80
+ },
81
+ {
82
+ internalType: "bool",
83
+ name: "",
84
+ type: "bool",
85
+ },
86
+ {
87
+ internalType: "uint128",
88
+ name: "",
89
+ type: "uint128",
90
+ },
91
+ ],
92
+ stateMutability: "nonpayable",
93
+ type: "function",
94
+ },
95
+ ] as const;
96
+
97
+ const _bytecode =
98
+ "0x608060405234801561001057600080fd5b506106ed806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806342568eca1461003b5780634717f97c1461008b575b600080fd5b61004e61004936600461060e565b6100ce565b604080516fffffffffffffffffffffffffffffffff9586168152938516602085015291151583830152909216606082015290519081900360800190f35b6000546001546fffffffffffffffffffffffffffffffff80831692700100000000000000000000000000000000900481169160ff8116916101009091041661004e565b60008060008060006100df896102a4565b905060006100ec896102a4565b905060006100f9896102a4565b90506000610106896102a4565b905060008060008061011a88888888610361565b935093509350935061012b8461044c565b600080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790556101758361044c565b600080546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790556101b1826104b3565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790556101e98161044c565b6001806101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060008054906101000a90046fffffffffffffffffffffffffffffffff16600060109054906101000a90046fffffffffffffffffffffffffffffffff16600160009054906101000a900460ff1660018054906101000a90046fffffffffffffffffffffffffffffffff169b509b509b509b505050505050505050945094509450949050565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f050000000000000000000000000000000000000000000000000000000000000060048201526fffffffffffffffffffffffffffffffff8216602482015260009060649063d9b60b60906044015b6020604051808303816000875af1158015610337573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035b9190610691565b92915050565b600080808080808080606463c2ff267a61037f600580808087610544565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffffffff0000000000000000000000000000000000000000000000000000009091166004820152602481018f9052604481018e9052606481018d9052608481018c905260a4016080604051808303816000875af1158015610412573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043691906106aa565b929f919e509c50909a5098505050505050505050565b6040517f0cfed5610000000000000000000000000000000000000000000000000000000081527f0500000000000000000000000000000000000000000000000000000000000000600482015260248101829052600090606490630cfed56190604401610318565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af1158015610517573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053b9190610691565b15159392505050565b600081600281111561055857610558610662565b60ff16600884600681111561056f5761056f610662565b61ffff16901b61ffff16601086600681111561058d5761058d610662565b62ffffff16901b62ffffff1660188860068111156105ad576105ad610662565b63ffffffff16901b63ffffffff1660208a60068111156105cf576105cf610662565b64ffffffffff16901b1717171760d81b9695505050505050565b80356fffffffffffffffffffffffffffffffff8116811461060957600080fd5b919050565b6000806000806080858703121561062457600080fd5b61062d856105e9565b935061063b602086016105e9565b9250610649604086016105e9565b9150610657606086016105e9565b905092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000602082840312156106a357600080fd5b5051919050565b600080600080608085870312156106c057600080fd5b50508251602084015160408501516060909501519196909550909250905056fea164736f6c6343000813000a";
99
+
100
+ type TransferWithAllowance128TestsContractConstructorParams =
101
+ | [signer?: Signer]
102
+ | ConstructorParameters<typeof ContractFactory>;
103
+
104
+ const isSuperArgs = (
105
+ xs: TransferWithAllowance128TestsContractConstructorParams
106
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
107
+
108
+ export class TransferWithAllowance128TestsContract__factory extends ContractFactory {
109
+ constructor(...args: TransferWithAllowance128TestsContractConstructorParams) {
110
+ if (isSuperArgs(args)) {
111
+ super(...args);
112
+ } else {
113
+ super(_abi, _bytecode, args[0]);
114
+ }
115
+ }
116
+
117
+ override getDeployTransaction(
118
+ overrides?: NonPayableOverrides & { from?: string }
119
+ ): Promise<ContractDeployTransaction> {
120
+ return super.getDeployTransaction(overrides || {});
121
+ }
122
+ override deploy(overrides?: NonPayableOverrides & { from?: string }) {
123
+ return super.deploy(overrides || {}) as Promise<
124
+ TransferWithAllowance128TestsContract & {
125
+ deploymentTransaction(): ContractTransactionResponse;
126
+ }
127
+ >;
128
+ }
129
+ override connect(
130
+ runner: ContractRunner | null
131
+ ): TransferWithAllowance128TestsContract__factory {
132
+ return super.connect(
133
+ runner
134
+ ) as TransferWithAllowance128TestsContract__factory;
135
+ }
136
+
137
+ static readonly bytecode = _bytecode;
138
+ static readonly abi = _abi;
139
+ static createInterface(): TransferWithAllowance128TestsContractInterface {
140
+ return new Interface(
141
+ _abi
142
+ ) as TransferWithAllowance128TestsContractInterface;
143
+ }
144
+ static connect(
145
+ address: string,
146
+ runner?: ContractRunner | null
147
+ ): TransferWithAllowance128TestsContract {
148
+ return new Contract(
149
+ address,
150
+ _abi,
151
+ runner
152
+ ) as unknown as TransferWithAllowance128TestsContract;
153
+ }
154
+ }
@@ -0,0 +1,154 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import {
5
+ Contract,
6
+ ContractFactory,
7
+ ContractTransactionResponse,
8
+ Interface,
9
+ } from "ethers";
10
+ import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers";
11
+ import type { NonPayableOverrides } from "../../../../../common";
12
+ import type {
13
+ TransferWithAllowance256TestsContract,
14
+ TransferWithAllowance256TestsContractInterface,
15
+ } from "../../../../../contracts/mocks/utils/mpc/TransferWithAllowance256TestsContract";
16
+
17
+ const _abi = [
18
+ {
19
+ inputs: [],
20
+ name: "getResults",
21
+ outputs: [
22
+ {
23
+ internalType: "uint256",
24
+ name: "",
25
+ type: "uint256",
26
+ },
27
+ {
28
+ internalType: "uint256",
29
+ name: "",
30
+ type: "uint256",
31
+ },
32
+ {
33
+ internalType: "bool",
34
+ name: "",
35
+ type: "bool",
36
+ },
37
+ {
38
+ internalType: "uint256",
39
+ name: "",
40
+ type: "uint256",
41
+ },
42
+ ],
43
+ stateMutability: "view",
44
+ type: "function",
45
+ },
46
+ {
47
+ inputs: [
48
+ {
49
+ internalType: "uint256",
50
+ name: "a",
51
+ type: "uint256",
52
+ },
53
+ {
54
+ internalType: "uint256",
55
+ name: "b",
56
+ type: "uint256",
57
+ },
58
+ {
59
+ internalType: "uint256",
60
+ name: "amount",
61
+ type: "uint256",
62
+ },
63
+ {
64
+ internalType: "uint256",
65
+ name: "allowance",
66
+ type: "uint256",
67
+ },
68
+ ],
69
+ name: "transferWithAllowanceTest",
70
+ outputs: [
71
+ {
72
+ internalType: "uint256",
73
+ name: "",
74
+ type: "uint256",
75
+ },
76
+ {
77
+ internalType: "uint256",
78
+ name: "",
79
+ type: "uint256",
80
+ },
81
+ {
82
+ internalType: "bool",
83
+ name: "",
84
+ type: "bool",
85
+ },
86
+ {
87
+ internalType: "uint256",
88
+ name: "",
89
+ type: "uint256",
90
+ },
91
+ ],
92
+ stateMutability: "nonpayable",
93
+ type: "function",
94
+ },
95
+ ] as const;
96
+
97
+ const _bytecode =
98
+ "0x608060405234801561001057600080fd5b506104ed806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634717f97c1461003b57806393e243cb14610074575b600080fd5b60005460015460025460035460ff909116905b604080519485526020850193909352901515838301526060830152519081900360800190f35b61004e610082366004610430565b60008060008060006100938961015c565b905060006100a08961015c565b905060006100ad8961015c565b905060006100ba8961015c565b90506000806000806100ce888888886101ff565b93509350935093506100df846102ea565b6000556100eb836102ea565b6001556100f7826102fa565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905561012f816102ea565b6003819055600054600154600254919e509c5060ff169a5098505050505050505050945094509450949050565b6000606463d9b60b6060065b60f81b846040518363ffffffff1660e01b81526004016101b69291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6020604051808303816000875af11580156101d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101f99190610491565b92915050565b600080808080808080606463c2ff267a61021d60068080808761038b565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffffffff0000000000000000000000000000000000000000000000000000009091166004820152602481018f9052604481018e9052606481018d9052608481018c905260a4016080604051808303816000875af11580156102b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d491906104aa565b929f919e509c50909a5098505050505050505050565b60006064630cfed5616006610168565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af115801561035e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103829190610491565b15159392505050565b600081600281111561039f5761039f610462565b60ff1660088460068111156103b6576103b6610462565b61ffff16901b61ffff1660108660068111156103d4576103d4610462565b62ffffff16901b62ffffff1660188860068111156103f4576103f4610462565b63ffffffff16901b63ffffffff1660208a600681111561041657610416610462565b64ffffffffff16901b1717171760d81b9695505050505050565b6000806000806080858703121561044657600080fd5b5050823594602084013594506040840135936060013592509050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000602082840312156104a357600080fd5b5051919050565b600080600080608085870312156104c057600080fd5b50508251602084015160408501516060909501519196909550909250905056fea164736f6c6343000813000a";
99
+
100
+ type TransferWithAllowance256TestsContractConstructorParams =
101
+ | [signer?: Signer]
102
+ | ConstructorParameters<typeof ContractFactory>;
103
+
104
+ const isSuperArgs = (
105
+ xs: TransferWithAllowance256TestsContractConstructorParams
106
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
107
+
108
+ export class TransferWithAllowance256TestsContract__factory extends ContractFactory {
109
+ constructor(...args: TransferWithAllowance256TestsContractConstructorParams) {
110
+ if (isSuperArgs(args)) {
111
+ super(...args);
112
+ } else {
113
+ super(_abi, _bytecode, args[0]);
114
+ }
115
+ }
116
+
117
+ override getDeployTransaction(
118
+ overrides?: NonPayableOverrides & { from?: string }
119
+ ): Promise<ContractDeployTransaction> {
120
+ return super.getDeployTransaction(overrides || {});
121
+ }
122
+ override deploy(overrides?: NonPayableOverrides & { from?: string }) {
123
+ return super.deploy(overrides || {}) as Promise<
124
+ TransferWithAllowance256TestsContract & {
125
+ deploymentTransaction(): ContractTransactionResponse;
126
+ }
127
+ >;
128
+ }
129
+ override connect(
130
+ runner: ContractRunner | null
131
+ ): TransferWithAllowance256TestsContract__factory {
132
+ return super.connect(
133
+ runner
134
+ ) as TransferWithAllowance256TestsContract__factory;
135
+ }
136
+
137
+ static readonly bytecode = _bytecode;
138
+ static readonly abi = _abi;
139
+ static createInterface(): TransferWithAllowance256TestsContractInterface {
140
+ return new Interface(
141
+ _abi
142
+ ) as TransferWithAllowance256TestsContractInterface;
143
+ }
144
+ static connect(
145
+ address: string,
146
+ runner?: ContractRunner | null
147
+ ): TransferWithAllowance256TestsContract {
148
+ return new Contract(
149
+ address,
150
+ _abi,
151
+ runner
152
+ ) as unknown as TransferWithAllowance256TestsContract;
153
+ }
154
+ }
@@ -663,7 +663,7 @@ const _abi = [
663
663
  ] as const;
664
664
 
665
665
  const _bytecode =
666
- "0x608060405234801561001057600080fd5b5061263c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063bb30c2f411610050578063bb30c2f4146100f0578063d4ba41d414610103578063f4fa21101461011657600080fd5b80630aaef195146100775780634717f97c1461008c578063a37f8f11146100dd575b600080fd5b61008a610085366004612471565b610129565b005b60005460ff80821691610100810482169162010000820481169163010000009004165b6040805160ff9586168152938516602085015291151583830152909216606082015290519081900360800190f35b61008a6100eb366004612471565b610766565b61008a6100fe366004612471565b610ccc565b61008a610111366004612471565b611232565b6100af61012436600461255d565b611798565b60008060008061014b8b600001518c60e001518c606001518c60200151611b5b565b935093509350935061015c84611c48565b67ffffffffffffffff168860ff1614801561018b575061017b83611c48565b67ffffffffffffffff168760ff16145b80156101a2575061019b82611ceb565b1515861515145b80156101c257506101b281611c48565b67ffffffffffffffff168560ff16145b6102135760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064015b60405180910390fd5b61022f8b60c001518c602001518c606001518c60200151611d7c565b9296509094509250905061024284611c48565b67ffffffffffffffff168860ff16148015610271575061026183611c48565b67ffffffffffffffff168760ff16145b8015610288575061028182611ceb565b1515861515145b80156102a8575061029881611c48565b67ffffffffffffffff168560ff16145b6102f45760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6103108b60c001518c60e001518c606001518c60200151611d9c565b9296509094509250905061032384611c48565b67ffffffffffffffff168860ff16148015610352575061034283611c48565b67ffffffffffffffff168760ff16145b8015610369575061036282611ceb565b1515861515145b8015610389575061037981611c48565b67ffffffffffffffff168560ff16145b6103d55760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6103f18b604001518c60e001518c606001518c60200151611dbb565b9296509094509250905061040484611c48565b67ffffffffffffffff168860ff16148015610433575061042383611c48565b67ffffffffffffffff168760ff16145b801561044a575061044382611ceb565b1515861515145b801561046a575061045a81611c48565b67ffffffffffffffff168560ff16145b6104b65760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6104d28b60c001518c606001518c606001518c60200151611dda565b929650909450925090506104e584611c48565b67ffffffffffffffff168860ff16148015610514575061050483611c48565b67ffffffffffffffff168760ff16145b801561052b575061052482611ceb565b1515861515145b801561054b575061053b81611c48565b67ffffffffffffffff168560ff16145b6105975760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6105b38b608001518c60e001518c606001518c60200151611df9565b929650909450925090506105c684611c48565b67ffffffffffffffff168860ff161480156105f557506105e583611c48565b67ffffffffffffffff168760ff16145b801561060c575061060582611ceb565b1515861515145b801561062c575061061c81611c48565b67ffffffffffffffff168560ff16145b6106785760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60a001518c606001518c60200151611e19565b929650909450925090506106a784611c48565b67ffffffffffffffff168860ff161480156106d657506106c683611c48565b67ffffffffffffffff168760ff16145b80156106ed57506106e682611ceb565b1515861515145b801561070d57506106fd81611c48565b67ffffffffffffffff168560ff16145b6107595760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b5050505050505050505050565b6000806000806107888b600001518c60e001518c604001518c60200151611e39565b935093509350935061079984611c48565b67ffffffffffffffff168860ff161480156107c857506107b883611c48565b67ffffffffffffffff168760ff16145b80156107df57506107d882611ceb565b1515861515145b80156107ff57506107ef81611c48565b67ffffffffffffffff168560ff16145b61084b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6108678b60c001518c602001518c604001518c60200151611e5a565b9296509094509250905061087a84611c48565b67ffffffffffffffff168860ff161480156108a9575061089983611c48565b67ffffffffffffffff168760ff16145b80156108c057506108b982611ceb565b1515861515145b80156108e057506108d081611c48565b67ffffffffffffffff168560ff16145b61092c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6109488b604001518c60e001518c604001518c60200151611e7b565b9296509094509250905061095b84611c48565b67ffffffffffffffff168860ff1614801561098a575061097a83611c48565b67ffffffffffffffff168760ff16145b80156109a1575061099a82611ceb565b1515861515145b80156109c157506109b181611c48565b67ffffffffffffffff168560ff16145b610a0d5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610a298b60c001518c606001518c604001518c60200151611e9b565b92965090945092509050610a3c84611c48565b67ffffffffffffffff168860ff16148015610a6b5750610a5b83611c48565b67ffffffffffffffff168760ff16145b8015610a825750610a7b82611ceb565b1515861515145b8015610aa25750610a9281611c48565b67ffffffffffffffff168560ff16145b610aee5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610b0a8b608001518c60e001518c604001518c60200151611ebb565b92965090945092509050610b1d84611c48565b67ffffffffffffffff168860ff16148015610b4c5750610b3c83611c48565b67ffffffffffffffff168760ff16145b8015610b635750610b5c82611ceb565b1515861515145b8015610b835750610b7381611c48565b67ffffffffffffffff168560ff16145b610bcf5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610beb8b60c001518c60a001518c604001518c60200151611edb565b92965090945092509050610bfe84611c48565b67ffffffffffffffff168860ff16148015610c2d5750610c1d83611c48565b67ffffffffffffffff168760ff16145b8015610c445750610c3d82611ceb565b1515861515145b8015610c645750610c5481611c48565b67ffffffffffffffff168560ff16145b610cb05760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60e001518c604001518c60200151611efb565b600080600080610cee8b600001518c60e001518c600001518c60200151611f1b565b9350935093509350610cff84611c48565b67ffffffffffffffff168860ff16148015610d2e5750610d1e83611c48565b67ffffffffffffffff168760ff16145b8015610d455750610d3e82611ceb565b1515861515145b8015610d655750610d5581611c48565b67ffffffffffffffff168560ff16145b610db15760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610dcd8b60c001518c602001518c600001518c60200151611f3b565b92965090945092509050610de084611c48565b67ffffffffffffffff168860ff16148015610e0f5750610dff83611c48565b67ffffffffffffffff168760ff16145b8015610e265750610e1f82611ceb565b1515861515145b8015610e465750610e3681611c48565b67ffffffffffffffff168560ff16145b610e925760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610eae8b60c001518c60e001518c600001518c60200151611f5b565b92965090945092509050610ec184611c48565b67ffffffffffffffff168860ff16148015610ef05750610ee083611c48565b67ffffffffffffffff168760ff16145b8015610f075750610f0082611ceb565b1515861515145b8015610f275750610f1781611c48565b67ffffffffffffffff168560ff16145b610f735760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610f8f8b604001518c60e001518c600001518c60200151611f7b565b92965090945092509050610fa284611c48565b67ffffffffffffffff168860ff16148015610fd15750610fc183611c48565b67ffffffffffffffff168760ff16145b8015610fe85750610fe182611ceb565b1515861515145b80156110085750610ff881611c48565b67ffffffffffffffff168560ff16145b6110545760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6110708b60c001518c606001518c600001518c60200151611f9b565b9296509094509250905061108384611c48565b67ffffffffffffffff168860ff161480156110b257506110a283611c48565b67ffffffffffffffff168760ff16145b80156110c957506110c282611ceb565b1515861515145b80156110e957506110d981611c48565b67ffffffffffffffff168560ff16145b6111355760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6111518b608001518c60e001518c600001518c60200151611fbb565b9296509094509250905061116484611c48565b67ffffffffffffffff168860ff16148015611193575061118383611c48565b67ffffffffffffffff168760ff16145b80156111aa57506111a382611ceb565b1515861515145b80156111ca57506111ba81611c48565b67ffffffffffffffff168560ff16145b6112165760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60a001518c600001518c60200151611fdc565b6000806000806112548b600001518c60e001518c602001518c60200151611ffd565b935093509350935061126584611c48565b67ffffffffffffffff168860ff16148015611294575061128483611c48565b67ffffffffffffffff168760ff16145b80156112ab57506112a482611ceb565b1515861515145b80156112cb57506112bb81611c48565b67ffffffffffffffff168560ff16145b6113175760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6113338b60c001518c602001518c602001518c6020015161201d565b9296509094509250905061134684611c48565b67ffffffffffffffff168860ff16148015611375575061136583611c48565b67ffffffffffffffff168760ff16145b801561138c575061138582611ceb565b1515861515145b80156113ac575061139c81611c48565b67ffffffffffffffff168560ff16145b6113f85760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6114148b604001518c60e001518c602001518c6020015161203d565b9296509094509250905061142784611c48565b67ffffffffffffffff168860ff16148015611456575061144683611c48565b67ffffffffffffffff168760ff16145b801561146d575061146682611ceb565b1515861515145b801561148d575061147d81611c48565b67ffffffffffffffff168560ff16145b6114d95760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6114f58b60c001518c606001518c602001518c6020015161205c565b9296509094509250905061150884611c48565b67ffffffffffffffff168860ff16148015611537575061152783611c48565b67ffffffffffffffff168760ff16145b801561154e575061154782611ceb565b1515861515145b801561156e575061155e81611c48565b67ffffffffffffffff168560ff16145b6115ba5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6115d68b60c001518c60e001518c602001518c6020015161207b565b929650909450925090506115e984611c48565b67ffffffffffffffff168860ff16148015611618575061160883611c48565b67ffffffffffffffff168760ff16145b801561162f575061162882611ceb565b1515861515145b801561164f575061163f81611c48565b67ffffffffffffffff168560ff16145b61169b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6116b78b608001518c60e001518c602001518c6020015161209a565b929650909450925090506116ca84611c48565b67ffffffffffffffff168860ff161480156116f957506116e983611c48565b67ffffffffffffffff168760ff16145b8015611710575061170982611ceb565b1515861515145b8015611730575061172081611c48565b67ffffffffffffffff168560ff16145b61177c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60a001518c602001518c602001516120ba565b6000806000806117e660405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b61181b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600060ff1681525090565b6118506040518060a0016040528060008152602001600081526020016000815260200160008152602001600060ff1681525090565b6118598b6120da565b83526118648a6120da565b602084015261187560ff8c16612143565b604084015261188660ff8b16612143565b606084015261189760ff8c166121ad565b60808401526118a860ff8b166121ad565b60a08401526118b960ff8c16612219565b60c08401526118ca60ff8b16612219565b60e08401526118d8896120da565b82526118e660ff8a16612143565b60208301526118f760ff8a166121ad565b604083015261190860ff8a16612219565b606083015260ff8916608083015261191f886120da565b815261192d60ff8916612143565b602082015261193e60ff89166121ad565b604082015261194f60ff8916612219565b606082015260ff88166080820152825160208401518351835160009384938493849361197d93929190612289565b935093509350935061198e846122a7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff929092169190911790556119c9836122a7565b600060016101000a81548160ff021916908360ff1602179055506119ec82611ceb565b6000805491151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff909216919091179055611a2b816122a7565b6000805460ff92831663010000009081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff8316811793849055611a92948c948c948c94938316908316179261010082048316926201000083048116929190910416610ccc565b600054611ac39088908890889060ff8082169161010081048216916201000082048116916301000000900416611232565b600054611af49088908890889060ff8082169161010081048216916201000082048116916301000000900416610766565b600054611b259088908890889060ff8082169161010081048216916201000082048116916301000000900416610129565b505060005460ff8082169f610100830482169f5062010000830482169e506301000000909204169b509950505050505050505050565b600080808080808080606463c2ff267a611b7b60016004806002876122b7565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffffffff0000000000000000000000000000000000000000000000000000009091166004820152602481018f9052604481018e9052606481018d9052608481018c905260a4016080604051808303816000875af1158015611c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3291906125b1565b929f919e509c50909a5098505050505050505050565b60006064630cfed56160045b60f81b846040518363ffffffff1660e01b8152600401611ca29291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6020604051808303816000875af1158015611cc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce59190612616565b92915050565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af1158015611d4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d739190612616565b15159392505050565b600080808080808080606463c2ff267a611b7b60046001816002876122b7565b600080808080808080606463c2ff267a611b7b600480806002876122b7565b600080808080808080606463c2ff267a611b7b600260048082876122b7565b600080808080808080606463c2ff267a611b7b600460028181876122b7565b600080808080808080606463c2ff267a611b7b60036004806002876122b7565b600080808080808080606463c2ff267a611b7b60046003816002876122b7565b600080808080808080606463c2ff267a611b7b6001600460036002876122b7565b600080808080808080606463c2ff267a611b7b6004600160036002876122b7565b600080808080808080606463c2ff267a611b7b60026004600382876122b7565b600080808080808080606463c2ff267a611b7b60046002600381876122b7565b600080808080808080606463c2ff267a611b7b60036004816002876122b7565b600080808080808080606463c2ff267a611b7b60046003806002876122b7565b600080808080808080606463c2ff267a611b7b60048060036002876122b7565b600080808080808080606463c2ff267a611b7b60016004816002876122b7565b600080808080808080606463c2ff267a611b7b60046001806002876122b7565b600080808080808080606463c2ff267a611b7b60048060016002876122b7565b600080808080808080606463c2ff267a611b7b60026004600182876122b7565b600080808080808080606463c2ff267a611b7b60046002600181876122b7565b600080808080808080606463c2ff267a611b7b6003600460016002876122b7565b600080808080808080606463c2ff267a611b7b6004600360016002876122b7565b600080808080808080606463c2ff267a611b7b60016004600280876122b7565b600080808080808080606463c2ff267a611b7b60046001600280876122b7565b600080808080808080606463c2ff267a611b7b600260048180876122b7565b600080808080808080606463c2ff267a611b7b600460028080876122b7565b600080808080808080606463c2ff267a611b7b600480600280876122b7565b600080808080808080606463c2ff267a611b7b60036004600280876122b7565b600080808080808080606463c2ff267a611b7b60046003600280876122b7565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0100000000000000000000000000000000000000000000000000000000000000600482015260ff8216602482015260009060649063d9b60b6090604401611ca2565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0200000000000000000000000000000000000000000000000000000000000000600482015261ffff8216602482015260009060649063d9b60b6090604401611ca2565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0300000000000000000000000000000000000000000000000000000000000000600482015263ffffffff8216602482015260009060649063d9b60b6090604401611ca2565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015267ffffffffffffffff8216602482015260009060649063d9b60b6090604401611ca2565b600080808080808080606463c2ff267a611b7b6001808080876122b7565b60006064630cfed5616001611c54565b60008160028111156122cb576122cb6125e7565b60ff1660088460048111156122e2576122e26125e7565b61ffff16901b61ffff166010866004811115612300576123006125e7565b62ffffff16901b62ffffff166018886004811115612320576123206125e7565b63ffffffff16901b63ffffffff1660208a6004811115612342576123426125e7565b64ffffffffff16901b1717171760d81b9695505050505050565b604051610100810167ffffffffffffffff811182821017156123a7577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b803560ff811681146123be57600080fd5b919050565b600060a082840312156123d557600080fd5b60405160a0810181811067ffffffffffffffff8211171561241f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b806040525080915082358152602083013560208201526040830135604082015260608301356060820152612455608084016123ad565b60808201525092915050565b803580151581146123be57600080fd5b60008060008060008060008789036102c081121561248e57600080fd5b6101008082121561249e57600080fd5b6124a661235c565b91508935825260208a0135602083015260408a0135604083015260608a0135606083015260808a0135608083015260a08a013560a083015260c08a013560c083015260e08a013560e08301528198506125018b828c016123c3565b97505050612513896101a08a016123c3565b945061252261024089016123ad565b935061253161026089016123ad565b92506125406102808901612461565b915061254f6102a089016123ad565b905092959891949750929550565b6000806000806080858703121561257357600080fd5b61257c856123ad565b935061258a602086016123ad565b9250612598604086016123ad565b91506125a6606086016123ad565b905092959194509250565b600080600080608085870312156125c757600080fd5b505082516020840151604085015160609095015191969095509092509050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006020828403121561262857600080fd5b505191905056fea164736f6c6343000813000a";
666
+ "0x608060405234801561001057600080fd5b5061263c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063bb30c2f411610050578063bb30c2f4146100f0578063d4ba41d414610103578063f4fa21101461011657600080fd5b80630aaef195146100775780634717f97c1461008c578063a37f8f11146100dd575b600080fd5b61008a610085366004612471565b610129565b005b60005460ff80821691610100810482169162010000820481169163010000009004165b6040805160ff9586168152938516602085015291151583830152909216606082015290519081900360800190f35b61008a6100eb366004612471565b610766565b61008a6100fe366004612471565b610ccc565b61008a610111366004612471565b611232565b6100af61012436600461255d565b611798565b60008060008061014b8b600001518c60e001518c606001518c60200151611b5b565b935093509350935061015c84611c48565b67ffffffffffffffff168860ff1614801561018b575061017b83611c48565b67ffffffffffffffff168760ff16145b80156101a2575061019b82611ceb565b1515861515145b80156101c257506101b281611c48565b67ffffffffffffffff168560ff16145b6102135760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064015b60405180910390fd5b61022f8b60c001518c602001518c606001518c60200151611d7c565b9296509094509250905061024284611c48565b67ffffffffffffffff168860ff16148015610271575061026183611c48565b67ffffffffffffffff168760ff16145b8015610288575061028182611ceb565b1515861515145b80156102a8575061029881611c48565b67ffffffffffffffff168560ff16145b6102f45760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6103108b60c001518c60e001518c606001518c60200151611d9c565b9296509094509250905061032384611c48565b67ffffffffffffffff168860ff16148015610352575061034283611c48565b67ffffffffffffffff168760ff16145b8015610369575061036282611ceb565b1515861515145b8015610389575061037981611c48565b67ffffffffffffffff168560ff16145b6103d55760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6103f18b604001518c60e001518c606001518c60200151611dbb565b9296509094509250905061040484611c48565b67ffffffffffffffff168860ff16148015610433575061042383611c48565b67ffffffffffffffff168760ff16145b801561044a575061044382611ceb565b1515861515145b801561046a575061045a81611c48565b67ffffffffffffffff168560ff16145b6104b65760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6104d28b60c001518c606001518c606001518c60200151611dda565b929650909450925090506104e584611c48565b67ffffffffffffffff168860ff16148015610514575061050483611c48565b67ffffffffffffffff168760ff16145b801561052b575061052482611ceb565b1515861515145b801561054b575061053b81611c48565b67ffffffffffffffff168560ff16145b6105975760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6105b38b608001518c60e001518c606001518c60200151611df9565b929650909450925090506105c684611c48565b67ffffffffffffffff168860ff161480156105f557506105e583611c48565b67ffffffffffffffff168760ff16145b801561060c575061060582611ceb565b1515861515145b801561062c575061061c81611c48565b67ffffffffffffffff168560ff16145b6106785760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60a001518c606001518c60200151611e19565b929650909450925090506106a784611c48565b67ffffffffffffffff168860ff161480156106d657506106c683611c48565b67ffffffffffffffff168760ff16145b80156106ed57506106e682611ceb565b1515861515145b801561070d57506106fd81611c48565b67ffffffffffffffff168560ff16145b6107595760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b5050505050505050505050565b6000806000806107888b600001518c60e001518c604001518c60200151611e39565b935093509350935061079984611c48565b67ffffffffffffffff168860ff161480156107c857506107b883611c48565b67ffffffffffffffff168760ff16145b80156107df57506107d882611ceb565b1515861515145b80156107ff57506107ef81611c48565b67ffffffffffffffff168560ff16145b61084b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6108678b60c001518c602001518c604001518c60200151611e5a565b9296509094509250905061087a84611c48565b67ffffffffffffffff168860ff161480156108a9575061089983611c48565b67ffffffffffffffff168760ff16145b80156108c057506108b982611ceb565b1515861515145b80156108e057506108d081611c48565b67ffffffffffffffff168560ff16145b61092c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6109488b604001518c60e001518c604001518c60200151611e7b565b9296509094509250905061095b84611c48565b67ffffffffffffffff168860ff1614801561098a575061097a83611c48565b67ffffffffffffffff168760ff16145b80156109a1575061099a82611ceb565b1515861515145b80156109c157506109b181611c48565b67ffffffffffffffff168560ff16145b610a0d5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610a298b60c001518c606001518c604001518c60200151611e9b565b92965090945092509050610a3c84611c48565b67ffffffffffffffff168860ff16148015610a6b5750610a5b83611c48565b67ffffffffffffffff168760ff16145b8015610a825750610a7b82611ceb565b1515861515145b8015610aa25750610a9281611c48565b67ffffffffffffffff168560ff16145b610aee5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610b0a8b608001518c60e001518c604001518c60200151611ebb565b92965090945092509050610b1d84611c48565b67ffffffffffffffff168860ff16148015610b4c5750610b3c83611c48565b67ffffffffffffffff168760ff16145b8015610b635750610b5c82611ceb565b1515861515145b8015610b835750610b7381611c48565b67ffffffffffffffff168560ff16145b610bcf5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610beb8b60c001518c60a001518c604001518c60200151611edb565b92965090945092509050610bfe84611c48565b67ffffffffffffffff168860ff16148015610c2d5750610c1d83611c48565b67ffffffffffffffff168760ff16145b8015610c445750610c3d82611ceb565b1515861515145b8015610c645750610c5481611c48565b67ffffffffffffffff168560ff16145b610cb05760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60e001518c604001518c60200151611efb565b600080600080610cee8b600001518c60e001518c600001518c60200151611f1b565b9350935093509350610cff84611c48565b67ffffffffffffffff168860ff16148015610d2e5750610d1e83611c48565b67ffffffffffffffff168760ff16145b8015610d455750610d3e82611ceb565b1515861515145b8015610d655750610d5581611c48565b67ffffffffffffffff168560ff16145b610db15760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610dcd8b60c001518c602001518c600001518c60200151611f3b565b92965090945092509050610de084611c48565b67ffffffffffffffff168860ff16148015610e0f5750610dff83611c48565b67ffffffffffffffff168760ff16145b8015610e265750610e1f82611ceb565b1515861515145b8015610e465750610e3681611c48565b67ffffffffffffffff168560ff16145b610e925760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610eae8b60c001518c60e001518c600001518c60200151611f5b565b92965090945092509050610ec184611c48565b67ffffffffffffffff168860ff16148015610ef05750610ee083611c48565b67ffffffffffffffff168760ff16145b8015610f075750610f0082611ceb565b1515861515145b8015610f275750610f1781611c48565b67ffffffffffffffff168560ff16145b610f735760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610f8f8b604001518c60e001518c600001518c60200151611f7b565b92965090945092509050610fa284611c48565b67ffffffffffffffff168860ff16148015610fd15750610fc183611c48565b67ffffffffffffffff168760ff16145b8015610fe85750610fe182611ceb565b1515861515145b80156110085750610ff881611c48565b67ffffffffffffffff168560ff16145b6110545760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6110708b60c001518c606001518c600001518c60200151611f9b565b9296509094509250905061108384611c48565b67ffffffffffffffff168860ff161480156110b257506110a283611c48565b67ffffffffffffffff168760ff16145b80156110c957506110c282611ceb565b1515861515145b80156110e957506110d981611c48565b67ffffffffffffffff168560ff16145b6111355760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6111518b608001518c60e001518c600001518c60200151611fbb565b9296509094509250905061116484611c48565b67ffffffffffffffff168860ff16148015611193575061118383611c48565b67ffffffffffffffff168760ff16145b80156111aa57506111a382611ceb565b1515861515145b80156111ca57506111ba81611c48565b67ffffffffffffffff168560ff16145b6112165760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60a001518c600001518c60200151611fdc565b6000806000806112548b600001518c60e001518c602001518c60200151611ffd565b935093509350935061126584611c48565b67ffffffffffffffff168860ff16148015611294575061128483611c48565b67ffffffffffffffff168760ff16145b80156112ab57506112a482611ceb565b1515861515145b80156112cb57506112bb81611c48565b67ffffffffffffffff168560ff16145b6113175760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6113338b60c001518c602001518c602001518c6020015161201d565b9296509094509250905061134684611c48565b67ffffffffffffffff168860ff16148015611375575061136583611c48565b67ffffffffffffffff168760ff16145b801561138c575061138582611ceb565b1515861515145b80156113ac575061139c81611c48565b67ffffffffffffffff168560ff16145b6113f85760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6114148b604001518c60e001518c602001518c6020015161203d565b9296509094509250905061142784611c48565b67ffffffffffffffff168860ff16148015611456575061144683611c48565b67ffffffffffffffff168760ff16145b801561146d575061146682611ceb565b1515861515145b801561148d575061147d81611c48565b67ffffffffffffffff168560ff16145b6114d95760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6114f58b60c001518c606001518c602001518c6020015161205c565b9296509094509250905061150884611c48565b67ffffffffffffffff168860ff16148015611537575061152783611c48565b67ffffffffffffffff168760ff16145b801561154e575061154782611ceb565b1515861515145b801561156e575061155e81611c48565b67ffffffffffffffff168560ff16145b6115ba5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6115d68b60c001518c60e001518c602001518c6020015161207b565b929650909450925090506115e984611c48565b67ffffffffffffffff168860ff16148015611618575061160883611c48565b67ffffffffffffffff168760ff16145b801561162f575061162882611ceb565b1515861515145b801561164f575061163f81611c48565b67ffffffffffffffff168560ff16145b61169b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6116b78b608001518c60e001518c602001518c6020015161209a565b929650909450925090506116ca84611c48565b67ffffffffffffffff168860ff161480156116f957506116e983611c48565b67ffffffffffffffff168760ff16145b8015611710575061170982611ceb565b1515861515145b8015611730575061172081611c48565b67ffffffffffffffff168560ff16145b61177c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60a001518c602001518c602001516120ba565b6000806000806117e660405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b61181b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600060ff1681525090565b6118506040518060a0016040528060008152602001600081526020016000815260200160008152602001600060ff1681525090565b6118598b6120da565b83526118648a6120da565b602084015261187560ff8c16612143565b604084015261188660ff8b16612143565b606084015261189760ff8c166121ad565b60808401526118a860ff8b166121ad565b60a08401526118b960ff8c16612219565b60c08401526118ca60ff8b16612219565b60e08401526118d8896120da565b82526118e660ff8a16612143565b60208301526118f760ff8a166121ad565b604083015261190860ff8a16612219565b606083015260ff8916608083015261191f886120da565b815261192d60ff8916612143565b602082015261193e60ff89166121ad565b604082015261194f60ff8916612219565b606082015260ff88166080820152825160208401518351835160009384938493849361197d93929190612289565b935093509350935061198e846122a7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff929092169190911790556119c9836122a7565b600060016101000a81548160ff021916908360ff1602179055506119ec82611ceb565b6000805491151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff909216919091179055611a2b816122a7565b6000805460ff92831663010000009081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff8316811793849055611a92948c948c948c94938316908316179261010082048316926201000083048116929190910416610ccc565b600054611ac39088908890889060ff8082169161010081048216916201000082048116916301000000900416611232565b600054611af49088908890889060ff8082169161010081048216916201000082048116916301000000900416610766565b600054611b259088908890889060ff8082169161010081048216916201000082048116916301000000900416610129565b505060005460ff8082169f610100830482169f5062010000830482169e506301000000909204169b509950505050505050505050565b600080808080808080606463c2ff267a611b7b60016004806002876122b7565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffffffff0000000000000000000000000000000000000000000000000000009091166004820152602481018f9052604481018e9052606481018d9052608481018c905260a4016080604051808303816000875af1158015611c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3291906125b1565b929f919e509c50909a5098505050505050505050565b60006064630cfed56160045b60f81b846040518363ffffffff1660e01b8152600401611ca29291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6020604051808303816000875af1158015611cc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce59190612616565b92915050565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af1158015611d4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d739190612616565b15159392505050565b600080808080808080606463c2ff267a611b7b60046001816002876122b7565b600080808080808080606463c2ff267a611b7b600480806002876122b7565b600080808080808080606463c2ff267a611b7b600260048082876122b7565b600080808080808080606463c2ff267a611b7b600460028181876122b7565b600080808080808080606463c2ff267a611b7b60036004806002876122b7565b600080808080808080606463c2ff267a611b7b60046003816002876122b7565b600080808080808080606463c2ff267a611b7b6001600460036002876122b7565b600080808080808080606463c2ff267a611b7b6004600160036002876122b7565b600080808080808080606463c2ff267a611b7b60026004600382876122b7565b600080808080808080606463c2ff267a611b7b60046002600381876122b7565b600080808080808080606463c2ff267a611b7b60036004816002876122b7565b600080808080808080606463c2ff267a611b7b60046003806002876122b7565b600080808080808080606463c2ff267a611b7b60048060036002876122b7565b600080808080808080606463c2ff267a611b7b60016004816002876122b7565b600080808080808080606463c2ff267a611b7b60046001806002876122b7565b600080808080808080606463c2ff267a611b7b60048060016002876122b7565b600080808080808080606463c2ff267a611b7b60026004600182876122b7565b600080808080808080606463c2ff267a611b7b60046002600181876122b7565b600080808080808080606463c2ff267a611b7b6003600460016002876122b7565b600080808080808080606463c2ff267a611b7b6004600360016002876122b7565b600080808080808080606463c2ff267a611b7b60016004600280876122b7565b600080808080808080606463c2ff267a611b7b60046001600280876122b7565b600080808080808080606463c2ff267a611b7b600260048180876122b7565b600080808080808080606463c2ff267a611b7b600460028080876122b7565b600080808080808080606463c2ff267a611b7b600480600280876122b7565b600080808080808080606463c2ff267a611b7b60036004600280876122b7565b600080808080808080606463c2ff267a611b7b60046003600280876122b7565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0100000000000000000000000000000000000000000000000000000000000000600482015260ff8216602482015260009060649063d9b60b6090604401611ca2565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0200000000000000000000000000000000000000000000000000000000000000600482015261ffff8216602482015260009060649063d9b60b6090604401611ca2565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0300000000000000000000000000000000000000000000000000000000000000600482015263ffffffff8216602482015260009060649063d9b60b6090604401611ca2565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015267ffffffffffffffff8216602482015260009060649063d9b60b6090604401611ca2565b600080808080808080606463c2ff267a611b7b6001808080876122b7565b60006064630cfed5616001611c54565b60008160028111156122cb576122cb6125e7565b60ff1660088460068111156122e2576122e26125e7565b61ffff16901b61ffff166010866006811115612300576123006125e7565b62ffffff16901b62ffffff166018886006811115612320576123206125e7565b63ffffffff16901b63ffffffff1660208a6006811115612342576123426125e7565b64ffffffffff16901b1717171760d81b9695505050505050565b604051610100810167ffffffffffffffff811182821017156123a7577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b803560ff811681146123be57600080fd5b919050565b600060a082840312156123d557600080fd5b60405160a0810181811067ffffffffffffffff8211171561241f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b806040525080915082358152602083013560208201526040830135604082015260608301356060820152612455608084016123ad565b60808201525092915050565b803580151581146123be57600080fd5b60008060008060008060008789036102c081121561248e57600080fd5b6101008082121561249e57600080fd5b6124a661235c565b91508935825260208a0135602083015260408a0135604083015260608a0135606083015260808a0135608083015260a08a013560a083015260c08a013560c083015260e08a013560e08301528198506125018b828c016123c3565b97505050612513896101a08a016123c3565b945061252261024089016123ad565b935061253161026089016123ad565b92506125406102808901612461565b915061254f6102a089016123ad565b905092959891949750929550565b6000806000806080858703121561257357600080fd5b61257c856123ad565b935061258a602086016123ad565b9250612598604086016123ad565b91506125a6606086016123ad565b905092959194509250565b600080600080608085870312156125c757600080fd5b505082516020840151604085015160609095015191969095509092509050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006020828403121561262857600080fd5b505191905056fea164736f6c6343000813000a";
667
667
 
668
668
  type TransferWithAllowance64_16TestsContractConstructorParams =
669
669
  | [signer?: Signer]
@@ -663,7 +663,7 @@ const _abi = [
663
663
  ] as const;
664
664
 
665
665
  const _bytecode =
666
- "0x608060405234801561001057600080fd5b5061263c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063b371a05811610050578063b371a058146100f0578063d5ea40aa14610103578063f4fa21101461011657600080fd5b8063205093f2146100775780633391d5a81461008c5780634717f97c1461009f575b600080fd5b61008a610085366004612471565b610129565b005b61008a61009a366004612471565b610766565b60005460ff80821691610100810482169162010000820481169163010000009004165b6040805160ff9586168152938516602085015291151583830152909216606082015290519081900360800190f35b61008a6100fe366004612471565b610ccc565b61008a610111366004612471565b611232565b6100c261012436600461255d565b611798565b60008060008061014b8b600001518c60e001518c604001518c60400151611b5b565b935093509350935061015c84611c48565b67ffffffffffffffff168860ff1614801561018b575061017b83611c48565b67ffffffffffffffff168760ff16145b80156101a2575061019b82611ceb565b1515861515145b80156101c257506101b281611c48565b67ffffffffffffffff168560ff16145b6102135760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064015b60405180910390fd5b61022f8b60c001518c602001518c604001518c60400151611d7c565b9296509094509250905061024284611c48565b67ffffffffffffffff168860ff16148015610271575061026183611c48565b67ffffffffffffffff168760ff16145b8015610288575061028182611ceb565b1515861515145b80156102a8575061029881611c48565b67ffffffffffffffff168560ff16145b6102f45760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6103108b604001518c60e001518c604001518c60400151611d9c565b9296509094509250905061032384611c48565b67ffffffffffffffff168860ff16148015610352575061034283611c48565b67ffffffffffffffff168760ff16145b8015610369575061036282611ceb565b1515861515145b8015610389575061037981611c48565b67ffffffffffffffff168560ff16145b6103d55760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6103f18b60c001518c606001518c604001518c60400151611dbc565b9296509094509250905061040484611c48565b67ffffffffffffffff168860ff16148015610433575061042383611c48565b67ffffffffffffffff168760ff16145b801561044a575061044382611ceb565b1515861515145b801561046a575061045a81611c48565b67ffffffffffffffff168560ff16145b6104b65760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6104d28b608001518c60e001518c604001518c60400151611ddc565b929650909450925090506104e584611c48565b67ffffffffffffffff168860ff16148015610514575061050483611c48565b67ffffffffffffffff168760ff16145b801561052b575061052482611ceb565b1515861515145b801561054b575061053b81611c48565b67ffffffffffffffff168560ff16145b6105975760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6105b38b60c001518c60a001518c604001518c60400151611dfb565b929650909450925090506105c684611c48565b67ffffffffffffffff168860ff161480156105f557506105e583611c48565b67ffffffffffffffff168760ff16145b801561060c575061060582611ceb565b1515861515145b801561062c575061061c81611c48565b67ffffffffffffffff168560ff16145b6106785760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60e001518c604001518c60400151611e1a565b929650909450925090506106a784611c48565b67ffffffffffffffff168860ff161480156106d657506106c683611c48565b67ffffffffffffffff168760ff16145b80156106ed57506106e682611ceb565b1515861515145b801561070d57506106fd81611c48565b67ffffffffffffffff168560ff16145b6107595760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b5050505050505050505050565b6000806000806107888b600001518c60e001518c602001518c60400151611e39565b935093509350935061079984611c48565b67ffffffffffffffff168860ff161480156107c857506107b883611c48565b67ffffffffffffffff168760ff16145b80156107df57506107d882611ceb565b1515861515145b80156107ff57506107ef81611c48565b67ffffffffffffffff168560ff16145b61084b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6108678b60c001518c602001518c602001518c60400151611e5a565b9296509094509250905061087a84611c48565b67ffffffffffffffff168860ff161480156108a9575061089983611c48565b67ffffffffffffffff168760ff16145b80156108c057506108b982611ceb565b1515861515145b80156108e057506108d081611c48565b67ffffffffffffffff168560ff16145b61092c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6109488b604001518c60e001518c602001518c60400151611e7b565b9296509094509250905061095b84611c48565b67ffffffffffffffff168860ff1614801561098a575061097a83611c48565b67ffffffffffffffff168760ff16145b80156109a1575061099a82611ceb565b1515861515145b80156109c157506109b181611c48565b67ffffffffffffffff168560ff16145b610a0d5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610a298b60c001518c606001518c602001518c60400151611e9b565b92965090945092509050610a3c84611c48565b67ffffffffffffffff168860ff16148015610a6b5750610a5b83611c48565b67ffffffffffffffff168760ff16145b8015610a825750610a7b82611ceb565b1515861515145b8015610aa25750610a9281611c48565b67ffffffffffffffff168560ff16145b610aee5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610b0a8b60c001518c60e001518c602001518c60400151611ebb565b92965090945092509050610b1d84611c48565b67ffffffffffffffff168860ff16148015610b4c5750610b3c83611c48565b67ffffffffffffffff168760ff16145b8015610b635750610b5c82611ceb565b1515861515145b8015610b835750610b7381611c48565b67ffffffffffffffff168560ff16145b610bcf5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610beb8b608001518c60e001518c602001518c60400151611edb565b92965090945092509050610bfe84611c48565b67ffffffffffffffff168860ff16148015610c2d5750610c1d83611c48565b67ffffffffffffffff168760ff16145b8015610c445750610c3d82611ceb565b1515861515145b8015610c645750610c5481611c48565b67ffffffffffffffff168560ff16145b610cb05760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60a001518c602001518c60400151611efb565b600080600080610cee8b600001518c60e001518c606001518c60400151611f1b565b9350935093509350610cff84611c48565b67ffffffffffffffff168860ff16148015610d2e5750610d1e83611c48565b67ffffffffffffffff168760ff16145b8015610d455750610d3e82611ceb565b1515861515145b8015610d655750610d5581611c48565b67ffffffffffffffff168560ff16145b610db15760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610dcd8b60c001518c602001518c606001518c60400151611f3b565b92965090945092509050610de084611c48565b67ffffffffffffffff168860ff16148015610e0f5750610dff83611c48565b67ffffffffffffffff168760ff16145b8015610e265750610e1f82611ceb565b1515861515145b8015610e465750610e3681611c48565b67ffffffffffffffff168560ff16145b610e925760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610eae8b60c001518c60e001518c606001518c60400151611f5b565b92965090945092509050610ec184611c48565b67ffffffffffffffff168860ff16148015610ef05750610ee083611c48565b67ffffffffffffffff168760ff16145b8015610f075750610f0082611ceb565b1515861515145b8015610f275750610f1781611c48565b67ffffffffffffffff168560ff16145b610f735760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610f8f8b604001518c60e001518c606001518c60400151611f7a565b92965090945092509050610fa284611c48565b67ffffffffffffffff168860ff16148015610fd15750610fc183611c48565b67ffffffffffffffff168760ff16145b8015610fe85750610fe182611ceb565b1515861515145b80156110085750610ff881611c48565b67ffffffffffffffff168560ff16145b6110545760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6110708b60c001518c606001518c606001518c60400151611f9a565b9296509094509250905061108384611c48565b67ffffffffffffffff168860ff161480156110b257506110a283611c48565b67ffffffffffffffff168760ff16145b80156110c957506110c282611ceb565b1515861515145b80156110e957506110d981611c48565b67ffffffffffffffff168560ff16145b6111355760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6111518b608001518c60e001518c606001518c60400151611fba565b9296509094509250905061116484611c48565b67ffffffffffffffff168860ff16148015611193575061118383611c48565b67ffffffffffffffff168760ff16145b80156111aa57506111a382611ceb565b1515861515145b80156111ca57506111ba81611c48565b67ffffffffffffffff168560ff16145b6112165760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60a001518c606001518c60400151611fd9565b6000806000806112548b600001518c60e001518c600001518c60400151611ff8565b935093509350935061126584611c48565b67ffffffffffffffff168860ff16148015611294575061128483611c48565b67ffffffffffffffff168760ff16145b80156112ab57506112a482611ceb565b1515861515145b80156112cb57506112bb81611c48565b67ffffffffffffffff168560ff16145b6113175760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6113338b60c001518c602001518c600001518c60400151612018565b9296509094509250905061134684611c48565b67ffffffffffffffff168860ff16148015611375575061136583611c48565b67ffffffffffffffff168760ff16145b801561138c575061138582611ceb565b1515861515145b80156113ac575061139c81611c48565b67ffffffffffffffff168560ff16145b6113f85760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6114148b60c001518c60e001518c600001518c60400151612038565b9296509094509250905061142784611c48565b67ffffffffffffffff168860ff16148015611456575061144683611c48565b67ffffffffffffffff168760ff16145b801561146d575061146682611ceb565b1515861515145b801561148d575061147d81611c48565b67ffffffffffffffff168560ff16145b6114d95760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6114f58b604001518c60e001518c600001518c60400151612058565b9296509094509250905061150884611c48565b67ffffffffffffffff168860ff16148015611537575061152783611c48565b67ffffffffffffffff168760ff16145b801561154e575061154782611ceb565b1515861515145b801561156e575061155e81611c48565b67ffffffffffffffff168560ff16145b6115ba5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6115d68b60c001518c606001518c600001518c60400151612079565b929650909450925090506115e984611c48565b67ffffffffffffffff168860ff16148015611618575061160883611c48565b67ffffffffffffffff168760ff16145b801561162f575061162882611ceb565b1515861515145b801561164f575061163f81611c48565b67ffffffffffffffff168560ff16145b61169b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6116b78b608001518c60e001518c600001518c6040015161209a565b929650909450925090506116ca84611c48565b67ffffffffffffffff168860ff161480156116f957506116e983611c48565b67ffffffffffffffff168760ff16145b8015611710575061170982611ceb565b1515861515145b8015611730575061172081611c48565b67ffffffffffffffff168560ff16145b61177c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60a001518c600001518c604001516120ba565b6000806000806117e660405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b61181b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600060ff1681525090565b6118506040518060a0016040528060008152602001600081526020016000815260200160008152602001600060ff1681525090565b6118598b6120da565b83526118648a6120da565b602084015261187560ff8c16612143565b604084015261188660ff8b16612143565b606084015261189760ff8c166121ad565b60808401526118a860ff8b166121ad565b60a08401526118b960ff8c16612219565b60c08401526118ca60ff8b16612219565b60e08401526118d8896120da565b82526118e660ff8a16612143565b60208301526118f760ff8a166121ad565b604083015261190860ff8a16612219565b606083015260ff8916608083015261191f886120da565b815261192d60ff8916612143565b602082015261193e60ff89166121ad565b604082015261194f60ff8916612219565b606082015260ff88166080820152825160208401518351835160009384938493849361197d93929190612289565b935093509350935061198e846122a7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff929092169190911790556119c9836122a7565b600060016101000a81548160ff021916908360ff1602179055506119ec82611ceb565b6000805491151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff909216919091179055611a2b816122a7565b6000805460ff92831663010000009081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff8316811793849055611a92948c948c948c94938316908316179261010082048316926201000083048116929190910416611232565b600054611ac39088908890889060ff8082169161010081048216916201000082048116916301000000900416610766565b600054611af49088908890889060ff8082169161010081048216916201000082048116916301000000900416610129565b600054611b259088908890889060ff8082169161010081048216916201000082048116916301000000900416610ccc565b505060005460ff8082169f610100830482169f5062010000830482169e506301000000909204169b509950505050505050505050565b600080808080808080606463c2ff267a611b7b60016004600380876122b7565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffffffff0000000000000000000000000000000000000000000000000000009091166004820152602481018f9052604481018e9052606481018d9052608481018c905260a4016080604051808303816000875af1158015611c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3291906125b1565b929f919e509c50909a5098505050505050505050565b60006064630cfed56160045b60f81b846040518363ffffffff1660e01b8152600401611ca29291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6020604051808303816000875af1158015611cc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce59190612616565b92915050565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af1158015611d4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d739190612616565b15159392505050565b600080808080808080606463c2ff267a611b7b60046001600380876122b7565b600080808080808080606463c2ff267a611b7b60026004600380876122b7565b600080808080808080606463c2ff267a611b7b60046002600380876122b7565b600080808080808080606463c2ff267a611b7b600360048180876122b7565b600080808080808080606463c2ff267a611b7b600460038080876122b7565b600080808080808080606463c2ff267a611b7b600480600380876122b7565b600080808080808080606463c2ff267a611b7b6001600460026003876122b7565b600080808080808080606463c2ff267a611b7b6004600160026003876122b7565b600080808080808080606463c2ff267a611b7b60026004816003876122b7565b600080808080808080606463c2ff267a611b7b60046002806003876122b7565b600080808080808080606463c2ff267a611b7b60048060026003876122b7565b600080808080808080606463c2ff267a611b7b60036004600282876122b7565b600080808080808080606463c2ff267a611b7b60046003600281876122b7565b600080808080808080606463c2ff267a611b7b60016004806003876122b7565b600080808080808080606463c2ff267a611b7b60046001816003876122b7565b600080808080808080606463c2ff267a611b7b600480806003876122b7565b600080808080808080606463c2ff267a611b7b60026004806003876122b7565b600080808080808080606463c2ff267a611b7b60046002816003876122b7565b600080808080808080606463c2ff267a611b7b600360048082876122b7565b600080808080808080606463c2ff267a611b7b600460038181876122b7565b600080808080808080606463c2ff267a611b7b60016004816003876122b7565b600080808080808080606463c2ff267a611b7b60046001806003876122b7565b600080808080808080606463c2ff267a611b7b60048060016003876122b7565b600080808080808080606463c2ff267a611b7b6002600460016003876122b7565b600080808080808080606463c2ff267a611b7b6004600260016003876122b7565b600080808080808080606463c2ff267a611b7b60036004600182876122b7565b600080808080808080606463c2ff267a611b7b60046003600181876122b7565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0100000000000000000000000000000000000000000000000000000000000000600482015260ff8216602482015260009060649063d9b60b6090604401611ca2565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0200000000000000000000000000000000000000000000000000000000000000600482015261ffff8216602482015260009060649063d9b60b6090604401611ca2565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0300000000000000000000000000000000000000000000000000000000000000600482015263ffffffff8216602482015260009060649063d9b60b6090604401611ca2565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015267ffffffffffffffff8216602482015260009060649063d9b60b6090604401611ca2565b600080808080808080606463c2ff267a611b7b6001808080876122b7565b60006064630cfed5616001611c54565b60008160028111156122cb576122cb6125e7565b60ff1660088460048111156122e2576122e26125e7565b61ffff16901b61ffff166010866004811115612300576123006125e7565b62ffffff16901b62ffffff166018886004811115612320576123206125e7565b63ffffffff16901b63ffffffff1660208a6004811115612342576123426125e7565b64ffffffffff16901b1717171760d81b9695505050505050565b604051610100810167ffffffffffffffff811182821017156123a7577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b803560ff811681146123be57600080fd5b919050565b600060a082840312156123d557600080fd5b60405160a0810181811067ffffffffffffffff8211171561241f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b806040525080915082358152602083013560208201526040830135604082015260608301356060820152612455608084016123ad565b60808201525092915050565b803580151581146123be57600080fd5b60008060008060008060008789036102c081121561248e57600080fd5b6101008082121561249e57600080fd5b6124a661235c565b91508935825260208a0135602083015260408a0135604083015260608a0135606083015260808a0135608083015260a08a013560a083015260c08a013560c083015260e08a013560e08301528198506125018b828c016123c3565b97505050612513896101a08a016123c3565b945061252261024089016123ad565b935061253161026089016123ad565b92506125406102808901612461565b915061254f6102a089016123ad565b905092959891949750929550565b6000806000806080858703121561257357600080fd5b61257c856123ad565b935061258a602086016123ad565b9250612598604086016123ad565b91506125a6606086016123ad565b905092959194509250565b600080600080608085870312156125c757600080fd5b505082516020840151604085015160609095015191969095509092509050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006020828403121561262857600080fd5b505191905056fea164736f6c6343000813000a";
666
+ "0x608060405234801561001057600080fd5b5061263c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063b371a05811610050578063b371a058146100f0578063d5ea40aa14610103578063f4fa21101461011657600080fd5b8063205093f2146100775780633391d5a81461008c5780634717f97c1461009f575b600080fd5b61008a610085366004612471565b610129565b005b61008a61009a366004612471565b610766565b60005460ff80821691610100810482169162010000820481169163010000009004165b6040805160ff9586168152938516602085015291151583830152909216606082015290519081900360800190f35b61008a6100fe366004612471565b610ccc565b61008a610111366004612471565b611232565b6100c261012436600461255d565b611798565b60008060008061014b8b600001518c60e001518c604001518c60400151611b5b565b935093509350935061015c84611c48565b67ffffffffffffffff168860ff1614801561018b575061017b83611c48565b67ffffffffffffffff168760ff16145b80156101a2575061019b82611ceb565b1515861515145b80156101c257506101b281611c48565b67ffffffffffffffff168560ff16145b6102135760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064015b60405180910390fd5b61022f8b60c001518c602001518c604001518c60400151611d7c565b9296509094509250905061024284611c48565b67ffffffffffffffff168860ff16148015610271575061026183611c48565b67ffffffffffffffff168760ff16145b8015610288575061028182611ceb565b1515861515145b80156102a8575061029881611c48565b67ffffffffffffffff168560ff16145b6102f45760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6103108b604001518c60e001518c604001518c60400151611d9c565b9296509094509250905061032384611c48565b67ffffffffffffffff168860ff16148015610352575061034283611c48565b67ffffffffffffffff168760ff16145b8015610369575061036282611ceb565b1515861515145b8015610389575061037981611c48565b67ffffffffffffffff168560ff16145b6103d55760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6103f18b60c001518c606001518c604001518c60400151611dbc565b9296509094509250905061040484611c48565b67ffffffffffffffff168860ff16148015610433575061042383611c48565b67ffffffffffffffff168760ff16145b801561044a575061044382611ceb565b1515861515145b801561046a575061045a81611c48565b67ffffffffffffffff168560ff16145b6104b65760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6104d28b608001518c60e001518c604001518c60400151611ddc565b929650909450925090506104e584611c48565b67ffffffffffffffff168860ff16148015610514575061050483611c48565b67ffffffffffffffff168760ff16145b801561052b575061052482611ceb565b1515861515145b801561054b575061053b81611c48565b67ffffffffffffffff168560ff16145b6105975760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6105b38b60c001518c60a001518c604001518c60400151611dfb565b929650909450925090506105c684611c48565b67ffffffffffffffff168860ff161480156105f557506105e583611c48565b67ffffffffffffffff168760ff16145b801561060c575061060582611ceb565b1515861515145b801561062c575061061c81611c48565b67ffffffffffffffff168560ff16145b6106785760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60e001518c604001518c60400151611e1a565b929650909450925090506106a784611c48565b67ffffffffffffffff168860ff161480156106d657506106c683611c48565b67ffffffffffffffff168760ff16145b80156106ed57506106e682611ceb565b1515861515145b801561070d57506106fd81611c48565b67ffffffffffffffff168560ff16145b6107595760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b5050505050505050505050565b6000806000806107888b600001518c60e001518c602001518c60400151611e39565b935093509350935061079984611c48565b67ffffffffffffffff168860ff161480156107c857506107b883611c48565b67ffffffffffffffff168760ff16145b80156107df57506107d882611ceb565b1515861515145b80156107ff57506107ef81611c48565b67ffffffffffffffff168560ff16145b61084b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6108678b60c001518c602001518c602001518c60400151611e5a565b9296509094509250905061087a84611c48565b67ffffffffffffffff168860ff161480156108a9575061089983611c48565b67ffffffffffffffff168760ff16145b80156108c057506108b982611ceb565b1515861515145b80156108e057506108d081611c48565b67ffffffffffffffff168560ff16145b61092c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6109488b604001518c60e001518c602001518c60400151611e7b565b9296509094509250905061095b84611c48565b67ffffffffffffffff168860ff1614801561098a575061097a83611c48565b67ffffffffffffffff168760ff16145b80156109a1575061099a82611ceb565b1515861515145b80156109c157506109b181611c48565b67ffffffffffffffff168560ff16145b610a0d5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610a298b60c001518c606001518c602001518c60400151611e9b565b92965090945092509050610a3c84611c48565b67ffffffffffffffff168860ff16148015610a6b5750610a5b83611c48565b67ffffffffffffffff168760ff16145b8015610a825750610a7b82611ceb565b1515861515145b8015610aa25750610a9281611c48565b67ffffffffffffffff168560ff16145b610aee5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610b0a8b60c001518c60e001518c602001518c60400151611ebb565b92965090945092509050610b1d84611c48565b67ffffffffffffffff168860ff16148015610b4c5750610b3c83611c48565b67ffffffffffffffff168760ff16145b8015610b635750610b5c82611ceb565b1515861515145b8015610b835750610b7381611c48565b67ffffffffffffffff168560ff16145b610bcf5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610beb8b608001518c60e001518c602001518c60400151611edb565b92965090945092509050610bfe84611c48565b67ffffffffffffffff168860ff16148015610c2d5750610c1d83611c48565b67ffffffffffffffff168760ff16145b8015610c445750610c3d82611ceb565b1515861515145b8015610c645750610c5481611c48565b67ffffffffffffffff168560ff16145b610cb05760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60a001518c602001518c60400151611efb565b600080600080610cee8b600001518c60e001518c606001518c60400151611f1b565b9350935093509350610cff84611c48565b67ffffffffffffffff168860ff16148015610d2e5750610d1e83611c48565b67ffffffffffffffff168760ff16145b8015610d455750610d3e82611ceb565b1515861515145b8015610d655750610d5581611c48565b67ffffffffffffffff168560ff16145b610db15760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610dcd8b60c001518c602001518c606001518c60400151611f3b565b92965090945092509050610de084611c48565b67ffffffffffffffff168860ff16148015610e0f5750610dff83611c48565b67ffffffffffffffff168760ff16145b8015610e265750610e1f82611ceb565b1515861515145b8015610e465750610e3681611c48565b67ffffffffffffffff168560ff16145b610e925760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610eae8b60c001518c60e001518c606001518c60400151611f5b565b92965090945092509050610ec184611c48565b67ffffffffffffffff168860ff16148015610ef05750610ee083611c48565b67ffffffffffffffff168760ff16145b8015610f075750610f0082611ceb565b1515861515145b8015610f275750610f1781611c48565b67ffffffffffffffff168560ff16145b610f735760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610f8f8b604001518c60e001518c606001518c60400151611f7a565b92965090945092509050610fa284611c48565b67ffffffffffffffff168860ff16148015610fd15750610fc183611c48565b67ffffffffffffffff168760ff16145b8015610fe85750610fe182611ceb565b1515861515145b80156110085750610ff881611c48565b67ffffffffffffffff168560ff16145b6110545760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6110708b60c001518c606001518c606001518c60400151611f9a565b9296509094509250905061108384611c48565b67ffffffffffffffff168860ff161480156110b257506110a283611c48565b67ffffffffffffffff168760ff16145b80156110c957506110c282611ceb565b1515861515145b80156110e957506110d981611c48565b67ffffffffffffffff168560ff16145b6111355760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6111518b608001518c60e001518c606001518c60400151611fba565b9296509094509250905061116484611c48565b67ffffffffffffffff168860ff16148015611193575061118383611c48565b67ffffffffffffffff168760ff16145b80156111aa57506111a382611ceb565b1515861515145b80156111ca57506111ba81611c48565b67ffffffffffffffff168560ff16145b6112165760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60a001518c606001518c60400151611fd9565b6000806000806112548b600001518c60e001518c600001518c60400151611ff8565b935093509350935061126584611c48565b67ffffffffffffffff168860ff16148015611294575061128483611c48565b67ffffffffffffffff168760ff16145b80156112ab57506112a482611ceb565b1515861515145b80156112cb57506112bb81611c48565b67ffffffffffffffff168560ff16145b6113175760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6113338b60c001518c602001518c600001518c60400151612018565b9296509094509250905061134684611c48565b67ffffffffffffffff168860ff16148015611375575061136583611c48565b67ffffffffffffffff168760ff16145b801561138c575061138582611ceb565b1515861515145b80156113ac575061139c81611c48565b67ffffffffffffffff168560ff16145b6113f85760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6114148b60c001518c60e001518c600001518c60400151612038565b9296509094509250905061142784611c48565b67ffffffffffffffff168860ff16148015611456575061144683611c48565b67ffffffffffffffff168760ff16145b801561146d575061146682611ceb565b1515861515145b801561148d575061147d81611c48565b67ffffffffffffffff168560ff16145b6114d95760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6114f58b604001518c60e001518c600001518c60400151612058565b9296509094509250905061150884611c48565b67ffffffffffffffff168860ff16148015611537575061152783611c48565b67ffffffffffffffff168760ff16145b801561154e575061154782611ceb565b1515861515145b801561156e575061155e81611c48565b67ffffffffffffffff168560ff16145b6115ba5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6115d68b60c001518c606001518c600001518c60400151612079565b929650909450925090506115e984611c48565b67ffffffffffffffff168860ff16148015611618575061160883611c48565b67ffffffffffffffff168760ff16145b801561162f575061162882611ceb565b1515861515145b801561164f575061163f81611c48565b67ffffffffffffffff168560ff16145b61169b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6116b78b608001518c60e001518c600001518c6040015161209a565b929650909450925090506116ca84611c48565b67ffffffffffffffff168860ff161480156116f957506116e983611c48565b67ffffffffffffffff168760ff16145b8015611710575061170982611ceb565b1515861515145b8015611730575061172081611c48565b67ffffffffffffffff168560ff16145b61177c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60a001518c600001518c604001516120ba565b6000806000806117e660405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b61181b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600060ff1681525090565b6118506040518060a0016040528060008152602001600081526020016000815260200160008152602001600060ff1681525090565b6118598b6120da565b83526118648a6120da565b602084015261187560ff8c16612143565b604084015261188660ff8b16612143565b606084015261189760ff8c166121ad565b60808401526118a860ff8b166121ad565b60a08401526118b960ff8c16612219565b60c08401526118ca60ff8b16612219565b60e08401526118d8896120da565b82526118e660ff8a16612143565b60208301526118f760ff8a166121ad565b604083015261190860ff8a16612219565b606083015260ff8916608083015261191f886120da565b815261192d60ff8916612143565b602082015261193e60ff89166121ad565b604082015261194f60ff8916612219565b606082015260ff88166080820152825160208401518351835160009384938493849361197d93929190612289565b935093509350935061198e846122a7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff929092169190911790556119c9836122a7565b600060016101000a81548160ff021916908360ff1602179055506119ec82611ceb565b6000805491151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff909216919091179055611a2b816122a7565b6000805460ff92831663010000009081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff8316811793849055611a92948c948c948c94938316908316179261010082048316926201000083048116929190910416611232565b600054611ac39088908890889060ff8082169161010081048216916201000082048116916301000000900416610766565b600054611af49088908890889060ff8082169161010081048216916201000082048116916301000000900416610129565b600054611b259088908890889060ff8082169161010081048216916201000082048116916301000000900416610ccc565b505060005460ff8082169f610100830482169f5062010000830482169e506301000000909204169b509950505050505050505050565b600080808080808080606463c2ff267a611b7b60016004600380876122b7565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffffffff0000000000000000000000000000000000000000000000000000009091166004820152602481018f9052604481018e9052606481018d9052608481018c905260a4016080604051808303816000875af1158015611c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3291906125b1565b929f919e509c50909a5098505050505050505050565b60006064630cfed56160045b60f81b846040518363ffffffff1660e01b8152600401611ca29291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6020604051808303816000875af1158015611cc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce59190612616565b92915050565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af1158015611d4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d739190612616565b15159392505050565b600080808080808080606463c2ff267a611b7b60046001600380876122b7565b600080808080808080606463c2ff267a611b7b60026004600380876122b7565b600080808080808080606463c2ff267a611b7b60046002600380876122b7565b600080808080808080606463c2ff267a611b7b600360048180876122b7565b600080808080808080606463c2ff267a611b7b600460038080876122b7565b600080808080808080606463c2ff267a611b7b600480600380876122b7565b600080808080808080606463c2ff267a611b7b6001600460026003876122b7565b600080808080808080606463c2ff267a611b7b6004600160026003876122b7565b600080808080808080606463c2ff267a611b7b60026004816003876122b7565b600080808080808080606463c2ff267a611b7b60046002806003876122b7565b600080808080808080606463c2ff267a611b7b60048060026003876122b7565b600080808080808080606463c2ff267a611b7b60036004600282876122b7565b600080808080808080606463c2ff267a611b7b60046003600281876122b7565b600080808080808080606463c2ff267a611b7b60016004806003876122b7565b600080808080808080606463c2ff267a611b7b60046001816003876122b7565b600080808080808080606463c2ff267a611b7b600480806003876122b7565b600080808080808080606463c2ff267a611b7b60026004806003876122b7565b600080808080808080606463c2ff267a611b7b60046002816003876122b7565b600080808080808080606463c2ff267a611b7b600360048082876122b7565b600080808080808080606463c2ff267a611b7b600460038181876122b7565b600080808080808080606463c2ff267a611b7b60016004816003876122b7565b600080808080808080606463c2ff267a611b7b60046001806003876122b7565b600080808080808080606463c2ff267a611b7b60048060016003876122b7565b600080808080808080606463c2ff267a611b7b6002600460016003876122b7565b600080808080808080606463c2ff267a611b7b6004600260016003876122b7565b600080808080808080606463c2ff267a611b7b60036004600182876122b7565b600080808080808080606463c2ff267a611b7b60046003600181876122b7565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0100000000000000000000000000000000000000000000000000000000000000600482015260ff8216602482015260009060649063d9b60b6090604401611ca2565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0200000000000000000000000000000000000000000000000000000000000000600482015261ffff8216602482015260009060649063d9b60b6090604401611ca2565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0300000000000000000000000000000000000000000000000000000000000000600482015263ffffffff8216602482015260009060649063d9b60b6090604401611ca2565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015267ffffffffffffffff8216602482015260009060649063d9b60b6090604401611ca2565b600080808080808080606463c2ff267a611b7b6001808080876122b7565b60006064630cfed5616001611c54565b60008160028111156122cb576122cb6125e7565b60ff1660088460068111156122e2576122e26125e7565b61ffff16901b61ffff166010866006811115612300576123006125e7565b62ffffff16901b62ffffff166018886006811115612320576123206125e7565b63ffffffff16901b63ffffffff1660208a6006811115612342576123426125e7565b64ffffffffff16901b1717171760d81b9695505050505050565b604051610100810167ffffffffffffffff811182821017156123a7577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b803560ff811681146123be57600080fd5b919050565b600060a082840312156123d557600080fd5b60405160a0810181811067ffffffffffffffff8211171561241f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b806040525080915082358152602083013560208201526040830135604082015260608301356060820152612455608084016123ad565b60808201525092915050565b803580151581146123be57600080fd5b60008060008060008060008789036102c081121561248e57600080fd5b6101008082121561249e57600080fd5b6124a661235c565b91508935825260208a0135602083015260408a0135604083015260608a0135606083015260808a0135608083015260a08a013560a083015260c08a013560c083015260e08a013560e08301528198506125018b828c016123c3565b97505050612513896101a08a016123c3565b945061252261024089016123ad565b935061253161026089016123ad565b92506125406102808901612461565b915061254f6102a089016123ad565b905092959891949750929550565b6000806000806080858703121561257357600080fd5b61257c856123ad565b935061258a602086016123ad565b9250612598604086016123ad565b91506125a6606086016123ad565b905092959194509250565b600080600080608085870312156125c757600080fd5b505082516020840151604085015160609095015191969095509092509050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006020828403121561262857600080fd5b505191905056fea164736f6c6343000813000a";
667
667
 
668
668
  type TransferWithAllowance64_32TestsContractConstructorParams =
669
669
  | [signer?: Signer]