@venusprotocol/isolated-pools 1.0.0-dev.1 → 1.0.0-dev.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/README.md +1 -11
  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 +4 -0
  5. package/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.json +183 -0
  6. package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +4 -0
  7. package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json +63 -0
  8. package/artifacts/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.dbg.json +4 -0
  9. package/artifacts/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.json +56 -0
  10. package/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +4 -0
  11. package/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.json +24 -0
  12. package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +4 -0
  13. package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.json +56 -0
  14. package/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +4 -0
  15. package/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.json +19 -0
  16. package/artifacts/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol/BeaconProxy.dbg.json +4 -0
  17. package/artifacts/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol/BeaconProxy.json +80 -0
  18. package/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +4 -0
  19. package/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.json +24 -0
  20. package/artifacts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +4 -0
  21. package/artifacts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.json +113 -0
  22. package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +4 -0
  23. package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +297 -0
  24. package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +4 -0
  25. package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json +194 -0
  26. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +4 -0
  27. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json +233 -0
  28. package/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +4 -0
  29. package/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json +10 -0
  30. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +4 -0
  31. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json +10 -0
  32. package/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +4 -0
  33. package/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +10 -0
  34. package/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +4 -0
  35. package/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +10 -0
  36. package/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json +4 -0
  37. package/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json +30 -0
  38. package/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json +4 -0
  39. package/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json +30 -0
  40. package/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json +4 -0
  41. package/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json +10 -0
  42. package/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.dbg.json +4 -0
  43. package/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json +10 -0
  44. package/artifacts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol/Ownable2StepUpgradeable.dbg.json +4 -0
  45. package/artifacts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol/Ownable2StepUpgradeable.json +115 -0
  46. package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +4 -0
  47. package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.json +76 -0
  48. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +4 -0
  49. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.json +24 -0
  50. package/artifacts/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol/ReentrancyGuardUpgradeable.dbg.json +4 -0
  51. package/artifacts/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol/ReentrancyGuardUpgradeable.json +24 -0
  52. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +4 -0
  53. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.json +194 -0
  54. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.dbg.json +4 -0
  55. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.json +86 -0
  56. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol/SafeERC20Upgradeable.dbg.json +4 -0
  57. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol/SafeERC20Upgradeable.json +10 -0
  58. package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +4 -0
  59. package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json +10 -0
  60. package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +4 -0
  61. package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json +24 -0
  62. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol/AccessControlManager.dbg.json +4 -0
  63. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol/AccessControlManager.json +369 -0
  64. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.dbg.json +4 -0
  65. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.json +181 -0
  66. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.dbg.json +4 -0
  67. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.json +282 -0
  68. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/BoundValidatorInterface.dbg.json +4 -0
  69. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/BoundValidatorInterface.json +40 -0
  70. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/OracleInterface.dbg.json +4 -0
  71. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/OracleInterface.json +30 -0
  72. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/ResilientOracleInterface.dbg.json +4 -0
  73. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/ResilientOracleInterface.json +43 -0
  74. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/TwapInterface.dbg.json +4 -0
  75. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/TwapInterface.json +49 -0
  76. package/artifacts/build-info/5d0b3e7c7d317c28bfc8eca20c31f64e.json +1 -0
  77. package/artifacts/build-info/f19d689bc99e63a20dd2a17a14e2b84a.json +1 -0
  78. package/artifacts/contracts/BaseJumpRateModelV2.sol/BaseJumpRateModelV2.dbg.json +4 -0
  79. package/artifacts/contracts/BaseJumpRateModelV2.sol/BaseJumpRateModelV2.json +276 -0
  80. package/artifacts/contracts/Comptroller.sol/Comptroller.dbg.json +4 -0
  81. package/artifacts/contracts/Comptroller.sol/Comptroller.json +1667 -0
  82. package/artifacts/contracts/ComptrollerInterface.sol/ComptrollerInterface.dbg.json +4 -0
  83. package/artifacts/contracts/ComptrollerInterface.sol/ComptrollerInterface.json +285 -0
  84. package/artifacts/contracts/ComptrollerInterface.sol/ComptrollerViewInterface.dbg.json +4 -0
  85. package/artifacts/contracts/ComptrollerInterface.sol/ComptrollerViewInterface.json +170 -0
  86. package/artifacts/contracts/ComptrollerStorage.sol/ComptrollerStorage.dbg.json +4 -0
  87. package/artifacts/contracts/ComptrollerStorage.sol/ComptrollerStorage.json +173 -0
  88. package/artifacts/contracts/ErrorReporter.sol/TokenErrorReporter.dbg.json +4 -0
  89. package/artifacts/contracts/ErrorReporter.sol/TokenErrorReporter.json +156 -0
  90. package/artifacts/contracts/ExponentialNoError.sol/ExponentialNoError.dbg.json +4 -0
  91. package/artifacts/contracts/ExponentialNoError.sol/ExponentialNoError.json +10 -0
  92. package/artifacts/contracts/IPancakeswapV2Router.sol/IPancakeswapV2Router.dbg.json +4 -0
  93. package/artifacts/contracts/IPancakeswapV2Router.sol/IPancakeswapV2Router.json +50 -0
  94. package/artifacts/contracts/InterestRateModel.sol/InterestRateModel.dbg.json +4 -0
  95. package/artifacts/contracts/InterestRateModel.sol/InterestRateModel.json +97 -0
  96. package/artifacts/contracts/JumpRateModelV2.sol/JumpRateModelV2.dbg.json +4 -0
  97. package/artifacts/contracts/JumpRateModelV2.sol/JumpRateModelV2.json +307 -0
  98. package/artifacts/contracts/Lens/PoolLens.sol/PoolLens.dbg.json +4 -0
  99. package/artifacts/contracts/Lens/PoolLens.sol/PoolLens.json +1087 -0
  100. package/artifacts/contracts/MaxLoopsLimitHelper.sol/MaxLoopsLimitHelper.dbg.json +4 -0
  101. package/artifacts/contracts/MaxLoopsLimitHelper.sol/MaxLoopsLimitHelper.json +59 -0
  102. package/artifacts/contracts/Pool/PoolRegistry.sol/PoolRegistry.dbg.json +4 -0
  103. package/artifacts/contracts/Pool/PoolRegistry.sol/PoolRegistry.json +689 -0
  104. package/artifacts/contracts/Pool/PoolRegistryInterface.sol/PoolRegistryInterface.dbg.json +4 -0
  105. package/artifacts/contracts/Pool/PoolRegistryInterface.sol/PoolRegistryInterface.json +176 -0
  106. package/artifacts/contracts/Rewards/RewardsDistributor.sol/RewardsDistributor.dbg.json +4 -0
  107. package/artifacts/contracts/Rewards/RewardsDistributor.sol/RewardsDistributor.json +928 -0
  108. package/artifacts/contracts/RiskFund/IProtocolShareReserve.sol/IProtocolShareReserve.dbg.json +4 -0
  109. package/artifacts/contracts/RiskFund/IProtocolShareReserve.sol/IProtocolShareReserve.json +29 -0
  110. package/artifacts/contracts/RiskFund/IRiskFund.sol/IRiskFund.dbg.json +4 -0
  111. package/artifacts/contracts/RiskFund/IRiskFund.sol/IRiskFund.json +101 -0
  112. package/artifacts/contracts/RiskFund/ProtocolShareReserve.sol/ProtocolShareReserve.dbg.json +4 -0
  113. package/artifacts/contracts/RiskFund/ProtocolShareReserve.sol/ProtocolShareReserve.json +296 -0
  114. package/artifacts/contracts/RiskFund/ReserveHelpers.sol/ReserveHelpers.dbg.json +4 -0
  115. package/artifacts/contracts/RiskFund/ReserveHelpers.sol/ReserveHelpers.json +83 -0
  116. package/artifacts/contracts/RiskFund/RiskFund.sol/RiskFund.dbg.json +4 -0
  117. package/artifacts/contracts/RiskFund/RiskFund.sol/RiskFund.json +596 -0
  118. package/artifacts/contracts/Shortfall/IShortfall.sol/IShortfall.dbg.json +4 -0
  119. package/artifacts/contracts/Shortfall/IShortfall.sol/IShortfall.json +24 -0
  120. package/artifacts/contracts/Shortfall/Shortfall.sol/Shortfall.dbg.json +4 -0
  121. package/artifacts/contracts/Shortfall/Shortfall.sol/Shortfall.json +761 -0
  122. package/artifacts/contracts/VToken.sol/VToken.dbg.json +4 -0
  123. package/artifacts/contracts/VToken.sol/VToken.json +1850 -0
  124. package/artifacts/contracts/VTokenInterfaces.sol/VTokenInterface.dbg.json +4 -0
  125. package/artifacts/contracts/VTokenInterfaces.sol/VTokenInterface.json +1398 -0
  126. package/artifacts/contracts/VTokenInterfaces.sol/VTokenStorage.dbg.json +4 -0
  127. package/artifacts/contracts/VTokenInterfaces.sol/VTokenStorage.json +219 -0
  128. package/artifacts/contracts/WhitePaperInterestRateModel.sol/WhitePaperInterestRateModel.dbg.json +4 -0
  129. package/artifacts/contracts/WhitePaperInterestRateModel.sol/WhitePaperInterestRateModel.json +192 -0
  130. package/artifacts/contracts/test/ComptrollerHarness.sol/ComptrollerHarness.dbg.json +4 -0
  131. package/artifacts/contracts/test/ComptrollerHarness.sol/ComptrollerHarness.json +1712 -0
  132. package/artifacts/contracts/test/ComptrollerHarness.sol/EchoTypesComptroller.dbg.json +4 -0
  133. package/artifacts/contracts/test/ComptrollerHarness.sol/EchoTypesComptroller.json +94 -0
  134. package/artifacts/contracts/test/ComptrollerScenario.sol/ComptrollerScenario.dbg.json +4 -0
  135. package/artifacts/contracts/test/ComptrollerScenario.sol/ComptrollerScenario.json +1744 -0
  136. package/artifacts/contracts/test/ERC20.sol/ERC20.dbg.json +4 -0
  137. package/artifacts/contracts/test/ERC20.sol/ERC20.json +194 -0
  138. package/artifacts/contracts/test/ERC20.sol/ERC20Base.dbg.json +4 -0
  139. package/artifacts/contracts/test/ERC20.sol/ERC20Base.json +141 -0
  140. package/artifacts/contracts/test/ERC20.sol/ERC20Harness.dbg.json +4 -0
  141. package/artifacts/contracts/test/ERC20.sol/ERC20Harness.json +351 -0
  142. package/artifacts/contracts/test/ERC20.sol/ERC20NS.dbg.json +4 -0
  143. package/artifacts/contracts/test/ERC20.sol/ERC20NS.json +182 -0
  144. package/artifacts/contracts/test/ERC20.sol/NonStandardToken.dbg.json +4 -0
  145. package/artifacts/contracts/test/ERC20.sol/NonStandardToken.json +247 -0
  146. package/artifacts/contracts/test/ERC20.sol/StandardToken.dbg.json +4 -0
  147. package/artifacts/contracts/test/ERC20.sol/StandardToken.json +259 -0
  148. package/artifacts/contracts/test/EvilToken.sol/EvilToken.dbg.json +4 -0
  149. package/artifacts/contracts/test/EvilToken.sol/EvilToken.json +303 -0
  150. package/artifacts/contracts/test/FaucetToken.sol/FaucetNonStandardToken.dbg.json +4 -0
  151. package/artifacts/contracts/test/FaucetToken.sol/FaucetNonStandardToken.json +265 -0
  152. package/artifacts/contracts/test/FaucetToken.sol/FaucetToken.dbg.json +4 -0
  153. package/artifacts/contracts/test/FaucetToken.sol/FaucetToken.json +277 -0
  154. package/artifacts/contracts/test/FaucetToken.sol/FaucetTokenReEntrantHarness.dbg.json +4 -0
  155. package/artifacts/contracts/test/FaucetToken.sol/FaucetTokenReEntrantHarness.json +313 -0
  156. package/artifacts/contracts/test/FeeToken.sol/FeeToken.dbg.json +4 -0
  157. package/artifacts/contracts/test/FeeToken.sol/FeeToken.json +313 -0
  158. package/artifacts/contracts/test/HarnessMaxLoopsLimitHelper.sol/HarnessMaxLoopsLimitHelper.dbg.json +4 -0
  159. package/artifacts/contracts/test/HarnessMaxLoopsLimitHelper.sol/HarnessMaxLoopsLimitHelper.json +85 -0
  160. package/artifacts/contracts/test/MockDeflationaryToken.sol/MockDeflatingToken.dbg.json +4 -0
  161. package/artifacts/contracts/test/MockDeflationaryToken.sol/MockDeflatingToken.json +332 -0
  162. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IERC20.dbg.json +4 -0
  163. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IERC20.json +233 -0
  164. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeFactory.dbg.json +4 -0
  165. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeFactory.json +187 -0
  166. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakePair.dbg.json +4 -0
  167. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakePair.json +668 -0
  168. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeRouter01.dbg.json +4 -0
  169. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeRouter01.json +760 -0
  170. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeRouter02.dbg.json +4 -0
  171. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeRouter02.json +962 -0
  172. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IWETH.dbg.json +4 -0
  173. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IWETH.json +55 -0
  174. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/PancakeLibrary.dbg.json +4 -0
  175. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/PancakeLibrary.json +10 -0
  176. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/PancakeRouter.dbg.json +4 -0
  177. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/PancakeRouter.json +982 -0
  178. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/SafeMath.dbg.json +4 -0
  179. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/SafeMath.json +10 -0
  180. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/TransferHelper.dbg.json +4 -0
  181. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/TransferHelper.json +10 -0
  182. package/artifacts/contracts/test/Mocks/MockPriceOracle.sol/MockPriceOracle.dbg.json +4 -0
  183. package/artifacts/contracts/test/Mocks/MockPriceOracle.sol/MockPriceOracle.json +85 -0
  184. package/artifacts/contracts/test/Mocks/MockToken.sol/MockToken.dbg.json +4 -0
  185. package/artifacts/contracts/test/Mocks/MockToken.sol/MockToken.json +315 -0
  186. package/artifacts/contracts/test/SafeMath.sol/SafeMath.dbg.json +4 -0
  187. package/artifacts/contracts/test/SafeMath.sol/SafeMath.json +10 -0
  188. package/artifacts/contracts/test/UpgradedVToken.sol/UpgradedVToken.dbg.json +4 -0
  189. package/artifacts/contracts/test/UpgradedVToken.sol/UpgradedVToken.json +1946 -0
  190. package/artifacts/contracts/test/VTokenHarness.sol/VTokenHarness.dbg.json +4 -0
  191. package/artifacts/contracts/test/VTokenHarness.sol/VTokenHarness.json +2306 -0
  192. package/contracts/BaseJumpRateModelV2.sol +4 -3
  193. package/contracts/Comptroller.sol +40 -15
  194. package/contracts/ComptrollerInterface.sol +10 -0
  195. package/contracts/ComptrollerStorage.sol +5 -0
  196. package/contracts/ErrorReporter.sol +5 -0
  197. package/contracts/ExponentialNoError.sol +0 -7
  198. package/contracts/Lens/PoolLens.sol +13 -0
  199. package/contracts/MaxLoopsLimitHelper.sol +5 -0
  200. package/contracts/Pool/PoolRegistry.sol +58 -206
  201. package/contracts/Pool/PoolRegistryInterface.sol +12 -7
  202. package/contracts/Rewards/RewardsDistributor.sol +15 -0
  203. package/contracts/RiskFund/IProtocolShareReserve.sol +5 -0
  204. package/contracts/RiskFund/IRiskFund.sol +5 -0
  205. package/contracts/RiskFund/ProtocolShareReserve.sol +5 -0
  206. package/contracts/RiskFund/ReserveHelpers.sol +5 -0
  207. package/contracts/RiskFund/RiskFund.sol +5 -5
  208. package/contracts/Shortfall/IShortfall.sol +5 -0
  209. package/contracts/Shortfall/Shortfall.sol +33 -22
  210. package/contracts/VToken.sol +31 -9
  211. package/contracts/VTokenInterfaces.sol +10 -0
  212. package/contracts/WhitePaperInterestRateModel.sol +1 -1
  213. package/contracts/lib/imports.sol +11 -0
  214. package/contracts/test/MockDeflationaryToken.sol +113 -0
  215. package/dist/deploy/001-deploy-mock-tokens.d.ts +3 -0
  216. package/dist/deploy/001-deploy-mock-tokens.js +23 -0
  217. package/dist/deploy/002-price-oracle.d.ts +2 -0
  218. package/dist/deploy/002-price-oracle.js +9 -0
  219. package/dist/deploy/003-price-oracle-configure-feeds.d.ts +2 -0
  220. package/dist/deploy/003-price-oracle-configure-feeds.js +9 -0
  221. package/{deploy/004-swap-router.ts → dist/deploy/004-swap-router.d.ts} +0 -3
  222. package/dist/deploy/004-swap-router.js +8 -0
  223. package/dist/deploy/005-access-control.d.ts +3 -0
  224. package/dist/deploy/005-access-control.js +16 -0
  225. package/dist/deploy/006-deploy-factories.d.ts +3 -0
  226. package/dist/deploy/006-deploy-factories.js +37 -0
  227. package/dist/deploy/007-access-control-configure.d.ts +3 -0
  228. package/dist/deploy/007-access-control-configure.js +69 -0
  229. package/dist/deploy/008-deploy-pool-lens.d.ts +3 -0
  230. package/dist/deploy/008-deploy-pool-lens.js +15 -0
  231. package/dist/deploy/009-deploy-pools.d.ts +3 -0
  232. package/dist/deploy/009-deploy-pools.js +186 -0
  233. package/dist/deploy/010-rewards.d.ts +3 -0
  234. package/dist/deploy/010-rewards.js +76 -0
  235. package/dist/deploy/011-transfer-pools-ownership.d.ts +3 -0
  236. package/dist/deploy/011-transfer-pools-ownership.js +75 -0
  237. package/dist/deploy/012-riskfund-protocolshare.d.ts +3 -0
  238. package/dist/deploy/012-riskfund-protocolshare.js +139 -0
  239. package/dist/deploy/013-transfer-funds-ownership.d.ts +3 -0
  240. package/dist/deploy/013-transfer-funds-ownership.js +46 -0
  241. package/dist/hardhat.config.d.ts +14 -0
  242. package/dist/hardhat.config.js +237 -0
  243. package/dist/helpers/deploymentConfig.d.ts +59 -0
  244. package/dist/helpers/deploymentConfig.js +836 -0
  245. package/dist/helpers/utils.d.ts +3 -0
  246. package/dist/helpers/utils.js +28 -0
  247. package/package.json +3 -11
  248. package/contracts/Factories/JumpRateModelFactory.sol +0 -26
  249. package/contracts/Factories/VTokenProxyFactory.sol +0 -53
  250. package/contracts/Factories/WhitePaperInterestRateModelFactory.sol +0 -12
  251. package/contracts/Proxy/UpgradeableBeacon.sol +0 -10
  252. package/deploy/001-deploy-mock-tokens.ts +0 -29
  253. package/deploy/002-price-oracle.ts +0 -7
  254. package/deploy/003-price-oracle-configure-feeds.ts +0 -7
  255. package/deploy/005-access-control.ts +0 -20
  256. package/deploy/006-deploy-factories.ts +0 -82
  257. package/deploy/007-access-control-configure.ts +0 -142
  258. package/deploy/008-deploy-pool-lens.ts +0 -19
  259. package/deploy/009-deploy-pools.ts +0 -171
  260. package/deploy/010-rewards.ts +0 -84
  261. package/deploy/011-transfer-pools-ownership.ts +0 -93
  262. package/deploy/012-riskfund-protocolshare.ts +0 -140
  263. package/deploy/013-transfer-funds-ownership.ts +0 -63
  264. package/helpers/deploymentConfig.ts +0 -897
  265. package/helpers/utils.ts +0 -24
@@ -0,0 +1,928 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "RewardsDistributor",
4
+ "sourceName": "contracts/Rewards/RewardsDistributor.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "stateMutability": "nonpayable",
9
+ "type": "constructor"
10
+ },
11
+ {
12
+ "inputs": [
13
+ {
14
+ "internalType": "uint256",
15
+ "name": "loopsLimit",
16
+ "type": "uint256"
17
+ },
18
+ {
19
+ "internalType": "uint256",
20
+ "name": "requiredLoops",
21
+ "type": "uint256"
22
+ }
23
+ ],
24
+ "name": "MaxLoopsLimitExceeded",
25
+ "type": "error"
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": true,
53
+ "internalType": "address",
54
+ "name": "contributor",
55
+ "type": "address"
56
+ },
57
+ {
58
+ "indexed": false,
59
+ "internalType": "uint256",
60
+ "name": "newSpeed",
61
+ "type": "uint256"
62
+ }
63
+ ],
64
+ "name": "ContributorRewardTokenSpeedUpdated",
65
+ "type": "event"
66
+ },
67
+ {
68
+ "anonymous": false,
69
+ "inputs": [
70
+ {
71
+ "indexed": true,
72
+ "internalType": "address",
73
+ "name": "contributor",
74
+ "type": "address"
75
+ },
76
+ {
77
+ "indexed": false,
78
+ "internalType": "uint256",
79
+ "name": "rewardAccrued",
80
+ "type": "uint256"
81
+ }
82
+ ],
83
+ "name": "ContributorRewardsUpdated",
84
+ "type": "event"
85
+ },
86
+ {
87
+ "anonymous": false,
88
+ "inputs": [
89
+ {
90
+ "indexed": true,
91
+ "internalType": "contract VToken",
92
+ "name": "vToken",
93
+ "type": "address"
94
+ },
95
+ {
96
+ "indexed": true,
97
+ "internalType": "address",
98
+ "name": "borrower",
99
+ "type": "address"
100
+ },
101
+ {
102
+ "indexed": false,
103
+ "internalType": "uint256",
104
+ "name": "rewardTokenDelta",
105
+ "type": "uint256"
106
+ },
107
+ {
108
+ "indexed": false,
109
+ "internalType": "uint256",
110
+ "name": "rewardTokenTotal",
111
+ "type": "uint256"
112
+ },
113
+ {
114
+ "indexed": false,
115
+ "internalType": "uint256",
116
+ "name": "rewardTokenBorrowIndex",
117
+ "type": "uint256"
118
+ }
119
+ ],
120
+ "name": "DistributedBorrowerRewardToken",
121
+ "type": "event"
122
+ },
123
+ {
124
+ "anonymous": false,
125
+ "inputs": [
126
+ {
127
+ "indexed": true,
128
+ "internalType": "contract VToken",
129
+ "name": "vToken",
130
+ "type": "address"
131
+ },
132
+ {
133
+ "indexed": true,
134
+ "internalType": "address",
135
+ "name": "supplier",
136
+ "type": "address"
137
+ },
138
+ {
139
+ "indexed": false,
140
+ "internalType": "uint256",
141
+ "name": "rewardTokenDelta",
142
+ "type": "uint256"
143
+ },
144
+ {
145
+ "indexed": false,
146
+ "internalType": "uint256",
147
+ "name": "rewardTokenTotal",
148
+ "type": "uint256"
149
+ },
150
+ {
151
+ "indexed": false,
152
+ "internalType": "uint256",
153
+ "name": "rewardTokenSupplyIndex",
154
+ "type": "uint256"
155
+ }
156
+ ],
157
+ "name": "DistributedSupplierRewardToken",
158
+ "type": "event"
159
+ },
160
+ {
161
+ "anonymous": false,
162
+ "inputs": [
163
+ {
164
+ "indexed": false,
165
+ "internalType": "uint8",
166
+ "name": "version",
167
+ "type": "uint8"
168
+ }
169
+ ],
170
+ "name": "Initialized",
171
+ "type": "event"
172
+ },
173
+ {
174
+ "anonymous": false,
175
+ "inputs": [
176
+ {
177
+ "indexed": true,
178
+ "internalType": "address",
179
+ "name": "vToken",
180
+ "type": "address"
181
+ }
182
+ ],
183
+ "name": "MarketInitialized",
184
+ "type": "event"
185
+ },
186
+ {
187
+ "anonymous": false,
188
+ "inputs": [
189
+ {
190
+ "indexed": false,
191
+ "internalType": "uint256",
192
+ "name": "oldMaxLoopsLimit",
193
+ "type": "uint256"
194
+ },
195
+ {
196
+ "indexed": false,
197
+ "internalType": "uint256",
198
+ "name": "newmaxLoopsLimit",
199
+ "type": "uint256"
200
+ }
201
+ ],
202
+ "name": "MaxLoopsLimitUpdated",
203
+ "type": "event"
204
+ },
205
+ {
206
+ "anonymous": false,
207
+ "inputs": [
208
+ {
209
+ "indexed": false,
210
+ "internalType": "address",
211
+ "name": "oldAccessControlManager",
212
+ "type": "address"
213
+ },
214
+ {
215
+ "indexed": false,
216
+ "internalType": "address",
217
+ "name": "newAccessControlManager",
218
+ "type": "address"
219
+ }
220
+ ],
221
+ "name": "NewAccessControlManager",
222
+ "type": "event"
223
+ },
224
+ {
225
+ "anonymous": false,
226
+ "inputs": [
227
+ {
228
+ "indexed": true,
229
+ "internalType": "address",
230
+ "name": "previousOwner",
231
+ "type": "address"
232
+ },
233
+ {
234
+ "indexed": true,
235
+ "internalType": "address",
236
+ "name": "newOwner",
237
+ "type": "address"
238
+ }
239
+ ],
240
+ "name": "OwnershipTransferStarted",
241
+ "type": "event"
242
+ },
243
+ {
244
+ "anonymous": false,
245
+ "inputs": [
246
+ {
247
+ "indexed": true,
248
+ "internalType": "address",
249
+ "name": "previousOwner",
250
+ "type": "address"
251
+ },
252
+ {
253
+ "indexed": true,
254
+ "internalType": "address",
255
+ "name": "newOwner",
256
+ "type": "address"
257
+ }
258
+ ],
259
+ "name": "OwnershipTransferred",
260
+ "type": "event"
261
+ },
262
+ {
263
+ "anonymous": false,
264
+ "inputs": [
265
+ {
266
+ "indexed": true,
267
+ "internalType": "address",
268
+ "name": "vToken",
269
+ "type": "address"
270
+ },
271
+ {
272
+ "components": [
273
+ {
274
+ "internalType": "uint256",
275
+ "name": "mantissa",
276
+ "type": "uint256"
277
+ }
278
+ ],
279
+ "indexed": false,
280
+ "internalType": "struct ExponentialNoError.Exp",
281
+ "name": "marketBorrowIndex",
282
+ "type": "tuple"
283
+ }
284
+ ],
285
+ "name": "RewardTokenBorrowIndexUpdated",
286
+ "type": "event"
287
+ },
288
+ {
289
+ "anonymous": false,
290
+ "inputs": [
291
+ {
292
+ "indexed": true,
293
+ "internalType": "contract VToken",
294
+ "name": "vToken",
295
+ "type": "address"
296
+ },
297
+ {
298
+ "indexed": false,
299
+ "internalType": "uint256",
300
+ "name": "newSpeed",
301
+ "type": "uint256"
302
+ }
303
+ ],
304
+ "name": "RewardTokenBorrowSpeedUpdated",
305
+ "type": "event"
306
+ },
307
+ {
308
+ "anonymous": false,
309
+ "inputs": [
310
+ {
311
+ "indexed": true,
312
+ "internalType": "address",
313
+ "name": "recipient",
314
+ "type": "address"
315
+ },
316
+ {
317
+ "indexed": false,
318
+ "internalType": "uint256",
319
+ "name": "amount",
320
+ "type": "uint256"
321
+ }
322
+ ],
323
+ "name": "RewardTokenGranted",
324
+ "type": "event"
325
+ },
326
+ {
327
+ "anonymous": false,
328
+ "inputs": [
329
+ {
330
+ "indexed": true,
331
+ "internalType": "address",
332
+ "name": "vToken",
333
+ "type": "address"
334
+ }
335
+ ],
336
+ "name": "RewardTokenSupplyIndexUpdated",
337
+ "type": "event"
338
+ },
339
+ {
340
+ "anonymous": false,
341
+ "inputs": [
342
+ {
343
+ "indexed": true,
344
+ "internalType": "contract VToken",
345
+ "name": "vToken",
346
+ "type": "address"
347
+ },
348
+ {
349
+ "indexed": false,
350
+ "internalType": "uint256",
351
+ "name": "newSpeed",
352
+ "type": "uint256"
353
+ }
354
+ ],
355
+ "name": "RewardTokenSupplySpeedUpdated",
356
+ "type": "event"
357
+ },
358
+ {
359
+ "inputs": [],
360
+ "name": "INITIAL_INDEX",
361
+ "outputs": [
362
+ {
363
+ "internalType": "uint224",
364
+ "name": "",
365
+ "type": "uint224"
366
+ }
367
+ ],
368
+ "stateMutability": "view",
369
+ "type": "function"
370
+ },
371
+ {
372
+ "inputs": [],
373
+ "name": "acceptOwnership",
374
+ "outputs": [],
375
+ "stateMutability": "nonpayable",
376
+ "type": "function"
377
+ },
378
+ {
379
+ "inputs": [],
380
+ "name": "accessControlManager",
381
+ "outputs": [
382
+ {
383
+ "internalType": "contract IAccessControlManagerV8",
384
+ "name": "",
385
+ "type": "address"
386
+ }
387
+ ],
388
+ "stateMutability": "view",
389
+ "type": "function"
390
+ },
391
+ {
392
+ "inputs": [
393
+ {
394
+ "internalType": "address",
395
+ "name": "holder",
396
+ "type": "address"
397
+ },
398
+ {
399
+ "internalType": "contract VToken[]",
400
+ "name": "vTokens",
401
+ "type": "address[]"
402
+ }
403
+ ],
404
+ "name": "claimRewardToken",
405
+ "outputs": [],
406
+ "stateMutability": "nonpayable",
407
+ "type": "function"
408
+ },
409
+ {
410
+ "inputs": [
411
+ {
412
+ "internalType": "address",
413
+ "name": "holder",
414
+ "type": "address"
415
+ }
416
+ ],
417
+ "name": "claimRewardToken",
418
+ "outputs": [],
419
+ "stateMutability": "nonpayable",
420
+ "type": "function"
421
+ },
422
+ {
423
+ "inputs": [
424
+ {
425
+ "internalType": "address",
426
+ "name": "vToken",
427
+ "type": "address"
428
+ },
429
+ {
430
+ "internalType": "address",
431
+ "name": "borrower",
432
+ "type": "address"
433
+ },
434
+ {
435
+ "components": [
436
+ {
437
+ "internalType": "uint256",
438
+ "name": "mantissa",
439
+ "type": "uint256"
440
+ }
441
+ ],
442
+ "internalType": "struct ExponentialNoError.Exp",
443
+ "name": "marketBorrowIndex",
444
+ "type": "tuple"
445
+ }
446
+ ],
447
+ "name": "distributeBorrowerRewardToken",
448
+ "outputs": [],
449
+ "stateMutability": "nonpayable",
450
+ "type": "function"
451
+ },
452
+ {
453
+ "inputs": [
454
+ {
455
+ "internalType": "address",
456
+ "name": "vToken",
457
+ "type": "address"
458
+ },
459
+ {
460
+ "internalType": "address",
461
+ "name": "supplier",
462
+ "type": "address"
463
+ }
464
+ ],
465
+ "name": "distributeSupplierRewardToken",
466
+ "outputs": [],
467
+ "stateMutability": "nonpayable",
468
+ "type": "function"
469
+ },
470
+ {
471
+ "inputs": [],
472
+ "name": "getBlockNumber",
473
+ "outputs": [
474
+ {
475
+ "internalType": "uint256",
476
+ "name": "",
477
+ "type": "uint256"
478
+ }
479
+ ],
480
+ "stateMutability": "view",
481
+ "type": "function"
482
+ },
483
+ {
484
+ "inputs": [
485
+ {
486
+ "internalType": "address",
487
+ "name": "recipient",
488
+ "type": "address"
489
+ },
490
+ {
491
+ "internalType": "uint256",
492
+ "name": "amount",
493
+ "type": "uint256"
494
+ }
495
+ ],
496
+ "name": "grantRewardToken",
497
+ "outputs": [],
498
+ "stateMutability": "nonpayable",
499
+ "type": "function"
500
+ },
501
+ {
502
+ "inputs": [
503
+ {
504
+ "internalType": "contract Comptroller",
505
+ "name": "comptroller_",
506
+ "type": "address"
507
+ },
508
+ {
509
+ "internalType": "contract IERC20Upgradeable",
510
+ "name": "rewardToken_",
511
+ "type": "address"
512
+ },
513
+ {
514
+ "internalType": "uint256",
515
+ "name": "loopsLimit_",
516
+ "type": "uint256"
517
+ },
518
+ {
519
+ "internalType": "address",
520
+ "name": "accessControlManager_",
521
+ "type": "address"
522
+ }
523
+ ],
524
+ "name": "initialize",
525
+ "outputs": [],
526
+ "stateMutability": "nonpayable",
527
+ "type": "function"
528
+ },
529
+ {
530
+ "inputs": [
531
+ {
532
+ "internalType": "address",
533
+ "name": "vToken",
534
+ "type": "address"
535
+ }
536
+ ],
537
+ "name": "initializeMarket",
538
+ "outputs": [],
539
+ "stateMutability": "nonpayable",
540
+ "type": "function"
541
+ },
542
+ {
543
+ "inputs": [
544
+ {
545
+ "internalType": "address",
546
+ "name": "",
547
+ "type": "address"
548
+ }
549
+ ],
550
+ "name": "lastContributorBlock",
551
+ "outputs": [
552
+ {
553
+ "internalType": "uint256",
554
+ "name": "",
555
+ "type": "uint256"
556
+ }
557
+ ],
558
+ "stateMutability": "view",
559
+ "type": "function"
560
+ },
561
+ {
562
+ "inputs": [],
563
+ "name": "maxLoopsLimit",
564
+ "outputs": [
565
+ {
566
+ "internalType": "uint256",
567
+ "name": "",
568
+ "type": "uint256"
569
+ }
570
+ ],
571
+ "stateMutability": "view",
572
+ "type": "function"
573
+ },
574
+ {
575
+ "inputs": [],
576
+ "name": "owner",
577
+ "outputs": [
578
+ {
579
+ "internalType": "address",
580
+ "name": "",
581
+ "type": "address"
582
+ }
583
+ ],
584
+ "stateMutability": "view",
585
+ "type": "function"
586
+ },
587
+ {
588
+ "inputs": [],
589
+ "name": "pendingOwner",
590
+ "outputs": [
591
+ {
592
+ "internalType": "address",
593
+ "name": "",
594
+ "type": "address"
595
+ }
596
+ ],
597
+ "stateMutability": "view",
598
+ "type": "function"
599
+ },
600
+ {
601
+ "inputs": [],
602
+ "name": "renounceOwnership",
603
+ "outputs": [],
604
+ "stateMutability": "nonpayable",
605
+ "type": "function"
606
+ },
607
+ {
608
+ "inputs": [],
609
+ "name": "rewardToken",
610
+ "outputs": [
611
+ {
612
+ "internalType": "contract IERC20Upgradeable",
613
+ "name": "",
614
+ "type": "address"
615
+ }
616
+ ],
617
+ "stateMutability": "view",
618
+ "type": "function"
619
+ },
620
+ {
621
+ "inputs": [
622
+ {
623
+ "internalType": "address",
624
+ "name": "",
625
+ "type": "address"
626
+ }
627
+ ],
628
+ "name": "rewardTokenAccrued",
629
+ "outputs": [
630
+ {
631
+ "internalType": "uint256",
632
+ "name": "",
633
+ "type": "uint256"
634
+ }
635
+ ],
636
+ "stateMutability": "view",
637
+ "type": "function"
638
+ },
639
+ {
640
+ "inputs": [
641
+ {
642
+ "internalType": "address",
643
+ "name": "",
644
+ "type": "address"
645
+ }
646
+ ],
647
+ "name": "rewardTokenBorrowSpeeds",
648
+ "outputs": [
649
+ {
650
+ "internalType": "uint256",
651
+ "name": "",
652
+ "type": "uint256"
653
+ }
654
+ ],
655
+ "stateMutability": "view",
656
+ "type": "function"
657
+ },
658
+ {
659
+ "inputs": [
660
+ {
661
+ "internalType": "address",
662
+ "name": "",
663
+ "type": "address"
664
+ }
665
+ ],
666
+ "name": "rewardTokenBorrowState",
667
+ "outputs": [
668
+ {
669
+ "internalType": "uint224",
670
+ "name": "index",
671
+ "type": "uint224"
672
+ },
673
+ {
674
+ "internalType": "uint32",
675
+ "name": "block",
676
+ "type": "uint32"
677
+ }
678
+ ],
679
+ "stateMutability": "view",
680
+ "type": "function"
681
+ },
682
+ {
683
+ "inputs": [
684
+ {
685
+ "internalType": "address",
686
+ "name": "",
687
+ "type": "address"
688
+ },
689
+ {
690
+ "internalType": "address",
691
+ "name": "",
692
+ "type": "address"
693
+ }
694
+ ],
695
+ "name": "rewardTokenBorrowerIndex",
696
+ "outputs": [
697
+ {
698
+ "internalType": "uint256",
699
+ "name": "",
700
+ "type": "uint256"
701
+ }
702
+ ],
703
+ "stateMutability": "view",
704
+ "type": "function"
705
+ },
706
+ {
707
+ "inputs": [
708
+ {
709
+ "internalType": "address",
710
+ "name": "",
711
+ "type": "address"
712
+ }
713
+ ],
714
+ "name": "rewardTokenContributorSpeeds",
715
+ "outputs": [
716
+ {
717
+ "internalType": "uint256",
718
+ "name": "",
719
+ "type": "uint256"
720
+ }
721
+ ],
722
+ "stateMutability": "view",
723
+ "type": "function"
724
+ },
725
+ {
726
+ "inputs": [
727
+ {
728
+ "internalType": "address",
729
+ "name": "",
730
+ "type": "address"
731
+ },
732
+ {
733
+ "internalType": "address",
734
+ "name": "",
735
+ "type": "address"
736
+ }
737
+ ],
738
+ "name": "rewardTokenSupplierIndex",
739
+ "outputs": [
740
+ {
741
+ "internalType": "uint256",
742
+ "name": "",
743
+ "type": "uint256"
744
+ }
745
+ ],
746
+ "stateMutability": "view",
747
+ "type": "function"
748
+ },
749
+ {
750
+ "inputs": [
751
+ {
752
+ "internalType": "address",
753
+ "name": "",
754
+ "type": "address"
755
+ }
756
+ ],
757
+ "name": "rewardTokenSupplySpeeds",
758
+ "outputs": [
759
+ {
760
+ "internalType": "uint256",
761
+ "name": "",
762
+ "type": "uint256"
763
+ }
764
+ ],
765
+ "stateMutability": "view",
766
+ "type": "function"
767
+ },
768
+ {
769
+ "inputs": [
770
+ {
771
+ "internalType": "address",
772
+ "name": "",
773
+ "type": "address"
774
+ }
775
+ ],
776
+ "name": "rewardTokenSupplyState",
777
+ "outputs": [
778
+ {
779
+ "internalType": "uint224",
780
+ "name": "index",
781
+ "type": "uint224"
782
+ },
783
+ {
784
+ "internalType": "uint32",
785
+ "name": "block",
786
+ "type": "uint32"
787
+ }
788
+ ],
789
+ "stateMutability": "view",
790
+ "type": "function"
791
+ },
792
+ {
793
+ "inputs": [
794
+ {
795
+ "internalType": "address",
796
+ "name": "accessControlManager_",
797
+ "type": "address"
798
+ }
799
+ ],
800
+ "name": "setAccessControlManager",
801
+ "outputs": [],
802
+ "stateMutability": "nonpayable",
803
+ "type": "function"
804
+ },
805
+ {
806
+ "inputs": [
807
+ {
808
+ "internalType": "address",
809
+ "name": "contributor",
810
+ "type": "address"
811
+ },
812
+ {
813
+ "internalType": "uint256",
814
+ "name": "rewardTokenSpeed",
815
+ "type": "uint256"
816
+ }
817
+ ],
818
+ "name": "setContributorRewardTokenSpeed",
819
+ "outputs": [],
820
+ "stateMutability": "nonpayable",
821
+ "type": "function"
822
+ },
823
+ {
824
+ "inputs": [
825
+ {
826
+ "internalType": "uint256",
827
+ "name": "limit",
828
+ "type": "uint256"
829
+ }
830
+ ],
831
+ "name": "setMaxLoopsLimit",
832
+ "outputs": [],
833
+ "stateMutability": "nonpayable",
834
+ "type": "function"
835
+ },
836
+ {
837
+ "inputs": [
838
+ {
839
+ "internalType": "contract VToken[]",
840
+ "name": "vTokens",
841
+ "type": "address[]"
842
+ },
843
+ {
844
+ "internalType": "uint256[]",
845
+ "name": "supplySpeeds",
846
+ "type": "uint256[]"
847
+ },
848
+ {
849
+ "internalType": "uint256[]",
850
+ "name": "borrowSpeeds",
851
+ "type": "uint256[]"
852
+ }
853
+ ],
854
+ "name": "setRewardTokenSpeeds",
855
+ "outputs": [],
856
+ "stateMutability": "nonpayable",
857
+ "type": "function"
858
+ },
859
+ {
860
+ "inputs": [
861
+ {
862
+ "internalType": "address",
863
+ "name": "newOwner",
864
+ "type": "address"
865
+ }
866
+ ],
867
+ "name": "transferOwnership",
868
+ "outputs": [],
869
+ "stateMutability": "nonpayable",
870
+ "type": "function"
871
+ },
872
+ {
873
+ "inputs": [
874
+ {
875
+ "internalType": "address",
876
+ "name": "contributor",
877
+ "type": "address"
878
+ }
879
+ ],
880
+ "name": "updateContributorRewards",
881
+ "outputs": [],
882
+ "stateMutability": "nonpayable",
883
+ "type": "function"
884
+ },
885
+ {
886
+ "inputs": [
887
+ {
888
+ "internalType": "address",
889
+ "name": "vToken",
890
+ "type": "address"
891
+ },
892
+ {
893
+ "components": [
894
+ {
895
+ "internalType": "uint256",
896
+ "name": "mantissa",
897
+ "type": "uint256"
898
+ }
899
+ ],
900
+ "internalType": "struct ExponentialNoError.Exp",
901
+ "name": "marketBorrowIndex",
902
+ "type": "tuple"
903
+ }
904
+ ],
905
+ "name": "updateRewardTokenBorrowIndex",
906
+ "outputs": [],
907
+ "stateMutability": "nonpayable",
908
+ "type": "function"
909
+ },
910
+ {
911
+ "inputs": [
912
+ {
913
+ "internalType": "address",
914
+ "name": "vToken",
915
+ "type": "address"
916
+ }
917
+ ],
918
+ "name": "updateRewardTokenSupplyIndex",
919
+ "outputs": [],
920
+ "stateMutability": "nonpayable",
921
+ "type": "function"
922
+ }
923
+ ],
924
+ "bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b62000111565b600054610100900460ff1615620000565760405162461bcd60e51b81526004016200004d90620000af565b60405180910390fd5b60005460ff90811614620000ad576000805460ff191660ff9081179091556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249891620000a49162000101565b60405180910390a15b565b60208082528101620000fb81602781527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469602082015266616c697a696e6760c81b604082015260600190565b92915050565b60ff8216815260208101620000fb565b612b8880620001216000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c806374c4c1cc1161011a578063be203094116100ad578063db7954fd1161007c578063db7954fd146104db578063e30c3978146104ee578063efc75f24146104ff578063f2fde38b14610520578063f7c618c11461053357600080fd5b8063be2030941461048b578063be26317e1461049e578063bea6b8b8146104a7578063ca37271b146104c857600080fd5b80638c37dfa3116100e95780638c37dfa31461040c5780638da5cb5b1461041f57806392a1823514610439578063b4a0bdf31461047157600080fd5b806374c4c1cc146103b157806379ba5097146103d15780637c05a7c5146103d957806380d45a2d146103f957600080fd5b80632eed6906116101925780636d049329116101615780636d049329146103575780636dfd08ca1461036a578063715018a614610396578063741b25251461039e57600080fd5b80632eed69061461030057806342cbb15c14610313578063552c0971146103195780636a95ddef1461034457600080fd5b80631627ee89116101ce5780631627ee891461026657806323526079146102935780632a869a4d146102a65780632c427b57146102b957600080fd5b806304caeb10146102005780630a3a3a9e146102155780630e32cb8614610228578063160c3a031461023b575b600080fd5b61021361020e366004611f76565b610547565b005b610213610223366004611fce565b610708565b610213610236366004611fce565b61073f565b6102506a0c097ce7bc90715b34b9f160241b81565b60405161025d9190612000565b60405180910390f35b610286610274366004611fce565b60fd6020526000908152604090205481565b60405161025d9190612014565b6102136102a1366004612069565b610750565b6102136102b4366004611fce565b610789565b6102f26102c7366004611fce565b610100602052600090815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b60405161025d9291906120a8565b61021361030e3660046120c3565b6108e3565b43610286565b6102866103273660046120f6565b60fc60209081526000928352604080842090915290825290205481565b610213610352366004612129565b61098f565b6102136103653660046120c3565b6109ca565b6102866103783660046120f6565b61010360209081526000928352604080842090915290825290205481565b610213610a44565b6102136103ac366004611fce565b610a58565b6102866103bf366004611fce565b60ff6020526000908152604090205481565b610213610b49565b6102866103e7366004611fce565b60fe6020526000908152604090205481565b610213610407366004612179565b610b7e565b61021361041a36600461220f565b610b8f565b6033546001600160a01b03165b60405161025d91906122ae565b6102f2610447366004611fce565b60fb602052600090815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b6097546001600160a01b03165b60405161025d91906122d0565b6102136104993660046122de565b610c56565b61028660c95481565b6102866104b5366004611fce565b6101026020526000908152604090205481565b6102136104d6366004611fce565b610d6c565b6102136104e93660046120f6565b610dec565b6065546001600160a01b031661042c565b61028661050d366004611fce565b6101016020526000908152604090205481565b61021361052e366004611fce565b610e21565b6101055461047e906001600160a01b031681565b805161055281610e92565b60005b818110156106c257600083828151811061057157610571612342565b602090810291909101015161010454604051633d98a1e560e01b81529192506001600160a01b031690633d98a1e5906105ae9084906004016122d0565b602060405180830381865afa1580156105cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ef919061236b565b6106145760405162461bcd60e51b815260040161060b906123bb565b60405180910390fd5b60006040518060200160405280836001600160a01b031663aa5af0fd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561065f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068391906123d6565b905290506106918282610ebb565b61069c8287836110a8565b6106a582611232565b6106af82876113dd565b5050806106bb9061240d565b9050610555565b506001600160a01b038316600090815260fd60205260409020546106e790849061157f565b6001600160a01b03909316600090815260fd60205260409020929092555050565b610104546001600160a01b031633146107335760405162461bcd60e51b815260040161060b9061246e565b61073c81611232565b50565b61074761163a565b61073c81611664565b610104546001600160a01b0316331461077b5760405162461bcd60e51b815260040161060b9061246e565b6107858282610ebb565b5050565b610104546001600160a01b031633146107b45760405162461bcd60e51b815260040161060b9061246e565b60006107f6435b6040518060400160405280601c81526020017f626c6f636b206e756d62657220657863656564732033322062697473000000008152506116e9565b6001600160a01b038316600090815260fb6020908152604080832061010090925282208154939450909290916001600160e01b0390911690036108525781546001600160e01b0319166a0c097ce7bc90715b34b9f160241b1782555b80546001600160e01b03166000036108835780546001600160e01b0319166a0c097ce7bc90715b34b9f160241b1781555b805463ffffffff8416600160e01b026001600160e01b039182168117835583549091161782556040516001600160a01b038516907ffe6944646a362be70b0925ea999b3d9f755589a63ffcd89e4fb2b0affd252c7190600090a250505050565b6108eb61163a565b6108f482610a58565b8060000361091b576001600160a01b03821660009081526101026020526040812055610937565b436001600160a01b038316600090815261010260205260409020555b6001600160a01b0382166000818152610101602052604090819020839055517f4882c0217331870166b5d239c9f7be7801bab4be26560cd2f8789145d0fd3af490610983908490612014565b60405180910390a25050565b610104546001600160a01b031633146109ba5760405162461bcd60e51b815260040161060b9061246e565b6109c58383836110a8565b505050565b6109d261163a565b60006109de838361157f565b905080156109fe5760405162461bcd60e51b815260040161060b906124bd565b826001600160a01b03167f251909abf904fc80eac3f0d4c25e5c800441ea19fda63c6f0df08e4f24f926f983604051610a379190612014565b60405180910390a2505050565b610a4c61163a565b610a566000611719565b565b6001600160a01b0381166000908152610101602090815260408083205461010290925282205490914391610a8d908390611732565b9050600081118015610a9f5750600083115b15610b43576000610ab08285611745565b6001600160a01b038616600090815260fd602052604081205491925090610ad79083611751565b6001600160a01b038716600081815260fd602081815260408084208681556101028352938190208a90559190529054905192935090917f38fe05baf9dc12e4e3bfda3daba26419e9930bf26ee6227f407ca46f8c9c29bc91610b3891612014565b60405180910390a250505b50505050565b60655433906001600160a01b03168114610b755760405162461bcd60e51b815260040161060b90612513565b61073c81611719565b610b8661163a565b61073c8161175d565b610bb0604051806060016040528060338152602001612b20603391396117b8565b8251825181148015610bc25750815181145b610bde5760405162461bcd60e51b815260040161060b90612576565b60005b81811015610c4f57610c3f858281518110610bfe57610bfe612342565b6020026020010151858381518110610c1857610c18612342565b6020026020010151858481518110610c3257610c32612342565b6020026020010151611852565b610c488161240d565b9050610be1565b5050505050565b600054610100900460ff1615808015610c765750600054600160ff909116105b80610c905750303b158015610c90575060005460ff166001145b610cac5760405162461bcd60e51b815260040161060b906125d1565b6000805460ff191660011790558015610ccf576000805461ff0019166101001790555b61010480546001600160a01b038088166001600160a01b031992831617909255610105805492871692909116919091179055610d09611a51565b610d1282611a80565b610d1b8361175d565b8015610c4f576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890610d5d906001906125f5565b60405180910390a15050505050565b61073c8161010460009054906101000a90046001600160a01b03166001600160a01b031663b0772d0b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610dc4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261020e9190810190612683565b610104546001600160a01b03163314610e175760405162461bcd60e51b815260040161060b9061246e565b61078582826113dd565b610e2961163a565b606580546001600160a01b0383166001600160a01b03199091168117909155610e5a6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60c95481111561073c5760c9548160405163792bfb1b60e11b815260040161060b9291906126be565b6001600160a01b03821660009081526101006020908152604080832060fe9092528220549091610eea436107bb565b8354909150600090610f0c9063ffffffff80851691600160e01b900416611732565b9050600081118015610f1e5750600083115b1561104d576000610f90876001600160a01b03166347bd37186040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8a91906123d6565b87611aa7565b90506000610f9e8386611745565b90506000808311610fbe5760405180602001604052806000815250610fc8565b610fc88284611ac5565b604080516020810190915288546001600160e01b0316815290915061102b90610ff19083611b09565b5160408051808201909152601a81527f6e657720696e64657820657863656564732032323420626974730000000000006020820152611b35565b6001600160e01b0316600160e01b63ffffffff8716021787555061106f915050565b801561106f5783546001600160e01b0316600160e01b63ffffffff8416021784555b856001600160a01b03167fbfeed4eb85c013b0e466fdfdbaa785159ff7986078247dc95f1c717a5bd6bca286604051610b3891906126ea565b6001600160a01b038381166000908152610100602090815260408083208054610103845282852095881685529490925290912080546001600160e01b039093169081905590918015801561110a57506a0c097ce7bc90715b34b9f160241b8210155b1561112057506a0c097ce7bc90715b34b9f160241b5b600060405180602001604052806111378585611732565b8152509050600061118a886001600160a01b03166395dd9193896040518263ffffffff1660e01b815260040161116d91906122ae565b602060405180830381865afa158015610f66573d6000803e3d6000fd5b9050801561122857600061119e8284611b60565b6001600160a01b038916600090815260fd6020526040812054919250906111c59083611751565b6001600160a01b03808b16600081815260fd6020526040908190208490555192935091908c16907f510d7612da9ca257889eabdfbe0366aaea10020be46f7810f4afb2111d80aa939061121d90869086908c906126f8565b60405180910390a350505b5050505050505050565b6001600160a01b038116600090815260fb6020908152604080832060ff9092528220549091611260436107bb565b83549091506000906112829063ffffffff80851691600160e01b900416611732565b90506000811180156112945750600083115b15611380576000856001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112fd91906123d6565b9050600061130b8386611745565b9050600080831161132b5760405180602001604052806000815250611335565b6113358284611ac5565b604080516020810190915288546001600160e01b0316815290915061135e90610ff19083611b09565b6001600160e01b0316600160e01b63ffffffff871602178755506113a2915050565b80156113a25783546001600160e01b0316600160e01b63ffffffff8416021784555b6040516001600160a01b038616907f6a7b996800070d8bc0f9a3ddcb0a4b09bc1653f76381d745444956366afd423a90600090a25050505050565b6001600160a01b03828116600090815260fb60209081526040808320805460fc845282852095871685529490925290912080546001600160e01b039093169081905590918015801561143d57506a0c097ce7bc90715b34b9f160241b8210155b1561145357506a0c097ce7bc90715b34b9f160241b5b6000604051806020016040528061146a8585611732565b90526040516370a0823160e01b81529091506000906001600160a01b038816906370a082319061149e9089906004016122ae565b602060405180830381865afa1580156114bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114df91906123d6565b905060006114ed8284611b60565b6001600160a01b038816600090815260fd6020526040812054919250906115149083611751565b6001600160a01b03808a16600081815260fd6020526040908190208490555192935091908b16907f9563ff6035b973f2e4514ad9315010c220eb74b0c33a782a18118a199a97e4429061156c90869086908c906126f8565b60405180910390a3505050505050505050565b610105546040516370a0823160e01b815260009182916001600160a01b03909116906370a08231906115b59030906004016122ae565b602060405180830381865afa1580156115d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f691906123d6565b90506000831180156116085750808311155b1561162f5761010554611625906001600160a01b03168585611b89565b6000915050611634565b829150505b92915050565b6033546001600160a01b03163314610a565760405162461bcd60e51b815260040161060b90612752565b6001600160a01b03811661168a5760405162461bcd60e51b815260040161060b906127a4565b609780546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0906116dd90839085906127b4565b60405180910390a15050565b60008163ffffffff8411156117115760405162461bcd60e51b815260040161060b919061282d565b509192915050565b606580546001600160a01b031916905561073c81611bdf565b600061173e828461283e565b9392505050565b600061173e8284612855565b600061173e8284612874565b60c954811161177e5760405162461bcd60e51b815260040161060b906128cb565b60c98054908290556040517fc2d09fef144f7c8a86f71ea459f8fc17f675768eb1ae369cbd77fb31d467aafa906116dd90839085906126be565b6097546040516318c5e8ab60e01b81526000916001600160a01b0316906318c5e8ab906117eb90339086906004016128db565b602060405180830381865afa158015611808573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182c919061236b565b90508061078557333083604051634a3fa29360e01b815260040161060b939291906128fb565b61010454604051633d98a1e560e01b81526001600160a01b0390911690633d98a1e5906118839086906004016122d0565b602060405180830381865afa1580156118a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c4919061236b565b6118e05760405162461bcd60e51b815260040161060b90612963565b6001600160a01b038316600090815260ff6020526040902054821461195c5761190883611232565b6001600160a01b038316600081815260ff602052604090819020849055517f24741480445e83baea9eb28086e16a4377ebb4f003c773e386496fd90b3ed04e90611953908590612014565b60405180910390a25b6001600160a01b038316600090815260fe602052604090205481146109c55760006040518060200160405280856001600160a01b031663aa5af0fd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ea91906123d6565b905290506119f88482610ebb565b6001600160a01b038416600081815260fe602052604090819020849055517f2091432bbf4aa40f4785b469e931d32c5f5c6ba66dcf702a99cbe776df729c3c90611a43908590612014565b60405180910390a250505050565b600054610100900460ff16611a785760405162461bcd60e51b815260040161060b906129bb565b610a56611c31565b600054610100900460ff166107475760405162461bcd60e51b815260040161060b906129bb565b600061173e611abe84670de0b6b3a7640000611745565b8351611c61565b6040805160208101909152600081526040518060200160405280611b00611afa866a0c097ce7bc90715b34b9f160241b611745565b85611c61565b90529392505050565b6040805160208101909152600081526040518060200160405280611b0085600001518560000151611751565b6000816001600160e01b038411156117115760405162461bcd60e51b815260040161060b919061282d565b60006a0c097ce7bc90715b34b9f160241b611b7f848460000151611745565b61173e91906129e1565b6109c58363a9059cbb60e01b8484604051602401611ba89291906129f5565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611c6d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16611c585760405162461bcd60e51b815260040161060b906129bb565b610a5633611719565b600061173e82846129e1565b6000611cc2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611cff9092919063ffffffff16565b9050805160001480611ce3575080806020019051810190611ce3919061236b565b6109c55760405162461bcd60e51b815260040161060b90612a4a565b6060611d0e8484600085611d16565b949350505050565b606082471015611d385760405162461bcd60e51b815260040161060b90612a9d565b600080866001600160a01b03168587604051611d549190612acf565b60006040518083038185875af1925050503d8060008114611d91576040519150601f19603f3d011682016040523d82523d6000602084013e611d96565b606091505b5091509150611da787838387611db2565b979650505050505050565b60608315611df1578251600003611dea576001600160a01b0385163b611dea5760405162461bcd60e51b815260040161060b90612b0f565b5081611d0e565b611d0e8383815115611e065781518083602001fd5b8060405162461bcd60e51b815260040161060b919061282d565b60006001600160a01b038216611634565b611e3a81611e20565b811461073c57600080fd5b803561163481611e31565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff82111715611e8c57611e8c611e50565b6040525050565b6000611e9e60405190565b9050611eaa8282611e66565b919050565b600067ffffffffffffffff821115611ec957611ec9611e50565b5060209081020190565b600061163482611e20565b611e3a81611ed3565b803561163481611ede565b6000611f05611f0084611eaf565b611e93565b83815290506020808201908402830185811115611f2457611f24600080fd5b835b81811015611f485780611f398882611ee7565b84525060209283019201611f26565b5050509392505050565b600082601f830112611f6657611f66600080fd5b8135611d0e848260208601611ef2565b60008060408385031215611f8c57611f8c600080fd5b6000611f988585611e45565b925050602083013567ffffffffffffffff811115611fb857611fb8600080fd5b611fc485828601611f52565b9150509250929050565b600060208284031215611fe357611fe3600080fd5b6000611d0e8484611e45565b6001600160e01b0381165b82525050565b602081016116348284611fef565b80611ffa565b60208101611634828461200e565b80611e3a565b803561163481612022565b60006020828403121561204857612048600080fd5b6120526020611e93565b905060006120608484612028565b82525092915050565b6000806040838503121561207f5761207f600080fd5b600061208b8585611e45565b9250506020611fc485828601612033565b63ffffffff8116611ffa565b604081016120b68285611fef565b61173e602083018461209c565b600080604083850312156120d9576120d9600080fd5b60006120e58585611e45565b9250506020611fc485828601612028565b6000806040838503121561210c5761210c600080fd5b60006121188585611e45565b9250506020611fc485828601611e45565b60008060006060848603121561214157612141600080fd5b600061214d8686611e45565b935050602061215e86828701611e45565b925050604061216f86828701612033565b9150509250925092565b60006020828403121561218e5761218e600080fd5b6000611d0e8484612028565b60006121a8611f0084611eaf565b838152905060208082019084028301858111156121c7576121c7600080fd5b835b81811015611f4857806121dc8882612028565b845250602092830192016121c9565b600082601f8301126121ff576121ff600080fd5b8135611d0e84826020860161219a565b60008060006060848603121561222757612227600080fd5b833567ffffffffffffffff81111561224157612241600080fd5b61224d86828701611f52565b935050602084013567ffffffffffffffff81111561226d5761226d600080fd5b612279868287016121eb565b925050604084013567ffffffffffffffff81111561229957612299600080fd5b61216f868287016121eb565b611ffa81611e20565b6020810161163482846122a5565b600061163482611ed3565b611ffa816122bc565b6020810161163482846122c7565b600080600080608085870312156122f7576122f7600080fd5b60006123038787611ee7565b945050602061231487828801611ee7565b935050604061232587828801612028565b925050606061233687828801611e45565b91505092959194509250565b634e487b7160e01b600052603260045260246000fd5b801515611e3a565b805161163481612358565b60006020828403121561238057612380600080fd5b6000611d0e8484612360565b60158152600060208201741b585c9ad95d081b5d5cdd081899481b1a5cdd1959605a1b815291505b5060200190565b602080825281016116348161238c565b805161163481612022565b6000602082840312156123eb576123eb600080fd5b6000611d0e84846123cb565b634e487b7160e01b600052601160045260246000fd5b60006000198203612420576124206123f7565b5060010190565b602781526000602082017f4f6e6c7920636f6d7074726f6c6c65722063616e2063616c6c207468697320668152663ab731ba34b7b760c91b602082015291505b5060400190565b6020808252810161163481612427565b602281526000602082017f696e73756666696369656e7420726577617264546f6b656e20666f72206772618152611b9d60f21b60208201529150612467565b602080825281016116348161247e565b602981526000602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b60208201529150612467565b60208082528101611634816124cd565b603681526000602082017f526577617264734469737472696275746f723a3a736574526577617264546f6b815275195b94dc1959591cc81a5b9d985b1a59081a5b9c1d5d60521b60208201529150612467565b6020808252810161163481612523565b602e81526000602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b60208201529150612467565b6020808252810161163481612586565b600060ff8216611634565b611ffa816125e1565b6020810161163482846125ec565b805161163481611ede565b600061261c611f0084611eaf565b8381529050602080820190840283018581111561263b5761263b600080fd5b835b81811015611f4857806126508882612603565b8452506020928301920161263d565b600082601f83011261267357612673600080fd5b8151611d0e84826020860161260e565b60006020828403121561269857612698600080fd5b815167ffffffffffffffff8111156126b2576126b2600080fd5b611d0e8482850161265f565b604081016126cc828561200e565b61173e602083018461200e565b80516020830190610b43848261200e565b6020810161163482846126d9565b60608101612706828661200e565b612713602083018561200e565b611d0e604083018461200e565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572910190815260006123b4565b6020808252810161163481612720565b602581526000602082017f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b60208201529150612467565b6020808252810161163481612762565b604081016127c282856122a5565b61173e60208301846122a5565b60005b838110156127ea5781810151838201526020016127d2565b83811115610b435750506000910152565b6000612805825190565b80845260208401935061281c8185602086016127cf565b601f01601f19169290920192915050565b6020808252810161173e81846127fb565b600082821015612850576128506123f7565b500390565b600081600019048311821515161561286f5761286f6123f7565b500290565b60008219821115612887576128876123f7565b500190565b602281526000602082017f436f6d7074726f6c6c65723a20496e76616c6964206d61784c6f6f70734c696d8152611a5d60f21b60208201529150612467565b602080825281016116348161288c565b604081016128e982856122a5565b8181036020830152611d0e81846127fb565b6060810161290982866122a5565b61291660208301856122a5565b818103604083015261292881846127fb565b95945050505050565b60208082527f726577617264546f6b656e206d61726b6574206973206e6f74206c6973746564910190815260006123b4565b6020808252810161163481612931565b602b81526000602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b60208201529150612467565b6020808252810161163481612973565b634e487b7160e01b600052601260045260246000fd5b6000826129f0576129f06129cb565b500490565b604081016126cc82856122a5565b602a81526000602082017f5361666545524332303a204552433230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b60208201529150612467565b6020808252810161163481612a03565b602681526000602082017f416464726573733a20696e73756666696369656e742062616c616e636520666f8152651c8818d85b1b60d21b60208201529150612467565b6020808252810161163481612a5a565b6000612ab7825190565b612ac58185602086016127cf565b9290920192915050565b600061173e8284612aad565b601d81526000602082017f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000815291506123b4565b6020808252810161163481612adb56fe736574526577617264546f6b656e53706565647328616464726573735b5d2c75696e743235365b5d2c75696e743235365b5d29a26469706673582212207065f6ead0dfcff8d82faf9a4cd70aa3d45291a055a9ff8ab72eacc7f23a0d8264736f6c634300080d0033",
925
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c806374c4c1cc1161011a578063be203094116100ad578063db7954fd1161007c578063db7954fd146104db578063e30c3978146104ee578063efc75f24146104ff578063f2fde38b14610520578063f7c618c11461053357600080fd5b8063be2030941461048b578063be26317e1461049e578063bea6b8b8146104a7578063ca37271b146104c857600080fd5b80638c37dfa3116100e95780638c37dfa31461040c5780638da5cb5b1461041f57806392a1823514610439578063b4a0bdf31461047157600080fd5b806374c4c1cc146103b157806379ba5097146103d15780637c05a7c5146103d957806380d45a2d146103f957600080fd5b80632eed6906116101925780636d049329116101615780636d049329146103575780636dfd08ca1461036a578063715018a614610396578063741b25251461039e57600080fd5b80632eed69061461030057806342cbb15c14610313578063552c0971146103195780636a95ddef1461034457600080fd5b80631627ee89116101ce5780631627ee891461026657806323526079146102935780632a869a4d146102a65780632c427b57146102b957600080fd5b806304caeb10146102005780630a3a3a9e146102155780630e32cb8614610228578063160c3a031461023b575b600080fd5b61021361020e366004611f76565b610547565b005b610213610223366004611fce565b610708565b610213610236366004611fce565b61073f565b6102506a0c097ce7bc90715b34b9f160241b81565b60405161025d9190612000565b60405180910390f35b610286610274366004611fce565b60fd6020526000908152604090205481565b60405161025d9190612014565b6102136102a1366004612069565b610750565b6102136102b4366004611fce565b610789565b6102f26102c7366004611fce565b610100602052600090815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b60405161025d9291906120a8565b61021361030e3660046120c3565b6108e3565b43610286565b6102866103273660046120f6565b60fc60209081526000928352604080842090915290825290205481565b610213610352366004612129565b61098f565b6102136103653660046120c3565b6109ca565b6102866103783660046120f6565b61010360209081526000928352604080842090915290825290205481565b610213610a44565b6102136103ac366004611fce565b610a58565b6102866103bf366004611fce565b60ff6020526000908152604090205481565b610213610b49565b6102866103e7366004611fce565b60fe6020526000908152604090205481565b610213610407366004612179565b610b7e565b61021361041a36600461220f565b610b8f565b6033546001600160a01b03165b60405161025d91906122ae565b6102f2610447366004611fce565b60fb602052600090815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b6097546001600160a01b03165b60405161025d91906122d0565b6102136104993660046122de565b610c56565b61028660c95481565b6102866104b5366004611fce565b6101026020526000908152604090205481565b6102136104d6366004611fce565b610d6c565b6102136104e93660046120f6565b610dec565b6065546001600160a01b031661042c565b61028661050d366004611fce565b6101016020526000908152604090205481565b61021361052e366004611fce565b610e21565b6101055461047e906001600160a01b031681565b805161055281610e92565b60005b818110156106c257600083828151811061057157610571612342565b602090810291909101015161010454604051633d98a1e560e01b81529192506001600160a01b031690633d98a1e5906105ae9084906004016122d0565b602060405180830381865afa1580156105cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ef919061236b565b6106145760405162461bcd60e51b815260040161060b906123bb565b60405180910390fd5b60006040518060200160405280836001600160a01b031663aa5af0fd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561065f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068391906123d6565b905290506106918282610ebb565b61069c8287836110a8565b6106a582611232565b6106af82876113dd565b5050806106bb9061240d565b9050610555565b506001600160a01b038316600090815260fd60205260409020546106e790849061157f565b6001600160a01b03909316600090815260fd60205260409020929092555050565b610104546001600160a01b031633146107335760405162461bcd60e51b815260040161060b9061246e565b61073c81611232565b50565b61074761163a565b61073c81611664565b610104546001600160a01b0316331461077b5760405162461bcd60e51b815260040161060b9061246e565b6107858282610ebb565b5050565b610104546001600160a01b031633146107b45760405162461bcd60e51b815260040161060b9061246e565b60006107f6435b6040518060400160405280601c81526020017f626c6f636b206e756d62657220657863656564732033322062697473000000008152506116e9565b6001600160a01b038316600090815260fb6020908152604080832061010090925282208154939450909290916001600160e01b0390911690036108525781546001600160e01b0319166a0c097ce7bc90715b34b9f160241b1782555b80546001600160e01b03166000036108835780546001600160e01b0319166a0c097ce7bc90715b34b9f160241b1781555b805463ffffffff8416600160e01b026001600160e01b039182168117835583549091161782556040516001600160a01b038516907ffe6944646a362be70b0925ea999b3d9f755589a63ffcd89e4fb2b0affd252c7190600090a250505050565b6108eb61163a565b6108f482610a58565b8060000361091b576001600160a01b03821660009081526101026020526040812055610937565b436001600160a01b038316600090815261010260205260409020555b6001600160a01b0382166000818152610101602052604090819020839055517f4882c0217331870166b5d239c9f7be7801bab4be26560cd2f8789145d0fd3af490610983908490612014565b60405180910390a25050565b610104546001600160a01b031633146109ba5760405162461bcd60e51b815260040161060b9061246e565b6109c58383836110a8565b505050565b6109d261163a565b60006109de838361157f565b905080156109fe5760405162461bcd60e51b815260040161060b906124bd565b826001600160a01b03167f251909abf904fc80eac3f0d4c25e5c800441ea19fda63c6f0df08e4f24f926f983604051610a379190612014565b60405180910390a2505050565b610a4c61163a565b610a566000611719565b565b6001600160a01b0381166000908152610101602090815260408083205461010290925282205490914391610a8d908390611732565b9050600081118015610a9f5750600083115b15610b43576000610ab08285611745565b6001600160a01b038616600090815260fd602052604081205491925090610ad79083611751565b6001600160a01b038716600081815260fd602081815260408084208681556101028352938190208a90559190529054905192935090917f38fe05baf9dc12e4e3bfda3daba26419e9930bf26ee6227f407ca46f8c9c29bc91610b3891612014565b60405180910390a250505b50505050565b60655433906001600160a01b03168114610b755760405162461bcd60e51b815260040161060b90612513565b61073c81611719565b610b8661163a565b61073c8161175d565b610bb0604051806060016040528060338152602001612b20603391396117b8565b8251825181148015610bc25750815181145b610bde5760405162461bcd60e51b815260040161060b90612576565b60005b81811015610c4f57610c3f858281518110610bfe57610bfe612342565b6020026020010151858381518110610c1857610c18612342565b6020026020010151858481518110610c3257610c32612342565b6020026020010151611852565b610c488161240d565b9050610be1565b5050505050565b600054610100900460ff1615808015610c765750600054600160ff909116105b80610c905750303b158015610c90575060005460ff166001145b610cac5760405162461bcd60e51b815260040161060b906125d1565b6000805460ff191660011790558015610ccf576000805461ff0019166101001790555b61010480546001600160a01b038088166001600160a01b031992831617909255610105805492871692909116919091179055610d09611a51565b610d1282611a80565b610d1b8361175d565b8015610c4f576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890610d5d906001906125f5565b60405180910390a15050505050565b61073c8161010460009054906101000a90046001600160a01b03166001600160a01b031663b0772d0b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610dc4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261020e9190810190612683565b610104546001600160a01b03163314610e175760405162461bcd60e51b815260040161060b9061246e565b61078582826113dd565b610e2961163a565b606580546001600160a01b0383166001600160a01b03199091168117909155610e5a6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60c95481111561073c5760c9548160405163792bfb1b60e11b815260040161060b9291906126be565b6001600160a01b03821660009081526101006020908152604080832060fe9092528220549091610eea436107bb565b8354909150600090610f0c9063ffffffff80851691600160e01b900416611732565b9050600081118015610f1e5750600083115b1561104d576000610f90876001600160a01b03166347bd37186040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8a91906123d6565b87611aa7565b90506000610f9e8386611745565b90506000808311610fbe5760405180602001604052806000815250610fc8565b610fc88284611ac5565b604080516020810190915288546001600160e01b0316815290915061102b90610ff19083611b09565b5160408051808201909152601a81527f6e657720696e64657820657863656564732032323420626974730000000000006020820152611b35565b6001600160e01b0316600160e01b63ffffffff8716021787555061106f915050565b801561106f5783546001600160e01b0316600160e01b63ffffffff8416021784555b856001600160a01b03167fbfeed4eb85c013b0e466fdfdbaa785159ff7986078247dc95f1c717a5bd6bca286604051610b3891906126ea565b6001600160a01b038381166000908152610100602090815260408083208054610103845282852095881685529490925290912080546001600160e01b039093169081905590918015801561110a57506a0c097ce7bc90715b34b9f160241b8210155b1561112057506a0c097ce7bc90715b34b9f160241b5b600060405180602001604052806111378585611732565b8152509050600061118a886001600160a01b03166395dd9193896040518263ffffffff1660e01b815260040161116d91906122ae565b602060405180830381865afa158015610f66573d6000803e3d6000fd5b9050801561122857600061119e8284611b60565b6001600160a01b038916600090815260fd6020526040812054919250906111c59083611751565b6001600160a01b03808b16600081815260fd6020526040908190208490555192935091908c16907f510d7612da9ca257889eabdfbe0366aaea10020be46f7810f4afb2111d80aa939061121d90869086908c906126f8565b60405180910390a350505b5050505050505050565b6001600160a01b038116600090815260fb6020908152604080832060ff9092528220549091611260436107bb565b83549091506000906112829063ffffffff80851691600160e01b900416611732565b90506000811180156112945750600083115b15611380576000856001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112fd91906123d6565b9050600061130b8386611745565b9050600080831161132b5760405180602001604052806000815250611335565b6113358284611ac5565b604080516020810190915288546001600160e01b0316815290915061135e90610ff19083611b09565b6001600160e01b0316600160e01b63ffffffff871602178755506113a2915050565b80156113a25783546001600160e01b0316600160e01b63ffffffff8416021784555b6040516001600160a01b038616907f6a7b996800070d8bc0f9a3ddcb0a4b09bc1653f76381d745444956366afd423a90600090a25050505050565b6001600160a01b03828116600090815260fb60209081526040808320805460fc845282852095871685529490925290912080546001600160e01b039093169081905590918015801561143d57506a0c097ce7bc90715b34b9f160241b8210155b1561145357506a0c097ce7bc90715b34b9f160241b5b6000604051806020016040528061146a8585611732565b90526040516370a0823160e01b81529091506000906001600160a01b038816906370a082319061149e9089906004016122ae565b602060405180830381865afa1580156114bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114df91906123d6565b905060006114ed8284611b60565b6001600160a01b038816600090815260fd6020526040812054919250906115149083611751565b6001600160a01b03808a16600081815260fd6020526040908190208490555192935091908b16907f9563ff6035b973f2e4514ad9315010c220eb74b0c33a782a18118a199a97e4429061156c90869086908c906126f8565b60405180910390a3505050505050505050565b610105546040516370a0823160e01b815260009182916001600160a01b03909116906370a08231906115b59030906004016122ae565b602060405180830381865afa1580156115d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f691906123d6565b90506000831180156116085750808311155b1561162f5761010554611625906001600160a01b03168585611b89565b6000915050611634565b829150505b92915050565b6033546001600160a01b03163314610a565760405162461bcd60e51b815260040161060b90612752565b6001600160a01b03811661168a5760405162461bcd60e51b815260040161060b906127a4565b609780546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0906116dd90839085906127b4565b60405180910390a15050565b60008163ffffffff8411156117115760405162461bcd60e51b815260040161060b919061282d565b509192915050565b606580546001600160a01b031916905561073c81611bdf565b600061173e828461283e565b9392505050565b600061173e8284612855565b600061173e8284612874565b60c954811161177e5760405162461bcd60e51b815260040161060b906128cb565b60c98054908290556040517fc2d09fef144f7c8a86f71ea459f8fc17f675768eb1ae369cbd77fb31d467aafa906116dd90839085906126be565b6097546040516318c5e8ab60e01b81526000916001600160a01b0316906318c5e8ab906117eb90339086906004016128db565b602060405180830381865afa158015611808573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182c919061236b565b90508061078557333083604051634a3fa29360e01b815260040161060b939291906128fb565b61010454604051633d98a1e560e01b81526001600160a01b0390911690633d98a1e5906118839086906004016122d0565b602060405180830381865afa1580156118a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c4919061236b565b6118e05760405162461bcd60e51b815260040161060b90612963565b6001600160a01b038316600090815260ff6020526040902054821461195c5761190883611232565b6001600160a01b038316600081815260ff602052604090819020849055517f24741480445e83baea9eb28086e16a4377ebb4f003c773e386496fd90b3ed04e90611953908590612014565b60405180910390a25b6001600160a01b038316600090815260fe602052604090205481146109c55760006040518060200160405280856001600160a01b031663aa5af0fd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ea91906123d6565b905290506119f88482610ebb565b6001600160a01b038416600081815260fe602052604090819020849055517f2091432bbf4aa40f4785b469e931d32c5f5c6ba66dcf702a99cbe776df729c3c90611a43908590612014565b60405180910390a250505050565b600054610100900460ff16611a785760405162461bcd60e51b815260040161060b906129bb565b610a56611c31565b600054610100900460ff166107475760405162461bcd60e51b815260040161060b906129bb565b600061173e611abe84670de0b6b3a7640000611745565b8351611c61565b6040805160208101909152600081526040518060200160405280611b00611afa866a0c097ce7bc90715b34b9f160241b611745565b85611c61565b90529392505050565b6040805160208101909152600081526040518060200160405280611b0085600001518560000151611751565b6000816001600160e01b038411156117115760405162461bcd60e51b815260040161060b919061282d565b60006a0c097ce7bc90715b34b9f160241b611b7f848460000151611745565b61173e91906129e1565b6109c58363a9059cbb60e01b8484604051602401611ba89291906129f5565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611c6d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16611c585760405162461bcd60e51b815260040161060b906129bb565b610a5633611719565b600061173e82846129e1565b6000611cc2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611cff9092919063ffffffff16565b9050805160001480611ce3575080806020019051810190611ce3919061236b565b6109c55760405162461bcd60e51b815260040161060b90612a4a565b6060611d0e8484600085611d16565b949350505050565b606082471015611d385760405162461bcd60e51b815260040161060b90612a9d565b600080866001600160a01b03168587604051611d549190612acf565b60006040518083038185875af1925050503d8060008114611d91576040519150601f19603f3d011682016040523d82523d6000602084013e611d96565b606091505b5091509150611da787838387611db2565b979650505050505050565b60608315611df1578251600003611dea576001600160a01b0385163b611dea5760405162461bcd60e51b815260040161060b90612b0f565b5081611d0e565b611d0e8383815115611e065781518083602001fd5b8060405162461bcd60e51b815260040161060b919061282d565b60006001600160a01b038216611634565b611e3a81611e20565b811461073c57600080fd5b803561163481611e31565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff82111715611e8c57611e8c611e50565b6040525050565b6000611e9e60405190565b9050611eaa8282611e66565b919050565b600067ffffffffffffffff821115611ec957611ec9611e50565b5060209081020190565b600061163482611e20565b611e3a81611ed3565b803561163481611ede565b6000611f05611f0084611eaf565b611e93565b83815290506020808201908402830185811115611f2457611f24600080fd5b835b81811015611f485780611f398882611ee7565b84525060209283019201611f26565b5050509392505050565b600082601f830112611f6657611f66600080fd5b8135611d0e848260208601611ef2565b60008060408385031215611f8c57611f8c600080fd5b6000611f988585611e45565b925050602083013567ffffffffffffffff811115611fb857611fb8600080fd5b611fc485828601611f52565b9150509250929050565b600060208284031215611fe357611fe3600080fd5b6000611d0e8484611e45565b6001600160e01b0381165b82525050565b602081016116348284611fef565b80611ffa565b60208101611634828461200e565b80611e3a565b803561163481612022565b60006020828403121561204857612048600080fd5b6120526020611e93565b905060006120608484612028565b82525092915050565b6000806040838503121561207f5761207f600080fd5b600061208b8585611e45565b9250506020611fc485828601612033565b63ffffffff8116611ffa565b604081016120b68285611fef565b61173e602083018461209c565b600080604083850312156120d9576120d9600080fd5b60006120e58585611e45565b9250506020611fc485828601612028565b6000806040838503121561210c5761210c600080fd5b60006121188585611e45565b9250506020611fc485828601611e45565b60008060006060848603121561214157612141600080fd5b600061214d8686611e45565b935050602061215e86828701611e45565b925050604061216f86828701612033565b9150509250925092565b60006020828403121561218e5761218e600080fd5b6000611d0e8484612028565b60006121a8611f0084611eaf565b838152905060208082019084028301858111156121c7576121c7600080fd5b835b81811015611f4857806121dc8882612028565b845250602092830192016121c9565b600082601f8301126121ff576121ff600080fd5b8135611d0e84826020860161219a565b60008060006060848603121561222757612227600080fd5b833567ffffffffffffffff81111561224157612241600080fd5b61224d86828701611f52565b935050602084013567ffffffffffffffff81111561226d5761226d600080fd5b612279868287016121eb565b925050604084013567ffffffffffffffff81111561229957612299600080fd5b61216f868287016121eb565b611ffa81611e20565b6020810161163482846122a5565b600061163482611ed3565b611ffa816122bc565b6020810161163482846122c7565b600080600080608085870312156122f7576122f7600080fd5b60006123038787611ee7565b945050602061231487828801611ee7565b935050604061232587828801612028565b925050606061233687828801611e45565b91505092959194509250565b634e487b7160e01b600052603260045260246000fd5b801515611e3a565b805161163481612358565b60006020828403121561238057612380600080fd5b6000611d0e8484612360565b60158152600060208201741b585c9ad95d081b5d5cdd081899481b1a5cdd1959605a1b815291505b5060200190565b602080825281016116348161238c565b805161163481612022565b6000602082840312156123eb576123eb600080fd5b6000611d0e84846123cb565b634e487b7160e01b600052601160045260246000fd5b60006000198203612420576124206123f7565b5060010190565b602781526000602082017f4f6e6c7920636f6d7074726f6c6c65722063616e2063616c6c207468697320668152663ab731ba34b7b760c91b602082015291505b5060400190565b6020808252810161163481612427565b602281526000602082017f696e73756666696369656e7420726577617264546f6b656e20666f72206772618152611b9d60f21b60208201529150612467565b602080825281016116348161247e565b602981526000602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b60208201529150612467565b60208082528101611634816124cd565b603681526000602082017f526577617264734469737472696275746f723a3a736574526577617264546f6b815275195b94dc1959591cc81a5b9d985b1a59081a5b9c1d5d60521b60208201529150612467565b6020808252810161163481612523565b602e81526000602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b60208201529150612467565b6020808252810161163481612586565b600060ff8216611634565b611ffa816125e1565b6020810161163482846125ec565b805161163481611ede565b600061261c611f0084611eaf565b8381529050602080820190840283018581111561263b5761263b600080fd5b835b81811015611f4857806126508882612603565b8452506020928301920161263d565b600082601f83011261267357612673600080fd5b8151611d0e84826020860161260e565b60006020828403121561269857612698600080fd5b815167ffffffffffffffff8111156126b2576126b2600080fd5b611d0e8482850161265f565b604081016126cc828561200e565b61173e602083018461200e565b80516020830190610b43848261200e565b6020810161163482846126d9565b60608101612706828661200e565b612713602083018561200e565b611d0e604083018461200e565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572910190815260006123b4565b6020808252810161163481612720565b602581526000602082017f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b60208201529150612467565b6020808252810161163481612762565b604081016127c282856122a5565b61173e60208301846122a5565b60005b838110156127ea5781810151838201526020016127d2565b83811115610b435750506000910152565b6000612805825190565b80845260208401935061281c8185602086016127cf565b601f01601f19169290920192915050565b6020808252810161173e81846127fb565b600082821015612850576128506123f7565b500390565b600081600019048311821515161561286f5761286f6123f7565b500290565b60008219821115612887576128876123f7565b500190565b602281526000602082017f436f6d7074726f6c6c65723a20496e76616c6964206d61784c6f6f70734c696d8152611a5d60f21b60208201529150612467565b602080825281016116348161288c565b604081016128e982856122a5565b8181036020830152611d0e81846127fb565b6060810161290982866122a5565b61291660208301856122a5565b818103604083015261292881846127fb565b95945050505050565b60208082527f726577617264546f6b656e206d61726b6574206973206e6f74206c6973746564910190815260006123b4565b6020808252810161163481612931565b602b81526000602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b60208201529150612467565b6020808252810161163481612973565b634e487b7160e01b600052601260045260246000fd5b6000826129f0576129f06129cb565b500490565b604081016126cc82856122a5565b602a81526000602082017f5361666545524332303a204552433230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b60208201529150612467565b6020808252810161163481612a03565b602681526000602082017f416464726573733a20696e73756666696369656e742062616c616e636520666f8152651c8818d85b1b60d21b60208201529150612467565b6020808252810161163481612a5a565b6000612ab7825190565b612ac58185602086016127cf565b9290920192915050565b600061173e8284612aad565b601d81526000602082017f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000815291506123b4565b6020808252810161163481612adb56fe736574526577617264546f6b656e53706565647328616464726573735b5d2c75696e743235365b5d2c75696e743235365b5d29a26469706673582212207065f6ead0dfcff8d82faf9a4cd70aa3d45291a055a9ff8ab72eacc7f23a0d8264736f6c634300080d0033",
926
+ "linkReferences": {},
927
+ "deployedLinkReferences": {}
928
+ }