@flarenetwork/flare-periphery-contract-artifacts 0.0.2 → 0.0.4

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 (211) hide show
  1. package/dist/README.md +5 -0
  2. package/dist/coston/abis.coston.d.ts.map +1 -1
  3. package/dist/coston/abis.coston.js +14 -4
  4. package/dist/coston/abis.coston.js.map +1 -1
  5. package/dist/coston/artifacts/contracts/assetRegistry/implementation/FlareAssetRegistry.sol/FlareAssetRegistry.json +525 -0
  6. package/dist/coston/artifacts/contracts/assetRegistry/implementation/WNatRegistryProvider.sol/WNatRegistryProvider.json +113 -0
  7. package/dist/coston/artifacts/contracts/assetRegistry/interface/IIERC20WithMetadata.sol/IIERC20WithMetadata.json +233 -0
  8. package/dist/coston/artifacts/contracts/assetRegistry/interface/IIFlareAssetRegistry.sol/IIFlareAssetRegistry.json +316 -0
  9. package/dist/coston/artifacts/contracts/assetRegistry/interface/IIFlareAssetRegistryProvider.sol/IIFlareAssetRegistryProvider.json +66 -0
  10. package/dist/coston/artifacts/contracts/assetRegistry/lib/StandardAttributes.sol/StandardAttributes.json +10 -0
  11. package/dist/coston/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  12. package/dist/coston/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +2 -2
  13. package/dist/coston/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +2 -2
  14. package/dist/coston/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +3 -3
  15. package/dist/coston/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  16. package/dist/coston/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +2 -2
  17. package/dist/coston/artifacts/contracts/ftso/lib/FtsoVote.sol/FtsoVote.json +2 -2
  18. package/dist/coston/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +2 -2
  19. package/dist/coston/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  20. package/dist/coston/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +40 -2
  21. package/dist/coston/artifacts/contracts/genesis/implementation/FlareDaemon.sol/FlareDaemon.json +2 -2
  22. package/dist/coston/artifacts/contracts/governance/implementation/InflationAllocation.sol/InflationAllocation.json +2 -2
  23. package/dist/coston/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  24. package/dist/coston/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +1187 -0
  25. package/dist/coston/artifacts/contracts/inflation/implementation/Inflation.sol/Inflation.json +2 -2
  26. package/dist/coston/artifacts/contracts/inflation/lib/InflationAnnum.sol/InflationAnnum.json +2 -2
  27. package/dist/coston/artifacts/contracts/inflation/lib/InflationAnnums.sol/InflationAnnums.json +2 -2
  28. package/dist/coston/artifacts/contracts/inflation/lib/RewardService.sol/RewardService.json +2 -2
  29. package/dist/coston/artifacts/contracts/inflation/lib/RewardServices.sol/RewardServices.json +2 -2
  30. package/dist/coston/artifacts/contracts/token/implementation/CleanupBlockNumberManager.sol/CleanupBlockNumberManager.json +172 -37
  31. package/dist/coston/artifacts/contracts/token/implementation/Delegatable.sol/Delegatable.json +2 -2
  32. package/dist/coston/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +2 -2
  33. package/dist/coston/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  34. package/dist/coston/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  35. package/dist/coston/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  36. package/dist/coston/artifacts/contracts/token/lib/DelegationHistory.sol/DelegationHistory.json +2 -2
  37. package/dist/coston/artifacts/contracts/token/lib/ExplicitDelegation.sol/ExplicitDelegation.json +2 -2
  38. package/dist/coston/artifacts/contracts/token/lib/PercentageDelegation.sol/PercentageDelegation.json +2 -2
  39. package/dist/coston/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +523 -138
  40. package/dist/coston/artifacts/contracts/tokenPools/interface/IIFtsoRewardManager.sol/IIFtsoRewardManager.json +322 -0
  41. package/dist/coston/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  42. package/dist/coston/artifacts/contracts/utils/implementation/GovernedAndFlareDaemonized.sol/GovernedAndFlareDaemonized.json +2 -2
  43. package/dist/coston/artifacts/contracts/utils/implementation/GovernedAndFlareDaemonizedV2.sol/GovernedAndFlareDaemonizedV2.json +2 -2
  44. package/dist/coston/artifacts/contracts/utils/implementation/SafePct.sol/SafePct.json +2 -2
  45. package/dist/coston/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +276 -41
  46. package/dist/coston/artifacts/contracts/utils/interface/IIVoterWhitelister.sol/IIVoterWhitelister.json +72 -0
  47. package/dist/coston/deploys/contractAddresses.d.ts +5 -0
  48. package/dist/coston/deploys/contractAddresses.d.ts.map +1 -1
  49. package/dist/coston/deploys/contractAddresses.js +8 -3
  50. package/dist/coston/deploys/contractAddresses.js.map +1 -1
  51. package/dist/coston/deploys/coston.json +172 -0
  52. package/dist/coston2/abis.coston2.d.ts.map +1 -1
  53. package/dist/coston2/abis.coston2.js +2 -0
  54. package/dist/coston2/abis.coston2.js.map +1 -1
  55. package/dist/coston2/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  56. package/dist/coston2/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +2 -2
  57. package/dist/coston2/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +2 -2
  58. package/dist/coston2/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  59. package/dist/coston2/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  60. package/dist/coston2/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +2 -2
  61. package/dist/coston2/artifacts/contracts/ftso/lib/FtsoVote.sol/FtsoVote.json +2 -2
  62. package/dist/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +2 -2
  63. package/dist/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  64. package/dist/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +40 -2
  65. package/dist/coston2/artifacts/contracts/genesis/implementation/FlareDaemon.sol/FlareDaemon.json +2 -2
  66. package/dist/coston2/artifacts/contracts/genesis/implementation/InitialAirdrop.sol/InitialAirdrop.json +2 -2
  67. package/dist/coston2/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  68. package/dist/coston2/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +1187 -0
  69. package/dist/coston2/artifacts/contracts/inflation/implementation/Inflation.sol/Inflation.json +2 -2
  70. package/dist/coston2/artifacts/contracts/inflation/implementation/InflationAllocation.sol/InflationAllocation.json +2 -2
  71. package/dist/coston2/artifacts/contracts/inflation/lib/InflationAnnum.sol/InflationAnnum.json +2 -2
  72. package/dist/coston2/artifacts/contracts/inflation/lib/InflationAnnums.sol/InflationAnnums.json +2 -2
  73. package/dist/coston2/artifacts/contracts/inflation/lib/RewardService.sol/RewardService.json +2 -2
  74. package/dist/coston2/artifacts/contracts/inflation/lib/RewardServices.sol/RewardServices.json +2 -2
  75. package/dist/coston2/artifacts/contracts/token/implementation/Delegatable.sol/Delegatable.json +2 -2
  76. package/dist/coston2/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +2 -2
  77. package/dist/coston2/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  78. package/dist/coston2/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  79. package/dist/coston2/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  80. package/dist/coston2/artifacts/contracts/token/lib/DelegationHistory.sol/DelegationHistory.json +2 -2
  81. package/dist/coston2/artifacts/contracts/token/lib/ExplicitDelegation.sol/ExplicitDelegation.json +2 -2
  82. package/dist/coston2/artifacts/contracts/token/lib/PercentageDelegation.sol/PercentageDelegation.json +2 -2
  83. package/dist/coston2/artifacts/contracts/tokenPools/implementation/AttestationProviderRewardManager.sol/AttestationProviderRewardManager.json +2 -2
  84. package/dist/coston2/artifacts/contracts/tokenPools/implementation/DistributionToDelegators.sol/DistributionToDelegators.json +2 -2
  85. package/dist/coston2/artifacts/contracts/tokenPools/implementation/Escrow.sol/Escrow.json +2 -2
  86. package/dist/coston2/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  87. package/dist/coston2/artifacts/contracts/tokenPools/implementation/IncentivePool.sol/IncentivePool.json +2 -2
  88. package/dist/coston2/artifacts/contracts/tokenPools/implementation/IncentivePoolAllocation.sol/IncentivePoolAllocation.json +2 -2
  89. package/dist/coston2/artifacts/contracts/tokenPools/implementation/ValidatorRewardManager.sol/ValidatorRewardManager.json +2 -2
  90. package/dist/coston2/artifacts/contracts/tokenPools/lib/IncentivePoolAnnum.sol/IncentivePoolAnnum.json +2 -2
  91. package/dist/coston2/artifacts/contracts/tokenPools/lib/IncentivePoolAnnums.sol/IncentivePoolAnnums.json +2 -2
  92. package/dist/coston2/artifacts/contracts/tokenPools/lib/IncentivePoolRewardService.sol/IncentivePoolRewardService.json +2 -2
  93. package/dist/coston2/artifacts/contracts/tokenPools/lib/IncentivePoolRewardServices.sol/IncentivePoolRewardServices.json +2 -2
  94. package/dist/coston2/artifacts/contracts/utils/implementation/FundDistributor.sol/FundDistributor.json +2 -2
  95. package/dist/coston2/artifacts/contracts/utils/implementation/GovernedAndFlareDaemonized.sol/GovernedAndFlareDaemonized.json +2 -2
  96. package/dist/coston2/artifacts/contracts/utils/implementation/SafePct.sol/SafePct.json +2 -2
  97. package/dist/coston2/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +126 -3
  98. package/dist/coston2/artifacts/contracts/utils/interface/IIVoterWhitelister.sol/IIVoterWhitelister.json +72 -0
  99. package/dist/coston2/deploys/contractAddresses.d.ts +1 -0
  100. package/dist/coston2/deploys/contractAddresses.d.ts.map +1 -1
  101. package/dist/coston2/deploys/contractAddresses.js +2 -1
  102. package/dist/coston2/deploys/contractAddresses.js.map +1 -1
  103. package/dist/coston2/deploys/coston2.json +222 -0
  104. package/dist/flare/abis.flare.d.ts.map +1 -1
  105. package/dist/flare/abis.flare.js +2 -0
  106. package/dist/flare/abis.flare.js.map +1 -1
  107. package/dist/flare/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  108. package/dist/flare/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +2 -2
  109. package/dist/flare/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +2 -2
  110. package/dist/flare/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  111. package/dist/flare/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  112. package/dist/flare/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +2 -2
  113. package/dist/flare/artifacts/contracts/ftso/lib/FtsoVote.sol/FtsoVote.json +2 -2
  114. package/dist/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +2 -2
  115. package/dist/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  116. package/dist/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +40 -2
  117. package/dist/flare/artifacts/contracts/genesis/implementation/FlareDaemon.sol/FlareDaemon.json +2 -2
  118. package/dist/flare/artifacts/contracts/genesis/implementation/InitialAirdrop.sol/InitialAirdrop.json +2 -2
  119. package/dist/flare/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  120. package/dist/flare/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +1187 -0
  121. package/dist/flare/artifacts/contracts/inflation/implementation/Inflation.sol/Inflation.json +2 -2
  122. package/dist/flare/artifacts/contracts/inflation/implementation/InflationAllocation.sol/InflationAllocation.json +2 -2
  123. package/dist/flare/artifacts/contracts/inflation/lib/InflationAnnum.sol/InflationAnnum.json +2 -2
  124. package/dist/flare/artifacts/contracts/inflation/lib/InflationAnnums.sol/InflationAnnums.json +2 -2
  125. package/dist/flare/artifacts/contracts/inflation/lib/RewardService.sol/RewardService.json +2 -2
  126. package/dist/flare/artifacts/contracts/inflation/lib/RewardServices.sol/RewardServices.json +2 -2
  127. package/dist/flare/artifacts/contracts/token/implementation/Delegatable.sol/Delegatable.json +2 -2
  128. package/dist/flare/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +2 -2
  129. package/dist/flare/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  130. package/dist/flare/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  131. package/dist/flare/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  132. package/dist/flare/artifacts/contracts/token/lib/DelegationHistory.sol/DelegationHistory.json +2 -2
  133. package/dist/flare/artifacts/contracts/token/lib/ExplicitDelegation.sol/ExplicitDelegation.json +2 -2
  134. package/dist/flare/artifacts/contracts/token/lib/PercentageDelegation.sol/PercentageDelegation.json +2 -2
  135. package/dist/flare/artifacts/contracts/tokenPools/implementation/AttestationProviderRewardManager.sol/AttestationProviderRewardManager.json +2 -2
  136. package/dist/flare/artifacts/contracts/tokenPools/implementation/DistributionToDelegators.sol/DistributionToDelegators.json +2 -2
  137. package/dist/flare/artifacts/contracts/tokenPools/implementation/Escrow.sol/Escrow.json +2 -2
  138. package/dist/flare/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  139. package/dist/flare/artifacts/contracts/tokenPools/implementation/IncentivePool.sol/IncentivePool.json +2 -2
  140. package/dist/flare/artifacts/contracts/tokenPools/implementation/IncentivePoolAllocation.sol/IncentivePoolAllocation.json +2 -2
  141. package/dist/flare/artifacts/contracts/tokenPools/implementation/ValidatorRewardManager.sol/ValidatorRewardManager.json +2 -2
  142. package/dist/flare/artifacts/contracts/tokenPools/lib/IncentivePoolAnnum.sol/IncentivePoolAnnum.json +2 -2
  143. package/dist/flare/artifacts/contracts/tokenPools/lib/IncentivePoolAnnums.sol/IncentivePoolAnnums.json +2 -2
  144. package/dist/flare/artifacts/contracts/tokenPools/lib/IncentivePoolRewardService.sol/IncentivePoolRewardService.json +2 -2
  145. package/dist/flare/artifacts/contracts/tokenPools/lib/IncentivePoolRewardServices.sol/IncentivePoolRewardServices.json +2 -2
  146. package/dist/flare/artifacts/contracts/utils/implementation/FundDistributor.sol/FundDistributor.json +2 -2
  147. package/dist/flare/artifacts/contracts/utils/implementation/GovernedAndFlareDaemonized.sol/GovernedAndFlareDaemonized.json +2 -2
  148. package/dist/flare/artifacts/contracts/utils/implementation/SafePct.sol/SafePct.json +2 -2
  149. package/dist/flare/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +126 -3
  150. package/dist/flare/artifacts/contracts/utils/interface/IIVoterWhitelister.sol/IIVoterWhitelister.json +72 -0
  151. package/dist/flare/deploys/contractAddresses.d.ts +2 -0
  152. package/dist/flare/deploys/contractAddresses.d.ts.map +1 -1
  153. package/dist/flare/deploys/contractAddresses.js +3 -1
  154. package/dist/flare/deploys/contractAddresses.js.map +1 -1
  155. package/dist/flare/deploys/flare.json +222 -0
  156. package/dist/package.json +28 -0
  157. package/dist/songbird/abis.songbird.d.ts.map +1 -1
  158. package/dist/songbird/abis.songbird.js +14 -4
  159. package/dist/songbird/abis.songbird.js.map +1 -1
  160. package/dist/songbird/artifacts/contracts/assetRegistry/implementation/FlareAssetRegistry.sol/FlareAssetRegistry.json +525 -0
  161. package/dist/songbird/artifacts/contracts/assetRegistry/implementation/WNatRegistryProvider.sol/WNatRegistryProvider.json +113 -0
  162. package/dist/songbird/artifacts/contracts/assetRegistry/interface/IIERC20WithMetadata.sol/IIERC20WithMetadata.json +233 -0
  163. package/dist/songbird/artifacts/contracts/assetRegistry/interface/IIFlareAssetRegistry.sol/IIFlareAssetRegistry.json +316 -0
  164. package/dist/songbird/artifacts/contracts/assetRegistry/interface/IIFlareAssetRegistryProvider.sol/IIFlareAssetRegistryProvider.json +66 -0
  165. package/dist/songbird/artifacts/contracts/assetRegistry/lib/StandardAttributes.sol/StandardAttributes.json +10 -0
  166. package/dist/songbird/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  167. package/dist/songbird/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +2 -2
  168. package/dist/songbird/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +2 -2
  169. package/dist/songbird/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +3 -3
  170. package/dist/songbird/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  171. package/dist/songbird/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +2 -2
  172. package/dist/songbird/artifacts/contracts/ftso/lib/FtsoVote.sol/FtsoVote.json +2 -2
  173. package/dist/songbird/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +2 -2
  174. package/dist/songbird/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  175. package/dist/songbird/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +40 -2
  176. package/dist/songbird/artifacts/contracts/genesis/implementation/FlareDaemon.sol/FlareDaemon.json +2 -2
  177. package/dist/songbird/artifacts/contracts/governance/implementation/InflationAllocation.sol/InflationAllocation.json +2 -2
  178. package/dist/songbird/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  179. package/dist/songbird/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +1187 -0
  180. package/dist/songbird/artifacts/contracts/inflation/implementation/Inflation.sol/Inflation.json +2 -2
  181. package/dist/songbird/artifacts/contracts/inflation/lib/InflationAnnum.sol/InflationAnnum.json +2 -2
  182. package/dist/songbird/artifacts/contracts/inflation/lib/InflationAnnums.sol/InflationAnnums.json +2 -2
  183. package/dist/songbird/artifacts/contracts/inflation/lib/RewardService.sol/RewardService.json +2 -2
  184. package/dist/songbird/artifacts/contracts/inflation/lib/RewardServices.sol/RewardServices.json +2 -2
  185. package/dist/songbird/artifacts/contracts/token/implementation/CleanupBlockNumberManager.sol/CleanupBlockNumberManager.json +172 -37
  186. package/dist/songbird/artifacts/contracts/token/implementation/Delegatable.sol/Delegatable.json +2 -2
  187. package/dist/songbird/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +2 -2
  188. package/dist/songbird/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  189. package/dist/songbird/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  190. package/dist/songbird/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  191. package/dist/songbird/artifacts/contracts/token/lib/DelegationHistory.sol/DelegationHistory.json +2 -2
  192. package/dist/songbird/artifacts/contracts/token/lib/ExplicitDelegation.sol/ExplicitDelegation.json +2 -2
  193. package/dist/songbird/artifacts/contracts/token/lib/PercentageDelegation.sol/PercentageDelegation.json +2 -2
  194. package/dist/songbird/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +523 -138
  195. package/dist/songbird/artifacts/contracts/tokenPools/interface/IIFtsoRewardManager.sol/IIFtsoRewardManager.json +322 -0
  196. package/dist/songbird/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  197. package/dist/songbird/artifacts/contracts/utils/implementation/GovernedAndFlareDaemonized.sol/GovernedAndFlareDaemonized.json +2 -2
  198. package/dist/songbird/artifacts/contracts/utils/implementation/GovernedAndFlareDaemonizedV2.sol/GovernedAndFlareDaemonizedV2.json +2 -2
  199. package/dist/songbird/artifacts/contracts/utils/implementation/SafePct.sol/SafePct.json +2 -2
  200. package/dist/songbird/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +276 -41
  201. package/dist/songbird/artifacts/contracts/utils/interface/IIVoterWhitelister.sol/IIVoterWhitelister.json +72 -0
  202. package/dist/songbird/deploys/contractAddresses.d.ts +5 -0
  203. package/dist/songbird/deploys/contractAddresses.d.ts.map +1 -1
  204. package/dist/songbird/deploys/contractAddresses.js +8 -3
  205. package/dist/songbird/deploys/contractAddresses.js.map +1 -1
  206. package/dist/songbird/deploys/songbird.json +172 -0
  207. package/package.json +1 -1
  208. package/dist/coston/artifacts/contracts/tokenPools/implementation/Distribution.sol/Distribution.json +0 -414
  209. package/dist/coston/artifacts/contracts/tokenPools/interface/IIFtsoRewardManagerV2.sol/IIFtsoRewardManagerV2.json +0 -949
  210. package/dist/songbird/artifacts/contracts/tokenPools/implementation/Distribution.sol/Distribution.json +0 -414
  211. package/dist/songbird/artifacts/contracts/tokenPools/interface/IIFtsoRewardManagerV2.sol/IIFtsoRewardManagerV2.json +0 -949
@@ -767,8 +767,8 @@
767
767
  "type": "function"
768
768
  }
769
769
  ],
770
- "bytecode": "0x60c06040523480156200001157600080fd5b506040516200514538038062005145833981810160405260408110156200003757600080fd5b5080516020909101516001600160a01b038216620000875760405162461bcd60e51b8152600401808060200182810382526023815260200180620051226023913960400191505060405180910390fd5b606082901b6001600160601b031916608052151560f881901b60a0526001600160a01b039091169060ff16614fd56200014d60003980610f91528061161d528061171352806117a752806118945280612196528061226b528061272b5250806108c05280610a195280610b415280610b7f5280610c775280610dc35280610ed25280611005528061110d528061121c528061129552806112e1528061130a528061165e5280611740528061192e5280611a005280611bb35280611bdc5250614fd56000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c8063833aca92116100f9578063cabc452811610097578063eadb436211610071578063eadb4362146107fb578063ed475a791461083d578063f683776714610869578063f6a494af1461088f576101c4565b8063cabc452814610791578063deea13e7146107c7578063e587497e146107cf576101c4565b806392bfe6d8116100d357806392bfe6d8146106d75780639dc6b9f214610703578063aa94d3f214610739578063c7c62fab14610755576101c4565b8063833aca9214610639578063891339a8146106755780638c0b6b40146106a1576101c4565b806349e3c7e511610166578063653718831161014057806365371883146104f65780637de5b8ed1461051a5780637f4fcaa9146105e75780637f57d58f1461060d576101c4565b806349e3c7e5146103995780634a03d5561461048e5780636230001a146104ba576101c4565b8063142d1018116101a2578063142d1018146102d95780631a05274c146102ff578063315039271461032b578063404d9e821461035d576101c4565b806305109ecf146101c95780630f8b8af7146101f757806313de97f5146102bc575b600080fd5b6101f5600480360360408110156101df57600080fd5b506001600160a01b0381351690602001356108b5565b005b6102aa6004803603604081101561020d57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561023857600080fd5b82018360208201111561024a57600080fd5b8035906020019184602083028401116401000000008311171561026c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610a0c945050505050565b60408051918252519081900360200190f35b6101f5600480360360208110156102d257600080fd5b5035610b36565b6102aa600480360360208110156102ef57600080fd5b50356001600160a01b0316610c55565b6102aa6004803603604081101561031557600080fd5b506001600160a01b038135169060200135610d16565b6102aa6004803603606081101561034157600080fd5b506001600160a01b038135169060208101359060400135610d8c565b6101f56004803603608081101561037357600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610db8565b61043e600480360360408110156103af57600080fd5b8101906020810181356401000000008111156103ca57600080fd5b8201836020820111156103dc57600080fd5b803590602001918460208302840111640100000000831117156103fe57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505091359250610f81915050565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561047a578181015183820152602001610462565b505050509050019250505060405180910390f35b6102aa600480360360408110156104a457600080fd5b506001600160a01b0381351690602001356110da565b6101f5600480360360808110156104d057600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611102565b6104fe611293565b604080516001600160a01b039092168252519081900360200190f35b6105406004803603602081101561053057600080fd5b50356001600160a01b03166112b7565b604051808060200180602001858152602001848152602001838103835287818151815260200191508051906020019060200280838360005b83811015610590578181015183820152602001610578565b50505050905001838103825286818151815260200191508051906020019060200280838360005b838110156105cf5781810151838201526020016105b7565b50505050905001965050505050505060405180910390f35b6101f5600480360360208110156105fd57600080fd5b50356001600160a01b03166112d6565b6102aa6004803603604081101561062357600080fd5b506001600160a01b038135169060200135611407565b6102aa6004803603608081101561064f57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611487565b6102aa6004803603604081101561068b57600080fd5b506001600160a01b0381351690602001356114a0565b6102aa600480360360608110156106b757600080fd5b506001600160a01b0381358116916020810135909116906040013561155c565b6102aa600480360360408110156106ed57600080fd5b506001600160a01b038135169060200135611619565b6102aa6004803603606081101561071957600080fd5b506001600160a01b03813581169160208101359091169060400135611704565b610741611711565b604080519115158252519081900360200190f35b6101f56004803603608081101561076b57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611735565b6102aa600480360360608110156107a757600080fd5b506001600160a01b038135811691602081013590911690604001356117ff565b6102aa611881565b6102aa600480360360408110156107e557600080fd5b506001600160a01b038135169060200135611890565b6101f5600480360360a081101561081157600080fd5b506001600160a01b038135811691602081013590911690604081013590606081013590608001356119f5565b6105406004803603604081101561085357600080fd5b506001600160a01b038135169060200135611ad1565b6102aa6004803603602081101561087f57600080fd5b50356001600160a01b0316611b92565b6101f5600480360360208110156108a557600080fd5b50356001600160a01b0316611ba8565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610925576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b9103a37b5b2b760811b604482015290519081900360640190fd5b8161092f81611cc0565b6040518060400160405280601c81526020017f416c72656164792064656c656761746564206578706c696369746c7900000000815250906109ee5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109b357818101518382015260200161099b565b50505050905090810190601f1680156109e05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506109f883611d07565b15610a0757610a078383611d9f565b505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a7e576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b9103a37b5b2b760811b604482015290519081900360640190fd5b82610a8881611f3f565b6040518060400160405280601f81526020017f416c72656164792064656c6567617465642062792070657263656e746167650081525090610b0a5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b50610b1484611d07565b15610b2a57610b238484611f76565b9150610b2f565b600091505b5092915050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610b7757506008546001600160a01b031633145b80610c0e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b158015610bd657600080fd5b505afa158015610bea573d6000803e3d6000fd5b505050506040513d6020811015610c0057600080fd5b50516001600160a01b031633145b610c495760405162461bcd60e51b815260040180806020018281038252602f815260200180614e70602f913960400191505060405180910390fd5b610c528161210e565b50565b6000610c6082612192565b15610c7557610c6e826121df565b9050610d11565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231836040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610ce257600080fd5b505afa158015610cf6573d6000803e3d6000fd5b505050506040513d6020811015610d0c57600080fd5b505190505b919050565b6007546000906001600160a01b03163314610d70576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b600654610d8390600390859085906121ec565b90505b92915050565b6000610d9784612192565b15610dae57610da78484846121fa565b9050610db1565b50815b9392505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610e28576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b9103a37b5b2b760811b604482015290519081900360640190fd5b83610e3281611f3f565b6040518060400160405280601f81526020017f416c72656164792064656c6567617465642062792070657263656e746167650081525090610eb45760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b50610ebf8584612269565b610ec884612192565b610f6e57610f6e847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231876040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610f3d57600080fd5b505afa158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b5051612269565b610f7a85858585612306565b5050505050565b6060610f8d83836125eb565b90507f000000000000000000000000000000000000000000000000000000000000000015610d865760005b8151811015610b2f57818181518110610fcd57fe5b60200260200101516000148015610ffe5750610ffc848281518110610fee57fe5b602002602001015184612727565b155b156110d2577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634ee2cd7e85838151811061103e57fe5b6020026020010151856040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b15801561108b57600080fd5b505afa15801561109f573d6000803e3d6000fd5b505050506040513d60208110156110b557600080fd5b505182518390839081106110c557fe5b6020026020010181815250505b600101610fb8565b60006110e583612192565b156110fb576110f48383612788565b9050610d86565b5080610d86565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611172576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b9103a37b5b2b760811b604482015290519081900360640190fd5b8361117c81611cc0565b6040518060400160405280601c81526020017f416c72656164792064656c656761746564206578706c696369746c7900000000815250906111fe5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b506112098584612269565b61121284612192565b61128757611287847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231876040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610f3d57600080fd5b610f7a85858585612795565b7f000000000000000000000000000000000000000000000000000000000000000081565b6060806000806112c78543611ad1565b93509350935093509193509193565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061139957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b15801561136157600080fd5b505afa158015611375573d6000803e3d6000fd5b505050506040513d602081101561138b57600080fd5b50516001600160a01b031633145b6113e5576040805162461bcd60e51b81526020600482015260186024820152776f6e6c79206f776e6572206f7220676f7665726e616e636560401b604482015290519081900360640190fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6007546000906001600160a01b03163314611461576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b6006546001600160a01b0384166000908152600160205260409020610d83918490612a08565b600061149585858585612a15565b90505b949350505050565b6007546000906001600160a01b031633146114fa576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b6006548210611550576040805162461bcd60e51b815260206004820152601e60248201527f4e6f20636c65616e757020616674657220636c65616e757020626c6f636b0000604482015290519081900360640190fd5b610d8360048484612a8c565b6007546000906001600160a01b031633146115b6576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b600654821061160c576040805162461bcd60e51b815260206004820152601e60248201527f4e6f20636c65616e757020616674657220636c65616e757020626c6f636b0000604482015290519081900360640190fd5b6114986004858585612af9565b60007f0000000000000000000000000000000000000000000000000000000000000000158061164d575061164d8383612727565b1561165c576110f48383612b87565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634ee2cd7e84846040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b1580156116d157600080fd5b505afa1580156116e5573d6000803e3d6000fd5b505050506040513d60208110156116fb57600080fd5b50519050610d86565b6000611498848484612bec565b7f000000000000000000000000000000000000000000000000000000000000000081565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146117a5576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b9103a37b5b2b760811b604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000015806117e857506117d78482612727565b80156117e857506117e88382612727565b156117f9576117f984848484612bfa565b50505050565b6007546000906001600160a01b03163314611859576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b6006546001600160a01b03851660009081526002602052604090206114989185908590612cf5565b600061188b612d1c565b905090565b60007f000000000000000000000000000000000000000000000000000000000000000015806118c457506118c48383612727565b156118d3576110f48383612d22565b604080516001600160a01b038516602080830191909152818301859052825180830384018152606090920183528151918101919091206000818152600a90925291902054801561192a57600019019150610d869050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634ee2cd7e87876040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b1580156119a157600080fd5b505afa1580156119b5573d6000803e3d6000fd5b505050506040513d60208110156119cb57600080fd5b505190506119da816001612e22565b6000938452600a602052604090932092909255509050610d86565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611a65576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b9103a37b5b2b760811b604482015290519081900360640190fd5b6001600160a01b038516611a8d57611a7d8483612269565b611a88848383612e7c565b610f7a565b6001600160a01b038416611ab057611aa58584612269565b611a88858483612eb1565b611aba8584612269565b611ac48483612269565b610f7a8585858585612f93565b6060806000806000611ae2876130a3565b90506001816002811115611af257fe5b1415611b0c57611b0287876130c1565b9095509350611b76565b6000816002811115611b1a57fe5b1415611b3f576040805160008082526020820190815281830190925295509350611b76565b60405162461bcd60e51b8152600401808060200182810382526033815260200180614f6d6033913960400191505060405180910390fd5b84519250806002811115611b8657fe5b91505092959194509250565b6000611b9d826130a3565b6002811115610d8657fe5b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611c6b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b158015611c3357600080fd5b505afa158015611c47573d6000803e3d6000fd5b505050506040513d6020811015611c5d57600080fd5b50516001600160a01b031633145b611cb7576040805162461bcd60e51b81526020600482015260186024820152776f6e6c79206f776e6572206f7220676f7665726e616e636560401b604482015290519081900360640190fd5b610c5281613300565b6001600160a01b03811660009081526020819052604081205460ff1681816002811115611ce957fe5b1480610db1575060015b816002811115611cff57fe5b149392505050565b6001600160a01b03811660009081526020819052604081205460ff1681816002811115611d3057fe5b1415611d40576000915050610d11565b6002816002811115611d4e57fe5b1415611d7e576001600160a01b0383166000908152600260205260408120611d7590613322565b11915050610d11565b6001600160a01b0383166000908152600160205260408120611d759061332d565b6001600160a01b03821660009081526020819052604081205460ff1690816002811115611dc857fe5b1415611dd45750611f3b565b6001816002811115611de257fe5b14611e1e5760405162461bcd60e51b815260040180806020018281038252603c815260200180614d9c603c913960400191505060405180910390fd5b6001600160a01b03831660009081526001602052604081209080611e4183613339565b9150915060005b8251811015611f1a576000838281518110611e5f57fe5b602002602001015190506000611e95848481518110611e7a57fe5b60200260200101516127108a61334e9092919063ffffffff16565b9050611ea460038a8484613447565b600654611eb8906003908b906002906121ec565b50600654611ecd9060039084906002906121ec565b50816001600160a01b0316896001600160a01b0316600080516020614e26833981519152836000604051808381526020018281526020019250505060405180910390a35050600101611e48565b50611f2483613484565b600654611f35908490600290612a08565b50505050505b5050565b6001600160a01b03811660009081526020819052604081205460ff1681816002811115611f6857fe5b1480610db157506002611cf3565b6001600160a01b03821660009081526020819052604081205460ff1681816002811115611f9f57fe5b1415611faf576000915050610d86565b6002816002811115611fbd57fe5b14611ff95760405162461bcd60e51b8152600401808060200182810382526042815260200180614e9f6042913960600191505060405180910390fd5b6001600160a01b0384166000908152600260205260408120905b84518110156120fb57600085828151811061202a57fe5b602002602001015190506000612049828561348d90919063ffffffff16565b9050806120575750506120f3565b6120646003898484613447565b600654612078906003908a906002906121ec565b5060065461208d9060039084906002906121ec565b5061209a8483600061349c565b6006546120ad9085908490600290612cf5565b50816001600160a01b0316886001600160a01b0316600080516020614e26833981519152836000604051808381526020018281526020019250505060405180910390a350505b600101612013565b5061210581613322565b95945050505050565b60065481101561214f5760405162461bcd60e51b8152600401808060200182810382526028815260200180614dfe6028913960400191505060405180910390fd5b43811061218d5760405162461bcd60e51b8152600401808060200182810382526021815260200180614d7b6021913960400191505060405180910390fd5b600655565b60007f00000000000000000000000000000000000000000000000000000000000000006121c157506001610d11565b506001600160a01b0316600090815260096020526040902054151590565b6000610d86600383613506565b600061149585858585613513565b60008160065481101561223e5760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b600061224b86868661354e565b905060008061225a878461362c565b9550505050505b509392505050565b7f000000000000000000000000000000000000000000000000000000000000000061229357611f3b565b6001600160a01b038216600090815260096020526040902054611f3b576122b9826121df565b1580156122cc57506122ca82611d07565b155b6122d257fe5b6122de82600083612e7c565b6122e9436001612e22565b6001600160a01b0383166000908152600960205260409020555050565b6001600160a01b03831661235b576040805162461bcd60e51b815260206004820152601760248201527643616e6e6f742064656c656761746520746f207a65726f60481b604482015290519081900360640190fd5b836001600160a01b0316836001600160a01b031614156123bc576040805162461bcd60e51b815260206004820152601760248201527621b0b73737ba103232b632b3b0ba32903a379039b2b63360491b604482015290519081900360640190fd5b6123c584611f3f565b612416576040805162461bcd60e51b815260206004820152601960248201527f43616e6e6f742064656c656761746520627920616d6f756e7400000000000000604482015290519081900360640190fd5b6001600160a01b038416600090815260026020526040812090612439828661348d565b9050808310156124575761245260038787868503613447565b612507565b600061246d826124678988612788565b90612e22565b9050838110156040518060400160405280602081526020017f556e64656c65676174656420766f746520706f77657220746f6f20736d616c6c815250906124f55760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b5061250560038888858803613652565b505b60065461251b9060039088906002906121ec565b506006546125309060039087906002906121ec565b5061253c82868561349c565b60065461254f9083908790600290612cf5565b5060026001600160a01b03871660009081526020819052604090205460ff16600281111561257957fe5b146125a2576001600160a01b0386166000908152602081905260409020805460ff191660021790555b846001600160a01b0316866001600160a01b0316600080516020614e268339815191528386604051808381526020018281526020019250505060405180910390a3505050505050565b60608160065481101561262f5760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b438310612683576040805162461bcd60e51b815260206004820181905260248201527f43616e206f6e6c79206265207573656420666f72207061737420626c6f636b73604482015290519081900360640190fd5b835167ffffffffffffffff8111801561269b57600080fd5b506040519080825280602002602001820160405280156126c5578160200160208202803683370190505b50915060005b845181101561271f5761270060038683815181106126e557fe5b602002602001015186600461368f909392919063ffffffff16565b83828151811061270c57fe5b60209081029190910101526001016126cb565b505092915050565b60007f000000000000000000000000000000000000000000000000000000000000000061275657506001610d86565b6001600160a01b0383166000908152600960205260409020548015801590611498575060001901919091111592915050565b6000610d838383436121fa565b6001600160a01b0383166127ea576040805162461bcd60e51b815260206004820152601760248201527643616e6e6f742064656c656761746520746f207a65726f60481b604482015290519081900360640190fd5b836001600160a01b0316836001600160a01b0316141561284b576040805162461bcd60e51b815260206004820152601760248201527621b0b73737ba103232b632b3b0ba32903a379039b2b63360491b604482015290519081900360640190fd5b61285484611cc0565b6128a5576040805162461bcd60e51b815260206004820152601d60248201527f43616e6e6f742064656c65676174652062792070657263656e74616765000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600160205260408120906128c882866136fe565b90506000806128d884888761370a565b6006546128e9908590600290612a08565b508215612900576128fd868461271061334e565b91505b841561291657612913868661271061334e565b90505b818110156129325761292d60038989848603613447565b612941565b61294160038989858503613652565b600654612955906003908a906002906121ec565b5060065461296a9060039089906002906121ec565b5060016001600160a01b03891660009081526020819052604090205460ff16600281111561299457fe5b146129bd576001600160a01b0388166000908152602081905260409020805460ff191660011790555b866001600160a01b0316886001600160a01b0316600080516020614e268339815191528484604051808381526020018281526020019250505060405180910390a35050505050505050565b60006114988484846137b1565b600081600654811015612a595760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b612a66600487878661388e565b15612a745760009150612a83565b612a80868686866138e2565b91505b50949350505050565b604080516001600160a01b038416602080830191909152818301849052825180830384018152606090920183528151918101919091206000818152918690529181205490919015612aee57600090815260208590526040812055506001610db1565b506000949350505050565b604080516001600160a01b03808616602080840191909152828401859052835180840385018152606090930184528251928101929092206000818152600189018452848120928716815292829052928220549192918015612b7957506001600160a01b038516600090815260209190915260408120555060019050611498565b506000979650505050505050565b600081600654811015612bcb5760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b43831015612be157610b2360046003868661368f565b610b23600385613506565b6000611498848484436138e2565b80600654811015612c3c5760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b438210612c7a5760405162461bcd60e51b815260040180806020018281038252603b815260200180614f02603b913960400191505060405180910390fd5b6000612c88868686866138e2565b9050612c9a6004600388888588613995565b846001600160a01b0316866001600160a01b03167fd6f80c7d68e3e62bd7a51c3d37e575c1cfbc311c07487b69ef4eb570bc21cb688386604051808381526020018281526020019250505060405180910390a3505050505050565b6000612d02858484613b08565b9050612d1360028601858585613513565b01949350505050565b60065490565b600081600654811015612d665760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b438310612dba576040805162461bcd60e51b815260206004820181905260248201527f43616e206f6e6c79206265207573656420666f72207061737420626c6f636b73604482015290519081900360640190fd5b600080612dcb600460038888613ba7565b915091508015612a8357604080516001600160a01b03881681526020810187905281517fb0b412112c2958bbc2537fa96db51ddcfe7d0d074143f0b5308b6aab19b6694b929181900390910190a150949350505050565b600082820183811015610d83576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b612e8860038483613c31565b600654612e9c9060039085906002906121ec565b50610a078383612eac8185612e22565b613c58565b6000612ed882604051806060016040528060268152602001614dd860269139859190613d99565b9050612ee5848483613c58565b612ef0848484613df3565b6040518060400160405280602081526020017f556e64656c65676174656420766f746520706f77657220746f6f20736d616c6c81525090612f725760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b50612f7f60038584613e40565b600654610f7a9060039086906002906121ec565b6000612fba82604051806060016040528060268152602001614dd860269139869190613d99565b9050612fc7868583613c58565b612fd2868584613df3565b6040518060400160405280602081526020017f556e64656c65676174656420766f746520706f77657220746f6f20736d616c6c815250906130545760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b506130626003878785613e67565b6006546130769060039088906002906121ec565b5060065461308b9060039087906002906121ec565b5061309b8584612eac8186612e22565b505050505050565b6001600160a01b031660009081526020819052604090205460ff1690565b606080826006548110156131065760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b6001600160a01b038516600090815260016020526040902060608061312b8388613e8e565b909250905060005b825181101561318f576131678984838151811061314c57fe5b60200260200101518a600461388e909392919063ffffffff16565b1561318757600082828151811061317a57fe5b6020026020010181815250505b600101613133565b506000805b83518110156131c7578281815181106131a957fe5b60200260200101516000146131bf576001909101905b600101613194565b508067ffffffffffffffff811180156131df57600080fd5b50604051908082528060200260200182016040528015613209578160200160208202803683370190505b5096508067ffffffffffffffff8111801561322357600080fd5b5060405190808252806020026020018201604052801561324d578160200160208202803683370190505b5095506000805b84518110156132f25783818151811061326957fe5b60200260200101516000146132ea5784818151811061328457fe5b602002602001015189838151811061329857fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106132c457fe5b60200260200101518883815181106132d857fe5b60209081029190910101526001909101905b600101613254565b505050505050509250929050565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6000610d8682613ea6565b6000610d868243613eb2565b60608061334583613f09565b91509150915091565b6000808211613397576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b836133a457506000610db1565b838302838582816133b157fe5b0414156133ca578281816133c157fe5b04915050610db1565b60008386816133d557fe5b04905060008487816133e357fe5b06905060008587816133f157fe5b04905060008688816133ff57fe5b06905061225a613419886134138685613f16565b90613f6f565b6124676134268686613f16565b6124676134338987613f16565b6124678d6134418c8b613f16565b90613f16565b82826001600160a01b03821615801561346757506001600160a01b038116155b1561346e57fe5b826134785761309b565b61309b86858786613fd6565b610c5281614065565b6000610d836002840183614088565b60006134ab6002850184614088565b905060006134ec8361246784604051806040016040528060098152602001680546f74616c203c20360bc1b8152506134e58a600001613ea6565b9190613d99565b90506134fc600286018585614095565b610f7a85826140b3565b6000610d8383834361417c565b60006001600160a01b03841615612aee576001600160a01b0384166000908152602086905260409020613547908484613b08565b9050611498565b6000816006548110156135925760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b6001600160a01b03851660009081526020819052604081205460ff16908160028111156135bb57fe5b14156135cb576000925050612261565b60028160028111156135d957fe5b1415613609576001600160a01b03861660009081526002602052604090206136019085614189565b925050612261565b6001600160a01b0386166000908152600160205260409020613601908686614195565b600080838311156136425750600090508061364b565b50600190508183035b9250929050565b82826001600160a01b03821615801561367257506001600160a01b038116155b1561367957fe5b826136835761309b565b61309b86868686613fd6565b604080516001600160a01b038416602080830191909152818301849052825180830384018152606090920183528151918101919091206000818152918790529181205490919080156136e8576000190191506114989050565b6136f386868661417c565b979650505050505050565b6000610d8383836141a5565b61271081111561371657fe5b6137218383836141b2565b61271061372d84614293565b11156040518060400160405280601c81526020017f4d61782064656c65676174696f6e206269707320657863656564656400000000815250906117f95760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b6000816137c057506000610db1565b8354806137d1576000915050610db1565b600185015460006137ee6137e58388612e22565b6001850361429f565b9050815b818110801561382457508588600001826001018154811061380f57fe5b90600052602060002090600302016000015411155b156138705787600001818154811061383857fe5b600091825260208220600390910201818155906138586001830182614d18565b613866600283016000614d18565b50506001016137f2565b8281111561388057600188018190555b919091039695505050505050565b604080516001600160a01b0394851660208083019190915281830193909352815180820383018152606090910182528051908301206000908152600195909501825280852092909316845252902054151590565b6001600160a01b03841660009081526020819052604081205460ff168181600281111561390b57fe5b141561391b576000915050611498565b600181600281111561392957fe5b141561396a576001600160a01b03861660009081526001602052604081206139529087866142b5565b9050613961858261271061334e565b92505050611498565b6001600160a01b038616600090815260026020526040902061398d9086856142c2565b915050611498565b8161399f5761309b565b604080516001600160a01b0380871660208084019190915282840185905283518084038501815260609093018452825192810192909220600081815260018b018452848120928816815291909252919091205415613a36576040805162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481c995d9bdad959608a1b604482015290519081900360640190fd5b6000613a4488888786613ba7565b5090506000858460405160200180836001600160a01b0316815260200182815260200192505050604051602081830303815290604052805190602001209050613ad78982613ad2886040518060400160405280601781526020017f5265766f6b65642076616c756520746f6f206c6172676500000000000000000081525087613d999092919063ffffffff16565b6142d2565b5050600090815260018701602090815260408083206001600160a01b03871684529091529020829055505050505050565b600081613b1757506000610db1565b835480613b28576000915050610db1565b60018501546000613b3c6137e58388612e22565b9050815b8181108015613b72575085886000018260010181548110613b5d57fe5b90600052602060002090600202016000015411155b1561387057876000018181548110613b8657fe5b60009182526020822060029091020181815560019081019190915501613b40565b604080516001600160a01b0384166020808301919091528183018490528251808303840181526060909201835281519181019190912060008181529187905291812054909182918015613c055760001901925060009150613c289050565b6000613c1288888861417c565b9050613c1f8984836142d2565b93506001925050505b94509492505050565b80613c3b57610a07565b6001600160a01b038216613c4b57fe5b610a078360008484613fd6565b60016001600160a01b03841660009081526020819052604090205460ff166002811115613c8157fe5b1415610a07576001600160a01b03831660009081526001602052604081209080613caa83613339565b9150915060005b8251811015611f35576000838281518110613cc857fe5b602002602001015190506000613ce3848481518110611e7a57fe5b90506000613cf6858581518110611e7a57fe5b905081811115613d1457613d0f60038b85858503613652565b613d23565b613d2360038b85848603613447565b600654613d37906003908c906002906121ec565b50600654613d4c9060039085906002906121ec565b50826001600160a01b03168a6001600160a01b0316600080516020614e268339815191528484604051808381526020018281526020019250505060405180910390a3505050600101613cb1565b60008184841115613deb5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b505050900390565b600060026001600160a01b03851660009081526020819052604090205460ff166002811115613e1e57fe5b1415613e385781613e2f8585612788565b10159050610db1565b506001610db1565b80613e4a57610a07565b6001600160a01b038216613e5a57fe5b610a078383600084613fd6565b82826001600160a01b038216158015613e8757506001600160a01b038116155b1561368357fe5b606080613e9b84846142f0565b915091509250929050565b6000610d86824361448c565b6000806000613ec9856000018660010154866145b2565b9150915081613edd57600092505050610d86565b846000018181548110613eec57fe5b600091825260209091206001600390920201015495945050505050565b60608061334583436142f0565b600082613f2557506000610d86565b82820282848281613f3257fe5b0414610d835760405162461bcd60e51b8152600401808060200182810382526021815260200180614ee16021913960400191505060405180910390fd5b6000808211613fc5576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381613fce57fe5b049392505050565b80613fe0576117f9565b6001600160a01b038316158015613ffe57506001600160a01b038216155b1561400557fe5b6001600160a01b0383161561403957600061402a826140248787614088565b90614690565b9050614037858583614095565b505b6001600160a01b038216156117f9576000614058826124678786614088565b9050610f7a858483614095565b805415610c52578054600181018255600082815260209020436003909202015550565b6000610d838383436146ed565b6001600160a01b03821660009081526020849052604090206117f981835b8154806140f7576040805180820190915243815260208082018481528554600181810188556000888152939093209351600290910290930192835551910155610a07565b600083600001600183038154811061410b57fe5b600091825260209091206002909102018054909150438114156141345760018201849055610f7a565b80431161413d57fe5b604080518082019091524381526020808201868152875460018181018a5560008a81529390932093516002909102909301928355519101555050505050565b60006114988484846146ed565b6000610d83838361448c565b600061149884846127108561470f565b6000610d838383436147be565b82548061422257811561421d578354600180820186556000868152602080822043600390950201938455838301805480850182559083528183200180546001600160a01b0319166001600160a01b038916179055600290930180549283018155815291909120018290555b6117f9565b600084600001600183038154811061423657fe5b600091825260209091206003909102018054909150438114156142635761425e82868661488d565b61309b565b80431161426c57fe5b855460018101875560008781526020902043600390920201908155611f3581848888614926565b6000610d8682436149bf565b60008183106142ae5781610d83565b5090919050565b60006114988484846147be565b60006114986002850184846146ed565b6142dd816001612e22565b6000928352602093909352506040902055565b606080600080614308866000018760010154876145b2565b9150915081614332575050604080516000808252602082019081528183019092529250905061364b565b600086600001828154811061434357fe5b6000918252602090912060039091020160018101549091508067ffffffffffffffff8111801561437257600080fd5b5060405190808252806020026020018201604052801561439c578160200160208202803683370190505b5095508067ffffffffffffffff811180156143b657600080fd5b506040519080825280602002602001820160405280156143e0578160200160208202803683370190505b50945060005b81811015614480578260010181815481106143fd57fe5b9060005260206000200160009054906101000a90046001600160a01b031687828151811061442757fe5b60200260200101906001600160a01b031690816001600160a01b03168152505082600201818154811061445657fe5b906000526020600020015486828151811061446d57fe5b60209081029190910101526001016143e6565b50505050509250929050565b8154600090806144a0576000915050610d86565b43831015806144d257508360000160018203815481106144bc57fe5b9060005260206000209060020201600001548310155b15614503578360000160018203815481106144e957fe5b906000526020600020906002020160010154915050610d86565b6001840154845485908290811061451657fe5b90600052602060002090600202016000015484101561457757801561456c5760405162461bcd60e51b8152600401808060200182810382526030815260200180614f3d6030913960400191505060405180910390fd5b600092505050610d86565b6000614584868387614a60565b905085600001818154811061459557fe5b906000526020600020906002020160010154935050505092915050565b82546000908190806145c75760009250614687565b43841015806145f657508560018203815481106145e057fe5b9060005260206000209060030201600001548410155b1561460a5760019250600181039150614687565b85858154811061461657fe5b90600052602060002090600302016000015484101561467557841561466c5760405162461bcd60e51b8152600401808060200182810382526030815260200180614d4b6030913960400191505060405180910390fd5b60009250614687565b60019250614684868686614ad7565b91505b50935093915050565b6000828211156146e7576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b0382166000908152602084905260408120612105818461448c565b6000806000614726876000018860010154866145b2565b915091508161473a57600092505050611498565b600087600001828154811061474b57fe5b6000918252602082206002600390920201908101549195509150845b818110156147b1576147a76147a08a8a86600201858154811061478657fe5b906000526020600020015461334e9092919063ffffffff16565b8790612e22565b9550600101614767565b5050505050949350505050565b60008060006147d5866000018760010154866145b2565b91509150816147e957600092505050610db1565b60008660000182815481106147fa57fe5b600091825260208220600160039092020190810154909250905b8181101561487e57876001600160a01b031683600101828154811061483557fe5b6000918252602090912001546001600160a01b031614156148765782600201818154811061485f57fe5b906000526020600020015495505050505050610db1565b600101614814565b50600098975050505050505050565b600183015460005b81811080156148d05750836001600160a01b03168560010182815481106148b857fe5b6000918252602090912001546001600160a01b031614155b156148dd57600101614895565b8181101561491a57821561490c57828560020182815481106148fb57fe5b600091825260209091200155611a88565b611a88858260018503614b4e565b610f7a85858585614c48565b60018301546000805b828110156149ad57600086600101828154811061494857fe5b6000918252602090912001546001600160a01b039081169150861681141561497f5761497688828785614c48565b600192506149a4565b6149a4888289600201858154811061499357fe5b906000526020600020015485614c48565b5060010161492f565b508061309b5761309b86858585614c48565b60008060006149d6856000018660010154866145b2565b91509150816149ea57600092505050610d86565b60008560000182815481106149fb57fe5b6000918252602082206002600390920201908101549195509150845b81811015614a5557614a4b836002018281548110614a3157fe5b906000526020600020015487612e2290919063ffffffff16565b9550600101614a17565b505050505092915050565b825460009083908290614a74906001614690565b90505b81811115612a83576000614a95600261341360016124678688612e22565b905084878281548110614aa457fe5b90600052602060002090600202016000015411614ac357809250614ad1565b614ace816001614690565b91505b50614a77565b825460009083908290614aeb906001614690565b90505b81811115612a83576000614b0c600261341360016124678688612e22565b905084878281548110614b1b57fe5b90600052602060002090600302016000015411614b3a57809250614b48565b614b45816001614690565b91505b50614aee565b80821015614bf157826001018181548110614b6557fe5b6000918252602090912001546001840180546001600160a01b039092169184908110614b8d57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550826002018181548110614bca57fe5b9060005260206000200154836002018381548110614be457fe5b6000918252602090912001555b82600101805480614bfe57fe5b600082815260209020810160001990810180546001600160a01b031916905501905560028301805480614c2d57fe5b60019003818190600052602060002001600090559055505050565b81156117f95760408051808201909152601681527513585e0819195b1959d85d195cc8195e18d95959195960521b602082015260028210614cca5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b506001808501805480830182556000918252602080832090910180546001600160a01b0388166001600160a01b03199091161790556002870180549384018155825290200182905550505050565b5080546000825590600052602060002090810190610c5291905b80821115614d465760008155600101614d32565b509056fe44656c65676174696f6e486973746f72793a2072656164696e672066726f6d20636c65616e65642d757020626c6f636b436c65616e757020626c6f636b206d75737420626520696e207468652070617374756e64656c6567617465416c6c2063616e206f6e6c79206265207573656420696e2070657263656e746167652064656c65676174696f6e206d6f646545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365436c65616e757020626c6f636b206e756d626572206d757374206e65766572206465637265617365500599802164a08023e87ffc3eed0ba3ae60697b3083ba81d046683679d81c6b44656c6567617461626c653a2072656164696e672066726f6d20636c65616e65642d757020626c6f636b6f6e6c79206f776e65722c20676f7665726e616e6365206f7220636c65616e757020626c6f636b206d616e61676572756e64656c6567617465416c6c4578706c696369742063616e206f6e6c79206265207573656420696e206578706c696369742064656c65676174696f6e206d6f6465536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775265766f6b65206973206f6e6c7920666f722074686520706173742c2075736520756e64656c656761746520666f72207468652070726573656e74436865636b506f696e74486973746f72793a2072656164696e672066726f6d20636c65616e65642d757020626c6f636b64656c6567617465734f6620646f6573206e6f7420776f726b20696e20414d4f554e542064656c65676174696f6e206d6f6465a2646970667358221220843f1931fc9799e2ee3f8d3f3bda98c9e555337e8846c69bebe46ad15ae08e1464736f6c634300070600335650436f6e7472616374206d7573742062656c6f6e6720746f2061205650546f6b656e",
771
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101c45760003560e01c8063833aca92116100f9578063cabc452811610097578063eadb436211610071578063eadb4362146107fb578063ed475a791461083d578063f683776714610869578063f6a494af1461088f576101c4565b8063cabc452814610791578063deea13e7146107c7578063e587497e146107cf576101c4565b806392bfe6d8116100d357806392bfe6d8146106d75780639dc6b9f214610703578063aa94d3f214610739578063c7c62fab14610755576101c4565b8063833aca9214610639578063891339a8146106755780638c0b6b40146106a1576101c4565b806349e3c7e511610166578063653718831161014057806365371883146104f65780637de5b8ed1461051a5780637f4fcaa9146105e75780637f57d58f1461060d576101c4565b806349e3c7e5146103995780634a03d5561461048e5780636230001a146104ba576101c4565b8063142d1018116101a2578063142d1018146102d95780631a05274c146102ff578063315039271461032b578063404d9e821461035d576101c4565b806305109ecf146101c95780630f8b8af7146101f757806313de97f5146102bc575b600080fd5b6101f5600480360360408110156101df57600080fd5b506001600160a01b0381351690602001356108b5565b005b6102aa6004803603604081101561020d57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561023857600080fd5b82018360208201111561024a57600080fd5b8035906020019184602083028401116401000000008311171561026c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610a0c945050505050565b60408051918252519081900360200190f35b6101f5600480360360208110156102d257600080fd5b5035610b36565b6102aa600480360360208110156102ef57600080fd5b50356001600160a01b0316610c55565b6102aa6004803603604081101561031557600080fd5b506001600160a01b038135169060200135610d16565b6102aa6004803603606081101561034157600080fd5b506001600160a01b038135169060208101359060400135610d8c565b6101f56004803603608081101561037357600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610db8565b61043e600480360360408110156103af57600080fd5b8101906020810181356401000000008111156103ca57600080fd5b8201836020820111156103dc57600080fd5b803590602001918460208302840111640100000000831117156103fe57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505091359250610f81915050565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561047a578181015183820152602001610462565b505050509050019250505060405180910390f35b6102aa600480360360408110156104a457600080fd5b506001600160a01b0381351690602001356110da565b6101f5600480360360808110156104d057600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611102565b6104fe611293565b604080516001600160a01b039092168252519081900360200190f35b6105406004803603602081101561053057600080fd5b50356001600160a01b03166112b7565b604051808060200180602001858152602001848152602001838103835287818151815260200191508051906020019060200280838360005b83811015610590578181015183820152602001610578565b50505050905001838103825286818151815260200191508051906020019060200280838360005b838110156105cf5781810151838201526020016105b7565b50505050905001965050505050505060405180910390f35b6101f5600480360360208110156105fd57600080fd5b50356001600160a01b03166112d6565b6102aa6004803603604081101561062357600080fd5b506001600160a01b038135169060200135611407565b6102aa6004803603608081101561064f57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611487565b6102aa6004803603604081101561068b57600080fd5b506001600160a01b0381351690602001356114a0565b6102aa600480360360608110156106b757600080fd5b506001600160a01b0381358116916020810135909116906040013561155c565b6102aa600480360360408110156106ed57600080fd5b506001600160a01b038135169060200135611619565b6102aa6004803603606081101561071957600080fd5b506001600160a01b03813581169160208101359091169060400135611704565b610741611711565b604080519115158252519081900360200190f35b6101f56004803603608081101561076b57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611735565b6102aa600480360360608110156107a757600080fd5b506001600160a01b038135811691602081013590911690604001356117ff565b6102aa611881565b6102aa600480360360408110156107e557600080fd5b506001600160a01b038135169060200135611890565b6101f5600480360360a081101561081157600080fd5b506001600160a01b038135811691602081013590911690604081013590606081013590608001356119f5565b6105406004803603604081101561085357600080fd5b506001600160a01b038135169060200135611ad1565b6102aa6004803603602081101561087f57600080fd5b50356001600160a01b0316611b92565b6101f5600480360360208110156108a557600080fd5b50356001600160a01b0316611ba8565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610925576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b9103a37b5b2b760811b604482015290519081900360640190fd5b8161092f81611cc0565b6040518060400160405280601c81526020017f416c72656164792064656c656761746564206578706c696369746c7900000000815250906109ee5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109b357818101518382015260200161099b565b50505050905090810190601f1680156109e05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506109f883611d07565b15610a0757610a078383611d9f565b505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a7e576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b9103a37b5b2b760811b604482015290519081900360640190fd5b82610a8881611f3f565b6040518060400160405280601f81526020017f416c72656164792064656c6567617465642062792070657263656e746167650081525090610b0a5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b50610b1484611d07565b15610b2a57610b238484611f76565b9150610b2f565b600091505b5092915050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610b7757506008546001600160a01b031633145b80610c0e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b158015610bd657600080fd5b505afa158015610bea573d6000803e3d6000fd5b505050506040513d6020811015610c0057600080fd5b50516001600160a01b031633145b610c495760405162461bcd60e51b815260040180806020018281038252602f815260200180614e70602f913960400191505060405180910390fd5b610c528161210e565b50565b6000610c6082612192565b15610c7557610c6e826121df565b9050610d11565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231836040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610ce257600080fd5b505afa158015610cf6573d6000803e3d6000fd5b505050506040513d6020811015610d0c57600080fd5b505190505b919050565b6007546000906001600160a01b03163314610d70576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b600654610d8390600390859085906121ec565b90505b92915050565b6000610d9784612192565b15610dae57610da78484846121fa565b9050610db1565b50815b9392505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610e28576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b9103a37b5b2b760811b604482015290519081900360640190fd5b83610e3281611f3f565b6040518060400160405280601f81526020017f416c72656164792064656c6567617465642062792070657263656e746167650081525090610eb45760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b50610ebf8584612269565b610ec884612192565b610f6e57610f6e847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231876040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610f3d57600080fd5b505afa158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b5051612269565b610f7a85858585612306565b5050505050565b6060610f8d83836125eb565b90507f000000000000000000000000000000000000000000000000000000000000000015610d865760005b8151811015610b2f57818181518110610fcd57fe5b60200260200101516000148015610ffe5750610ffc848281518110610fee57fe5b602002602001015184612727565b155b156110d2577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634ee2cd7e85838151811061103e57fe5b6020026020010151856040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b15801561108b57600080fd5b505afa15801561109f573d6000803e3d6000fd5b505050506040513d60208110156110b557600080fd5b505182518390839081106110c557fe5b6020026020010181815250505b600101610fb8565b60006110e583612192565b156110fb576110f48383612788565b9050610d86565b5080610d86565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611172576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b9103a37b5b2b760811b604482015290519081900360640190fd5b8361117c81611cc0565b6040518060400160405280601c81526020017f416c72656164792064656c656761746564206578706c696369746c7900000000815250906111fe5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b506112098584612269565b61121284612192565b61128757611287847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231876040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610f3d57600080fd5b610f7a85858585612795565b7f000000000000000000000000000000000000000000000000000000000000000081565b6060806000806112c78543611ad1565b93509350935093509193509193565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061139957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b15801561136157600080fd5b505afa158015611375573d6000803e3d6000fd5b505050506040513d602081101561138b57600080fd5b50516001600160a01b031633145b6113e5576040805162461bcd60e51b81526020600482015260186024820152776f6e6c79206f776e6572206f7220676f7665726e616e636560401b604482015290519081900360640190fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6007546000906001600160a01b03163314611461576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b6006546001600160a01b0384166000908152600160205260409020610d83918490612a08565b600061149585858585612a15565b90505b949350505050565b6007546000906001600160a01b031633146114fa576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b6006548210611550576040805162461bcd60e51b815260206004820152601e60248201527f4e6f20636c65616e757020616674657220636c65616e757020626c6f636b0000604482015290519081900360640190fd5b610d8360048484612a8c565b6007546000906001600160a01b031633146115b6576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b600654821061160c576040805162461bcd60e51b815260206004820152601e60248201527f4e6f20636c65616e757020616674657220636c65616e757020626c6f636b0000604482015290519081900360640190fd5b6114986004858585612af9565b60007f0000000000000000000000000000000000000000000000000000000000000000158061164d575061164d8383612727565b1561165c576110f48383612b87565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634ee2cd7e84846040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b1580156116d157600080fd5b505afa1580156116e5573d6000803e3d6000fd5b505050506040513d60208110156116fb57600080fd5b50519050610d86565b6000611498848484612bec565b7f000000000000000000000000000000000000000000000000000000000000000081565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146117a5576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b9103a37b5b2b760811b604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000015806117e857506117d78482612727565b80156117e857506117e88382612727565b156117f9576117f984848484612bfa565b50505050565b6007546000906001600160a01b03163314611859576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b6006546001600160a01b03851660009081526002602052604090206114989185908590612cf5565b600061188b612d1c565b905090565b60007f000000000000000000000000000000000000000000000000000000000000000015806118c457506118c48383612727565b156118d3576110f48383612d22565b604080516001600160a01b038516602080830191909152818301859052825180830384018152606090920183528151918101919091206000818152600a90925291902054801561192a57600019019150610d869050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634ee2cd7e87876040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b1580156119a157600080fd5b505afa1580156119b5573d6000803e3d6000fd5b505050506040513d60208110156119cb57600080fd5b505190506119da816001612e22565b6000938452600a602052604090932092909255509050610d86565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611a65576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b9103a37b5b2b760811b604482015290519081900360640190fd5b6001600160a01b038516611a8d57611a7d8483612269565b611a88848383612e7c565b610f7a565b6001600160a01b038416611ab057611aa58584612269565b611a88858483612eb1565b611aba8584612269565b611ac48483612269565b610f7a8585858585612f93565b6060806000806000611ae2876130a3565b90506001816002811115611af257fe5b1415611b0c57611b0287876130c1565b9095509350611b76565b6000816002811115611b1a57fe5b1415611b3f576040805160008082526020820190815281830190925295509350611b76565b60405162461bcd60e51b8152600401808060200182810382526033815260200180614f6d6033913960400191505060405180910390fd5b84519250806002811115611b8657fe5b91505092959194509250565b6000611b9d826130a3565b6002811115610d8657fe5b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611c6b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b158015611c3357600080fd5b505afa158015611c47573d6000803e3d6000fd5b505050506040513d6020811015611c5d57600080fd5b50516001600160a01b031633145b611cb7576040805162461bcd60e51b81526020600482015260186024820152776f6e6c79206f776e6572206f7220676f7665726e616e636560401b604482015290519081900360640190fd5b610c5281613300565b6001600160a01b03811660009081526020819052604081205460ff1681816002811115611ce957fe5b1480610db1575060015b816002811115611cff57fe5b149392505050565b6001600160a01b03811660009081526020819052604081205460ff1681816002811115611d3057fe5b1415611d40576000915050610d11565b6002816002811115611d4e57fe5b1415611d7e576001600160a01b0383166000908152600260205260408120611d7590613322565b11915050610d11565b6001600160a01b0383166000908152600160205260408120611d759061332d565b6001600160a01b03821660009081526020819052604081205460ff1690816002811115611dc857fe5b1415611dd45750611f3b565b6001816002811115611de257fe5b14611e1e5760405162461bcd60e51b815260040180806020018281038252603c815260200180614d9c603c913960400191505060405180910390fd5b6001600160a01b03831660009081526001602052604081209080611e4183613339565b9150915060005b8251811015611f1a576000838281518110611e5f57fe5b602002602001015190506000611e95848481518110611e7a57fe5b60200260200101516127108a61334e9092919063ffffffff16565b9050611ea460038a8484613447565b600654611eb8906003908b906002906121ec565b50600654611ecd9060039084906002906121ec565b50816001600160a01b0316896001600160a01b0316600080516020614e26833981519152836000604051808381526020018281526020019250505060405180910390a35050600101611e48565b50611f2483613484565b600654611f35908490600290612a08565b50505050505b5050565b6001600160a01b03811660009081526020819052604081205460ff1681816002811115611f6857fe5b1480610db157506002611cf3565b6001600160a01b03821660009081526020819052604081205460ff1681816002811115611f9f57fe5b1415611faf576000915050610d86565b6002816002811115611fbd57fe5b14611ff95760405162461bcd60e51b8152600401808060200182810382526042815260200180614e9f6042913960600191505060405180910390fd5b6001600160a01b0384166000908152600260205260408120905b84518110156120fb57600085828151811061202a57fe5b602002602001015190506000612049828561348d90919063ffffffff16565b9050806120575750506120f3565b6120646003898484613447565b600654612078906003908a906002906121ec565b5060065461208d9060039084906002906121ec565b5061209a8483600061349c565b6006546120ad9085908490600290612cf5565b50816001600160a01b0316886001600160a01b0316600080516020614e26833981519152836000604051808381526020018281526020019250505060405180910390a350505b600101612013565b5061210581613322565b95945050505050565b60065481101561214f5760405162461bcd60e51b8152600401808060200182810382526028815260200180614dfe6028913960400191505060405180910390fd5b43811061218d5760405162461bcd60e51b8152600401808060200182810382526021815260200180614d7b6021913960400191505060405180910390fd5b600655565b60007f00000000000000000000000000000000000000000000000000000000000000006121c157506001610d11565b506001600160a01b0316600090815260096020526040902054151590565b6000610d86600383613506565b600061149585858585613513565b60008160065481101561223e5760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b600061224b86868661354e565b905060008061225a878461362c565b9550505050505b509392505050565b7f000000000000000000000000000000000000000000000000000000000000000061229357611f3b565b6001600160a01b038216600090815260096020526040902054611f3b576122b9826121df565b1580156122cc57506122ca82611d07565b155b6122d257fe5b6122de82600083612e7c565b6122e9436001612e22565b6001600160a01b0383166000908152600960205260409020555050565b6001600160a01b03831661235b576040805162461bcd60e51b815260206004820152601760248201527643616e6e6f742064656c656761746520746f207a65726f60481b604482015290519081900360640190fd5b836001600160a01b0316836001600160a01b031614156123bc576040805162461bcd60e51b815260206004820152601760248201527621b0b73737ba103232b632b3b0ba32903a379039b2b63360491b604482015290519081900360640190fd5b6123c584611f3f565b612416576040805162461bcd60e51b815260206004820152601960248201527f43616e6e6f742064656c656761746520627920616d6f756e7400000000000000604482015290519081900360640190fd5b6001600160a01b038416600090815260026020526040812090612439828661348d565b9050808310156124575761245260038787868503613447565b612507565b600061246d826124678988612788565b90612e22565b9050838110156040518060400160405280602081526020017f556e64656c65676174656420766f746520706f77657220746f6f20736d616c6c815250906124f55760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b5061250560038888858803613652565b505b60065461251b9060039088906002906121ec565b506006546125309060039087906002906121ec565b5061253c82868561349c565b60065461254f9083908790600290612cf5565b5060026001600160a01b03871660009081526020819052604090205460ff16600281111561257957fe5b146125a2576001600160a01b0386166000908152602081905260409020805460ff191660021790555b846001600160a01b0316866001600160a01b0316600080516020614e268339815191528386604051808381526020018281526020019250505060405180910390a3505050505050565b60608160065481101561262f5760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b438310612683576040805162461bcd60e51b815260206004820181905260248201527f43616e206f6e6c79206265207573656420666f72207061737420626c6f636b73604482015290519081900360640190fd5b835167ffffffffffffffff8111801561269b57600080fd5b506040519080825280602002602001820160405280156126c5578160200160208202803683370190505b50915060005b845181101561271f5761270060038683815181106126e557fe5b602002602001015186600461368f909392919063ffffffff16565b83828151811061270c57fe5b60209081029190910101526001016126cb565b505092915050565b60007f000000000000000000000000000000000000000000000000000000000000000061275657506001610d86565b6001600160a01b0383166000908152600960205260409020548015801590611498575060001901919091111592915050565b6000610d838383436121fa565b6001600160a01b0383166127ea576040805162461bcd60e51b815260206004820152601760248201527643616e6e6f742064656c656761746520746f207a65726f60481b604482015290519081900360640190fd5b836001600160a01b0316836001600160a01b0316141561284b576040805162461bcd60e51b815260206004820152601760248201527621b0b73737ba103232b632b3b0ba32903a379039b2b63360491b604482015290519081900360640190fd5b61285484611cc0565b6128a5576040805162461bcd60e51b815260206004820152601d60248201527f43616e6e6f742064656c65676174652062792070657263656e74616765000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600160205260408120906128c882866136fe565b90506000806128d884888761370a565b6006546128e9908590600290612a08565b508215612900576128fd868461271061334e565b91505b841561291657612913868661271061334e565b90505b818110156129325761292d60038989848603613447565b612941565b61294160038989858503613652565b600654612955906003908a906002906121ec565b5060065461296a9060039089906002906121ec565b5060016001600160a01b03891660009081526020819052604090205460ff16600281111561299457fe5b146129bd576001600160a01b0388166000908152602081905260409020805460ff191660011790555b866001600160a01b0316886001600160a01b0316600080516020614e268339815191528484604051808381526020018281526020019250505060405180910390a35050505050505050565b60006114988484846137b1565b600081600654811015612a595760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b612a66600487878661388e565b15612a745760009150612a83565b612a80868686866138e2565b91505b50949350505050565b604080516001600160a01b038416602080830191909152818301849052825180830384018152606090920183528151918101919091206000818152918690529181205490919015612aee57600090815260208590526040812055506001610db1565b506000949350505050565b604080516001600160a01b03808616602080840191909152828401859052835180840385018152606090930184528251928101929092206000818152600189018452848120928716815292829052928220549192918015612b7957506001600160a01b038516600090815260209190915260408120555060019050611498565b506000979650505050505050565b600081600654811015612bcb5760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b43831015612be157610b2360046003868661368f565b610b23600385613506565b6000611498848484436138e2565b80600654811015612c3c5760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b438210612c7a5760405162461bcd60e51b815260040180806020018281038252603b815260200180614f02603b913960400191505060405180910390fd5b6000612c88868686866138e2565b9050612c9a6004600388888588613995565b846001600160a01b0316866001600160a01b03167fd6f80c7d68e3e62bd7a51c3d37e575c1cfbc311c07487b69ef4eb570bc21cb688386604051808381526020018281526020019250505060405180910390a3505050505050565b6000612d02858484613b08565b9050612d1360028601858585613513565b01949350505050565b60065490565b600081600654811015612d665760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b438310612dba576040805162461bcd60e51b815260206004820181905260248201527f43616e206f6e6c79206265207573656420666f72207061737420626c6f636b73604482015290519081900360640190fd5b600080612dcb600460038888613ba7565b915091508015612a8357604080516001600160a01b03881681526020810187905281517fb0b412112c2958bbc2537fa96db51ddcfe7d0d074143f0b5308b6aab19b6694b929181900390910190a150949350505050565b600082820183811015610d83576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b612e8860038483613c31565b600654612e9c9060039085906002906121ec565b50610a078383612eac8185612e22565b613c58565b6000612ed882604051806060016040528060268152602001614dd860269139859190613d99565b9050612ee5848483613c58565b612ef0848484613df3565b6040518060400160405280602081526020017f556e64656c65676174656420766f746520706f77657220746f6f20736d616c6c81525090612f725760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b50612f7f60038584613e40565b600654610f7a9060039086906002906121ec565b6000612fba82604051806060016040528060268152602001614dd860269139869190613d99565b9050612fc7868583613c58565b612fd2868584613df3565b6040518060400160405280602081526020017f556e64656c65676174656420766f746520706f77657220746f6f20736d616c6c815250906130545760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b506130626003878785613e67565b6006546130769060039088906002906121ec565b5060065461308b9060039087906002906121ec565b5061309b8584612eac8186612e22565b505050505050565b6001600160a01b031660009081526020819052604090205460ff1690565b606080826006548110156131065760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b6001600160a01b038516600090815260016020526040902060608061312b8388613e8e565b909250905060005b825181101561318f576131678984838151811061314c57fe5b60200260200101518a600461388e909392919063ffffffff16565b1561318757600082828151811061317a57fe5b6020026020010181815250505b600101613133565b506000805b83518110156131c7578281815181106131a957fe5b60200260200101516000146131bf576001909101905b600101613194565b508067ffffffffffffffff811180156131df57600080fd5b50604051908082528060200260200182016040528015613209578160200160208202803683370190505b5096508067ffffffffffffffff8111801561322357600080fd5b5060405190808252806020026020018201604052801561324d578160200160208202803683370190505b5095506000805b84518110156132f25783818151811061326957fe5b60200260200101516000146132ea5784818151811061328457fe5b602002602001015189838151811061329857fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106132c457fe5b60200260200101518883815181106132d857fe5b60209081029190910101526001909101905b600101613254565b505050505050509250929050565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6000610d8682613ea6565b6000610d868243613eb2565b60608061334583613f09565b91509150915091565b6000808211613397576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b836133a457506000610db1565b838302838582816133b157fe5b0414156133ca578281816133c157fe5b04915050610db1565b60008386816133d557fe5b04905060008487816133e357fe5b06905060008587816133f157fe5b04905060008688816133ff57fe5b06905061225a613419886134138685613f16565b90613f6f565b6124676134268686613f16565b6124676134338987613f16565b6124678d6134418c8b613f16565b90613f16565b82826001600160a01b03821615801561346757506001600160a01b038116155b1561346e57fe5b826134785761309b565b61309b86858786613fd6565b610c5281614065565b6000610d836002840183614088565b60006134ab6002850184614088565b905060006134ec8361246784604051806040016040528060098152602001680546f74616c203c20360bc1b8152506134e58a600001613ea6565b9190613d99565b90506134fc600286018585614095565b610f7a85826140b3565b6000610d8383834361417c565b60006001600160a01b03841615612aee576001600160a01b0384166000908152602086905260409020613547908484613b08565b9050611498565b6000816006548110156135925760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b6001600160a01b03851660009081526020819052604081205460ff16908160028111156135bb57fe5b14156135cb576000925050612261565b60028160028111156135d957fe5b1415613609576001600160a01b03861660009081526002602052604090206136019085614189565b925050612261565b6001600160a01b0386166000908152600160205260409020613601908686614195565b600080838311156136425750600090508061364b565b50600190508183035b9250929050565b82826001600160a01b03821615801561367257506001600160a01b038116155b1561367957fe5b826136835761309b565b61309b86868686613fd6565b604080516001600160a01b038416602080830191909152818301849052825180830384018152606090920183528151918101919091206000818152918790529181205490919080156136e8576000190191506114989050565b6136f386868661417c565b979650505050505050565b6000610d8383836141a5565b61271081111561371657fe5b6137218383836141b2565b61271061372d84614293565b11156040518060400160405280601c81526020017f4d61782064656c65676174696f6e206269707320657863656564656400000000815250906117f95760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b6000816137c057506000610db1565b8354806137d1576000915050610db1565b600185015460006137ee6137e58388612e22565b6001850361429f565b9050815b818110801561382457508588600001826001018154811061380f57fe5b90600052602060002090600302016000015411155b156138705787600001818154811061383857fe5b600091825260208220600390910201818155906138586001830182614d18565b613866600283016000614d18565b50506001016137f2565b8281111561388057600188018190555b919091039695505050505050565b604080516001600160a01b0394851660208083019190915281830193909352815180820383018152606090910182528051908301206000908152600195909501825280852092909316845252902054151590565b6001600160a01b03841660009081526020819052604081205460ff168181600281111561390b57fe5b141561391b576000915050611498565b600181600281111561392957fe5b141561396a576001600160a01b03861660009081526001602052604081206139529087866142b5565b9050613961858261271061334e565b92505050611498565b6001600160a01b038616600090815260026020526040902061398d9086856142c2565b915050611498565b8161399f5761309b565b604080516001600160a01b0380871660208084019190915282840185905283518084038501815260609093018452825192810192909220600081815260018b018452848120928816815291909252919091205415613a36576040805162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481c995d9bdad959608a1b604482015290519081900360640190fd5b6000613a4488888786613ba7565b5090506000858460405160200180836001600160a01b0316815260200182815260200192505050604051602081830303815290604052805190602001209050613ad78982613ad2886040518060400160405280601781526020017f5265766f6b65642076616c756520746f6f206c6172676500000000000000000081525087613d999092919063ffffffff16565b6142d2565b5050600090815260018701602090815260408083206001600160a01b03871684529091529020829055505050505050565b600081613b1757506000610db1565b835480613b28576000915050610db1565b60018501546000613b3c6137e58388612e22565b9050815b8181108015613b72575085886000018260010181548110613b5d57fe5b90600052602060002090600202016000015411155b1561387057876000018181548110613b8657fe5b60009182526020822060029091020181815560019081019190915501613b40565b604080516001600160a01b0384166020808301919091528183018490528251808303840181526060909201835281519181019190912060008181529187905291812054909182918015613c055760001901925060009150613c289050565b6000613c1288888861417c565b9050613c1f8984836142d2565b93506001925050505b94509492505050565b80613c3b57610a07565b6001600160a01b038216613c4b57fe5b610a078360008484613fd6565b60016001600160a01b03841660009081526020819052604090205460ff166002811115613c8157fe5b1415610a07576001600160a01b03831660009081526001602052604081209080613caa83613339565b9150915060005b8251811015611f35576000838281518110613cc857fe5b602002602001015190506000613ce3848481518110611e7a57fe5b90506000613cf6858581518110611e7a57fe5b905081811115613d1457613d0f60038b85858503613652565b613d23565b613d2360038b85848603613447565b600654613d37906003908c906002906121ec565b50600654613d4c9060039085906002906121ec565b50826001600160a01b03168a6001600160a01b0316600080516020614e268339815191528484604051808381526020018281526020019250505060405180910390a3505050600101613cb1565b60008184841115613deb5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b505050900390565b600060026001600160a01b03851660009081526020819052604090205460ff166002811115613e1e57fe5b1415613e385781613e2f8585612788565b10159050610db1565b506001610db1565b80613e4a57610a07565b6001600160a01b038216613e5a57fe5b610a078383600084613fd6565b82826001600160a01b038216158015613e8757506001600160a01b038116155b1561368357fe5b606080613e9b84846142f0565b915091509250929050565b6000610d86824361448c565b6000806000613ec9856000018660010154866145b2565b9150915081613edd57600092505050610d86565b846000018181548110613eec57fe5b600091825260209091206001600390920201015495945050505050565b60608061334583436142f0565b600082613f2557506000610d86565b82820282848281613f3257fe5b0414610d835760405162461bcd60e51b8152600401808060200182810382526021815260200180614ee16021913960400191505060405180910390fd5b6000808211613fc5576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381613fce57fe5b049392505050565b80613fe0576117f9565b6001600160a01b038316158015613ffe57506001600160a01b038216155b1561400557fe5b6001600160a01b0383161561403957600061402a826140248787614088565b90614690565b9050614037858583614095565b505b6001600160a01b038216156117f9576000614058826124678786614088565b9050610f7a858483614095565b805415610c52578054600181018255600082815260209020436003909202015550565b6000610d838383436146ed565b6001600160a01b03821660009081526020849052604090206117f981835b8154806140f7576040805180820190915243815260208082018481528554600181810188556000888152939093209351600290910290930192835551910155610a07565b600083600001600183038154811061410b57fe5b600091825260209091206002909102018054909150438114156141345760018201849055610f7a565b80431161413d57fe5b604080518082019091524381526020808201868152875460018181018a5560008a81529390932093516002909102909301928355519101555050505050565b60006114988484846146ed565b6000610d83838361448c565b600061149884846127108561470f565b6000610d838383436147be565b82548061422257811561421d578354600180820186556000868152602080822043600390950201938455838301805480850182559083528183200180546001600160a01b0319166001600160a01b038916179055600290930180549283018155815291909120018290555b6117f9565b600084600001600183038154811061423657fe5b600091825260209091206003909102018054909150438114156142635761425e82868661488d565b61309b565b80431161426c57fe5b855460018101875560008781526020902043600390920201908155611f3581848888614926565b6000610d8682436149bf565b60008183106142ae5781610d83565b5090919050565b60006114988484846147be565b60006114986002850184846146ed565b6142dd816001612e22565b6000928352602093909352506040902055565b606080600080614308866000018760010154876145b2565b9150915081614332575050604080516000808252602082019081528183019092529250905061364b565b600086600001828154811061434357fe5b6000918252602090912060039091020160018101549091508067ffffffffffffffff8111801561437257600080fd5b5060405190808252806020026020018201604052801561439c578160200160208202803683370190505b5095508067ffffffffffffffff811180156143b657600080fd5b506040519080825280602002602001820160405280156143e0578160200160208202803683370190505b50945060005b81811015614480578260010181815481106143fd57fe5b9060005260206000200160009054906101000a90046001600160a01b031687828151811061442757fe5b60200260200101906001600160a01b031690816001600160a01b03168152505082600201818154811061445657fe5b906000526020600020015486828151811061446d57fe5b60209081029190910101526001016143e6565b50505050509250929050565b8154600090806144a0576000915050610d86565b43831015806144d257508360000160018203815481106144bc57fe5b9060005260206000209060020201600001548310155b15614503578360000160018203815481106144e957fe5b906000526020600020906002020160010154915050610d86565b6001840154845485908290811061451657fe5b90600052602060002090600202016000015484101561457757801561456c5760405162461bcd60e51b8152600401808060200182810382526030815260200180614f3d6030913960400191505060405180910390fd5b600092505050610d86565b6000614584868387614a60565b905085600001818154811061459557fe5b906000526020600020906002020160010154935050505092915050565b82546000908190806145c75760009250614687565b43841015806145f657508560018203815481106145e057fe5b9060005260206000209060030201600001548410155b1561460a5760019250600181039150614687565b85858154811061461657fe5b90600052602060002090600302016000015484101561467557841561466c5760405162461bcd60e51b8152600401808060200182810382526030815260200180614d4b6030913960400191505060405180910390fd5b60009250614687565b60019250614684868686614ad7565b91505b50935093915050565b6000828211156146e7576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b0382166000908152602084905260408120612105818461448c565b6000806000614726876000018860010154866145b2565b915091508161473a57600092505050611498565b600087600001828154811061474b57fe5b6000918252602082206002600390920201908101549195509150845b818110156147b1576147a76147a08a8a86600201858154811061478657fe5b906000526020600020015461334e9092919063ffffffff16565b8790612e22565b9550600101614767565b5050505050949350505050565b60008060006147d5866000018760010154866145b2565b91509150816147e957600092505050610db1565b60008660000182815481106147fa57fe5b600091825260208220600160039092020190810154909250905b8181101561487e57876001600160a01b031683600101828154811061483557fe5b6000918252602090912001546001600160a01b031614156148765782600201818154811061485f57fe5b906000526020600020015495505050505050610db1565b600101614814565b50600098975050505050505050565b600183015460005b81811080156148d05750836001600160a01b03168560010182815481106148b857fe5b6000918252602090912001546001600160a01b031614155b156148dd57600101614895565b8181101561491a57821561490c57828560020182815481106148fb57fe5b600091825260209091200155611a88565b611a88858260018503614b4e565b610f7a85858585614c48565b60018301546000805b828110156149ad57600086600101828154811061494857fe5b6000918252602090912001546001600160a01b039081169150861681141561497f5761497688828785614c48565b600192506149a4565b6149a4888289600201858154811061499357fe5b906000526020600020015485614c48565b5060010161492f565b508061309b5761309b86858585614c48565b60008060006149d6856000018660010154866145b2565b91509150816149ea57600092505050610d86565b60008560000182815481106149fb57fe5b6000918252602082206002600390920201908101549195509150845b81811015614a5557614a4b836002018281548110614a3157fe5b906000526020600020015487612e2290919063ffffffff16565b9550600101614a17565b505050505092915050565b825460009083908290614a74906001614690565b90505b81811115612a83576000614a95600261341360016124678688612e22565b905084878281548110614aa457fe5b90600052602060002090600202016000015411614ac357809250614ad1565b614ace816001614690565b91505b50614a77565b825460009083908290614aeb906001614690565b90505b81811115612a83576000614b0c600261341360016124678688612e22565b905084878281548110614b1b57fe5b90600052602060002090600302016000015411614b3a57809250614b48565b614b45816001614690565b91505b50614aee565b80821015614bf157826001018181548110614b6557fe5b6000918252602090912001546001840180546001600160a01b039092169184908110614b8d57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550826002018181548110614bca57fe5b9060005260206000200154836002018381548110614be457fe5b6000918252602090912001555b82600101805480614bfe57fe5b600082815260209020810160001990810180546001600160a01b031916905501905560028301805480614c2d57fe5b60019003818190600052602060002001600090559055505050565b81156117f95760408051808201909152601681527513585e0819195b1959d85d195cc8195e18d95959195960521b602082015260028210614cca5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b506001808501805480830182556000918252602080832090910180546001600160a01b0388166001600160a01b03199091161790556002870180549384018155825290200182905550505050565b5080546000825590600052602060002090810190610c5291905b80821115614d465760008155600101614d32565b509056fe44656c65676174696f6e486973746f72793a2072656164696e672066726f6d20636c65616e65642d757020626c6f636b436c65616e757020626c6f636b206d75737420626520696e207468652070617374756e64656c6567617465416c6c2063616e206f6e6c79206265207573656420696e2070657263656e746167652064656c65676174696f6e206d6f646545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365436c65616e757020626c6f636b206e756d626572206d757374206e65766572206465637265617365500599802164a08023e87ffc3eed0ba3ae60697b3083ba81d046683679d81c6b44656c6567617461626c653a2072656164696e672066726f6d20636c65616e65642d757020626c6f636b6f6e6c79206f776e65722c20676f7665726e616e6365206f7220636c65616e757020626c6f636b206d616e61676572756e64656c6567617465416c6c4578706c696369742063616e206f6e6c79206265207573656420696e206578706c696369742064656c65676174696f6e206d6f6465536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775265766f6b65206973206f6e6c7920666f722074686520706173742c2075736520756e64656c656761746520666f72207468652070726573656e74436865636b506f696e74486973746f72793a2072656164696e672066726f6d20636c65616e65642d757020626c6f636b64656c6567617465734f6620646f6573206e6f7420776f726b20696e20414d4f554e542064656c65676174696f6e206d6f6465a2646970667358221220843f1931fc9799e2ee3f8d3f3bda98c9e555337e8846c69bebe46ad15ae08e1464736f6c63430007060033",
770
+ "bytecode": "0x60c06040523480156200001157600080fd5b506040516200514538038062005145833981810160405260408110156200003757600080fd5b5080516020909101516001600160a01b038216620000875760405162461bcd60e51b8152600401808060200182810382526023815260200180620051226023913960400191505060405180910390fd5b606082901b6001600160601b031916608052151560f881901b60a0526001600160a01b039091169060ff16614fd56200014d60003980610f91528061161d528061171352806117a752806118945280612196528061226b528061272b5250806108c05280610a195280610b415280610b7f5280610c775280610dc35280610ed25280611005528061110d528061121c528061129552806112e1528061130a528061165e5280611740528061192e5280611a005280611bb35280611bdc5250614fd56000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c8063833aca92116100f9578063cabc452811610097578063eadb436211610071578063eadb4362146107fb578063ed475a791461083d578063f683776714610869578063f6a494af1461088f576101c4565b8063cabc452814610791578063deea13e7146107c7578063e587497e146107cf576101c4565b806392bfe6d8116100d357806392bfe6d8146106d75780639dc6b9f214610703578063aa94d3f214610739578063c7c62fab14610755576101c4565b8063833aca9214610639578063891339a8146106755780638c0b6b40146106a1576101c4565b806349e3c7e511610166578063653718831161014057806365371883146104f65780637de5b8ed1461051a5780637f4fcaa9146105e75780637f57d58f1461060d576101c4565b806349e3c7e5146103995780634a03d5561461048e5780636230001a146104ba576101c4565b8063142d1018116101a2578063142d1018146102d95780631a05274c146102ff578063315039271461032b578063404d9e821461035d576101c4565b806305109ecf146101c95780630f8b8af7146101f757806313de97f5146102bc575b600080fd5b6101f5600480360360408110156101df57600080fd5b506001600160a01b0381351690602001356108b5565b005b6102aa6004803603604081101561020d57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561023857600080fd5b82018360208201111561024a57600080fd5b8035906020019184602083028401116401000000008311171561026c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610a0c945050505050565b60408051918252519081900360200190f35b6101f5600480360360208110156102d257600080fd5b5035610b36565b6102aa600480360360208110156102ef57600080fd5b50356001600160a01b0316610c55565b6102aa6004803603604081101561031557600080fd5b506001600160a01b038135169060200135610d16565b6102aa6004803603606081101561034157600080fd5b506001600160a01b038135169060208101359060400135610d8c565b6101f56004803603608081101561037357600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610db8565b61043e600480360360408110156103af57600080fd5b8101906020810181356401000000008111156103ca57600080fd5b8201836020820111156103dc57600080fd5b803590602001918460208302840111640100000000831117156103fe57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505091359250610f81915050565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561047a578181015183820152602001610462565b505050509050019250505060405180910390f35b6102aa600480360360408110156104a457600080fd5b506001600160a01b0381351690602001356110da565b6101f5600480360360808110156104d057600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611102565b6104fe611293565b604080516001600160a01b039092168252519081900360200190f35b6105406004803603602081101561053057600080fd5b50356001600160a01b03166112b7565b604051808060200180602001858152602001848152602001838103835287818151815260200191508051906020019060200280838360005b83811015610590578181015183820152602001610578565b50505050905001838103825286818151815260200191508051906020019060200280838360005b838110156105cf5781810151838201526020016105b7565b50505050905001965050505050505060405180910390f35b6101f5600480360360208110156105fd57600080fd5b50356001600160a01b03166112d6565b6102aa6004803603604081101561062357600080fd5b506001600160a01b038135169060200135611407565b6102aa6004803603608081101561064f57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611487565b6102aa6004803603604081101561068b57600080fd5b506001600160a01b0381351690602001356114a0565b6102aa600480360360608110156106b757600080fd5b506001600160a01b0381358116916020810135909116906040013561155c565b6102aa600480360360408110156106ed57600080fd5b506001600160a01b038135169060200135611619565b6102aa6004803603606081101561071957600080fd5b506001600160a01b03813581169160208101359091169060400135611704565b610741611711565b604080519115158252519081900360200190f35b6101f56004803603608081101561076b57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611735565b6102aa600480360360608110156107a757600080fd5b506001600160a01b038135811691602081013590911690604001356117ff565b6102aa611881565b6102aa600480360360408110156107e557600080fd5b506001600160a01b038135169060200135611890565b6101f5600480360360a081101561081157600080fd5b506001600160a01b038135811691602081013590911690604081013590606081013590608001356119f5565b6105406004803603604081101561085357600080fd5b506001600160a01b038135169060200135611ad1565b6102aa6004803603602081101561087f57600080fd5b50356001600160a01b0316611b92565b6101f5600480360360208110156108a557600080fd5b50356001600160a01b0316611ba8565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610925576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b9103a37b5b2b760811b604482015290519081900360640190fd5b8161092f81611cc0565b6040518060400160405280601c81526020017f416c72656164792064656c656761746564206578706c696369746c7900000000815250906109ee5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109b357818101518382015260200161099b565b50505050905090810190601f1680156109e05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506109f883611d07565b15610a0757610a078383611d9f565b505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a7e576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b9103a37b5b2b760811b604482015290519081900360640190fd5b82610a8881611f3f565b6040518060400160405280601f81526020017f416c72656164792064656c6567617465642062792070657263656e746167650081525090610b0a5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b50610b1484611d07565b15610b2a57610b238484611f76565b9150610b2f565b600091505b5092915050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610b7757506008546001600160a01b031633145b80610c0e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b158015610bd657600080fd5b505afa158015610bea573d6000803e3d6000fd5b505050506040513d6020811015610c0057600080fd5b50516001600160a01b031633145b610c495760405162461bcd60e51b815260040180806020018281038252602f815260200180614e70602f913960400191505060405180910390fd5b610c528161210e565b50565b6000610c6082612192565b15610c7557610c6e826121df565b9050610d11565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231836040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610ce257600080fd5b505afa158015610cf6573d6000803e3d6000fd5b505050506040513d6020811015610d0c57600080fd5b505190505b919050565b6007546000906001600160a01b03163314610d70576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b600654610d8390600390859085906121ec565b90505b92915050565b6000610d9784612192565b15610dae57610da78484846121fa565b9050610db1565b50815b9392505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610e28576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b9103a37b5b2b760811b604482015290519081900360640190fd5b83610e3281611f3f565b6040518060400160405280601f81526020017f416c72656164792064656c6567617465642062792070657263656e746167650081525090610eb45760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b50610ebf8584612269565b610ec884612192565b610f6e57610f6e847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231876040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610f3d57600080fd5b505afa158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b5051612269565b610f7a85858585612306565b5050505050565b6060610f8d83836125eb565b90507f000000000000000000000000000000000000000000000000000000000000000015610d865760005b8151811015610b2f57818181518110610fcd57fe5b60200260200101516000148015610ffe5750610ffc848281518110610fee57fe5b602002602001015184612727565b155b156110d2577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634ee2cd7e85838151811061103e57fe5b6020026020010151856040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b15801561108b57600080fd5b505afa15801561109f573d6000803e3d6000fd5b505050506040513d60208110156110b557600080fd5b505182518390839081106110c557fe5b6020026020010181815250505b600101610fb8565b60006110e583612192565b156110fb576110f48383612788565b9050610d86565b5080610d86565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611172576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b9103a37b5b2b760811b604482015290519081900360640190fd5b8361117c81611cc0565b6040518060400160405280601c81526020017f416c72656164792064656c656761746564206578706c696369746c7900000000815250906111fe5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b506112098584612269565b61121284612192565b61128757611287847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231876040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610f3d57600080fd5b610f7a85858585612795565b7f000000000000000000000000000000000000000000000000000000000000000081565b6060806000806112c78543611ad1565b93509350935093509193509193565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061139957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b15801561136157600080fd5b505afa158015611375573d6000803e3d6000fd5b505050506040513d602081101561138b57600080fd5b50516001600160a01b031633145b6113e5576040805162461bcd60e51b81526020600482015260186024820152776f6e6c79206f776e6572206f7220676f7665726e616e636560401b604482015290519081900360640190fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6007546000906001600160a01b03163314611461576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b6006546001600160a01b0384166000908152600160205260409020610d83918490612a08565b600061149585858585612a15565b90505b949350505050565b6007546000906001600160a01b031633146114fa576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b6006548210611550576040805162461bcd60e51b815260206004820152601e60248201527f4e6f20636c65616e757020616674657220636c65616e757020626c6f636b0000604482015290519081900360640190fd5b610d8360048484612a8c565b6007546000906001600160a01b031633146115b6576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b600654821061160c576040805162461bcd60e51b815260206004820152601e60248201527f4e6f20636c65616e757020616674657220636c65616e757020626c6f636b0000604482015290519081900360640190fd5b6114986004858585612af9565b60007f0000000000000000000000000000000000000000000000000000000000000000158061164d575061164d8383612727565b1561165c576110f48383612b87565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634ee2cd7e84846040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b1580156116d157600080fd5b505afa1580156116e5573d6000803e3d6000fd5b505050506040513d60208110156116fb57600080fd5b50519050610d86565b6000611498848484612bec565b7f000000000000000000000000000000000000000000000000000000000000000081565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146117a5576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b9103a37b5b2b760811b604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000015806117e857506117d78482612727565b80156117e857506117e88382612727565b156117f9576117f984848484612bfa565b50505050565b6007546000906001600160a01b03163314611859576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b6006546001600160a01b03851660009081526002602052604090206114989185908590612cf5565b600061188b612d1c565b905090565b60007f000000000000000000000000000000000000000000000000000000000000000015806118c457506118c48383612727565b156118d3576110f48383612d22565b604080516001600160a01b038516602080830191909152818301859052825180830384018152606090920183528151918101919091206000818152600a90925291902054801561192a57600019019150610d869050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634ee2cd7e87876040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b1580156119a157600080fd5b505afa1580156119b5573d6000803e3d6000fd5b505050506040513d60208110156119cb57600080fd5b505190506119da816001612e22565b6000938452600a602052604090932092909255509050610d86565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611a65576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b9103a37b5b2b760811b604482015290519081900360640190fd5b6001600160a01b038516611a8d57611a7d8483612269565b611a88848383612e7c565b610f7a565b6001600160a01b038416611ab057611aa58584612269565b611a88858483612eb1565b611aba8584612269565b611ac48483612269565b610f7a8585858585612f93565b6060806000806000611ae2876130a3565b90506001816002811115611af257fe5b1415611b0c57611b0287876130c1565b9095509350611b76565b6000816002811115611b1a57fe5b1415611b3f576040805160008082526020820190815281830190925295509350611b76565b60405162461bcd60e51b8152600401808060200182810382526033815260200180614f6d6033913960400191505060405180910390fd5b84519250806002811115611b8657fe5b91505092959194509250565b6000611b9d826130a3565b6002811115610d8657fe5b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611c6b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b158015611c3357600080fd5b505afa158015611c47573d6000803e3d6000fd5b505050506040513d6020811015611c5d57600080fd5b50516001600160a01b031633145b611cb7576040805162461bcd60e51b81526020600482015260186024820152776f6e6c79206f776e6572206f7220676f7665726e616e636560401b604482015290519081900360640190fd5b610c5281613300565b6001600160a01b03811660009081526020819052604081205460ff1681816002811115611ce957fe5b1480610db1575060015b816002811115611cff57fe5b149392505050565b6001600160a01b03811660009081526020819052604081205460ff1681816002811115611d3057fe5b1415611d40576000915050610d11565b6002816002811115611d4e57fe5b1415611d7e576001600160a01b0383166000908152600260205260408120611d7590613322565b11915050610d11565b6001600160a01b0383166000908152600160205260408120611d759061332d565b6001600160a01b03821660009081526020819052604081205460ff1690816002811115611dc857fe5b1415611dd45750611f3b565b6001816002811115611de257fe5b14611e1e5760405162461bcd60e51b815260040180806020018281038252603c815260200180614d9c603c913960400191505060405180910390fd5b6001600160a01b03831660009081526001602052604081209080611e4183613339565b9150915060005b8251811015611f1a576000838281518110611e5f57fe5b602002602001015190506000611e95848481518110611e7a57fe5b60200260200101516127108a61334e9092919063ffffffff16565b9050611ea460038a8484613447565b600654611eb8906003908b906002906121ec565b50600654611ecd9060039084906002906121ec565b50816001600160a01b0316896001600160a01b0316600080516020614e26833981519152836000604051808381526020018281526020019250505060405180910390a35050600101611e48565b50611f2483613484565b600654611f35908490600290612a08565b50505050505b5050565b6001600160a01b03811660009081526020819052604081205460ff1681816002811115611f6857fe5b1480610db157506002611cf3565b6001600160a01b03821660009081526020819052604081205460ff1681816002811115611f9f57fe5b1415611faf576000915050610d86565b6002816002811115611fbd57fe5b14611ff95760405162461bcd60e51b8152600401808060200182810382526042815260200180614e9f6042913960600191505060405180910390fd5b6001600160a01b0384166000908152600260205260408120905b84518110156120fb57600085828151811061202a57fe5b602002602001015190506000612049828561348d90919063ffffffff16565b9050806120575750506120f3565b6120646003898484613447565b600654612078906003908a906002906121ec565b5060065461208d9060039084906002906121ec565b5061209a8483600061349c565b6006546120ad9085908490600290612cf5565b50816001600160a01b0316886001600160a01b0316600080516020614e26833981519152836000604051808381526020018281526020019250505060405180910390a350505b600101612013565b5061210581613322565b95945050505050565b60065481101561214f5760405162461bcd60e51b8152600401808060200182810382526028815260200180614dfe6028913960400191505060405180910390fd5b43811061218d5760405162461bcd60e51b8152600401808060200182810382526021815260200180614d7b6021913960400191505060405180910390fd5b600655565b60007f00000000000000000000000000000000000000000000000000000000000000006121c157506001610d11565b506001600160a01b0316600090815260096020526040902054151590565b6000610d86600383613506565b600061149585858585613513565b60008160065481101561223e5760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b600061224b86868661354e565b905060008061225a878461362c565b9550505050505b509392505050565b7f000000000000000000000000000000000000000000000000000000000000000061229357611f3b565b6001600160a01b038216600090815260096020526040902054611f3b576122b9826121df565b1580156122cc57506122ca82611d07565b155b6122d257fe5b6122de82600083612e7c565b6122e9436001612e22565b6001600160a01b0383166000908152600960205260409020555050565b6001600160a01b03831661235b576040805162461bcd60e51b815260206004820152601760248201527643616e6e6f742064656c656761746520746f207a65726f60481b604482015290519081900360640190fd5b836001600160a01b0316836001600160a01b031614156123bc576040805162461bcd60e51b815260206004820152601760248201527621b0b73737ba103232b632b3b0ba32903a379039b2b63360491b604482015290519081900360640190fd5b6123c584611f3f565b612416576040805162461bcd60e51b815260206004820152601960248201527f43616e6e6f742064656c656761746520627920616d6f756e7400000000000000604482015290519081900360640190fd5b6001600160a01b038416600090815260026020526040812090612439828661348d565b9050808310156124575761245260038787868503613447565b612507565b600061246d826124678988612788565b90612e22565b9050838110156040518060400160405280602081526020017f556e64656c65676174656420766f746520706f77657220746f6f20736d616c6c815250906124f55760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b5061250560038888858803613652565b505b60065461251b9060039088906002906121ec565b506006546125309060039087906002906121ec565b5061253c82868561349c565b60065461254f9083908790600290612cf5565b5060026001600160a01b03871660009081526020819052604090205460ff16600281111561257957fe5b146125a2576001600160a01b0386166000908152602081905260409020805460ff191660021790555b846001600160a01b0316866001600160a01b0316600080516020614e268339815191528386604051808381526020018281526020019250505060405180910390a3505050505050565b60608160065481101561262f5760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b438310612683576040805162461bcd60e51b815260206004820181905260248201527f43616e206f6e6c79206265207573656420666f72207061737420626c6f636b73604482015290519081900360640190fd5b835167ffffffffffffffff8111801561269b57600080fd5b506040519080825280602002602001820160405280156126c5578160200160208202803683370190505b50915060005b845181101561271f5761270060038683815181106126e557fe5b602002602001015186600461368f909392919063ffffffff16565b83828151811061270c57fe5b60209081029190910101526001016126cb565b505092915050565b60007f000000000000000000000000000000000000000000000000000000000000000061275657506001610d86565b6001600160a01b0383166000908152600960205260409020548015801590611498575060001901919091111592915050565b6000610d838383436121fa565b6001600160a01b0383166127ea576040805162461bcd60e51b815260206004820152601760248201527643616e6e6f742064656c656761746520746f207a65726f60481b604482015290519081900360640190fd5b836001600160a01b0316836001600160a01b0316141561284b576040805162461bcd60e51b815260206004820152601760248201527621b0b73737ba103232b632b3b0ba32903a379039b2b63360491b604482015290519081900360640190fd5b61285484611cc0565b6128a5576040805162461bcd60e51b815260206004820152601d60248201527f43616e6e6f742064656c65676174652062792070657263656e74616765000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600160205260408120906128c882866136fe565b90506000806128d884888761370a565b6006546128e9908590600290612a08565b508215612900576128fd868461271061334e565b91505b841561291657612913868661271061334e565b90505b818110156129325761292d60038989848603613447565b612941565b61294160038989858503613652565b600654612955906003908a906002906121ec565b5060065461296a9060039089906002906121ec565b5060016001600160a01b03891660009081526020819052604090205460ff16600281111561299457fe5b146129bd576001600160a01b0388166000908152602081905260409020805460ff191660011790555b866001600160a01b0316886001600160a01b0316600080516020614e268339815191528484604051808381526020018281526020019250505060405180910390a35050505050505050565b60006114988484846137b1565b600081600654811015612a595760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b612a66600487878661388e565b15612a745760009150612a83565b612a80868686866138e2565b91505b50949350505050565b604080516001600160a01b038416602080830191909152818301849052825180830384018152606090920183528151918101919091206000818152918690529181205490919015612aee57600090815260208590526040812055506001610db1565b506000949350505050565b604080516001600160a01b03808616602080840191909152828401859052835180840385018152606090930184528251928101929092206000818152600189018452848120928716815292829052928220549192918015612b7957506001600160a01b038516600090815260209190915260408120555060019050611498565b506000979650505050505050565b600081600654811015612bcb5760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b43831015612be157610b2360046003868661368f565b610b23600385613506565b6000611498848484436138e2565b80600654811015612c3c5760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b438210612c7a5760405162461bcd60e51b815260040180806020018281038252603b815260200180614f02603b913960400191505060405180910390fd5b6000612c88868686866138e2565b9050612c9a6004600388888588613995565b846001600160a01b0316866001600160a01b03167fd6f80c7d68e3e62bd7a51c3d37e575c1cfbc311c07487b69ef4eb570bc21cb688386604051808381526020018281526020019250505060405180910390a3505050505050565b6000612d02858484613b08565b9050612d1360028601858585613513565b01949350505050565b60065490565b600081600654811015612d665760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b438310612dba576040805162461bcd60e51b815260206004820181905260248201527f43616e206f6e6c79206265207573656420666f72207061737420626c6f636b73604482015290519081900360640190fd5b600080612dcb600460038888613ba7565b915091508015612a8357604080516001600160a01b03881681526020810187905281517fb0b412112c2958bbc2537fa96db51ddcfe7d0d074143f0b5308b6aab19b6694b929181900390910190a150949350505050565b600082820183811015610d83576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b612e8860038483613c31565b600654612e9c9060039085906002906121ec565b50610a078383612eac8185612e22565b613c58565b6000612ed882604051806060016040528060268152602001614dd860269139859190613d99565b9050612ee5848483613c58565b612ef0848484613df3565b6040518060400160405280602081526020017f556e64656c65676174656420766f746520706f77657220746f6f20736d616c6c81525090612f725760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b50612f7f60038584613e40565b600654610f7a9060039086906002906121ec565b6000612fba82604051806060016040528060268152602001614dd860269139869190613d99565b9050612fc7868583613c58565b612fd2868584613df3565b6040518060400160405280602081526020017f556e64656c65676174656420766f746520706f77657220746f6f20736d616c6c815250906130545760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b506130626003878785613e67565b6006546130769060039088906002906121ec565b5060065461308b9060039087906002906121ec565b5061309b8584612eac8186612e22565b505050505050565b6001600160a01b031660009081526020819052604090205460ff1690565b606080826006548110156131065760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b6001600160a01b038516600090815260016020526040902060608061312b8388613e8e565b909250905060005b825181101561318f576131678984838151811061314c57fe5b60200260200101518a600461388e909392919063ffffffff16565b1561318757600082828151811061317a57fe5b6020026020010181815250505b600101613133565b506000805b83518110156131c7578281815181106131a957fe5b60200260200101516000146131bf576001909101905b600101613194565b508067ffffffffffffffff811180156131df57600080fd5b50604051908082528060200260200182016040528015613209578160200160208202803683370190505b5096508067ffffffffffffffff8111801561322357600080fd5b5060405190808252806020026020018201604052801561324d578160200160208202803683370190505b5095506000805b84518110156132f25783818151811061326957fe5b60200260200101516000146132ea5784818151811061328457fe5b602002602001015189838151811061329857fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106132c457fe5b60200260200101518883815181106132d857fe5b60209081029190910101526001909101905b600101613254565b505050505050509250929050565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6000610d8682613ea6565b6000610d868243613eb2565b60608061334583613f09565b91509150915091565b6000808211613397576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b836133a457506000610db1565b838302838582816133b157fe5b0414156133ca578281816133c157fe5b04915050610db1565b60008386816133d557fe5b04905060008487816133e357fe5b06905060008587816133f157fe5b04905060008688816133ff57fe5b06905061225a613419886134138685613f16565b90613f6f565b6124676134268686613f16565b6124676134338987613f16565b6124678d6134418c8b613f16565b90613f16565b82826001600160a01b03821615801561346757506001600160a01b038116155b1561346e57fe5b826134785761309b565b61309b86858786613fd6565b610c5281614065565b6000610d836002840183614088565b60006134ab6002850184614088565b905060006134ec8361246784604051806040016040528060098152602001680546f74616c203c20360bc1b8152506134e58a600001613ea6565b9190613d99565b90506134fc600286018585614095565b610f7a85826140b3565b6000610d8383834361417c565b60006001600160a01b03841615612aee576001600160a01b0384166000908152602086905260409020613547908484613b08565b9050611498565b6000816006548110156135925760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b6001600160a01b03851660009081526020819052604081205460ff16908160028111156135bb57fe5b14156135cb576000925050612261565b60028160028111156135d957fe5b1415613609576001600160a01b03861660009081526002602052604090206136019085614189565b925050612261565b6001600160a01b0386166000908152600160205260409020613601908686614195565b600080838311156136425750600090508061364b565b50600190508183035b9250929050565b82826001600160a01b03821615801561367257506001600160a01b038116155b1561367957fe5b826136835761309b565b61309b86868686613fd6565b604080516001600160a01b038416602080830191909152818301849052825180830384018152606090920183528151918101919091206000818152918790529181205490919080156136e8576000190191506114989050565b6136f386868661417c565b979650505050505050565b6000610d8383836141a5565b61271081111561371657fe5b6137218383836141b2565b61271061372d84614293565b11156040518060400160405280601c81526020017f4d61782064656c65676174696f6e206269707320657863656564656400000000815250906117f95760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b6000816137c057506000610db1565b8354806137d1576000915050610db1565b600185015460006137ee6137e58388612e22565b6001850361429f565b9050815b818110801561382457508588600001826001018154811061380f57fe5b90600052602060002090600302016000015411155b156138705787600001818154811061383857fe5b600091825260208220600390910201818155906138586001830182614d18565b613866600283016000614d18565b50506001016137f2565b8281111561388057600188018190555b919091039695505050505050565b604080516001600160a01b0394851660208083019190915281830193909352815180820383018152606090910182528051908301206000908152600195909501825280852092909316845252902054151590565b6001600160a01b03841660009081526020819052604081205460ff168181600281111561390b57fe5b141561391b576000915050611498565b600181600281111561392957fe5b141561396a576001600160a01b03861660009081526001602052604081206139529087866142b5565b9050613961858261271061334e565b92505050611498565b6001600160a01b038616600090815260026020526040902061398d9086856142c2565b915050611498565b8161399f5761309b565b604080516001600160a01b0380871660208084019190915282840185905283518084038501815260609093018452825192810192909220600081815260018b018452848120928816815291909252919091205415613a36576040805162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481c995d9bdad959608a1b604482015290519081900360640190fd5b6000613a4488888786613ba7565b5090506000858460405160200180836001600160a01b0316815260200182815260200192505050604051602081830303815290604052805190602001209050613ad78982613ad2886040518060400160405280601781526020017f5265766f6b65642076616c756520746f6f206c6172676500000000000000000081525087613d999092919063ffffffff16565b6142d2565b5050600090815260018701602090815260408083206001600160a01b03871684529091529020829055505050505050565b600081613b1757506000610db1565b835480613b28576000915050610db1565b60018501546000613b3c6137e58388612e22565b9050815b8181108015613b72575085886000018260010181548110613b5d57fe5b90600052602060002090600202016000015411155b1561387057876000018181548110613b8657fe5b60009182526020822060029091020181815560019081019190915501613b40565b604080516001600160a01b0384166020808301919091528183018490528251808303840181526060909201835281519181019190912060008181529187905291812054909182918015613c055760001901925060009150613c289050565b6000613c1288888861417c565b9050613c1f8984836142d2565b93506001925050505b94509492505050565b80613c3b57610a07565b6001600160a01b038216613c4b57fe5b610a078360008484613fd6565b60016001600160a01b03841660009081526020819052604090205460ff166002811115613c8157fe5b1415610a07576001600160a01b03831660009081526001602052604081209080613caa83613339565b9150915060005b8251811015611f35576000838281518110613cc857fe5b602002602001015190506000613ce3848481518110611e7a57fe5b90506000613cf6858581518110611e7a57fe5b905081811115613d1457613d0f60038b85858503613652565b613d23565b613d2360038b85848603613447565b600654613d37906003908c906002906121ec565b50600654613d4c9060039085906002906121ec565b50826001600160a01b03168a6001600160a01b0316600080516020614e268339815191528484604051808381526020018281526020019250505060405180910390a3505050600101613cb1565b60008184841115613deb5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b505050900390565b600060026001600160a01b03851660009081526020819052604090205460ff166002811115613e1e57fe5b1415613e385781613e2f8585612788565b10159050610db1565b506001610db1565b80613e4a57610a07565b6001600160a01b038216613e5a57fe5b610a078383600084613fd6565b82826001600160a01b038216158015613e8757506001600160a01b038116155b1561368357fe5b606080613e9b84846142f0565b915091509250929050565b6000610d86824361448c565b6000806000613ec9856000018660010154866145b2565b9150915081613edd57600092505050610d86565b846000018181548110613eec57fe5b600091825260209091206001600390920201015495945050505050565b60608061334583436142f0565b600082613f2557506000610d86565b82820282848281613f3257fe5b0414610d835760405162461bcd60e51b8152600401808060200182810382526021815260200180614ee16021913960400191505060405180910390fd5b6000808211613fc5576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381613fce57fe5b049392505050565b80613fe0576117f9565b6001600160a01b038316158015613ffe57506001600160a01b038216155b1561400557fe5b6001600160a01b0383161561403957600061402a826140248787614088565b90614690565b9050614037858583614095565b505b6001600160a01b038216156117f9576000614058826124678786614088565b9050610f7a858483614095565b805415610c52578054600181018255600082815260209020436003909202015550565b6000610d838383436146ed565b6001600160a01b03821660009081526020849052604090206117f981835b8154806140f7576040805180820190915243815260208082018481528554600181810188556000888152939093209351600290910290930192835551910155610a07565b600083600001600183038154811061410b57fe5b600091825260209091206002909102018054909150438114156141345760018201849055610f7a565b80431161413d57fe5b604080518082019091524381526020808201868152875460018181018a5560008a81529390932093516002909102909301928355519101555050505050565b60006114988484846146ed565b6000610d83838361448c565b600061149884846127108561470f565b6000610d838383436147be565b82548061422257811561421d578354600180820186556000868152602080822043600390950201938455838301805480850182559083528183200180546001600160a01b0319166001600160a01b038916179055600290930180549283018155815291909120018290555b6117f9565b600084600001600183038154811061423657fe5b600091825260209091206003909102018054909150438114156142635761425e82868661488d565b61309b565b80431161426c57fe5b855460018101875560008781526020902043600390920201908155611f3581848888614926565b6000610d8682436149bf565b60008183106142ae5781610d83565b5090919050565b60006114988484846147be565b60006114986002850184846146ed565b6142dd816001612e22565b6000928352602093909352506040902055565b606080600080614308866000018760010154876145b2565b9150915081614332575050604080516000808252602082019081528183019092529250905061364b565b600086600001828154811061434357fe5b6000918252602090912060039091020160018101549091508067ffffffffffffffff8111801561437257600080fd5b5060405190808252806020026020018201604052801561439c578160200160208202803683370190505b5095508067ffffffffffffffff811180156143b657600080fd5b506040519080825280602002602001820160405280156143e0578160200160208202803683370190505b50945060005b81811015614480578260010181815481106143fd57fe5b9060005260206000200160009054906101000a90046001600160a01b031687828151811061442757fe5b60200260200101906001600160a01b031690816001600160a01b03168152505082600201818154811061445657fe5b906000526020600020015486828151811061446d57fe5b60209081029190910101526001016143e6565b50505050509250929050565b8154600090806144a0576000915050610d86565b43831015806144d257508360000160018203815481106144bc57fe5b9060005260206000209060020201600001548310155b15614503578360000160018203815481106144e957fe5b906000526020600020906002020160010154915050610d86565b6001840154845485908290811061451657fe5b90600052602060002090600202016000015484101561457757801561456c5760405162461bcd60e51b8152600401808060200182810382526030815260200180614f3d6030913960400191505060405180910390fd5b600092505050610d86565b6000614584868387614a60565b905085600001818154811061459557fe5b906000526020600020906002020160010154935050505092915050565b82546000908190806145c75760009250614687565b43841015806145f657508560018203815481106145e057fe5b9060005260206000209060030201600001548410155b1561460a5760019250600181039150614687565b85858154811061461657fe5b90600052602060002090600302016000015484101561467557841561466c5760405162461bcd60e51b8152600401808060200182810382526030815260200180614d4b6030913960400191505060405180910390fd5b60009250614687565b60019250614684868686614ad7565b91505b50935093915050565b6000828211156146e7576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b0382166000908152602084905260408120612105818461448c565b6000806000614726876000018860010154866145b2565b915091508161473a57600092505050611498565b600087600001828154811061474b57fe5b6000918252602082206002600390920201908101549195509150845b818110156147b1576147a76147a08a8a86600201858154811061478657fe5b906000526020600020015461334e9092919063ffffffff16565b8790612e22565b9550600101614767565b5050505050949350505050565b60008060006147d5866000018760010154866145b2565b91509150816147e957600092505050610db1565b60008660000182815481106147fa57fe5b600091825260208220600160039092020190810154909250905b8181101561487e57876001600160a01b031683600101828154811061483557fe5b6000918252602090912001546001600160a01b031614156148765782600201818154811061485f57fe5b906000526020600020015495505050505050610db1565b600101614814565b50600098975050505050505050565b600183015460005b81811080156148d05750836001600160a01b03168560010182815481106148b857fe5b6000918252602090912001546001600160a01b031614155b156148dd57600101614895565b8181101561491a57821561490c57828560020182815481106148fb57fe5b600091825260209091200155611a88565b611a88858260018503614b4e565b610f7a85858585614c48565b60018301546000805b828110156149ad57600086600101828154811061494857fe5b6000918252602090912001546001600160a01b039081169150861681141561497f5761497688828785614c48565b600192506149a4565b6149a4888289600201858154811061499357fe5b906000526020600020015485614c48565b5060010161492f565b508061309b5761309b86858585614c48565b60008060006149d6856000018660010154866145b2565b91509150816149ea57600092505050610d86565b60008560000182815481106149fb57fe5b6000918252602082206002600390920201908101549195509150845b81811015614a5557614a4b836002018281548110614a3157fe5b906000526020600020015487612e2290919063ffffffff16565b9550600101614a17565b505050505092915050565b825460009083908290614a74906001614690565b90505b81811115612a83576000614a95600261341360016124678688612e22565b905084878281548110614aa457fe5b90600052602060002090600202016000015411614ac357809250614ad1565b614ace816001614690565b91505b50614a77565b825460009083908290614aeb906001614690565b90505b81811115612a83576000614b0c600261341360016124678688612e22565b905084878281548110614b1b57fe5b90600052602060002090600302016000015411614b3a57809250614b48565b614b45816001614690565b91505b50614aee565b80821015614bf157826001018181548110614b6557fe5b6000918252602090912001546001840180546001600160a01b039092169184908110614b8d57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550826002018181548110614bca57fe5b9060005260206000200154836002018381548110614be457fe5b6000918252602090912001555b82600101805480614bfe57fe5b600082815260209020810160001990810180546001600160a01b031916905501905560028301805480614c2d57fe5b60019003818190600052602060002001600090559055505050565b81156117f95760408051808201909152601681527513585e0819195b1959d85d195cc8195e18d95959195960521b602082015260028210614cca5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b506001808501805480830182556000918252602080832090910180546001600160a01b0388166001600160a01b03199091161790556002870180549384018155825290200182905550505050565b5080546000825590600052602060002090810190610c5291905b80821115614d465760008155600101614d32565b509056fe44656c65676174696f6e486973746f72793a2072656164696e672066726f6d20636c65616e65642d757020626c6f636b436c65616e757020626c6f636b206d75737420626520696e207468652070617374756e64656c6567617465416c6c2063616e206f6e6c79206265207573656420696e2070657263656e746167652064656c65676174696f6e206d6f646545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365436c65616e757020626c6f636b206e756d626572206d757374206e65766572206465637265617365500599802164a08023e87ffc3eed0ba3ae60697b3083ba81d046683679d81c6b44656c6567617461626c653a2072656164696e672066726f6d20636c65616e65642d757020626c6f636b6f6e6c79206f776e65722c20676f7665726e616e6365206f7220636c65616e757020626c6f636b206d616e61676572756e64656c6567617465416c6c4578706c696369742063616e206f6e6c79206265207573656420696e206578706c696369742064656c65676174696f6e206d6f6465536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775265766f6b65206973206f6e6c7920666f722074686520706173742c2075736520756e64656c656761746520666f72207468652070726573656e74436865636b506f696e74486973746f72793a2072656164696e672066726f6d20636c65616e65642d757020626c6f636b64656c6567617465734f6620646f6573206e6f7420776f726b20696e20414d4f554e542064656c65676174696f6e206d6f6465a26469706673582212207dfe340d804cb429d67c1627137e0a590996197fb1fb54708c4e1c4175706c0d64736f6c634300070600335650436f6e7472616374206d7573742062656c6f6e6720746f2061205650546f6b656e",
771
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101c45760003560e01c8063833aca92116100f9578063cabc452811610097578063eadb436211610071578063eadb4362146107fb578063ed475a791461083d578063f683776714610869578063f6a494af1461088f576101c4565b8063cabc452814610791578063deea13e7146107c7578063e587497e146107cf576101c4565b806392bfe6d8116100d357806392bfe6d8146106d75780639dc6b9f214610703578063aa94d3f214610739578063c7c62fab14610755576101c4565b8063833aca9214610639578063891339a8146106755780638c0b6b40146106a1576101c4565b806349e3c7e511610166578063653718831161014057806365371883146104f65780637de5b8ed1461051a5780637f4fcaa9146105e75780637f57d58f1461060d576101c4565b806349e3c7e5146103995780634a03d5561461048e5780636230001a146104ba576101c4565b8063142d1018116101a2578063142d1018146102d95780631a05274c146102ff578063315039271461032b578063404d9e821461035d576101c4565b806305109ecf146101c95780630f8b8af7146101f757806313de97f5146102bc575b600080fd5b6101f5600480360360408110156101df57600080fd5b506001600160a01b0381351690602001356108b5565b005b6102aa6004803603604081101561020d57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561023857600080fd5b82018360208201111561024a57600080fd5b8035906020019184602083028401116401000000008311171561026c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610a0c945050505050565b60408051918252519081900360200190f35b6101f5600480360360208110156102d257600080fd5b5035610b36565b6102aa600480360360208110156102ef57600080fd5b50356001600160a01b0316610c55565b6102aa6004803603604081101561031557600080fd5b506001600160a01b038135169060200135610d16565b6102aa6004803603606081101561034157600080fd5b506001600160a01b038135169060208101359060400135610d8c565b6101f56004803603608081101561037357600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610db8565b61043e600480360360408110156103af57600080fd5b8101906020810181356401000000008111156103ca57600080fd5b8201836020820111156103dc57600080fd5b803590602001918460208302840111640100000000831117156103fe57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505091359250610f81915050565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561047a578181015183820152602001610462565b505050509050019250505060405180910390f35b6102aa600480360360408110156104a457600080fd5b506001600160a01b0381351690602001356110da565b6101f5600480360360808110156104d057600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611102565b6104fe611293565b604080516001600160a01b039092168252519081900360200190f35b6105406004803603602081101561053057600080fd5b50356001600160a01b03166112b7565b604051808060200180602001858152602001848152602001838103835287818151815260200191508051906020019060200280838360005b83811015610590578181015183820152602001610578565b50505050905001838103825286818151815260200191508051906020019060200280838360005b838110156105cf5781810151838201526020016105b7565b50505050905001965050505050505060405180910390f35b6101f5600480360360208110156105fd57600080fd5b50356001600160a01b03166112d6565b6102aa6004803603604081101561062357600080fd5b506001600160a01b038135169060200135611407565b6102aa6004803603608081101561064f57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611487565b6102aa6004803603604081101561068b57600080fd5b506001600160a01b0381351690602001356114a0565b6102aa600480360360608110156106b757600080fd5b506001600160a01b0381358116916020810135909116906040013561155c565b6102aa600480360360408110156106ed57600080fd5b506001600160a01b038135169060200135611619565b6102aa6004803603606081101561071957600080fd5b506001600160a01b03813581169160208101359091169060400135611704565b610741611711565b604080519115158252519081900360200190f35b6101f56004803603608081101561076b57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611735565b6102aa600480360360608110156107a757600080fd5b506001600160a01b038135811691602081013590911690604001356117ff565b6102aa611881565b6102aa600480360360408110156107e557600080fd5b506001600160a01b038135169060200135611890565b6101f5600480360360a081101561081157600080fd5b506001600160a01b038135811691602081013590911690604081013590606081013590608001356119f5565b6105406004803603604081101561085357600080fd5b506001600160a01b038135169060200135611ad1565b6102aa6004803603602081101561087f57600080fd5b50356001600160a01b0316611b92565b6101f5600480360360208110156108a557600080fd5b50356001600160a01b0316611ba8565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610925576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b9103a37b5b2b760811b604482015290519081900360640190fd5b8161092f81611cc0565b6040518060400160405280601c81526020017f416c72656164792064656c656761746564206578706c696369746c7900000000815250906109ee5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109b357818101518382015260200161099b565b50505050905090810190601f1680156109e05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506109f883611d07565b15610a0757610a078383611d9f565b505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a7e576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b9103a37b5b2b760811b604482015290519081900360640190fd5b82610a8881611f3f565b6040518060400160405280601f81526020017f416c72656164792064656c6567617465642062792070657263656e746167650081525090610b0a5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b50610b1484611d07565b15610b2a57610b238484611f76565b9150610b2f565b600091505b5092915050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610b7757506008546001600160a01b031633145b80610c0e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b158015610bd657600080fd5b505afa158015610bea573d6000803e3d6000fd5b505050506040513d6020811015610c0057600080fd5b50516001600160a01b031633145b610c495760405162461bcd60e51b815260040180806020018281038252602f815260200180614e70602f913960400191505060405180910390fd5b610c528161210e565b50565b6000610c6082612192565b15610c7557610c6e826121df565b9050610d11565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231836040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610ce257600080fd5b505afa158015610cf6573d6000803e3d6000fd5b505050506040513d6020811015610d0c57600080fd5b505190505b919050565b6007546000906001600160a01b03163314610d70576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b600654610d8390600390859085906121ec565b90505b92915050565b6000610d9784612192565b15610dae57610da78484846121fa565b9050610db1565b50815b9392505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610e28576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b9103a37b5b2b760811b604482015290519081900360640190fd5b83610e3281611f3f565b6040518060400160405280601f81526020017f416c72656164792064656c6567617465642062792070657263656e746167650081525090610eb45760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b50610ebf8584612269565b610ec884612192565b610f6e57610f6e847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231876040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610f3d57600080fd5b505afa158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b5051612269565b610f7a85858585612306565b5050505050565b6060610f8d83836125eb565b90507f000000000000000000000000000000000000000000000000000000000000000015610d865760005b8151811015610b2f57818181518110610fcd57fe5b60200260200101516000148015610ffe5750610ffc848281518110610fee57fe5b602002602001015184612727565b155b156110d2577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634ee2cd7e85838151811061103e57fe5b6020026020010151856040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b15801561108b57600080fd5b505afa15801561109f573d6000803e3d6000fd5b505050506040513d60208110156110b557600080fd5b505182518390839081106110c557fe5b6020026020010181815250505b600101610fb8565b60006110e583612192565b156110fb576110f48383612788565b9050610d86565b5080610d86565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611172576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b9103a37b5b2b760811b604482015290519081900360640190fd5b8361117c81611cc0565b6040518060400160405280601c81526020017f416c72656164792064656c656761746564206578706c696369746c7900000000815250906111fe5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b506112098584612269565b61121284612192565b61128757611287847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231876040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610f3d57600080fd5b610f7a85858585612795565b7f000000000000000000000000000000000000000000000000000000000000000081565b6060806000806112c78543611ad1565b93509350935093509193509193565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061139957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b15801561136157600080fd5b505afa158015611375573d6000803e3d6000fd5b505050506040513d602081101561138b57600080fd5b50516001600160a01b031633145b6113e5576040805162461bcd60e51b81526020600482015260186024820152776f6e6c79206f776e6572206f7220676f7665726e616e636560401b604482015290519081900360640190fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6007546000906001600160a01b03163314611461576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b6006546001600160a01b0384166000908152600160205260409020610d83918490612a08565b600061149585858585612a15565b90505b949350505050565b6007546000906001600160a01b031633146114fa576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b6006548210611550576040805162461bcd60e51b815260206004820152601e60248201527f4e6f20636c65616e757020616674657220636c65616e757020626c6f636b0000604482015290519081900360640190fd5b610d8360048484612a8c565b6007546000906001600160a01b031633146115b6576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b600654821061160c576040805162461bcd60e51b815260206004820152601e60248201527f4e6f20636c65616e757020616674657220636c65616e757020626c6f636b0000604482015290519081900360640190fd5b6114986004858585612af9565b60007f0000000000000000000000000000000000000000000000000000000000000000158061164d575061164d8383612727565b1561165c576110f48383612b87565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634ee2cd7e84846040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b1580156116d157600080fd5b505afa1580156116e5573d6000803e3d6000fd5b505050506040513d60208110156116fb57600080fd5b50519050610d86565b6000611498848484612bec565b7f000000000000000000000000000000000000000000000000000000000000000081565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146117a5576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b9103a37b5b2b760811b604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000015806117e857506117d78482612727565b80156117e857506117e88382612727565b156117f9576117f984848484612bfa565b50505050565b6007546000906001600160a01b03163314611859576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b6006546001600160a01b03851660009081526002602052604090206114989185908590612cf5565b600061188b612d1c565b905090565b60007f000000000000000000000000000000000000000000000000000000000000000015806118c457506118c48383612727565b156118d3576110f48383612d22565b604080516001600160a01b038516602080830191909152818301859052825180830384018152606090920183528151918101919091206000818152600a90925291902054801561192a57600019019150610d869050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634ee2cd7e87876040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b1580156119a157600080fd5b505afa1580156119b5573d6000803e3d6000fd5b505050506040513d60208110156119cb57600080fd5b505190506119da816001612e22565b6000938452600a602052604090932092909255509050610d86565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611a65576040805162461bcd60e51b815260206004820152601060248201526f37b7363c9037bbb732b9103a37b5b2b760811b604482015290519081900360640190fd5b6001600160a01b038516611a8d57611a7d8483612269565b611a88848383612e7c565b610f7a565b6001600160a01b038416611ab057611aa58584612269565b611a88858483612eb1565b611aba8584612269565b611ac48483612269565b610f7a8585858585612f93565b6060806000806000611ae2876130a3565b90506001816002811115611af257fe5b1415611b0c57611b0287876130c1565b9095509350611b76565b6000816002811115611b1a57fe5b1415611b3f576040805160008082526020820190815281830190925295509350611b76565b60405162461bcd60e51b8152600401808060200182810382526033815260200180614f6d6033913960400191505060405180910390fd5b84519250806002811115611b8657fe5b91505092959194509250565b6000611b9d826130a3565b6002811115610d8657fe5b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611c6b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b158015611c3357600080fd5b505afa158015611c47573d6000803e3d6000fd5b505050506040513d6020811015611c5d57600080fd5b50516001600160a01b031633145b611cb7576040805162461bcd60e51b81526020600482015260186024820152776f6e6c79206f776e6572206f7220676f7665726e616e636560401b604482015290519081900360640190fd5b610c5281613300565b6001600160a01b03811660009081526020819052604081205460ff1681816002811115611ce957fe5b1480610db1575060015b816002811115611cff57fe5b149392505050565b6001600160a01b03811660009081526020819052604081205460ff1681816002811115611d3057fe5b1415611d40576000915050610d11565b6002816002811115611d4e57fe5b1415611d7e576001600160a01b0383166000908152600260205260408120611d7590613322565b11915050610d11565b6001600160a01b0383166000908152600160205260408120611d759061332d565b6001600160a01b03821660009081526020819052604081205460ff1690816002811115611dc857fe5b1415611dd45750611f3b565b6001816002811115611de257fe5b14611e1e5760405162461bcd60e51b815260040180806020018281038252603c815260200180614d9c603c913960400191505060405180910390fd5b6001600160a01b03831660009081526001602052604081209080611e4183613339565b9150915060005b8251811015611f1a576000838281518110611e5f57fe5b602002602001015190506000611e95848481518110611e7a57fe5b60200260200101516127108a61334e9092919063ffffffff16565b9050611ea460038a8484613447565b600654611eb8906003908b906002906121ec565b50600654611ecd9060039084906002906121ec565b50816001600160a01b0316896001600160a01b0316600080516020614e26833981519152836000604051808381526020018281526020019250505060405180910390a35050600101611e48565b50611f2483613484565b600654611f35908490600290612a08565b50505050505b5050565b6001600160a01b03811660009081526020819052604081205460ff1681816002811115611f6857fe5b1480610db157506002611cf3565b6001600160a01b03821660009081526020819052604081205460ff1681816002811115611f9f57fe5b1415611faf576000915050610d86565b6002816002811115611fbd57fe5b14611ff95760405162461bcd60e51b8152600401808060200182810382526042815260200180614e9f6042913960600191505060405180910390fd5b6001600160a01b0384166000908152600260205260408120905b84518110156120fb57600085828151811061202a57fe5b602002602001015190506000612049828561348d90919063ffffffff16565b9050806120575750506120f3565b6120646003898484613447565b600654612078906003908a906002906121ec565b5060065461208d9060039084906002906121ec565b5061209a8483600061349c565b6006546120ad9085908490600290612cf5565b50816001600160a01b0316886001600160a01b0316600080516020614e26833981519152836000604051808381526020018281526020019250505060405180910390a350505b600101612013565b5061210581613322565b95945050505050565b60065481101561214f5760405162461bcd60e51b8152600401808060200182810382526028815260200180614dfe6028913960400191505060405180910390fd5b43811061218d5760405162461bcd60e51b8152600401808060200182810382526021815260200180614d7b6021913960400191505060405180910390fd5b600655565b60007f00000000000000000000000000000000000000000000000000000000000000006121c157506001610d11565b506001600160a01b0316600090815260096020526040902054151590565b6000610d86600383613506565b600061149585858585613513565b60008160065481101561223e5760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b600061224b86868661354e565b905060008061225a878461362c565b9550505050505b509392505050565b7f000000000000000000000000000000000000000000000000000000000000000061229357611f3b565b6001600160a01b038216600090815260096020526040902054611f3b576122b9826121df565b1580156122cc57506122ca82611d07565b155b6122d257fe5b6122de82600083612e7c565b6122e9436001612e22565b6001600160a01b0383166000908152600960205260409020555050565b6001600160a01b03831661235b576040805162461bcd60e51b815260206004820152601760248201527643616e6e6f742064656c656761746520746f207a65726f60481b604482015290519081900360640190fd5b836001600160a01b0316836001600160a01b031614156123bc576040805162461bcd60e51b815260206004820152601760248201527621b0b73737ba103232b632b3b0ba32903a379039b2b63360491b604482015290519081900360640190fd5b6123c584611f3f565b612416576040805162461bcd60e51b815260206004820152601960248201527f43616e6e6f742064656c656761746520627920616d6f756e7400000000000000604482015290519081900360640190fd5b6001600160a01b038416600090815260026020526040812090612439828661348d565b9050808310156124575761245260038787868503613447565b612507565b600061246d826124678988612788565b90612e22565b9050838110156040518060400160405280602081526020017f556e64656c65676174656420766f746520706f77657220746f6f20736d616c6c815250906124f55760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b5061250560038888858803613652565b505b60065461251b9060039088906002906121ec565b506006546125309060039087906002906121ec565b5061253c82868561349c565b60065461254f9083908790600290612cf5565b5060026001600160a01b03871660009081526020819052604090205460ff16600281111561257957fe5b146125a2576001600160a01b0386166000908152602081905260409020805460ff191660021790555b846001600160a01b0316866001600160a01b0316600080516020614e268339815191528386604051808381526020018281526020019250505060405180910390a3505050505050565b60608160065481101561262f5760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b438310612683576040805162461bcd60e51b815260206004820181905260248201527f43616e206f6e6c79206265207573656420666f72207061737420626c6f636b73604482015290519081900360640190fd5b835167ffffffffffffffff8111801561269b57600080fd5b506040519080825280602002602001820160405280156126c5578160200160208202803683370190505b50915060005b845181101561271f5761270060038683815181106126e557fe5b602002602001015186600461368f909392919063ffffffff16565b83828151811061270c57fe5b60209081029190910101526001016126cb565b505092915050565b60007f000000000000000000000000000000000000000000000000000000000000000061275657506001610d86565b6001600160a01b0383166000908152600960205260409020548015801590611498575060001901919091111592915050565b6000610d838383436121fa565b6001600160a01b0383166127ea576040805162461bcd60e51b815260206004820152601760248201527643616e6e6f742064656c656761746520746f207a65726f60481b604482015290519081900360640190fd5b836001600160a01b0316836001600160a01b0316141561284b576040805162461bcd60e51b815260206004820152601760248201527621b0b73737ba103232b632b3b0ba32903a379039b2b63360491b604482015290519081900360640190fd5b61285484611cc0565b6128a5576040805162461bcd60e51b815260206004820152601d60248201527f43616e6e6f742064656c65676174652062792070657263656e74616765000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600160205260408120906128c882866136fe565b90506000806128d884888761370a565b6006546128e9908590600290612a08565b508215612900576128fd868461271061334e565b91505b841561291657612913868661271061334e565b90505b818110156129325761292d60038989848603613447565b612941565b61294160038989858503613652565b600654612955906003908a906002906121ec565b5060065461296a9060039089906002906121ec565b5060016001600160a01b03891660009081526020819052604090205460ff16600281111561299457fe5b146129bd576001600160a01b0388166000908152602081905260409020805460ff191660011790555b866001600160a01b0316886001600160a01b0316600080516020614e268339815191528484604051808381526020018281526020019250505060405180910390a35050505050505050565b60006114988484846137b1565b600081600654811015612a595760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b612a66600487878661388e565b15612a745760009150612a83565b612a80868686866138e2565b91505b50949350505050565b604080516001600160a01b038416602080830191909152818301849052825180830384018152606090920183528151918101919091206000818152918690529181205490919015612aee57600090815260208590526040812055506001610db1565b506000949350505050565b604080516001600160a01b03808616602080840191909152828401859052835180840385018152606090930184528251928101929092206000818152600189018452848120928716815292829052928220549192918015612b7957506001600160a01b038516600090815260209190915260408120555060019050611498565b506000979650505050505050565b600081600654811015612bcb5760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b43831015612be157610b2360046003868661368f565b610b23600385613506565b6000611498848484436138e2565b80600654811015612c3c5760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b438210612c7a5760405162461bcd60e51b815260040180806020018281038252603b815260200180614f02603b913960400191505060405180910390fd5b6000612c88868686866138e2565b9050612c9a6004600388888588613995565b846001600160a01b0316866001600160a01b03167fd6f80c7d68e3e62bd7a51c3d37e575c1cfbc311c07487b69ef4eb570bc21cb688386604051808381526020018281526020019250505060405180910390a3505050505050565b6000612d02858484613b08565b9050612d1360028601858585613513565b01949350505050565b60065490565b600081600654811015612d665760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b438310612dba576040805162461bcd60e51b815260206004820181905260248201527f43616e206f6e6c79206265207573656420666f72207061737420626c6f636b73604482015290519081900360640190fd5b600080612dcb600460038888613ba7565b915091508015612a8357604080516001600160a01b03881681526020810187905281517fb0b412112c2958bbc2537fa96db51ddcfe7d0d074143f0b5308b6aab19b6694b929181900390910190a150949350505050565b600082820183811015610d83576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b612e8860038483613c31565b600654612e9c9060039085906002906121ec565b50610a078383612eac8185612e22565b613c58565b6000612ed882604051806060016040528060268152602001614dd860269139859190613d99565b9050612ee5848483613c58565b612ef0848484613df3565b6040518060400160405280602081526020017f556e64656c65676174656420766f746520706f77657220746f6f20736d616c6c81525090612f725760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b50612f7f60038584613e40565b600654610f7a9060039086906002906121ec565b6000612fba82604051806060016040528060268152602001614dd860269139869190613d99565b9050612fc7868583613c58565b612fd2868584613df3565b6040518060400160405280602081526020017f556e64656c65676174656420766f746520706f77657220746f6f20736d616c6c815250906130545760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b506130626003878785613e67565b6006546130769060039088906002906121ec565b5060065461308b9060039087906002906121ec565b5061309b8584612eac8186612e22565b505050505050565b6001600160a01b031660009081526020819052604090205460ff1690565b606080826006548110156131065760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b6001600160a01b038516600090815260016020526040902060608061312b8388613e8e565b909250905060005b825181101561318f576131678984838151811061314c57fe5b60200260200101518a600461388e909392919063ffffffff16565b1561318757600082828151811061317a57fe5b6020026020010181815250505b600101613133565b506000805b83518110156131c7578281815181106131a957fe5b60200260200101516000146131bf576001909101905b600101613194565b508067ffffffffffffffff811180156131df57600080fd5b50604051908082528060200260200182016040528015613209578160200160208202803683370190505b5096508067ffffffffffffffff8111801561322357600080fd5b5060405190808252806020026020018201604052801561324d578160200160208202803683370190505b5095506000805b84518110156132f25783818151811061326957fe5b60200260200101516000146132ea5784818151811061328457fe5b602002602001015189838151811061329857fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106132c457fe5b60200260200101518883815181106132d857fe5b60209081029190910101526001909101905b600101613254565b505050505050509250929050565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6000610d8682613ea6565b6000610d868243613eb2565b60608061334583613f09565b91509150915091565b6000808211613397576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b836133a457506000610db1565b838302838582816133b157fe5b0414156133ca578281816133c157fe5b04915050610db1565b60008386816133d557fe5b04905060008487816133e357fe5b06905060008587816133f157fe5b04905060008688816133ff57fe5b06905061225a613419886134138685613f16565b90613f6f565b6124676134268686613f16565b6124676134338987613f16565b6124678d6134418c8b613f16565b90613f16565b82826001600160a01b03821615801561346757506001600160a01b038116155b1561346e57fe5b826134785761309b565b61309b86858786613fd6565b610c5281614065565b6000610d836002840183614088565b60006134ab6002850184614088565b905060006134ec8361246784604051806040016040528060098152602001680546f74616c203c20360bc1b8152506134e58a600001613ea6565b9190613d99565b90506134fc600286018585614095565b610f7a85826140b3565b6000610d8383834361417c565b60006001600160a01b03841615612aee576001600160a01b0384166000908152602086905260409020613547908484613b08565b9050611498565b6000816006548110156135925760405162461bcd60e51b815260040180806020018281038252602a815260200180614e46602a913960400191505060405180910390fd5b6001600160a01b03851660009081526020819052604081205460ff16908160028111156135bb57fe5b14156135cb576000925050612261565b60028160028111156135d957fe5b1415613609576001600160a01b03861660009081526002602052604090206136019085614189565b925050612261565b6001600160a01b0386166000908152600160205260409020613601908686614195565b600080838311156136425750600090508061364b565b50600190508183035b9250929050565b82826001600160a01b03821615801561367257506001600160a01b038116155b1561367957fe5b826136835761309b565b61309b86868686613fd6565b604080516001600160a01b038416602080830191909152818301849052825180830384018152606090920183528151918101919091206000818152918790529181205490919080156136e8576000190191506114989050565b6136f386868661417c565b979650505050505050565b6000610d8383836141a5565b61271081111561371657fe5b6137218383836141b2565b61271061372d84614293565b11156040518060400160405280601c81526020017f4d61782064656c65676174696f6e206269707320657863656564656400000000815250906117f95760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b6000816137c057506000610db1565b8354806137d1576000915050610db1565b600185015460006137ee6137e58388612e22565b6001850361429f565b9050815b818110801561382457508588600001826001018154811061380f57fe5b90600052602060002090600302016000015411155b156138705787600001818154811061383857fe5b600091825260208220600390910201818155906138586001830182614d18565b613866600283016000614d18565b50506001016137f2565b8281111561388057600188018190555b919091039695505050505050565b604080516001600160a01b0394851660208083019190915281830193909352815180820383018152606090910182528051908301206000908152600195909501825280852092909316845252902054151590565b6001600160a01b03841660009081526020819052604081205460ff168181600281111561390b57fe5b141561391b576000915050611498565b600181600281111561392957fe5b141561396a576001600160a01b03861660009081526001602052604081206139529087866142b5565b9050613961858261271061334e565b92505050611498565b6001600160a01b038616600090815260026020526040902061398d9086856142c2565b915050611498565b8161399f5761309b565b604080516001600160a01b0380871660208084019190915282840185905283518084038501815260609093018452825192810192909220600081815260018b018452848120928816815291909252919091205415613a36576040805162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481c995d9bdad959608a1b604482015290519081900360640190fd5b6000613a4488888786613ba7565b5090506000858460405160200180836001600160a01b0316815260200182815260200192505050604051602081830303815290604052805190602001209050613ad78982613ad2886040518060400160405280601781526020017f5265766f6b65642076616c756520746f6f206c6172676500000000000000000081525087613d999092919063ffffffff16565b6142d2565b5050600090815260018701602090815260408083206001600160a01b03871684529091529020829055505050505050565b600081613b1757506000610db1565b835480613b28576000915050610db1565b60018501546000613b3c6137e58388612e22565b9050815b8181108015613b72575085886000018260010181548110613b5d57fe5b90600052602060002090600202016000015411155b1561387057876000018181548110613b8657fe5b60009182526020822060029091020181815560019081019190915501613b40565b604080516001600160a01b0384166020808301919091528183018490528251808303840181526060909201835281519181019190912060008181529187905291812054909182918015613c055760001901925060009150613c289050565b6000613c1288888861417c565b9050613c1f8984836142d2565b93506001925050505b94509492505050565b80613c3b57610a07565b6001600160a01b038216613c4b57fe5b610a078360008484613fd6565b60016001600160a01b03841660009081526020819052604090205460ff166002811115613c8157fe5b1415610a07576001600160a01b03831660009081526001602052604081209080613caa83613339565b9150915060005b8251811015611f35576000838281518110613cc857fe5b602002602001015190506000613ce3848481518110611e7a57fe5b90506000613cf6858581518110611e7a57fe5b905081811115613d1457613d0f60038b85858503613652565b613d23565b613d2360038b85848603613447565b600654613d37906003908c906002906121ec565b50600654613d4c9060039085906002906121ec565b50826001600160a01b03168a6001600160a01b0316600080516020614e268339815191528484604051808381526020018281526020019250505060405180910390a3505050600101613cb1565b60008184841115613deb5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b505050900390565b600060026001600160a01b03851660009081526020819052604090205460ff166002811115613e1e57fe5b1415613e385781613e2f8585612788565b10159050610db1565b506001610db1565b80613e4a57610a07565b6001600160a01b038216613e5a57fe5b610a078383600084613fd6565b82826001600160a01b038216158015613e8757506001600160a01b038116155b1561368357fe5b606080613e9b84846142f0565b915091509250929050565b6000610d86824361448c565b6000806000613ec9856000018660010154866145b2565b9150915081613edd57600092505050610d86565b846000018181548110613eec57fe5b600091825260209091206001600390920201015495945050505050565b60608061334583436142f0565b600082613f2557506000610d86565b82820282848281613f3257fe5b0414610d835760405162461bcd60e51b8152600401808060200182810382526021815260200180614ee16021913960400191505060405180910390fd5b6000808211613fc5576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381613fce57fe5b049392505050565b80613fe0576117f9565b6001600160a01b038316158015613ffe57506001600160a01b038216155b1561400557fe5b6001600160a01b0383161561403957600061402a826140248787614088565b90614690565b9050614037858583614095565b505b6001600160a01b038216156117f9576000614058826124678786614088565b9050610f7a858483614095565b805415610c52578054600181018255600082815260209020436003909202015550565b6000610d838383436146ed565b6001600160a01b03821660009081526020849052604090206117f981835b8154806140f7576040805180820190915243815260208082018481528554600181810188556000888152939093209351600290910290930192835551910155610a07565b600083600001600183038154811061410b57fe5b600091825260209091206002909102018054909150438114156141345760018201849055610f7a565b80431161413d57fe5b604080518082019091524381526020808201868152875460018181018a5560008a81529390932093516002909102909301928355519101555050505050565b60006114988484846146ed565b6000610d83838361448c565b600061149884846127108561470f565b6000610d838383436147be565b82548061422257811561421d578354600180820186556000868152602080822043600390950201938455838301805480850182559083528183200180546001600160a01b0319166001600160a01b038916179055600290930180549283018155815291909120018290555b6117f9565b600084600001600183038154811061423657fe5b600091825260209091206003909102018054909150438114156142635761425e82868661488d565b61309b565b80431161426c57fe5b855460018101875560008781526020902043600390920201908155611f3581848888614926565b6000610d8682436149bf565b60008183106142ae5781610d83565b5090919050565b60006114988484846147be565b60006114986002850184846146ed565b6142dd816001612e22565b6000928352602093909352506040902055565b606080600080614308866000018760010154876145b2565b9150915081614332575050604080516000808252602082019081528183019092529250905061364b565b600086600001828154811061434357fe5b6000918252602090912060039091020160018101549091508067ffffffffffffffff8111801561437257600080fd5b5060405190808252806020026020018201604052801561439c578160200160208202803683370190505b5095508067ffffffffffffffff811180156143b657600080fd5b506040519080825280602002602001820160405280156143e0578160200160208202803683370190505b50945060005b81811015614480578260010181815481106143fd57fe5b9060005260206000200160009054906101000a90046001600160a01b031687828151811061442757fe5b60200260200101906001600160a01b031690816001600160a01b03168152505082600201818154811061445657fe5b906000526020600020015486828151811061446d57fe5b60209081029190910101526001016143e6565b50505050509250929050565b8154600090806144a0576000915050610d86565b43831015806144d257508360000160018203815481106144bc57fe5b9060005260206000209060020201600001548310155b15614503578360000160018203815481106144e957fe5b906000526020600020906002020160010154915050610d86565b6001840154845485908290811061451657fe5b90600052602060002090600202016000015484101561457757801561456c5760405162461bcd60e51b8152600401808060200182810382526030815260200180614f3d6030913960400191505060405180910390fd5b600092505050610d86565b6000614584868387614a60565b905085600001818154811061459557fe5b906000526020600020906002020160010154935050505092915050565b82546000908190806145c75760009250614687565b43841015806145f657508560018203815481106145e057fe5b9060005260206000209060030201600001548410155b1561460a5760019250600181039150614687565b85858154811061461657fe5b90600052602060002090600302016000015484101561467557841561466c5760405162461bcd60e51b8152600401808060200182810382526030815260200180614d4b6030913960400191505060405180910390fd5b60009250614687565b60019250614684868686614ad7565b91505b50935093915050565b6000828211156146e7576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b0382166000908152602084905260408120612105818461448c565b6000806000614726876000018860010154866145b2565b915091508161473a57600092505050611498565b600087600001828154811061474b57fe5b6000918252602082206002600390920201908101549195509150845b818110156147b1576147a76147a08a8a86600201858154811061478657fe5b906000526020600020015461334e9092919063ffffffff16565b8790612e22565b9550600101614767565b5050505050949350505050565b60008060006147d5866000018760010154866145b2565b91509150816147e957600092505050610db1565b60008660000182815481106147fa57fe5b600091825260208220600160039092020190810154909250905b8181101561487e57876001600160a01b031683600101828154811061483557fe5b6000918252602090912001546001600160a01b031614156148765782600201818154811061485f57fe5b906000526020600020015495505050505050610db1565b600101614814565b50600098975050505050505050565b600183015460005b81811080156148d05750836001600160a01b03168560010182815481106148b857fe5b6000918252602090912001546001600160a01b031614155b156148dd57600101614895565b8181101561491a57821561490c57828560020182815481106148fb57fe5b600091825260209091200155611a88565b611a88858260018503614b4e565b610f7a85858585614c48565b60018301546000805b828110156149ad57600086600101828154811061494857fe5b6000918252602090912001546001600160a01b039081169150861681141561497f5761497688828785614c48565b600192506149a4565b6149a4888289600201858154811061499357fe5b906000526020600020015485614c48565b5060010161492f565b508061309b5761309b86858585614c48565b60008060006149d6856000018660010154866145b2565b91509150816149ea57600092505050610d86565b60008560000182815481106149fb57fe5b6000918252602082206002600390920201908101549195509150845b81811015614a5557614a4b836002018281548110614a3157fe5b906000526020600020015487612e2290919063ffffffff16565b9550600101614a17565b505050505092915050565b825460009083908290614a74906001614690565b90505b81811115612a83576000614a95600261341360016124678688612e22565b905084878281548110614aa457fe5b90600052602060002090600202016000015411614ac357809250614ad1565b614ace816001614690565b91505b50614a77565b825460009083908290614aeb906001614690565b90505b81811115612a83576000614b0c600261341360016124678688612e22565b905084878281548110614b1b57fe5b90600052602060002090600302016000015411614b3a57809250614b48565b614b45816001614690565b91505b50614aee565b80821015614bf157826001018181548110614b6557fe5b6000918252602090912001546001840180546001600160a01b039092169184908110614b8d57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550826002018181548110614bca57fe5b9060005260206000200154836002018381548110614be457fe5b6000918252602090912001555b82600101805480614bfe57fe5b600082815260209020810160001990810180546001600160a01b031916905501905560028301805480614c2d57fe5b60019003818190600052602060002001600090559055505050565b81156117f95760408051808201909152601681527513585e0819195b1959d85d195cc8195e18d95959195960521b602082015260028210614cca5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109b357818101518382015260200161099b565b506001808501805480830182556000918252602080832090910180546001600160a01b0388166001600160a01b03199091161790556002870180549384018155825290200182905550505050565b5080546000825590600052602060002090810190610c5291905b80821115614d465760008155600101614d32565b509056fe44656c65676174696f6e486973746f72793a2072656164696e672066726f6d20636c65616e65642d757020626c6f636b436c65616e757020626c6f636b206d75737420626520696e207468652070617374756e64656c6567617465416c6c2063616e206f6e6c79206265207573656420696e2070657263656e746167652064656c65676174696f6e206d6f646545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365436c65616e757020626c6f636b206e756d626572206d757374206e65766572206465637265617365500599802164a08023e87ffc3eed0ba3ae60697b3083ba81d046683679d81c6b44656c6567617461626c653a2072656164696e672066726f6d20636c65616e65642d757020626c6f636b6f6e6c79206f776e65722c20676f7665726e616e6365206f7220636c65616e757020626c6f636b206d616e61676572756e64656c6567617465416c6c4578706c696369742063616e206f6e6c79206265207573656420696e206578706c696369742064656c65676174696f6e206d6f6465536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775265766f6b65206973206f6e6c7920666f722074686520706173742c2075736520756e64656c656761746520666f72207468652070726573656e74436865636b506f696e74486973746f72793a2072656164696e672066726f6d20636c65616e65642d757020626c6f636b64656c6567617465734f6620646f6573206e6f7420776f726b20696e20414d4f554e542064656c65676174696f6e206d6f6465a26469706673582212207dfe340d804cb429d67c1627137e0a590996197fb1fb54708c4e1c4175706c0d64736f6c63430007060033",
772
772
  "linkReferences": {},
773
773
  "deployedLinkReferences": {}
774
774
  }