@hyperlane-xyz/core 5.0.0 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (600) hide show
  1. package/contracts/AttributeCheckpointFraud.sol +140 -0
  2. package/contracts/CheckpointFraudProofs.sol +143 -0
  3. package/contracts/client/Router.sol +4 -2
  4. package/contracts/hooks/OPL2ToL1Hook.sol +84 -0
  5. package/contracts/hooks/igp/InterchainGasPaymaster.sol +8 -8
  6. package/contracts/hooks/routing/DomainRoutingHook.sol +8 -7
  7. package/contracts/interfaces/IInterchainSecurityModule.sol +4 -1
  8. package/contracts/interfaces/hooks/IPostDispatchHook.sol +2 -1
  9. package/contracts/interfaces/isms/IWeightedMultisigIsm.sol +39 -0
  10. package/contracts/interfaces/optimism/ICrossDomainMessenger.sol +2 -0
  11. package/contracts/interfaces/optimism/IOptimismPortal.sol +28 -0
  12. package/contracts/isms/hook/OPL2ToL1Ism.sol +109 -0
  13. package/contracts/isms/libs/MerkleRootMultisigIsmMetadata.sol +16 -0
  14. package/contracts/isms/libs/MessageIdMultisigIsmMetadata.sol +16 -0
  15. package/contracts/isms/multisig/AbstractMerkleRootMultisigIsm.sol +14 -9
  16. package/contracts/isms/multisig/AbstractMessageIdMultisigIsm.sol +13 -8
  17. package/contracts/isms/multisig/AbstractMultisigIsm.sol +47 -20
  18. package/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol +100 -0
  19. package/contracts/isms/multisig/StaticMultisigIsm.sol +10 -2
  20. package/contracts/isms/multisig/WeightedMultisigIsm.sol +67 -0
  21. package/contracts/isms/routing/DomainRoutingIsm.sol +4 -2
  22. package/contracts/libs/CheckpointLib.sol +41 -9
  23. package/contracts/libs/Merkle.sol +33 -3
  24. package/contracts/libs/OPL2ToL1Metadata.sol +62 -0
  25. package/contracts/libs/StaticWeightedValidatorSetFactory.sol +97 -0
  26. package/contracts/mock/MockArbBridge.sol +78 -0
  27. package/contracts/mock/MockERC4626YieldSharing.sol +80 -0
  28. package/contracts/mock/MockHyperlaneEnvironment.sol +2 -2
  29. package/contracts/mock/MockOptimism.sol +61 -0
  30. package/contracts/test/ERC20Test.sol +4 -0
  31. package/contracts/test/ERC4626/ERC4626Test.sol +1 -0
  32. package/contracts/token/extensions/HypERC4626.sol +102 -0
  33. package/contracts/token/extensions/HypERC4626Collateral.sol +111 -0
  34. package/contracts/token/extensions/{HypERC20CollateralVaultDeposit.sol → HypERC4626OwnerCollateral.sol} +3 -2
  35. package/dist/buildArtifact.js +1 -1
  36. package/dist/buildArtifact.json +1 -1
  37. package/dist/contracts/AttributeCheckpointFraud.d.ts +356 -0
  38. package/dist/contracts/AttributeCheckpointFraud.d.ts.map +1 -0
  39. package/dist/contracts/AttributeCheckpointFraud.js +2 -0
  40. package/dist/contracts/AttributeCheckpointFraud.js.map +1 -0
  41. package/dist/contracts/CheckpointFraudProofs.d.ts +200 -0
  42. package/dist/contracts/CheckpointFraudProofs.d.ts.map +1 -0
  43. package/dist/contracts/CheckpointFraudProofs.js +2 -0
  44. package/dist/contracts/CheckpointFraudProofs.js.map +1 -0
  45. package/dist/contracts/hooks/OPL2ToL1Hook.d.ts +396 -0
  46. package/dist/contracts/hooks/OPL2ToL1Hook.d.ts.map +1 -0
  47. package/dist/contracts/hooks/OPL2ToL1Hook.js +2 -0
  48. package/dist/contracts/hooks/OPL2ToL1Hook.js.map +1 -0
  49. package/dist/contracts/hooks/index.d.ts +1 -0
  50. package/dist/contracts/hooks/index.d.ts.map +1 -1
  51. package/dist/contracts/index.d.ts +2 -0
  52. package/dist/contracts/index.d.ts.map +1 -1
  53. package/dist/contracts/interfaces/isms/IWeightedMultisigIsm.sol/IStaticWeightedMultisigIsm.d.ts +142 -0
  54. package/dist/contracts/interfaces/isms/IWeightedMultisigIsm.sol/IStaticWeightedMultisigIsm.d.ts.map +1 -0
  55. package/dist/contracts/interfaces/isms/IWeightedMultisigIsm.sol/IStaticWeightedMultisigIsm.js +2 -0
  56. package/dist/contracts/interfaces/isms/IWeightedMultisigIsm.sol/IStaticWeightedMultisigIsm.js.map +1 -0
  57. package/dist/contracts/interfaces/isms/IWeightedMultisigIsm.sol/index.d.ts +2 -0
  58. package/dist/contracts/interfaces/isms/IWeightedMultisigIsm.sol/index.d.ts.map +1 -0
  59. package/dist/contracts/interfaces/isms/IWeightedMultisigIsm.sol/index.js +2 -0
  60. package/dist/contracts/interfaces/isms/IWeightedMultisigIsm.sol/index.js.map +1 -0
  61. package/dist/contracts/interfaces/isms/index.d.ts +2 -0
  62. package/dist/contracts/interfaces/isms/index.d.ts.map +1 -1
  63. package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/ICrossDomainMessenger.d.ts +16 -1
  64. package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/ICrossDomainMessenger.d.ts.map +1 -1
  65. package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger.d.ts +16 -1
  66. package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger.d.ts.map +1 -1
  67. package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL2CrossDomainMessenger.d.ts +16 -1
  68. package/dist/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL2CrossDomainMessenger.d.ts.map +1 -1
  69. package/dist/contracts/interfaces/optimism/IOptimismPortal.d.ts +91 -0
  70. package/dist/contracts/interfaces/optimism/IOptimismPortal.d.ts.map +1 -0
  71. package/dist/contracts/interfaces/optimism/IOptimismPortal.js +2 -0
  72. package/dist/contracts/interfaces/optimism/IOptimismPortal.js.map +1 -0
  73. package/dist/contracts/interfaces/optimism/index.d.ts +1 -0
  74. package/dist/contracts/interfaces/optimism/index.d.ts.map +1 -1
  75. package/dist/contracts/isms/hook/OPL2ToL1Ism.d.ts +273 -0
  76. package/dist/contracts/isms/hook/OPL2ToL1Ism.d.ts.map +1 -0
  77. package/dist/contracts/isms/hook/OPL2ToL1Ism.js +2 -0
  78. package/dist/contracts/isms/hook/OPL2ToL1Ism.js.map +1 -0
  79. package/dist/contracts/isms/hook/index.d.ts +1 -0
  80. package/dist/contracts/isms/hook/index.d.ts.map +1 -1
  81. package/dist/contracts/isms/multisig/AbstractMerkleRootMultisigIsm.d.ts +16 -46
  82. package/dist/contracts/isms/multisig/AbstractMerkleRootMultisigIsm.d.ts.map +1 -1
  83. package/dist/contracts/isms/multisig/AbstractMessageIdMultisigIsm.d.ts +16 -46
  84. package/dist/contracts/isms/multisig/AbstractMessageIdMultisigIsm.d.ts.map +1 -1
  85. package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisig.d.ts +50 -0
  86. package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisig.d.ts.map +1 -0
  87. package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisig.js +2 -0
  88. package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisig.js.map +1 -0
  89. package/dist/contracts/isms/multisig/{AbstractMultisigIsm.d.ts → AbstractMultisigIsm.sol/AbstractMultisigIsm.d.ts} +17 -17
  90. package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisigIsm.d.ts.map +1 -0
  91. package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisigIsm.js.map +1 -0
  92. package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/index.d.ts +3 -0
  93. package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/index.d.ts.map +1 -0
  94. package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/index.js +2 -0
  95. package/dist/contracts/isms/multisig/AbstractMultisigIsm.sol/index.js.map +1 -0
  96. package/dist/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/AbstractStaticWeightedMultisigIsm.d.ts +138 -0
  97. package/dist/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/AbstractStaticWeightedMultisigIsm.d.ts.map +1 -0
  98. package/dist/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/AbstractStaticWeightedMultisigIsm.js +2 -0
  99. package/dist/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/AbstractStaticWeightedMultisigIsm.js.map +1 -0
  100. package/dist/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/index.d.ts +2 -0
  101. package/dist/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/index.d.ts.map +1 -0
  102. package/dist/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/index.js +2 -0
  103. package/dist/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/index.js.map +1 -0
  104. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/AbstractMetaProxyMultisigIsm.d.ts +16 -16
  105. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/AbstractMetaProxyMultisigIsm.d.ts.map +1 -1
  106. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm.d.ts +16 -1
  107. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm.d.ts.map +1 -1
  108. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm.d.ts +16 -1
  109. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm.d.ts.map +1 -1
  110. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/AbstractMetaProxyWeightedMultisigIsm.d.ts +138 -0
  111. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/AbstractMetaProxyWeightedMultisigIsm.d.ts.map +1 -0
  112. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/AbstractMetaProxyWeightedMultisigIsm.js +2 -0
  113. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/AbstractMetaProxyWeightedMultisigIsm.js.map +1 -0
  114. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm.d.ts +138 -0
  115. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm.d.ts.map +1 -0
  116. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm.js +2 -0
  117. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm.js.map +1 -0
  118. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory.d.ts +106 -0
  119. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory.d.ts.map +1 -0
  120. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory.js +2 -0
  121. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory.js.map +1 -0
  122. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm.d.ts +138 -0
  123. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm.d.ts.map +1 -0
  124. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm.js +2 -0
  125. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm.js.map +1 -0
  126. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory.d.ts +106 -0
  127. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory.d.ts.map +1 -0
  128. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory.js +2 -0
  129. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory.js.map +1 -0
  130. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/index.d.ts +6 -0
  131. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/index.d.ts.map +1 -0
  132. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/index.js +2 -0
  133. package/dist/contracts/isms/multisig/WeightedMultisigIsm.sol/index.js.map +1 -0
  134. package/dist/contracts/isms/multisig/index.d.ts +6 -1
  135. package/dist/contracts/isms/multisig/index.d.ts.map +1 -1
  136. package/dist/contracts/libs/StaticWeightedValidatorSetFactory.d.ts +106 -0
  137. package/dist/contracts/libs/StaticWeightedValidatorSetFactory.d.ts.map +1 -0
  138. package/dist/contracts/libs/StaticWeightedValidatorSetFactory.js +2 -0
  139. package/dist/contracts/libs/StaticWeightedValidatorSetFactory.js.map +1 -0
  140. package/dist/contracts/libs/index.d.ts +1 -0
  141. package/dist/contracts/libs/index.d.ts.map +1 -1
  142. package/dist/contracts/mock/MockArbBridge.sol/MockArbBridge.d.ts +162 -0
  143. package/dist/contracts/mock/MockArbBridge.sol/MockArbBridge.d.ts.map +1 -0
  144. package/dist/contracts/mock/MockArbBridge.sol/MockArbBridge.js +2 -0
  145. package/dist/contracts/mock/MockArbBridge.sol/MockArbBridge.js.map +1 -0
  146. package/dist/contracts/mock/MockArbBridge.sol/MockArbSys.d.ts +96 -0
  147. package/dist/contracts/mock/MockArbBridge.sol/MockArbSys.d.ts.map +1 -0
  148. package/dist/contracts/mock/MockArbBridge.sol/MockArbSys.js +2 -0
  149. package/dist/contracts/mock/MockArbBridge.sol/MockArbSys.js.map +1 -0
  150. package/dist/contracts/mock/MockArbBridge.sol/index.d.ts +3 -0
  151. package/dist/contracts/mock/MockArbBridge.sol/index.d.ts.map +1 -0
  152. package/dist/contracts/mock/MockArbBridge.sol/index.js +2 -0
  153. package/dist/contracts/mock/MockArbBridge.sol/index.js.map +1 -0
  154. package/dist/contracts/mock/MockERC4626YieldSharing.d.ts +853 -0
  155. package/dist/contracts/mock/MockERC4626YieldSharing.d.ts.map +1 -0
  156. package/dist/contracts/mock/MockERC4626YieldSharing.js +2 -0
  157. package/dist/contracts/mock/MockERC4626YieldSharing.js.map +1 -0
  158. package/dist/contracts/mock/MockHyperlaneEnvironment.d.ts +31 -1
  159. package/dist/contracts/mock/MockHyperlaneEnvironment.d.ts.map +1 -1
  160. package/dist/contracts/mock/MockOptimism.sol/MockOptimismMessenger.d.ts +218 -0
  161. package/dist/contracts/mock/MockOptimism.sol/MockOptimismMessenger.d.ts.map +1 -0
  162. package/dist/contracts/mock/MockOptimism.sol/MockOptimismMessenger.js +2 -0
  163. package/dist/contracts/mock/MockOptimism.sol/MockOptimismMessenger.js.map +1 -0
  164. package/dist/contracts/mock/MockOptimism.sol/MockOptimismPortal.d.ts +91 -0
  165. package/dist/contracts/mock/MockOptimism.sol/MockOptimismPortal.d.ts.map +1 -0
  166. package/dist/contracts/mock/MockOptimism.sol/MockOptimismPortal.js +2 -0
  167. package/dist/contracts/mock/MockOptimism.sol/MockOptimismPortal.js.map +1 -0
  168. package/dist/contracts/mock/MockOptimism.sol/index.d.ts +3 -0
  169. package/dist/contracts/mock/MockOptimism.sol/index.d.ts.map +1 -0
  170. package/dist/contracts/mock/MockOptimism.sol/index.js +2 -0
  171. package/dist/contracts/mock/MockOptimism.sol/index.js.map +1 -0
  172. package/dist/contracts/mock/index.d.ts +5 -0
  173. package/dist/contracts/mock/index.d.ts.map +1 -1
  174. package/dist/contracts/test/ERC20Test.sol/ERC20Test.d.ts +32 -1
  175. package/dist/contracts/test/ERC20Test.sol/ERC20Test.d.ts.map +1 -1
  176. package/dist/contracts/test/ERC20Test.sol/FiatTokenTest.d.ts +32 -1
  177. package/dist/contracts/test/ERC20Test.sol/FiatTokenTest.d.ts.map +1 -1
  178. package/dist/contracts/test/ERC20Test.sol/XERC20Test.d.ts +32 -1
  179. package/dist/contracts/test/ERC20Test.sol/XERC20Test.d.ts.map +1 -1
  180. package/dist/contracts/token/extensions/HypERC4626.d.ts +979 -0
  181. package/dist/contracts/token/extensions/HypERC4626.d.ts.map +1 -0
  182. package/dist/contracts/token/extensions/HypERC4626.js +2 -0
  183. package/dist/contracts/token/extensions/HypERC4626.js.map +1 -0
  184. package/dist/contracts/token/extensions/HypERC4626Collateral.d.ts +718 -0
  185. package/dist/contracts/token/extensions/HypERC4626Collateral.d.ts.map +1 -0
  186. package/dist/contracts/token/extensions/HypERC4626Collateral.js +2 -0
  187. package/dist/contracts/token/extensions/HypERC4626Collateral.js.map +1 -0
  188. package/dist/contracts/token/extensions/{HypERC20CollateralVaultDeposit.d.ts → HypERC4626OwnerCollateral.d.ts} +4 -4
  189. package/dist/contracts/token/extensions/HypERC4626OwnerCollateral.d.ts.map +1 -0
  190. package/dist/contracts/token/extensions/HypERC4626OwnerCollateral.js +2 -0
  191. package/dist/contracts/token/extensions/HypERC4626OwnerCollateral.js.map +1 -0
  192. package/dist/contracts/token/extensions/index.d.ts +3 -1
  193. package/dist/contracts/token/extensions/index.d.ts.map +1 -1
  194. package/dist/factories/contracts/AttributeCheckpointFraud__factory.d.ts +296 -0
  195. package/dist/factories/contracts/AttributeCheckpointFraud__factory.d.ts.map +1 -0
  196. package/dist/factories/contracts/AttributeCheckpointFraud__factory.js +394 -0
  197. package/dist/factories/contracts/AttributeCheckpointFraud__factory.js.map +1 -0
  198. package/dist/factories/contracts/CheckpointFraudProofs__factory.d.ts +239 -0
  199. package/dist/factories/contracts/CheckpointFraudProofs__factory.d.ts.map +1 -0
  200. package/dist/factories/contracts/CheckpointFraudProofs__factory.js +325 -0
  201. package/dist/factories/contracts/CheckpointFraudProofs__factory.js.map +1 -0
  202. package/dist/factories/contracts/Mailbox__factory.d.ts +1 -1
  203. package/dist/factories/contracts/Mailbox__factory.js +1 -1
  204. package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.d.ts +1 -1
  205. package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.js +1 -1
  206. package/dist/factories/contracts/hooks/MerkleTreeHook__factory.d.ts +1 -1
  207. package/dist/factories/contracts/hooks/MerkleTreeHook__factory.js +1 -1
  208. package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.d.ts +252 -0
  209. package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.d.ts.map +1 -0
  210. package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.js +339 -0
  211. package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.js.map +1 -0
  212. package/dist/factories/contracts/hooks/OPStackHook__factory.d.ts +1 -1
  213. package/dist/factories/contracts/hooks/OPStackHook__factory.js +1 -1
  214. package/dist/factories/contracts/hooks/PausableHook__factory.d.ts +1 -1
  215. package/dist/factories/contracts/hooks/PausableHook__factory.js +1 -1
  216. package/dist/factories/contracts/hooks/PolygonPosHook__factory.d.ts +1 -1
  217. package/dist/factories/contracts/hooks/PolygonPosHook__factory.js +1 -1
  218. package/dist/factories/contracts/hooks/ProtocolFee__factory.d.ts +1 -1
  219. package/dist/factories/contracts/hooks/ProtocolFee__factory.js +1 -1
  220. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.d.ts +1 -1
  221. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.js +1 -1
  222. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.d.ts +1 -1
  223. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.js +1 -1
  224. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.d.ts +1 -1
  225. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.js +1 -1
  226. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.d.ts +1 -1
  227. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.d.ts.map +1 -1
  228. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.js +1 -1
  229. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.js.map +1 -1
  230. package/dist/factories/contracts/hooks/index.d.ts +1 -0
  231. package/dist/factories/contracts/hooks/index.d.ts.map +1 -1
  232. package/dist/factories/contracts/hooks/index.js +1 -0
  233. package/dist/factories/contracts/hooks/index.js.map +1 -1
  234. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.d.ts +1 -1
  235. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.js +1 -1
  236. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.d.ts +1 -1
  237. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.js +1 -1
  238. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.d.ts +1 -1
  239. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.d.ts.map +1 -1
  240. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.js +1 -1
  241. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.js.map +1 -1
  242. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.d.ts +1 -1
  243. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.d.ts.map +1 -1
  244. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.js +1 -1
  245. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.js.map +1 -1
  246. package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.d.ts +1 -1
  247. package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.js +1 -1
  248. package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.d.ts +1 -1
  249. package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.js +1 -1
  250. package/dist/factories/contracts/index.d.ts +2 -0
  251. package/dist/factories/contracts/index.d.ts.map +1 -1
  252. package/dist/factories/contracts/index.js +2 -0
  253. package/dist/factories/contracts/index.js.map +1 -1
  254. package/dist/factories/contracts/interfaces/isms/IWeightedMultisigIsm.sol/IStaticWeightedMultisigIsm__factory.d.ts +64 -0
  255. package/dist/factories/contracts/interfaces/isms/IWeightedMultisigIsm.sol/IStaticWeightedMultisigIsm__factory.d.ts.map +1 -0
  256. package/dist/factories/contracts/interfaces/isms/IWeightedMultisigIsm.sol/IStaticWeightedMultisigIsm__factory.js +89 -0
  257. package/dist/factories/contracts/interfaces/isms/IWeightedMultisigIsm.sol/IStaticWeightedMultisigIsm__factory.js.map +1 -0
  258. package/dist/factories/contracts/interfaces/isms/IWeightedMultisigIsm.sol/index.d.ts +2 -0
  259. package/dist/factories/contracts/interfaces/isms/IWeightedMultisigIsm.sol/index.d.ts.map +1 -0
  260. package/dist/factories/contracts/interfaces/isms/IWeightedMultisigIsm.sol/index.js +5 -0
  261. package/dist/factories/contracts/interfaces/isms/IWeightedMultisigIsm.sol/index.js.map +1 -0
  262. package/dist/factories/contracts/interfaces/isms/index.d.ts +1 -0
  263. package/dist/factories/contracts/interfaces/isms/index.d.ts.map +1 -1
  264. package/dist/factories/contracts/interfaces/isms/index.js +1 -0
  265. package/dist/factories/contracts/interfaces/isms/index.js.map +1 -1
  266. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/ICrossDomainMessenger__factory.d.ts +10 -0
  267. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/ICrossDomainMessenger__factory.d.ts.map +1 -1
  268. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/ICrossDomainMessenger__factory.js +13 -0
  269. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/ICrossDomainMessenger__factory.js.map +1 -1
  270. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger__factory.d.ts +10 -0
  271. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger__factory.d.ts.map +1 -1
  272. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger__factory.js +13 -0
  273. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL1CrossDomainMessenger__factory.js.map +1 -1
  274. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL2CrossDomainMessenger__factory.d.ts +10 -0
  275. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL2CrossDomainMessenger__factory.d.ts.map +1 -1
  276. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL2CrossDomainMessenger__factory.js +13 -0
  277. package/dist/factories/contracts/interfaces/optimism/ICrossDomainMessenger.sol/IL2CrossDomainMessenger__factory.js.map +1 -1
  278. package/dist/factories/contracts/interfaces/optimism/IOptimismPortal__factory.d.ts +44 -0
  279. package/dist/factories/contracts/interfaces/optimism/IOptimismPortal__factory.d.ts.map +1 -0
  280. package/dist/factories/contracts/interfaces/optimism/IOptimismPortal__factory.js +61 -0
  281. package/dist/factories/contracts/interfaces/optimism/IOptimismPortal__factory.js.map +1 -0
  282. package/dist/factories/contracts/interfaces/optimism/index.d.ts +1 -0
  283. package/dist/factories/contracts/interfaces/optimism/index.d.ts.map +1 -1
  284. package/dist/factories/contracts/interfaces/optimism/index.js +1 -0
  285. package/dist/factories/contracts/interfaces/optimism/index.js.map +1 -1
  286. package/dist/factories/contracts/isms/NoopIsm__factory.d.ts +1 -1
  287. package/dist/factories/contracts/isms/NoopIsm__factory.js +1 -1
  288. package/dist/factories/contracts/isms/PausableIsm__factory.d.ts +1 -1
  289. package/dist/factories/contracts/isms/PausableIsm__factory.js +1 -1
  290. package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.d.ts +1 -1
  291. package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.js +1 -1
  292. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.d.ts +1 -1
  293. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.js +1 -1
  294. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.d.ts +1 -1
  295. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.js +1 -1
  296. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.d.ts +1 -1
  297. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.js +1 -1
  298. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.d.ts +1 -1
  299. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.js +1 -1
  300. package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.d.ts +169 -0
  301. package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.d.ts.map +1 -0
  302. package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.js +234 -0
  303. package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.js.map +1 -0
  304. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.d.ts +1 -1
  305. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.js +1 -1
  306. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.d.ts +1 -1
  307. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.js +1 -1
  308. package/dist/factories/contracts/isms/hook/index.d.ts +1 -0
  309. package/dist/factories/contracts/isms/hook/index.d.ts.map +1 -1
  310. package/dist/factories/contracts/isms/hook/index.js +1 -0
  311. package/dist/factories/contracts/isms/hook/index.js.map +1 -1
  312. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.d.ts +1 -1
  313. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.js +1 -1
  314. package/dist/factories/contracts/isms/multisig/AbstractMerkleRootMultisigIsm__factory.d.ts +4 -36
  315. package/dist/factories/contracts/isms/multisig/AbstractMerkleRootMultisigIsm__factory.d.ts.map +1 -1
  316. package/dist/factories/contracts/isms/multisig/AbstractMerkleRootMultisigIsm__factory.js +4 -46
  317. package/dist/factories/contracts/isms/multisig/AbstractMerkleRootMultisigIsm__factory.js.map +1 -1
  318. package/dist/factories/contracts/isms/multisig/AbstractMessageIdMultisigIsm__factory.d.ts +4 -36
  319. package/dist/factories/contracts/isms/multisig/AbstractMessageIdMultisigIsm__factory.d.ts.map +1 -1
  320. package/dist/factories/contracts/isms/multisig/AbstractMessageIdMultisigIsm__factory.js +4 -46
  321. package/dist/factories/contracts/isms/multisig/AbstractMessageIdMultisigIsm__factory.js.map +1 -1
  322. package/dist/factories/contracts/isms/multisig/{AbstractMultisigIsm__factory.d.ts → AbstractMultisigIsm.sol/AbstractMultisigIsm__factory.d.ts} +10 -6
  323. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisigIsm__factory.d.ts.map +1 -0
  324. package/dist/factories/contracts/isms/multisig/{AbstractMultisigIsm__factory.js → AbstractMultisigIsm.sol/AbstractMultisigIsm__factory.js} +11 -5
  325. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisigIsm__factory.js.map +1 -0
  326. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisig__factory.d.ts +23 -0
  327. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisig__factory.d.ts.map +1 -0
  328. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisig__factory.js +35 -0
  329. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/AbstractMultisig__factory.js.map +1 -0
  330. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/index.d.ts +3 -0
  331. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/index.d.ts.map +1 -0
  332. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/index.js +6 -0
  333. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm.sol/index.js.map +1 -0
  334. package/dist/factories/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/AbstractStaticWeightedMultisigIsm__factory.d.ts +88 -0
  335. package/dist/factories/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/AbstractStaticWeightedMultisigIsm__factory.d.ts.map +1 -0
  336. package/dist/factories/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/AbstractStaticWeightedMultisigIsm__factory.js +121 -0
  337. package/dist/factories/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/AbstractStaticWeightedMultisigIsm__factory.js.map +1 -0
  338. package/dist/factories/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/index.d.ts +2 -0
  339. package/dist/factories/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/index.d.ts.map +1 -0
  340. package/dist/factories/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/index.js +5 -0
  341. package/dist/factories/contracts/isms/multisig/AbstractWeightedMultisigIsm.sol/index.js.map +1 -0
  342. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/AbstractMetaProxyMultisigIsm__factory.d.ts +9 -5
  343. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/AbstractMetaProxyMultisigIsm__factory.d.ts.map +1 -1
  344. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/AbstractMetaProxyMultisigIsm__factory.js +11 -5
  345. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/AbstractMetaProxyMultisigIsm__factory.js.map +1 -1
  346. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.d.ts +1 -1
  347. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.d.ts.map +1 -1
  348. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js +1 -1
  349. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js.map +1 -1
  350. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts +15 -1
  351. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts.map +1 -1
  352. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js +20 -1
  353. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js.map +1 -1
  354. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.d.ts +1 -1
  355. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.d.ts.map +1 -1
  356. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js +1 -1
  357. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js.map +1 -1
  358. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts +15 -1
  359. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts.map +1 -1
  360. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js +20 -1
  361. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js.map +1 -1
  362. package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.d.ts +1 -1
  363. package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.js +1 -1
  364. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/AbstractMetaProxyWeightedMultisigIsm__factory.d.ts +88 -0
  365. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/AbstractMetaProxyWeightedMultisigIsm__factory.d.ts.map +1 -0
  366. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/AbstractMetaProxyWeightedMultisigIsm__factory.js +121 -0
  367. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/AbstractMetaProxyWeightedMultisigIsm__factory.js.map +1 -0
  368. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.d.ts +85 -0
  369. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.d.ts.map +1 -0
  370. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.js +124 -0
  371. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.js.map +1 -0
  372. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.d.ts +100 -0
  373. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.d.ts.map +1 -0
  374. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.js +144 -0
  375. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.js.map +1 -0
  376. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.d.ts +85 -0
  377. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.d.ts.map +1 -0
  378. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.js +124 -0
  379. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.js.map +1 -0
  380. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.d.ts +100 -0
  381. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.d.ts.map +1 -0
  382. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.js +144 -0
  383. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.js.map +1 -0
  384. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/index.d.ts +6 -0
  385. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/index.d.ts.map +1 -0
  386. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/index.js +9 -0
  387. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/index.js.map +1 -0
  388. package/dist/factories/contracts/isms/multisig/index.d.ts +3 -1
  389. package/dist/factories/contracts/isms/multisig/index.d.ts.map +1 -1
  390. package/dist/factories/contracts/isms/multisig/index.js +3 -1
  391. package/dist/factories/contracts/isms/multisig/index.js.map +1 -1
  392. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.d.ts +1 -1
  393. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.js +1 -1
  394. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.d.ts +1 -1
  395. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.d.ts.map +1 -1
  396. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.js +1 -1
  397. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.js.map +1 -1
  398. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts +1 -1
  399. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts.map +1 -1
  400. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.js +1 -1
  401. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.js.map +1 -1
  402. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.d.ts +1 -1
  403. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.js +1 -1
  404. package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.d.ts +1 -1
  405. package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.js +1 -1
  406. package/dist/factories/contracts/libs/StaticWeightedValidatorSetFactory__factory.d.ts +73 -0
  407. package/dist/factories/contracts/libs/StaticWeightedValidatorSetFactory__factory.d.ts.map +1 -0
  408. package/dist/factories/contracts/libs/StaticWeightedValidatorSetFactory__factory.js +101 -0
  409. package/dist/factories/contracts/libs/StaticWeightedValidatorSetFactory__factory.js.map +1 -0
  410. package/dist/factories/contracts/libs/index.d.ts +1 -0
  411. package/dist/factories/contracts/libs/index.d.ts.map +1 -1
  412. package/dist/factories/contracts/libs/index.js +1 -0
  413. package/dist/factories/contracts/libs/index.js.map +1 -1
  414. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +1 -1
  415. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts.map +1 -1
  416. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +1 -1
  417. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js.map +1 -1
  418. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -1
  419. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts.map +1 -1
  420. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +1 -1
  421. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js.map +1 -1
  422. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +1 -1
  423. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts.map +1 -1
  424. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +1 -1
  425. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js.map +1 -1
  426. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +1 -1
  427. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts.map +1 -1
  428. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +1 -1
  429. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js.map +1 -1
  430. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +1 -1
  431. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts.map +1 -1
  432. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +1 -1
  433. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js.map +1 -1
  434. package/dist/factories/contracts/mock/MockArbBridge.sol/MockArbBridge__factory.d.ts +111 -0
  435. package/dist/factories/contracts/mock/MockArbBridge.sol/MockArbBridge__factory.d.ts.map +1 -0
  436. package/dist/factories/contracts/mock/MockArbBridge.sol/MockArbBridge__factory.js +154 -0
  437. package/dist/factories/contracts/mock/MockArbBridge.sol/MockArbBridge__factory.js.map +1 -0
  438. package/dist/factories/contracts/mock/MockArbBridge.sol/MockArbSys__factory.d.ts +89 -0
  439. package/dist/factories/contracts/mock/MockArbBridge.sol/MockArbSys__factory.d.ts.map +1 -0
  440. package/dist/factories/contracts/mock/MockArbBridge.sol/MockArbSys__factory.js +124 -0
  441. package/dist/factories/contracts/mock/MockArbBridge.sol/MockArbSys__factory.js.map +1 -0
  442. package/dist/factories/contracts/mock/MockArbBridge.sol/index.d.ts +3 -0
  443. package/dist/factories/contracts/mock/MockArbBridge.sol/index.d.ts.map +1 -0
  444. package/dist/factories/contracts/mock/MockArbBridge.sol/index.js +6 -0
  445. package/dist/factories/contracts/mock/MockArbBridge.sol/index.js.map +1 -0
  446. package/dist/factories/contracts/mock/MockERC4626YieldSharing__factory.d.ts +643 -0
  447. package/dist/factories/contracts/mock/MockERC4626YieldSharing__factory.d.ts.map +1 -0
  448. package/dist/factories/contracts/mock/MockERC4626YieldSharing__factory.js +855 -0
  449. package/dist/factories/contracts/mock/MockERC4626YieldSharing__factory.js.map +1 -0
  450. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +21 -1
  451. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts.map +1 -1
  452. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +27 -1
  453. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js.map +1 -1
  454. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts +1 -1
  455. package/dist/factories/contracts/mock/MockMailbox__factory.js +1 -1
  456. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismMessenger__factory.d.ts +119 -0
  457. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismMessenger__factory.d.ts.map +1 -0
  458. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismMessenger__factory.js +165 -0
  459. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismMessenger__factory.js.map +1 -0
  460. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismPortal__factory.d.ts +60 -0
  461. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismPortal__factory.d.ts.map +1 -0
  462. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismPortal__factory.js +89 -0
  463. package/dist/factories/contracts/mock/MockOptimism.sol/MockOptimismPortal__factory.js.map +1 -0
  464. package/dist/factories/contracts/mock/MockOptimism.sol/index.d.ts +3 -0
  465. package/dist/factories/contracts/mock/MockOptimism.sol/index.d.ts.map +1 -0
  466. package/dist/factories/contracts/mock/MockOptimism.sol/index.js +6 -0
  467. package/dist/factories/contracts/mock/MockOptimism.sol/index.js.map +1 -0
  468. package/dist/factories/contracts/mock/index.d.ts +3 -0
  469. package/dist/factories/contracts/mock/index.d.ts.map +1 -1
  470. package/dist/factories/contracts/mock/index.js +3 -0
  471. package/dist/factories/contracts/mock/index.js.map +1 -1
  472. package/dist/factories/contracts/test/ERC20Test.sol/ERC20Test__factory.d.ts +15 -1
  473. package/dist/factories/contracts/test/ERC20Test.sol/ERC20Test__factory.d.ts.map +1 -1
  474. package/dist/factories/contracts/test/ERC20Test.sol/ERC20Test__factory.js +19 -1
  475. package/dist/factories/contracts/test/ERC20Test.sol/ERC20Test__factory.js.map +1 -1
  476. package/dist/factories/contracts/test/ERC20Test.sol/FiatTokenTest__factory.d.ts +15 -1
  477. package/dist/factories/contracts/test/ERC20Test.sol/FiatTokenTest__factory.d.ts.map +1 -1
  478. package/dist/factories/contracts/test/ERC20Test.sol/FiatTokenTest__factory.js +19 -1
  479. package/dist/factories/contracts/test/ERC20Test.sol/FiatTokenTest__factory.js.map +1 -1
  480. package/dist/factories/contracts/test/ERC20Test.sol/XERC20LockboxTest__factory.d.ts +1 -1
  481. package/dist/factories/contracts/test/ERC20Test.sol/XERC20LockboxTest__factory.d.ts.map +1 -1
  482. package/dist/factories/contracts/test/ERC20Test.sol/XERC20LockboxTest__factory.js +1 -1
  483. package/dist/factories/contracts/test/ERC20Test.sol/XERC20LockboxTest__factory.js.map +1 -1
  484. package/dist/factories/contracts/test/ERC20Test.sol/XERC20Test__factory.d.ts +15 -1
  485. package/dist/factories/contracts/test/ERC20Test.sol/XERC20Test__factory.d.ts.map +1 -1
  486. package/dist/factories/contracts/test/ERC20Test.sol/XERC20Test__factory.js +19 -1
  487. package/dist/factories/contracts/test/ERC20Test.sol/XERC20Test__factory.js.map +1 -1
  488. package/dist/factories/contracts/test/ERC4626/ERC4626Test__factory.d.ts +1 -1
  489. package/dist/factories/contracts/test/ERC4626/ERC4626Test__factory.js +1 -1
  490. package/dist/factories/contracts/test/LightTestRecipient__factory.d.ts +1 -1
  491. package/dist/factories/contracts/test/LightTestRecipient__factory.js +1 -1
  492. package/dist/factories/contracts/test/TestGasRouter__factory.d.ts +1 -1
  493. package/dist/factories/contracts/test/TestGasRouter__factory.d.ts.map +1 -1
  494. package/dist/factories/contracts/test/TestGasRouter__factory.js +1 -1
  495. package/dist/factories/contracts/test/TestGasRouter__factory.js.map +1 -1
  496. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.d.ts +1 -1
  497. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.d.ts.map +1 -1
  498. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js +1 -1
  499. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js.map +1 -1
  500. package/dist/factories/contracts/test/TestIsm__factory.d.ts +1 -1
  501. package/dist/factories/contracts/test/TestIsm__factory.js +1 -1
  502. package/dist/factories/contracts/test/TestMailbox__factory.d.ts +1 -1
  503. package/dist/factories/contracts/test/TestMailbox__factory.js +1 -1
  504. package/dist/factories/contracts/test/TestMerkleTreeHook__factory.d.ts +1 -1
  505. package/dist/factories/contracts/test/TestMerkleTreeHook__factory.js +1 -1
  506. package/dist/factories/contracts/test/TestMerkle__factory.d.ts +1 -1
  507. package/dist/factories/contracts/test/TestMerkle__factory.js +1 -1
  508. package/dist/factories/contracts/test/TestPostDispatchHook__factory.d.ts +1 -1
  509. package/dist/factories/contracts/test/TestPostDispatchHook__factory.js +1 -1
  510. package/dist/factories/contracts/test/TestQuerySender__factory.d.ts +1 -1
  511. package/dist/factories/contracts/test/TestQuerySender__factory.js +1 -1
  512. package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
  513. package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
  514. package/dist/factories/contracts/test/TestRecipient__factory.d.ts +1 -1
  515. package/dist/factories/contracts/test/TestRecipient__factory.js +1 -1
  516. package/dist/factories/contracts/test/TestRouter__factory.d.ts +1 -1
  517. package/dist/factories/contracts/test/TestRouter__factory.d.ts.map +1 -1
  518. package/dist/factories/contracts/test/TestRouter__factory.js +1 -1
  519. package/dist/factories/contracts/test/TestRouter__factory.js.map +1 -1
  520. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +1 -1
  521. package/dist/factories/contracts/test/TestSendReceiver__factory.js +1 -1
  522. package/dist/factories/contracts/token/HypERC20Collateral__factory.d.ts +1 -1
  523. package/dist/factories/contracts/token/HypERC20Collateral__factory.d.ts.map +1 -1
  524. package/dist/factories/contracts/token/HypERC20Collateral__factory.js +1 -1
  525. package/dist/factories/contracts/token/HypERC20Collateral__factory.js.map +1 -1
  526. package/dist/factories/contracts/token/HypERC20__factory.d.ts +1 -1
  527. package/dist/factories/contracts/token/HypERC20__factory.d.ts.map +1 -1
  528. package/dist/factories/contracts/token/HypERC20__factory.js +1 -1
  529. package/dist/factories/contracts/token/HypERC20__factory.js.map +1 -1
  530. package/dist/factories/contracts/token/HypERC721Collateral__factory.d.ts +1 -1
  531. package/dist/factories/contracts/token/HypERC721Collateral__factory.d.ts.map +1 -1
  532. package/dist/factories/contracts/token/HypERC721Collateral__factory.js +1 -1
  533. package/dist/factories/contracts/token/HypERC721Collateral__factory.js.map +1 -1
  534. package/dist/factories/contracts/token/HypERC721__factory.d.ts +1 -1
  535. package/dist/factories/contracts/token/HypERC721__factory.js +1 -1
  536. package/dist/factories/contracts/token/HypNative__factory.d.ts +1 -1
  537. package/dist/factories/contracts/token/HypNative__factory.d.ts.map +1 -1
  538. package/dist/factories/contracts/token/HypNative__factory.js +1 -1
  539. package/dist/factories/contracts/token/HypNative__factory.js.map +1 -1
  540. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.d.ts +1 -1
  541. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.d.ts.map +1 -1
  542. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.js +1 -1
  543. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.js.map +1 -1
  544. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.d.ts +1 -1
  545. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.d.ts.map +1 -1
  546. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.js +1 -1
  547. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.js.map +1 -1
  548. package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.d.ts +469 -0
  549. package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.d.ts.map +1 -0
  550. package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.js +621 -0
  551. package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.js.map +1 -0
  552. package/dist/factories/contracts/token/extensions/{HypERC20CollateralVaultDeposit__factory.d.ts → HypERC4626OwnerCollateral__factory.d.ts} +11 -11
  553. package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.d.ts.map +1 -0
  554. package/dist/factories/contracts/token/extensions/{HypERC20CollateralVaultDeposit__factory.js → HypERC4626OwnerCollateral__factory.js} +3 -3
  555. package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.js.map +1 -0
  556. package/dist/factories/contracts/token/extensions/HypERC4626__factory.d.ts +699 -0
  557. package/dist/factories/contracts/token/extensions/HypERC4626__factory.d.ts.map +1 -0
  558. package/dist/factories/contracts/token/extensions/HypERC4626__factory.js +923 -0
  559. package/dist/factories/contracts/token/extensions/HypERC4626__factory.js.map +1 -0
  560. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.d.ts +1 -1
  561. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.d.ts.map +1 -1
  562. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.js +1 -1
  563. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.js.map +1 -1
  564. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.d.ts +1 -1
  565. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.js +1 -1
  566. package/dist/factories/contracts/token/extensions/HypFiatToken__factory.d.ts +1 -1
  567. package/dist/factories/contracts/token/extensions/HypFiatToken__factory.d.ts.map +1 -1
  568. package/dist/factories/contracts/token/extensions/HypFiatToken__factory.js +1 -1
  569. package/dist/factories/contracts/token/extensions/HypFiatToken__factory.js.map +1 -1
  570. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.d.ts +1 -1
  571. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.d.ts.map +1 -1
  572. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.js +1 -1
  573. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.js.map +1 -1
  574. package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.d.ts +1 -1
  575. package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.d.ts.map +1 -1
  576. package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.js +1 -1
  577. package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.js.map +1 -1
  578. package/dist/factories/contracts/token/extensions/HypXERC20__factory.d.ts +1 -1
  579. package/dist/factories/contracts/token/extensions/HypXERC20__factory.d.ts.map +1 -1
  580. package/dist/factories/contracts/token/extensions/HypXERC20__factory.js +1 -1
  581. package/dist/factories/contracts/token/extensions/HypXERC20__factory.js.map +1 -1
  582. package/dist/factories/contracts/token/extensions/index.d.ts +3 -1
  583. package/dist/factories/contracts/token/extensions/index.d.ts.map +1 -1
  584. package/dist/factories/contracts/token/extensions/index.js +3 -1
  585. package/dist/factories/contracts/token/extensions/index.js.map +1 -1
  586. package/dist/index.d.ts +46 -4
  587. package/dist/index.d.ts.map +1 -1
  588. package/dist/index.js +23 -2
  589. package/dist/index.js.map +1 -1
  590. package/package.json +5 -4
  591. package/dist/contracts/isms/multisig/AbstractMultisigIsm.d.ts.map +0 -1
  592. package/dist/contracts/isms/multisig/AbstractMultisigIsm.js.map +0 -1
  593. package/dist/contracts/token/extensions/HypERC20CollateralVaultDeposit.d.ts.map +0 -1
  594. package/dist/contracts/token/extensions/HypERC20CollateralVaultDeposit.js +0 -2
  595. package/dist/contracts/token/extensions/HypERC20CollateralVaultDeposit.js.map +0 -1
  596. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm__factory.d.ts.map +0 -1
  597. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm__factory.js.map +0 -1
  598. package/dist/factories/contracts/token/extensions/HypERC20CollateralVaultDeposit__factory.d.ts.map +0 -1
  599. package/dist/factories/contracts/token/extensions/HypERC20CollateralVaultDeposit__factory.js.map +0 -1
  600. /package/dist/contracts/isms/multisig/{AbstractMultisigIsm.js → AbstractMultisigIsm.sol/AbstractMultisigIsm.js} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockERC4626YieldSharing__factory.js","sourceRoot":"","sources":["../../../../types/factories/contracts/mock/MockERC4626YieldSharing__factory.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;AACpB,OAAO,EAEL,KAAK,EACL,QAAQ,EACR,eAAe,GAGhB,MAAM,QAAQ,CAAC;AAOhB,MAAM,IAAI,GAAG;IACX;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;aACf;YACD;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;aACf;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,aAAa;KACpB;IACD;QACE,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE;YACN;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;KACd;IACD;QACE,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE;YACN;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;KACd;IACD;QACE,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE;YACN;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,sBAAsB;QAC5B,IAAI,EAAE,OAAO;KACd;IACD;QACE,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE;YACN;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;KACd;IACD;QACE,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE;YACN;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;KACd;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,OAAO;QACb,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,SAAS;QACf,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,MAAM;gBACpB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,MAAM;aACb;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,OAAO;QACb,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,OAAO;gBACrB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,OAAO;aACd;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,MAAM;gBACpB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,MAAM;aACb;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,SAAS;QACf,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,KAAK;QACX,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,MAAM;gBACpB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,MAAM;aACb;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,SAAS;QACf,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,QAAQ;aACf;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,OAAO;QACb,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,QAAQ;aACf;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,MAAM;gBACpB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,MAAM;aACb;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,MAAM;gBACpB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,MAAM;aACb;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;CACO,CAAC;AAEX,MAAM,SAAS,GACb,w3nBAAw3nB,CAAC;AAM33nB,MAAM,WAAW,GAAG,CAClB,EAA4C,EACS,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAExE,MAAM,OAAO,gCAAiC,SAAQ,eAAe;IACnE,YAAY,GAAG,IAA8C;QAC3D,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAEQ,MAAM,CACb,MAAc,EACd,KAAa,EACb,OAAe,EACf,WAAyB,EACzB,SAAyC;QAEzC,OAAO,KAAK,CAAC,MAAM,CACjB,MAAM,EACN,KAAK,EACL,OAAO,EACP,WAAW,EACX,SAAS,IAAI,EAAE,CACoB,CAAC;IACxC,CAAC;IACQ,oBAAoB,CAC3B,MAAc,EACd,KAAa,EACb,OAAe,EACf,WAAyB,EACzB,SAAyC;QAEzC,OAAO,KAAK,CAAC,oBAAoB,CAC/B,MAAM,EACN,KAAK,EACL,OAAO,EACP,WAAW,EACX,SAAS,IAAI,EAAE,CAChB,CAAC;IACJ,CAAC;IACQ,MAAM,CAAC,OAAe;QAC7B,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAA4B,CAAC;IAC1D,CAAC;IACQ,OAAO,CAAC,MAAc;QAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAqC,CAAC;IACnE,CAAC;IAED,MAAM,CAAU,QAAQ,GAAG,SAAS,CAAC;IACrC,MAAM,CAAU,GAAG,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,eAAe;QACpB,OAAO,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,CAAqC,CAAC;IACvE,CAAC;IACD,MAAM,CAAC,OAAO,CACZ,OAAe,EACf,gBAAmC;QAEnC,OAAO,IAAI,QAAQ,CACjB,OAAO,EACP,IAAI,EACJ,gBAAgB,CACU,CAAC;IAC/B,CAAC"}
@@ -12,7 +12,7 @@ export declare class MockHyperlaneEnvironment__factory extends ContractFactory {
12
12
  }): TransactionRequest;
13
13
  attach(address: string): MockHyperlaneEnvironment;
14
14
  connect(signer: Signer): MockHyperlaneEnvironment__factory;
15
- static readonly bytecode = "0x608060405234801561001057600080fd5b50604051613b41380380613b4183398101604081905261002f91610469565b6000805463ffffffff838116640100000000026001600160401b031990921690851617178155604051839061006390610436565b63ffffffff9091168152602001604051809103906000f08015801561008c573d6000803e3d6000fd5b50905060008260405161009e90610436565b63ffffffff9091168152602001604051809103906000f0801580156100c7573d6000803e3d6000fd5b506040516302cd9fb760e51b815263ffffffff851660048201526001600160a01b038083166024830152919250908316906359b3f6e090604401600060405180830381600087803b15801561011b57600080fd5b505af115801561012f573d6000803e3d6000fd5b50506040516302cd9fb760e51b815263ffffffff871660048201526001600160a01b038581166024830152841692506359b3f6e09150604401600060405180830381600087803b15801561018257600080fd5b505af1158015610196573d6000803e3d6000fd5b505050506040516101a690610443565b604051809103906000f0801580156101c2573d6000803e3d6000fd5b506000805463ffffffff168152600360205260409081902080546001600160a01b0319166001600160a01b0393909316929092179091555161020390610443565b604051809103906000f08015801561021f573d6000803e3d6000fd5b5060008054640100000000900463ffffffff90811682526003602052604080832080546001600160a01b0319166001600160a01b039586161790558254909116825290819020549051637bca343d60e11b815290821660048201529083169063f794687a90602401600060405180830381600087803b1580156102a157600080fd5b505af11580156102b5573d6000803e3d6000fd5b505060008054640100000000900463ffffffff1681526003602052604090819020549051637bca343d60e11b81526001600160a01b039182166004820152908416925063f794687a9150602401600060405180830381600087803b15801561031c57600080fd5b505af1158015610330573d6000803e3d6000fd5b505060405163f2fde38b60e01b81523360048201526001600160a01b038516925063f2fde38b9150602401600060405180830381600087803b15801561037557600080fd5b505af1158015610389573d6000803e3d6000fd5b505060405163f2fde38b60e01b81523360048201526001600160a01b038416925063f2fde38b9150602401600060405180830381600087803b1580156103ce57600080fd5b505af11580156103e2573d6000803e3d6000fd5b5050505063ffffffff93841660009081526001602052604080822080546001600160a01b03199081166001600160a01b0396871617909155949095168152939093208054909216921691909117905561049c565b6131b18061076b83390190565b6102258061391c83390190565b805163ffffffff8116811461046457600080fd5b919050565b6000806040838503121561047c57600080fd5b61048583610450565b915061049360208401610450565b90509250929050565b6102c0806104ab6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063f11a367e11610050578063f11a367e14610101578063f9d2692d14610137578063f9f312ad1461014157600080fd5b80635a007b7e1461006c5780637a7eada3146100cb575b600080fd5b6100a261007a36600461025d565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100a26100d936600461025d565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6100a261010f36600461025d565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b61013f610149565b005b61013f6101dc565b6000805463ffffffff168152600160205260408082205481517f1605c306000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911692631605c306926004808201939182900301818387803b1580156101c257600080fd5b505af11580156101d6573d6000803e3d6000fd5b50505050565b60008054640100000000900463ffffffff168152600160205260408082205481517f1605c306000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911692631605c306926004808201939182900301818387803b1580156101c257600080fd5b60006020828403121561026f57600080fd5b813563ffffffff8116811461028357600080fd5b939250505056fea26469706673582212204de6f5dd33fb74cb268a11c42659c2f10d41f22989a331dcf538884c1c699b5764736f6c6343000813003360c0604052606b80546001600160401b03191690553480156200002157600080fd5b50604051620031b1380380620031b1833981016040819052620000449162000248565b4360805263ffffffff811660a05260405160009062000063906200022c565b604051809103906000f08015801562000080573d6000803e3d6000fd5b50606780546001600160a01b0319166001600160a01b038316179055604051909150600090620000b0906200023a565b604051809103906000f080158015620000cd573d6000803e3d6000fd5b50606880546001600160a01b0383166001600160a01b031991821681179092556069805490911690911790559050620001063362000119565b620001106200016b565b50505062000277565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1615620001d85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146200022a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6102258062002c0683390190565b6103868062002e2b83390190565b6000602082840312156200025b57600080fd5b815163ffffffff811681146200027057600080fd5b9392505050565b60805160a05161295b620002ab6000396000818161050501528181610c950152611981015260006104d1015261295b6000f3fe6080604052600436106101fe5760003560e01c80638d3638f41161011d578063d6d08a09116100b0578063f794687a1161007f578063f8c8765e11610064578063f8c8765e14610750578063fa31de0114610770578063ffa1ad741461078357600080fd5b8063f794687a14610710578063f7ccd3211461073057600080fd5b8063d6d08a0914610644578063e495f1d414610671578063e70f48ac146106d0578063f2fde38b146106f057600080fd5b80639c42bd18116100ec5780639c42bd181461059f578063a3b4919f146105bf578063affed0e014610602578063d12164e41461061f57600080fd5b80638d3638f4146104f35780638da5cb5b1461052757806392d28b3d1461055257806399b048091461057f57600080fd5b806359b3f6e0116101955780637c39d130116101645780637c39d1301461045a57806381d2ea951461046d5780638209d3121461048d57806382ea7bfe146104bf57600080fd5b806359b3f6e01461035f5780635d1fe5a9146103d55780636e5f516e14610418578063715018a61461044557600080fd5b80631605c306116101d15780631605c306146102c55780633288990c146102da5780633d1250b7146102fa57806348aee8d41461034c57600080fd5b806307a2fda11461020357806310b83dc01461026c578063134fbb4f1461028d5780631426b7f4146102a3575b600080fd5b34801561020f57600080fd5b5061025061021e366004611fb3565b6000908152606a602052604090205474010000000000000000000000000000000000000000900465ffffffffffff1690565b60405165ffffffffffff90911681526020015b60405180910390f35b61027f61027a366004612049565b6107aa565b604051908152602001610263565b34801561029957600080fd5b5061027f60665481565b3480156102af57600080fd5b506102c36102be3660046120e7565b6108fa565b005b3480156102d157600080fd5b506102c3610a15565b3480156102e657600080fd5b506102c36102f5366004612104565b610b6f565b34801561030657600080fd5b506068546103279073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610263565b61027f61035a366004612146565b610bcb565b34801561036b57600080fd5b506102c361037a3660046121d0565b63ffffffff919091166000908152606c6020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b3480156103e157600080fd5b506103276103f0366004611fb3565b6000908152606a602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b34801561042457600080fd5b506067546103279073ffffffffffffffffffffffffffffffffffffffff1681565b34801561045157600080fd5b506102c3610c09565b6102c3610468366004612207565b610c1d565b34801561047957600080fd5b5061027f610488366004612049565b6110bf565b34801561049957600080fd5b50606b546104aa9063ffffffff1681565b60405163ffffffff9091168152602001610263565b3480156104cb57600080fd5b5061027f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ff57600080fd5b506104aa7f000000000000000000000000000000000000000000000000000000000000000081565b34801561053357600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610327565b34801561055e57600080fd5b5061057261056d366004611fb3565b611252565b60405161026391906122e1565b34801561058b57600080fd5b506102c361059a3660046120e7565b6112ec565b3480156105ab57600080fd5b5061027f6105ba3660046122f4565b611407565b3480156105cb57600080fd5b506103276105da366004612342565b606c6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b34801561060e57600080fd5b506065546104aa9063ffffffff1681565b34801561062b57600080fd5b50606b546104aa90640100000000900463ffffffff1681565b34801561065057600080fd5b506069546103279073ffffffffffffffffffffffffffffffffffffffff1681565b34801561067d57600080fd5b506106c061068c366004611fb3565b6000908152606a602052604090205474010000000000000000000000000000000000000000900465ffffffffffff16151590565b6040519015158152602001610263565b3480156106dc57600080fd5b506103276106eb3660046120e7565b611443565b3480156106fc57600080fd5b506102c361070b3660046120e7565b61157a565b34801561071c57600080fd5b506102c361072b3660046120e7565b611631565b34801561073c57600080fd5b5061027f61074b366004612146565b61174c565b34801561075c57600080fd5b506102c361076b36600461235d565b61177f565b61027f61077e3660046122f4565b611939565b34801561078f57600080fd5b50610798600381565b60405160ff9091168152602001610263565b6000806107b98989898961196c565b905060006107cc8a8a8a8a8a8a8a6119aa565b63ffffffff8b166000908152606c602052604090205490915073ffffffffffffffffffffffffffffffffffffffff1680610867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d697373696e672072656d6f7465206d61696c626f780000000000000000000060448201526064015b60405180910390fd5b6040517f3288990c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690633288990c906108b99086906004016122e1565b600060405180830381600087803b1580156108d357600080fd5b505af11580156108e7573d6000803e3d6000fd5b50939d9c50505050505050505050505050565b610902611c7e565b73ffffffffffffffffffffffffffffffffffffffff81163b6109a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4d61696c626f783a20726571756972656420686f6f6b206e6f7420636f6e747260448201527f6163740000000000000000000000000000000000000000000000000000000000606482015260840161085e565b606980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f329ec8e2438a73828ecf31a6568d7a91d7b1d79e342b0692914fd053d1a002b190600090a250565b606b54640100000000900463ffffffff166000908152606d602052604081208054610a3f906123b9565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6b906123b9565b8015610ab85780601f10610a8d57610100808354040283529160200191610ab8565b820191906000526020600020905b815481529060010190602001808311610a9b57829003601f168201915b50506040517f7c39d1300000000000000000000000000000000000000000000000000000000081529394503093637c39d1309350610afc925085915060040161240c565b600060405180830381600087803b158015610b1657600080fd5b505af1158015610b2a573d6000803e3d6000fd5b5050606b8054640100000000900463ffffffff16925090506004610b4d8361245c565b91906101000a81548163ffffffff021916908363ffffffff1602179055505050565b606b5463ffffffff166000908152606d60205260409020610b918284836124fd565b50606b805463ffffffff16906000610ba88361245c565b91906101000a81548163ffffffff021916908363ffffffff160217905550505050565b6000610bfe878787878787606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166107aa565b979650505050505050565b610c11611c7e565b610c1b6000611cff565b565b6003610c298383611d76565b60ff1614610c93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4d61696c626f783a206261642076657273696f6e000000000000000000000000604482015260640161085e565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff16610cc48383611d9a565b63ffffffff1614610d31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4d61696c626f783a20756e65787065637465642064657374696e6174696f6e00604482015260640161085e565b6000610d7283838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611dbd92505050565b6000818152606a602052604090205490915074010000000000000000000000000000000000000000900465ffffffffffff1615610e0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4d61696c626f783a20616c72656164792064656c697665726564000000000000604482015260640161085e565b6000610e178484611dc8565b90506000610e2482611443565b60408051808201825233815265ffffffffffff43811660208084019182526000898152606a9091529390932091518254935190911674010000000000000000000000000000000000000000027fffffffffffff000000000000000000000000000000000000000000000000000090931673ffffffffffffffffffffffffffffffffffffffff918216179290921790559091508216610ec28686611de1565b610ecc8787611dfa565b63ffffffff167f0d381c2a574ae8f04e213db7cfb4df8df712cdbd427d9868ffef380660ca657460405160405180910390a460405183907f1cae38cdd3d3919489272725a5ae62a4f48b2989b0dae843d3c279fee18073a990600090a26040517ff7e83aee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063f7e83aee90610f81908a908a908a908a90600401612660565b6020604051808303816000875af1158015610fa0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc49190612687565b61102a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4d61696c626f783a2049534d20766572696669636174696f6e206661696c6564604482015260640161085e565b8173ffffffffffffffffffffffffffffffffffffffff166356d5d475346110518888611dfa565b61105b8989611de1565b6110658a8a611e0a565b6040518663ffffffff1660e01b815260040161108494939291906126a9565b6000604051808303818588803b15801561109d57600080fd5b505af11580156110b1573d6000803e3d6000fd5b505050505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82166110f85760685473ffffffffffffffffffffffffffffffffffffffff1691505b60006111068989898961196c565b6040517faaccd23000000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff84169063aaccd2309061115f908890889086906004016126d9565b602060405180830381865afa15801561117c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a091906126ff565b6069546040517faaccd23000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063aaccd230906111fa908990899087906004016126d9565b602060405180830381865afa158015611217573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123b91906126ff565b6112459190612718565b9998505050505050505050565b606d602052600090815260409020805461126b906123b9565b80601f0160208091040260200160405190810160405280929190818152602001828054611297906123b9565b80156112e45780601f106112b9576101008083540402835291602001916112e4565b820191906000526020600020905b8154815290600101906020018083116112c757829003601f168201915b505050505081565b6112f4611c7e565b73ffffffffffffffffffffffffffffffffffffffff81163b611398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4d61696c626f783a2064656661756c7420686f6f6b206e6f7420636f6e74726160448201527f6374000000000000000000000000000000000000000000000000000000000000606482015260840161085e565b606880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f65a63e5066ee2fcdf9d32a7f1bf7ce71c76066f19d0609dddccd334ab87237d790600090a250565b600061143a8585858561141c8680838561272b565b60685473ffffffffffffffffffffffffffffffffffffffff166110bf565b95945050505050565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fde523cf30000000000000000000000000000000000000000000000000000000017905290516000918291829173ffffffffffffffffffffffffffffffffffffffff8616916114c49190612755565b600060405180830381855afa9150503d80600081146114ff576040519150601f19603f3d011682016040523d82523d6000602084013e611504565b606091505b50915091508180156115165750805115155b15611559576000818060200190518101906115319190612771565b905073ffffffffffffffffffffffffffffffffffffffff81161561155757949350505050565b505b505060675473ffffffffffffffffffffffffffffffffffffffff1692915050565b611582611c7e565b73ffffffffffffffffffffffffffffffffffffffff8116611625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161085e565b61162e81611cff565b50565b611639611c7e565b73ffffffffffffffffffffffffffffffffffffffff81163b6116dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f783a2064656661756c742049534d206e6f7420636f6e7472616360448201527f7400000000000000000000000000000000000000000000000000000000000000606482015260840161085e565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fa76ad0adbf45318f8633aa0210f711273d50fbb6fef76ed95bbae97082c75daa90600090a250565b6000610bfe878787878787606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166110bf565b600054610100900460ff161580801561179f5750600054600160ff909116105b806117b95750303b1580156117b9575060005460ff166001145b611845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161085e565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156118a357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6118ab611e26565b6118b484611631565b6118bd836112ec565b6118c6826108fa565b6118cf8561157a565b801561193257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600061143a8585858561194e8680838561272b565b60685473ffffffffffffffffffffffffffffffffffffffff166107aa565b60655460609061143a9060039063ffffffff167f00000000000000000000000000000000000000000000000000000000000000003389898989611ec5565b600073ffffffffffffffffffffffffffffffffffffffff82166119e35760685473ffffffffffffffffffffffffffffffffffffffff1691505b60006119f18989898961196c565b80516020820120606681905560658054929350909160019190600090611a1e90849063ffffffff1661278e565b92506101000a81548163ffffffff021916908363ffffffff160217905550888a63ffffffff163373ffffffffffffffffffffffffffffffffffffffff167f769f711d20c679153d382254f59892613b58a97cc876b249134ac25c80f9c81485604051611a8a91906122e1565b60405180910390a460405181907f788dbc1b7152732178210e7f4d9d010ef016f9eafbe66786bd7169f56e0c353a90600090a26069546040517faaccd23000000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff169063aaccd23090611b18908a908a9088906004016126d9565b602060405180830381865afa158015611b35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5991906126ff565b905080341015611b665750345b6069546040517f086011b900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063086011b9908390611bc2908b908b9089906004016126d9565b6000604051808303818588803b158015611bdb57600080fd5b505af1158015611bef573d6000803e3d6000fd5b50505050508473ffffffffffffffffffffffffffffffffffffffff1663086011b98234611c1c91906127b2565b8989876040518563ffffffff1660e01b8152600401611c3d939291906126d9565b6000604051808303818588803b158015611c5657600080fd5b505af1158015611c6a573d6000803e3d6000fd5b50949e9d5050505050505050505050505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610c1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161085e565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000611d85600182848661272b565b611d8e916127c5565b60f81c90505b92915050565b6000611daa602d6029848661272b565b611db39161280d565b60e01c9392505050565b805160209091012090565b6000611dda611dd78484611f03565b90565b9392505050565b6000611df160296009848661272b565b611dda91612853565b6000611daa60096005848661272b565b366000611e1a83604d818761272b565b915091505b9250929050565b600054610100900460ff16611ebd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161085e565b610c1b611f13565b60608888888888888888604051602001611ee698979695949392919061288f565b604051602081830303815290604052905098975050505050505050565b6000611df1604d602d848661272b565b600054610100900460ff16611faa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161085e565b610c1b33611cff565b600060208284031215611fc557600080fd5b5035919050565b803563ffffffff81168114611fe057600080fd5b919050565b60008083601f840112611ff757600080fd5b50813567ffffffffffffffff81111561200f57600080fd5b602083019150836020828501011115611e1f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8116811461162e57600080fd5b600080600080600080600060a0888a03121561206457600080fd5b61206d88611fcc565b965060208801359550604088013567ffffffffffffffff8082111561209157600080fd5b61209d8b838c01611fe5565b909750955060608a01359150808211156120b657600080fd5b506120c38a828b01611fe5565b90945092505060808801356120d781612027565b8091505092959891949750929550565b6000602082840312156120f957600080fd5b8135611dda81612027565b6000806020838503121561211757600080fd5b823567ffffffffffffffff81111561212e57600080fd5b61213a85828601611fe5565b90969095509350505050565b6000806000806000806080878903121561215f57600080fd5b61216887611fcc565b955060208701359450604087013567ffffffffffffffff8082111561218c57600080fd5b6121988a838b01611fe5565b909650945060608901359150808211156121b157600080fd5b506121be89828a01611fe5565b979a9699509497509295939492505050565b600080604083850312156121e357600080fd5b6121ec83611fcc565b915060208301356121fc81612027565b809150509250929050565b6000806000806040858703121561221d57600080fd5b843567ffffffffffffffff8082111561223557600080fd5b61224188838901611fe5565b9096509450602087013591508082111561225a57600080fd5b5061226787828801611fe5565b95989497509550505050565b60005b8381101561228e578181015183820152602001612276565b50506000910152565b600081518084526122af816020860160208601612273565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611dda6020830184612297565b6000806000806060858703121561230a57600080fd5b61231385611fcc565b935060208501359250604085013567ffffffffffffffff81111561233657600080fd5b61226787828801611fe5565b60006020828403121561235457600080fd5b611dda82611fcc565b6000806000806080858703121561237357600080fd5b843561237e81612027565b9350602085013561238e81612027565b9250604085013561239e81612027565b915060608501356123ae81612027565b939692955090935050565b600181811c908216806123cd57607f821691505b602082108103612406577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6040815260006040820152606060208201526000611dda6060830184612297565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600063ffffffff8083168181036124755761247561242d565b6001019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f8211156124f857600081815260208120601f850160051c810160208610156124d55750805b601f850160051c820191505b818110156124f4578281556001016124e1565b5050505b505050565b67ffffffffffffffff8311156125155761251561247f565b6125298361252383546123b9565b836124ae565b6000601f84116001811461257b57600085156125455750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355611932565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156125ca57868501358255602094850194600190920191016125aa565b5086821015612605577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b604081526000612674604083018688612617565b8281036020840152610bfe818587612617565b60006020828403121561269957600080fd5b81518015158114611dda57600080fd5b63ffffffff851681528360208201526060604082015260006126cf606083018486612617565b9695505050505050565b6040815260006126ed604083018587612617565b82810360208401526126cf8185612297565b60006020828403121561271157600080fd5b5051919050565b80820180821115611d9457611d9461242d565b6000808585111561273b57600080fd5b8386111561274857600080fd5b5050820193919092039150565b60008251612767818460208701612273565b9190910192915050565b60006020828403121561278357600080fd5b8151611dda81612027565b63ffffffff8181168382160190808211156127ab576127ab61242d565b5092915050565b81810381811115611d9457611d9461242d565b7fff0000000000000000000000000000000000000000000000000000000000000081358181169160018510156128055780818660010360031b1b83161692505b505092915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156128055760049490940360031b84901b1690921692915050565b80356020831015611d94577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fff000000000000000000000000000000000000000000000000000000000000008960f81b16815260007fffffffff00000000000000000000000000000000000000000000000000000000808a60e01b166001840152808960e01b166005840152876009840152808760e01b1660298401525084602d8301528284604d8401375060009101604d0190815297965050505050505056fea2646970667358221220c443eb50bff970ca1fa6f3273505843aaa848e5f0039c48fcdad51699ce90c2764736f6c6343000813003360806040526000805461ffff191661010617905534801561001f57600080fd5b506101f68061002f6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80636465e69f14610046578063951a291f1461006a578063f7e83aee146100b1575b600080fd5b6000546100539060ff1681565b60405160ff90911681526020015b60405180910390f35b6100af6100783660046100e2565b60008054911515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909216919091179055565b005b6100d26100bf366004610154565b5050600054610100900460ff1692915050565b6040519015158152602001610061565b6000602082840312156100f457600080fd5b8135801515811461010457600080fd5b9392505050565b60008083601f84011261011d57600080fd5b50813567ffffffffffffffff81111561013557600080fd5b60208301915083602082850101111561014d57600080fd5b9250929050565b6000806000806040858703121561016a57600080fd5b843567ffffffffffffffff8082111561018257600080fd5b61018e8883890161010b565b909650945060208701359150808211156101a757600080fd5b506101b48782880161010b565b9598949750955050505056fea26469706673582212204da148e3ce90d103f9beabdf4cf9efc4884b0388e7ede5c027435423af1f91dd64736f6c6343000813003360806040526000805534801561001457600080fd5b50610362806100246000396000f3fe6080604052600436106100705760003560e01c8063ddca3f431161004e578063ddca3f43146100e3578063e445e7dd146100f9578063e5320bb914610115578063f667ee911461014857600080fd5b8063086011b91461007557806369fe0e2d1461008a578063aaccd230146100aa575b600080fd5b610088610083366004610265565b610178565b005b34801561009657600080fd5b506100886100a53660046102d1565b600055565b3480156100b657600080fd5b506100d06100c5366004610265565b505060005492915050565b6040519081526020015b60405180910390f35b3480156100ef57600080fd5b506100d060005481565b34801561010557600080fd5b50604051600081526020016100da565b34801561012157600080fd5b506101386101303660046102ea565b600192915050565b60405190151581526020016100da565b34801561015457600080fd5b506101386101633660046102d1565b60016020526000908152604090205460ff1681565b6101848484848461018a565b50505050565b60018060006101ce85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061021192505050565b8152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905550505050565b805160209091012090565b60008083601f84011261022e57600080fd5b50813567ffffffffffffffff81111561024657600080fd5b60208301915083602082850101111561025e57600080fd5b9250929050565b6000806000806040858703121561027b57600080fd5b843567ffffffffffffffff8082111561029357600080fd5b61029f8883890161021c565b909650945060208701359150808211156102b857600080fd5b506102c58782880161021c565b95989497509550505050565b6000602082840312156102e357600080fd5b5035919050565b600080602083850312156102fd57600080fd5b823567ffffffffffffffff81111561031457600080fd5b6103208582860161021c565b9096909550935050505056fea26469706673582212209af169dec748b5fceb5877829982a286dd848d5c28d734f4f998bf7cd479a32b64736f6c6343000813003360806040526000805461ffff191661010617905534801561001f57600080fd5b506101f68061002f6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80636465e69f14610046578063951a291f1461006a578063f7e83aee146100b1575b600080fd5b6000546100539060ff1681565b60405160ff90911681526020015b60405180910390f35b6100af6100783660046100e2565b60008054911515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909216919091179055565b005b6100d26100bf366004610154565b5050600054610100900460ff1692915050565b6040519015158152602001610061565b6000602082840312156100f457600080fd5b8135801515811461010457600080fd5b9392505050565b60008083601f84011261011d57600080fd5b50813567ffffffffffffffff81111561013557600080fd5b60208301915083602082850101111561014d57600080fd5b9250929050565b6000806000806040858703121561016a57600080fd5b843567ffffffffffffffff8082111561018257600080fd5b61018e8883890161010b565b909650945060208701359150808211156101a757600080fd5b506101b48782880161010b565b9598949750955050505056fea26469706673582212204da148e3ce90d103f9beabdf4cf9efc4884b0388e7ede5c027435423af1f91dd64736f6c63430008130033";
15
+ static readonly bytecode = "0x608060405234801561001057600080fd5b50604051613b95380380613b9583398101604081905261002f91610469565b6000805463ffffffff838116640100000000026001600160401b031990921690851617178155604051839061006390610436565b63ffffffff9091168152602001604051809103906000f08015801561008c573d6000803e3d6000fd5b50905060008260405161009e90610436565b63ffffffff9091168152602001604051809103906000f0801580156100c7573d6000803e3d6000fd5b506040516302cd9fb760e51b815263ffffffff851660048201526001600160a01b038083166024830152919250908316906359b3f6e090604401600060405180830381600087803b15801561011b57600080fd5b505af115801561012f573d6000803e3d6000fd5b50506040516302cd9fb760e51b815263ffffffff871660048201526001600160a01b038581166024830152841692506359b3f6e09150604401600060405180830381600087803b15801561018257600080fd5b505af1158015610196573d6000803e3d6000fd5b505050506040516101a690610443565b604051809103906000f0801580156101c2573d6000803e3d6000fd5b506000805463ffffffff168152600360205260409081902080546001600160a01b0319166001600160a01b0393909316929092179091555161020390610443565b604051809103906000f08015801561021f573d6000803e3d6000fd5b5060008054640100000000900463ffffffff90811682526003602052604080832080546001600160a01b0319166001600160a01b039586161790558254909116825290819020549051637bca343d60e11b815290821660048201529083169063f794687a90602401600060405180830381600087803b1580156102a157600080fd5b505af11580156102b5573d6000803e3d6000fd5b505060008054640100000000900463ffffffff1681526003602052604090819020549051637bca343d60e11b81526001600160a01b039182166004820152908416925063f794687a9150602401600060405180830381600087803b15801561031c57600080fd5b505af1158015610330573d6000803e3d6000fd5b505060405163f2fde38b60e01b81523360048201526001600160a01b038516925063f2fde38b9150602401600060405180830381600087803b15801561037557600080fd5b505af1158015610389573d6000803e3d6000fd5b505060405163f2fde38b60e01b81523360048201526001600160a01b038416925063f2fde38b9150602401600060405180830381600087803b1580156103ce57600080fd5b505af11580156103e2573d6000803e3d6000fd5b5050505063ffffffff93841660009081526001602052604080822080546001600160a01b03199081166001600160a01b0396871617909155949095168152939093208054909216921691909117905561049c565b6131b1806107bf83390190565b6102258061397083390190565b805163ffffffff8116811461046457600080fd5b919050565b6000806040838503121561047c57600080fd5b61048583610450565b915061049360208401610450565b90509250929050565b610314806104ab6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063cee85d7e1161005b578063cee85d7e14610145578063f11a367e14610155578063f9d2692d1461018b578063f9f312ad1461019557600080fd5b80632858c55a146100825780635a007b7e146100b45780637a7eada31461010f575b600080fd5b60005461009a90640100000000900463ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b6100ea6100c23660046102b1565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100ab565b6100ea61011d3660046102b1565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60005461009a9063ffffffff1681565b6100ea6101633660046102b1565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b61019361019d565b005b610193610230565b6000805463ffffffff168152600160205260408082205481517f1605c306000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911692631605c306926004808201939182900301818387803b15801561021657600080fd5b505af115801561022a573d6000803e3d6000fd5b50505050565b60008054640100000000900463ffffffff168152600160205260408082205481517f1605c306000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911692631605c306926004808201939182900301818387803b15801561021657600080fd5b6000602082840312156102c357600080fd5b813563ffffffff811681146102d757600080fd5b939250505056fea2646970667358221220b360be50d0bb074648a4c61f58d318fe6bcf445c174fc2d8ea7fe169a49b418664736f6c6343000813003360c0604052606b80546001600160401b03191690553480156200002157600080fd5b50604051620031b1380380620031b1833981016040819052620000449162000248565b4360805263ffffffff811660a05260405160009062000063906200022c565b604051809103906000f08015801562000080573d6000803e3d6000fd5b50606780546001600160a01b0319166001600160a01b038316179055604051909150600090620000b0906200023a565b604051809103906000f080158015620000cd573d6000803e3d6000fd5b50606880546001600160a01b0383166001600160a01b031991821681179092556069805490911690911790559050620001063362000119565b620001106200016b565b50505062000277565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1615620001d85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146200022a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6102258062002c0683390190565b6103868062002e2b83390190565b6000602082840312156200025b57600080fd5b815163ffffffff811681146200027057600080fd5b9392505050565b60805160a05161295b620002ab6000396000818161050501528181610c950152611981015260006104d1015261295b6000f3fe6080604052600436106101fe5760003560e01c80638d3638f41161011d578063d6d08a09116100b0578063f794687a1161007f578063f8c8765e11610064578063f8c8765e14610750578063fa31de0114610770578063ffa1ad741461078357600080fd5b8063f794687a14610710578063f7ccd3211461073057600080fd5b8063d6d08a0914610644578063e495f1d414610671578063e70f48ac146106d0578063f2fde38b146106f057600080fd5b80639c42bd18116100ec5780639c42bd181461059f578063a3b4919f146105bf578063affed0e014610602578063d12164e41461061f57600080fd5b80638d3638f4146104f35780638da5cb5b1461052757806392d28b3d1461055257806399b048091461057f57600080fd5b806359b3f6e0116101955780637c39d130116101645780637c39d1301461045a57806381d2ea951461046d5780638209d3121461048d57806382ea7bfe146104bf57600080fd5b806359b3f6e01461035f5780635d1fe5a9146103d55780636e5f516e14610418578063715018a61461044557600080fd5b80631605c306116101d15780631605c306146102c55780633288990c146102da5780633d1250b7146102fa57806348aee8d41461034c57600080fd5b806307a2fda11461020357806310b83dc01461026c578063134fbb4f1461028d5780631426b7f4146102a3575b600080fd5b34801561020f57600080fd5b5061025061021e366004611fb3565b6000908152606a602052604090205474010000000000000000000000000000000000000000900465ffffffffffff1690565b60405165ffffffffffff90911681526020015b60405180910390f35b61027f61027a366004612049565b6107aa565b604051908152602001610263565b34801561029957600080fd5b5061027f60665481565b3480156102af57600080fd5b506102c36102be3660046120e7565b6108fa565b005b3480156102d157600080fd5b506102c3610a15565b3480156102e657600080fd5b506102c36102f5366004612104565b610b6f565b34801561030657600080fd5b506068546103279073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610263565b61027f61035a366004612146565b610bcb565b34801561036b57600080fd5b506102c361037a3660046121d0565b63ffffffff919091166000908152606c6020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b3480156103e157600080fd5b506103276103f0366004611fb3565b6000908152606a602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b34801561042457600080fd5b506067546103279073ffffffffffffffffffffffffffffffffffffffff1681565b34801561045157600080fd5b506102c3610c09565b6102c3610468366004612207565b610c1d565b34801561047957600080fd5b5061027f610488366004612049565b6110bf565b34801561049957600080fd5b50606b546104aa9063ffffffff1681565b60405163ffffffff9091168152602001610263565b3480156104cb57600080fd5b5061027f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ff57600080fd5b506104aa7f000000000000000000000000000000000000000000000000000000000000000081565b34801561053357600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610327565b34801561055e57600080fd5b5061057261056d366004611fb3565b611252565b60405161026391906122e1565b34801561058b57600080fd5b506102c361059a3660046120e7565b6112ec565b3480156105ab57600080fd5b5061027f6105ba3660046122f4565b611407565b3480156105cb57600080fd5b506103276105da366004612342565b606c6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b34801561060e57600080fd5b506065546104aa9063ffffffff1681565b34801561062b57600080fd5b50606b546104aa90640100000000900463ffffffff1681565b34801561065057600080fd5b506069546103279073ffffffffffffffffffffffffffffffffffffffff1681565b34801561067d57600080fd5b506106c061068c366004611fb3565b6000908152606a602052604090205474010000000000000000000000000000000000000000900465ffffffffffff16151590565b6040519015158152602001610263565b3480156106dc57600080fd5b506103276106eb3660046120e7565b611443565b3480156106fc57600080fd5b506102c361070b3660046120e7565b61157a565b34801561071c57600080fd5b506102c361072b3660046120e7565b611631565b34801561073c57600080fd5b5061027f61074b366004612146565b61174c565b34801561075c57600080fd5b506102c361076b36600461235d565b61177f565b61027f61077e3660046122f4565b611939565b34801561078f57600080fd5b50610798600381565b60405160ff9091168152602001610263565b6000806107b98989898961196c565b905060006107cc8a8a8a8a8a8a8a6119aa565b63ffffffff8b166000908152606c602052604090205490915073ffffffffffffffffffffffffffffffffffffffff1680610867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d697373696e672072656d6f7465206d61696c626f780000000000000000000060448201526064015b60405180910390fd5b6040517f3288990c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690633288990c906108b99086906004016122e1565b600060405180830381600087803b1580156108d357600080fd5b505af11580156108e7573d6000803e3d6000fd5b50939d9c50505050505050505050505050565b610902611c7e565b73ffffffffffffffffffffffffffffffffffffffff81163b6109a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4d61696c626f783a20726571756972656420686f6f6b206e6f7420636f6e747260448201527f6163740000000000000000000000000000000000000000000000000000000000606482015260840161085e565b606980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f329ec8e2438a73828ecf31a6568d7a91d7b1d79e342b0692914fd053d1a002b190600090a250565b606b54640100000000900463ffffffff166000908152606d602052604081208054610a3f906123b9565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6b906123b9565b8015610ab85780601f10610a8d57610100808354040283529160200191610ab8565b820191906000526020600020905b815481529060010190602001808311610a9b57829003601f168201915b50506040517f7c39d1300000000000000000000000000000000000000000000000000000000081529394503093637c39d1309350610afc925085915060040161240c565b600060405180830381600087803b158015610b1657600080fd5b505af1158015610b2a573d6000803e3d6000fd5b5050606b8054640100000000900463ffffffff16925090506004610b4d8361245c565b91906101000a81548163ffffffff021916908363ffffffff1602179055505050565b606b5463ffffffff166000908152606d60205260409020610b918284836124fd565b50606b805463ffffffff16906000610ba88361245c565b91906101000a81548163ffffffff021916908363ffffffff160217905550505050565b6000610bfe878787878787606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166107aa565b979650505050505050565b610c11611c7e565b610c1b6000611cff565b565b6003610c298383611d76565b60ff1614610c93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4d61696c626f783a206261642076657273696f6e000000000000000000000000604482015260640161085e565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff16610cc48383611d9a565b63ffffffff1614610d31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4d61696c626f783a20756e65787065637465642064657374696e6174696f6e00604482015260640161085e565b6000610d7283838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611dbd92505050565b6000818152606a602052604090205490915074010000000000000000000000000000000000000000900465ffffffffffff1615610e0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4d61696c626f783a20616c72656164792064656c697665726564000000000000604482015260640161085e565b6000610e178484611dc8565b90506000610e2482611443565b60408051808201825233815265ffffffffffff43811660208084019182526000898152606a9091529390932091518254935190911674010000000000000000000000000000000000000000027fffffffffffff000000000000000000000000000000000000000000000000000090931673ffffffffffffffffffffffffffffffffffffffff918216179290921790559091508216610ec28686611de1565b610ecc8787611dfa565b63ffffffff167f0d381c2a574ae8f04e213db7cfb4df8df712cdbd427d9868ffef380660ca657460405160405180910390a460405183907f1cae38cdd3d3919489272725a5ae62a4f48b2989b0dae843d3c279fee18073a990600090a26040517ff7e83aee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063f7e83aee90610f81908a908a908a908a90600401612660565b6020604051808303816000875af1158015610fa0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc49190612687565b61102a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4d61696c626f783a2049534d20766572696669636174696f6e206661696c6564604482015260640161085e565b8173ffffffffffffffffffffffffffffffffffffffff166356d5d475346110518888611dfa565b61105b8989611de1565b6110658a8a611e0a565b6040518663ffffffff1660e01b815260040161108494939291906126a9565b6000604051808303818588803b15801561109d57600080fd5b505af11580156110b1573d6000803e3d6000fd5b505050505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82166110f85760685473ffffffffffffffffffffffffffffffffffffffff1691505b60006111068989898961196c565b6040517faaccd23000000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff84169063aaccd2309061115f908890889086906004016126d9565b602060405180830381865afa15801561117c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a091906126ff565b6069546040517faaccd23000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063aaccd230906111fa908990899087906004016126d9565b602060405180830381865afa158015611217573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123b91906126ff565b6112459190612718565b9998505050505050505050565b606d602052600090815260409020805461126b906123b9565b80601f0160208091040260200160405190810160405280929190818152602001828054611297906123b9565b80156112e45780601f106112b9576101008083540402835291602001916112e4565b820191906000526020600020905b8154815290600101906020018083116112c757829003601f168201915b505050505081565b6112f4611c7e565b73ffffffffffffffffffffffffffffffffffffffff81163b611398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4d61696c626f783a2064656661756c7420686f6f6b206e6f7420636f6e74726160448201527f6374000000000000000000000000000000000000000000000000000000000000606482015260840161085e565b606880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f65a63e5066ee2fcdf9d32a7f1bf7ce71c76066f19d0609dddccd334ab87237d790600090a250565b600061143a8585858561141c8680838561272b565b60685473ffffffffffffffffffffffffffffffffffffffff166110bf565b95945050505050565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fde523cf30000000000000000000000000000000000000000000000000000000017905290516000918291829173ffffffffffffffffffffffffffffffffffffffff8616916114c49190612755565b600060405180830381855afa9150503d80600081146114ff576040519150601f19603f3d011682016040523d82523d6000602084013e611504565b606091505b50915091508180156115165750805115155b15611559576000818060200190518101906115319190612771565b905073ffffffffffffffffffffffffffffffffffffffff81161561155757949350505050565b505b505060675473ffffffffffffffffffffffffffffffffffffffff1692915050565b611582611c7e565b73ffffffffffffffffffffffffffffffffffffffff8116611625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161085e565b61162e81611cff565b50565b611639611c7e565b73ffffffffffffffffffffffffffffffffffffffff81163b6116dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f783a2064656661756c742049534d206e6f7420636f6e7472616360448201527f7400000000000000000000000000000000000000000000000000000000000000606482015260840161085e565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fa76ad0adbf45318f8633aa0210f711273d50fbb6fef76ed95bbae97082c75daa90600090a250565b6000610bfe878787878787606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166110bf565b600054610100900460ff161580801561179f5750600054600160ff909116105b806117b95750303b1580156117b9575060005460ff166001145b611845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161085e565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156118a357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6118ab611e26565b6118b484611631565b6118bd836112ec565b6118c6826108fa565b6118cf8561157a565b801561193257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600061143a8585858561194e8680838561272b565b60685473ffffffffffffffffffffffffffffffffffffffff166107aa565b60655460609061143a9060039063ffffffff167f00000000000000000000000000000000000000000000000000000000000000003389898989611ec5565b600073ffffffffffffffffffffffffffffffffffffffff82166119e35760685473ffffffffffffffffffffffffffffffffffffffff1691505b60006119f18989898961196c565b80516020820120606681905560658054929350909160019190600090611a1e90849063ffffffff1661278e565b92506101000a81548163ffffffff021916908363ffffffff160217905550888a63ffffffff163373ffffffffffffffffffffffffffffffffffffffff167f769f711d20c679153d382254f59892613b58a97cc876b249134ac25c80f9c81485604051611a8a91906122e1565b60405180910390a460405181907f788dbc1b7152732178210e7f4d9d010ef016f9eafbe66786bd7169f56e0c353a90600090a26069546040517faaccd23000000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff169063aaccd23090611b18908a908a9088906004016126d9565b602060405180830381865afa158015611b35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5991906126ff565b905080341015611b665750345b6069546040517f086011b900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063086011b9908390611bc2908b908b9089906004016126d9565b6000604051808303818588803b158015611bdb57600080fd5b505af1158015611bef573d6000803e3d6000fd5b50505050508473ffffffffffffffffffffffffffffffffffffffff1663086011b98234611c1c91906127b2565b8989876040518563ffffffff1660e01b8152600401611c3d939291906126d9565b6000604051808303818588803b158015611c5657600080fd5b505af1158015611c6a573d6000803e3d6000fd5b50949e9d5050505050505050505050505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610c1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161085e565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000611d85600182848661272b565b611d8e916127c5565b60f81c90505b92915050565b6000611daa602d6029848661272b565b611db39161280d565b60e01c9392505050565b805160209091012090565b6000611dda611dd78484611f03565b90565b9392505050565b6000611df160296009848661272b565b611dda91612853565b6000611daa60096005848661272b565b366000611e1a83604d818761272b565b915091505b9250929050565b600054610100900460ff16611ebd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161085e565b610c1b611f13565b60608888888888888888604051602001611ee698979695949392919061288f565b604051602081830303815290604052905098975050505050505050565b6000611df1604d602d848661272b565b600054610100900460ff16611faa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161085e565b610c1b33611cff565b600060208284031215611fc557600080fd5b5035919050565b803563ffffffff81168114611fe057600080fd5b919050565b60008083601f840112611ff757600080fd5b50813567ffffffffffffffff81111561200f57600080fd5b602083019150836020828501011115611e1f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8116811461162e57600080fd5b600080600080600080600060a0888a03121561206457600080fd5b61206d88611fcc565b965060208801359550604088013567ffffffffffffffff8082111561209157600080fd5b61209d8b838c01611fe5565b909750955060608a01359150808211156120b657600080fd5b506120c38a828b01611fe5565b90945092505060808801356120d781612027565b8091505092959891949750929550565b6000602082840312156120f957600080fd5b8135611dda81612027565b6000806020838503121561211757600080fd5b823567ffffffffffffffff81111561212e57600080fd5b61213a85828601611fe5565b90969095509350505050565b6000806000806000806080878903121561215f57600080fd5b61216887611fcc565b955060208701359450604087013567ffffffffffffffff8082111561218c57600080fd5b6121988a838b01611fe5565b909650945060608901359150808211156121b157600080fd5b506121be89828a01611fe5565b979a9699509497509295939492505050565b600080604083850312156121e357600080fd5b6121ec83611fcc565b915060208301356121fc81612027565b809150509250929050565b6000806000806040858703121561221d57600080fd5b843567ffffffffffffffff8082111561223557600080fd5b61224188838901611fe5565b9096509450602087013591508082111561225a57600080fd5b5061226787828801611fe5565b95989497509550505050565b60005b8381101561228e578181015183820152602001612276565b50506000910152565b600081518084526122af816020860160208601612273565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611dda6020830184612297565b6000806000806060858703121561230a57600080fd5b61231385611fcc565b935060208501359250604085013567ffffffffffffffff81111561233657600080fd5b61226787828801611fe5565b60006020828403121561235457600080fd5b611dda82611fcc565b6000806000806080858703121561237357600080fd5b843561237e81612027565b9350602085013561238e81612027565b9250604085013561239e81612027565b915060608501356123ae81612027565b939692955090935050565b600181811c908216806123cd57607f821691505b602082108103612406577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6040815260006040820152606060208201526000611dda6060830184612297565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600063ffffffff8083168181036124755761247561242d565b6001019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f8211156124f857600081815260208120601f850160051c810160208610156124d55750805b601f850160051c820191505b818110156124f4578281556001016124e1565b5050505b505050565b67ffffffffffffffff8311156125155761251561247f565b6125298361252383546123b9565b836124ae565b6000601f84116001811461257b57600085156125455750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355611932565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156125ca57868501358255602094850194600190920191016125aa565b5086821015612605577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b604081526000612674604083018688612617565b8281036020840152610bfe818587612617565b60006020828403121561269957600080fd5b81518015158114611dda57600080fd5b63ffffffff851681528360208201526060604082015260006126cf606083018486612617565b9695505050505050565b6040815260006126ed604083018587612617565b82810360208401526126cf8185612297565b60006020828403121561271157600080fd5b5051919050565b80820180821115611d9457611d9461242d565b6000808585111561273b57600080fd5b8386111561274857600080fd5b5050820193919092039150565b60008251612767818460208701612273565b9190910192915050565b60006020828403121561278357600080fd5b8151611dda81612027565b63ffffffff8181168382160190808211156127ab576127ab61242d565b5092915050565b81810381811115611d9457611d9461242d565b7fff0000000000000000000000000000000000000000000000000000000000000081358181169160018510156128055780818660010360031b1b83161692505b505092915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156128055760049490940360031b84901b1690921692915050565b80356020831015611d94577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fff000000000000000000000000000000000000000000000000000000000000008960f81b16815260007fffffffff00000000000000000000000000000000000000000000000000000000808a60e01b166001840152808960e01b166005840152876009840152808760e01b1660298401525084602d8301528284604d8401375060009101604d0190815297965050505050505056fea264697066735822122031353d41d3936c77282e55e458d8fe572781f84b6db109079e81970aa26422f364736f6c6343000813003360806040526000805461ffff191661010617905534801561001f57600080fd5b506101f68061002f6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80636465e69f14610046578063951a291f1461006a578063f7e83aee146100b1575b600080fd5b6000546100539060ff1681565b60405160ff90911681526020015b60405180910390f35b6100af6100783660046100e2565b60008054911515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909216919091179055565b005b6100d26100bf366004610154565b5050600054610100900460ff1692915050565b6040519015158152602001610061565b6000602082840312156100f457600080fd5b8135801515811461010457600080fd5b9392505050565b60008083601f84011261011d57600080fd5b50813567ffffffffffffffff81111561013557600080fd5b60208301915083602082850101111561014d57600080fd5b9250929050565b6000806000806040858703121561016a57600080fd5b843567ffffffffffffffff8082111561018257600080fd5b61018e8883890161010b565b909650945060208701359150808211156101a757600080fd5b506101b48782880161010b565b9598949750955050505056fea2646970667358221220631a95aa4de39aac095a71768cc009f6ef014b4428c9dfa3495697b5cacfa07464736f6c6343000813003360806040526000805534801561001457600080fd5b50610362806100246000396000f3fe6080604052600436106100705760003560e01c8063ddca3f431161004e578063ddca3f43146100e3578063e445e7dd146100f9578063e5320bb914610115578063f667ee911461014857600080fd5b8063086011b91461007557806369fe0e2d1461008a578063aaccd230146100aa575b600080fd5b610088610083366004610265565b610178565b005b34801561009657600080fd5b506100886100a53660046102d1565b600055565b3480156100b657600080fd5b506100d06100c5366004610265565b505060005492915050565b6040519081526020015b60405180910390f35b3480156100ef57600080fd5b506100d060005481565b34801561010557600080fd5b50604051600081526020016100da565b34801561012157600080fd5b506101386101303660046102ea565b600192915050565b60405190151581526020016100da565b34801561015457600080fd5b506101386101633660046102d1565b60016020526000908152604090205460ff1681565b6101848484848461018a565b50505050565b60018060006101ce85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061021192505050565b8152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905550505050565b805160209091012090565b60008083601f84011261022e57600080fd5b50813567ffffffffffffffff81111561024657600080fd5b60208301915083602082850101111561025e57600080fd5b9250929050565b6000806000806040858703121561027b57600080fd5b843567ffffffffffffffff8082111561029357600080fd5b61029f8883890161021c565b909650945060208701359150808211156102b857600080fd5b506102c58782880161021c565b95989497509550505050565b6000602082840312156102e357600080fd5b5035919050565b600080602083850312156102fd57600080fd5b823567ffffffffffffffff81111561031457600080fd5b6103208582860161021c565b9096909550935050505056fea2646970667358221220966b41624638b12584196c6396ca158773618c68810703c680d9750ca31be96364736f6c6343000813003360806040526000805461ffff191661010617905534801561001f57600080fd5b506101f68061002f6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80636465e69f14610046578063951a291f1461006a578063f7e83aee146100b1575b600080fd5b6000546100539060ff1681565b60405160ff90911681526020015b60405180910390f35b6100af6100783660046100e2565b60008054911515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909216919091179055565b005b6100d26100bf366004610154565b5050600054610100900460ff1692915050565b6040519015158152602001610061565b6000602082840312156100f457600080fd5b8135801515811461010457600080fd5b9392505050565b60008083601f84011261011d57600080fd5b50813567ffffffffffffffff81111561013557600080fd5b60208301915083602082850101111561014d57600080fd5b9250929050565b6000806000806040858703121561016a57600080fd5b843567ffffffffffffffff8082111561018257600080fd5b61018e8883890161010b565b909650945060208701359150808211156101a757600080fd5b506101b48782880161010b565b9598949750955050505056fea2646970667358221220631a95aa4de39aac095a71768cc009f6ef014b4428c9dfa3495697b5cacfa07464736f6c63430008130033";
16
16
  static readonly abi: readonly [{
17
17
  readonly inputs: readonly [{
18
18
  readonly internalType: "uint32";
@@ -25,6 +25,16 @@ export declare class MockHyperlaneEnvironment__factory extends ContractFactory {
25
25
  }];
26
26
  readonly stateMutability: "nonpayable";
27
27
  readonly type: "constructor";
28
+ }, {
29
+ readonly inputs: readonly [];
30
+ readonly name: "destinationDomain";
31
+ readonly outputs: readonly [{
32
+ readonly internalType: "uint32";
33
+ readonly name: "";
34
+ readonly type: "uint32";
35
+ }];
36
+ readonly stateMutability: "view";
37
+ readonly type: "function";
28
38
  }, {
29
39
  readonly inputs: readonly [{
30
40
  readonly internalType: "uint32";
@@ -67,6 +77,16 @@ export declare class MockHyperlaneEnvironment__factory extends ContractFactory {
67
77
  }];
68
78
  readonly stateMutability: "view";
69
79
  readonly type: "function";
80
+ }, {
81
+ readonly inputs: readonly [];
82
+ readonly name: "originDomain";
83
+ readonly outputs: readonly [{
84
+ readonly internalType: "uint32";
85
+ readonly name: "";
86
+ readonly type: "uint32";
87
+ }];
88
+ readonly stateMutability: "view";
89
+ readonly type: "function";
70
90
  }, {
71
91
  readonly inputs: readonly [];
72
92
  readonly name: "processNextPendingMessage";
@@ -1 +1 @@
1
- {"version":3,"file":"MockHyperlaneEnvironment__factory.d.ts","sourceRoot":"","sources":["../../../../types/factories/contracts/mock/MockHyperlaneEnvironment__factory.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,MAAM,EAGN,eAAe,EACf,YAAY,EACZ,SAAS,EACV,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EACV,wBAAwB,EACxB,iCAAiC,EAClC,MAAM,qDAAqD,CAAC;AA+F7D,KAAK,yCAAyC,GAC1C,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GACjB,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC;AAMlD,qBAAa,iCAAkC,SAAQ,eAAe;gBACxD,GAAG,IAAI,EAAE,yCAAyC;IAQrD,MAAM,CACb,aAAa,EAAE,YAAY,EAC3B,kBAAkB,EAAE,YAAY,EAChC,SAAS,CAAC,EAAE,SAAS,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,OAAO,CAAC,wBAAwB,CAAC;IAO3B,oBAAoB,CAC3B,aAAa,EAAE,YAAY,EAC3B,kBAAkB,EAAE,YAAY,EAChC,SAAS,CAAC,EAAE,SAAS,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,kBAAkB;IAOZ,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,wBAAwB;IAGjD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,iCAAiC;IAInE,MAAM,CAAC,QAAQ,CAAC,QAAQ,0o7BAAa;IACrC,MAAM,CAAC,QAAQ,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAQ;IAC3B,MAAM,CAAC,eAAe,IAAI,iCAAiC;IAG3D,MAAM,CAAC,OAAO,CACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,QAAQ,GAClC,wBAAwB;CAO5B"}
1
+ {"version":3,"file":"MockHyperlaneEnvironment__factory.d.ts","sourceRoot":"","sources":["../../../../types/factories/contracts/mock/MockHyperlaneEnvironment__factory.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,MAAM,EAGN,eAAe,EACf,YAAY,EACZ,SAAS,EACV,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EACV,wBAAwB,EACxB,iCAAiC,EAClC,MAAM,qDAAqD,CAAC;AAyH7D,KAAK,yCAAyC,GAC1C,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GACjB,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC;AAMlD,qBAAa,iCAAkC,SAAQ,eAAe;gBACxD,GAAG,IAAI,EAAE,yCAAyC;IAQrD,MAAM,CACb,aAAa,EAAE,YAAY,EAC3B,kBAAkB,EAAE,YAAY,EAChC,SAAS,CAAC,EAAE,SAAS,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,OAAO,CAAC,wBAAwB,CAAC;IAO3B,oBAAoB,CAC3B,aAAa,EAAE,YAAY,EAC3B,kBAAkB,EAAE,YAAY,EAChC,SAAS,CAAC,EAAE,SAAS,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,kBAAkB;IAOZ,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,wBAAwB;IAGjD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,iCAAiC;IAInE,MAAM,CAAC,QAAQ,CAAC,QAAQ,kz7BAAa;IACrC,MAAM,CAAC,QAAQ,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAQ;IAC3B,MAAM,CAAC,eAAe,IAAI,iCAAiC;IAG3D,MAAM,CAAC,OAAO,CACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,QAAQ,GAClC,wBAAwB;CAO5B"}
@@ -19,6 +19,19 @@ const _abi = [
19
19
  stateMutability: "nonpayable",
20
20
  type: "constructor",
21
21
  },
22
+ {
23
+ inputs: [],
24
+ name: "destinationDomain",
25
+ outputs: [
26
+ {
27
+ internalType: "uint32",
28
+ name: "",
29
+ type: "uint32",
30
+ },
31
+ ],
32
+ stateMutability: "view",
33
+ type: "function",
34
+ },
22
35
  {
23
36
  inputs: [
24
37
  {
@@ -76,6 +89,19 @@ const _abi = [
76
89
  stateMutability: "view",
77
90
  type: "function",
78
91
  },
92
+ {
93
+ inputs: [],
94
+ name: "originDomain",
95
+ outputs: [
96
+ {
97
+ internalType: "uint32",
98
+ name: "",
99
+ type: "uint32",
100
+ },
101
+ ],
102
+ stateMutability: "view",
103
+ type: "function",
104
+ },
79
105
  {
80
106
  inputs: [],
81
107
  name: "processNextPendingMessage",
@@ -91,7 +117,7 @@ const _abi = [
91
117
  type: "function",
92
118
  },
93
119
  ];
94
- const _bytecode = "0x608060405234801561001057600080fd5b50604051613b41380380613b4183398101604081905261002f91610469565b6000805463ffffffff838116640100000000026001600160401b031990921690851617178155604051839061006390610436565b63ffffffff9091168152602001604051809103906000f08015801561008c573d6000803e3d6000fd5b50905060008260405161009e90610436565b63ffffffff9091168152602001604051809103906000f0801580156100c7573d6000803e3d6000fd5b506040516302cd9fb760e51b815263ffffffff851660048201526001600160a01b038083166024830152919250908316906359b3f6e090604401600060405180830381600087803b15801561011b57600080fd5b505af115801561012f573d6000803e3d6000fd5b50506040516302cd9fb760e51b815263ffffffff871660048201526001600160a01b038581166024830152841692506359b3f6e09150604401600060405180830381600087803b15801561018257600080fd5b505af1158015610196573d6000803e3d6000fd5b505050506040516101a690610443565b604051809103906000f0801580156101c2573d6000803e3d6000fd5b506000805463ffffffff168152600360205260409081902080546001600160a01b0319166001600160a01b0393909316929092179091555161020390610443565b604051809103906000f08015801561021f573d6000803e3d6000fd5b5060008054640100000000900463ffffffff90811682526003602052604080832080546001600160a01b0319166001600160a01b039586161790558254909116825290819020549051637bca343d60e11b815290821660048201529083169063f794687a90602401600060405180830381600087803b1580156102a157600080fd5b505af11580156102b5573d6000803e3d6000fd5b505060008054640100000000900463ffffffff1681526003602052604090819020549051637bca343d60e11b81526001600160a01b039182166004820152908416925063f794687a9150602401600060405180830381600087803b15801561031c57600080fd5b505af1158015610330573d6000803e3d6000fd5b505060405163f2fde38b60e01b81523360048201526001600160a01b038516925063f2fde38b9150602401600060405180830381600087803b15801561037557600080fd5b505af1158015610389573d6000803e3d6000fd5b505060405163f2fde38b60e01b81523360048201526001600160a01b038416925063f2fde38b9150602401600060405180830381600087803b1580156103ce57600080fd5b505af11580156103e2573d6000803e3d6000fd5b5050505063ffffffff93841660009081526001602052604080822080546001600160a01b03199081166001600160a01b0396871617909155949095168152939093208054909216921691909117905561049c565b6131b18061076b83390190565b6102258061391c83390190565b805163ffffffff8116811461046457600080fd5b919050565b6000806040838503121561047c57600080fd5b61048583610450565b915061049360208401610450565b90509250929050565b6102c0806104ab6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063f11a367e11610050578063f11a367e14610101578063f9d2692d14610137578063f9f312ad1461014157600080fd5b80635a007b7e1461006c5780637a7eada3146100cb575b600080fd5b6100a261007a36600461025d565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100a26100d936600461025d565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6100a261010f36600461025d565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b61013f610149565b005b61013f6101dc565b6000805463ffffffff168152600160205260408082205481517f1605c306000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911692631605c306926004808201939182900301818387803b1580156101c257600080fd5b505af11580156101d6573d6000803e3d6000fd5b50505050565b60008054640100000000900463ffffffff168152600160205260408082205481517f1605c306000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911692631605c306926004808201939182900301818387803b1580156101c257600080fd5b60006020828403121561026f57600080fd5b813563ffffffff8116811461028357600080fd5b939250505056fea26469706673582212204de6f5dd33fb74cb268a11c42659c2f10d41f22989a331dcf538884c1c699b5764736f6c6343000813003360c0604052606b80546001600160401b03191690553480156200002157600080fd5b50604051620031b1380380620031b1833981016040819052620000449162000248565b4360805263ffffffff811660a05260405160009062000063906200022c565b604051809103906000f08015801562000080573d6000803e3d6000fd5b50606780546001600160a01b0319166001600160a01b038316179055604051909150600090620000b0906200023a565b604051809103906000f080158015620000cd573d6000803e3d6000fd5b50606880546001600160a01b0383166001600160a01b031991821681179092556069805490911690911790559050620001063362000119565b620001106200016b565b50505062000277565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1615620001d85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146200022a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6102258062002c0683390190565b6103868062002e2b83390190565b6000602082840312156200025b57600080fd5b815163ffffffff811681146200027057600080fd5b9392505050565b60805160a05161295b620002ab6000396000818161050501528181610c950152611981015260006104d1015261295b6000f3fe6080604052600436106101fe5760003560e01c80638d3638f41161011d578063d6d08a09116100b0578063f794687a1161007f578063f8c8765e11610064578063f8c8765e14610750578063fa31de0114610770578063ffa1ad741461078357600080fd5b8063f794687a14610710578063f7ccd3211461073057600080fd5b8063d6d08a0914610644578063e495f1d414610671578063e70f48ac146106d0578063f2fde38b146106f057600080fd5b80639c42bd18116100ec5780639c42bd181461059f578063a3b4919f146105bf578063affed0e014610602578063d12164e41461061f57600080fd5b80638d3638f4146104f35780638da5cb5b1461052757806392d28b3d1461055257806399b048091461057f57600080fd5b806359b3f6e0116101955780637c39d130116101645780637c39d1301461045a57806381d2ea951461046d5780638209d3121461048d57806382ea7bfe146104bf57600080fd5b806359b3f6e01461035f5780635d1fe5a9146103d55780636e5f516e14610418578063715018a61461044557600080fd5b80631605c306116101d15780631605c306146102c55780633288990c146102da5780633d1250b7146102fa57806348aee8d41461034c57600080fd5b806307a2fda11461020357806310b83dc01461026c578063134fbb4f1461028d5780631426b7f4146102a3575b600080fd5b34801561020f57600080fd5b5061025061021e366004611fb3565b6000908152606a602052604090205474010000000000000000000000000000000000000000900465ffffffffffff1690565b60405165ffffffffffff90911681526020015b60405180910390f35b61027f61027a366004612049565b6107aa565b604051908152602001610263565b34801561029957600080fd5b5061027f60665481565b3480156102af57600080fd5b506102c36102be3660046120e7565b6108fa565b005b3480156102d157600080fd5b506102c3610a15565b3480156102e657600080fd5b506102c36102f5366004612104565b610b6f565b34801561030657600080fd5b506068546103279073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610263565b61027f61035a366004612146565b610bcb565b34801561036b57600080fd5b506102c361037a3660046121d0565b63ffffffff919091166000908152606c6020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b3480156103e157600080fd5b506103276103f0366004611fb3565b6000908152606a602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b34801561042457600080fd5b506067546103279073ffffffffffffffffffffffffffffffffffffffff1681565b34801561045157600080fd5b506102c3610c09565b6102c3610468366004612207565b610c1d565b34801561047957600080fd5b5061027f610488366004612049565b6110bf565b34801561049957600080fd5b50606b546104aa9063ffffffff1681565b60405163ffffffff9091168152602001610263565b3480156104cb57600080fd5b5061027f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ff57600080fd5b506104aa7f000000000000000000000000000000000000000000000000000000000000000081565b34801561053357600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610327565b34801561055e57600080fd5b5061057261056d366004611fb3565b611252565b60405161026391906122e1565b34801561058b57600080fd5b506102c361059a3660046120e7565b6112ec565b3480156105ab57600080fd5b5061027f6105ba3660046122f4565b611407565b3480156105cb57600080fd5b506103276105da366004612342565b606c6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b34801561060e57600080fd5b506065546104aa9063ffffffff1681565b34801561062b57600080fd5b50606b546104aa90640100000000900463ffffffff1681565b34801561065057600080fd5b506069546103279073ffffffffffffffffffffffffffffffffffffffff1681565b34801561067d57600080fd5b506106c061068c366004611fb3565b6000908152606a602052604090205474010000000000000000000000000000000000000000900465ffffffffffff16151590565b6040519015158152602001610263565b3480156106dc57600080fd5b506103276106eb3660046120e7565b611443565b3480156106fc57600080fd5b506102c361070b3660046120e7565b61157a565b34801561071c57600080fd5b506102c361072b3660046120e7565b611631565b34801561073c57600080fd5b5061027f61074b366004612146565b61174c565b34801561075c57600080fd5b506102c361076b36600461235d565b61177f565b61027f61077e3660046122f4565b611939565b34801561078f57600080fd5b50610798600381565b60405160ff9091168152602001610263565b6000806107b98989898961196c565b905060006107cc8a8a8a8a8a8a8a6119aa565b63ffffffff8b166000908152606c602052604090205490915073ffffffffffffffffffffffffffffffffffffffff1680610867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d697373696e672072656d6f7465206d61696c626f780000000000000000000060448201526064015b60405180910390fd5b6040517f3288990c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690633288990c906108b99086906004016122e1565b600060405180830381600087803b1580156108d357600080fd5b505af11580156108e7573d6000803e3d6000fd5b50939d9c50505050505050505050505050565b610902611c7e565b73ffffffffffffffffffffffffffffffffffffffff81163b6109a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4d61696c626f783a20726571756972656420686f6f6b206e6f7420636f6e747260448201527f6163740000000000000000000000000000000000000000000000000000000000606482015260840161085e565b606980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f329ec8e2438a73828ecf31a6568d7a91d7b1d79e342b0692914fd053d1a002b190600090a250565b606b54640100000000900463ffffffff166000908152606d602052604081208054610a3f906123b9565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6b906123b9565b8015610ab85780601f10610a8d57610100808354040283529160200191610ab8565b820191906000526020600020905b815481529060010190602001808311610a9b57829003601f168201915b50506040517f7c39d1300000000000000000000000000000000000000000000000000000000081529394503093637c39d1309350610afc925085915060040161240c565b600060405180830381600087803b158015610b1657600080fd5b505af1158015610b2a573d6000803e3d6000fd5b5050606b8054640100000000900463ffffffff16925090506004610b4d8361245c565b91906101000a81548163ffffffff021916908363ffffffff1602179055505050565b606b5463ffffffff166000908152606d60205260409020610b918284836124fd565b50606b805463ffffffff16906000610ba88361245c565b91906101000a81548163ffffffff021916908363ffffffff160217905550505050565b6000610bfe878787878787606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166107aa565b979650505050505050565b610c11611c7e565b610c1b6000611cff565b565b6003610c298383611d76565b60ff1614610c93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4d61696c626f783a206261642076657273696f6e000000000000000000000000604482015260640161085e565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff16610cc48383611d9a565b63ffffffff1614610d31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4d61696c626f783a20756e65787065637465642064657374696e6174696f6e00604482015260640161085e565b6000610d7283838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611dbd92505050565b6000818152606a602052604090205490915074010000000000000000000000000000000000000000900465ffffffffffff1615610e0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4d61696c626f783a20616c72656164792064656c697665726564000000000000604482015260640161085e565b6000610e178484611dc8565b90506000610e2482611443565b60408051808201825233815265ffffffffffff43811660208084019182526000898152606a9091529390932091518254935190911674010000000000000000000000000000000000000000027fffffffffffff000000000000000000000000000000000000000000000000000090931673ffffffffffffffffffffffffffffffffffffffff918216179290921790559091508216610ec28686611de1565b610ecc8787611dfa565b63ffffffff167f0d381c2a574ae8f04e213db7cfb4df8df712cdbd427d9868ffef380660ca657460405160405180910390a460405183907f1cae38cdd3d3919489272725a5ae62a4f48b2989b0dae843d3c279fee18073a990600090a26040517ff7e83aee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063f7e83aee90610f81908a908a908a908a90600401612660565b6020604051808303816000875af1158015610fa0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc49190612687565b61102a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4d61696c626f783a2049534d20766572696669636174696f6e206661696c6564604482015260640161085e565b8173ffffffffffffffffffffffffffffffffffffffff166356d5d475346110518888611dfa565b61105b8989611de1565b6110658a8a611e0a565b6040518663ffffffff1660e01b815260040161108494939291906126a9565b6000604051808303818588803b15801561109d57600080fd5b505af11580156110b1573d6000803e3d6000fd5b505050505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82166110f85760685473ffffffffffffffffffffffffffffffffffffffff1691505b60006111068989898961196c565b6040517faaccd23000000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff84169063aaccd2309061115f908890889086906004016126d9565b602060405180830381865afa15801561117c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a091906126ff565b6069546040517faaccd23000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063aaccd230906111fa908990899087906004016126d9565b602060405180830381865afa158015611217573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123b91906126ff565b6112459190612718565b9998505050505050505050565b606d602052600090815260409020805461126b906123b9565b80601f0160208091040260200160405190810160405280929190818152602001828054611297906123b9565b80156112e45780601f106112b9576101008083540402835291602001916112e4565b820191906000526020600020905b8154815290600101906020018083116112c757829003601f168201915b505050505081565b6112f4611c7e565b73ffffffffffffffffffffffffffffffffffffffff81163b611398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4d61696c626f783a2064656661756c7420686f6f6b206e6f7420636f6e74726160448201527f6374000000000000000000000000000000000000000000000000000000000000606482015260840161085e565b606880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f65a63e5066ee2fcdf9d32a7f1bf7ce71c76066f19d0609dddccd334ab87237d790600090a250565b600061143a8585858561141c8680838561272b565b60685473ffffffffffffffffffffffffffffffffffffffff166110bf565b95945050505050565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fde523cf30000000000000000000000000000000000000000000000000000000017905290516000918291829173ffffffffffffffffffffffffffffffffffffffff8616916114c49190612755565b600060405180830381855afa9150503d80600081146114ff576040519150601f19603f3d011682016040523d82523d6000602084013e611504565b606091505b50915091508180156115165750805115155b15611559576000818060200190518101906115319190612771565b905073ffffffffffffffffffffffffffffffffffffffff81161561155757949350505050565b505b505060675473ffffffffffffffffffffffffffffffffffffffff1692915050565b611582611c7e565b73ffffffffffffffffffffffffffffffffffffffff8116611625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161085e565b61162e81611cff565b50565b611639611c7e565b73ffffffffffffffffffffffffffffffffffffffff81163b6116dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f783a2064656661756c742049534d206e6f7420636f6e7472616360448201527f7400000000000000000000000000000000000000000000000000000000000000606482015260840161085e565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fa76ad0adbf45318f8633aa0210f711273d50fbb6fef76ed95bbae97082c75daa90600090a250565b6000610bfe878787878787606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166110bf565b600054610100900460ff161580801561179f5750600054600160ff909116105b806117b95750303b1580156117b9575060005460ff166001145b611845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161085e565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156118a357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6118ab611e26565b6118b484611631565b6118bd836112ec565b6118c6826108fa565b6118cf8561157a565b801561193257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600061143a8585858561194e8680838561272b565b60685473ffffffffffffffffffffffffffffffffffffffff166107aa565b60655460609061143a9060039063ffffffff167f00000000000000000000000000000000000000000000000000000000000000003389898989611ec5565b600073ffffffffffffffffffffffffffffffffffffffff82166119e35760685473ffffffffffffffffffffffffffffffffffffffff1691505b60006119f18989898961196c565b80516020820120606681905560658054929350909160019190600090611a1e90849063ffffffff1661278e565b92506101000a81548163ffffffff021916908363ffffffff160217905550888a63ffffffff163373ffffffffffffffffffffffffffffffffffffffff167f769f711d20c679153d382254f59892613b58a97cc876b249134ac25c80f9c81485604051611a8a91906122e1565b60405180910390a460405181907f788dbc1b7152732178210e7f4d9d010ef016f9eafbe66786bd7169f56e0c353a90600090a26069546040517faaccd23000000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff169063aaccd23090611b18908a908a9088906004016126d9565b602060405180830381865afa158015611b35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5991906126ff565b905080341015611b665750345b6069546040517f086011b900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063086011b9908390611bc2908b908b9089906004016126d9565b6000604051808303818588803b158015611bdb57600080fd5b505af1158015611bef573d6000803e3d6000fd5b50505050508473ffffffffffffffffffffffffffffffffffffffff1663086011b98234611c1c91906127b2565b8989876040518563ffffffff1660e01b8152600401611c3d939291906126d9565b6000604051808303818588803b158015611c5657600080fd5b505af1158015611c6a573d6000803e3d6000fd5b50949e9d5050505050505050505050505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610c1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161085e565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000611d85600182848661272b565b611d8e916127c5565b60f81c90505b92915050565b6000611daa602d6029848661272b565b611db39161280d565b60e01c9392505050565b805160209091012090565b6000611dda611dd78484611f03565b90565b9392505050565b6000611df160296009848661272b565b611dda91612853565b6000611daa60096005848661272b565b366000611e1a83604d818761272b565b915091505b9250929050565b600054610100900460ff16611ebd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161085e565b610c1b611f13565b60608888888888888888604051602001611ee698979695949392919061288f565b604051602081830303815290604052905098975050505050505050565b6000611df1604d602d848661272b565b600054610100900460ff16611faa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161085e565b610c1b33611cff565b600060208284031215611fc557600080fd5b5035919050565b803563ffffffff81168114611fe057600080fd5b919050565b60008083601f840112611ff757600080fd5b50813567ffffffffffffffff81111561200f57600080fd5b602083019150836020828501011115611e1f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8116811461162e57600080fd5b600080600080600080600060a0888a03121561206457600080fd5b61206d88611fcc565b965060208801359550604088013567ffffffffffffffff8082111561209157600080fd5b61209d8b838c01611fe5565b909750955060608a01359150808211156120b657600080fd5b506120c38a828b01611fe5565b90945092505060808801356120d781612027565b8091505092959891949750929550565b6000602082840312156120f957600080fd5b8135611dda81612027565b6000806020838503121561211757600080fd5b823567ffffffffffffffff81111561212e57600080fd5b61213a85828601611fe5565b90969095509350505050565b6000806000806000806080878903121561215f57600080fd5b61216887611fcc565b955060208701359450604087013567ffffffffffffffff8082111561218c57600080fd5b6121988a838b01611fe5565b909650945060608901359150808211156121b157600080fd5b506121be89828a01611fe5565b979a9699509497509295939492505050565b600080604083850312156121e357600080fd5b6121ec83611fcc565b915060208301356121fc81612027565b809150509250929050565b6000806000806040858703121561221d57600080fd5b843567ffffffffffffffff8082111561223557600080fd5b61224188838901611fe5565b9096509450602087013591508082111561225a57600080fd5b5061226787828801611fe5565b95989497509550505050565b60005b8381101561228e578181015183820152602001612276565b50506000910152565b600081518084526122af816020860160208601612273565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611dda6020830184612297565b6000806000806060858703121561230a57600080fd5b61231385611fcc565b935060208501359250604085013567ffffffffffffffff81111561233657600080fd5b61226787828801611fe5565b60006020828403121561235457600080fd5b611dda82611fcc565b6000806000806080858703121561237357600080fd5b843561237e81612027565b9350602085013561238e81612027565b9250604085013561239e81612027565b915060608501356123ae81612027565b939692955090935050565b600181811c908216806123cd57607f821691505b602082108103612406577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6040815260006040820152606060208201526000611dda6060830184612297565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600063ffffffff8083168181036124755761247561242d565b6001019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f8211156124f857600081815260208120601f850160051c810160208610156124d55750805b601f850160051c820191505b818110156124f4578281556001016124e1565b5050505b505050565b67ffffffffffffffff8311156125155761251561247f565b6125298361252383546123b9565b836124ae565b6000601f84116001811461257b57600085156125455750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355611932565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156125ca57868501358255602094850194600190920191016125aa565b5086821015612605577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b604081526000612674604083018688612617565b8281036020840152610bfe818587612617565b60006020828403121561269957600080fd5b81518015158114611dda57600080fd5b63ffffffff851681528360208201526060604082015260006126cf606083018486612617565b9695505050505050565b6040815260006126ed604083018587612617565b82810360208401526126cf8185612297565b60006020828403121561271157600080fd5b5051919050565b80820180821115611d9457611d9461242d565b6000808585111561273b57600080fd5b8386111561274857600080fd5b5050820193919092039150565b60008251612767818460208701612273565b9190910192915050565b60006020828403121561278357600080fd5b8151611dda81612027565b63ffffffff8181168382160190808211156127ab576127ab61242d565b5092915050565b81810381811115611d9457611d9461242d565b7fff0000000000000000000000000000000000000000000000000000000000000081358181169160018510156128055780818660010360031b1b83161692505b505092915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156128055760049490940360031b84901b1690921692915050565b80356020831015611d94577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fff000000000000000000000000000000000000000000000000000000000000008960f81b16815260007fffffffff00000000000000000000000000000000000000000000000000000000808a60e01b166001840152808960e01b166005840152876009840152808760e01b1660298401525084602d8301528284604d8401375060009101604d0190815297965050505050505056fea2646970667358221220c443eb50bff970ca1fa6f3273505843aaa848e5f0039c48fcdad51699ce90c2764736f6c6343000813003360806040526000805461ffff191661010617905534801561001f57600080fd5b506101f68061002f6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80636465e69f14610046578063951a291f1461006a578063f7e83aee146100b1575b600080fd5b6000546100539060ff1681565b60405160ff90911681526020015b60405180910390f35b6100af6100783660046100e2565b60008054911515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909216919091179055565b005b6100d26100bf366004610154565b5050600054610100900460ff1692915050565b6040519015158152602001610061565b6000602082840312156100f457600080fd5b8135801515811461010457600080fd5b9392505050565b60008083601f84011261011d57600080fd5b50813567ffffffffffffffff81111561013557600080fd5b60208301915083602082850101111561014d57600080fd5b9250929050565b6000806000806040858703121561016a57600080fd5b843567ffffffffffffffff8082111561018257600080fd5b61018e8883890161010b565b909650945060208701359150808211156101a757600080fd5b506101b48782880161010b565b9598949750955050505056fea26469706673582212204da148e3ce90d103f9beabdf4cf9efc4884b0388e7ede5c027435423af1f91dd64736f6c6343000813003360806040526000805534801561001457600080fd5b50610362806100246000396000f3fe6080604052600436106100705760003560e01c8063ddca3f431161004e578063ddca3f43146100e3578063e445e7dd146100f9578063e5320bb914610115578063f667ee911461014857600080fd5b8063086011b91461007557806369fe0e2d1461008a578063aaccd230146100aa575b600080fd5b610088610083366004610265565b610178565b005b34801561009657600080fd5b506100886100a53660046102d1565b600055565b3480156100b657600080fd5b506100d06100c5366004610265565b505060005492915050565b6040519081526020015b60405180910390f35b3480156100ef57600080fd5b506100d060005481565b34801561010557600080fd5b50604051600081526020016100da565b34801561012157600080fd5b506101386101303660046102ea565b600192915050565b60405190151581526020016100da565b34801561015457600080fd5b506101386101633660046102d1565b60016020526000908152604090205460ff1681565b6101848484848461018a565b50505050565b60018060006101ce85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061021192505050565b8152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905550505050565b805160209091012090565b60008083601f84011261022e57600080fd5b50813567ffffffffffffffff81111561024657600080fd5b60208301915083602082850101111561025e57600080fd5b9250929050565b6000806000806040858703121561027b57600080fd5b843567ffffffffffffffff8082111561029357600080fd5b61029f8883890161021c565b909650945060208701359150808211156102b857600080fd5b506102c58782880161021c565b95989497509550505050565b6000602082840312156102e357600080fd5b5035919050565b600080602083850312156102fd57600080fd5b823567ffffffffffffffff81111561031457600080fd5b6103208582860161021c565b9096909550935050505056fea26469706673582212209af169dec748b5fceb5877829982a286dd848d5c28d734f4f998bf7cd479a32b64736f6c6343000813003360806040526000805461ffff191661010617905534801561001f57600080fd5b506101f68061002f6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80636465e69f14610046578063951a291f1461006a578063f7e83aee146100b1575b600080fd5b6000546100539060ff1681565b60405160ff90911681526020015b60405180910390f35b6100af6100783660046100e2565b60008054911515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909216919091179055565b005b6100d26100bf366004610154565b5050600054610100900460ff1692915050565b6040519015158152602001610061565b6000602082840312156100f457600080fd5b8135801515811461010457600080fd5b9392505050565b60008083601f84011261011d57600080fd5b50813567ffffffffffffffff81111561013557600080fd5b60208301915083602082850101111561014d57600080fd5b9250929050565b6000806000806040858703121561016a57600080fd5b843567ffffffffffffffff8082111561018257600080fd5b61018e8883890161010b565b909650945060208701359150808211156101a757600080fd5b506101b48782880161010b565b9598949750955050505056fea26469706673582212204da148e3ce90d103f9beabdf4cf9efc4884b0388e7ede5c027435423af1f91dd64736f6c63430008130033";
120
+ const _bytecode = "0x608060405234801561001057600080fd5b50604051613b95380380613b9583398101604081905261002f91610469565b6000805463ffffffff838116640100000000026001600160401b031990921690851617178155604051839061006390610436565b63ffffffff9091168152602001604051809103906000f08015801561008c573d6000803e3d6000fd5b50905060008260405161009e90610436565b63ffffffff9091168152602001604051809103906000f0801580156100c7573d6000803e3d6000fd5b506040516302cd9fb760e51b815263ffffffff851660048201526001600160a01b038083166024830152919250908316906359b3f6e090604401600060405180830381600087803b15801561011b57600080fd5b505af115801561012f573d6000803e3d6000fd5b50506040516302cd9fb760e51b815263ffffffff871660048201526001600160a01b038581166024830152841692506359b3f6e09150604401600060405180830381600087803b15801561018257600080fd5b505af1158015610196573d6000803e3d6000fd5b505050506040516101a690610443565b604051809103906000f0801580156101c2573d6000803e3d6000fd5b506000805463ffffffff168152600360205260409081902080546001600160a01b0319166001600160a01b0393909316929092179091555161020390610443565b604051809103906000f08015801561021f573d6000803e3d6000fd5b5060008054640100000000900463ffffffff90811682526003602052604080832080546001600160a01b0319166001600160a01b039586161790558254909116825290819020549051637bca343d60e11b815290821660048201529083169063f794687a90602401600060405180830381600087803b1580156102a157600080fd5b505af11580156102b5573d6000803e3d6000fd5b505060008054640100000000900463ffffffff1681526003602052604090819020549051637bca343d60e11b81526001600160a01b039182166004820152908416925063f794687a9150602401600060405180830381600087803b15801561031c57600080fd5b505af1158015610330573d6000803e3d6000fd5b505060405163f2fde38b60e01b81523360048201526001600160a01b038516925063f2fde38b9150602401600060405180830381600087803b15801561037557600080fd5b505af1158015610389573d6000803e3d6000fd5b505060405163f2fde38b60e01b81523360048201526001600160a01b038416925063f2fde38b9150602401600060405180830381600087803b1580156103ce57600080fd5b505af11580156103e2573d6000803e3d6000fd5b5050505063ffffffff93841660009081526001602052604080822080546001600160a01b03199081166001600160a01b0396871617909155949095168152939093208054909216921691909117905561049c565b6131b1806107bf83390190565b6102258061397083390190565b805163ffffffff8116811461046457600080fd5b919050565b6000806040838503121561047c57600080fd5b61048583610450565b915061049360208401610450565b90509250929050565b610314806104ab6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063cee85d7e1161005b578063cee85d7e14610145578063f11a367e14610155578063f9d2692d1461018b578063f9f312ad1461019557600080fd5b80632858c55a146100825780635a007b7e146100b45780637a7eada31461010f575b600080fd5b60005461009a90640100000000900463ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b6100ea6100c23660046102b1565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100ab565b6100ea61011d3660046102b1565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60005461009a9063ffffffff1681565b6100ea6101633660046102b1565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b61019361019d565b005b610193610230565b6000805463ffffffff168152600160205260408082205481517f1605c306000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911692631605c306926004808201939182900301818387803b15801561021657600080fd5b505af115801561022a573d6000803e3d6000fd5b50505050565b60008054640100000000900463ffffffff168152600160205260408082205481517f1605c306000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911692631605c306926004808201939182900301818387803b15801561021657600080fd5b6000602082840312156102c357600080fd5b813563ffffffff811681146102d757600080fd5b939250505056fea2646970667358221220b360be50d0bb074648a4c61f58d318fe6bcf445c174fc2d8ea7fe169a49b418664736f6c6343000813003360c0604052606b80546001600160401b03191690553480156200002157600080fd5b50604051620031b1380380620031b1833981016040819052620000449162000248565b4360805263ffffffff811660a05260405160009062000063906200022c565b604051809103906000f08015801562000080573d6000803e3d6000fd5b50606780546001600160a01b0319166001600160a01b038316179055604051909150600090620000b0906200023a565b604051809103906000f080158015620000cd573d6000803e3d6000fd5b50606880546001600160a01b0383166001600160a01b031991821681179092556069805490911690911790559050620001063362000119565b620001106200016b565b50505062000277565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1615620001d85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146200022a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6102258062002c0683390190565b6103868062002e2b83390190565b6000602082840312156200025b57600080fd5b815163ffffffff811681146200027057600080fd5b9392505050565b60805160a05161295b620002ab6000396000818161050501528181610c950152611981015260006104d1015261295b6000f3fe6080604052600436106101fe5760003560e01c80638d3638f41161011d578063d6d08a09116100b0578063f794687a1161007f578063f8c8765e11610064578063f8c8765e14610750578063fa31de0114610770578063ffa1ad741461078357600080fd5b8063f794687a14610710578063f7ccd3211461073057600080fd5b8063d6d08a0914610644578063e495f1d414610671578063e70f48ac146106d0578063f2fde38b146106f057600080fd5b80639c42bd18116100ec5780639c42bd181461059f578063a3b4919f146105bf578063affed0e014610602578063d12164e41461061f57600080fd5b80638d3638f4146104f35780638da5cb5b1461052757806392d28b3d1461055257806399b048091461057f57600080fd5b806359b3f6e0116101955780637c39d130116101645780637c39d1301461045a57806381d2ea951461046d5780638209d3121461048d57806382ea7bfe146104bf57600080fd5b806359b3f6e01461035f5780635d1fe5a9146103d55780636e5f516e14610418578063715018a61461044557600080fd5b80631605c306116101d15780631605c306146102c55780633288990c146102da5780633d1250b7146102fa57806348aee8d41461034c57600080fd5b806307a2fda11461020357806310b83dc01461026c578063134fbb4f1461028d5780631426b7f4146102a3575b600080fd5b34801561020f57600080fd5b5061025061021e366004611fb3565b6000908152606a602052604090205474010000000000000000000000000000000000000000900465ffffffffffff1690565b60405165ffffffffffff90911681526020015b60405180910390f35b61027f61027a366004612049565b6107aa565b604051908152602001610263565b34801561029957600080fd5b5061027f60665481565b3480156102af57600080fd5b506102c36102be3660046120e7565b6108fa565b005b3480156102d157600080fd5b506102c3610a15565b3480156102e657600080fd5b506102c36102f5366004612104565b610b6f565b34801561030657600080fd5b506068546103279073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610263565b61027f61035a366004612146565b610bcb565b34801561036b57600080fd5b506102c361037a3660046121d0565b63ffffffff919091166000908152606c6020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b3480156103e157600080fd5b506103276103f0366004611fb3565b6000908152606a602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b34801561042457600080fd5b506067546103279073ffffffffffffffffffffffffffffffffffffffff1681565b34801561045157600080fd5b506102c3610c09565b6102c3610468366004612207565b610c1d565b34801561047957600080fd5b5061027f610488366004612049565b6110bf565b34801561049957600080fd5b50606b546104aa9063ffffffff1681565b60405163ffffffff9091168152602001610263565b3480156104cb57600080fd5b5061027f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ff57600080fd5b506104aa7f000000000000000000000000000000000000000000000000000000000000000081565b34801561053357600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610327565b34801561055e57600080fd5b5061057261056d366004611fb3565b611252565b60405161026391906122e1565b34801561058b57600080fd5b506102c361059a3660046120e7565b6112ec565b3480156105ab57600080fd5b5061027f6105ba3660046122f4565b611407565b3480156105cb57600080fd5b506103276105da366004612342565b606c6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b34801561060e57600080fd5b506065546104aa9063ffffffff1681565b34801561062b57600080fd5b50606b546104aa90640100000000900463ffffffff1681565b34801561065057600080fd5b506069546103279073ffffffffffffffffffffffffffffffffffffffff1681565b34801561067d57600080fd5b506106c061068c366004611fb3565b6000908152606a602052604090205474010000000000000000000000000000000000000000900465ffffffffffff16151590565b6040519015158152602001610263565b3480156106dc57600080fd5b506103276106eb3660046120e7565b611443565b3480156106fc57600080fd5b506102c361070b3660046120e7565b61157a565b34801561071c57600080fd5b506102c361072b3660046120e7565b611631565b34801561073c57600080fd5b5061027f61074b366004612146565b61174c565b34801561075c57600080fd5b506102c361076b36600461235d565b61177f565b61027f61077e3660046122f4565b611939565b34801561078f57600080fd5b50610798600381565b60405160ff9091168152602001610263565b6000806107b98989898961196c565b905060006107cc8a8a8a8a8a8a8a6119aa565b63ffffffff8b166000908152606c602052604090205490915073ffffffffffffffffffffffffffffffffffffffff1680610867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d697373696e672072656d6f7465206d61696c626f780000000000000000000060448201526064015b60405180910390fd5b6040517f3288990c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690633288990c906108b99086906004016122e1565b600060405180830381600087803b1580156108d357600080fd5b505af11580156108e7573d6000803e3d6000fd5b50939d9c50505050505050505050505050565b610902611c7e565b73ffffffffffffffffffffffffffffffffffffffff81163b6109a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4d61696c626f783a20726571756972656420686f6f6b206e6f7420636f6e747260448201527f6163740000000000000000000000000000000000000000000000000000000000606482015260840161085e565b606980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f329ec8e2438a73828ecf31a6568d7a91d7b1d79e342b0692914fd053d1a002b190600090a250565b606b54640100000000900463ffffffff166000908152606d602052604081208054610a3f906123b9565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6b906123b9565b8015610ab85780601f10610a8d57610100808354040283529160200191610ab8565b820191906000526020600020905b815481529060010190602001808311610a9b57829003601f168201915b50506040517f7c39d1300000000000000000000000000000000000000000000000000000000081529394503093637c39d1309350610afc925085915060040161240c565b600060405180830381600087803b158015610b1657600080fd5b505af1158015610b2a573d6000803e3d6000fd5b5050606b8054640100000000900463ffffffff16925090506004610b4d8361245c565b91906101000a81548163ffffffff021916908363ffffffff1602179055505050565b606b5463ffffffff166000908152606d60205260409020610b918284836124fd565b50606b805463ffffffff16906000610ba88361245c565b91906101000a81548163ffffffff021916908363ffffffff160217905550505050565b6000610bfe878787878787606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166107aa565b979650505050505050565b610c11611c7e565b610c1b6000611cff565b565b6003610c298383611d76565b60ff1614610c93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4d61696c626f783a206261642076657273696f6e000000000000000000000000604482015260640161085e565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff16610cc48383611d9a565b63ffffffff1614610d31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4d61696c626f783a20756e65787065637465642064657374696e6174696f6e00604482015260640161085e565b6000610d7283838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611dbd92505050565b6000818152606a602052604090205490915074010000000000000000000000000000000000000000900465ffffffffffff1615610e0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4d61696c626f783a20616c72656164792064656c697665726564000000000000604482015260640161085e565b6000610e178484611dc8565b90506000610e2482611443565b60408051808201825233815265ffffffffffff43811660208084019182526000898152606a9091529390932091518254935190911674010000000000000000000000000000000000000000027fffffffffffff000000000000000000000000000000000000000000000000000090931673ffffffffffffffffffffffffffffffffffffffff918216179290921790559091508216610ec28686611de1565b610ecc8787611dfa565b63ffffffff167f0d381c2a574ae8f04e213db7cfb4df8df712cdbd427d9868ffef380660ca657460405160405180910390a460405183907f1cae38cdd3d3919489272725a5ae62a4f48b2989b0dae843d3c279fee18073a990600090a26040517ff7e83aee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063f7e83aee90610f81908a908a908a908a90600401612660565b6020604051808303816000875af1158015610fa0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc49190612687565b61102a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4d61696c626f783a2049534d20766572696669636174696f6e206661696c6564604482015260640161085e565b8173ffffffffffffffffffffffffffffffffffffffff166356d5d475346110518888611dfa565b61105b8989611de1565b6110658a8a611e0a565b6040518663ffffffff1660e01b815260040161108494939291906126a9565b6000604051808303818588803b15801561109d57600080fd5b505af11580156110b1573d6000803e3d6000fd5b505050505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82166110f85760685473ffffffffffffffffffffffffffffffffffffffff1691505b60006111068989898961196c565b6040517faaccd23000000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff84169063aaccd2309061115f908890889086906004016126d9565b602060405180830381865afa15801561117c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a091906126ff565b6069546040517faaccd23000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063aaccd230906111fa908990899087906004016126d9565b602060405180830381865afa158015611217573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123b91906126ff565b6112459190612718565b9998505050505050505050565b606d602052600090815260409020805461126b906123b9565b80601f0160208091040260200160405190810160405280929190818152602001828054611297906123b9565b80156112e45780601f106112b9576101008083540402835291602001916112e4565b820191906000526020600020905b8154815290600101906020018083116112c757829003601f168201915b505050505081565b6112f4611c7e565b73ffffffffffffffffffffffffffffffffffffffff81163b611398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4d61696c626f783a2064656661756c7420686f6f6b206e6f7420636f6e74726160448201527f6374000000000000000000000000000000000000000000000000000000000000606482015260840161085e565b606880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f65a63e5066ee2fcdf9d32a7f1bf7ce71c76066f19d0609dddccd334ab87237d790600090a250565b600061143a8585858561141c8680838561272b565b60685473ffffffffffffffffffffffffffffffffffffffff166110bf565b95945050505050565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fde523cf30000000000000000000000000000000000000000000000000000000017905290516000918291829173ffffffffffffffffffffffffffffffffffffffff8616916114c49190612755565b600060405180830381855afa9150503d80600081146114ff576040519150601f19603f3d011682016040523d82523d6000602084013e611504565b606091505b50915091508180156115165750805115155b15611559576000818060200190518101906115319190612771565b905073ffffffffffffffffffffffffffffffffffffffff81161561155757949350505050565b505b505060675473ffffffffffffffffffffffffffffffffffffffff1692915050565b611582611c7e565b73ffffffffffffffffffffffffffffffffffffffff8116611625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161085e565b61162e81611cff565b50565b611639611c7e565b73ffffffffffffffffffffffffffffffffffffffff81163b6116dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f783a2064656661756c742049534d206e6f7420636f6e7472616360448201527f7400000000000000000000000000000000000000000000000000000000000000606482015260840161085e565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fa76ad0adbf45318f8633aa0210f711273d50fbb6fef76ed95bbae97082c75daa90600090a250565b6000610bfe878787878787606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166110bf565b600054610100900460ff161580801561179f5750600054600160ff909116105b806117b95750303b1580156117b9575060005460ff166001145b611845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161085e565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156118a357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6118ab611e26565b6118b484611631565b6118bd836112ec565b6118c6826108fa565b6118cf8561157a565b801561193257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600061143a8585858561194e8680838561272b565b60685473ffffffffffffffffffffffffffffffffffffffff166107aa565b60655460609061143a9060039063ffffffff167f00000000000000000000000000000000000000000000000000000000000000003389898989611ec5565b600073ffffffffffffffffffffffffffffffffffffffff82166119e35760685473ffffffffffffffffffffffffffffffffffffffff1691505b60006119f18989898961196c565b80516020820120606681905560658054929350909160019190600090611a1e90849063ffffffff1661278e565b92506101000a81548163ffffffff021916908363ffffffff160217905550888a63ffffffff163373ffffffffffffffffffffffffffffffffffffffff167f769f711d20c679153d382254f59892613b58a97cc876b249134ac25c80f9c81485604051611a8a91906122e1565b60405180910390a460405181907f788dbc1b7152732178210e7f4d9d010ef016f9eafbe66786bd7169f56e0c353a90600090a26069546040517faaccd23000000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff169063aaccd23090611b18908a908a9088906004016126d9565b602060405180830381865afa158015611b35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5991906126ff565b905080341015611b665750345b6069546040517f086011b900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063086011b9908390611bc2908b908b9089906004016126d9565b6000604051808303818588803b158015611bdb57600080fd5b505af1158015611bef573d6000803e3d6000fd5b50505050508473ffffffffffffffffffffffffffffffffffffffff1663086011b98234611c1c91906127b2565b8989876040518563ffffffff1660e01b8152600401611c3d939291906126d9565b6000604051808303818588803b158015611c5657600080fd5b505af1158015611c6a573d6000803e3d6000fd5b50949e9d5050505050505050505050505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610c1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161085e565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000611d85600182848661272b565b611d8e916127c5565b60f81c90505b92915050565b6000611daa602d6029848661272b565b611db39161280d565b60e01c9392505050565b805160209091012090565b6000611dda611dd78484611f03565b90565b9392505050565b6000611df160296009848661272b565b611dda91612853565b6000611daa60096005848661272b565b366000611e1a83604d818761272b565b915091505b9250929050565b600054610100900460ff16611ebd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161085e565b610c1b611f13565b60608888888888888888604051602001611ee698979695949392919061288f565b604051602081830303815290604052905098975050505050505050565b6000611df1604d602d848661272b565b600054610100900460ff16611faa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161085e565b610c1b33611cff565b600060208284031215611fc557600080fd5b5035919050565b803563ffffffff81168114611fe057600080fd5b919050565b60008083601f840112611ff757600080fd5b50813567ffffffffffffffff81111561200f57600080fd5b602083019150836020828501011115611e1f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8116811461162e57600080fd5b600080600080600080600060a0888a03121561206457600080fd5b61206d88611fcc565b965060208801359550604088013567ffffffffffffffff8082111561209157600080fd5b61209d8b838c01611fe5565b909750955060608a01359150808211156120b657600080fd5b506120c38a828b01611fe5565b90945092505060808801356120d781612027565b8091505092959891949750929550565b6000602082840312156120f957600080fd5b8135611dda81612027565b6000806020838503121561211757600080fd5b823567ffffffffffffffff81111561212e57600080fd5b61213a85828601611fe5565b90969095509350505050565b6000806000806000806080878903121561215f57600080fd5b61216887611fcc565b955060208701359450604087013567ffffffffffffffff8082111561218c57600080fd5b6121988a838b01611fe5565b909650945060608901359150808211156121b157600080fd5b506121be89828a01611fe5565b979a9699509497509295939492505050565b600080604083850312156121e357600080fd5b6121ec83611fcc565b915060208301356121fc81612027565b809150509250929050565b6000806000806040858703121561221d57600080fd5b843567ffffffffffffffff8082111561223557600080fd5b61224188838901611fe5565b9096509450602087013591508082111561225a57600080fd5b5061226787828801611fe5565b95989497509550505050565b60005b8381101561228e578181015183820152602001612276565b50506000910152565b600081518084526122af816020860160208601612273565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611dda6020830184612297565b6000806000806060858703121561230a57600080fd5b61231385611fcc565b935060208501359250604085013567ffffffffffffffff81111561233657600080fd5b61226787828801611fe5565b60006020828403121561235457600080fd5b611dda82611fcc565b6000806000806080858703121561237357600080fd5b843561237e81612027565b9350602085013561238e81612027565b9250604085013561239e81612027565b915060608501356123ae81612027565b939692955090935050565b600181811c908216806123cd57607f821691505b602082108103612406577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6040815260006040820152606060208201526000611dda6060830184612297565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600063ffffffff8083168181036124755761247561242d565b6001019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f8211156124f857600081815260208120601f850160051c810160208610156124d55750805b601f850160051c820191505b818110156124f4578281556001016124e1565b5050505b505050565b67ffffffffffffffff8311156125155761251561247f565b6125298361252383546123b9565b836124ae565b6000601f84116001811461257b57600085156125455750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355611932565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156125ca57868501358255602094850194600190920191016125aa565b5086821015612605577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b604081526000612674604083018688612617565b8281036020840152610bfe818587612617565b60006020828403121561269957600080fd5b81518015158114611dda57600080fd5b63ffffffff851681528360208201526060604082015260006126cf606083018486612617565b9695505050505050565b6040815260006126ed604083018587612617565b82810360208401526126cf8185612297565b60006020828403121561271157600080fd5b5051919050565b80820180821115611d9457611d9461242d565b6000808585111561273b57600080fd5b8386111561274857600080fd5b5050820193919092039150565b60008251612767818460208701612273565b9190910192915050565b60006020828403121561278357600080fd5b8151611dda81612027565b63ffffffff8181168382160190808211156127ab576127ab61242d565b5092915050565b81810381811115611d9457611d9461242d565b7fff0000000000000000000000000000000000000000000000000000000000000081358181169160018510156128055780818660010360031b1b83161692505b505092915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156128055760049490940360031b84901b1690921692915050565b80356020831015611d94577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fff000000000000000000000000000000000000000000000000000000000000008960f81b16815260007fffffffff00000000000000000000000000000000000000000000000000000000808a60e01b166001840152808960e01b166005840152876009840152808760e01b1660298401525084602d8301528284604d8401375060009101604d0190815297965050505050505056fea264697066735822122031353d41d3936c77282e55e458d8fe572781f84b6db109079e81970aa26422f364736f6c6343000813003360806040526000805461ffff191661010617905534801561001f57600080fd5b506101f68061002f6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80636465e69f14610046578063951a291f1461006a578063f7e83aee146100b1575b600080fd5b6000546100539060ff1681565b60405160ff90911681526020015b60405180910390f35b6100af6100783660046100e2565b60008054911515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909216919091179055565b005b6100d26100bf366004610154565b5050600054610100900460ff1692915050565b6040519015158152602001610061565b6000602082840312156100f457600080fd5b8135801515811461010457600080fd5b9392505050565b60008083601f84011261011d57600080fd5b50813567ffffffffffffffff81111561013557600080fd5b60208301915083602082850101111561014d57600080fd5b9250929050565b6000806000806040858703121561016a57600080fd5b843567ffffffffffffffff8082111561018257600080fd5b61018e8883890161010b565b909650945060208701359150808211156101a757600080fd5b506101b48782880161010b565b9598949750955050505056fea2646970667358221220631a95aa4de39aac095a71768cc009f6ef014b4428c9dfa3495697b5cacfa07464736f6c6343000813003360806040526000805534801561001457600080fd5b50610362806100246000396000f3fe6080604052600436106100705760003560e01c8063ddca3f431161004e578063ddca3f43146100e3578063e445e7dd146100f9578063e5320bb914610115578063f667ee911461014857600080fd5b8063086011b91461007557806369fe0e2d1461008a578063aaccd230146100aa575b600080fd5b610088610083366004610265565b610178565b005b34801561009657600080fd5b506100886100a53660046102d1565b600055565b3480156100b657600080fd5b506100d06100c5366004610265565b505060005492915050565b6040519081526020015b60405180910390f35b3480156100ef57600080fd5b506100d060005481565b34801561010557600080fd5b50604051600081526020016100da565b34801561012157600080fd5b506101386101303660046102ea565b600192915050565b60405190151581526020016100da565b34801561015457600080fd5b506101386101633660046102d1565b60016020526000908152604090205460ff1681565b6101848484848461018a565b50505050565b60018060006101ce85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061021192505050565b8152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905550505050565b805160209091012090565b60008083601f84011261022e57600080fd5b50813567ffffffffffffffff81111561024657600080fd5b60208301915083602082850101111561025e57600080fd5b9250929050565b6000806000806040858703121561027b57600080fd5b843567ffffffffffffffff8082111561029357600080fd5b61029f8883890161021c565b909650945060208701359150808211156102b857600080fd5b506102c58782880161021c565b95989497509550505050565b6000602082840312156102e357600080fd5b5035919050565b600080602083850312156102fd57600080fd5b823567ffffffffffffffff81111561031457600080fd5b6103208582860161021c565b9096909550935050505056fea2646970667358221220966b41624638b12584196c6396ca158773618c68810703c680d9750ca31be96364736f6c6343000813003360806040526000805461ffff191661010617905534801561001f57600080fd5b506101f68061002f6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80636465e69f14610046578063951a291f1461006a578063f7e83aee146100b1575b600080fd5b6000546100539060ff1681565b60405160ff90911681526020015b60405180910390f35b6100af6100783660046100e2565b60008054911515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909216919091179055565b005b6100d26100bf366004610154565b5050600054610100900460ff1692915050565b6040519015158152602001610061565b6000602082840312156100f457600080fd5b8135801515811461010457600080fd5b9392505050565b60008083601f84011261011d57600080fd5b50813567ffffffffffffffff81111561013557600080fd5b60208301915083602082850101111561014d57600080fd5b9250929050565b6000806000806040858703121561016a57600080fd5b843567ffffffffffffffff8082111561018257600080fd5b61018e8883890161010b565b909650945060208701359150808211156101a757600080fd5b506101b48782880161010b565b9598949750955050505056fea2646970667358221220631a95aa4de39aac095a71768cc009f6ef014b4428c9dfa3495697b5cacfa07464736f6c63430008130033";
95
121
  const isSuperArgs = (xs) => xs.length > 1;
96
122
  export class MockHyperlaneEnvironment__factory extends ContractFactory {
97
123
  constructor(...args) {
@@ -1 +1 @@
1
- {"version":3,"file":"MockHyperlaneEnvironment__factory.js","sourceRoot":"","sources":["../../../../types/factories/contracts/mock/MockHyperlaneEnvironment__factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MockHyperlaneEnvironment__factory.js","sourceRoot":"","sources":["../../../../types/factories/contracts/mock/MockHyperlaneEnvironment__factory.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ export declare class MockMailbox__factory extends ContractFactory {
12
12
  }): TransactionRequest;
13
13
  attach(address: string): MockMailbox;
14
14
  connect(signer: Signer): MockMailbox__factory;
15
- static readonly bytecode = "0x60c0604052606b80546001600160401b03191690553480156200002157600080fd5b50604051620031b1380380620031b1833981016040819052620000449162000248565b4360805263ffffffff811660a05260405160009062000063906200022c565b604051809103906000f08015801562000080573d6000803e3d6000fd5b50606780546001600160a01b0319166001600160a01b038316179055604051909150600090620000b0906200023a565b604051809103906000f080158015620000cd573d6000803e3d6000fd5b50606880546001600160a01b0383166001600160a01b031991821681179092556069805490911690911790559050620001063362000119565b620001106200016b565b50505062000277565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1615620001d85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146200022a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6102258062002c0683390190565b6103868062002e2b83390190565b6000602082840312156200025b57600080fd5b815163ffffffff811681146200027057600080fd5b9392505050565b60805160a05161295b620002ab6000396000818161050501528181610c950152611981015260006104d1015261295b6000f3fe6080604052600436106101fe5760003560e01c80638d3638f41161011d578063d6d08a09116100b0578063f794687a1161007f578063f8c8765e11610064578063f8c8765e14610750578063fa31de0114610770578063ffa1ad741461078357600080fd5b8063f794687a14610710578063f7ccd3211461073057600080fd5b8063d6d08a0914610644578063e495f1d414610671578063e70f48ac146106d0578063f2fde38b146106f057600080fd5b80639c42bd18116100ec5780639c42bd181461059f578063a3b4919f146105bf578063affed0e014610602578063d12164e41461061f57600080fd5b80638d3638f4146104f35780638da5cb5b1461052757806392d28b3d1461055257806399b048091461057f57600080fd5b806359b3f6e0116101955780637c39d130116101645780637c39d1301461045a57806381d2ea951461046d5780638209d3121461048d57806382ea7bfe146104bf57600080fd5b806359b3f6e01461035f5780635d1fe5a9146103d55780636e5f516e14610418578063715018a61461044557600080fd5b80631605c306116101d15780631605c306146102c55780633288990c146102da5780633d1250b7146102fa57806348aee8d41461034c57600080fd5b806307a2fda11461020357806310b83dc01461026c578063134fbb4f1461028d5780631426b7f4146102a3575b600080fd5b34801561020f57600080fd5b5061025061021e366004611fb3565b6000908152606a602052604090205474010000000000000000000000000000000000000000900465ffffffffffff1690565b60405165ffffffffffff90911681526020015b60405180910390f35b61027f61027a366004612049565b6107aa565b604051908152602001610263565b34801561029957600080fd5b5061027f60665481565b3480156102af57600080fd5b506102c36102be3660046120e7565b6108fa565b005b3480156102d157600080fd5b506102c3610a15565b3480156102e657600080fd5b506102c36102f5366004612104565b610b6f565b34801561030657600080fd5b506068546103279073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610263565b61027f61035a366004612146565b610bcb565b34801561036b57600080fd5b506102c361037a3660046121d0565b63ffffffff919091166000908152606c6020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b3480156103e157600080fd5b506103276103f0366004611fb3565b6000908152606a602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b34801561042457600080fd5b506067546103279073ffffffffffffffffffffffffffffffffffffffff1681565b34801561045157600080fd5b506102c3610c09565b6102c3610468366004612207565b610c1d565b34801561047957600080fd5b5061027f610488366004612049565b6110bf565b34801561049957600080fd5b50606b546104aa9063ffffffff1681565b60405163ffffffff9091168152602001610263565b3480156104cb57600080fd5b5061027f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ff57600080fd5b506104aa7f000000000000000000000000000000000000000000000000000000000000000081565b34801561053357600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610327565b34801561055e57600080fd5b5061057261056d366004611fb3565b611252565b60405161026391906122e1565b34801561058b57600080fd5b506102c361059a3660046120e7565b6112ec565b3480156105ab57600080fd5b5061027f6105ba3660046122f4565b611407565b3480156105cb57600080fd5b506103276105da366004612342565b606c6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b34801561060e57600080fd5b506065546104aa9063ffffffff1681565b34801561062b57600080fd5b50606b546104aa90640100000000900463ffffffff1681565b34801561065057600080fd5b506069546103279073ffffffffffffffffffffffffffffffffffffffff1681565b34801561067d57600080fd5b506106c061068c366004611fb3565b6000908152606a602052604090205474010000000000000000000000000000000000000000900465ffffffffffff16151590565b6040519015158152602001610263565b3480156106dc57600080fd5b506103276106eb3660046120e7565b611443565b3480156106fc57600080fd5b506102c361070b3660046120e7565b61157a565b34801561071c57600080fd5b506102c361072b3660046120e7565b611631565b34801561073c57600080fd5b5061027f61074b366004612146565b61174c565b34801561075c57600080fd5b506102c361076b36600461235d565b61177f565b61027f61077e3660046122f4565b611939565b34801561078f57600080fd5b50610798600381565b60405160ff9091168152602001610263565b6000806107b98989898961196c565b905060006107cc8a8a8a8a8a8a8a6119aa565b63ffffffff8b166000908152606c602052604090205490915073ffffffffffffffffffffffffffffffffffffffff1680610867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d697373696e672072656d6f7465206d61696c626f780000000000000000000060448201526064015b60405180910390fd5b6040517f3288990c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690633288990c906108b99086906004016122e1565b600060405180830381600087803b1580156108d357600080fd5b505af11580156108e7573d6000803e3d6000fd5b50939d9c50505050505050505050505050565b610902611c7e565b73ffffffffffffffffffffffffffffffffffffffff81163b6109a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4d61696c626f783a20726571756972656420686f6f6b206e6f7420636f6e747260448201527f6163740000000000000000000000000000000000000000000000000000000000606482015260840161085e565b606980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f329ec8e2438a73828ecf31a6568d7a91d7b1d79e342b0692914fd053d1a002b190600090a250565b606b54640100000000900463ffffffff166000908152606d602052604081208054610a3f906123b9565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6b906123b9565b8015610ab85780601f10610a8d57610100808354040283529160200191610ab8565b820191906000526020600020905b815481529060010190602001808311610a9b57829003601f168201915b50506040517f7c39d1300000000000000000000000000000000000000000000000000000000081529394503093637c39d1309350610afc925085915060040161240c565b600060405180830381600087803b158015610b1657600080fd5b505af1158015610b2a573d6000803e3d6000fd5b5050606b8054640100000000900463ffffffff16925090506004610b4d8361245c565b91906101000a81548163ffffffff021916908363ffffffff1602179055505050565b606b5463ffffffff166000908152606d60205260409020610b918284836124fd565b50606b805463ffffffff16906000610ba88361245c565b91906101000a81548163ffffffff021916908363ffffffff160217905550505050565b6000610bfe878787878787606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166107aa565b979650505050505050565b610c11611c7e565b610c1b6000611cff565b565b6003610c298383611d76565b60ff1614610c93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4d61696c626f783a206261642076657273696f6e000000000000000000000000604482015260640161085e565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff16610cc48383611d9a565b63ffffffff1614610d31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4d61696c626f783a20756e65787065637465642064657374696e6174696f6e00604482015260640161085e565b6000610d7283838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611dbd92505050565b6000818152606a602052604090205490915074010000000000000000000000000000000000000000900465ffffffffffff1615610e0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4d61696c626f783a20616c72656164792064656c697665726564000000000000604482015260640161085e565b6000610e178484611dc8565b90506000610e2482611443565b60408051808201825233815265ffffffffffff43811660208084019182526000898152606a9091529390932091518254935190911674010000000000000000000000000000000000000000027fffffffffffff000000000000000000000000000000000000000000000000000090931673ffffffffffffffffffffffffffffffffffffffff918216179290921790559091508216610ec28686611de1565b610ecc8787611dfa565b63ffffffff167f0d381c2a574ae8f04e213db7cfb4df8df712cdbd427d9868ffef380660ca657460405160405180910390a460405183907f1cae38cdd3d3919489272725a5ae62a4f48b2989b0dae843d3c279fee18073a990600090a26040517ff7e83aee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063f7e83aee90610f81908a908a908a908a90600401612660565b6020604051808303816000875af1158015610fa0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc49190612687565b61102a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4d61696c626f783a2049534d20766572696669636174696f6e206661696c6564604482015260640161085e565b8173ffffffffffffffffffffffffffffffffffffffff166356d5d475346110518888611dfa565b61105b8989611de1565b6110658a8a611e0a565b6040518663ffffffff1660e01b815260040161108494939291906126a9565b6000604051808303818588803b15801561109d57600080fd5b505af11580156110b1573d6000803e3d6000fd5b505050505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82166110f85760685473ffffffffffffffffffffffffffffffffffffffff1691505b60006111068989898961196c565b6040517faaccd23000000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff84169063aaccd2309061115f908890889086906004016126d9565b602060405180830381865afa15801561117c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a091906126ff565b6069546040517faaccd23000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063aaccd230906111fa908990899087906004016126d9565b602060405180830381865afa158015611217573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123b91906126ff565b6112459190612718565b9998505050505050505050565b606d602052600090815260409020805461126b906123b9565b80601f0160208091040260200160405190810160405280929190818152602001828054611297906123b9565b80156112e45780601f106112b9576101008083540402835291602001916112e4565b820191906000526020600020905b8154815290600101906020018083116112c757829003601f168201915b505050505081565b6112f4611c7e565b73ffffffffffffffffffffffffffffffffffffffff81163b611398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4d61696c626f783a2064656661756c7420686f6f6b206e6f7420636f6e74726160448201527f6374000000000000000000000000000000000000000000000000000000000000606482015260840161085e565b606880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f65a63e5066ee2fcdf9d32a7f1bf7ce71c76066f19d0609dddccd334ab87237d790600090a250565b600061143a8585858561141c8680838561272b565b60685473ffffffffffffffffffffffffffffffffffffffff166110bf565b95945050505050565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fde523cf30000000000000000000000000000000000000000000000000000000017905290516000918291829173ffffffffffffffffffffffffffffffffffffffff8616916114c49190612755565b600060405180830381855afa9150503d80600081146114ff576040519150601f19603f3d011682016040523d82523d6000602084013e611504565b606091505b50915091508180156115165750805115155b15611559576000818060200190518101906115319190612771565b905073ffffffffffffffffffffffffffffffffffffffff81161561155757949350505050565b505b505060675473ffffffffffffffffffffffffffffffffffffffff1692915050565b611582611c7e565b73ffffffffffffffffffffffffffffffffffffffff8116611625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161085e565b61162e81611cff565b50565b611639611c7e565b73ffffffffffffffffffffffffffffffffffffffff81163b6116dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f783a2064656661756c742049534d206e6f7420636f6e7472616360448201527f7400000000000000000000000000000000000000000000000000000000000000606482015260840161085e565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fa76ad0adbf45318f8633aa0210f711273d50fbb6fef76ed95bbae97082c75daa90600090a250565b6000610bfe878787878787606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166110bf565b600054610100900460ff161580801561179f5750600054600160ff909116105b806117b95750303b1580156117b9575060005460ff166001145b611845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161085e565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156118a357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6118ab611e26565b6118b484611631565b6118bd836112ec565b6118c6826108fa565b6118cf8561157a565b801561193257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600061143a8585858561194e8680838561272b565b60685473ffffffffffffffffffffffffffffffffffffffff166107aa565b60655460609061143a9060039063ffffffff167f00000000000000000000000000000000000000000000000000000000000000003389898989611ec5565b600073ffffffffffffffffffffffffffffffffffffffff82166119e35760685473ffffffffffffffffffffffffffffffffffffffff1691505b60006119f18989898961196c565b80516020820120606681905560658054929350909160019190600090611a1e90849063ffffffff1661278e565b92506101000a81548163ffffffff021916908363ffffffff160217905550888a63ffffffff163373ffffffffffffffffffffffffffffffffffffffff167f769f711d20c679153d382254f59892613b58a97cc876b249134ac25c80f9c81485604051611a8a91906122e1565b60405180910390a460405181907f788dbc1b7152732178210e7f4d9d010ef016f9eafbe66786bd7169f56e0c353a90600090a26069546040517faaccd23000000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff169063aaccd23090611b18908a908a9088906004016126d9565b602060405180830381865afa158015611b35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5991906126ff565b905080341015611b665750345b6069546040517f086011b900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063086011b9908390611bc2908b908b9089906004016126d9565b6000604051808303818588803b158015611bdb57600080fd5b505af1158015611bef573d6000803e3d6000fd5b50505050508473ffffffffffffffffffffffffffffffffffffffff1663086011b98234611c1c91906127b2565b8989876040518563ffffffff1660e01b8152600401611c3d939291906126d9565b6000604051808303818588803b158015611c5657600080fd5b505af1158015611c6a573d6000803e3d6000fd5b50949e9d5050505050505050505050505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610c1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161085e565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000611d85600182848661272b565b611d8e916127c5565b60f81c90505b92915050565b6000611daa602d6029848661272b565b611db39161280d565b60e01c9392505050565b805160209091012090565b6000611dda611dd78484611f03565b90565b9392505050565b6000611df160296009848661272b565b611dda91612853565b6000611daa60096005848661272b565b366000611e1a83604d818761272b565b915091505b9250929050565b600054610100900460ff16611ebd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161085e565b610c1b611f13565b60608888888888888888604051602001611ee698979695949392919061288f565b604051602081830303815290604052905098975050505050505050565b6000611df1604d602d848661272b565b600054610100900460ff16611faa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161085e565b610c1b33611cff565b600060208284031215611fc557600080fd5b5035919050565b803563ffffffff81168114611fe057600080fd5b919050565b60008083601f840112611ff757600080fd5b50813567ffffffffffffffff81111561200f57600080fd5b602083019150836020828501011115611e1f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8116811461162e57600080fd5b600080600080600080600060a0888a03121561206457600080fd5b61206d88611fcc565b965060208801359550604088013567ffffffffffffffff8082111561209157600080fd5b61209d8b838c01611fe5565b909750955060608a01359150808211156120b657600080fd5b506120c38a828b01611fe5565b90945092505060808801356120d781612027565b8091505092959891949750929550565b6000602082840312156120f957600080fd5b8135611dda81612027565b6000806020838503121561211757600080fd5b823567ffffffffffffffff81111561212e57600080fd5b61213a85828601611fe5565b90969095509350505050565b6000806000806000806080878903121561215f57600080fd5b61216887611fcc565b955060208701359450604087013567ffffffffffffffff8082111561218c57600080fd5b6121988a838b01611fe5565b909650945060608901359150808211156121b157600080fd5b506121be89828a01611fe5565b979a9699509497509295939492505050565b600080604083850312156121e357600080fd5b6121ec83611fcc565b915060208301356121fc81612027565b809150509250929050565b6000806000806040858703121561221d57600080fd5b843567ffffffffffffffff8082111561223557600080fd5b61224188838901611fe5565b9096509450602087013591508082111561225a57600080fd5b5061226787828801611fe5565b95989497509550505050565b60005b8381101561228e578181015183820152602001612276565b50506000910152565b600081518084526122af816020860160208601612273565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611dda6020830184612297565b6000806000806060858703121561230a57600080fd5b61231385611fcc565b935060208501359250604085013567ffffffffffffffff81111561233657600080fd5b61226787828801611fe5565b60006020828403121561235457600080fd5b611dda82611fcc565b6000806000806080858703121561237357600080fd5b843561237e81612027565b9350602085013561238e81612027565b9250604085013561239e81612027565b915060608501356123ae81612027565b939692955090935050565b600181811c908216806123cd57607f821691505b602082108103612406577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6040815260006040820152606060208201526000611dda6060830184612297565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600063ffffffff8083168181036124755761247561242d565b6001019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f8211156124f857600081815260208120601f850160051c810160208610156124d55750805b601f850160051c820191505b818110156124f4578281556001016124e1565b5050505b505050565b67ffffffffffffffff8311156125155761251561247f565b6125298361252383546123b9565b836124ae565b6000601f84116001811461257b57600085156125455750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355611932565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156125ca57868501358255602094850194600190920191016125aa565b5086821015612605577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b604081526000612674604083018688612617565b8281036020840152610bfe818587612617565b60006020828403121561269957600080fd5b81518015158114611dda57600080fd5b63ffffffff851681528360208201526060604082015260006126cf606083018486612617565b9695505050505050565b6040815260006126ed604083018587612617565b82810360208401526126cf8185612297565b60006020828403121561271157600080fd5b5051919050565b80820180821115611d9457611d9461242d565b6000808585111561273b57600080fd5b8386111561274857600080fd5b5050820193919092039150565b60008251612767818460208701612273565b9190910192915050565b60006020828403121561278357600080fd5b8151611dda81612027565b63ffffffff8181168382160190808211156127ab576127ab61242d565b5092915050565b81810381811115611d9457611d9461242d565b7fff0000000000000000000000000000000000000000000000000000000000000081358181169160018510156128055780818660010360031b1b83161692505b505092915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156128055760049490940360031b84901b1690921692915050565b80356020831015611d94577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fff000000000000000000000000000000000000000000000000000000000000008960f81b16815260007fffffffff00000000000000000000000000000000000000000000000000000000808a60e01b166001840152808960e01b166005840152876009840152808760e01b1660298401525084602d8301528284604d8401375060009101604d0190815297965050505050505056fea2646970667358221220c443eb50bff970ca1fa6f3273505843aaa848e5f0039c48fcdad51699ce90c2764736f6c6343000813003360806040526000805461ffff191661010617905534801561001f57600080fd5b506101f68061002f6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80636465e69f14610046578063951a291f1461006a578063f7e83aee146100b1575b600080fd5b6000546100539060ff1681565b60405160ff90911681526020015b60405180910390f35b6100af6100783660046100e2565b60008054911515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909216919091179055565b005b6100d26100bf366004610154565b5050600054610100900460ff1692915050565b6040519015158152602001610061565b6000602082840312156100f457600080fd5b8135801515811461010457600080fd5b9392505050565b60008083601f84011261011d57600080fd5b50813567ffffffffffffffff81111561013557600080fd5b60208301915083602082850101111561014d57600080fd5b9250929050565b6000806000806040858703121561016a57600080fd5b843567ffffffffffffffff8082111561018257600080fd5b61018e8883890161010b565b909650945060208701359150808211156101a757600080fd5b506101b48782880161010b565b9598949750955050505056fea26469706673582212204da148e3ce90d103f9beabdf4cf9efc4884b0388e7ede5c027435423af1f91dd64736f6c6343000813003360806040526000805534801561001457600080fd5b50610362806100246000396000f3fe6080604052600436106100705760003560e01c8063ddca3f431161004e578063ddca3f43146100e3578063e445e7dd146100f9578063e5320bb914610115578063f667ee911461014857600080fd5b8063086011b91461007557806369fe0e2d1461008a578063aaccd230146100aa575b600080fd5b610088610083366004610265565b610178565b005b34801561009657600080fd5b506100886100a53660046102d1565b600055565b3480156100b657600080fd5b506100d06100c5366004610265565b505060005492915050565b6040519081526020015b60405180910390f35b3480156100ef57600080fd5b506100d060005481565b34801561010557600080fd5b50604051600081526020016100da565b34801561012157600080fd5b506101386101303660046102ea565b600192915050565b60405190151581526020016100da565b34801561015457600080fd5b506101386101633660046102d1565b60016020526000908152604090205460ff1681565b6101848484848461018a565b50505050565b60018060006101ce85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061021192505050565b8152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905550505050565b805160209091012090565b60008083601f84011261022e57600080fd5b50813567ffffffffffffffff81111561024657600080fd5b60208301915083602082850101111561025e57600080fd5b9250929050565b6000806000806040858703121561027b57600080fd5b843567ffffffffffffffff8082111561029357600080fd5b61029f8883890161021c565b909650945060208701359150808211156102b857600080fd5b506102c58782880161021c565b95989497509550505050565b6000602082840312156102e357600080fd5b5035919050565b600080602083850312156102fd57600080fd5b823567ffffffffffffffff81111561031457600080fd5b6103208582860161021c565b9096909550935050505056fea26469706673582212209af169dec748b5fceb5877829982a286dd848d5c28d734f4f998bf7cd479a32b64736f6c63430008130033";
15
+ static readonly bytecode = "0x60c0604052606b80546001600160401b03191690553480156200002157600080fd5b50604051620031b1380380620031b1833981016040819052620000449162000248565b4360805263ffffffff811660a05260405160009062000063906200022c565b604051809103906000f08015801562000080573d6000803e3d6000fd5b50606780546001600160a01b0319166001600160a01b038316179055604051909150600090620000b0906200023a565b604051809103906000f080158015620000cd573d6000803e3d6000fd5b50606880546001600160a01b0383166001600160a01b031991821681179092556069805490911690911790559050620001063362000119565b620001106200016b565b50505062000277565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1615620001d85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146200022a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6102258062002c0683390190565b6103868062002e2b83390190565b6000602082840312156200025b57600080fd5b815163ffffffff811681146200027057600080fd5b9392505050565b60805160a05161295b620002ab6000396000818161050501528181610c950152611981015260006104d1015261295b6000f3fe6080604052600436106101fe5760003560e01c80638d3638f41161011d578063d6d08a09116100b0578063f794687a1161007f578063f8c8765e11610064578063f8c8765e14610750578063fa31de0114610770578063ffa1ad741461078357600080fd5b8063f794687a14610710578063f7ccd3211461073057600080fd5b8063d6d08a0914610644578063e495f1d414610671578063e70f48ac146106d0578063f2fde38b146106f057600080fd5b80639c42bd18116100ec5780639c42bd181461059f578063a3b4919f146105bf578063affed0e014610602578063d12164e41461061f57600080fd5b80638d3638f4146104f35780638da5cb5b1461052757806392d28b3d1461055257806399b048091461057f57600080fd5b806359b3f6e0116101955780637c39d130116101645780637c39d1301461045a57806381d2ea951461046d5780638209d3121461048d57806382ea7bfe146104bf57600080fd5b806359b3f6e01461035f5780635d1fe5a9146103d55780636e5f516e14610418578063715018a61461044557600080fd5b80631605c306116101d15780631605c306146102c55780633288990c146102da5780633d1250b7146102fa57806348aee8d41461034c57600080fd5b806307a2fda11461020357806310b83dc01461026c578063134fbb4f1461028d5780631426b7f4146102a3575b600080fd5b34801561020f57600080fd5b5061025061021e366004611fb3565b6000908152606a602052604090205474010000000000000000000000000000000000000000900465ffffffffffff1690565b60405165ffffffffffff90911681526020015b60405180910390f35b61027f61027a366004612049565b6107aa565b604051908152602001610263565b34801561029957600080fd5b5061027f60665481565b3480156102af57600080fd5b506102c36102be3660046120e7565b6108fa565b005b3480156102d157600080fd5b506102c3610a15565b3480156102e657600080fd5b506102c36102f5366004612104565b610b6f565b34801561030657600080fd5b506068546103279073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610263565b61027f61035a366004612146565b610bcb565b34801561036b57600080fd5b506102c361037a3660046121d0565b63ffffffff919091166000908152606c6020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b3480156103e157600080fd5b506103276103f0366004611fb3565b6000908152606a602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b34801561042457600080fd5b506067546103279073ffffffffffffffffffffffffffffffffffffffff1681565b34801561045157600080fd5b506102c3610c09565b6102c3610468366004612207565b610c1d565b34801561047957600080fd5b5061027f610488366004612049565b6110bf565b34801561049957600080fd5b50606b546104aa9063ffffffff1681565b60405163ffffffff9091168152602001610263565b3480156104cb57600080fd5b5061027f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ff57600080fd5b506104aa7f000000000000000000000000000000000000000000000000000000000000000081565b34801561053357600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610327565b34801561055e57600080fd5b5061057261056d366004611fb3565b611252565b60405161026391906122e1565b34801561058b57600080fd5b506102c361059a3660046120e7565b6112ec565b3480156105ab57600080fd5b5061027f6105ba3660046122f4565b611407565b3480156105cb57600080fd5b506103276105da366004612342565b606c6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b34801561060e57600080fd5b506065546104aa9063ffffffff1681565b34801561062b57600080fd5b50606b546104aa90640100000000900463ffffffff1681565b34801561065057600080fd5b506069546103279073ffffffffffffffffffffffffffffffffffffffff1681565b34801561067d57600080fd5b506106c061068c366004611fb3565b6000908152606a602052604090205474010000000000000000000000000000000000000000900465ffffffffffff16151590565b6040519015158152602001610263565b3480156106dc57600080fd5b506103276106eb3660046120e7565b611443565b3480156106fc57600080fd5b506102c361070b3660046120e7565b61157a565b34801561071c57600080fd5b506102c361072b3660046120e7565b611631565b34801561073c57600080fd5b5061027f61074b366004612146565b61174c565b34801561075c57600080fd5b506102c361076b36600461235d565b61177f565b61027f61077e3660046122f4565b611939565b34801561078f57600080fd5b50610798600381565b60405160ff9091168152602001610263565b6000806107b98989898961196c565b905060006107cc8a8a8a8a8a8a8a6119aa565b63ffffffff8b166000908152606c602052604090205490915073ffffffffffffffffffffffffffffffffffffffff1680610867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d697373696e672072656d6f7465206d61696c626f780000000000000000000060448201526064015b60405180910390fd5b6040517f3288990c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690633288990c906108b99086906004016122e1565b600060405180830381600087803b1580156108d357600080fd5b505af11580156108e7573d6000803e3d6000fd5b50939d9c50505050505050505050505050565b610902611c7e565b73ffffffffffffffffffffffffffffffffffffffff81163b6109a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4d61696c626f783a20726571756972656420686f6f6b206e6f7420636f6e747260448201527f6163740000000000000000000000000000000000000000000000000000000000606482015260840161085e565b606980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f329ec8e2438a73828ecf31a6568d7a91d7b1d79e342b0692914fd053d1a002b190600090a250565b606b54640100000000900463ffffffff166000908152606d602052604081208054610a3f906123b9565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6b906123b9565b8015610ab85780601f10610a8d57610100808354040283529160200191610ab8565b820191906000526020600020905b815481529060010190602001808311610a9b57829003601f168201915b50506040517f7c39d1300000000000000000000000000000000000000000000000000000000081529394503093637c39d1309350610afc925085915060040161240c565b600060405180830381600087803b158015610b1657600080fd5b505af1158015610b2a573d6000803e3d6000fd5b5050606b8054640100000000900463ffffffff16925090506004610b4d8361245c565b91906101000a81548163ffffffff021916908363ffffffff1602179055505050565b606b5463ffffffff166000908152606d60205260409020610b918284836124fd565b50606b805463ffffffff16906000610ba88361245c565b91906101000a81548163ffffffff021916908363ffffffff160217905550505050565b6000610bfe878787878787606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166107aa565b979650505050505050565b610c11611c7e565b610c1b6000611cff565b565b6003610c298383611d76565b60ff1614610c93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4d61696c626f783a206261642076657273696f6e000000000000000000000000604482015260640161085e565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff16610cc48383611d9a565b63ffffffff1614610d31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4d61696c626f783a20756e65787065637465642064657374696e6174696f6e00604482015260640161085e565b6000610d7283838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611dbd92505050565b6000818152606a602052604090205490915074010000000000000000000000000000000000000000900465ffffffffffff1615610e0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4d61696c626f783a20616c72656164792064656c697665726564000000000000604482015260640161085e565b6000610e178484611dc8565b90506000610e2482611443565b60408051808201825233815265ffffffffffff43811660208084019182526000898152606a9091529390932091518254935190911674010000000000000000000000000000000000000000027fffffffffffff000000000000000000000000000000000000000000000000000090931673ffffffffffffffffffffffffffffffffffffffff918216179290921790559091508216610ec28686611de1565b610ecc8787611dfa565b63ffffffff167f0d381c2a574ae8f04e213db7cfb4df8df712cdbd427d9868ffef380660ca657460405160405180910390a460405183907f1cae38cdd3d3919489272725a5ae62a4f48b2989b0dae843d3c279fee18073a990600090a26040517ff7e83aee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063f7e83aee90610f81908a908a908a908a90600401612660565b6020604051808303816000875af1158015610fa0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc49190612687565b61102a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4d61696c626f783a2049534d20766572696669636174696f6e206661696c6564604482015260640161085e565b8173ffffffffffffffffffffffffffffffffffffffff166356d5d475346110518888611dfa565b61105b8989611de1565b6110658a8a611e0a565b6040518663ffffffff1660e01b815260040161108494939291906126a9565b6000604051808303818588803b15801561109d57600080fd5b505af11580156110b1573d6000803e3d6000fd5b505050505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82166110f85760685473ffffffffffffffffffffffffffffffffffffffff1691505b60006111068989898961196c565b6040517faaccd23000000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff84169063aaccd2309061115f908890889086906004016126d9565b602060405180830381865afa15801561117c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a091906126ff565b6069546040517faaccd23000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063aaccd230906111fa908990899087906004016126d9565b602060405180830381865afa158015611217573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123b91906126ff565b6112459190612718565b9998505050505050505050565b606d602052600090815260409020805461126b906123b9565b80601f0160208091040260200160405190810160405280929190818152602001828054611297906123b9565b80156112e45780601f106112b9576101008083540402835291602001916112e4565b820191906000526020600020905b8154815290600101906020018083116112c757829003601f168201915b505050505081565b6112f4611c7e565b73ffffffffffffffffffffffffffffffffffffffff81163b611398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4d61696c626f783a2064656661756c7420686f6f6b206e6f7420636f6e74726160448201527f6374000000000000000000000000000000000000000000000000000000000000606482015260840161085e565b606880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f65a63e5066ee2fcdf9d32a7f1bf7ce71c76066f19d0609dddccd334ab87237d790600090a250565b600061143a8585858561141c8680838561272b565b60685473ffffffffffffffffffffffffffffffffffffffff166110bf565b95945050505050565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fde523cf30000000000000000000000000000000000000000000000000000000017905290516000918291829173ffffffffffffffffffffffffffffffffffffffff8616916114c49190612755565b600060405180830381855afa9150503d80600081146114ff576040519150601f19603f3d011682016040523d82523d6000602084013e611504565b606091505b50915091508180156115165750805115155b15611559576000818060200190518101906115319190612771565b905073ffffffffffffffffffffffffffffffffffffffff81161561155757949350505050565b505b505060675473ffffffffffffffffffffffffffffffffffffffff1692915050565b611582611c7e565b73ffffffffffffffffffffffffffffffffffffffff8116611625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161085e565b61162e81611cff565b50565b611639611c7e565b73ffffffffffffffffffffffffffffffffffffffff81163b6116dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f783a2064656661756c742049534d206e6f7420636f6e7472616360448201527f7400000000000000000000000000000000000000000000000000000000000000606482015260840161085e565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fa76ad0adbf45318f8633aa0210f711273d50fbb6fef76ed95bbae97082c75daa90600090a250565b6000610bfe878787878787606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166110bf565b600054610100900460ff161580801561179f5750600054600160ff909116105b806117b95750303b1580156117b9575060005460ff166001145b611845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161085e565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156118a357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6118ab611e26565b6118b484611631565b6118bd836112ec565b6118c6826108fa565b6118cf8561157a565b801561193257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600061143a8585858561194e8680838561272b565b60685473ffffffffffffffffffffffffffffffffffffffff166107aa565b60655460609061143a9060039063ffffffff167f00000000000000000000000000000000000000000000000000000000000000003389898989611ec5565b600073ffffffffffffffffffffffffffffffffffffffff82166119e35760685473ffffffffffffffffffffffffffffffffffffffff1691505b60006119f18989898961196c565b80516020820120606681905560658054929350909160019190600090611a1e90849063ffffffff1661278e565b92506101000a81548163ffffffff021916908363ffffffff160217905550888a63ffffffff163373ffffffffffffffffffffffffffffffffffffffff167f769f711d20c679153d382254f59892613b58a97cc876b249134ac25c80f9c81485604051611a8a91906122e1565b60405180910390a460405181907f788dbc1b7152732178210e7f4d9d010ef016f9eafbe66786bd7169f56e0c353a90600090a26069546040517faaccd23000000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff169063aaccd23090611b18908a908a9088906004016126d9565b602060405180830381865afa158015611b35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5991906126ff565b905080341015611b665750345b6069546040517f086011b900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063086011b9908390611bc2908b908b9089906004016126d9565b6000604051808303818588803b158015611bdb57600080fd5b505af1158015611bef573d6000803e3d6000fd5b50505050508473ffffffffffffffffffffffffffffffffffffffff1663086011b98234611c1c91906127b2565b8989876040518563ffffffff1660e01b8152600401611c3d939291906126d9565b6000604051808303818588803b158015611c5657600080fd5b505af1158015611c6a573d6000803e3d6000fd5b50949e9d5050505050505050505050505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610c1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161085e565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000611d85600182848661272b565b611d8e916127c5565b60f81c90505b92915050565b6000611daa602d6029848661272b565b611db39161280d565b60e01c9392505050565b805160209091012090565b6000611dda611dd78484611f03565b90565b9392505050565b6000611df160296009848661272b565b611dda91612853565b6000611daa60096005848661272b565b366000611e1a83604d818761272b565b915091505b9250929050565b600054610100900460ff16611ebd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161085e565b610c1b611f13565b60608888888888888888604051602001611ee698979695949392919061288f565b604051602081830303815290604052905098975050505050505050565b6000611df1604d602d848661272b565b600054610100900460ff16611faa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161085e565b610c1b33611cff565b600060208284031215611fc557600080fd5b5035919050565b803563ffffffff81168114611fe057600080fd5b919050565b60008083601f840112611ff757600080fd5b50813567ffffffffffffffff81111561200f57600080fd5b602083019150836020828501011115611e1f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8116811461162e57600080fd5b600080600080600080600060a0888a03121561206457600080fd5b61206d88611fcc565b965060208801359550604088013567ffffffffffffffff8082111561209157600080fd5b61209d8b838c01611fe5565b909750955060608a01359150808211156120b657600080fd5b506120c38a828b01611fe5565b90945092505060808801356120d781612027565b8091505092959891949750929550565b6000602082840312156120f957600080fd5b8135611dda81612027565b6000806020838503121561211757600080fd5b823567ffffffffffffffff81111561212e57600080fd5b61213a85828601611fe5565b90969095509350505050565b6000806000806000806080878903121561215f57600080fd5b61216887611fcc565b955060208701359450604087013567ffffffffffffffff8082111561218c57600080fd5b6121988a838b01611fe5565b909650945060608901359150808211156121b157600080fd5b506121be89828a01611fe5565b979a9699509497509295939492505050565b600080604083850312156121e357600080fd5b6121ec83611fcc565b915060208301356121fc81612027565b809150509250929050565b6000806000806040858703121561221d57600080fd5b843567ffffffffffffffff8082111561223557600080fd5b61224188838901611fe5565b9096509450602087013591508082111561225a57600080fd5b5061226787828801611fe5565b95989497509550505050565b60005b8381101561228e578181015183820152602001612276565b50506000910152565b600081518084526122af816020860160208601612273565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611dda6020830184612297565b6000806000806060858703121561230a57600080fd5b61231385611fcc565b935060208501359250604085013567ffffffffffffffff81111561233657600080fd5b61226787828801611fe5565b60006020828403121561235457600080fd5b611dda82611fcc565b6000806000806080858703121561237357600080fd5b843561237e81612027565b9350602085013561238e81612027565b9250604085013561239e81612027565b915060608501356123ae81612027565b939692955090935050565b600181811c908216806123cd57607f821691505b602082108103612406577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6040815260006040820152606060208201526000611dda6060830184612297565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600063ffffffff8083168181036124755761247561242d565b6001019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f8211156124f857600081815260208120601f850160051c810160208610156124d55750805b601f850160051c820191505b818110156124f4578281556001016124e1565b5050505b505050565b67ffffffffffffffff8311156125155761251561247f565b6125298361252383546123b9565b836124ae565b6000601f84116001811461257b57600085156125455750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355611932565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156125ca57868501358255602094850194600190920191016125aa565b5086821015612605577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b604081526000612674604083018688612617565b8281036020840152610bfe818587612617565b60006020828403121561269957600080fd5b81518015158114611dda57600080fd5b63ffffffff851681528360208201526060604082015260006126cf606083018486612617565b9695505050505050565b6040815260006126ed604083018587612617565b82810360208401526126cf8185612297565b60006020828403121561271157600080fd5b5051919050565b80820180821115611d9457611d9461242d565b6000808585111561273b57600080fd5b8386111561274857600080fd5b5050820193919092039150565b60008251612767818460208701612273565b9190910192915050565b60006020828403121561278357600080fd5b8151611dda81612027565b63ffffffff8181168382160190808211156127ab576127ab61242d565b5092915050565b81810381811115611d9457611d9461242d565b7fff0000000000000000000000000000000000000000000000000000000000000081358181169160018510156128055780818660010360031b1b83161692505b505092915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156128055760049490940360031b84901b1690921692915050565b80356020831015611d94577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fff000000000000000000000000000000000000000000000000000000000000008960f81b16815260007fffffffff00000000000000000000000000000000000000000000000000000000808a60e01b166001840152808960e01b166005840152876009840152808760e01b1660298401525084602d8301528284604d8401375060009101604d0190815297965050505050505056fea264697066735822122031353d41d3936c77282e55e458d8fe572781f84b6db109079e81970aa26422f364736f6c6343000813003360806040526000805461ffff191661010617905534801561001f57600080fd5b506101f68061002f6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80636465e69f14610046578063951a291f1461006a578063f7e83aee146100b1575b600080fd5b6000546100539060ff1681565b60405160ff90911681526020015b60405180910390f35b6100af6100783660046100e2565b60008054911515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909216919091179055565b005b6100d26100bf366004610154565b5050600054610100900460ff1692915050565b6040519015158152602001610061565b6000602082840312156100f457600080fd5b8135801515811461010457600080fd5b9392505050565b60008083601f84011261011d57600080fd5b50813567ffffffffffffffff81111561013557600080fd5b60208301915083602082850101111561014d57600080fd5b9250929050565b6000806000806040858703121561016a57600080fd5b843567ffffffffffffffff8082111561018257600080fd5b61018e8883890161010b565b909650945060208701359150808211156101a757600080fd5b506101b48782880161010b565b9598949750955050505056fea2646970667358221220631a95aa4de39aac095a71768cc009f6ef014b4428c9dfa3495697b5cacfa07464736f6c6343000813003360806040526000805534801561001457600080fd5b50610362806100246000396000f3fe6080604052600436106100705760003560e01c8063ddca3f431161004e578063ddca3f43146100e3578063e445e7dd146100f9578063e5320bb914610115578063f667ee911461014857600080fd5b8063086011b91461007557806369fe0e2d1461008a578063aaccd230146100aa575b600080fd5b610088610083366004610265565b610178565b005b34801561009657600080fd5b506100886100a53660046102d1565b600055565b3480156100b657600080fd5b506100d06100c5366004610265565b505060005492915050565b6040519081526020015b60405180910390f35b3480156100ef57600080fd5b506100d060005481565b34801561010557600080fd5b50604051600081526020016100da565b34801561012157600080fd5b506101386101303660046102ea565b600192915050565b60405190151581526020016100da565b34801561015457600080fd5b506101386101633660046102d1565b60016020526000908152604090205460ff1681565b6101848484848461018a565b50505050565b60018060006101ce85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061021192505050565b8152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905550505050565b805160209091012090565b60008083601f84011261022e57600080fd5b50813567ffffffffffffffff81111561024657600080fd5b60208301915083602082850101111561025e57600080fd5b9250929050565b6000806000806040858703121561027b57600080fd5b843567ffffffffffffffff8082111561029357600080fd5b61029f8883890161021c565b909650945060208701359150808211156102b857600080fd5b506102c58782880161021c565b95989497509550505050565b6000602082840312156102e357600080fd5b5035919050565b600080602083850312156102fd57600080fd5b823567ffffffffffffffff81111561031457600080fd5b6103208582860161021c565b9096909550935050505056fea2646970667358221220966b41624638b12584196c6396ca158773618c68810703c680d9750ca31be96364736f6c63430008130033";
16
16
  static readonly abi: readonly [{
17
17
  readonly inputs: readonly [{
18
18
  readonly internalType: "uint32";