@venusprotocol/protocol-reserve 1.3.0 → 1.4.0-dev.2

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 (311) hide show
  1. package/README.md +6 -0
  2. package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json +4 -0
  3. package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.json +215 -0
  4. package/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.dbg.json +1 -1
  5. package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +4 -0
  6. package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json +63 -0
  7. package/artifacts/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.dbg.json +4 -0
  8. package/artifacts/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.json +56 -0
  9. package/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +4 -0
  10. package/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.json +24 -0
  11. package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +4 -0
  12. package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.json +56 -0
  13. package/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +4 -0
  14. package/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.json +19 -0
  15. package/artifacts/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol/BeaconProxy.dbg.json +4 -0
  16. package/artifacts/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol/BeaconProxy.json +80 -0
  17. package/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +4 -0
  18. package/artifacts/{contracts/Interfaces/ComptrollerInterface.sol/ComptrollerInterface.json → @openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.json} +5 -5
  19. package/artifacts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +4 -0
  20. package/artifacts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.json +113 -0
  21. package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
  22. package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
  23. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
  24. package/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +4 -0
  25. package/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json +10 -0
  26. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
  27. package/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +4 -0
  28. package/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +10 -0
  29. package/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +4 -0
  30. package/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +10 -0
  31. package/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json +4 -0
  32. package/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json +30 -0
  33. package/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json +4 -0
  34. package/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json +30 -0
  35. package/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json +4 -0
  36. package/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json +10 -0
  37. package/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.dbg.json +4 -0
  38. package/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json +10 -0
  39. package/artifacts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol/Ownable2StepUpgradeable.dbg.json +1 -1
  40. package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
  41. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
  42. package/artifacts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +4 -0
  43. package/artifacts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.json +63 -0
  44. package/artifacts/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol/ReentrancyGuardUpgradeable.dbg.json +1 -1
  45. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +1 -1
  46. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.dbg.json +1 -1
  47. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol/SafeERC20Upgradeable.dbg.json +1 -1
  48. package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
  49. package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
  50. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.dbg.json +1 -1
  51. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.dbg.json +1 -1
  52. package/artifacts/@venusprotocol/oracle/contracts/ResilientOracle.sol/ResilientOracle.dbg.json +4 -0
  53. package/artifacts/@venusprotocol/oracle/contracts/ResilientOracle.sol/ResilientOracle.json +649 -0
  54. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/BoundValidatorInterface.dbg.json +4 -0
  55. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/BoundValidatorInterface.json +40 -0
  56. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/OracleInterface.dbg.json +4 -0
  57. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/OracleInterface.json +30 -0
  58. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/ResilientOracleInterface.dbg.json +4 -0
  59. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/ResilientOracleInterface.json +75 -0
  60. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/TwapInterface.dbg.json +4 -0
  61. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/TwapInterface.json +49 -0
  62. package/artifacts/@venusprotocol/oracle/contracts/interfaces/VBep20Interface.sol/VBep20Interface.dbg.json +4 -0
  63. package/artifacts/@venusprotocol/oracle/contracts/interfaces/VBep20Interface.sol/VBep20Interface.json +246 -0
  64. package/artifacts/@venusprotocol/solidity-utilities/contracts/MaxLoopsLimitHelper.sol/MaxLoopsLimitHelper.dbg.json +1 -1
  65. package/artifacts/build-info/e6962244d9988e3e4bb55e591cf3b5d8.json +1 -0
  66. package/artifacts/contracts/Interfaces/IComptroller.sol/IComptroller.dbg.json +4 -0
  67. package/artifacts/contracts/Interfaces/IComptroller.sol/IComptroller.json +56 -0
  68. package/artifacts/contracts/Interfaces/IConverterNetwork.sol/IConverterNetwork.dbg.json +4 -0
  69. package/artifacts/contracts/Interfaces/IConverterNetwork.sol/IConverterNetwork.json +127 -0
  70. package/artifacts/contracts/Interfaces/IIncomeDestination.sol/IIncomeDestination.dbg.json +1 -1
  71. package/artifacts/contracts/Interfaces/IPoolRegistry.sol/IPoolRegistry.dbg.json +4 -0
  72. package/artifacts/contracts/Interfaces/IPoolRegistry.sol/IPoolRegistry.json +54 -0
  73. package/artifacts/contracts/Interfaces/IProtocolShareReserve.sol/IProtocolShareReserve.dbg.json +1 -1
  74. package/artifacts/contracts/Interfaces/IRiskFund.sol/IRiskFund.dbg.json +4 -0
  75. package/artifacts/contracts/Interfaces/IRiskFund.sol/IRiskFund.json +77 -0
  76. package/artifacts/contracts/Interfaces/IRiskFund.sol/IRiskFundGetters.dbg.json +4 -0
  77. package/artifacts/contracts/Interfaces/IRiskFund.sol/IRiskFundGetters.json +24 -0
  78. package/artifacts/contracts/Interfaces/IRiskFundConverter.sol/IRiskFundConverter.dbg.json +4 -0
  79. package/artifacts/contracts/Interfaces/{PoolRegistryInterface.sol/PoolRegistryInterface.json → IRiskFundConverter.sol/IRiskFundConverter.json} +23 -10
  80. package/artifacts/contracts/Interfaces/IShortfall.sol/IShortfall.dbg.json +4 -0
  81. package/artifacts/contracts/Interfaces/IShortfall.sol/IShortfall.json +24 -0
  82. package/artifacts/contracts/Interfaces/IVToken.sol/IVToken.dbg.json +1 -1
  83. package/artifacts/contracts/Interfaces/IXVSVault.sol/IXVSVault.dbg.json +4 -0
  84. package/artifacts/contracts/Interfaces/IXVSVault.sol/IXVSVault.json +24 -0
  85. package/artifacts/contracts/ProtocolReserve/ProtocolShareReserve.sol/ProtocolShareReserve.dbg.json +1 -1
  86. package/artifacts/contracts/ProtocolReserve/ProtocolShareReserve.sol/ProtocolShareReserve.json +7 -2
  87. package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/MaxLoopsLimitHelpersStorage.dbg.json +4 -0
  88. package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/MaxLoopsLimitHelpersStorage.json +24 -0
  89. package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/ReserveHelpersStorage.dbg.json +4 -0
  90. package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/ReserveHelpersStorage.json +139 -0
  91. package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/RiskFundV1Storage.dbg.json +4 -0
  92. package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/RiskFundV1Storage.json +178 -0
  93. package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/RiskFundV2Storage.dbg.json +4 -0
  94. package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/RiskFundV2Storage.json +191 -0
  95. package/artifacts/contracts/ProtocolReserve/RiskFundV2.sol/RiskFundV2.dbg.json +4 -0
  96. package/artifacts/contracts/ProtocolReserve/RiskFundV2.sol/RiskFundV2.json +630 -0
  97. package/artifacts/contracts/ProtocolReserve/XVSVaultTreasury.sol/XVSVaultTreasury.dbg.json +4 -0
  98. package/artifacts/contracts/ProtocolReserve/XVSVaultTreasury.sol/XVSVaultTreasury.json +315 -0
  99. package/artifacts/contracts/Test/Mocks/MockACM.sol/MockACM.dbg.json +4 -0
  100. package/artifacts/contracts/Test/Mocks/MockACM.sol/MockACM.json +369 -0
  101. package/artifacts/contracts/Test/Mocks/MockArraySorter.sol/MockArraySorter.dbg.json +4 -0
  102. package/artifacts/contracts/Test/Mocks/MockArraySorter.sol/MockArraySorter.json +40 -0
  103. package/artifacts/contracts/Test/Mocks/MockConverter.sol/MockConverter.dbg.json +4 -0
  104. package/artifacts/contracts/Test/Mocks/MockConverter.sol/MockConverter.json +1395 -0
  105. package/artifacts/contracts/Test/Mocks/MockDeflationaryToken.sol/MockDeflatingToken.dbg.json +4 -0
  106. package/artifacts/contracts/Test/Mocks/MockDeflationaryToken.sol/MockDeflatingToken.json +332 -0
  107. package/artifacts/contracts/Test/Mocks/MockRiskFundConverter.sol/MockRiskFundConverter.dbg.json +4 -0
  108. package/artifacts/contracts/Test/Mocks/MockRiskFundConverter.sol/MockRiskFundConverter.json +1761 -0
  109. package/artifacts/contracts/Test/Mocks/MockToken.sol/MockToken.dbg.json +1 -1
  110. package/artifacts/contracts/Test/Mocks/MockToken.sol/MockToken.json +20 -2
  111. package/artifacts/contracts/TokenConverter/AbstractTokenConverter.sol/AbstractTokenConverter.dbg.json +4 -0
  112. package/artifacts/contracts/TokenConverter/AbstractTokenConverter.sol/AbstractTokenConverter.json +1276 -0
  113. package/artifacts/contracts/TokenConverter/ConverterNetwork.sol/ConverterNetwork.dbg.json +4 -0
  114. package/artifacts/contracts/TokenConverter/ConverterNetwork.sol/ConverterNetwork.json +457 -0
  115. package/artifacts/contracts/TokenConverter/IAbstractTokenConverter.sol/IAbstractTokenConverter.dbg.json +4 -0
  116. package/artifacts/contracts/TokenConverter/IAbstractTokenConverter.sol/IAbstractTokenConverter.json +446 -0
  117. package/artifacts/contracts/TokenConverter/RiskFundConverter.sol/RiskFundConverter.dbg.json +4 -0
  118. package/artifacts/contracts/TokenConverter/RiskFundConverter.sol/RiskFundConverter.json +1631 -0
  119. package/artifacts/contracts/TokenConverter/SingleTokenConverter.sol/SingleTokenConverter.dbg.json +4 -0
  120. package/artifacts/contracts/TokenConverter/SingleTokenConverter.sol/SingleTokenConverter.json +1390 -0
  121. package/contracts/Interfaces/IComptroller.sol +10 -0
  122. package/contracts/Interfaces/IConverterNetwork.sol +46 -0
  123. package/contracts/Interfaces/IPoolRegistry.sol +10 -0
  124. package/contracts/Interfaces/IRiskFund.sol +28 -0
  125. package/contracts/Interfaces/IRiskFundConverter.sol +8 -0
  126. package/contracts/Interfaces/IShortfall.sol +11 -0
  127. package/contracts/Interfaces/IXVSVault.sol +9 -0
  128. package/contracts/ProtocolReserve/ProtocolShareReserve.sol +15 -12
  129. package/contracts/ProtocolReserve/RiskFundStorage.sol +67 -0
  130. package/contracts/ProtocolReserve/RiskFundV2.sol +253 -0
  131. package/contracts/ProtocolReserve/XVSVaultTreasury.sol +95 -0
  132. package/contracts/Test/Mocks/MockACM.sol +94 -0
  133. package/contracts/Test/Mocks/MockArraySorter.sol +14 -0
  134. package/contracts/Test/Mocks/MockConverter.sol +70 -0
  135. package/contracts/Test/Mocks/MockDeflationaryToken.sol +113 -0
  136. package/contracts/Test/Mocks/MockRiskFundConverter.sol +45 -0
  137. package/contracts/Test/Mocks/MockToken.sol +4 -0
  138. package/contracts/Test/imports.sol +11 -0
  139. package/contracts/TokenConverter/AbstractTokenConverter.sol +1167 -0
  140. package/contracts/TokenConverter/ConverterNetwork.sol +243 -0
  141. package/contracts/TokenConverter/IAbstractTokenConverter.sol +178 -0
  142. package/contracts/TokenConverter/RiskFundConverter.sol +449 -0
  143. package/contracts/TokenConverter/SingleTokenConverter.sol +103 -0
  144. package/contracts/Utils/ArrayHelpers.sol +41 -0
  145. package/deployments/bscmainnet/BTCBPrimeConverter.json +218 -0
  146. package/deployments/bscmainnet/ConverterNetwork.json +723 -0
  147. package/deployments/bscmainnet/ConverterNetwork_Implementation.json +823 -0
  148. package/deployments/bscmainnet/ConverterNetwork_Proxy.json +277 -0
  149. package/deployments/bscmainnet/ETHPrimeConverter.json +218 -0
  150. package/deployments/bscmainnet/ProtocolShareReserve_Implementation.json +89 -73
  151. package/deployments/bscmainnet/RiskFundConverter.json +2035 -0
  152. package/deployments/bscmainnet/RiskFundConverter_Implementation.json +2563 -0
  153. package/deployments/bscmainnet/RiskFundConverter_Proxy.json +403 -0
  154. package/deployments/bscmainnet/RiskFundV2.json +1049 -0
  155. package/deployments/bscmainnet/SingleTokenConverterBeacon.json +206 -0
  156. package/deployments/bscmainnet/SingleTokenConverterImp.json +2164 -0
  157. package/deployments/bscmainnet/USDCPrimeConverter.json +218 -0
  158. package/deployments/bscmainnet/USDTPrimeConverter.json +218 -0
  159. package/deployments/bscmainnet/XVSVaultConverter.json +218 -0
  160. package/deployments/bscmainnet/XVSVaultTreasury.json +579 -0
  161. package/deployments/bscmainnet/XVSVaultTreasury_Implementation.json +603 -0
  162. package/deployments/bscmainnet/XVSVaultTreasury_Proxy.json +281 -0
  163. package/deployments/bscmainnet/solcInputs/d02e743d886d63634298edb2c3d7a019.json +123 -0
  164. package/deployments/bscmainnet/solcInputs/ee8827a99e03cdf6f6a94fb8782ddf44.json +228 -0
  165. package/deployments/bscmainnet.json +8927 -873
  166. package/deployments/bscmainnet_addresses.json +19 -2
  167. package/deployments/bsctestnet/BTCBPrimeConverter.json +218 -0
  168. package/deployments/bsctestnet/ConverterNetwork.json +723 -0
  169. package/deployments/bsctestnet/ConverterNetwork_Implementation.json +823 -0
  170. package/deployments/bsctestnet/ConverterNetwork_Proxy.json +277 -0
  171. package/deployments/bsctestnet/ETHPrimeConverter.json +218 -0
  172. package/deployments/bsctestnet/ProtocolShareReserve_Implementation.json +89 -73
  173. package/deployments/bsctestnet/RiskFundConverter.json +2035 -0
  174. package/deployments/bsctestnet/RiskFundConverter_Implementation.json +2563 -0
  175. package/deployments/bsctestnet/RiskFundConverter_Proxy.json +403 -0
  176. package/deployments/bsctestnet/RiskFundV2.json +1049 -0
  177. package/deployments/bsctestnet/SingleTokenConverterBeacon.json +206 -0
  178. package/deployments/bsctestnet/SingleTokenConverterImp.json +2164 -0
  179. package/deployments/bsctestnet/USDCPrimeConverter.json +218 -0
  180. package/deployments/bsctestnet/USDTPrimeConverter.json +218 -0
  181. package/deployments/bsctestnet/XVSVaultConverter.json +218 -0
  182. package/deployments/bsctestnet/XVSVaultTreasury.json +579 -0
  183. package/deployments/bsctestnet/XVSVaultTreasury_Implementation.json +603 -0
  184. package/deployments/bsctestnet/XVSVaultTreasury_Proxy.json +281 -0
  185. package/deployments/bsctestnet/solcInputs/d02e743d886d63634298edb2c3d7a019.json +123 -0
  186. package/deployments/bsctestnet/solcInputs/ee8827a99e03cdf6f6a94fb8782ddf44.json +228 -0
  187. package/deployments/bsctestnet.json +8927 -873
  188. package/deployments/bsctestnet_addresses.json +19 -2
  189. package/dist/deploy/{1-deploy.d.ts → 001-psr.d.ts} +1 -1
  190. package/dist/deploy/001-psr.d.ts.map +1 -0
  191. package/dist/deploy/{1-deploy.js → 001-psr.js} +2 -2
  192. package/dist/deploy/001-psr.js.map +1 -0
  193. package/dist/deploy/002-risk-fund-converter.d.ts +4 -0
  194. package/dist/deploy/002-risk-fund-converter.d.ts.map +1 -0
  195. package/dist/deploy/002-risk-fund-converter.js +78 -0
  196. package/dist/deploy/002-risk-fund-converter.js.map +1 -0
  197. package/dist/deploy/003-xvs-vault-teasury.d.ts +7 -0
  198. package/dist/deploy/003-xvs-vault-teasury.d.ts.map +1 -0
  199. package/dist/deploy/003-xvs-vault-teasury.js +45 -0
  200. package/dist/deploy/003-xvs-vault-teasury.js.map +1 -0
  201. package/dist/deploy/004-single-token-converter.d.ts +4 -0
  202. package/dist/deploy/004-single-token-converter.d.ts.map +1 -0
  203. package/dist/deploy/004-single-token-converter.js +65 -0
  204. package/dist/deploy/004-single-token-converter.js.map +1 -0
  205. package/dist/deploy/005-converter-network.d.ts +7 -0
  206. package/dist/deploy/005-converter-network.d.ts.map +1 -0
  207. package/dist/deploy/005-converter-network.js +43 -0
  208. package/dist/deploy/005-converter-network.js.map +1 -0
  209. package/dist/hardhat.config.d.ts.map +1 -1
  210. package/dist/hardhat.config.js +6 -0
  211. package/dist/hardhat.config.js.map +1 -1
  212. package/dist/helpers/utils.d.ts +1 -0
  213. package/dist/helpers/utils.d.ts.map +1 -1
  214. package/dist/helpers/utils.js +2 -1
  215. package/dist/helpers/utils.js.map +1 -1
  216. package/package.json +19 -16
  217. package/typechain/AbstractTokenConverter.d.ts +1775 -0
  218. package/typechain/AccessControl.d.ts +388 -0
  219. package/typechain/BeaconProxy.d.ts +126 -0
  220. package/typechain/BoundValidatorInterface.d.ts +126 -0
  221. package/typechain/ConverterNetwork.d.ts +723 -0
  222. package/typechain/{PoolRegistryInterface.d.ts → ERC165.d.ts} +20 -25
  223. package/typechain/ERC1967Upgrade.d.ts +126 -0
  224. package/typechain/IAbstractTokenConverter.d.ts +773 -0
  225. package/typechain/IBeacon.d.ts +101 -0
  226. package/typechain/IComptroller.d.ts +136 -0
  227. package/typechain/IConverterNetwork.d.ts +292 -0
  228. package/typechain/IERC165.d.ts +116 -0
  229. package/typechain/{ComptrollerInterface.d.ts → IERC1822Proxiable.d.ts} +11 -11
  230. package/typechain/IERC1967.d.ts +126 -0
  231. package/typechain/IPoolRegistry.d.ts +155 -0
  232. package/typechain/IRiskFund.d.ts +200 -0
  233. package/typechain/IRiskFundConverter.d.ts +138 -0
  234. package/typechain/IRiskFundGetters.d.ts +103 -0
  235. package/typechain/IShortfall.d.ts +110 -0
  236. package/typechain/IXVSVault.d.ts +95 -0
  237. package/typechain/MaxLoopsLimitHelpersStorage.d.ts +101 -0
  238. package/typechain/MockACM.d.ts +615 -0
  239. package/typechain/MockArraySorter.d.ts +118 -0
  240. package/typechain/MockConverter.d.ts +1969 -0
  241. package/typechain/MockDeflatingToken.d.ts +486 -0
  242. package/typechain/MockRiskFundConverter.d.ts +2479 -0
  243. package/typechain/MockToken.d.ts +36 -0
  244. package/typechain/OracleInterface.d.ts +98 -0
  245. package/typechain/Ownable.d.ts +181 -0
  246. package/typechain/PausableUpgradeable.d.ts +129 -0
  247. package/typechain/Proxy.d.ts +78 -0
  248. package/typechain/ReserveHelpersStorage.d.ts +300 -0
  249. package/typechain/ResilientOracle.d.ts +1034 -0
  250. package/typechain/ResilientOracleInterface.d.ts +192 -0
  251. package/typechain/RiskFundConverter.d.ts +2235 -0
  252. package/typechain/RiskFundV1Storage.d.ts +353 -0
  253. package/typechain/RiskFundV2.d.ts +965 -0
  254. package/typechain/RiskFundV2Storage.d.ts +372 -0
  255. package/typechain/SingleTokenConverter.d.ts +1944 -0
  256. package/typechain/TwapInterface.d.ts +124 -0
  257. package/typechain/UpgradeableBeacon.d.ts +240 -0
  258. package/typechain/VBep20Interface.d.ts +379 -0
  259. package/typechain/XVSVaultTreasury.d.ts +515 -0
  260. package/typechain/factories/AbstractTokenConverter__factory.ts +1297 -0
  261. package/typechain/factories/AccessControl__factory.ts +227 -0
  262. package/typechain/factories/BeaconProxy__factory.ts +133 -0
  263. package/typechain/factories/BoundValidatorInterface__factory.ts +59 -0
  264. package/typechain/factories/ConverterNetwork__factory.ts +502 -0
  265. package/typechain/factories/ERC165__factory.ts +39 -0
  266. package/typechain/factories/ERC1967Upgrade__factory.ts +71 -0
  267. package/typechain/factories/IAbstractTokenConverter__factory.ts +466 -0
  268. package/typechain/factories/IBeacon__factory.ts +36 -0
  269. package/typechain/factories/IComptroller__factory.ts +68 -0
  270. package/typechain/factories/IConverterNetwork__factory.ts +142 -0
  271. package/typechain/factories/{ComptrollerInterface__factory.ts → IERC165__factory.ts} +14 -15
  272. package/typechain/factories/IERC1822Proxiable__factory.ts +39 -0
  273. package/typechain/factories/IERC1967__factory.ts +68 -0
  274. package/typechain/factories/IPoolRegistry__factory.ts +66 -0
  275. package/typechain/factories/{PoolRegistryInterface__factory.ts → IRiskFundConverter__factory.ts} +28 -19
  276. package/typechain/factories/IRiskFundGetters__factory.ts +39 -0
  277. package/typechain/factories/IRiskFund__factory.ts +89 -0
  278. package/typechain/factories/IShortfall__factory.ts +36 -0
  279. package/typechain/factories/IXVSVault__factory.ts +36 -0
  280. package/typechain/factories/MaxLoopsLimitHelpersStorage__factory.ts +75 -0
  281. package/typechain/factories/MockACM__factory.ts +411 -0
  282. package/typechain/factories/MockArraySorter__factory.ts +85 -0
  283. package/typechain/factories/MockConverter__factory.ts +1439 -0
  284. package/typechain/factories/MockDeflatingToken__factory.ts +389 -0
  285. package/typechain/factories/MockRiskFundConverter__factory.ts +1828 -0
  286. package/typechain/factories/MockToken__factory.ts +19 -1
  287. package/typechain/factories/OracleInterface__factory.ts +45 -0
  288. package/typechain/factories/Ownable__factory.ts +75 -0
  289. package/typechain/factories/PausableUpgradeable__factory.ts +78 -0
  290. package/typechain/factories/ProtocolShareReserve__factory.ts +6 -1
  291. package/typechain/factories/Proxy__factory.ts +28 -0
  292. package/typechain/factories/ReserveHelpersStorage__factory.ts +188 -0
  293. package/typechain/factories/ResilientOracleInterface__factory.ts +94 -0
  294. package/typechain/factories/ResilientOracle__factory.ts +710 -0
  295. package/typechain/factories/RiskFundConverter__factory.ts +1694 -0
  296. package/typechain/factories/RiskFundV1Storage__factory.ts +223 -0
  297. package/typechain/factories/RiskFundV2Storage__factory.ts +236 -0
  298. package/typechain/factories/RiskFundV2__factory.ts +672 -0
  299. package/typechain/factories/SingleTokenConverter__factory.ts +1441 -0
  300. package/typechain/factories/TwapInterface__factory.ts +61 -0
  301. package/typechain/factories/UpgradeableBeacon__factory.ts +163 -0
  302. package/typechain/factories/VBep20Interface__factory.ts +261 -0
  303. package/typechain/factories/XVSVaultTreasury__factory.ts +365 -0
  304. package/typechain/index.ts +84 -4
  305. package/artifacts/build-info/ac790619cb42a0f08af77d9ea733874e.json +0 -1
  306. package/artifacts/contracts/Interfaces/ComptrollerInterface.sol/ComptrollerInterface.dbg.json +0 -4
  307. package/artifacts/contracts/Interfaces/PoolRegistryInterface.sol/PoolRegistryInterface.dbg.json +0 -4
  308. package/contracts/Interfaces/ComptrollerInterface.sol +0 -6
  309. package/contracts/Interfaces/PoolRegistryInterface.sol +0 -7
  310. package/dist/deploy/1-deploy.d.ts.map +0 -1
  311. package/dist/deploy/1-deploy.js.map +0 -1
@@ -0,0 +1,649 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ResilientOracle",
4
+ "sourceName": "@venusprotocol/oracle/contracts/ResilientOracle.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "nativeMarketAddress",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "vaiAddress",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "contract BoundValidatorInterface",
20
+ "name": "_boundValidator",
21
+ "type": "address"
22
+ }
23
+ ],
24
+ "stateMutability": "nonpayable",
25
+ "type": "constructor"
26
+ },
27
+ {
28
+ "inputs": [
29
+ {
30
+ "internalType": "address",
31
+ "name": "sender",
32
+ "type": "address"
33
+ },
34
+ {
35
+ "internalType": "address",
36
+ "name": "calledContract",
37
+ "type": "address"
38
+ },
39
+ {
40
+ "internalType": "string",
41
+ "name": "methodSignature",
42
+ "type": "string"
43
+ }
44
+ ],
45
+ "name": "Unauthorized",
46
+ "type": "error"
47
+ },
48
+ {
49
+ "anonymous": false,
50
+ "inputs": [
51
+ {
52
+ "indexed": false,
53
+ "internalType": "uint8",
54
+ "name": "version",
55
+ "type": "uint8"
56
+ }
57
+ ],
58
+ "name": "Initialized",
59
+ "type": "event"
60
+ },
61
+ {
62
+ "anonymous": false,
63
+ "inputs": [
64
+ {
65
+ "indexed": false,
66
+ "internalType": "address",
67
+ "name": "oldAccessControlManager",
68
+ "type": "address"
69
+ },
70
+ {
71
+ "indexed": false,
72
+ "internalType": "address",
73
+ "name": "newAccessControlManager",
74
+ "type": "address"
75
+ }
76
+ ],
77
+ "name": "NewAccessControlManager",
78
+ "type": "event"
79
+ },
80
+ {
81
+ "anonymous": false,
82
+ "inputs": [
83
+ {
84
+ "indexed": true,
85
+ "internalType": "address",
86
+ "name": "asset",
87
+ "type": "address"
88
+ },
89
+ {
90
+ "indexed": true,
91
+ "internalType": "uint256",
92
+ "name": "role",
93
+ "type": "uint256"
94
+ },
95
+ {
96
+ "indexed": true,
97
+ "internalType": "bool",
98
+ "name": "enable",
99
+ "type": "bool"
100
+ }
101
+ ],
102
+ "name": "OracleEnabled",
103
+ "type": "event"
104
+ },
105
+ {
106
+ "anonymous": false,
107
+ "inputs": [
108
+ {
109
+ "indexed": true,
110
+ "internalType": "address",
111
+ "name": "asset",
112
+ "type": "address"
113
+ },
114
+ {
115
+ "indexed": true,
116
+ "internalType": "address",
117
+ "name": "oracle",
118
+ "type": "address"
119
+ },
120
+ {
121
+ "indexed": true,
122
+ "internalType": "uint256",
123
+ "name": "role",
124
+ "type": "uint256"
125
+ }
126
+ ],
127
+ "name": "OracleSet",
128
+ "type": "event"
129
+ },
130
+ {
131
+ "anonymous": false,
132
+ "inputs": [
133
+ {
134
+ "indexed": true,
135
+ "internalType": "address",
136
+ "name": "previousOwner",
137
+ "type": "address"
138
+ },
139
+ {
140
+ "indexed": true,
141
+ "internalType": "address",
142
+ "name": "newOwner",
143
+ "type": "address"
144
+ }
145
+ ],
146
+ "name": "OwnershipTransferStarted",
147
+ "type": "event"
148
+ },
149
+ {
150
+ "anonymous": false,
151
+ "inputs": [
152
+ {
153
+ "indexed": true,
154
+ "internalType": "address",
155
+ "name": "previousOwner",
156
+ "type": "address"
157
+ },
158
+ {
159
+ "indexed": true,
160
+ "internalType": "address",
161
+ "name": "newOwner",
162
+ "type": "address"
163
+ }
164
+ ],
165
+ "name": "OwnershipTransferred",
166
+ "type": "event"
167
+ },
168
+ {
169
+ "anonymous": false,
170
+ "inputs": [
171
+ {
172
+ "indexed": false,
173
+ "internalType": "address",
174
+ "name": "account",
175
+ "type": "address"
176
+ }
177
+ ],
178
+ "name": "Paused",
179
+ "type": "event"
180
+ },
181
+ {
182
+ "anonymous": false,
183
+ "inputs": [
184
+ {
185
+ "indexed": true,
186
+ "internalType": "address",
187
+ "name": "asset",
188
+ "type": "address"
189
+ },
190
+ {
191
+ "indexed": true,
192
+ "internalType": "address",
193
+ "name": "mainOracle",
194
+ "type": "address"
195
+ },
196
+ {
197
+ "indexed": true,
198
+ "internalType": "address",
199
+ "name": "pivotOracle",
200
+ "type": "address"
201
+ },
202
+ {
203
+ "indexed": false,
204
+ "internalType": "address",
205
+ "name": "fallbackOracle",
206
+ "type": "address"
207
+ }
208
+ ],
209
+ "name": "TokenConfigAdded",
210
+ "type": "event"
211
+ },
212
+ {
213
+ "anonymous": false,
214
+ "inputs": [
215
+ {
216
+ "indexed": false,
217
+ "internalType": "address",
218
+ "name": "account",
219
+ "type": "address"
220
+ }
221
+ ],
222
+ "name": "Unpaused",
223
+ "type": "event"
224
+ },
225
+ {
226
+ "inputs": [],
227
+ "name": "INVALID_PRICE",
228
+ "outputs": [
229
+ {
230
+ "internalType": "uint256",
231
+ "name": "",
232
+ "type": "uint256"
233
+ }
234
+ ],
235
+ "stateMutability": "view",
236
+ "type": "function"
237
+ },
238
+ {
239
+ "inputs": [],
240
+ "name": "NATIVE_TOKEN_ADDR",
241
+ "outputs": [
242
+ {
243
+ "internalType": "address",
244
+ "name": "",
245
+ "type": "address"
246
+ }
247
+ ],
248
+ "stateMutability": "view",
249
+ "type": "function"
250
+ },
251
+ {
252
+ "inputs": [],
253
+ "name": "acceptOwnership",
254
+ "outputs": [],
255
+ "stateMutability": "nonpayable",
256
+ "type": "function"
257
+ },
258
+ {
259
+ "inputs": [],
260
+ "name": "accessControlManager",
261
+ "outputs": [
262
+ {
263
+ "internalType": "contract IAccessControlManagerV8",
264
+ "name": "",
265
+ "type": "address"
266
+ }
267
+ ],
268
+ "stateMutability": "view",
269
+ "type": "function"
270
+ },
271
+ {
272
+ "inputs": [],
273
+ "name": "boundValidator",
274
+ "outputs": [
275
+ {
276
+ "internalType": "contract BoundValidatorInterface",
277
+ "name": "",
278
+ "type": "address"
279
+ }
280
+ ],
281
+ "stateMutability": "view",
282
+ "type": "function"
283
+ },
284
+ {
285
+ "inputs": [
286
+ {
287
+ "internalType": "address",
288
+ "name": "asset",
289
+ "type": "address"
290
+ },
291
+ {
292
+ "internalType": "enum ResilientOracle.OracleRole",
293
+ "name": "role",
294
+ "type": "uint8"
295
+ },
296
+ {
297
+ "internalType": "bool",
298
+ "name": "enable",
299
+ "type": "bool"
300
+ }
301
+ ],
302
+ "name": "enableOracle",
303
+ "outputs": [],
304
+ "stateMutability": "nonpayable",
305
+ "type": "function"
306
+ },
307
+ {
308
+ "inputs": [
309
+ {
310
+ "internalType": "address",
311
+ "name": "asset",
312
+ "type": "address"
313
+ },
314
+ {
315
+ "internalType": "enum ResilientOracle.OracleRole",
316
+ "name": "role",
317
+ "type": "uint8"
318
+ }
319
+ ],
320
+ "name": "getOracle",
321
+ "outputs": [
322
+ {
323
+ "internalType": "address",
324
+ "name": "oracle",
325
+ "type": "address"
326
+ },
327
+ {
328
+ "internalType": "bool",
329
+ "name": "enabled",
330
+ "type": "bool"
331
+ }
332
+ ],
333
+ "stateMutability": "view",
334
+ "type": "function"
335
+ },
336
+ {
337
+ "inputs": [
338
+ {
339
+ "internalType": "address",
340
+ "name": "asset",
341
+ "type": "address"
342
+ }
343
+ ],
344
+ "name": "getPrice",
345
+ "outputs": [
346
+ {
347
+ "internalType": "uint256",
348
+ "name": "",
349
+ "type": "uint256"
350
+ }
351
+ ],
352
+ "stateMutability": "view",
353
+ "type": "function"
354
+ },
355
+ {
356
+ "inputs": [
357
+ {
358
+ "internalType": "address",
359
+ "name": "asset",
360
+ "type": "address"
361
+ }
362
+ ],
363
+ "name": "getTokenConfig",
364
+ "outputs": [
365
+ {
366
+ "components": [
367
+ {
368
+ "internalType": "address",
369
+ "name": "asset",
370
+ "type": "address"
371
+ },
372
+ {
373
+ "internalType": "address[3]",
374
+ "name": "oracles",
375
+ "type": "address[3]"
376
+ },
377
+ {
378
+ "internalType": "bool[3]",
379
+ "name": "enableFlagsForOracles",
380
+ "type": "bool[3]"
381
+ }
382
+ ],
383
+ "internalType": "struct ResilientOracle.TokenConfig",
384
+ "name": "",
385
+ "type": "tuple"
386
+ }
387
+ ],
388
+ "stateMutability": "view",
389
+ "type": "function"
390
+ },
391
+ {
392
+ "inputs": [
393
+ {
394
+ "internalType": "address",
395
+ "name": "vToken",
396
+ "type": "address"
397
+ }
398
+ ],
399
+ "name": "getUnderlyingPrice",
400
+ "outputs": [
401
+ {
402
+ "internalType": "uint256",
403
+ "name": "",
404
+ "type": "uint256"
405
+ }
406
+ ],
407
+ "stateMutability": "view",
408
+ "type": "function"
409
+ },
410
+ {
411
+ "inputs": [
412
+ {
413
+ "internalType": "address",
414
+ "name": "accessControlManager_",
415
+ "type": "address"
416
+ }
417
+ ],
418
+ "name": "initialize",
419
+ "outputs": [],
420
+ "stateMutability": "nonpayable",
421
+ "type": "function"
422
+ },
423
+ {
424
+ "inputs": [],
425
+ "name": "nativeMarket",
426
+ "outputs": [
427
+ {
428
+ "internalType": "address",
429
+ "name": "",
430
+ "type": "address"
431
+ }
432
+ ],
433
+ "stateMutability": "view",
434
+ "type": "function"
435
+ },
436
+ {
437
+ "inputs": [],
438
+ "name": "owner",
439
+ "outputs": [
440
+ {
441
+ "internalType": "address",
442
+ "name": "",
443
+ "type": "address"
444
+ }
445
+ ],
446
+ "stateMutability": "view",
447
+ "type": "function"
448
+ },
449
+ {
450
+ "inputs": [],
451
+ "name": "pause",
452
+ "outputs": [],
453
+ "stateMutability": "nonpayable",
454
+ "type": "function"
455
+ },
456
+ {
457
+ "inputs": [],
458
+ "name": "paused",
459
+ "outputs": [
460
+ {
461
+ "internalType": "bool",
462
+ "name": "",
463
+ "type": "bool"
464
+ }
465
+ ],
466
+ "stateMutability": "view",
467
+ "type": "function"
468
+ },
469
+ {
470
+ "inputs": [],
471
+ "name": "pendingOwner",
472
+ "outputs": [
473
+ {
474
+ "internalType": "address",
475
+ "name": "",
476
+ "type": "address"
477
+ }
478
+ ],
479
+ "stateMutability": "view",
480
+ "type": "function"
481
+ },
482
+ {
483
+ "inputs": [],
484
+ "name": "renounceOwnership",
485
+ "outputs": [],
486
+ "stateMutability": "nonpayable",
487
+ "type": "function"
488
+ },
489
+ {
490
+ "inputs": [
491
+ {
492
+ "internalType": "address",
493
+ "name": "accessControlManager_",
494
+ "type": "address"
495
+ }
496
+ ],
497
+ "name": "setAccessControlManager",
498
+ "outputs": [],
499
+ "stateMutability": "nonpayable",
500
+ "type": "function"
501
+ },
502
+ {
503
+ "inputs": [
504
+ {
505
+ "internalType": "address",
506
+ "name": "asset",
507
+ "type": "address"
508
+ },
509
+ {
510
+ "internalType": "address",
511
+ "name": "oracle",
512
+ "type": "address"
513
+ },
514
+ {
515
+ "internalType": "enum ResilientOracle.OracleRole",
516
+ "name": "role",
517
+ "type": "uint8"
518
+ }
519
+ ],
520
+ "name": "setOracle",
521
+ "outputs": [],
522
+ "stateMutability": "nonpayable",
523
+ "type": "function"
524
+ },
525
+ {
526
+ "inputs": [
527
+ {
528
+ "components": [
529
+ {
530
+ "internalType": "address",
531
+ "name": "asset",
532
+ "type": "address"
533
+ },
534
+ {
535
+ "internalType": "address[3]",
536
+ "name": "oracles",
537
+ "type": "address[3]"
538
+ },
539
+ {
540
+ "internalType": "bool[3]",
541
+ "name": "enableFlagsForOracles",
542
+ "type": "bool[3]"
543
+ }
544
+ ],
545
+ "internalType": "struct ResilientOracle.TokenConfig",
546
+ "name": "tokenConfig",
547
+ "type": "tuple"
548
+ }
549
+ ],
550
+ "name": "setTokenConfig",
551
+ "outputs": [],
552
+ "stateMutability": "nonpayable",
553
+ "type": "function"
554
+ },
555
+ {
556
+ "inputs": [
557
+ {
558
+ "components": [
559
+ {
560
+ "internalType": "address",
561
+ "name": "asset",
562
+ "type": "address"
563
+ },
564
+ {
565
+ "internalType": "address[3]",
566
+ "name": "oracles",
567
+ "type": "address[3]"
568
+ },
569
+ {
570
+ "internalType": "bool[3]",
571
+ "name": "enableFlagsForOracles",
572
+ "type": "bool[3]"
573
+ }
574
+ ],
575
+ "internalType": "struct ResilientOracle.TokenConfig[]",
576
+ "name": "tokenConfigs_",
577
+ "type": "tuple[]"
578
+ }
579
+ ],
580
+ "name": "setTokenConfigs",
581
+ "outputs": [],
582
+ "stateMutability": "nonpayable",
583
+ "type": "function"
584
+ },
585
+ {
586
+ "inputs": [
587
+ {
588
+ "internalType": "address",
589
+ "name": "newOwner",
590
+ "type": "address"
591
+ }
592
+ ],
593
+ "name": "transferOwnership",
594
+ "outputs": [],
595
+ "stateMutability": "nonpayable",
596
+ "type": "function"
597
+ },
598
+ {
599
+ "inputs": [],
600
+ "name": "unpause",
601
+ "outputs": [],
602
+ "stateMutability": "nonpayable",
603
+ "type": "function"
604
+ },
605
+ {
606
+ "inputs": [
607
+ {
608
+ "internalType": "address",
609
+ "name": "asset",
610
+ "type": "address"
611
+ }
612
+ ],
613
+ "name": "updateAssetPrice",
614
+ "outputs": [],
615
+ "stateMutability": "nonpayable",
616
+ "type": "function"
617
+ },
618
+ {
619
+ "inputs": [
620
+ {
621
+ "internalType": "address",
622
+ "name": "vToken",
623
+ "type": "address"
624
+ }
625
+ ],
626
+ "name": "updatePrice",
627
+ "outputs": [],
628
+ "stateMutability": "nonpayable",
629
+ "type": "function"
630
+ },
631
+ {
632
+ "inputs": [],
633
+ "name": "vai",
634
+ "outputs": [
635
+ {
636
+ "internalType": "address",
637
+ "name": "",
638
+ "type": "address"
639
+ }
640
+ ],
641
+ "stateMutability": "view",
642
+ "type": "function"
643
+ }
644
+ ],
645
+ "bytecode": "0x60e06040523480156200001157600080fd5b506040516200291738038062002917833981016040819052620000349162000195565b806001600160a01b038116620000915760405162461bcd60e51b815260206004820152601560248201527f63616e2774206265207a65726f2061646472657373000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b0380851660805283811660a052821660c052620000b4620000be565b50505050620001e9565b600054610100900460ff1615620001285760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840162000088565b60005460ff908116146200017a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200019257600080fd5b50565b600080600060608486031215620001ab57600080fd5b8351620001b8816200017c565b6020850151909350620001cb816200017c565b6040850151909250620001de816200017c565b809150509250925092565b60805160a05160c0516126d462000243600039600081816101f30152818161159401528181611aeb0152611c8d0152600081816103780152818161179501526117ce0152600081816102a9015261174001526126d46000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80638b855da4116100ee578063b62cad6911610097578063cb67e3b111610071578063cb67e3b1146103ad578063e30c3978146103cd578063f2fde38b146103de578063fc57d4df146103f157600080fd5b8063b62cad6914610360578063b62e4c9214610373578063c4d66de81461039a57600080fd5b8063a6b1344a116100c8578063a6b1344a14610321578063a9534f8a14610334578063b4a0bdf31461034f57600080fd5b80638b855da4146102cb5780638da5cb5b146102fd57806396e85ced1461030e57600080fd5b80634b932b8f1161015b578063715018a611610135578063715018a61461028c57806379ba5097146102945780638456cb591461029c5780638a2f7f6d146102a457600080fd5b80634b932b8f1461025b5780634bf39cba1461026e5780635c975abb1461027657600080fd5b806333d334941161018c57806333d33494146101ee5780633f4ba83a1461023257806341976e091461023a57600080fd5b80630e32cb86146101b35780632cfa3871146101c8578063333a21b0146101db575b600080fd5b6101c66101c136600461217d565b610404565b005b6101c66101d6366004612321565b610418565b6101c66101e93660046123d1565b6104aa565b6102157f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6101c6610674565b61024d61024836600461217d565b6106bc565b604051908152602001610229565b6101c6610269366004612401565b610726565b61024d600081565b60335460ff166040519015158152602001610229565b6101c66108d2565b6101c66108e4565b6101c661096f565b6102157f000000000000000000000000000000000000000000000000000000000000000081565b6102de6102d936600461244a565b6109b5565b604080516001600160a01b039093168352901515602083015201610229565b6065546001600160a01b0316610215565b6101c661031c36600461217d565b610a57565b6101c661032f36600461247f565b610b1b565b61021573bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb81565b60c9546001600160a01b0316610215565b6101c661036e36600461217d565b610d83565b6102157f000000000000000000000000000000000000000000000000000000000000000081565b6101c66103a836600461217d565b610e38565b6103c06103bb36600461217d565b610fbb565b60405161022991906124c6565b6097546001600160a01b0316610215565b6101c66103ec36600461217d565b611090565b61024d6103ff36600461217d565b611119565b61040c611191565b610415816111eb565b50565b805160000361046e5760405162461bcd60e51b815260206004820152601160248201527f6c656e6774682063616e2774206265203000000000000000000000000000000060448201526064015b60405180910390fd5b805160005b818110156104a55761049d83828151811061049057610490612541565b60200260200101516104aa565b600101610473565b505050565b80516001600160a01b0381166105025760405162461bcd60e51b815260206004820152601560248201527f63616e2774206265207a65726f206164647265737300000000000000000000006044820152606401610465565b6020820151516001600160a01b03811661055e5760405162461bcd60e51b815260206004820152601560248201527f63616e2774206265207a65726f206164647265737300000000000000000000006044820152606401610465565b61059c6040518060400160405280601b81526020017f736574546f6b656e436f6e66696728546f6b656e436f6e6669672900000000008152506112d9565b82516001600160a01b03908116600090815260fb60209081526040909120855181547fffffffffffffffffffffffff00000000000000000000000000000000000000001693169290921782558401518491906105fe9060018301906003612003565b5060408201516106149060048301906003612073565b505050602083810151808201518151865160409384015193516001600160a01b039485168152928416949184169316917fa51ad01e2270c314a7b78f0c60fe66c723f2d06c121d63fcdce776e654878fc1910160405180910390a4505050565b6106b26040518060400160405280600981526020017f756e7061757365282900000000000000000000000000000000000000000000008152506112d9565b6106ba6113a5565b565b60006106ca60335460ff1690565b156107175760405162461bcd60e51b815260206004820152601a60248201527f726573696c69656e74206f7261636c65206973207061757365640000000000006044820152606401610465565b61072082611415565b92915050565b826001600160a01b03811661077d5760405162461bcd60e51b815260206004820152601560248201527f63616e2774206265207a65726f206164647265737300000000000000000000006044820152606401610465565b6001600160a01b03808516600090815260fb60205260409020548591166107e65760405162461bcd60e51b815260206004820152601760248201527f746f6b656e20636f6e666967206d7573742065786973740000000000000000006044820152606401610465565b6108246040518060400160405280602081526020017f656e61626c654f7261636c6528616464726573732c75696e74382c626f6f6c298152506112d9565b6001600160a01b038516600090815260fb60205260409020839060040185600281111561085357610853612570565b6003811061086357610863612541565b602091828204019190066101000a81548160ff02191690831515021790555082151584600281111561089757610897612570565b6040516001600160a01b038816907fcf3cad1ec87208efbde5d82a0557484a78d4182c3ad16926a5463bc1f7234b3d90600090a45050505050565b6108da611191565b6106ba6000611659565b60975433906001600160a01b031681146109665760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e657200000000000000000000000000000000000000000000006064820152608401610465565b61041581611659565b6109ad6040518060400160405280600781526020017f70617573652829000000000000000000000000000000000000000000000000008152506112d9565b6106ba61168a565b6001600160a01b038216600090815260fb6020526040812081906001018360028111156109e4576109e4612570565b600381106109f4576109f4612541565b01546001600160a01b03858116600090815260fb6020526040902091169250600401836002811115610a2857610a28612570565b60038110610a3857610a38612541565b602091828204019190069054906101000a900460ff1690509250929050565b6000610a62826116e5565b9050600080610a728360016109b5565b90925090506001600160a01b03821615801590610a8c5750805b15610b15576040517f725068a50000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015283169063725068a5906024016020604051808303816000875af1925050508015610b0e575060408051601f3d908101601f19168201909252610b0b9181019061259f565b60015b15610b1557505b50505050565b826001600160a01b038116610b725760405162461bcd60e51b815260206004820152601560248201527f63616e2774206265207a65726f206164647265737300000000000000000000006044820152606401610465565b6001600160a01b03808516600090815260fb6020526040902054859116610bdb5760405162461bcd60e51b815260206004820152601760248201527f746f6b656e20636f6e666967206d7573742065786973740000000000000000006044820152606401610465565b610c196040518060400160405280602081526020017f7365744f7261636c6528616464726573732c616464726573732c75696e7438298152506112d9565b6001600160a01b038416158015610c4157506000836002811115610c3f57610c3f612570565b145b15610cb45760405162461bcd60e51b815260206004820152602560248201527f63616e277420736574207a65726f206164647265737320746f206d61696e206f60448201527f7261636c650000000000000000000000000000000000000000000000000000006064820152608401610465565b6001600160a01b038516600090815260fb602052604090208490600101846002811115610ce357610ce3612570565b60038110610cf357610cf3612541565b0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055826002811115610d3c57610d3c612570565b846001600160a01b0316866001600160a01b03167fea681d3efb830ef032a9c29a7215b5ceeeb546250d2c463dbf87817aecda1bf160405160405180910390a45050505050565b600080610d918360016109b5565b90925090506001600160a01b03821615801590610dab5750805b156104a5576040517f725068a50000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015283169063725068a5906024016020604051808303816000875af1925050508015610e2d575060408051601f3d908101601f19168201909252610e2a9181019061259f565b60015b156104a55750505050565b600054610100900460ff1615808015610e585750600054600160ff909116105b80610e725750303b158015610e72575060005460ff166001145b610ee45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610465565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610f4257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610f4b8261185c565b610f536118ea565b8015610fb757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b5050565b610fc3612100565b6001600160a01b03828116600090815260fb60209081526040918290208251606080820185528254909516815283519485019384905293909291840191600184019060039082845b81546001600160a01b0316815260019091019060200180831161100b575050509183525050604080516060810191829052602090920191906004840190600390826000855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116110505790505050505050815250509050919050565b611098611191565b609780546001600160a01b0383167fffffffffffffffffffffffff000000000000000000000000000000000000000090911681179091556110e16065546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600061112760335460ff1690565b156111745760405162461bcd60e51b815260206004820152601a60248201527f726573696c69656e74206f7261636c65206973207061757365640000000000006044820152606401610465565b600061117f836116e5565b905061118a81611415565b9392505050565b6065546001600160a01b031633146106ba5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610465565b6001600160a01b0381166112675760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610465565b60c980546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09101610fae565b60c9546040517f18c5e8ab0000000000000000000000000000000000000000000000000000000081526000916001600160a01b0316906318c5e8ab906113259033908690600401612605565b602060405180830381865afa158015611342573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611366919061262f565b905080610fb7573330836040517f4a3fa2930000000000000000000000000000000000000000000000000000000081526004016104659392919061264c565b6113ad61196f565b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60008080806114258560016109b5565b9150915080801561143e57506001600160a01b03821615155b156114c6576040517f41976e090000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528316906341976e0990602401602060405180830381865afa9250505080156114be575060408051601f3d908101601f191682019092526114bb9181019061259f565b60015b156114c65792505b6000806114e887868580156114e357506001600160a01b03871615155b6119c1565b91509150600082141580156114fa5750805b15611509575095945050505050565b6000806115168988611b76565b91509150600082141580156115285750805b156115395750979650505050505050565b831580159061154757508115155b80156115ff57506040517f97c7033e0000000000000000000000000000000000000000000000000000000081526001600160a01b038a8116600483015260248201869052604482018490527f000000000000000000000000000000000000000000000000000000000000000016906397c7033e90606401602060405180830381865afa1580156115db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ff919061262f565b15611611575091979650505050505050565b60405162461bcd60e51b815260206004820152601e60248201527f696e76616c696420726573696c69656e74206f7261636c6520707269636500006044820152606401610465565b609780547fffffffffffffffffffffffff000000000000000000000000000000000000000016905561041581611d17565b611692611d81565b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113f83390565b6000816001600160a01b03811661173e5760405162461bcd60e51b815260206004820152601560248201527f63616e2774206265207a65726f206164647265737300000000000000000000006044820152606401610465565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036117935773bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb9150611856565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036117f4577f00000000000000000000000000000000000000000000000000000000000000009150611856565b826001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611832573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118a9190612681565b50919050565b600054610100900460ff166118d95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610465565b6118e1611dd4565b61041581611e59565b600054610100900460ff166119675760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610465565b6106ba611ed6565b60335460ff166106ba5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610465565b6000806000806119d28760006109b5565b915091508080156119eb57506001600160a01b03821615155b15611b64576040517f41976e090000000000000000000000000000000000000000000000000000000081526001600160a01b0388811660048301528316906341976e0990602401602060405180830381865afa925050508015611a6b575060408051601f3d908101601f19168201909252611a689181019061259f565b60015b611a7d57600080935093505050611b6e565b85611a9057935060019250611b6e915050565b86611aa357935060009250611b6e915050565b6040517f97c7033e0000000000000000000000000000000000000000000000000000000081526001600160a01b038981166004830152602482018390526044820189905282917f0000000000000000000000000000000000000000000000000000000000000000909116906397c7033e90606401602060405180830381865afa158015611b34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b58919061262f565b94509450505050611b6e565b6000809350935050505b935093915050565b600080600080611b878660026109b5565b91509150808015611ba057506001600160a01b03821615155b15611d06576040517f41976e090000000000000000000000000000000000000000000000000000000081526001600160a01b0387811660048301528316906341976e0990602401602060405180830381865afa925050508015611c20575060408051601f3d908101601f19168201909252611c1d9181019061259f565b60015b611c3257600080935093505050611d10565b85611c4557935060009250611d10915050565b6040517f97c7033e0000000000000000000000000000000000000000000000000000000081526001600160a01b038881166004830152602482018390526044820188905282917f0000000000000000000000000000000000000000000000000000000000000000909116906397c7033e90606401602060405180830381865afa158015611cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfa919061262f565b94509450505050611d10565b6000809350935050505b9250929050565b606580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60335460ff16156106ba5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610465565b600054610100900460ff16611e515760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610465565b6106ba611f7d565b600054610100900460ff1661040c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610465565b600054610100900460ff16611f535760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610465565b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b600054610100900460ff16611ffa5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610465565b6106ba33611659565b8260038101928215612063579160200282015b8281111561206357825182547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909116178255602090920191600190910190612016565b5061206f929150612135565b5090565b6001830191839082156120635791602002820160005b838211156120c657835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302612089565b80156120f35782816101000a81549060ff02191690556001016020816000010492830192600103026120c6565b505061206f929150612135565b604051806060016040528060006001600160a01b0316815260200161212361214a565b815260200161213061214a565b905290565b5b8082111561206f5760008155600101612136565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461041557600080fd5b60006020828403121561218f57600080fd5b813561118a81612168565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156121ec576121ec61219a565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561221b5761221b61219a565b604052919050565b801515811461041557600080fd5b600082601f83011261224257600080fd5b61224a6121c9565b80606084018581111561225c57600080fd5b845b8181101561227f57803561227181612223565b84526020938401930161225e565b509095945050505050565b600060e0828403121561229c57600080fd5b6122a46121c9565b905081356122b181612168565b81526020603f830184136122c457600080fd5b6122cc6121c9565b8060808501868111156122de57600080fd5b8386015b818110156123025780356122f581612168565b84529284019284016122e2565b5081848601526123128782612231565b60408601525050505092915050565b6000602080838503121561233457600080fd5b823567ffffffffffffffff8082111561234c57600080fd5b818501915085601f83011261236057600080fd5b8135818111156123725761237261219a565b612380848260051b016121f2565b818152848101925060e091820284018501918883111561239f57600080fd5b938501935b828510156123c5576123b6898661228a565b845293840193928501926123a4565b50979650505050505050565b600060e082840312156123e357600080fd5b61118a838361228a565b8035600381106123fc57600080fd5b919050565b60008060006060848603121561241657600080fd5b833561242181612168565b925061242f602085016123ed565b9150604084013561243f81612223565b809150509250925092565b6000806040838503121561245d57600080fd5b823561246881612168565b9150612476602084016123ed565b90509250929050565b60008060006060848603121561249457600080fd5b833561249f81612168565b925060208401356124af81612168565b91506124bd604085016123ed565b90509250925092565b600060e0820190506001600160a01b0380845116835260208085015181850160005b60038110156125075782518516825291830191908301906001016124e8565b505050604085015191506080840160005b6003811015612537578351151582529282019290820190600101612518565b5050505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000602082840312156125b157600080fd5b5051919050565b6000815180845260005b818110156125de576020818501810151868301820152016125c2565b818111156125f0576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b038316815260406020820152600061262760408301846125b8565b949350505050565b60006020828403121561264157600080fd5b815161118a81612223565b60006001600160a01b0380861683528085166020840152506060604083015261267860608301846125b8565b95945050505050565b60006020828403121561269357600080fd5b815161118a8161216856fea26469706673582212200c48fca54a4fdc31862fad4d5d8de0ccef938bf5159732093a68c9d10568ffbb64736f6c634300080d0033",
646
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101ae5760003560e01c80638b855da4116100ee578063b62cad6911610097578063cb67e3b111610071578063cb67e3b1146103ad578063e30c3978146103cd578063f2fde38b146103de578063fc57d4df146103f157600080fd5b8063b62cad6914610360578063b62e4c9214610373578063c4d66de81461039a57600080fd5b8063a6b1344a116100c8578063a6b1344a14610321578063a9534f8a14610334578063b4a0bdf31461034f57600080fd5b80638b855da4146102cb5780638da5cb5b146102fd57806396e85ced1461030e57600080fd5b80634b932b8f1161015b578063715018a611610135578063715018a61461028c57806379ba5097146102945780638456cb591461029c5780638a2f7f6d146102a457600080fd5b80634b932b8f1461025b5780634bf39cba1461026e5780635c975abb1461027657600080fd5b806333d334941161018c57806333d33494146101ee5780633f4ba83a1461023257806341976e091461023a57600080fd5b80630e32cb86146101b35780632cfa3871146101c8578063333a21b0146101db575b600080fd5b6101c66101c136600461217d565b610404565b005b6101c66101d6366004612321565b610418565b6101c66101e93660046123d1565b6104aa565b6102157f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6101c6610674565b61024d61024836600461217d565b6106bc565b604051908152602001610229565b6101c6610269366004612401565b610726565b61024d600081565b60335460ff166040519015158152602001610229565b6101c66108d2565b6101c66108e4565b6101c661096f565b6102157f000000000000000000000000000000000000000000000000000000000000000081565b6102de6102d936600461244a565b6109b5565b604080516001600160a01b039093168352901515602083015201610229565b6065546001600160a01b0316610215565b6101c661031c36600461217d565b610a57565b6101c661032f36600461247f565b610b1b565b61021573bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb81565b60c9546001600160a01b0316610215565b6101c661036e36600461217d565b610d83565b6102157f000000000000000000000000000000000000000000000000000000000000000081565b6101c66103a836600461217d565b610e38565b6103c06103bb36600461217d565b610fbb565b60405161022991906124c6565b6097546001600160a01b0316610215565b6101c66103ec36600461217d565b611090565b61024d6103ff36600461217d565b611119565b61040c611191565b610415816111eb565b50565b805160000361046e5760405162461bcd60e51b815260206004820152601160248201527f6c656e6774682063616e2774206265203000000000000000000000000000000060448201526064015b60405180910390fd5b805160005b818110156104a55761049d83828151811061049057610490612541565b60200260200101516104aa565b600101610473565b505050565b80516001600160a01b0381166105025760405162461bcd60e51b815260206004820152601560248201527f63616e2774206265207a65726f206164647265737300000000000000000000006044820152606401610465565b6020820151516001600160a01b03811661055e5760405162461bcd60e51b815260206004820152601560248201527f63616e2774206265207a65726f206164647265737300000000000000000000006044820152606401610465565b61059c6040518060400160405280601b81526020017f736574546f6b656e436f6e66696728546f6b656e436f6e6669672900000000008152506112d9565b82516001600160a01b03908116600090815260fb60209081526040909120855181547fffffffffffffffffffffffff00000000000000000000000000000000000000001693169290921782558401518491906105fe9060018301906003612003565b5060408201516106149060048301906003612073565b505050602083810151808201518151865160409384015193516001600160a01b039485168152928416949184169316917fa51ad01e2270c314a7b78f0c60fe66c723f2d06c121d63fcdce776e654878fc1910160405180910390a4505050565b6106b26040518060400160405280600981526020017f756e7061757365282900000000000000000000000000000000000000000000008152506112d9565b6106ba6113a5565b565b60006106ca60335460ff1690565b156107175760405162461bcd60e51b815260206004820152601a60248201527f726573696c69656e74206f7261636c65206973207061757365640000000000006044820152606401610465565b61072082611415565b92915050565b826001600160a01b03811661077d5760405162461bcd60e51b815260206004820152601560248201527f63616e2774206265207a65726f206164647265737300000000000000000000006044820152606401610465565b6001600160a01b03808516600090815260fb60205260409020548591166107e65760405162461bcd60e51b815260206004820152601760248201527f746f6b656e20636f6e666967206d7573742065786973740000000000000000006044820152606401610465565b6108246040518060400160405280602081526020017f656e61626c654f7261636c6528616464726573732c75696e74382c626f6f6c298152506112d9565b6001600160a01b038516600090815260fb60205260409020839060040185600281111561085357610853612570565b6003811061086357610863612541565b602091828204019190066101000a81548160ff02191690831515021790555082151584600281111561089757610897612570565b6040516001600160a01b038816907fcf3cad1ec87208efbde5d82a0557484a78d4182c3ad16926a5463bc1f7234b3d90600090a45050505050565b6108da611191565b6106ba6000611659565b60975433906001600160a01b031681146109665760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e657200000000000000000000000000000000000000000000006064820152608401610465565b61041581611659565b6109ad6040518060400160405280600781526020017f70617573652829000000000000000000000000000000000000000000000000008152506112d9565b6106ba61168a565b6001600160a01b038216600090815260fb6020526040812081906001018360028111156109e4576109e4612570565b600381106109f4576109f4612541565b01546001600160a01b03858116600090815260fb6020526040902091169250600401836002811115610a2857610a28612570565b60038110610a3857610a38612541565b602091828204019190069054906101000a900460ff1690509250929050565b6000610a62826116e5565b9050600080610a728360016109b5565b90925090506001600160a01b03821615801590610a8c5750805b15610b15576040517f725068a50000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015283169063725068a5906024016020604051808303816000875af1925050508015610b0e575060408051601f3d908101601f19168201909252610b0b9181019061259f565b60015b15610b1557505b50505050565b826001600160a01b038116610b725760405162461bcd60e51b815260206004820152601560248201527f63616e2774206265207a65726f206164647265737300000000000000000000006044820152606401610465565b6001600160a01b03808516600090815260fb6020526040902054859116610bdb5760405162461bcd60e51b815260206004820152601760248201527f746f6b656e20636f6e666967206d7573742065786973740000000000000000006044820152606401610465565b610c196040518060400160405280602081526020017f7365744f7261636c6528616464726573732c616464726573732c75696e7438298152506112d9565b6001600160a01b038416158015610c4157506000836002811115610c3f57610c3f612570565b145b15610cb45760405162461bcd60e51b815260206004820152602560248201527f63616e277420736574207a65726f206164647265737320746f206d61696e206f60448201527f7261636c650000000000000000000000000000000000000000000000000000006064820152608401610465565b6001600160a01b038516600090815260fb602052604090208490600101846002811115610ce357610ce3612570565b60038110610cf357610cf3612541565b0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055826002811115610d3c57610d3c612570565b846001600160a01b0316866001600160a01b03167fea681d3efb830ef032a9c29a7215b5ceeeb546250d2c463dbf87817aecda1bf160405160405180910390a45050505050565b600080610d918360016109b5565b90925090506001600160a01b03821615801590610dab5750805b156104a5576040517f725068a50000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015283169063725068a5906024016020604051808303816000875af1925050508015610e2d575060408051601f3d908101601f19168201909252610e2a9181019061259f565b60015b156104a55750505050565b600054610100900460ff1615808015610e585750600054600160ff909116105b80610e725750303b158015610e72575060005460ff166001145b610ee45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610465565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610f4257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610f4b8261185c565b610f536118ea565b8015610fb757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b5050565b610fc3612100565b6001600160a01b03828116600090815260fb60209081526040918290208251606080820185528254909516815283519485019384905293909291840191600184019060039082845b81546001600160a01b0316815260019091019060200180831161100b575050509183525050604080516060810191829052602090920191906004840190600390826000855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116110505790505050505050815250509050919050565b611098611191565b609780546001600160a01b0383167fffffffffffffffffffffffff000000000000000000000000000000000000000090911681179091556110e16065546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600061112760335460ff1690565b156111745760405162461bcd60e51b815260206004820152601a60248201527f726573696c69656e74206f7261636c65206973207061757365640000000000006044820152606401610465565b600061117f836116e5565b905061118a81611415565b9392505050565b6065546001600160a01b031633146106ba5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610465565b6001600160a01b0381166112675760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610465565b60c980546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09101610fae565b60c9546040517f18c5e8ab0000000000000000000000000000000000000000000000000000000081526000916001600160a01b0316906318c5e8ab906113259033908690600401612605565b602060405180830381865afa158015611342573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611366919061262f565b905080610fb7573330836040517f4a3fa2930000000000000000000000000000000000000000000000000000000081526004016104659392919061264c565b6113ad61196f565b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60008080806114258560016109b5565b9150915080801561143e57506001600160a01b03821615155b156114c6576040517f41976e090000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528316906341976e0990602401602060405180830381865afa9250505080156114be575060408051601f3d908101601f191682019092526114bb9181019061259f565b60015b156114c65792505b6000806114e887868580156114e357506001600160a01b03871615155b6119c1565b91509150600082141580156114fa5750805b15611509575095945050505050565b6000806115168988611b76565b91509150600082141580156115285750805b156115395750979650505050505050565b831580159061154757508115155b80156115ff57506040517f97c7033e0000000000000000000000000000000000000000000000000000000081526001600160a01b038a8116600483015260248201869052604482018490527f000000000000000000000000000000000000000000000000000000000000000016906397c7033e90606401602060405180830381865afa1580156115db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ff919061262f565b15611611575091979650505050505050565b60405162461bcd60e51b815260206004820152601e60248201527f696e76616c696420726573696c69656e74206f7261636c6520707269636500006044820152606401610465565b609780547fffffffffffffffffffffffff000000000000000000000000000000000000000016905561041581611d17565b611692611d81565b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113f83390565b6000816001600160a01b03811661173e5760405162461bcd60e51b815260206004820152601560248201527f63616e2774206265207a65726f206164647265737300000000000000000000006044820152606401610465565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036117935773bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb9150611856565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036117f4577f00000000000000000000000000000000000000000000000000000000000000009150611856565b826001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611832573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118a9190612681565b50919050565b600054610100900460ff166118d95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610465565b6118e1611dd4565b61041581611e59565b600054610100900460ff166119675760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610465565b6106ba611ed6565b60335460ff166106ba5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610465565b6000806000806119d28760006109b5565b915091508080156119eb57506001600160a01b03821615155b15611b64576040517f41976e090000000000000000000000000000000000000000000000000000000081526001600160a01b0388811660048301528316906341976e0990602401602060405180830381865afa925050508015611a6b575060408051601f3d908101601f19168201909252611a689181019061259f565b60015b611a7d57600080935093505050611b6e565b85611a9057935060019250611b6e915050565b86611aa357935060009250611b6e915050565b6040517f97c7033e0000000000000000000000000000000000000000000000000000000081526001600160a01b038981166004830152602482018390526044820189905282917f0000000000000000000000000000000000000000000000000000000000000000909116906397c7033e90606401602060405180830381865afa158015611b34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b58919061262f565b94509450505050611b6e565b6000809350935050505b935093915050565b600080600080611b878660026109b5565b91509150808015611ba057506001600160a01b03821615155b15611d06576040517f41976e090000000000000000000000000000000000000000000000000000000081526001600160a01b0387811660048301528316906341976e0990602401602060405180830381865afa925050508015611c20575060408051601f3d908101601f19168201909252611c1d9181019061259f565b60015b611c3257600080935093505050611d10565b85611c4557935060009250611d10915050565b6040517f97c7033e0000000000000000000000000000000000000000000000000000000081526001600160a01b038881166004830152602482018390526044820188905282917f0000000000000000000000000000000000000000000000000000000000000000909116906397c7033e90606401602060405180830381865afa158015611cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfa919061262f565b94509450505050611d10565b6000809350935050505b9250929050565b606580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60335460ff16156106ba5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610465565b600054610100900460ff16611e515760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610465565b6106ba611f7d565b600054610100900460ff1661040c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610465565b600054610100900460ff16611f535760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610465565b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b600054610100900460ff16611ffa5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610465565b6106ba33611659565b8260038101928215612063579160200282015b8281111561206357825182547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909116178255602090920191600190910190612016565b5061206f929150612135565b5090565b6001830191839082156120635791602002820160005b838211156120c657835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302612089565b80156120f35782816101000a81549060ff02191690556001016020816000010492830192600103026120c6565b505061206f929150612135565b604051806060016040528060006001600160a01b0316815260200161212361214a565b815260200161213061214a565b905290565b5b8082111561206f5760008155600101612136565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461041557600080fd5b60006020828403121561218f57600080fd5b813561118a81612168565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156121ec576121ec61219a565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561221b5761221b61219a565b604052919050565b801515811461041557600080fd5b600082601f83011261224257600080fd5b61224a6121c9565b80606084018581111561225c57600080fd5b845b8181101561227f57803561227181612223565b84526020938401930161225e565b509095945050505050565b600060e0828403121561229c57600080fd5b6122a46121c9565b905081356122b181612168565b81526020603f830184136122c457600080fd5b6122cc6121c9565b8060808501868111156122de57600080fd5b8386015b818110156123025780356122f581612168565b84529284019284016122e2565b5081848601526123128782612231565b60408601525050505092915050565b6000602080838503121561233457600080fd5b823567ffffffffffffffff8082111561234c57600080fd5b818501915085601f83011261236057600080fd5b8135818111156123725761237261219a565b612380848260051b016121f2565b818152848101925060e091820284018501918883111561239f57600080fd5b938501935b828510156123c5576123b6898661228a565b845293840193928501926123a4565b50979650505050505050565b600060e082840312156123e357600080fd5b61118a838361228a565b8035600381106123fc57600080fd5b919050565b60008060006060848603121561241657600080fd5b833561242181612168565b925061242f602085016123ed565b9150604084013561243f81612223565b809150509250925092565b6000806040838503121561245d57600080fd5b823561246881612168565b9150612476602084016123ed565b90509250929050565b60008060006060848603121561249457600080fd5b833561249f81612168565b925060208401356124af81612168565b91506124bd604085016123ed565b90509250925092565b600060e0820190506001600160a01b0380845116835260208085015181850160005b60038110156125075782518516825291830191908301906001016124e8565b505050604085015191506080840160005b6003811015612537578351151582529282019290820190600101612518565b5050505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000602082840312156125b157600080fd5b5051919050565b6000815180845260005b818110156125de576020818501810151868301820152016125c2565b818111156125f0576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b038316815260406020820152600061262760408301846125b8565b949350505050565b60006020828403121561264157600080fd5b815161118a81612223565b60006001600160a01b0380861683528085166020840152506060604083015261267860608301846125b8565b95945050505050565b60006020828403121561269357600080fd5b815161118a8161216856fea26469706673582212200c48fca54a4fdc31862fad4d5d8de0ccef938bf5159732093a68c9d10568ffbb64736f6c634300080d0033",
647
+ "linkReferences": {},
648
+ "deployedLinkReferences": {}
649
+ }