@hyperlane-xyz/core 1.4.2 → 1.4.3-beta1

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 (305) hide show
  1. package/contracts/hooks/OptimismMessageHook.sol +1 -1
  2. package/contracts/interfaces/IInterchainSecurityModule.sol +2 -1
  3. package/contracts/interfaces/isms/ICcipReadIsm.sol +28 -0
  4. package/contracts/isms/ccip-read/AbstractCcipReadIsm.sol +32 -0
  5. package/contracts/isms/hook/{optimism/OptimismISM.sol → OptimismISM.sol} +6 -6
  6. package/contracts/isms/hook/{CrossChainEnabled.sol → crossChainEnabled/CrossChainEnabled.sol} +3 -3
  7. package/contracts/isms/hook/crossChainEnabled/errors.sol +7 -0
  8. package/contracts/isms/hook/{optimism → crossChainEnabled/optimism}/LibOptimism.sol +1 -2
  9. package/dist/contracts/interfaces/isms/ICcipReadIsm.d.ts +67 -0
  10. package/dist/contracts/interfaces/isms/ICcipReadIsm.d.ts.map +1 -0
  11. package/dist/contracts/{isms/hook/optimism/LibOptimism.js → interfaces/isms/ICcipReadIsm.js} +1 -1
  12. package/dist/contracts/interfaces/isms/ICcipReadIsm.js.map +1 -0
  13. package/dist/contracts/interfaces/isms/index.d.ts +1 -0
  14. package/dist/contracts/interfaces/isms/index.d.ts.map +1 -1
  15. package/dist/contracts/isms/ccip-read/AbstractCcipReadIsm.d.ts +67 -0
  16. package/dist/contracts/isms/ccip-read/AbstractCcipReadIsm.d.ts.map +1 -0
  17. package/dist/contracts/isms/{hook/CrossChainEnabled.js → ccip-read/AbstractCcipReadIsm.js} +1 -1
  18. package/dist/contracts/isms/ccip-read/AbstractCcipReadIsm.js.map +1 -0
  19. package/dist/contracts/isms/ccip-read/index.d.ts +2 -0
  20. package/dist/contracts/isms/ccip-read/index.d.ts.map +1 -0
  21. package/dist/contracts/isms/ccip-read/index.js.map +1 -0
  22. package/dist/contracts/isms/hook/{optimism/OptimismISM.d.ts → OptimismISM.d.ts} +1 -1
  23. package/dist/contracts/isms/hook/OptimismISM.d.ts.map +1 -0
  24. package/dist/contracts/isms/hook/OptimismISM.js.map +1 -0
  25. package/dist/contracts/isms/hook/index.d.ts +1 -3
  26. package/dist/contracts/isms/hook/index.d.ts.map +1 -1
  27. package/dist/contracts/isms/hook/index.js +0 -1
  28. package/dist/contracts/isms/hook/index.js.map +1 -1
  29. package/dist/contracts/isms/index.d.ts +2 -0
  30. package/dist/contracts/isms/index.d.ts.map +1 -1
  31. package/dist/factories/contracts/Mailbox__factory.d.ts +1 -1
  32. package/dist/factories/contracts/Mailbox__factory.js +1 -1
  33. package/dist/factories/contracts/ValidatorAnnounce__factory.d.ts +1 -1
  34. package/dist/factories/contracts/ValidatorAnnounce__factory.js +1 -1
  35. package/dist/factories/contracts/hooks/ERC5164/ERC5164MessageHook__factory.d.ts +1 -1
  36. package/dist/factories/contracts/hooks/ERC5164/ERC5164MessageHook__factory.js +1 -1
  37. package/dist/factories/contracts/hooks/OptimismMessageHook__factory.d.ts +1 -1
  38. package/dist/factories/contracts/hooks/OptimismMessageHook__factory.js +1 -1
  39. package/dist/factories/contracts/interfaces/isms/ICcipReadIsm__factory.d.ts +33 -0
  40. package/dist/factories/contracts/interfaces/isms/ICcipReadIsm__factory.d.ts.map +1 -0
  41. package/dist/factories/contracts/interfaces/isms/ICcipReadIsm__factory.js +99 -0
  42. package/dist/factories/contracts/interfaces/isms/ICcipReadIsm__factory.js.map +1 -0
  43. package/dist/factories/contracts/interfaces/isms/index.d.ts +1 -0
  44. package/dist/factories/contracts/interfaces/isms/index.d.ts.map +1 -1
  45. package/dist/factories/contracts/interfaces/isms/index.js +3 -1
  46. package/dist/factories/contracts/interfaces/isms/index.js.map +1 -1
  47. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.d.ts +1 -1
  48. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.js +1 -1
  49. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.d.ts +1 -1
  50. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.js +1 -1
  51. package/dist/factories/contracts/isms/ccip-read/AbstractCcipReadIsm__factory.d.ts +33 -0
  52. package/dist/factories/contracts/isms/ccip-read/AbstractCcipReadIsm__factory.d.ts.map +1 -0
  53. package/dist/factories/contracts/isms/ccip-read/AbstractCcipReadIsm__factory.js +99 -0
  54. package/dist/factories/contracts/isms/ccip-read/AbstractCcipReadIsm__factory.js.map +1 -0
  55. package/dist/factories/contracts/isms/ccip-read/index.d.ts +2 -0
  56. package/dist/factories/contracts/isms/ccip-read/index.d.ts.map +1 -0
  57. package/dist/factories/contracts/isms/ccip-read/index.js +9 -0
  58. package/dist/factories/contracts/isms/ccip-read/index.js.map +1 -0
  59. package/dist/factories/contracts/isms/hook/ERC5164ISM__factory.d.ts +1 -1
  60. package/dist/factories/contracts/isms/hook/ERC5164ISM__factory.js +1 -1
  61. package/dist/factories/contracts/isms/hook/{optimism/OptimismISM__factory.d.ts → OptimismISM__factory.d.ts} +3 -7
  62. package/dist/factories/contracts/isms/hook/OptimismISM__factory.d.ts.map +1 -0
  63. package/dist/factories/contracts/isms/hook/{optimism/OptimismISM__factory.js → OptimismISM__factory.js} +1 -22
  64. package/dist/factories/contracts/isms/hook/OptimismISM__factory.js.map +1 -0
  65. package/dist/factories/contracts/isms/hook/index.d.ts +1 -2
  66. package/dist/factories/contracts/isms/hook/index.d.ts.map +1 -1
  67. package/dist/factories/contracts/isms/hook/index.js +3 -27
  68. package/dist/factories/contracts/isms/hook/index.js.map +1 -1
  69. package/dist/factories/contracts/isms/index.d.ts +1 -0
  70. package/dist/factories/contracts/isms/index.d.ts.map +1 -1
  71. package/dist/factories/contracts/isms/index.js +2 -1
  72. package/dist/factories/contracts/isms/index.js.map +1 -1
  73. package/dist/factories/contracts/isms/multisig/LegacyMultisigIsm__factory.d.ts +1 -1
  74. package/dist/factories/contracts/isms/multisig/LegacyMultisigIsm__factory.js +1 -1
  75. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.d.ts +1 -1
  76. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js +1 -1
  77. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts +1 -1
  78. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js +1 -1
  79. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.d.ts +1 -1
  80. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js +1 -1
  81. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts +1 -1
  82. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js +1 -1
  83. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory__factory.d.ts +1 -1
  84. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory__factory.js +1 -1
  85. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts +1 -1
  86. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.js +1 -1
  87. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.d.ts +1 -1
  88. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.js +1 -1
  89. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +1 -1
  90. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +1 -1
  91. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -1
  92. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +1 -1
  93. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +1 -1
  94. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +1 -1
  95. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +1 -1
  96. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +1 -1
  97. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +1 -1
  98. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +1 -1
  99. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +1 -1
  100. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +1 -1
  101. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts +1 -1
  102. package/dist/factories/contracts/mock/MockMailbox__factory.js +1 -1
  103. package/dist/factories/contracts/test/LightTestRecipient__factory.d.ts +1 -1
  104. package/dist/factories/contracts/test/LightTestRecipient__factory.js +1 -1
  105. package/dist/factories/contracts/test/TestGasRouter__factory.d.ts +1 -1
  106. package/dist/factories/contracts/test/TestGasRouter__factory.js +1 -1
  107. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.d.ts +1 -1
  108. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.js +1 -1
  109. package/dist/factories/contracts/test/TestLegacyMultisigIsm__factory.d.ts +1 -1
  110. package/dist/factories/contracts/test/TestLegacyMultisigIsm__factory.js +1 -1
  111. package/dist/factories/contracts/test/TestMailbox__factory.d.ts +1 -1
  112. package/dist/factories/contracts/test/TestMailbox__factory.js +1 -1
  113. package/dist/factories/contracts/test/TestMultisigIsm__factory.d.ts +1 -1
  114. package/dist/factories/contracts/test/TestMultisigIsm__factory.js +1 -1
  115. package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
  116. package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
  117. package/dist/factories/contracts/test/TestRecipient__factory.d.ts +1 -1
  118. package/dist/factories/contracts/test/TestRecipient__factory.js +1 -1
  119. package/dist/factories/contracts/test/TestRouter__factory.d.ts +1 -1
  120. package/dist/factories/contracts/test/TestRouter__factory.js +1 -1
  121. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +1 -1
  122. package/dist/factories/contracts/test/TestSendReceiver__factory.js +1 -1
  123. package/dist/index.d.ts +6 -8
  124. package/dist/index.d.ts.map +1 -1
  125. package/dist/index.js +8 -10
  126. package/dist/index.js.map +1 -1
  127. package/package.json +6 -4
  128. package/dist/contracts/isms/hook/CrossChainEnabled.d.ts +0 -28
  129. package/dist/contracts/isms/hook/CrossChainEnabled.d.ts.map +0 -1
  130. package/dist/contracts/isms/hook/CrossChainEnabled.js.map +0 -1
  131. package/dist/contracts/isms/hook/optimism/CrossChainEnabledOptimism.d.ts +0 -28
  132. package/dist/contracts/isms/hook/optimism/CrossChainEnabledOptimism.d.ts.map +0 -1
  133. package/dist/contracts/isms/hook/optimism/CrossChainEnabledOptimism.js +0 -4
  134. package/dist/contracts/isms/hook/optimism/CrossChainEnabledOptimism.js.map +0 -1
  135. package/dist/contracts/isms/hook/optimism/LibOptimism.d.ts +0 -28
  136. package/dist/contracts/isms/hook/optimism/LibOptimism.d.ts.map +0 -1
  137. package/dist/contracts/isms/hook/optimism/LibOptimism.js.map +0 -1
  138. package/dist/contracts/isms/hook/optimism/OptimismISM.d.ts.map +0 -1
  139. package/dist/contracts/isms/hook/optimism/OptimismISM.js.map +0 -1
  140. package/dist/contracts/isms/hook/optimism/index.d.ts +0 -4
  141. package/dist/contracts/isms/hook/optimism/index.d.ts.map +0 -1
  142. package/dist/contracts/isms/hook/optimism/index.js.map +0 -1
  143. package/dist/factories/contracts/isms/hook/CrossChainEnabled__factory.d.ts +0 -17
  144. package/dist/factories/contracts/isms/hook/CrossChainEnabled__factory.d.ts.map +0 -1
  145. package/dist/factories/contracts/isms/hook/CrossChainEnabled__factory.js +0 -39
  146. package/dist/factories/contracts/isms/hook/CrossChainEnabled__factory.js.map +0 -1
  147. package/dist/factories/contracts/isms/hook/optimism/CrossChainEnabledOptimism__factory.d.ts +0 -17
  148. package/dist/factories/contracts/isms/hook/optimism/CrossChainEnabledOptimism__factory.d.ts.map +0 -1
  149. package/dist/factories/contracts/isms/hook/optimism/CrossChainEnabledOptimism__factory.js +0 -39
  150. package/dist/factories/contracts/isms/hook/optimism/CrossChainEnabledOptimism__factory.js.map +0 -1
  151. package/dist/factories/contracts/isms/hook/optimism/LibOptimism__factory.d.ts +0 -25
  152. package/dist/factories/contracts/isms/hook/optimism/LibOptimism__factory.d.ts.map +0 -1
  153. package/dist/factories/contracts/isms/hook/optimism/LibOptimism__factory.js +0 -46
  154. package/dist/factories/contracts/isms/hook/optimism/LibOptimism__factory.js.map +0 -1
  155. package/dist/factories/contracts/isms/hook/optimism/OptimismISM__factory.d.ts.map +0 -1
  156. package/dist/factories/contracts/isms/hook/optimism/OptimismISM__factory.js.map +0 -1
  157. package/dist/factories/contracts/isms/hook/optimism/index.d.ts +0 -4
  158. package/dist/factories/contracts/isms/hook/optimism/index.d.ts.map +0 -1
  159. package/dist/factories/contracts/isms/hook/optimism/index.js +0 -13
  160. package/dist/factories/contracts/isms/hook/optimism/index.js.map +0 -1
  161. package/docs/book.css +0 -13
  162. package/docs/book.toml +0 -12
  163. package/docs/solidity.min.js +0 -74
  164. package/docs/src/README.md +0 -15
  165. package/docs/src/SUMMARY.md +0 -139
  166. package/docs/src/contracts/GasRouter.sol/abstract.GasRouter.md +0 -124
  167. package/docs/src/contracts/HyperlaneConnectionClient.sol/abstract.HyperlaneConnectionClient.md +0 -191
  168. package/docs/src/contracts/Mailbox.sol/contract.Mailbox.md +0 -251
  169. package/docs/src/contracts/OwnableMulticall.sol/contract.OwnableMulticall.md +0 -41
  170. package/docs/src/contracts/PausableReentrancyGuard.sol/abstract.PausableReentrancyGuardUpgradeable.md +0 -100
  171. package/docs/src/contracts/README.md +0 -19
  172. package/docs/src/contracts/Router.sol/abstract.Router.md +0 -255
  173. package/docs/src/contracts/ValidatorAnnounce.sol/contract.ValidatorAnnounce.md +0 -117
  174. package/docs/src/contracts/hooks/ERC5164/ERC5164MessageHook.sol/contract.ERC5164MessageHook.md +0 -64
  175. package/docs/src/contracts/hooks/ERC5164/README.md +0 -5
  176. package/docs/src/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.sol/interface.IMessageDispatcher.md +0 -25
  177. package/docs/src/contracts/hooks/ERC5164/interfaces/README.md +0 -4
  178. package/docs/src/contracts/hooks/OptimismMessageHook.sol/contract.OptimismMessageHook.md +0 -71
  179. package/docs/src/contracts/hooks/README.md +0 -5
  180. package/docs/src/contracts/igps/InterchainGasPaymaster.sol/contract.InterchainGasPaymaster.md +0 -231
  181. package/docs/src/contracts/igps/OverheadIgp.sol/contract.OverheadIgp.md +0 -161
  182. package/docs/src/contracts/igps/README.md +0 -6
  183. package/docs/src/contracts/igps/gas-oracles/README.md +0 -4
  184. package/docs/src/contracts/igps/gas-oracles/StorageGasOracle.sol/contract.StorageGasOracle.md +0 -114
  185. package/docs/src/contracts/interfaces/IGasOracle.sol/interface.IGasOracle.md +0 -25
  186. package/docs/src/contracts/interfaces/IHyperlaneConnectionClient.sol/interface.IHyperlaneConnectionClient.md +0 -43
  187. package/docs/src/contracts/interfaces/IInterchainGasPaymaster.sol/interface.IInterchainGasPaymaster.md +0 -33
  188. package/docs/src/contracts/interfaces/IInterchainSecurityModule.sol/interface.IInterchainSecurityModule.md +0 -55
  189. package/docs/src/contracts/interfaces/IInterchainSecurityModule.sol/interface.ISpecifiesInterchainSecurityModule.md +0 -12
  190. package/docs/src/contracts/interfaces/ILiquidityLayerMessageRecipient.sol/interface.ILiquidityLayerMessageRecipient.md +0 -13
  191. package/docs/src/contracts/interfaces/ILiquidityLayerRouter.sol/interface.ILiquidityLayerRouter.md +0 -19
  192. package/docs/src/contracts/interfaces/IMailbox.sol/interface.IMailbox.md +0 -103
  193. package/docs/src/contracts/interfaces/IMessageRecipient.sol/interface.IMessageRecipient.md +0 -12
  194. package/docs/src/contracts/interfaces/IRouter.sol/interface.IRouter.md +0 -33
  195. package/docs/src/contracts/interfaces/IValidatorAnnounce.sol/interface.IValidatorAnnounce.md +0 -78
  196. package/docs/src/contracts/interfaces/README.md +0 -17
  197. package/docs/src/contracts/interfaces/hooks/IMessageHook.sol/interface.IMessageHook.md +0 -12
  198. package/docs/src/contracts/interfaces/hooks/README.md +0 -4
  199. package/docs/src/contracts/interfaces/isms/IAggregationIsm.sol/interface.IAggregationIsm.md +0 -36
  200. package/docs/src/contracts/interfaces/isms/IMultisigIsm.sol/interface.IMultisigIsm.md +0 -36
  201. package/docs/src/contracts/interfaces/isms/IRoutingIsm.sol/interface.IRoutingIsm.md +0 -31
  202. package/docs/src/contracts/interfaces/isms/README.md +0 -6
  203. package/docs/src/contracts/interfaces/middleware/IInterchainAccountRouter.sol/interface.IInterchainAccountRouter.md +0 -64
  204. package/docs/src/contracts/interfaces/middleware/IInterchainQueryRouter.sol/interface.IInterchainQueryRouter.md +0 -21
  205. package/docs/src/contracts/interfaces/middleware/README.md +0 -5
  206. package/docs/src/contracts/isms/README.md +0 -7
  207. package/docs/src/contracts/isms/aggregation/AbstractAggregationIsm.sol/abstract.AbstractAggregationIsm.md +0 -60
  208. package/docs/src/contracts/isms/aggregation/README.md +0 -6
  209. package/docs/src/contracts/isms/aggregation/StaticAggregationIsm.sol/contract.StaticAggregationIsm.md +0 -30
  210. package/docs/src/contracts/isms/aggregation/StaticAggregationIsmFactory.sol/contract.StaticAggregationIsmFactory.md +0 -15
  211. package/docs/src/contracts/isms/hook/AbstractHookISM.sol/abstract.AbstractHookISM.md +0 -44
  212. package/docs/src/contracts/isms/hook/CrossChainEnabled.sol/abstract.CrossChainEnabled.md +0 -74
  213. package/docs/src/contracts/isms/hook/ERC5164ISM.sol/contract.ERC5164ISM.md +0 -57
  214. package/docs/src/contracts/isms/hook/README.md +0 -7
  215. package/docs/src/contracts/isms/hook/optimism/CrossChainEnabledOptimism.sol/abstract.CrossChainEnabledOptimism.md +0 -53
  216. package/docs/src/contracts/isms/hook/optimism/LibOptimism.sol/library.LibOptimism.md +0 -39
  217. package/docs/src/contracts/isms/hook/optimism/OptimismISM.sol/contract.OptimismISM.md +0 -66
  218. package/docs/src/contracts/isms/hook/optimism/README.md +0 -6
  219. package/docs/src/contracts/isms/multisig/AbstractMerkleRootMultisigIsm.sol/abstract.AbstractMerkleRootMultisigIsm.md +0 -78
  220. package/docs/src/contracts/isms/multisig/AbstractMessageIdMultisigIsm.sol/abstract.AbstractMessageIdMultisigIsm.md +0 -69
  221. package/docs/src/contracts/isms/multisig/AbstractMultisigIsm.sol/abstract.AbstractMultisigIsm.md +0 -102
  222. package/docs/src/contracts/isms/multisig/LegacyMultisigIsm.sol/contract.LegacyMultisigIsm.md +0 -355
  223. package/docs/src/contracts/isms/multisig/README.md +0 -12
  224. package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/abstract.AbstractMetaProxyMultisigIsm.md +0 -36
  225. package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMerkleRootMultisigIsm.md +0 -11
  226. package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMerkleRootMultisigIsmFactory.md +0 -15
  227. package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMessageIdMultisigIsm.md +0 -10
  228. package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMessageIdMultisigIsmFactory.md +0 -15
  229. package/docs/src/contracts/isms/routing/AbstractRoutingIsm.sol/abstract.AbstractRoutingIsm.md +0 -55
  230. package/docs/src/contracts/isms/routing/DomainRoutingIsm.sol/contract.DomainRoutingIsm.md +0 -112
  231. package/docs/src/contracts/isms/routing/DomainRoutingIsmFactory.sol/contract.DomainRoutingIsmFactory.md +0 -47
  232. package/docs/src/contracts/isms/routing/InterchainAccountIsm.sol/contract.InterchainAccountIsm.md +0 -44
  233. package/docs/src/contracts/isms/routing/README.md +0 -7
  234. package/docs/src/contracts/libs/Call.sol/library.CallLib.md +0 -124
  235. package/docs/src/contracts/libs/CheckpointLib.sol/library.CheckpointLib.md +0 -61
  236. package/docs/src/contracts/libs/EnumerableMapExtended.sol/library.EnumerableMapExtended.md +0 -63
  237. package/docs/src/contracts/libs/LegacyCheckpointLib.sol/library.LegacyCheckpointLib.md +0 -55
  238. package/docs/src/contracts/libs/Merkle.sol/library.MerkleLib.md +0 -354
  239. package/docs/src/contracts/libs/Message.sol/library.Message.md +0 -304
  240. package/docs/src/contracts/libs/MetaProxy.sol/library.MetaProxy.md +0 -36
  241. package/docs/src/contracts/libs/MinimalProxy.sol/library.MinimalProxy.md +0 -34
  242. package/docs/src/contracts/libs/README.md +0 -16
  243. package/docs/src/contracts/libs/StaticMOfNAddressSetFactory.sol/abstract.StaticMOfNAddressSetFactory.md +0 -123
  244. package/docs/src/contracts/libs/TypeCasts.sol/library.TypeCasts.md +0 -19
  245. package/docs/src/contracts/libs/ValidatorAnnouncements.sol/library.ValidatorAnnouncements.md +0 -31
  246. package/docs/src/contracts/libs/isms/AggregationIsmMetadata.sol/library.AggregationIsmMetadata.md +0 -97
  247. package/docs/src/contracts/libs/isms/LegacyMultisigIsmMetadata.sol/library.LegacyMultisigIsmMetadata.md +0 -296
  248. package/docs/src/contracts/libs/isms/MerkleRootMultisigIsmMetadata.sol/library.MerkleRootMultisigIsmMetadata.md +0 -177
  249. package/docs/src/contracts/libs/isms/MessageIdMultisigIsmMetadata.sol/library.MessageIdMultisigIsmMetadata.md +0 -109
  250. package/docs/src/contracts/libs/isms/README.md +0 -7
  251. package/docs/src/contracts/libs/middleware/InterchainAccountMessage.sol/library.InterchainAccountMessage.md +0 -134
  252. package/docs/src/contracts/libs/middleware/InterchainQueryMessage.sol/library.InterchainQueryMessage.md +0 -203
  253. package/docs/src/contracts/libs/middleware/README.md +0 -5
  254. package/docs/src/contracts/middleware/InterchainAccountRouter.sol/contract.InterchainAccountRouter.md +0 -542
  255. package/docs/src/contracts/middleware/InterchainQueryRouter.sol/contract.InterchainQueryRouter.md +0 -119
  256. package/docs/src/contracts/middleware/README.md +0 -6
  257. package/docs/src/contracts/middleware/liquidity-layer/LiquidityLayerRouter.sol/contract.LiquidityLayerRouter.md +0 -81
  258. package/docs/src/contracts/middleware/liquidity-layer/README.md +0 -6
  259. package/docs/src/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.sol/contract.CircleBridgeAdapter.md +0 -197
  260. package/docs/src/contracts/middleware/liquidity-layer/adapters/PortalAdapter.sol/contract.PortalAdapter.md +0 -189
  261. package/docs/src/contracts/middleware/liquidity-layer/adapters/README.md +0 -5
  262. package/docs/src/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter.sol/interface.ILiquidityLayerAdapter.md +0 -23
  263. package/docs/src/contracts/middleware/liquidity-layer/interfaces/README.md +0 -6
  264. package/docs/src/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter.sol/interface.ICircleMessageTransmitter.md +0 -54
  265. package/docs/src/contracts/middleware/liquidity-layer/interfaces/circle/ITokenMessenger.sol/interface.ITokenMessenger.md +0 -92
  266. package/docs/src/contracts/middleware/liquidity-layer/interfaces/circle/README.md +0 -5
  267. package/docs/src/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.sol/interface.IPortalTokenBridge.md +0 -131
  268. package/docs/src/contracts/middleware/liquidity-layer/interfaces/portal/README.md +0 -4
  269. package/docs/src/contracts/mock/MockCircleMessageTransmitter.sol/contract.MockCircleMessageTransmitter.md +0 -58
  270. package/docs/src/contracts/mock/MockCircleTokenMessenger.sol/contract.MockCircleTokenMessenger.md +0 -44
  271. package/docs/src/contracts/mock/MockERC5164.sol/contract.MockMessageDispatcher.md +0 -15
  272. package/docs/src/contracts/mock/MockERC5164.sol/contract.MockMessageExecutor.md +0 -11
  273. package/docs/src/contracts/mock/MockHyperlaneEnvironment.sol/contract.MockHyperlaneEnvironment.md +0 -69
  274. package/docs/src/contracts/mock/MockMailbox.sol/contract.MockMailbox.md +0 -137
  275. package/docs/src/contracts/mock/MockPortalBridge.sol/contract.MockPortalBridge.md +0 -82
  276. package/docs/src/contracts/mock/MockToken.sol/contract.MockToken.md +0 -22
  277. package/docs/src/contracts/mock/README.md +0 -11
  278. package/docs/src/contracts/test/LightTestRecipient.sol/contract.LightTestRecipient.md +0 -15
  279. package/docs/src/contracts/test/README.md +0 -20
  280. package/docs/src/contracts/test/TestGasRouter.sol/contract.TestGasRouter.md +0 -27
  281. package/docs/src/contracts/test/TestHyperlaneConnectionClient.sol/contract.TestHyperlaneConnectionClient.md +0 -29
  282. package/docs/src/contracts/test/TestInterchainGasPaymaster.sol/contract.TestInterchainGasPaymaster.md +0 -30
  283. package/docs/src/contracts/test/TestLegacyMultisigIsm.sol/contract.TestLegacyMultisigIsm.md +0 -15
  284. package/docs/src/contracts/test/TestLiquidityLayerMessageRecipient.sol/contract.TestLiquidityLayerMessageRecipient.md +0 -23
  285. package/docs/src/contracts/test/TestMailbox.sol/contract.TestMailbox.md +0 -29
  286. package/docs/src/contracts/test/TestMerkle.sol/contract.TestMerkle.md +0 -50
  287. package/docs/src/contracts/test/TestMessage.sol/contract.TestMessage.md +0 -68
  288. package/docs/src/contracts/test/TestMultisigIsm.sol/contract.TestMultisigIsm.md +0 -51
  289. package/docs/src/contracts/test/TestQuery.sol/contract.TestQuery.md +0 -45
  290. package/docs/src/contracts/test/TestQuerySender.sol/contract.TestQuerySender.md +0 -128
  291. package/docs/src/contracts/test/TestRecipient.sol/contract.TestRecipient.md +0 -78
  292. package/docs/src/contracts/test/TestRouter.sol/contract.TestRouter.md +0 -63
  293. package/docs/src/contracts/test/TestSendReceiver.sol/contract.TestSendReceiver.md +0 -49
  294. package/docs/src/contracts/test/TestTokenRecipient.sol/contract.TestTokenRecipient.md +0 -80
  295. package/docs/src/contracts/test/bad-recipient/BadRecipient1.sol/contract.BadRecipient1.md +0 -15
  296. package/docs/src/contracts/test/bad-recipient/BadRecipient2.sol/contract.BadRecipient2.md +0 -12
  297. package/docs/src/contracts/test/bad-recipient/BadRecipient3.sol/contract.BadRecipient3.md +0 -15
  298. package/docs/src/contracts/test/bad-recipient/BadRecipient5.sol/contract.BadRecipient5.md +0 -15
  299. package/docs/src/contracts/test/bad-recipient/BadRecipient6.sol/contract.BadRecipient6.md +0 -15
  300. package/docs/src/contracts/test/bad-recipient/README.md +0 -8
  301. package/docs/src/contracts/upgrade/README.md +0 -4
  302. package/docs/src/contracts/upgrade/Versioned.sol/contract.Versioned.md +0 -14
  303. /package/contracts/isms/hook/{optimism → crossChainEnabled/optimism}/CrossChainEnabledOptimism.sol +0 -0
  304. /package/dist/contracts/isms/{hook/optimism → ccip-read}/index.js +0 -0
  305. /package/dist/contracts/isms/hook/{optimism/OptimismISM.js → OptimismISM.js} +0 -0
@@ -47,7 +47,7 @@ const _abi = [
47
47
  type: "function",
48
48
  },
49
49
  ];
50
- const _bytecode = "0x60a060405234801561001057600080fd5b5060405161001d9061004b565b604051809103906000f080158015610039573d6000803e3d6000fd5b506001600160a01b0316608052610058565b610fe68061043083390190565b6080516103be6100726000396000607401526103be6000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063cd8ffbac14610030575b600080fd5b61004361003e366004610267565b61006c565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6000806100987f000000000000000000000000000000000000000000000000000000000000000061017a565b60405173ffffffffffffffffffffffffffffffffffffffff821681529091507f2150733618772a2f3719cb3b2585ee790d68a16e7ef96a07b24fc8e274e6c69e9060200160405180910390a16040517f9d8ecd8500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690639d8ecd859061013e9033908a908a908a908a906004016102d3565b600060405180830381600087803b15801561015857600080fd5b505af115801561016c573d6000803e3d6000fd5b509298975050505050505050565b604080517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000060208201527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084901b1660348201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060488201528151603781830301815260579091019091526000908051602082016000f09392505050565b60008083601f84011261022d57600080fd5b50813567ffffffffffffffff81111561024557600080fd5b6020830191508360208260051b850101111561026057600080fd5b9250929050565b6000806000806040858703121561027d57600080fd5b843567ffffffffffffffff8082111561029557600080fd5b6102a18883890161021b565b909650945060208701359150808211156102ba57600080fd5b506102c78782880161021b565b95989497509550505050565b73ffffffffffffffffffffffffffffffffffffffff868116825260606020808401829052908301869052600091879160808501845b8981101561033857843563ffffffff811680821461032557600080fd5b8352509382019390820190600101610308565b508581036040870152868152810192508660005b8781101561037857813584811680821461036557600080fd5b865250938201939082019060010161034c565b50929a995050505050505050505056fea2646970667358221220ba535f6530259937123768232e76fcda35994da30216b3bd386887fc1f1dec1764736f6c63430008110033608060405234801561001057600080fd5b50610fc6806100206000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80638da5cb5b11610076578063c4d66de81161005b578063c4d66de81461019e578063f2fde38b146101b1578063f7e83aee146101c457600080fd5b80638da5cb5b1461016d5780639d8ecd851461018b57600080fd5b806354c05fbe116100a757806354c05fbe146101155780636465e69f1461014b578063715018a61461016557600080fd5b806315ce45a2146100c35780634c0a2ffc14610100575b600080fd5b6100d66100d1366004610bd3565b6101e7565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61011361010e366004610c50565b61029a565b005b6100d6610123366004610c87565b60656020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b610153600181565b60405160ff90911681526020016100f7565b6101136102b0565b60335473ffffffffffffffffffffffffffffffffffffffff166100d6565b610113610199366004610ce7565b6102c4565b6101136101ac366004610d6a565b610541565b6101136101bf366004610d6a565b6106dc565b6101d76101d2366004610d87565b610793565b60405190151581526020016100f7565b600080606560006101f88686610829565b63ffffffff16815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff16905080610293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4e6f2049534d20666f756e6420666f72206f726967696e20646f6d61696e000060448201526064015b60405180910390fd5b9392505050565b6102a261084c565b6102ac82826108cd565b5050565b6102b861084c565b6102c260006109d9565b565b600054610100900460ff16158080156102e45750600054600160ff909116105b806102fe5750303b1580156102fe575060005460ff166001145b61038a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161028a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156103e857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6103f0610a50565b838214610459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6c656e677468206d69736d617463680000000000000000000000000000000000604482015260640161028a565b8360005b818110156104cb576104bb87878381811061047a5761047a610df3565b905060200201602081019061048f9190610c87565b8686848181106104a1576104a1610df3565b90506020020160208101906104b69190610d6a565b6108cd565b6104c481610e22565b905061045d565b506104d5876109d9565b50801561053957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b600054610100900460ff16158080156105615750600054600160ff909116105b8061057b5750303b15801561057b575060005460ff166001145b610607576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161028a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561066557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61066d610a50565b610676826109d9565b80156102ac57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6106e461084c565b73ffffffffffffffffffffffffffffffffffffffff8116610787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161028a565b610790816109d9565b50565b600061079f83836101e7565b73ffffffffffffffffffffffffffffffffffffffff1663f7e83aee868686866040518563ffffffff1660e01b81526004016107dd9493929190610eca565b6020604051808303816000875af11580156107fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108209190610efc565b95945050505050565b6000610839600960058486610f1e565b61084291610f48565b60e01c9392505050565b60335473ffffffffffffffffffffffffffffffffffffffff1633146102c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161028a565b73ffffffffffffffffffffffffffffffffffffffff81163b61094b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e74726163740000000000000000000000000000000000000000000000604482015260640161028a565b63ffffffff821660008181526065602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915591519182527f834d0c4fb66203b6219238b31d4180fd7d009ac15b986467828687a59ee9f1db910160405180910390a25050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610ae7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161028a565b6102c2600054610100900460ff16610b81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161028a565b6102c2336109d9565b60008083601f840112610b9c57600080fd5b50813567ffffffffffffffff811115610bb457600080fd5b602083019150836020828501011115610bcc57600080fd5b9250929050565b60008060208385031215610be657600080fd5b823567ffffffffffffffff811115610bfd57600080fd5b610c0985828601610b8a565b90969095509350505050565b803563ffffffff81168114610c2957600080fd5b919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461079057600080fd5b60008060408385031215610c6357600080fd5b610c6c83610c15565b91506020830135610c7c81610c2e565b809150509250929050565b600060208284031215610c9957600080fd5b61029382610c15565b60008083601f840112610cb457600080fd5b50813567ffffffffffffffff811115610ccc57600080fd5b6020830191508360208260051b8501011115610bcc57600080fd5b600080600080600060608688031215610cff57600080fd5b8535610d0a81610c2e565b9450602086013567ffffffffffffffff80821115610d2757600080fd5b610d3389838a01610ca2565b90965094506040880135915080821115610d4c57600080fd5b50610d5988828901610ca2565b969995985093965092949392505050565b600060208284031215610d7c57600080fd5b813561029381610c2e565b60008060008060408587031215610d9d57600080fd5b843567ffffffffffffffff80821115610db557600080fd5b610dc188838901610b8a565b90965094506020870135915080821115610dda57600080fd5b50610de787828801610b8a565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610e7a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b604081526000610ede604083018688610e81565b8281036020840152610ef1818587610e81565b979650505050505050565b600060208284031215610f0e57600080fd5b8151801515811461029357600080fd5b60008085851115610f2e57600080fd5b83861115610f3b57600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015610f885780818660040360031b1b83161692505b50509291505056fea2646970667358221220fa41870bbe2a9abd370903237007fab0f9a63fc5dab229d17dce1c5a16b8c44364736f6c63430008110033";
50
+ const _bytecode = "0x60a060405234801561001057600080fd5b5060405161001d9061004b565b604051809103906000f080158015610039573d6000803e3d6000fd5b506001600160a01b0316608052610058565b610fe68061043083390190565b6080516103be6100726000396000607401526103be6000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063cd8ffbac14610030575b600080fd5b61004361003e366004610267565b61006c565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6000806100987f000000000000000000000000000000000000000000000000000000000000000061017a565b60405173ffffffffffffffffffffffffffffffffffffffff821681529091507f2150733618772a2f3719cb3b2585ee790d68a16e7ef96a07b24fc8e274e6c69e9060200160405180910390a16040517f9d8ecd8500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690639d8ecd859061013e9033908a908a908a908a906004016102d3565b600060405180830381600087803b15801561015857600080fd5b505af115801561016c573d6000803e3d6000fd5b509298975050505050505050565b604080517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000060208201527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084901b1660348201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060488201528151603781830301815260579091019091526000908051602082016000f09392505050565b60008083601f84011261022d57600080fd5b50813567ffffffffffffffff81111561024557600080fd5b6020830191508360208260051b850101111561026057600080fd5b9250929050565b6000806000806040858703121561027d57600080fd5b843567ffffffffffffffff8082111561029557600080fd5b6102a18883890161021b565b909650945060208701359150808211156102ba57600080fd5b506102c78782880161021b565b95989497509550505050565b73ffffffffffffffffffffffffffffffffffffffff868116825260606020808401829052908301869052600091879160808501845b8981101561033857843563ffffffff811680821461032557600080fd5b8352509382019390820190600101610308565b508581036040870152868152810192508660005b8781101561037857813584811680821461036557600080fd5b865250938201939082019060010161034c565b50929a995050505050505050505056fea26469706673582212206838f1680b970e2fdefd48cd49d9242ea2f6813cd4d7ef42bdea0dc12c81ffbf64736f6c63430008110033608060405234801561001057600080fd5b50610fc6806100206000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80638da5cb5b11610076578063c4d66de81161005b578063c4d66de81461019e578063f2fde38b146101b1578063f7e83aee146101c457600080fd5b80638da5cb5b1461016d5780639d8ecd851461018b57600080fd5b806354c05fbe116100a757806354c05fbe146101155780636465e69f1461014b578063715018a61461016557600080fd5b806315ce45a2146100c35780634c0a2ffc14610100575b600080fd5b6100d66100d1366004610bd3565b6101e7565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61011361010e366004610c50565b61029a565b005b6100d6610123366004610c87565b60656020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b610153600181565b60405160ff90911681526020016100f7565b6101136102b0565b60335473ffffffffffffffffffffffffffffffffffffffff166100d6565b610113610199366004610ce7565b6102c4565b6101136101ac366004610d6a565b610541565b6101136101bf366004610d6a565b6106dc565b6101d76101d2366004610d87565b610793565b60405190151581526020016100f7565b600080606560006101f88686610829565b63ffffffff16815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff16905080610293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4e6f2049534d20666f756e6420666f72206f726967696e20646f6d61696e000060448201526064015b60405180910390fd5b9392505050565b6102a261084c565b6102ac82826108cd565b5050565b6102b861084c565b6102c260006109d9565b565b600054610100900460ff16158080156102e45750600054600160ff909116105b806102fe5750303b1580156102fe575060005460ff166001145b61038a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161028a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156103e857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6103f0610a50565b838214610459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6c656e677468206d69736d617463680000000000000000000000000000000000604482015260640161028a565b8360005b818110156104cb576104bb87878381811061047a5761047a610df3565b905060200201602081019061048f9190610c87565b8686848181106104a1576104a1610df3565b90506020020160208101906104b69190610d6a565b6108cd565b6104c481610e22565b905061045d565b506104d5876109d9565b50801561053957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b600054610100900460ff16158080156105615750600054600160ff909116105b8061057b5750303b15801561057b575060005460ff166001145b610607576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161028a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561066557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61066d610a50565b610676826109d9565b80156102ac57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6106e461084c565b73ffffffffffffffffffffffffffffffffffffffff8116610787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161028a565b610790816109d9565b50565b600061079f83836101e7565b73ffffffffffffffffffffffffffffffffffffffff1663f7e83aee868686866040518563ffffffff1660e01b81526004016107dd9493929190610eca565b6020604051808303816000875af11580156107fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108209190610efc565b95945050505050565b6000610839600960058486610f1e565b61084291610f48565b60e01c9392505050565b60335473ffffffffffffffffffffffffffffffffffffffff1633146102c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161028a565b73ffffffffffffffffffffffffffffffffffffffff81163b61094b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e74726163740000000000000000000000000000000000000000000000604482015260640161028a565b63ffffffff821660008181526065602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915591519182527f834d0c4fb66203b6219238b31d4180fd7d009ac15b986467828687a59ee9f1db910160405180910390a25050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610ae7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161028a565b6102c2600054610100900460ff16610b81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161028a565b6102c2336109d9565b60008083601f840112610b9c57600080fd5b50813567ffffffffffffffff811115610bb457600080fd5b602083019150836020828501011115610bcc57600080fd5b9250929050565b60008060208385031215610be657600080fd5b823567ffffffffffffffff811115610bfd57600080fd5b610c0985828601610b8a565b90969095509350505050565b803563ffffffff81168114610c2957600080fd5b919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461079057600080fd5b60008060408385031215610c6357600080fd5b610c6c83610c15565b91506020830135610c7c81610c2e565b809150509250929050565b600060208284031215610c9957600080fd5b61029382610c15565b60008083601f840112610cb457600080fd5b50813567ffffffffffffffff811115610ccc57600080fd5b6020830191508360208260051b8501011115610bcc57600080fd5b600080600080600060608688031215610cff57600080fd5b8535610d0a81610c2e565b9450602086013567ffffffffffffffff80821115610d2757600080fd5b610d3389838a01610ca2565b90965094506040880135915080821115610d4c57600080fd5b50610d5988828901610ca2565b969995985093965092949392505050565b600060208284031215610d7c57600080fd5b813561029381610c2e565b60008060008060408587031215610d9d57600080fd5b843567ffffffffffffffff80821115610db557600080fd5b610dc188838901610b8a565b90965094506020870135915080821115610dda57600080fd5b50610de787828801610b8a565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610e7a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b604081526000610ede604083018688610e81565b8281036020840152610ef1818587610e81565b979650505050505050565b600060208284031215610f0e57600080fd5b8151801515811461029357600080fd5b60008085851115610f2e57600080fd5b83861115610f3b57600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015610f885780818660040360031b1b83161692505b50509291505056fea26469706673582212206bfff05366847b198bf50d231c046a6c3ebbaad858f6ff0c3bbbe626cac1c95264736f6c63430008110033";
51
51
  const isSuperArgs = (xs) => xs.length > 1;
52
52
  class DomainRoutingIsmFactory__factory extends ethers_1.ContractFactory {
53
53
  constructor(...args) {
@@ -12,7 +12,7 @@ export declare class DomainRoutingIsm__factory extends ContractFactory {
12
12
  }): TransactionRequest;
13
13
  attach(address: string): DomainRoutingIsm;
14
14
  connect(signer: Signer): DomainRoutingIsm__factory;
15
- static readonly bytecode = "0x608060405234801561001057600080fd5b50610fc6806100206000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80638da5cb5b11610076578063c4d66de81161005b578063c4d66de81461019e578063f2fde38b146101b1578063f7e83aee146101c457600080fd5b80638da5cb5b1461016d5780639d8ecd851461018b57600080fd5b806354c05fbe116100a757806354c05fbe146101155780636465e69f1461014b578063715018a61461016557600080fd5b806315ce45a2146100c35780634c0a2ffc14610100575b600080fd5b6100d66100d1366004610bd3565b6101e7565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61011361010e366004610c50565b61029a565b005b6100d6610123366004610c87565b60656020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b610153600181565b60405160ff90911681526020016100f7565b6101136102b0565b60335473ffffffffffffffffffffffffffffffffffffffff166100d6565b610113610199366004610ce7565b6102c4565b6101136101ac366004610d6a565b610541565b6101136101bf366004610d6a565b6106dc565b6101d76101d2366004610d87565b610793565b60405190151581526020016100f7565b600080606560006101f88686610829565b63ffffffff16815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff16905080610293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4e6f2049534d20666f756e6420666f72206f726967696e20646f6d61696e000060448201526064015b60405180910390fd5b9392505050565b6102a261084c565b6102ac82826108cd565b5050565b6102b861084c565b6102c260006109d9565b565b600054610100900460ff16158080156102e45750600054600160ff909116105b806102fe5750303b1580156102fe575060005460ff166001145b61038a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161028a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156103e857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6103f0610a50565b838214610459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6c656e677468206d69736d617463680000000000000000000000000000000000604482015260640161028a565b8360005b818110156104cb576104bb87878381811061047a5761047a610df3565b905060200201602081019061048f9190610c87565b8686848181106104a1576104a1610df3565b90506020020160208101906104b69190610d6a565b6108cd565b6104c481610e22565b905061045d565b506104d5876109d9565b50801561053957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b600054610100900460ff16158080156105615750600054600160ff909116105b8061057b5750303b15801561057b575060005460ff166001145b610607576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161028a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561066557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61066d610a50565b610676826109d9565b80156102ac57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6106e461084c565b73ffffffffffffffffffffffffffffffffffffffff8116610787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161028a565b610790816109d9565b50565b600061079f83836101e7565b73ffffffffffffffffffffffffffffffffffffffff1663f7e83aee868686866040518563ffffffff1660e01b81526004016107dd9493929190610eca565b6020604051808303816000875af11580156107fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108209190610efc565b95945050505050565b6000610839600960058486610f1e565b61084291610f48565b60e01c9392505050565b60335473ffffffffffffffffffffffffffffffffffffffff1633146102c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161028a565b73ffffffffffffffffffffffffffffffffffffffff81163b61094b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e74726163740000000000000000000000000000000000000000000000604482015260640161028a565b63ffffffff821660008181526065602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915591519182527f834d0c4fb66203b6219238b31d4180fd7d009ac15b986467828687a59ee9f1db910160405180910390a25050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610ae7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161028a565b6102c2600054610100900460ff16610b81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161028a565b6102c2336109d9565b60008083601f840112610b9c57600080fd5b50813567ffffffffffffffff811115610bb457600080fd5b602083019150836020828501011115610bcc57600080fd5b9250929050565b60008060208385031215610be657600080fd5b823567ffffffffffffffff811115610bfd57600080fd5b610c0985828601610b8a565b90969095509350505050565b803563ffffffff81168114610c2957600080fd5b919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461079057600080fd5b60008060408385031215610c6357600080fd5b610c6c83610c15565b91506020830135610c7c81610c2e565b809150509250929050565b600060208284031215610c9957600080fd5b61029382610c15565b60008083601f840112610cb457600080fd5b50813567ffffffffffffffff811115610ccc57600080fd5b6020830191508360208260051b8501011115610bcc57600080fd5b600080600080600060608688031215610cff57600080fd5b8535610d0a81610c2e565b9450602086013567ffffffffffffffff80821115610d2757600080fd5b610d3389838a01610ca2565b90965094506040880135915080821115610d4c57600080fd5b50610d5988828901610ca2565b969995985093965092949392505050565b600060208284031215610d7c57600080fd5b813561029381610c2e565b60008060008060408587031215610d9d57600080fd5b843567ffffffffffffffff80821115610db557600080fd5b610dc188838901610b8a565b90965094506020870135915080821115610dda57600080fd5b50610de787828801610b8a565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610e7a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b604081526000610ede604083018688610e81565b8281036020840152610ef1818587610e81565b979650505050505050565b600060208284031215610f0e57600080fd5b8151801515811461029357600080fd5b60008085851115610f2e57600080fd5b83861115610f3b57600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015610f885780818660040360031b1b83161692505b50509291505056fea2646970667358221220fa41870bbe2a9abd370903237007fab0f9a63fc5dab229d17dce1c5a16b8c44364736f6c63430008110033";
15
+ static readonly bytecode = "0x608060405234801561001057600080fd5b50610fc6806100206000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80638da5cb5b11610076578063c4d66de81161005b578063c4d66de81461019e578063f2fde38b146101b1578063f7e83aee146101c457600080fd5b80638da5cb5b1461016d5780639d8ecd851461018b57600080fd5b806354c05fbe116100a757806354c05fbe146101155780636465e69f1461014b578063715018a61461016557600080fd5b806315ce45a2146100c35780634c0a2ffc14610100575b600080fd5b6100d66100d1366004610bd3565b6101e7565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61011361010e366004610c50565b61029a565b005b6100d6610123366004610c87565b60656020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b610153600181565b60405160ff90911681526020016100f7565b6101136102b0565b60335473ffffffffffffffffffffffffffffffffffffffff166100d6565b610113610199366004610ce7565b6102c4565b6101136101ac366004610d6a565b610541565b6101136101bf366004610d6a565b6106dc565b6101d76101d2366004610d87565b610793565b60405190151581526020016100f7565b600080606560006101f88686610829565b63ffffffff16815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff16905080610293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4e6f2049534d20666f756e6420666f72206f726967696e20646f6d61696e000060448201526064015b60405180910390fd5b9392505050565b6102a261084c565b6102ac82826108cd565b5050565b6102b861084c565b6102c260006109d9565b565b600054610100900460ff16158080156102e45750600054600160ff909116105b806102fe5750303b1580156102fe575060005460ff166001145b61038a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161028a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156103e857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6103f0610a50565b838214610459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6c656e677468206d69736d617463680000000000000000000000000000000000604482015260640161028a565b8360005b818110156104cb576104bb87878381811061047a5761047a610df3565b905060200201602081019061048f9190610c87565b8686848181106104a1576104a1610df3565b90506020020160208101906104b69190610d6a565b6108cd565b6104c481610e22565b905061045d565b506104d5876109d9565b50801561053957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b600054610100900460ff16158080156105615750600054600160ff909116105b8061057b5750303b15801561057b575060005460ff166001145b610607576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161028a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561066557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61066d610a50565b610676826109d9565b80156102ac57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6106e461084c565b73ffffffffffffffffffffffffffffffffffffffff8116610787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161028a565b610790816109d9565b50565b600061079f83836101e7565b73ffffffffffffffffffffffffffffffffffffffff1663f7e83aee868686866040518563ffffffff1660e01b81526004016107dd9493929190610eca565b6020604051808303816000875af11580156107fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108209190610efc565b95945050505050565b6000610839600960058486610f1e565b61084291610f48565b60e01c9392505050565b60335473ffffffffffffffffffffffffffffffffffffffff1633146102c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161028a565b73ffffffffffffffffffffffffffffffffffffffff81163b61094b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e74726163740000000000000000000000000000000000000000000000604482015260640161028a565b63ffffffff821660008181526065602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915591519182527f834d0c4fb66203b6219238b31d4180fd7d009ac15b986467828687a59ee9f1db910160405180910390a25050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610ae7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161028a565b6102c2600054610100900460ff16610b81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161028a565b6102c2336109d9565b60008083601f840112610b9c57600080fd5b50813567ffffffffffffffff811115610bb457600080fd5b602083019150836020828501011115610bcc57600080fd5b9250929050565b60008060208385031215610be657600080fd5b823567ffffffffffffffff811115610bfd57600080fd5b610c0985828601610b8a565b90969095509350505050565b803563ffffffff81168114610c2957600080fd5b919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461079057600080fd5b60008060408385031215610c6357600080fd5b610c6c83610c15565b91506020830135610c7c81610c2e565b809150509250929050565b600060208284031215610c9957600080fd5b61029382610c15565b60008083601f840112610cb457600080fd5b50813567ffffffffffffffff811115610ccc57600080fd5b6020830191508360208260051b8501011115610bcc57600080fd5b600080600080600060608688031215610cff57600080fd5b8535610d0a81610c2e565b9450602086013567ffffffffffffffff80821115610d2757600080fd5b610d3389838a01610ca2565b90965094506040880135915080821115610d4c57600080fd5b50610d5988828901610ca2565b969995985093965092949392505050565b600060208284031215610d7c57600080fd5b813561029381610c2e565b60008060008060408587031215610d9d57600080fd5b843567ffffffffffffffff80821115610db557600080fd5b610dc188838901610b8a565b90965094506020870135915080821115610dda57600080fd5b50610de787828801610b8a565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610e7a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b604081526000610ede604083018688610e81565b8281036020840152610ef1818587610e81565b979650505050505050565b600060208284031215610f0e57600080fd5b8151801515811461029357600080fd5b60008085851115610f2e57600080fd5b83861115610f3b57600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015610f885780818660040360031b1b83161692505b50509291505056fea26469706673582212206bfff05366847b198bf50d231c046a6c3ebbaad858f6ff0c3bbbe626cac1c95264736f6c63430008110033";
16
16
  static readonly abi: ({
17
17
  anonymous: boolean;
18
18
  inputs: {
@@ -218,7 +218,7 @@ const _abi = [
218
218
  type: "function",
219
219
  },
220
220
  ];
221
- const _bytecode = "0x608060405234801561001057600080fd5b50610fc6806100206000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80638da5cb5b11610076578063c4d66de81161005b578063c4d66de81461019e578063f2fde38b146101b1578063f7e83aee146101c457600080fd5b80638da5cb5b1461016d5780639d8ecd851461018b57600080fd5b806354c05fbe116100a757806354c05fbe146101155780636465e69f1461014b578063715018a61461016557600080fd5b806315ce45a2146100c35780634c0a2ffc14610100575b600080fd5b6100d66100d1366004610bd3565b6101e7565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61011361010e366004610c50565b61029a565b005b6100d6610123366004610c87565b60656020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b610153600181565b60405160ff90911681526020016100f7565b6101136102b0565b60335473ffffffffffffffffffffffffffffffffffffffff166100d6565b610113610199366004610ce7565b6102c4565b6101136101ac366004610d6a565b610541565b6101136101bf366004610d6a565b6106dc565b6101d76101d2366004610d87565b610793565b60405190151581526020016100f7565b600080606560006101f88686610829565b63ffffffff16815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff16905080610293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4e6f2049534d20666f756e6420666f72206f726967696e20646f6d61696e000060448201526064015b60405180910390fd5b9392505050565b6102a261084c565b6102ac82826108cd565b5050565b6102b861084c565b6102c260006109d9565b565b600054610100900460ff16158080156102e45750600054600160ff909116105b806102fe5750303b1580156102fe575060005460ff166001145b61038a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161028a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156103e857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6103f0610a50565b838214610459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6c656e677468206d69736d617463680000000000000000000000000000000000604482015260640161028a565b8360005b818110156104cb576104bb87878381811061047a5761047a610df3565b905060200201602081019061048f9190610c87565b8686848181106104a1576104a1610df3565b90506020020160208101906104b69190610d6a565b6108cd565b6104c481610e22565b905061045d565b506104d5876109d9565b50801561053957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b600054610100900460ff16158080156105615750600054600160ff909116105b8061057b5750303b15801561057b575060005460ff166001145b610607576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161028a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561066557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61066d610a50565b610676826109d9565b80156102ac57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6106e461084c565b73ffffffffffffffffffffffffffffffffffffffff8116610787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161028a565b610790816109d9565b50565b600061079f83836101e7565b73ffffffffffffffffffffffffffffffffffffffff1663f7e83aee868686866040518563ffffffff1660e01b81526004016107dd9493929190610eca565b6020604051808303816000875af11580156107fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108209190610efc565b95945050505050565b6000610839600960058486610f1e565b61084291610f48565b60e01c9392505050565b60335473ffffffffffffffffffffffffffffffffffffffff1633146102c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161028a565b73ffffffffffffffffffffffffffffffffffffffff81163b61094b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e74726163740000000000000000000000000000000000000000000000604482015260640161028a565b63ffffffff821660008181526065602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915591519182527f834d0c4fb66203b6219238b31d4180fd7d009ac15b986467828687a59ee9f1db910160405180910390a25050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610ae7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161028a565b6102c2600054610100900460ff16610b81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161028a565b6102c2336109d9565b60008083601f840112610b9c57600080fd5b50813567ffffffffffffffff811115610bb457600080fd5b602083019150836020828501011115610bcc57600080fd5b9250929050565b60008060208385031215610be657600080fd5b823567ffffffffffffffff811115610bfd57600080fd5b610c0985828601610b8a565b90969095509350505050565b803563ffffffff81168114610c2957600080fd5b919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461079057600080fd5b60008060408385031215610c6357600080fd5b610c6c83610c15565b91506020830135610c7c81610c2e565b809150509250929050565b600060208284031215610c9957600080fd5b61029382610c15565b60008083601f840112610cb457600080fd5b50813567ffffffffffffffff811115610ccc57600080fd5b6020830191508360208260051b8501011115610bcc57600080fd5b600080600080600060608688031215610cff57600080fd5b8535610d0a81610c2e565b9450602086013567ffffffffffffffff80821115610d2757600080fd5b610d3389838a01610ca2565b90965094506040880135915080821115610d4c57600080fd5b50610d5988828901610ca2565b969995985093965092949392505050565b600060208284031215610d7c57600080fd5b813561029381610c2e565b60008060008060408587031215610d9d57600080fd5b843567ffffffffffffffff80821115610db557600080fd5b610dc188838901610b8a565b90965094506020870135915080821115610dda57600080fd5b50610de787828801610b8a565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610e7a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b604081526000610ede604083018688610e81565b8281036020840152610ef1818587610e81565b979650505050505050565b600060208284031215610f0e57600080fd5b8151801515811461029357600080fd5b60008085851115610f2e57600080fd5b83861115610f3b57600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015610f885780818660040360031b1b83161692505b50509291505056fea2646970667358221220fa41870bbe2a9abd370903237007fab0f9a63fc5dab229d17dce1c5a16b8c44364736f6c63430008110033";
221
+ const _bytecode = "0x608060405234801561001057600080fd5b50610fc6806100206000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80638da5cb5b11610076578063c4d66de81161005b578063c4d66de81461019e578063f2fde38b146101b1578063f7e83aee146101c457600080fd5b80638da5cb5b1461016d5780639d8ecd851461018b57600080fd5b806354c05fbe116100a757806354c05fbe146101155780636465e69f1461014b578063715018a61461016557600080fd5b806315ce45a2146100c35780634c0a2ffc14610100575b600080fd5b6100d66100d1366004610bd3565b6101e7565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61011361010e366004610c50565b61029a565b005b6100d6610123366004610c87565b60656020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b610153600181565b60405160ff90911681526020016100f7565b6101136102b0565b60335473ffffffffffffffffffffffffffffffffffffffff166100d6565b610113610199366004610ce7565b6102c4565b6101136101ac366004610d6a565b610541565b6101136101bf366004610d6a565b6106dc565b6101d76101d2366004610d87565b610793565b60405190151581526020016100f7565b600080606560006101f88686610829565b63ffffffff16815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff16905080610293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4e6f2049534d20666f756e6420666f72206f726967696e20646f6d61696e000060448201526064015b60405180910390fd5b9392505050565b6102a261084c565b6102ac82826108cd565b5050565b6102b861084c565b6102c260006109d9565b565b600054610100900460ff16158080156102e45750600054600160ff909116105b806102fe5750303b1580156102fe575060005460ff166001145b61038a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161028a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156103e857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6103f0610a50565b838214610459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6c656e677468206d69736d617463680000000000000000000000000000000000604482015260640161028a565b8360005b818110156104cb576104bb87878381811061047a5761047a610df3565b905060200201602081019061048f9190610c87565b8686848181106104a1576104a1610df3565b90506020020160208101906104b69190610d6a565b6108cd565b6104c481610e22565b905061045d565b506104d5876109d9565b50801561053957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b600054610100900460ff16158080156105615750600054600160ff909116105b8061057b5750303b15801561057b575060005460ff166001145b610607576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161028a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561066557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61066d610a50565b610676826109d9565b80156102ac57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6106e461084c565b73ffffffffffffffffffffffffffffffffffffffff8116610787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161028a565b610790816109d9565b50565b600061079f83836101e7565b73ffffffffffffffffffffffffffffffffffffffff1663f7e83aee868686866040518563ffffffff1660e01b81526004016107dd9493929190610eca565b6020604051808303816000875af11580156107fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108209190610efc565b95945050505050565b6000610839600960058486610f1e565b61084291610f48565b60e01c9392505050565b60335473ffffffffffffffffffffffffffffffffffffffff1633146102c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161028a565b73ffffffffffffffffffffffffffffffffffffffff81163b61094b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e74726163740000000000000000000000000000000000000000000000604482015260640161028a565b63ffffffff821660008181526065602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915591519182527f834d0c4fb66203b6219238b31d4180fd7d009ac15b986467828687a59ee9f1db910160405180910390a25050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610ae7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161028a565b6102c2600054610100900460ff16610b81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161028a565b6102c2336109d9565b60008083601f840112610b9c57600080fd5b50813567ffffffffffffffff811115610bb457600080fd5b602083019150836020828501011115610bcc57600080fd5b9250929050565b60008060208385031215610be657600080fd5b823567ffffffffffffffff811115610bfd57600080fd5b610c0985828601610b8a565b90969095509350505050565b803563ffffffff81168114610c2957600080fd5b919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461079057600080fd5b60008060408385031215610c6357600080fd5b610c6c83610c15565b91506020830135610c7c81610c2e565b809150509250929050565b600060208284031215610c9957600080fd5b61029382610c15565b60008083601f840112610cb457600080fd5b50813567ffffffffffffffff811115610ccc57600080fd5b6020830191508360208260051b8501011115610bcc57600080fd5b600080600080600060608688031215610cff57600080fd5b8535610d0a81610c2e565b9450602086013567ffffffffffffffff80821115610d2757600080fd5b610d3389838a01610ca2565b90965094506040880135915080821115610d4c57600080fd5b50610d5988828901610ca2565b969995985093965092949392505050565b600060208284031215610d7c57600080fd5b813561029381610c2e565b60008060008060408587031215610d9d57600080fd5b843567ffffffffffffffff80821115610db557600080fd5b610dc188838901610b8a565b90965094506020870135915080821115610dda57600080fd5b50610de787828801610b8a565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610e7a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b604081526000610ede604083018688610e81565b8281036020840152610ef1818587610e81565b979650505050505050565b600060208284031215610f0e57600080fd5b8151801515811461029357600080fd5b60008085851115610f2e57600080fd5b83861115610f3b57600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015610f885780818660040360031b1b83161692505b50509291505056fea26469706673582212206bfff05366847b198bf50d231c046a6c3ebbaad858f6ff0c3bbbe626cac1c95264736f6c63430008110033";
222
222
  const isSuperArgs = (xs) => xs.length > 1;
223
223
  class DomainRoutingIsm__factory extends ethers_1.ContractFactory {
224
224
  constructor(...args) {
@@ -12,7 +12,7 @@ export declare class InterchainAccountIsm__factory extends ContractFactory {
12
12
  }): TransactionRequest;
13
13
  attach(address: string): InterchainAccountIsm;
14
14
  connect(signer: Signer): InterchainAccountIsm__factory;
15
- static readonly bytecode = "0x60a060405234801561001057600080fd5b5060405161056338038061056383398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516104d961008a600039600060f401526104d96000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806315ce45a2146100465780636465e69f14610083578063f7e83aee1461009d575b600080fd5b6100596100543660046102a9565b6100c0565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61008b600181565b60405160ff909116815260200161007a565b6100b06100ab3660046102eb565b610192565b604051901515815260200161007a565b6000806100d56100d08585610228565b610244565b905073ffffffffffffffffffffffffffffffffffffffff8116610189577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e5f516e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561015d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101819190610357565b91505061018c565b90505b92915050565b600061019e83836100c0565b73ffffffffffffffffffffffffffffffffffffffff1663f7e83aee868686866040518563ffffffff1660e01b81526004016101dc94939291906103dd565b6020604051808303816000875af11580156101fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061021f919061040f565b95945050505050565b36600061023883604d8187610431565b915091505b9250929050565b60006102546040602c8486610431565b61025d9161045b565b60601c9392505050565b60008083601f84011261027957600080fd5b50813567ffffffffffffffff81111561029157600080fd5b60208301915083602082850101111561023d57600080fd5b600080602083850312156102bc57600080fd5b823567ffffffffffffffff8111156102d357600080fd5b6102df85828601610267565b90969095509350505050565b6000806000806040858703121561030157600080fd5b843567ffffffffffffffff8082111561031957600080fd5b61032588838901610267565b9096509450602087013591508082111561033e57600080fd5b5061034b87828801610267565b95989497509550505050565b60006020828403121561036957600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461038d57600080fd5b9392505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6040815260006103f1604083018688610394565b8281036020840152610404818587610394565b979650505050505050565b60006020828403121561042157600080fd5b8151801515811461038d57600080fd5b6000808585111561044157600080fd5b8386111561044e57600080fd5b5050820193919092039150565b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000813581811691601485101561049b5780818660140360031b1b83161692505b50509291505056fea264697066735822122061f88b94d634c75a1f310cec075ba7637dabc40c508f3e50c8fe7b41b47e042a64736f6c63430008110033";
15
+ static readonly bytecode = "0x60a060405234801561001057600080fd5b5060405161056338038061056383398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516104d961008a600039600060f401526104d96000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806315ce45a2146100465780636465e69f14610083578063f7e83aee1461009d575b600080fd5b6100596100543660046102a9565b6100c0565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61008b600181565b60405160ff909116815260200161007a565b6100b06100ab3660046102eb565b610192565b604051901515815260200161007a565b6000806100d56100d08585610228565b610244565b905073ffffffffffffffffffffffffffffffffffffffff8116610189577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e5f516e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561015d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101819190610357565b91505061018c565b90505b92915050565b600061019e83836100c0565b73ffffffffffffffffffffffffffffffffffffffff1663f7e83aee868686866040518563ffffffff1660e01b81526004016101dc94939291906103dd565b6020604051808303816000875af11580156101fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061021f919061040f565b95945050505050565b36600061023883604d8187610431565b915091505b9250929050565b60006102546040602c8486610431565b61025d9161045b565b60601c9392505050565b60008083601f84011261027957600080fd5b50813567ffffffffffffffff81111561029157600080fd5b60208301915083602082850101111561023d57600080fd5b600080602083850312156102bc57600080fd5b823567ffffffffffffffff8111156102d357600080fd5b6102df85828601610267565b90969095509350505050565b6000806000806040858703121561030157600080fd5b843567ffffffffffffffff8082111561031957600080fd5b61032588838901610267565b9096509450602087013591508082111561033e57600080fd5b5061034b87828801610267565b95989497509550505050565b60006020828403121561036957600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461038d57600080fd5b9392505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6040815260006103f1604083018688610394565b8281036020840152610404818587610394565b979650505050505050565b60006020828403121561042157600080fd5b8151801515811461038d57600080fd5b6000808585111561044157600080fd5b8386111561044e57600080fd5b5050820193919092039150565b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000813581811691601485101561049b5780818660140360031b1b83161692505b50509291505056fea2646970667358221220297be59e2a6439d1ca1526d10a8f1c9665c5b3ddadd7fd29d9d596a76ae581c064736f6c63430008110033";
16
16
  static readonly abi: ({
17
17
  inputs: {
18
18
  internalType: string;
@@ -72,7 +72,7 @@ const _abi = [
72
72
  type: "function",
73
73
  },
74
74
  ];
75
- const _bytecode = "0x60a060405234801561001057600080fd5b5060405161056338038061056383398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516104d961008a600039600060f401526104d96000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806315ce45a2146100465780636465e69f14610083578063f7e83aee1461009d575b600080fd5b6100596100543660046102a9565b6100c0565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61008b600181565b60405160ff909116815260200161007a565b6100b06100ab3660046102eb565b610192565b604051901515815260200161007a565b6000806100d56100d08585610228565b610244565b905073ffffffffffffffffffffffffffffffffffffffff8116610189577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e5f516e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561015d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101819190610357565b91505061018c565b90505b92915050565b600061019e83836100c0565b73ffffffffffffffffffffffffffffffffffffffff1663f7e83aee868686866040518563ffffffff1660e01b81526004016101dc94939291906103dd565b6020604051808303816000875af11580156101fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061021f919061040f565b95945050505050565b36600061023883604d8187610431565b915091505b9250929050565b60006102546040602c8486610431565b61025d9161045b565b60601c9392505050565b60008083601f84011261027957600080fd5b50813567ffffffffffffffff81111561029157600080fd5b60208301915083602082850101111561023d57600080fd5b600080602083850312156102bc57600080fd5b823567ffffffffffffffff8111156102d357600080fd5b6102df85828601610267565b90969095509350505050565b6000806000806040858703121561030157600080fd5b843567ffffffffffffffff8082111561031957600080fd5b61032588838901610267565b9096509450602087013591508082111561033e57600080fd5b5061034b87828801610267565b95989497509550505050565b60006020828403121561036957600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461038d57600080fd5b9392505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6040815260006103f1604083018688610394565b8281036020840152610404818587610394565b979650505050505050565b60006020828403121561042157600080fd5b8151801515811461038d57600080fd5b6000808585111561044157600080fd5b8386111561044e57600080fd5b5050820193919092039150565b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000813581811691601485101561049b5780818660140360031b1b83161692505b50509291505056fea264697066735822122061f88b94d634c75a1f310cec075ba7637dabc40c508f3e50c8fe7b41b47e042a64736f6c63430008110033";
75
+ const _bytecode = "0x60a060405234801561001057600080fd5b5060405161056338038061056383398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516104d961008a600039600060f401526104d96000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806315ce45a2146100465780636465e69f14610083578063f7e83aee1461009d575b600080fd5b6100596100543660046102a9565b6100c0565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61008b600181565b60405160ff909116815260200161007a565b6100b06100ab3660046102eb565b610192565b604051901515815260200161007a565b6000806100d56100d08585610228565b610244565b905073ffffffffffffffffffffffffffffffffffffffff8116610189577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e5f516e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561015d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101819190610357565b91505061018c565b90505b92915050565b600061019e83836100c0565b73ffffffffffffffffffffffffffffffffffffffff1663f7e83aee868686866040518563ffffffff1660e01b81526004016101dc94939291906103dd565b6020604051808303816000875af11580156101fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061021f919061040f565b95945050505050565b36600061023883604d8187610431565b915091505b9250929050565b60006102546040602c8486610431565b61025d9161045b565b60601c9392505050565b60008083601f84011261027957600080fd5b50813567ffffffffffffffff81111561029157600080fd5b60208301915083602082850101111561023d57600080fd5b600080602083850312156102bc57600080fd5b823567ffffffffffffffff8111156102d357600080fd5b6102df85828601610267565b90969095509350505050565b6000806000806040858703121561030157600080fd5b843567ffffffffffffffff8082111561031957600080fd5b61032588838901610267565b9096509450602087013591508082111561033e57600080fd5b5061034b87828801610267565b95989497509550505050565b60006020828403121561036957600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461038d57600080fd5b9392505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6040815260006103f1604083018688610394565b8281036020840152610404818587610394565b979650505050505050565b60006020828403121561042157600080fd5b8151801515811461038d57600080fd5b6000808585111561044157600080fd5b8386111561044e57600080fd5b5050820193919092039150565b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000813581811691601485101561049b5780818660140360031b1b83161692505b50509291505056fea2646970667358221220297be59e2a6439d1ca1526d10a8f1c9665c5b3ddadd7fd29d9d596a76ae581c064736f6c63430008110033";
76
76
  const isSuperArgs = (xs) => xs.length > 1;
77
77
  class InterchainAccountIsm__factory extends ethers_1.ContractFactory {
78
78
  constructor(...args) {
@@ -12,7 +12,7 @@ export declare class InterchainAccountRouter__factory extends ContractFactory {
12
12
  }): TransactionRequest;
13
13
  attach(address: string): InterchainAccountRouter;
14
14
  connect(signer: Signer): InterchainAccountRouter__factory;
15
- static readonly bytecode = "0x60a06040523480156200001157600080fd5b506040516200301e3803806200301e833981016040819052620000349162000043565b63ffffffff1660805262000072565b6000602082840312156200005657600080fd5b815163ffffffff811681146200006b57600080fd5b9392505050565b608051612f896200009560003960008181610c820152610fa30152612f896000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c8063940c14dd116100ee578063de523cf311610097578063f1bd6f0a11610071578063f1bd6f0a146103d2578063f2fde38b146103e5578063f3c61d6b146103f8578063f8c8765e1461040b57600080fd5b8063de523cf31461038c578063e9198bf9146103ac578063ef96bb4b146103bf57600080fd5b8063b49c53a7116100c8578063b49c53a714610346578063d5438eae14610359578063dd91cc871461037957600080fd5b8063940c14dd1461030d5780639662e8ac14610320578063a5da36111461033357600080fd5b806339bb4ad91161015b5780635a007b7e116101355780635a007b7e146102b4578063715018a6146102d45780638da5cb5b146102dc5780638e45f8fc146102fa57600080fd5b806339bb4ad91461026c578063440df4f41461028c57806356d5d475146102a157600080fd5b80630e72cc061161018c5780630e72cc06146102265780631ddce514146102395780632ead72f61461024c57600080fd5b8063061197d5146101b357806309643ff7146101d95780630e258285146101ee575b600080fd5b6101c66101c1366004611d64565b61041e565b6040519081526020015b60405180910390f35b6101ec6101e7366004611dce565b610446565b005b6102016101fc366004611e2c565b61045e565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d0565b6101ec610234366004611e61565b610495565b6101c6610247366004611fb1565b6104a9565b6101c661025a36600461201b565b609b6020526000908152604090205481565b6066546102019073ffffffffffffffffffffffffffffffffffffffff1681565b6102946104f2565b6040516101d09190612038565b6101ec6102af366004612082565b610576565b6101c66102c236600461201b565b609c6020526000908152604090205481565b6101ec6106b1565b60335473ffffffffffffffffffffffffffffffffffffffff16610201565b61020161030836600461210b565b6106c5565b61020161031b366004612161565b610708565b61020161032e36600461210b565b6108b3565b610201610341366004612161565b6108d8565b6101ec61035436600461219e565b61095d565b6065546102019073ffffffffffffffffffffffffffffffffffffffff1681565b6101c66103873660046121ca565b610975565b6067546102019073ffffffffffffffffffffffffffffffffffffffff1681565b6101ec6103ba36600461221f565b6109af565b6102016103cd36600461228b565b610a90565b6101ec6103e0366004611e61565b610d04565b6101ec6103f3366004611e61565b610d15565b6101ec610406366004611e61565b610dc9565b6101ec6104193660046122ce565b610dda565b60008061042d338686866111bc565b905061043b878787846111e0565b979650505050505050565b61044e61134f565b6104598383836113d0565b505050565b63ffffffff82166000908152609b6020908152604080832054609c90925282205461048a848383610a90565b925050505b92915050565b61049d61134f565b6104a6816115c4565b50565b63ffffffff84166000908152609b6020908152604080832054609c909252822054826104d833838989896116d2565b90506104e6888484846111e0565b98975050505050505050565b6060609a80548060200260200160405190810160405280929190818152602001828054801561056c57602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff168152602001906004019060208260030104928301926001038202915080841161052f5790505b5050505050905090565b60655473ffffffffffffffffffffffffffffffffffffffff1633146105fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f216d61696c626f7800000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600080600061060b8585611793565b925092509250600061062088858961031b8790565b6040517f65604f8300000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8216906365604f83906106759085906004016123c3565b600060405180830381600087803b15801561068f57600080fd5b505af11580156106a3573d6000803e3d6000fd5b505050505050505050505050565b6106b961134f565b6106c360006117b1565b565b60006106ff8573ffffffffffffffffffffffffffffffffffffffff861673ffffffffffffffffffffffffffffffffffffffff861685610708565b95945050505050565b6040805160e086901b7fffffffff0000000000000000000000000000000000000000000000000000000016602080830191909152602482018690526044820185905273ffffffffffffffffffffffffffffffffffffffff84166064808401919091528351808403909101815260849092019092528051910120600090600061078f82611828565b905073ffffffffffffffffffffffffffffffffffffffff81163b6108a957609854604080517f3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000602082015260609290921b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660348301527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006048830152805180830360370181526057909201905261084a60008483611836565b6040805173ffffffffffffffffffffffffffffffffffffffff808916825283166020820152919350889163ffffffff8b16917fee33e8a4a721d99ee890b32b36b48bc5a14d276b7e2510763a52f839d178edf6910160405180910390a3505b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff83811690851661043b878284875b6040805160e086901b7fffffffff0000000000000000000000000000000000000000000000000000000016602080830191909152602482018690526044820185905273ffffffffffffffffffffffffffffffffffffffff841660648084019190915283518084039091018152608490920190925280519101206000906106ff90611828565b61096561134f565b610971828260006113d0565b5050565b63ffffffff83166000908152609b6020908152604080832054609c9092528220546109a3868383888861041e565b925050505b9392505050565b6109b761134f565b828114610a20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016105f3565b60005b83811015610a8957610a77858583818110610a4057610a406123d6565b9050602002016020810190610a55919061201b565b848484818110610a6757610a676123d6565b905060200201356000801b6113d0565b610a82600182612405565b9050610a23565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff8316610b35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f6e6f20726f757465722073706563696669656420666f722064657374696e617460448201527f696f6e000000000000000000000000000000000000000000000000000000000060648201526084016105f3565b604080517fd6000000000000000000000000000000000000000000000000000000000000006020808301919091527f94000000000000000000000000000000000000000000000000000000000000006021830152606086811b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090811660228501527f01000000000000000000000000000000000000000000000000000000000000006036850152845160178186030181526037850186528051908401207f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000060578601529182901b16606b8401527f5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000607f8401528351606e818503018152608e840185528051818401207fffffffff000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060e01b1660ae86015273ffffffffffffffffffffffffffffffffffffffff8a811660b28701523060d2870152881660f2808701919091528651808703909101815261011290950190955283519390920192909220919290916104e6818389611995565b610d0c61134f565b6104a6816119bf565b610d1d61134f565b73ffffffffffffffffffffffffffffffffffffffff8116610dc0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105f3565b6104a6816117b1565b610dd161134f565b6104a681611aae565b600054610100900460ff1615808015610dfa5750600054600160ff909116105b80610e145750303b158015610e14575060005460ff166001145b610ea0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105f3565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610efe57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610f0a85858585611b9d565b606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d3638f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9b919061243f565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff161461102f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f646f6d61696e206d69736d61746368000000000000000000000000000000000060448201526064016105f3565b3060405161103c90611cf9565b73ffffffffffffffffffffffffffffffffffffffff9091168152602001604051809103906000f080158015611075573d6000803e3d6000fd5b50609880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316179055604080517f3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000602082015260609290921b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660348301527f5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000604883015280518083036037018152605790920190526000908051602090910120609955508015610a8957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b60606106ff73ffffffffffffffffffffffffffffffffffffffff8616858585611c5e565b60008361126f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f6e6f20726f757465722073706563696669656420666f722064657374696e617460448201527f696f6e000000000000000000000000000000000000000000000000000000000060648201526084016105f3565b6040805185815260208101859052339163ffffffff8816917f4fd2d122031a8a1e6c1aed1e9128109dff5ce6b929edfa90cc52abd95f086e73910160405180910390a36065546040517ffa31de0100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063fa31de019061130c9088908890879060040161245c565b6020604051808303816000875af115801561132b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ff9190612481565b60335473ffffffffffffffffffffffffffffffffffffffff1633146106c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f3565b81611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f696e76616c696420726f7574657220616464726573730000000000000000000060448201526064016105f3565b63ffffffff83166000908152609b6020526040902054156114da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f726f7574657220616e642049534d2064656661756c74732061726520696d6d7560448201527f7461626c65206f6e63652073657400000000000000000000000000000000000060648201526084016105f3565b609a805460018101909155600881047f44da158ba27f9252712a74ff6a55c5d531f69609f1f6e7f17c4443a8e2089be401805463ffffffff86811660046007909516949094026101000a8481029102199091161790556000818152609b60209081526040808320869055609c82529182902084905590518481527f97fd51fef1f80c854cbd0150c248e8b2ac4ecdc97cc05e742b5f61c9f4dc6458910160405180910390a28263ffffffff167fba9685b280b1e8f64909e2dfd7465463e6a0eabbaafd732402e7a619699a3821826040516115b791815260200190565b60405180910390a2505050565b73ffffffffffffffffffffffffffffffffffffffff811615806115fd575073ffffffffffffffffffffffffffffffffffffffff81163b15155b611663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016105f3565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517ffec811ed4e60aebdaf7a79cad8a97196bf56e35362f039705598226d30c9d24890600090a250565b60408051600180825281830190925260609160009190816020015b604080516060808201835260008083526020830152918101919091528152602001906001900390816116ed579050509050611729858585611c90565b8160008151811061173c5761173c6123d6565b60200260200101819052506117648773ffffffffffffffffffffffffffffffffffffffff1690565b86826040516020016117789392919061249a565b60405160208183030381529060405291505095945050505050565b60008060606117a4848601866124b9565b9250925092509250925092565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600061048f82609954611cec565b6000834710156118a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e636500000060448201526064016105f3565b815160000361190d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f60448201526064016105f3565b8282516020840186f5905073ffffffffffffffffffffffffffffffffffffffff81166109a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f790000000000000060448201526064016105f3565b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b8073ffffffffffffffffffffffffffffffffffffffff81163b611a3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016105f3565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517fb87f5a0bface22cde699143559fb99f990ae54eea236995fc54178af91af859f90600090a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b611b2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016105f3565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517f7a61e573722ff8b205c8962b59d37e7d30573f368965597a844a94872204ebd790600090a25050565b600054610100900460ff16611c34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105f3565b611c3d84611aae565b611c46836119bf565b611c4f826115c4565b611c58816117b1565b50505050565b606084848484604051602001611c7794939291906125f6565b6040516020818303038152906040529050949350505050565b604080516060808201835260008083526020830152918101919091526040518060600160405280611cd48673ffffffffffffffffffffffffffffffffffffffff1690565b81526020018481526020018381525090509392505050565b60006109a8838330611995565b6107f88061275c83390190565b63ffffffff811681146104a657600080fd5b60008083601f840112611d2a57600080fd5b50813567ffffffffffffffff811115611d4257600080fd5b6020830191508360208260051b8501011115611d5d57600080fd5b9250929050565b600080600080600060808688031215611d7c57600080fd5b8535611d8781611d06565b94506020860135935060408601359250606086013567ffffffffffffffff811115611db157600080fd5b611dbd88828901611d18565b969995985093965092949392505050565b600080600060608486031215611de357600080fd5b8335611dee81611d06565b95602085013595506040909401359392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611e2757600080fd5b919050565b60008060408385031215611e3f57600080fd5b8235611e4a81611d06565b9150611e5860208401611e03565b90509250929050565b600060208284031215611e7357600080fd5b6109a882611e03565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611ece57611ece611e7c565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611f1b57611f1b611e7c565b604052919050565b600082601f830112611f3457600080fd5b813567ffffffffffffffff811115611f4e57611f4e611e7c565b611f7f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601611ed4565b818152846020838601011115611f9457600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611fc757600080fd5b8435611fd281611d06565b9350611fe060208601611e03565b925060408501359150606085013567ffffffffffffffff81111561200357600080fd5b61200f87828801611f23565b91505092959194509250565b60006020828403121561202d57600080fd5b81356109a881611d06565b6020808252825182820181905260009190848201906040850190845b8181101561207657835163ffffffff1683529284019291840191600101612054565b50909695505050505050565b6000806000806060858703121561209857600080fd5b84356120a381611d06565b935060208501359250604085013567ffffffffffffffff808211156120c757600080fd5b818701915087601f8301126120db57600080fd5b8135818111156120ea57600080fd5b8860208285010111156120fc57600080fd5b95989497505060200194505050565b6000806000806080858703121561212157600080fd5b843561212c81611d06565b935061213a60208601611e03565b925061214860408601611e03565b915061215660608601611e03565b905092959194509250565b6000806000806080858703121561217757600080fd5b843561218281611d06565b9350602085013592506040850135915061215660608601611e03565b600080604083850312156121b157600080fd5b82356121bc81611d06565b946020939093013593505050565b6000806000604084860312156121df57600080fd5b83356121ea81611d06565b9250602084013567ffffffffffffffff81111561220657600080fd5b61221286828701611d18565b9497909650939450505050565b6000806000806040858703121561223557600080fd5b843567ffffffffffffffff8082111561224d57600080fd5b61225988838901611d18565b9096509450602087013591508082111561227257600080fd5b5061227f87828801611d18565b95989497509550505050565b6000806000606084860312156122a057600080fd5b6122a984611e03565b92506122b760208501611e03565b91506122c560408501611e03565b90509250925092565b600080600080608085870312156122e457600080fd5b61212c85611e03565b6000815180845260005b81811015612313576020818501810151868301820152016122f7565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6000815180845260208085019450848260051b860182860160005b858110156123b657838303895281518051845285810151868501526040908101516060918501829052906123a2818601836122ed565b9a87019a945050509084019060010161236c565b5090979650505050505050565b6020815260006109a86020830184612351565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8082018082111561048f577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006020828403121561245157600080fd5b81516109a881611d06565b63ffffffff841681528260208201526060604082015260006106ff60608301846122ed565b60006020828403121561249357600080fd5b5051919050565b8381528260208201526060604082015260006106ff6060830184612351565b6000806000606084860312156124ce57600080fd5b833592506020808501359250604085013567ffffffffffffffff808211156124f557600080fd5b818701915087601f83011261250957600080fd5b81358181111561251b5761251b611e7c565b8060051b61252a858201611ed4565b918252838101850191858101908b84111561254457600080fd5b86860192505b838310156125e5578235858111156125625760008081fd5b86016060818e037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00112156125975760008081fd5b61259f611eab565b8882013581526040820135898201526060820135878111156125c15760008081fd5b6125cf8f8b83860101611f23565b604083015250835250918601919086019061254a565b809750505050505050509250925092565b60006060808301878452602087818601526040838187015282878452608093508387019050838860051b8801018960005b8a811015612749577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808a840301845281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18d360301811261268857600080fd5b8c0180358452868101358785015285810135368290037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe10181126126cb57600080fd5b01868101903567ffffffffffffffff8111156126e657600080fd5b8036038213156126f557600080fd5b8987860152808a86015280828a87013760008582018a015294870194601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169093018701925090850190600101612627565b50909c9b50505050505050505050505056fe60a060405234801561001057600080fd5b506040516107f83803806107f883398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b60805161076861009060003960008181606d015260d001526107686000f3fe60806040526004361061002d5760003560e01c806365604f83146100395780638da5cb5b1461005b57600080fd5b3661003457005b600080fd5b34801561004557600080fd5b506100596100543660046103f7565b6100b8565b005b34801561006757600080fd5b5061008f7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461015c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e6572000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b61016e6101698284610513565b610172565b5050565b80516000905b808210156101ae576101a283838151811061019557610195610649565b60200260200101516101b3565b50816001019150610178565b505050565b80516060906101cb90836040015184602001516101d1565b92915050565b60606101f784848460405180606001604052806029815260200161070a602991396101ff565b949350505050565b606082471015610291576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610153565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516102ba919061069c565b60006040518083038185875af1925050503d80600081146102f7576040519150601f19603f3d011682016040523d82523d6000602084013e6102fc565b606091505b509150915061030d87838387610318565b979650505050505050565b606083156103ae5782516000036103a75773ffffffffffffffffffffffffffffffffffffffff85163b6103a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610153565b50816101f7565b6101f783838151156103c35781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015391906106b8565b6000806020838503121561040a57600080fd5b823567ffffffffffffffff8082111561042257600080fd5b818501915085601f83011261043657600080fd5b81358181111561044557600080fd5b8660208260051b850101111561045a57600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156104be576104be61046c565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561050b5761050b61046c565b604052919050565b600067ffffffffffffffff8084111561052e5761052e61046c565b8360051b602061053f8183016104c4565b86815291850191818101903684111561055757600080fd5b865b8481101561063d578035868111156105715760008081fd5b880160603682900312156105855760008081fd5b61058d61049b565b813581528582013586820152604080830135898111156105ad5760008081fd5b9290920191601f36818501126105c35760008081fd5b83358a8111156105d5576105d561046c565b610604897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe084840116016104c4565b9150808252368982870101111561061b5760008081fd5b808986018a840137600090820189015290820152845250918301918301610559565b50979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60005b8381101561069357818101518382015260200161067b565b50506000910152565b600082516106ae818460208701610678565b9190910192915050565b60208152600082518060208401526106d7816040850160208701610678565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a264697066735822122034404533c9ccf1b4047181fc80a826748034c6b8fcbd897a7f6cfa6b9256f04d64736f6c63430008110033a26469706673582212206a12b99aa4202b42cdf88c7f274fa8576aa08f415bccbc558e2f8f024ed1599f64736f6c63430008110033";
15
+ static readonly bytecode = "0x60a06040523480156200001157600080fd5b506040516200301e3803806200301e833981016040819052620000349162000043565b63ffffffff1660805262000072565b6000602082840312156200005657600080fd5b815163ffffffff811681146200006b57600080fd5b9392505050565b608051612f896200009560003960008181610c820152610fa30152612f896000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c8063940c14dd116100ee578063de523cf311610097578063f1bd6f0a11610071578063f1bd6f0a146103d2578063f2fde38b146103e5578063f3c61d6b146103f8578063f8c8765e1461040b57600080fd5b8063de523cf31461038c578063e9198bf9146103ac578063ef96bb4b146103bf57600080fd5b8063b49c53a7116100c8578063b49c53a714610346578063d5438eae14610359578063dd91cc871461037957600080fd5b8063940c14dd1461030d5780639662e8ac14610320578063a5da36111461033357600080fd5b806339bb4ad91161015b5780635a007b7e116101355780635a007b7e146102b4578063715018a6146102d45780638da5cb5b146102dc5780638e45f8fc146102fa57600080fd5b806339bb4ad91461026c578063440df4f41461028c57806356d5d475146102a157600080fd5b80630e72cc061161018c5780630e72cc06146102265780631ddce514146102395780632ead72f61461024c57600080fd5b8063061197d5146101b357806309643ff7146101d95780630e258285146101ee575b600080fd5b6101c66101c1366004611d64565b61041e565b6040519081526020015b60405180910390f35b6101ec6101e7366004611dce565b610446565b005b6102016101fc366004611e2c565b61045e565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d0565b6101ec610234366004611e61565b610495565b6101c6610247366004611fb1565b6104a9565b6101c661025a36600461201b565b609b6020526000908152604090205481565b6066546102019073ffffffffffffffffffffffffffffffffffffffff1681565b6102946104f2565b6040516101d09190612038565b6101ec6102af366004612082565b610576565b6101c66102c236600461201b565b609c6020526000908152604090205481565b6101ec6106b1565b60335473ffffffffffffffffffffffffffffffffffffffff16610201565b61020161030836600461210b565b6106c5565b61020161031b366004612161565b610708565b61020161032e36600461210b565b6108b3565b610201610341366004612161565b6108d8565b6101ec61035436600461219e565b61095d565b6065546102019073ffffffffffffffffffffffffffffffffffffffff1681565b6101c66103873660046121ca565b610975565b6067546102019073ffffffffffffffffffffffffffffffffffffffff1681565b6101ec6103ba36600461221f565b6109af565b6102016103cd36600461228b565b610a90565b6101ec6103e0366004611e61565b610d04565b6101ec6103f3366004611e61565b610d15565b6101ec610406366004611e61565b610dc9565b6101ec6104193660046122ce565b610dda565b60008061042d338686866111bc565b905061043b878787846111e0565b979650505050505050565b61044e61134f565b6104598383836113d0565b505050565b63ffffffff82166000908152609b6020908152604080832054609c90925282205461048a848383610a90565b925050505b92915050565b61049d61134f565b6104a6816115c4565b50565b63ffffffff84166000908152609b6020908152604080832054609c909252822054826104d833838989896116d2565b90506104e6888484846111e0565b98975050505050505050565b6060609a80548060200260200160405190810160405280929190818152602001828054801561056c57602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff168152602001906004019060208260030104928301926001038202915080841161052f5790505b5050505050905090565b60655473ffffffffffffffffffffffffffffffffffffffff1633146105fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f216d61696c626f7800000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600080600061060b8585611793565b925092509250600061062088858961031b8790565b6040517f65604f8300000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8216906365604f83906106759085906004016123c3565b600060405180830381600087803b15801561068f57600080fd5b505af11580156106a3573d6000803e3d6000fd5b505050505050505050505050565b6106b961134f565b6106c360006117b1565b565b60006106ff8573ffffffffffffffffffffffffffffffffffffffff861673ffffffffffffffffffffffffffffffffffffffff861685610708565b95945050505050565b6040805160e086901b7fffffffff0000000000000000000000000000000000000000000000000000000016602080830191909152602482018690526044820185905273ffffffffffffffffffffffffffffffffffffffff84166064808401919091528351808403909101815260849092019092528051910120600090600061078f82611828565b905073ffffffffffffffffffffffffffffffffffffffff81163b6108a957609854604080517f3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000602082015260609290921b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660348301527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006048830152805180830360370181526057909201905261084a60008483611836565b6040805173ffffffffffffffffffffffffffffffffffffffff808916825283166020820152919350889163ffffffff8b16917fee33e8a4a721d99ee890b32b36b48bc5a14d276b7e2510763a52f839d178edf6910160405180910390a3505b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff83811690851661043b878284875b6040805160e086901b7fffffffff0000000000000000000000000000000000000000000000000000000016602080830191909152602482018690526044820185905273ffffffffffffffffffffffffffffffffffffffff841660648084019190915283518084039091018152608490920190925280519101206000906106ff90611828565b61096561134f565b610971828260006113d0565b5050565b63ffffffff83166000908152609b6020908152604080832054609c9092528220546109a3868383888861041e565b925050505b9392505050565b6109b761134f565b828114610a20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016105f3565b60005b83811015610a8957610a77858583818110610a4057610a406123d6565b9050602002016020810190610a55919061201b565b848484818110610a6757610a676123d6565b905060200201356000801b6113d0565b610a82600182612405565b9050610a23565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff8316610b35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f6e6f20726f757465722073706563696669656420666f722064657374696e617460448201527f696f6e000000000000000000000000000000000000000000000000000000000060648201526084016105f3565b604080517fd6000000000000000000000000000000000000000000000000000000000000006020808301919091527f94000000000000000000000000000000000000000000000000000000000000006021830152606086811b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090811660228501527f01000000000000000000000000000000000000000000000000000000000000006036850152845160178186030181526037850186528051908401207f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000060578601529182901b16606b8401527f5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000607f8401528351606e818503018152608e840185528051818401207fffffffff000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060e01b1660ae86015273ffffffffffffffffffffffffffffffffffffffff8a811660b28701523060d2870152881660f2808701919091528651808703909101815261011290950190955283519390920192909220919290916104e6818389611995565b610d0c61134f565b6104a6816119bf565b610d1d61134f565b73ffffffffffffffffffffffffffffffffffffffff8116610dc0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105f3565b6104a6816117b1565b610dd161134f565b6104a681611aae565b600054610100900460ff1615808015610dfa5750600054600160ff909116105b80610e145750303b158015610e14575060005460ff166001145b610ea0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105f3565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610efe57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610f0a85858585611b9d565b606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d3638f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9b919061243f565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff161461102f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f646f6d61696e206d69736d61746368000000000000000000000000000000000060448201526064016105f3565b3060405161103c90611cf9565b73ffffffffffffffffffffffffffffffffffffffff9091168152602001604051809103906000f080158015611075573d6000803e3d6000fd5b50609880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316179055604080517f3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000602082015260609290921b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660348301527f5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000604883015280518083036037018152605790920190526000908051602090910120609955508015610a8957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b60606106ff73ffffffffffffffffffffffffffffffffffffffff8616858585611c5e565b60008361126f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f6e6f20726f757465722073706563696669656420666f722064657374696e617460448201527f696f6e000000000000000000000000000000000000000000000000000000000060648201526084016105f3565b6040805185815260208101859052339163ffffffff8816917f4fd2d122031a8a1e6c1aed1e9128109dff5ce6b929edfa90cc52abd95f086e73910160405180910390a36065546040517ffa31de0100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063fa31de019061130c9088908890879060040161245c565b6020604051808303816000875af115801561132b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ff9190612481565b60335473ffffffffffffffffffffffffffffffffffffffff1633146106c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f3565b81611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f696e76616c696420726f7574657220616464726573730000000000000000000060448201526064016105f3565b63ffffffff83166000908152609b6020526040902054156114da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f726f7574657220616e642049534d2064656661756c74732061726520696d6d7560448201527f7461626c65206f6e63652073657400000000000000000000000000000000000060648201526084016105f3565b609a805460018101909155600881047f44da158ba27f9252712a74ff6a55c5d531f69609f1f6e7f17c4443a8e2089be401805463ffffffff86811660046007909516949094026101000a8481029102199091161790556000818152609b60209081526040808320869055609c82529182902084905590518481527f97fd51fef1f80c854cbd0150c248e8b2ac4ecdc97cc05e742b5f61c9f4dc6458910160405180910390a28263ffffffff167fba9685b280b1e8f64909e2dfd7465463e6a0eabbaafd732402e7a619699a3821826040516115b791815260200190565b60405180910390a2505050565b73ffffffffffffffffffffffffffffffffffffffff811615806115fd575073ffffffffffffffffffffffffffffffffffffffff81163b15155b611663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016105f3565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517ffec811ed4e60aebdaf7a79cad8a97196bf56e35362f039705598226d30c9d24890600090a250565b60408051600180825281830190925260609160009190816020015b604080516060808201835260008083526020830152918101919091528152602001906001900390816116ed579050509050611729858585611c90565b8160008151811061173c5761173c6123d6565b60200260200101819052506117648773ffffffffffffffffffffffffffffffffffffffff1690565b86826040516020016117789392919061249a565b60405160208183030381529060405291505095945050505050565b60008060606117a4848601866124b9565b9250925092509250925092565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600061048f82609954611cec565b6000834710156118a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e636500000060448201526064016105f3565b815160000361190d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f60448201526064016105f3565b8282516020840186f5905073ffffffffffffffffffffffffffffffffffffffff81166109a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f790000000000000060448201526064016105f3565b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b8073ffffffffffffffffffffffffffffffffffffffff81163b611a3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016105f3565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517fb87f5a0bface22cde699143559fb99f990ae54eea236995fc54178af91af859f90600090a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b611b2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016105f3565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517f7a61e573722ff8b205c8962b59d37e7d30573f368965597a844a94872204ebd790600090a25050565b600054610100900460ff16611c34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105f3565b611c3d84611aae565b611c46836119bf565b611c4f826115c4565b611c58816117b1565b50505050565b606084848484604051602001611c7794939291906125f6565b6040516020818303038152906040529050949350505050565b604080516060808201835260008083526020830152918101919091526040518060600160405280611cd48673ffffffffffffffffffffffffffffffffffffffff1690565b81526020018481526020018381525090509392505050565b60006109a8838330611995565b6107f88061275c83390190565b63ffffffff811681146104a657600080fd5b60008083601f840112611d2a57600080fd5b50813567ffffffffffffffff811115611d4257600080fd5b6020830191508360208260051b8501011115611d5d57600080fd5b9250929050565b600080600080600060808688031215611d7c57600080fd5b8535611d8781611d06565b94506020860135935060408601359250606086013567ffffffffffffffff811115611db157600080fd5b611dbd88828901611d18565b969995985093965092949392505050565b600080600060608486031215611de357600080fd5b8335611dee81611d06565b95602085013595506040909401359392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611e2757600080fd5b919050565b60008060408385031215611e3f57600080fd5b8235611e4a81611d06565b9150611e5860208401611e03565b90509250929050565b600060208284031215611e7357600080fd5b6109a882611e03565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611ece57611ece611e7c565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611f1b57611f1b611e7c565b604052919050565b600082601f830112611f3457600080fd5b813567ffffffffffffffff811115611f4e57611f4e611e7c565b611f7f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601611ed4565b818152846020838601011115611f9457600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611fc757600080fd5b8435611fd281611d06565b9350611fe060208601611e03565b925060408501359150606085013567ffffffffffffffff81111561200357600080fd5b61200f87828801611f23565b91505092959194509250565b60006020828403121561202d57600080fd5b81356109a881611d06565b6020808252825182820181905260009190848201906040850190845b8181101561207657835163ffffffff1683529284019291840191600101612054565b50909695505050505050565b6000806000806060858703121561209857600080fd5b84356120a381611d06565b935060208501359250604085013567ffffffffffffffff808211156120c757600080fd5b818701915087601f8301126120db57600080fd5b8135818111156120ea57600080fd5b8860208285010111156120fc57600080fd5b95989497505060200194505050565b6000806000806080858703121561212157600080fd5b843561212c81611d06565b935061213a60208601611e03565b925061214860408601611e03565b915061215660608601611e03565b905092959194509250565b6000806000806080858703121561217757600080fd5b843561218281611d06565b9350602085013592506040850135915061215660608601611e03565b600080604083850312156121b157600080fd5b82356121bc81611d06565b946020939093013593505050565b6000806000604084860312156121df57600080fd5b83356121ea81611d06565b9250602084013567ffffffffffffffff81111561220657600080fd5b61221286828701611d18565b9497909650939450505050565b6000806000806040858703121561223557600080fd5b843567ffffffffffffffff8082111561224d57600080fd5b61225988838901611d18565b9096509450602087013591508082111561227257600080fd5b5061227f87828801611d18565b95989497509550505050565b6000806000606084860312156122a057600080fd5b6122a984611e03565b92506122b760208501611e03565b91506122c560408501611e03565b90509250925092565b600080600080608085870312156122e457600080fd5b61212c85611e03565b6000815180845260005b81811015612313576020818501810151868301820152016122f7565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6000815180845260208085019450848260051b860182860160005b858110156123b657838303895281518051845285810151868501526040908101516060918501829052906123a2818601836122ed565b9a87019a945050509084019060010161236c565b5090979650505050505050565b6020815260006109a86020830184612351565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8082018082111561048f577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006020828403121561245157600080fd5b81516109a881611d06565b63ffffffff841681528260208201526060604082015260006106ff60608301846122ed565b60006020828403121561249357600080fd5b5051919050565b8381528260208201526060604082015260006106ff6060830184612351565b6000806000606084860312156124ce57600080fd5b833592506020808501359250604085013567ffffffffffffffff808211156124f557600080fd5b818701915087601f83011261250957600080fd5b81358181111561251b5761251b611e7c565b8060051b61252a858201611ed4565b918252838101850191858101908b84111561254457600080fd5b86860192505b838310156125e5578235858111156125625760008081fd5b86016060818e037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00112156125975760008081fd5b61259f611eab565b8882013581526040820135898201526060820135878111156125c15760008081fd5b6125cf8f8b83860101611f23565b604083015250835250918601919086019061254a565b809750505050505050509250925092565b60006060808301878452602087818601526040838187015282878452608093508387019050838860051b8801018960005b8a811015612749577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808a840301845281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18d360301811261268857600080fd5b8c0180358452868101358785015285810135368290037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe10181126126cb57600080fd5b01868101903567ffffffffffffffff8111156126e657600080fd5b8036038213156126f557600080fd5b8987860152808a86015280828a87013760008582018a015294870194601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169093018701925090850190600101612627565b50909c9b50505050505050505050505056fe60a060405234801561001057600080fd5b506040516107f83803806107f883398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b60805161076861009060003960008181606d015260d001526107686000f3fe60806040526004361061002d5760003560e01c806365604f83146100395780638da5cb5b1461005b57600080fd5b3661003457005b600080fd5b34801561004557600080fd5b506100596100543660046103f7565b6100b8565b005b34801561006757600080fd5b5061008f7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461015c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e6572000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b61016e6101698284610513565b610172565b5050565b80516000905b808210156101ae576101a283838151811061019557610195610649565b60200260200101516101b3565b50816001019150610178565b505050565b80516060906101cb90836040015184602001516101d1565b92915050565b60606101f784848460405180606001604052806029815260200161070a602991396101ff565b949350505050565b606082471015610291576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610153565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516102ba919061069c565b60006040518083038185875af1925050503d80600081146102f7576040519150601f19603f3d011682016040523d82523d6000602084013e6102fc565b606091505b509150915061030d87838387610318565b979650505050505050565b606083156103ae5782516000036103a75773ffffffffffffffffffffffffffffffffffffffff85163b6103a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610153565b50816101f7565b6101f783838151156103c35781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015391906106b8565b6000806020838503121561040a57600080fd5b823567ffffffffffffffff8082111561042257600080fd5b818501915085601f83011261043657600080fd5b81358181111561044557600080fd5b8660208260051b850101111561045a57600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156104be576104be61046c565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561050b5761050b61046c565b604052919050565b600067ffffffffffffffff8084111561052e5761052e61046c565b8360051b602061053f8183016104c4565b86815291850191818101903684111561055757600080fd5b865b8481101561063d578035868111156105715760008081fd5b880160603682900312156105855760008081fd5b61058d61049b565b813581528582013586820152604080830135898111156105ad5760008081fd5b9290920191601f36818501126105c35760008081fd5b83358a8111156105d5576105d561046c565b610604897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe084840116016104c4565b9150808252368982870101111561061b5760008081fd5b808986018a840137600090820189015290820152845250918301918301610559565b50979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60005b8381101561069357818101518382015260200161067b565b50506000910152565b600082516106ae818460208701610678565b9190910192915050565b60208152600082518060208401526106d7816040850160208701610678565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a264697066735822122034404533c9ccf1b4047181fc80a826748034c6b8fcbd897a7f6cfa6b9256f04d64736f6c63430008110033a2646970667358221220c27d7da3a7ecceee4b64c70d9bbd7a2fb7d4381c5ac82e705cc6e47fd84c711064736f6c63430008110033";
16
16
  static readonly abi: ({
17
17
  inputs: {
18
18
  internalType: string;
@@ -774,7 +774,7 @@ const _abi = [
774
774
  type: "function",
775
775
  },
776
776
  ];
777
- const _bytecode = "0x60a06040523480156200001157600080fd5b506040516200301e3803806200301e833981016040819052620000349162000043565b63ffffffff1660805262000072565b6000602082840312156200005657600080fd5b815163ffffffff811681146200006b57600080fd5b9392505050565b608051612f896200009560003960008181610c820152610fa30152612f896000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c8063940c14dd116100ee578063de523cf311610097578063f1bd6f0a11610071578063f1bd6f0a146103d2578063f2fde38b146103e5578063f3c61d6b146103f8578063f8c8765e1461040b57600080fd5b8063de523cf31461038c578063e9198bf9146103ac578063ef96bb4b146103bf57600080fd5b8063b49c53a7116100c8578063b49c53a714610346578063d5438eae14610359578063dd91cc871461037957600080fd5b8063940c14dd1461030d5780639662e8ac14610320578063a5da36111461033357600080fd5b806339bb4ad91161015b5780635a007b7e116101355780635a007b7e146102b4578063715018a6146102d45780638da5cb5b146102dc5780638e45f8fc146102fa57600080fd5b806339bb4ad91461026c578063440df4f41461028c57806356d5d475146102a157600080fd5b80630e72cc061161018c5780630e72cc06146102265780631ddce514146102395780632ead72f61461024c57600080fd5b8063061197d5146101b357806309643ff7146101d95780630e258285146101ee575b600080fd5b6101c66101c1366004611d64565b61041e565b6040519081526020015b60405180910390f35b6101ec6101e7366004611dce565b610446565b005b6102016101fc366004611e2c565b61045e565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d0565b6101ec610234366004611e61565b610495565b6101c6610247366004611fb1565b6104a9565b6101c661025a36600461201b565b609b6020526000908152604090205481565b6066546102019073ffffffffffffffffffffffffffffffffffffffff1681565b6102946104f2565b6040516101d09190612038565b6101ec6102af366004612082565b610576565b6101c66102c236600461201b565b609c6020526000908152604090205481565b6101ec6106b1565b60335473ffffffffffffffffffffffffffffffffffffffff16610201565b61020161030836600461210b565b6106c5565b61020161031b366004612161565b610708565b61020161032e36600461210b565b6108b3565b610201610341366004612161565b6108d8565b6101ec61035436600461219e565b61095d565b6065546102019073ffffffffffffffffffffffffffffffffffffffff1681565b6101c66103873660046121ca565b610975565b6067546102019073ffffffffffffffffffffffffffffffffffffffff1681565b6101ec6103ba36600461221f565b6109af565b6102016103cd36600461228b565b610a90565b6101ec6103e0366004611e61565b610d04565b6101ec6103f3366004611e61565b610d15565b6101ec610406366004611e61565b610dc9565b6101ec6104193660046122ce565b610dda565b60008061042d338686866111bc565b905061043b878787846111e0565b979650505050505050565b61044e61134f565b6104598383836113d0565b505050565b63ffffffff82166000908152609b6020908152604080832054609c90925282205461048a848383610a90565b925050505b92915050565b61049d61134f565b6104a6816115c4565b50565b63ffffffff84166000908152609b6020908152604080832054609c909252822054826104d833838989896116d2565b90506104e6888484846111e0565b98975050505050505050565b6060609a80548060200260200160405190810160405280929190818152602001828054801561056c57602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff168152602001906004019060208260030104928301926001038202915080841161052f5790505b5050505050905090565b60655473ffffffffffffffffffffffffffffffffffffffff1633146105fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f216d61696c626f7800000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600080600061060b8585611793565b925092509250600061062088858961031b8790565b6040517f65604f8300000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8216906365604f83906106759085906004016123c3565b600060405180830381600087803b15801561068f57600080fd5b505af11580156106a3573d6000803e3d6000fd5b505050505050505050505050565b6106b961134f565b6106c360006117b1565b565b60006106ff8573ffffffffffffffffffffffffffffffffffffffff861673ffffffffffffffffffffffffffffffffffffffff861685610708565b95945050505050565b6040805160e086901b7fffffffff0000000000000000000000000000000000000000000000000000000016602080830191909152602482018690526044820185905273ffffffffffffffffffffffffffffffffffffffff84166064808401919091528351808403909101815260849092019092528051910120600090600061078f82611828565b905073ffffffffffffffffffffffffffffffffffffffff81163b6108a957609854604080517f3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000602082015260609290921b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660348301527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006048830152805180830360370181526057909201905261084a60008483611836565b6040805173ffffffffffffffffffffffffffffffffffffffff808916825283166020820152919350889163ffffffff8b16917fee33e8a4a721d99ee890b32b36b48bc5a14d276b7e2510763a52f839d178edf6910160405180910390a3505b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff83811690851661043b878284875b6040805160e086901b7fffffffff0000000000000000000000000000000000000000000000000000000016602080830191909152602482018690526044820185905273ffffffffffffffffffffffffffffffffffffffff841660648084019190915283518084039091018152608490920190925280519101206000906106ff90611828565b61096561134f565b610971828260006113d0565b5050565b63ffffffff83166000908152609b6020908152604080832054609c9092528220546109a3868383888861041e565b925050505b9392505050565b6109b761134f565b828114610a20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016105f3565b60005b83811015610a8957610a77858583818110610a4057610a406123d6565b9050602002016020810190610a55919061201b565b848484818110610a6757610a676123d6565b905060200201356000801b6113d0565b610a82600182612405565b9050610a23565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff8316610b35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f6e6f20726f757465722073706563696669656420666f722064657374696e617460448201527f696f6e000000000000000000000000000000000000000000000000000000000060648201526084016105f3565b604080517fd6000000000000000000000000000000000000000000000000000000000000006020808301919091527f94000000000000000000000000000000000000000000000000000000000000006021830152606086811b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090811660228501527f01000000000000000000000000000000000000000000000000000000000000006036850152845160178186030181526037850186528051908401207f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000060578601529182901b16606b8401527f5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000607f8401528351606e818503018152608e840185528051818401207fffffffff000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060e01b1660ae86015273ffffffffffffffffffffffffffffffffffffffff8a811660b28701523060d2870152881660f2808701919091528651808703909101815261011290950190955283519390920192909220919290916104e6818389611995565b610d0c61134f565b6104a6816119bf565b610d1d61134f565b73ffffffffffffffffffffffffffffffffffffffff8116610dc0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105f3565b6104a6816117b1565b610dd161134f565b6104a681611aae565b600054610100900460ff1615808015610dfa5750600054600160ff909116105b80610e145750303b158015610e14575060005460ff166001145b610ea0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105f3565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610efe57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610f0a85858585611b9d565b606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d3638f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9b919061243f565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff161461102f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f646f6d61696e206d69736d61746368000000000000000000000000000000000060448201526064016105f3565b3060405161103c90611cf9565b73ffffffffffffffffffffffffffffffffffffffff9091168152602001604051809103906000f080158015611075573d6000803e3d6000fd5b50609880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316179055604080517f3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000602082015260609290921b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660348301527f5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000604883015280518083036037018152605790920190526000908051602090910120609955508015610a8957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b60606106ff73ffffffffffffffffffffffffffffffffffffffff8616858585611c5e565b60008361126f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f6e6f20726f757465722073706563696669656420666f722064657374696e617460448201527f696f6e000000000000000000000000000000000000000000000000000000000060648201526084016105f3565b6040805185815260208101859052339163ffffffff8816917f4fd2d122031a8a1e6c1aed1e9128109dff5ce6b929edfa90cc52abd95f086e73910160405180910390a36065546040517ffa31de0100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063fa31de019061130c9088908890879060040161245c565b6020604051808303816000875af115801561132b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ff9190612481565b60335473ffffffffffffffffffffffffffffffffffffffff1633146106c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f3565b81611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f696e76616c696420726f7574657220616464726573730000000000000000000060448201526064016105f3565b63ffffffff83166000908152609b6020526040902054156114da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f726f7574657220616e642049534d2064656661756c74732061726520696d6d7560448201527f7461626c65206f6e63652073657400000000000000000000000000000000000060648201526084016105f3565b609a805460018101909155600881047f44da158ba27f9252712a74ff6a55c5d531f69609f1f6e7f17c4443a8e2089be401805463ffffffff86811660046007909516949094026101000a8481029102199091161790556000818152609b60209081526040808320869055609c82529182902084905590518481527f97fd51fef1f80c854cbd0150c248e8b2ac4ecdc97cc05e742b5f61c9f4dc6458910160405180910390a28263ffffffff167fba9685b280b1e8f64909e2dfd7465463e6a0eabbaafd732402e7a619699a3821826040516115b791815260200190565b60405180910390a2505050565b73ffffffffffffffffffffffffffffffffffffffff811615806115fd575073ffffffffffffffffffffffffffffffffffffffff81163b15155b611663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016105f3565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517ffec811ed4e60aebdaf7a79cad8a97196bf56e35362f039705598226d30c9d24890600090a250565b60408051600180825281830190925260609160009190816020015b604080516060808201835260008083526020830152918101919091528152602001906001900390816116ed579050509050611729858585611c90565b8160008151811061173c5761173c6123d6565b60200260200101819052506117648773ffffffffffffffffffffffffffffffffffffffff1690565b86826040516020016117789392919061249a565b60405160208183030381529060405291505095945050505050565b60008060606117a4848601866124b9565b9250925092509250925092565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600061048f82609954611cec565b6000834710156118a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e636500000060448201526064016105f3565b815160000361190d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f60448201526064016105f3565b8282516020840186f5905073ffffffffffffffffffffffffffffffffffffffff81166109a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f790000000000000060448201526064016105f3565b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b8073ffffffffffffffffffffffffffffffffffffffff81163b611a3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016105f3565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517fb87f5a0bface22cde699143559fb99f990ae54eea236995fc54178af91af859f90600090a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b611b2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016105f3565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517f7a61e573722ff8b205c8962b59d37e7d30573f368965597a844a94872204ebd790600090a25050565b600054610100900460ff16611c34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105f3565b611c3d84611aae565b611c46836119bf565b611c4f826115c4565b611c58816117b1565b50505050565b606084848484604051602001611c7794939291906125f6565b6040516020818303038152906040529050949350505050565b604080516060808201835260008083526020830152918101919091526040518060600160405280611cd48673ffffffffffffffffffffffffffffffffffffffff1690565b81526020018481526020018381525090509392505050565b60006109a8838330611995565b6107f88061275c83390190565b63ffffffff811681146104a657600080fd5b60008083601f840112611d2a57600080fd5b50813567ffffffffffffffff811115611d4257600080fd5b6020830191508360208260051b8501011115611d5d57600080fd5b9250929050565b600080600080600060808688031215611d7c57600080fd5b8535611d8781611d06565b94506020860135935060408601359250606086013567ffffffffffffffff811115611db157600080fd5b611dbd88828901611d18565b969995985093965092949392505050565b600080600060608486031215611de357600080fd5b8335611dee81611d06565b95602085013595506040909401359392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611e2757600080fd5b919050565b60008060408385031215611e3f57600080fd5b8235611e4a81611d06565b9150611e5860208401611e03565b90509250929050565b600060208284031215611e7357600080fd5b6109a882611e03565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611ece57611ece611e7c565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611f1b57611f1b611e7c565b604052919050565b600082601f830112611f3457600080fd5b813567ffffffffffffffff811115611f4e57611f4e611e7c565b611f7f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601611ed4565b818152846020838601011115611f9457600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611fc757600080fd5b8435611fd281611d06565b9350611fe060208601611e03565b925060408501359150606085013567ffffffffffffffff81111561200357600080fd5b61200f87828801611f23565b91505092959194509250565b60006020828403121561202d57600080fd5b81356109a881611d06565b6020808252825182820181905260009190848201906040850190845b8181101561207657835163ffffffff1683529284019291840191600101612054565b50909695505050505050565b6000806000806060858703121561209857600080fd5b84356120a381611d06565b935060208501359250604085013567ffffffffffffffff808211156120c757600080fd5b818701915087601f8301126120db57600080fd5b8135818111156120ea57600080fd5b8860208285010111156120fc57600080fd5b95989497505060200194505050565b6000806000806080858703121561212157600080fd5b843561212c81611d06565b935061213a60208601611e03565b925061214860408601611e03565b915061215660608601611e03565b905092959194509250565b6000806000806080858703121561217757600080fd5b843561218281611d06565b9350602085013592506040850135915061215660608601611e03565b600080604083850312156121b157600080fd5b82356121bc81611d06565b946020939093013593505050565b6000806000604084860312156121df57600080fd5b83356121ea81611d06565b9250602084013567ffffffffffffffff81111561220657600080fd5b61221286828701611d18565b9497909650939450505050565b6000806000806040858703121561223557600080fd5b843567ffffffffffffffff8082111561224d57600080fd5b61225988838901611d18565b9096509450602087013591508082111561227257600080fd5b5061227f87828801611d18565b95989497509550505050565b6000806000606084860312156122a057600080fd5b6122a984611e03565b92506122b760208501611e03565b91506122c560408501611e03565b90509250925092565b600080600080608085870312156122e457600080fd5b61212c85611e03565b6000815180845260005b81811015612313576020818501810151868301820152016122f7565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6000815180845260208085019450848260051b860182860160005b858110156123b657838303895281518051845285810151868501526040908101516060918501829052906123a2818601836122ed565b9a87019a945050509084019060010161236c565b5090979650505050505050565b6020815260006109a86020830184612351565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8082018082111561048f577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006020828403121561245157600080fd5b81516109a881611d06565b63ffffffff841681528260208201526060604082015260006106ff60608301846122ed565b60006020828403121561249357600080fd5b5051919050565b8381528260208201526060604082015260006106ff6060830184612351565b6000806000606084860312156124ce57600080fd5b833592506020808501359250604085013567ffffffffffffffff808211156124f557600080fd5b818701915087601f83011261250957600080fd5b81358181111561251b5761251b611e7c565b8060051b61252a858201611ed4565b918252838101850191858101908b84111561254457600080fd5b86860192505b838310156125e5578235858111156125625760008081fd5b86016060818e037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00112156125975760008081fd5b61259f611eab565b8882013581526040820135898201526060820135878111156125c15760008081fd5b6125cf8f8b83860101611f23565b604083015250835250918601919086019061254a565b809750505050505050509250925092565b60006060808301878452602087818601526040838187015282878452608093508387019050838860051b8801018960005b8a811015612749577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808a840301845281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18d360301811261268857600080fd5b8c0180358452868101358785015285810135368290037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe10181126126cb57600080fd5b01868101903567ffffffffffffffff8111156126e657600080fd5b8036038213156126f557600080fd5b8987860152808a86015280828a87013760008582018a015294870194601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169093018701925090850190600101612627565b50909c9b50505050505050505050505056fe60a060405234801561001057600080fd5b506040516107f83803806107f883398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b60805161076861009060003960008181606d015260d001526107686000f3fe60806040526004361061002d5760003560e01c806365604f83146100395780638da5cb5b1461005b57600080fd5b3661003457005b600080fd5b34801561004557600080fd5b506100596100543660046103f7565b6100b8565b005b34801561006757600080fd5b5061008f7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461015c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e6572000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b61016e6101698284610513565b610172565b5050565b80516000905b808210156101ae576101a283838151811061019557610195610649565b60200260200101516101b3565b50816001019150610178565b505050565b80516060906101cb90836040015184602001516101d1565b92915050565b60606101f784848460405180606001604052806029815260200161070a602991396101ff565b949350505050565b606082471015610291576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610153565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516102ba919061069c565b60006040518083038185875af1925050503d80600081146102f7576040519150601f19603f3d011682016040523d82523d6000602084013e6102fc565b606091505b509150915061030d87838387610318565b979650505050505050565b606083156103ae5782516000036103a75773ffffffffffffffffffffffffffffffffffffffff85163b6103a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610153565b50816101f7565b6101f783838151156103c35781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015391906106b8565b6000806020838503121561040a57600080fd5b823567ffffffffffffffff8082111561042257600080fd5b818501915085601f83011261043657600080fd5b81358181111561044557600080fd5b8660208260051b850101111561045a57600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156104be576104be61046c565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561050b5761050b61046c565b604052919050565b600067ffffffffffffffff8084111561052e5761052e61046c565b8360051b602061053f8183016104c4565b86815291850191818101903684111561055757600080fd5b865b8481101561063d578035868111156105715760008081fd5b880160603682900312156105855760008081fd5b61058d61049b565b813581528582013586820152604080830135898111156105ad5760008081fd5b9290920191601f36818501126105c35760008081fd5b83358a8111156105d5576105d561046c565b610604897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe084840116016104c4565b9150808252368982870101111561061b5760008081fd5b808986018a840137600090820189015290820152845250918301918301610559565b50979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60005b8381101561069357818101518382015260200161067b565b50506000910152565b600082516106ae818460208701610678565b9190910192915050565b60208152600082518060208401526106d7816040850160208701610678565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a264697066735822122034404533c9ccf1b4047181fc80a826748034c6b8fcbd897a7f6cfa6b9256f04d64736f6c63430008110033a26469706673582212206a12b99aa4202b42cdf88c7f274fa8576aa08f415bccbc558e2f8f024ed1599f64736f6c63430008110033";
777
+ const _bytecode = "0x60a06040523480156200001157600080fd5b506040516200301e3803806200301e833981016040819052620000349162000043565b63ffffffff1660805262000072565b6000602082840312156200005657600080fd5b815163ffffffff811681146200006b57600080fd5b9392505050565b608051612f896200009560003960008181610c820152610fa30152612f896000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c8063940c14dd116100ee578063de523cf311610097578063f1bd6f0a11610071578063f1bd6f0a146103d2578063f2fde38b146103e5578063f3c61d6b146103f8578063f8c8765e1461040b57600080fd5b8063de523cf31461038c578063e9198bf9146103ac578063ef96bb4b146103bf57600080fd5b8063b49c53a7116100c8578063b49c53a714610346578063d5438eae14610359578063dd91cc871461037957600080fd5b8063940c14dd1461030d5780639662e8ac14610320578063a5da36111461033357600080fd5b806339bb4ad91161015b5780635a007b7e116101355780635a007b7e146102b4578063715018a6146102d45780638da5cb5b146102dc5780638e45f8fc146102fa57600080fd5b806339bb4ad91461026c578063440df4f41461028c57806356d5d475146102a157600080fd5b80630e72cc061161018c5780630e72cc06146102265780631ddce514146102395780632ead72f61461024c57600080fd5b8063061197d5146101b357806309643ff7146101d95780630e258285146101ee575b600080fd5b6101c66101c1366004611d64565b61041e565b6040519081526020015b60405180910390f35b6101ec6101e7366004611dce565b610446565b005b6102016101fc366004611e2c565b61045e565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d0565b6101ec610234366004611e61565b610495565b6101c6610247366004611fb1565b6104a9565b6101c661025a36600461201b565b609b6020526000908152604090205481565b6066546102019073ffffffffffffffffffffffffffffffffffffffff1681565b6102946104f2565b6040516101d09190612038565b6101ec6102af366004612082565b610576565b6101c66102c236600461201b565b609c6020526000908152604090205481565b6101ec6106b1565b60335473ffffffffffffffffffffffffffffffffffffffff16610201565b61020161030836600461210b565b6106c5565b61020161031b366004612161565b610708565b61020161032e36600461210b565b6108b3565b610201610341366004612161565b6108d8565b6101ec61035436600461219e565b61095d565b6065546102019073ffffffffffffffffffffffffffffffffffffffff1681565b6101c66103873660046121ca565b610975565b6067546102019073ffffffffffffffffffffffffffffffffffffffff1681565b6101ec6103ba36600461221f565b6109af565b6102016103cd36600461228b565b610a90565b6101ec6103e0366004611e61565b610d04565b6101ec6103f3366004611e61565b610d15565b6101ec610406366004611e61565b610dc9565b6101ec6104193660046122ce565b610dda565b60008061042d338686866111bc565b905061043b878787846111e0565b979650505050505050565b61044e61134f565b6104598383836113d0565b505050565b63ffffffff82166000908152609b6020908152604080832054609c90925282205461048a848383610a90565b925050505b92915050565b61049d61134f565b6104a6816115c4565b50565b63ffffffff84166000908152609b6020908152604080832054609c909252822054826104d833838989896116d2565b90506104e6888484846111e0565b98975050505050505050565b6060609a80548060200260200160405190810160405280929190818152602001828054801561056c57602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff168152602001906004019060208260030104928301926001038202915080841161052f5790505b5050505050905090565b60655473ffffffffffffffffffffffffffffffffffffffff1633146105fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f216d61696c626f7800000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600080600061060b8585611793565b925092509250600061062088858961031b8790565b6040517f65604f8300000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8216906365604f83906106759085906004016123c3565b600060405180830381600087803b15801561068f57600080fd5b505af11580156106a3573d6000803e3d6000fd5b505050505050505050505050565b6106b961134f565b6106c360006117b1565b565b60006106ff8573ffffffffffffffffffffffffffffffffffffffff861673ffffffffffffffffffffffffffffffffffffffff861685610708565b95945050505050565b6040805160e086901b7fffffffff0000000000000000000000000000000000000000000000000000000016602080830191909152602482018690526044820185905273ffffffffffffffffffffffffffffffffffffffff84166064808401919091528351808403909101815260849092019092528051910120600090600061078f82611828565b905073ffffffffffffffffffffffffffffffffffffffff81163b6108a957609854604080517f3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000602082015260609290921b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660348301527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006048830152805180830360370181526057909201905261084a60008483611836565b6040805173ffffffffffffffffffffffffffffffffffffffff808916825283166020820152919350889163ffffffff8b16917fee33e8a4a721d99ee890b32b36b48bc5a14d276b7e2510763a52f839d178edf6910160405180910390a3505b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff83811690851661043b878284875b6040805160e086901b7fffffffff0000000000000000000000000000000000000000000000000000000016602080830191909152602482018690526044820185905273ffffffffffffffffffffffffffffffffffffffff841660648084019190915283518084039091018152608490920190925280519101206000906106ff90611828565b61096561134f565b610971828260006113d0565b5050565b63ffffffff83166000908152609b6020908152604080832054609c9092528220546109a3868383888861041e565b925050505b9392505050565b6109b761134f565b828114610a20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016105f3565b60005b83811015610a8957610a77858583818110610a4057610a406123d6565b9050602002016020810190610a55919061201b565b848484818110610a6757610a676123d6565b905060200201356000801b6113d0565b610a82600182612405565b9050610a23565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff8316610b35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f6e6f20726f757465722073706563696669656420666f722064657374696e617460448201527f696f6e000000000000000000000000000000000000000000000000000000000060648201526084016105f3565b604080517fd6000000000000000000000000000000000000000000000000000000000000006020808301919091527f94000000000000000000000000000000000000000000000000000000000000006021830152606086811b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090811660228501527f01000000000000000000000000000000000000000000000000000000000000006036850152845160178186030181526037850186528051908401207f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000060578601529182901b16606b8401527f5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000607f8401528351606e818503018152608e840185528051818401207fffffffff000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060e01b1660ae86015273ffffffffffffffffffffffffffffffffffffffff8a811660b28701523060d2870152881660f2808701919091528651808703909101815261011290950190955283519390920192909220919290916104e6818389611995565b610d0c61134f565b6104a6816119bf565b610d1d61134f565b73ffffffffffffffffffffffffffffffffffffffff8116610dc0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105f3565b6104a6816117b1565b610dd161134f565b6104a681611aae565b600054610100900460ff1615808015610dfa5750600054600160ff909116105b80610e145750303b158015610e14575060005460ff166001145b610ea0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105f3565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610efe57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610f0a85858585611b9d565b606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d3638f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9b919061243f565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff161461102f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f646f6d61696e206d69736d61746368000000000000000000000000000000000060448201526064016105f3565b3060405161103c90611cf9565b73ffffffffffffffffffffffffffffffffffffffff9091168152602001604051809103906000f080158015611075573d6000803e3d6000fd5b50609880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316179055604080517f3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000602082015260609290921b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660348301527f5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000604883015280518083036037018152605790920190526000908051602090910120609955508015610a8957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b60606106ff73ffffffffffffffffffffffffffffffffffffffff8616858585611c5e565b60008361126f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f6e6f20726f757465722073706563696669656420666f722064657374696e617460448201527f696f6e000000000000000000000000000000000000000000000000000000000060648201526084016105f3565b6040805185815260208101859052339163ffffffff8816917f4fd2d122031a8a1e6c1aed1e9128109dff5ce6b929edfa90cc52abd95f086e73910160405180910390a36065546040517ffa31de0100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063fa31de019061130c9088908890879060040161245c565b6020604051808303816000875af115801561132b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ff9190612481565b60335473ffffffffffffffffffffffffffffffffffffffff1633146106c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f3565b81611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f696e76616c696420726f7574657220616464726573730000000000000000000060448201526064016105f3565b63ffffffff83166000908152609b6020526040902054156114da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f726f7574657220616e642049534d2064656661756c74732061726520696d6d7560448201527f7461626c65206f6e63652073657400000000000000000000000000000000000060648201526084016105f3565b609a805460018101909155600881047f44da158ba27f9252712a74ff6a55c5d531f69609f1f6e7f17c4443a8e2089be401805463ffffffff86811660046007909516949094026101000a8481029102199091161790556000818152609b60209081526040808320869055609c82529182902084905590518481527f97fd51fef1f80c854cbd0150c248e8b2ac4ecdc97cc05e742b5f61c9f4dc6458910160405180910390a28263ffffffff167fba9685b280b1e8f64909e2dfd7465463e6a0eabbaafd732402e7a619699a3821826040516115b791815260200190565b60405180910390a2505050565b73ffffffffffffffffffffffffffffffffffffffff811615806115fd575073ffffffffffffffffffffffffffffffffffffffff81163b15155b611663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016105f3565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517ffec811ed4e60aebdaf7a79cad8a97196bf56e35362f039705598226d30c9d24890600090a250565b60408051600180825281830190925260609160009190816020015b604080516060808201835260008083526020830152918101919091528152602001906001900390816116ed579050509050611729858585611c90565b8160008151811061173c5761173c6123d6565b60200260200101819052506117648773ffffffffffffffffffffffffffffffffffffffff1690565b86826040516020016117789392919061249a565b60405160208183030381529060405291505095945050505050565b60008060606117a4848601866124b9565b9250925092509250925092565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600061048f82609954611cec565b6000834710156118a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e636500000060448201526064016105f3565b815160000361190d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f60448201526064016105f3565b8282516020840186f5905073ffffffffffffffffffffffffffffffffffffffff81166109a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f790000000000000060448201526064016105f3565b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b8073ffffffffffffffffffffffffffffffffffffffff81163b611a3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016105f3565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517fb87f5a0bface22cde699143559fb99f990ae54eea236995fc54178af91af859f90600090a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b611b2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016105f3565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517f7a61e573722ff8b205c8962b59d37e7d30573f368965597a844a94872204ebd790600090a25050565b600054610100900460ff16611c34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105f3565b611c3d84611aae565b611c46836119bf565b611c4f826115c4565b611c58816117b1565b50505050565b606084848484604051602001611c7794939291906125f6565b6040516020818303038152906040529050949350505050565b604080516060808201835260008083526020830152918101919091526040518060600160405280611cd48673ffffffffffffffffffffffffffffffffffffffff1690565b81526020018481526020018381525090509392505050565b60006109a8838330611995565b6107f88061275c83390190565b63ffffffff811681146104a657600080fd5b60008083601f840112611d2a57600080fd5b50813567ffffffffffffffff811115611d4257600080fd5b6020830191508360208260051b8501011115611d5d57600080fd5b9250929050565b600080600080600060808688031215611d7c57600080fd5b8535611d8781611d06565b94506020860135935060408601359250606086013567ffffffffffffffff811115611db157600080fd5b611dbd88828901611d18565b969995985093965092949392505050565b600080600060608486031215611de357600080fd5b8335611dee81611d06565b95602085013595506040909401359392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611e2757600080fd5b919050565b60008060408385031215611e3f57600080fd5b8235611e4a81611d06565b9150611e5860208401611e03565b90509250929050565b600060208284031215611e7357600080fd5b6109a882611e03565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611ece57611ece611e7c565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611f1b57611f1b611e7c565b604052919050565b600082601f830112611f3457600080fd5b813567ffffffffffffffff811115611f4e57611f4e611e7c565b611f7f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601611ed4565b818152846020838601011115611f9457600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611fc757600080fd5b8435611fd281611d06565b9350611fe060208601611e03565b925060408501359150606085013567ffffffffffffffff81111561200357600080fd5b61200f87828801611f23565b91505092959194509250565b60006020828403121561202d57600080fd5b81356109a881611d06565b6020808252825182820181905260009190848201906040850190845b8181101561207657835163ffffffff1683529284019291840191600101612054565b50909695505050505050565b6000806000806060858703121561209857600080fd5b84356120a381611d06565b935060208501359250604085013567ffffffffffffffff808211156120c757600080fd5b818701915087601f8301126120db57600080fd5b8135818111156120ea57600080fd5b8860208285010111156120fc57600080fd5b95989497505060200194505050565b6000806000806080858703121561212157600080fd5b843561212c81611d06565b935061213a60208601611e03565b925061214860408601611e03565b915061215660608601611e03565b905092959194509250565b6000806000806080858703121561217757600080fd5b843561218281611d06565b9350602085013592506040850135915061215660608601611e03565b600080604083850312156121b157600080fd5b82356121bc81611d06565b946020939093013593505050565b6000806000604084860312156121df57600080fd5b83356121ea81611d06565b9250602084013567ffffffffffffffff81111561220657600080fd5b61221286828701611d18565b9497909650939450505050565b6000806000806040858703121561223557600080fd5b843567ffffffffffffffff8082111561224d57600080fd5b61225988838901611d18565b9096509450602087013591508082111561227257600080fd5b5061227f87828801611d18565b95989497509550505050565b6000806000606084860312156122a057600080fd5b6122a984611e03565b92506122b760208501611e03565b91506122c560408501611e03565b90509250925092565b600080600080608085870312156122e457600080fd5b61212c85611e03565b6000815180845260005b81811015612313576020818501810151868301820152016122f7565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6000815180845260208085019450848260051b860182860160005b858110156123b657838303895281518051845285810151868501526040908101516060918501829052906123a2818601836122ed565b9a87019a945050509084019060010161236c565b5090979650505050505050565b6020815260006109a86020830184612351565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8082018082111561048f577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006020828403121561245157600080fd5b81516109a881611d06565b63ffffffff841681528260208201526060604082015260006106ff60608301846122ed565b60006020828403121561249357600080fd5b5051919050565b8381528260208201526060604082015260006106ff6060830184612351565b6000806000606084860312156124ce57600080fd5b833592506020808501359250604085013567ffffffffffffffff808211156124f557600080fd5b818701915087601f83011261250957600080fd5b81358181111561251b5761251b611e7c565b8060051b61252a858201611ed4565b918252838101850191858101908b84111561254457600080fd5b86860192505b838310156125e5578235858111156125625760008081fd5b86016060818e037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00112156125975760008081fd5b61259f611eab565b8882013581526040820135898201526060820135878111156125c15760008081fd5b6125cf8f8b83860101611f23565b604083015250835250918601919086019061254a565b809750505050505050509250925092565b60006060808301878452602087818601526040838187015282878452608093508387019050838860051b8801018960005b8a811015612749577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808a840301845281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18d360301811261268857600080fd5b8c0180358452868101358785015285810135368290037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe10181126126cb57600080fd5b01868101903567ffffffffffffffff8111156126e657600080fd5b8036038213156126f557600080fd5b8987860152808a86015280828a87013760008582018a015294870194601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169093018701925090850190600101612627565b50909c9b50505050505050505050505056fe60a060405234801561001057600080fd5b506040516107f83803806107f883398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b60805161076861009060003960008181606d015260d001526107686000f3fe60806040526004361061002d5760003560e01c806365604f83146100395780638da5cb5b1461005b57600080fd5b3661003457005b600080fd5b34801561004557600080fd5b506100596100543660046103f7565b6100b8565b005b34801561006757600080fd5b5061008f7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461015c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e6572000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b61016e6101698284610513565b610172565b5050565b80516000905b808210156101ae576101a283838151811061019557610195610649565b60200260200101516101b3565b50816001019150610178565b505050565b80516060906101cb90836040015184602001516101d1565b92915050565b60606101f784848460405180606001604052806029815260200161070a602991396101ff565b949350505050565b606082471015610291576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610153565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516102ba919061069c565b60006040518083038185875af1925050503d80600081146102f7576040519150601f19603f3d011682016040523d82523d6000602084013e6102fc565b606091505b509150915061030d87838387610318565b979650505050505050565b606083156103ae5782516000036103a75773ffffffffffffffffffffffffffffffffffffffff85163b6103a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610153565b50816101f7565b6101f783838151156103c35781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015391906106b8565b6000806020838503121561040a57600080fd5b823567ffffffffffffffff8082111561042257600080fd5b818501915085601f83011261043657600080fd5b81358181111561044557600080fd5b8660208260051b850101111561045a57600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156104be576104be61046c565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561050b5761050b61046c565b604052919050565b600067ffffffffffffffff8084111561052e5761052e61046c565b8360051b602061053f8183016104c4565b86815291850191818101903684111561055757600080fd5b865b8481101561063d578035868111156105715760008081fd5b880160603682900312156105855760008081fd5b61058d61049b565b813581528582013586820152604080830135898111156105ad5760008081fd5b9290920191601f36818501126105c35760008081fd5b83358a8111156105d5576105d561046c565b610604897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe084840116016104c4565b9150808252368982870101111561061b5760008081fd5b808986018a840137600090820189015290820152845250918301918301610559565b50979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60005b8381101561069357818101518382015260200161067b565b50506000910152565b600082516106ae818460208701610678565b9190910192915050565b60208152600082518060208401526106d7816040850160208701610678565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a264697066735822122034404533c9ccf1b4047181fc80a826748034c6b8fcbd897a7f6cfa6b9256f04d64736f6c63430008110033a2646970667358221220c27d7da3a7ecceee4b64c70d9bbd7a2fb7d4381c5ac82e705cc6e47fd84c711064736f6c63430008110033";
778
778
  const isSuperArgs = (xs) => xs.length > 1;
779
779
  class InterchainAccountRouter__factory extends ethers_1.ContractFactory {
780
780
  constructor(...args) {
@@ -12,7 +12,7 @@ export declare class InterchainQueryRouter__factory extends ContractFactory {
12
12
  }): TransactionRequest;
13
13
  attach(address: string): InterchainQueryRouter;
14
14
  connect(signer: Signer): InterchainQueryRouter__factory;
15
- static readonly bytecode = "0x608060405234801561001057600080fd5b506125df806100206000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80638da5cb5b116100b2578063e9198bf911610081578063f2fde38b11610066578063f2fde38b1461028d578063f3c61d6b146102a0578063f8c8765e146102b357600080fd5b8063e9198bf914610267578063f1bd6f0a1461027a57600080fd5b80638da5cb5b146101f6578063b49c53a714610214578063d5438eae14610227578063de523cf31461024757600080fd5b8063440df4f4116100ee578063440df4f4146101b357806356d5d475146101c8578063715018a6146101db5780638cc02cab146101e357600080fd5b80630e72cc06146101205780632222b452146101355780632ead72f61461015b57806339bb4ad91461016e575b600080fd5b61013361012e366004611839565b6102c6565b005b61014861014336600461199d565b6102da565b6040519081526020015b60405180910390f35b610148610169366004611a22565b61032d565b60665461018e9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610152565b6101bb61036f565b6040516101529190611a3d565b6101336101d6366004611a87565b61042a565b610133610522565b6101486101f1366004611b5a565b610536565b60335473ffffffffffffffffffffffffffffffffffffffff1661018e565b610133610222366004611bad565b610582565b60655461018e9073ffffffffffffffffffffffffffffffffffffffff1681565b60675461018e9073ffffffffffffffffffffffffffffffffffffffff1681565b610133610275366004611bd7565b610598565b610133610288366004611839565b61066f565b61013361029b366004611839565b610680565b6101336102ae366004611839565b610734565b6101336102c1366004611c43565b610745565b6102ce6108df565b6102d781610960565b50565b604051600090339063ffffffff8716907f11c97c784c298562a796345417aa40e1ce110e6b100f41b801ab23414f72d7e5908490a36103248561031f33878787610a6e565b610b22565b95945050505050565b6000610343609863ffffffff80851690610bcc16565b156103625761035c609863ffffffff80851690610bdf16565b92915050565b506000919050565b919050565b609880546060919060008167ffffffffffffffff81111561039257610392611868565b6040519080825280602002602001820160405280156103bb578160200160208202803683370190505b50905060005b82811015610422578381815481106103db576103db611c97565b906000526020600020015460001c8282815181106103fb576103fb611c97565b63ffffffff909216602092830291909101909101528061041a81611cf5565b9150506103c1565b509392505050565b60655473ffffffffffffffffffffffffffffffffffffffff1633146104b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f216d61696c626f7800000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b83836104bc8282610beb565b604051806080016040528060438152602001612542604391399061050d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a79190611d9b565b5061051a86868686610bff565b505050505050565b61052a6108df565b6105346000610d23565b565b604051600090339063ffffffff8616907f11c97c784c298562a796345417aa40e1ce110e6b100f41b801ab23414f72d7e5908490a361057a8461031f338686610d9a565b949350505050565b61058a6108df565b6105948282610dcc565b5050565b6105a06108df565b828114610609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016104a7565b8260005b8181101561051a5761065d86868381811061062a5761062a611c97565b905060200201602081019061063f9190611a22565b85858481811061065157610651611c97565b90506020020135610dcc565b610668600182611dae565b905061060d565b6106776108df565b6102d781610e26565b6106886108df565b73ffffffffffffffffffffffffffffffffffffffff811661072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104a7565b6102d781610d23565b61073c6108df565b6102d781610f15565b600054610100900460ff16158080156107655750600054600160ff909116105b8061077f5750303b15801561077f575060005460ff166001145b61080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016104a7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561086957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61087585858585611004565b80156108d857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a7565b73ffffffffffffffffffffffffffffffffffffffff81161580610999575073ffffffffffffffffffffffffffffffffffffffff81163b15155b6109ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104a7565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517ffec811ed4e60aebdaf7a79cad8a97196bf56e35362f039705598226d30c9d24890600090a250565b60408051600180825281830190925260609160009190816020015b610ab46040805160808101825260009181019182526060808201529081908152602001606081525090565b815260200190600190039081610a89579050509050610ad48585856110c5565b81600081518110610ae757610ae7611c97565b602002602001018190525085600082604051602001610b0893929190611e2b565b604051602081830303815290604052915050949350505050565b600080610b2e84611115565b6065546040517ffa31de0100000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff169063fa31de0190610b8990879085908890600401611ef6565b6020604051808303816000875af1158015610ba8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057a9190611f1b565b6000610bd88383611180565b9392505050565b6000610bd8838361118c565b600081610bf78461032d565b149392505050565b6000610c0b8383611216565b90506000610c198484611250565b90506000826001811115610c2f57610c2f611dc1565b03610c99576000610c408585611268565b90506000610c4d826112a0565b9050828863ffffffff167fb689f7016112eaacc7edebd6ea5eb700790a103e79c39ce0118e075de87d797660405160405180910390a3610c918861031f858461134b565b50505061051a565b6001826001811115610cad57610cad611dc1565b03610d1b57806000610cbf868661137a565b9050610ccb82826113b2565b60405173ffffffffffffffffffffffffffffffffffffffff83169063ffffffff8a16907fc4416e2fcdf8514178829e5ead195eb13f3241ea71c0e38f998868fe81e4226990600090a3505061051a565b61051a611f34565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60608360008484604051602001610db4949392919061204d565b60405160208183030381529060405290509392505050565b610de2609863ffffffff8085169084906113ef16565b8163ffffffff167f97fd51fef1f80c854cbd0150c248e8b2ac4ecdc97cc05e742b5f61c9f4dc645882604051610e1a91815260200190565b60405180910390a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b610ea5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104a7565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517fb87f5a0bface22cde699143559fb99f990ae54eea236995fc54178af91af859f90600090a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b610f94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104a7565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517f7a61e573722ff8b205c8962b59d37e7d30573f368965597a844a94872204ebd790600090a25050565b600054610100900460ff1661109b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016104a7565b6110a484610f15565b6110ad83610e26565b6110b682610960565b6110bf81610d23565b50505050565b6110f06040805160808101825260009181019182526060808201529081908152602001606081525090565b604051806040016040528061110586866113fa565b8152602001929092525092915050565b60006111208261032d565b90506000801b811415604051806080016040528060438152602001612542604391399061117a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a79190611d9b565b50919050565b6000610bd8838361144c565b6000818152600283016020526040812054801515806111b057506111b08484611180565b610bd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579000060448201526064016104a7565b6000828261122660016040612128565b81811061123557611235611c97565b919091013560f81c90506001811115610bd857610bd8611dc1565b600061125f602082848661213b565b610bd891612165565b606060006112768484611216565b600181111561128757611287611dc1565b1461129457611294611f34565b610324828401846121d4565b8051606090600090818167ffffffffffffffff8111156112c2576112c2611868565b6040519080825280602002602001820160405280156112f557816020015b60608152602001906001900390816112e05790505b5090505b8183101561057a5761132385848151811061131657611316611c97565b6020026020010151611464565b81848151811061133557611335611c97565b60200260200101819052508260010192506112f9565b60608260018360405160200161136393929190612393565b604051602081830303815290604052905092915050565b606060016113888484611216565b600181111561139957611399611dc1565b146113a6576113a6611f34565b61032482840184612429565b80516000905b808210156110bf576113e3848484815181106113d6576113d6611c97565b602002602001015161149f565b508160010191506113b8565b6110bf8383836114e3565b6040805180820182526000808252606060208084018290528451808601865292835291820152825180840190935273ffffffffffffffffffffffffffffffffffffffff85168352820183905290610bd8565b60008181526001830160205260408120541515610bd8565b606081602001516114788360000151611500565b6040516020016114899291906124f6565b6040516020818303038152906040529050919050565b6060610bd8838360006040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c65640000815250611513565b6000828152600284016020526040812082905561057a848461162c565b805160609061035c908360200151611638565b6060824710156115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016104a7565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516115ce9190612525565b60006040518083038185875af1925050503d806000811461160b576040519150601f19603f3d011682016040523d82523d6000602084013e611610565b606091505b50915091506116218783838761165d565b979650505050505050565b6000610bd883836116fd565b6060610bd883836040518060600160405280602581526020016125856025913961174c565b606083156116f35782516000036116ec5773ffffffffffffffffffffffffffffffffffffffff85163b6116ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104a7565b508161057a565b61057a83836117d1565b60008181526001830160205260408120546117445750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561035c565b50600061035c565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516117769190612525565b600060405180830381855afa9150503d80600081146117b1576040519150601f19603f3d011682016040523d82523d6000602084013e6117b6565b606091505b50915091506117c78683838761165d565b9695505050505050565b8151156117e15781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a79190611d9b565b803573ffffffffffffffffffffffffffffffffffffffff8116811461036a57600080fd5b60006020828403121561184b57600080fd5b610bd882611815565b803563ffffffff8116811461036a57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156118ba576118ba611868565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561190757611907611868565b604052919050565b600082601f83011261192057600080fd5b813567ffffffffffffffff81111561193a5761193a611868565b61196b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016118c0565b81815284602083860101111561198057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156119b357600080fd5b6119bc85611854565b93506119ca60208601611815565b9250604085013567ffffffffffffffff808211156119e757600080fd5b6119f38883890161190f565b93506060870135915080821115611a0957600080fd5b50611a168782880161190f565b91505092959194509250565b600060208284031215611a3457600080fd5b610bd882611854565b6020808252825182820181905260009190848201906040850190845b81811015611a7b57835163ffffffff1683529284019291840191600101611a59565b50909695505050505050565b60008060008060608587031215611a9d57600080fd5b611aa685611854565b935060208501359250604085013567ffffffffffffffff80821115611aca57600080fd5b818701915087601f830112611ade57600080fd5b813581811115611aed57600080fd5b886020828501011115611aff57600080fd5b95989497505060200194505050565b60008083601f840112611b2057600080fd5b50813567ffffffffffffffff811115611b3857600080fd5b6020830191508360208260051b8501011115611b5357600080fd5b9250929050565b600080600060408486031215611b6f57600080fd5b611b7884611854565b9250602084013567ffffffffffffffff811115611b9457600080fd5b611ba086828701611b0e565b9497909650939450505050565b60008060408385031215611bc057600080fd5b611bc983611854565b946020939093013593505050565b60008060008060408587031215611bed57600080fd5b843567ffffffffffffffff80821115611c0557600080fd5b611c1188838901611b0e565b90965094506020870135915080821115611c2a57600080fd5b50611c3787828801611b0e565b95989497509550505050565b60008060008060808587031215611c5957600080fd5b611c6285611815565b9350611c7060208601611815565b9250611c7e60408601611815565b9150611c8c60608601611815565b905092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611d2657611d26611cc6565b5060010190565b60005b83811015611d48578181015183820152602001611d30565b50506000910152565b60008151808452611d69816020860160208601611d2d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610bd86020830184611d51565b8082018082111561035c5761035c611cc6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60028110611e27577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b600060608083018684526020611e4381860188611df0565b60408381870152828751808552608094508488019150848160051b890101848a0160005b83811015611ee4578a83037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80018552815180518785528051888601528801518a8501889052611eb88a860182611d51565b91890151858303868b0152919050611ed08183611d51565b968901969450505090860190600101611e67565b50909c9b505050505050505050505050565b63ffffffff841681528260208201526060604082015260006103246060830184611d51565b600060208284031215611f2d57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112611f9757600080fd5b90910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611fd557600080fd5b830160208101925035905067ffffffffffffffff811115611ff557600080fd5b803603821315611b5357600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60006060808301878452602061206581860189611df0565b604085810184905291869052608091828601600588901b870184018960005b8a811015611ee4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808a84030184526120bd828d611f63565b6120c78182611f63565b8685528035878601526120dc88820182611fa0565b9150878b8701526120f08a87018383612004565b9150506120ff88830183611fa0565b925085820389870152612113828483612004565b96890196955050509186019150600101612084565b8181038181111561035c5761035c611cc6565b6000808585111561214b57600080fd5b8386111561215857600080fd5b5050820193919092039150565b8035602083101561035c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b80356002811061036a57600080fd5b600067ffffffffffffffff8211156121ca576121ca611868565b5060051b60200190565b6000806000606084860312156121e957600080fd5b833592506121f9602085016121a1565b915067ffffffffffffffff6040850135111561221457600080fd5b6040840135840185601f82011261222a57600080fd5b61223c61223782356121b0565b6118c0565b81358082526020808301929160051b84010188101561225a57600080fd5b602083015b6020843560051b8501018110156123855767ffffffffffffffff8135111561228657600080fd5b803584017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0604081838d030112156122bd57600080fd5b6122c5611897565b67ffffffffffffffff602084013511156122de57600080fd5b60208301358301604083828f030112156122f757600080fd5b6122ff611897565b92506020810135835267ffffffffffffffff6040820135111561232157600080fd5b6123348d6020604084013584010161190f565b60208401525081815267ffffffffffffffff6040840135111561235657600080fd5b6123698c6020604086013586010161190f565b602082015280865250505060208301925060208101905061225f565b508093505050509250925092565b60006060820185835260206123aa81850187611df0565b6060604085015281855180845260808601915060808160051b870101935082870160005b8281101561241a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80888703018452612408868351611d51565b955092840192908401906001016123ce565b50939998505050505050505050565b60008060006060848603121561243e57600080fd5b83359250602061244f8186016121a1565b9250604085013567ffffffffffffffff8082111561246c57600080fd5b818701915087601f83011261248057600080fd5b813561248e612237826121b0565b81815260059190911b8301840190848101908a8311156124ad57600080fd5b8585015b838110156124e5578035858111156124c95760008081fd5b6124d78d89838a010161190f565b8452509186019186016124b1565b508096505050505050509250925092565b60008351612508818460208801611d2d565b83519083019061251c818360208801611d2d565b01949350505050565b60008251612537818460208701611d2d565b919091019291505056fe4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e2e2044696420796f7520737065636966792074686520726967687420646f6d61696e2049443f416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564a264697066735822122013ba5a6a44dcbe7476be0e0f3e61d399a94c2717da0b34f4e4b2d54975b9ebf864736f6c63430008110033";
15
+ static readonly bytecode = "0x608060405234801561001057600080fd5b506125df806100206000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80638da5cb5b116100b2578063e9198bf911610081578063f2fde38b11610066578063f2fde38b1461028d578063f3c61d6b146102a0578063f8c8765e146102b357600080fd5b8063e9198bf914610267578063f1bd6f0a1461027a57600080fd5b80638da5cb5b146101f6578063b49c53a714610214578063d5438eae14610227578063de523cf31461024757600080fd5b8063440df4f4116100ee578063440df4f4146101b357806356d5d475146101c8578063715018a6146101db5780638cc02cab146101e357600080fd5b80630e72cc06146101205780632222b452146101355780632ead72f61461015b57806339bb4ad91461016e575b600080fd5b61013361012e366004611839565b6102c6565b005b61014861014336600461199d565b6102da565b6040519081526020015b60405180910390f35b610148610169366004611a22565b61032d565b60665461018e9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610152565b6101bb61036f565b6040516101529190611a3d565b6101336101d6366004611a87565b61042a565b610133610522565b6101486101f1366004611b5a565b610536565b60335473ffffffffffffffffffffffffffffffffffffffff1661018e565b610133610222366004611bad565b610582565b60655461018e9073ffffffffffffffffffffffffffffffffffffffff1681565b60675461018e9073ffffffffffffffffffffffffffffffffffffffff1681565b610133610275366004611bd7565b610598565b610133610288366004611839565b61066f565b61013361029b366004611839565b610680565b6101336102ae366004611839565b610734565b6101336102c1366004611c43565b610745565b6102ce6108df565b6102d781610960565b50565b604051600090339063ffffffff8716907f11c97c784c298562a796345417aa40e1ce110e6b100f41b801ab23414f72d7e5908490a36103248561031f33878787610a6e565b610b22565b95945050505050565b6000610343609863ffffffff80851690610bcc16565b156103625761035c609863ffffffff80851690610bdf16565b92915050565b506000919050565b919050565b609880546060919060008167ffffffffffffffff81111561039257610392611868565b6040519080825280602002602001820160405280156103bb578160200160208202803683370190505b50905060005b82811015610422578381815481106103db576103db611c97565b906000526020600020015460001c8282815181106103fb576103fb611c97565b63ffffffff909216602092830291909101909101528061041a81611cf5565b9150506103c1565b509392505050565b60655473ffffffffffffffffffffffffffffffffffffffff1633146104b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f216d61696c626f7800000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b83836104bc8282610beb565b604051806080016040528060438152602001612542604391399061050d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a79190611d9b565b5061051a86868686610bff565b505050505050565b61052a6108df565b6105346000610d23565b565b604051600090339063ffffffff8616907f11c97c784c298562a796345417aa40e1ce110e6b100f41b801ab23414f72d7e5908490a361057a8461031f338686610d9a565b949350505050565b61058a6108df565b6105948282610dcc565b5050565b6105a06108df565b828114610609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016104a7565b8260005b8181101561051a5761065d86868381811061062a5761062a611c97565b905060200201602081019061063f9190611a22565b85858481811061065157610651611c97565b90506020020135610dcc565b610668600182611dae565b905061060d565b6106776108df565b6102d781610e26565b6106886108df565b73ffffffffffffffffffffffffffffffffffffffff811661072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104a7565b6102d781610d23565b61073c6108df565b6102d781610f15565b600054610100900460ff16158080156107655750600054600160ff909116105b8061077f5750303b15801561077f575060005460ff166001145b61080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016104a7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561086957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61087585858585611004565b80156108d857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a7565b73ffffffffffffffffffffffffffffffffffffffff81161580610999575073ffffffffffffffffffffffffffffffffffffffff81163b15155b6109ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104a7565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517ffec811ed4e60aebdaf7a79cad8a97196bf56e35362f039705598226d30c9d24890600090a250565b60408051600180825281830190925260609160009190816020015b610ab46040805160808101825260009181019182526060808201529081908152602001606081525090565b815260200190600190039081610a89579050509050610ad48585856110c5565b81600081518110610ae757610ae7611c97565b602002602001018190525085600082604051602001610b0893929190611e2b565b604051602081830303815290604052915050949350505050565b600080610b2e84611115565b6065546040517ffa31de0100000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff169063fa31de0190610b8990879085908890600401611ef6565b6020604051808303816000875af1158015610ba8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057a9190611f1b565b6000610bd88383611180565b9392505050565b6000610bd8838361118c565b600081610bf78461032d565b149392505050565b6000610c0b8383611216565b90506000610c198484611250565b90506000826001811115610c2f57610c2f611dc1565b03610c99576000610c408585611268565b90506000610c4d826112a0565b9050828863ffffffff167fb689f7016112eaacc7edebd6ea5eb700790a103e79c39ce0118e075de87d797660405160405180910390a3610c918861031f858461134b565b50505061051a565b6001826001811115610cad57610cad611dc1565b03610d1b57806000610cbf868661137a565b9050610ccb82826113b2565b60405173ffffffffffffffffffffffffffffffffffffffff83169063ffffffff8a16907fc4416e2fcdf8514178829e5ead195eb13f3241ea71c0e38f998868fe81e4226990600090a3505061051a565b61051a611f34565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60608360008484604051602001610db4949392919061204d565b60405160208183030381529060405290509392505050565b610de2609863ffffffff8085169084906113ef16565b8163ffffffff167f97fd51fef1f80c854cbd0150c248e8b2ac4ecdc97cc05e742b5f61c9f4dc645882604051610e1a91815260200190565b60405180910390a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b610ea5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104a7565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517fb87f5a0bface22cde699143559fb99f990ae54eea236995fc54178af91af859f90600090a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b610f94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104a7565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517f7a61e573722ff8b205c8962b59d37e7d30573f368965597a844a94872204ebd790600090a25050565b600054610100900460ff1661109b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016104a7565b6110a484610f15565b6110ad83610e26565b6110b682610960565b6110bf81610d23565b50505050565b6110f06040805160808101825260009181019182526060808201529081908152602001606081525090565b604051806040016040528061110586866113fa565b8152602001929092525092915050565b60006111208261032d565b90506000801b811415604051806080016040528060438152602001612542604391399061117a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a79190611d9b565b50919050565b6000610bd8838361144c565b6000818152600283016020526040812054801515806111b057506111b08484611180565b610bd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579000060448201526064016104a7565b6000828261122660016040612128565b81811061123557611235611c97565b919091013560f81c90506001811115610bd857610bd8611dc1565b600061125f602082848661213b565b610bd891612165565b606060006112768484611216565b600181111561128757611287611dc1565b1461129457611294611f34565b610324828401846121d4565b8051606090600090818167ffffffffffffffff8111156112c2576112c2611868565b6040519080825280602002602001820160405280156112f557816020015b60608152602001906001900390816112e05790505b5090505b8183101561057a5761132385848151811061131657611316611c97565b6020026020010151611464565b81848151811061133557611335611c97565b60200260200101819052508260010192506112f9565b60608260018360405160200161136393929190612393565b604051602081830303815290604052905092915050565b606060016113888484611216565b600181111561139957611399611dc1565b146113a6576113a6611f34565b61032482840184612429565b80516000905b808210156110bf576113e3848484815181106113d6576113d6611c97565b602002602001015161149f565b508160010191506113b8565b6110bf8383836114e3565b6040805180820182526000808252606060208084018290528451808601865292835291820152825180840190935273ffffffffffffffffffffffffffffffffffffffff85168352820183905290610bd8565b60008181526001830160205260408120541515610bd8565b606081602001516114788360000151611500565b6040516020016114899291906124f6565b6040516020818303038152906040529050919050565b6060610bd8838360006040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c65640000815250611513565b6000828152600284016020526040812082905561057a848461162c565b805160609061035c908360200151611638565b6060824710156115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016104a7565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516115ce9190612525565b60006040518083038185875af1925050503d806000811461160b576040519150601f19603f3d011682016040523d82523d6000602084013e611610565b606091505b50915091506116218783838761165d565b979650505050505050565b6000610bd883836116fd565b6060610bd883836040518060600160405280602581526020016125856025913961174c565b606083156116f35782516000036116ec5773ffffffffffffffffffffffffffffffffffffffff85163b6116ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104a7565b508161057a565b61057a83836117d1565b60008181526001830160205260408120546117445750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561035c565b50600061035c565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516117769190612525565b600060405180830381855afa9150503d80600081146117b1576040519150601f19603f3d011682016040523d82523d6000602084013e6117b6565b606091505b50915091506117c78683838761165d565b9695505050505050565b8151156117e15781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a79190611d9b565b803573ffffffffffffffffffffffffffffffffffffffff8116811461036a57600080fd5b60006020828403121561184b57600080fd5b610bd882611815565b803563ffffffff8116811461036a57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156118ba576118ba611868565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561190757611907611868565b604052919050565b600082601f83011261192057600080fd5b813567ffffffffffffffff81111561193a5761193a611868565b61196b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016118c0565b81815284602083860101111561198057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156119b357600080fd5b6119bc85611854565b93506119ca60208601611815565b9250604085013567ffffffffffffffff808211156119e757600080fd5b6119f38883890161190f565b93506060870135915080821115611a0957600080fd5b50611a168782880161190f565b91505092959194509250565b600060208284031215611a3457600080fd5b610bd882611854565b6020808252825182820181905260009190848201906040850190845b81811015611a7b57835163ffffffff1683529284019291840191600101611a59565b50909695505050505050565b60008060008060608587031215611a9d57600080fd5b611aa685611854565b935060208501359250604085013567ffffffffffffffff80821115611aca57600080fd5b818701915087601f830112611ade57600080fd5b813581811115611aed57600080fd5b886020828501011115611aff57600080fd5b95989497505060200194505050565b60008083601f840112611b2057600080fd5b50813567ffffffffffffffff811115611b3857600080fd5b6020830191508360208260051b8501011115611b5357600080fd5b9250929050565b600080600060408486031215611b6f57600080fd5b611b7884611854565b9250602084013567ffffffffffffffff811115611b9457600080fd5b611ba086828701611b0e565b9497909650939450505050565b60008060408385031215611bc057600080fd5b611bc983611854565b946020939093013593505050565b60008060008060408587031215611bed57600080fd5b843567ffffffffffffffff80821115611c0557600080fd5b611c1188838901611b0e565b90965094506020870135915080821115611c2a57600080fd5b50611c3787828801611b0e565b95989497509550505050565b60008060008060808587031215611c5957600080fd5b611c6285611815565b9350611c7060208601611815565b9250611c7e60408601611815565b9150611c8c60608601611815565b905092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611d2657611d26611cc6565b5060010190565b60005b83811015611d48578181015183820152602001611d30565b50506000910152565b60008151808452611d69816020860160208601611d2d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610bd86020830184611d51565b8082018082111561035c5761035c611cc6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60028110611e27577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b600060608083018684526020611e4381860188611df0565b60408381870152828751808552608094508488019150848160051b890101848a0160005b83811015611ee4578a83037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80018552815180518785528051888601528801518a8501889052611eb88a860182611d51565b91890151858303868b0152919050611ed08183611d51565b968901969450505090860190600101611e67565b50909c9b505050505050505050505050565b63ffffffff841681528260208201526060604082015260006103246060830184611d51565b600060208284031215611f2d57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112611f9757600080fd5b90910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611fd557600080fd5b830160208101925035905067ffffffffffffffff811115611ff557600080fd5b803603821315611b5357600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60006060808301878452602061206581860189611df0565b604085810184905291869052608091828601600588901b870184018960005b8a811015611ee4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808a84030184526120bd828d611f63565b6120c78182611f63565b8685528035878601526120dc88820182611fa0565b9150878b8701526120f08a87018383612004565b9150506120ff88830183611fa0565b925085820389870152612113828483612004565b96890196955050509186019150600101612084565b8181038181111561035c5761035c611cc6565b6000808585111561214b57600080fd5b8386111561215857600080fd5b5050820193919092039150565b8035602083101561035c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b80356002811061036a57600080fd5b600067ffffffffffffffff8211156121ca576121ca611868565b5060051b60200190565b6000806000606084860312156121e957600080fd5b833592506121f9602085016121a1565b915067ffffffffffffffff6040850135111561221457600080fd5b6040840135840185601f82011261222a57600080fd5b61223c61223782356121b0565b6118c0565b81358082526020808301929160051b84010188101561225a57600080fd5b602083015b6020843560051b8501018110156123855767ffffffffffffffff8135111561228657600080fd5b803584017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0604081838d030112156122bd57600080fd5b6122c5611897565b67ffffffffffffffff602084013511156122de57600080fd5b60208301358301604083828f030112156122f757600080fd5b6122ff611897565b92506020810135835267ffffffffffffffff6040820135111561232157600080fd5b6123348d6020604084013584010161190f565b60208401525081815267ffffffffffffffff6040840135111561235657600080fd5b6123698c6020604086013586010161190f565b602082015280865250505060208301925060208101905061225f565b508093505050509250925092565b60006060820185835260206123aa81850187611df0565b6060604085015281855180845260808601915060808160051b870101935082870160005b8281101561241a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80888703018452612408868351611d51565b955092840192908401906001016123ce565b50939998505050505050505050565b60008060006060848603121561243e57600080fd5b83359250602061244f8186016121a1565b9250604085013567ffffffffffffffff8082111561246c57600080fd5b818701915087601f83011261248057600080fd5b813561248e612237826121b0565b81815260059190911b8301840190848101908a8311156124ad57600080fd5b8585015b838110156124e5578035858111156124c95760008081fd5b6124d78d89838a010161190f565b8452509186019186016124b1565b508096505050505050509250925092565b60008351612508818460208801611d2d565b83519083019061251c818360208801611d2d565b01949350505050565b60008251612537818460208701611d2d565b919091019291505056fe4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e2e2044696420796f7520737065636966792074686520726967687420646f6d61696e2049443f416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564a26469706673582212209c66069227b42b4fca2a0189103b448e8ac3091670fffe8af86dca32ade2822a64736f6c63430008110033";
16
16
  static readonly abi: ({
17
17
  anonymous: boolean;
18
18
  inputs: {