@layerzerolabs/protocol-v2-messagelib-evm-contracts 1.2.96 → 1.2.97

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 (272) hide show
  1. package/README.md +1 -1
  2. package/artifacts/contracts/Executor.sol/Executor.json +1413 -0
  3. package/artifacts/contracts/Executor.sol/ILayerZeroEndpointV2.json +230 -0
  4. package/artifacts/contracts/ExecutorFeeLib.sol/ExecutorFeeLib.json +546 -0
  5. package/artifacts/contracts/MessageLibBase.sol/MessageLibBase.json +16 -0
  6. package/artifacts/contracts/PriceFeed.sol/PriceFeed.json +694 -0
  7. package/artifacts/contracts/ReceiveLibBaseE2.sol/ReceiveLibBaseE2.json +154 -0
  8. package/artifacts/contracts/SendLibBase.sol/SendLibBase.json +381 -0
  9. package/artifacts/contracts/SendLibBaseE2.sol/SendLibBaseE2.json +819 -0
  10. package/artifacts/contracts/SimpleReadExecutor.sol/ILayerZeroEndpointV2.json +139 -0
  11. package/artifacts/contracts/SimpleReadExecutor.sol/SimpleReadExecutor.json +260 -0
  12. package/artifacts/contracts/Treasury.sol/Treasury.json +309 -0
  13. package/artifacts/contracts/Worker.sol/Worker.json +579 -0
  14. package/artifacts/contracts/decompressor/DVNDecoder.sol/DVNDecoder.json +10 -0
  15. package/artifacts/contracts/decompressor/DVNDecompressor.sol/DVNDecompressor.json +329 -0
  16. package/artifacts/contracts/decompressor/DecompressorExtension.sol/DecompressorExtension.json +92 -0
  17. package/artifacts/contracts/decompressor/ExecutorDecoder.sol/ExecutorDecoder.json +10 -0
  18. package/artifacts/contracts/decompressor/ExecutorDecompressor.sol/ExecutorDecompressor.json +220 -0
  19. package/artifacts/contracts/interfaces/IExecutor.sol/IExecutor.json +487 -0
  20. package/artifacts/contracts/interfaces/IExecutorFeeLib.sol/IExecutorFeeLib.json +410 -0
  21. package/artifacts/contracts/interfaces/ILayerZeroExecutor.sol/ILayerZeroExecutor.json +79 -0
  22. package/artifacts/contracts/interfaces/ILayerZeroPriceFeed.sol/ILayerZeroPriceFeed.json +222 -0
  23. package/artifacts/contracts/interfaces/ILayerZeroReadExecutor.sol/ILayerZeroReadExecutor.json +59 -0
  24. package/artifacts/contracts/interfaces/ILayerZeroTreasury.sol/ILayerZeroTreasury.json +79 -0
  25. package/artifacts/contracts/interfaces/IWorker.sol/IWorker.json +221 -0
  26. package/artifacts/contracts/libs/ExecutorOptions.sol/ExecutorOptions.json +31 -0
  27. package/artifacts/contracts/libs/SafeCall.sol/SafeCall.json +10 -0
  28. package/artifacts/contracts/lowlat/EssenceDVNWrapper.sol/EssenceDVNWrapper.json +369 -0
  29. package/artifacts/contracts/lowlat/MultiCall.sol/MultiCall.json +120 -0
  30. package/artifacts/contracts/mocks/DVNMock.sol/DVNMock.json +135 -0
  31. package/artifacts/contracts/mocks/ExecutorMock.sol/ExecutorMock.json +397 -0
  32. package/artifacts/contracts/uln/LzExecutor.sol/IReceiveUlnView.json +35 -0
  33. package/artifacts/contracts/uln/LzExecutor.sol/LzExecutor.json +515 -0
  34. package/artifacts/contracts/uln/ReceiveUlnBase.sol/ReceiveUlnBase.json +551 -0
  35. package/artifacts/contracts/uln/SendUlnBase.sol/SendUlnBase.json +412 -0
  36. package/artifacts/contracts/uln/UlnBase.sol/UlnBase.json +387 -0
  37. package/artifacts/contracts/uln/dvn/DVN.sol/DVN.json +1509 -0
  38. package/artifacts/contracts/uln/dvn/DVNFeeLib.sol/DVNFeeLib.json +695 -0
  39. package/artifacts/contracts/uln/dvn/DeadDVN.sol/DeadDVN.json +164 -0
  40. package/artifacts/contracts/uln/dvn/MultiSig.sol/MultiSig.json +217 -0
  41. package/artifacts/contracts/uln/dvn/SimpleReadDVN.sol/SimpleReadDVN.json +231 -0
  42. package/artifacts/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapter.sol/CCIPDVNAdapter.json +1040 -0
  43. package/artifacts/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapterFeeLib.sol/CCIPDVNAdapterFeeLib.json +417 -0
  44. package/artifacts/contracts/uln/dvn/adapters/DVNAdapterBase.sol/DVNAdapterBase.json +789 -0
  45. package/artifacts/contracts/uln/dvn/adapters/DVNAdapterBase.sol/IReceiveUln.json +34 -0
  46. package/artifacts/contracts/uln/dvn/adapters/DVNAdapterBase.sol/ISendLibBase.json +30 -0
  47. package/artifacts/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL1.sol/ArbitrumDVNAdapterL1.json +936 -0
  48. package/artifacts/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL2.sol/ArbitrumDVNAdapterL2.json +868 -0
  49. package/artifacts/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/AxelarDVNAdapter.json +1171 -0
  50. package/artifacts/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/ISendLibBase.json +30 -0
  51. package/artifacts/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapterFeeLib.sol/AxelarDVNAdapterFeeLib.json +574 -0
  52. package/artifacts/contracts/uln/dvn/adapters/libs/DVNAdapterMessageCodec.sol/DVNAdapterMessageCodec.json +16 -0
  53. package/artifacts/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL1.sol/OptimismDVNAdapterL1.json +924 -0
  54. package/artifacts/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL2.sol/OptimismDVNAdapterL2.json +891 -0
  55. package/artifacts/contracts/uln/interfaces/IDVN.sol/IDVN.json +438 -0
  56. package/artifacts/contracts/uln/interfaces/IDVNFeeLib.sol/IDVNFeeLib.json +374 -0
  57. package/artifacts/contracts/uln/interfaces/ILayerZeroDVN.sol/ILayerZeroDVN.json +96 -0
  58. package/artifacts/contracts/uln/interfaces/ILayerZeroReadDVN.sol/ILayerZeroReadDVN.json +79 -0
  59. package/artifacts/contracts/uln/interfaces/IReceiveUlnE2.sol/IReceiveUlnE2.json +52 -0
  60. package/artifacts/contracts/uln/interfaces/adapters/IAxelarDVNAdapter.sol/IAxelarDVNAdapter.json +160 -0
  61. package/artifacts/contracts/uln/interfaces/adapters/IAxelarDVNAdapterFeeLib.sol/IAxelarDVNAdapterFeeLib.json +293 -0
  62. package/artifacts/contracts/uln/interfaces/adapters/ICCIPDVNAdapter.sol/ICCIPDVNAdapter.json +78 -0
  63. package/artifacts/contracts/uln/interfaces/adapters/ICCIPDVNAdapterFeeLib.sol/ICCIPDVNAdapterFeeLib.json +301 -0
  64. package/artifacts/contracts/uln/libs/DVNOptions.sol/DVNOptions.json +27 -0
  65. package/artifacts/contracts/uln/libs/ReadCmdCodecV1.sol/ReadCmdCodecV1.json +26 -0
  66. package/artifacts/contracts/uln/libs/SupportedCmdTypes.sol/SupportedCmdTypesLib.json +16 -0
  67. package/artifacts/contracts/uln/libs/UlnOptions.sol/UlnOptions.json +54 -0
  68. package/artifacts/contracts/uln/readlib/ReadLib1002.sol/ReadLib1002.json +1288 -0
  69. package/artifacts/contracts/uln/readlib/ReadLib1002View.sol/ReadLib1002View.json +285 -0
  70. package/artifacts/contracts/uln/readlib/ReadLibBase.sol/ReadLibBase.json +387 -0
  71. package/artifacts/contracts/uln/uln301/AddressSizeConfig.sol/AddressSizeConfig.json +129 -0
  72. package/artifacts/contracts/uln/uln301/ReceiveLibBaseE1.sol/ILayerZeroReceiveLibrary.json +68 -0
  73. package/artifacts/contracts/uln/uln301/ReceiveLibBaseE1.sol/ReceiveLibBaseE1.json +416 -0
  74. package/artifacts/contracts/uln/uln301/ReceiveUln301.sol/ReceiveUln301.json +1000 -0
  75. package/artifacts/contracts/uln/uln301/ReceiveUln301View.sol/IReceiveUln301.json +178 -0
  76. package/artifacts/contracts/uln/uln301/ReceiveUln301View.sol/ReceiveUln301View.json +126 -0
  77. package/artifacts/contracts/uln/uln301/SendLibBaseE1.sol/SendLibBaseE1.json +804 -0
  78. package/artifacts/contracts/uln/uln301/SendUln301.sol/SendUln301.json +1278 -0
  79. package/artifacts/contracts/uln/uln301/TreasuryFeeHandler.sol/TreasuryFeeHandler.json +94 -0
  80. package/artifacts/contracts/uln/uln301/interfaces/IMessageLibE1.sol/IMessageLibE1.json +247 -0
  81. package/artifacts/contracts/uln/uln301/interfaces/INonceContract.sol/INonceContract.json +40 -0
  82. package/artifacts/contracts/uln/uln301/interfaces/ITreasuryFeeHandler.sol/ITreasuryFeeHandler.json +44 -0
  83. package/artifacts/contracts/uln/uln301/interfaces/IUltraLightNode301.sol/IUltraLightNode301.json +29 -0
  84. package/artifacts/contracts/uln/uln301/mocks/NonceContractMock.sol/NonceContractMock.json +93 -0
  85. package/artifacts/contracts/uln/uln302/ReceiveUln302.sol/ReceiveUln302.json +757 -0
  86. package/artifacts/contracts/uln/uln302/ReceiveUln302View.sol/IReceiveUln302.json +146 -0
  87. package/artifacts/contracts/uln/uln302/ReceiveUln302View.sol/ReceiveUln302View.json +251 -0
  88. package/artifacts/contracts/uln/uln302/SendUln302.sol/SendUln302.json +1259 -0
  89. package/artifacts/contracts/upgradeable/WorkerUpgradeable.sol/WorkerUpgradeable.json +592 -0
  90. package/artifacts/contracts/upgradeable/proxy/ProxyAdmin.sol/ProxyAdmin.json +181 -0
  91. package/artifacts/contracts/upgradeable/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +160 -0
  92. package/artifacts-tron/contracts/Executor.sol/Executor.json +1413 -0
  93. package/artifacts-tron/contracts/Executor.sol/ILayerZeroEndpointV2.json +230 -0
  94. package/artifacts-tron/contracts/ExecutorFeeLib.sol/ExecutorFeeLib.json +546 -0
  95. package/artifacts-tron/contracts/MessageLibBase.sol/MessageLibBase.json +16 -0
  96. package/artifacts-tron/contracts/PriceFeed.sol/PriceFeed.json +694 -0
  97. package/artifacts-tron/contracts/ReceiveLibBaseE2.sol/ReceiveLibBaseE2.json +154 -0
  98. package/artifacts-tron/contracts/SendLibBase.sol/SendLibBase.json +381 -0
  99. package/artifacts-tron/contracts/SendLibBaseE2.sol/SendLibBaseE2.json +819 -0
  100. package/artifacts-tron/contracts/SimpleReadExecutor.sol/ILayerZeroEndpointV2.json +139 -0
  101. package/artifacts-tron/contracts/SimpleReadExecutor.sol/SimpleReadExecutor.json +260 -0
  102. package/artifacts-tron/contracts/Treasury.sol/Treasury.json +309 -0
  103. package/artifacts-tron/contracts/Worker.sol/Worker.json +579 -0
  104. package/artifacts-tron/contracts/decompressor/DVNDecoder.sol/DVNDecoder.json +10 -0
  105. package/artifacts-tron/contracts/decompressor/DVNDecompressor.sol/DVNDecompressor.json +329 -0
  106. package/artifacts-tron/contracts/decompressor/DecompressorExtension.sol/DecompressorExtension.json +92 -0
  107. package/artifacts-tron/contracts/decompressor/ExecutorDecoder.sol/ExecutorDecoder.json +10 -0
  108. package/artifacts-tron/contracts/decompressor/ExecutorDecompressor.sol/ExecutorDecompressor.json +220 -0
  109. package/artifacts-tron/contracts/interfaces/IExecutor.sol/IExecutor.json +487 -0
  110. package/artifacts-tron/contracts/interfaces/IExecutorFeeLib.sol/IExecutorFeeLib.json +410 -0
  111. package/artifacts-tron/contracts/interfaces/ILayerZeroExecutor.sol/ILayerZeroExecutor.json +79 -0
  112. package/artifacts-tron/contracts/interfaces/ILayerZeroPriceFeed.sol/ILayerZeroPriceFeed.json +222 -0
  113. package/artifacts-tron/contracts/interfaces/ILayerZeroReadExecutor.sol/ILayerZeroReadExecutor.json +59 -0
  114. package/artifacts-tron/contracts/interfaces/ILayerZeroTreasury.sol/ILayerZeroTreasury.json +79 -0
  115. package/artifacts-tron/contracts/interfaces/IWorker.sol/IWorker.json +221 -0
  116. package/artifacts-tron/contracts/libs/ExecutorOptions.sol/ExecutorOptions.json +31 -0
  117. package/artifacts-tron/contracts/libs/SafeCall.sol/SafeCall.json +10 -0
  118. package/artifacts-tron/contracts/lowlat/EssenceDVNWrapper.sol/EssenceDVNWrapper.json +369 -0
  119. package/artifacts-tron/contracts/lowlat/MultiCall.sol/MultiCall.json +120 -0
  120. package/artifacts-tron/contracts/mocks/DVNMock.sol/DVNMock.json +135 -0
  121. package/artifacts-tron/contracts/mocks/ExecutorMock.sol/ExecutorMock.json +397 -0
  122. package/artifacts-tron/contracts/uln/LzExecutor.sol/IReceiveUlnView.json +35 -0
  123. package/artifacts-tron/contracts/uln/LzExecutor.sol/LzExecutor.json +515 -0
  124. package/artifacts-tron/contracts/uln/ReceiveUlnBase.sol/ReceiveUlnBase.json +551 -0
  125. package/artifacts-tron/contracts/uln/SendUlnBase.sol/SendUlnBase.json +412 -0
  126. package/artifacts-tron/contracts/uln/UlnBase.sol/UlnBase.json +387 -0
  127. package/artifacts-tron/contracts/uln/dvn/DVN.sol/DVN.json +1509 -0
  128. package/artifacts-tron/contracts/uln/dvn/DVNFeeLib.sol/DVNFeeLib.json +695 -0
  129. package/artifacts-tron/contracts/uln/dvn/DeadDVN.sol/DeadDVN.json +164 -0
  130. package/artifacts-tron/contracts/uln/dvn/MultiSig.sol/MultiSig.json +217 -0
  131. package/artifacts-tron/contracts/uln/dvn/SimpleReadDVN.sol/SimpleReadDVN.json +231 -0
  132. package/artifacts-tron/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapter.sol/CCIPDVNAdapter.json +1040 -0
  133. package/artifacts-tron/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapterFeeLib.sol/CCIPDVNAdapterFeeLib.json +417 -0
  134. package/artifacts-tron/contracts/uln/dvn/adapters/DVNAdapterBase.sol/DVNAdapterBase.json +789 -0
  135. package/artifacts-tron/contracts/uln/dvn/adapters/DVNAdapterBase.sol/IReceiveUln.json +34 -0
  136. package/artifacts-tron/contracts/uln/dvn/adapters/DVNAdapterBase.sol/ISendLibBase.json +30 -0
  137. package/artifacts-tron/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL1.sol/ArbitrumDVNAdapterL1.json +936 -0
  138. package/artifacts-tron/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL2.sol/ArbitrumDVNAdapterL2.json +868 -0
  139. package/artifacts-tron/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/AxelarDVNAdapter.json +1171 -0
  140. package/artifacts-tron/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/ISendLibBase.json +30 -0
  141. package/artifacts-tron/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapterFeeLib.sol/AxelarDVNAdapterFeeLib.json +574 -0
  142. package/artifacts-tron/contracts/uln/dvn/adapters/libs/DVNAdapterMessageCodec.sol/DVNAdapterMessageCodec.json +16 -0
  143. package/artifacts-tron/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL1.sol/OptimismDVNAdapterL1.json +924 -0
  144. package/artifacts-tron/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL2.sol/OptimismDVNAdapterL2.json +891 -0
  145. package/artifacts-tron/contracts/uln/interfaces/IDVN.sol/IDVN.json +438 -0
  146. package/artifacts-tron/contracts/uln/interfaces/IDVNFeeLib.sol/IDVNFeeLib.json +374 -0
  147. package/artifacts-tron/contracts/uln/interfaces/ILayerZeroDVN.sol/ILayerZeroDVN.json +96 -0
  148. package/artifacts-tron/contracts/uln/interfaces/ILayerZeroReadDVN.sol/ILayerZeroReadDVN.json +79 -0
  149. package/artifacts-tron/contracts/uln/interfaces/IReceiveUlnE2.sol/IReceiveUlnE2.json +52 -0
  150. package/artifacts-tron/contracts/uln/interfaces/adapters/IAxelarDVNAdapter.sol/IAxelarDVNAdapter.json +160 -0
  151. package/artifacts-tron/contracts/uln/interfaces/adapters/IAxelarDVNAdapterFeeLib.sol/IAxelarDVNAdapterFeeLib.json +293 -0
  152. package/artifacts-tron/contracts/uln/interfaces/adapters/ICCIPDVNAdapter.sol/ICCIPDVNAdapter.json +78 -0
  153. package/artifacts-tron/contracts/uln/interfaces/adapters/ICCIPDVNAdapterFeeLib.sol/ICCIPDVNAdapterFeeLib.json +301 -0
  154. package/artifacts-tron/contracts/uln/libs/DVNOptions.sol/DVNOptions.json +27 -0
  155. package/artifacts-tron/contracts/uln/libs/ReadCmdCodecV1.sol/ReadCmdCodecV1.json +26 -0
  156. package/artifacts-tron/contracts/uln/libs/SupportedCmdTypes.sol/SupportedCmdTypesLib.json +16 -0
  157. package/artifacts-tron/contracts/uln/libs/UlnOptions.sol/UlnOptions.json +54 -0
  158. package/artifacts-tron/contracts/uln/readlib/ReadLib1002.sol/ReadLib1002.json +1288 -0
  159. package/artifacts-tron/contracts/uln/readlib/ReadLib1002View.sol/ReadLib1002View.json +285 -0
  160. package/artifacts-tron/contracts/uln/readlib/ReadLibBase.sol/ReadLibBase.json +387 -0
  161. package/artifacts-tron/contracts/uln/uln301/AddressSizeConfig.sol/AddressSizeConfig.json +129 -0
  162. package/artifacts-tron/contracts/uln/uln301/ReceiveLibBaseE1.sol/ILayerZeroReceiveLibrary.json +68 -0
  163. package/artifacts-tron/contracts/uln/uln301/ReceiveLibBaseE1.sol/ReceiveLibBaseE1.json +416 -0
  164. package/artifacts-tron/contracts/uln/uln301/ReceiveUln301.sol/ReceiveUln301.json +1000 -0
  165. package/artifacts-tron/contracts/uln/uln301/ReceiveUln301View.sol/IReceiveUln301.json +178 -0
  166. package/artifacts-tron/contracts/uln/uln301/ReceiveUln301View.sol/ReceiveUln301View.json +126 -0
  167. package/artifacts-tron/contracts/uln/uln301/SendLibBaseE1.sol/SendLibBaseE1.json +804 -0
  168. package/artifacts-tron/contracts/uln/uln301/SendUln301.sol/SendUln301.json +1278 -0
  169. package/artifacts-tron/contracts/uln/uln301/TreasuryFeeHandler.sol/TreasuryFeeHandler.json +94 -0
  170. package/artifacts-tron/contracts/uln/uln301/interfaces/IMessageLibE1.sol/IMessageLibE1.json +247 -0
  171. package/artifacts-tron/contracts/uln/uln301/interfaces/INonceContract.sol/INonceContract.json +40 -0
  172. package/artifacts-tron/contracts/uln/uln301/interfaces/ITreasuryFeeHandler.sol/ITreasuryFeeHandler.json +44 -0
  173. package/artifacts-tron/contracts/uln/uln301/interfaces/IUltraLightNode301.sol/IUltraLightNode301.json +29 -0
  174. package/artifacts-tron/contracts/uln/uln301/mocks/NonceContractMock.sol/NonceContractMock.json +93 -0
  175. package/artifacts-tron/contracts/uln/uln302/ReceiveUln302.sol/ReceiveUln302.json +757 -0
  176. package/artifacts-tron/contracts/uln/uln302/ReceiveUln302View.sol/IReceiveUln302.json +146 -0
  177. package/artifacts-tron/contracts/uln/uln302/ReceiveUln302View.sol/ReceiveUln302View.json +251 -0
  178. package/artifacts-tron/contracts/uln/uln302/SendUln302.sol/SendUln302.json +1259 -0
  179. package/artifacts-tron/contracts/upgradeable/WorkerUpgradeable.sol/WorkerUpgradeable.json +592 -0
  180. package/artifacts-tron/contracts/upgradeable/proxy/ProxyAdmin.sol/ProxyAdmin.json +181 -0
  181. package/artifacts-tron/contracts/upgradeable/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +160 -0
  182. package/artifacts-zk/contracts/Executor.sol/Executor.json +1414 -0
  183. package/artifacts-zk/contracts/Executor.sol/ILayerZeroEndpointV2.json +231 -0
  184. package/artifacts-zk/contracts/ExecutorFeeLib.sol/ExecutorFeeLib.json +547 -0
  185. package/artifacts-zk/contracts/MessageLibBase.sol/MessageLibBase.json +17 -0
  186. package/artifacts-zk/contracts/PriceFeed.sol/PriceFeed.json +695 -0
  187. package/artifacts-zk/contracts/ReceiveLibBaseE2.sol/ReceiveLibBaseE2.json +155 -0
  188. package/artifacts-zk/contracts/SendLibBase.sol/SendLibBase.json +382 -0
  189. package/artifacts-zk/contracts/SendLibBaseE2.sol/SendLibBaseE2.json +820 -0
  190. package/artifacts-zk/contracts/SimpleReadExecutor.sol/ILayerZeroEndpointV2.json +140 -0
  191. package/artifacts-zk/contracts/SimpleReadExecutor.sol/SimpleReadExecutor.json +261 -0
  192. package/artifacts-zk/contracts/Treasury.sol/Treasury.json +310 -0
  193. package/artifacts-zk/contracts/Worker.sol/Worker.json +580 -0
  194. package/artifacts-zk/contracts/decompressor/DVNDecoder.sol/DVNDecoder.json +11 -0
  195. package/artifacts-zk/contracts/decompressor/DVNDecompressor.sol/DVNDecompressor.json +330 -0
  196. package/artifacts-zk/contracts/decompressor/DecompressorExtension.sol/DecompressorExtension.json +93 -0
  197. package/artifacts-zk/contracts/decompressor/ExecutorDecoder.sol/ExecutorDecoder.json +11 -0
  198. package/artifacts-zk/contracts/decompressor/ExecutorDecompressor.sol/ExecutorDecompressor.json +221 -0
  199. package/artifacts-zk/contracts/interfaces/IExecutor.sol/IExecutor.json +488 -0
  200. package/artifacts-zk/contracts/interfaces/IExecutorFeeLib.sol/IExecutorFeeLib.json +411 -0
  201. package/artifacts-zk/contracts/interfaces/ILayerZeroExecutor.sol/ILayerZeroExecutor.json +80 -0
  202. package/artifacts-zk/contracts/interfaces/ILayerZeroPriceFeed.sol/ILayerZeroPriceFeed.json +223 -0
  203. package/artifacts-zk/contracts/interfaces/ILayerZeroReadExecutor.sol/ILayerZeroReadExecutor.json +60 -0
  204. package/artifacts-zk/contracts/interfaces/ILayerZeroTreasury.sol/ILayerZeroTreasury.json +80 -0
  205. package/artifacts-zk/contracts/interfaces/IWorker.sol/IWorker.json +222 -0
  206. package/artifacts-zk/contracts/libs/ExecutorOptions.sol/ExecutorOptions.json +32 -0
  207. package/artifacts-zk/contracts/libs/SafeCall.sol/SafeCall.json +11 -0
  208. package/artifacts-zk/contracts/lowlat/EssenceDVNWrapper.sol/EssenceDVNWrapper.json +370 -0
  209. package/artifacts-zk/contracts/lowlat/MultiCall.sol/MultiCall.json +121 -0
  210. package/artifacts-zk/contracts/mocks/DVNMock.sol/DVNMock.json +136 -0
  211. package/artifacts-zk/contracts/mocks/ExecutorMock.sol/ExecutorMock.json +398 -0
  212. package/artifacts-zk/contracts/uln/LzExecutor.sol/IReceiveUlnView.json +36 -0
  213. package/artifacts-zk/contracts/uln/LzExecutor.sol/LzExecutor.json +516 -0
  214. package/artifacts-zk/contracts/uln/ReceiveUlnBase.sol/ReceiveUlnBase.json +552 -0
  215. package/artifacts-zk/contracts/uln/SendUlnBase.sol/SendUlnBase.json +413 -0
  216. package/artifacts-zk/contracts/uln/UlnBase.sol/UlnBase.json +388 -0
  217. package/artifacts-zk/contracts/uln/dvn/DVN.sol/DVN.json +1510 -0
  218. package/artifacts-zk/contracts/uln/dvn/DVNFeeLib.sol/DVNFeeLib.json +696 -0
  219. package/artifacts-zk/contracts/uln/dvn/DeadDVN.sol/DeadDVN.json +165 -0
  220. package/artifacts-zk/contracts/uln/dvn/MultiSig.sol/MultiSig.json +218 -0
  221. package/artifacts-zk/contracts/uln/dvn/SimpleReadDVN.sol/SimpleReadDVN.json +232 -0
  222. package/artifacts-zk/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapter.sol/CCIPDVNAdapter.json +1041 -0
  223. package/artifacts-zk/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapterFeeLib.sol/CCIPDVNAdapterFeeLib.json +418 -0
  224. package/artifacts-zk/contracts/uln/dvn/adapters/DVNAdapterBase.sol/DVNAdapterBase.json +790 -0
  225. package/artifacts-zk/contracts/uln/dvn/adapters/DVNAdapterBase.sol/IReceiveUln.json +35 -0
  226. package/artifacts-zk/contracts/uln/dvn/adapters/DVNAdapterBase.sol/ISendLibBase.json +31 -0
  227. package/artifacts-zk/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL1.sol/ArbitrumDVNAdapterL1.json +937 -0
  228. package/artifacts-zk/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL2.sol/ArbitrumDVNAdapterL2.json +869 -0
  229. package/artifacts-zk/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/AxelarDVNAdapter.json +1172 -0
  230. package/artifacts-zk/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/ISendLibBase.json +31 -0
  231. package/artifacts-zk/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapterFeeLib.sol/AxelarDVNAdapterFeeLib.json +575 -0
  232. package/artifacts-zk/contracts/uln/dvn/adapters/libs/DVNAdapterMessageCodec.sol/DVNAdapterMessageCodec.json +17 -0
  233. package/artifacts-zk/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL1.sol/OptimismDVNAdapterL1.json +925 -0
  234. package/artifacts-zk/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL2.sol/OptimismDVNAdapterL2.json +892 -0
  235. package/artifacts-zk/contracts/uln/interfaces/IDVN.sol/IDVN.json +439 -0
  236. package/artifacts-zk/contracts/uln/interfaces/IDVNFeeLib.sol/IDVNFeeLib.json +375 -0
  237. package/artifacts-zk/contracts/uln/interfaces/ILayerZeroDVN.sol/ILayerZeroDVN.json +97 -0
  238. package/artifacts-zk/contracts/uln/interfaces/ILayerZeroReadDVN.sol/ILayerZeroReadDVN.json +80 -0
  239. package/artifacts-zk/contracts/uln/interfaces/IReceiveUlnE2.sol/IReceiveUlnE2.json +53 -0
  240. package/artifacts-zk/contracts/uln/interfaces/adapters/IAxelarDVNAdapter.sol/IAxelarDVNAdapter.json +161 -0
  241. package/artifacts-zk/contracts/uln/interfaces/adapters/IAxelarDVNAdapterFeeLib.sol/IAxelarDVNAdapterFeeLib.json +294 -0
  242. package/artifacts-zk/contracts/uln/interfaces/adapters/ICCIPDVNAdapter.sol/ICCIPDVNAdapter.json +79 -0
  243. package/artifacts-zk/contracts/uln/interfaces/adapters/ICCIPDVNAdapterFeeLib.sol/ICCIPDVNAdapterFeeLib.json +302 -0
  244. package/artifacts-zk/contracts/uln/libs/DVNOptions.sol/DVNOptions.json +28 -0
  245. package/artifacts-zk/contracts/uln/libs/ReadCmdCodecV1.sol/ReadCmdCodecV1.json +27 -0
  246. package/artifacts-zk/contracts/uln/libs/SupportedCmdTypes.sol/SupportedCmdTypesLib.json +17 -0
  247. package/artifacts-zk/contracts/uln/libs/UlnOptions.sol/UlnOptions.json +55 -0
  248. package/artifacts-zk/contracts/uln/readlib/ReadLib1002.sol/ReadLib1002.json +1289 -0
  249. package/artifacts-zk/contracts/uln/readlib/ReadLib1002View.sol/ReadLib1002View.json +286 -0
  250. package/artifacts-zk/contracts/uln/readlib/ReadLibBase.sol/ReadLibBase.json +388 -0
  251. package/artifacts-zk/contracts/uln/uln301/AddressSizeConfig.sol/AddressSizeConfig.json +130 -0
  252. package/artifacts-zk/contracts/uln/uln301/ReceiveLibBaseE1.sol/ILayerZeroReceiveLibrary.json +69 -0
  253. package/artifacts-zk/contracts/uln/uln301/ReceiveLibBaseE1.sol/ReceiveLibBaseE1.json +417 -0
  254. package/artifacts-zk/contracts/uln/uln301/ReceiveUln301.sol/ReceiveUln301.json +1001 -0
  255. package/artifacts-zk/contracts/uln/uln301/ReceiveUln301View.sol/IReceiveUln301.json +179 -0
  256. package/artifacts-zk/contracts/uln/uln301/ReceiveUln301View.sol/ReceiveUln301View.json +127 -0
  257. package/artifacts-zk/contracts/uln/uln301/SendLibBaseE1.sol/SendLibBaseE1.json +805 -0
  258. package/artifacts-zk/contracts/uln/uln301/SendUln301.sol/SendUln301.json +1279 -0
  259. package/artifacts-zk/contracts/uln/uln301/TreasuryFeeHandler.sol/TreasuryFeeHandler.json +95 -0
  260. package/artifacts-zk/contracts/uln/uln301/interfaces/IMessageLibE1.sol/IMessageLibE1.json +248 -0
  261. package/artifacts-zk/contracts/uln/uln301/interfaces/INonceContract.sol/INonceContract.json +41 -0
  262. package/artifacts-zk/contracts/uln/uln301/interfaces/ITreasuryFeeHandler.sol/ITreasuryFeeHandler.json +45 -0
  263. package/artifacts-zk/contracts/uln/uln301/interfaces/IUltraLightNode301.sol/IUltraLightNode301.json +30 -0
  264. package/artifacts-zk/contracts/uln/uln301/mocks/NonceContractMock.sol/NonceContractMock.json +94 -0
  265. package/artifacts-zk/contracts/uln/uln302/ReceiveUln302.sol/ReceiveUln302.json +758 -0
  266. package/artifacts-zk/contracts/uln/uln302/ReceiveUln302View.sol/IReceiveUln302.json +147 -0
  267. package/artifacts-zk/contracts/uln/uln302/ReceiveUln302View.sol/ReceiveUln302View.json +252 -0
  268. package/artifacts-zk/contracts/uln/uln302/SendUln302.sol/SendUln302.json +1260 -0
  269. package/artifacts-zk/contracts/upgradeable/WorkerUpgradeable.sol/WorkerUpgradeable.json +593 -0
  270. package/artifacts-zk/contracts/upgradeable/proxy/ProxyAdmin.sol/ProxyAdmin.json +182 -0
  271. package/artifacts-zk/contracts/upgradeable/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +161 -0
  272. package/package.json +6 -6
@@ -0,0 +1,1509 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "DVN",
4
+ "sourceName": "contracts/uln/dvn/DVN.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "uint32",
10
+ "name": "_localEidV2",
11
+ "type": "uint32"
12
+ },
13
+ {
14
+ "internalType": "uint32",
15
+ "name": "_vid",
16
+ "type": "uint32"
17
+ },
18
+ {
19
+ "internalType": "address[]",
20
+ "name": "_messageLibs",
21
+ "type": "address[]"
22
+ },
23
+ {
24
+ "internalType": "address",
25
+ "name": "_priceFeed",
26
+ "type": "address"
27
+ },
28
+ {
29
+ "internalType": "address[]",
30
+ "name": "_signers",
31
+ "type": "address[]"
32
+ },
33
+ {
34
+ "internalType": "uint64",
35
+ "name": "_quorum",
36
+ "type": "uint64"
37
+ },
38
+ {
39
+ "internalType": "address[]",
40
+ "name": "_admins",
41
+ "type": "address[]"
42
+ }
43
+ ],
44
+ "stateMutability": "nonpayable",
45
+ "type": "constructor"
46
+ },
47
+ {
48
+ "inputs": [
49
+ {
50
+ "internalType": "bytes32",
51
+ "name": "executableHash",
52
+ "type": "bytes32"
53
+ }
54
+ ],
55
+ "name": "DVN_DuplicatedHash",
56
+ "type": "error"
57
+ },
58
+ {
59
+ "inputs": [],
60
+ "name": "DVN_InstructionExpired",
61
+ "type": "error"
62
+ },
63
+ {
64
+ "inputs": [
65
+ {
66
+ "internalType": "bytes32",
67
+ "name": "role",
68
+ "type": "bytes32"
69
+ }
70
+ ],
71
+ "name": "DVN_InvalidRole",
72
+ "type": "error"
73
+ },
74
+ {
75
+ "inputs": [],
76
+ "name": "DVN_InvalidSignatures",
77
+ "type": "error"
78
+ },
79
+ {
80
+ "inputs": [
81
+ {
82
+ "internalType": "address",
83
+ "name": "target",
84
+ "type": "address"
85
+ }
86
+ ],
87
+ "name": "DVN_InvalidTarget",
88
+ "type": "error"
89
+ },
90
+ {
91
+ "inputs": [
92
+ {
93
+ "internalType": "uint32",
94
+ "name": "vid",
95
+ "type": "uint32"
96
+ }
97
+ ],
98
+ "name": "DVN_InvalidVid",
99
+ "type": "error"
100
+ },
101
+ {
102
+ "inputs": [],
103
+ "name": "DVN_OnlySelf",
104
+ "type": "error"
105
+ },
106
+ {
107
+ "inputs": [],
108
+ "name": "MultiSig_InvalidSigner",
109
+ "type": "error"
110
+ },
111
+ {
112
+ "inputs": [],
113
+ "name": "MultiSig_OnlySigner",
114
+ "type": "error"
115
+ },
116
+ {
117
+ "inputs": [],
118
+ "name": "MultiSig_QuorumIsZero",
119
+ "type": "error"
120
+ },
121
+ {
122
+ "inputs": [
123
+ {
124
+ "internalType": "uint64",
125
+ "name": "signersSize",
126
+ "type": "uint64"
127
+ },
128
+ {
129
+ "internalType": "uint64",
130
+ "name": "quorum",
131
+ "type": "uint64"
132
+ }
133
+ ],
134
+ "name": "MultiSig_SignersSizeIsLessThanQuorum",
135
+ "type": "error"
136
+ },
137
+ {
138
+ "inputs": [
139
+ {
140
+ "internalType": "address",
141
+ "name": "signer",
142
+ "type": "address"
143
+ },
144
+ {
145
+ "internalType": "bool",
146
+ "name": "active",
147
+ "type": "bool"
148
+ }
149
+ ],
150
+ "name": "MultiSig_StateAlreadySet",
151
+ "type": "error"
152
+ },
153
+ {
154
+ "inputs": [
155
+ {
156
+ "internalType": "address",
157
+ "name": "signer",
158
+ "type": "address"
159
+ },
160
+ {
161
+ "internalType": "bool",
162
+ "name": "active",
163
+ "type": "bool"
164
+ }
165
+ ],
166
+ "name": "MultiSig_StateNotSet",
167
+ "type": "error"
168
+ },
169
+ {
170
+ "inputs": [],
171
+ "name": "MultiSig_UnorderedSigners",
172
+ "type": "error"
173
+ },
174
+ {
175
+ "inputs": [
176
+ {
177
+ "internalType": "address",
178
+ "name": "_to",
179
+ "type": "address"
180
+ },
181
+ {
182
+ "internalType": "uint256",
183
+ "name": "_value",
184
+ "type": "uint256"
185
+ }
186
+ ],
187
+ "name": "Transfer_NativeFailed",
188
+ "type": "error"
189
+ },
190
+ {
191
+ "inputs": [],
192
+ "name": "Transfer_ToAddressIsZero",
193
+ "type": "error"
194
+ },
195
+ {
196
+ "inputs": [],
197
+ "name": "Worker_NotAllowed",
198
+ "type": "error"
199
+ },
200
+ {
201
+ "inputs": [],
202
+ "name": "Worker_OnlyMessageLib",
203
+ "type": "error"
204
+ },
205
+ {
206
+ "inputs": [],
207
+ "name": "Worker_RoleRenouncingDisabled",
208
+ "type": "error"
209
+ },
210
+ {
211
+ "anonymous": false,
212
+ "inputs": [
213
+ {
214
+ "indexed": false,
215
+ "internalType": "uint256",
216
+ "name": "_index",
217
+ "type": "uint256"
218
+ },
219
+ {
220
+ "indexed": false,
221
+ "internalType": "bytes",
222
+ "name": "_data",
223
+ "type": "bytes"
224
+ }
225
+ ],
226
+ "name": "ExecuteFailed",
227
+ "type": "event"
228
+ },
229
+ {
230
+ "anonymous": false,
231
+ "inputs": [
232
+ {
233
+ "components": [
234
+ {
235
+ "internalType": "uint32",
236
+ "name": "vid",
237
+ "type": "uint32"
238
+ },
239
+ {
240
+ "internalType": "address",
241
+ "name": "target",
242
+ "type": "address"
243
+ },
244
+ {
245
+ "internalType": "bytes",
246
+ "name": "callData",
247
+ "type": "bytes"
248
+ },
249
+ {
250
+ "internalType": "uint256",
251
+ "name": "expiration",
252
+ "type": "uint256"
253
+ },
254
+ {
255
+ "internalType": "bytes",
256
+ "name": "signatures",
257
+ "type": "bytes"
258
+ }
259
+ ],
260
+ "indexed": false,
261
+ "internalType": "struct ExecuteParam",
262
+ "name": "param",
263
+ "type": "tuple"
264
+ },
265
+ {
266
+ "indexed": false,
267
+ "internalType": "bytes32",
268
+ "name": "_hash",
269
+ "type": "bytes32"
270
+ }
271
+ ],
272
+ "name": "HashAlreadyUsed",
273
+ "type": "event"
274
+ },
275
+ {
276
+ "anonymous": false,
277
+ "inputs": [
278
+ {
279
+ "indexed": false,
280
+ "internalType": "address",
281
+ "name": "account",
282
+ "type": "address"
283
+ }
284
+ ],
285
+ "name": "Paused",
286
+ "type": "event"
287
+ },
288
+ {
289
+ "anonymous": false,
290
+ "inputs": [
291
+ {
292
+ "indexed": true,
293
+ "internalType": "bytes32",
294
+ "name": "role",
295
+ "type": "bytes32"
296
+ },
297
+ {
298
+ "indexed": true,
299
+ "internalType": "bytes32",
300
+ "name": "previousAdminRole",
301
+ "type": "bytes32"
302
+ },
303
+ {
304
+ "indexed": true,
305
+ "internalType": "bytes32",
306
+ "name": "newAdminRole",
307
+ "type": "bytes32"
308
+ }
309
+ ],
310
+ "name": "RoleAdminChanged",
311
+ "type": "event"
312
+ },
313
+ {
314
+ "anonymous": false,
315
+ "inputs": [
316
+ {
317
+ "indexed": true,
318
+ "internalType": "bytes32",
319
+ "name": "role",
320
+ "type": "bytes32"
321
+ },
322
+ {
323
+ "indexed": true,
324
+ "internalType": "address",
325
+ "name": "account",
326
+ "type": "address"
327
+ },
328
+ {
329
+ "indexed": true,
330
+ "internalType": "address",
331
+ "name": "sender",
332
+ "type": "address"
333
+ }
334
+ ],
335
+ "name": "RoleGranted",
336
+ "type": "event"
337
+ },
338
+ {
339
+ "anonymous": false,
340
+ "inputs": [
341
+ {
342
+ "indexed": true,
343
+ "internalType": "bytes32",
344
+ "name": "role",
345
+ "type": "bytes32"
346
+ },
347
+ {
348
+ "indexed": true,
349
+ "internalType": "address",
350
+ "name": "account",
351
+ "type": "address"
352
+ },
353
+ {
354
+ "indexed": true,
355
+ "internalType": "address",
356
+ "name": "sender",
357
+ "type": "address"
358
+ }
359
+ ],
360
+ "name": "RoleRevoked",
361
+ "type": "event"
362
+ },
363
+ {
364
+ "anonymous": false,
365
+ "inputs": [
366
+ {
367
+ "indexed": false,
368
+ "internalType": "uint16",
369
+ "name": "multiplierBps",
370
+ "type": "uint16"
371
+ }
372
+ ],
373
+ "name": "SetDefaultMultiplierBps",
374
+ "type": "event"
375
+ },
376
+ {
377
+ "anonymous": false,
378
+ "inputs": [
379
+ {
380
+ "components": [
381
+ {
382
+ "internalType": "uint32",
383
+ "name": "dstEid",
384
+ "type": "uint32"
385
+ },
386
+ {
387
+ "internalType": "uint64",
388
+ "name": "gas",
389
+ "type": "uint64"
390
+ },
391
+ {
392
+ "internalType": "uint16",
393
+ "name": "multiplierBps",
394
+ "type": "uint16"
395
+ },
396
+ {
397
+ "internalType": "uint128",
398
+ "name": "floorMarginUSD",
399
+ "type": "uint128"
400
+ }
401
+ ],
402
+ "indexed": false,
403
+ "internalType": "struct IDVN.DstConfigParam[]",
404
+ "name": "params",
405
+ "type": "tuple[]"
406
+ }
407
+ ],
408
+ "name": "SetDstConfig",
409
+ "type": "event"
410
+ },
411
+ {
412
+ "anonymous": false,
413
+ "inputs": [
414
+ {
415
+ "indexed": false,
416
+ "internalType": "address",
417
+ "name": "priceFeed",
418
+ "type": "address"
419
+ }
420
+ ],
421
+ "name": "SetPriceFeed",
422
+ "type": "event"
423
+ },
424
+ {
425
+ "anonymous": false,
426
+ "inputs": [
427
+ {
428
+ "indexed": false,
429
+ "internalType": "uint32",
430
+ "name": "dstEid",
431
+ "type": "uint32"
432
+ },
433
+ {
434
+ "indexed": false,
435
+ "internalType": "uint8[]",
436
+ "name": "optionTypes",
437
+ "type": "uint8[]"
438
+ }
439
+ ],
440
+ "name": "SetSupportedOptionTypes",
441
+ "type": "event"
442
+ },
443
+ {
444
+ "anonymous": false,
445
+ "inputs": [
446
+ {
447
+ "indexed": false,
448
+ "internalType": "address",
449
+ "name": "workerLib",
450
+ "type": "address"
451
+ }
452
+ ],
453
+ "name": "SetWorkerLib",
454
+ "type": "event"
455
+ },
456
+ {
457
+ "anonymous": false,
458
+ "inputs": [
459
+ {
460
+ "indexed": false,
461
+ "internalType": "address",
462
+ "name": "account",
463
+ "type": "address"
464
+ }
465
+ ],
466
+ "name": "Unpaused",
467
+ "type": "event"
468
+ },
469
+ {
470
+ "anonymous": false,
471
+ "inputs": [
472
+ {
473
+ "indexed": false,
474
+ "internalType": "uint64",
475
+ "name": "_quorum",
476
+ "type": "uint64"
477
+ }
478
+ ],
479
+ "name": "UpdateQuorum",
480
+ "type": "event"
481
+ },
482
+ {
483
+ "anonymous": false,
484
+ "inputs": [
485
+ {
486
+ "indexed": false,
487
+ "internalType": "address",
488
+ "name": "_signer",
489
+ "type": "address"
490
+ },
491
+ {
492
+ "indexed": false,
493
+ "internalType": "bool",
494
+ "name": "_active",
495
+ "type": "bool"
496
+ }
497
+ ],
498
+ "name": "UpdateSigner",
499
+ "type": "event"
500
+ },
501
+ {
502
+ "anonymous": false,
503
+ "inputs": [
504
+ {
505
+ "indexed": false,
506
+ "internalType": "uint256",
507
+ "name": "fee",
508
+ "type": "uint256"
509
+ }
510
+ ],
511
+ "name": "VerifierFeePaid",
512
+ "type": "event"
513
+ },
514
+ {
515
+ "anonymous": false,
516
+ "inputs": [
517
+ {
518
+ "indexed": false,
519
+ "internalType": "uint256",
520
+ "name": "idx",
521
+ "type": "uint256"
522
+ }
523
+ ],
524
+ "name": "VerifySignaturesFailed",
525
+ "type": "event"
526
+ },
527
+ {
528
+ "anonymous": false,
529
+ "inputs": [
530
+ {
531
+ "indexed": false,
532
+ "internalType": "address",
533
+ "name": "lib",
534
+ "type": "address"
535
+ },
536
+ {
537
+ "indexed": false,
538
+ "internalType": "address",
539
+ "name": "to",
540
+ "type": "address"
541
+ },
542
+ {
543
+ "indexed": false,
544
+ "internalType": "uint256",
545
+ "name": "amount",
546
+ "type": "uint256"
547
+ }
548
+ ],
549
+ "name": "Withdraw",
550
+ "type": "event"
551
+ },
552
+ {
553
+ "inputs": [],
554
+ "name": "DEFAULT_ADMIN_ROLE",
555
+ "outputs": [
556
+ {
557
+ "internalType": "bytes32",
558
+ "name": "",
559
+ "type": "bytes32"
560
+ }
561
+ ],
562
+ "stateMutability": "view",
563
+ "type": "function"
564
+ },
565
+ {
566
+ "inputs": [],
567
+ "name": "allowlistSize",
568
+ "outputs": [
569
+ {
570
+ "internalType": "uint64",
571
+ "name": "",
572
+ "type": "uint64"
573
+ }
574
+ ],
575
+ "stateMutability": "view",
576
+ "type": "function"
577
+ },
578
+ {
579
+ "inputs": [
580
+ {
581
+ "components": [
582
+ {
583
+ "internalType": "uint32",
584
+ "name": "dstEid",
585
+ "type": "uint32"
586
+ },
587
+ {
588
+ "internalType": "bytes",
589
+ "name": "packetHeader",
590
+ "type": "bytes"
591
+ },
592
+ {
593
+ "internalType": "bytes32",
594
+ "name": "payloadHash",
595
+ "type": "bytes32"
596
+ },
597
+ {
598
+ "internalType": "uint64",
599
+ "name": "confirmations",
600
+ "type": "uint64"
601
+ },
602
+ {
603
+ "internalType": "address",
604
+ "name": "sender",
605
+ "type": "address"
606
+ }
607
+ ],
608
+ "internalType": "struct ILayerZeroDVN.AssignJobParam",
609
+ "name": "_param",
610
+ "type": "tuple"
611
+ },
612
+ {
613
+ "internalType": "bytes",
614
+ "name": "_options",
615
+ "type": "bytes"
616
+ }
617
+ ],
618
+ "name": "assignJob",
619
+ "outputs": [
620
+ {
621
+ "internalType": "uint256",
622
+ "name": "totalFee",
623
+ "type": "uint256"
624
+ }
625
+ ],
626
+ "stateMutability": "payable",
627
+ "type": "function"
628
+ },
629
+ {
630
+ "inputs": [
631
+ {
632
+ "internalType": "uint16",
633
+ "name": "_dstEid",
634
+ "type": "uint16"
635
+ },
636
+ {
637
+ "internalType": "uint16",
638
+ "name": "",
639
+ "type": "uint16"
640
+ },
641
+ {
642
+ "internalType": "uint64",
643
+ "name": "_confirmations",
644
+ "type": "uint64"
645
+ },
646
+ {
647
+ "internalType": "address",
648
+ "name": "_sender",
649
+ "type": "address"
650
+ }
651
+ ],
652
+ "name": "assignJob",
653
+ "outputs": [
654
+ {
655
+ "internalType": "uint256",
656
+ "name": "totalFee",
657
+ "type": "uint256"
658
+ }
659
+ ],
660
+ "stateMutability": "nonpayable",
661
+ "type": "function"
662
+ },
663
+ {
664
+ "inputs": [
665
+ {
666
+ "internalType": "address",
667
+ "name": "_sender",
668
+ "type": "address"
669
+ },
670
+ {
671
+ "internalType": "bytes",
672
+ "name": "",
673
+ "type": "bytes"
674
+ },
675
+ {
676
+ "internalType": "bytes",
677
+ "name": "_cmd",
678
+ "type": "bytes"
679
+ },
680
+ {
681
+ "internalType": "bytes",
682
+ "name": "_options",
683
+ "type": "bytes"
684
+ }
685
+ ],
686
+ "name": "assignJob",
687
+ "outputs": [
688
+ {
689
+ "internalType": "uint256",
690
+ "name": "fee",
691
+ "type": "uint256"
692
+ }
693
+ ],
694
+ "stateMutability": "payable",
695
+ "type": "function"
696
+ },
697
+ {
698
+ "inputs": [],
699
+ "name": "defaultMultiplierBps",
700
+ "outputs": [
701
+ {
702
+ "internalType": "uint16",
703
+ "name": "",
704
+ "type": "uint16"
705
+ }
706
+ ],
707
+ "stateMutability": "view",
708
+ "type": "function"
709
+ },
710
+ {
711
+ "inputs": [
712
+ {
713
+ "internalType": "uint32",
714
+ "name": "dstEid",
715
+ "type": "uint32"
716
+ }
717
+ ],
718
+ "name": "dstConfig",
719
+ "outputs": [
720
+ {
721
+ "internalType": "uint64",
722
+ "name": "gas",
723
+ "type": "uint64"
724
+ },
725
+ {
726
+ "internalType": "uint16",
727
+ "name": "multiplierBps",
728
+ "type": "uint16"
729
+ },
730
+ {
731
+ "internalType": "uint128",
732
+ "name": "floorMarginUSD",
733
+ "type": "uint128"
734
+ }
735
+ ],
736
+ "stateMutability": "view",
737
+ "type": "function"
738
+ },
739
+ {
740
+ "inputs": [
741
+ {
742
+ "components": [
743
+ {
744
+ "internalType": "uint32",
745
+ "name": "vid",
746
+ "type": "uint32"
747
+ },
748
+ {
749
+ "internalType": "address",
750
+ "name": "target",
751
+ "type": "address"
752
+ },
753
+ {
754
+ "internalType": "bytes",
755
+ "name": "callData",
756
+ "type": "bytes"
757
+ },
758
+ {
759
+ "internalType": "uint256",
760
+ "name": "expiration",
761
+ "type": "uint256"
762
+ },
763
+ {
764
+ "internalType": "bytes",
765
+ "name": "signatures",
766
+ "type": "bytes"
767
+ }
768
+ ],
769
+ "internalType": "struct ExecuteParam[]",
770
+ "name": "_params",
771
+ "type": "tuple[]"
772
+ }
773
+ ],
774
+ "name": "execute",
775
+ "outputs": [],
776
+ "stateMutability": "nonpayable",
777
+ "type": "function"
778
+ },
779
+ {
780
+ "inputs": [
781
+ {
782
+ "internalType": "uint32",
783
+ "name": "_dstEid",
784
+ "type": "uint32"
785
+ },
786
+ {
787
+ "internalType": "uint64",
788
+ "name": "_confirmations",
789
+ "type": "uint64"
790
+ },
791
+ {
792
+ "internalType": "address",
793
+ "name": "_sender",
794
+ "type": "address"
795
+ },
796
+ {
797
+ "internalType": "bytes",
798
+ "name": "_options",
799
+ "type": "bytes"
800
+ }
801
+ ],
802
+ "name": "getFee",
803
+ "outputs": [
804
+ {
805
+ "internalType": "uint256",
806
+ "name": "fee",
807
+ "type": "uint256"
808
+ }
809
+ ],
810
+ "stateMutability": "view",
811
+ "type": "function"
812
+ },
813
+ {
814
+ "inputs": [
815
+ {
816
+ "internalType": "uint16",
817
+ "name": "_dstEid",
818
+ "type": "uint16"
819
+ },
820
+ {
821
+ "internalType": "uint16",
822
+ "name": "",
823
+ "type": "uint16"
824
+ },
825
+ {
826
+ "internalType": "uint64",
827
+ "name": "_confirmations",
828
+ "type": "uint64"
829
+ },
830
+ {
831
+ "internalType": "address",
832
+ "name": "_sender",
833
+ "type": "address"
834
+ }
835
+ ],
836
+ "name": "getFee",
837
+ "outputs": [
838
+ {
839
+ "internalType": "uint256",
840
+ "name": "fee",
841
+ "type": "uint256"
842
+ }
843
+ ],
844
+ "stateMutability": "view",
845
+ "type": "function"
846
+ },
847
+ {
848
+ "inputs": [
849
+ {
850
+ "internalType": "address",
851
+ "name": "_sender",
852
+ "type": "address"
853
+ },
854
+ {
855
+ "internalType": "bytes",
856
+ "name": "",
857
+ "type": "bytes"
858
+ },
859
+ {
860
+ "internalType": "bytes",
861
+ "name": "_cmd",
862
+ "type": "bytes"
863
+ },
864
+ {
865
+ "internalType": "bytes",
866
+ "name": "_options",
867
+ "type": "bytes"
868
+ }
869
+ ],
870
+ "name": "getFee",
871
+ "outputs": [
872
+ {
873
+ "internalType": "uint256",
874
+ "name": "fee",
875
+ "type": "uint256"
876
+ }
877
+ ],
878
+ "stateMutability": "view",
879
+ "type": "function"
880
+ },
881
+ {
882
+ "inputs": [
883
+ {
884
+ "internalType": "bytes32",
885
+ "name": "role",
886
+ "type": "bytes32"
887
+ }
888
+ ],
889
+ "name": "getRoleAdmin",
890
+ "outputs": [
891
+ {
892
+ "internalType": "bytes32",
893
+ "name": "",
894
+ "type": "bytes32"
895
+ }
896
+ ],
897
+ "stateMutability": "view",
898
+ "type": "function"
899
+ },
900
+ {
901
+ "inputs": [],
902
+ "name": "getSigners",
903
+ "outputs": [
904
+ {
905
+ "internalType": "address[]",
906
+ "name": "",
907
+ "type": "address[]"
908
+ }
909
+ ],
910
+ "stateMutability": "view",
911
+ "type": "function"
912
+ },
913
+ {
914
+ "inputs": [
915
+ {
916
+ "internalType": "uint32",
917
+ "name": "_eid",
918
+ "type": "uint32"
919
+ }
920
+ ],
921
+ "name": "getSupportedOptionTypes",
922
+ "outputs": [
923
+ {
924
+ "internalType": "uint8[]",
925
+ "name": "",
926
+ "type": "uint8[]"
927
+ }
928
+ ],
929
+ "stateMutability": "view",
930
+ "type": "function"
931
+ },
932
+ {
933
+ "inputs": [
934
+ {
935
+ "internalType": "bytes32",
936
+ "name": "_role",
937
+ "type": "bytes32"
938
+ },
939
+ {
940
+ "internalType": "address",
941
+ "name": "_account",
942
+ "type": "address"
943
+ }
944
+ ],
945
+ "name": "grantRole",
946
+ "outputs": [],
947
+ "stateMutability": "nonpayable",
948
+ "type": "function"
949
+ },
950
+ {
951
+ "inputs": [
952
+ {
953
+ "internalType": "address",
954
+ "name": "_sender",
955
+ "type": "address"
956
+ }
957
+ ],
958
+ "name": "hasAcl",
959
+ "outputs": [
960
+ {
961
+ "internalType": "bool",
962
+ "name": "",
963
+ "type": "bool"
964
+ }
965
+ ],
966
+ "stateMutability": "view",
967
+ "type": "function"
968
+ },
969
+ {
970
+ "inputs": [
971
+ {
972
+ "internalType": "bytes32",
973
+ "name": "role",
974
+ "type": "bytes32"
975
+ },
976
+ {
977
+ "internalType": "address",
978
+ "name": "account",
979
+ "type": "address"
980
+ }
981
+ ],
982
+ "name": "hasRole",
983
+ "outputs": [
984
+ {
985
+ "internalType": "bool",
986
+ "name": "",
987
+ "type": "bool"
988
+ }
989
+ ],
990
+ "stateMutability": "view",
991
+ "type": "function"
992
+ },
993
+ {
994
+ "inputs": [
995
+ {
996
+ "internalType": "uint32",
997
+ "name": "_vid",
998
+ "type": "uint32"
999
+ },
1000
+ {
1001
+ "internalType": "address",
1002
+ "name": "_target",
1003
+ "type": "address"
1004
+ },
1005
+ {
1006
+ "internalType": "bytes",
1007
+ "name": "_callData",
1008
+ "type": "bytes"
1009
+ },
1010
+ {
1011
+ "internalType": "uint256",
1012
+ "name": "_expiration",
1013
+ "type": "uint256"
1014
+ }
1015
+ ],
1016
+ "name": "hashCallData",
1017
+ "outputs": [
1018
+ {
1019
+ "internalType": "bytes32",
1020
+ "name": "",
1021
+ "type": "bytes32"
1022
+ }
1023
+ ],
1024
+ "stateMutability": "pure",
1025
+ "type": "function"
1026
+ },
1027
+ {
1028
+ "inputs": [
1029
+ {
1030
+ "internalType": "address",
1031
+ "name": "_signer",
1032
+ "type": "address"
1033
+ }
1034
+ ],
1035
+ "name": "isSigner",
1036
+ "outputs": [
1037
+ {
1038
+ "internalType": "bool",
1039
+ "name": "",
1040
+ "type": "bool"
1041
+ }
1042
+ ],
1043
+ "stateMutability": "view",
1044
+ "type": "function"
1045
+ },
1046
+ {
1047
+ "inputs": [],
1048
+ "name": "localEidV2",
1049
+ "outputs": [
1050
+ {
1051
+ "internalType": "uint32",
1052
+ "name": "",
1053
+ "type": "uint32"
1054
+ }
1055
+ ],
1056
+ "stateMutability": "view",
1057
+ "type": "function"
1058
+ },
1059
+ {
1060
+ "inputs": [],
1061
+ "name": "paused",
1062
+ "outputs": [
1063
+ {
1064
+ "internalType": "bool",
1065
+ "name": "",
1066
+ "type": "bool"
1067
+ }
1068
+ ],
1069
+ "stateMutability": "view",
1070
+ "type": "function"
1071
+ },
1072
+ {
1073
+ "inputs": [],
1074
+ "name": "priceFeed",
1075
+ "outputs": [
1076
+ {
1077
+ "internalType": "address",
1078
+ "name": "",
1079
+ "type": "address"
1080
+ }
1081
+ ],
1082
+ "stateMutability": "view",
1083
+ "type": "function"
1084
+ },
1085
+ {
1086
+ "inputs": [],
1087
+ "name": "quorum",
1088
+ "outputs": [
1089
+ {
1090
+ "internalType": "uint64",
1091
+ "name": "",
1092
+ "type": "uint64"
1093
+ }
1094
+ ],
1095
+ "stateMutability": "view",
1096
+ "type": "function"
1097
+ },
1098
+ {
1099
+ "inputs": [
1100
+ {
1101
+ "components": [
1102
+ {
1103
+ "internalType": "uint32",
1104
+ "name": "vid",
1105
+ "type": "uint32"
1106
+ },
1107
+ {
1108
+ "internalType": "address",
1109
+ "name": "target",
1110
+ "type": "address"
1111
+ },
1112
+ {
1113
+ "internalType": "bytes",
1114
+ "name": "callData",
1115
+ "type": "bytes"
1116
+ },
1117
+ {
1118
+ "internalType": "uint256",
1119
+ "name": "expiration",
1120
+ "type": "uint256"
1121
+ },
1122
+ {
1123
+ "internalType": "bytes",
1124
+ "name": "signatures",
1125
+ "type": "bytes"
1126
+ }
1127
+ ],
1128
+ "internalType": "struct ExecuteParam",
1129
+ "name": "_param",
1130
+ "type": "tuple"
1131
+ }
1132
+ ],
1133
+ "name": "quorumChangeAdmin",
1134
+ "outputs": [],
1135
+ "stateMutability": "nonpayable",
1136
+ "type": "function"
1137
+ },
1138
+ {
1139
+ "inputs": [
1140
+ {
1141
+ "internalType": "bytes32",
1142
+ "name": "",
1143
+ "type": "bytes32"
1144
+ },
1145
+ {
1146
+ "internalType": "address",
1147
+ "name": "",
1148
+ "type": "address"
1149
+ }
1150
+ ],
1151
+ "name": "renounceRole",
1152
+ "outputs": [],
1153
+ "stateMutability": "pure",
1154
+ "type": "function"
1155
+ },
1156
+ {
1157
+ "inputs": [
1158
+ {
1159
+ "internalType": "bytes32",
1160
+ "name": "_role",
1161
+ "type": "bytes32"
1162
+ },
1163
+ {
1164
+ "internalType": "address",
1165
+ "name": "_account",
1166
+ "type": "address"
1167
+ }
1168
+ ],
1169
+ "name": "revokeRole",
1170
+ "outputs": [],
1171
+ "stateMutability": "nonpayable",
1172
+ "type": "function"
1173
+ },
1174
+ {
1175
+ "inputs": [
1176
+ {
1177
+ "internalType": "uint16",
1178
+ "name": "_multiplierBps",
1179
+ "type": "uint16"
1180
+ }
1181
+ ],
1182
+ "name": "setDefaultMultiplierBps",
1183
+ "outputs": [],
1184
+ "stateMutability": "nonpayable",
1185
+ "type": "function"
1186
+ },
1187
+ {
1188
+ "inputs": [
1189
+ {
1190
+ "components": [
1191
+ {
1192
+ "internalType": "uint32",
1193
+ "name": "dstEid",
1194
+ "type": "uint32"
1195
+ },
1196
+ {
1197
+ "internalType": "uint64",
1198
+ "name": "gas",
1199
+ "type": "uint64"
1200
+ },
1201
+ {
1202
+ "internalType": "uint16",
1203
+ "name": "multiplierBps",
1204
+ "type": "uint16"
1205
+ },
1206
+ {
1207
+ "internalType": "uint128",
1208
+ "name": "floorMarginUSD",
1209
+ "type": "uint128"
1210
+ }
1211
+ ],
1212
+ "internalType": "struct IDVN.DstConfigParam[]",
1213
+ "name": "_params",
1214
+ "type": "tuple[]"
1215
+ }
1216
+ ],
1217
+ "name": "setDstConfig",
1218
+ "outputs": [],
1219
+ "stateMutability": "nonpayable",
1220
+ "type": "function"
1221
+ },
1222
+ {
1223
+ "inputs": [
1224
+ {
1225
+ "internalType": "bool",
1226
+ "name": "_paused",
1227
+ "type": "bool"
1228
+ }
1229
+ ],
1230
+ "name": "setPaused",
1231
+ "outputs": [],
1232
+ "stateMutability": "nonpayable",
1233
+ "type": "function"
1234
+ },
1235
+ {
1236
+ "inputs": [
1237
+ {
1238
+ "internalType": "address",
1239
+ "name": "_priceFeed",
1240
+ "type": "address"
1241
+ }
1242
+ ],
1243
+ "name": "setPriceFeed",
1244
+ "outputs": [],
1245
+ "stateMutability": "nonpayable",
1246
+ "type": "function"
1247
+ },
1248
+ {
1249
+ "inputs": [
1250
+ {
1251
+ "internalType": "uint64",
1252
+ "name": "_quorum",
1253
+ "type": "uint64"
1254
+ }
1255
+ ],
1256
+ "name": "setQuorum",
1257
+ "outputs": [],
1258
+ "stateMutability": "nonpayable",
1259
+ "type": "function"
1260
+ },
1261
+ {
1262
+ "inputs": [
1263
+ {
1264
+ "internalType": "address",
1265
+ "name": "_signer",
1266
+ "type": "address"
1267
+ },
1268
+ {
1269
+ "internalType": "bool",
1270
+ "name": "_active",
1271
+ "type": "bool"
1272
+ }
1273
+ ],
1274
+ "name": "setSigner",
1275
+ "outputs": [],
1276
+ "stateMutability": "nonpayable",
1277
+ "type": "function"
1278
+ },
1279
+ {
1280
+ "inputs": [
1281
+ {
1282
+ "internalType": "uint32",
1283
+ "name": "_eid",
1284
+ "type": "uint32"
1285
+ },
1286
+ {
1287
+ "internalType": "uint8[]",
1288
+ "name": "_optionTypes",
1289
+ "type": "uint8[]"
1290
+ }
1291
+ ],
1292
+ "name": "setSupportedOptionTypes",
1293
+ "outputs": [],
1294
+ "stateMutability": "nonpayable",
1295
+ "type": "function"
1296
+ },
1297
+ {
1298
+ "inputs": [
1299
+ {
1300
+ "internalType": "address",
1301
+ "name": "_workerFeeLib",
1302
+ "type": "address"
1303
+ }
1304
+ ],
1305
+ "name": "setWorkerFeeLib",
1306
+ "outputs": [],
1307
+ "stateMutability": "nonpayable",
1308
+ "type": "function"
1309
+ },
1310
+ {
1311
+ "inputs": [],
1312
+ "name": "signerSize",
1313
+ "outputs": [
1314
+ {
1315
+ "internalType": "uint256",
1316
+ "name": "",
1317
+ "type": "uint256"
1318
+ }
1319
+ ],
1320
+ "stateMutability": "view",
1321
+ "type": "function"
1322
+ },
1323
+ {
1324
+ "inputs": [
1325
+ {
1326
+ "internalType": "address",
1327
+ "name": "_signer",
1328
+ "type": "address"
1329
+ }
1330
+ ],
1331
+ "name": "signers",
1332
+ "outputs": [
1333
+ {
1334
+ "internalType": "bool",
1335
+ "name": "",
1336
+ "type": "bool"
1337
+ }
1338
+ ],
1339
+ "stateMutability": "view",
1340
+ "type": "function"
1341
+ },
1342
+ {
1343
+ "inputs": [
1344
+ {
1345
+ "internalType": "bytes4",
1346
+ "name": "interfaceId",
1347
+ "type": "bytes4"
1348
+ }
1349
+ ],
1350
+ "name": "supportsInterface",
1351
+ "outputs": [
1352
+ {
1353
+ "internalType": "bool",
1354
+ "name": "",
1355
+ "type": "bool"
1356
+ }
1357
+ ],
1358
+ "stateMutability": "view",
1359
+ "type": "function"
1360
+ },
1361
+ {
1362
+ "inputs": [
1363
+ {
1364
+ "internalType": "bytes32",
1365
+ "name": "executableHash",
1366
+ "type": "bytes32"
1367
+ }
1368
+ ],
1369
+ "name": "usedHashes",
1370
+ "outputs": [
1371
+ {
1372
+ "internalType": "bool",
1373
+ "name": "used",
1374
+ "type": "bool"
1375
+ }
1376
+ ],
1377
+ "stateMutability": "view",
1378
+ "type": "function"
1379
+ },
1380
+ {
1381
+ "inputs": [
1382
+ {
1383
+ "internalType": "bytes32",
1384
+ "name": "_hash",
1385
+ "type": "bytes32"
1386
+ },
1387
+ {
1388
+ "internalType": "bytes",
1389
+ "name": "_signatures",
1390
+ "type": "bytes"
1391
+ }
1392
+ ],
1393
+ "name": "verifySignatures",
1394
+ "outputs": [
1395
+ {
1396
+ "internalType": "bool",
1397
+ "name": "",
1398
+ "type": "bool"
1399
+ },
1400
+ {
1401
+ "internalType": "enum MultiSig.Errors",
1402
+ "name": "",
1403
+ "type": "uint8"
1404
+ }
1405
+ ],
1406
+ "stateMutability": "view",
1407
+ "type": "function"
1408
+ },
1409
+ {
1410
+ "inputs": [],
1411
+ "name": "vid",
1412
+ "outputs": [
1413
+ {
1414
+ "internalType": "uint32",
1415
+ "name": "",
1416
+ "type": "uint32"
1417
+ }
1418
+ ],
1419
+ "stateMutability": "view",
1420
+ "type": "function"
1421
+ },
1422
+ {
1423
+ "inputs": [
1424
+ {
1425
+ "internalType": "address",
1426
+ "name": "_lib",
1427
+ "type": "address"
1428
+ },
1429
+ {
1430
+ "internalType": "address",
1431
+ "name": "_to",
1432
+ "type": "address"
1433
+ },
1434
+ {
1435
+ "internalType": "uint256",
1436
+ "name": "_amount",
1437
+ "type": "uint256"
1438
+ }
1439
+ ],
1440
+ "name": "withdrawFee",
1441
+ "outputs": [],
1442
+ "stateMutability": "nonpayable",
1443
+ "type": "function"
1444
+ },
1445
+ {
1446
+ "inputs": [
1447
+ {
1448
+ "internalType": "address",
1449
+ "name": "_lib",
1450
+ "type": "address"
1451
+ },
1452
+ {
1453
+ "internalType": "address payable",
1454
+ "name": "_to",
1455
+ "type": "address"
1456
+ },
1457
+ {
1458
+ "internalType": "uint256",
1459
+ "name": "_amount",
1460
+ "type": "uint256"
1461
+ }
1462
+ ],
1463
+ "name": "withdrawFeeFromUlnV2",
1464
+ "outputs": [],
1465
+ "stateMutability": "nonpayable",
1466
+ "type": "function"
1467
+ },
1468
+ {
1469
+ "inputs": [
1470
+ {
1471
+ "internalType": "address",
1472
+ "name": "_token",
1473
+ "type": "address"
1474
+ },
1475
+ {
1476
+ "internalType": "address",
1477
+ "name": "_to",
1478
+ "type": "address"
1479
+ },
1480
+ {
1481
+ "internalType": "uint256",
1482
+ "name": "_amount",
1483
+ "type": "uint256"
1484
+ }
1485
+ ],
1486
+ "name": "withdrawToken",
1487
+ "outputs": [],
1488
+ "stateMutability": "nonpayable",
1489
+ "type": "function"
1490
+ },
1491
+ {
1492
+ "inputs": [],
1493
+ "name": "workerFeeLib",
1494
+ "outputs": [
1495
+ {
1496
+ "internalType": "address",
1497
+ "name": "",
1498
+ "type": "address"
1499
+ }
1500
+ ],
1501
+ "stateMutability": "view",
1502
+ "type": "function"
1503
+ }
1504
+ ],
1505
+ "bytecode": "0x60c06040523480156200001157600080fd5b50604051620054c9380380620054c983398101604081905262000034916200052c565b6001805460ff61ffff60e81b01191661017760ed1b179055600280546001600160a01b0319166001600160a01b03861617905582828686612ee060008660005b8551811015620000d557620000cc7f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de878381518110620000b857620000b862000610565b60200260200101516200026960201b60201c565b60010162000074565b5060005b815181101562000126576200011d7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775838381518110620000b857620000b862000610565b600101620000d9565b505050505050806001600160401b03166000036200015757604051635f86e17760e01b815260040160405180910390fd5b60005b8251811015620001d15760008382815181106200017b576200017b62000610565b6020026020010151905060006001600160a01b0316816001600160a01b031603620001b957604051632e5fb71360e11b815260040160405180910390fd5b620001c660048262000317565b50506001016200015a565b506000620001e0600462000337565b9050816001600160401b0316816001600160401b031610156200022d576040516378e2c15760e11b81526001600160401b0380831660048301528316602482015260440160405180910390fd5b50600680546001600160401b0319166001600160401b03929092169190911790555050505063ffffffff92831660805250501660a05262000663565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015620002ba57506000828152602081815260408083206001600160a01b038516845290915290205460ff16155b15620003075760018054601590620002e290600160a81b90046001600160401b031662000626565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b62000313828262000342565b5050565b60006200032e836001600160a01b038416620003e2565b90505b92915050565b600062000331825490565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000313576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200039e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008181526001830160205260408120546200042b5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000331565b50600062000331565b805163ffffffff811681146200044957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200044957600080fd5b600082601f8301126200048e57600080fd5b815160206001600160401b0380831115620004ad57620004ad6200044e565b8260051b604051601f19603f83011681018181108482111715620004d557620004d56200044e565b6040529384526020818701810194908101925087851115620004f657600080fd5b6020870191505b848210156200052157620005118262000464565b83529183019190830190620004fd565b979650505050505050565b600080600080600080600060e0888a0312156200054857600080fd5b620005538862000434565b9650620005636020890162000434565b60408901519096506001600160401b03808211156200058157600080fd5b6200058f8b838c016200047c565b96506200059f60608b0162000464565b955060808a0151915080821115620005b657600080fd5b620005c48b838c016200047c565b945060a08a015191508082168214620005dc57600080fd5b60c08a015191935080821115620005f257600080fd5b50620006018a828b016200047c565b91505092959891949750929550565b634e487b7160e01b600052603260045260246000fd5b60006001600160401b038281166002600160401b031981016200065957634e487b7160e01b600052601160045260246000fd5b6001019392505050565b60805160a051614e24620006a560003960008181610985015281816125ab015261273f0152600081816108c2015281816117d1015261231d0152614e246000f3fe6080604052600436106102e65760003560e01c806394cf795e11610184578063cd88b903116100d6578063e395eb5c1161008a578063f42ed2ed11610064578063f42ed2ed146109e7578063fd62e750146109fa578063fdb9b0f114610a0f57600080fd5b8063e395eb5c14610973578063f010cb23146109a7578063f3b4ebd0146109c757600080fd5b8063d2ae2104116100bb578063d2ae2104146108f9578063d547741f14610933578063dafe0ccc1461095357600080fd5b8063cd88b90314610890578063cf34c768146108b057600080fd5b8063b143044b11610138578063c5e193cd11610112578063c5e193cd14610822578063c7a823e014610842578063c7b2370b1461087057600080fd5b8063b143044b146107b0578063c358de0a146107d0578063c416aa51146107f057600080fd5b80639e944965116101695780639e944965146106c6578063a217fddf1461076b578063aef18bf71461078057600080fd5b806394cf795e1461069157806395d376d7146106b357600080fd5b806331cb61051161023d578063724e78da116101f15780637df73e27116101cb5780637df73e27146106005780638585c9451461062057806391d148541461064057600080fd5b8063724e78da1461056e578063736c0d5b1461058e578063741bef1a146105ae57600080fd5b806352d3b8711161022257806352d3b871146105165780635553fb8e146105365780635c975abb1461055657600080fd5b806331cb6105146104d657806336568abe146104f657600080fd5b80631703a0181161029f5780632de11376116102795780632de11376146104765780632f2ff15d1461049657806330bb3aac146104b657600080fd5b80631703a018146103d1578063248a9ca31461040b57806326e67a371461044957600080fd5b806301ffc9a7116102d057806301ffc9a7146103615780631095b6d71461039157806316c38b3c146103b157600080fd5b8062bf2e80146102eb57806301e336671461033f575b600080fd5b3480156102f757600080fd5b50600154610327907d010000000000000000000000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561034b57600080fd5b5061035f61035a366004613d67565b610a2f565b005b34801561036d57600080fd5b5061038161037c366004613da8565b610a6a565b6040519015158152602001610336565b34801561039d57600080fd5b5061035f6103ac366004613d67565b610b03565b3480156103bd57600080fd5b5061035f6103cc366004613df8565b610c93565b3480156103dd57600080fd5b506006546103f29067ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610336565b34801561041757600080fd5b5061043b610426366004613e15565b60009081526020819052604090206001015490565b604051908152602001610336565b34801561045557600080fd5b50610469610464366004613e42565b610cb8565b6040516103369190613e5d565b34801561048257600080fd5b50610381610491366004613ea4565b610d3f565b3480156104a257600080fd5b5061035f6104b1366004613ec1565b610e24565b3480156104c257600080fd5b5061043b6104d1366004613f4b565b610f78565b3480156104e257600080fd5b5061035f6104f1366004613fc3565b6110e3565b34801561050257600080fd5b5061035f610511366004613ec1565b611126565b34801561052257600080fd5b5061035f610531366004613ff1565b611158565b34801561054257600080fd5b5061043b610551366004614078565b611324565b34801561056257600080fd5b5060015460ff16610381565b34801561057a57600080fd5b5061035f610589366004613ea4565b61148f565b34801561059a57600080fd5b506103816105a9366004613ea4565b611534565b3480156105ba57600080fd5b506002546105db9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610336565b34801561060c57600080fd5b5061038161061b366004613ea4565b61153b565b34801561062c57600080fd5b5061035f61063b3660046140ce565b611548565b34801561064c57600080fd5b5061038161065b366004613ec1565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b34801561069d57600080fd5b506106a661158d565b60405161033691906140e9565b61043b6106c136600461414f565b61159e565b3480156106d257600080fd5b506107306106e1366004613e42565b60076020526000908152604090205467ffffffffffffffff81169068010000000000000000810461ffff16906a010000000000000000000090046fffffffffffffffffffffffffffffffff1683565b6040805167ffffffffffffffff909416845261ffff90921660208401526fffffffffffffffffffffffffffffffff1690820152606001610336565b34801561077757600080fd5b5061043b600081565b34801561078c57600080fd5b5061038161079b366004613e15565b60086020526000908152604090205460ff1681565b3480156107bc57600080fd5b5061035f6107cb3660046141fd565b61176e565b3480156107dc57600080fd5b5061035f6107eb36600461423f565b611a7e565b3480156107fc57600080fd5b506001546105db90610100900473ffffffffffffffffffffffffffffffffffffffff1681565b34801561082e57600080fd5b5061043b61083d366004614078565b611b2c565b34801561084e57600080fd5b5061086261085d36600461425a565b611cfe565b6040516103369291906142c8565b34801561087c57600080fd5b5061035f61088b366004613ea4565b611ed6565b34801561089c57600080fd5b5061035f6108ab366004614315565b611f7a565b3480156108bc57600080fd5b506108e47f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610336565b34801561090557600080fd5b506001546103f2907501000000000000000000000000000000000000000000900467ffffffffffffffff1681565b34801561093f57600080fd5b5061035f61094e366004613ec1565b611fcb565b34801561095f57600080fd5b5061035f61096e366004613d67565b6120e0565b34801561097f57600080fd5b506108e47f000000000000000000000000000000000000000000000000000000000000000081565b3480156109b357600080fd5b5061043b6109c236600461435b565b612216565b3480156109d357600080fd5b5061035f6109e23660046143c6565b612252565b61043b6109f53660046143fb565b6124c7565b348015610a0657600080fd5b5061043b612679565b348015610a1b57600080fd5b5061043b610a2a3660046143fb565b612685565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610a598161280a565b610a64848484612814565b50505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b000000000000000000000000000000000000000000000000000000001480610afd57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610b2d8161280a565b73ffffffffffffffffffffffffffffffffffffffff841660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff16610bab576040517f5ee08b9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b158015610c1b57600080fd5b505af1158015610c2f573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb925060600190505b60405180910390a150505050565b6000610c9e8161280a565b8115610cb057610cac612844565b5050565b610cac6128c3565b63ffffffff8116600090815260036020908152604091829020805483518184028101840190945280845260609392830182828015610d3357602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610d045790505b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff811660009081527f93c430521711328044ae92d0f1f1286cf040bc4a382f1642bd89984e86630553602052604081205460ff1615610d9457506000919050565b6001547501000000000000000000000000000000000000000000900467ffffffffffffffff161580610e0a575073ffffffffffffffffffffffffffffffffffffffff821660009081527f4ac82e3087b7dedf7f532cbc6915c722df8c1e31f1388c318a617b52760eaf8b602052604090205460ff165b15610e1757506001919050565b506000919050565b919050565b817f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca811480610e7257507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b80610e9c57507f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de81145b15610edf57303314610eda576040517ffaba723a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f69565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758103610f2f57610eda7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561280a565b6040517f94fdc372000000000000000000000000000000000000000000000000000000008152600481018290526024015b60405180910390fd5b610f73838361291a565b505050565b600083610f8481610d3f565b610fba576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c08101825260025473ffffffffffffffffffffffffffffffffffffffff908116825263ffffffff8a16602080840182905267ffffffffffffffff808c16858701528a8416606086015260065416608085015260015461ffff7d01000000000000000000000000000000000000000000000000000000000082041660a0860152600092835260079091529084902093517f7bfa20a9000000000000000000000000000000000000000000000000000000008152929361010090910490911691637bfa20a991611096918591908a908a906004016144f1565b602060405180830381865afa1580156110b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d791906145be565b98975050505050505050565b30331461111c576040517ffaba723a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cac82826129e0565b6040517fdec9f03100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756111828161280a565b60005b828110156112e557368484838181106111a0576111a06145d7565b905060800201905060405180606001604052808260200160208101906111c691906140ce565b67ffffffffffffffff1681526020016111e5606084016040850161423f565b61ffff1681526020016111fe6080840160608501614626565b6fffffffffffffffffffffffffffffffff169052600760006112236020850185613e42565b63ffffffff1681526020808201929092526040908101600020835181549385015194909201516fffffffffffffffffffffffffffffffff166a0100000000000000000000027fffffffffffff00000000000000000000000000000000ffffffffffffffffffff61ffff90951668010000000000000000027fffffffffffffffffffffffffffffffffffffffffffff0000000000000000000090941667ffffffffffffffff90931692909217929092179290921691909117905550600101611185565b507f7dd21e42791b013d1929e86f0c59085e4fca24251f0f1aa81917b3b1611766e08383604051611317929190614641565b60405180910390a1505050565b60008161133081610d3f565b611366576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c08101825260025473ffffffffffffffffffffffffffffffffffffffff908116825261ffff808a16602080850182905267ffffffffffffffff808b168688015289851660608701526006541660808601526001547d010000000000000000000000000000000000000000000000000000000000810490931660a08601526000918252600781528582208651918201875291815294517f7bfa20a9000000000000000000000000000000000000000000000000000000008152939461010090920490921692637bfa20a99261144392869260040161474d565b602060405180830381865afa158015611460573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148491906145be565b979650505050505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756114b98161280a565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020015b60405180910390a15050565b6000610afd825b6000610afd600483612bb5565b303314611581576040517ffaba723a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61158a81612be7565b50565b60606115996004612d02565b905090565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de6115ca8161280a565b6115da60a0860160808701613ea4565b6115e381610d3f565b611619576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c0810190915260025473ffffffffffffffffffffffffffffffffffffffff168152600090602080820190611654908a018a613e42565b63ffffffff16815260200161166f60808a0160608b016140ce565b67ffffffffffffffff16815260200161168e60a08a0160808b01613ea4565b73ffffffffffffffffffffffffffffffffffffffff908116825260065467ffffffffffffffff1660208084019190915260015461ffff7d010000000000000000000000000000000000000000000000000000000000820416604090940193909352929350610100909104169063df2b057e908390600790600090611714908d018d613e42565b63ffffffff1663ffffffff16815260200190815260200160002089896040518563ffffffff1660e01b815260040161174f94939291906144f1565b6020604051808303816000875af1158015611460573d6000803e3d6000fd5b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756117988161280a565b60005b82811015610a6457368484838181106117b6576117b66145d7565b90506020028101906117c89190614823565b905063ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166117fe6020830183613e42565b63ffffffff161461180f5750611a76565b428160600135116118205750611a76565b60006118596118326020840184613e42565b6118426040850160208601613ea4565b61184f6040860186614861565b8660600135612216565b9050600061186e8261085d6080860186614861565b509050806118b1576040518481527fd6d90193101048cc1b6edcdc2348f5acf7a4a4a97d3e7b668b74cb7602ab3ebc9060200160405180910390a1505050611a76565b60006118d16118c36040860186614861565b6118cc916148c6565b612d0f565b9050801561196a5760008381526008602052604090205460ff1615611932577f9bb9bddbdf537a2104255307230b323d7982f4512ee8e5bd15df62ddca50ab978484604051611921929190614972565b60405180910390a150505050611a76565b600083815260086020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555b60008061197d6040870160208801613ea4565b73ffffffffffffffffffffffffffffffffffffffff166119a06040880188614861565b6040516119ae929190614a38565b6000604051808303816000865af19150503d80600081146119eb576040519150601f19603f3d011682016040523d82523d6000602084013e6119f0565b606091505b509150915081611a6f578215611a3557600085815260086020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b7fdc8cdd96296241bbefda4a8e18ad2e0985a8da6495b34d409cfc4c886ee3b0cf8782604051611a66929190614a48565b60405180910390a15b5050505050505b60010161179b565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611aa88161280a565b600180547fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167d01000000000000000000000000000000000000000000000000000000000061ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d90602001611528565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de611b588161280a565b82611b6281610d3f565b611b98576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c08101825260025473ffffffffffffffffffffffffffffffffffffffff908116825261ffff808b16602080850182905267ffffffffffffffff808c16868801528a851660608701526006541660808601526001547d010000000000000000000000000000000000000000000000000000000000810490931660a08601526000918252600781528582208651918201875291815294517fdf2b057e00000000000000000000000000000000000000000000000000000000815293946101009092049092169263df2b057e92611c7592869260040161474d565b6020604051808303816000875af1158015611c94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb891906145be565b93507f87e46b0a6199bc734632187269a103c05714ee0adae5b28f30723955724f37ef84604051611ceb91815260200190565b60405180910390a1505050949350505050565b6006546000908190611d1b9067ffffffffffffffff166041614a90565b8314611d2d5750600090506001611ece565b6000611d86866040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b90506000805b60065467ffffffffffffffff16811015611ec2573660008888611db0856041614a90565b90611dbc866001614aa7565b611dc7906041614a90565b92611dd493929190614aba565b91509150600080611e1b8785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612df892505050565b90925090506000816004811115611e3457611e34614299565b14611e4d57600060019850985050505050505050611ece565b8573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1611611e9457600060029850985050505050505050611ece565b611e9d8261153b565b611eb557600060039850985050505050505050611ece565b5093505050600101611d8c565b50600160009350935050505b935093915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611f008161280a565b600180547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010073ffffffffffffffffffffffffffffffffffffffff8516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e090602001611528565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611fa48161280a565b63ffffffff84166000908152600360205260409020611fc4908484613c87565b5050505050565b817f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca81148061201957507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b8061204357507f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de81145b1561208657303314612081576040517ffaba723a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6120d6565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758103610f2f576120817fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561280a565b610f738383612e3d565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561210a8161280a565b73ffffffffffffffffffffffffffffffffffffffff841660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff16612188576040517f5ee08b9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f07b18bde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018490528516906307b18bde90604401600060405180830381600087803b1580156121f857600080fd5b505af115801561220c573d6000803e3d6000fd5b5050505050505050565b60008585838686604051602001612231959493929190614ae4565b60405160208183030381529060405280519060200120905095945050505050565b4281606001351161228f576040517f0bbaf26300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b306122a06040830160208401613ea4565b73ffffffffffffffffffffffffffffffffffffffff1614612316576122cb6040820160208301613ea4565b6040517f1ce0bfcd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610f60565b63ffffffff7f00000000000000000000000000000000000000000000000000000000000000001661234a6020830183613e42565b63ffffffff161461239d576123626020820182613e42565b6040517f2697e1c200000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152602401610f60565b60006123af6118326020840184613e42565b905060006123c48261085d6080860186614861565b509050806123fe576040517f15ecadee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526008602052604090205460ff161561244a576040517f9d6a45a600000000000000000000000000000000000000000000000000000000815260048101839052602401610f60565b6000828152600860205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610f73907fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775906124b590860186614861565b8101906124c29190613ea4565b61291a565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de6124f38161280a565b886124fd81610d3f565b612533576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160808101825260025473ffffffffffffffffffffffffffffffffffffffff90811682528c811660208084019190915260065467ffffffffffffffff168385015260015461ffff7d010000000000000000000000000000000000000000000000000000000000820416606085015263ffffffff7f000000000000000000000000000000000000000000000000000000000000000016600090815260079092529084902093517fbbc5a33b00000000000000000000000000000000000000000000000000000000815292936101009091049091169163bbc5a33b91612627918591908d908d908d908d90600401614b56565b6020604051808303816000875af1158015612646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061266a91906145be565b9b9a5050505050505050505050565b60006115996004612f02565b60008761269181610d3f565b6126c7576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160808101825260025473ffffffffffffffffffffffffffffffffffffffff90811682528b811660208084019190915260065467ffffffffffffffff168385015260015461ffff7d010000000000000000000000000000000000000000000000000000000000820416606085015263ffffffff7f000000000000000000000000000000000000000000000000000000000000000016600090815260079092529084902093517fd358b30000000000000000000000000000000000000000000000000000000000815292936101009091049091169163d358b300916127bb918591908c908c908c908c90600401614b56565b602060405180830381865afa1580156127d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127fc91906145be565b9a9950505050505050505050565b61158a8133612f0c565b73ffffffffffffffffffffffffffffffffffffffff831661283957610f738282612fc4565b610f738383836130ca565b61284c613138565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b6128cb6131a7565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612899565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015612977575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16155b156129d657600180546015906129af907501000000000000000000000000000000000000000000900467ffffffffffffffff16614c1c565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610cac8282613213565b8015612a995773ffffffffffffffffffffffffffffffffffffffff8216612a33576040517f5cbf6e2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612a3e600483613303565b612a94576040517f58c8d2a000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201528115156024820152604401610f60565b612afa565b612aa4600483613325565b612afa576040517f7e1e4ae200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201528115156024820152604401610f60565b6000612b066004612f02565b60065490915067ffffffffffffffff908116908216811115612b68576040517ff1c582ae00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff808416600483015282166024820152604401610f60565b6040805173ffffffffffffffffffffffffffffffffffffffff8616815284151560208201527f863d338cad74814b108a06288ad5e0e80d56495e0332238b1d2cdcfa0ca8e5ce9101610c85565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260018301602052604081205415155b9392505050565b8067ffffffffffffffff16600003612c2b576040517f5f86e17700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612c376004612f02565b90508167ffffffffffffffff168167ffffffffffffffff161015612c9b576040517ff1c582ae00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff808316600483015283166024820152604401610f60565b600680547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff84169081179091556040519081527fb600f3cf7f38a4b49bb0c75f722ef69f7e3e39ef3bb4aa8207fd86e724a2324990602001611528565b60606000612be083613347565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0223536e0000000000000000000000000000000000000000000000000000000014801590612da557507fffffffff0000000000000000000000000000000000000000000000000000000082167fab750e750000000000000000000000000000000000000000000000000000000014155b8015610afd57507fffffffff0000000000000000000000000000000000000000000000000000000082167f704316e500000000000000000000000000000000000000000000000000000000141592915050565b6000808251604103612e2e5760208301516040840151606085015160001a612e22878285856133a2565b94509450505050612e36565b506000905060025b9250929050565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015612e99575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b15612ef85760018054601590612ed1907501000000000000000000000000000000000000000000900467ffffffffffffffff16614c43565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610cac8282613491565b6000610afd825490565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610cac57612f4a81613548565b612f55836020613567565b604051602001612f66929190614c85565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252610f6091600401614d06565b73ffffffffffffffffffffffffffffffffffffffff8216613011576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d806000811461306b576040519150601f19603f3d011682016040523d82523d6000602084013e613070565b606091505b5050905080610f73576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610f60565b73ffffffffffffffffffffffffffffffffffffffff8216613117576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f7373ffffffffffffffffffffffffffffffffffffffff841683836137aa565b60015460ff16156131a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610f60565b565b60015460ff166131a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610f60565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610cac5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556132a53390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000612be08373ffffffffffffffffffffffffffffffffffffffff8416613837565b6000612be08373ffffffffffffffffffffffffffffffffffffffff8416613886565b606081600001805480602002602001604051908101604052809291908181526020018280548015610d3357602002820191906000526020600020905b8154815260200190600101908083116133835750505050509050919050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156133d95750600090506003613488565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561342d573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661348157600060019250925050613488565b9150600090505b94509492505050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1615610cac5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6060610afd73ffffffffffffffffffffffffffffffffffffffff831660145b60606000613576836002614a90565b613581906002614aa7565b67ffffffffffffffff81111561359957613599614d19565b6040519080825280601f01601f1916602001820160405280156135c3576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106135fa576135fa6145d7565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061365d5761365d6145d7565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000613699846002614a90565b6136a4906001614aa7565b90505b6001811115613741577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106136e5576136e56145d7565b1a60f81b8282815181106136fb576136fb6145d7565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c9361373a81614d48565b90506136a7565b508315612be0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610f60565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610f73908490613979565b600081815260018301602052604081205461387e57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610afd565b506000610afd565b6000818152600183016020526040812054801561396f5760006138aa600183614d7d565b85549091506000906138be90600190614d7d565b90508181146139235760008660000182815481106138de576138de6145d7565b9060005260206000200154905080876000018481548110613901576139016145d7565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061393457613934614d90565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610afd565b6000915050610afd565b60006139db826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16613a889092919063ffffffff16565b90508051600014806139fc5750808060200190518101906139fc9190614dbf565b610f73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610f60565b6060613a978484600085613a9f565b949350505050565b606082471015613b31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610f60565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051613b5a9190614ddc565b60006040518083038185875af1925050503d8060008114613b97576040519150601f19603f3d011682016040523d82523d6000602084013e613b9c565b606091505b50915091506114848783838760608315613c3e578251600003613c375773ffffffffffffffffffffffffffffffffffffffff85163b613c37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610f60565b5081613a97565b613a978383815115613c535781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f609190614d06565b82805482825590600052602060002090601f01602090048101928215613d205791602002820160005b83821115613cf157833560ff1683826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302613cb0565b8015613d1e5782816101000a81549060ff0219169055600101602081600001049283019260010302613cf1565b505b50613d2c929150613d30565b5090565b5b80821115613d2c5760008155600101613d31565b73ffffffffffffffffffffffffffffffffffffffff8116811461158a57600080fd5b600080600060608486031215613d7c57600080fd5b8335613d8781613d45565b92506020840135613d9781613d45565b929592945050506040919091013590565b600060208284031215613dba57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612be057600080fd5b801515811461158a57600080fd5b600060208284031215613e0a57600080fd5b8135612be081613dea565b600060208284031215613e2757600080fd5b5035919050565b803563ffffffff81168114610e1f57600080fd5b600060208284031215613e5457600080fd5b612be082613e2e565b6020808252825182820181905260009190848201906040850190845b81811015613e9857835160ff1683529284019291840191600101613e79565b50909695505050505050565b600060208284031215613eb657600080fd5b8135612be081613d45565b60008060408385031215613ed457600080fd5b823591506020830135613ee681613d45565b809150509250929050565b803567ffffffffffffffff81168114610e1f57600080fd5b60008083601f840112613f1b57600080fd5b50813567ffffffffffffffff811115613f3357600080fd5b602083019150836020828501011115612e3657600080fd5b600080600080600060808688031215613f6357600080fd5b613f6c86613e2e565b9450613f7a60208701613ef1565b93506040860135613f8a81613d45565b9250606086013567ffffffffffffffff811115613fa657600080fd5b613fb288828901613f09565b969995985093965092949392505050565b60008060408385031215613fd657600080fd5b8235613fe181613d45565b91506020830135613ee681613dea565b6000806020838503121561400457600080fd5b823567ffffffffffffffff8082111561401c57600080fd5b818501915085601f83011261403057600080fd5b81358181111561403f57600080fd5b8660208260071b850101111561405457600080fd5b60209290920196919550909350505050565b803561ffff81168114610e1f57600080fd5b6000806000806080858703121561408e57600080fd5b61409785614066565b93506140a560208601614066565b92506140b360408601613ef1565b915060608501356140c381613d45565b939692955090935050565b6000602082840312156140e057600080fd5b612be082613ef1565b6020808252825182820181905260009190848201906040850190845b81811015613e9857835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101614105565b600060a0828403121561414957600080fd5b50919050565b60008060006040848603121561416457600080fd5b833567ffffffffffffffff8082111561417c57600080fd5b61418887838801614137565b9450602086013591508082111561419e57600080fd5b506141ab86828701613f09565b9497909650939450505050565b60008083601f8401126141ca57600080fd5b50813567ffffffffffffffff8111156141e257600080fd5b6020830191508360208260051b8501011115612e3657600080fd5b6000806020838503121561421057600080fd5b823567ffffffffffffffff81111561422757600080fd5b614233858286016141b8565b90969095509350505050565b60006020828403121561425157600080fd5b612be082614066565b60008060006040848603121561426f57600080fd5b83359250602084013567ffffffffffffffff81111561428d57600080fd5b6141ab86828701613f09565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b82151581526040810160048310614308577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8260208301529392505050565b60008060006040848603121561432a57600080fd5b61433384613e2e565b9250602084013567ffffffffffffffff81111561434f57600080fd5b6141ab868287016141b8565b60008060008060006080868803121561437357600080fd5b61437c86613e2e565b9450602086013561438c81613d45565b9350604086013567ffffffffffffffff8111156143a857600080fd5b6143b488828901613f09565b96999598509660600135949350505050565b6000602082840312156143d857600080fd5b813567ffffffffffffffff8111156143ef57600080fd5b613a9784828501614137565b60008060008060008060006080888a03121561441657600080fd5b873561442181613d45565b9650602088013567ffffffffffffffff8082111561443e57600080fd5b61444a8b838c01613f09565b909850965060408a013591508082111561446357600080fd5b61446f8b838c01613f09565b909650945060608a013591508082111561448857600080fd5b506144958a828b01613f09565b989b979a50959850939692959293505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6000610140614569838873ffffffffffffffffffffffffffffffffffffffff80825116835263ffffffff6020830151166020840152604082015167ffffffffffffffff808216604086015282606085015116606086015280608085015116608086015250505061ffff60a08201511660a08301525050565b6145aa60c08401875467ffffffffffffffff81168252604081811c61ffff16602084015260509190911c6fffffffffffffffffffffffffffffffff16910152565b8061012084015261148481840185876144a8565b6000602082840312156145d057600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80356fffffffffffffffffffffffffffffffff81168114610e1f57600080fd5b60006020828403121561463857600080fd5b612be082614606565b6020808252818101839052600090604080840186845b878110156146d25763ffffffff61466d83613e2e565b16835267ffffffffffffffff614684868401613ef1565b168584015261ffff614697858401614066565b168484015260606fffffffffffffffffffffffffffffffff6146ba828501614606565b16908401526080928301929190910190600101614657565b5090979650505050505050565b60005b838110156146fa5781810151838201526020016146e2565b50506000910152565b6000815180845261471b8160208601602086016146df565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60006101406147c5838773ffffffffffffffffffffffffffffffffffffffff80825116835263ffffffff6020830151166020840152604082015167ffffffffffffffff808216604086015282606085015116606086015280608085015116608086015250505061ffff60a08201511660a08301525050565b61480660c08401865467ffffffffffffffff81168252604081811c61ffff16602084015260509190911c6fffffffffffffffffffffffffffffffff16910152565b8061012084015261481981840185614703565b9695505050505050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6183360301811261485757600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261489657600080fd5b83018035915067ffffffffffffffff8211156148b157600080fd5b602001915036819003821315612e3657600080fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156149065780818660040360031b1b83161692505b505092915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261494357600080fd5b830160208101925035905067ffffffffffffffff81111561496357600080fd5b803603821315612e3657600080fd5b6040815263ffffffff61498484613e2e565b1660408201526000602084013561499a81613d45565b73ffffffffffffffffffffffffffffffffffffffff1660608301526149c2604085018561490e565b60a060808501526149d760e0850182846144a8565b915050606085013560a08401526149f1608086018661490e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08584030160c0860152614a268382846144a8565b93505050508260208301529392505050565b8183823760009101908152919050565b828152604060208201526000613a976040830184614703565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082028115828204841417610afd57610afd614a61565b80820180821115610afd57610afd614a61565b60008085851115614aca57600080fd5b83861115614ad757600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008660e01b1681527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b1660048201528360188201528183603883013760009101603801908152949350505050565b600061012073ffffffffffffffffffffffffffffffffffffffff808a511684528060208b01511660208501525067ffffffffffffffff60408a015116604084015261ffff60608a0151166060840152614be660808401895467ffffffffffffffff81168252604081811c61ffff16602084015260509190911c6fffffffffffffffffffffffffffffffff16910152565b8060e0840152614bf981840187896144a8565b9050828103610100840152614c0f8185876144a8565b9998505050505050505050565b600067ffffffffffffffff808316818103614c3957614c39614a61565b6001019392505050565b600067ffffffffffffffff821680614c5d57614c5d614a61565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614cbd8160178501602088016146df565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614cfa8160288401602088016146df565b01602801949350505050565b602081526000612be06020830184614703565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081614d5757614d57614a61565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b81810381811115610afd57610afd614a61565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600060208284031215614dd157600080fd5b8151612be081613dea565b600082516148578184602087016146df56fea2646970667358221220198a6ed2fc72043001b01d1b1945eeab857e3b52b5e2dd6f3d5106e342b43a0e64736f6c63430008160033",
1506
+ "deployedBytecode": "0x6080604052600436106102e65760003560e01c806394cf795e11610184578063cd88b903116100d6578063e395eb5c1161008a578063f42ed2ed11610064578063f42ed2ed146109e7578063fd62e750146109fa578063fdb9b0f114610a0f57600080fd5b8063e395eb5c14610973578063f010cb23146109a7578063f3b4ebd0146109c757600080fd5b8063d2ae2104116100bb578063d2ae2104146108f9578063d547741f14610933578063dafe0ccc1461095357600080fd5b8063cd88b90314610890578063cf34c768146108b057600080fd5b8063b143044b11610138578063c5e193cd11610112578063c5e193cd14610822578063c7a823e014610842578063c7b2370b1461087057600080fd5b8063b143044b146107b0578063c358de0a146107d0578063c416aa51146107f057600080fd5b80639e944965116101695780639e944965146106c6578063a217fddf1461076b578063aef18bf71461078057600080fd5b806394cf795e1461069157806395d376d7146106b357600080fd5b806331cb61051161023d578063724e78da116101f15780637df73e27116101cb5780637df73e27146106005780638585c9451461062057806391d148541461064057600080fd5b8063724e78da1461056e578063736c0d5b1461058e578063741bef1a146105ae57600080fd5b806352d3b8711161022257806352d3b871146105165780635553fb8e146105365780635c975abb1461055657600080fd5b806331cb6105146104d657806336568abe146104f657600080fd5b80631703a0181161029f5780632de11376116102795780632de11376146104765780632f2ff15d1461049657806330bb3aac146104b657600080fd5b80631703a018146103d1578063248a9ca31461040b57806326e67a371461044957600080fd5b806301ffc9a7116102d057806301ffc9a7146103615780631095b6d71461039157806316c38b3c146103b157600080fd5b8062bf2e80146102eb57806301e336671461033f575b600080fd5b3480156102f757600080fd5b50600154610327907d010000000000000000000000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561034b57600080fd5b5061035f61035a366004613d67565b610a2f565b005b34801561036d57600080fd5b5061038161037c366004613da8565b610a6a565b6040519015158152602001610336565b34801561039d57600080fd5b5061035f6103ac366004613d67565b610b03565b3480156103bd57600080fd5b5061035f6103cc366004613df8565b610c93565b3480156103dd57600080fd5b506006546103f29067ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610336565b34801561041757600080fd5b5061043b610426366004613e15565b60009081526020819052604090206001015490565b604051908152602001610336565b34801561045557600080fd5b50610469610464366004613e42565b610cb8565b6040516103369190613e5d565b34801561048257600080fd5b50610381610491366004613ea4565b610d3f565b3480156104a257600080fd5b5061035f6104b1366004613ec1565b610e24565b3480156104c257600080fd5b5061043b6104d1366004613f4b565b610f78565b3480156104e257600080fd5b5061035f6104f1366004613fc3565b6110e3565b34801561050257600080fd5b5061035f610511366004613ec1565b611126565b34801561052257600080fd5b5061035f610531366004613ff1565b611158565b34801561054257600080fd5b5061043b610551366004614078565b611324565b34801561056257600080fd5b5060015460ff16610381565b34801561057a57600080fd5b5061035f610589366004613ea4565b61148f565b34801561059a57600080fd5b506103816105a9366004613ea4565b611534565b3480156105ba57600080fd5b506002546105db9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610336565b34801561060c57600080fd5b5061038161061b366004613ea4565b61153b565b34801561062c57600080fd5b5061035f61063b3660046140ce565b611548565b34801561064c57600080fd5b5061038161065b366004613ec1565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b34801561069d57600080fd5b506106a661158d565b60405161033691906140e9565b61043b6106c136600461414f565b61159e565b3480156106d257600080fd5b506107306106e1366004613e42565b60076020526000908152604090205467ffffffffffffffff81169068010000000000000000810461ffff16906a010000000000000000000090046fffffffffffffffffffffffffffffffff1683565b6040805167ffffffffffffffff909416845261ffff90921660208401526fffffffffffffffffffffffffffffffff1690820152606001610336565b34801561077757600080fd5b5061043b600081565b34801561078c57600080fd5b5061038161079b366004613e15565b60086020526000908152604090205460ff1681565b3480156107bc57600080fd5b5061035f6107cb3660046141fd565b61176e565b3480156107dc57600080fd5b5061035f6107eb36600461423f565b611a7e565b3480156107fc57600080fd5b506001546105db90610100900473ffffffffffffffffffffffffffffffffffffffff1681565b34801561082e57600080fd5b5061043b61083d366004614078565b611b2c565b34801561084e57600080fd5b5061086261085d36600461425a565b611cfe565b6040516103369291906142c8565b34801561087c57600080fd5b5061035f61088b366004613ea4565b611ed6565b34801561089c57600080fd5b5061035f6108ab366004614315565b611f7a565b3480156108bc57600080fd5b506108e47f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610336565b34801561090557600080fd5b506001546103f2907501000000000000000000000000000000000000000000900467ffffffffffffffff1681565b34801561093f57600080fd5b5061035f61094e366004613ec1565b611fcb565b34801561095f57600080fd5b5061035f61096e366004613d67565b6120e0565b34801561097f57600080fd5b506108e47f000000000000000000000000000000000000000000000000000000000000000081565b3480156109b357600080fd5b5061043b6109c236600461435b565b612216565b3480156109d357600080fd5b5061035f6109e23660046143c6565b612252565b61043b6109f53660046143fb565b6124c7565b348015610a0657600080fd5b5061043b612679565b348015610a1b57600080fd5b5061043b610a2a3660046143fb565b612685565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610a598161280a565b610a64848484612814565b50505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b000000000000000000000000000000000000000000000000000000001480610afd57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610b2d8161280a565b73ffffffffffffffffffffffffffffffffffffffff841660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff16610bab576040517f5ee08b9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b158015610c1b57600080fd5b505af1158015610c2f573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb925060600190505b60405180910390a150505050565b6000610c9e8161280a565b8115610cb057610cac612844565b5050565b610cac6128c3565b63ffffffff8116600090815260036020908152604091829020805483518184028101840190945280845260609392830182828015610d3357602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610d045790505b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff811660009081527f93c430521711328044ae92d0f1f1286cf040bc4a382f1642bd89984e86630553602052604081205460ff1615610d9457506000919050565b6001547501000000000000000000000000000000000000000000900467ffffffffffffffff161580610e0a575073ffffffffffffffffffffffffffffffffffffffff821660009081527f4ac82e3087b7dedf7f532cbc6915c722df8c1e31f1388c318a617b52760eaf8b602052604090205460ff165b15610e1757506001919050565b506000919050565b919050565b817f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca811480610e7257507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b80610e9c57507f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de81145b15610edf57303314610eda576040517ffaba723a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f69565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758103610f2f57610eda7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561280a565b6040517f94fdc372000000000000000000000000000000000000000000000000000000008152600481018290526024015b60405180910390fd5b610f73838361291a565b505050565b600083610f8481610d3f565b610fba576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c08101825260025473ffffffffffffffffffffffffffffffffffffffff908116825263ffffffff8a16602080840182905267ffffffffffffffff808c16858701528a8416606086015260065416608085015260015461ffff7d01000000000000000000000000000000000000000000000000000000000082041660a0860152600092835260079091529084902093517f7bfa20a9000000000000000000000000000000000000000000000000000000008152929361010090910490911691637bfa20a991611096918591908a908a906004016144f1565b602060405180830381865afa1580156110b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d791906145be565b98975050505050505050565b30331461111c576040517ffaba723a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cac82826129e0565b6040517fdec9f03100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756111828161280a565b60005b828110156112e557368484838181106111a0576111a06145d7565b905060800201905060405180606001604052808260200160208101906111c691906140ce565b67ffffffffffffffff1681526020016111e5606084016040850161423f565b61ffff1681526020016111fe6080840160608501614626565b6fffffffffffffffffffffffffffffffff169052600760006112236020850185613e42565b63ffffffff1681526020808201929092526040908101600020835181549385015194909201516fffffffffffffffffffffffffffffffff166a0100000000000000000000027fffffffffffff00000000000000000000000000000000ffffffffffffffffffff61ffff90951668010000000000000000027fffffffffffffffffffffffffffffffffffffffffffff0000000000000000000090941667ffffffffffffffff90931692909217929092179290921691909117905550600101611185565b507f7dd21e42791b013d1929e86f0c59085e4fca24251f0f1aa81917b3b1611766e08383604051611317929190614641565b60405180910390a1505050565b60008161133081610d3f565b611366576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c08101825260025473ffffffffffffffffffffffffffffffffffffffff908116825261ffff808a16602080850182905267ffffffffffffffff808b168688015289851660608701526006541660808601526001547d010000000000000000000000000000000000000000000000000000000000810490931660a08601526000918252600781528582208651918201875291815294517f7bfa20a9000000000000000000000000000000000000000000000000000000008152939461010090920490921692637bfa20a99261144392869260040161474d565b602060405180830381865afa158015611460573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148491906145be565b979650505050505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756114b98161280a565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020015b60405180910390a15050565b6000610afd825b6000610afd600483612bb5565b303314611581576040517ffaba723a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61158a81612be7565b50565b60606115996004612d02565b905090565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de6115ca8161280a565b6115da60a0860160808701613ea4565b6115e381610d3f565b611619576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c0810190915260025473ffffffffffffffffffffffffffffffffffffffff168152600090602080820190611654908a018a613e42565b63ffffffff16815260200161166f60808a0160608b016140ce565b67ffffffffffffffff16815260200161168e60a08a0160808b01613ea4565b73ffffffffffffffffffffffffffffffffffffffff908116825260065467ffffffffffffffff1660208084019190915260015461ffff7d010000000000000000000000000000000000000000000000000000000000820416604090940193909352929350610100909104169063df2b057e908390600790600090611714908d018d613e42565b63ffffffff1663ffffffff16815260200190815260200160002089896040518563ffffffff1660e01b815260040161174f94939291906144f1565b6020604051808303816000875af1158015611460573d6000803e3d6000fd5b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756117988161280a565b60005b82811015610a6457368484838181106117b6576117b66145d7565b90506020028101906117c89190614823565b905063ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166117fe6020830183613e42565b63ffffffff161461180f5750611a76565b428160600135116118205750611a76565b60006118596118326020840184613e42565b6118426040850160208601613ea4565b61184f6040860186614861565b8660600135612216565b9050600061186e8261085d6080860186614861565b509050806118b1576040518481527fd6d90193101048cc1b6edcdc2348f5acf7a4a4a97d3e7b668b74cb7602ab3ebc9060200160405180910390a1505050611a76565b60006118d16118c36040860186614861565b6118cc916148c6565b612d0f565b9050801561196a5760008381526008602052604090205460ff1615611932577f9bb9bddbdf537a2104255307230b323d7982f4512ee8e5bd15df62ddca50ab978484604051611921929190614972565b60405180910390a150505050611a76565b600083815260086020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555b60008061197d6040870160208801613ea4565b73ffffffffffffffffffffffffffffffffffffffff166119a06040880188614861565b6040516119ae929190614a38565b6000604051808303816000865af19150503d80600081146119eb576040519150601f19603f3d011682016040523d82523d6000602084013e6119f0565b606091505b509150915081611a6f578215611a3557600085815260086020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b7fdc8cdd96296241bbefda4a8e18ad2e0985a8da6495b34d409cfc4c886ee3b0cf8782604051611a66929190614a48565b60405180910390a15b5050505050505b60010161179b565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611aa88161280a565b600180547fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167d01000000000000000000000000000000000000000000000000000000000061ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d90602001611528565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de611b588161280a565b82611b6281610d3f565b611b98576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c08101825260025473ffffffffffffffffffffffffffffffffffffffff908116825261ffff808b16602080850182905267ffffffffffffffff808c16868801528a851660608701526006541660808601526001547d010000000000000000000000000000000000000000000000000000000000810490931660a08601526000918252600781528582208651918201875291815294517fdf2b057e00000000000000000000000000000000000000000000000000000000815293946101009092049092169263df2b057e92611c7592869260040161474d565b6020604051808303816000875af1158015611c94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb891906145be565b93507f87e46b0a6199bc734632187269a103c05714ee0adae5b28f30723955724f37ef84604051611ceb91815260200190565b60405180910390a1505050949350505050565b6006546000908190611d1b9067ffffffffffffffff166041614a90565b8314611d2d5750600090506001611ece565b6000611d86866040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b90506000805b60065467ffffffffffffffff16811015611ec2573660008888611db0856041614a90565b90611dbc866001614aa7565b611dc7906041614a90565b92611dd493929190614aba565b91509150600080611e1b8785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612df892505050565b90925090506000816004811115611e3457611e34614299565b14611e4d57600060019850985050505050505050611ece565b8573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1611611e9457600060029850985050505050505050611ece565b611e9d8261153b565b611eb557600060039850985050505050505050611ece565b5093505050600101611d8c565b50600160009350935050505b935093915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611f008161280a565b600180547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010073ffffffffffffffffffffffffffffffffffffffff8516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e090602001611528565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611fa48161280a565b63ffffffff84166000908152600360205260409020611fc4908484613c87565b5050505050565b817f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca81148061201957507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b8061204357507f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de81145b1561208657303314612081576040517ffaba723a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6120d6565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758103610f2f576120817fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561280a565b610f738383612e3d565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561210a8161280a565b73ffffffffffffffffffffffffffffffffffffffff841660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff16612188576040517f5ee08b9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f07b18bde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018490528516906307b18bde90604401600060405180830381600087803b1580156121f857600080fd5b505af115801561220c573d6000803e3d6000fd5b5050505050505050565b60008585838686604051602001612231959493929190614ae4565b60405160208183030381529060405280519060200120905095945050505050565b4281606001351161228f576040517f0bbaf26300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b306122a06040830160208401613ea4565b73ffffffffffffffffffffffffffffffffffffffff1614612316576122cb6040820160208301613ea4565b6040517f1ce0bfcd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610f60565b63ffffffff7f00000000000000000000000000000000000000000000000000000000000000001661234a6020830183613e42565b63ffffffff161461239d576123626020820182613e42565b6040517f2697e1c200000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152602401610f60565b60006123af6118326020840184613e42565b905060006123c48261085d6080860186614861565b509050806123fe576040517f15ecadee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526008602052604090205460ff161561244a576040517f9d6a45a600000000000000000000000000000000000000000000000000000000815260048101839052602401610f60565b6000828152600860205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610f73907fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775906124b590860186614861565b8101906124c29190613ea4565b61291a565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de6124f38161280a565b886124fd81610d3f565b612533576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160808101825260025473ffffffffffffffffffffffffffffffffffffffff90811682528c811660208084019190915260065467ffffffffffffffff168385015260015461ffff7d010000000000000000000000000000000000000000000000000000000000820416606085015263ffffffff7f000000000000000000000000000000000000000000000000000000000000000016600090815260079092529084902093517fbbc5a33b00000000000000000000000000000000000000000000000000000000815292936101009091049091169163bbc5a33b91612627918591908d908d908d908d90600401614b56565b6020604051808303816000875af1158015612646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061266a91906145be565b9b9a5050505050505050505050565b60006115996004612f02565b60008761269181610d3f565b6126c7576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160808101825260025473ffffffffffffffffffffffffffffffffffffffff90811682528b811660208084019190915260065467ffffffffffffffff168385015260015461ffff7d010000000000000000000000000000000000000000000000000000000000820416606085015263ffffffff7f000000000000000000000000000000000000000000000000000000000000000016600090815260079092529084902093517fd358b30000000000000000000000000000000000000000000000000000000000815292936101009091049091169163d358b300916127bb918591908c908c908c908c90600401614b56565b602060405180830381865afa1580156127d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127fc91906145be565b9a9950505050505050505050565b61158a8133612f0c565b73ffffffffffffffffffffffffffffffffffffffff831661283957610f738282612fc4565b610f738383836130ca565b61284c613138565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b6128cb6131a7565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612899565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015612977575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16155b156129d657600180546015906129af907501000000000000000000000000000000000000000000900467ffffffffffffffff16614c1c565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610cac8282613213565b8015612a995773ffffffffffffffffffffffffffffffffffffffff8216612a33576040517f5cbf6e2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612a3e600483613303565b612a94576040517f58c8d2a000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201528115156024820152604401610f60565b612afa565b612aa4600483613325565b612afa576040517f7e1e4ae200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201528115156024820152604401610f60565b6000612b066004612f02565b60065490915067ffffffffffffffff908116908216811115612b68576040517ff1c582ae00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff808416600483015282166024820152604401610f60565b6040805173ffffffffffffffffffffffffffffffffffffffff8616815284151560208201527f863d338cad74814b108a06288ad5e0e80d56495e0332238b1d2cdcfa0ca8e5ce9101610c85565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260018301602052604081205415155b9392505050565b8067ffffffffffffffff16600003612c2b576040517f5f86e17700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612c376004612f02565b90508167ffffffffffffffff168167ffffffffffffffff161015612c9b576040517ff1c582ae00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff808316600483015283166024820152604401610f60565b600680547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff84169081179091556040519081527fb600f3cf7f38a4b49bb0c75f722ef69f7e3e39ef3bb4aa8207fd86e724a2324990602001611528565b60606000612be083613347565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0223536e0000000000000000000000000000000000000000000000000000000014801590612da557507fffffffff0000000000000000000000000000000000000000000000000000000082167fab750e750000000000000000000000000000000000000000000000000000000014155b8015610afd57507fffffffff0000000000000000000000000000000000000000000000000000000082167f704316e500000000000000000000000000000000000000000000000000000000141592915050565b6000808251604103612e2e5760208301516040840151606085015160001a612e22878285856133a2565b94509450505050612e36565b506000905060025b9250929050565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015612e99575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b15612ef85760018054601590612ed1907501000000000000000000000000000000000000000000900467ffffffffffffffff16614c43565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610cac8282613491565b6000610afd825490565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610cac57612f4a81613548565b612f55836020613567565b604051602001612f66929190614c85565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252610f6091600401614d06565b73ffffffffffffffffffffffffffffffffffffffff8216613011576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d806000811461306b576040519150601f19603f3d011682016040523d82523d6000602084013e613070565b606091505b5050905080610f73576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610f60565b73ffffffffffffffffffffffffffffffffffffffff8216613117576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f7373ffffffffffffffffffffffffffffffffffffffff841683836137aa565b60015460ff16156131a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610f60565b565b60015460ff166131a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610f60565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610cac5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556132a53390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000612be08373ffffffffffffffffffffffffffffffffffffffff8416613837565b6000612be08373ffffffffffffffffffffffffffffffffffffffff8416613886565b606081600001805480602002602001604051908101604052809291908181526020018280548015610d3357602002820191906000526020600020905b8154815260200190600101908083116133835750505050509050919050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156133d95750600090506003613488565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561342d573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661348157600060019250925050613488565b9150600090505b94509492505050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1615610cac5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6060610afd73ffffffffffffffffffffffffffffffffffffffff831660145b60606000613576836002614a90565b613581906002614aa7565b67ffffffffffffffff81111561359957613599614d19565b6040519080825280601f01601f1916602001820160405280156135c3576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106135fa576135fa6145d7565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061365d5761365d6145d7565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000613699846002614a90565b6136a4906001614aa7565b90505b6001811115613741577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106136e5576136e56145d7565b1a60f81b8282815181106136fb576136fb6145d7565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c9361373a81614d48565b90506136a7565b508315612be0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610f60565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610f73908490613979565b600081815260018301602052604081205461387e57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610afd565b506000610afd565b6000818152600183016020526040812054801561396f5760006138aa600183614d7d565b85549091506000906138be90600190614d7d565b90508181146139235760008660000182815481106138de576138de6145d7565b9060005260206000200154905080876000018481548110613901576139016145d7565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061393457613934614d90565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610afd565b6000915050610afd565b60006139db826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16613a889092919063ffffffff16565b90508051600014806139fc5750808060200190518101906139fc9190614dbf565b610f73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610f60565b6060613a978484600085613a9f565b949350505050565b606082471015613b31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610f60565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051613b5a9190614ddc565b60006040518083038185875af1925050503d8060008114613b97576040519150601f19603f3d011682016040523d82523d6000602084013e613b9c565b606091505b50915091506114848783838760608315613c3e578251600003613c375773ffffffffffffffffffffffffffffffffffffffff85163b613c37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610f60565b5081613a97565b613a978383815115613c535781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f609190614d06565b82805482825590600052602060002090601f01602090048101928215613d205791602002820160005b83821115613cf157833560ff1683826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302613cb0565b8015613d1e5782816101000a81549060ff0219169055600101602081600001049283019260010302613cf1565b505b50613d2c929150613d30565b5090565b5b80821115613d2c5760008155600101613d31565b73ffffffffffffffffffffffffffffffffffffffff8116811461158a57600080fd5b600080600060608486031215613d7c57600080fd5b8335613d8781613d45565b92506020840135613d9781613d45565b929592945050506040919091013590565b600060208284031215613dba57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612be057600080fd5b801515811461158a57600080fd5b600060208284031215613e0a57600080fd5b8135612be081613dea565b600060208284031215613e2757600080fd5b5035919050565b803563ffffffff81168114610e1f57600080fd5b600060208284031215613e5457600080fd5b612be082613e2e565b6020808252825182820181905260009190848201906040850190845b81811015613e9857835160ff1683529284019291840191600101613e79565b50909695505050505050565b600060208284031215613eb657600080fd5b8135612be081613d45565b60008060408385031215613ed457600080fd5b823591506020830135613ee681613d45565b809150509250929050565b803567ffffffffffffffff81168114610e1f57600080fd5b60008083601f840112613f1b57600080fd5b50813567ffffffffffffffff811115613f3357600080fd5b602083019150836020828501011115612e3657600080fd5b600080600080600060808688031215613f6357600080fd5b613f6c86613e2e565b9450613f7a60208701613ef1565b93506040860135613f8a81613d45565b9250606086013567ffffffffffffffff811115613fa657600080fd5b613fb288828901613f09565b969995985093965092949392505050565b60008060408385031215613fd657600080fd5b8235613fe181613d45565b91506020830135613ee681613dea565b6000806020838503121561400457600080fd5b823567ffffffffffffffff8082111561401c57600080fd5b818501915085601f83011261403057600080fd5b81358181111561403f57600080fd5b8660208260071b850101111561405457600080fd5b60209290920196919550909350505050565b803561ffff81168114610e1f57600080fd5b6000806000806080858703121561408e57600080fd5b61409785614066565b93506140a560208601614066565b92506140b360408601613ef1565b915060608501356140c381613d45565b939692955090935050565b6000602082840312156140e057600080fd5b612be082613ef1565b6020808252825182820181905260009190848201906040850190845b81811015613e9857835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101614105565b600060a0828403121561414957600080fd5b50919050565b60008060006040848603121561416457600080fd5b833567ffffffffffffffff8082111561417c57600080fd5b61418887838801614137565b9450602086013591508082111561419e57600080fd5b506141ab86828701613f09565b9497909650939450505050565b60008083601f8401126141ca57600080fd5b50813567ffffffffffffffff8111156141e257600080fd5b6020830191508360208260051b8501011115612e3657600080fd5b6000806020838503121561421057600080fd5b823567ffffffffffffffff81111561422757600080fd5b614233858286016141b8565b90969095509350505050565b60006020828403121561425157600080fd5b612be082614066565b60008060006040848603121561426f57600080fd5b83359250602084013567ffffffffffffffff81111561428d57600080fd5b6141ab86828701613f09565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b82151581526040810160048310614308577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8260208301529392505050565b60008060006040848603121561432a57600080fd5b61433384613e2e565b9250602084013567ffffffffffffffff81111561434f57600080fd5b6141ab868287016141b8565b60008060008060006080868803121561437357600080fd5b61437c86613e2e565b9450602086013561438c81613d45565b9350604086013567ffffffffffffffff8111156143a857600080fd5b6143b488828901613f09565b96999598509660600135949350505050565b6000602082840312156143d857600080fd5b813567ffffffffffffffff8111156143ef57600080fd5b613a9784828501614137565b60008060008060008060006080888a03121561441657600080fd5b873561442181613d45565b9650602088013567ffffffffffffffff8082111561443e57600080fd5b61444a8b838c01613f09565b909850965060408a013591508082111561446357600080fd5b61446f8b838c01613f09565b909650945060608a013591508082111561448857600080fd5b506144958a828b01613f09565b989b979a50959850939692959293505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6000610140614569838873ffffffffffffffffffffffffffffffffffffffff80825116835263ffffffff6020830151166020840152604082015167ffffffffffffffff808216604086015282606085015116606086015280608085015116608086015250505061ffff60a08201511660a08301525050565b6145aa60c08401875467ffffffffffffffff81168252604081811c61ffff16602084015260509190911c6fffffffffffffffffffffffffffffffff16910152565b8061012084015261148481840185876144a8565b6000602082840312156145d057600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80356fffffffffffffffffffffffffffffffff81168114610e1f57600080fd5b60006020828403121561463857600080fd5b612be082614606565b6020808252818101839052600090604080840186845b878110156146d25763ffffffff61466d83613e2e565b16835267ffffffffffffffff614684868401613ef1565b168584015261ffff614697858401614066565b168484015260606fffffffffffffffffffffffffffffffff6146ba828501614606565b16908401526080928301929190910190600101614657565b5090979650505050505050565b60005b838110156146fa5781810151838201526020016146e2565b50506000910152565b6000815180845261471b8160208601602086016146df565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60006101406147c5838773ffffffffffffffffffffffffffffffffffffffff80825116835263ffffffff6020830151166020840152604082015167ffffffffffffffff808216604086015282606085015116606086015280608085015116608086015250505061ffff60a08201511660a08301525050565b61480660c08401865467ffffffffffffffff81168252604081811c61ffff16602084015260509190911c6fffffffffffffffffffffffffffffffff16910152565b8061012084015261481981840185614703565b9695505050505050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6183360301811261485757600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261489657600080fd5b83018035915067ffffffffffffffff8211156148b157600080fd5b602001915036819003821315612e3657600080fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156149065780818660040360031b1b83161692505b505092915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261494357600080fd5b830160208101925035905067ffffffffffffffff81111561496357600080fd5b803603821315612e3657600080fd5b6040815263ffffffff61498484613e2e565b1660408201526000602084013561499a81613d45565b73ffffffffffffffffffffffffffffffffffffffff1660608301526149c2604085018561490e565b60a060808501526149d760e0850182846144a8565b915050606085013560a08401526149f1608086018661490e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08584030160c0860152614a268382846144a8565b93505050508260208301529392505050565b8183823760009101908152919050565b828152604060208201526000613a976040830184614703565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082028115828204841417610afd57610afd614a61565b80820180821115610afd57610afd614a61565b60008085851115614aca57600080fd5b83861115614ad757600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008660e01b1681527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b1660048201528360188201528183603883013760009101603801908152949350505050565b600061012073ffffffffffffffffffffffffffffffffffffffff808a511684528060208b01511660208501525067ffffffffffffffff60408a015116604084015261ffff60608a0151166060840152614be660808401895467ffffffffffffffff81168252604081811c61ffff16602084015260509190911c6fffffffffffffffffffffffffffffffff16910152565b8060e0840152614bf981840187896144a8565b9050828103610100840152614c0f8185876144a8565b9998505050505050505050565b600067ffffffffffffffff808316818103614c3957614c39614a61565b6001019392505050565b600067ffffffffffffffff821680614c5d57614c5d614a61565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614cbd8160178501602088016146df565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614cfa8160288401602088016146df565b01602801949350505050565b602081526000612be06020830184614703565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081614d5757614d57614a61565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b81810381811115610afd57610afd614a61565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600060208284031215614dd157600080fd5b8151612be081613dea565b600082516148578184602087016146df56fea2646970667358221220198a6ed2fc72043001b01d1b1945eeab857e3b52b5e2dd6f3d5106e342b43a0e64736f6c63430008160033",
1507
+ "linkReferences": {},
1508
+ "deployedLinkReferences": {}
1509
+ }