@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,1171 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "AxelarDVNAdapter",
4
+ "sourceName": "contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address[]",
10
+ "name": "_admins",
11
+ "type": "address[]"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_gateway",
16
+ "type": "address"
17
+ }
18
+ ],
19
+ "stateMutability": "nonpayable",
20
+ "type": "constructor"
21
+ },
22
+ {
23
+ "inputs": [],
24
+ "name": "AxelarDVNAdapter_OnlyWorkerFeeLib",
25
+ "type": "error"
26
+ },
27
+ {
28
+ "inputs": [
29
+ {
30
+ "internalType": "string",
31
+ "name": "chainName",
32
+ "type": "string"
33
+ },
34
+ {
35
+ "internalType": "string",
36
+ "name": "peer",
37
+ "type": "string"
38
+ }
39
+ ],
40
+ "name": "AxelarDVNAdapter_UntrustedPeer",
41
+ "type": "error"
42
+ },
43
+ {
44
+ "inputs": [
45
+ {
46
+ "internalType": "uint256",
47
+ "name": "actual",
48
+ "type": "uint256"
49
+ },
50
+ {
51
+ "internalType": "uint256",
52
+ "name": "requested",
53
+ "type": "uint256"
54
+ }
55
+ ],
56
+ "name": "DVNAdapter_InsufficientBalance",
57
+ "type": "error"
58
+ },
59
+ {
60
+ "inputs": [],
61
+ "name": "DVNAdapter_InvalidMessageSize",
62
+ "type": "error"
63
+ },
64
+ {
65
+ "inputs": [
66
+ {
67
+ "internalType": "address",
68
+ "name": "sendLib",
69
+ "type": "address"
70
+ },
71
+ {
72
+ "internalType": "uint32",
73
+ "name": "dstEid",
74
+ "type": "uint32"
75
+ }
76
+ ],
77
+ "name": "DVNAdapter_MissingRecieveLib",
78
+ "type": "error"
79
+ },
80
+ {
81
+ "inputs": [],
82
+ "name": "DVNAdapter_NotImplemented",
83
+ "type": "error"
84
+ },
85
+ {
86
+ "inputs": [],
87
+ "name": "InvalidAddress",
88
+ "type": "error"
89
+ },
90
+ {
91
+ "inputs": [],
92
+ "name": "NotApprovedByGateway",
93
+ "type": "error"
94
+ },
95
+ {
96
+ "inputs": [
97
+ {
98
+ "internalType": "address",
99
+ "name": "_to",
100
+ "type": "address"
101
+ },
102
+ {
103
+ "internalType": "uint256",
104
+ "name": "_value",
105
+ "type": "uint256"
106
+ }
107
+ ],
108
+ "name": "Transfer_NativeFailed",
109
+ "type": "error"
110
+ },
111
+ {
112
+ "inputs": [],
113
+ "name": "Transfer_ToAddressIsZero",
114
+ "type": "error"
115
+ },
116
+ {
117
+ "inputs": [],
118
+ "name": "Worker_NotAllowed",
119
+ "type": "error"
120
+ },
121
+ {
122
+ "inputs": [],
123
+ "name": "Worker_OnlyMessageLib",
124
+ "type": "error"
125
+ },
126
+ {
127
+ "inputs": [],
128
+ "name": "Worker_RoleRenouncingDisabled",
129
+ "type": "error"
130
+ },
131
+ {
132
+ "anonymous": false,
133
+ "inputs": [
134
+ {
135
+ "components": [
136
+ {
137
+ "internalType": "uint32",
138
+ "name": "eid",
139
+ "type": "uint32"
140
+ },
141
+ {
142
+ "internalType": "string",
143
+ "name": "chainName",
144
+ "type": "string"
145
+ },
146
+ {
147
+ "internalType": "string",
148
+ "name": "peer",
149
+ "type": "string"
150
+ },
151
+ {
152
+ "internalType": "uint16",
153
+ "name": "multiplierBps",
154
+ "type": "uint16"
155
+ },
156
+ {
157
+ "internalType": "uint256",
158
+ "name": "nativeGasFee",
159
+ "type": "uint256"
160
+ }
161
+ ],
162
+ "indexed": false,
163
+ "internalType": "struct IAxelarDVNAdapter.DstConfigParam[]",
164
+ "name": "params",
165
+ "type": "tuple[]"
166
+ }
167
+ ],
168
+ "name": "DstConfigSet",
169
+ "type": "event"
170
+ },
171
+ {
172
+ "anonymous": false,
173
+ "inputs": [
174
+ {
175
+ "components": [
176
+ {
177
+ "internalType": "uint32",
178
+ "name": "dstEid",
179
+ "type": "uint32"
180
+ },
181
+ {
182
+ "internalType": "uint128",
183
+ "name": "floorMarginUSD",
184
+ "type": "uint128"
185
+ }
186
+ ],
187
+ "indexed": false,
188
+ "internalType": "struct IAxelarDVNAdapter.FloorMarginUSDParam[]",
189
+ "name": "params",
190
+ "type": "tuple[]"
191
+ }
192
+ ],
193
+ "name": "FloorMarginUSDSet",
194
+ "type": "event"
195
+ },
196
+ {
197
+ "anonymous": false,
198
+ "inputs": [
199
+ {
200
+ "components": [
201
+ {
202
+ "internalType": "uint32",
203
+ "name": "dstEid",
204
+ "type": "uint32"
205
+ },
206
+ {
207
+ "internalType": "uint16",
208
+ "name": "multiplierBps",
209
+ "type": "uint16"
210
+ }
211
+ ],
212
+ "indexed": false,
213
+ "internalType": "struct IAxelarDVNAdapter.MultiplierParam[]",
214
+ "name": "params",
215
+ "type": "tuple[]"
216
+ }
217
+ ],
218
+ "name": "MultiplierSet",
219
+ "type": "event"
220
+ },
221
+ {
222
+ "anonymous": false,
223
+ "inputs": [
224
+ {
225
+ "components": [
226
+ {
227
+ "internalType": "uint32",
228
+ "name": "dstEid",
229
+ "type": "uint32"
230
+ },
231
+ {
232
+ "internalType": "uint256",
233
+ "name": "nativeGasFee",
234
+ "type": "uint256"
235
+ }
236
+ ],
237
+ "indexed": false,
238
+ "internalType": "struct IAxelarDVNAdapter.NativeGasFeeParam[]",
239
+ "name": "params",
240
+ "type": "tuple[]"
241
+ }
242
+ ],
243
+ "name": "NativeGasFeeSet",
244
+ "type": "event"
245
+ },
246
+ {
247
+ "anonymous": false,
248
+ "inputs": [
249
+ {
250
+ "indexed": false,
251
+ "internalType": "address",
252
+ "name": "account",
253
+ "type": "address"
254
+ }
255
+ ],
256
+ "name": "Paused",
257
+ "type": "event"
258
+ },
259
+ {
260
+ "anonymous": false,
261
+ "inputs": [
262
+ {
263
+ "components": [
264
+ {
265
+ "internalType": "address",
266
+ "name": "sendLib",
267
+ "type": "address"
268
+ },
269
+ {
270
+ "internalType": "uint32",
271
+ "name": "dstEid",
272
+ "type": "uint32"
273
+ },
274
+ {
275
+ "internalType": "bytes32",
276
+ "name": "receiveLib",
277
+ "type": "bytes32"
278
+ }
279
+ ],
280
+ "indexed": false,
281
+ "internalType": "struct ReceiveLibParam[]",
282
+ "name": "params",
283
+ "type": "tuple[]"
284
+ }
285
+ ],
286
+ "name": "ReceiveLibsSet",
287
+ "type": "event"
288
+ },
289
+ {
290
+ "anonymous": false,
291
+ "inputs": [
292
+ {
293
+ "indexed": true,
294
+ "internalType": "bytes32",
295
+ "name": "role",
296
+ "type": "bytes32"
297
+ },
298
+ {
299
+ "indexed": true,
300
+ "internalType": "bytes32",
301
+ "name": "previousAdminRole",
302
+ "type": "bytes32"
303
+ },
304
+ {
305
+ "indexed": true,
306
+ "internalType": "bytes32",
307
+ "name": "newAdminRole",
308
+ "type": "bytes32"
309
+ }
310
+ ],
311
+ "name": "RoleAdminChanged",
312
+ "type": "event"
313
+ },
314
+ {
315
+ "anonymous": false,
316
+ "inputs": [
317
+ {
318
+ "indexed": true,
319
+ "internalType": "bytes32",
320
+ "name": "role",
321
+ "type": "bytes32"
322
+ },
323
+ {
324
+ "indexed": true,
325
+ "internalType": "address",
326
+ "name": "account",
327
+ "type": "address"
328
+ },
329
+ {
330
+ "indexed": true,
331
+ "internalType": "address",
332
+ "name": "sender",
333
+ "type": "address"
334
+ }
335
+ ],
336
+ "name": "RoleGranted",
337
+ "type": "event"
338
+ },
339
+ {
340
+ "anonymous": false,
341
+ "inputs": [
342
+ {
343
+ "indexed": true,
344
+ "internalType": "bytes32",
345
+ "name": "role",
346
+ "type": "bytes32"
347
+ },
348
+ {
349
+ "indexed": true,
350
+ "internalType": "address",
351
+ "name": "account",
352
+ "type": "address"
353
+ },
354
+ {
355
+ "indexed": true,
356
+ "internalType": "address",
357
+ "name": "sender",
358
+ "type": "address"
359
+ }
360
+ ],
361
+ "name": "RoleRevoked",
362
+ "type": "event"
363
+ },
364
+ {
365
+ "anonymous": false,
366
+ "inputs": [
367
+ {
368
+ "indexed": false,
369
+ "internalType": "uint16",
370
+ "name": "multiplierBps",
371
+ "type": "uint16"
372
+ }
373
+ ],
374
+ "name": "SetDefaultMultiplierBps",
375
+ "type": "event"
376
+ },
377
+ {
378
+ "anonymous": false,
379
+ "inputs": [
380
+ {
381
+ "indexed": false,
382
+ "internalType": "address",
383
+ "name": "priceFeed",
384
+ "type": "address"
385
+ }
386
+ ],
387
+ "name": "SetPriceFeed",
388
+ "type": "event"
389
+ },
390
+ {
391
+ "anonymous": false,
392
+ "inputs": [
393
+ {
394
+ "indexed": false,
395
+ "internalType": "uint32",
396
+ "name": "dstEid",
397
+ "type": "uint32"
398
+ },
399
+ {
400
+ "indexed": false,
401
+ "internalType": "uint8[]",
402
+ "name": "optionTypes",
403
+ "type": "uint8[]"
404
+ }
405
+ ],
406
+ "name": "SetSupportedOptionTypes",
407
+ "type": "event"
408
+ },
409
+ {
410
+ "anonymous": false,
411
+ "inputs": [
412
+ {
413
+ "indexed": false,
414
+ "internalType": "address",
415
+ "name": "workerLib",
416
+ "type": "address"
417
+ }
418
+ ],
419
+ "name": "SetWorkerLib",
420
+ "type": "event"
421
+ },
422
+ {
423
+ "anonymous": false,
424
+ "inputs": [
425
+ {
426
+ "indexed": false,
427
+ "internalType": "address",
428
+ "name": "account",
429
+ "type": "address"
430
+ }
431
+ ],
432
+ "name": "Unpaused",
433
+ "type": "event"
434
+ },
435
+ {
436
+ "anonymous": false,
437
+ "inputs": [
438
+ {
439
+ "indexed": false,
440
+ "internalType": "address",
441
+ "name": "lib",
442
+ "type": "address"
443
+ },
444
+ {
445
+ "indexed": false,
446
+ "internalType": "address",
447
+ "name": "to",
448
+ "type": "address"
449
+ },
450
+ {
451
+ "indexed": false,
452
+ "internalType": "uint256",
453
+ "name": "amount",
454
+ "type": "uint256"
455
+ }
456
+ ],
457
+ "name": "Withdraw",
458
+ "type": "event"
459
+ },
460
+ {
461
+ "inputs": [],
462
+ "name": "DEFAULT_ADMIN_ROLE",
463
+ "outputs": [
464
+ {
465
+ "internalType": "bytes32",
466
+ "name": "",
467
+ "type": "bytes32"
468
+ }
469
+ ],
470
+ "stateMutability": "view",
471
+ "type": "function"
472
+ },
473
+ {
474
+ "inputs": [],
475
+ "name": "allowlistSize",
476
+ "outputs": [
477
+ {
478
+ "internalType": "uint64",
479
+ "name": "",
480
+ "type": "uint64"
481
+ }
482
+ ],
483
+ "stateMutability": "view",
484
+ "type": "function"
485
+ },
486
+ {
487
+ "inputs": [
488
+ {
489
+ "components": [
490
+ {
491
+ "internalType": "uint32",
492
+ "name": "dstEid",
493
+ "type": "uint32"
494
+ },
495
+ {
496
+ "internalType": "bytes",
497
+ "name": "packetHeader",
498
+ "type": "bytes"
499
+ },
500
+ {
501
+ "internalType": "bytes32",
502
+ "name": "payloadHash",
503
+ "type": "bytes32"
504
+ },
505
+ {
506
+ "internalType": "uint64",
507
+ "name": "confirmations",
508
+ "type": "uint64"
509
+ },
510
+ {
511
+ "internalType": "address",
512
+ "name": "sender",
513
+ "type": "address"
514
+ }
515
+ ],
516
+ "internalType": "struct ILayerZeroDVN.AssignJobParam",
517
+ "name": "_param",
518
+ "type": "tuple"
519
+ },
520
+ {
521
+ "internalType": "bytes",
522
+ "name": "_options",
523
+ "type": "bytes"
524
+ }
525
+ ],
526
+ "name": "assignJob",
527
+ "outputs": [
528
+ {
529
+ "internalType": "uint256",
530
+ "name": "totalFee",
531
+ "type": "uint256"
532
+ }
533
+ ],
534
+ "stateMutability": "payable",
535
+ "type": "function"
536
+ },
537
+ {
538
+ "inputs": [],
539
+ "name": "defaultMultiplierBps",
540
+ "outputs": [
541
+ {
542
+ "internalType": "uint16",
543
+ "name": "",
544
+ "type": "uint16"
545
+ }
546
+ ],
547
+ "stateMutability": "view",
548
+ "type": "function"
549
+ },
550
+ {
551
+ "inputs": [
552
+ {
553
+ "internalType": "uint32",
554
+ "name": "dstEid",
555
+ "type": "uint32"
556
+ }
557
+ ],
558
+ "name": "dstConfig",
559
+ "outputs": [
560
+ {
561
+ "internalType": "string",
562
+ "name": "chainName",
563
+ "type": "string"
564
+ },
565
+ {
566
+ "internalType": "string",
567
+ "name": "peer",
568
+ "type": "string"
569
+ },
570
+ {
571
+ "internalType": "uint16",
572
+ "name": "multiplierBps",
573
+ "type": "uint16"
574
+ },
575
+ {
576
+ "internalType": "uint256",
577
+ "name": "nativeGasFee",
578
+ "type": "uint256"
579
+ }
580
+ ],
581
+ "stateMutability": "view",
582
+ "type": "function"
583
+ },
584
+ {
585
+ "inputs": [
586
+ {
587
+ "internalType": "bytes32",
588
+ "name": "commandId",
589
+ "type": "bytes32"
590
+ },
591
+ {
592
+ "internalType": "string",
593
+ "name": "sourceChain",
594
+ "type": "string"
595
+ },
596
+ {
597
+ "internalType": "string",
598
+ "name": "sourceAddress",
599
+ "type": "string"
600
+ },
601
+ {
602
+ "internalType": "bytes",
603
+ "name": "payload",
604
+ "type": "bytes"
605
+ }
606
+ ],
607
+ "name": "execute",
608
+ "outputs": [],
609
+ "stateMutability": "nonpayable",
610
+ "type": "function"
611
+ },
612
+ {
613
+ "inputs": [
614
+ {
615
+ "internalType": "bytes32",
616
+ "name": "commandId",
617
+ "type": "bytes32"
618
+ },
619
+ {
620
+ "internalType": "string",
621
+ "name": "sourceChain",
622
+ "type": "string"
623
+ },
624
+ {
625
+ "internalType": "string",
626
+ "name": "sourceAddress",
627
+ "type": "string"
628
+ },
629
+ {
630
+ "internalType": "bytes",
631
+ "name": "payload",
632
+ "type": "bytes"
633
+ },
634
+ {
635
+ "internalType": "string",
636
+ "name": "tokenSymbol",
637
+ "type": "string"
638
+ },
639
+ {
640
+ "internalType": "uint256",
641
+ "name": "amount",
642
+ "type": "uint256"
643
+ }
644
+ ],
645
+ "name": "executeWithToken",
646
+ "outputs": [],
647
+ "stateMutability": "nonpayable",
648
+ "type": "function"
649
+ },
650
+ {
651
+ "inputs": [],
652
+ "name": "gateway",
653
+ "outputs": [
654
+ {
655
+ "internalType": "contract IAxelarGateway",
656
+ "name": "",
657
+ "type": "address"
658
+ }
659
+ ],
660
+ "stateMutability": "view",
661
+ "type": "function"
662
+ },
663
+ {
664
+ "inputs": [
665
+ {
666
+ "internalType": "uint32",
667
+ "name": "_dstEid",
668
+ "type": "uint32"
669
+ },
670
+ {
671
+ "internalType": "uint64",
672
+ "name": "_confirmations",
673
+ "type": "uint64"
674
+ },
675
+ {
676
+ "internalType": "address",
677
+ "name": "_sender",
678
+ "type": "address"
679
+ },
680
+ {
681
+ "internalType": "bytes",
682
+ "name": "_options",
683
+ "type": "bytes"
684
+ }
685
+ ],
686
+ "name": "getFee",
687
+ "outputs": [
688
+ {
689
+ "internalType": "uint256",
690
+ "name": "totalFee",
691
+ "type": "uint256"
692
+ }
693
+ ],
694
+ "stateMutability": "view",
695
+ "type": "function"
696
+ },
697
+ {
698
+ "inputs": [
699
+ {
700
+ "internalType": "bytes32",
701
+ "name": "role",
702
+ "type": "bytes32"
703
+ }
704
+ ],
705
+ "name": "getRoleAdmin",
706
+ "outputs": [
707
+ {
708
+ "internalType": "bytes32",
709
+ "name": "",
710
+ "type": "bytes32"
711
+ }
712
+ ],
713
+ "stateMutability": "view",
714
+ "type": "function"
715
+ },
716
+ {
717
+ "inputs": [
718
+ {
719
+ "internalType": "uint32",
720
+ "name": "_eid",
721
+ "type": "uint32"
722
+ }
723
+ ],
724
+ "name": "getSupportedOptionTypes",
725
+ "outputs": [
726
+ {
727
+ "internalType": "uint8[]",
728
+ "name": "",
729
+ "type": "uint8[]"
730
+ }
731
+ ],
732
+ "stateMutability": "view",
733
+ "type": "function"
734
+ },
735
+ {
736
+ "inputs": [
737
+ {
738
+ "internalType": "bytes32",
739
+ "name": "role",
740
+ "type": "bytes32"
741
+ },
742
+ {
743
+ "internalType": "address",
744
+ "name": "account",
745
+ "type": "address"
746
+ }
747
+ ],
748
+ "name": "grantRole",
749
+ "outputs": [],
750
+ "stateMutability": "nonpayable",
751
+ "type": "function"
752
+ },
753
+ {
754
+ "inputs": [
755
+ {
756
+ "internalType": "address",
757
+ "name": "_sender",
758
+ "type": "address"
759
+ }
760
+ ],
761
+ "name": "hasAcl",
762
+ "outputs": [
763
+ {
764
+ "internalType": "bool",
765
+ "name": "",
766
+ "type": "bool"
767
+ }
768
+ ],
769
+ "stateMutability": "view",
770
+ "type": "function"
771
+ },
772
+ {
773
+ "inputs": [
774
+ {
775
+ "internalType": "bytes32",
776
+ "name": "role",
777
+ "type": "bytes32"
778
+ },
779
+ {
780
+ "internalType": "address",
781
+ "name": "account",
782
+ "type": "address"
783
+ }
784
+ ],
785
+ "name": "hasRole",
786
+ "outputs": [
787
+ {
788
+ "internalType": "bool",
789
+ "name": "",
790
+ "type": "bool"
791
+ }
792
+ ],
793
+ "stateMutability": "view",
794
+ "type": "function"
795
+ },
796
+ {
797
+ "inputs": [],
798
+ "name": "paused",
799
+ "outputs": [
800
+ {
801
+ "internalType": "bool",
802
+ "name": "",
803
+ "type": "bool"
804
+ }
805
+ ],
806
+ "stateMutability": "view",
807
+ "type": "function"
808
+ },
809
+ {
810
+ "inputs": [],
811
+ "name": "priceFeed",
812
+ "outputs": [
813
+ {
814
+ "internalType": "address",
815
+ "name": "",
816
+ "type": "address"
817
+ }
818
+ ],
819
+ "stateMutability": "view",
820
+ "type": "function"
821
+ },
822
+ {
823
+ "inputs": [
824
+ {
825
+ "internalType": "address",
826
+ "name": "sendLib",
827
+ "type": "address"
828
+ },
829
+ {
830
+ "internalType": "uint32",
831
+ "name": "dstEid",
832
+ "type": "uint32"
833
+ }
834
+ ],
835
+ "name": "receiveLibs",
836
+ "outputs": [
837
+ {
838
+ "internalType": "bytes32",
839
+ "name": "receiveLib",
840
+ "type": "bytes32"
841
+ }
842
+ ],
843
+ "stateMutability": "view",
844
+ "type": "function"
845
+ },
846
+ {
847
+ "inputs": [
848
+ {
849
+ "internalType": "bytes32",
850
+ "name": "",
851
+ "type": "bytes32"
852
+ },
853
+ {
854
+ "internalType": "address",
855
+ "name": "",
856
+ "type": "address"
857
+ }
858
+ ],
859
+ "name": "renounceRole",
860
+ "outputs": [],
861
+ "stateMutability": "pure",
862
+ "type": "function"
863
+ },
864
+ {
865
+ "inputs": [
866
+ {
867
+ "internalType": "bytes32",
868
+ "name": "role",
869
+ "type": "bytes32"
870
+ },
871
+ {
872
+ "internalType": "address",
873
+ "name": "account",
874
+ "type": "address"
875
+ }
876
+ ],
877
+ "name": "revokeRole",
878
+ "outputs": [],
879
+ "stateMutability": "nonpayable",
880
+ "type": "function"
881
+ },
882
+ {
883
+ "inputs": [
884
+ {
885
+ "internalType": "uint16",
886
+ "name": "_multiplierBps",
887
+ "type": "uint16"
888
+ }
889
+ ],
890
+ "name": "setDefaultMultiplierBps",
891
+ "outputs": [],
892
+ "stateMutability": "nonpayable",
893
+ "type": "function"
894
+ },
895
+ {
896
+ "inputs": [
897
+ {
898
+ "components": [
899
+ {
900
+ "internalType": "uint32",
901
+ "name": "eid",
902
+ "type": "uint32"
903
+ },
904
+ {
905
+ "internalType": "string",
906
+ "name": "chainName",
907
+ "type": "string"
908
+ },
909
+ {
910
+ "internalType": "string",
911
+ "name": "peer",
912
+ "type": "string"
913
+ },
914
+ {
915
+ "internalType": "uint16",
916
+ "name": "multiplierBps",
917
+ "type": "uint16"
918
+ },
919
+ {
920
+ "internalType": "uint256",
921
+ "name": "nativeGasFee",
922
+ "type": "uint256"
923
+ }
924
+ ],
925
+ "internalType": "struct IAxelarDVNAdapter.DstConfigParam[]",
926
+ "name": "_params",
927
+ "type": "tuple[]"
928
+ }
929
+ ],
930
+ "name": "setDstConfig",
931
+ "outputs": [],
932
+ "stateMutability": "nonpayable",
933
+ "type": "function"
934
+ },
935
+ {
936
+ "inputs": [
937
+ {
938
+ "components": [
939
+ {
940
+ "internalType": "uint32",
941
+ "name": "dstEid",
942
+ "type": "uint32"
943
+ },
944
+ {
945
+ "internalType": "uint256",
946
+ "name": "nativeGasFee",
947
+ "type": "uint256"
948
+ }
949
+ ],
950
+ "internalType": "struct IAxelarDVNAdapter.NativeGasFeeParam[]",
951
+ "name": "_params",
952
+ "type": "tuple[]"
953
+ }
954
+ ],
955
+ "name": "setNativeGasFee",
956
+ "outputs": [],
957
+ "stateMutability": "nonpayable",
958
+ "type": "function"
959
+ },
960
+ {
961
+ "inputs": [
962
+ {
963
+ "internalType": "bool",
964
+ "name": "_paused",
965
+ "type": "bool"
966
+ }
967
+ ],
968
+ "name": "setPaused",
969
+ "outputs": [],
970
+ "stateMutability": "nonpayable",
971
+ "type": "function"
972
+ },
973
+ {
974
+ "inputs": [
975
+ {
976
+ "internalType": "address",
977
+ "name": "_priceFeed",
978
+ "type": "address"
979
+ }
980
+ ],
981
+ "name": "setPriceFeed",
982
+ "outputs": [],
983
+ "stateMutability": "nonpayable",
984
+ "type": "function"
985
+ },
986
+ {
987
+ "inputs": [
988
+ {
989
+ "components": [
990
+ {
991
+ "internalType": "address",
992
+ "name": "sendLib",
993
+ "type": "address"
994
+ },
995
+ {
996
+ "internalType": "uint32",
997
+ "name": "dstEid",
998
+ "type": "uint32"
999
+ },
1000
+ {
1001
+ "internalType": "bytes32",
1002
+ "name": "receiveLib",
1003
+ "type": "bytes32"
1004
+ }
1005
+ ],
1006
+ "internalType": "struct ReceiveLibParam[]",
1007
+ "name": "_params",
1008
+ "type": "tuple[]"
1009
+ }
1010
+ ],
1011
+ "name": "setReceiveLibs",
1012
+ "outputs": [],
1013
+ "stateMutability": "nonpayable",
1014
+ "type": "function"
1015
+ },
1016
+ {
1017
+ "inputs": [
1018
+ {
1019
+ "internalType": "uint32",
1020
+ "name": "_eid",
1021
+ "type": "uint32"
1022
+ },
1023
+ {
1024
+ "internalType": "uint8[]",
1025
+ "name": "_optionTypes",
1026
+ "type": "uint8[]"
1027
+ }
1028
+ ],
1029
+ "name": "setSupportedOptionTypes",
1030
+ "outputs": [],
1031
+ "stateMutability": "nonpayable",
1032
+ "type": "function"
1033
+ },
1034
+ {
1035
+ "inputs": [
1036
+ {
1037
+ "internalType": "address",
1038
+ "name": "_workerFeeLib",
1039
+ "type": "address"
1040
+ }
1041
+ ],
1042
+ "name": "setWorkerFeeLib",
1043
+ "outputs": [],
1044
+ "stateMutability": "nonpayable",
1045
+ "type": "function"
1046
+ },
1047
+ {
1048
+ "inputs": [
1049
+ {
1050
+ "internalType": "string",
1051
+ "name": "srcChainName",
1052
+ "type": "string"
1053
+ }
1054
+ ],
1055
+ "name": "srcConfig",
1056
+ "outputs": [
1057
+ {
1058
+ "internalType": "uint32",
1059
+ "name": "eid",
1060
+ "type": "uint32"
1061
+ },
1062
+ {
1063
+ "internalType": "string",
1064
+ "name": "peer",
1065
+ "type": "string"
1066
+ }
1067
+ ],
1068
+ "stateMutability": "view",
1069
+ "type": "function"
1070
+ },
1071
+ {
1072
+ "inputs": [
1073
+ {
1074
+ "internalType": "bytes4",
1075
+ "name": "interfaceId",
1076
+ "type": "bytes4"
1077
+ }
1078
+ ],
1079
+ "name": "supportsInterface",
1080
+ "outputs": [
1081
+ {
1082
+ "internalType": "bool",
1083
+ "name": "",
1084
+ "type": "bool"
1085
+ }
1086
+ ],
1087
+ "stateMutability": "view",
1088
+ "type": "function"
1089
+ },
1090
+ {
1091
+ "inputs": [
1092
+ {
1093
+ "internalType": "address",
1094
+ "name": "_lib",
1095
+ "type": "address"
1096
+ },
1097
+ {
1098
+ "internalType": "address",
1099
+ "name": "_to",
1100
+ "type": "address"
1101
+ },
1102
+ {
1103
+ "internalType": "uint256",
1104
+ "name": "_amount",
1105
+ "type": "uint256"
1106
+ }
1107
+ ],
1108
+ "name": "withdrawFee",
1109
+ "outputs": [],
1110
+ "stateMutability": "nonpayable",
1111
+ "type": "function"
1112
+ },
1113
+ {
1114
+ "inputs": [
1115
+ {
1116
+ "internalType": "address",
1117
+ "name": "_sendLib",
1118
+ "type": "address"
1119
+ }
1120
+ ],
1121
+ "name": "withdrawToFeeLib",
1122
+ "outputs": [],
1123
+ "stateMutability": "nonpayable",
1124
+ "type": "function"
1125
+ },
1126
+ {
1127
+ "inputs": [
1128
+ {
1129
+ "internalType": "address",
1130
+ "name": "_token",
1131
+ "type": "address"
1132
+ },
1133
+ {
1134
+ "internalType": "address",
1135
+ "name": "_to",
1136
+ "type": "address"
1137
+ },
1138
+ {
1139
+ "internalType": "uint256",
1140
+ "name": "_amount",
1141
+ "type": "uint256"
1142
+ }
1143
+ ],
1144
+ "name": "withdrawToken",
1145
+ "outputs": [],
1146
+ "stateMutability": "nonpayable",
1147
+ "type": "function"
1148
+ },
1149
+ {
1150
+ "inputs": [],
1151
+ "name": "workerFeeLib",
1152
+ "outputs": [
1153
+ {
1154
+ "internalType": "address",
1155
+ "name": "",
1156
+ "type": "address"
1157
+ }
1158
+ ],
1159
+ "stateMutability": "view",
1160
+ "type": "function"
1161
+ },
1162
+ {
1163
+ "stateMutability": "payable",
1164
+ "type": "receive"
1165
+ }
1166
+ ],
1167
+ "bytecode": "0x60a06040523480156200001157600080fd5b50d380156200001f57600080fd5b50d280156200002d57600080fd5b5060405162004d0138038062004d01833981016040819052620000509162000371565b803383612710600060405190808252806020026020018201604052801562000082578160200160208202803683370190505b506001805460ff61ffff60e81b011916600160e81b61ffff851602179055600280546001600160a01b031916905560008285856001600160a01b03821615620000d257620000d2600083620001e3565b60005b855181101562000140576200012d7f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de87838151811062000119576200011962000457565b6020026020010151620001e360201b60201c565b620001388162000483565b9050620000d5565b5060005b81518110156200019b57620001887fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177583838151811062000119576200011962000457565b620001938162000483565b905062000144565b5050506001600160a01b0387169550620001ce9450505050505760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b031660805250620004d09050565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca821480156200023457506000828152602081815260408083206001600160a01b038516845290915290205460ff16155b156200028157600180546015906200025c90600160a81b90046001600160401b03166200049f565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b6200028d828262000291565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200028d576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002ed3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b634e487b7160e01b600052604160045260246000fd5b80516000906001600160a81b03811681146200036257600080fd5b6001600160a01b031692915050565b600080604083850312156200038557600080fd5b82516001600160401b03808211156200039d57600080fd5b818501915085601f830112620003b257600080fd5b8151602082821115620003c957620003c962000331565b8160051b604051601f19603f83011681018181108682111715620003f157620003f162000331565b6040529283528183019350848101820192898411156200041057600080fd5b948201945b838610156200043957620004298662000347565b8552948201949382019362000415565b96506200044a905087820162000347565b9450505050509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016200049857620004986200046d565b5060010190565b60006001600160401b038281166002600160401b03198101620004c657620004c66200046d565b6001019392505050565b60805161480062000501600039600081816103a101528181610fae015281816113ad01526119ef01526148006000f3fe6080604052600436106102015760003560e01c8063491606581161011d5780639e944965116100b0578063c416aa511161007f578063cd88b90311610064578063cd88b903146109cf578063d2ae210414610a09578063d547741f14610a7657600080fd5b8063c416aa5114610949578063c7b2370b1461099557600080fd5b80639e9449651461085c578063a217fddf146108a6578063af896a3b146108d5578063c358de0a1461090f57600080fd5b8063724e78da116100ec578063724e78da1461075d578063741bef1a1461079757806391d14854146107de57806395d376d71461084957600080fd5b806349160658146106655780634cfa6d2c1461069f57806351b6a0fd146106f15780635c975abb1461072b57600080fd5b806316c38b3c116101955780632de11376116101645780632de113761461057d5780632f2ff15d146105b757806330bb3aac146105f157806336568abe1461062b57600080fd5b806316c38b3c1461046a5780631a98b2e0146104a4578063248a9ca3146104de57806326e67a371461053657600080fd5b80631095b6d7116101d15780631095b6d71461033b578063116191b61461037557806312712417146103e8578063143b165f1461042257600080fd5b8062bf2e801461020d57806301e336671461027b57806301ffc9a7146102b757806302d6e8b01461030157600080fd5b3661020857005b600080fd5b34801561021957600080fd5b50d3801561022657600080fd5b50d2801561023357600080fd5b50600154610263907d010000000000000000000000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561028757600080fd5b50d3801561029457600080fd5b50d280156102a157600080fd5b506102b56102b0366004613390565b610ab0565b005b3480156102c357600080fd5b50d380156102d057600080fd5b50d280156102dd57600080fd5b506102f16102ec3660046133cc565b610aeb565b6040519015158152602001610272565b34801561030d57600080fd5b50d3801561031a57600080fd5b50d2801561032757600080fd5b506102b561033636600461340e565b610b84565b34801561034757600080fd5b50d3801561035457600080fd5b50d2801561036157600080fd5b506102b5610370366004613390565b610c69565b34801561038157600080fd5b50d3801561038e57600080fd5b50d2801561039b57600080fd5b506103c37f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610272565b3480156103f457600080fd5b50d3801561040157600080fd5b50d2801561040e57600080fd5b506102b561041d366004613483565b610df8565b34801561042e57600080fd5b50d3801561043b57600080fd5b50d2801561044857600080fd5b5061045c6104573660046134cd565b610e7b565b60405161027292919061360a565b34801561047657600080fd5b50d3801561048357600080fd5b50d2801561049057600080fd5b506102b561049f366004613637565b610f32565b3480156104b057600080fd5b50d380156104bd57600080fd5b50d280156104ca57600080fd5b506102b56104d936600461369d565b610f57565b3480156104ea57600080fd5b50d380156104f757600080fd5b50d2801561050457600080fd5b50610528610513366004613777565b60009081526020819052604090206001015490565b604051908152602001610272565b34801561054257600080fd5b50d3801561054f57600080fd5b50d2801561055c57600080fd5b5061057061056b3660046137a4565b611079565b60405161027291906137bf565b34801561058957600080fd5b50d3801561059657600080fd5b50d280156105a357600080fd5b506102f16105b2366004613483565b611100565b3480156105c357600080fd5b50d380156105d057600080fd5b50d280156105dd57600080fd5b506102b56105ec366004613806565b6111e5565b3480156105fd57600080fd5b50d3801561060a57600080fd5b50d2801561061757600080fd5b5061052861062636600461384a565b61120f565b34801561063757600080fd5b50d3801561064457600080fd5b50d2801561065157600080fd5b506102b5610660366004613806565b611324565b34801561067157600080fd5b50d3801561067e57600080fd5b50d2801561068b57600080fd5b506102b561069a3660046138c0565b611356565b3480156106ab57600080fd5b50d380156106b857600080fd5b50d280156106c557600080fd5b506105286106d4366004613964565b600460209081526000928352604080842090915290825290205481565b3480156106fd57600080fd5b50d3801561070a57600080fd5b50d2801561071757600080fd5b506102b561072636600461398e565b61147d565b34801561073757600080fd5b50d3801561074457600080fd5b50d2801561075157600080fd5b5060015460ff166102f1565b34801561076957600080fd5b50d3801561077657600080fd5b50d2801561078357600080fd5b506102b5610792366004613483565b611571565b3480156107a357600080fd5b50d380156107b057600080fd5b50d280156107bd57600080fd5b506002546103c39073ffffffffffffffffffffffffffffffffffffffff1681565b3480156107ea57600080fd5b50d380156107f757600080fd5b50d2801561080457600080fd5b506102f1610813366004613806565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b6105286108573660046139f1565b611616565b34801561086857600080fd5b50d3801561087557600080fd5b50d2801561088257600080fd5b506108966108913660046137a4565b611a64565b6040516102729493929190613a62565b3480156108b257600080fd5b50d380156108bf57600080fd5b50d280156108cc57600080fd5b50610528600081565b3480156108e157600080fd5b50d380156108ee57600080fd5b50d280156108fb57600080fd5b506102b561090a366004613ae4565b611ba1565b34801561091b57600080fd5b50d3801561092857600080fd5b50d2801561093557600080fd5b506102b5610944366004613b38565b611e02565b34801561095557600080fd5b50d3801561096257600080fd5b50d2801561096f57600080fd5b506001546103c390610100900473ffffffffffffffffffffffffffffffffffffffff1681565b3480156109a157600080fd5b50d380156109ae57600080fd5b50d280156109bb57600080fd5b506102b56109ca366004613483565b611eb0565b3480156109db57600080fd5b50d380156109e857600080fd5b50d280156109f557600080fd5b506102b5610a04366004613b53565b611f54565b348015610a1557600080fd5b50d38015610a2257600080fd5b50d28015610a2f57600080fd5b50600154610a5d907501000000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610272565b348015610a8257600080fd5b50d38015610a8f57600080fd5b50d28015610a9c57600080fd5b506102b5610aab366004613806565b611fa5565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610ada81611fca565b610ae5848484611fd4565b50505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b000000000000000000000000000000000000000000000000000000001480610b7e57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610bae81611fca565b60005b82811015610c2a5736848483818110610bcc57610bcc613b99565b9050604002019050806020013560066000617530846000016020810190610bf391906137a4565b610bfd9190613bc8565b63ffffffff1681526020810191909152604001600020600301555080610c2281613c41565b915050610bb1565b507fd6dac4a884ac5f80781f154f28ed88464b2097f6b866143bb77e46736572136a8383604051610c5c929190613c79565b60405180910390a1505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610c9381611fca565b73ffffffffffffffffffffffffffffffffffffffff841660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff16610d11576040517f5ee08b9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b158015610d8157600080fd5b505af1158015610d95573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9250606001905060405180910390a150505050565b600154610100900473ffffffffffffffffffffffffffffffffffffffff163314610e4e576040517f611136c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e788160018054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612004565b50565b80516020818301810180516005825292820191909301209152805460018201805463ffffffff9092169291610eaf90613ccd565b80601f0160208091040260200160405190810160405280929190818152602001828054610edb90613ccd565b8015610f285780601f10610efd57610100808354040283529160200191610f28565b820191906000526020600020905b815481529060010190602001808311610f0b57829003601f168201915b5050505050905082565b6000610f3d81611fca565b8115610f4f57610f4b61217b565b5050565b610f4b6121fa565b60008585604051610f69929190613d20565b6040519081900381207f1876eed9000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690631876eed990610ff3908e908e908e908e908e9089908d908d908d90600401613d79565b6020604051808303816000875af1158015611012573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110369190613dd8565b61106c576040517f500c44b400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050505050505050565b63ffffffff81166000908152600360209081526040918290208054835181840281018401909452808452606093928301828280156110f457602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116110c55790505b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff811660009081527f93c430521711328044ae92d0f1f1286cf040bc4a382f1642bd89984e86630553602052604081205460ff161561115557506000919050565b6001547501000000000000000000000000000000000000000000900467ffffffffffffffff1615806111cb575073ffffffffffffffffffffffffffffffffffffffff821660009081527f4ac82e3087b7dedf7f532cbc6915c722df8c1e31f1388c318a617b52760eaf8b602052604090205460ff165b156111d857506001919050565b506000919050565b919050565b60008281526020819052604090206001015461120081611fca565b61120a8383612251565b505050565b6040805160808101825263ffffffff8716815267ffffffffffffffff8616602082015273ffffffffffffffffffffffffffffffffffffffff8086169282019290925260015461ffff7d01000000000000000000000000000000000000000000000000000000000082041660608301526000926101009091041663f0b81bb48260068561129d6175308d613bc8565b63ffffffff1663ffffffff16815260200190815260200160002087876040518563ffffffff1660e01b81526004016112d89493929190613e90565b602060405180830381865afa1580156112f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113199190613f60565b979650505050505050565b6040517fdec9f03100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008282604051611368929190613d20565b6040519081900381207f5f6970c3000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690635f6970c3906113ec908b908b908b908b908b908990600401613f79565b6020604051808303816000875af115801561140b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142f9190613dd8565b611465576040517f500c44b400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611473878787878787612317565b5050505050505050565b600061148881611fca565b60005b8281101561153f57368484838181106114a6576114a6613b99565b606002919091019150506040810135600460006114c66020850185613483565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083602001602081019061151591906137a4565b63ffffffff168152602081019190915260400160002055508061153781613c41565b91505061148b565b507f360a0efdea8fcc9a11ee20a2099e314ddcf49a941d66790cd4e5adea30faa0748383604051610c5c929190613fba565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561159b81611fca565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020015b60405180910390a15050565b600061162860a0850160808601613483565b61163181611100565b611667576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061167f3361167a60208901896137a4565b612471565b60408051608081019091529091506000908061169e60208a018a6137a4565b63ffffffff1681526020016116b960808a0160608b01614028565b67ffffffffffffffff1681526020016116d860a08a0160808b01613483565b73ffffffffffffffffffffffffffffffffffffffff1681526001547d010000000000000000000000000000000000000000000000000000000000900461ffff16602091820152909150600090600690829061753090611739908c018c6137a4565b6117439190613bc8565b63ffffffff1663ffffffff16815260200190815260200160002060405180608001604052908160008201805461177890613ccd565b80601f01602080910402602001604051908101604052809291908181526020018280546117a490613ccd565b80156117f15780601f106117c6576101008083540402835291602001916117f1565b820191906000526020600020905b8154815290600101906020018083116117d457829003601f168201915b5050505050815260200160018201805461180a90613ccd565b80601f016020809104026020016040519081016040528092919081815260200182805461183690613ccd565b80156118835780601f1061185857610100808354040283529160200191611883565b820191906000526020600020905b81548152906001019060200180831161186657829003601f168201915b5050509183525050600282015461ffff166020808301919091526003909201546040909101529091506000906118ff9085906118c1908c018c614043565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060408c0135612508565b6001546040517fd135ca93000000000000000000000000000000000000000000000000000000008152919250610100900473ffffffffffffffffffffffffffffffffffffffff169063d135ca9390611965908690869086908e908e9033906004016140a8565b6020604051808303816000875af1158015611984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a89190613f60565b825160208401516040517f1c92115f00000000000000000000000000000000000000000000000000000000815292985073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001692631c92115f92611a2692909186906004016141bb565b600060405180830381600087803b158015611a4057600080fd5b505af1158015611a54573d6000803e3d6000fd5b5050505050505050509392505050565b600660205260009081526040902080548190611a7f90613ccd565b80601f0160208091040260200160405190810160405280929190818152602001828054611aab90613ccd565b8015611af85780601f10611acd57610100808354040283529160200191611af8565b820191906000526020600020905b815481529060010190602001808311611adb57829003601f168201915b505050505090806001018054611b0d90613ccd565b80601f0160208091040260200160405190810160405280929190818152602001828054611b3990613ccd565b8015611b865780601f10611b5b57610100808354040283529160200191611b86565b820191906000526020600020905b815481529060010190602001808311611b6957829003601f168201915b505050506002830154600390930154919261ffff1691905084565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611bcb81611fca565b60005b82811015611dd05736848483818110611be957611be9613b99565b9050602002810190611bfb91906141fe565b90506000617530611c0f60208401846137a4565b611c199190613bc8565b63ffffffff81166000908152600660205260409020805491925090611c3d90613ccd565b9050600003611d5557611c536020830183614043565b63ffffffff8316600090815260066020526040902091611c7491908361428a565b50611c826040830183614043565b63ffffffff8316600090815260066020526040902060010191611ca691908361428a565b50806005611cb76020850185614043565b604051611cc5929190613d20565b9081526040805191829003602001909120805463ffffffff939093167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000090931692909217909155611d1890830183614043565b6005611d276020860186614043565b604051611d35929190613d20565b90815260200160405180910390206001019182611d5392919061428a565b505b611d656080830160608401613b38565b63ffffffff9190911660009081526006602052604090206002810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff909316929092179091556080919091013560039091015580611dc881613c41565b915050611bce565b507f53ede267f8a00cf87be90c85641900454b96a922b10a82a0d5f5b4d93b16b38a8383604051610c5c929190614408565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611e2c81611fca565b600180547fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167d01000000000000000000000000000000000000000000000000000000000061ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d9060200161160a565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611eda81611fca565b600180547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010073ffffffffffffffffffffffffffffffffffffffff8516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e09060200161160a565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611f7e81611fca565b63ffffffff84166000908152600360205260409020611f9e90848461328f565b5050505050565b600082815260208190526040902060010154611fc081611fca565b61120a838361251d565b610e7881336125e2565b73ffffffffffffffffffffffffffffffffffffffff8316611ff95761120a828261269a565b61120a8383836127a0565b6040517ffaaebd2100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff84169063faaebd2190602401602060405180830381865afa158015612071573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120959190613f60565b9050801561120a576040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526024820183905284169063fd9be52290604401600060405180830381600087803b15801561210d57600080fd5b505af1158015612121573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8088168252861660208201529081018490527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb92506060019050610c5c565b61218361280e565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b61220261287d565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336121d0565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca821480156122ae575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16155b1561230d57600180546015906122e6907501000000000000000000000000000000000000000000900467ffffffffffffffff16614520565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610f4b82826128e9565b60006005878760405161232b929190613d20565b908152604080519182900360209081018320838301909252815463ffffffff1683526001820180549184019161236090613ccd565b80601f016020809104026020016040519081016040528092919081815260200182805461238c90613ccd565b80156123d95780601f106123ae576101008083540402835291602001916123d9565b820191906000526020600020905b8154815290600101906020018083116123bc57829003601f168201915b505050505081525050905061245b87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8b01819004810282018101909252898152925089915088908190840183828082843760009201919091525050505060208401516129d9565b8051612468908484612a24565b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020908152604080832063ffffffff8516845290915290205480610b7e576040517ff25127e600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015263ffffffff831660248201526044015b60405180910390fd5b6060612515848484612b43565b949350505050565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015612579575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b156125d857600180546015906125b1907501000000000000000000000000000000000000000000900467ffffffffffffffff16614547565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610f4b8282612b72565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610f4b5761262081612c29565b61262b836020612c48565b60405160200161263c929190614589565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526124ff9160040161460a565b73ffffffffffffffffffffffffffffffffffffffff82166126e7576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114612741576040519150601f19603f3d011682016040523d82523d6000602084013e612746565b606091505b505090508061120a576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602481018390526044016124ff565b73ffffffffffffffffffffffffffffffffffffffff82166127ed576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61120a73ffffffffffffffffffffffffffffffffffffffff84168383612e92565b60015460ff161561287b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016124ff565b565b60015460ff1661287b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016124ff565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610f4b5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561297b3390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b808051906020012082805190602001201461120a5782826040517f5cc0c62a0000000000000000000000000000000000000000000000000000000081526004016124ff92919061461d565b8263ffffffff16617530612a388484612f1f565b612a429190613bc8565b63ffffffff1614612aaf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f44564e41646170746572426173653a20696e76616c696420737263456964000060448201526064016124ff565b6000806000612abe8585612f50565b9250925092508273ffffffffffffffffffffffffffffffffffffffff16630223536e838367ffffffffffffffff6040518463ffffffff1660e01b8152600401612b099392919061464b565b600060405180830381600087803b158015612b2357600080fd5b505af1158015612b37573d6000803e3d6000fd5b50505050505050505050565b6060838284604051602001612b5a9392919061467e565b60405160208183030381529060405290509392505050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1615610f4b5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6060610b7e73ffffffffffffffffffffffffffffffffffffffff831660145b60606000612c578360026146ab565b612c629060026146c2565b67ffffffffffffffff811115612c7a57612c7a61349e565b6040519080825280601f01601f191660200182016040528015612ca4576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612cdb57612cdb613b99565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612d3e57612d3e613b99565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612d7a8460026146ab565b612d859060016146c2565b90505b6001811115612e22577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110612dc657612dc6613b99565b1a60f81b828281518110612ddc57612ddc613b99565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93612e1b816146d5565b9050612d88565b508315612e8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016124ff565b9392505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261120a90849061301f565b600082604983612f308260046146c2565b92612f3d9392919061470a565b612f4691614734565b60e01c9392505050565b6000606081612f61605160406146c2565b8414612f99576040517ff1d10e0d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612fb6612faa60206000878961470a565b612fb39161477c565b90565b9250612fc660406020868861470a565b612fcf9161477c565b9050612fde846040818861470a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509598929750929550909350505050565b6000613081826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661312e9092919063ffffffff16565b90508051600014806130a25750808060200190518101906130a29190613dd8565b61120a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016124ff565b60606125158484600085856000808673ffffffffffffffffffffffffffffffffffffffff16858760405161316291906147b8565b60006040518083038185875af1925050503d806000811461319f576040519150601f19603f3d011682016040523d82523d6000602084013e6131a4565b606091505b5091509150611319878383876060831561324657825160000361323f5773ffffffffffffffffffffffffffffffffffffffff85163b61323f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016124ff565b5081612515565b612515838381511561325b5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ff919061460a565b82805482825590600052602060002090601f016020900481019282156133285791602002820160005b838211156132f957833560ff1683826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026132b8565b80156133265782816101000a81549060ff02191690556001016020816000010492830192600103026132f9565b505b50613334929150613338565b5090565b5b808211156133345760008155600101613339565b6000813574ffffffffffffffffffffffffffffffffffffffffff8116811461337457600080fd5b73ffffffffffffffffffffffffffffffffffffffff1692915050565b6000806000606084860312156133a557600080fd5b6133ae8461334d565b92506133bc6020850161334d565b9150604084013590509250925092565b6000602082840312156133de57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612e8b57600080fd5b6000806020838503121561342157600080fd5b823567ffffffffffffffff8082111561343957600080fd5b818501915085601f83011261344d57600080fd5b81358181111561345c57600080fd5b8660208260061b850101111561347157600080fd5b60209290920196919550909350505050565b60006020828403121561349557600080fd5b612e8b8261334d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156134df57600080fd5b813567ffffffffffffffff808211156134f757600080fd5b818401915084601f83011261350b57600080fd5b81358181111561351d5761351d61349e565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156135635761356361349e565b8160405282815287602084870101111561357c57600080fd5b826020860160208301376000928101602001929092525095945050505050565b60005b838110156135b757818101518382015260200161359f565b50506000910152565b600081518084526135d881602086016020860161359c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b63ffffffff8316815260406020820152600061251560408301846135c0565b8015158114610e7857600080fd5b60006020828403121561364957600080fd5b8135612e8b81613629565b60008083601f84011261366657600080fd5b50813567ffffffffffffffff81111561367e57600080fd5b60208301915083602082850101111561369657600080fd5b9250929050565b60008060008060008060008060008060c08b8d0312156136bc57600080fd5b8a35995060208b013567ffffffffffffffff808211156136db57600080fd5b6136e78e838f01613654565b909b50995060408d013591508082111561370057600080fd5b61370c8e838f01613654565b909950975060608d013591508082111561372557600080fd5b6137318e838f01613654565b909750955060808d013591508082111561374a57600080fd5b506137578d828e01613654565b9150809450508092505060a08b013590509295989b9194979a5092959850565b60006020828403121561378957600080fd5b5035919050565b803563ffffffff811681146111e057600080fd5b6000602082840312156137b657600080fd5b612e8b82613790565b6020808252825182820181905260009190848201906040850190845b818110156137fa57835160ff16835292840192918401916001016137db565b50909695505050505050565b6000806040838503121561381957600080fd5b823591506138296020840161334d565b90509250929050565b803567ffffffffffffffff811681146111e057600080fd5b60008060008060006080868803121561386257600080fd5b61386b86613790565b945061387960208701613832565b93506138876040870161334d565b9250606086013567ffffffffffffffff8111156138a357600080fd5b6138af88828901613654565b969995985093965092949392505050565b60008060008060008060006080888a0312156138db57600080fd5b87359650602088013567ffffffffffffffff808211156138fa57600080fd5b6139068b838c01613654565b909850965060408a013591508082111561391f57600080fd5b61392b8b838c01613654565b909650945060608a013591508082111561394457600080fd5b506139518a828b01613654565b989b979a50959850939692959293505050565b6000806040838503121561397757600080fd5b6139808361334d565b915061382960208401613790565b600080602083850312156139a157600080fd5b823567ffffffffffffffff808211156139b957600080fd5b818501915085601f8301126139cd57600080fd5b8135818111156139dc57600080fd5b86602060608302850101111561347157600080fd5b600080600060408486031215613a0657600080fd5b833567ffffffffffffffff80821115613a1e57600080fd5b9085019060a08288031215613a3257600080fd5b90935060208501359080821115613a4857600080fd5b50613a5586828701613654565b9497909650939450505050565b608081526000613a7560808301876135c0565b8281036020840152613a8781876135c0565b61ffff95909516604084015250506060015292915050565b60008083601f840112613ab157600080fd5b50813567ffffffffffffffff811115613ac957600080fd5b6020830191508360208260051b850101111561369657600080fd5b60008060208385031215613af757600080fd5b823567ffffffffffffffff811115613b0e57600080fd5b613b1a85828601613a9f565b90969095509350505050565b803561ffff811681146111e057600080fd5b600060208284031215613b4a57600080fd5b612e8b82613b26565b600080600060408486031215613b6857600080fd5b613b7184613790565b9250602084013567ffffffffffffffff811115613b8d57600080fd5b613a5586828701613a9f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600063ffffffff80841680613c06577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910692915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613c7257613c72613c12565b5060010190565b6020808252818101839052600090604080840186845b87811015613cc05763ffffffff613ca583613790565b16835281850135858401529183019190830190600101613c8f565b5090979650505050505050565b600181811c90821680613ce157607f821691505b602082108103613d1a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b89815260c060208201526000613d9360c083018a8c613d30565b8281036040840152613da681898b613d30565b90508660608401528281036080840152613dc1818688613d30565b9150508260a08301529a9950505050505050505050565b600060208284031215613dea57600080fd5b8151612e8b81613629565b60008154613e0281613ccd565b808552602060018381168015613e1f5760018114613e5757613e85565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838901528284151560051b8901019550613e85565b866000528260002060005b85811015613e7d5781548a8201860152908301908401613e62565b890184019650505b505050505092915050565b845163ffffffff16815260208086015167ffffffffffffffff169082015260408086015173ffffffffffffffffffffffffffffffffffffffff169082015260608086015161ffff169082015260c06080820152608060c08201526000613efa610140830186613df5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff408382030160e0840152613f318160018801613df5565b905061ffff600287015416610100840152600386015461012084015282810360a0840152611319818587613d30565b600060208284031215613f7257600080fd5b5051919050565b868152608060208201526000613f93608083018789613d30565b8281036040840152613fa6818688613d30565b915050826060830152979650505050505050565b6020808252818101839052600090604080840186845b87811015613cc05773ffffffffffffffffffffffffffffffffffffffff613ff68361334d565b16835263ffffffff614009868401613790565b1683860152818401358484015260609283019290910190600101613fd0565b60006020828403121561403a57600080fd5b612e8b82613832565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261407857600080fd5b83018035915067ffffffffffffffff82111561409357600080fd5b60200191503681900382131561369657600080fd5b865163ffffffff16815260208088015167ffffffffffffffff169082015260408088015173ffffffffffffffffffffffffffffffffffffffff169082015260608088015161ffff1690820152600061010080608084015287516080828501526141156101808501826135c0565b91505060208801517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008483030161012085015261415282826135c0565b91505061ffff604089015116610140840152606088015161016084015282810360a084015261418181886135c0565b905082810360c0840152614196818688613d30565b91505061131960e083018473ffffffffffffffffffffffffffffffffffffffff169052565b6060815260006141ce60608301866135c0565b82810360208401526141e081866135c0565b905082810360408401526141f481856135c0565b9695505050505050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6183360301811261423257600080fd5b9190910192915050565b601f82111561120a57600081815260208120601f850160051c810160208610156142635750805b601f850160051c820191505b818110156142825782815560010161426f565b505050505050565b67ffffffffffffffff8311156142a2576142a261349e565b6142b6836142b08354613ccd565b8361423c565b6000601f84116001811461430857600085156142d25750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355611f9e565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156143575786850135825560209485019460019092019101614337565b5086821015614392577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126143d957600080fd5b830160208101925035905067ffffffffffffffff8111156143f957600080fd5b80360382131561369657600080fd5b60208082528181018390526000906040808401600586901b850182018785805b89811015614511577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc089850301855282357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618c3603018112614488578283fd5b8b0160a063ffffffff61449a83613790565b1686526144a9898301836143a4565b828b8901526144bb8389018284613d30565b925050506144cb888301836143a4565b8783038a8901526144dd838284613d30565b92505050606061ffff6144f1828501613b26565b169087015260809182013591909501529386019391860191600101614428565b50919998505050505050505050565b600067ffffffffffffffff80831681810361453d5761453d613c12565b6001019392505050565b600067ffffffffffffffff82168061456157614561613c12565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516145c181601785016020880161359c565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516145fe81602884016020880161359c565b01602801949350505050565b602081526000612e8b60208301846135c0565b60408152600061463060408301856135c0565b828103602084015261464281856135c0565b95945050505050565b60608152600061465e60608301866135c0565b905083602083015267ffffffffffffffff83166040830152949350505050565b8381528260208201526000825161469c81604085016020870161359c565b91909101604001949350505050565b8082028115828204841417610b7e57610b7e613c12565b80820180821115610b7e57610b7e613c12565b6000816146e4576146e4613c12565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b6000808585111561471a57600080fd5b8386111561472757600080fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156147745780818660040360031b1b83161692505b505092915050565b80356020831015610b7e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b6000825161423281846020870161359c56fea26474726f6e58221220143ea8668e5f2f2c3746afaa4169d2ca5961586d6e41e96b1f52278433f8416164736f6c63430008140033",
1168
+ "deployedBytecode": "0x6080604052600436106102015760003560e01c8063491606581161011d5780639e944965116100b0578063c416aa511161007f578063cd88b90311610064578063cd88b903146109cf578063d2ae210414610a09578063d547741f14610a7657600080fd5b8063c416aa5114610949578063c7b2370b1461099557600080fd5b80639e9449651461085c578063a217fddf146108a6578063af896a3b146108d5578063c358de0a1461090f57600080fd5b8063724e78da116100ec578063724e78da1461075d578063741bef1a1461079757806391d14854146107de57806395d376d71461084957600080fd5b806349160658146106655780634cfa6d2c1461069f57806351b6a0fd146106f15780635c975abb1461072b57600080fd5b806316c38b3c116101955780632de11376116101645780632de113761461057d5780632f2ff15d146105b757806330bb3aac146105f157806336568abe1461062b57600080fd5b806316c38b3c1461046a5780631a98b2e0146104a4578063248a9ca3146104de57806326e67a371461053657600080fd5b80631095b6d7116101d15780631095b6d71461033b578063116191b61461037557806312712417146103e8578063143b165f1461042257600080fd5b8062bf2e801461020d57806301e336671461027b57806301ffc9a7146102b757806302d6e8b01461030157600080fd5b3661020857005b600080fd5b34801561021957600080fd5b50d3801561022657600080fd5b50d2801561023357600080fd5b50600154610263907d010000000000000000000000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561028757600080fd5b50d3801561029457600080fd5b50d280156102a157600080fd5b506102b56102b0366004613390565b610ab0565b005b3480156102c357600080fd5b50d380156102d057600080fd5b50d280156102dd57600080fd5b506102f16102ec3660046133cc565b610aeb565b6040519015158152602001610272565b34801561030d57600080fd5b50d3801561031a57600080fd5b50d2801561032757600080fd5b506102b561033636600461340e565b610b84565b34801561034757600080fd5b50d3801561035457600080fd5b50d2801561036157600080fd5b506102b5610370366004613390565b610c69565b34801561038157600080fd5b50d3801561038e57600080fd5b50d2801561039b57600080fd5b506103c37f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610272565b3480156103f457600080fd5b50d3801561040157600080fd5b50d2801561040e57600080fd5b506102b561041d366004613483565b610df8565b34801561042e57600080fd5b50d3801561043b57600080fd5b50d2801561044857600080fd5b5061045c6104573660046134cd565b610e7b565b60405161027292919061360a565b34801561047657600080fd5b50d3801561048357600080fd5b50d2801561049057600080fd5b506102b561049f366004613637565b610f32565b3480156104b057600080fd5b50d380156104bd57600080fd5b50d280156104ca57600080fd5b506102b56104d936600461369d565b610f57565b3480156104ea57600080fd5b50d380156104f757600080fd5b50d2801561050457600080fd5b50610528610513366004613777565b60009081526020819052604090206001015490565b604051908152602001610272565b34801561054257600080fd5b50d3801561054f57600080fd5b50d2801561055c57600080fd5b5061057061056b3660046137a4565b611079565b60405161027291906137bf565b34801561058957600080fd5b50d3801561059657600080fd5b50d280156105a357600080fd5b506102f16105b2366004613483565b611100565b3480156105c357600080fd5b50d380156105d057600080fd5b50d280156105dd57600080fd5b506102b56105ec366004613806565b6111e5565b3480156105fd57600080fd5b50d3801561060a57600080fd5b50d2801561061757600080fd5b5061052861062636600461384a565b61120f565b34801561063757600080fd5b50d3801561064457600080fd5b50d2801561065157600080fd5b506102b5610660366004613806565b611324565b34801561067157600080fd5b50d3801561067e57600080fd5b50d2801561068b57600080fd5b506102b561069a3660046138c0565b611356565b3480156106ab57600080fd5b50d380156106b857600080fd5b50d280156106c557600080fd5b506105286106d4366004613964565b600460209081526000928352604080842090915290825290205481565b3480156106fd57600080fd5b50d3801561070a57600080fd5b50d2801561071757600080fd5b506102b561072636600461398e565b61147d565b34801561073757600080fd5b50d3801561074457600080fd5b50d2801561075157600080fd5b5060015460ff166102f1565b34801561076957600080fd5b50d3801561077657600080fd5b50d2801561078357600080fd5b506102b5610792366004613483565b611571565b3480156107a357600080fd5b50d380156107b057600080fd5b50d280156107bd57600080fd5b506002546103c39073ffffffffffffffffffffffffffffffffffffffff1681565b3480156107ea57600080fd5b50d380156107f757600080fd5b50d2801561080457600080fd5b506102f1610813366004613806565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b6105286108573660046139f1565b611616565b34801561086857600080fd5b50d3801561087557600080fd5b50d2801561088257600080fd5b506108966108913660046137a4565b611a64565b6040516102729493929190613a62565b3480156108b257600080fd5b50d380156108bf57600080fd5b50d280156108cc57600080fd5b50610528600081565b3480156108e157600080fd5b50d380156108ee57600080fd5b50d280156108fb57600080fd5b506102b561090a366004613ae4565b611ba1565b34801561091b57600080fd5b50d3801561092857600080fd5b50d2801561093557600080fd5b506102b5610944366004613b38565b611e02565b34801561095557600080fd5b50d3801561096257600080fd5b50d2801561096f57600080fd5b506001546103c390610100900473ffffffffffffffffffffffffffffffffffffffff1681565b3480156109a157600080fd5b50d380156109ae57600080fd5b50d280156109bb57600080fd5b506102b56109ca366004613483565b611eb0565b3480156109db57600080fd5b50d380156109e857600080fd5b50d280156109f557600080fd5b506102b5610a04366004613b53565b611f54565b348015610a1557600080fd5b50d38015610a2257600080fd5b50d28015610a2f57600080fd5b50600154610a5d907501000000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610272565b348015610a8257600080fd5b50d38015610a8f57600080fd5b50d28015610a9c57600080fd5b506102b5610aab366004613806565b611fa5565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610ada81611fca565b610ae5848484611fd4565b50505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b000000000000000000000000000000000000000000000000000000001480610b7e57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610bae81611fca565b60005b82811015610c2a5736848483818110610bcc57610bcc613b99565b9050604002019050806020013560066000617530846000016020810190610bf391906137a4565b610bfd9190613bc8565b63ffffffff1681526020810191909152604001600020600301555080610c2281613c41565b915050610bb1565b507fd6dac4a884ac5f80781f154f28ed88464b2097f6b866143bb77e46736572136a8383604051610c5c929190613c79565b60405180910390a1505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610c9381611fca565b73ffffffffffffffffffffffffffffffffffffffff841660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff16610d11576040517f5ee08b9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b158015610d8157600080fd5b505af1158015610d95573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9250606001905060405180910390a150505050565b600154610100900473ffffffffffffffffffffffffffffffffffffffff163314610e4e576040517f611136c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e788160018054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612004565b50565b80516020818301810180516005825292820191909301209152805460018201805463ffffffff9092169291610eaf90613ccd565b80601f0160208091040260200160405190810160405280929190818152602001828054610edb90613ccd565b8015610f285780601f10610efd57610100808354040283529160200191610f28565b820191906000526020600020905b815481529060010190602001808311610f0b57829003601f168201915b5050505050905082565b6000610f3d81611fca565b8115610f4f57610f4b61217b565b5050565b610f4b6121fa565b60008585604051610f69929190613d20565b6040519081900381207f1876eed9000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690631876eed990610ff3908e908e908e908e908e9089908d908d908d90600401613d79565b6020604051808303816000875af1158015611012573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110369190613dd8565b61106c576040517f500c44b400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050505050505050565b63ffffffff81166000908152600360209081526040918290208054835181840281018401909452808452606093928301828280156110f457602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116110c55790505b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff811660009081527f93c430521711328044ae92d0f1f1286cf040bc4a382f1642bd89984e86630553602052604081205460ff161561115557506000919050565b6001547501000000000000000000000000000000000000000000900467ffffffffffffffff1615806111cb575073ffffffffffffffffffffffffffffffffffffffff821660009081527f4ac82e3087b7dedf7f532cbc6915c722df8c1e31f1388c318a617b52760eaf8b602052604090205460ff165b156111d857506001919050565b506000919050565b919050565b60008281526020819052604090206001015461120081611fca565b61120a8383612251565b505050565b6040805160808101825263ffffffff8716815267ffffffffffffffff8616602082015273ffffffffffffffffffffffffffffffffffffffff8086169282019290925260015461ffff7d01000000000000000000000000000000000000000000000000000000000082041660608301526000926101009091041663f0b81bb48260068561129d6175308d613bc8565b63ffffffff1663ffffffff16815260200190815260200160002087876040518563ffffffff1660e01b81526004016112d89493929190613e90565b602060405180830381865afa1580156112f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113199190613f60565b979650505050505050565b6040517fdec9f03100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008282604051611368929190613d20565b6040519081900381207f5f6970c3000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690635f6970c3906113ec908b908b908b908b908b908990600401613f79565b6020604051808303816000875af115801561140b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142f9190613dd8565b611465576040517f500c44b400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611473878787878787612317565b5050505050505050565b600061148881611fca565b60005b8281101561153f57368484838181106114a6576114a6613b99565b606002919091019150506040810135600460006114c66020850185613483565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083602001602081019061151591906137a4565b63ffffffff168152602081019190915260400160002055508061153781613c41565b91505061148b565b507f360a0efdea8fcc9a11ee20a2099e314ddcf49a941d66790cd4e5adea30faa0748383604051610c5c929190613fba565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561159b81611fca565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020015b60405180910390a15050565b600061162860a0850160808601613483565b61163181611100565b611667576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061167f3361167a60208901896137a4565b612471565b60408051608081019091529091506000908061169e60208a018a6137a4565b63ffffffff1681526020016116b960808a0160608b01614028565b67ffffffffffffffff1681526020016116d860a08a0160808b01613483565b73ffffffffffffffffffffffffffffffffffffffff1681526001547d010000000000000000000000000000000000000000000000000000000000900461ffff16602091820152909150600090600690829061753090611739908c018c6137a4565b6117439190613bc8565b63ffffffff1663ffffffff16815260200190815260200160002060405180608001604052908160008201805461177890613ccd565b80601f01602080910402602001604051908101604052809291908181526020018280546117a490613ccd565b80156117f15780601f106117c6576101008083540402835291602001916117f1565b820191906000526020600020905b8154815290600101906020018083116117d457829003601f168201915b5050505050815260200160018201805461180a90613ccd565b80601f016020809104026020016040519081016040528092919081815260200182805461183690613ccd565b80156118835780601f1061185857610100808354040283529160200191611883565b820191906000526020600020905b81548152906001019060200180831161186657829003601f168201915b5050509183525050600282015461ffff166020808301919091526003909201546040909101529091506000906118ff9085906118c1908c018c614043565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060408c0135612508565b6001546040517fd135ca93000000000000000000000000000000000000000000000000000000008152919250610100900473ffffffffffffffffffffffffffffffffffffffff169063d135ca9390611965908690869086908e908e9033906004016140a8565b6020604051808303816000875af1158015611984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a89190613f60565b825160208401516040517f1c92115f00000000000000000000000000000000000000000000000000000000815292985073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001692631c92115f92611a2692909186906004016141bb565b600060405180830381600087803b158015611a4057600080fd5b505af1158015611a54573d6000803e3d6000fd5b5050505050505050509392505050565b600660205260009081526040902080548190611a7f90613ccd565b80601f0160208091040260200160405190810160405280929190818152602001828054611aab90613ccd565b8015611af85780601f10611acd57610100808354040283529160200191611af8565b820191906000526020600020905b815481529060010190602001808311611adb57829003601f168201915b505050505090806001018054611b0d90613ccd565b80601f0160208091040260200160405190810160405280929190818152602001828054611b3990613ccd565b8015611b865780601f10611b5b57610100808354040283529160200191611b86565b820191906000526020600020905b815481529060010190602001808311611b6957829003601f168201915b505050506002830154600390930154919261ffff1691905084565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611bcb81611fca565b60005b82811015611dd05736848483818110611be957611be9613b99565b9050602002810190611bfb91906141fe565b90506000617530611c0f60208401846137a4565b611c199190613bc8565b63ffffffff81166000908152600660205260409020805491925090611c3d90613ccd565b9050600003611d5557611c536020830183614043565b63ffffffff8316600090815260066020526040902091611c7491908361428a565b50611c826040830183614043565b63ffffffff8316600090815260066020526040902060010191611ca691908361428a565b50806005611cb76020850185614043565b604051611cc5929190613d20565b9081526040805191829003602001909120805463ffffffff939093167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000090931692909217909155611d1890830183614043565b6005611d276020860186614043565b604051611d35929190613d20565b90815260200160405180910390206001019182611d5392919061428a565b505b611d656080830160608401613b38565b63ffffffff9190911660009081526006602052604090206002810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff909316929092179091556080919091013560039091015580611dc881613c41565b915050611bce565b507f53ede267f8a00cf87be90c85641900454b96a922b10a82a0d5f5b4d93b16b38a8383604051610c5c929190614408565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611e2c81611fca565b600180547fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167d01000000000000000000000000000000000000000000000000000000000061ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d9060200161160a565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611eda81611fca565b600180547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010073ffffffffffffffffffffffffffffffffffffffff8516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e09060200161160a565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611f7e81611fca565b63ffffffff84166000908152600360205260409020611f9e90848461328f565b5050505050565b600082815260208190526040902060010154611fc081611fca565b61120a838361251d565b610e7881336125e2565b73ffffffffffffffffffffffffffffffffffffffff8316611ff95761120a828261269a565b61120a8383836127a0565b6040517ffaaebd2100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff84169063faaebd2190602401602060405180830381865afa158015612071573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120959190613f60565b9050801561120a576040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526024820183905284169063fd9be52290604401600060405180830381600087803b15801561210d57600080fd5b505af1158015612121573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8088168252861660208201529081018490527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb92506060019050610c5c565b61218361280e565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b61220261287d565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336121d0565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca821480156122ae575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16155b1561230d57600180546015906122e6907501000000000000000000000000000000000000000000900467ffffffffffffffff16614520565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610f4b82826128e9565b60006005878760405161232b929190613d20565b908152604080519182900360209081018320838301909252815463ffffffff1683526001820180549184019161236090613ccd565b80601f016020809104026020016040519081016040528092919081815260200182805461238c90613ccd565b80156123d95780601f106123ae576101008083540402835291602001916123d9565b820191906000526020600020905b8154815290600101906020018083116123bc57829003601f168201915b505050505081525050905061245b87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8b01819004810282018101909252898152925089915088908190840183828082843760009201919091525050505060208401516129d9565b8051612468908484612a24565b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020908152604080832063ffffffff8516845290915290205480610b7e576040517ff25127e600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015263ffffffff831660248201526044015b60405180910390fd5b6060612515848484612b43565b949350505050565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015612579575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b156125d857600180546015906125b1907501000000000000000000000000000000000000000000900467ffffffffffffffff16614547565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610f4b8282612b72565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610f4b5761262081612c29565b61262b836020612c48565b60405160200161263c929190614589565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526124ff9160040161460a565b73ffffffffffffffffffffffffffffffffffffffff82166126e7576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114612741576040519150601f19603f3d011682016040523d82523d6000602084013e612746565b606091505b505090508061120a576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602481018390526044016124ff565b73ffffffffffffffffffffffffffffffffffffffff82166127ed576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61120a73ffffffffffffffffffffffffffffffffffffffff84168383612e92565b60015460ff161561287b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016124ff565b565b60015460ff1661287b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016124ff565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610f4b5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561297b3390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b808051906020012082805190602001201461120a5782826040517f5cc0c62a0000000000000000000000000000000000000000000000000000000081526004016124ff92919061461d565b8263ffffffff16617530612a388484612f1f565b612a429190613bc8565b63ffffffff1614612aaf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f44564e41646170746572426173653a20696e76616c696420737263456964000060448201526064016124ff565b6000806000612abe8585612f50565b9250925092508273ffffffffffffffffffffffffffffffffffffffff16630223536e838367ffffffffffffffff6040518463ffffffff1660e01b8152600401612b099392919061464b565b600060405180830381600087803b158015612b2357600080fd5b505af1158015612b37573d6000803e3d6000fd5b50505050505050505050565b6060838284604051602001612b5a9392919061467e565b60405160208183030381529060405290509392505050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1615610f4b5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6060610b7e73ffffffffffffffffffffffffffffffffffffffff831660145b60606000612c578360026146ab565b612c629060026146c2565b67ffffffffffffffff811115612c7a57612c7a61349e565b6040519080825280601f01601f191660200182016040528015612ca4576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612cdb57612cdb613b99565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612d3e57612d3e613b99565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612d7a8460026146ab565b612d859060016146c2565b90505b6001811115612e22577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110612dc657612dc6613b99565b1a60f81b828281518110612ddc57612ddc613b99565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93612e1b816146d5565b9050612d88565b508315612e8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016124ff565b9392505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261120a90849061301f565b600082604983612f308260046146c2565b92612f3d9392919061470a565b612f4691614734565b60e01c9392505050565b6000606081612f61605160406146c2565b8414612f99576040517ff1d10e0d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612fb6612faa60206000878961470a565b612fb39161477c565b90565b9250612fc660406020868861470a565b612fcf9161477c565b9050612fde846040818861470a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509598929750929550909350505050565b6000613081826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661312e9092919063ffffffff16565b90508051600014806130a25750808060200190518101906130a29190613dd8565b61120a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016124ff565b60606125158484600085856000808673ffffffffffffffffffffffffffffffffffffffff16858760405161316291906147b8565b60006040518083038185875af1925050503d806000811461319f576040519150601f19603f3d011682016040523d82523d6000602084013e6131a4565b606091505b5091509150611319878383876060831561324657825160000361323f5773ffffffffffffffffffffffffffffffffffffffff85163b61323f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016124ff565b5081612515565b612515838381511561325b5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ff919061460a565b82805482825590600052602060002090601f016020900481019282156133285791602002820160005b838211156132f957833560ff1683826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026132b8565b80156133265782816101000a81549060ff02191690556001016020816000010492830192600103026132f9565b505b50613334929150613338565b5090565b5b808211156133345760008155600101613339565b6000813574ffffffffffffffffffffffffffffffffffffffffff8116811461337457600080fd5b73ffffffffffffffffffffffffffffffffffffffff1692915050565b6000806000606084860312156133a557600080fd5b6133ae8461334d565b92506133bc6020850161334d565b9150604084013590509250925092565b6000602082840312156133de57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612e8b57600080fd5b6000806020838503121561342157600080fd5b823567ffffffffffffffff8082111561343957600080fd5b818501915085601f83011261344d57600080fd5b81358181111561345c57600080fd5b8660208260061b850101111561347157600080fd5b60209290920196919550909350505050565b60006020828403121561349557600080fd5b612e8b8261334d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156134df57600080fd5b813567ffffffffffffffff808211156134f757600080fd5b818401915084601f83011261350b57600080fd5b81358181111561351d5761351d61349e565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156135635761356361349e565b8160405282815287602084870101111561357c57600080fd5b826020860160208301376000928101602001929092525095945050505050565b60005b838110156135b757818101518382015260200161359f565b50506000910152565b600081518084526135d881602086016020860161359c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b63ffffffff8316815260406020820152600061251560408301846135c0565b8015158114610e7857600080fd5b60006020828403121561364957600080fd5b8135612e8b81613629565b60008083601f84011261366657600080fd5b50813567ffffffffffffffff81111561367e57600080fd5b60208301915083602082850101111561369657600080fd5b9250929050565b60008060008060008060008060008060c08b8d0312156136bc57600080fd5b8a35995060208b013567ffffffffffffffff808211156136db57600080fd5b6136e78e838f01613654565b909b50995060408d013591508082111561370057600080fd5b61370c8e838f01613654565b909950975060608d013591508082111561372557600080fd5b6137318e838f01613654565b909750955060808d013591508082111561374a57600080fd5b506137578d828e01613654565b9150809450508092505060a08b013590509295989b9194979a5092959850565b60006020828403121561378957600080fd5b5035919050565b803563ffffffff811681146111e057600080fd5b6000602082840312156137b657600080fd5b612e8b82613790565b6020808252825182820181905260009190848201906040850190845b818110156137fa57835160ff16835292840192918401916001016137db565b50909695505050505050565b6000806040838503121561381957600080fd5b823591506138296020840161334d565b90509250929050565b803567ffffffffffffffff811681146111e057600080fd5b60008060008060006080868803121561386257600080fd5b61386b86613790565b945061387960208701613832565b93506138876040870161334d565b9250606086013567ffffffffffffffff8111156138a357600080fd5b6138af88828901613654565b969995985093965092949392505050565b60008060008060008060006080888a0312156138db57600080fd5b87359650602088013567ffffffffffffffff808211156138fa57600080fd5b6139068b838c01613654565b909850965060408a013591508082111561391f57600080fd5b61392b8b838c01613654565b909650945060608a013591508082111561394457600080fd5b506139518a828b01613654565b989b979a50959850939692959293505050565b6000806040838503121561397757600080fd5b6139808361334d565b915061382960208401613790565b600080602083850312156139a157600080fd5b823567ffffffffffffffff808211156139b957600080fd5b818501915085601f8301126139cd57600080fd5b8135818111156139dc57600080fd5b86602060608302850101111561347157600080fd5b600080600060408486031215613a0657600080fd5b833567ffffffffffffffff80821115613a1e57600080fd5b9085019060a08288031215613a3257600080fd5b90935060208501359080821115613a4857600080fd5b50613a5586828701613654565b9497909650939450505050565b608081526000613a7560808301876135c0565b8281036020840152613a8781876135c0565b61ffff95909516604084015250506060015292915050565b60008083601f840112613ab157600080fd5b50813567ffffffffffffffff811115613ac957600080fd5b6020830191508360208260051b850101111561369657600080fd5b60008060208385031215613af757600080fd5b823567ffffffffffffffff811115613b0e57600080fd5b613b1a85828601613a9f565b90969095509350505050565b803561ffff811681146111e057600080fd5b600060208284031215613b4a57600080fd5b612e8b82613b26565b600080600060408486031215613b6857600080fd5b613b7184613790565b9250602084013567ffffffffffffffff811115613b8d57600080fd5b613a5586828701613a9f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600063ffffffff80841680613c06577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910692915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613c7257613c72613c12565b5060010190565b6020808252818101839052600090604080840186845b87811015613cc05763ffffffff613ca583613790565b16835281850135858401529183019190830190600101613c8f565b5090979650505050505050565b600181811c90821680613ce157607f821691505b602082108103613d1a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b89815260c060208201526000613d9360c083018a8c613d30565b8281036040840152613da681898b613d30565b90508660608401528281036080840152613dc1818688613d30565b9150508260a08301529a9950505050505050505050565b600060208284031215613dea57600080fd5b8151612e8b81613629565b60008154613e0281613ccd565b808552602060018381168015613e1f5760018114613e5757613e85565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838901528284151560051b8901019550613e85565b866000528260002060005b85811015613e7d5781548a8201860152908301908401613e62565b890184019650505b505050505092915050565b845163ffffffff16815260208086015167ffffffffffffffff169082015260408086015173ffffffffffffffffffffffffffffffffffffffff169082015260608086015161ffff169082015260c06080820152608060c08201526000613efa610140830186613df5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff408382030160e0840152613f318160018801613df5565b905061ffff600287015416610100840152600386015461012084015282810360a0840152611319818587613d30565b600060208284031215613f7257600080fd5b5051919050565b868152608060208201526000613f93608083018789613d30565b8281036040840152613fa6818688613d30565b915050826060830152979650505050505050565b6020808252818101839052600090604080840186845b87811015613cc05773ffffffffffffffffffffffffffffffffffffffff613ff68361334d565b16835263ffffffff614009868401613790565b1683860152818401358484015260609283019290910190600101613fd0565b60006020828403121561403a57600080fd5b612e8b82613832565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261407857600080fd5b83018035915067ffffffffffffffff82111561409357600080fd5b60200191503681900382131561369657600080fd5b865163ffffffff16815260208088015167ffffffffffffffff169082015260408088015173ffffffffffffffffffffffffffffffffffffffff169082015260608088015161ffff1690820152600061010080608084015287516080828501526141156101808501826135c0565b91505060208801517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008483030161012085015261415282826135c0565b91505061ffff604089015116610140840152606088015161016084015282810360a084015261418181886135c0565b905082810360c0840152614196818688613d30565b91505061131960e083018473ffffffffffffffffffffffffffffffffffffffff169052565b6060815260006141ce60608301866135c0565b82810360208401526141e081866135c0565b905082810360408401526141f481856135c0565b9695505050505050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6183360301811261423257600080fd5b9190910192915050565b601f82111561120a57600081815260208120601f850160051c810160208610156142635750805b601f850160051c820191505b818110156142825782815560010161426f565b505050505050565b67ffffffffffffffff8311156142a2576142a261349e565b6142b6836142b08354613ccd565b8361423c565b6000601f84116001811461430857600085156142d25750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355611f9e565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156143575786850135825560209485019460019092019101614337565b5086821015614392577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126143d957600080fd5b830160208101925035905067ffffffffffffffff8111156143f957600080fd5b80360382131561369657600080fd5b60208082528181018390526000906040808401600586901b850182018785805b89811015614511577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc089850301855282357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618c3603018112614488578283fd5b8b0160a063ffffffff61449a83613790565b1686526144a9898301836143a4565b828b8901526144bb8389018284613d30565b925050506144cb888301836143a4565b8783038a8901526144dd838284613d30565b92505050606061ffff6144f1828501613b26565b169087015260809182013591909501529386019391860191600101614428565b50919998505050505050505050565b600067ffffffffffffffff80831681810361453d5761453d613c12565b6001019392505050565b600067ffffffffffffffff82168061456157614561613c12565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516145c181601785016020880161359c565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516145fe81602884016020880161359c565b01602801949350505050565b602081526000612e8b60208301846135c0565b60408152600061463060408301856135c0565b828103602084015261464281856135c0565b95945050505050565b60608152600061465e60608301866135c0565b905083602083015267ffffffffffffffff83166040830152949350505050565b8381528260208201526000825161469c81604085016020870161359c565b91909101604001949350505050565b8082028115828204841417610b7e57610b7e613c12565b80820180821115610b7e57610b7e613c12565b6000816146e4576146e4613c12565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b6000808585111561471a57600080fd5b8386111561472757600080fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156147745780818660040360031b1b83161692505b505092915050565b80356020831015610b7e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b6000825161423281846020870161359c56fea26474726f6e58221220143ea8668e5f2f2c3746afaa4169d2ca5961586d6e41e96b1f52278433f8416164736f6c63430008140033",
1169
+ "linkReferences": {},
1170
+ "deployedLinkReferences": {}
1171
+ }