@tonappchain/sdk 0.7.0-rc24-test-6 → 0.7.0-rc24-test-8

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 (178) hide show
  1. package/dist/artifacts/dev/tac/artifacts.d.ts +39 -194
  2. package/dist/artifacts/dev/tac/artifacts.js +8 -8
  3. package/dist/artifacts/dev/tac/internal/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json +296 -0
  4. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/ICrossChainLayer.sol/ICrossChainLayer.json +13 -0
  5. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC20.sol/ICrossChainLayerERC20.json +278 -0
  6. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC721.sol/ICrossChainLayerERC721.json +380 -0
  7. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/tokens/IERC20WithDecimals.sol/IERC20WithDecimals.json +207 -0
  8. package/dist/artifacts/{mainnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/ERC721.d.ts → dev/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.d.ts} +5 -17
  9. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.d.ts +75 -0
  10. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ISettings.d.ts +123 -0
  11. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.d.ts +99 -0
  12. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/{core/tokens/CrossChainLayerERC20.d.ts → interfaces/tokens/ICrossChainLayerERC20.d.ts} +6 -46
  13. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/{core/tokens/CrossChainLayerERC721.d.ts → interfaces/tokens/ICrossChainLayerERC721.d.ts} +6 -50
  14. package/dist/artifacts/dev/tac/internal/typechain-types/{@openzeppelin/contracts/token/ERC20/ERC20.d.ts → contracts/interfaces/tokens/IERC20WithDecimals.d.ts} +6 -14
  15. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.d.ts +77 -0
  16. package/dist/artifacts/{testnet/tac/internal/typechain-types/contracts/smart-account/TacSmartAccount.d.ts → dev/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.d.ts} +8 -74
  17. package/dist/artifacts/dev/tac/wrappers.d.ts +9 -14
  18. package/dist/artifacts/dev/tac/wrappers.js +0 -19
  19. package/dist/artifacts/mainnet/tac/artifacts.d.ts +39 -194
  20. package/dist/artifacts/mainnet/tac/artifacts.js +8 -8
  21. package/dist/artifacts/mainnet/tac/internal/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json +296 -0
  22. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/ICrossChainLayer.sol/ICrossChainLayer.json +13 -0
  23. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC20.sol/ICrossChainLayerERC20.json +278 -0
  24. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC721.sol/ICrossChainLayerERC721.json +380 -0
  25. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/tokens/IERC20WithDecimals.sol/IERC20WithDecimals.json +207 -0
  26. package/dist/artifacts/{dev/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/ERC721.d.ts → mainnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.d.ts} +5 -17
  27. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.d.ts +75 -0
  28. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ISettings.d.ts +123 -0
  29. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.d.ts +99 -0
  30. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.d.ts +182 -0
  31. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.d.ts +244 -0
  32. package/dist/artifacts/{testnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.d.ts → mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/IERC20WithDecimals.d.ts} +6 -14
  33. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.d.ts +77 -0
  34. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/smart-account/{TacSmartAccount.d.ts → interfaces/ITacSmartAccount.d.ts} +8 -74
  35. package/dist/artifacts/mainnet/tac/wrappers.d.ts +9 -14
  36. package/dist/artifacts/mainnet/tac/wrappers.js +0 -19
  37. package/dist/artifacts/tacTypes.d.ts +13 -0
  38. package/dist/artifacts/testnet/tac/artifacts.d.ts +39 -194
  39. package/dist/artifacts/testnet/tac/artifacts.js +8 -8
  40. package/dist/artifacts/testnet/tac/internal/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json +296 -0
  41. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/ICrossChainLayer.sol/ICrossChainLayer.json +13 -0
  42. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC20.sol/ICrossChainLayerERC20.json +278 -0
  43. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC721.sol/ICrossChainLayerERC721.json +380 -0
  44. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/tokens/IERC20WithDecimals.sol/IERC20WithDecimals.json +207 -0
  45. package/dist/artifacts/testnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/{ERC721.d.ts → IERC721.d.ts} +5 -17
  46. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.d.ts +75 -0
  47. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ISettings.d.ts +123 -0
  48. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.d.ts +99 -0
  49. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.d.ts +182 -0
  50. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.d.ts +244 -0
  51. package/dist/artifacts/{mainnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.d.ts → testnet/tac/internal/typechain-types/contracts/interfaces/tokens/IERC20WithDecimals.d.ts} +6 -14
  52. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.d.ts +77 -0
  53. package/dist/artifacts/{dev/tac/internal/typechain-types/contracts/smart-account/TacSmartAccount.d.ts → testnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.d.ts} +8 -74
  54. package/dist/artifacts/testnet/tac/wrappers.d.ts +9 -14
  55. package/dist/artifacts/testnet/tac/wrappers.js +0 -19
  56. package/dist/artifacts/{types.d.ts → tonTypes.d.ts} +0 -14
  57. package/dist/artifacts/tonTypes.js +2 -0
  58. package/dist/src/assets/FT.d.ts +1 -1
  59. package/dist/src/assets/FT.js +4 -2
  60. package/dist/src/assets/NFT.d.ts +1 -1
  61. package/dist/src/assets/NFT.js +3 -2
  62. package/dist/src/interfaces/ITacSDK.d.ts +1 -1
  63. package/dist/src/sdk/Configuration.js +8 -4
  64. package/dist/src/sdk/TACTransactionManager.js +5 -2
  65. package/dist/src/sdk/TacSdk.d.ts +1 -1
  66. package/dist/src/structs/InternalStruct.d.ts +5 -5
  67. package/dist/src/structs/Struct.d.ts +1 -1
  68. package/package.json +10 -5
  69. package/dist/artifacts/dev/tac/internal/artifacts/contracts/core/CrossChainLayer.sol/CrossChainLayer.json +0 -1702
  70. package/dist/artifacts/dev/tac/internal/artifacts/contracts/core/Settings.sol/Settings.json +0 -742
  71. package/dist/artifacts/dev/tac/internal/artifacts/contracts/core/tokens/CrossChainLayerERC20.sol/CrossChainLayerERC20.json +0 -457
  72. package/dist/artifacts/dev/tac/internal/artifacts/contracts/core/tokens/CrossChainLayerERC721.sol/CrossChainLayerERC721.json +0 -595
  73. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/core/CrossChainLayer.d.ts +0 -554
  74. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/core/Settings.d.ts +0 -407
  75. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/core/TokenUtils.d.ts +0 -373
  76. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/smart-account/TacSAFactory.d.ts +0 -233
  77. package/dist/artifacts/dev/tac/internal/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.d.ts +0 -241
  78. package/dist/artifacts/dev/tac/internal/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.js +0 -327
  79. package/dist/artifacts/dev/tac/internal/typechain-types/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.d.ts +0 -337
  80. package/dist/artifacts/dev/tac/internal/typechain-types/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.js +0 -452
  81. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/core/CrossChainLayer__factory.d.ts +0 -1326
  82. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/core/CrossChainLayer__factory.js +0 -1730
  83. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/core/Settings__factory.d.ts +0 -583
  84. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/core/Settings__factory.js +0 -770
  85. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/core/TokenUtils__factory.d.ts +0 -540
  86. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/core/TokenUtils__factory.js +0 -714
  87. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/core/tokens/CrossChainLayerERC20__factory.d.ts +0 -363
  88. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/core/tokens/CrossChainLayerERC20__factory.js +0 -485
  89. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/core/tokens/CrossChainLayerERC721__factory.d.ts +0 -469
  90. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/core/tokens/CrossChainLayerERC721__factory.js +0 -623
  91. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/smart-account/TacSAFactory__factory.d.ts +0 -340
  92. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/smart-account/TacSAFactory__factory.js +0 -452
  93. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/smart-account/TacSmartAccount__factory.d.ts +0 -293
  94. package/dist/artifacts/dev/tac/internal/typechain-types/factories/contracts/smart-account/TacSmartAccount__factory.js +0 -393
  95. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/core/CrossChainLayer.sol/CrossChainLayer.json +0 -1702
  96. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/core/Settings.sol/Settings.json +0 -742
  97. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/core/tokens/CrossChainLayerERC20.sol/CrossChainLayerERC20.json +0 -457
  98. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/core/tokens/CrossChainLayerERC721.sol/CrossChainLayerERC721.json +0 -595
  99. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/CrossChainLayer.d.ts +0 -554
  100. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/Settings.d.ts +0 -407
  101. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/TokenUtils.d.ts +0 -373
  102. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/tokens/CrossChainLayerERC20.d.ts +0 -222
  103. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/tokens/CrossChainLayerERC721.d.ts +0 -288
  104. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/smart-account/TacSAFactory.d.ts +0 -233
  105. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.d.ts +0 -241
  106. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.js +0 -327
  107. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.d.ts +0 -337
  108. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.js +0 -452
  109. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/core/CrossChainLayer__factory.d.ts +0 -1326
  110. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/core/CrossChainLayer__factory.js +0 -1730
  111. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/core/Settings__factory.d.ts +0 -583
  112. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/core/Settings__factory.js +0 -770
  113. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/core/TokenUtils__factory.d.ts +0 -540
  114. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/core/TokenUtils__factory.js +0 -714
  115. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/core/tokens/CrossChainLayerERC20__factory.d.ts +0 -363
  116. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/core/tokens/CrossChainLayerERC20__factory.js +0 -485
  117. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/core/tokens/CrossChainLayerERC721__factory.d.ts +0 -469
  118. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/core/tokens/CrossChainLayerERC721__factory.js +0 -623
  119. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/smart-account/TacSAFactory__factory.d.ts +0 -340
  120. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/smart-account/TacSAFactory__factory.js +0 -452
  121. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/smart-account/TacSmartAccount__factory.d.ts +0 -293
  122. package/dist/artifacts/mainnet/tac/internal/typechain-types/factories/contracts/smart-account/TacSmartAccount__factory.js +0 -393
  123. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/core/CrossChainLayer.sol/CrossChainLayer.json +0 -1702
  124. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/core/Settings.sol/Settings.json +0 -742
  125. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/core/tokens/CrossChainLayerERC20.sol/CrossChainLayerERC20.json +0 -457
  126. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/core/tokens/CrossChainLayerERC721.sol/CrossChainLayerERC721.json +0 -595
  127. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/CrossChainLayer.d.ts +0 -554
  128. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/Settings.d.ts +0 -407
  129. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/TokenUtils.d.ts +0 -373
  130. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/tokens/CrossChainLayerERC20.d.ts +0 -222
  131. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/tokens/CrossChainLayerERC721.d.ts +0 -288
  132. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/smart-account/TacSAFactory.d.ts +0 -233
  133. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.d.ts +0 -241
  134. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.js +0 -327
  135. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.d.ts +0 -337
  136. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.js +0 -452
  137. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/core/CrossChainLayer__factory.d.ts +0 -1326
  138. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/core/CrossChainLayer__factory.js +0 -1730
  139. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/core/Settings__factory.d.ts +0 -583
  140. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/core/Settings__factory.js +0 -770
  141. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/core/TokenUtils__factory.d.ts +0 -540
  142. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/core/TokenUtils__factory.js +0 -714
  143. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/core/tokens/CrossChainLayerERC20__factory.d.ts +0 -363
  144. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/core/tokens/CrossChainLayerERC20__factory.js +0 -485
  145. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/core/tokens/CrossChainLayerERC721__factory.d.ts +0 -469
  146. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/core/tokens/CrossChainLayerERC721__factory.js +0 -623
  147. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/smart-account/TacSAFactory__factory.d.ts +0 -340
  148. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/smart-account/TacSAFactory__factory.js +0 -452
  149. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/smart-account/TacSmartAccount__factory.d.ts +0 -293
  150. package/dist/artifacts/testnet/tac/internal/typechain-types/factories/contracts/smart-account/TacSmartAccount__factory.js +0 -393
  151. /package/dist/artifacts/dev/tac/internal/typechain-types/@openzeppelin/contracts/token/{ERC20/ERC20.js → ERC721/IERC721.js} +0 -0
  152. /package/dist/artifacts/dev/tac/internal/typechain-types/{@openzeppelin/contracts/token/ERC721/ERC721.js → contracts/interfaces/ICrossChainLayer.js} +0 -0
  153. /package/dist/artifacts/dev/tac/internal/typechain-types/contracts/{core/CrossChainLayer.js → interfaces/ISettings.js} +0 -0
  154. /package/dist/artifacts/dev/tac/internal/typechain-types/contracts/{core/Settings.js → interfaces/ITokenUtils.js} +0 -0
  155. /package/dist/artifacts/dev/tac/internal/typechain-types/contracts/{core/TokenUtils.js → interfaces/tokens/ICrossChainLayerERC20.js} +0 -0
  156. /package/dist/artifacts/dev/tac/internal/typechain-types/contracts/{core/tokens/CrossChainLayerERC20.js → interfaces/tokens/ICrossChainLayerERC721.js} +0 -0
  157. /package/dist/artifacts/dev/tac/internal/typechain-types/contracts/{core/tokens/CrossChainLayerERC721.js → interfaces/tokens/IERC20WithDecimals.js} +0 -0
  158. /package/dist/artifacts/dev/tac/internal/typechain-types/contracts/smart-account/{TacSAFactory.js → interfaces/ISAFactory.js} +0 -0
  159. /package/dist/artifacts/dev/tac/internal/typechain-types/contracts/smart-account/{TacSmartAccount.js → interfaces/ITacSmartAccount.js} +0 -0
  160. /package/dist/artifacts/mainnet/tac/internal/typechain-types/@openzeppelin/contracts/token/{ERC20/ERC20.js → ERC721/IERC721.js} +0 -0
  161. /package/dist/artifacts/mainnet/tac/internal/typechain-types/{@openzeppelin/contracts/token/ERC721/ERC721.js → contracts/interfaces/ICrossChainLayer.js} +0 -0
  162. /package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/{core/CrossChainLayer.js → interfaces/ISettings.js} +0 -0
  163. /package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/{core/Settings.js → interfaces/ITokenUtils.js} +0 -0
  164. /package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/{core/TokenUtils.js → interfaces/tokens/ICrossChainLayerERC20.js} +0 -0
  165. /package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/{core/tokens/CrossChainLayerERC20.js → interfaces/tokens/ICrossChainLayerERC721.js} +0 -0
  166. /package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/{core/tokens/CrossChainLayerERC721.js → interfaces/tokens/IERC20WithDecimals.js} +0 -0
  167. /package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/smart-account/{TacSAFactory.js → interfaces/ISAFactory.js} +0 -0
  168. /package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/smart-account/{TacSmartAccount.js → interfaces/ITacSmartAccount.js} +0 -0
  169. /package/dist/artifacts/{testnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.js → tacTypes.js} +0 -0
  170. /package/dist/artifacts/testnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/{ERC721.js → IERC721.js} +0 -0
  171. /package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/{core/CrossChainLayer.js → interfaces/ICrossChainLayer.js} +0 -0
  172. /package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/{core/Settings.js → interfaces/ISettings.js} +0 -0
  173. /package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/{core/TokenUtils.js → interfaces/ITokenUtils.js} +0 -0
  174. /package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/{core/tokens/CrossChainLayerERC20.js → interfaces/tokens/ICrossChainLayerERC20.js} +0 -0
  175. /package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/{core/tokens/CrossChainLayerERC721.js → interfaces/tokens/ICrossChainLayerERC721.js} +0 -0
  176. /package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/{smart-account/TacSAFactory.js → interfaces/tokens/IERC20WithDecimals.js} +0 -0
  177. /package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/smart-account/{TacSmartAccount.js → interfaces/ISAFactory.js} +0 -0
  178. /package/dist/artifacts/{types.js → testnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.js} +0 -0
@@ -1,1702 +0,0 @@
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
- }