@layerzerolabs/lz-evm-sdk-v2 2.3.9 → 2.3.11

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 (413) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/artifacts-tron/contracts/EndpointV2.sol/EndpointV2.json +2361 -0
  3. package/artifacts-tron/contracts/EndpointV2Alt.sol/EndpointV2Alt.json +2376 -0
  4. package/artifacts-tron/contracts/EndpointV2View.sol/EndpointV2View.json +209 -0
  5. package/artifacts-tron/contracts/EndpointV2ViewUpgradeable.sol/EndpointV2ViewUpgradeable.json +196 -0
  6. package/artifacts-tron/contracts/Executor.sol/Executor.json +1276 -0
  7. package/artifacts-tron/contracts/Executor.sol/ILayerZeroEndpointV2.json +230 -0
  8. package/artifacts-tron/contracts/ExecutorFeeLib.sol/ExecutorFeeLib.json +367 -0
  9. package/artifacts-tron/contracts/MessageLibBase.sol/MessageLibBase.json +16 -0
  10. package/artifacts-tron/contracts/MessageLibManager.sol/MessageLibManager.json +771 -0
  11. package/artifacts-tron/contracts/MessagingChannel.sol/MessagingChannel.json +426 -0
  12. package/artifacts-tron/contracts/MessagingComposer.sol/MessagingComposer.json +320 -0
  13. package/artifacts-tron/contracts/MessagingContext.sol/MessagingContext.json +42 -0
  14. package/artifacts-tron/contracts/PriceFeed.sol/PriceFeed.json +694 -0
  15. package/artifacts-tron/contracts/ReceiveLibBaseE2.sol/ReceiveLibBaseE2.json +154 -0
  16. package/artifacts-tron/contracts/SendLibBase.sol/SendLibBase.json +381 -0
  17. package/artifacts-tron/contracts/SendLibBaseE2.sol/SendLibBaseE2.json +819 -0
  18. package/artifacts-tron/contracts/Treasury.sol/Treasury.json +309 -0
  19. package/artifacts-tron/contracts/Worker.sol/Worker.json +579 -0
  20. package/artifacts-tron/contracts/decompressor/DVNDecoder.sol/DVNDecoder.json +10 -0
  21. package/artifacts-tron/contracts/decompressor/DVNDecompressor.sol/DVNDecompressor.json +329 -0
  22. package/artifacts-tron/contracts/decompressor/DecompressorExtension.sol/DecompressorExtension.json +92 -0
  23. package/artifacts-tron/contracts/decompressor/ExecutorDecoder.sol/ExecutorDecoder.json +10 -0
  24. package/artifacts-tron/contracts/decompressor/ExecutorDecompressor.sol/ExecutorDecompressor.json +220 -0
  25. package/artifacts-tron/contracts/interfaces/IExecutor.sol/IExecutor.json +439 -0
  26. package/artifacts-tron/contracts/interfaces/IExecutorFeeLib.sol/IExecutorFeeLib.json +241 -0
  27. package/artifacts-tron/contracts/interfaces/ILayerZeroComposer.sol/ILayerZeroComposer.json +44 -0
  28. package/artifacts-tron/contracts/interfaces/ILayerZeroEndpointV2.sol/ILayerZeroEndpointV2.json +1899 -0
  29. package/artifacts-tron/contracts/interfaces/ILayerZeroExecutor.sol/ILayerZeroExecutor.json +79 -0
  30. package/artifacts-tron/contracts/interfaces/ILayerZeroPriceFeed.sol/ILayerZeroPriceFeed.json +222 -0
  31. package/artifacts-tron/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.json +121 -0
  32. package/artifacts-tron/contracts/interfaces/ILayerZeroTreasury.sol/ILayerZeroTreasury.json +79 -0
  33. package/artifacts-tron/contracts/interfaces/IMessageLib.sol/IMessageLib.json +149 -0
  34. package/artifacts-tron/contracts/interfaces/IMessageLibManager.sol/IMessageLibManager.json +646 -0
  35. package/artifacts-tron/contracts/interfaces/IMessagingChannel.sol/IMessagingChannel.json +373 -0
  36. package/artifacts-tron/contracts/interfaces/IMessagingComposer.sol/IMessagingComposer.json +246 -0
  37. package/artifacts-tron/contracts/interfaces/IMessagingContext.sol/IMessagingContext.json +42 -0
  38. package/artifacts-tron/contracts/interfaces/ISendLib.sol/ISendLib.json +364 -0
  39. package/artifacts-tron/contracts/interfaces/IWorker.sol/IWorker.json +221 -0
  40. package/artifacts-tron/contracts/libs/AddressCast.sol/AddressCast.json +21 -0
  41. package/artifacts-tron/contracts/libs/CalldataBytesLib.sol/CalldataBytesLib.json +10 -0
  42. package/artifacts-tron/contracts/libs/Errors.sol/Errors.json +211 -0
  43. package/artifacts-tron/contracts/libs/GUID.sol/GUID.json +10 -0
  44. package/artifacts-tron/contracts/libs/SafeCall.sol/SafeCall.json +10 -0
  45. package/artifacts-tron/contracts/libs/Transfer.sol/Transfer.json +32 -0
  46. package/artifacts-tron/contracts/messagelib/BlockedMessageLib.sol/BlockedMessageLib.json +94 -0
  47. package/artifacts-tron/contracts/messagelib/SimpleMessageLib.sol/SimpleMessageLib.json +591 -0
  48. package/artifacts-tron/contracts/messagelib/libs/BitMaps.sol/BitMaps.json +10 -0
  49. package/artifacts-tron/contracts/messagelib/libs/ExecutorOptions.sol/ExecutorOptions.json +26 -0
  50. package/artifacts-tron/contracts/messagelib/libs/PacketV1Codec.sol/PacketV1Codec.json +10 -0
  51. package/artifacts-tron/contracts/oapp/OApp.sol/OApp.json +383 -0
  52. package/artifacts-tron/contracts/oapp/OAppCore.sol/OAppCore.json +200 -0
  53. package/artifacts-tron/contracts/oapp/OAppReceiver.sol/OAppReceiver.json +367 -0
  54. package/artifacts-tron/contracts/oapp/OAppSender.sol/OAppSender.json +216 -0
  55. package/artifacts-tron/contracts/oapp/examples/OmniCounter.sol/OmniCounter.json +925 -0
  56. package/artifacts-tron/contracts/oapp/examples/OmniCounterAbstract.sol/MsgCodec.json +10 -0
  57. package/artifacts-tron/contracts/oapp/examples/OmniCounterAbstract.sol/OmniCounterAbstract.json +909 -0
  58. package/artifacts-tron/contracts/oapp/examples/OmniCounterPreCrime.sol/OmniCounterPreCrime.json +368 -0
  59. package/artifacts-tron/contracts/oapp/interfaces/IOAppComposer.sol/IOAppComposer.json +44 -0
  60. package/artifacts-tron/contracts/oapp/interfaces/IOAppCore.sol/IOAppCore.json +148 -0
  61. package/artifacts-tron/contracts/oapp/interfaces/IOAppMsgInspector.sol/IOAppMsgInspector.json +51 -0
  62. package/artifacts-tron/contracts/oapp/interfaces/IOAppOptionsType3.sol/IOAppOptionsType3.json +111 -0
  63. package/artifacts-tron/contracts/oapp/interfaces/IOAppReceiver.sol/IOAppReceiver.json +167 -0
  64. package/artifacts-tron/contracts/oapp/libs/OAppOptionsType3.sol/OAppOptionsType3.json +187 -0
  65. package/artifacts-tron/contracts/oapp/libs/OptionsBuilder.sol/OptionsBuilder.json +38 -0
  66. package/artifacts-tron/contracts/oapp/utils/RateLimiter.sol/RateLimiter.json +104 -0
  67. package/artifacts-tron/contracts/oft/OFT.sol/OFT.json +1514 -0
  68. package/artifacts-tron/contracts/oft/OFTAdapter.sol/OFTAdapter.json +1244 -0
  69. package/artifacts-tron/contracts/oft/OFTCore.sol/OFTCore.json +1244 -0
  70. package/artifacts-tron/contracts/oft/interfaces/IOFT.sol/IOFT.json +456 -0
  71. package/artifacts-tron/contracts/oft/libs/OFTComposeMsgCodec.sol/OFTComposeMsgCodec.json +10 -0
  72. package/artifacts-tron/contracts/oft/libs/OFTMsgCodec.sol/OFTMsgCodec.json +10 -0
  73. package/artifacts-tron/contracts/precrime/OAppPreCrimeSimulator.sol/OAppPreCrimeSimulator.json +277 -0
  74. package/artifacts-tron/contracts/precrime/PreCrime.sol/PreCrime.json +352 -0
  75. package/artifacts-tron/contracts/precrime/extensions/PreCrimeE1.sol/PreCrimeE1.json +352 -0
  76. package/artifacts-tron/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol/IOAppPreCrimeSimulator.json +175 -0
  77. package/artifacts-tron/contracts/precrime/interfaces/IPreCrime.sol/IPreCrime.json +188 -0
  78. package/artifacts-tron/contracts/precrime/libs/Packet.sol/PacketDecoder.json +10 -0
  79. package/artifacts-tron/contracts/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +160 -0
  80. package/artifacts-tron/contracts/uln/LzExecutor.sol/IReceiveUlnView.json +35 -0
  81. package/artifacts-tron/contracts/uln/LzExecutor.sol/LzExecutor.json +515 -0
  82. package/artifacts-tron/contracts/uln/ReceiveUlnBase.sol/ReceiveUlnBase.json +551 -0
  83. package/artifacts-tron/contracts/uln/SendUlnBase.sol/SendUlnBase.json +412 -0
  84. package/artifacts-tron/contracts/uln/UlnBase.sol/UlnBase.json +387 -0
  85. package/artifacts-tron/contracts/uln/dvn/DVN.sol/DVN.json +1370 -0
  86. package/artifacts-tron/contracts/uln/dvn/DVNFeeLib.sol/DVNFeeLib.json +311 -0
  87. package/artifacts-tron/contracts/uln/dvn/MultiSig.sol/MultiSig.json +164 -0
  88. package/artifacts-tron/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapter.sol/CCIPDVNAdapter.json +1040 -0
  89. package/artifacts-tron/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapterFeeLib.sol/CCIPDVNAdapterFeeLib.json +417 -0
  90. package/artifacts-tron/contracts/uln/dvn/adapters/DVNAdapterBase.sol/DVNAdapterBase.json +789 -0
  91. package/artifacts-tron/contracts/uln/dvn/adapters/DVNAdapterBase.sol/IReceiveUln.json +34 -0
  92. package/artifacts-tron/contracts/uln/dvn/adapters/DVNAdapterBase.sol/ISendLibBase.json +30 -0
  93. package/artifacts-tron/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL1.sol/ArbitrumDVNAdapterL1.json +936 -0
  94. package/artifacts-tron/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL2.sol/ArbitrumDVNAdapterL2.json +868 -0
  95. package/artifacts-tron/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/AxelarDVNAdapter.json +1171 -0
  96. package/artifacts-tron/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/ISendLibBase.json +30 -0
  97. package/artifacts-tron/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapterFeeLib.sol/AxelarDVNAdapterFeeLib.json +574 -0
  98. package/artifacts-tron/contracts/uln/dvn/adapters/libs/DVNAdapterMessageCodec.sol/DVNAdapterMessageCodec.json +16 -0
  99. package/artifacts-tron/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL1.sol/OptimismDVNAdapterL1.json +924 -0
  100. package/artifacts-tron/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL2.sol/OptimismDVNAdapterL2.json +891 -0
  101. package/artifacts-tron/contracts/uln/interfaces/IDVN.sol/IDVN.json +370 -0
  102. package/artifacts-tron/contracts/uln/interfaces/IDVNFeeLib.sol/IDVNFeeLib.json +189 -0
  103. package/artifacts-tron/contracts/uln/interfaces/ILayerZeroDVN.sol/ILayerZeroDVN.json +96 -0
  104. package/artifacts-tron/contracts/uln/interfaces/IReceiveUlnE2.sol/IReceiveUlnE2.json +52 -0
  105. package/artifacts-tron/contracts/uln/interfaces/adapters/IAxelarDVNAdapter.sol/IAxelarDVNAdapter.json +160 -0
  106. package/artifacts-tron/contracts/uln/interfaces/adapters/IAxelarDVNAdapterFeeLib.sol/IAxelarDVNAdapterFeeLib.json +293 -0
  107. package/artifacts-tron/contracts/uln/interfaces/adapters/ICCIPDVNAdapter.sol/ICCIPDVNAdapter.json +78 -0
  108. package/artifacts-tron/contracts/uln/interfaces/adapters/ICCIPDVNAdapterFeeLib.sol/ICCIPDVNAdapterFeeLib.json +301 -0
  109. package/artifacts-tron/contracts/uln/libs/DVNOptions.sol/DVNOptions.json +27 -0
  110. package/artifacts-tron/contracts/uln/libs/UlnOptions.sol/UlnOptions.json +54 -0
  111. package/artifacts-tron/contracts/uln/uln301/AddressSizeConfig.sol/AddressSizeConfig.json +129 -0
  112. package/artifacts-tron/contracts/uln/uln301/ReceiveLibBaseE1.sol/ILayerZeroReceiveLibrary.json +68 -0
  113. package/artifacts-tron/contracts/uln/uln301/ReceiveLibBaseE1.sol/ReceiveLibBaseE1.json +416 -0
  114. package/artifacts-tron/contracts/uln/uln301/ReceiveUln301.sol/ReceiveUln301.json +1000 -0
  115. package/artifacts-tron/contracts/uln/uln301/ReceiveUln301View.sol/IReceiveUln301.json +178 -0
  116. package/artifacts-tron/contracts/uln/uln301/ReceiveUln301View.sol/ReceiveUln301View.json +126 -0
  117. package/artifacts-tron/contracts/uln/uln301/SendLibBaseE1.sol/SendLibBaseE1.json +804 -0
  118. package/artifacts-tron/contracts/uln/uln301/SendUln301.sol/SendUln301.json +1278 -0
  119. package/artifacts-tron/contracts/uln/uln301/TreasuryFeeHandler.sol/TreasuryFeeHandler.json +94 -0
  120. package/artifacts-tron/contracts/uln/uln301/interfaces/IMessageLibE1.sol/IMessageLibE1.json +247 -0
  121. package/artifacts-tron/contracts/uln/uln301/interfaces/INonceContract.sol/INonceContract.json +40 -0
  122. package/artifacts-tron/contracts/uln/uln301/interfaces/ITreasuryFeeHandler.sol/ITreasuryFeeHandler.json +44 -0
  123. package/artifacts-tron/contracts/uln/uln301/interfaces/IUltraLightNode301.sol/IUltraLightNode301.json +29 -0
  124. package/artifacts-tron/contracts/uln/uln301/mocks/NonceContractMock.sol/NonceContractMock.json +93 -0
  125. package/artifacts-tron/contracts/uln/uln302/ReceiveUln302.sol/ReceiveUln302.json +757 -0
  126. package/artifacts-tron/contracts/uln/uln302/ReceiveUln302View.sol/IReceiveUln302.json +146 -0
  127. package/artifacts-tron/contracts/uln/uln302/ReceiveUln302View.sol/ReceiveUln302View.json +251 -0
  128. package/artifacts-tron/contracts/uln/uln302/SendUln302.sol/SendUln302.json +1259 -0
  129. package/artifacts-tron/contracts/upgradeable/WorkerUpgradeable.sol/WorkerUpgradeable.json +592 -0
  130. package/artifacts-tron/contracts/upgradeable/proxy/ProxyAdmin.sol/ProxyAdmin.json +181 -0
  131. package/artifacts-tron/contracts/upgradeable/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +160 -0
  132. package/artifacts-zk/contracts/EndpointV2.sol/EndpointV2.json +2364 -0
  133. package/artifacts-zk/contracts/EndpointV2Alt.sol/EndpointV2Alt.json +2379 -0
  134. package/artifacts-zk/contracts/EndpointV2View.sol/EndpointV2View.json +210 -0
  135. package/artifacts-zk/contracts/EndpointV2ViewUpgradeable.sol/EndpointV2ViewUpgradeable.json +197 -0
  136. package/artifacts-zk/contracts/Executor.sol/Executor.json +1157 -0
  137. package/artifacts-zk/contracts/ExecutorFeeLib.sol/ExecutorFeeLib.json +353 -0
  138. package/artifacts-zk/contracts/MessageLibBase.sol/MessageLibBase.json +17 -0
  139. package/artifacts-zk/contracts/MessageLibManager.sol/MessageLibManager.json +772 -0
  140. package/artifacts-zk/contracts/MessagingChannel.sol/MessagingChannel.json +427 -0
  141. package/artifacts-zk/contracts/MessagingComposer.sol/MessagingComposer.json +321 -0
  142. package/artifacts-zk/contracts/MessagingContext.sol/MessagingContext.json +43 -0
  143. package/artifacts-zk/contracts/PriceFeed.sol/PriceFeed.json +651 -0
  144. package/artifacts-zk/contracts/ReceiveLibBaseE2.sol/ReceiveLibBaseE2.json +155 -0
  145. package/artifacts-zk/contracts/SendLibBase.sol/SendLibBase.json +382 -0
  146. package/artifacts-zk/contracts/SendLibBaseE2.sol/SendLibBaseE2.json +820 -0
  147. package/artifacts-zk/contracts/Treasury.sol/Treasury.json +310 -0
  148. package/artifacts-zk/contracts/Worker.sol/Worker.json +580 -0
  149. package/artifacts-zk/contracts/interfaces/IExecutor.sol/IExecutor.json +430 -0
  150. package/artifacts-zk/contracts/interfaces/IExecutorFeeLib.sol/IExecutorFeeLib.json +227 -0
  151. package/artifacts-zk/contracts/interfaces/ILayerZeroComposer.sol/ILayerZeroComposer.json +45 -0
  152. package/artifacts-zk/contracts/interfaces/ILayerZeroEndpointV2.sol/ILayerZeroEndpointV2.json +1900 -0
  153. package/artifacts-zk/contracts/interfaces/ILayerZeroExecutor.sol/ILayerZeroExecutor.json +80 -0
  154. package/artifacts-zk/contracts/interfaces/ILayerZeroPriceFeed.sol/ILayerZeroPriceFeed.json +223 -0
  155. package/artifacts-zk/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.json +122 -0
  156. package/artifacts-zk/contracts/interfaces/ILayerZeroTreasury.sol/ILayerZeroTreasury.json +80 -0
  157. package/artifacts-zk/contracts/interfaces/IMessageLib.sol/IMessageLib.json +150 -0
  158. package/artifacts-zk/contracts/interfaces/IMessageLibManager.sol/IMessageLibManager.json +647 -0
  159. package/artifacts-zk/contracts/interfaces/IMessagingChannel.sol/IMessagingChannel.json +374 -0
  160. package/artifacts-zk/contracts/interfaces/IMessagingComposer.sol/IMessagingComposer.json +247 -0
  161. package/artifacts-zk/contracts/interfaces/IMessagingContext.sol/IMessagingContext.json +43 -0
  162. package/artifacts-zk/contracts/interfaces/ISendLib.sol/ISendLib.json +365 -0
  163. package/artifacts-zk/contracts/interfaces/IWorker.sol/IWorker.json +222 -0
  164. package/artifacts-zk/contracts/libs/AddressCast.sol/AddressCast.json +22 -0
  165. package/artifacts-zk/contracts/libs/CalldataBytesLib.sol/CalldataBytesLib.json +11 -0
  166. package/artifacts-zk/contracts/libs/Errors.sol/Errors.json +212 -0
  167. package/artifacts-zk/contracts/libs/GUID.sol/GUID.json +11 -0
  168. package/artifacts-zk/contracts/libs/SafeCall.sol/SafeCall.json +11 -0
  169. package/artifacts-zk/contracts/libs/Transfer.sol/Transfer.json +33 -0
  170. package/artifacts-zk/contracts/messagelib/BlockedMessageLib.sol/BlockedMessageLib.json +95 -0
  171. package/artifacts-zk/contracts/messagelib/SimpleMessageLib.sol/SimpleMessageLib.json +592 -0
  172. package/artifacts-zk/contracts/messagelib/libs/BitMaps.sol/BitMaps.json +11 -0
  173. package/artifacts-zk/contracts/messagelib/libs/ExecutorOptions.sol/ExecutorOptions.json +27 -0
  174. package/artifacts-zk/contracts/messagelib/libs/PacketV1Codec.sol/PacketV1Codec.json +11 -0
  175. package/artifacts-zk/contracts/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +161 -0
  176. package/artifacts-zk/contracts/uln/LzExecutor.sol/IReceiveUlnView.json +36 -0
  177. package/artifacts-zk/contracts/uln/LzExecutor.sol/LzExecutor.json +516 -0
  178. package/artifacts-zk/contracts/uln/ReceiveUlnBase.sol/ReceiveUlnBase.json +552 -0
  179. package/artifacts-zk/contracts/uln/SendUlnBase.sol/SendUlnBase.json +413 -0
  180. package/artifacts-zk/contracts/uln/UlnBase.sol/UlnBase.json +388 -0
  181. package/artifacts-zk/contracts/uln/dvn/DVN.sol/DVN.json +1371 -0
  182. package/artifacts-zk/contracts/uln/dvn/DVNFeeLib.sol/DVNFeeLib.json +312 -0
  183. package/artifacts-zk/contracts/uln/dvn/MultiSig.sol/MultiSig.json +165 -0
  184. package/artifacts-zk/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapter.sol/CCIPDVNAdapter.json +1062 -0
  185. package/artifacts-zk/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapterFeeLib.sol/CCIPDVNAdapterFeeLib.json +418 -0
  186. package/artifacts-zk/contracts/uln/dvn/adapters/DVNAdapterBase.sol/DVNAdapterBase.json +790 -0
  187. package/artifacts-zk/contracts/uln/dvn/adapters/DVNAdapterBase.sol/IReceiveUln.json +35 -0
  188. package/artifacts-zk/contracts/uln/dvn/adapters/DVNAdapterBase.sol/ISendLibBase.json +31 -0
  189. package/artifacts-zk/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL1.sol/ArbitrumDVNAdapterL1.json +937 -0
  190. package/artifacts-zk/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL2.sol/ArbitrumDVNAdapterL2.json +869 -0
  191. package/artifacts-zk/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/AxelarDVNAdapter.json +1167 -0
  192. package/artifacts-zk/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/ISendLibBase.json +31 -0
  193. package/artifacts-zk/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapterFeeLib.sol/AxelarDVNAdapterFeeLib.json +575 -0
  194. package/artifacts-zk/contracts/uln/dvn/adapters/libs/DVNAdapterMessageCodec.sol/DVNAdapterMessageCodec.json +17 -0
  195. package/artifacts-zk/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL1.sol/OptimismDVNAdapterL1.json +925 -0
  196. package/artifacts-zk/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL2.sol/OptimismDVNAdapterL2.json +892 -0
  197. package/artifacts-zk/contracts/uln/interfaces/IDVN.sol/IDVN.json +371 -0
  198. package/artifacts-zk/contracts/uln/interfaces/IDVNFeeLib.sol/IDVNFeeLib.json +190 -0
  199. package/artifacts-zk/contracts/uln/interfaces/ILayerZeroDVN.sol/ILayerZeroDVN.json +97 -0
  200. package/artifacts-zk/contracts/uln/interfaces/IReceiveUlnE2.sol/IReceiveUlnE2.json +53 -0
  201. package/artifacts-zk/contracts/uln/interfaces/adapters/IAxelarDVNAdapter.sol/IAxelarDVNAdapter.json +161 -0
  202. package/artifacts-zk/contracts/uln/interfaces/adapters/IAxelarDVNAdapterFeeLib.sol/IAxelarDVNAdapterFeeLib.json +294 -0
  203. package/artifacts-zk/contracts/uln/interfaces/adapters/ICCIPDVNAdapter.sol/ICCIPDVNAdapter.json +92 -0
  204. package/artifacts-zk/contracts/uln/interfaces/adapters/ICCIPDVNAdapterFeeLib.sol/ICCIPDVNAdapterFeeLib.json +302 -0
  205. package/artifacts-zk/contracts/uln/libs/DVNOptions.sol/DVNOptions.json +28 -0
  206. package/artifacts-zk/contracts/uln/libs/UlnOptions.sol/UlnOptions.json +55 -0
  207. package/artifacts-zk/contracts/uln/uln301/AddressSizeConfig.sol/AddressSizeConfig.json +130 -0
  208. package/artifacts-zk/contracts/uln/uln301/ReceiveLibBaseE1.sol/ILayerZeroReceiveLibrary.json +69 -0
  209. package/artifacts-zk/contracts/uln/uln301/ReceiveLibBaseE1.sol/ReceiveLibBaseE1.json +417 -0
  210. package/artifacts-zk/contracts/uln/uln301/ReceiveUln301.sol/ReceiveUln301.json +1001 -0
  211. package/artifacts-zk/contracts/uln/uln301/ReceiveUln301View.sol/IReceiveUln301.json +179 -0
  212. package/artifacts-zk/contracts/uln/uln301/ReceiveUln301View.sol/ReceiveUln301View.json +127 -0
  213. package/artifacts-zk/contracts/uln/uln301/SendLibBaseE1.sol/SendLibBaseE1.json +805 -0
  214. package/artifacts-zk/contracts/uln/uln301/SendUln301.sol/SendUln301.json +1279 -0
  215. package/artifacts-zk/contracts/uln/uln301/TreasuryFeeHandler.sol/TreasuryFeeHandler.json +95 -0
  216. package/artifacts-zk/contracts/uln/uln301/interfaces/IMessageLibE1.sol/IMessageLibE1.json +248 -0
  217. package/artifacts-zk/contracts/uln/uln301/interfaces/INonceContract.sol/INonceContract.json +41 -0
  218. package/artifacts-zk/contracts/uln/uln301/interfaces/ITreasuryFeeHandler.sol/ITreasuryFeeHandler.json +45 -0
  219. package/artifacts-zk/contracts/uln/uln301/interfaces/IUltraLightNode301.sol/IUltraLightNode301.json +30 -0
  220. package/artifacts-zk/contracts/uln/uln301/mocks/NonceContractMock.sol/NonceContractMock.json +94 -0
  221. package/artifacts-zk/contracts/uln/uln302/ReceiveUln302.sol/ReceiveUln302.json +758 -0
  222. package/artifacts-zk/contracts/uln/uln302/ReceiveUln302View.sol/IReceiveUln302.json +147 -0
  223. package/artifacts-zk/contracts/uln/uln302/ReceiveUln302View.sol/ReceiveUln302View.json +252 -0
  224. package/artifacts-zk/contracts/uln/uln302/SendUln302.sol/SendUln302.json +1260 -0
  225. package/artifacts-zk/contracts/upgradeable/WorkerUpgradeable.sol/WorkerUpgradeable.json +593 -0
  226. package/artifacts-zk/contracts/upgradeable/proxy/ProxyAdmin.sol/ProxyAdmin.json +182 -0
  227. package/artifacts-zk/contracts/upgradeable/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +161 -0
  228. package/deployments/arbitrum-sandbox-local/DVN.json +10 -10
  229. package/deployments/arbitrum-sandbox-local/DVNDecompressor.json +7 -7
  230. package/deployments/arbitrum-sandbox-local/DVNFeeLib.json +7 -7
  231. package/deployments/arbitrum-sandbox-local/PriceFeed.json +16 -16
  232. package/deployments/arbitrum-sandbox-local/PriceFeedProxyAdmin.json +10 -10
  233. package/deployments/arbitrum-sandbox-local/PriceFeed_Implementation.json +4 -4
  234. package/deployments/arbitrum-sandbox-local/PriceFeed_Proxy.json +16 -16
  235. package/deployments/bsc-sandbox-local/DVN.json +16 -16
  236. package/deployments/bsc-sandbox-local/DVNDecompressor.json +7 -7
  237. package/deployments/bsc-sandbox-local/DVNFeeLib.json +7 -7
  238. package/deployments/bsc-sandbox-local/DefaultProxyAdmin.json +7 -7
  239. package/deployments/bsc-sandbox-local/EndpointV2.json +13 -13
  240. package/deployments/bsc-sandbox-local/EndpointV2View.json +13 -13
  241. package/deployments/bsc-sandbox-local/EndpointV2View_Implementation.json +4 -4
  242. package/deployments/bsc-sandbox-local/EndpointV2View_Proxy.json +13 -13
  243. package/deployments/bsc-sandbox-local/Executor.json +43 -43
  244. package/deployments/bsc-sandbox-local/ExecutorDecompressor.json +7 -7
  245. package/deployments/bsc-sandbox-local/ExecutorFeeLib.json +7 -7
  246. package/deployments/bsc-sandbox-local/ExecutorProxyAdmin.json +10 -10
  247. package/deployments/bsc-sandbox-local/Executor_Implementation.json +4 -4
  248. package/deployments/bsc-sandbox-local/Executor_Proxy.json +43 -43
  249. package/deployments/bsc-sandbox-local/LzExecutor.json +16 -16
  250. package/deployments/bsc-sandbox-local/LzExecutor_Implementation.json +4 -4
  251. package/deployments/bsc-sandbox-local/LzExecutor_Proxy.json +16 -16
  252. package/deployments/bsc-sandbox-local/NonceContractMock.json +4 -4
  253. package/deployments/bsc-sandbox-local/PriceFeed.json +16 -16
  254. package/deployments/bsc-sandbox-local/PriceFeedProxyAdmin.json +10 -10
  255. package/deployments/bsc-sandbox-local/PriceFeed_Implementation.json +4 -4
  256. package/deployments/bsc-sandbox-local/PriceFeed_Proxy.json +16 -16
  257. package/deployments/bsc-sandbox-local/ReceiveUln301.json +7 -7
  258. package/deployments/bsc-sandbox-local/ReceiveUln301View.json +13 -13
  259. package/deployments/bsc-sandbox-local/ReceiveUln301View_Implementation.json +4 -4
  260. package/deployments/bsc-sandbox-local/ReceiveUln301View_Proxy.json +13 -13
  261. package/deployments/bsc-sandbox-local/ReceiveUln302.json +7 -7
  262. package/deployments/bsc-sandbox-local/ReceiveUln302View.json +13 -13
  263. package/deployments/bsc-sandbox-local/ReceiveUln302View_Implementation.json +4 -4
  264. package/deployments/bsc-sandbox-local/ReceiveUln302View_Proxy.json +13 -13
  265. package/deployments/bsc-sandbox-local/SendUln301.json +7 -7
  266. package/deployments/bsc-sandbox-local/SendUln302.json +7 -7
  267. package/deployments/bsc-sandbox-local/SimpleMessageLib.json +7 -7
  268. package/deployments/bsc-sandbox-local/Treasury.json +7 -7
  269. package/deployments/bsc-sandbox-local/TreasuryFeeHandler.json +4 -4
  270. package/deployments/cyber-mainnet/DVN.json +1914 -0
  271. package/deployments/cyber-mainnet/DVNFeeLib.json +399 -0
  272. package/deployments/cyber-mainnet/DefaultProxyAdmin.json +259 -0
  273. package/deployments/cyber-mainnet/EndpointV2.json +2989 -0
  274. package/deployments/cyber-mainnet/EndpointV2View.json +436 -0
  275. package/deployments/cyber-mainnet/EndpointV2View_Implementation.json +314 -0
  276. package/deployments/cyber-mainnet/EndpointV2View_Proxy.json +231 -0
  277. package/deployments/cyber-mainnet/Executor.json +1621 -0
  278. package/deployments/cyber-mainnet/ExecutorFeeLib.json +439 -0
  279. package/deployments/cyber-mainnet/ExecutorProxyAdmin.json +284 -0
  280. package/deployments/cyber-mainnet/Executor_Implementation.json +1720 -0
  281. package/deployments/cyber-mainnet/Executor_Proxy.json +336 -0
  282. package/deployments/cyber-mainnet/LzExecutor.json +758 -0
  283. package/deployments/cyber-mainnet/LzExecutor_Implementation.json +704 -0
  284. package/deployments/cyber-mainnet/LzExecutor_Proxy.json +245 -0
  285. package/deployments/cyber-mainnet/PriceFeed.json +935 -0
  286. package/deployments/cyber-mainnet/PriceFeedProxyAdmin.json +284 -0
  287. package/deployments/cyber-mainnet/PriceFeed_Implementation.json +977 -0
  288. package/deployments/cyber-mainnet/PriceFeed_Proxy.json +245 -0
  289. package/deployments/cyber-mainnet/ReceiveUln301.json +1293 -0
  290. package/deployments/cyber-mainnet/ReceiveUln301View.json +355 -0
  291. package/deployments/cyber-mainnet/ReceiveUln301View_Implementation.json +232 -0
  292. package/deployments/cyber-mainnet/ReceiveUln301View_Proxy.json +231 -0
  293. package/deployments/cyber-mainnet/ReceiveUln302.json +1007 -0
  294. package/deployments/cyber-mainnet/ReceiveUln302View.json +479 -0
  295. package/deployments/cyber-mainnet/ReceiveUln302View_Implementation.json +385 -0
  296. package/deployments/cyber-mainnet/ReceiveUln302View_Proxy.json +231 -0
  297. package/deployments/cyber-mainnet/SendUln301.json +1570 -0
  298. package/deployments/cyber-mainnet/SendUln302.json +1528 -0
  299. package/deployments/cyber-mainnet/Treasury.json +413 -0
  300. package/deployments/cyber-mainnet/TreasuryFeeHandler.json +126 -0
  301. package/deployments/ethereum-sandbox-local/DVN.json +16 -16
  302. package/deployments/ethereum-sandbox-local/DVNDecompressor.json +7 -7
  303. package/deployments/ethereum-sandbox-local/DVNFeeLib.json +7 -7
  304. package/deployments/ethereum-sandbox-local/DefaultProxyAdmin.json +7 -7
  305. package/deployments/ethereum-sandbox-local/EndpointV2.json +13 -13
  306. package/deployments/ethereum-sandbox-local/EndpointV2View.json +13 -13
  307. package/deployments/ethereum-sandbox-local/EndpointV2View_Implementation.json +4 -4
  308. package/deployments/ethereum-sandbox-local/EndpointV2View_Proxy.json +13 -13
  309. package/deployments/ethereum-sandbox-local/Executor.json +43 -43
  310. package/deployments/ethereum-sandbox-local/ExecutorDecompressor.json +7 -7
  311. package/deployments/ethereum-sandbox-local/ExecutorFeeLib.json +7 -7
  312. package/deployments/ethereum-sandbox-local/ExecutorProxyAdmin.json +10 -10
  313. package/deployments/ethereum-sandbox-local/Executor_Implementation.json +4 -4
  314. package/deployments/ethereum-sandbox-local/Executor_Proxy.json +43 -43
  315. package/deployments/ethereum-sandbox-local/LzExecutor.json +16 -16
  316. package/deployments/ethereum-sandbox-local/LzExecutor_Implementation.json +4 -4
  317. package/deployments/ethereum-sandbox-local/LzExecutor_Proxy.json +16 -16
  318. package/deployments/ethereum-sandbox-local/NonceContractMock.json +4 -4
  319. package/deployments/ethereum-sandbox-local/PriceFeed.json +16 -16
  320. package/deployments/ethereum-sandbox-local/PriceFeedProxyAdmin.json +10 -10
  321. package/deployments/ethereum-sandbox-local/PriceFeed_Implementation.json +4 -4
  322. package/deployments/ethereum-sandbox-local/PriceFeed_Proxy.json +16 -16
  323. package/deployments/ethereum-sandbox-local/ReceiveUln301.json +7 -7
  324. package/deployments/ethereum-sandbox-local/ReceiveUln301View.json +13 -13
  325. package/deployments/ethereum-sandbox-local/ReceiveUln301View_Implementation.json +4 -4
  326. package/deployments/ethereum-sandbox-local/ReceiveUln301View_Proxy.json +13 -13
  327. package/deployments/ethereum-sandbox-local/ReceiveUln302.json +7 -7
  328. package/deployments/ethereum-sandbox-local/ReceiveUln302View.json +13 -13
  329. package/deployments/ethereum-sandbox-local/ReceiveUln302View_Implementation.json +4 -4
  330. package/deployments/ethereum-sandbox-local/ReceiveUln302View_Proxy.json +13 -13
  331. package/deployments/ethereum-sandbox-local/SendUln301.json +7 -7
  332. package/deployments/ethereum-sandbox-local/SendUln302.json +7 -7
  333. package/deployments/ethereum-sandbox-local/SimpleMessageLib.json +7 -7
  334. package/deployments/ethereum-sandbox-local/Treasury.json +7 -7
  335. package/deployments/ethereum-sandbox-local/TreasuryFeeHandler.json +4 -4
  336. package/deployments/iota-mainnet/DVN.json +1914 -0
  337. package/deployments/iota-mainnet/DVNFeeLib.json +399 -0
  338. package/deployments/iota-mainnet/DefaultProxyAdmin.json +259 -0
  339. package/deployments/iota-mainnet/EndpointV2.json +2989 -0
  340. package/deployments/iota-mainnet/EndpointV2View.json +436 -0
  341. package/deployments/iota-mainnet/EndpointV2View_Implementation.json +314 -0
  342. package/deployments/iota-mainnet/EndpointV2View_Proxy.json +231 -0
  343. package/deployments/iota-mainnet/Executor.json +1621 -0
  344. package/deployments/iota-mainnet/ExecutorFeeLib.json +439 -0
  345. package/deployments/iota-mainnet/ExecutorProxyAdmin.json +284 -0
  346. package/deployments/iota-mainnet/Executor_Implementation.json +1720 -0
  347. package/deployments/iota-mainnet/Executor_Proxy.json +336 -0
  348. package/deployments/iota-mainnet/LzExecutor.json +758 -0
  349. package/deployments/iota-mainnet/LzExecutor_Implementation.json +704 -0
  350. package/deployments/iota-mainnet/LzExecutor_Proxy.json +245 -0
  351. package/deployments/iota-mainnet/PriceFeed.json +935 -0
  352. package/deployments/iota-mainnet/PriceFeedProxyAdmin.json +284 -0
  353. package/deployments/iota-mainnet/PriceFeed_Implementation.json +977 -0
  354. package/deployments/iota-mainnet/PriceFeed_Proxy.json +245 -0
  355. package/deployments/iota-mainnet/ReceiveUln301.json +1293 -0
  356. package/deployments/iota-mainnet/ReceiveUln301View.json +355 -0
  357. package/deployments/iota-mainnet/ReceiveUln301View_Implementation.json +232 -0
  358. package/deployments/iota-mainnet/ReceiveUln301View_Proxy.json +231 -0
  359. package/deployments/iota-mainnet/ReceiveUln302.json +1007 -0
  360. package/deployments/iota-mainnet/ReceiveUln302View.json +479 -0
  361. package/deployments/iota-mainnet/ReceiveUln302View_Implementation.json +385 -0
  362. package/deployments/iota-mainnet/ReceiveUln302View_Proxy.json +231 -0
  363. package/deployments/iota-mainnet/SendUln301.json +1570 -0
  364. package/deployments/iota-mainnet/SendUln302.json +1528 -0
  365. package/deployments/iota-mainnet/Treasury.json +413 -0
  366. package/deployments/iota-mainnet/TreasuryFeeHandler.json +126 -0
  367. package/deployments/polygon-sandbox-local/DVN.json +5 -5
  368. package/deployments/polygon-sandbox-local/DVNDecompressor.json +2 -2
  369. package/deployments/polygon-sandbox-local/DVNFeeLib.json +2 -2
  370. package/deployments/polygon-sandbox-local/DefaultProxyAdmin.json +2 -2
  371. package/deployments/polygon-sandbox-local/EndpointV2.json +4 -4
  372. package/deployments/polygon-sandbox-local/EndpointV2View.json +4 -4
  373. package/deployments/polygon-sandbox-local/EndpointV2View_Implementation.json +1 -1
  374. package/deployments/polygon-sandbox-local/EndpointV2View_Proxy.json +4 -4
  375. package/deployments/polygon-sandbox-local/Executor.json +14 -14
  376. package/deployments/polygon-sandbox-local/ExecutorDecompressor.json +2 -2
  377. package/deployments/polygon-sandbox-local/ExecutorFeeLib.json +2 -2
  378. package/deployments/polygon-sandbox-local/ExecutorProxyAdmin.json +3 -3
  379. package/deployments/polygon-sandbox-local/Executor_Implementation.json +1 -1
  380. package/deployments/polygon-sandbox-local/Executor_Proxy.json +14 -14
  381. package/deployments/polygon-sandbox-local/LzExecutor.json +5 -5
  382. package/deployments/polygon-sandbox-local/LzExecutor_Implementation.json +1 -1
  383. package/deployments/polygon-sandbox-local/LzExecutor_Proxy.json +5 -5
  384. package/deployments/polygon-sandbox-local/NonceContractMock.json +1 -1
  385. package/deployments/polygon-sandbox-local/PriceFeed.json +5 -5
  386. package/deployments/polygon-sandbox-local/PriceFeedProxyAdmin.json +3 -3
  387. package/deployments/polygon-sandbox-local/PriceFeed_Implementation.json +1 -1
  388. package/deployments/polygon-sandbox-local/PriceFeed_Proxy.json +5 -5
  389. package/deployments/polygon-sandbox-local/ReceiveUln301.json +2 -2
  390. package/deployments/polygon-sandbox-local/ReceiveUln301View.json +4 -4
  391. package/deployments/polygon-sandbox-local/ReceiveUln301View_Implementation.json +1 -1
  392. package/deployments/polygon-sandbox-local/ReceiveUln301View_Proxy.json +4 -4
  393. package/deployments/polygon-sandbox-local/ReceiveUln302.json +2 -2
  394. package/deployments/polygon-sandbox-local/ReceiveUln302View.json +4 -4
  395. package/deployments/polygon-sandbox-local/ReceiveUln302View_Implementation.json +1 -1
  396. package/deployments/polygon-sandbox-local/ReceiveUln302View_Proxy.json +4 -4
  397. package/deployments/polygon-sandbox-local/SendUln301.json +2 -2
  398. package/deployments/polygon-sandbox-local/SendUln302.json +2 -2
  399. package/deployments/polygon-sandbox-local/SimpleMessageLib.json +2 -2
  400. package/deployments/polygon-sandbox-local/Treasury.json +2 -2
  401. package/deployments/polygon-sandbox-local/TreasuryFeeHandler.json +1 -1
  402. package/deployments/tron-sandbox-local/DVN.json +17 -17
  403. package/deployments/tron-sandbox-local/DVNDecompressor.json +12 -12
  404. package/deployments/tron-sandbox-local/DVNFeeLib.json +10 -10
  405. package/deployments/tron-sandbox-local/PriceFeed.json +27 -27
  406. package/deployments/tron-sandbox-local/PriceFeedProxyAdmin.json +14 -14
  407. package/deployments/tron-sandbox-local/PriceFeed_Implementation.json +6 -6
  408. package/deployments/tron-sandbox-local/PriceFeed_Proxy.json +26 -26
  409. package/deployments/zksyncsep-testnet/EndpointV2View.json +3 -9
  410. package/deployments/zksyncsep-testnet/EndpointV2View_Implementation.json +41 -41
  411. package/deployments/zksyncsep-testnet/PriceFeed.json +52 -14
  412. package/deployments/zksyncsep-testnet/PriceFeed_Implementation.json +133 -69
  413. package/package.json +11 -9
@@ -0,0 +1,1278 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "SendUln301",
4
+ "sourceName": "contracts/uln/uln301/SendUln301.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_endpoint",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "uint256",
15
+ "name": "_treasuryGasLimit",
16
+ "type": "uint256"
17
+ },
18
+ {
19
+ "internalType": "uint256",
20
+ "name": "_treasuryGasForFeeCap",
21
+ "type": "uint256"
22
+ },
23
+ {
24
+ "internalType": "address",
25
+ "name": "_nonceContract",
26
+ "type": "address"
27
+ },
28
+ {
29
+ "internalType": "uint32",
30
+ "name": "_localEid",
31
+ "type": "uint32"
32
+ },
33
+ {
34
+ "internalType": "address",
35
+ "name": "_treasuryFeeHandler",
36
+ "type": "address"
37
+ }
38
+ ],
39
+ "stateMutability": "nonpayable",
40
+ "type": "constructor"
41
+ },
42
+ {
43
+ "inputs": [],
44
+ "name": "AddressCast_InvalidAddress",
45
+ "type": "error"
46
+ },
47
+ {
48
+ "inputs": [],
49
+ "name": "AddressSizeConfig_AddressSizeAlreadySet",
50
+ "type": "error"
51
+ },
52
+ {
53
+ "inputs": [],
54
+ "name": "AddressSizeConfig_InvalidAddressSize",
55
+ "type": "error"
56
+ },
57
+ {
58
+ "inputs": [],
59
+ "name": "DVN_InvalidDVNIdx",
60
+ "type": "error"
61
+ },
62
+ {
63
+ "inputs": [
64
+ {
65
+ "internalType": "uint256",
66
+ "name": "cursor",
67
+ "type": "uint256"
68
+ }
69
+ ],
70
+ "name": "DVN_InvalidDVNOptions",
71
+ "type": "error"
72
+ },
73
+ {
74
+ "inputs": [],
75
+ "name": "LZ_MessageLib_InsufficientMsgValue",
76
+ "type": "error"
77
+ },
78
+ {
79
+ "inputs": [
80
+ {
81
+ "internalType": "uint256",
82
+ "name": "requested",
83
+ "type": "uint256"
84
+ },
85
+ {
86
+ "internalType": "uint256",
87
+ "name": "available",
88
+ "type": "uint256"
89
+ }
90
+ ],
91
+ "name": "LZ_MessageLib_InvalidAmount",
92
+ "type": "error"
93
+ },
94
+ {
95
+ "inputs": [],
96
+ "name": "LZ_MessageLib_InvalidExecutor",
97
+ "type": "error"
98
+ },
99
+ {
100
+ "inputs": [
101
+ {
102
+ "internalType": "uint256",
103
+ "name": "actual",
104
+ "type": "uint256"
105
+ },
106
+ {
107
+ "internalType": "uint256",
108
+ "name": "max",
109
+ "type": "uint256"
110
+ }
111
+ ],
112
+ "name": "LZ_MessageLib_InvalidMessageSize",
113
+ "type": "error"
114
+ },
115
+ {
116
+ "inputs": [],
117
+ "name": "LZ_MessageLib_InvalidPath",
118
+ "type": "error"
119
+ },
120
+ {
121
+ "inputs": [],
122
+ "name": "LZ_MessageLib_InvalidSender",
123
+ "type": "error"
124
+ },
125
+ {
126
+ "inputs": [],
127
+ "name": "LZ_MessageLib_LzTokenPaymentAddressMustBeSender",
128
+ "type": "error"
129
+ },
130
+ {
131
+ "inputs": [],
132
+ "name": "LZ_MessageLib_OnlyEndpoint",
133
+ "type": "error"
134
+ },
135
+ {
136
+ "inputs": [],
137
+ "name": "LZ_MessageLib_TransferFailed",
138
+ "type": "error"
139
+ },
140
+ {
141
+ "inputs": [],
142
+ "name": "LZ_MessageLib_ZeroMessageSize",
143
+ "type": "error"
144
+ },
145
+ {
146
+ "inputs": [],
147
+ "name": "LZ_ULN_AtLeastOneDVN",
148
+ "type": "error"
149
+ },
150
+ {
151
+ "inputs": [
152
+ {
153
+ "internalType": "uint256",
154
+ "name": "configType",
155
+ "type": "uint256"
156
+ }
157
+ ],
158
+ "name": "LZ_ULN_InvalidConfigType",
159
+ "type": "error"
160
+ },
161
+ {
162
+ "inputs": [],
163
+ "name": "LZ_ULN_InvalidConfirmations",
164
+ "type": "error"
165
+ },
166
+ {
167
+ "inputs": [],
168
+ "name": "LZ_ULN_InvalidLegacyType1Option",
169
+ "type": "error"
170
+ },
171
+ {
172
+ "inputs": [],
173
+ "name": "LZ_ULN_InvalidLegacyType2Option",
174
+ "type": "error"
175
+ },
176
+ {
177
+ "inputs": [],
178
+ "name": "LZ_ULN_InvalidOptionalDVNCount",
179
+ "type": "error"
180
+ },
181
+ {
182
+ "inputs": [],
183
+ "name": "LZ_ULN_InvalidOptionalDVNThreshold",
184
+ "type": "error"
185
+ },
186
+ {
187
+ "inputs": [],
188
+ "name": "LZ_ULN_InvalidRequiredDVNCount",
189
+ "type": "error"
190
+ },
191
+ {
192
+ "inputs": [
193
+ {
194
+ "internalType": "uint8",
195
+ "name": "workerId",
196
+ "type": "uint8"
197
+ }
198
+ ],
199
+ "name": "LZ_ULN_InvalidWorkerId",
200
+ "type": "error"
201
+ },
202
+ {
203
+ "inputs": [
204
+ {
205
+ "internalType": "uint256",
206
+ "name": "cursor",
207
+ "type": "uint256"
208
+ }
209
+ ],
210
+ "name": "LZ_ULN_InvalidWorkerOptions",
211
+ "type": "error"
212
+ },
213
+ {
214
+ "inputs": [],
215
+ "name": "LZ_ULN_Unsorted",
216
+ "type": "error"
217
+ },
218
+ {
219
+ "inputs": [
220
+ {
221
+ "internalType": "uint32",
222
+ "name": "eid",
223
+ "type": "uint32"
224
+ }
225
+ ],
226
+ "name": "LZ_ULN_UnsupportedEid",
227
+ "type": "error"
228
+ },
229
+ {
230
+ "inputs": [
231
+ {
232
+ "internalType": "uint16",
233
+ "name": "optionType",
234
+ "type": "uint16"
235
+ }
236
+ ],
237
+ "name": "LZ_ULN_UnsupportedOptionType",
238
+ "type": "error"
239
+ },
240
+ {
241
+ "inputs": [
242
+ {
243
+ "internalType": "address",
244
+ "name": "_to",
245
+ "type": "address"
246
+ },
247
+ {
248
+ "internalType": "uint256",
249
+ "name": "_value",
250
+ "type": "uint256"
251
+ }
252
+ ],
253
+ "name": "Transfer_NativeFailed",
254
+ "type": "error"
255
+ },
256
+ {
257
+ "inputs": [],
258
+ "name": "Transfer_ToAddressIsZero",
259
+ "type": "error"
260
+ },
261
+ {
262
+ "anonymous": false,
263
+ "inputs": [
264
+ {
265
+ "indexed": false,
266
+ "internalType": "uint16",
267
+ "name": "eid",
268
+ "type": "uint16"
269
+ },
270
+ {
271
+ "indexed": false,
272
+ "internalType": "uint256",
273
+ "name": "size",
274
+ "type": "uint256"
275
+ }
276
+ ],
277
+ "name": "AddressSizeSet",
278
+ "type": "event"
279
+ },
280
+ {
281
+ "anonymous": false,
282
+ "inputs": [
283
+ {
284
+ "indexed": false,
285
+ "internalType": "address[]",
286
+ "name": "requiredDVNs",
287
+ "type": "address[]"
288
+ },
289
+ {
290
+ "indexed": false,
291
+ "internalType": "address[]",
292
+ "name": "optionalDVNs",
293
+ "type": "address[]"
294
+ },
295
+ {
296
+ "indexed": false,
297
+ "internalType": "uint256[]",
298
+ "name": "fees",
299
+ "type": "uint256[]"
300
+ }
301
+ ],
302
+ "name": "DVNFeePaid",
303
+ "type": "event"
304
+ },
305
+ {
306
+ "anonymous": false,
307
+ "inputs": [
308
+ {
309
+ "components": [
310
+ {
311
+ "internalType": "uint32",
312
+ "name": "eid",
313
+ "type": "uint32"
314
+ },
315
+ {
316
+ "components": [
317
+ {
318
+ "internalType": "uint32",
319
+ "name": "maxMessageSize",
320
+ "type": "uint32"
321
+ },
322
+ {
323
+ "internalType": "address",
324
+ "name": "executor",
325
+ "type": "address"
326
+ }
327
+ ],
328
+ "internalType": "struct ExecutorConfig",
329
+ "name": "config",
330
+ "type": "tuple"
331
+ }
332
+ ],
333
+ "indexed": false,
334
+ "internalType": "struct SetDefaultExecutorConfigParam[]",
335
+ "name": "params",
336
+ "type": "tuple[]"
337
+ }
338
+ ],
339
+ "name": "DefaultExecutorConfigsSet",
340
+ "type": "event"
341
+ },
342
+ {
343
+ "anonymous": false,
344
+ "inputs": [
345
+ {
346
+ "components": [
347
+ {
348
+ "internalType": "uint32",
349
+ "name": "eid",
350
+ "type": "uint32"
351
+ },
352
+ {
353
+ "components": [
354
+ {
355
+ "internalType": "uint64",
356
+ "name": "confirmations",
357
+ "type": "uint64"
358
+ },
359
+ {
360
+ "internalType": "uint8",
361
+ "name": "requiredDVNCount",
362
+ "type": "uint8"
363
+ },
364
+ {
365
+ "internalType": "uint8",
366
+ "name": "optionalDVNCount",
367
+ "type": "uint8"
368
+ },
369
+ {
370
+ "internalType": "uint8",
371
+ "name": "optionalDVNThreshold",
372
+ "type": "uint8"
373
+ },
374
+ {
375
+ "internalType": "address[]",
376
+ "name": "requiredDVNs",
377
+ "type": "address[]"
378
+ },
379
+ {
380
+ "internalType": "address[]",
381
+ "name": "optionalDVNs",
382
+ "type": "address[]"
383
+ }
384
+ ],
385
+ "internalType": "struct UlnConfig",
386
+ "name": "config",
387
+ "type": "tuple"
388
+ }
389
+ ],
390
+ "indexed": false,
391
+ "internalType": "struct SetDefaultUlnConfigParam[]",
392
+ "name": "params",
393
+ "type": "tuple[]"
394
+ }
395
+ ],
396
+ "name": "DefaultUlnConfigsSet",
397
+ "type": "event"
398
+ },
399
+ {
400
+ "anonymous": false,
401
+ "inputs": [
402
+ {
403
+ "indexed": false,
404
+ "internalType": "address",
405
+ "name": "oapp",
406
+ "type": "address"
407
+ },
408
+ {
409
+ "indexed": false,
410
+ "internalType": "uint32",
411
+ "name": "eid",
412
+ "type": "uint32"
413
+ },
414
+ {
415
+ "components": [
416
+ {
417
+ "internalType": "uint32",
418
+ "name": "maxMessageSize",
419
+ "type": "uint32"
420
+ },
421
+ {
422
+ "internalType": "address",
423
+ "name": "executor",
424
+ "type": "address"
425
+ }
426
+ ],
427
+ "indexed": false,
428
+ "internalType": "struct ExecutorConfig",
429
+ "name": "config",
430
+ "type": "tuple"
431
+ }
432
+ ],
433
+ "name": "ExecutorConfigSet",
434
+ "type": "event"
435
+ },
436
+ {
437
+ "anonymous": false,
438
+ "inputs": [
439
+ {
440
+ "indexed": false,
441
+ "internalType": "address",
442
+ "name": "executor",
443
+ "type": "address"
444
+ },
445
+ {
446
+ "indexed": false,
447
+ "internalType": "uint256",
448
+ "name": "fee",
449
+ "type": "uint256"
450
+ }
451
+ ],
452
+ "name": "ExecutorFeePaid",
453
+ "type": "event"
454
+ },
455
+ {
456
+ "anonymous": false,
457
+ "inputs": [
458
+ {
459
+ "indexed": false,
460
+ "internalType": "address",
461
+ "name": "token",
462
+ "type": "address"
463
+ }
464
+ ],
465
+ "name": "LzTokenSet",
466
+ "type": "event"
467
+ },
468
+ {
469
+ "anonymous": false,
470
+ "inputs": [
471
+ {
472
+ "indexed": false,
473
+ "internalType": "address",
474
+ "name": "user",
475
+ "type": "address"
476
+ },
477
+ {
478
+ "indexed": false,
479
+ "internalType": "address",
480
+ "name": "receiver",
481
+ "type": "address"
482
+ },
483
+ {
484
+ "indexed": false,
485
+ "internalType": "uint256",
486
+ "name": "amount",
487
+ "type": "uint256"
488
+ }
489
+ ],
490
+ "name": "NativeFeeWithdrawn",
491
+ "type": "event"
492
+ },
493
+ {
494
+ "anonymous": false,
495
+ "inputs": [
496
+ {
497
+ "indexed": true,
498
+ "internalType": "address",
499
+ "name": "previousOwner",
500
+ "type": "address"
501
+ },
502
+ {
503
+ "indexed": true,
504
+ "internalType": "address",
505
+ "name": "newOwner",
506
+ "type": "address"
507
+ }
508
+ ],
509
+ "name": "OwnershipTransferred",
510
+ "type": "event"
511
+ },
512
+ {
513
+ "anonymous": false,
514
+ "inputs": [
515
+ {
516
+ "indexed": false,
517
+ "internalType": "bytes",
518
+ "name": "encodedPayload",
519
+ "type": "bytes"
520
+ },
521
+ {
522
+ "indexed": false,
523
+ "internalType": "bytes",
524
+ "name": "options",
525
+ "type": "bytes"
526
+ },
527
+ {
528
+ "indexed": false,
529
+ "internalType": "uint256",
530
+ "name": "nativeFee",
531
+ "type": "uint256"
532
+ },
533
+ {
534
+ "indexed": false,
535
+ "internalType": "uint256",
536
+ "name": "lzTokenFee",
537
+ "type": "uint256"
538
+ }
539
+ ],
540
+ "name": "PacketSent",
541
+ "type": "event"
542
+ },
543
+ {
544
+ "anonymous": false,
545
+ "inputs": [
546
+ {
547
+ "indexed": false,
548
+ "internalType": "uint256",
549
+ "name": "newTreasuryNativeFeeCap",
550
+ "type": "uint256"
551
+ }
552
+ ],
553
+ "name": "TreasuryNativeFeeCapSet",
554
+ "type": "event"
555
+ },
556
+ {
557
+ "anonymous": false,
558
+ "inputs": [
559
+ {
560
+ "indexed": false,
561
+ "internalType": "address",
562
+ "name": "treasury",
563
+ "type": "address"
564
+ }
565
+ ],
566
+ "name": "TreasurySet",
567
+ "type": "event"
568
+ },
569
+ {
570
+ "anonymous": false,
571
+ "inputs": [
572
+ {
573
+ "indexed": false,
574
+ "internalType": "address",
575
+ "name": "oapp",
576
+ "type": "address"
577
+ },
578
+ {
579
+ "indexed": false,
580
+ "internalType": "uint32",
581
+ "name": "eid",
582
+ "type": "uint32"
583
+ },
584
+ {
585
+ "components": [
586
+ {
587
+ "internalType": "uint64",
588
+ "name": "confirmations",
589
+ "type": "uint64"
590
+ },
591
+ {
592
+ "internalType": "uint8",
593
+ "name": "requiredDVNCount",
594
+ "type": "uint8"
595
+ },
596
+ {
597
+ "internalType": "uint8",
598
+ "name": "optionalDVNCount",
599
+ "type": "uint8"
600
+ },
601
+ {
602
+ "internalType": "uint8",
603
+ "name": "optionalDVNThreshold",
604
+ "type": "uint8"
605
+ },
606
+ {
607
+ "internalType": "address[]",
608
+ "name": "requiredDVNs",
609
+ "type": "address[]"
610
+ },
611
+ {
612
+ "internalType": "address[]",
613
+ "name": "optionalDVNs",
614
+ "type": "address[]"
615
+ }
616
+ ],
617
+ "indexed": false,
618
+ "internalType": "struct UlnConfig",
619
+ "name": "config",
620
+ "type": "tuple"
621
+ }
622
+ ],
623
+ "name": "UlnConfigSet",
624
+ "type": "event"
625
+ },
626
+ {
627
+ "inputs": [
628
+ {
629
+ "internalType": "uint32",
630
+ "name": "dstEid",
631
+ "type": "uint32"
632
+ }
633
+ ],
634
+ "name": "addressSizes",
635
+ "outputs": [
636
+ {
637
+ "internalType": "uint256",
638
+ "name": "size",
639
+ "type": "uint256"
640
+ }
641
+ ],
642
+ "stateMutability": "view",
643
+ "type": "function"
644
+ },
645
+ {
646
+ "inputs": [
647
+ {
648
+ "internalType": "uint16",
649
+ "name": "_dstEid",
650
+ "type": "uint16"
651
+ },
652
+ {
653
+ "internalType": "address",
654
+ "name": "_sender",
655
+ "type": "address"
656
+ },
657
+ {
658
+ "internalType": "bytes",
659
+ "name": "_message",
660
+ "type": "bytes"
661
+ },
662
+ {
663
+ "internalType": "bool",
664
+ "name": "_payInLzToken",
665
+ "type": "bool"
666
+ },
667
+ {
668
+ "internalType": "bytes",
669
+ "name": "_options",
670
+ "type": "bytes"
671
+ }
672
+ ],
673
+ "name": "estimateFees",
674
+ "outputs": [
675
+ {
676
+ "internalType": "uint256",
677
+ "name": "nativeFee",
678
+ "type": "uint256"
679
+ },
680
+ {
681
+ "internalType": "uint256",
682
+ "name": "lzTokenFee",
683
+ "type": "uint256"
684
+ }
685
+ ],
686
+ "stateMutability": "view",
687
+ "type": "function"
688
+ },
689
+ {
690
+ "inputs": [
691
+ {
692
+ "internalType": "address",
693
+ "name": "oapp",
694
+ "type": "address"
695
+ },
696
+ {
697
+ "internalType": "uint32",
698
+ "name": "eid",
699
+ "type": "uint32"
700
+ }
701
+ ],
702
+ "name": "executorConfigs",
703
+ "outputs": [
704
+ {
705
+ "internalType": "uint32",
706
+ "name": "maxMessageSize",
707
+ "type": "uint32"
708
+ },
709
+ {
710
+ "internalType": "address",
711
+ "name": "executor",
712
+ "type": "address"
713
+ }
714
+ ],
715
+ "stateMutability": "view",
716
+ "type": "function"
717
+ },
718
+ {
719
+ "inputs": [
720
+ {
721
+ "internalType": "address",
722
+ "name": "worker",
723
+ "type": "address"
724
+ }
725
+ ],
726
+ "name": "fees",
727
+ "outputs": [
728
+ {
729
+ "internalType": "uint256",
730
+ "name": "",
731
+ "type": "uint256"
732
+ }
733
+ ],
734
+ "stateMutability": "view",
735
+ "type": "function"
736
+ },
737
+ {
738
+ "inputs": [
739
+ {
740
+ "internalType": "address",
741
+ "name": "_oapp",
742
+ "type": "address"
743
+ },
744
+ {
745
+ "internalType": "uint32",
746
+ "name": "_remoteEid",
747
+ "type": "uint32"
748
+ }
749
+ ],
750
+ "name": "getAppUlnConfig",
751
+ "outputs": [
752
+ {
753
+ "components": [
754
+ {
755
+ "internalType": "uint64",
756
+ "name": "confirmations",
757
+ "type": "uint64"
758
+ },
759
+ {
760
+ "internalType": "uint8",
761
+ "name": "requiredDVNCount",
762
+ "type": "uint8"
763
+ },
764
+ {
765
+ "internalType": "uint8",
766
+ "name": "optionalDVNCount",
767
+ "type": "uint8"
768
+ },
769
+ {
770
+ "internalType": "uint8",
771
+ "name": "optionalDVNThreshold",
772
+ "type": "uint8"
773
+ },
774
+ {
775
+ "internalType": "address[]",
776
+ "name": "requiredDVNs",
777
+ "type": "address[]"
778
+ },
779
+ {
780
+ "internalType": "address[]",
781
+ "name": "optionalDVNs",
782
+ "type": "address[]"
783
+ }
784
+ ],
785
+ "internalType": "struct UlnConfig",
786
+ "name": "",
787
+ "type": "tuple"
788
+ }
789
+ ],
790
+ "stateMutability": "view",
791
+ "type": "function"
792
+ },
793
+ {
794
+ "inputs": [
795
+ {
796
+ "internalType": "uint16",
797
+ "name": "_eid",
798
+ "type": "uint16"
799
+ },
800
+ {
801
+ "internalType": "address",
802
+ "name": "_oapp",
803
+ "type": "address"
804
+ },
805
+ {
806
+ "internalType": "uint256",
807
+ "name": "_configType",
808
+ "type": "uint256"
809
+ }
810
+ ],
811
+ "name": "getConfig",
812
+ "outputs": [
813
+ {
814
+ "internalType": "bytes",
815
+ "name": "",
816
+ "type": "bytes"
817
+ }
818
+ ],
819
+ "stateMutability": "view",
820
+ "type": "function"
821
+ },
822
+ {
823
+ "inputs": [
824
+ {
825
+ "internalType": "address",
826
+ "name": "_oapp",
827
+ "type": "address"
828
+ },
829
+ {
830
+ "internalType": "uint32",
831
+ "name": "_remoteEid",
832
+ "type": "uint32"
833
+ }
834
+ ],
835
+ "name": "getExecutorConfig",
836
+ "outputs": [
837
+ {
838
+ "components": [
839
+ {
840
+ "internalType": "uint32",
841
+ "name": "maxMessageSize",
842
+ "type": "uint32"
843
+ },
844
+ {
845
+ "internalType": "address",
846
+ "name": "executor",
847
+ "type": "address"
848
+ }
849
+ ],
850
+ "internalType": "struct ExecutorConfig",
851
+ "name": "rtnConfig",
852
+ "type": "tuple"
853
+ }
854
+ ],
855
+ "stateMutability": "view",
856
+ "type": "function"
857
+ },
858
+ {
859
+ "inputs": [
860
+ {
861
+ "internalType": "address",
862
+ "name": "_oapp",
863
+ "type": "address"
864
+ },
865
+ {
866
+ "internalType": "uint32",
867
+ "name": "_remoteEid",
868
+ "type": "uint32"
869
+ }
870
+ ],
871
+ "name": "getUlnConfig",
872
+ "outputs": [
873
+ {
874
+ "components": [
875
+ {
876
+ "internalType": "uint64",
877
+ "name": "confirmations",
878
+ "type": "uint64"
879
+ },
880
+ {
881
+ "internalType": "uint8",
882
+ "name": "requiredDVNCount",
883
+ "type": "uint8"
884
+ },
885
+ {
886
+ "internalType": "uint8",
887
+ "name": "optionalDVNCount",
888
+ "type": "uint8"
889
+ },
890
+ {
891
+ "internalType": "uint8",
892
+ "name": "optionalDVNThreshold",
893
+ "type": "uint8"
894
+ },
895
+ {
896
+ "internalType": "address[]",
897
+ "name": "requiredDVNs",
898
+ "type": "address[]"
899
+ },
900
+ {
901
+ "internalType": "address[]",
902
+ "name": "optionalDVNs",
903
+ "type": "address[]"
904
+ }
905
+ ],
906
+ "internalType": "struct UlnConfig",
907
+ "name": "rtnConfig",
908
+ "type": "tuple"
909
+ }
910
+ ],
911
+ "stateMutability": "view",
912
+ "type": "function"
913
+ },
914
+ {
915
+ "inputs": [
916
+ {
917
+ "internalType": "uint32",
918
+ "name": "_eid",
919
+ "type": "uint32"
920
+ }
921
+ ],
922
+ "name": "isSupportedEid",
923
+ "outputs": [
924
+ {
925
+ "internalType": "bool",
926
+ "name": "",
927
+ "type": "bool"
928
+ }
929
+ ],
930
+ "stateMutability": "view",
931
+ "type": "function"
932
+ },
933
+ {
934
+ "inputs": [],
935
+ "name": "nonceContract",
936
+ "outputs": [
937
+ {
938
+ "internalType": "contract INonceContract",
939
+ "name": "",
940
+ "type": "address"
941
+ }
942
+ ],
943
+ "stateMutability": "view",
944
+ "type": "function"
945
+ },
946
+ {
947
+ "inputs": [],
948
+ "name": "owner",
949
+ "outputs": [
950
+ {
951
+ "internalType": "address",
952
+ "name": "",
953
+ "type": "address"
954
+ }
955
+ ],
956
+ "stateMutability": "view",
957
+ "type": "function"
958
+ },
959
+ {
960
+ "inputs": [],
961
+ "name": "renounceOwnership",
962
+ "outputs": [],
963
+ "stateMutability": "nonpayable",
964
+ "type": "function"
965
+ },
966
+ {
967
+ "inputs": [
968
+ {
969
+ "internalType": "address",
970
+ "name": "_sender",
971
+ "type": "address"
972
+ },
973
+ {
974
+ "internalType": "uint64",
975
+ "name": "",
976
+ "type": "uint64"
977
+ },
978
+ {
979
+ "internalType": "uint16",
980
+ "name": "_dstEid",
981
+ "type": "uint16"
982
+ },
983
+ {
984
+ "internalType": "bytes",
985
+ "name": "_path",
986
+ "type": "bytes"
987
+ },
988
+ {
989
+ "internalType": "bytes",
990
+ "name": "_message",
991
+ "type": "bytes"
992
+ },
993
+ {
994
+ "internalType": "address payable",
995
+ "name": "_refundAddress",
996
+ "type": "address"
997
+ },
998
+ {
999
+ "internalType": "address",
1000
+ "name": "_lzTokenPaymentAddress",
1001
+ "type": "address"
1002
+ },
1003
+ {
1004
+ "internalType": "bytes",
1005
+ "name": "_options",
1006
+ "type": "bytes"
1007
+ }
1008
+ ],
1009
+ "name": "send",
1010
+ "outputs": [],
1011
+ "stateMutability": "payable",
1012
+ "type": "function"
1013
+ },
1014
+ {
1015
+ "inputs": [
1016
+ {
1017
+ "internalType": "uint16",
1018
+ "name": "_eid",
1019
+ "type": "uint16"
1020
+ },
1021
+ {
1022
+ "internalType": "uint256",
1023
+ "name": "_size",
1024
+ "type": "uint256"
1025
+ }
1026
+ ],
1027
+ "name": "setAddressSize",
1028
+ "outputs": [],
1029
+ "stateMutability": "nonpayable",
1030
+ "type": "function"
1031
+ },
1032
+ {
1033
+ "inputs": [
1034
+ {
1035
+ "internalType": "uint16",
1036
+ "name": "_eid",
1037
+ "type": "uint16"
1038
+ },
1039
+ {
1040
+ "internalType": "address",
1041
+ "name": "_oapp",
1042
+ "type": "address"
1043
+ },
1044
+ {
1045
+ "internalType": "uint256",
1046
+ "name": "_configType",
1047
+ "type": "uint256"
1048
+ },
1049
+ {
1050
+ "internalType": "bytes",
1051
+ "name": "_config",
1052
+ "type": "bytes"
1053
+ }
1054
+ ],
1055
+ "name": "setConfig",
1056
+ "outputs": [],
1057
+ "stateMutability": "nonpayable",
1058
+ "type": "function"
1059
+ },
1060
+ {
1061
+ "inputs": [
1062
+ {
1063
+ "components": [
1064
+ {
1065
+ "internalType": "uint32",
1066
+ "name": "eid",
1067
+ "type": "uint32"
1068
+ },
1069
+ {
1070
+ "components": [
1071
+ {
1072
+ "internalType": "uint32",
1073
+ "name": "maxMessageSize",
1074
+ "type": "uint32"
1075
+ },
1076
+ {
1077
+ "internalType": "address",
1078
+ "name": "executor",
1079
+ "type": "address"
1080
+ }
1081
+ ],
1082
+ "internalType": "struct ExecutorConfig",
1083
+ "name": "config",
1084
+ "type": "tuple"
1085
+ }
1086
+ ],
1087
+ "internalType": "struct SetDefaultExecutorConfigParam[]",
1088
+ "name": "_params",
1089
+ "type": "tuple[]"
1090
+ }
1091
+ ],
1092
+ "name": "setDefaultExecutorConfigs",
1093
+ "outputs": [],
1094
+ "stateMutability": "nonpayable",
1095
+ "type": "function"
1096
+ },
1097
+ {
1098
+ "inputs": [
1099
+ {
1100
+ "components": [
1101
+ {
1102
+ "internalType": "uint32",
1103
+ "name": "eid",
1104
+ "type": "uint32"
1105
+ },
1106
+ {
1107
+ "components": [
1108
+ {
1109
+ "internalType": "uint64",
1110
+ "name": "confirmations",
1111
+ "type": "uint64"
1112
+ },
1113
+ {
1114
+ "internalType": "uint8",
1115
+ "name": "requiredDVNCount",
1116
+ "type": "uint8"
1117
+ },
1118
+ {
1119
+ "internalType": "uint8",
1120
+ "name": "optionalDVNCount",
1121
+ "type": "uint8"
1122
+ },
1123
+ {
1124
+ "internalType": "uint8",
1125
+ "name": "optionalDVNThreshold",
1126
+ "type": "uint8"
1127
+ },
1128
+ {
1129
+ "internalType": "address[]",
1130
+ "name": "requiredDVNs",
1131
+ "type": "address[]"
1132
+ },
1133
+ {
1134
+ "internalType": "address[]",
1135
+ "name": "optionalDVNs",
1136
+ "type": "address[]"
1137
+ }
1138
+ ],
1139
+ "internalType": "struct UlnConfig",
1140
+ "name": "config",
1141
+ "type": "tuple"
1142
+ }
1143
+ ],
1144
+ "internalType": "struct SetDefaultUlnConfigParam[]",
1145
+ "name": "_params",
1146
+ "type": "tuple[]"
1147
+ }
1148
+ ],
1149
+ "name": "setDefaultUlnConfigs",
1150
+ "outputs": [],
1151
+ "stateMutability": "nonpayable",
1152
+ "type": "function"
1153
+ },
1154
+ {
1155
+ "inputs": [
1156
+ {
1157
+ "internalType": "address",
1158
+ "name": "_lzToken",
1159
+ "type": "address"
1160
+ }
1161
+ ],
1162
+ "name": "setLzToken",
1163
+ "outputs": [],
1164
+ "stateMutability": "nonpayable",
1165
+ "type": "function"
1166
+ },
1167
+ {
1168
+ "inputs": [
1169
+ {
1170
+ "internalType": "address",
1171
+ "name": "_treasury",
1172
+ "type": "address"
1173
+ }
1174
+ ],
1175
+ "name": "setTreasury",
1176
+ "outputs": [],
1177
+ "stateMutability": "nonpayable",
1178
+ "type": "function"
1179
+ },
1180
+ {
1181
+ "inputs": [
1182
+ {
1183
+ "internalType": "uint256",
1184
+ "name": "_newTreasuryNativeFeeCap",
1185
+ "type": "uint256"
1186
+ }
1187
+ ],
1188
+ "name": "setTreasuryNativeFeeCap",
1189
+ "outputs": [],
1190
+ "stateMutability": "nonpayable",
1191
+ "type": "function"
1192
+ },
1193
+ {
1194
+ "inputs": [
1195
+ {
1196
+ "internalType": "address",
1197
+ "name": "newOwner",
1198
+ "type": "address"
1199
+ }
1200
+ ],
1201
+ "name": "transferOwnership",
1202
+ "outputs": [],
1203
+ "stateMutability": "nonpayable",
1204
+ "type": "function"
1205
+ },
1206
+ {
1207
+ "inputs": [],
1208
+ "name": "treasury",
1209
+ "outputs": [
1210
+ {
1211
+ "internalType": "address",
1212
+ "name": "",
1213
+ "type": "address"
1214
+ }
1215
+ ],
1216
+ "stateMutability": "view",
1217
+ "type": "function"
1218
+ },
1219
+ {
1220
+ "inputs": [],
1221
+ "name": "treasuryFeeHandler",
1222
+ "outputs": [
1223
+ {
1224
+ "internalType": "contract ITreasuryFeeHandler",
1225
+ "name": "",
1226
+ "type": "address"
1227
+ }
1228
+ ],
1229
+ "stateMutability": "view",
1230
+ "type": "function"
1231
+ },
1232
+ {
1233
+ "inputs": [],
1234
+ "name": "version",
1235
+ "outputs": [
1236
+ {
1237
+ "internalType": "uint64",
1238
+ "name": "major",
1239
+ "type": "uint64"
1240
+ },
1241
+ {
1242
+ "internalType": "uint8",
1243
+ "name": "minor",
1244
+ "type": "uint8"
1245
+ },
1246
+ {
1247
+ "internalType": "uint8",
1248
+ "name": "endpointVersion",
1249
+ "type": "uint8"
1250
+ }
1251
+ ],
1252
+ "stateMutability": "pure",
1253
+ "type": "function"
1254
+ },
1255
+ {
1256
+ "inputs": [
1257
+ {
1258
+ "internalType": "address",
1259
+ "name": "_to",
1260
+ "type": "address"
1261
+ },
1262
+ {
1263
+ "internalType": "uint256",
1264
+ "name": "_amount",
1265
+ "type": "uint256"
1266
+ }
1267
+ ],
1268
+ "name": "withdrawFee",
1269
+ "outputs": [],
1270
+ "stateMutability": "nonpayable",
1271
+ "type": "function"
1272
+ }
1273
+ ],
1274
+ "bytecode": "0x6101206040523480156200001257600080fd5b50d380156200002057600080fd5b50d280156200002e57600080fd5b5060405162005e4d38038062005e4d833981016040819052620000519162000128565b6001600160a01b03861660805263ffffffff821660a052858585858585858286866200007d33620000ae565b60c09190915260025550506001600160a01b0392831660e0529091166101005250620001a198505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516000906001600160a81b03811681146200011957600080fd5b6001600160a01b031692915050565b60008060008060008060c087890312156200014257600080fd5b6200014d87620000fe565b955060208701519450604087015193506200016b60608801620000fe565b9250608087015163ffffffff811681146200018557600080fd5b91506200019560a08801620000fe565b90509295509295509295565b60805160a05160c05160e05161010051615c44620002096000396000818161062b015261226b0152600081816101c701526128f401526000818161206a01526127e40152600081816129c00152612a8e0152600081816110ec01526117ea0152615c446000f3fe6080604052600436106101965760003560e01c80636750cd4c116100e1578063c28e0eed1161008a578063f2fde38b11610064578063f2fde38b1461077a578063f8e1734c146107b4578063faaebd21146107ee578063fd9be5221461083557600080fd5b8063c28e0eed146106cc578063d15b0d4914610706578063f0f442601461074057600080fd5b806389b69dec116100bb57806389b69dec146105ff5780638da5cb5b1461064d578063c14c43491461069257600080fd5b80636750cd4c1461054c5780636d26e5d014610596578063715018a6146105d057600080fd5b806343ea4fa91161014357806352d2871f1161011d57806352d2871f1461047757806354fd4d50146104be57806361d027b31461050557600080fd5b806343ea4fa9146103815780634d3a0f7c146103bb5780634d963200146103ce57600080fd5b806329460b0b1161017457806329460b0b146102af57806339e3f938146102eb57806340a7bb101461033257600080fd5b806302bd97431461019b5780630f8355c014610213578063188183f414610268575b600080fd5b3480156101a757600080fd5b50d380156101b457600080fd5b50d280156101c157600080fd5b506101e97f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561021f57600080fd5b50d3801561022c57600080fd5b50d2801561023957600080fd5b5061025a61024836600461475a565b60066020526000908152604090205481565b60405190815260200161020a565b34801561027457600080fd5b50d3801561028157600080fd5b50d2801561028e57600080fd5b506102a261029d3660046147c3565b61086f565b60405161020a9190614812565b3480156102bb57600080fd5b50d380156102c857600080fd5b50d280156102d557600080fd5b506102e96102e4366004614845565b61097c565b005b3480156102f757600080fd5b50d3801561030457600080fd5b50d2801561031157600080fd5b506103256103203660046147c3565b610b69565b60405161020a919061497d565b34801561033e57600080fd5b50d3801561034b57600080fd5b50d2801561035857600080fd5b5061036c6103673660046149e9565b610d0b565b6040805192835260208301919091520161020a565b34801561038d57600080fd5b50d3801561039a57600080fd5b50d280156103a757600080fd5b506103256103b63660046147c3565b610d30565b6102e96103c9366004614acd565b6110ea565b3480156103da57600080fd5b50d380156103e757600080fd5b50d280156103f457600080fd5b506104466104033660046147c3565b600460209081526000928352604080842090915290825290205463ffffffff811690640100000000900473ffffffffffffffffffffffffffffffffffffffff1682565b6040805163ffffffff909316835273ffffffffffffffffffffffffffffffffffffffff90911660208301520161020a565b34801561048357600080fd5b50d3801561049057600080fd5b50d2801561049d57600080fd5b506104b16104ac366004614bc1565b6112f8565b60405161020a9190614c85565b3480156104ca57600080fd5b50d380156104d757600080fd5b50d280156104e457600080fd5b5060408051600381526000602082015260019181019190915260600161020a565b34801561051157600080fd5b50d3801561051e57600080fd5b50d2801561052b57600080fd5b506003546101e99073ffffffffffffffffffffffffffffffffffffffff1681565b34801561055857600080fd5b50d3801561056557600080fd5b50d2801561057257600080fd5b5061058661058136600461475a565b61139d565b604051901515815260200161020a565b3480156105a257600080fd5b50d380156105af57600080fd5b50d280156105bc57600080fd5b506102e96105cb366004614c98565b6113a8565b3480156105dc57600080fd5b50d380156105e957600080fd5b50d280156105f657600080fd5b506102e9611481565b34801561060b57600080fd5b50d3801561061857600080fd5b50d2801561062557600080fd5b506101e97f000000000000000000000000000000000000000000000000000000000000000081565b34801561065957600080fd5b50d3801561066657600080fd5b50d2801561067357600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166101e9565b34801561069e57600080fd5b50d380156106ab57600080fd5b50d280156106b857600080fd5b506102e96106c7366004614cc2565b611495565b3480156106d857600080fd5b50d380156106e557600080fd5b50d280156106f257600080fd5b506102e9610701366004614d25565b611617565b34801561071257600080fd5b50d3801561071f57600080fd5b50d2801561072c57600080fd5b506102e961073b366004614d5f565b611699565b34801561074c57600080fd5b50d3801561075957600080fd5b50d2801561076657600080fd5b506102e9610775366004614d25565b611720565b34801561078657600080fd5b50d3801561079357600080fd5b50d280156107a057600080fd5b506102e96107af366004614d25565b611734565b3480156107c057600080fd5b50d380156107cd57600080fd5b50d280156107da57600080fd5b506102e96107e9366004614d78565b6117e8565b3480156107fa57600080fd5b50d3801561080757600080fd5b50d2801561081457600080fd5b5061025a610823366004614d25565b60056020526000908152604090205481565b34801561084157600080fd5b50d3801561084e57600080fd5b50d2801561085b57600080fd5b506102e961086a366004614dff565b6118e9565b604080518082019091526000808252602082015263ffffffff80831660008181527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8916845260048352818420948452939091528120805492939092169081900361090057825463ffffffff16610902565b805b63ffffffff1684528154640100000000900473ffffffffffffffffffffffffffffffffffffffff1680610954578354640100000000900473ffffffffffffffffffffffffffffffffffffffff16610956565b805b73ffffffffffffffffffffffffffffffffffffffff166020860152509295945050505050565b61098461194f565b60005b81811015610b2b57368383838181106109a2576109a2614e41565b90506020028101906109b49190614e70565b905060ff6109c56020830183614eae565b6109d6906040810190602001614ef3565b60ff1603610a10576040517f83aa17da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60ff610a1f6020830183614eae565b610a30906060810190604001614ef3565b60ff1603610a6a576040517f4221136600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff610a806020830183614eae565b610a8e906020810190614f0e565b67ffffffffffffffff1603610acf576040517f503667ae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610aed610adf6020830183614eae565b610ae89061510e565b6119d0565b610b1a6000610aff602084018461475a565b610b0c6020850185614eae565b610b159061510e565b611a21565b50610b2481615149565b9050610987565b507faaf3aaa0c11056e86ac56eb653e25b005ca1a7d4dcd21ba24647f7ab63f3b5608282604051610b5d929190615233565b60405180910390a15050565b6040805160c0810182526000808252602082018190529181018290526060808201929092526080810182905260a081019190915273ffffffffffffffffffffffffffffffffffffffff8316600090815260016020818152604080842063ffffffff87168552825292839020835160c081018552815467ffffffffffffffff8116825260ff680100000000000000008204811683860152690100000000000000000082048116838801526a01000000000000000000009091041660608201529281018054855181850281018501909652808652939491936080860193830182828015610c8a57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610c5f575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610cf957602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610cce575b50505050508152505090505b92915050565b600080610d208861ffff8b1688888888611db5565b9150915097509795505050505050565b6040805160c0810182526000808252602080830182905282840182905260608084018390526080840181905260a084015263ffffffff85168083527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49825284832073ffffffffffffffffffffffffffffffffffffffff88168452600183528584209184529152929020805491929167ffffffffffffffff1680610de057825467ffffffffffffffff168452610dff565b67ffffffffffffffff81811614610dff5767ffffffffffffffff811684525b815468010000000000000000900460ff16610eb557825468010000000000000000900460ff1615610eb05782600101805480602002602001604051908101604052809291908181526020018280548015610e8f57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610e64575b50505050506080850152825468010000000000000000900460ff1660208501525b610f53565b815468010000000000000000900460ff90811614610f535781600101805480602002602001604051908101604052809291908181526020018280548015610f3257602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610f07575b50505050506080850152815468010000000000000000900460ff1660208501525b81546901000000000000000000900460ff166110225782546901000000000000000000900460ff161561101d5782600201805480602002602001604051908101604052809291908181526020018280548015610fe557602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610fba575b505050505060a0850152825460ff69010000000000000000008204811660408701526a01000000000000000000009091041660608501525b6110d8565b81546901000000000000000000900460ff908116146110d857816002018054806020026020016040519081016040528092919081815260200182805480156110a057602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611075575b505050505060a0850152815460ff69010000000000000000008204811660408701526a01000000000000000000009091041660608501525b6110e1846119d0565b50505092915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314611159576040517f467409c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008061116c8d8c8c8c8c8c8a8a611ebb565b909250905061ffff8b168d600073ffffffffffffffffffffffffffffffffffffffff8816158015906111b5575060075473ffffffffffffffffffffffffffffffffffffffff1615155b90506000806111c684868886611f68565b90925090506111d582876153d5565b955085341015611211576040517f645f0f4f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061121d87346153e8565b9050801561122f5761122f8c826120f7565b81156112a4578473ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff161461129a576040517f5dc90ccd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112a48583612202565b7f3dc6f2ede34d1db05729bbb76e5efd17ec1bc83f98f665e7fba0596dca438b96888b8b8a866040516112db959493929190615444565b60405180910390a150505050505050505050505050505050505050565b60606001820361133657611310838561ffff1661086f565b6040516020016113209190614812565b6040516020818303038152906040529050611396565b6002820361135c5761134c838561ffff16610d30565b604051602001611320919061497d565b6040517f0c509b5b000000000000000000000000000000000000000000000000000000008152600481018390526024015b60405180910390fd5b9392505050565b6000610d05826122c5565b6113b061194f565b60208111156113eb576040517f6f85e1b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61ffff821660009081526006602052604090205415611436576040517fe4df7bef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61ffff8216600081815260066020908152604091829020849055815192835282018390527ee9ab3709e58edd0db46318d63673d8ae4681fa3e51d9f9dc07cde5109ff7489101610b5d565b61148961194f565b611493600061232c565b565b61149d61194f565b60005b818110156115e557368383838181106114bb576114bb614e41565b60609081029290920192506000916114d99150830160408401614d25565b73ffffffffffffffffffffffffffffffffffffffff1603611526576040517f20e9d05a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611536604082016020830161475a565b63ffffffff16600003611575576040517f49cfac4300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808052600460209081528201907f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec906115b0838561475a565b63ffffffff16815260208101919091526040016000206115d0828261547f565b90505050806115de90615149565b90506114a0565b507f2b001e1c6683bf79cc52891bd7215b204c787d18134fc7f3d21b4f32a49e47de8282604051610b5d929190615517565b61161f61194f565b600780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd476ec5ec1ac11cec3714d41e7ea49419471aceb9bd0dff1becfc3e363a62396906020015b60405180910390a150565b6116a161194f565b6002548111156116eb576002546040517f34084fb800000000000000000000000000000000000000000000000000000000815261138d918391600401918252602082015260400190565b60028190556040518181527f491ff913b5444f4136b0d4075f020cfe3a5f60de926ec0b091612401a22b78429060200161168e565b61172861194f565b611731816123a1565b50565b61173c61194f565b73ffffffffffffffffffffffffffffffffffffffff81166117df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161138d565b6117318161232c565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314611857576040517f467409c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6118648561ffff16612414565b6001830361188b5761188661ffff861685611881848601866155a4565b61245b565b6118e2565b600283036118ad5761188661ffff8616856118a884860186615619565b612515565b6040517f0c509b5b0000000000000000000000000000000000000000000000000000000081526004810184905260240161138d565b5050505050565b6118f28161255e565b6118fc82826120f7565b6040805133815273ffffffffffffffffffffffffffffffffffffffff841660208201529081018290527f820b7fd51bf79c54350bab98400651b3314ff6e79b33528821871d94a666988390606001610b5d565b60005473ffffffffffffffffffffffffffffffffffffffff163314611493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161138d565b602081015160ff161580156119ea5750606081015160ff16155b15611731576040517fce2c375100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081015160ff9081161480611a3c5750602081015160ff16155b15611a835760808101515115611a7e576040517f83aa17da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b02565b806020015160ff16816080015151141580611abe57506002611aa7600160ff61564e565b611ab19190615667565b60ff16816020015160ff16115b15611af5576040517f83aa17da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b0281608001516125c8565b604081015160ff9081161480611b1d5750604081015160ff16155b15611ba35760a08101515115611b5f576040517f4221136600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081015160ff1615611b9e576040517f38682fa900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611c7a565b806040015160ff168160a0015151141580611bde57506002611bc7600160ff61564e565b611bd19190615667565b60ff16816040015160ff16115b15611c15576040517f4221136600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081015160ff161580611c365750806040015160ff16816060015160ff16115b15611c6d576040517f38682fa900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611c7a8160a001516125c8565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020818152604080842063ffffffff87168552825292839020845181548684015195870151606088015167ffffffffffffffff9093167fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000909216919091176801000000000000000060ff97881602177fffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff166901000000000000000000918716919091027fffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff16176a0100000000000000000000959091169490940293909317835560808401518051859493611d91939085019201906146b2565b5060a08201518051611dad9160028401916020909101906146b2565b505050505050565b600080600080611dc5868661266c565b915091506000611dd68b8b84612685565b90506000611de48c8c61086f565b9050611dfa8a826000015163ffffffff1661269a565b806020015173ffffffffffffffffffffffffffffffffffffffff1663709eb6648c8e8d886040518563ffffffff1660e01b8152600401611e3d94939291906156b0565b602060405180830381865afa158015611e5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7e91906156fb565b611e8890836153d5565b9150600080611e998e8e868e6126e2565b9092509050611ea882856153d5565b9e909d509b505050505050505050505050565b6060600080611ece8b8b8b8b8b8b612826565b9050600080611edd878761266c565b915091506000611ef18e8e61ffff1661086f565b60c085015151815191925090611f0e90829063ffffffff1661269a565b611f278260200151866060015187604001518488612b37565b611f3190876153d5565b9550600080611f408786612c70565b9092509050611f4f82896153d5565b9750809850505050505050509850989650505050505050565b600354600090819073ffffffffffffffffffffffffffffffffffffffff16156120ee5760405173ffffffffffffffffffffffffffffffffffffffff8716602482015263ffffffff8616604482015260648101859052831515608482015260009060a401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd51c54860000000000000000000000000000000000000000000000000000000017905260035491925060009182916120929173ffffffffffffffffffffffffffffffffffffffff16907f000000000000000000000000000000000000000000000000000000000000000090849087612c8b565b915091506120a287878484612d3c565b909550935084156120ea5760035473ffffffffffffffffffffffffffffffffffffffff16600090815260056020526040812080548792906120e49084906153d5565b90915550505b5050505b94509492505050565b73ffffffffffffffffffffffffffffffffffffffff8216612144576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d806000811461219e576040519150601f19603f3d011682016040523d82523d6000602084013e6121a3565b606091505b50509050806121fd576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024810183905260440161138d565b505050565b6007546003546040517f7da56b4b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201528483166024820152604481018490526064810184905290821660848201527f000000000000000000000000000000000000000000000000000000000000000090911690637da56b4b9060a401600060405180830381600087803b1580156122b157600080fd5b505af1158015611dad573d6000803e3d6000fd5b63ffffffff811660009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb4960205260408120805468010000000000000000900460ff161515806113965750546a0100000000000000000000900460ff16151592915050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f3c864541ef71378c6229510ed90f376565ee42d9c5e0904a984a9e863e6db44f9060200161168e565b61241d816122c5565b611731576040517ff0c10d0400000000000000000000000000000000000000000000000000000000815263ffffffff8216600482015260240161138d565b73ffffffffffffffffffffffffffffffffffffffff808316600090815260046020908152604080832063ffffffff8089168552908352928190208551815493870151909516640100000000027fffffffffffffffff0000000000000000000000000000000000000000000000009093169490931693909317179055517f779cb2dd9d2bb1be1737d05435d744facbfb84a2a4912e21379d39beddcdc8059061250890849086908590615714565b60405180910390a1505050565b612520828483611a21565b61252a8284610d30565b507f82118522aa536ac0e96cc5c689407ae42b89d592aa133890a01f1509842f508182848360405161250893929190615770565b33600090815260056020526040902054808211156125b2576040517f34084fb8000000000000000000000000000000000000000000000000000000008152600481018390526024810182905260440161138d565b3360009081526005602052604090209190039055565b6000805b82518110156121fd5760008382815181106125e9576125e9614e41565b602002602001015190508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1611612658576040517f447516e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b91508061266481615149565b9150506125cc565b6060806126798484612db7565b915091505b9250929050565b6000612692848484612ea4565b949350505050565b808211156126de576040517fc667af3e000000000000000000000000000000000000000000000000000000008152600481018390526024810182905260440161138d565b5050565b600354600090819073ffffffffffffffffffffffffffffffffffffffff16156120ee5760405173ffffffffffffffffffffffffffffffffffffffff8716602482015263ffffffff8616604482015260648101859052831515608482015260009060a401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd424422100000000000000000000000000000000000000000000000000000000179052600354919250600091829161280a9173ffffffffffffffffffffffffffffffffffffffff16907f00000000000000000000000000000000000000000000000000000000000000009086612f1e565b9150915061281a87878484612d3c565b945094505050506120ee565b6040805160e0810182526000808252602080830182905282840182905260608084018390526080840183905260a0840183905260c084015261ffff89168252600690529182205490918190036128a8576040517fefa83a1300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6128b488878784612fcb565b6040517f6fe7b67300000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690636fe7b6739061292f908b908d908c908c906004016157ab565b6020604051808303816000875af115801561294e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061297291906157e5565b9050600061298a61298584838a8c615802565b61308b565b6040805160c085901b7fffffffffffffffff000000000000000000000000000000000000000000000000166020808301919091527f000000000000000000000000000000000000000000000000000000000000000060e090811b7fffffffff0000000000000000000000000000000000000000000000000000000016602884015273ffffffffffffffffffffffffffffffffffffffff8f16602c8401528d901b7dffff0000000000000000000000000000000000000000000000000000000016604c830152605080830185905283518084039091018152607090920190925280519101209091506040518060e001604052808467ffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff1681526020018c73ffffffffffffffffffffffffffffffffffffffff1681526020018b61ffff1663ffffffff16815260200183815260200182815260200188888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152509b9a5050505050505050505050565b6040517f717e8a4200000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff87169063717e8a4290612b929088908890889088906004016156b0565b6020604051808303816000875af1158015612bb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bd591906156fb565b90508015612c185773ffffffffffffffffffffffffffffffffffffffff861660009081526005602052604081208054839290612c129084906153d5565b90915550505b6040805173ffffffffffffffffffffffffffffffffffffffff88168152602081018390527f61ed099e74a97a1d7f8bb0952a88ca8b7b8ebd00c126ea04671f92a81213318a910160405180910390a195945050505050565b60006060612c80600585856130e5565b909590945092505050565b60006060863b808303612cb257604080516000808252602082019092529250925050612d32565b60008060008761ffff1667ffffffffffffffff811115612cd457612cd4614f2b565b6040519080825280601f01601f191660200182016040528015612cfe576020820181803683370190505b509050600080885160208a018c8f8ff191503d925087831115612d1f578792505b828152826000602083013e909450925050505b9550959350505050565b600080831580612d4d575082516020115b15612d5d575060009050806120ee565b600083806020019051810190612d7391906156fb565b90508515612d8357809150612dad565b60006002548811612d9657600254612d98565b875b9050808211612da75781612da9565b805b9350505b5094509492505050565b606080600080612dc78686613241565b915091508051600003612e1f57604080516000808252602082019092528391612e13565b604080518082019091526000815260606020820152815260200190600190039081612deb5790505b5093509350505061267e565b604080516001808252818301909252600091816020015b604080518082019091526000815260606020820152815260200190600190039081612e365790505090506040518060400160405280600260ff1681526020018381525081600081518110612e8c57612e8c614e41565b60209081029190910101529196919550909350505050565b600080612eb18585610d30565b905060008351600014612ee25783600081518110612ed157612ed1614e41565b602002602001015160200151612ef3565b604051806020016040528060008152505b9050600080612f0183613482565b91509150612f1284888a8585613726565b98975050505050505050565b60006060853b808303612f45576040805160008082526020820190925292509250506120ee565b60008060008761ffff1667ffffffffffffffff811115612f6757612f67614f2b565b6040519080825280601f01601f191660200182016040528015612f91576020820181803683370190505b509050600080885160208a018d8dfa91503d925087831115612fb1578792505b828152826000602083013e90999098509650505050505050565b612fd68160146153d5565b821461300e576040517fefa83a1300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061302461301f84848188615802565b6138f2565b90508073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146118e2576040517fc1c149b600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060208211156130c8576040517f6281faa200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6130d2828461582c565b6020929092036008029190911c92915050565b6000606060006130f485613942565b9050600061310186613a28565b8051602082012060608801516040890151929350909160006131238284610d30565b905060008951600014613154578960008151811061314357613143614e41565b602002602001015160200151613165565b604051806020016040528060008152505b905060606131c58d846040518060a001604052808963ffffffff1681526020018c81526020018a8152602001876000015167ffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681525085613a45565b604051919b5091506131dd9089908990602001615868565b60405160208183030381529060405298507f07ea52d82345d6e838192107d8fd7123d9c2ec8e916cd0aad13fd2b60db2464483608001518460a001518360405161322993929190615897565b60405180910390a15050505050505050935093915050565b6060806002831015613282576040517f6592671c0000000000000000000000000000000000000000000000000000000081526000600482015260240161138d565b60006132916002828688615802565b61329a916158f2565b60f01c905060027ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd820161346b578060005b868310156133f75760006132e560018501858a8c615802565b6132ee9161593a565b60f81c90506000819003613331576040517f6780cfaf0000000000000000000000000000000000000000000000000000000081526000600482015260240161138d565b8160ff1660000361334457809150613381565b8160ff168160ff16146133815736600061336086868c8e615802565b915091506133718989868585613d42565b9099509750859450919250829150505b600184019360009061339890600301868b8d615802565b6133a1916158f2565b60f01c905060008190036133e4576040517f6592671c0000000000000000000000000000000000000000000000000000000081526004810186905260240161138d565b8060020161ffff168501945050506132cc565b828714613433576040517f6592671c0000000000000000000000000000000000000000000000000000000081526004810184905260240161138d565b60028711156134645736600061344b85858b8d615802565b9150915061345c8888858585613d42565b909850965050505b5050613479565b613476828787613eb7565b93505b50509250929050565b606080825160000361349357915091565b600061349e84614136565b90508060ff166001036135505760408051600180825281830190925290816020015b60608152602001906001900390816134c057905050925083836000815181106134eb576134eb614e41565b60209081029190910101526040805160018082528183019092529081602001602082028036833701905050915061352384600361425b565b8260008151811061353657613536614e41565b602002602001019060ff16908160ff168152505050915091565b8060ff1667ffffffffffffffff81111561356c5761356c614f2b565b604051908082528060200260200182016040528015613595578160200160208202803683370190505b5091508060ff1667ffffffffffffffff8111156135b4576135b4614f2b565b6040519080825280602002602001820160405280156135e757816020015b60608152602001906001900390816135d25790505b50925060008060ff5b865183101561369b57600190920191600061360b88856142db565b6002949094019390506000613620898661425b565b90508260ff1660ff036136355780925061368c565b8260ff168160ff161461368c577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8486030160006136748b878461435b565b90506136828a8a87846144d5565b5093909301929150815b5061ffff1692909201916135f0565b81830360006136ab89858461435b565b90506136b9888885846144d5565b60005b8660ff168160ff16101561371a57878160ff16815181106136df576136df614e41565b6020908102919091010180517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0160ff1690526001016136bc565b50505050505050915091565b6000808660400151876020015161373d9190615980565b905060005b8160ff168160ff1610156138e7576000886020015160ff168260ff16106137975760a089015160208a0151613777908461564e565b60ff168151811061378a5761378a614e41565b60200260200101516137b9565b88608001518260ff16815181106137b0576137b0614e41565b60200260200101515b60408051602081019091526000808252919250905b865181101561382e578360ff168782815181106137ed576137ed614e41565b602002602001015160ff160361381e5787818151811061380f5761380f614e41565b6020026020010151915061382e565b61382781615149565b90506137ce565b5089516040517f30bb3aac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416916330bb3aac91613887918d918d908790600401615999565b602060405180830381865afa1580156138a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138c891906156fb565b6138d290866153d5565b94505050806138e0906159e4565b9050613742565b505095945050505050565b60006014821461392e576040517f6281faa200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6139388284615a03565b60601c9392505050565b8051602080830151604080850151606080870151608088015193517f01000000000000000000000000000000000000000000000000000000000000009681019690965260c09690961b7fffffffffffffffff00000000000000000000000000000000000000000000000016602186015260e093841b7fffffffff00000000000000000000000000000000000000000000000000000000908116602987015273ffffffffffffffffffffffffffffffffffffffff909216602d8601529490921b909116604d83015260518201526071015b6040516020818303038152906040529050919050565b60608160a001518260c00151604051602001613a12929190615a49565b60006060600080613a5585613482565b91509150600087604001518860200151613a6f9190615980565b90508060ff1667ffffffffffffffff811115613a8d57613a8d614f2b565b604051908082528060200260200182016040528015613ab6578160200160208202803683370190505b50935060005b8160ff168160ff161015613d35576000896020015160ff168260ff1610613b115760a08a015160208b0151613af1908461564e565b60ff1681518110613b0457613b04614e41565b6020026020010151613b33565b89608001518260ff1681518110613b2a57613b2a614e41565b60200260200101515b60408051602081019091526000808252919250905b8551811015613ba8578360ff16868281518110613b6757613b67614e41565b602002602001015160ff1603613b9857868181518110613b8957613b89614e41565b60200260200101519150613ba8565b613ba181615149565b9050613b48565b506040517f95d376d700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316906395d376d790613bfd908d908590600401615a6f565b6020604051808303816000875af1158015613c1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c4091906156fb565b878460ff1681518110613c5557613c55614e41565b6020026020010181815250506000878460ff1681518110613c7857613c78614e41565b60200260200101511115613d2257868360ff1681518110613c9b57613c9b614e41565b60200260200101518c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613cf091906153d5565b92505081905550868360ff1681518110613d0c57613d0c614e41565b602002602001015188613d1f91906153d5565b97505b505080613d2e906159e4565b9050613abc565b5050505094509492505050565b6060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff861601613ddd57865115613d9f57868484604051602001613d8b93929190615aed565b604051602081830303815290604052613dd6565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b9650613eac565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60ff861601613e7557855115613e3757858484604051602001613e2393929190615aed565b604051602081830303815290604052613e6e565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b9550613eac565b6040517f6780cfaf00000000000000000000000000000000000000000000000000000000815260ff8616600482015260240161138d565b509495939450505050565b60607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61ffff851601613fdd5760228214613f1e576040517f0dc652a800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000613f3f613f31602260028688615802565b613f3a9161582c565b61460c565b6040517f0100000000000000000000000000000000000000000000000000000000000000602082018190527e11000000000000000000000000000000000000000000000000000000000000602183015260238201527fffffffffffffffffffffffffffffffff00000000000000000000000000000000608083901b166024820152909150603401604051602081830303815290604052915050611396565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe61ffff8516016140fe576042821115806140185750606282115b1561404f576040517fc0927c5600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000614062613f31602260028688615802565b90506000614077613f31604260228789615802565b905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbe85016140ab866042818a615802565b6140b49161582c565b60405160086020938403029190911c92506140e5916001916011918391889183916031916002918b918b9101615b15565b6040516020818303038152906040529350505050611396565b6040517f4170513000000000000000000000000000000000000000000000000000000000815261ffff8516600482015260240161138d565b600080805b835182101561421757600190910190600061415685846142db565b905060028301925060028161ffff1610156141a0576040517f04eb6e0c0000000000000000000000000000000000000000000000000000000081526004810184905260240161138d565b60006141ac868561425b565b90508060ff1660ff036141eb576040517fd3d3d9bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160ff82161b83166142085760019485019460ff82161b831792505b5061ffff16919091019061413b565b83518214614254576040517f04eb6e0c0000000000000000000000000000000000000000000000000000000081526004810183905260240161138d565b5050919050565b60006142688260016153d5565b835110156142d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f746f55696e74385f6f75744f66426f756e647300000000000000000000000000604482015260640161138d565b50016001015190565b60006142e88260026153d5565b83511015614352576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7431365f6f75744f66426f756e6473000000000000000000000000604482015260640161138d565b50016002015190565b60608161436981601f6153d5565b10156143d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015260640161138d565b6143db82846153d5565b84511015614445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015260640161138d565b60608215801561446457604051915060008252602082016040526144cc565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561449d578051835260209283019201614485565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b8160ff1660ff03614512576040517fd3d3d9bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061451f836001615980565b905060005b8451811015611dad57600085828151811061454157614541614e41565b602002602001015190508060ff168360ff16036145b65786828151811061456a5761456a614e41565b602002602001015184604051602001614584929190615868565b6040516020818303038152906040528783815181106145a5576145a5614e41565b602002602001018190525050611dad565b8060ff166000036145fb57828683815181106145d4576145d4614e41565b602002602001019060ff16908160ff1681525050838783815181106145a5576145a5614e41565b5061460581615149565b9050614524565b60006fffffffffffffffffffffffffffffffff8211156146ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f3238206269747300000000000000000000000000000000000000000000000000606482015260840161138d565b5090565b82805482825590600052602060002090810192821561472c579160200282015b8281111561472c57825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9091161782556020909201916001909101906146d2565b506146ae9291505b808211156146ae5760008155600101614734565b63ffffffff8116811461173157600080fd5b60006020828403121561476c57600080fd5b813561139681614748565b74ffffffffffffffffffffffffffffffffffffffffff8116811461173157600080fd5b600081356147a781614777565b73ffffffffffffffffffffffffffffffffffffffff1692915050565b600080604083850312156147d657600080fd5b82356147e181614777565b73ffffffffffffffffffffffffffffffffffffffff169150602083013561480781614748565b809150509250929050565b815163ffffffff16815260208083015173ffffffffffffffffffffffffffffffffffffffff169082015260408101610d05565b6000806020838503121561485857600080fd5b823567ffffffffffffffff8082111561487057600080fd5b818501915085601f83011261488457600080fd5b81358181111561489357600080fd5b8660208260051b85010111156148a857600080fd5b60209290920196919550909350505050565b600081518084526020808501945080840160005b8381101561490057815173ffffffffffffffffffffffffffffffffffffffff16875295820195908201906001016148ce565b509495945050505050565b67ffffffffffffffff815116825260ff602082015116602083015260ff604082015116604083015260ff60608201511660608301526000608082015160c0608085015261495b60c08501826148ba565b905060a083015184820360a086015261497482826148ba565b95945050505050565b602081526000611396602083018461490b565b803561ffff811681146149a257600080fd5b919050565b60008083601f8401126149b957600080fd5b50813567ffffffffffffffff8111156149d157600080fd5b60208301915083602082850101111561267e57600080fd5b600080600080600080600060a0888a031215614a0457600080fd5b614a0d88614990565b96506020880135614a1d81614777565b73ffffffffffffffffffffffffffffffffffffffff169550604088013567ffffffffffffffff80821115614a5057600080fd5b614a5c8b838c016149a7565b909750955060608a013591508115158214614a7657600080fd5b90935060808901359080821115614a8c57600080fd5b50614a998a828b016149a7565b989b979a50959850939692959293505050565b67ffffffffffffffff8116811461173157600080fd5b80356149a281614aac565b60008060008060008060008060008060006101008c8e031215614aef57600080fd5b614af88c61479a565b9a50614b0660208d01614ac2565b9950614b1460408d01614990565b985067ffffffffffffffff8060608e01351115614b3057600080fd5b614b408e60608f01358f016149a7565b909950975060808d0135811015614b5657600080fd5b614b668e60808f01358f016149a7565b9097509550614b7760a08e0161479a565b9450614b8560c08e0161479a565b93508060e08e01351115614b9857600080fd5b50614ba98d60e08e01358e016149a7565b81935080925050509295989b509295989b9093969950565b600080600060608486031215614bd657600080fd5b614bdf84614990565b92506020840135614bef81614777565b73ffffffffffffffffffffffffffffffffffffffff8116925050604084013590509250925092565b60005b83811015614c32578181015183820152602001614c1a565b50506000910152565b60008151808452614c53816020860160208601614c17565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006113966020830184614c3b565b60008060408385031215614cab57600080fd5b614cb483614990565b946020939093013593505050565b60008060208385031215614cd557600080fd5b823567ffffffffffffffff80821115614ced57600080fd5b818501915085601f830112614d0157600080fd5b813581811115614d1057600080fd5b8660206060830285010111156148a857600080fd5b600060208284031215614d3757600080fd5b8135614d4281614777565b73ffffffffffffffffffffffffffffffffffffffff169392505050565b600060208284031215614d7157600080fd5b5035919050565b600080600080600060808688031215614d9057600080fd5b614d9986614990565b94506020860135614da981614777565b73ffffffffffffffffffffffffffffffffffffffff16935060408601359250606086013567ffffffffffffffff811115614de257600080fd5b614dee888289016149a7565b969995985093965092949392505050565b60008060408385031215614e1257600080fd5b8235614e1d81614777565b73ffffffffffffffffffffffffffffffffffffffff16946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112614ea457600080fd5b9190910192915050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff41833603018112614ea457600080fd5b803560ff811681146149a257600080fd5b600060208284031215614f0557600080fd5b61139682614ee2565b600060208284031215614f2057600080fd5b813561139681614aac565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160c0810167ffffffffffffffff81118282101715614f7d57614f7d614f2b565b60405290565b600082601f830112614f9457600080fd5b8135602067ffffffffffffffff80831115614fb157614fb1614f2b565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108482111715614ff457614ff4614f2b565b60405293845285810183019383810192508785111561501257600080fd5b83870191505b8482101561505057813561502b81614777565b73ffffffffffffffffffffffffffffffffffffffff1683529183019190830190615018565b979650505050505050565b600060c0828403121561506d57600080fd5b615075614f5a565b905061508082614ac2565b815261508e60208301614ee2565b602082015261509f60408301614ee2565b60408201526150b060608301614ee2565b6060820152608082013567ffffffffffffffff808211156150d057600080fd5b6150dc85838601614f83565b608084015260a08401359150808211156150f557600080fd5b5061510284828501614f83565b60a08301525092915050565b6000610d05368361505b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361517a5761517a61511a565b5060010190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126151b657600080fd5b830160208101925035905067ffffffffffffffff8111156151d657600080fd5b8060051b360382131561267e57600080fd5b8183526000602080850194508260005b8581101561490057813561520b81614777565b73ffffffffffffffffffffffffffffffffffffffff16875295820195908201906001016151f8565b60208082528181018390526000906040808401600586901b8501820187855b888110156153c7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08089850301855282357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18c36030181126152b457600080fd5b8b0180356152c181614748565b63ffffffff16855280880135368290037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff410181126152fe57600080fd5b85890188905201803561531081614aac565b67ffffffffffffffff1685880152615329818901614ee2565b606060ff8083168289015261533f8a8501614ee2565b92506080818416818a0152615355838601614ee2565b935060a09250818416838a015261536e81860186615181565b60c08b810152945091506153899050610100890184836151e8565b92505061539881840184615181565b93509050838783030160e08801526153b18284836151e8565b978a019796505050928701925050600101615252565b509098975050505050505050565b80820180821115610d0557610d0561511a565b81810381811115610d0557610d0561511a565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6080815260006154576080830188614c3b565b828103602084015261546a8187896153fb565b60408401959095525050606001529392505050565b813561548a81614748565b63ffffffff811690508154817fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000821617835560208401356154ca81614777565b77ffffffffffffffffffffffffffffffffffffffff000000008160201b16837fffffffffffffffff0000000000000000000000000000000000000000000000008416171784555050505050565b6020808252818101839052600090604080840186845b8781101561559757813561554081614748565b63ffffffff9081168452828601359061555882614748565b16838601528184013561556a81614777565b73ffffffffffffffffffffffffffffffffffffffff1683850152606092830192919091019060010161552d565b5090979650505050505050565b6000604082840312156155b657600080fd5b6040516040810181811067ffffffffffffffff821117156155d9576155d9614f2b565b60405282356155e781614748565b815260208301356155f781614777565b73ffffffffffffffffffffffffffffffffffffffff1660208201529392505050565b60006020828403121561562b57600080fd5b813567ffffffffffffffff81111561564257600080fd5b6126928482850161505b565b60ff8281168282160390811115610d0557610d0561511a565b600060ff8316806156a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b8060ff84160491505092915050565b63ffffffff8516815273ffffffffffffffffffffffffffffffffffffffff841660208201528260408201526080606082015260006156f16080830184614c3b565b9695505050505050565b60006020828403121561570d57600080fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff83166020820152608081016126926040830184805163ffffffff16825260209081015173ffffffffffffffffffffffffffffffffffffffff16910152565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff83166020820152606060408201526000614974606083018461490b565b61ffff8516815273ffffffffffffffffffffffffffffffffffffffff841660208201526060604082015260006156f16060830184866153fb565b6000602082840312156157f757600080fd5b815161139681614aac565b6000808585111561581257600080fd5b8386111561581f57600080fd5b5050820193919092039150565b80356020831015610d05577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b6000835161587a818460208801614c17565b83519083019061588e818360208801614c17565b01949350505050565b6060815260006158aa60608301866148ba565b6020838203818501526158bd82876148ba565b8481036040860152855180825282870193509082019060005b818110156153c7578451835293830193918301916001016158d6565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156159325780818660020360031b1b83161692505b505092915050565b7fff0000000000000000000000000000000000000000000000000000000000000081358181169160018510156159325760019490940360031b84901b1690921692915050565b60ff8181168382160190811115610d0557610d0561511a565b63ffffffff8516815267ffffffffffffffff8416602082015273ffffffffffffffffffffffffffffffffffffffff831660408201526080606082015260006156f16080830184614c3b565b600060ff821660ff81036159fa576159fa61511a565b60010192915050565b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000081358181169160148510156159325760149490940360031b84901b1690921692915050565b82815260008251615a61816020850160208701614c17565b919091016020019392505050565b6040815263ffffffff83511660408201526000602084015160a06060840152615a9b60e0840182614c3b565b90506040850151608084015267ffffffffffffffff60608601511660a084015273ffffffffffffffffffffffffffffffffffffffff60808601511660c084015282810360208401526149748185614c3b565b60008451615aff818460208901614c17565b8201838582376000930192835250909392505050565b60007fff00000000000000000000000000000000000000000000000000000000000000808c60f81b1683527fffff000000000000000000000000000000000000000000000000000000000000808c60f01b166001850152818b60f81b1660038501527fffffffffffffffffffffffffffffffff000000000000000000000000000000008a60801b166004850152818960f81b166014850152808860f01b16601585015250808660f81b16601784015250615bf6601883018560801b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000169052565b5060288101919091526048019897505050505050505056fea26474726f6e58221220ad3025b23401c455b688ba08e1fce3a20604883c1c2c62db3b44e5e568e79b2d64736f6c63430008140033",
1275
+ "deployedBytecode": "0x6080604052600436106101965760003560e01c80636750cd4c116100e1578063c28e0eed1161008a578063f2fde38b11610064578063f2fde38b1461077a578063f8e1734c146107b4578063faaebd21146107ee578063fd9be5221461083557600080fd5b8063c28e0eed146106cc578063d15b0d4914610706578063f0f442601461074057600080fd5b806389b69dec116100bb57806389b69dec146105ff5780638da5cb5b1461064d578063c14c43491461069257600080fd5b80636750cd4c1461054c5780636d26e5d014610596578063715018a6146105d057600080fd5b806343ea4fa91161014357806352d2871f1161011d57806352d2871f1461047757806354fd4d50146104be57806361d027b31461050557600080fd5b806343ea4fa9146103815780634d3a0f7c146103bb5780634d963200146103ce57600080fd5b806329460b0b1161017457806329460b0b146102af57806339e3f938146102eb57806340a7bb101461033257600080fd5b806302bd97431461019b5780630f8355c014610213578063188183f414610268575b600080fd5b3480156101a757600080fd5b50d380156101b457600080fd5b50d280156101c157600080fd5b506101e97f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561021f57600080fd5b50d3801561022c57600080fd5b50d2801561023957600080fd5b5061025a61024836600461475a565b60066020526000908152604090205481565b60405190815260200161020a565b34801561027457600080fd5b50d3801561028157600080fd5b50d2801561028e57600080fd5b506102a261029d3660046147c3565b61086f565b60405161020a9190614812565b3480156102bb57600080fd5b50d380156102c857600080fd5b50d280156102d557600080fd5b506102e96102e4366004614845565b61097c565b005b3480156102f757600080fd5b50d3801561030457600080fd5b50d2801561031157600080fd5b506103256103203660046147c3565b610b69565b60405161020a919061497d565b34801561033e57600080fd5b50d3801561034b57600080fd5b50d2801561035857600080fd5b5061036c6103673660046149e9565b610d0b565b6040805192835260208301919091520161020a565b34801561038d57600080fd5b50d3801561039a57600080fd5b50d280156103a757600080fd5b506103256103b63660046147c3565b610d30565b6102e96103c9366004614acd565b6110ea565b3480156103da57600080fd5b50d380156103e757600080fd5b50d280156103f457600080fd5b506104466104033660046147c3565b600460209081526000928352604080842090915290825290205463ffffffff811690640100000000900473ffffffffffffffffffffffffffffffffffffffff1682565b6040805163ffffffff909316835273ffffffffffffffffffffffffffffffffffffffff90911660208301520161020a565b34801561048357600080fd5b50d3801561049057600080fd5b50d2801561049d57600080fd5b506104b16104ac366004614bc1565b6112f8565b60405161020a9190614c85565b3480156104ca57600080fd5b50d380156104d757600080fd5b50d280156104e457600080fd5b5060408051600381526000602082015260019181019190915260600161020a565b34801561051157600080fd5b50d3801561051e57600080fd5b50d2801561052b57600080fd5b506003546101e99073ffffffffffffffffffffffffffffffffffffffff1681565b34801561055857600080fd5b50d3801561056557600080fd5b50d2801561057257600080fd5b5061058661058136600461475a565b61139d565b604051901515815260200161020a565b3480156105a257600080fd5b50d380156105af57600080fd5b50d280156105bc57600080fd5b506102e96105cb366004614c98565b6113a8565b3480156105dc57600080fd5b50d380156105e957600080fd5b50d280156105f657600080fd5b506102e9611481565b34801561060b57600080fd5b50d3801561061857600080fd5b50d2801561062557600080fd5b506101e97f000000000000000000000000000000000000000000000000000000000000000081565b34801561065957600080fd5b50d3801561066657600080fd5b50d2801561067357600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166101e9565b34801561069e57600080fd5b50d380156106ab57600080fd5b50d280156106b857600080fd5b506102e96106c7366004614cc2565b611495565b3480156106d857600080fd5b50d380156106e557600080fd5b50d280156106f257600080fd5b506102e9610701366004614d25565b611617565b34801561071257600080fd5b50d3801561071f57600080fd5b50d2801561072c57600080fd5b506102e961073b366004614d5f565b611699565b34801561074c57600080fd5b50d3801561075957600080fd5b50d2801561076657600080fd5b506102e9610775366004614d25565b611720565b34801561078657600080fd5b50d3801561079357600080fd5b50d280156107a057600080fd5b506102e96107af366004614d25565b611734565b3480156107c057600080fd5b50d380156107cd57600080fd5b50d280156107da57600080fd5b506102e96107e9366004614d78565b6117e8565b3480156107fa57600080fd5b50d3801561080757600080fd5b50d2801561081457600080fd5b5061025a610823366004614d25565b60056020526000908152604090205481565b34801561084157600080fd5b50d3801561084e57600080fd5b50d2801561085b57600080fd5b506102e961086a366004614dff565b6118e9565b604080518082019091526000808252602082015263ffffffff80831660008181527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8916845260048352818420948452939091528120805492939092169081900361090057825463ffffffff16610902565b805b63ffffffff1684528154640100000000900473ffffffffffffffffffffffffffffffffffffffff1680610954578354640100000000900473ffffffffffffffffffffffffffffffffffffffff16610956565b805b73ffffffffffffffffffffffffffffffffffffffff166020860152509295945050505050565b61098461194f565b60005b81811015610b2b57368383838181106109a2576109a2614e41565b90506020028101906109b49190614e70565b905060ff6109c56020830183614eae565b6109d6906040810190602001614ef3565b60ff1603610a10576040517f83aa17da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60ff610a1f6020830183614eae565b610a30906060810190604001614ef3565b60ff1603610a6a576040517f4221136600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff610a806020830183614eae565b610a8e906020810190614f0e565b67ffffffffffffffff1603610acf576040517f503667ae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610aed610adf6020830183614eae565b610ae89061510e565b6119d0565b610b1a6000610aff602084018461475a565b610b0c6020850185614eae565b610b159061510e565b611a21565b50610b2481615149565b9050610987565b507faaf3aaa0c11056e86ac56eb653e25b005ca1a7d4dcd21ba24647f7ab63f3b5608282604051610b5d929190615233565b60405180910390a15050565b6040805160c0810182526000808252602082018190529181018290526060808201929092526080810182905260a081019190915273ffffffffffffffffffffffffffffffffffffffff8316600090815260016020818152604080842063ffffffff87168552825292839020835160c081018552815467ffffffffffffffff8116825260ff680100000000000000008204811683860152690100000000000000000082048116838801526a01000000000000000000009091041660608201529281018054855181850281018501909652808652939491936080860193830182828015610c8a57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610c5f575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610cf957602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610cce575b50505050508152505090505b92915050565b600080610d208861ffff8b1688888888611db5565b9150915097509795505050505050565b6040805160c0810182526000808252602080830182905282840182905260608084018390526080840181905260a084015263ffffffff85168083527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49825284832073ffffffffffffffffffffffffffffffffffffffff88168452600183528584209184529152929020805491929167ffffffffffffffff1680610de057825467ffffffffffffffff168452610dff565b67ffffffffffffffff81811614610dff5767ffffffffffffffff811684525b815468010000000000000000900460ff16610eb557825468010000000000000000900460ff1615610eb05782600101805480602002602001604051908101604052809291908181526020018280548015610e8f57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610e64575b50505050506080850152825468010000000000000000900460ff1660208501525b610f53565b815468010000000000000000900460ff90811614610f535781600101805480602002602001604051908101604052809291908181526020018280548015610f3257602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610f07575b50505050506080850152815468010000000000000000900460ff1660208501525b81546901000000000000000000900460ff166110225782546901000000000000000000900460ff161561101d5782600201805480602002602001604051908101604052809291908181526020018280548015610fe557602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610fba575b505050505060a0850152825460ff69010000000000000000008204811660408701526a01000000000000000000009091041660608501525b6110d8565b81546901000000000000000000900460ff908116146110d857816002018054806020026020016040519081016040528092919081815260200182805480156110a057602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611075575b505050505060a0850152815460ff69010000000000000000008204811660408701526a01000000000000000000009091041660608501525b6110e1846119d0565b50505092915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314611159576040517f467409c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008061116c8d8c8c8c8c8c8a8a611ebb565b909250905061ffff8b168d600073ffffffffffffffffffffffffffffffffffffffff8816158015906111b5575060075473ffffffffffffffffffffffffffffffffffffffff1615155b90506000806111c684868886611f68565b90925090506111d582876153d5565b955085341015611211576040517f645f0f4f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061121d87346153e8565b9050801561122f5761122f8c826120f7565b81156112a4578473ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff161461129a576040517f5dc90ccd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112a48583612202565b7f3dc6f2ede34d1db05729bbb76e5efd17ec1bc83f98f665e7fba0596dca438b96888b8b8a866040516112db959493929190615444565b60405180910390a150505050505050505050505050505050505050565b60606001820361133657611310838561ffff1661086f565b6040516020016113209190614812565b6040516020818303038152906040529050611396565b6002820361135c5761134c838561ffff16610d30565b604051602001611320919061497d565b6040517f0c509b5b000000000000000000000000000000000000000000000000000000008152600481018390526024015b60405180910390fd5b9392505050565b6000610d05826122c5565b6113b061194f565b60208111156113eb576040517f6f85e1b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61ffff821660009081526006602052604090205415611436576040517fe4df7bef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61ffff8216600081815260066020908152604091829020849055815192835282018390527ee9ab3709e58edd0db46318d63673d8ae4681fa3e51d9f9dc07cde5109ff7489101610b5d565b61148961194f565b611493600061232c565b565b61149d61194f565b60005b818110156115e557368383838181106114bb576114bb614e41565b60609081029290920192506000916114d99150830160408401614d25565b73ffffffffffffffffffffffffffffffffffffffff1603611526576040517f20e9d05a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611536604082016020830161475a565b63ffffffff16600003611575576040517f49cfac4300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808052600460209081528201907f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec906115b0838561475a565b63ffffffff16815260208101919091526040016000206115d0828261547f565b90505050806115de90615149565b90506114a0565b507f2b001e1c6683bf79cc52891bd7215b204c787d18134fc7f3d21b4f32a49e47de8282604051610b5d929190615517565b61161f61194f565b600780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd476ec5ec1ac11cec3714d41e7ea49419471aceb9bd0dff1becfc3e363a62396906020015b60405180910390a150565b6116a161194f565b6002548111156116eb576002546040517f34084fb800000000000000000000000000000000000000000000000000000000815261138d918391600401918252602082015260400190565b60028190556040518181527f491ff913b5444f4136b0d4075f020cfe3a5f60de926ec0b091612401a22b78429060200161168e565b61172861194f565b611731816123a1565b50565b61173c61194f565b73ffffffffffffffffffffffffffffffffffffffff81166117df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161138d565b6117318161232c565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314611857576040517f467409c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6118648561ffff16612414565b6001830361188b5761188661ffff861685611881848601866155a4565b61245b565b6118e2565b600283036118ad5761188661ffff8616856118a884860186615619565b612515565b6040517f0c509b5b0000000000000000000000000000000000000000000000000000000081526004810184905260240161138d565b5050505050565b6118f28161255e565b6118fc82826120f7565b6040805133815273ffffffffffffffffffffffffffffffffffffffff841660208201529081018290527f820b7fd51bf79c54350bab98400651b3314ff6e79b33528821871d94a666988390606001610b5d565b60005473ffffffffffffffffffffffffffffffffffffffff163314611493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161138d565b602081015160ff161580156119ea5750606081015160ff16155b15611731576040517fce2c375100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081015160ff9081161480611a3c5750602081015160ff16155b15611a835760808101515115611a7e576040517f83aa17da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b02565b806020015160ff16816080015151141580611abe57506002611aa7600160ff61564e565b611ab19190615667565b60ff16816020015160ff16115b15611af5576040517f83aa17da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b0281608001516125c8565b604081015160ff9081161480611b1d5750604081015160ff16155b15611ba35760a08101515115611b5f576040517f4221136600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081015160ff1615611b9e576040517f38682fa900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611c7a565b806040015160ff168160a0015151141580611bde57506002611bc7600160ff61564e565b611bd19190615667565b60ff16816040015160ff16115b15611c15576040517f4221136600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081015160ff161580611c365750806040015160ff16816060015160ff16115b15611c6d576040517f38682fa900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611c7a8160a001516125c8565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020818152604080842063ffffffff87168552825292839020845181548684015195870151606088015167ffffffffffffffff9093167fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000909216919091176801000000000000000060ff97881602177fffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff166901000000000000000000918716919091027fffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff16176a0100000000000000000000959091169490940293909317835560808401518051859493611d91939085019201906146b2565b5060a08201518051611dad9160028401916020909101906146b2565b505050505050565b600080600080611dc5868661266c565b915091506000611dd68b8b84612685565b90506000611de48c8c61086f565b9050611dfa8a826000015163ffffffff1661269a565b806020015173ffffffffffffffffffffffffffffffffffffffff1663709eb6648c8e8d886040518563ffffffff1660e01b8152600401611e3d94939291906156b0565b602060405180830381865afa158015611e5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7e91906156fb565b611e8890836153d5565b9150600080611e998e8e868e6126e2565b9092509050611ea882856153d5565b9e909d509b505050505050505050505050565b6060600080611ece8b8b8b8b8b8b612826565b9050600080611edd878761266c565b915091506000611ef18e8e61ffff1661086f565b60c085015151815191925090611f0e90829063ffffffff1661269a565b611f278260200151866060015187604001518488612b37565b611f3190876153d5565b9550600080611f408786612c70565b9092509050611f4f82896153d5565b9750809850505050505050509850989650505050505050565b600354600090819073ffffffffffffffffffffffffffffffffffffffff16156120ee5760405173ffffffffffffffffffffffffffffffffffffffff8716602482015263ffffffff8616604482015260648101859052831515608482015260009060a401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd51c54860000000000000000000000000000000000000000000000000000000017905260035491925060009182916120929173ffffffffffffffffffffffffffffffffffffffff16907f000000000000000000000000000000000000000000000000000000000000000090849087612c8b565b915091506120a287878484612d3c565b909550935084156120ea5760035473ffffffffffffffffffffffffffffffffffffffff16600090815260056020526040812080548792906120e49084906153d5565b90915550505b5050505b94509492505050565b73ffffffffffffffffffffffffffffffffffffffff8216612144576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d806000811461219e576040519150601f19603f3d011682016040523d82523d6000602084013e6121a3565b606091505b50509050806121fd576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024810183905260440161138d565b505050565b6007546003546040517f7da56b4b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201528483166024820152604481018490526064810184905290821660848201527f000000000000000000000000000000000000000000000000000000000000000090911690637da56b4b9060a401600060405180830381600087803b1580156122b157600080fd5b505af1158015611dad573d6000803e3d6000fd5b63ffffffff811660009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb4960205260408120805468010000000000000000900460ff161515806113965750546a0100000000000000000000900460ff16151592915050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f3c864541ef71378c6229510ed90f376565ee42d9c5e0904a984a9e863e6db44f9060200161168e565b61241d816122c5565b611731576040517ff0c10d0400000000000000000000000000000000000000000000000000000000815263ffffffff8216600482015260240161138d565b73ffffffffffffffffffffffffffffffffffffffff808316600090815260046020908152604080832063ffffffff8089168552908352928190208551815493870151909516640100000000027fffffffffffffffff0000000000000000000000000000000000000000000000009093169490931693909317179055517f779cb2dd9d2bb1be1737d05435d744facbfb84a2a4912e21379d39beddcdc8059061250890849086908590615714565b60405180910390a1505050565b612520828483611a21565b61252a8284610d30565b507f82118522aa536ac0e96cc5c689407ae42b89d592aa133890a01f1509842f508182848360405161250893929190615770565b33600090815260056020526040902054808211156125b2576040517f34084fb8000000000000000000000000000000000000000000000000000000008152600481018390526024810182905260440161138d565b3360009081526005602052604090209190039055565b6000805b82518110156121fd5760008382815181106125e9576125e9614e41565b602002602001015190508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1611612658576040517f447516e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b91508061266481615149565b9150506125cc565b6060806126798484612db7565b915091505b9250929050565b6000612692848484612ea4565b949350505050565b808211156126de576040517fc667af3e000000000000000000000000000000000000000000000000000000008152600481018390526024810182905260440161138d565b5050565b600354600090819073ffffffffffffffffffffffffffffffffffffffff16156120ee5760405173ffffffffffffffffffffffffffffffffffffffff8716602482015263ffffffff8616604482015260648101859052831515608482015260009060a401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd424422100000000000000000000000000000000000000000000000000000000179052600354919250600091829161280a9173ffffffffffffffffffffffffffffffffffffffff16907f00000000000000000000000000000000000000000000000000000000000000009086612f1e565b9150915061281a87878484612d3c565b945094505050506120ee565b6040805160e0810182526000808252602080830182905282840182905260608084018390526080840183905260a0840183905260c084015261ffff89168252600690529182205490918190036128a8576040517fefa83a1300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6128b488878784612fcb565b6040517f6fe7b67300000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690636fe7b6739061292f908b908d908c908c906004016157ab565b6020604051808303816000875af115801561294e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061297291906157e5565b9050600061298a61298584838a8c615802565b61308b565b6040805160c085901b7fffffffffffffffff000000000000000000000000000000000000000000000000166020808301919091527f000000000000000000000000000000000000000000000000000000000000000060e090811b7fffffffff0000000000000000000000000000000000000000000000000000000016602884015273ffffffffffffffffffffffffffffffffffffffff8f16602c8401528d901b7dffff0000000000000000000000000000000000000000000000000000000016604c830152605080830185905283518084039091018152607090920190925280519101209091506040518060e001604052808467ffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff1681526020018c73ffffffffffffffffffffffffffffffffffffffff1681526020018b61ffff1663ffffffff16815260200183815260200182815260200188888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152509b9a5050505050505050505050565b6040517f717e8a4200000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff87169063717e8a4290612b929088908890889088906004016156b0565b6020604051808303816000875af1158015612bb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bd591906156fb565b90508015612c185773ffffffffffffffffffffffffffffffffffffffff861660009081526005602052604081208054839290612c129084906153d5565b90915550505b6040805173ffffffffffffffffffffffffffffffffffffffff88168152602081018390527f61ed099e74a97a1d7f8bb0952a88ca8b7b8ebd00c126ea04671f92a81213318a910160405180910390a195945050505050565b60006060612c80600585856130e5565b909590945092505050565b60006060863b808303612cb257604080516000808252602082019092529250925050612d32565b60008060008761ffff1667ffffffffffffffff811115612cd457612cd4614f2b565b6040519080825280601f01601f191660200182016040528015612cfe576020820181803683370190505b509050600080885160208a018c8f8ff191503d925087831115612d1f578792505b828152826000602083013e909450925050505b9550959350505050565b600080831580612d4d575082516020115b15612d5d575060009050806120ee565b600083806020019051810190612d7391906156fb565b90508515612d8357809150612dad565b60006002548811612d9657600254612d98565b875b9050808211612da75781612da9565b805b9350505b5094509492505050565b606080600080612dc78686613241565b915091508051600003612e1f57604080516000808252602082019092528391612e13565b604080518082019091526000815260606020820152815260200190600190039081612deb5790505b5093509350505061267e565b604080516001808252818301909252600091816020015b604080518082019091526000815260606020820152815260200190600190039081612e365790505090506040518060400160405280600260ff1681526020018381525081600081518110612e8c57612e8c614e41565b60209081029190910101529196919550909350505050565b600080612eb18585610d30565b905060008351600014612ee25783600081518110612ed157612ed1614e41565b602002602001015160200151612ef3565b604051806020016040528060008152505b9050600080612f0183613482565b91509150612f1284888a8585613726565b98975050505050505050565b60006060853b808303612f45576040805160008082526020820190925292509250506120ee565b60008060008761ffff1667ffffffffffffffff811115612f6757612f67614f2b565b6040519080825280601f01601f191660200182016040528015612f91576020820181803683370190505b509050600080885160208a018d8dfa91503d925087831115612fb1578792505b828152826000602083013e90999098509650505050505050565b612fd68160146153d5565b821461300e576040517fefa83a1300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061302461301f84848188615802565b6138f2565b90508073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146118e2576040517fc1c149b600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060208211156130c8576040517f6281faa200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6130d2828461582c565b6020929092036008029190911c92915050565b6000606060006130f485613942565b9050600061310186613a28565b8051602082012060608801516040890151929350909160006131238284610d30565b905060008951600014613154578960008151811061314357613143614e41565b602002602001015160200151613165565b604051806020016040528060008152505b905060606131c58d846040518060a001604052808963ffffffff1681526020018c81526020018a8152602001876000015167ffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681525085613a45565b604051919b5091506131dd9089908990602001615868565b60405160208183030381529060405298507f07ea52d82345d6e838192107d8fd7123d9c2ec8e916cd0aad13fd2b60db2464483608001518460a001518360405161322993929190615897565b60405180910390a15050505050505050935093915050565b6060806002831015613282576040517f6592671c0000000000000000000000000000000000000000000000000000000081526000600482015260240161138d565b60006132916002828688615802565b61329a916158f2565b60f01c905060027ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd820161346b578060005b868310156133f75760006132e560018501858a8c615802565b6132ee9161593a565b60f81c90506000819003613331576040517f6780cfaf0000000000000000000000000000000000000000000000000000000081526000600482015260240161138d565b8160ff1660000361334457809150613381565b8160ff168160ff16146133815736600061336086868c8e615802565b915091506133718989868585613d42565b9099509750859450919250829150505b600184019360009061339890600301868b8d615802565b6133a1916158f2565b60f01c905060008190036133e4576040517f6592671c0000000000000000000000000000000000000000000000000000000081526004810186905260240161138d565b8060020161ffff168501945050506132cc565b828714613433576040517f6592671c0000000000000000000000000000000000000000000000000000000081526004810184905260240161138d565b60028711156134645736600061344b85858b8d615802565b9150915061345c8888858585613d42565b909850965050505b5050613479565b613476828787613eb7565b93505b50509250929050565b606080825160000361349357915091565b600061349e84614136565b90508060ff166001036135505760408051600180825281830190925290816020015b60608152602001906001900390816134c057905050925083836000815181106134eb576134eb614e41565b60209081029190910101526040805160018082528183019092529081602001602082028036833701905050915061352384600361425b565b8260008151811061353657613536614e41565b602002602001019060ff16908160ff168152505050915091565b8060ff1667ffffffffffffffff81111561356c5761356c614f2b565b604051908082528060200260200182016040528015613595578160200160208202803683370190505b5091508060ff1667ffffffffffffffff8111156135b4576135b4614f2b565b6040519080825280602002602001820160405280156135e757816020015b60608152602001906001900390816135d25790505b50925060008060ff5b865183101561369b57600190920191600061360b88856142db565b6002949094019390506000613620898661425b565b90508260ff1660ff036136355780925061368c565b8260ff168160ff161461368c577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8486030160006136748b878461435b565b90506136828a8a87846144d5565b5093909301929150815b5061ffff1692909201916135f0565b81830360006136ab89858461435b565b90506136b9888885846144d5565b60005b8660ff168160ff16101561371a57878160ff16815181106136df576136df614e41565b6020908102919091010180517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0160ff1690526001016136bc565b50505050505050915091565b6000808660400151876020015161373d9190615980565b905060005b8160ff168160ff1610156138e7576000886020015160ff168260ff16106137975760a089015160208a0151613777908461564e565b60ff168151811061378a5761378a614e41565b60200260200101516137b9565b88608001518260ff16815181106137b0576137b0614e41565b60200260200101515b60408051602081019091526000808252919250905b865181101561382e578360ff168782815181106137ed576137ed614e41565b602002602001015160ff160361381e5787818151811061380f5761380f614e41565b6020026020010151915061382e565b61382781615149565b90506137ce565b5089516040517f30bb3aac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416916330bb3aac91613887918d918d908790600401615999565b602060405180830381865afa1580156138a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138c891906156fb565b6138d290866153d5565b94505050806138e0906159e4565b9050613742565b505095945050505050565b60006014821461392e576040517f6281faa200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6139388284615a03565b60601c9392505050565b8051602080830151604080850151606080870151608088015193517f01000000000000000000000000000000000000000000000000000000000000009681019690965260c09690961b7fffffffffffffffff00000000000000000000000000000000000000000000000016602186015260e093841b7fffffffff00000000000000000000000000000000000000000000000000000000908116602987015273ffffffffffffffffffffffffffffffffffffffff909216602d8601529490921b909116604d83015260518201526071015b6040516020818303038152906040529050919050565b60608160a001518260c00151604051602001613a12929190615a49565b60006060600080613a5585613482565b91509150600087604001518860200151613a6f9190615980565b90508060ff1667ffffffffffffffff811115613a8d57613a8d614f2b565b604051908082528060200260200182016040528015613ab6578160200160208202803683370190505b50935060005b8160ff168160ff161015613d35576000896020015160ff168260ff1610613b115760a08a015160208b0151613af1908461564e565b60ff1681518110613b0457613b04614e41565b6020026020010151613b33565b89608001518260ff1681518110613b2a57613b2a614e41565b60200260200101515b60408051602081019091526000808252919250905b8551811015613ba8578360ff16868281518110613b6757613b67614e41565b602002602001015160ff1603613b9857868181518110613b8957613b89614e41565b60200260200101519150613ba8565b613ba181615149565b9050613b48565b506040517f95d376d700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316906395d376d790613bfd908d908590600401615a6f565b6020604051808303816000875af1158015613c1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c4091906156fb565b878460ff1681518110613c5557613c55614e41565b6020026020010181815250506000878460ff1681518110613c7857613c78614e41565b60200260200101511115613d2257868360ff1681518110613c9b57613c9b614e41565b60200260200101518c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613cf091906153d5565b92505081905550868360ff1681518110613d0c57613d0c614e41565b602002602001015188613d1f91906153d5565b97505b505080613d2e906159e4565b9050613abc565b5050505094509492505050565b6060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff861601613ddd57865115613d9f57868484604051602001613d8b93929190615aed565b604051602081830303815290604052613dd6565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b9650613eac565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60ff861601613e7557855115613e3757858484604051602001613e2393929190615aed565b604051602081830303815290604052613e6e565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b9550613eac565b6040517f6780cfaf00000000000000000000000000000000000000000000000000000000815260ff8616600482015260240161138d565b509495939450505050565b60607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61ffff851601613fdd5760228214613f1e576040517f0dc652a800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000613f3f613f31602260028688615802565b613f3a9161582c565b61460c565b6040517f0100000000000000000000000000000000000000000000000000000000000000602082018190527e11000000000000000000000000000000000000000000000000000000000000602183015260238201527fffffffffffffffffffffffffffffffff00000000000000000000000000000000608083901b166024820152909150603401604051602081830303815290604052915050611396565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe61ffff8516016140fe576042821115806140185750606282115b1561404f576040517fc0927c5600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000614062613f31602260028688615802565b90506000614077613f31604260228789615802565b905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbe85016140ab866042818a615802565b6140b49161582c565b60405160086020938403029190911c92506140e5916001916011918391889183916031916002918b918b9101615b15565b6040516020818303038152906040529350505050611396565b6040517f4170513000000000000000000000000000000000000000000000000000000000815261ffff8516600482015260240161138d565b600080805b835182101561421757600190910190600061415685846142db565b905060028301925060028161ffff1610156141a0576040517f04eb6e0c0000000000000000000000000000000000000000000000000000000081526004810184905260240161138d565b60006141ac868561425b565b90508060ff1660ff036141eb576040517fd3d3d9bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160ff82161b83166142085760019485019460ff82161b831792505b5061ffff16919091019061413b565b83518214614254576040517f04eb6e0c0000000000000000000000000000000000000000000000000000000081526004810183905260240161138d565b5050919050565b60006142688260016153d5565b835110156142d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f746f55696e74385f6f75744f66426f756e647300000000000000000000000000604482015260640161138d565b50016001015190565b60006142e88260026153d5565b83511015614352576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7431365f6f75744f66426f756e6473000000000000000000000000604482015260640161138d565b50016002015190565b60608161436981601f6153d5565b10156143d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015260640161138d565b6143db82846153d5565b84511015614445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015260640161138d565b60608215801561446457604051915060008252602082016040526144cc565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561449d578051835260209283019201614485565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b8160ff1660ff03614512576040517fd3d3d9bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061451f836001615980565b905060005b8451811015611dad57600085828151811061454157614541614e41565b602002602001015190508060ff168360ff16036145b65786828151811061456a5761456a614e41565b602002602001015184604051602001614584929190615868565b6040516020818303038152906040528783815181106145a5576145a5614e41565b602002602001018190525050611dad565b8060ff166000036145fb57828683815181106145d4576145d4614e41565b602002602001019060ff16908160ff1681525050838783815181106145a5576145a5614e41565b5061460581615149565b9050614524565b60006fffffffffffffffffffffffffffffffff8211156146ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f3238206269747300000000000000000000000000000000000000000000000000606482015260840161138d565b5090565b82805482825590600052602060002090810192821561472c579160200282015b8281111561472c57825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9091161782556020909201916001909101906146d2565b506146ae9291505b808211156146ae5760008155600101614734565b63ffffffff8116811461173157600080fd5b60006020828403121561476c57600080fd5b813561139681614748565b74ffffffffffffffffffffffffffffffffffffffffff8116811461173157600080fd5b600081356147a781614777565b73ffffffffffffffffffffffffffffffffffffffff1692915050565b600080604083850312156147d657600080fd5b82356147e181614777565b73ffffffffffffffffffffffffffffffffffffffff169150602083013561480781614748565b809150509250929050565b815163ffffffff16815260208083015173ffffffffffffffffffffffffffffffffffffffff169082015260408101610d05565b6000806020838503121561485857600080fd5b823567ffffffffffffffff8082111561487057600080fd5b818501915085601f83011261488457600080fd5b81358181111561489357600080fd5b8660208260051b85010111156148a857600080fd5b60209290920196919550909350505050565b600081518084526020808501945080840160005b8381101561490057815173ffffffffffffffffffffffffffffffffffffffff16875295820195908201906001016148ce565b509495945050505050565b67ffffffffffffffff815116825260ff602082015116602083015260ff604082015116604083015260ff60608201511660608301526000608082015160c0608085015261495b60c08501826148ba565b905060a083015184820360a086015261497482826148ba565b95945050505050565b602081526000611396602083018461490b565b803561ffff811681146149a257600080fd5b919050565b60008083601f8401126149b957600080fd5b50813567ffffffffffffffff8111156149d157600080fd5b60208301915083602082850101111561267e57600080fd5b600080600080600080600060a0888a031215614a0457600080fd5b614a0d88614990565b96506020880135614a1d81614777565b73ffffffffffffffffffffffffffffffffffffffff169550604088013567ffffffffffffffff80821115614a5057600080fd5b614a5c8b838c016149a7565b909750955060608a013591508115158214614a7657600080fd5b90935060808901359080821115614a8c57600080fd5b50614a998a828b016149a7565b989b979a50959850939692959293505050565b67ffffffffffffffff8116811461173157600080fd5b80356149a281614aac565b60008060008060008060008060008060006101008c8e031215614aef57600080fd5b614af88c61479a565b9a50614b0660208d01614ac2565b9950614b1460408d01614990565b985067ffffffffffffffff8060608e01351115614b3057600080fd5b614b408e60608f01358f016149a7565b909950975060808d0135811015614b5657600080fd5b614b668e60808f01358f016149a7565b9097509550614b7760a08e0161479a565b9450614b8560c08e0161479a565b93508060e08e01351115614b9857600080fd5b50614ba98d60e08e01358e016149a7565b81935080925050509295989b509295989b9093969950565b600080600060608486031215614bd657600080fd5b614bdf84614990565b92506020840135614bef81614777565b73ffffffffffffffffffffffffffffffffffffffff8116925050604084013590509250925092565b60005b83811015614c32578181015183820152602001614c1a565b50506000910152565b60008151808452614c53816020860160208601614c17565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006113966020830184614c3b565b60008060408385031215614cab57600080fd5b614cb483614990565b946020939093013593505050565b60008060208385031215614cd557600080fd5b823567ffffffffffffffff80821115614ced57600080fd5b818501915085601f830112614d0157600080fd5b813581811115614d1057600080fd5b8660206060830285010111156148a857600080fd5b600060208284031215614d3757600080fd5b8135614d4281614777565b73ffffffffffffffffffffffffffffffffffffffff169392505050565b600060208284031215614d7157600080fd5b5035919050565b600080600080600060808688031215614d9057600080fd5b614d9986614990565b94506020860135614da981614777565b73ffffffffffffffffffffffffffffffffffffffff16935060408601359250606086013567ffffffffffffffff811115614de257600080fd5b614dee888289016149a7565b969995985093965092949392505050565b60008060408385031215614e1257600080fd5b8235614e1d81614777565b73ffffffffffffffffffffffffffffffffffffffff16946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112614ea457600080fd5b9190910192915050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff41833603018112614ea457600080fd5b803560ff811681146149a257600080fd5b600060208284031215614f0557600080fd5b61139682614ee2565b600060208284031215614f2057600080fd5b813561139681614aac565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160c0810167ffffffffffffffff81118282101715614f7d57614f7d614f2b565b60405290565b600082601f830112614f9457600080fd5b8135602067ffffffffffffffff80831115614fb157614fb1614f2b565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108482111715614ff457614ff4614f2b565b60405293845285810183019383810192508785111561501257600080fd5b83870191505b8482101561505057813561502b81614777565b73ffffffffffffffffffffffffffffffffffffffff1683529183019190830190615018565b979650505050505050565b600060c0828403121561506d57600080fd5b615075614f5a565b905061508082614ac2565b815261508e60208301614ee2565b602082015261509f60408301614ee2565b60408201526150b060608301614ee2565b6060820152608082013567ffffffffffffffff808211156150d057600080fd5b6150dc85838601614f83565b608084015260a08401359150808211156150f557600080fd5b5061510284828501614f83565b60a08301525092915050565b6000610d05368361505b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361517a5761517a61511a565b5060010190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126151b657600080fd5b830160208101925035905067ffffffffffffffff8111156151d657600080fd5b8060051b360382131561267e57600080fd5b8183526000602080850194508260005b8581101561490057813561520b81614777565b73ffffffffffffffffffffffffffffffffffffffff16875295820195908201906001016151f8565b60208082528181018390526000906040808401600586901b8501820187855b888110156153c7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08089850301855282357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18c36030181126152b457600080fd5b8b0180356152c181614748565b63ffffffff16855280880135368290037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff410181126152fe57600080fd5b85890188905201803561531081614aac565b67ffffffffffffffff1685880152615329818901614ee2565b606060ff8083168289015261533f8a8501614ee2565b92506080818416818a0152615355838601614ee2565b935060a09250818416838a015261536e81860186615181565b60c08b810152945091506153899050610100890184836151e8565b92505061539881840184615181565b93509050838783030160e08801526153b18284836151e8565b978a019796505050928701925050600101615252565b509098975050505050505050565b80820180821115610d0557610d0561511a565b81810381811115610d0557610d0561511a565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6080815260006154576080830188614c3b565b828103602084015261546a8187896153fb565b60408401959095525050606001529392505050565b813561548a81614748565b63ffffffff811690508154817fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000821617835560208401356154ca81614777565b77ffffffffffffffffffffffffffffffffffffffff000000008160201b16837fffffffffffffffff0000000000000000000000000000000000000000000000008416171784555050505050565b6020808252818101839052600090604080840186845b8781101561559757813561554081614748565b63ffffffff9081168452828601359061555882614748565b16838601528184013561556a81614777565b73ffffffffffffffffffffffffffffffffffffffff1683850152606092830192919091019060010161552d565b5090979650505050505050565b6000604082840312156155b657600080fd5b6040516040810181811067ffffffffffffffff821117156155d9576155d9614f2b565b60405282356155e781614748565b815260208301356155f781614777565b73ffffffffffffffffffffffffffffffffffffffff1660208201529392505050565b60006020828403121561562b57600080fd5b813567ffffffffffffffff81111561564257600080fd5b6126928482850161505b565b60ff8281168282160390811115610d0557610d0561511a565b600060ff8316806156a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b8060ff84160491505092915050565b63ffffffff8516815273ffffffffffffffffffffffffffffffffffffffff841660208201528260408201526080606082015260006156f16080830184614c3b565b9695505050505050565b60006020828403121561570d57600080fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff83166020820152608081016126926040830184805163ffffffff16825260209081015173ffffffffffffffffffffffffffffffffffffffff16910152565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff83166020820152606060408201526000614974606083018461490b565b61ffff8516815273ffffffffffffffffffffffffffffffffffffffff841660208201526060604082015260006156f16060830184866153fb565b6000602082840312156157f757600080fd5b815161139681614aac565b6000808585111561581257600080fd5b8386111561581f57600080fd5b5050820193919092039150565b80356020831015610d05577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b6000835161587a818460208801614c17565b83519083019061588e818360208801614c17565b01949350505050565b6060815260006158aa60608301866148ba565b6020838203818501526158bd82876148ba565b8481036040860152855180825282870193509082019060005b818110156153c7578451835293830193918301916001016158d6565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156159325780818660020360031b1b83161692505b505092915050565b7fff0000000000000000000000000000000000000000000000000000000000000081358181169160018510156159325760019490940360031b84901b1690921692915050565b60ff8181168382160190811115610d0557610d0561511a565b63ffffffff8516815267ffffffffffffffff8416602082015273ffffffffffffffffffffffffffffffffffffffff831660408201526080606082015260006156f16080830184614c3b565b600060ff821660ff81036159fa576159fa61511a565b60010192915050565b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000081358181169160148510156159325760149490940360031b84901b1690921692915050565b82815260008251615a61816020850160208701614c17565b919091016020019392505050565b6040815263ffffffff83511660408201526000602084015160a06060840152615a9b60e0840182614c3b565b90506040850151608084015267ffffffffffffffff60608601511660a084015273ffffffffffffffffffffffffffffffffffffffff60808601511660c084015282810360208401526149748185614c3b565b60008451615aff818460208901614c17565b8201838582376000930192835250909392505050565b60007fff00000000000000000000000000000000000000000000000000000000000000808c60f81b1683527fffff000000000000000000000000000000000000000000000000000000000000808c60f01b166001850152818b60f81b1660038501527fffffffffffffffffffffffffffffffff000000000000000000000000000000008a60801b166004850152818960f81b166014850152808860f01b16601585015250808660f81b16601784015250615bf6601883018560801b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000169052565b5060288101919091526048019897505050505050505056fea26474726f6e58221220ad3025b23401c455b688ba08e1fce3a20604883c1c2c62db3b44e5e568e79b2d64736f6c63430008140033",
1276
+ "linkReferences": {},
1277
+ "deployedLinkReferences": {}
1278
+ }