@tonappchain/sdk 0.7.0-rc17 → 0.7.0-rc24-test-1

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 (451) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +196 -191
  3. package/dist/artifacts/dev/index.d.ts +9 -0
  4. package/dist/artifacts/dev/index.js +52 -0
  5. package/dist/artifacts/dev/tac/addresses.d.ts +4 -0
  6. package/dist/artifacts/dev/tac/addresses.js +8 -0
  7. package/dist/artifacts/dev/tac/artifacts.d.ts +485 -0
  8. package/dist/artifacts/dev/tac/artifacts.js +26 -0
  9. package/dist/artifacts/dev/tac/endpoints.d.ts +2 -0
  10. package/dist/artifacts/dev/tac/endpoints.js +5 -0
  11. package/dist/artifacts/dev/tac/index.d.ts +6 -0
  12. package/dist/artifacts/dev/tac/index.js +43 -0
  13. package/dist/artifacts/dev/tac/internal/artifacts/contracts/core/CrossChainLayer.sol/CrossChainLayer.json +1702 -0
  14. package/dist/artifacts/dev/tac/internal/artifacts/contracts/core/Settings.sol/Settings.json +742 -0
  15. package/dist/artifacts/dev/tac/internal/artifacts/contracts/core/Structs.sol/IStructsInterface.json +1087 -0
  16. package/dist/artifacts/dev/tac/internal/artifacts/contracts/core/tokens/CrossChainLayerERC20.sol/CrossChainLayerERC20.json +457 -0
  17. package/dist/artifacts/dev/tac/internal/artifacts/contracts/core/tokens/CrossChainLayerERC721.sol/CrossChainLayerERC721.json +595 -0
  18. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/ICrossChainLayer.sol/ICrossChainLayer.json +101 -0
  19. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/ISettings.sol/ISettings.json +194 -0
  20. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/ITokenUtils.sol/ITokenUtils.json +164 -0
  21. package/dist/artifacts/dev/tac/internal/artifacts/contracts/smart-account/interfaces/ISAFactory.sol/ISAFactory.json +103 -0
  22. package/dist/artifacts/dev/tac/internal/artifacts/contracts/smart-account/interfaces/ITacSmartAccount.sol/ITacSmartAccount.json +181 -0
  23. package/dist/artifacts/dev/tac/internal/scripts/utils/encoding.d.ts +4 -0
  24. package/dist/artifacts/dev/tac/internal/scripts/utils/encoding.js +18 -0
  25. package/dist/artifacts/dev/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.d.ts +141 -0
  26. package/dist/artifacts/dev/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/ERC721.d.ts +211 -0
  27. package/dist/artifacts/dev/tac/internal/typechain-types/common.d.ts +50 -0
  28. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/core/CrossChainLayer.d.ts +554 -0
  29. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/core/Settings.d.ts +407 -0
  30. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.d.ts +356 -0
  31. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/core/TokenUtils.d.ts +373 -0
  32. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/core/tokens/CrossChainLayerERC20.d.ts +222 -0
  33. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/core/tokens/CrossChainLayerERC721.d.ts +288 -0
  34. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/smart-account/TacSAFactory.d.ts +233 -0
  35. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/smart-account/TacSmartAccount.d.ts +193 -0
  36. package/dist/artifacts/dev/tac/internal/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.d.ts +241 -0
  37. package/dist/artifacts/dev/tac/internal/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.js +327 -0
  38. package/dist/artifacts/dev/tac/internal/typechain-types/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.d.ts +337 -0
  39. package/dist/artifacts/dev/tac/internal/typechain-types/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.js +452 -0
  40. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/core/CrossChainLayer__factory.d.ts +1326 -0
  41. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/core/CrossChainLayer__factory.js +1730 -0
  42. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/core/Settings__factory.d.ts +583 -0
  43. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/core/Settings__factory.js +770 -0
  44. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/core/TokenUtils__factory.d.ts +540 -0
  45. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/core/TokenUtils__factory.js +714 -0
  46. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/core/tokens/CrossChainLayerERC20__factory.d.ts +363 -0
  47. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/core/tokens/CrossChainLayerERC20__factory.js +485 -0
  48. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/core/tokens/CrossChainLayerERC721__factory.d.ts +469 -0
  49. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/core/tokens/CrossChainLayerERC721__factory.js +623 -0
  50. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/smart-account/TacSAFactory__factory.d.ts +340 -0
  51. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/smart-account/TacSAFactory__factory.js +452 -0
  52. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/smart-account/TacSmartAccount__factory.d.ts +293 -0
  53. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/smart-account/TacSmartAccount__factory.js +393 -0
  54. package/dist/artifacts/dev/tac/multicall.d.ts +1 -0
  55. package/dist/artifacts/dev/tac/multicall.js +22 -0
  56. package/dist/artifacts/dev/tac/structs.d.ts +1 -0
  57. package/dist/artifacts/dev/tac/utils.d.ts +1 -0
  58. package/dist/artifacts/dev/tac/utils.js +5 -0
  59. package/dist/artifacts/dev/tac/wrappers.d.ts +14 -0
  60. package/dist/artifacts/dev/tac/wrappers.js +21 -0
  61. package/dist/artifacts/dev/ton/addresses.d.ts +1 -0
  62. package/dist/artifacts/dev/ton/addresses.js +5 -0
  63. package/dist/artifacts/dev/ton/artifacts.d.ts +47 -0
  64. package/dist/artifacts/dev/ton/artifacts.js +26 -0
  65. package/dist/artifacts/dev/ton/endpoints.d.ts +3 -0
  66. package/dist/artifacts/dev/ton/endpoints.js +6 -0
  67. package/dist/artifacts/dev/ton/index.d.ts +3 -0
  68. package/dist/artifacts/dev/ton/index.js +40 -0
  69. package/dist/artifacts/dev/ton/internal/build/CrossChainLayer.compiled.json +1 -0
  70. package/dist/artifacts/dev/ton/internal/build/Executor.compiled.json +1 -0
  71. package/dist/artifacts/dev/ton/internal/build/JettonMinter.compiled.json +1 -0
  72. package/dist/artifacts/dev/ton/internal/build/JettonProxy.compiled.json +1 -0
  73. package/dist/artifacts/dev/ton/internal/build/JettonWallet.compiled.json +1 -0
  74. package/dist/artifacts/dev/ton/internal/build/NFTCollection.compiled.json +1 -0
  75. package/dist/artifacts/dev/ton/internal/build/NFTItem.compiled.json +1 -0
  76. package/dist/artifacts/dev/ton/internal/build/NFTProxy.compiled.json +1 -0
  77. package/dist/artifacts/dev/ton/internal/build/Settings.compiled.json +1 -0
  78. package/dist/artifacts/dev/ton/internal/wrappers/Constants.d.ts +56 -0
  79. package/dist/artifacts/dev/ton/internal/wrappers/Constants.js +62 -0
  80. package/dist/artifacts/dev/ton/internal/wrappers/CrossChainLayer.d.ts +164 -0
  81. package/dist/artifacts/dev/ton/internal/wrappers/CrossChainLayer.js +336 -0
  82. package/dist/artifacts/dev/ton/internal/wrappers/JettonMinter.d.ts +94 -0
  83. package/dist/artifacts/dev/ton/internal/wrappers/JettonMinter.js +202 -0
  84. package/dist/artifacts/dev/ton/internal/wrappers/JettonProxy.d.ts +80 -0
  85. package/dist/artifacts/dev/ton/internal/wrappers/JettonProxy.js +158 -0
  86. package/dist/{wrappers → artifacts/dev/ton/internal/wrappers}/JettonWallet.d.ts +52 -13
  87. package/dist/artifacts/dev/ton/internal/wrappers/JettonWallet.js +193 -0
  88. package/dist/artifacts/dev/ton/internal/wrappers/NFTCollection.d.ts +75 -0
  89. package/dist/artifacts/dev/ton/internal/wrappers/NFTCollection.js +151 -0
  90. package/dist/artifacts/dev/ton/internal/wrappers/NFTItem.d.ts +82 -0
  91. package/dist/artifacts/dev/ton/internal/wrappers/NFTItem.js +148 -0
  92. package/dist/artifacts/dev/ton/internal/wrappers/NFTProxy.d.ts +84 -0
  93. package/dist/artifacts/dev/ton/internal/wrappers/NFTProxy.js +157 -0
  94. package/dist/artifacts/dev/ton/internal/wrappers/Settings.d.ts +80 -0
  95. package/dist/artifacts/dev/ton/internal/wrappers/Settings.js +152 -0
  96. package/dist/artifacts/dev/ton/internal/wrappers/utils/GasUtils.d.ts +79 -0
  97. package/dist/artifacts/dev/ton/internal/wrappers/utils/GasUtils.js +291 -0
  98. package/dist/artifacts/dev/ton/internal/wrappers/utils/MerkleRoots.d.ts +7 -0
  99. package/dist/artifacts/dev/ton/internal/wrappers/utils/MerkleRoots.js +27 -0
  100. package/dist/artifacts/dev/ton/wrappers.d.ts +8 -0
  101. package/dist/artifacts/dev/ton/wrappers.js +27 -0
  102. package/dist/artifacts/index.d.ts +4 -0
  103. package/dist/artifacts/index.js +39 -0
  104. package/dist/artifacts/mainnet/index.d.ts +9 -0
  105. package/dist/artifacts/mainnet/index.js +52 -0
  106. package/dist/artifacts/mainnet/tac/addresses.d.ts +4 -0
  107. package/dist/artifacts/mainnet/tac/addresses.js +7 -0
  108. package/dist/artifacts/mainnet/tac/artifacts.d.ts +485 -0
  109. package/dist/artifacts/mainnet/tac/artifacts.js +26 -0
  110. package/dist/artifacts/mainnet/tac/endpoints.d.ts +2 -0
  111. package/dist/artifacts/mainnet/tac/endpoints.js +5 -0
  112. package/dist/artifacts/mainnet/tac/index.d.ts +6 -0
  113. package/dist/artifacts/mainnet/tac/index.js +43 -0
  114. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/core/CrossChainLayer.sol/CrossChainLayer.json +1702 -0
  115. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/core/Settings.sol/Settings.json +742 -0
  116. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/core/Structs.sol/IStructsInterface.json +1087 -0
  117. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/core/tokens/CrossChainLayerERC20.sol/CrossChainLayerERC20.json +457 -0
  118. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/core/tokens/CrossChainLayerERC721.sol/CrossChainLayerERC721.json +595 -0
  119. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/ICrossChainLayer.sol/ICrossChainLayer.json +101 -0
  120. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/ISettings.sol/ISettings.json +194 -0
  121. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/ITokenUtils.sol/ITokenUtils.json +164 -0
  122. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/smart-account/interfaces/ISAFactory.sol/ISAFactory.json +103 -0
  123. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/smart-account/interfaces/ITacSmartAccount.sol/ITacSmartAccount.json +181 -0
  124. package/dist/artifacts/mainnet/tac/internal/scripts/utils/encoding.d.ts +4 -0
  125. package/dist/artifacts/mainnet/tac/internal/scripts/utils/encoding.js +18 -0
  126. package/dist/artifacts/mainnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.d.ts +141 -0
  127. package/dist/artifacts/mainnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/ERC721.d.ts +211 -0
  128. package/dist/artifacts/mainnet/tac/internal/typechain-types/common.d.ts +50 -0
  129. package/dist/artifacts/mainnet/tac/internal/typechain-types/common.js +2 -0
  130. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/CrossChainLayer.d.ts +554 -0
  131. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/CrossChainLayer.js +2 -0
  132. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/Settings.d.ts +407 -0
  133. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/Settings.js +2 -0
  134. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.d.ts +356 -0
  135. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.js +2 -0
  136. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/TokenUtils.d.ts +373 -0
  137. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/TokenUtils.js +2 -0
  138. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/tokens/CrossChainLayerERC20.d.ts +222 -0
  139. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/tokens/CrossChainLayerERC20.js +2 -0
  140. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/tokens/CrossChainLayerERC721.d.ts +288 -0
  141. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/tokens/CrossChainLayerERC721.js +2 -0
  142. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/smart-account/TacSAFactory.d.ts +233 -0
  143. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/smart-account/TacSAFactory.js +2 -0
  144. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/smart-account/TacSmartAccount.d.ts +193 -0
  145. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/smart-account/TacSmartAccount.js +2 -0
  146. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.d.ts +241 -0
  147. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.js +327 -0
  148. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.d.ts +337 -0
  149. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.js +452 -0
  150. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/core/CrossChainLayer__factory.d.ts +1326 -0
  151. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/core/CrossChainLayer__factory.js +1730 -0
  152. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/core/Settings__factory.d.ts +583 -0
  153. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/core/Settings__factory.js +770 -0
  154. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/core/TokenUtils__factory.d.ts +540 -0
  155. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/core/TokenUtils__factory.js +714 -0
  156. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/core/tokens/CrossChainLayerERC20__factory.d.ts +363 -0
  157. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/core/tokens/CrossChainLayerERC20__factory.js +485 -0
  158. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/core/tokens/CrossChainLayerERC721__factory.d.ts +469 -0
  159. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/core/tokens/CrossChainLayerERC721__factory.js +623 -0
  160. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/smart-account/TacSAFactory__factory.d.ts +340 -0
  161. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/smart-account/TacSAFactory__factory.js +452 -0
  162. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/smart-account/TacSmartAccount__factory.d.ts +293 -0
  163. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/smart-account/TacSmartAccount__factory.js +393 -0
  164. package/dist/artifacts/mainnet/tac/multicall.d.ts +1 -0
  165. package/dist/artifacts/mainnet/tac/multicall.js +22 -0
  166. package/dist/artifacts/mainnet/tac/structs.d.ts +1 -0
  167. package/dist/artifacts/mainnet/tac/structs.js +2 -0
  168. package/dist/artifacts/mainnet/tac/utils.d.ts +1 -0
  169. package/dist/artifacts/mainnet/tac/utils.js +5 -0
  170. package/dist/artifacts/mainnet/tac/wrappers.d.ts +14 -0
  171. package/dist/artifacts/mainnet/tac/wrappers.js +21 -0
  172. package/dist/artifacts/mainnet/ton/addresses.d.ts +1 -0
  173. package/dist/artifacts/mainnet/ton/addresses.js +4 -0
  174. package/dist/artifacts/mainnet/ton/artifacts.d.ts +47 -0
  175. package/dist/artifacts/mainnet/ton/artifacts.js +26 -0
  176. package/dist/artifacts/mainnet/ton/endpoints.d.ts +3 -0
  177. package/dist/artifacts/mainnet/ton/endpoints.js +6 -0
  178. package/dist/artifacts/mainnet/ton/index.d.ts +3 -0
  179. package/dist/artifacts/mainnet/ton/index.js +40 -0
  180. package/dist/artifacts/mainnet/ton/internal/build/CrossChainLayer.compiled.json +1 -0
  181. package/dist/artifacts/mainnet/ton/internal/build/Executor.compiled.json +1 -0
  182. package/dist/artifacts/mainnet/ton/internal/build/JettonMinter.compiled.json +1 -0
  183. package/dist/artifacts/mainnet/ton/internal/build/JettonProxy.compiled.json +1 -0
  184. package/dist/artifacts/mainnet/ton/internal/build/JettonWallet.compiled.json +1 -0
  185. package/dist/artifacts/mainnet/ton/internal/build/NFTCollection.compiled.json +1 -0
  186. package/dist/artifacts/mainnet/ton/internal/build/NFTItem.compiled.json +1 -0
  187. package/dist/artifacts/mainnet/ton/internal/build/NFTProxy.compiled.json +1 -0
  188. package/dist/artifacts/mainnet/ton/internal/build/Settings.compiled.json +1 -0
  189. package/dist/artifacts/mainnet/ton/internal/wrappers/Constants.d.ts +56 -0
  190. package/dist/artifacts/mainnet/ton/internal/wrappers/Constants.js +62 -0
  191. package/dist/artifacts/mainnet/ton/internal/wrappers/CrossChainLayer.d.ts +164 -0
  192. package/dist/artifacts/mainnet/ton/internal/wrappers/CrossChainLayer.js +336 -0
  193. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonMinter.d.ts +94 -0
  194. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonMinter.js +202 -0
  195. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonProxy.d.ts +80 -0
  196. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonProxy.js +158 -0
  197. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonWallet.d.ts +95 -0
  198. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonWallet.js +193 -0
  199. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTCollection.d.ts +75 -0
  200. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTCollection.js +151 -0
  201. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTItem.d.ts +82 -0
  202. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTItem.js +148 -0
  203. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTProxy.d.ts +84 -0
  204. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTProxy.js +157 -0
  205. package/dist/artifacts/mainnet/ton/internal/wrappers/Settings.d.ts +80 -0
  206. package/dist/artifacts/mainnet/ton/internal/wrappers/Settings.js +152 -0
  207. package/dist/artifacts/mainnet/ton/internal/wrappers/utils/GasUtils.d.ts +79 -0
  208. package/dist/artifacts/mainnet/ton/internal/wrappers/utils/GasUtils.js +291 -0
  209. package/dist/artifacts/mainnet/ton/internal/wrappers/utils/MerkleRoots.d.ts +7 -0
  210. package/dist/artifacts/mainnet/ton/internal/wrappers/utils/MerkleRoots.js +27 -0
  211. package/dist/artifacts/mainnet/ton/wrappers.d.ts +8 -0
  212. package/dist/artifacts/mainnet/ton/wrappers.js +27 -0
  213. package/dist/artifacts/testnet/index.d.ts +9 -0
  214. package/dist/artifacts/testnet/index.js +52 -0
  215. package/dist/artifacts/testnet/tac/addresses.d.ts +4 -0
  216. package/dist/artifacts/testnet/tac/addresses.js +7 -0
  217. package/dist/artifacts/testnet/tac/artifacts.d.ts +485 -0
  218. package/dist/artifacts/testnet/tac/artifacts.js +26 -0
  219. package/dist/artifacts/testnet/tac/endpoints.d.ts +2 -0
  220. package/dist/artifacts/testnet/tac/endpoints.js +5 -0
  221. package/dist/artifacts/testnet/tac/index.d.ts +6 -0
  222. package/dist/artifacts/testnet/tac/index.js +43 -0
  223. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/core/CrossChainLayer.sol/CrossChainLayer.json +1702 -0
  224. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/core/Settings.sol/Settings.json +742 -0
  225. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/core/Structs.sol/IStructsInterface.json +1087 -0
  226. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/core/tokens/CrossChainLayerERC20.sol/CrossChainLayerERC20.json +457 -0
  227. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/core/tokens/CrossChainLayerERC721.sol/CrossChainLayerERC721.json +595 -0
  228. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/ICrossChainLayer.sol/ICrossChainLayer.json +101 -0
  229. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/ISettings.sol/ISettings.json +194 -0
  230. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/ITokenUtils.sol/ITokenUtils.json +164 -0
  231. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/smart-account/interfaces/ISAFactory.sol/ISAFactory.json +103 -0
  232. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/smart-account/interfaces/ITacSmartAccount.sol/ITacSmartAccount.json +181 -0
  233. package/dist/artifacts/testnet/tac/internal/scripts/utils/encoding.d.ts +4 -0
  234. package/dist/artifacts/testnet/tac/internal/scripts/utils/encoding.js +18 -0
  235. package/dist/artifacts/testnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.d.ts +141 -0
  236. package/dist/artifacts/testnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.js +2 -0
  237. package/dist/artifacts/testnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/ERC721.d.ts +211 -0
  238. package/dist/artifacts/testnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/ERC721.js +2 -0
  239. package/dist/artifacts/testnet/tac/internal/typechain-types/common.d.ts +50 -0
  240. package/dist/artifacts/testnet/tac/internal/typechain-types/common.js +2 -0
  241. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/CrossChainLayer.d.ts +554 -0
  242. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/CrossChainLayer.js +2 -0
  243. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/Settings.d.ts +407 -0
  244. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/Settings.js +2 -0
  245. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.d.ts +356 -0
  246. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.js +2 -0
  247. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/TokenUtils.d.ts +373 -0
  248. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/TokenUtils.js +2 -0
  249. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/tokens/CrossChainLayerERC20.d.ts +222 -0
  250. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/tokens/CrossChainLayerERC20.js +2 -0
  251. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/tokens/CrossChainLayerERC721.d.ts +288 -0
  252. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/tokens/CrossChainLayerERC721.js +2 -0
  253. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/smart-account/TacSAFactory.d.ts +233 -0
  254. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/smart-account/TacSAFactory.js +2 -0
  255. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/smart-account/TacSmartAccount.d.ts +193 -0
  256. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/smart-account/TacSmartAccount.js +2 -0
  257. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.d.ts +241 -0
  258. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.js +327 -0
  259. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.d.ts +337 -0
  260. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.js +452 -0
  261. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/core/CrossChainLayer__factory.d.ts +1326 -0
  262. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/core/CrossChainLayer__factory.js +1730 -0
  263. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/core/Settings__factory.d.ts +583 -0
  264. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/core/Settings__factory.js +770 -0
  265. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/core/TokenUtils__factory.d.ts +540 -0
  266. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/core/TokenUtils__factory.js +714 -0
  267. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/core/tokens/CrossChainLayerERC20__factory.d.ts +363 -0
  268. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/core/tokens/CrossChainLayerERC20__factory.js +485 -0
  269. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/core/tokens/CrossChainLayerERC721__factory.d.ts +469 -0
  270. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/core/tokens/CrossChainLayerERC721__factory.js +623 -0
  271. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/smart-account/TacSAFactory__factory.d.ts +340 -0
  272. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/smart-account/TacSAFactory__factory.js +452 -0
  273. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/smart-account/TacSmartAccount__factory.d.ts +293 -0
  274. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/smart-account/TacSmartAccount__factory.js +393 -0
  275. package/dist/artifacts/testnet/tac/multicall.d.ts +1 -0
  276. package/dist/artifacts/testnet/tac/multicall.js +22 -0
  277. package/dist/artifacts/testnet/tac/structs.d.ts +1 -0
  278. package/dist/artifacts/testnet/tac/structs.js +2 -0
  279. package/dist/artifacts/testnet/tac/utils.d.ts +1 -0
  280. package/dist/artifacts/testnet/tac/utils.js +5 -0
  281. package/dist/artifacts/testnet/tac/wrappers.d.ts +14 -0
  282. package/dist/artifacts/testnet/tac/wrappers.js +21 -0
  283. package/dist/artifacts/testnet/ton/addresses.d.ts +1 -0
  284. package/dist/artifacts/testnet/ton/addresses.js +4 -0
  285. package/dist/artifacts/testnet/ton/artifacts.d.ts +47 -0
  286. package/dist/artifacts/testnet/ton/artifacts.js +26 -0
  287. package/dist/artifacts/testnet/ton/endpoints.d.ts +3 -0
  288. package/dist/artifacts/testnet/ton/endpoints.js +6 -0
  289. package/dist/artifacts/testnet/ton/index.d.ts +3 -0
  290. package/dist/artifacts/testnet/ton/index.js +40 -0
  291. package/dist/artifacts/testnet/ton/internal/build/CrossChainLayer.compiled.json +1 -0
  292. package/dist/artifacts/testnet/ton/internal/build/Executor.compiled.json +1 -0
  293. package/dist/artifacts/testnet/ton/internal/build/JettonMinter.compiled.json +1 -0
  294. package/dist/artifacts/testnet/ton/internal/build/JettonProxy.compiled.json +1 -0
  295. package/dist/artifacts/testnet/ton/internal/build/JettonWallet.compiled.json +1 -0
  296. package/dist/artifacts/testnet/ton/internal/build/NFTCollection.compiled.json +1 -0
  297. package/dist/artifacts/testnet/ton/internal/build/NFTItem.compiled.json +1 -0
  298. package/dist/artifacts/testnet/ton/internal/build/NFTProxy.compiled.json +1 -0
  299. package/dist/artifacts/testnet/ton/internal/build/Settings.compiled.json +1 -0
  300. package/dist/artifacts/testnet/ton/internal/wrappers/Constants.d.ts +56 -0
  301. package/dist/artifacts/testnet/ton/internal/wrappers/Constants.js +62 -0
  302. package/dist/artifacts/testnet/ton/internal/wrappers/CrossChainLayer.d.ts +164 -0
  303. package/dist/artifacts/testnet/ton/internal/wrappers/CrossChainLayer.js +336 -0
  304. package/dist/artifacts/testnet/ton/internal/wrappers/JettonMinter.d.ts +94 -0
  305. package/dist/artifacts/testnet/ton/internal/wrappers/JettonMinter.js +202 -0
  306. package/dist/artifacts/testnet/ton/internal/wrappers/JettonProxy.d.ts +80 -0
  307. package/dist/artifacts/testnet/ton/internal/wrappers/JettonProxy.js +158 -0
  308. package/dist/artifacts/testnet/ton/internal/wrappers/JettonWallet.d.ts +95 -0
  309. package/dist/artifacts/testnet/ton/internal/wrappers/JettonWallet.js +193 -0
  310. package/dist/artifacts/testnet/ton/internal/wrappers/NFTCollection.d.ts +75 -0
  311. package/dist/artifacts/testnet/ton/internal/wrappers/NFTCollection.js +151 -0
  312. package/dist/artifacts/testnet/ton/internal/wrappers/NFTItem.d.ts +82 -0
  313. package/dist/artifacts/testnet/ton/internal/wrappers/NFTItem.js +148 -0
  314. package/dist/artifacts/testnet/ton/internal/wrappers/NFTProxy.d.ts +84 -0
  315. package/dist/artifacts/testnet/ton/internal/wrappers/NFTProxy.js +157 -0
  316. package/dist/artifacts/testnet/ton/internal/wrappers/Settings.d.ts +80 -0
  317. package/dist/artifacts/testnet/ton/internal/wrappers/Settings.js +152 -0
  318. package/dist/artifacts/testnet/ton/internal/wrappers/utils/GasUtils.d.ts +79 -0
  319. package/dist/artifacts/testnet/ton/internal/wrappers/utils/GasUtils.js +291 -0
  320. package/dist/artifacts/testnet/ton/internal/wrappers/utils/MerkleRoots.d.ts +7 -0
  321. package/dist/artifacts/testnet/ton/internal/wrappers/utils/MerkleRoots.js +27 -0
  322. package/dist/artifacts/testnet/ton/wrappers.d.ts +8 -0
  323. package/dist/artifacts/testnet/ton/wrappers.js +27 -0
  324. package/dist/artifacts/wrappers.d.ts +34 -0
  325. package/dist/artifacts/wrappers.js +2 -0
  326. package/dist/{adapters → src/adapters}/contractOpener.js +6 -4
  327. package/dist/src/adapters/index.d.ts +2 -0
  328. package/dist/src/adapters/index.js +18 -0
  329. package/dist/{adapters → src/adapters}/retryableContractOpener.d.ts +2 -3
  330. package/dist/{adapters → src/adapters}/retryableContractOpener.js +10 -11
  331. package/dist/src/agnosticSdk/AgnosticSdk.d.ts +371 -0
  332. package/dist/src/agnosticSdk/AgnosticSdk.js +736 -0
  333. package/dist/{assets → src/assets}/FT.d.ts +4 -5
  334. package/dist/{assets → src/assets}/FT.js +29 -31
  335. package/dist/{assets → src/assets}/NFT.d.ts +7 -6
  336. package/dist/{assets → src/assets}/NFT.js +35 -24
  337. package/dist/{assets → src/assets}/TON.js +1 -1
  338. package/dist/{index.d.ts → src/index.d.ts} +6 -6
  339. package/dist/{index.js → src/index.js} +7 -14
  340. package/dist/src/interfaces/Asset.js +2 -0
  341. package/dist/src/interfaces/ContractOpener.js +2 -0
  342. package/dist/{interfaces → src/interfaces}/IConfiguration.d.ts +2 -2
  343. package/dist/src/interfaces/IConfiguration.js +2 -0
  344. package/dist/src/interfaces/IHttpClient.js +2 -0
  345. package/dist/src/interfaces/ILiteSequencerClient.js +2 -0
  346. package/dist/src/interfaces/ILiteSequencerClientFactory.js +2 -0
  347. package/dist/src/interfaces/ILogger.js +2 -0
  348. package/dist/src/interfaces/IOperationTracker.js +2 -0
  349. package/dist/src/interfaces/ISimulator.js +2 -0
  350. package/dist/src/interfaces/ITACTransactionManager.js +2 -0
  351. package/dist/src/interfaces/ITONTransactionManager.js +2 -0
  352. package/dist/{interfaces → src/interfaces}/ITacSDK.d.ts +4 -4
  353. package/dist/src/interfaces/ITacSDK.js +2 -0
  354. package/dist/src/interfaces/SenderAbstraction.js +2 -0
  355. package/dist/src/interfaces/WalletInstanse.js +2 -0
  356. package/dist/{sdk → src/sdk}/Configuration.d.ts +5 -5
  357. package/dist/{sdk → src/sdk}/Configuration.js +64 -22
  358. package/dist/{sdk → src/sdk}/Consts.d.ts +2 -0
  359. package/dist/{sdk → src/sdk}/Consts.js +3 -1
  360. package/dist/{sdk → src/sdk}/OperationTracker.js +14 -5
  361. package/dist/{sdk → src/sdk}/Simulator.js +2 -1
  362. package/dist/{sdk → src/sdk}/TACTransactionManager.js +11 -7
  363. package/dist/{sdk → src/sdk}/TacSdk.d.ts +3 -5
  364. package/dist/{sdk → src/sdk}/TacSdk.js +17 -8
  365. package/dist/{sdk → src/sdk}/Utils.d.ts +3 -0
  366. package/dist/{sdk → src/sdk}/Utils.js +21 -4
  367. package/dist/{structs → src/structs}/InternalStruct.d.ts +5 -5
  368. package/dist/{structs → src/structs}/Struct.d.ts +8 -26
  369. package/dist/{structs → src/structs}/Struct.js +1 -0
  370. package/package.json +103 -68
  371. package/dist/wrappers/JettonMaster.d.ts +0 -24
  372. package/dist/wrappers/JettonMaster.js +0 -53
  373. package/dist/wrappers/JettonWallet.js +0 -124
  374. package/dist/wrappers/Settings.d.ts +0 -14
  375. package/dist/wrappers/Settings.js +0 -55
  376. /package/dist/{interfaces/Asset.js → artifacts/dev/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.js} +0 -0
  377. /package/dist/{interfaces/ContractOpener.js → artifacts/dev/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/ERC721.js} +0 -0
  378. /package/dist/{interfaces/IConfiguration.js → artifacts/dev/tac/internal/typechain-types/common.js} +0 -0
  379. /package/dist/{interfaces/IHttpClient.js → artifacts/dev/tac/internal/typechain-types/contracts/core/CrossChainLayer.js} +0 -0
  380. /package/dist/{interfaces/ILiteSequencerClient.js → artifacts/dev/tac/internal/typechain-types/contracts/core/Settings.js} +0 -0
  381. /package/dist/{interfaces/ILiteSequencerClientFactory.js → artifacts/dev/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.js} +0 -0
  382. /package/dist/{interfaces/ILogger.js → artifacts/dev/tac/internal/typechain-types/contracts/core/TokenUtils.js} +0 -0
  383. /package/dist/{interfaces/IOperationTracker.js → artifacts/dev/tac/internal/typechain-types/contracts/core/tokens/CrossChainLayerERC20.js} +0 -0
  384. /package/dist/{interfaces/ISimulator.js → artifacts/dev/tac/internal/typechain-types/contracts/core/tokens/CrossChainLayerERC721.js} +0 -0
  385. /package/dist/{interfaces/ITACTransactionManager.js → artifacts/dev/tac/internal/typechain-types/contracts/smart-account/TacSAFactory.js} +0 -0
  386. /package/dist/{interfaces/ITONTransactionManager.js → artifacts/dev/tac/internal/typechain-types/contracts/smart-account/TacSmartAccount.js} +0 -0
  387. /package/dist/{interfaces/ITacSDK.js → artifacts/dev/tac/structs.js} +0 -0
  388. /package/dist/{interfaces/SenderAbstraction.js → artifacts/mainnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.js} +0 -0
  389. /package/dist/{interfaces/WalletInstanse.js → artifacts/mainnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/ERC721.js} +0 -0
  390. /package/dist/{adapters → src/adapters}/contractOpener.d.ts +0 -0
  391. /package/dist/{assets → src/assets}/AssetCache.d.ts +0 -0
  392. /package/dist/{assets → src/assets}/AssetCache.js +0 -0
  393. /package/dist/{assets → src/assets}/AssetFactory.d.ts +0 -0
  394. /package/dist/{assets → src/assets}/AssetFactory.js +0 -0
  395. /package/dist/{assets → src/assets}/TON.d.ts +0 -0
  396. /package/dist/{assets → src/assets}/index.d.ts +0 -0
  397. /package/dist/{assets → src/assets}/index.js +0 -0
  398. /package/dist/{errors → src/errors}/errors.d.ts +0 -0
  399. /package/dist/{errors → src/errors}/errors.js +0 -0
  400. /package/dist/{errors → src/errors}/index.d.ts +0 -0
  401. /package/dist/{errors → src/errors}/index.js +0 -0
  402. /package/dist/{errors → src/errors}/instances.d.ts +0 -0
  403. /package/dist/{errors → src/errors}/instances.js +0 -0
  404. /package/dist/{interfaces → src/interfaces}/Asset.d.ts +0 -0
  405. /package/dist/{interfaces → src/interfaces}/ContractOpener.d.ts +0 -0
  406. /package/dist/{interfaces → src/interfaces}/IHttpClient.d.ts +0 -0
  407. /package/dist/{interfaces → src/interfaces}/ILiteSequencerClient.d.ts +0 -0
  408. /package/dist/{interfaces → src/interfaces}/ILiteSequencerClientFactory.d.ts +0 -0
  409. /package/dist/{interfaces → src/interfaces}/ILogger.d.ts +0 -0
  410. /package/dist/{interfaces → src/interfaces}/IOperationTracker.d.ts +0 -0
  411. /package/dist/{interfaces → src/interfaces}/ISimulator.d.ts +0 -0
  412. /package/dist/{interfaces → src/interfaces}/ITACTransactionManager.d.ts +0 -0
  413. /package/dist/{interfaces → src/interfaces}/ITONTransactionManager.d.ts +0 -0
  414. /package/dist/{interfaces → src/interfaces}/SenderAbstraction.d.ts +0 -0
  415. /package/dist/{interfaces → src/interfaces}/WalletInstanse.d.ts +0 -0
  416. /package/dist/{interfaces → src/interfaces}/index.d.ts +0 -0
  417. /package/dist/{interfaces → src/interfaces}/index.js +0 -0
  418. /package/dist/{sdk → src/sdk}/AxiosHttpClient.d.ts +0 -0
  419. /package/dist/{sdk → src/sdk}/AxiosHttpClient.js +0 -0
  420. /package/dist/{sdk → src/sdk}/LiteSequencerClient.d.ts +0 -0
  421. /package/dist/{sdk → src/sdk}/LiteSequencerClient.js +0 -0
  422. /package/dist/{sdk → src/sdk}/Logger.d.ts +0 -0
  423. /package/dist/{sdk → src/sdk}/Logger.js +0 -0
  424. /package/dist/{sdk → src/sdk}/OperationTracker.d.ts +0 -0
  425. /package/dist/{sdk → src/sdk}/Simulator.d.ts +0 -0
  426. /package/dist/{sdk → src/sdk}/StartTracking.d.ts +0 -0
  427. /package/dist/{sdk → src/sdk}/StartTracking.js +0 -0
  428. /package/dist/{sdk → src/sdk}/TACTransactionManager.d.ts +0 -0
  429. /package/dist/{sdk → src/sdk}/TONTransactionManager.d.ts +0 -0
  430. /package/dist/{sdk → src/sdk}/TONTransactionManager.js +0 -0
  431. /package/dist/{sdk → src/sdk}/TxFinalizer.d.ts +0 -0
  432. /package/dist/{sdk → src/sdk}/TxFinalizer.js +0 -0
  433. /package/dist/{sdk → src/sdk}/Validator.d.ts +0 -0
  434. /package/dist/{sdk → src/sdk}/Validator.js +0 -0
  435. /package/dist/{sender → src/sender}/BatchSender.d.ts +0 -0
  436. /package/dist/{sender → src/sender}/BatchSender.js +0 -0
  437. /package/dist/{sender → src/sender}/RawSender.d.ts +0 -0
  438. /package/dist/{sender → src/sender}/RawSender.js +0 -0
  439. /package/dist/{sender → src/sender}/SenderFactory.d.ts +0 -0
  440. /package/dist/{sender → src/sender}/SenderFactory.js +0 -0
  441. /package/dist/{sender → src/sender}/TonConnectSender.d.ts +0 -0
  442. /package/dist/{sender → src/sender}/TonConnectSender.js +0 -0
  443. /package/dist/{sender → src/sender}/index.d.ts +0 -0
  444. /package/dist/{sender → src/sender}/index.js +0 -0
  445. /package/dist/{structs → src/structs}/InternalStruct.js +0 -0
  446. /package/dist/{wrappers → src/wrappers}/ContentUtils.d.ts +0 -0
  447. /package/dist/{wrappers → src/wrappers}/ContentUtils.js +0 -0
  448. /package/dist/{wrappers → src/wrappers}/HighloadQueryId.d.ts +0 -0
  449. /package/dist/{wrappers → src/wrappers}/HighloadQueryId.js +0 -0
  450. /package/dist/{wrappers → src/wrappers}/HighloadWalletV3.d.ts +0 -0
  451. /package/dist/{wrappers → src/wrappers}/HighloadWalletV3.js +0 -0
@@ -0,0 +1,1702 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "CrossChainLayer",
4
+ "sourceName": "contracts/core/CrossChainLayer.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "target",
11
+ "type": "address"
12
+ }
13
+ ],
14
+ "name": "AddressEmptyCode",
15
+ "type": "error"
16
+ },
17
+ {
18
+ "inputs": [],
19
+ "name": "AlreadyInitialized",
20
+ "type": "error"
21
+ },
22
+ {
23
+ "inputs": [
24
+ {
25
+ "internalType": "bytes32",
26
+ "name": "operationId",
27
+ "type": "bytes32"
28
+ },
29
+ {
30
+ "internalType": "bytes",
31
+ "name": "reason",
32
+ "type": "bytes"
33
+ }
34
+ ],
35
+ "name": "AppLayerCallError",
36
+ "type": "error"
37
+ },
38
+ {
39
+ "inputs": [],
40
+ "name": "AppLayerUnexpectedError",
41
+ "type": "error"
42
+ },
43
+ {
44
+ "inputs": [
45
+ {
46
+ "internalType": "address",
47
+ "name": "token",
48
+ "type": "address"
49
+ },
50
+ {
51
+ "internalType": "uint256",
52
+ "name": "amount",
53
+ "type": "uint256"
54
+ }
55
+ ],
56
+ "name": "BridgeAmountToBig",
57
+ "type": "error"
58
+ },
59
+ {
60
+ "inputs": [
61
+ {
62
+ "internalType": "uint256",
63
+ "name": "locked",
64
+ "type": "uint256"
65
+ },
66
+ {
67
+ "internalType": "uint256",
68
+ "name": "toUnlock",
69
+ "type": "uint256"
70
+ }
71
+ ],
72
+ "name": "CantUnlockNative",
73
+ "type": "error"
74
+ },
75
+ {
76
+ "inputs": [
77
+ {
78
+ "internalType": "address",
79
+ "name": "implementation",
80
+ "type": "address"
81
+ }
82
+ ],
83
+ "name": "ERC1967InvalidImplementation",
84
+ "type": "error"
85
+ },
86
+ {
87
+ "inputs": [],
88
+ "name": "ERC1967NonPayable",
89
+ "type": "error"
90
+ },
91
+ {
92
+ "inputs": [
93
+ {
94
+ "internalType": "bytes32",
95
+ "name": "operationId",
96
+ "type": "bytes32"
97
+ },
98
+ {
99
+ "internalType": "address",
100
+ "name": "sender",
101
+ "type": "address"
102
+ }
103
+ ],
104
+ "name": "ExecutorIsNotValid",
105
+ "type": "error"
106
+ },
107
+ {
108
+ "inputs": [],
109
+ "name": "ExtraDataIsNotSupported",
110
+ "type": "error"
111
+ },
112
+ {
113
+ "inputs": [],
114
+ "name": "FailedCall",
115
+ "type": "error"
116
+ },
117
+ {
118
+ "inputs": [
119
+ {
120
+ "internalType": "uint256",
121
+ "name": "needed",
122
+ "type": "uint256"
123
+ },
124
+ {
125
+ "internalType": "uint256",
126
+ "name": "attached",
127
+ "type": "uint256"
128
+ }
129
+ ],
130
+ "name": "InsufficientFeeAmount",
131
+ "type": "error"
132
+ },
133
+ {
134
+ "inputs": [
135
+ {
136
+ "internalType": "uint256",
137
+ "name": "needed",
138
+ "type": "uint256"
139
+ },
140
+ {
141
+ "internalType": "uint256",
142
+ "name": "attached",
143
+ "type": "uint256"
144
+ }
145
+ ],
146
+ "name": "InsufficientNativeAttached",
147
+ "type": "error"
148
+ },
149
+ {
150
+ "inputs": [
151
+ {
152
+ "internalType": "uint256",
153
+ "name": "needed",
154
+ "type": "uint256"
155
+ },
156
+ {
157
+ "internalType": "uint256",
158
+ "name": "available",
159
+ "type": "uint256"
160
+ }
161
+ ],
162
+ "name": "InsufficientProtocolFeeBalance",
163
+ "type": "error"
164
+ },
165
+ {
166
+ "inputs": [
167
+ {
168
+ "internalType": "uint256",
169
+ "name": "version",
170
+ "type": "uint256"
171
+ }
172
+ ],
173
+ "name": "InvalidInMessageVersion",
174
+ "type": "error"
175
+ },
176
+ {
177
+ "inputs": [],
178
+ "name": "InvalidInitialization",
179
+ "type": "error"
180
+ },
181
+ {
182
+ "inputs": [],
183
+ "name": "InvalidMerkleProof",
184
+ "type": "error"
185
+ },
186
+ {
187
+ "inputs": [
188
+ {
189
+ "internalType": "address",
190
+ "name": "",
191
+ "type": "address"
192
+ }
193
+ ],
194
+ "name": "InvalidNFTInterface",
195
+ "type": "error"
196
+ },
197
+ {
198
+ "inputs": [
199
+ {
200
+ "internalType": "uint256",
201
+ "name": "version",
202
+ "type": "uint256"
203
+ }
204
+ ],
205
+ "name": "InvalidOutMessageVersion",
206
+ "type": "error"
207
+ },
208
+ {
209
+ "inputs": [
210
+ {
211
+ "internalType": "address",
212
+ "name": "target",
213
+ "type": "address"
214
+ },
215
+ {
216
+ "internalType": "uint256",
217
+ "name": "version",
218
+ "type": "uint256"
219
+ }
220
+ ],
221
+ "name": "InvalidProxyVersion",
222
+ "type": "error"
223
+ },
224
+ {
225
+ "inputs": [
226
+ {
227
+ "internalType": "address",
228
+ "name": "target",
229
+ "type": "address"
230
+ },
231
+ {
232
+ "internalType": "uint256",
233
+ "name": "version",
234
+ "type": "uint256"
235
+ }
236
+ ],
237
+ "name": "InvalidProxyVersion",
238
+ "type": "error"
239
+ },
240
+ {
241
+ "inputs": [
242
+ {
243
+ "internalType": "bytes32",
244
+ "name": "messageHash",
245
+ "type": "bytes32"
246
+ }
247
+ ],
248
+ "name": "MessageAlreadyProcessed",
249
+ "type": "error"
250
+ },
251
+ {
252
+ "inputs": [
253
+ {
254
+ "internalType": "bytes32",
255
+ "name": "operationId",
256
+ "type": "bytes32"
257
+ },
258
+ {
259
+ "internalType": "bytes",
260
+ "name": "reason",
261
+ "type": "bytes"
262
+ }
263
+ ],
264
+ "name": "NativeFeeTransferError",
265
+ "type": "error"
266
+ },
267
+ {
268
+ "inputs": [
269
+ {
270
+ "internalType": "bytes",
271
+ "name": "reason",
272
+ "type": "bytes"
273
+ }
274
+ ],
275
+ "name": "NativeTrasferError",
276
+ "type": "error"
277
+ },
278
+ {
279
+ "inputs": [
280
+ {
281
+ "internalType": "uint64",
282
+ "name": "gasLimit",
283
+ "type": "uint64"
284
+ },
285
+ {
286
+ "internalType": "uint256",
287
+ "name": "gasLeft",
288
+ "type": "uint256"
289
+ }
290
+ ],
291
+ "name": "NotEnoughGas",
292
+ "type": "error"
293
+ },
294
+ {
295
+ "inputs": [],
296
+ "name": "NotInitializing",
297
+ "type": "error"
298
+ },
299
+ {
300
+ "inputs": [],
301
+ "name": "OnlySelfCall",
302
+ "type": "error"
303
+ },
304
+ {
305
+ "inputs": [
306
+ {
307
+ "internalType": "address",
308
+ "name": "owner",
309
+ "type": "address"
310
+ }
311
+ ],
312
+ "name": "OwnableInvalidOwner",
313
+ "type": "error"
314
+ },
315
+ {
316
+ "inputs": [
317
+ {
318
+ "internalType": "address",
319
+ "name": "account",
320
+ "type": "address"
321
+ }
322
+ ],
323
+ "name": "OwnableUnauthorizedAccount",
324
+ "type": "error"
325
+ },
326
+ {
327
+ "inputs": [
328
+ {
329
+ "internalType": "bytes",
330
+ "name": "reason",
331
+ "type": "bytes"
332
+ }
333
+ ],
334
+ "name": "ProxyCallError",
335
+ "type": "error"
336
+ },
337
+ {
338
+ "inputs": [],
339
+ "name": "RecursiveMessageProcessing",
340
+ "type": "error"
341
+ },
342
+ {
343
+ "inputs": [
344
+ {
345
+ "internalType": "address",
346
+ "name": "token",
347
+ "type": "address"
348
+ }
349
+ ],
350
+ "name": "SafeERC20FailedOperation",
351
+ "type": "error"
352
+ },
353
+ {
354
+ "inputs": [
355
+ {
356
+ "internalType": "bytes",
357
+ "name": "reason",
358
+ "type": "bytes"
359
+ }
360
+ ],
361
+ "name": "SimulationFailedError",
362
+ "type": "error"
363
+ },
364
+ {
365
+ "inputs": [
366
+ {
367
+ "internalType": "bool",
368
+ "name": "success",
369
+ "type": "bool"
370
+ },
371
+ {
372
+ "internalType": "bytes",
373
+ "name": "result",
374
+ "type": "bytes"
375
+ }
376
+ ],
377
+ "name": "SimulationFinished",
378
+ "type": "error"
379
+ },
380
+ {
381
+ "inputs": [],
382
+ "name": "SimulationIsNotInProgress",
383
+ "type": "error"
384
+ },
385
+ {
386
+ "inputs": [],
387
+ "name": "SimulationRecursiveCall",
388
+ "type": "error"
389
+ },
390
+ {
391
+ "inputs": [],
392
+ "name": "SimulationUnexpectedError",
393
+ "type": "error"
394
+ },
395
+ {
396
+ "inputs": [],
397
+ "name": "SimulationUnexpectedSuccess",
398
+ "type": "error"
399
+ },
400
+ {
401
+ "inputs": [
402
+ {
403
+ "internalType": "address",
404
+ "name": "target",
405
+ "type": "address"
406
+ }
407
+ ],
408
+ "name": "TargetIsNotTacProxy",
409
+ "type": "error"
410
+ },
411
+ {
412
+ "inputs": [
413
+ {
414
+ "internalType": "address",
415
+ "name": "target",
416
+ "type": "address"
417
+ }
418
+ ],
419
+ "name": "TargetIsNotTacProxy",
420
+ "type": "error"
421
+ },
422
+ {
423
+ "inputs": [
424
+ {
425
+ "internalType": "address",
426
+ "name": "token",
427
+ "type": "address"
428
+ }
429
+ ],
430
+ "name": "TokenNotExist",
431
+ "type": "error"
432
+ },
433
+ {
434
+ "inputs": [],
435
+ "name": "UUPSUnauthorizedCallContext",
436
+ "type": "error"
437
+ },
438
+ {
439
+ "inputs": [
440
+ {
441
+ "internalType": "bytes32",
442
+ "name": "slot",
443
+ "type": "bytes32"
444
+ }
445
+ ],
446
+ "name": "UUPSUnsupportedProxiableUUID",
447
+ "type": "error"
448
+ },
449
+ {
450
+ "inputs": [],
451
+ "name": "ZeroFeeSetting",
452
+ "type": "error"
453
+ },
454
+ {
455
+ "anonymous": false,
456
+ "inputs": [
457
+ {
458
+ "indexed": false,
459
+ "internalType": "bytes32",
460
+ "name": "operationId",
461
+ "type": "bytes32"
462
+ },
463
+ {
464
+ "indexed": false,
465
+ "internalType": "bytes",
466
+ "name": "reason",
467
+ "type": "bytes"
468
+ }
469
+ ],
470
+ "name": "AppLayerCallErrorEvent",
471
+ "type": "event"
472
+ },
473
+ {
474
+ "anonymous": false,
475
+ "inputs": [
476
+ {
477
+ "indexed": false,
478
+ "internalType": "bytes32",
479
+ "name": "operationId",
480
+ "type": "bytes32"
481
+ }
482
+ ],
483
+ "name": "InMessageProcessed",
484
+ "type": "event"
485
+ },
486
+ {
487
+ "anonymous": false,
488
+ "inputs": [
489
+ {
490
+ "indexed": false,
491
+ "internalType": "uint64",
492
+ "name": "version",
493
+ "type": "uint64"
494
+ }
495
+ ],
496
+ "name": "Initialized",
497
+ "type": "event"
498
+ },
499
+ {
500
+ "anonymous": false,
501
+ "inputs": [
502
+ {
503
+ "indexed": false,
504
+ "internalType": "uint64",
505
+ "name": "shardsKey",
506
+ "type": "uint64"
507
+ },
508
+ {
509
+ "indexed": false,
510
+ "internalType": "bytes32",
511
+ "name": "operationId",
512
+ "type": "bytes32"
513
+ },
514
+ {
515
+ "indexed": false,
516
+ "internalType": "address",
517
+ "name": "callerAddress",
518
+ "type": "address"
519
+ },
520
+ {
521
+ "indexed": false,
522
+ "internalType": "string",
523
+ "name": "targetAddress",
524
+ "type": "string"
525
+ },
526
+ {
527
+ "indexed": false,
528
+ "internalType": "string",
529
+ "name": "payload",
530
+ "type": "string"
531
+ },
532
+ {
533
+ "indexed": false,
534
+ "internalType": "uint256",
535
+ "name": "protocolFee",
536
+ "type": "uint256"
537
+ },
538
+ {
539
+ "indexed": false,
540
+ "internalType": "uint256",
541
+ "name": "executorFee",
542
+ "type": "uint256"
543
+ },
544
+ {
545
+ "indexed": false,
546
+ "internalType": "string[]",
547
+ "name": "tvmValidExecutors",
548
+ "type": "string[]"
549
+ },
550
+ {
551
+ "components": [
552
+ {
553
+ "internalType": "address",
554
+ "name": "evmAddress",
555
+ "type": "address"
556
+ },
557
+ {
558
+ "internalType": "uint256",
559
+ "name": "amount",
560
+ "type": "uint256"
561
+ }
562
+ ],
563
+ "indexed": false,
564
+ "internalType": "struct TokenAmount[]",
565
+ "name": "tokensBurned",
566
+ "type": "tuple[]"
567
+ },
568
+ {
569
+ "components": [
570
+ {
571
+ "internalType": "address",
572
+ "name": "evmAddress",
573
+ "type": "address"
574
+ },
575
+ {
576
+ "internalType": "uint256",
577
+ "name": "amount",
578
+ "type": "uint256"
579
+ }
580
+ ],
581
+ "indexed": false,
582
+ "internalType": "struct TokenAmount[]",
583
+ "name": "tokensLocked",
584
+ "type": "tuple[]"
585
+ },
586
+ {
587
+ "components": [
588
+ {
589
+ "internalType": "address",
590
+ "name": "evmAddress",
591
+ "type": "address"
592
+ },
593
+ {
594
+ "internalType": "uint256",
595
+ "name": "tokenId",
596
+ "type": "uint256"
597
+ },
598
+ {
599
+ "internalType": "uint256",
600
+ "name": "amount",
601
+ "type": "uint256"
602
+ }
603
+ ],
604
+ "indexed": false,
605
+ "internalType": "struct NFTAmount[]",
606
+ "name": "nftsBurned",
607
+ "type": "tuple[]"
608
+ },
609
+ {
610
+ "components": [
611
+ {
612
+ "internalType": "address",
613
+ "name": "evmAddress",
614
+ "type": "address"
615
+ },
616
+ {
617
+ "internalType": "uint256",
618
+ "name": "tokenId",
619
+ "type": "uint256"
620
+ },
621
+ {
622
+ "internalType": "uint256",
623
+ "name": "amount",
624
+ "type": "uint256"
625
+ }
626
+ ],
627
+ "indexed": false,
628
+ "internalType": "struct NFTAmount[]",
629
+ "name": "nftsLocked",
630
+ "type": "tuple[]"
631
+ }
632
+ ],
633
+ "name": "OutMessageProcessed",
634
+ "type": "event"
635
+ },
636
+ {
637
+ "anonymous": false,
638
+ "inputs": [
639
+ {
640
+ "indexed": true,
641
+ "internalType": "address",
642
+ "name": "previousOwner",
643
+ "type": "address"
644
+ },
645
+ {
646
+ "indexed": true,
647
+ "internalType": "address",
648
+ "name": "newOwner",
649
+ "type": "address"
650
+ }
651
+ ],
652
+ "name": "OwnershipTransferStarted",
653
+ "type": "event"
654
+ },
655
+ {
656
+ "anonymous": false,
657
+ "inputs": [
658
+ {
659
+ "indexed": true,
660
+ "internalType": "address",
661
+ "name": "previousOwner",
662
+ "type": "address"
663
+ },
664
+ {
665
+ "indexed": true,
666
+ "internalType": "address",
667
+ "name": "newOwner",
668
+ "type": "address"
669
+ }
670
+ ],
671
+ "name": "OwnershipTransferred",
672
+ "type": "event"
673
+ },
674
+ {
675
+ "anonymous": false,
676
+ "inputs": [
677
+ {
678
+ "components": [
679
+ {
680
+ "internalType": "uint64",
681
+ "name": "shardsKey",
682
+ "type": "uint64"
683
+ },
684
+ {
685
+ "internalType": "bytes32",
686
+ "name": "operationId",
687
+ "type": "bytes32"
688
+ },
689
+ {
690
+ "internalType": "address",
691
+ "name": "callerAddress",
692
+ "type": "address"
693
+ },
694
+ {
695
+ "internalType": "string",
696
+ "name": "targetAddress",
697
+ "type": "string"
698
+ },
699
+ {
700
+ "internalType": "string",
701
+ "name": "payload",
702
+ "type": "string"
703
+ },
704
+ {
705
+ "internalType": "uint256",
706
+ "name": "protocolFee",
707
+ "type": "uint256"
708
+ },
709
+ {
710
+ "internalType": "uint256",
711
+ "name": "executorFee",
712
+ "type": "uint256"
713
+ },
714
+ {
715
+ "internalType": "string[]",
716
+ "name": "tvmValidExecutors",
717
+ "type": "string[]"
718
+ },
719
+ {
720
+ "components": [
721
+ {
722
+ "internalType": "address",
723
+ "name": "evmAddress",
724
+ "type": "address"
725
+ },
726
+ {
727
+ "internalType": "uint256",
728
+ "name": "amount",
729
+ "type": "uint256"
730
+ }
731
+ ],
732
+ "internalType": "struct TokenAmount[]",
733
+ "name": "tokensBurned",
734
+ "type": "tuple[]"
735
+ },
736
+ {
737
+ "components": [
738
+ {
739
+ "internalType": "address",
740
+ "name": "evmAddress",
741
+ "type": "address"
742
+ },
743
+ {
744
+ "internalType": "uint256",
745
+ "name": "amount",
746
+ "type": "uint256"
747
+ }
748
+ ],
749
+ "internalType": "struct TokenAmount[]",
750
+ "name": "tokensLocked",
751
+ "type": "tuple[]"
752
+ },
753
+ {
754
+ "components": [
755
+ {
756
+ "internalType": "address",
757
+ "name": "evmAddress",
758
+ "type": "address"
759
+ },
760
+ {
761
+ "internalType": "uint256",
762
+ "name": "tokenId",
763
+ "type": "uint256"
764
+ },
765
+ {
766
+ "internalType": "uint256",
767
+ "name": "amount",
768
+ "type": "uint256"
769
+ }
770
+ ],
771
+ "internalType": "struct NFTAmount[]",
772
+ "name": "nftsBurned",
773
+ "type": "tuple[]"
774
+ },
775
+ {
776
+ "components": [
777
+ {
778
+ "internalType": "address",
779
+ "name": "evmAddress",
780
+ "type": "address"
781
+ },
782
+ {
783
+ "internalType": "uint256",
784
+ "name": "tokenId",
785
+ "type": "uint256"
786
+ },
787
+ {
788
+ "internalType": "uint256",
789
+ "name": "amount",
790
+ "type": "uint256"
791
+ }
792
+ ],
793
+ "internalType": "struct NFTAmount[]",
794
+ "name": "nftsLocked",
795
+ "type": "tuple[]"
796
+ }
797
+ ],
798
+ "indexed": false,
799
+ "internalType": "struct CrossChainLayer.OutMessageProcessedEventStruct[]",
800
+ "name": "outMessages",
801
+ "type": "tuple[]"
802
+ }
803
+ ],
804
+ "name": "SimulationSuccess",
805
+ "type": "event"
806
+ },
807
+ {
808
+ "anonymous": false,
809
+ "inputs": [
810
+ {
811
+ "indexed": true,
812
+ "internalType": "address",
813
+ "name": "implementation",
814
+ "type": "address"
815
+ }
816
+ ],
817
+ "name": "Upgraded",
818
+ "type": "event"
819
+ },
820
+ {
821
+ "inputs": [],
822
+ "name": "NATIVE_TOKEN_ADDRESS",
823
+ "outputs": [
824
+ {
825
+ "internalType": "address",
826
+ "name": "",
827
+ "type": "address"
828
+ }
829
+ ],
830
+ "stateMutability": "view",
831
+ "type": "function"
832
+ },
833
+ {
834
+ "inputs": [],
835
+ "name": "UPGRADE_INTERFACE_VERSION",
836
+ "outputs": [
837
+ {
838
+ "internalType": "string",
839
+ "name": "",
840
+ "type": "string"
841
+ }
842
+ ],
843
+ "stateMutability": "view",
844
+ "type": "function"
845
+ },
846
+ {
847
+ "inputs": [],
848
+ "name": "acceptOwnership",
849
+ "outputs": [],
850
+ "stateMutability": "nonpayable",
851
+ "type": "function"
852
+ },
853
+ {
854
+ "inputs": [
855
+ {
856
+ "components": [
857
+ {
858
+ "internalType": "uint64",
859
+ "name": "shardsKey",
860
+ "type": "uint64"
861
+ },
862
+ {
863
+ "internalType": "uint64",
864
+ "name": "gasLimit",
865
+ "type": "uint64"
866
+ },
867
+ {
868
+ "internalType": "bytes32",
869
+ "name": "operationId",
870
+ "type": "bytes32"
871
+ },
872
+ {
873
+ "internalType": "uint256",
874
+ "name": "timestamp",
875
+ "type": "uint256"
876
+ },
877
+ {
878
+ "internalType": "address",
879
+ "name": "target",
880
+ "type": "address"
881
+ },
882
+ {
883
+ "internalType": "string",
884
+ "name": "methodName",
885
+ "type": "string"
886
+ },
887
+ {
888
+ "internalType": "bytes",
889
+ "name": "arguments",
890
+ "type": "bytes"
891
+ },
892
+ {
893
+ "internalType": "string",
894
+ "name": "caller",
895
+ "type": "string"
896
+ },
897
+ {
898
+ "components": [
899
+ {
900
+ "internalType": "address",
901
+ "name": "evmAddress",
902
+ "type": "address"
903
+ },
904
+ {
905
+ "internalType": "uint256",
906
+ "name": "amount",
907
+ "type": "uint256"
908
+ }
909
+ ],
910
+ "internalType": "struct TokenAmount",
911
+ "name": "evmExecutorFee",
912
+ "type": "tuple"
913
+ },
914
+ {
915
+ "internalType": "address[]",
916
+ "name": "evmValidExecutors",
917
+ "type": "address[]"
918
+ },
919
+ {
920
+ "components": [
921
+ {
922
+ "internalType": "address",
923
+ "name": "evmAddress",
924
+ "type": "address"
925
+ },
926
+ {
927
+ "internalType": "uint256",
928
+ "name": "amount",
929
+ "type": "uint256"
930
+ }
931
+ ],
932
+ "internalType": "struct TokenAmount[]",
933
+ "name": "mint",
934
+ "type": "tuple[]"
935
+ },
936
+ {
937
+ "components": [
938
+ {
939
+ "internalType": "address",
940
+ "name": "evmAddress",
941
+ "type": "address"
942
+ },
943
+ {
944
+ "internalType": "uint256",
945
+ "name": "amount",
946
+ "type": "uint256"
947
+ }
948
+ ],
949
+ "internalType": "struct TokenAmount[]",
950
+ "name": "unlock",
951
+ "type": "tuple[]"
952
+ },
953
+ {
954
+ "components": [
955
+ {
956
+ "internalType": "string",
957
+ "name": "name",
958
+ "type": "string"
959
+ },
960
+ {
961
+ "internalType": "string",
962
+ "name": "symbol",
963
+ "type": "string"
964
+ },
965
+ {
966
+ "internalType": "uint8",
967
+ "name": "decimals",
968
+ "type": "uint8"
969
+ },
970
+ {
971
+ "internalType": "string",
972
+ "name": "tvmAddress",
973
+ "type": "string"
974
+ }
975
+ ],
976
+ "internalType": "struct TokenInfo[]",
977
+ "name": "meta",
978
+ "type": "tuple[]"
979
+ },
980
+ {
981
+ "components": [
982
+ {
983
+ "internalType": "address",
984
+ "name": "evmAddress",
985
+ "type": "address"
986
+ },
987
+ {
988
+ "internalType": "uint256",
989
+ "name": "tokenId",
990
+ "type": "uint256"
991
+ },
992
+ {
993
+ "internalType": "uint256",
994
+ "name": "amount",
995
+ "type": "uint256"
996
+ }
997
+ ],
998
+ "internalType": "struct NFTAmount[]",
999
+ "name": "mintNFT",
1000
+ "type": "tuple[]"
1001
+ },
1002
+ {
1003
+ "components": [
1004
+ {
1005
+ "internalType": "address",
1006
+ "name": "evmAddress",
1007
+ "type": "address"
1008
+ },
1009
+ {
1010
+ "internalType": "uint256",
1011
+ "name": "tokenId",
1012
+ "type": "uint256"
1013
+ },
1014
+ {
1015
+ "internalType": "uint256",
1016
+ "name": "amount",
1017
+ "type": "uint256"
1018
+ }
1019
+ ],
1020
+ "internalType": "struct NFTAmount[]",
1021
+ "name": "unlockNFT",
1022
+ "type": "tuple[]"
1023
+ },
1024
+ {
1025
+ "components": [
1026
+ {
1027
+ "internalType": "string",
1028
+ "name": "name",
1029
+ "type": "string"
1030
+ },
1031
+ {
1032
+ "internalType": "string",
1033
+ "name": "symbol",
1034
+ "type": "string"
1035
+ },
1036
+ {
1037
+ "internalType": "string",
1038
+ "name": "baseURI",
1039
+ "type": "string"
1040
+ },
1041
+ {
1042
+ "internalType": "string",
1043
+ "name": "tvmAddress",
1044
+ "type": "string"
1045
+ }
1046
+ ],
1047
+ "internalType": "struct NFTInfo[]",
1048
+ "name": "metaNFT",
1049
+ "type": "tuple[]"
1050
+ }
1051
+ ],
1052
+ "internalType": "struct VersionLib.UnionInMessage",
1053
+ "name": "message",
1054
+ "type": "tuple"
1055
+ },
1056
+ {
1057
+ "internalType": "bytes",
1058
+ "name": "extraData",
1059
+ "type": "bytes"
1060
+ }
1061
+ ],
1062
+ "name": "appLayerContext",
1063
+ "outputs": [],
1064
+ "stateMutability": "nonpayable",
1065
+ "type": "function"
1066
+ },
1067
+ {
1068
+ "inputs": [],
1069
+ "name": "disableInitializers",
1070
+ "outputs": [],
1071
+ "stateMutability": "nonpayable",
1072
+ "type": "function"
1073
+ },
1074
+ {
1075
+ "inputs": [],
1076
+ "name": "getCollectedProtocolFee",
1077
+ "outputs": [
1078
+ {
1079
+ "internalType": "uint256",
1080
+ "name": "",
1081
+ "type": "uint256"
1082
+ }
1083
+ ],
1084
+ "stateMutability": "view",
1085
+ "type": "function"
1086
+ },
1087
+ {
1088
+ "inputs": [
1089
+ {
1090
+ "internalType": "bytes32",
1091
+ "name": "messageHash",
1092
+ "type": "bytes32"
1093
+ }
1094
+ ],
1095
+ "name": "getInMessageState",
1096
+ "outputs": [
1097
+ {
1098
+ "internalType": "bool",
1099
+ "name": "",
1100
+ "type": "bool"
1101
+ }
1102
+ ],
1103
+ "stateMutability": "view",
1104
+ "type": "function"
1105
+ },
1106
+ {
1107
+ "inputs": [],
1108
+ "name": "getProtocolFee",
1109
+ "outputs": [
1110
+ {
1111
+ "internalType": "uint256",
1112
+ "name": "",
1113
+ "type": "uint256"
1114
+ }
1115
+ ],
1116
+ "stateMutability": "view",
1117
+ "type": "function"
1118
+ },
1119
+ {
1120
+ "inputs": [
1121
+ {
1122
+ "internalType": "address",
1123
+ "name": "adminAddress",
1124
+ "type": "address"
1125
+ },
1126
+ {
1127
+ "internalType": "address",
1128
+ "name": "consensusAddress",
1129
+ "type": "address"
1130
+ }
1131
+ ],
1132
+ "name": "initialize",
1133
+ "outputs": [],
1134
+ "stateMutability": "nonpayable",
1135
+ "type": "function"
1136
+ },
1137
+ {
1138
+ "inputs": [],
1139
+ "name": "owner",
1140
+ "outputs": [
1141
+ {
1142
+ "internalType": "address",
1143
+ "name": "",
1144
+ "type": "address"
1145
+ }
1146
+ ],
1147
+ "stateMutability": "view",
1148
+ "type": "function"
1149
+ },
1150
+ {
1151
+ "inputs": [],
1152
+ "name": "pendingOwner",
1153
+ "outputs": [
1154
+ {
1155
+ "internalType": "address",
1156
+ "name": "",
1157
+ "type": "address"
1158
+ }
1159
+ ],
1160
+ "stateMutability": "view",
1161
+ "type": "function"
1162
+ },
1163
+ {
1164
+ "inputs": [],
1165
+ "name": "proxiableUUID",
1166
+ "outputs": [
1167
+ {
1168
+ "internalType": "bytes32",
1169
+ "name": "",
1170
+ "type": "bytes32"
1171
+ }
1172
+ ],
1173
+ "stateMutability": "view",
1174
+ "type": "function"
1175
+ },
1176
+ {
1177
+ "inputs": [
1178
+ {
1179
+ "internalType": "uint256",
1180
+ "name": "messageVersion",
1181
+ "type": "uint256"
1182
+ },
1183
+ {
1184
+ "internalType": "bytes",
1185
+ "name": "encodedMessage",
1186
+ "type": "bytes"
1187
+ },
1188
+ {
1189
+ "internalType": "bytes32[]",
1190
+ "name": "merkleProof",
1191
+ "type": "bytes32[]"
1192
+ },
1193
+ {
1194
+ "internalType": "address",
1195
+ "name": "feeReceiver",
1196
+ "type": "address"
1197
+ },
1198
+ {
1199
+ "internalType": "bytes",
1200
+ "name": "extraData",
1201
+ "type": "bytes"
1202
+ }
1203
+ ],
1204
+ "name": "receiveMessage",
1205
+ "outputs": [],
1206
+ "stateMutability": "nonpayable",
1207
+ "type": "function"
1208
+ },
1209
+ {
1210
+ "inputs": [],
1211
+ "name": "renounceOwnership",
1212
+ "outputs": [],
1213
+ "stateMutability": "nonpayable",
1214
+ "type": "function"
1215
+ },
1216
+ {
1217
+ "inputs": [
1218
+ {
1219
+ "internalType": "uint256",
1220
+ "name": "messageVersion",
1221
+ "type": "uint256"
1222
+ },
1223
+ {
1224
+ "internalType": "bytes",
1225
+ "name": "encodedMessage",
1226
+ "type": "bytes"
1227
+ }
1228
+ ],
1229
+ "name": "sendMessage",
1230
+ "outputs": [],
1231
+ "stateMutability": "payable",
1232
+ "type": "function"
1233
+ },
1234
+ {
1235
+ "inputs": [
1236
+ {
1237
+ "internalType": "uint256",
1238
+ "name": "fee",
1239
+ "type": "uint256"
1240
+ }
1241
+ ],
1242
+ "name": "setProtocolFee",
1243
+ "outputs": [],
1244
+ "stateMutability": "nonpayable",
1245
+ "type": "function"
1246
+ },
1247
+ {
1248
+ "inputs": [
1249
+ {
1250
+ "internalType": "address",
1251
+ "name": "tokenUtils",
1252
+ "type": "address"
1253
+ }
1254
+ ],
1255
+ "name": "setTokenUtils",
1256
+ "outputs": [],
1257
+ "stateMutability": "nonpayable",
1258
+ "type": "function"
1259
+ },
1260
+ {
1261
+ "inputs": [
1262
+ {
1263
+ "components": [
1264
+ {
1265
+ "internalType": "uint64",
1266
+ "name": "shardsKey",
1267
+ "type": "uint64"
1268
+ },
1269
+ {
1270
+ "internalType": "uint64",
1271
+ "name": "gasLimit",
1272
+ "type": "uint64"
1273
+ },
1274
+ {
1275
+ "internalType": "bytes32",
1276
+ "name": "operationId",
1277
+ "type": "bytes32"
1278
+ },
1279
+ {
1280
+ "internalType": "uint256",
1281
+ "name": "timestamp",
1282
+ "type": "uint256"
1283
+ },
1284
+ {
1285
+ "internalType": "address",
1286
+ "name": "target",
1287
+ "type": "address"
1288
+ },
1289
+ {
1290
+ "internalType": "string",
1291
+ "name": "methodName",
1292
+ "type": "string"
1293
+ },
1294
+ {
1295
+ "internalType": "bytes",
1296
+ "name": "arguments",
1297
+ "type": "bytes"
1298
+ },
1299
+ {
1300
+ "internalType": "string",
1301
+ "name": "caller",
1302
+ "type": "string"
1303
+ },
1304
+ {
1305
+ "components": [
1306
+ {
1307
+ "internalType": "address",
1308
+ "name": "evmAddress",
1309
+ "type": "address"
1310
+ },
1311
+ {
1312
+ "internalType": "uint256",
1313
+ "name": "amount",
1314
+ "type": "uint256"
1315
+ }
1316
+ ],
1317
+ "internalType": "struct TokenAmount",
1318
+ "name": "evmExecutorFee",
1319
+ "type": "tuple"
1320
+ },
1321
+ {
1322
+ "internalType": "address[]",
1323
+ "name": "evmValidExecutors",
1324
+ "type": "address[]"
1325
+ },
1326
+ {
1327
+ "components": [
1328
+ {
1329
+ "internalType": "address",
1330
+ "name": "evmAddress",
1331
+ "type": "address"
1332
+ },
1333
+ {
1334
+ "internalType": "uint256",
1335
+ "name": "amount",
1336
+ "type": "uint256"
1337
+ }
1338
+ ],
1339
+ "internalType": "struct TokenAmount[]",
1340
+ "name": "mint",
1341
+ "type": "tuple[]"
1342
+ },
1343
+ {
1344
+ "components": [
1345
+ {
1346
+ "internalType": "address",
1347
+ "name": "evmAddress",
1348
+ "type": "address"
1349
+ },
1350
+ {
1351
+ "internalType": "uint256",
1352
+ "name": "amount",
1353
+ "type": "uint256"
1354
+ }
1355
+ ],
1356
+ "internalType": "struct TokenAmount[]",
1357
+ "name": "unlock",
1358
+ "type": "tuple[]"
1359
+ },
1360
+ {
1361
+ "components": [
1362
+ {
1363
+ "internalType": "string",
1364
+ "name": "name",
1365
+ "type": "string"
1366
+ },
1367
+ {
1368
+ "internalType": "string",
1369
+ "name": "symbol",
1370
+ "type": "string"
1371
+ },
1372
+ {
1373
+ "internalType": "uint8",
1374
+ "name": "decimals",
1375
+ "type": "uint8"
1376
+ },
1377
+ {
1378
+ "internalType": "string",
1379
+ "name": "tvmAddress",
1380
+ "type": "string"
1381
+ }
1382
+ ],
1383
+ "internalType": "struct TokenInfo[]",
1384
+ "name": "meta",
1385
+ "type": "tuple[]"
1386
+ },
1387
+ {
1388
+ "components": [
1389
+ {
1390
+ "internalType": "address",
1391
+ "name": "evmAddress",
1392
+ "type": "address"
1393
+ },
1394
+ {
1395
+ "internalType": "uint256",
1396
+ "name": "tokenId",
1397
+ "type": "uint256"
1398
+ },
1399
+ {
1400
+ "internalType": "uint256",
1401
+ "name": "amount",
1402
+ "type": "uint256"
1403
+ }
1404
+ ],
1405
+ "internalType": "struct NFTAmount[]",
1406
+ "name": "mintNFT",
1407
+ "type": "tuple[]"
1408
+ },
1409
+ {
1410
+ "components": [
1411
+ {
1412
+ "internalType": "address",
1413
+ "name": "evmAddress",
1414
+ "type": "address"
1415
+ },
1416
+ {
1417
+ "internalType": "uint256",
1418
+ "name": "tokenId",
1419
+ "type": "uint256"
1420
+ },
1421
+ {
1422
+ "internalType": "uint256",
1423
+ "name": "amount",
1424
+ "type": "uint256"
1425
+ }
1426
+ ],
1427
+ "internalType": "struct NFTAmount[]",
1428
+ "name": "unlockNFT",
1429
+ "type": "tuple[]"
1430
+ },
1431
+ {
1432
+ "components": [
1433
+ {
1434
+ "internalType": "string",
1435
+ "name": "name",
1436
+ "type": "string"
1437
+ },
1438
+ {
1439
+ "internalType": "string",
1440
+ "name": "symbol",
1441
+ "type": "string"
1442
+ },
1443
+ {
1444
+ "internalType": "string",
1445
+ "name": "baseURI",
1446
+ "type": "string"
1447
+ },
1448
+ {
1449
+ "internalType": "string",
1450
+ "name": "tvmAddress",
1451
+ "type": "string"
1452
+ }
1453
+ ],
1454
+ "internalType": "struct NFTInfo[]",
1455
+ "name": "metaNFT",
1456
+ "type": "tuple[]"
1457
+ }
1458
+ ],
1459
+ "internalType": "struct VersionLib.UnionInMessage",
1460
+ "name": "message",
1461
+ "type": "tuple"
1462
+ },
1463
+ {
1464
+ "internalType": "bytes",
1465
+ "name": "extraData",
1466
+ "type": "bytes"
1467
+ }
1468
+ ],
1469
+ "name": "simulateAppLayerContext",
1470
+ "outputs": [],
1471
+ "stateMutability": "nonpayable",
1472
+ "type": "function"
1473
+ },
1474
+ {
1475
+ "inputs": [
1476
+ {
1477
+ "internalType": "uint256",
1478
+ "name": "messageVersion",
1479
+ "type": "uint256"
1480
+ },
1481
+ {
1482
+ "internalType": "bytes",
1483
+ "name": "encodedMessage",
1484
+ "type": "bytes"
1485
+ },
1486
+ {
1487
+ "internalType": "bytes",
1488
+ "name": "extraData",
1489
+ "type": "bytes"
1490
+ },
1491
+ {
1492
+ "internalType": "bytes32",
1493
+ "name": "merkleRoot",
1494
+ "type": "bytes32"
1495
+ },
1496
+ {
1497
+ "internalType": "bytes32[]",
1498
+ "name": "merkleProof",
1499
+ "type": "bytes32[]"
1500
+ },
1501
+ {
1502
+ "internalType": "bool",
1503
+ "name": "withMessages",
1504
+ "type": "bool"
1505
+ }
1506
+ ],
1507
+ "name": "simulateReceiveMessage",
1508
+ "outputs": [
1509
+ {
1510
+ "internalType": "bool",
1511
+ "name": "simulationStatus",
1512
+ "type": "bool"
1513
+ },
1514
+ {
1515
+ "components": [
1516
+ {
1517
+ "internalType": "uint64",
1518
+ "name": "shardsKey",
1519
+ "type": "uint64"
1520
+ },
1521
+ {
1522
+ "internalType": "bytes32",
1523
+ "name": "operationId",
1524
+ "type": "bytes32"
1525
+ },
1526
+ {
1527
+ "internalType": "address",
1528
+ "name": "callerAddress",
1529
+ "type": "address"
1530
+ },
1531
+ {
1532
+ "internalType": "string",
1533
+ "name": "targetAddress",
1534
+ "type": "string"
1535
+ },
1536
+ {
1537
+ "internalType": "string",
1538
+ "name": "payload",
1539
+ "type": "string"
1540
+ },
1541
+ {
1542
+ "internalType": "uint256",
1543
+ "name": "protocolFee",
1544
+ "type": "uint256"
1545
+ },
1546
+ {
1547
+ "internalType": "uint256",
1548
+ "name": "executorFee",
1549
+ "type": "uint256"
1550
+ },
1551
+ {
1552
+ "internalType": "string[]",
1553
+ "name": "tvmValidExecutors",
1554
+ "type": "string[]"
1555
+ },
1556
+ {
1557
+ "components": [
1558
+ {
1559
+ "internalType": "address",
1560
+ "name": "evmAddress",
1561
+ "type": "address"
1562
+ },
1563
+ {
1564
+ "internalType": "uint256",
1565
+ "name": "amount",
1566
+ "type": "uint256"
1567
+ }
1568
+ ],
1569
+ "internalType": "struct TokenAmount[]",
1570
+ "name": "tokensBurned",
1571
+ "type": "tuple[]"
1572
+ },
1573
+ {
1574
+ "components": [
1575
+ {
1576
+ "internalType": "address",
1577
+ "name": "evmAddress",
1578
+ "type": "address"
1579
+ },
1580
+ {
1581
+ "internalType": "uint256",
1582
+ "name": "amount",
1583
+ "type": "uint256"
1584
+ }
1585
+ ],
1586
+ "internalType": "struct TokenAmount[]",
1587
+ "name": "tokensLocked",
1588
+ "type": "tuple[]"
1589
+ },
1590
+ {
1591
+ "components": [
1592
+ {
1593
+ "internalType": "address",
1594
+ "name": "evmAddress",
1595
+ "type": "address"
1596
+ },
1597
+ {
1598
+ "internalType": "uint256",
1599
+ "name": "tokenId",
1600
+ "type": "uint256"
1601
+ },
1602
+ {
1603
+ "internalType": "uint256",
1604
+ "name": "amount",
1605
+ "type": "uint256"
1606
+ }
1607
+ ],
1608
+ "internalType": "struct NFTAmount[]",
1609
+ "name": "nftsBurned",
1610
+ "type": "tuple[]"
1611
+ },
1612
+ {
1613
+ "components": [
1614
+ {
1615
+ "internalType": "address",
1616
+ "name": "evmAddress",
1617
+ "type": "address"
1618
+ },
1619
+ {
1620
+ "internalType": "uint256",
1621
+ "name": "tokenId",
1622
+ "type": "uint256"
1623
+ },
1624
+ {
1625
+ "internalType": "uint256",
1626
+ "name": "amount",
1627
+ "type": "uint256"
1628
+ }
1629
+ ],
1630
+ "internalType": "struct NFTAmount[]",
1631
+ "name": "nftsLocked",
1632
+ "type": "tuple[]"
1633
+ }
1634
+ ],
1635
+ "internalType": "struct CrossChainLayer.OutMessageProcessedEventStruct[]",
1636
+ "name": "outMessages",
1637
+ "type": "tuple[]"
1638
+ },
1639
+ {
1640
+ "internalType": "bytes",
1641
+ "name": "errorReason",
1642
+ "type": "bytes"
1643
+ }
1644
+ ],
1645
+ "stateMutability": "nonpayable",
1646
+ "type": "function"
1647
+ },
1648
+ {
1649
+ "inputs": [
1650
+ {
1651
+ "internalType": "address",
1652
+ "name": "newOwner",
1653
+ "type": "address"
1654
+ }
1655
+ ],
1656
+ "name": "transferOwnership",
1657
+ "outputs": [],
1658
+ "stateMutability": "nonpayable",
1659
+ "type": "function"
1660
+ },
1661
+ {
1662
+ "inputs": [
1663
+ {
1664
+ "internalType": "address",
1665
+ "name": "newImplementation",
1666
+ "type": "address"
1667
+ },
1668
+ {
1669
+ "internalType": "bytes",
1670
+ "name": "data",
1671
+ "type": "bytes"
1672
+ }
1673
+ ],
1674
+ "name": "upgradeToAndCall",
1675
+ "outputs": [],
1676
+ "stateMutability": "payable",
1677
+ "type": "function"
1678
+ },
1679
+ {
1680
+ "inputs": [
1681
+ {
1682
+ "internalType": "address payable",
1683
+ "name": "to",
1684
+ "type": "address"
1685
+ },
1686
+ {
1687
+ "internalType": "uint256",
1688
+ "name": "amount",
1689
+ "type": "uint256"
1690
+ }
1691
+ ],
1692
+ "name": "withdrawProtocolFee",
1693
+ "outputs": [],
1694
+ "stateMutability": "nonpayable",
1695
+ "type": "function"
1696
+ }
1697
+ ],
1698
+ "bytecode": "0x60a060405230608052348015601357600080fd5b50608051615c4061003d60003960008181611ab201528181611adb0152611c1c0152615c406000f3fe6080604052600436106101355760003560e01c80638421adc8116100ab578063ad3cb1cc1161006f578063ad3cb1cc1461034b578063b42156bd14610389578063df2ebdbb1461039e578063e289adcd146103c6578063e30c3978146103d9578063f2fde38b146103ee57600080fd5b80638421adc8146102a95780638da5cb5b146102c95780639856869d146102f6578063a5a4103114610316578063abe13ef71461032b57600080fd5b80634f1ef286116100fd5780634f1ef286146101e957806352d1902d146101fc5780635a1789311461021f578063715018a61461025f578063787dce3d1461027457806379ba50971461029457600080fd5b80630efbc1811461013a5780633029a8811461017257806331f4490014610194578063485cc955146101a95780634d3a2a8c146101c9575b600080fd5b34801561014657600080fd5b5061015a6101553660046134da565b61040e565b6040516101699392919061384c565b60405180910390f35b34801561017e57600080fd5b5061019261018d366004613883565b61070d565b005b3480156101a057600080fd5b506101926108e1565b3480156101b557600080fd5b506101926101c4366004613915565b610921565b3480156101d557600080fd5b506101926101e436600461394e565b610a41565b6101926101f7366004613b15565b610b2d565b34801561020857600080fd5b50610211610b4c565b604051908152602001610169565b34801561022b57600080fd5b5061024f61023a366004613b64565b60009081526004602052604090205460ff1690565b6040519015158152602001610169565b34801561026b57600080fd5b50610192610b69565b34801561028057600080fd5b5061019261028f366004613b64565b610b7b565b3480156102a057600080fd5b50610192610ba9565b3480156102b557600080fd5b506101926102c4366004613883565b610bf1565b3480156102d557600080fd5b506102de610def565b6040516001600160a01b039091168152602001610169565b34801561030257600080fd5b50610192610311366004613b7d565b610e24565b34801561032257600080fd5b50600854610211565b34801561033757600080fd5b50610192610346366004613b9a565b610e64565b34801561035757600080fd5b5061037c604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101699190613c59565b34801561039557600080fd5b50600954610211565b3480156103aa57600080fd5b506102de73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b6101926103d4366004613c6c565b61103b565b3480156103e557600080fd5b506102de611456565b3480156103fa57600080fd5b50610192610409366004613b7d565b61147f565b60006060808260055460ff16600281111561042b5761042b613c9e565b14610449576040516308f5dbab60e31b815260040160405180910390fd5b8715610468576040516311921c1b60e01b815260040160405180910390fd5b8361047f576005805460ff1916600117905561048d565b6005805460ff191660021790555b600687905560006104a18d8d8d8a8a611504565b91505080604001516002819055506001600360006101000a81548160ff021916908315150217905550600080306001600160a01b0316633029a88160e01b848e8e6040516024016104f493929190613e6f565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610532919061404b565b6000604051808303816000865af19150503d806000811461056f576040519150601f19603f3d011682016040523d82523d6000602084013e610574565b606091505b50915091508115610598576040516358a5fb7760e11b815260040160405180910390fd5b6000806105a4836116fc565b90925090506001600160e01b0319821663018ba8e960e01b146105da57604051634447e5bf60e11b815260040160405180910390fd5b6060818060200190518101906105f09190614097565b9099509050881561066c57600260055460ff16600281111561061457610614613c9e565b03610667578080602001905181019061062d919061430f565b97507f063f8c5c03902eb1e7a093a110bf896f2032e999efb1328f8248bd9c5286668a8860405161065e919061455c565b60405180910390a15b6106d3565b805160000361068e57604051634447e5bf60e11b815260040160405180910390fd5b955085600160055460ff1660028111156106aa576106aa613c9e565b036106d35786604051636e511a8560e01b81526004016106ca9190613c59565b60405180910390fd5b50506005805460ff19908116909155600060068190556003805490921690915560025550949e939d50919b50919950505050505050505050565b33301461073057604051600162ab40b560e01b0319815260040160405180910390fd5b600060055460ff16600281111561074957610749613c9e565b03610767576040516303d363a160e51b815260040160405180910390fd5b6107ac61077384614be5565b610781610140860186614bf1565b600081811061079257610792614c3a565b90506020020160208101906107a79190613b7d565b611774565b600080306001600160a01b0316638421adc860e01b8686866040516024016107d693929190615010565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610814919061404b565b6000604051808303816000865af19150503d8060008114610851576040519150601f19603f3d011682016040523d82523d6000602084013e610856565b606091505b509150915081156108c3576060600260055460ff16600281111561087c5761087c613c9e565b036108a557600760405160200161089391906153ee565b60405160208183030381529060405290505b60018160405163018ba8e960e01b81526004016106ca92919061553c565b60008160405163018ba8e960e01b81526004016106ca92919061553c565b600080516020615beb833981519152546001600160401b0316156109175760405162dc149f60e41b815260040160405180910390fd5b61091f6119c1565b565b600080516020615beb8339815191528054600160401b810460ff1615906001600160401b03166000811580156109545750825b90506000826001600160401b031660011480156109705750303b155b90508115801561097e575080155b1561099c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156109c657845460ff60401b1916600160401b1785555b6109ce611a5c565b6109d787611a64565b600180546001600160a01b0319166001600160a01b0388161790558315610a3857845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610a49611a75565b6001600160a01b0382161580610a5d575080155b15610a6757600080fd5b600954811115610a985760095460405163024693af60e11b81526106ca918391600401918252602082015260400190565b600080836001600160a01b03168360405160006040518083038185875af1925050503d8060008114610ae6576040519150601f19603f3d011682016040523d82523d6000602084013e610aeb565b606091505b509150915081610b105780604051636629334b60e11b81526004016106ca9190613c59565b8260096000828254610b229190615575565b909155505050505050565b610b35611aa7565b610b3e82611b4c565b610b488282611b54565b5050565b6000610b56611c11565b50600080516020615bcb83398151915290565b610b71611a75565b61091f6000611c5a565b610b83611a75565b80600003610ba457604051637ade8cab60e01b815260040160405180910390fd5b600855565b3380610bb3611456565b6001600160a01b031614610be55760405163118cdaa760e01b81526001600160a01b03821660048201526024016106ca565b610bee81611c5a565b50565b333014610c1457604051600162ab40b560e01b0319815260040160405180910390fd5b6000610c1f84611c92565b90506000610c3360a0860160808701613b7d565b6001600160a01b031614610de95760016060610c5260a0870187615588565b159050610d5a576000610c66878787612039565b90506000610c7760a0890189615588565b604051610c859291906155ce565b60405190819003902082610c9c60c08b018b615588565b604051602401610cae939291906155de565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050610cf260a0890160808a01613b7d565b6001600160a01b03168582604051610d0a919061404b565b60006040518083038185875af1925050503d8060008114610d47576040519150601f19603f3d011682016040523d82523d6000602084013e610d4c565b606091505b509094509250610dc6915050565b8215610dc657610d7060a0870160808801613b7d565b6001600160a01b03168360405160006040518083038185875af1925050503d8060008114610dba576040519150601f19603f3d011682016040523d82523d6000602084013e610dbf565b606091505b5090925090505b81610de65780604051634bc182c760e01b81526004016106ca9190613c59565b50505b50505050565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b610e2c611a75565b6000546001600160a01b031615610e4257600080fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b8015610e83576040516311921c1b60e01b815260040160405180910390fd5b600080610e938a8a8a8a8a611504565b91509150610ea18186611774565b6040808201516002556003805460ff19166001179055516000908190309063108435b960e31b90610eda9086908a908a90602401613e6f565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610f18919061404b565b6000604051808303816000865af19150503d8060008114610f55576040519150601f19603f3d011682016040523d82523d6000602084013e610f5a565b606091505b509150915081610fc8578051600003610f8657604051636c80903f60e11b815260040160405180910390fd5b7fd5af3a2c6eb49b701b4449e8e15dcaadba325f81791fea3dad1aaedd2b8322a9836040015182604051610fbb929190615604565b60405180910390a1611006565b7f456b8aa9be4f9cf3aca41804e224f98be7be2e03613745106623cfe38ba353808360400151604051610ffd91815260200190565b60405180910390a15b5050506000908152600460205260408120805460ff199081166001179091556003805490911690556002555050505050505050565b600061104884848461225e565b905060008060008061105985612355565b6003549397509195509350915060009060ff161561107657506002545b600260055460ff16600281111561108f5761108f613c9e565b036113e657600780546001810182556000919091528651600c9091027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688810180546001600160401b0390931667ffffffffffffffff199093169290921782557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68981018390557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68a810180546001600160a01b0319163317905560208801517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68b9091019061117b9082615664565b50604087015160048201906111909082615664565b50606087015160058201556080870151600682015560005b8760a001515181101561120157816007018860a0015182815181106111cf576111cf614c3a565b602090810291909101810151825460018101845560009384529190922001906111f89082615664565b506001016111a8565b5060005b8651811015611274578160080187828151811061122457611224614c3a565b602090810291909101810151825460018082018555600094855293839020825160029092020180546001600160a01b0319166001600160a01b039092169190911781559101519082015501611205565b5060005b85518110156112e7578160090186828151811061129757611297614c3a565b602090810291909101810151825460018082018555600094855293839020825160029092020180546001600160a01b0319166001600160a01b039092169190911781559101519082015501611278565b5060005b84518110156113655781600a0185828151811061130a5761130a614c3a565b602090810291909101810151825460018082018555600094855293839020825160039092020180546001600160a01b0319166001600160a01b03909216919091178155918101518284015560400151600290910155016112eb565b5060005b83518110156113e35781600b0184828151811061138857611388614c3a565b602090810291909101810151825460018082018555600094855293839020825160039092020180546001600160a01b0319166001600160a01b0390921691909117815591810151828401556040015160029091015501611369565b50505b7f0a97a8e7dbc39c9d683a5009b6f74ad8cc9eff62dbe7c695d6317b727dd32dd58660000151823389602001518a604001518b606001518c608001518d60a001518d8d8d8d6040516114439c9b9a99989796959493929190615722565b60405180910390a1505050505050505050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610e14565b611487611a75565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556114cb610def565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b600061150e6133b4565b60005a60035490915060ff16156115385760405163e0ecfe2560e01b815260040160405180910390fd5b86866040516115489291906155ce565b6040805191829003822060208301520160408051601f1981840301815291815281516020928301206000818152600490935291205490935060ff1615156001036115a85760405163398560f160e11b8152600481018490526024016106ca565b6115bb6115b6868686612916565b612958565b6115d85760405163582f497d60e11b815260040160405180910390fd5b6115e38888886129f7565b9150600060055460ff1660028111156115fe576115fe613c9e565b03611649578082602001516001600160401b03161115611649576020820151604051634c32b10560e11b81526001600160401b039091166004820152602481018290526044016106ca565b600060055460ff16600281111561166257611662613c9e565b036116f1576000805b836101200151518110156116c157336001600160a01b0316846101200151828151811061169a5761169a614c3a565b60200260200101516001600160a01b0316036116b957600191506116c1565b60010161166b565b50806116ef57604080840151905163cca17e3f60e01b815260048101919091523360248201526044016106ca565b505b509550959350505050565b600060606020830151915060048351036040519150808252602081018201604052602484016020830160005b602084068403811015611745578281015182820152602001611728565b50601f8316801561176b578084038381015160001960208490036101000a011916908301525b50505050915091565b60005b82610180015151811015611890576000836101800151828151811061179e5761179e614c3a565b6020908102919091010151600054606082015160405163130d191f60e11b81529293506001600160a01b039091169163261a323e916117df91600401613c59565b602060405180830381865afa1580156117fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182091906157fa565b61188757600054604051631963202b60e01b81526001600160a01b0390911690631963202b90611854908490600401615817565b600060405180830381600087803b15801561186e57600080fd5b505af1158015611882573d6000803e3d6000fd5b505050505b50600101611777565b5060005b826101e00151518110156119ad576000836101e0015182815181106118bb576118bb614c3a565b6020908102919091010151600054606082015160405163130d191f60e11b81529293506001600160a01b039091169163261a323e916118fc91600401613c59565b602060405180830381865afa158015611919573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193d91906157fa565b6119a457600054604051631adc56db60e01b81526001600160a01b0390911690631adc56db9061197190849060040161582a565b600060405180830381600087803b15801561198b57600080fd5b505af115801561199f573d6000803e3d6000fd5b505050505b50600101611894565b6119bc83610100015183612b08565b505050565b600080516020615beb8339815191528054600160401b900460ff16156119fa5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614610bee57805467ffffffffffffffff19166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150565b61091f612b79565b611a6c612b79565b610bee81612bb0565b33611a7e610def565b6001600160a01b03161461091f5760405163118cdaa760e01b81523360048201526024016106ca565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611b2e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611b22600080516020615bcb833981519152546001600160a01b031690565b6001600160a01b031614155b1561091f5760405163703e46dd60e11b815260040160405180910390fd5b610bee611a75565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611bae575060408051601f3d908101601f19168201909252611bab9181019061583d565b60015b611bd657604051634c9c8ce360e01b81526001600160a01b03831660048201526024016106ca565b600080516020615bcb8339815191528114611c0757604051632a87526960e21b8152600481018290526024016106ca565b6119bc8383612be2565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461091f5760405163703e46dd60e11b815260040160405180910390fd5b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319168155610b4882612c38565b6000805b611ca4610160840184615856565b9050811015611dc45736611cbc610160850185615856565b83818110611ccc57611ccc614c3a565b6000546040909102929092019250506001600160a01b031663f6a3d24e611cf66020840184613b7d565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611d3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5e91906157fa565b611d9457611d6f6020820182613b7d565b60405163f33436af60e01b81526001600160a01b0390911660048201526024016106ca565b611dbb611da63683900383018361589f565b611db660a0870160808801613b7d565b612b08565b50600101611c96565b5060005b611dd6610180840184615856565b9050811015611e7e5736611dee610180850185615856565b83818110611dfe57611dfe614c3a565b60400291909101915073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9050611e2b6020830183613b7d565b6001600160a01b031603611e4e57611e476020820135846158bb565b9250611e75565b611e75611e603683900383018361589f565b611e7060a0870160808801613b7d565b612ca9565b50600101611dc8565b8115611eb2574782811015611eb0576040516335b9bf5b60e01b815260048101829052602481018490526044016106ca565b505b5060005b611ec46101c08401846158ce565b9050811015611fbf5736611edc6101c08501856158ce565b83818110611eec57611eec614c3a565b6000546060909102929092019250506001600160a01b031663f6a3d24e611f166020840184613b7d565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611f5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7e91906157fa565b611f8f57611d6f6020820182613b7d565b611fb6611fa136839003830183615916565b611fb160a0870160808801613b7d565b612cd1565b50600101611eb6565b5060005b611fd16101e08401846158ce565b90508110156120335736611fe96101e08501856158ce565b83818110611ff957611ff9614c3a565b905060600201905061202a818036038101906120159190615916565b61202560a0870160808801613b7d565b612dba565b50600101611fc3565b50919050565b606060008061204e60a0870160808801613b7d565b60408051600481526024810182526020810180516001600160e01b03166303639b8b60e21b17905290516001600160a01b03929092169161208f919061404b565b600060405180830381855afa9150503d80600081146120ca576040519150601f19603f3d011682016040523d82523d6000602084013e6120cf565b606091505b50915091508115806120e057508051155b1561211a576120f560a0870160808801613b7d565b604051630553ea0d60e31b81526001600160a01b0390911660048201526024016106ca565b600081806020019051810190612130919061583d565b905080600103612218576040805160a081019091528061215360208a018a615932565b6001600160401b031681526060808a013560208301526040808b0135908301520161218160e08a018a615588565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8a01819004810282018101909252888152918101919089908990819084018382808284376000920191909152505050915250604051612202919060200161594f565b6040516020818303038152906040529350612254565b61222860a0880160808901613b7d565b604051635dddf46360e01b81526001600160a01b039091166004820152602481018290526044016106ca565b5050509392505050565b6122af60405180610100016040528060006001600160401b03168152602001606081526020016060815260200160008152602001600081526020016060815260200160608152602001606081525090565b836001036123325760006122c583850185615a31565b905060405180610100016040528082600001516001600160401b03168152602001826020015181526020018260400151815260200182606001518152602001826080015181526020018260a0015181526020018260c0015181526020018260e0015181525091505061234e565b60405163082bb94160e01b8152600481018590526024016106ca565b9392505050565b6060806060808460c00151516001600160401b038111156123785761237861397a565b6040519080825280602002602001820160405280156123bd57816020015b60408051808201909152600080825260208201528152602001906001900390816123965790505b5093508460c001515160016123d291906158bb565b6001600160401b038111156123e9576123e961397a565b60405190808252806020026020018201604052801561242e57816020015b60408051808201909152600080825260208201528152602001906001900390816124075790505b50925060008060005b8760c001515183101561259e5760008860c00151848151811061245c5761245c614c3a565b60200260200101519050806020015160000361247e5750600190920191612437565b600160801b8160200151106124be578051602082015160405163bde1a95560e01b81526001600160a01b03909216600483015260248201526044016106ca565b6000548151604051637b51e92760e11b81526001600160a01b03918216600482015291169063f6a3d24e90602401602060405180830381865afa158015612509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252d91906157fa565b156125645761253b81612e67565b8088838151811061254e5761254e614c3a565b6020908102919091010152600190910190612592565b61256d81612efe565b8087848151811061258057612580614c3a565b60209081029190910101526001909201915b50600190920191612437565b600354349060ff1661264c57600854896060015110156125e25760085460608a0151604051630961b65b60e41b8152600481019290925260248201526044016106ca565b600089606001518a608001516125f891906158bb565b90508082101561262357604051626ba64f60e51b8152600481018290523460248201526044016106ca565b61262d8183615575565b915089606001516009600082825461264591906158bb565b9091555050505b80156126e957600160801b81106126935760405163bde1a95560e01b815273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6004820152602481018290526044016106ca565b604051806040016040528073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03168152602001828152508784815181106126d7576126d7614c3a565b60209081029190910101526001909201915b90875290855260e08701515160009250829182916001600160401b038111156127145761271461397a565b60405190808252806020026020018201604052801561277257816020015b61275f604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b8152602001906001900390816127325790505b5095508860e00151516001600160401b038111156127925761279261397a565b6040519080825280602002602001820160405280156127f057816020015b6127dd604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b8152602001906001900390816127b05790505b5094505b8860e00151518410156129065760008960e00151858151811061281957612819614c3a565b60209081029190910101516000548151604051637b51e92760e11b81526001600160a01b039182166004820152929350169063f6a3d24e90602401602060405180830381865afa158015612871573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061289591906157fa565b156128cc576128a381612f28565b808785815181106128b6576128b6614c3a565b60209081029190910101526001909301926128fa565b6128d581613064565b808684815181106128e8576128e8614c3a565b60209081029190910101526001909201915b506001909301926127f4565b5090845282525092949193509190565b600081815b8481101561294f576129458287878481811061293957612939614c3a565b90506020020135613111565b915060010161291b565b50949350505050565b60008060055460ff16600281111561297257612972613c9e565b036129ea57600154604051630814964f60e41b8152600481018490526001600160a01b039091169063814964f090602401602060405180830381865afa1580156129c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e491906157fa565b92915050565b506006541490565b919050565b6129ff6133b4565b83600103612aec576000612a1583850185615b72565b905060405180610200016040528082600001516001600160401b0316815260200182602001516001600160401b03168152602001826040015181526020018260600151815260200182608001516001600160a01b031681526020018260a0015181526020018260c0015181526020018260e00151815260200182610100015181526020018261012001518152602001826101400151815260200182610160015181526020018261018001518152602001826101a001518152602001826101c001518152602001826101e0015181525091505061234e565b604051632c4ed5b360e11b8152600481018590526024016106ca565b602082015115610b4857815160208301516040516340c10f1960e01b81526001600160a01b03848116600483015260248201929092529116906340c10f19906044015b600060405180830381600087803b158015612b6557600080fd5b505af1158015610de6573d6000803e3d6000fd5b600080516020615beb83398151915254600160401b900460ff1661091f57604051631afcd79f60e31b815260040160405180910390fd5b612bb8612b79565b6001600160a01b038116610be557604051631e4fbdf760e01b8152600060048201526024016106ca565b612beb8261313d565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115612c30576119bc82826131a2565b610b48613218565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b602082015115610b485760208201518251610b48916001600160a01b03909116908390613237565b81516040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b03909116906301ffc9a790602401602060405180830381865afa158015612d1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d4391906157fa565b15612d935781516020830151604051638832e6e360e01b81526001600160a01b03848116600483015260248201929092526060604482015260006064820152911690638832e6e390608401612b4b565b8151604051630b985cbb60e21b81526001600160a01b0390911660048201526024016106ca565b81516040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b03909116906301ffc9a790602401602060405180830381865afa158015612e08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e2c91906157fa565b15612d935781516020830151604051632142170760e11b81526001600160a01b03909216916342842e0e91612b4b9130918691600401615ba6565b602081015115610bee5760208101518151612e91916001600160a01b039091169033903090613296565b80516020820151604051632770a7eb60e21b815230600482015260248101919091526001600160a01b0390911690639dc29fac906044015b600060405180830381600087803b158015612ee357600080fd5b505af1158015612ef7573d6000803e3d6000fd5b5050505050565b602081015115610bee5760208101518151610bee916001600160a01b039091169033903090613296565b80516040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b03909116906301ffc9a790602401602060405180830381865afa158015612f76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f9a91906157fa565b1561303d57805160208201516040516323b872dd60e01b81526001600160a01b03909216916323b872dd91612fd59133913091600401615ba6565b600060405180830381600087803b158015612fef57600080fd5b505af1158015613003573d6000803e3d6000fd5b505082516020840151604051630852cd8d60e31b81526001600160a01b0390921693506342966c689250612ec99160040190815260200190565b8051604051630b985cbb60e21b81526001600160a01b0390911660048201526024016106ca565b80516040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b03909116906301ffc9a790602401602060405180830381865afa1580156130b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130d691906157fa565b1561303d57805160208201516040516323b872dd60e01b81526001600160a01b03909216916323b872dd91612ec99133913091600401615ba6565b600081831061312d57600082815260208490526040902061234e565b5060009182526020526040902090565b806001600160a01b03163b60000361317357604051634c9c8ce360e01b81526001600160a01b03821660048201526024016106ca565b600080516020615bcb83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516131bf919061404b565b600060405180830381855af49150503d80600081146131fa576040519150601f19603f3d011682016040523d82523d6000602084013e6131ff565b606091505b509150915061320f8583836132be565b95945050505050565b341561091f5760405163b398979f60e01b815260040160405180910390fd5b6040516001600160a01b038381166024830152604482018390526119bc91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505061331a565b610de984856001600160a01b03166323b872dd86868660405160240161326493929190615ba6565b6060826132d3576132ce8261338b565b61234e565b81511580156132ea57506001600160a01b0384163b155b1561331357604051639996b31560e01b81526001600160a01b03851660048201526024016106ca565b508061234e565b600080602060008451602086016000885af18061333d576040513d6000823e3d81fd5b50506000513d91508115613355578060011415613362565b6001600160a01b0384163b155b15610de957604051635274afe760e01b81526001600160a01b03851660048201526024016106ca565b80511561339b5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b60408051610200810182526000808252602080830182905282840182905260608084018390526080840183905260a0840181905260c0840181905260e08401528351808501909452818452830152906101008201908152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081525090565b60008083601f84011261345257600080fd5b5081356001600160401b0381111561346957600080fd5b60208301915083602082850101111561348157600080fd5b9250929050565b60008083601f84011261349a57600080fd5b5081356001600160401b038111156134b157600080fd5b6020830191508360208260051b850101111561348157600080fd5b8015158114610bee57600080fd5b600080600080600080600080600060c08a8c0312156134f857600080fd5b8935985060208a01356001600160401b0381111561351557600080fd5b6135218c828d01613440565b90995097505060408a01356001600160401b0381111561354057600080fd5b61354c8c828d01613440565b90975095505060608a0135935060808a01356001600160401b0381111561357257600080fd5b61357e8c828d01613488565b90945092505060a08a0135613592816134cc565b809150509295985092959850929598565b60005b838110156135be5781810151838201526020016135a6565b50506000910152565b600081518084526135df8160208601602086016135a3565b601f01601f19169290920160200192915050565b600082825180855260208501945060208160051b8301016020850160005b8381101561364357601f1985840301885261362d8383516135c7565b6020988901989093509190910190600101613611565b50909695505050505050565b600081518084526020840193506020830160005b8281101561369f5761368986835180516001600160a01b03168252602090810151910152565b6040959095019460209190910190600101613663565b5093949350505050565b600081518084526020840193506020830160005b8281101561369f57815180516001600160a01b031687526020808201519088015260409081015190870152606086019550602091909101906001016136bd565b600082825180855260208501945060208160051b8301016020850160005b8381101561364357848303601f19018852815180516001600160401b0316845260208101516020850152604081015161375f60408601826001600160a01b03169052565b506060810151610180606086015261377b6101808601826135c7565b90506080820151858203608087015261379482826135c7565b91505060a082015160a086015260c082015160c086015260e082015185820360e08701526137c282826135f3565b9150506101008201518582036101008701526137de828261364f565b9150506101208201518582036101208701526137fa828261364f565b91505061014082015185820361014087015261381682826136a9565b915050610160820151915084810361016086015261383481836136a9565b60209a8b019a9095509390930192505060010161371b565b831515815260606020820152600061386760608301856136fd565b828103604084015261387981856135c7565b9695505050505050565b60008060006040848603121561389857600080fd5b83356001600160401b038111156138ae57600080fd5b840161022081870312156138c157600080fd5b925060208401356001600160401b038111156138dc57600080fd5b6138e886828701613440565b9497909650939450505050565b6001600160a01b0381168114610bee57600080fd5b80356129f2816138f5565b6000806040838503121561392857600080fd5b8235613933816138f5565b91506020830135613943816138f5565b809150509250929050565b6000806040838503121561396157600080fd5b823561396c816138f5565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156139b2576139b261397a565b60405290565b604051606081016001600160401b03811182821017156139b2576139b261397a565b60405161018081016001600160401b03811182821017156139b2576139b261397a565b604051608081016001600160401b03811182821017156139b2576139b261397a565b60405161020081016001600160401b03811182821017156139b2576139b261397a565b60405161010081016001600160401b03811182821017156139b2576139b261397a565b604051601f8201601f191681016001600160401b0381118282101715613a8d57613a8d61397a565b604052919050565b60006001600160401b03821115613aae57613aae61397a565b50601f01601f191660200190565b600082601f830112613acd57600080fd5b8135602083016000613ae6613ae184613a95565b613a65565b9050828152858383011115613afa57600080fd5b82826020830137600092810160200192909252509392505050565b60008060408385031215613b2857600080fd5b8235613b33816138f5565b915060208301356001600160401b03811115613b4e57600080fd5b613b5a85828601613abc565b9150509250929050565b600060208284031215613b7657600080fd5b5035919050565b600060208284031215613b8f57600080fd5b813561234e816138f5565b60008060008060008060008060a0898b031215613bb657600080fd5b8835975060208901356001600160401b03811115613bd357600080fd5b613bdf8b828c01613440565b90985096505060408901356001600160401b03811115613bfe57600080fd5b613c0a8b828c01613488565b9096509450506060890135613c1e816138f5565b925060808901356001600160401b03811115613c3957600080fd5b613c458b828c01613440565b999c989b5096995094979396929594505050565b60208152600061234e60208301846135c7565b600080600060408486031215613c8157600080fd5b8335925060208401356001600160401b038111156138dc57600080fd5b634e487b7160e01b600052602160045260246000fd5b600081518084526020840193506020830160005b8281101561369f5781516001600160a01b0316865260209586019590910190600101613cc8565b6000815160808452613d0460808501826135c7565b905060208301518482036020860152613d1d82826135c7565b91505060ff60408401511660408501526060830151848203606086015261320f82826135c7565b600082825180855260208501945060208160051b8301016020850160005b8381101561364357601f19858403018852613d7e838351613cef565b6020988901989093509190910190600101613d62565b6000815160808452613da960808501826135c7565b905060208301518482036020860152613dc282826135c7565b91505060408301518482036040860152613ddc82826135c7565b9150506060830151848203606086015261320f82826135c7565b600082825180855260208501945060208160051b8301016020850160005b8381101561364357601f19858403018852613e30838351613d94565b6020988901989093509190910190600101613e14565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152613e896040820185516001600160401b03169052565b60006020850151613ea560608401826001600160401b03169052565b5060408501516080830152606085015160a08301526080850151613ed460c08401826001600160a01b03169052565b5060a085015161022060e0840152613ef06102608401826135c7565b905060c0860151603f1984830301610100850152613f0e82826135c7565b91505060e0860151603f1984830301610120850152613f2d82826135c7565b915050610100860151613f5761014085018280516001600160a01b03168252602090810151910152565b50610120860151838203603f1901610180850152613f758282613cb4565b915050610140860151603f19848303016101a0850152613f95828261364f565b915050610160860151603f19848303016101c0850152613fb5828261364f565b915050610180860151603f19848303016101e0850152613fd58282613d44565b9150506101a0860151603f1984830301610200850152613ff582826136a9565b9150506101c0860151603f198483030161022085015261401582826136a9565b9150506101e0860151603f19848303016102408501526140358282613df6565b9150508281036020840152613879818587613e46565b6000825161405d8184602087016135a3565b9190910192915050565b6000614075613ae184613a95565b905082815283838301111561408957600080fd5b61234e8360208301846135a3565b600080604083850312156140aa57600080fd5b82516140b5816134cc565b60208401519092506001600160401b038111156140d157600080fd5b8301601f810185136140e257600080fd5b613b5a85825160208401614067565b60006001600160401b0382111561410a5761410a61397a565b5060051b60200190565b6001600160401b0381168114610bee57600080fd5b80516129f281614114565b80516129f2816138f5565b600082601f83011261415057600080fd5b61234e83835160208501614067565b600082601f83011261417057600080fd5b815161417e613ae1826140f1565b8082825260208201915060208360051b8601019250858311156141a057600080fd5b602085015b838110156141e15780516001600160401b038111156141c357600080fd5b6141d2886020838a010161413f565b845250602092830192016141a5565b5095945050505050565b600082601f8301126141fc57600080fd5b815161420a613ae1826140f1565b8082825260208201915060208360061b86010192508583111561422c57600080fd5b602085015b838110156141e1576040818803121561424957600080fd5b614251613990565b815161425c816138f5565b8152602082810151818301529084529290920191604001614231565b600082601f83011261428957600080fd5b8151614297613ae1826140f1565b808282526020820191506020606084028601019250858311156142b957600080fd5b602085015b838110156141e157606081880312156142d657600080fd5b6142de6139b8565b81516142e9816138f5565b8152602082810151818301526040808401519083015290845292909201916060016142be565b60006020828403121561432157600080fd5b81516001600160401b0381111561433757600080fd5b8201601f8101841361434857600080fd5b8051614356613ae1826140f1565b8082825260208201915060208360051b85010192508683111561437857600080fd5b602084015b838110156145515780516001600160401b0381111561439b57600080fd5b8501610180818a03601f190112156143b257600080fd5b6143ba6139da565b6143c660208301614129565b8152604082015160208201526143de60608301614134565b604082015260808201516001600160401b038111156143fc57600080fd5b61440b8b60208386010161413f565b60608301525060a08201516001600160401b0381111561442a57600080fd5b6144398b60208386010161413f565b60808301525060c08281015160a083015260e0830151908201526101008201516001600160401b0381111561446d57600080fd5b61447c8b60208386010161415f565b60e0830152506101208201516001600160401b0381111561449c57600080fd5b6144ab8b6020838601016141eb565b610100830152506101408201516001600160401b038111156144cc57600080fd5b6144db8b6020838601016141eb565b610120830152506101608201516001600160401b038111156144fc57600080fd5b61450b8b602083860101614278565b610140830152506101808201516001600160401b0381111561452c57600080fd5b61453b8b602083860101614278565b610160830152508452506020928301920161437d565b509695505050505050565b60208152600061234e60208301846136fd565b80356129f281614114565b60006040828403121561458c57600080fd5b614594613990565b905081356145a1816138f5565b815260209182013591810191909152919050565b600082601f8301126145c657600080fd5b81356145d4613ae1826140f1565b8082825260208201915060208360051b8601019250858311156145f657600080fd5b602085015b838110156141e157803561460e816138f5565b8352602092830192016145fb565b600082601f83011261462d57600080fd5b813561463b613ae1826140f1565b8082825260208201915060208360061b86010192508583111561465d57600080fd5b602085015b838110156141e157614674878261457a565b8352602090920191604001614662565b803560ff811681146129f257600080fd5b600082601f8301126146a657600080fd5b81356146b4613ae1826140f1565b8082825260208201915060208360051b8601019250858311156146d657600080fd5b602085015b838110156141e15780356001600160401b038111156146f957600080fd5b86016080818903601f1901121561470f57600080fd5b6147176139fd565b60208201356001600160401b0381111561473057600080fd5b61473f8a602083860101613abc565b82525060408201356001600160401b0381111561475b57600080fd5b61476a8a602083860101613abc565b60208301525061477c60608301614684565b604082015260808201356001600160401b0381111561479a57600080fd5b6147a98a602083860101613abc565b606083015250845250602092830192016146db565b6000606082840312156147d057600080fd5b6147d86139b8565b905081356147e5816138f5565b81526020828101359082015260409182013591810191909152919050565b600082601f83011261481457600080fd5b8135614822613ae1826140f1565b8082825260208201915060206060840286010192508583111561484457600080fd5b602085015b838110156141e15761485b87826147be565b8352602090920191606001614849565b600082601f83011261487c57600080fd5b813561488a613ae1826140f1565b8082825260208201915060208360051b8601019250858311156148ac57600080fd5b602085015b838110156141e15780356001600160401b038111156148cf57600080fd5b86016080818903601f190112156148e557600080fd5b6148ed6139fd565b60208201356001600160401b0381111561490657600080fd5b6149158a602083860101613abc565b82525060408201356001600160401b0381111561493157600080fd5b6149408a602083860101613abc565b60208301525060608201356001600160401b0381111561495f57600080fd5b61496e8a602083860101613abc565b60408301525060808201356001600160401b0381111561498d57600080fd5b61499c8a602083860101613abc565b606083015250845250602092830192016148b1565b600061022082840312156149c457600080fd5b6149cc613a1f565b90506149d78261456f565b81526149e56020830161456f565b60208201526040828101359082015260608083013590820152614a0a6080830161390a565b608082015260a08201356001600160401b03811115614a2857600080fd5b614a3484828501613abc565b60a08301525060c08201356001600160401b03811115614a5357600080fd5b614a5f84828501613abc565b60c08301525060e08201356001600160401b03811115614a7e57600080fd5b614a8a84828501613abc565b60e083015250614a9e83610100840161457a565b6101008201526101408201356001600160401b03811115614abe57600080fd5b614aca848285016145b5565b610120830152506101608201356001600160401b03811115614aeb57600080fd5b614af78482850161461c565b610140830152506101808201356001600160401b03811115614b1857600080fd5b614b248482850161461c565b610160830152506101a08201356001600160401b03811115614b4557600080fd5b614b5184828501614695565b610180830152506101c08201356001600160401b03811115614b7257600080fd5b614b7e84828501614803565b6101a0830152506101e08201356001600160401b03811115614b9f57600080fd5b614bab84828501614803565b6101c0830152506102008201356001600160401b03811115614bcc57600080fd5b614bd88482850161486b565b6101e08301525092915050565b60006129e436836149b1565b6000808335601e19843603018112614c0857600080fd5b8301803591506001600160401b03821115614c2257600080fd5b6020019150600581901b360382131561348157600080fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112614c6757600080fd5b83016020810192503590506001600160401b03811115614c8657600080fd5b80360382131561348157600080fd5b8035614ca0816138f5565b6001600160a01b03168252602090810135910152565b6000808335601e19843603018112614ccd57600080fd5b83016020810192503590506001600160401b03811115614cec57600080fd5b8060051b360382131561348157600080fd5b81835260208301925060008160005b8481101561369f578135614d20816138f5565b6001600160a01b031686526020958601959190910190600101614d0d565b6000808335601e19843603018112614d5557600080fd5b83016020810192503590506001600160401b03811115614d7457600080fd5b8060061b360382131561348157600080fd5b81835260208301925060008160005b8481101561369f57614da78683614c95565b6040958601959190910190600101614d95565b60008235607e19833603018112614dd057600080fd5b90910192915050565b60008383855260208501945060208460051b8201018360005b8681101561364357838303601f19018852614e0d8287614dba565b614e178182614c50565b60808652614e29608087018284613e46565b915050614e396020830183614c50565b8683036020880152614e4c838284613e46565b9250505060ff614e5e60408401614684565b166040860152614e716060830183614c50565b92508582036060870152614e86828483613e46565b60209b8c019b9096509490940193505050600101614df2565b6000808335601e19843603018112614eb657600080fd5b83016020810192503590506001600160401b03811115614ed557600080fd5b60608102360382131561348157600080fd5b81835260208301925060008160005b8481101561369f578135614f09816138f5565b6001600160a01b03168652602082810135908701526040808301359087015260609586019590910190600101614ef6565b60008383855260208501945060208460051b8201018360005b8681101561364357838303601f19018852614f6e8287614dba565b614f788182614c50565b60808652614f8a608087018284613e46565b915050614f9a6020830183614c50565b8683036020880152614fad838284613e46565b92505050614fbe6040830183614c50565b8683036040880152614fd1838284613e46565b92505050614fe26060830183614c50565b92508582036060870152614ff7828483613e46565b60209b8c019b9096509490940193505050600101614f53565b60408152615031604082016150248661456f565b6001600160401b03169052565b600061503f6020860161456f565b6001600160401b0381166060840152506040850135608083810191909152606086013560a084015261507290860161390a565b6001600160a01b031660c083015261508d60a0860186614c50565b61022060e08501526150a461026085018284613e46565b9150506150b460c0870187614c50565b848303603f19016101008601526150cc838284613e46565b925050506150dd60e0870187614c50565b848303603f19016101208601526150f5838284613e46565b9250505061510b61014084016101008801614c95565b615119610140870187614cb6565b848303603f1901610180860152615131838284614cfe565b92505050615143610160870187614d3e565b848303603f19016101a086015261515b838284614d86565b9250505061516d610180870187614d3e565b848303603f19016101c0860152615185838284614d86565b925050506151976101a0870187614cb6565b848303603f19016101e08601526151af838284614dd9565b925050506151c16101c0870187614e9f565b848303603f19016102008601526151d9838284614ee7565b925050506151eb6101e0870187614e9f565b848303603f1901610220860152615203838284614ee7565b92505050615215610200870187614cb6565b848303603f190161024086015261522d838284614f3a565b925050508281036020840152613879818587613e46565b600181811c9082168061525857607f821691505b60208210810361203357634e487b7160e01b600052602260045260246000fd5b6000815461528581615244565b80855260018216801561529f57600181146152bb576152f2565b60ff1983166020870152602082151560051b87010193506152f2565b84600052602060002060005b838110156152e95781546020828a0101526001820191506020810190506152c7565b87016020019450505b50505092915050565b600082825480855260208501945060208160051b83010184600052602060002060005b8381101561364357848303601f190188526153398383615278565b6020989098019792506001918201910161531e565b6000815480845260208401935082600052602060002060005b8281101561369f5781546001600160a01b03168652600182810154602088015260409096019560029092019101615367565b6000815480845260208401935082600052602060002060005b8281101561369f5781546001600160a01b03168652600182810154602088015260028301546040880152606090960195600390920191016153b2565b6000602082016020835280845480835260408501915060408160051b860101925085600052602060002060005b8281101561553057603f198786030184526154418561502484546001600160401b031690565b6001820154602086015260028201546001600160a01b031660408601526101806060860181905261547790860160038401615278565b858103608087015261548c8160048501615278565b9050600583015460a0870152600683015460c087015285810360e08701526154b781600785016152fb565b90508581036101008701526154cf816008850161534e565b90508581036101208701526154e7816009850161534e565b90508581036101408701526154ff81600a8501615399565b905085810361016087015261551781600b8501615399565b95505060209390930192600c919091019060010161541b565b50929695505050505050565b821515815260406020820152600061555760408301846135c7565b949350505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156129e4576129e461555f565b6000808335601e1984360301811261559f57600080fd5b8301803591506001600160401b038211156155b957600080fd5b60200191503681900382131561348157600080fd5b8183823760009101908152919050565b6040815260006155f160408301866135c7565b8281036020840152613879818587613e46565b82815260406020820152600061555760408301846135c7565b601f8211156119bc57806000526020600020601f840160051c810160208510156156445750805b601f840160051c820191505b81811015612ef75760008155600101615650565b81516001600160401b0381111561567d5761567d61397a565b6156918161568b8454615244565b8461561d565b6020601f8211600181146156c557600083156156ad5750848201515b600019600385901b1c1916600184901b178455612ef7565b600084815260208120601f198516915b828110156156f557878501518255602094850194600190920191016156d5565b50848210156157135786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6001600160401b038d1681528b6020820152615749604082018c6001600160a01b03169052565b6101806060820152600061576161018083018c6135c7565b8281036080840152615773818c6135c7565b90508960a08401528860c084015282810360e084015261579381896135f3565b90508281036101008401526157a8818861364f565b90508281036101208401526157bd818761364f565b90508281036101408401526157d281866136a9565b90508281036101608401526157e781856136a9565b9f9e505050505050505050505050505050565b60006020828403121561580c57600080fd5b815161234e816134cc565b60208152600061234e6020830184613cef565b60208152600061234e6020830184613d94565b60006020828403121561584f57600080fd5b5051919050565b6000808335601e1984360301811261586d57600080fd5b8301803591506001600160401b0382111561588757600080fd5b6020019150600681901b360382131561348157600080fd5b6000604082840312156158b157600080fd5b61234e838361457a565b808201808211156129e4576129e461555f565b6000808335601e198436030181126158e557600080fd5b8301803591506001600160401b038211156158ff57600080fd5b602001915060608102360382131561348157600080fd5b60006060828403121561592857600080fd5b61234e83836147be565b60006020828403121561594457600080fd5b813561234e81614114565b602081526001600160401b03825116602082015260208201516040820152604082015160608201526000606083015160a0608084015261599260c08401826135c7565b90506080840151601f198483030160a085015261320f82826135c7565b600082601f8301126159c057600080fd5b81356159ce613ae1826140f1565b8082825260208201915060208360051b8601019250858311156159f057600080fd5b602085015b838110156141e15780356001600160401b03811115615a1357600080fd5b615a22886020838a0101613abc565b845250602092830192016159f5565b600060208284031215615a4357600080fd5b81356001600160401b03811115615a5957600080fd5b82016101008185031215615a6c57600080fd5b615a74613a42565b615a7d8261456f565b815260208201356001600160401b03811115615a9857600080fd5b615aa486828501613abc565b60208301525060408201356001600160401b03811115615ac357600080fd5b615acf86828501613abc565b604083015250606082810135908201526080808301359082015260a08201356001600160401b03811115615b0257600080fd5b615b0e868285016159af565b60a08301525060c08201356001600160401b03811115615b2d57600080fd5b615b398682850161461c565b60c08301525060e08201356001600160401b03811115615b5857600080fd5b615b6486828501614803565b60e083015250949350505050565b600060208284031215615b8457600080fd5b81356001600160401b03811115615b9a57600080fd5b615557848285016149b1565b6001600160a01b03938416815291909216602082015260408101919091526060019056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122025f2713e1f1e46f996edfd853e5c6cbdeba506b80f80443a4807184e437914c564736f6c634300081c0033",
1699
+ "deployedBytecode": "0x6080604052600436106101355760003560e01c80638421adc8116100ab578063ad3cb1cc1161006f578063ad3cb1cc1461034b578063b42156bd14610389578063df2ebdbb1461039e578063e289adcd146103c6578063e30c3978146103d9578063f2fde38b146103ee57600080fd5b80638421adc8146102a95780638da5cb5b146102c95780639856869d146102f6578063a5a4103114610316578063abe13ef71461032b57600080fd5b80634f1ef286116100fd5780634f1ef286146101e957806352d1902d146101fc5780635a1789311461021f578063715018a61461025f578063787dce3d1461027457806379ba50971461029457600080fd5b80630efbc1811461013a5780633029a8811461017257806331f4490014610194578063485cc955146101a95780634d3a2a8c146101c9575b600080fd5b34801561014657600080fd5b5061015a6101553660046134da565b61040e565b6040516101699392919061384c565b60405180910390f35b34801561017e57600080fd5b5061019261018d366004613883565b61070d565b005b3480156101a057600080fd5b506101926108e1565b3480156101b557600080fd5b506101926101c4366004613915565b610921565b3480156101d557600080fd5b506101926101e436600461394e565b610a41565b6101926101f7366004613b15565b610b2d565b34801561020857600080fd5b50610211610b4c565b604051908152602001610169565b34801561022b57600080fd5b5061024f61023a366004613b64565b60009081526004602052604090205460ff1690565b6040519015158152602001610169565b34801561026b57600080fd5b50610192610b69565b34801561028057600080fd5b5061019261028f366004613b64565b610b7b565b3480156102a057600080fd5b50610192610ba9565b3480156102b557600080fd5b506101926102c4366004613883565b610bf1565b3480156102d557600080fd5b506102de610def565b6040516001600160a01b039091168152602001610169565b34801561030257600080fd5b50610192610311366004613b7d565b610e24565b34801561032257600080fd5b50600854610211565b34801561033757600080fd5b50610192610346366004613b9a565b610e64565b34801561035757600080fd5b5061037c604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101699190613c59565b34801561039557600080fd5b50600954610211565b3480156103aa57600080fd5b506102de73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b6101926103d4366004613c6c565b61103b565b3480156103e557600080fd5b506102de611456565b3480156103fa57600080fd5b50610192610409366004613b7d565b61147f565b60006060808260055460ff16600281111561042b5761042b613c9e565b14610449576040516308f5dbab60e31b815260040160405180910390fd5b8715610468576040516311921c1b60e01b815260040160405180910390fd5b8361047f576005805460ff1916600117905561048d565b6005805460ff191660021790555b600687905560006104a18d8d8d8a8a611504565b91505080604001516002819055506001600360006101000a81548160ff021916908315150217905550600080306001600160a01b0316633029a88160e01b848e8e6040516024016104f493929190613e6f565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610532919061404b565b6000604051808303816000865af19150503d806000811461056f576040519150601f19603f3d011682016040523d82523d6000602084013e610574565b606091505b50915091508115610598576040516358a5fb7760e11b815260040160405180910390fd5b6000806105a4836116fc565b90925090506001600160e01b0319821663018ba8e960e01b146105da57604051634447e5bf60e11b815260040160405180910390fd5b6060818060200190518101906105f09190614097565b9099509050881561066c57600260055460ff16600281111561061457610614613c9e565b03610667578080602001905181019061062d919061430f565b97507f063f8c5c03902eb1e7a093a110bf896f2032e999efb1328f8248bd9c5286668a8860405161065e919061455c565b60405180910390a15b6106d3565b805160000361068e57604051634447e5bf60e11b815260040160405180910390fd5b955085600160055460ff1660028111156106aa576106aa613c9e565b036106d35786604051636e511a8560e01b81526004016106ca9190613c59565b60405180910390fd5b50506005805460ff19908116909155600060068190556003805490921690915560025550949e939d50919b50919950505050505050505050565b33301461073057604051600162ab40b560e01b0319815260040160405180910390fd5b600060055460ff16600281111561074957610749613c9e565b03610767576040516303d363a160e51b815260040160405180910390fd5b6107ac61077384614be5565b610781610140860186614bf1565b600081811061079257610792614c3a565b90506020020160208101906107a79190613b7d565b611774565b600080306001600160a01b0316638421adc860e01b8686866040516024016107d693929190615010565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610814919061404b565b6000604051808303816000865af19150503d8060008114610851576040519150601f19603f3d011682016040523d82523d6000602084013e610856565b606091505b509150915081156108c3576060600260055460ff16600281111561087c5761087c613c9e565b036108a557600760405160200161089391906153ee565b60405160208183030381529060405290505b60018160405163018ba8e960e01b81526004016106ca92919061553c565b60008160405163018ba8e960e01b81526004016106ca92919061553c565b600080516020615beb833981519152546001600160401b0316156109175760405162dc149f60e41b815260040160405180910390fd5b61091f6119c1565b565b600080516020615beb8339815191528054600160401b810460ff1615906001600160401b03166000811580156109545750825b90506000826001600160401b031660011480156109705750303b155b90508115801561097e575080155b1561099c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156109c657845460ff60401b1916600160401b1785555b6109ce611a5c565b6109d787611a64565b600180546001600160a01b0319166001600160a01b0388161790558315610a3857845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610a49611a75565b6001600160a01b0382161580610a5d575080155b15610a6757600080fd5b600954811115610a985760095460405163024693af60e11b81526106ca918391600401918252602082015260400190565b600080836001600160a01b03168360405160006040518083038185875af1925050503d8060008114610ae6576040519150601f19603f3d011682016040523d82523d6000602084013e610aeb565b606091505b509150915081610b105780604051636629334b60e11b81526004016106ca9190613c59565b8260096000828254610b229190615575565b909155505050505050565b610b35611aa7565b610b3e82611b4c565b610b488282611b54565b5050565b6000610b56611c11565b50600080516020615bcb83398151915290565b610b71611a75565b61091f6000611c5a565b610b83611a75565b80600003610ba457604051637ade8cab60e01b815260040160405180910390fd5b600855565b3380610bb3611456565b6001600160a01b031614610be55760405163118cdaa760e01b81526001600160a01b03821660048201526024016106ca565b610bee81611c5a565b50565b333014610c1457604051600162ab40b560e01b0319815260040160405180910390fd5b6000610c1f84611c92565b90506000610c3360a0860160808701613b7d565b6001600160a01b031614610de95760016060610c5260a0870187615588565b159050610d5a576000610c66878787612039565b90506000610c7760a0890189615588565b604051610c859291906155ce565b60405190819003902082610c9c60c08b018b615588565b604051602401610cae939291906155de565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050610cf260a0890160808a01613b7d565b6001600160a01b03168582604051610d0a919061404b565b60006040518083038185875af1925050503d8060008114610d47576040519150601f19603f3d011682016040523d82523d6000602084013e610d4c565b606091505b509094509250610dc6915050565b8215610dc657610d7060a0870160808801613b7d565b6001600160a01b03168360405160006040518083038185875af1925050503d8060008114610dba576040519150601f19603f3d011682016040523d82523d6000602084013e610dbf565b606091505b5090925090505b81610de65780604051634bc182c760e01b81526004016106ca9190613c59565b50505b50505050565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b610e2c611a75565b6000546001600160a01b031615610e4257600080fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b8015610e83576040516311921c1b60e01b815260040160405180910390fd5b600080610e938a8a8a8a8a611504565b91509150610ea18186611774565b6040808201516002556003805460ff19166001179055516000908190309063108435b960e31b90610eda9086908a908a90602401613e6f565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610f18919061404b565b6000604051808303816000865af19150503d8060008114610f55576040519150601f19603f3d011682016040523d82523d6000602084013e610f5a565b606091505b509150915081610fc8578051600003610f8657604051636c80903f60e11b815260040160405180910390fd5b7fd5af3a2c6eb49b701b4449e8e15dcaadba325f81791fea3dad1aaedd2b8322a9836040015182604051610fbb929190615604565b60405180910390a1611006565b7f456b8aa9be4f9cf3aca41804e224f98be7be2e03613745106623cfe38ba353808360400151604051610ffd91815260200190565b60405180910390a15b5050506000908152600460205260408120805460ff199081166001179091556003805490911690556002555050505050505050565b600061104884848461225e565b905060008060008061105985612355565b6003549397509195509350915060009060ff161561107657506002545b600260055460ff16600281111561108f5761108f613c9e565b036113e657600780546001810182556000919091528651600c9091027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688810180546001600160401b0390931667ffffffffffffffff199093169290921782557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68981018390557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68a810180546001600160a01b0319163317905560208801517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68b9091019061117b9082615664565b50604087015160048201906111909082615664565b50606087015160058201556080870151600682015560005b8760a001515181101561120157816007018860a0015182815181106111cf576111cf614c3a565b602090810291909101810151825460018101845560009384529190922001906111f89082615664565b506001016111a8565b5060005b8651811015611274578160080187828151811061122457611224614c3a565b602090810291909101810151825460018082018555600094855293839020825160029092020180546001600160a01b0319166001600160a01b039092169190911781559101519082015501611205565b5060005b85518110156112e7578160090186828151811061129757611297614c3a565b602090810291909101810151825460018082018555600094855293839020825160029092020180546001600160a01b0319166001600160a01b039092169190911781559101519082015501611278565b5060005b84518110156113655781600a0185828151811061130a5761130a614c3a565b602090810291909101810151825460018082018555600094855293839020825160039092020180546001600160a01b0319166001600160a01b03909216919091178155918101518284015560400151600290910155016112eb565b5060005b83518110156113e35781600b0184828151811061138857611388614c3a565b602090810291909101810151825460018082018555600094855293839020825160039092020180546001600160a01b0319166001600160a01b0390921691909117815591810151828401556040015160029091015501611369565b50505b7f0a97a8e7dbc39c9d683a5009b6f74ad8cc9eff62dbe7c695d6317b727dd32dd58660000151823389602001518a604001518b606001518c608001518d60a001518d8d8d8d6040516114439c9b9a99989796959493929190615722565b60405180910390a1505050505050505050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610e14565b611487611a75565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556114cb610def565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b600061150e6133b4565b60005a60035490915060ff16156115385760405163e0ecfe2560e01b815260040160405180910390fd5b86866040516115489291906155ce565b6040805191829003822060208301520160408051601f1981840301815291815281516020928301206000818152600490935291205490935060ff1615156001036115a85760405163398560f160e11b8152600481018490526024016106ca565b6115bb6115b6868686612916565b612958565b6115d85760405163582f497d60e11b815260040160405180910390fd5b6115e38888886129f7565b9150600060055460ff1660028111156115fe576115fe613c9e565b03611649578082602001516001600160401b03161115611649576020820151604051634c32b10560e11b81526001600160401b039091166004820152602481018290526044016106ca565b600060055460ff16600281111561166257611662613c9e565b036116f1576000805b836101200151518110156116c157336001600160a01b0316846101200151828151811061169a5761169a614c3a565b60200260200101516001600160a01b0316036116b957600191506116c1565b60010161166b565b50806116ef57604080840151905163cca17e3f60e01b815260048101919091523360248201526044016106ca565b505b509550959350505050565b600060606020830151915060048351036040519150808252602081018201604052602484016020830160005b602084068403811015611745578281015182820152602001611728565b50601f8316801561176b578084038381015160001960208490036101000a011916908301525b50505050915091565b60005b82610180015151811015611890576000836101800151828151811061179e5761179e614c3a565b6020908102919091010151600054606082015160405163130d191f60e11b81529293506001600160a01b039091169163261a323e916117df91600401613c59565b602060405180830381865afa1580156117fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182091906157fa565b61188757600054604051631963202b60e01b81526001600160a01b0390911690631963202b90611854908490600401615817565b600060405180830381600087803b15801561186e57600080fd5b505af1158015611882573d6000803e3d6000fd5b505050505b50600101611777565b5060005b826101e00151518110156119ad576000836101e0015182815181106118bb576118bb614c3a565b6020908102919091010151600054606082015160405163130d191f60e11b81529293506001600160a01b039091169163261a323e916118fc91600401613c59565b602060405180830381865afa158015611919573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193d91906157fa565b6119a457600054604051631adc56db60e01b81526001600160a01b0390911690631adc56db9061197190849060040161582a565b600060405180830381600087803b15801561198b57600080fd5b505af115801561199f573d6000803e3d6000fd5b505050505b50600101611894565b6119bc83610100015183612b08565b505050565b600080516020615beb8339815191528054600160401b900460ff16156119fa5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614610bee57805467ffffffffffffffff19166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150565b61091f612b79565b611a6c612b79565b610bee81612bb0565b33611a7e610def565b6001600160a01b03161461091f5760405163118cdaa760e01b81523360048201526024016106ca565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611b2e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611b22600080516020615bcb833981519152546001600160a01b031690565b6001600160a01b031614155b1561091f5760405163703e46dd60e11b815260040160405180910390fd5b610bee611a75565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611bae575060408051601f3d908101601f19168201909252611bab9181019061583d565b60015b611bd657604051634c9c8ce360e01b81526001600160a01b03831660048201526024016106ca565b600080516020615bcb8339815191528114611c0757604051632a87526960e21b8152600481018290526024016106ca565b6119bc8383612be2565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461091f5760405163703e46dd60e11b815260040160405180910390fd5b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319168155610b4882612c38565b6000805b611ca4610160840184615856565b9050811015611dc45736611cbc610160850185615856565b83818110611ccc57611ccc614c3a565b6000546040909102929092019250506001600160a01b031663f6a3d24e611cf66020840184613b7d565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611d3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5e91906157fa565b611d9457611d6f6020820182613b7d565b60405163f33436af60e01b81526001600160a01b0390911660048201526024016106ca565b611dbb611da63683900383018361589f565b611db660a0870160808801613b7d565b612b08565b50600101611c96565b5060005b611dd6610180840184615856565b9050811015611e7e5736611dee610180850185615856565b83818110611dfe57611dfe614c3a565b60400291909101915073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9050611e2b6020830183613b7d565b6001600160a01b031603611e4e57611e476020820135846158bb565b9250611e75565b611e75611e603683900383018361589f565b611e7060a0870160808801613b7d565b612ca9565b50600101611dc8565b8115611eb2574782811015611eb0576040516335b9bf5b60e01b815260048101829052602481018490526044016106ca565b505b5060005b611ec46101c08401846158ce565b9050811015611fbf5736611edc6101c08501856158ce565b83818110611eec57611eec614c3a565b6000546060909102929092019250506001600160a01b031663f6a3d24e611f166020840184613b7d565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611f5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7e91906157fa565b611f8f57611d6f6020820182613b7d565b611fb6611fa136839003830183615916565b611fb160a0870160808801613b7d565b612cd1565b50600101611eb6565b5060005b611fd16101e08401846158ce565b90508110156120335736611fe96101e08501856158ce565b83818110611ff957611ff9614c3a565b905060600201905061202a818036038101906120159190615916565b61202560a0870160808801613b7d565b612dba565b50600101611fc3565b50919050565b606060008061204e60a0870160808801613b7d565b60408051600481526024810182526020810180516001600160e01b03166303639b8b60e21b17905290516001600160a01b03929092169161208f919061404b565b600060405180830381855afa9150503d80600081146120ca576040519150601f19603f3d011682016040523d82523d6000602084013e6120cf565b606091505b50915091508115806120e057508051155b1561211a576120f560a0870160808801613b7d565b604051630553ea0d60e31b81526001600160a01b0390911660048201526024016106ca565b600081806020019051810190612130919061583d565b905080600103612218576040805160a081019091528061215360208a018a615932565b6001600160401b031681526060808a013560208301526040808b0135908301520161218160e08a018a615588565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8a01819004810282018101909252888152918101919089908990819084018382808284376000920191909152505050915250604051612202919060200161594f565b6040516020818303038152906040529350612254565b61222860a0880160808901613b7d565b604051635dddf46360e01b81526001600160a01b039091166004820152602481018290526044016106ca565b5050509392505050565b6122af60405180610100016040528060006001600160401b03168152602001606081526020016060815260200160008152602001600081526020016060815260200160608152602001606081525090565b836001036123325760006122c583850185615a31565b905060405180610100016040528082600001516001600160401b03168152602001826020015181526020018260400151815260200182606001518152602001826080015181526020018260a0015181526020018260c0015181526020018260e0015181525091505061234e565b60405163082bb94160e01b8152600481018590526024016106ca565b9392505050565b6060806060808460c00151516001600160401b038111156123785761237861397a565b6040519080825280602002602001820160405280156123bd57816020015b60408051808201909152600080825260208201528152602001906001900390816123965790505b5093508460c001515160016123d291906158bb565b6001600160401b038111156123e9576123e961397a565b60405190808252806020026020018201604052801561242e57816020015b60408051808201909152600080825260208201528152602001906001900390816124075790505b50925060008060005b8760c001515183101561259e5760008860c00151848151811061245c5761245c614c3a565b60200260200101519050806020015160000361247e5750600190920191612437565b600160801b8160200151106124be578051602082015160405163bde1a95560e01b81526001600160a01b03909216600483015260248201526044016106ca565b6000548151604051637b51e92760e11b81526001600160a01b03918216600482015291169063f6a3d24e90602401602060405180830381865afa158015612509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252d91906157fa565b156125645761253b81612e67565b8088838151811061254e5761254e614c3a565b6020908102919091010152600190910190612592565b61256d81612efe565b8087848151811061258057612580614c3a565b60209081029190910101526001909201915b50600190920191612437565b600354349060ff1661264c57600854896060015110156125e25760085460608a0151604051630961b65b60e41b8152600481019290925260248201526044016106ca565b600089606001518a608001516125f891906158bb565b90508082101561262357604051626ba64f60e51b8152600481018290523460248201526044016106ca565b61262d8183615575565b915089606001516009600082825461264591906158bb565b9091555050505b80156126e957600160801b81106126935760405163bde1a95560e01b815273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6004820152602481018290526044016106ca565b604051806040016040528073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03168152602001828152508784815181106126d7576126d7614c3a565b60209081029190910101526001909201915b90875290855260e08701515160009250829182916001600160401b038111156127145761271461397a565b60405190808252806020026020018201604052801561277257816020015b61275f604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b8152602001906001900390816127325790505b5095508860e00151516001600160401b038111156127925761279261397a565b6040519080825280602002602001820160405280156127f057816020015b6127dd604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b8152602001906001900390816127b05790505b5094505b8860e00151518410156129065760008960e00151858151811061281957612819614c3a565b60209081029190910101516000548151604051637b51e92760e11b81526001600160a01b039182166004820152929350169063f6a3d24e90602401602060405180830381865afa158015612871573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061289591906157fa565b156128cc576128a381612f28565b808785815181106128b6576128b6614c3a565b60209081029190910101526001909301926128fa565b6128d581613064565b808684815181106128e8576128e8614c3a565b60209081029190910101526001909201915b506001909301926127f4565b5090845282525092949193509190565b600081815b8481101561294f576129458287878481811061293957612939614c3a565b90506020020135613111565b915060010161291b565b50949350505050565b60008060055460ff16600281111561297257612972613c9e565b036129ea57600154604051630814964f60e41b8152600481018490526001600160a01b039091169063814964f090602401602060405180830381865afa1580156129c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e491906157fa565b92915050565b506006541490565b919050565b6129ff6133b4565b83600103612aec576000612a1583850185615b72565b905060405180610200016040528082600001516001600160401b0316815260200182602001516001600160401b03168152602001826040015181526020018260600151815260200182608001516001600160a01b031681526020018260a0015181526020018260c0015181526020018260e00151815260200182610100015181526020018261012001518152602001826101400151815260200182610160015181526020018261018001518152602001826101a001518152602001826101c001518152602001826101e0015181525091505061234e565b604051632c4ed5b360e11b8152600481018590526024016106ca565b602082015115610b4857815160208301516040516340c10f1960e01b81526001600160a01b03848116600483015260248201929092529116906340c10f19906044015b600060405180830381600087803b158015612b6557600080fd5b505af1158015610de6573d6000803e3d6000fd5b600080516020615beb83398151915254600160401b900460ff1661091f57604051631afcd79f60e31b815260040160405180910390fd5b612bb8612b79565b6001600160a01b038116610be557604051631e4fbdf760e01b8152600060048201526024016106ca565b612beb8261313d565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115612c30576119bc82826131a2565b610b48613218565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b602082015115610b485760208201518251610b48916001600160a01b03909116908390613237565b81516040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b03909116906301ffc9a790602401602060405180830381865afa158015612d1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d4391906157fa565b15612d935781516020830151604051638832e6e360e01b81526001600160a01b03848116600483015260248201929092526060604482015260006064820152911690638832e6e390608401612b4b565b8151604051630b985cbb60e21b81526001600160a01b0390911660048201526024016106ca565b81516040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b03909116906301ffc9a790602401602060405180830381865afa158015612e08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e2c91906157fa565b15612d935781516020830151604051632142170760e11b81526001600160a01b03909216916342842e0e91612b4b9130918691600401615ba6565b602081015115610bee5760208101518151612e91916001600160a01b039091169033903090613296565b80516020820151604051632770a7eb60e21b815230600482015260248101919091526001600160a01b0390911690639dc29fac906044015b600060405180830381600087803b158015612ee357600080fd5b505af1158015612ef7573d6000803e3d6000fd5b5050505050565b602081015115610bee5760208101518151610bee916001600160a01b039091169033903090613296565b80516040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b03909116906301ffc9a790602401602060405180830381865afa158015612f76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f9a91906157fa565b1561303d57805160208201516040516323b872dd60e01b81526001600160a01b03909216916323b872dd91612fd59133913091600401615ba6565b600060405180830381600087803b158015612fef57600080fd5b505af1158015613003573d6000803e3d6000fd5b505082516020840151604051630852cd8d60e31b81526001600160a01b0390921693506342966c689250612ec99160040190815260200190565b8051604051630b985cbb60e21b81526001600160a01b0390911660048201526024016106ca565b80516040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b03909116906301ffc9a790602401602060405180830381865afa1580156130b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130d691906157fa565b1561303d57805160208201516040516323b872dd60e01b81526001600160a01b03909216916323b872dd91612ec99133913091600401615ba6565b600081831061312d57600082815260208490526040902061234e565b5060009182526020526040902090565b806001600160a01b03163b60000361317357604051634c9c8ce360e01b81526001600160a01b03821660048201526024016106ca565b600080516020615bcb83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516131bf919061404b565b600060405180830381855af49150503d80600081146131fa576040519150601f19603f3d011682016040523d82523d6000602084013e6131ff565b606091505b509150915061320f8583836132be565b95945050505050565b341561091f5760405163b398979f60e01b815260040160405180910390fd5b6040516001600160a01b038381166024830152604482018390526119bc91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505061331a565b610de984856001600160a01b03166323b872dd86868660405160240161326493929190615ba6565b6060826132d3576132ce8261338b565b61234e565b81511580156132ea57506001600160a01b0384163b155b1561331357604051639996b31560e01b81526001600160a01b03851660048201526024016106ca565b508061234e565b600080602060008451602086016000885af18061333d576040513d6000823e3d81fd5b50506000513d91508115613355578060011415613362565b6001600160a01b0384163b155b15610de957604051635274afe760e01b81526001600160a01b03851660048201526024016106ca565b80511561339b5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b60408051610200810182526000808252602080830182905282840182905260608084018390526080840183905260a0840181905260c0840181905260e08401528351808501909452818452830152906101008201908152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081525090565b60008083601f84011261345257600080fd5b5081356001600160401b0381111561346957600080fd5b60208301915083602082850101111561348157600080fd5b9250929050565b60008083601f84011261349a57600080fd5b5081356001600160401b038111156134b157600080fd5b6020830191508360208260051b850101111561348157600080fd5b8015158114610bee57600080fd5b600080600080600080600080600060c08a8c0312156134f857600080fd5b8935985060208a01356001600160401b0381111561351557600080fd5b6135218c828d01613440565b90995097505060408a01356001600160401b0381111561354057600080fd5b61354c8c828d01613440565b90975095505060608a0135935060808a01356001600160401b0381111561357257600080fd5b61357e8c828d01613488565b90945092505060a08a0135613592816134cc565b809150509295985092959850929598565b60005b838110156135be5781810151838201526020016135a6565b50506000910152565b600081518084526135df8160208601602086016135a3565b601f01601f19169290920160200192915050565b600082825180855260208501945060208160051b8301016020850160005b8381101561364357601f1985840301885261362d8383516135c7565b6020988901989093509190910190600101613611565b50909695505050505050565b600081518084526020840193506020830160005b8281101561369f5761368986835180516001600160a01b03168252602090810151910152565b6040959095019460209190910190600101613663565b5093949350505050565b600081518084526020840193506020830160005b8281101561369f57815180516001600160a01b031687526020808201519088015260409081015190870152606086019550602091909101906001016136bd565b600082825180855260208501945060208160051b8301016020850160005b8381101561364357848303601f19018852815180516001600160401b0316845260208101516020850152604081015161375f60408601826001600160a01b03169052565b506060810151610180606086015261377b6101808601826135c7565b90506080820151858203608087015261379482826135c7565b91505060a082015160a086015260c082015160c086015260e082015185820360e08701526137c282826135f3565b9150506101008201518582036101008701526137de828261364f565b9150506101208201518582036101208701526137fa828261364f565b91505061014082015185820361014087015261381682826136a9565b915050610160820151915084810361016086015261383481836136a9565b60209a8b019a9095509390930192505060010161371b565b831515815260606020820152600061386760608301856136fd565b828103604084015261387981856135c7565b9695505050505050565b60008060006040848603121561389857600080fd5b83356001600160401b038111156138ae57600080fd5b840161022081870312156138c157600080fd5b925060208401356001600160401b038111156138dc57600080fd5b6138e886828701613440565b9497909650939450505050565b6001600160a01b0381168114610bee57600080fd5b80356129f2816138f5565b6000806040838503121561392857600080fd5b8235613933816138f5565b91506020830135613943816138f5565b809150509250929050565b6000806040838503121561396157600080fd5b823561396c816138f5565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156139b2576139b261397a565b60405290565b604051606081016001600160401b03811182821017156139b2576139b261397a565b60405161018081016001600160401b03811182821017156139b2576139b261397a565b604051608081016001600160401b03811182821017156139b2576139b261397a565b60405161020081016001600160401b03811182821017156139b2576139b261397a565b60405161010081016001600160401b03811182821017156139b2576139b261397a565b604051601f8201601f191681016001600160401b0381118282101715613a8d57613a8d61397a565b604052919050565b60006001600160401b03821115613aae57613aae61397a565b50601f01601f191660200190565b600082601f830112613acd57600080fd5b8135602083016000613ae6613ae184613a95565b613a65565b9050828152858383011115613afa57600080fd5b82826020830137600092810160200192909252509392505050565b60008060408385031215613b2857600080fd5b8235613b33816138f5565b915060208301356001600160401b03811115613b4e57600080fd5b613b5a85828601613abc565b9150509250929050565b600060208284031215613b7657600080fd5b5035919050565b600060208284031215613b8f57600080fd5b813561234e816138f5565b60008060008060008060008060a0898b031215613bb657600080fd5b8835975060208901356001600160401b03811115613bd357600080fd5b613bdf8b828c01613440565b90985096505060408901356001600160401b03811115613bfe57600080fd5b613c0a8b828c01613488565b9096509450506060890135613c1e816138f5565b925060808901356001600160401b03811115613c3957600080fd5b613c458b828c01613440565b999c989b5096995094979396929594505050565b60208152600061234e60208301846135c7565b600080600060408486031215613c8157600080fd5b8335925060208401356001600160401b038111156138dc57600080fd5b634e487b7160e01b600052602160045260246000fd5b600081518084526020840193506020830160005b8281101561369f5781516001600160a01b0316865260209586019590910190600101613cc8565b6000815160808452613d0460808501826135c7565b905060208301518482036020860152613d1d82826135c7565b91505060ff60408401511660408501526060830151848203606086015261320f82826135c7565b600082825180855260208501945060208160051b8301016020850160005b8381101561364357601f19858403018852613d7e838351613cef565b6020988901989093509190910190600101613d62565b6000815160808452613da960808501826135c7565b905060208301518482036020860152613dc282826135c7565b91505060408301518482036040860152613ddc82826135c7565b9150506060830151848203606086015261320f82826135c7565b600082825180855260208501945060208160051b8301016020850160005b8381101561364357601f19858403018852613e30838351613d94565b6020988901989093509190910190600101613e14565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152613e896040820185516001600160401b03169052565b60006020850151613ea560608401826001600160401b03169052565b5060408501516080830152606085015160a08301526080850151613ed460c08401826001600160a01b03169052565b5060a085015161022060e0840152613ef06102608401826135c7565b905060c0860151603f1984830301610100850152613f0e82826135c7565b91505060e0860151603f1984830301610120850152613f2d82826135c7565b915050610100860151613f5761014085018280516001600160a01b03168252602090810151910152565b50610120860151838203603f1901610180850152613f758282613cb4565b915050610140860151603f19848303016101a0850152613f95828261364f565b915050610160860151603f19848303016101c0850152613fb5828261364f565b915050610180860151603f19848303016101e0850152613fd58282613d44565b9150506101a0860151603f1984830301610200850152613ff582826136a9565b9150506101c0860151603f198483030161022085015261401582826136a9565b9150506101e0860151603f19848303016102408501526140358282613df6565b9150508281036020840152613879818587613e46565b6000825161405d8184602087016135a3565b9190910192915050565b6000614075613ae184613a95565b905082815283838301111561408957600080fd5b61234e8360208301846135a3565b600080604083850312156140aa57600080fd5b82516140b5816134cc565b60208401519092506001600160401b038111156140d157600080fd5b8301601f810185136140e257600080fd5b613b5a85825160208401614067565b60006001600160401b0382111561410a5761410a61397a565b5060051b60200190565b6001600160401b0381168114610bee57600080fd5b80516129f281614114565b80516129f2816138f5565b600082601f83011261415057600080fd5b61234e83835160208501614067565b600082601f83011261417057600080fd5b815161417e613ae1826140f1565b8082825260208201915060208360051b8601019250858311156141a057600080fd5b602085015b838110156141e15780516001600160401b038111156141c357600080fd5b6141d2886020838a010161413f565b845250602092830192016141a5565b5095945050505050565b600082601f8301126141fc57600080fd5b815161420a613ae1826140f1565b8082825260208201915060208360061b86010192508583111561422c57600080fd5b602085015b838110156141e1576040818803121561424957600080fd5b614251613990565b815161425c816138f5565b8152602082810151818301529084529290920191604001614231565b600082601f83011261428957600080fd5b8151614297613ae1826140f1565b808282526020820191506020606084028601019250858311156142b957600080fd5b602085015b838110156141e157606081880312156142d657600080fd5b6142de6139b8565b81516142e9816138f5565b8152602082810151818301526040808401519083015290845292909201916060016142be565b60006020828403121561432157600080fd5b81516001600160401b0381111561433757600080fd5b8201601f8101841361434857600080fd5b8051614356613ae1826140f1565b8082825260208201915060208360051b85010192508683111561437857600080fd5b602084015b838110156145515780516001600160401b0381111561439b57600080fd5b8501610180818a03601f190112156143b257600080fd5b6143ba6139da565b6143c660208301614129565b8152604082015160208201526143de60608301614134565b604082015260808201516001600160401b038111156143fc57600080fd5b61440b8b60208386010161413f565b60608301525060a08201516001600160401b0381111561442a57600080fd5b6144398b60208386010161413f565b60808301525060c08281015160a083015260e0830151908201526101008201516001600160401b0381111561446d57600080fd5b61447c8b60208386010161415f565b60e0830152506101208201516001600160401b0381111561449c57600080fd5b6144ab8b6020838601016141eb565b610100830152506101408201516001600160401b038111156144cc57600080fd5b6144db8b6020838601016141eb565b610120830152506101608201516001600160401b038111156144fc57600080fd5b61450b8b602083860101614278565b610140830152506101808201516001600160401b0381111561452c57600080fd5b61453b8b602083860101614278565b610160830152508452506020928301920161437d565b509695505050505050565b60208152600061234e60208301846136fd565b80356129f281614114565b60006040828403121561458c57600080fd5b614594613990565b905081356145a1816138f5565b815260209182013591810191909152919050565b600082601f8301126145c657600080fd5b81356145d4613ae1826140f1565b8082825260208201915060208360051b8601019250858311156145f657600080fd5b602085015b838110156141e157803561460e816138f5565b8352602092830192016145fb565b600082601f83011261462d57600080fd5b813561463b613ae1826140f1565b8082825260208201915060208360061b86010192508583111561465d57600080fd5b602085015b838110156141e157614674878261457a565b8352602090920191604001614662565b803560ff811681146129f257600080fd5b600082601f8301126146a657600080fd5b81356146b4613ae1826140f1565b8082825260208201915060208360051b8601019250858311156146d657600080fd5b602085015b838110156141e15780356001600160401b038111156146f957600080fd5b86016080818903601f1901121561470f57600080fd5b6147176139fd565b60208201356001600160401b0381111561473057600080fd5b61473f8a602083860101613abc565b82525060408201356001600160401b0381111561475b57600080fd5b61476a8a602083860101613abc565b60208301525061477c60608301614684565b604082015260808201356001600160401b0381111561479a57600080fd5b6147a98a602083860101613abc565b606083015250845250602092830192016146db565b6000606082840312156147d057600080fd5b6147d86139b8565b905081356147e5816138f5565b81526020828101359082015260409182013591810191909152919050565b600082601f83011261481457600080fd5b8135614822613ae1826140f1565b8082825260208201915060206060840286010192508583111561484457600080fd5b602085015b838110156141e15761485b87826147be565b8352602090920191606001614849565b600082601f83011261487c57600080fd5b813561488a613ae1826140f1565b8082825260208201915060208360051b8601019250858311156148ac57600080fd5b602085015b838110156141e15780356001600160401b038111156148cf57600080fd5b86016080818903601f190112156148e557600080fd5b6148ed6139fd565b60208201356001600160401b0381111561490657600080fd5b6149158a602083860101613abc565b82525060408201356001600160401b0381111561493157600080fd5b6149408a602083860101613abc565b60208301525060608201356001600160401b0381111561495f57600080fd5b61496e8a602083860101613abc565b60408301525060808201356001600160401b0381111561498d57600080fd5b61499c8a602083860101613abc565b606083015250845250602092830192016148b1565b600061022082840312156149c457600080fd5b6149cc613a1f565b90506149d78261456f565b81526149e56020830161456f565b60208201526040828101359082015260608083013590820152614a0a6080830161390a565b608082015260a08201356001600160401b03811115614a2857600080fd5b614a3484828501613abc565b60a08301525060c08201356001600160401b03811115614a5357600080fd5b614a5f84828501613abc565b60c08301525060e08201356001600160401b03811115614a7e57600080fd5b614a8a84828501613abc565b60e083015250614a9e83610100840161457a565b6101008201526101408201356001600160401b03811115614abe57600080fd5b614aca848285016145b5565b610120830152506101608201356001600160401b03811115614aeb57600080fd5b614af78482850161461c565b610140830152506101808201356001600160401b03811115614b1857600080fd5b614b248482850161461c565b610160830152506101a08201356001600160401b03811115614b4557600080fd5b614b5184828501614695565b610180830152506101c08201356001600160401b03811115614b7257600080fd5b614b7e84828501614803565b6101a0830152506101e08201356001600160401b03811115614b9f57600080fd5b614bab84828501614803565b6101c0830152506102008201356001600160401b03811115614bcc57600080fd5b614bd88482850161486b565b6101e08301525092915050565b60006129e436836149b1565b6000808335601e19843603018112614c0857600080fd5b8301803591506001600160401b03821115614c2257600080fd5b6020019150600581901b360382131561348157600080fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112614c6757600080fd5b83016020810192503590506001600160401b03811115614c8657600080fd5b80360382131561348157600080fd5b8035614ca0816138f5565b6001600160a01b03168252602090810135910152565b6000808335601e19843603018112614ccd57600080fd5b83016020810192503590506001600160401b03811115614cec57600080fd5b8060051b360382131561348157600080fd5b81835260208301925060008160005b8481101561369f578135614d20816138f5565b6001600160a01b031686526020958601959190910190600101614d0d565b6000808335601e19843603018112614d5557600080fd5b83016020810192503590506001600160401b03811115614d7457600080fd5b8060061b360382131561348157600080fd5b81835260208301925060008160005b8481101561369f57614da78683614c95565b6040958601959190910190600101614d95565b60008235607e19833603018112614dd057600080fd5b90910192915050565b60008383855260208501945060208460051b8201018360005b8681101561364357838303601f19018852614e0d8287614dba565b614e178182614c50565b60808652614e29608087018284613e46565b915050614e396020830183614c50565b8683036020880152614e4c838284613e46565b9250505060ff614e5e60408401614684565b166040860152614e716060830183614c50565b92508582036060870152614e86828483613e46565b60209b8c019b9096509490940193505050600101614df2565b6000808335601e19843603018112614eb657600080fd5b83016020810192503590506001600160401b03811115614ed557600080fd5b60608102360382131561348157600080fd5b81835260208301925060008160005b8481101561369f578135614f09816138f5565b6001600160a01b03168652602082810135908701526040808301359087015260609586019590910190600101614ef6565b60008383855260208501945060208460051b8201018360005b8681101561364357838303601f19018852614f6e8287614dba565b614f788182614c50565b60808652614f8a608087018284613e46565b915050614f9a6020830183614c50565b8683036020880152614fad838284613e46565b92505050614fbe6040830183614c50565b8683036040880152614fd1838284613e46565b92505050614fe26060830183614c50565b92508582036060870152614ff7828483613e46565b60209b8c019b9096509490940193505050600101614f53565b60408152615031604082016150248661456f565b6001600160401b03169052565b600061503f6020860161456f565b6001600160401b0381166060840152506040850135608083810191909152606086013560a084015261507290860161390a565b6001600160a01b031660c083015261508d60a0860186614c50565b61022060e08501526150a461026085018284613e46565b9150506150b460c0870187614c50565b848303603f19016101008601526150cc838284613e46565b925050506150dd60e0870187614c50565b848303603f19016101208601526150f5838284613e46565b9250505061510b61014084016101008801614c95565b615119610140870187614cb6565b848303603f1901610180860152615131838284614cfe565b92505050615143610160870187614d3e565b848303603f19016101a086015261515b838284614d86565b9250505061516d610180870187614d3e565b848303603f19016101c0860152615185838284614d86565b925050506151976101a0870187614cb6565b848303603f19016101e08601526151af838284614dd9565b925050506151c16101c0870187614e9f565b848303603f19016102008601526151d9838284614ee7565b925050506151eb6101e0870187614e9f565b848303603f1901610220860152615203838284614ee7565b92505050615215610200870187614cb6565b848303603f190161024086015261522d838284614f3a565b925050508281036020840152613879818587613e46565b600181811c9082168061525857607f821691505b60208210810361203357634e487b7160e01b600052602260045260246000fd5b6000815461528581615244565b80855260018216801561529f57600181146152bb576152f2565b60ff1983166020870152602082151560051b87010193506152f2565b84600052602060002060005b838110156152e95781546020828a0101526001820191506020810190506152c7565b87016020019450505b50505092915050565b600082825480855260208501945060208160051b83010184600052602060002060005b8381101561364357848303601f190188526153398383615278565b6020989098019792506001918201910161531e565b6000815480845260208401935082600052602060002060005b8281101561369f5781546001600160a01b03168652600182810154602088015260409096019560029092019101615367565b6000815480845260208401935082600052602060002060005b8281101561369f5781546001600160a01b03168652600182810154602088015260028301546040880152606090960195600390920191016153b2565b6000602082016020835280845480835260408501915060408160051b860101925085600052602060002060005b8281101561553057603f198786030184526154418561502484546001600160401b031690565b6001820154602086015260028201546001600160a01b031660408601526101806060860181905261547790860160038401615278565b858103608087015261548c8160048501615278565b9050600583015460a0870152600683015460c087015285810360e08701526154b781600785016152fb565b90508581036101008701526154cf816008850161534e565b90508581036101208701526154e7816009850161534e565b90508581036101408701526154ff81600a8501615399565b905085810361016087015261551781600b8501615399565b95505060209390930192600c919091019060010161541b565b50929695505050505050565b821515815260406020820152600061555760408301846135c7565b949350505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156129e4576129e461555f565b6000808335601e1984360301811261559f57600080fd5b8301803591506001600160401b038211156155b957600080fd5b60200191503681900382131561348157600080fd5b8183823760009101908152919050565b6040815260006155f160408301866135c7565b8281036020840152613879818587613e46565b82815260406020820152600061555760408301846135c7565b601f8211156119bc57806000526020600020601f840160051c810160208510156156445750805b601f840160051c820191505b81811015612ef75760008155600101615650565b81516001600160401b0381111561567d5761567d61397a565b6156918161568b8454615244565b8461561d565b6020601f8211600181146156c557600083156156ad5750848201515b600019600385901b1c1916600184901b178455612ef7565b600084815260208120601f198516915b828110156156f557878501518255602094850194600190920191016156d5565b50848210156157135786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6001600160401b038d1681528b6020820152615749604082018c6001600160a01b03169052565b6101806060820152600061576161018083018c6135c7565b8281036080840152615773818c6135c7565b90508960a08401528860c084015282810360e084015261579381896135f3565b90508281036101008401526157a8818861364f565b90508281036101208401526157bd818761364f565b90508281036101408401526157d281866136a9565b90508281036101608401526157e781856136a9565b9f9e505050505050505050505050505050565b60006020828403121561580c57600080fd5b815161234e816134cc565b60208152600061234e6020830184613cef565b60208152600061234e6020830184613d94565b60006020828403121561584f57600080fd5b5051919050565b6000808335601e1984360301811261586d57600080fd5b8301803591506001600160401b0382111561588757600080fd5b6020019150600681901b360382131561348157600080fd5b6000604082840312156158b157600080fd5b61234e838361457a565b808201808211156129e4576129e461555f565b6000808335601e198436030181126158e557600080fd5b8301803591506001600160401b038211156158ff57600080fd5b602001915060608102360382131561348157600080fd5b60006060828403121561592857600080fd5b61234e83836147be565b60006020828403121561594457600080fd5b813561234e81614114565b602081526001600160401b03825116602082015260208201516040820152604082015160608201526000606083015160a0608084015261599260c08401826135c7565b90506080840151601f198483030160a085015261320f82826135c7565b600082601f8301126159c057600080fd5b81356159ce613ae1826140f1565b8082825260208201915060208360051b8601019250858311156159f057600080fd5b602085015b838110156141e15780356001600160401b03811115615a1357600080fd5b615a22886020838a0101613abc565b845250602092830192016159f5565b600060208284031215615a4357600080fd5b81356001600160401b03811115615a5957600080fd5b82016101008185031215615a6c57600080fd5b615a74613a42565b615a7d8261456f565b815260208201356001600160401b03811115615a9857600080fd5b615aa486828501613abc565b60208301525060408201356001600160401b03811115615ac357600080fd5b615acf86828501613abc565b604083015250606082810135908201526080808301359082015260a08201356001600160401b03811115615b0257600080fd5b615b0e868285016159af565b60a08301525060c08201356001600160401b03811115615b2d57600080fd5b615b398682850161461c565b60c08301525060e08201356001600160401b03811115615b5857600080fd5b615b6486828501614803565b60e083015250949350505050565b600060208284031215615b8457600080fd5b81356001600160401b03811115615b9a57600080fd5b615557848285016149b1565b6001600160a01b03938416815291909216602082015260408101919091526060019056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122025f2713e1f1e46f996edfd853e5c6cbdeba506b80f80443a4807184e437914c564736f6c634300081c0033",
1700
+ "linkReferences": {},
1701
+ "deployedLinkReferences": {}
1702
+ }