@flarenetwork/flare-periphery-contract-artifacts 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) hide show
  1. package/coston/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  2. package/coston/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +2 -2
  3. package/coston/artifacts/contracts/inflation/interface/IIInflationReceiverV1.sol/IIInflationReceiverV1.json +57 -0
  4. package/coston/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +6 -19
  5. package/coston/artifacts/contracts/tokenPools/interface/IIFtsoRewardManager.sol/IIFtsoRewardManager.json +0 -13
  6. package/coston/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  7. package/coston2/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  8. package/coston2/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +2 -2
  9. package/coston2/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +2 -2
  10. package/coston2/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  11. package/coston2/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  12. package/coston2/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +2 -2
  13. package/coston2/artifacts/contracts/ftso/lib/FtsoManagerSettings.sol/FtsoManagerSettings.json +2 -2
  14. package/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +2 -2
  15. package/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  16. package/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +2 -2
  17. package/coston2/artifacts/contracts/ftso/priceProviderMockContracts/priceProviderMockFtso.sol/MockNpmFtso.json +2 -2
  18. package/coston2/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  19. package/coston2/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +2 -2
  20. package/coston2/artifacts/contracts/staking/implementation/AddressBinder.sol/AddressBinder.json +121 -0
  21. package/coston2/artifacts/contracts/staking/implementation/PChainStake.sol/PChainStake.json +512 -0
  22. package/coston2/artifacts/contracts/staking/implementation/PChainStakeMirror.sol/PChainStakeMirror.json +1299 -0
  23. package/coston2/artifacts/contracts/staking/implementation/PChainStakeMirrorMultiSigVoting.sol/PChainStakeMirrorMultiSigVoting.json +579 -0
  24. package/coston2/artifacts/contracts/staking/implementation/PChainStakeMirrorVerifier.sol/PChainStakeMirrorVerifier.json +168 -0
  25. package/coston2/artifacts/contracts/staking/interface/IIPChainStakeMirrorVerifier.sol/IIPChainStakeMirrorVerifier.json +72 -0
  26. package/coston2/artifacts/contracts/staking/lib/PChainStakeHistory.sol/PChainStakeHistory.json +24 -0
  27. package/coston2/artifacts/contracts/token/implementation/CombinedNat.sol/CombinedNat.json +128 -0
  28. package/coston2/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +20 -2
  29. package/coston2/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  30. package/coston2/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  31. package/coston2/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  32. package/coston2/artifacts/contracts/token/{lib → interface}/IICombinedNatBalance.sol/IICombinedNatBalance.json +33 -1
  33. package/coston2/artifacts/contracts/token/interface/IIGovernanceVotePower.sol/IIGovernanceVotePower.json +14 -1
  34. package/coston2/artifacts/contracts/tokenPools/implementation/AttestationProviderRewardManager.sol/AttestationProviderRewardManager.json +2 -2
  35. package/coston2/artifacts/contracts/tokenPools/implementation/DistributionToDelegators.sol/DistributionToDelegators.json +2 -2
  36. package/coston2/artifacts/contracts/tokenPools/implementation/Escrow.sol/Escrow.json +2 -2
  37. package/coston2/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  38. package/coston2/artifacts/contracts/tokenPools/implementation/ValidatorRewardManager.sol/ValidatorRewardManager.json +2 -2
  39. package/coston2/artifacts/contracts/userInterfaces/IAddressBinder.sol/IAddressBinder.json +121 -0
  40. package/coston2/artifacts/contracts/userInterfaces/IGovernanceVotePower.sol/IGovernanceVotePower.json +1 -1
  41. package/coston2/artifacts/contracts/userInterfaces/IPChainStakeMirror.sol/IPChainStakeMirror.json +575 -0
  42. package/coston2/artifacts/contracts/userInterfaces/IPChainStakeMirrorMultiSigVoting.sol/IPChainStakeMirrorMultiSigVoting.json +311 -0
  43. package/coston2/artifacts/contracts/userInterfaces/IPChainStakeMirrorVerifier.sol/IPChainStakeMirrorVerifier.json +10 -0
  44. package/coston2/artifacts/contracts/userInterfaces/IPChainVotePower.sol/IPChainVotePower.json +309 -0
  45. package/coston2/artifacts/contracts/utils/implementation/BytesLib.sol/BytesLib.json +10 -0
  46. package/coston2/artifacts/contracts/utils/implementation/FtsoRegistry.sol/FtsoRegistry.json +2 -2
  47. package/coston2/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  48. package/coston2/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +2 -2
  49. package/coston2/deploys/contracts.json +23 -3
  50. package/dist/coston/StateConnector/libs/ts/AttestationDefinitionStore.d.ts +68 -0
  51. package/dist/coston/StateConnector/libs/ts/AttestationDefinitionStore.d.ts.map +1 -0
  52. package/dist/coston/StateConnector/libs/ts/AttestationDefinitionStore.js +164 -0
  53. package/dist/coston/StateConnector/libs/ts/AttestationDefinitionStore.js.map +1 -0
  54. package/dist/coston/StateConnector/libs/ts/AttestationResponse.d.ts +33 -0
  55. package/dist/coston/StateConnector/libs/ts/AttestationResponse.d.ts.map +1 -0
  56. package/dist/coston/StateConnector/libs/ts/AttestationResponse.js +30 -0
  57. package/dist/coston/StateConnector/libs/ts/AttestationResponse.js.map +1 -0
  58. package/dist/coston/StateConnector/libs/ts/MerkleTree.d.ts +103 -0
  59. package/dist/coston/StateConnector/libs/ts/MerkleTree.d.ts.map +1 -0
  60. package/dist/coston/StateConnector/libs/ts/MerkleTree.js +212 -0
  61. package/dist/coston/StateConnector/libs/ts/MerkleTree.js.map +1 -0
  62. package/dist/coston/StateConnector/libs/ts/config-types.d.ts +143 -0
  63. package/dist/coston/StateConnector/libs/ts/config-types.d.ts.map +1 -0
  64. package/dist/coston/StateConnector/libs/ts/config-types.js +3 -0
  65. package/dist/coston/StateConnector/libs/ts/config-types.js.map +1 -0
  66. package/dist/coston/StateConnector/libs/ts/interfaces.d.ts +32 -0
  67. package/dist/coston/StateConnector/libs/ts/interfaces.d.ts.map +1 -0
  68. package/dist/coston/StateConnector/libs/ts/interfaces.js +3 -0
  69. package/dist/coston/StateConnector/libs/ts/interfaces.js.map +1 -0
  70. package/dist/coston/StateConnector/libs/ts/random.d.ts +9 -0
  71. package/dist/coston/StateConnector/libs/ts/random.d.ts.map +1 -0
  72. package/dist/coston/StateConnector/libs/ts/random.js +70 -0
  73. package/dist/coston/StateConnector/libs/ts/random.js.map +1 -0
  74. package/dist/coston/StateConnector/libs/ts/utils.d.ts +73 -0
  75. package/dist/coston/StateConnector/libs/ts/utils.d.ts.map +1 -0
  76. package/dist/coston/StateConnector/libs/ts/utils.js +282 -0
  77. package/dist/coston/StateConnector/libs/ts/utils.js.map +1 -0
  78. package/dist/coston/StateConnector/typescript/AddressValidity.d.ts +91 -0
  79. package/dist/coston/StateConnector/typescript/AddressValidity.d.ts.map +1 -0
  80. package/dist/coston/StateConnector/typescript/AddressValidity.js +9 -0
  81. package/dist/coston/StateConnector/typescript/AddressValidity.js.map +1 -0
  82. package/dist/coston/StateConnector/typescript/BalanceDecreasingTransaction.d.ts +107 -0
  83. package/dist/coston/StateConnector/typescript/BalanceDecreasingTransaction.d.ts.map +1 -0
  84. package/dist/coston/StateConnector/typescript/BalanceDecreasingTransaction.js +9 -0
  85. package/dist/coston/StateConnector/typescript/BalanceDecreasingTransaction.js.map +1 -0
  86. package/dist/coston/StateConnector/typescript/ConfirmedBlockHeightExists.d.ts +103 -0
  87. package/dist/coston/StateConnector/typescript/ConfirmedBlockHeightExists.d.ts.map +1 -0
  88. package/dist/coston/StateConnector/typescript/ConfirmedBlockHeightExists.js +9 -0
  89. package/dist/coston/StateConnector/typescript/ConfirmedBlockHeightExists.js.map +1 -0
  90. package/dist/coston/StateConnector/typescript/EVMTransaction.d.ts +160 -0
  91. package/dist/coston/StateConnector/typescript/EVMTransaction.d.ts.map +1 -0
  92. package/dist/coston/StateConnector/typescript/EVMTransaction.js +9 -0
  93. package/dist/coston/StateConnector/typescript/EVMTransaction.js.map +1 -0
  94. package/dist/coston/StateConnector/typescript/Payment.d.ts +139 -0
  95. package/dist/coston/StateConnector/typescript/Payment.d.ts.map +1 -0
  96. package/dist/coston/StateConnector/typescript/Payment.js +9 -0
  97. package/dist/coston/StateConnector/typescript/Payment.js.map +1 -0
  98. package/dist/coston/StateConnector/typescript/ReferencedPaymentNonexistence.d.ts +115 -0
  99. package/dist/coston/StateConnector/typescript/ReferencedPaymentNonexistence.d.ts.map +1 -0
  100. package/dist/coston/StateConnector/typescript/ReferencedPaymentNonexistence.js +9 -0
  101. package/dist/coston/StateConnector/typescript/ReferencedPaymentNonexistence.js.map +1 -0
  102. package/dist/coston/StateConnector/typescript/TypeTemplate.d.ts +146 -0
  103. package/dist/coston/StateConnector/typescript/TypeTemplate.d.ts.map +1 -0
  104. package/dist/coston/StateConnector/typescript/TypeTemplate.js +9 -0
  105. package/dist/coston/StateConnector/typescript/TypeTemplate.js.map +1 -0
  106. package/dist/coston/StateConnector/typescript/data-sources/data-sources.d.ts +29 -0
  107. package/dist/coston/StateConnector/typescript/data-sources/data-sources.d.ts.map +1 -0
  108. package/dist/coston/StateConnector/typescript/data-sources/data-sources.js +33 -0
  109. package/dist/coston/StateConnector/typescript/data-sources/data-sources.js.map +1 -0
  110. package/dist/coston/StateConnector/typescript/index.d.ts +9 -0
  111. package/dist/coston/StateConnector/typescript/index.d.ts.map +1 -0
  112. package/dist/coston/StateConnector/typescript/index.js +25 -0
  113. package/dist/coston/StateConnector/typescript/index.js.map +1 -0
  114. package/dist/coston/abis.d.ts.map +1 -1
  115. package/dist/coston/abis.js +2 -0
  116. package/dist/coston/abis.js.map +1 -1
  117. package/dist/coston/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  118. package/dist/coston/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +2 -2
  119. package/dist/coston/artifacts/contracts/inflation/interface/IIInflationReceiverV1.sol/IIInflationReceiverV1.json +57 -0
  120. package/dist/coston/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +6 -19
  121. package/dist/coston/artifacts/contracts/tokenPools/interface/IIFtsoRewardManager.sol/IIFtsoRewardManager.json +0 -13
  122. package/dist/coston/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  123. package/dist/coston/deploys/mapper.js.map +1 -1
  124. package/dist/coston2/abis.d.ts.map +1 -1
  125. package/dist/coston2/abis.js +20 -2
  126. package/dist/coston2/abis.js.map +1 -1
  127. package/dist/coston2/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  128. package/dist/coston2/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +2 -2
  129. package/dist/coston2/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +2 -2
  130. package/dist/coston2/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  131. package/dist/coston2/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  132. package/dist/coston2/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +2 -2
  133. package/dist/coston2/artifacts/contracts/ftso/lib/FtsoManagerSettings.sol/FtsoManagerSettings.json +2 -2
  134. package/dist/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +2 -2
  135. package/dist/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  136. package/dist/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +2 -2
  137. package/dist/coston2/artifacts/contracts/ftso/priceProviderMockContracts/priceProviderMockFtso.sol/MockNpmFtso.json +2 -2
  138. package/dist/coston2/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  139. package/dist/coston2/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +2 -2
  140. package/dist/coston2/artifacts/contracts/staking/implementation/AddressBinder.sol/AddressBinder.json +121 -0
  141. package/dist/coston2/artifacts/contracts/staking/implementation/PChainStake.sol/PChainStake.json +512 -0
  142. package/dist/coston2/artifacts/contracts/staking/implementation/PChainStakeMirror.sol/PChainStakeMirror.json +1299 -0
  143. package/dist/coston2/artifacts/contracts/staking/implementation/PChainStakeMirrorMultiSigVoting.sol/PChainStakeMirrorMultiSigVoting.json +579 -0
  144. package/dist/coston2/artifacts/contracts/staking/implementation/PChainStakeMirrorVerifier.sol/PChainStakeMirrorVerifier.json +168 -0
  145. package/dist/coston2/artifacts/contracts/staking/interface/IIPChainStakeMirrorVerifier.sol/IIPChainStakeMirrorVerifier.json +72 -0
  146. package/dist/coston2/artifacts/contracts/staking/lib/PChainStakeHistory.sol/PChainStakeHistory.json +24 -0
  147. package/dist/coston2/artifacts/contracts/token/implementation/CombinedNat.sol/CombinedNat.json +128 -0
  148. package/dist/coston2/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +20 -2
  149. package/dist/coston2/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  150. package/dist/coston2/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  151. package/dist/coston2/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  152. package/dist/coston2/artifacts/contracts/token/{lib → interface}/IICombinedNatBalance.sol/IICombinedNatBalance.json +33 -1
  153. package/dist/coston2/artifacts/contracts/token/interface/IIGovernanceVotePower.sol/IIGovernanceVotePower.json +14 -1
  154. package/dist/coston2/artifacts/contracts/tokenPools/implementation/AttestationProviderRewardManager.sol/AttestationProviderRewardManager.json +2 -2
  155. package/dist/coston2/artifacts/contracts/tokenPools/implementation/DistributionToDelegators.sol/DistributionToDelegators.json +2 -2
  156. package/dist/coston2/artifacts/contracts/tokenPools/implementation/Escrow.sol/Escrow.json +2 -2
  157. package/dist/coston2/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  158. package/dist/coston2/artifacts/contracts/tokenPools/implementation/ValidatorRewardManager.sol/ValidatorRewardManager.json +2 -2
  159. package/dist/coston2/artifacts/contracts/utils/implementation/BytesLib.sol/BytesLib.json +10 -0
  160. package/dist/coston2/artifacts/contracts/utils/implementation/FtsoRegistry.sol/FtsoRegistry.json +2 -2
  161. package/dist/coston2/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  162. package/dist/coston2/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +2 -2
  163. package/dist/coston2/deploys/addresses.d.ts +4 -0
  164. package/dist/coston2/deploys/addresses.d.ts.map +1 -1
  165. package/dist/coston2/deploys/addresses.js +6 -2
  166. package/dist/coston2/deploys/addresses.js.map +1 -1
  167. package/dist/coston2/deploys/contracts.json +23 -3
  168. package/dist/coston2/deploys/mapper.js.map +1 -1
  169. package/dist/flare/abis.d.ts.map +1 -1
  170. package/dist/flare/abis.js +20 -2
  171. package/dist/flare/abis.js.map +1 -1
  172. package/dist/flare/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  173. package/dist/flare/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +2 -2
  174. package/dist/flare/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +2 -2
  175. package/dist/flare/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  176. package/dist/flare/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  177. package/dist/flare/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +2 -2
  178. package/dist/flare/artifacts/contracts/ftso/lib/FtsoManagerSettings.sol/FtsoManagerSettings.json +2 -2
  179. package/dist/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +2 -2
  180. package/dist/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  181. package/dist/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +2 -2
  182. package/dist/flare/artifacts/contracts/ftso/priceProviderMockContracts/priceProviderMockFtso.sol/MockNpmFtso.json +2 -2
  183. package/dist/flare/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  184. package/dist/flare/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +2 -2
  185. package/dist/flare/artifacts/contracts/staking/implementation/AddressBinder.sol/AddressBinder.json +121 -0
  186. package/dist/flare/artifacts/contracts/staking/implementation/PChainStake.sol/PChainStake.json +512 -0
  187. package/dist/flare/artifacts/contracts/staking/implementation/PChainStakeMirror.sol/PChainStakeMirror.json +1299 -0
  188. package/dist/flare/artifacts/contracts/staking/implementation/PChainStakeMirrorMultiSigVoting.sol/PChainStakeMirrorMultiSigVoting.json +579 -0
  189. package/dist/flare/artifacts/contracts/staking/implementation/PChainStakeMirrorVerifier.sol/PChainStakeMirrorVerifier.json +168 -0
  190. package/dist/flare/artifacts/contracts/staking/interface/IIPChainStakeMirrorVerifier.sol/IIPChainStakeMirrorVerifier.json +72 -0
  191. package/dist/flare/artifacts/contracts/staking/lib/PChainStakeHistory.sol/PChainStakeHistory.json +24 -0
  192. package/dist/flare/artifacts/contracts/token/implementation/CombinedNat.sol/CombinedNat.json +128 -0
  193. package/dist/flare/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +20 -2
  194. package/dist/flare/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  195. package/dist/flare/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  196. package/dist/flare/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  197. package/dist/flare/artifacts/contracts/token/{lib → interface}/IICombinedNatBalance.sol/IICombinedNatBalance.json +33 -1
  198. package/dist/flare/artifacts/contracts/token/interface/IIGovernanceVotePower.sol/IIGovernanceVotePower.json +14 -1
  199. package/dist/flare/artifacts/contracts/tokenPools/implementation/AttestationProviderRewardManager.sol/AttestationProviderRewardManager.json +2 -2
  200. package/dist/flare/artifacts/contracts/tokenPools/implementation/DistributionToDelegators.sol/DistributionToDelegators.json +2 -2
  201. package/dist/flare/artifacts/contracts/tokenPools/implementation/Escrow.sol/Escrow.json +2 -2
  202. package/dist/flare/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  203. package/dist/flare/artifacts/contracts/tokenPools/implementation/ValidatorRewardManager.sol/ValidatorRewardManager.json +2 -2
  204. package/dist/flare/artifacts/contracts/utils/implementation/BytesLib.sol/BytesLib.json +10 -0
  205. package/dist/flare/artifacts/contracts/utils/implementation/FtsoRegistry.sol/FtsoRegistry.json +2 -2
  206. package/dist/flare/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  207. package/dist/flare/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +2 -2
  208. package/dist/flare/deploys/addresses.d.ts +4 -0
  209. package/dist/flare/deploys/addresses.d.ts.map +1 -1
  210. package/dist/flare/deploys/addresses.js +6 -2
  211. package/dist/flare/deploys/addresses.js.map +1 -1
  212. package/dist/flare/deploys/contracts.json +23 -3
  213. package/dist/flare/deploys/mapper.js.map +1 -1
  214. package/dist/songbird/abis.d.ts.map +1 -1
  215. package/dist/songbird/abis.js +20 -14
  216. package/dist/songbird/abis.js.map +1 -1
  217. package/dist/songbird/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  218. package/dist/songbird/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  219. package/dist/songbird/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  220. package/dist/songbird/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +2 -2
  221. package/dist/songbird/artifacts/contracts/inflation/implementation/Inflation.sol/Inflation.json +273 -298
  222. package/dist/songbird/artifacts/contracts/inflation/implementation/InflationAllocation.sol/InflationAllocation.json +463 -0
  223. package/dist/songbird/artifacts/contracts/inflation/implementation/SelfDestructBurner.sol/SelfDestructBurner.json +73 -0
  224. package/dist/songbird/artifacts/contracts/inflation/implementation/Supply.sol/Supply.json +290 -51
  225. package/dist/songbird/artifacts/contracts/inflation/interface/{IIInflationSharingPercentageProvider.sol/IIInflationSharingPercentageProvider.json → IIInflationAllocation.sol/IIInflationAllocation.json} +15 -2
  226. package/dist/songbird/artifacts/contracts/inflation/interface/IIInflationReceiver.sol/IIInflationReceiver.json +26 -0
  227. package/dist/songbird/artifacts/contracts/inflation/interface/IIInflationReceiverV1.sol/IIInflationReceiverV1.json +57 -0
  228. package/dist/songbird/artifacts/contracts/inflation/interface/IIInflationV1.sol/IIInflationV1.json +142 -0
  229. package/dist/songbird/artifacts/contracts/inflation/interface/IIPreInflationCalculation.sol/IIPreInflationCalculation.json +18 -0
  230. package/dist/songbird/artifacts/contracts/inflation/interface/IISupply.sol/IISupply.json +6 -12
  231. package/dist/songbird/artifacts/contracts/inflation/lib/{RewardServices.sol/RewardServices.json → InflationRewardServices.sol/InflationRewardServices.json} +25 -6
  232. package/dist/songbird/artifacts/contracts/inflation/lib/InflationTimeSlots.sol/InflationTimeSlots.json +10 -0
  233. package/dist/songbird/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  234. package/dist/songbird/artifacts/contracts/tokenPools/implementation/InflationReceiver.sol/InflationReceiver.json +127 -0
  235. package/dist/songbird/artifacts/contracts/tokenPools/implementation/TokenPoolBase.sol/TokenPoolBase.json +10 -0
  236. package/dist/songbird/artifacts/contracts/tokenPools/interface/IIFtsoRewardManager.sol/IIFtsoRewardManager.json +13 -0
  237. package/dist/songbird/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  238. package/dist/songbird/deploys/addresses.js +3 -3
  239. package/dist/songbird/deploys/contracts.json +3 -3
  240. package/dist/songbird/deploys/mapper.js.map +1 -1
  241. package/flare/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  242. package/flare/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +2 -2
  243. package/flare/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +2 -2
  244. package/flare/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  245. package/flare/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  246. package/flare/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +2 -2
  247. package/flare/artifacts/contracts/ftso/lib/FtsoManagerSettings.sol/FtsoManagerSettings.json +2 -2
  248. package/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +2 -2
  249. package/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  250. package/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +2 -2
  251. package/flare/artifacts/contracts/ftso/priceProviderMockContracts/priceProviderMockFtso.sol/MockNpmFtso.json +2 -2
  252. package/flare/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  253. package/flare/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +2 -2
  254. package/flare/artifacts/contracts/staking/implementation/AddressBinder.sol/AddressBinder.json +121 -0
  255. package/flare/artifacts/contracts/staking/implementation/PChainStake.sol/PChainStake.json +512 -0
  256. package/flare/artifacts/contracts/staking/implementation/PChainStakeMirror.sol/PChainStakeMirror.json +1299 -0
  257. package/flare/artifacts/contracts/staking/implementation/PChainStakeMirrorMultiSigVoting.sol/PChainStakeMirrorMultiSigVoting.json +579 -0
  258. package/flare/artifacts/contracts/staking/implementation/PChainStakeMirrorVerifier.sol/PChainStakeMirrorVerifier.json +168 -0
  259. package/flare/artifacts/contracts/staking/interface/IIPChainStakeMirrorVerifier.sol/IIPChainStakeMirrorVerifier.json +72 -0
  260. package/flare/artifacts/contracts/staking/lib/PChainStakeHistory.sol/PChainStakeHistory.json +24 -0
  261. package/flare/artifacts/contracts/token/implementation/CombinedNat.sol/CombinedNat.json +128 -0
  262. package/flare/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +20 -2
  263. package/flare/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  264. package/flare/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  265. package/flare/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  266. package/flare/artifacts/contracts/token/{lib → interface}/IICombinedNatBalance.sol/IICombinedNatBalance.json +33 -1
  267. package/flare/artifacts/contracts/token/interface/IIGovernanceVotePower.sol/IIGovernanceVotePower.json +14 -1
  268. package/flare/artifacts/contracts/tokenPools/implementation/AttestationProviderRewardManager.sol/AttestationProviderRewardManager.json +2 -2
  269. package/flare/artifacts/contracts/tokenPools/implementation/DistributionToDelegators.sol/DistributionToDelegators.json +2 -2
  270. package/flare/artifacts/contracts/tokenPools/implementation/Escrow.sol/Escrow.json +2 -2
  271. package/flare/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  272. package/flare/artifacts/contracts/tokenPools/implementation/ValidatorRewardManager.sol/ValidatorRewardManager.json +2 -2
  273. package/flare/artifacts/contracts/userInterfaces/IAddressBinder.sol/IAddressBinder.json +121 -0
  274. package/flare/artifacts/contracts/userInterfaces/IGovernanceVotePower.sol/IGovernanceVotePower.json +1 -1
  275. package/flare/artifacts/contracts/userInterfaces/IPChainStakeMirror.sol/IPChainStakeMirror.json +575 -0
  276. package/flare/artifacts/contracts/userInterfaces/IPChainStakeMirrorMultiSigVoting.sol/IPChainStakeMirrorMultiSigVoting.json +311 -0
  277. package/flare/artifacts/contracts/userInterfaces/IPChainStakeMirrorVerifier.sol/IPChainStakeMirrorVerifier.json +10 -0
  278. package/flare/artifacts/contracts/userInterfaces/IPChainVotePower.sol/IPChainVotePower.json +309 -0
  279. package/flare/artifacts/contracts/utils/implementation/BytesLib.sol/BytesLib.json +10 -0
  280. package/flare/artifacts/contracts/utils/implementation/FtsoRegistry.sol/FtsoRegistry.json +2 -2
  281. package/flare/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  282. package/flare/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +2 -2
  283. package/flare/deploys/contracts.json +23 -3
  284. package/package.json +3 -2
  285. package/songbird/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  286. package/songbird/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  287. package/songbird/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  288. package/songbird/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +2 -2
  289. package/songbird/artifacts/contracts/inflation/implementation/Inflation.sol/Inflation.json +273 -298
  290. package/songbird/artifacts/contracts/inflation/implementation/InflationAllocation.sol/InflationAllocation.json +463 -0
  291. package/songbird/artifacts/contracts/inflation/implementation/SelfDestructBurner.sol/SelfDestructBurner.json +73 -0
  292. package/songbird/artifacts/contracts/inflation/implementation/Supply.sol/Supply.json +290 -51
  293. package/songbird/artifacts/contracts/inflation/interface/{IIInflationSharingPercentageProvider.sol/IIInflationSharingPercentageProvider.json → IIInflationAllocation.sol/IIInflationAllocation.json} +15 -2
  294. package/songbird/artifacts/contracts/inflation/interface/IIInflationReceiver.sol/IIInflationReceiver.json +26 -0
  295. package/songbird/artifacts/contracts/inflation/interface/IIInflationReceiverV1.sol/IIInflationReceiverV1.json +57 -0
  296. package/songbird/artifacts/contracts/inflation/interface/IIInflationV1.sol/IIInflationV1.json +142 -0
  297. package/songbird/artifacts/contracts/inflation/interface/IIPreInflationCalculation.sol/IIPreInflationCalculation.json +18 -0
  298. package/songbird/artifacts/contracts/inflation/interface/IISupply.sol/IISupply.json +6 -12
  299. package/songbird/artifacts/contracts/inflation/lib/{RewardServices.sol/RewardServices.json → InflationRewardServices.sol/InflationRewardServices.json} +25 -6
  300. package/songbird/artifacts/contracts/inflation/lib/InflationTimeSlots.sol/InflationTimeSlots.json +10 -0
  301. package/songbird/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  302. package/songbird/artifacts/contracts/tokenPools/implementation/InflationReceiver.sol/InflationReceiver.json +127 -0
  303. package/songbird/artifacts/contracts/tokenPools/implementation/TokenPoolBase.sol/TokenPoolBase.json +10 -0
  304. package/songbird/artifacts/contracts/tokenPools/interface/IIFtsoRewardManager.sol/IIFtsoRewardManager.json +13 -0
  305. package/songbird/artifacts/contracts/userInterfaces/IGenericRewardManager.sol/IGenericRewardManager.json +248 -0
  306. package/songbird/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  307. package/songbird/deploys/contracts.json +3 -3
  308. package/dist/songbird/artifacts/contracts/governance/implementation/InflationAllocation.sol/InflationAllocation.json +0 -351
  309. package/dist/songbird/artifacts/contracts/inflation/interface/IIInflationPercentageProvider.sol/IIInflationPercentageProvider.json +0 -24
  310. package/dist/songbird/artifacts/contracts/inflation/lib/InflationAnnum.sol/InflationAnnum.json +0 -10
  311. package/dist/songbird/artifacts/contracts/inflation/lib/InflationAnnums.sol/InflationAnnums.json +0 -10
  312. package/dist/songbird/artifacts/contracts/inflation/lib/RewardService.sol/RewardService.json +0 -30
  313. package/songbird/artifacts/contracts/governance/implementation/InflationAllocation.sol/InflationAllocation.json +0 -351
  314. package/songbird/artifacts/contracts/inflation/interface/IIInflationPercentageProvider.sol/IIInflationPercentageProvider.json +0 -24
  315. package/songbird/artifacts/contracts/inflation/lib/InflationAnnum.sol/InflationAnnum.json +0 -10
  316. package/songbird/artifacts/contracts/inflation/lib/InflationAnnums.sol/InflationAnnums.json +0 -10
  317. package/songbird/artifacts/contracts/inflation/lib/RewardService.sol/RewardService.json +0 -30
@@ -331,8 +331,8 @@
331
331
  "type": "function"
332
332
  }
333
333
  ],
334
- "bytecode": "0x60806040523480156200001157600080fd5b506040516200674d3803806200674d8339810160408190526200003491620004b9565b8062000040816200046b565b503060405162000050906200048f565b6200005c919062000550565b604051809103906000f08015801562000079573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b03929092169190911790556040513090620000aa906200049d565b620000b6919062000550565b604051809103906000f080158015620000d3573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b0392831617908190556000546040516317f1580560e21b815291831692635fc56014926200011e929091169060040162000550565b600060405180830381600087803b1580156200013957600080fd5b505af11580156200014e573d6000803e3d6000fd5b50506040805161018081018252600361014082018181526229a3a160e91b6101608401528252825180840184528181526205852560ec1b6020828101919091528084019190915283518085018552828152624c544360e81b81830152838501528351808501855282815262584c4d60e81b818301526060840152835180850185528281526258444760e81b818301526080840152835180850185528281526241444160e81b8183015260a0840152835180850185526004815263414c474f60e01b8183015260c0840152835180850185528281526208486960eb1b8183015260e084015283518085018552828152622223a160e91b8183015261010084015283518085019094529083526242544360e81b908301526101208101919091529150600090505b600a811015620004625760008282600a81106200028c57fe5b6020020151905060008130607842036078601e604051620002ad90620004ab565b620002bd95949392919062000579565b604051809103906000f080158015620002da573d6000803e3d6000fd5b50600054604051630998fc6d60e21b81529192506001600160a01b031690632663f1b4906200030e90849060040162000550565b602060405180830381600087803b1580156200032957600080fd5b505af11580156200033e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003649190620004e9565b5060008054604051630e848da360e41b81526001600160a01b039091169063e848da30906200039890869060040162000564565b60206040518083038186803b158015620003b157600080fd5b505afa158015620003c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ec9190620004e9565b600154604051630d15c16960e21b81529192506001600160a01b03169063345705a4906200041f908490600401620005bb565b600060405180830381600087803b1580156200043a57600080fd5b505af11580156200044f573d6000803e3d6000fd5b5050505050505080600101905062000273565b505050620005c4565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b612beb8062001b0583390190565b610c7580620046f083390190565b6113e8806200536583390190565b600060208284031215620004cb578081fd5b81516001600160a01b0381168114620004e2578182fd5b9392505050565b600060208284031215620004fb578081fd5b5051919050565b60008151808452815b8181101562000529576020818501810151868301820152016200050b565b818111156200053b5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b600060208252620004e2602083018462000502565b600060a082526200058e60a083018862000502565b6001600160a01b039690961660208301525060408101939093526060830191909152608090910152919050565b90815260200190565b61153180620005d46000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80639d986f9111610097578063c0156bcc11610066578063c0156bcc146101b9578063cd4b6914146101c1578063d89601fd146101d4578063e2db5a52146101dc576100f5565b80639d986f9114610178578063aea36b531461018b578063b00c0b761461019e578063b39c6858146101b1576100f5565b806376794efb116100d357806376794efb146101355780637ac420ad1461014a5780638c9d28b61461015d5780638fc6f66714610165576100f5565b80633b56f098146100fa5780635267a15d1461011857806371e1fad91461012d575b600080fd5b6101026101ef565b60405161010f91906113d5565b60405180910390f35b6101206101f7565b60405161010f91906112af565b61012061021c565b610148610143366004611003565b61022c565b005b610102610158366004610fb5565b6102e8565b610120610303565b610148610173366004611254565b610312565b610148610186366004610fd8565b610573565b610148610199366004610fb5565b6105f5565b6101486101ac366004611046565b610658565b610120610703565b61010261071d565b6101026101cf3660046111b2565b610722565b61010261073c565b6101486101ea3660046111e2565b610861565b600160801b81565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b6001546001600160a01b03165b90565b600154604080518082019091526016815275566f7465722077686974656c6973746572206f6e6c7960501b6020820152906001600160a01b0316331461028e5760405162461bcd60e51b815260040161028591906113de565b60405180910390fd5b5060005b82518110156102e357816001901b19600260008584815181106102b157fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002080549091169055600101610292565b505050565b6001600160a01b031660009081526002602052604090205490565b6000546001600160a01b031690565b6000805460405163d75f6d8160e01b81526001600160a01b039091169063d75f6d81906103439084906004016113d5565b60206040518083038186803b15801561035b57600080fd5b505afa15801561036f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103939190611196565b9050806001600160a01b031663a29a839f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156103ce57600080fd5b505afa1580156103e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040691906111ca565b83146040518060400160405280600e81526020016d15dc9bdb99c8195c1bd8da081a5960921b8152509061044d5760405162461bcd60e51b815260040161028591906113de565b506000838152600360209081526040808320338452825291829020548251808401909352601983527f4475706c6963617465207375626d697420696e2065706f63680000000000000091830191909152156104bb5760405162461bcd60e51b815260040161028591906113de565b5033600090815260026020908152604091829020548251808401909352600f83526e139bdd081dda1a5d195b1a5cdd1959608a1b918301919091526105135760405162461bcd60e51b815260040161028591906113de565b5060008381526003602090815260408083203380855292529182902084905590518491907f5e2f64e70eafef31c2f48c8ef140b36406531c36ab0faaede30843202c16f6a89061056690869042906113c7565b60405180910390a3505050565b600154604080518082019091526016815275566f7465722077686974656c6973746572206f6e6c7960501b6020820152906001600160a01b031633146105cc5760405162461bcd60e51b815260040161028591906113de565b506001600160a01b0390911660009081526002602052604090208054600190921b919091179055565b60006105ff6101f7565b6001600160a01b0316146040518060400160405280600b81526020016a105b1c9958591e481cd95d60aa1b8152509061064b5760405162461bcd60e51b815260040161028591906113de565b5061065581610cea565b50565b6106606101f7565b6001600160a01b0316336001600160a01b0316146106bc576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b6106f56106f083836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250610d0e565b610cea565b6106ff8282610e3b565b5050565b600060405162461bcd60e51b815260040161028590611431565b606481565b60006004606483066064811061073457fe5b015492915050565b6000805460405163d75f6d8160e01b815282916001600160a01b03169063d75f6d819061076d9084906004016113d5565b60206040518083038186803b15801561078557600080fd5b505afa158015610799573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bd9190611196565b90506000816001600160a01b031663a29a839f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156107fa57600080fd5b505afa15801561080e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083291906111ca565b90508061084457600092505050610229565b600460646000198301066064811061085857fe5b01549250505090565b8251825160408051808201909152601a81527f4172726179206c656e6774687320646f206e6f74206d6174636800000000000060208201529082146108b95760405162461bcd60e51b815260040161028591906113de565b5060408051808201909152601781527f546f6f20736d616c6c2072616e646f6d206e756d6265720000000000000000006020820152600160801b8310156109135760405162461bcd60e51b815260040161028591906113de565b508383833360405160200161092b9493929190611380565b60408051601f19818403018152828252805160209182012060008981526003835283812033825283528390205460608501909352602380855292149291906114d9908301399061098e5760405162461bcd60e51b815260040161028591906113de565b50600080546040516313968ea760e31b81526001600160a01b0390911690639cb47538906109c090889060040161136d565b60006040518083038186803b1580156109d857600080fd5b505afa1580156109ec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a1491908101906110fd565b3360009081526002602052604081205491925083610a33576000610ac7565b82600081518110610a4057fe5b60200260200101516001600160a01b031663f72cab28338a6040518363ffffffff1660e01b8152600401610a759291906112c3565b602060405180830381600087803b158015610a8f57600080fd5b505af1158015610aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac791906111ca565b90506000805b85811015610c3f578015801590610af75750888181518110610aeb57fe5b60200260200101518210155b15610b4757604080518082018252601b81527f4654534f20696e6469636573206e6f7420696e6372656173696e6700000000006020820152905162461bcd60e51b815261028591906004016113de565b888181518110610b5357fe5b60200260200101519150816001901b841660001415610ba957604080518082018252600f81526e139bdd081dda1a5d195b1a5cdd1959608a1b6020820152905162461bcd60e51b815261028591906004016113de565b848181518110610bb557fe5b60200260200101516001600160a01b031663c1f6c36e338c8b8581518110610bd957fe5b6020026020010151876040518563ffffffff1660e01b8152600401610c0194939291906112dc565b600060405180830381600087803b158015610c1b57600080fd5b505af1158015610c2f573d6000803e3d6000fd5b505060019092019150610acd9050565b5060008981526003602090815260408083203384528252808320929092559051610c6d9188918a9101611460565b60408051601f198184030181529190528051602090910120600460648b0660648110610c9557fe5b0180549091019055604051899033907fafffa539ac1cad89751c875d871abadc6deb7bd51bf6baea004fc71ca0a48fa590610cd79088908c908c904290611302565b60405180910390a3505050505050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015610d52578181015183820152602001610d3a565b50505050905090810190601f168015610d7f5780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b8651811015610de757868181518110610db557fe5b6020026020010151831415610ddf57858181518110610dd057fe5b60200260200101519150610de7565b600101610da0565b506001600160a01b038116610e32576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b610e6a82826040518060400160405280600c81526020016b4674736f526567697374727960a01b815250610d0e565b6000806101000a8154816001600160a01b0302191690836001600160a01b03160217905550610ec282826040518060400160405280601081526020016f2b37ba32b92bb434ba32b634b9ba32b960811b815250610d0e565b600180546001600160a01b0319166001600160a01b03929092169190911790555050565b600082601f830112610ef6578081fd5b81356020610f0b610f06836114a5565b611481565b8281528181019085830183850287018401881015610f27578586fd5b855b85811015610f4e578135610f3c816114c3565b84529284019290840190600101610f29565b5090979650505050505050565b600082601f830112610f6b578081fd5b81356020610f7b610f06836114a5565b8281528181019085830183850287018401881015610f97578586fd5b855b85811015610f4e57813584529284019290840190600101610f99565b600060208284031215610fc6578081fd5b8135610fd1816114c3565b9392505050565b60008060408385031215610fea578081fd5b8235610ff5816114c3565b946020939093013593505050565b60008060408385031215611015578182fd5b823567ffffffffffffffff81111561102b578283fd5b61103785828601610ee6565b95602094909401359450505050565b60008060408385031215611058578182fd5b823567ffffffffffffffff8082111561106f578384fd5b818501915085601f830112611082578384fd5b81356020611092610f06836114a5565b82815281810190858301838502870184018b10156110ae578889fd5b8896505b848710156110d05780358352600196909601959183019183016110b2565b50965050860135925050808211156110e6578283fd5b506110f385828601610ee6565b9150509250929050565b6000602080838503121561110f578182fd5b825167ffffffffffffffff811115611125578283fd5b8301601f81018513611135578283fd5b8051611143610f06826114a5565b818152838101908385018584028501860189101561115f578687fd5b8694505b8385101561118a578051611176816114c3565b835260019490940193918501918501611163565b50979650505050505050565b6000602082840312156111a7578081fd5b8151610fd1816114c3565b6000602082840312156111c3578081fd5b5035919050565b6000602082840312156111db578081fd5b5051919050565b600080600080608085870312156111f7578182fd5b84359350602085013567ffffffffffffffff80821115611215578384fd5b61122188838901610f5b565b94506040870135915080821115611236578384fd5b5061124387828801610f5b565b949793965093946060013593505050565b60008060408385031215611266578182fd5b50508035926020909101359150565b6000815180845260208085019450808401835b838110156112a457815187529582019590820190600101611288565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b6080808252855190820181905260009060209060a0840190828901845b828110156113445781516001600160a01b03168452928401929084019060010161131f565b505050838103828501526113588188611275565b60408501969096525050506060015292915050565b600060208252610fd16020830184611275565b6000608082526113936080830187611275565b82810360208401526113a58187611275565b604084019590955250506001600160a01b039190911660609091015292915050565b918252602082015260400190565b90815260200190565b6000602080835283518082850152825b8181101561140a578581018301518582016040015282016113ee565b8181111561141b5783604083870101525b50601f01601f1916929092016040019392505050565b602080825260159082015274139bdd081a5b88191d5b5b5e4818dbdb9d1c9858dd605a1b604082015260600190565b6000838252604060208301526114796040830184611275565b949350505050565b60405181810167ffffffffffffffff8111828210171561149d57fe5b604052919050565b600067ffffffffffffffff8211156114b957fe5b5060209081020190565b6001600160a01b038116811461065557600080fdfe507269636520616c72656164792072657665616c6564206f72206e6f742076616c6964a2646970667358221220dc84168a528db8f048f0073b1b69ab8a806f2d5af413f445245cbaafbe1bfa0d64736f6c6343000706003360806040523480156200001157600080fd5b5060405162002beb38038062002beb83398101604081905262000034916200016c565b80806001600160a01b0381161562000051576200005181620000a9565b506001600160a01b038116620000a1576040805162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b604482015290519081900360640190fd5b50506200019c565b600054600160a01b900460ff161562000109576040805162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c7365000000000000000000000000604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b6000602082840312156200017e578081fd5b81516001600160a01b038116811462000195578182fd5b9392505050565b612a3f80620001ac6000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c8063798aac5b1161010f578063c55d0f56116100a2578063e17f212e11610071578063e17f212e14610453578063e68f283b14610468578063e848da301461047e578063f5a9838314610491576101e5565b8063c55d0f56146103f8578063c71a1b201461040b578063ce1c0e4d1461042b578063d75f6d8114610440576101e5565b80639d6a890f116100de5780639d6a890f146103b7578063a40060ba146103ca578063a670ff87146103d2578063a69afdc6146103e5576101e5565b8063798aac5b1461035c57806379d5ea4b1461037157806397da6af4146103845780639cb4753814610397576101e5565b806358f9296f1161018757806367fc40291161015657806367fc4029146102fe5780636ba31fa11461031157806374e6310e146103245780637687542c14610345576101e5565b806358f9296f146102b75780635aa6e675146102cc5780635ff27079146102e157806362354e03146102f6576101e5565b8063257cbd3a116101c3578063257cbd3a1461023f5780632663f1b4146102615780632bcdd6ab1461028157806342a0f24314610296576101e5565b806306a2ba29146101ea5780630cf4849714610209578063136d3f641461021f575b600080fd5b6101f2610499565b604051610200929190612868565b60405180910390f35b6102116104ad565b6040516102009291906127d9565b61023261022d3660046125a3565b6105c3565b60405161020091906128ee565b61025261024d3660046125a3565b61064a565b60405161020093929190612931565b61027461026f3660046123a4565b6106d5565b6040516102009190612901565b610289610841565b60405161020091906127b3565b6102a96102a43660046124ff565b6108fd565b604051610200929190612923565b6102bf610981565b60405161020091906127fe565b6102d46109a3565b6040516102009190612718565b6102f46102ef3660046124d7565b610a38565b005b6102d4610d8d565b6102f461030c3660046124d7565b610d98565b6102bf61031f366004612448565b610e80565b6103376103323660046124d7565b610f2e565b60405161020092919061290a565b61034d610fd4565b604051610200939291906128a0565b6103646110ed565b6040516102009190612855565b6102bf61037f3660046123c0565b6110fd565b6102d46103923660046124ff565b611249565b6103aa6103a5366004612448565b611254565b604051610200919061272c565b6102f46103c53660046123a4565b6113e1565b61028961149a565b6102f46103e03660046123a4565b6114aa565b6102526103f33660046124ff565b61163c565b6102a96104063660046125a3565b61164a565b61041e6104193660046125a3565b611656565b6040516102009190612779565b61043361173c565b60405161020091906127c6565b6102d461044e3660046125a3565b611853565b61045b61185e565b60405161020091906128e3565b61047061186e565b60405161020092919061287b565b61027461048c3660046124ff565b611987565b6102f4611992565b6060806104a4611a4c565b90939092509050565b6060806104b8611a4c565b80519092509050806001600160401b03811180156104d557600080fd5b5060405190808252806020026020018201604052801561050957816020015b60608152602001906001900390816104f45790505b5092505b80156105be578060019003905081818151811061052657fe5b60200260200101516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561056657600080fd5b505afa15801561057a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105a29190810190612531565b8382815181106105ae57fe5b602002602001018190525061050d565b509091565b60606105ce82611c86565b6001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561060657600080fd5b505afa15801561061a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106429190810190612531565b90505b919050565b600080600061065884611c86565b6001600160a01b03166365f5cd866040518163ffffffff1660e01b815260040160606040518083038186803b15801561069057600080fd5b505afa1580156106a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c891906125de565b9250925092509193909250565b60008054600160b01b900460ff16806106f85750600054600160a81b900460ff16155b1561083657610705611d37565b6000826001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561074057600080fd5b505afa158015610754573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261077c9190810190612531565b905060038160405161078e91906126fc565b908152602001604051809103902054915081600014156107e5576002805490509150816001016003826040516107c491906126fc565b908152604051908190036020019020556002805460010181556000526107f4565b6001820391506107f482611d6e565b826002838154811061080257fe5b6000918252602082206005909102010180546001600160a01b0319166001600160a01b039290921691909117905550610645565b610645600036611e01565b6002546060906000816001600160401b038111801561085f57600080fd5b50604051908082528060200260200182016040528015610889578160200160208202803683370190505b5090505b81156108f75781600190039150600282815481106108a757fe5b600091825260208220600590910201015481516001600160a01b03909116908290849081106108d257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505061088d565b91505090565b60008061090983611f84565b6001600160a01b031663eb91d37e6040518163ffffffff1660e01b8152600401604080518083038186803b15801561094057600080fd5b505afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097891906125bb565b91509150915091565b606060008061098e611a4c565b9150915061099c8282611fc0565b9250505090565b60008054600160a81b900460ff166109c6576000546001600160a01b0316610a33565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b158015610a0657600080fd5b505afa158015610a1a573d6000803e3d6000fd5b505050506040513d6020811015610a3057600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b158015610a7c57600080fd5b505afa158015610a90573d6000803e3d6000fd5b505050506040513d6020811015610aa657600080fd5b5051610ae9576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b0319811660009081526001602052604090208054610b55576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015610bab576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c455780601f10610c1a57610100808354040283529160200191610c45565b820191906000526020600020905b815481529060010190602001808311610c2857829003601f168201915b5050506001600160e01b0319861660009081526001602081905260408220828155949550909250610c799150830182612228565b50506000805460ff60b01b1916600160b01b178155604051825130918491819060208401908083835b60208310610cc15780518252601f199092019160209182019101610ca2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610d23576040519150601f19603f3d011682016040523d82523d6000602084013e610d28565b606091505b50506000805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a1610d8781612137565b50505050565b60076001609c1b0181565b610da0612154565b6001600160e01b03198116600090815260016020526040902054610e0b576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b03198116600090815260016020819052604082208281559190610e7b90830182612228565b505050565b6060600082516001600160401b0381118015610e9b57600080fd5b50604051908082528060200260200182016040528015610ec5578160200160208202803683370190505b50905060005b8351811015610f1c57610ef0848281518110610ee357fe5b6020026020010151611c86565b828281518110610efc57fe5b6001600160a01b0390921660209283029190910190910152600101610ecb565b50610f278382611fc0565b9392505050565b600160208181526000928352604092839020805481840180548651600296821615610100026000190190911695909504601f81018590048502860185019096528585529094919392909190830182828015610fca5780601f10610f9f57610100808354040283529160200191610fca565b820191906000526020600020905b815481529060010190602001808311610fad57829003601f168201915b5050505050905082565b6060806060610fe1611a4c565b81519194509150806001600160401b0381118015610ffe57600080fd5b5060405190808252806020026020018201604052801561103257816020015b606081526020019060019003908161101d5790505b5092505b80156110e7578060019003905081818151811061104f57fe5b60200260200101516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561108f57600080fd5b505afa1580156110a3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110cb9190810190612531565b8382815181106110d757fe5b6020026020010181905250611036565b50909192565b60606110f7611a4c565b50919050565b6060600082516001600160401b038111801561111857600080fd5b50604051908082528060200260200182016040528015611142578160200160208202803683370190505b509050600083516001600160401b038111801561115e57600080fd5b50604051908082528060200260200182016040528015611188578160200160208202803683370190505b50905060005b8451811015611236576111b38582815181106111a657fe5b60200260200101516121b3565b8382815181106111bf57fe5b60200260200101818152505060028382815181106111d957fe5b6020026020010151815481106111eb57fe5b600091825260208220600590910201015482516001600160a01b039091169083908390811061121657fe5b6001600160a01b039092166020928302919091019091015260010161118e565b506112418282611fc0565b949350505050565b600061064282611f84565b600254815160609190806001600160401b038111801561127357600080fd5b5060405190808252806020026020018201604052801561129d578160200160208202803683370190505b5092505b80156113da578060019003905060008482815181106112bc57fe5b602002602001015190508281106040518060400160405280601881526020016000805160206129ea833981519152815250906113145760405162461bcd60e51b815260040161130b91906128ee565b60405180910390fd5b506002818154811061132257fe5b600091825260208220600590910201015484516001600160a01b039091169085908490811061134d57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006001600160a01b031684838151811061138457fe5b60200260200101516001600160a01b031614156113d457604080518082018252601881526000805160206129ea8339815191526020820152905162461bcd60e51b815261130b91906004016128ee565b506112a1565b5050919050565b600054600160a01b900460ff1615611437576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b60606114a4611a4c565b92915050565b600054600160b01b900460ff16806114cc5750600054600160a81b900460ff16155b1561162e576114d9611d37565b6000816001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561151457600080fd5b505afa158015611528573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115509190810190612531565b9050600060038260405161156491906126fc565b90815260405190819003602001902054905080156115f0576000190161158981611d6e565b60006002828154811061159857fe5b6000918252602082206005909102010180546001600160a01b0319166001600160a01b03929092169190911790556040516003906115d79084906126fc565b9081526020016040518091039020600090555050611629565b604080518082018252601881526000805160206129ea8339815191526020820152905162461bcd60e51b815261130b91906004016128ee565b611639565b611639600036611e01565b50565b600080600061065884611f84565b60008061090983611c86565b61165e61226c565b6002548210801561169f575060006001600160a01b03166002838154811061168257fe5b60009182526020822060059091020101546001600160a01b031614155b6040518060400160405280601881526020016000805160206129ea833981519152815250906116e15760405162461bcd60e51b815260040161130b91906128ee565b50600282815481106116ef57fe5b600091825260209091206040805160a0810191829052926005908102909201919082845b81546001600160a01b031681526001909101906020018083116117135750505050509050919050565b60606000611748611a4c565b80519092509050806001600160401b038111801561176557600080fd5b5060405190808252806020026020018201604052801561179957816020015b60608152602001906001900390816117845790505b5092505b801561184e57806001900390508181815181106117b657fe5b60200260200101516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156117f657600080fd5b505afa15801561180a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118329190810190612531565b83828151811061183e57fe5b602002602001018190525061179d565b505090565b600061064282611c86565b600054600160a81b900460ff1681565b606080606061187b611a4c565b81519194509150806001600160401b038111801561189857600080fd5b506040519080825280602002602001820160405280156118cc57816020015b60608152602001906001900390816118b75790505b5092505b801561198157806001900390508181815181106118e957fe5b60200260200101516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561192957600080fd5b505afa15801561193d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119659190810190612531565b83828151811061197157fe5b60200260200101819052506118d0565b50509091565b6000610642826121b3565b61199a612154565b600054600160a81b900460ff16156119f9576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60008054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b60025460609081906000816001600160401b0381118015611a6c57600080fd5b50604051908082528060200260200182016040528015611a96578160200160208202803683370190505b5090506000826001600160401b0381118015611ab157600080fd5b50604051908082528060200260200182016040528015611adb578160200160208202803683370190505b50905060008060005b85811015611b7757600060028281548110611afb57fe5b60009182526020822060059091020101546001600160a01b03908116915084168114611b6e5781868481518110611b2e57fe5b60200260200101818152505080858481518110611b4757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b50600101611ae4565b50806001600160401b0381118015611b8e57600080fd5b50604051908082528060200260200182016040528015611bb8578160200160208202803683370190505b509650806001600160401b0381118015611bd157600080fd5b50604051908082528060200260200182016040528015611bfb578160200160208202803683370190505b5095505b8015611c7d5780600190039050838181518110611c1857fe5b6020026020010151878281518110611c2c57fe5b602002602001018181525050828181518110611c4457fe5b6020026020010151868281518110611c5857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050611bff565b50505050509091565b60025460408051808201909152601881526000805160206129ea83398151915260208201526000918310611ccd5760405162461bcd60e51b815260040161130b91906128ee565b50600060028381548110611cdd57fe5b60009182526020822060059091020101546001600160a01b03169050806114a457604080518082018252601881526000805160206129ea8339815191526020820152905162461bcd60e51b815261130b91906004016128ee565b600054600160b01b900460ff1615611d6457333014611d5257fe5b6000805460ff60b01b19169055611d6c565b611d6c612154565b565b60045b8015611dfd5760028281548110611d8457fe5b90600052602060002090600502016001820360058110611da057fe5b0154600280546001600160a01b039092169184908110611dbc57fe5b90600052602060002090600502018260058110611dd557fe5b0180546001600160a01b0319166001600160a01b039290921691909117905560001901611d71565b5050565b611e09612154565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611e5157600080fd5b505afa158015611e65573d6000803e3d6000fd5b505050506040513d6020811015611e7b57600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b03198616815260016020818152604090922084518155848301518051919450611eff9392850192019061228a565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b600080611f90836121b3565b905060028181548110611f9f57fe5b60009182526020822060059091020101546001600160a01b03169392505050565b8051606090806001600160401b0381118015611fdb57600080fd5b5060405190808252806020026020018201604052801561201557816020015b612002612316565b815260200190600190039081611ffa5790505b50915060005b8181101561212f5784818151811061202f57fe5b602002602001015183828151811061204357fe5b6020026020010151600001818152505083818151811061205f57fe5b60200260200101516001600160a01b03166365f5cd866040518163ffffffff1660e01b815260040160606040518083038186803b15801561209f57600080fd5b505afa1580156120b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d791906125de565b8584815181106120e357fe5b60200260200101516020018685815181106120fa57fe5b602002602001015160600187868151811061211157fe5b6020908102919091010151604001929092529190525260010161201b565b505092915050565b3d604051818101604052816000823e8215612150578181f35b8181fd5b61215c6109a3565b6001600160a01b0316336001600160a01b031614611d6c576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b6000806003836040516121c691906126fc565b9081526020016040518091039020549050600081116040518060400160405280601881526020016000805160206129ea8339815191528152509061221d5760405162461bcd60e51b815260040161130b91906128ee565b506000190192915050565b50805460018160011615610100020316600290046000825580601f1061224e5750611639565b601f016020900490600052602060002090810190611639919061233e565b6040518060a001604052806005906020820280368337509192915050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826122c05760008555612306565b82601f106122d957805160ff1916838001178555612306565b82800160010185558215612306579182015b828111156123065782518255916020019190600101906122eb565b5061231292915061233e565b5090565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b5b80821115612312576000815560010161233f565b600082601f830112612363578081fd5b813561237661237182612987565b612947565b81815284602083860101111561238a578283fd5b816020850160208301379081016020019190915292915050565b6000602082840312156123b5578081fd5b8135610f27816129d4565b600060208083850312156123d2578182fd5b82356001600160401b038111156123e7578283fd5b8301601f810185136123f7578283fd5b80356124056123718261296a565b81815283810190838501865b8481101561243a576124288a888435890101612353565b84529286019290860190600101612411565b509098975050505050505050565b6000602080838503121561245a578182fd5b82356001600160401b0381111561246f578283fd5b8301601f8101851361247f578283fd5b803561248d6123718261296a565b81815283810190838501858402850186018910156124a9578687fd5b8694505b838510156124cb5780358352600194909401939185019185016124ad565b50979650505050505050565b6000602082840312156124e8578081fd5b81356001600160e01b031981168114610f27578182fd5b600060208284031215612510578081fd5b81356001600160401b03811115612525578182fd5b61124184828501612353565b600060208284031215612542578081fd5b81516001600160401b03811115612557578182fd5b8201601f81018413612567578182fd5b805161257561237182612987565b818152856020838501011115612589578384fd5b61259a8260208301602086016129a8565b95945050505050565b6000602082840312156125b4578081fd5b5035919050565b600080604083850312156125cd578081fd5b505080516020909101519092909150565b6000806000606084860312156125f2578081fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b838110156126435781516001600160a01b03168752958201959082019060010161261e565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b858110156126945782840389526126828483516126d0565b9885019893509084019060010161266a565b5091979650505050505050565b6000815180845260208085019450808401835b83811015612643578151875295820195908201906001016126b4565b600081518084526126e88160208601602086016129a8565b601f01601f19169290920160200192915050565b6000825161270e8184602087016129a8565b9190910192915050565b6001600160a01b0391909116815260200190565b6020808252825182820181905260009190848201906040850190845b8181101561276d5783516001600160a01b031683529284019291840191600101612748565b50909695505050505050565b60a08101818360005b60058110156127aa5781516001600160a01b0316835260209283019290910190600101612782565b50505092915050565b600060208252610f27602083018461260b565b600060208252610f27602083018461264e565b6000604082526127ec604083018561264e565b828103602084015261259a818561260b565b602080825282518282018190526000919060409081850190868401855b828110156126945781518051855286810151878601528581015186860152606090810151908501526080909301929085019060010161281b565b600060208252610f2760208301846126a1565b6000604082526127ec60408301856126a1565b60006040825261288e60408301856126a1565b828103602084015261259a818561264e565b6000606082526128b360608301866126a1565b82810360208401526128c5818661264e565b905082810360408401526128d9818561260b565b9695505050505050565b901515815260200190565b600060208252610f2760208301846126d0565b90815260200190565b60008382526040602083015261124160408301846126d0565b918252602082015260400190565b9283526020830191909152604082015260600190565b6040518181016001600160401b038111828210171561296257fe5b604052919050565b60006001600160401b0382111561297d57fe5b5060209081020190565b60006001600160401b0382111561299a57fe5b50601f01601f191660200190565b60005b838110156129c35781810151838201526020016129ab565b83811115610d875750506000910152565b6001600160a01b038116811461163957600080fdfe4654534f20696e646578206e6f7420737570706f727465640000000000000000a2646970667358221220009205ed18200b9177f7d9b0c2b48934cf2edd3cb970c5752607418259c2db1564736f6c634300070600336080604052600160005534801561001557600080fd5b50604051610c75380380610c7583398101604081905261003491610059565b600480546001600160a01b0319166001600160a01b0392909216919091179055610087565b60006020828403121561006a578081fd5b81516001600160a01b0381168114610080578182fd5b9392505050565b610bdf806100966000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c806347ed51b11161006657806347ed51b1146101095780635fc560141461011157806398dccfc214610124578063aa89dfd414610137578063b06cbaf71461014a57610093565b806309fcb40014610098578063345705a4146100c15780633de2cb1c146100d657806346538074146100e9575b600080fd5b6100ab6100a63660046108e3565b61016b565b6040516100b8919061096f565b60405180910390f35b6100d46100cf3660046108e3565b61022f565b005b6100d46100e4366004610790565b610298565b6100fc6100f7366004610774565b6102ee565b6040516100b89190610b64565b6100fc610300565b6100d461011f366004610774565b610306565b6100fc6101323660046108e3565b610352565b6100ab61014536600461085c565b610364565b61015d610158366004610774565b6103fc565b6040516100b89291906109a4565b600081815260016020526040902054606090806101a35760405162461bcd60e51b815260040161019a90610ad3565b60405180910390fd5b6000838152600360205260409020546001600160a01b0316806101d8575050604080516000815260208101909152905061022a565b60408051600180825281830190925260009160208083019080368337019050509050818160008151811061020857fe5b6001600160a01b0390921660209283029190910190910152925061022a915050565b919050565b6004546001600160a01b031633146102595760405162461bcd60e51b815260040161019a90610b36565b600081815260016020526040902054156102855760405162461bcd60e51b815260040161019a90610a9c565b6000805491815260016020526040902055565b6102a18261054b565b156102be5760405162461bcd60e51b815260040161019a90610a73565b60006102ca8383610551565b9050806102e95760405162461bcd60e51b815260040161019a90610b0a565b505050565b60026020526000908152604090205481565b60005481565b6004546001600160a01b031633146103305760405162461bcd60e51b815260040161019a90610b36565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b60016020526000908152604090205481565b600554604051630e848da360e41b81526060916000916001600160a01b039091169063e848da309061039a908690600401610a20565b60206040518083038186803b1580156103b257600080fd5b505afa1580156103c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ea91906108fb565b90506103f58161016b565b9392505050565b6060806104088361054b565b156104255760405162461bcd60e51b815260040161019a90610a73565b600560009054906101000a90046001600160a01b03166001600160a01b031663798aac5b6040518163ffffffff1660e01b815260040160006040518083038186803b15801561047357600080fd5b505afa158015610487573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104af91908101906107bb565b80519092508067ffffffffffffffff811180156104cb57600080fd5b506040519080825280602002602001820160405280156104f5578160200160208202803683370190505b50915060005b81811015610544576105208585838151811061051357fe5b6020026020010151610551565b83828151811061052c57fe5b911515602092830291909101909101526001016104fb565b5050915091565b50600090565b6000818152600160205260408120548061057d5760405162461bcd60e51b815260040161019a90610ad3565b6000838152600360205260409020546001600160a01b039081169085168114156105ac5760019250505061063c565b600084815260036020908152604080832080546001600160a01b0319166001600160a01b038a1617905580516001808252818301909252918281019080368337019050509050818160008151811061060057fe5b60200260200101906001600160a01b031690816001600160a01b03168152505061062a8186610642565b610634868661070a565b600193505050505b92915050565b60005b82518110156106a2577f33359f2769756ca8d0da4683f25ee440744d6f18bfb166dbfb59315a8c62b01683828151811061067b57fe5b602002602001015183604051610692929190610956565b60405180910390a1600101610645565b50600480546040516376794efb60e01b81526001600160a01b03909116916376794efb916106d4918691869101610982565b600060405180830381600087803b1580156106ee57600080fd5b505af1158015610702573d6000803e3d6000fd5b505050505050565b7f66a8b13abe95391d1851f5bc319f3dde54ce8f2f40a5fe226aa3251d805832e3828260405161073b929190610956565b60405180910390a160048054604051639d986f9160e01b81526001600160a01b0390911691639d986f91916106d4918691869101610956565b600060208284031215610785578081fd5b81356103f581610b91565b600080604083850312156107a2578081fd5b82356107ad81610b91565b946020939093013593505050565b600060208083850312156107cd578182fd5b825167ffffffffffffffff808211156107e4578384fd5b818501915085601f8301126107f7578384fd5b81518181111561080357fe5b8381029150610813848301610b6d565b8181528481019084860184860187018a101561082d578788fd5b8795505b8386101561084f578051835260019590950194918601918601610831565b5098975050505050505050565b6000602080838503121561086e578182fd5b823567ffffffffffffffff80821115610885578384fd5b818501915085601f830112610898578384fd5b8135818111156108a457fe5b6108b6601f8201601f19168501610b6d565b915080825286848285010111156108cb578485fd5b80848401858401378101909201929092529392505050565b6000602082840312156108f4578081fd5b5035919050565b60006020828403121561090c578081fd5b5051919050565b6000815180845260208085019450808401835b8381101561094b5781516001600160a01b031687529582019590820190600101610926565b509495945050505050565b6001600160a01b03929092168252602082015260400190565b6000602082526103f56020830184610913565b6000604082526109956040830185610913565b90508260208301529392505050565b604080825283519082018190526000906020906060840190828701845b828110156109dd578151845292840192908401906001016109c1565b50505083810382850152845180825285830191830190845b81811015610a135783511515835292840192918401916001016109f5565b5090979650505050505050565b6000602080835283518082850152825b81811015610a4c57858101830151858201604001528201610a30565b81811115610a5d5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252600f908201526e74727573746564206164647265737360881b604082015260600190565b60208082526017908201527f77686974656c69737420616c7265616479206578697374000000000000000000604082015260600190565b60208082526018908201527f4654534f20696e646578206e6f7420737570706f727465640000000000000000604082015260600190565b602080825260129082015271766f746520706f77657220746f6f206c6f7760701b604082015260600190565b60208082526014908201527337b7363c90383934b1b29039bab136b4ba3a32b960611b604082015260600190565b90815260200190565b60405181810167ffffffffffffffff81118282101715610b8957fe5b604052919050565b6001600160a01b0381168114610ba657600080fd5b5056fea2646970667358221220ec38611ad4365a9af8a9f2ef928c0564e254d9b1f257ffc694ff93f4319fa35164736f6c6343000706003360806040523480156200001157600080fd5b50604051620013e8380380620013e8833981810160405260a08110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b5060409081526020828101519183015160608401516080909401518751939650909450916200011c916001919088019062000163565b50426003556000805460ff19166001179055600480546001600160a01b039095166001600160a01b031990951694909417909355600791909155600855600955506200020f565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200019b5760008555620001e6565b82601f10620001b657805160ff1916838001178555620001e6565b82800160010185558215620001e6579182015b82811115620001e6578251825591602001919060010190620001c9565b50620001f4929150620001f8565b5090565b5b80821115620001f45760008155600101620001f9565b6111c9806200021f6000396000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c80638357d08c11610130578063cf35bdd0116100b8578063e536f3961161007c578063e536f39614610503578063eb91d37e14610747578063f670ebe3146108fd578063f72cab2814610922578063f937d6ad1461094e57610232565b8063cf35bdd0146107e9578063d0d552dd14610806578063d89601fd1461082c578063e3749e0c14610834578063e3b3a3b3146108c857610232565b8063a29a839f116100ff578063a29a839f1461073f578063af52df0814610747578063c1f6c36e14610768578063c5d8b9e7146107a0578063cd4b6914146107cc57610232565b80638357d08c1461060557806395d89b41146106c2578063974d7a6b146105035780639edbf007146105bb57610232565b806340462a2d116101be5780635c222bad116101825780635c222bad146105bb57806365f5cd86146104365780636b52b242146105c35780637d1d6f12146105cb578063826cc76b146105e857610232565b806340462a2d1461043e5780634afd5102146105035780635303548b14610520578063555989da1461054f5780635a3c9d8e1461055757610232565b8063144e159111610205578063144e15911461036c57806318931c35146103925780632f0a6f3c146103ea578063306ba253146104135780633cacb3ae1461043657610232565b806302fb0c5e14610237578063040d73b81461025357806311a7aaaa146102a3578063131fdee2146102c7575b600080fd5b61023f610956565b604080519115158252519081900360200190f35b61025b61095f565b6040518086815260200185815260200184600581111561027757fe5b815260200183815260200182600581111561028e57fe5b81526020019550505050505060405180910390f35b6102ab61096e565b604080516001600160a01b039092168252519081900360200190f35b61036a600480360360208110156102dd57600080fd5b8101906020810181356401000000008111156102f857600080fd5b82018360208201111561030a57600080fd5b8035906020019184602083028401116401000000008311171561032c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610973945050505050565b005b610374610a19565b60408051938452602084019290925282820152519081900360600190f35b61039a610a27565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103d65781810151838201526020016103be565b505050509050019250505060405180910390f35b61036a6004803603606081101561040057600080fd5b5080359060208101359060400135610973565b61036a6004803603604081101561042957600080fd5b5080359060200135610973565b610374610a8e565b6104636004803603604081101561045457600080fd5b50803590602001351515610a98565b604051808060200180602001848152602001838103835286818151815260200191508051906020019060200280838360005b838110156104ad578181015183820152602001610495565b50505050905001838103825285818151815260200191508051906020019060200280838360005b838110156104ec5781810151838201526020016104d4565b505050509050019550505050505060405180910390f35b61036a6004803603602081101561051957600080fd5b5035610973565b61053d6004803603602081101561053657600080fd5b5035610b04565b60408051918252519081900360200190f35b61036a610973565b61036a600480360361012081101561056e57600080fd5b81359160208101359160408201359160608101359160808201359160a08101359160c08201359160e08101359181019061012081016101008201356401000000008111156102f857600080fd5b6102ab610b17565b61053d610b7a565b61053d600480360360208110156105e157600080fd5b5035610b17565b6102ab600480360360208110156105fe57600080fd5b5035610b7f565b61060d610ba9565b604051808060200180602001878152602001868152602001858152602001848152602001838103835289818151815260200191508051906020019060200280838360005b83811015610669578181015183820152602001610651565b50505050905001838103825288818151815260200191508051906020019060200280838360005b838110156106a8578181015183820152602001610690565b505050509050019850505050505050505060405180910390f35b6106ca610c4e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156107045781810151838201526020016106ec565b50505050905090810190601f1680156107315780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61053d610cdb565b61074f610cea565b6040805192835260208301919091528051918290030190f35b61036a6004803603608081101561077e57600080fd5b506001600160a01b038135169060208101359060408101359060600135610cf0565b61053d600480360360408110156107b657600080fd5b50803590602001356001600160a01b0316610e9e565b61053d600480360360208110156107e257600080fd5b5035610ec6565b6102ab600480360360208110156107ff57600080fd5b5035610ed1565b61036a6004803603602081101561081c57600080fd5b50356001600160a01b0316610973565b61053d610ee1565b61083c610f0f565b604051808a815260200189815260200188815260200187815260200186815260200185815260200184815260200183815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156108ac578181015183820152602001610894565b505050509050019a505050505050505050505060405180910390f35b6108d0610fe1565b60408051958652602086019490945284840192909252606084015215156080830152519081900360a00190f35b61036a6004803603604081101561091357600080fd5b50803590602001351515610973565b61053d6004803603604081101561093857600080fd5b506001600160a01b038135169060200135611017565b6102ab61101f565b60005460ff1681565b60008060008060009091929394565b600090565b6040805180820190915260178152600080516020611174833981519152602082015260405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109de5781810151838201526020016109c6565b50505050905090810190601f168015610a0b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600754600854600954909192565b604080518082018252601781526000805160206111748339815191526020808301918252925162461bcd60e51b81526004810193845282516024820152825160609492839260440191808383600083156109de5781810151838201526020016109c6565b90565b6000806000909192565b604080518082018252601781526000805160206111748339815191526020808301918252925162461bcd60e51b815260048101938452825160248201528251606094859460009490939192839260440191908083838983156109de5781810151838201526020016109c6565b6000610b0f8261102e565b90505b919050565b604080518082018252601781526000805160206111748339815191526020808301918252925162461bcd60e51b815260048101938452825160248201528251600094928392604401918083838983156109de5781810151838201526020016109c6565b600581565b60068181548110610b8f57600080fd5b6000918252602090912001546001600160a01b0316905081565b606080600080600080600060405180604001604052806017815260200160008051602061117483398151915281525090610c245760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109de5781810151838201526020016109c6565b50506040805160008082526020820181815282840190935290979196509450849350839250829150565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610cd35780601f10610ca857610100808354040283529160200191610cd3565b820191906000526020600020905b815481529060010190602001808311610cb657829003601f168201915b505050505081565b6000610ce5611059565b905090565b60008091565b6004546001600160a01b03163314610d0a57610d0a611064565b60408051808201909152600e81526d0a0e4d2c6ca40e8dede40d0d2ced60931b6020820152600160801b8310610d815760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109de5781810151838201526020016109c6565b506008546007546001850190910201428111801590610da35750600954810142105b6040518060400160405280601881526020017f52657665616c20706572696f64206e6f7420616374697665000000000000000081525090610e255760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109de5781810151838201526020016109c6565b506000848152600a602090815260408083206001600160a01b038916808552908352818420879055815187815242938101939093528282018490526060830193909352518692917fc1b1d37612887c207efe8cb44f4069b7f10c45edaf6e8405648a94e02b6e9ec7919081900360800190a35050505050565b6000918252600a602090815260408084206001600160a01b0393909316845291905290205490565b6000610b0f826110cc565b60058181548110610b8f57600080fd5b600080610eec611059565b905080610efd576000915050610a8b565b610f09600182036110cc565b91505090565b6000806000806000806000806060600060405180604001604052806017815260200160008051602061117483398151915281525090610f8f5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109de5781810151838201526020016109c6565b5060008080808080808080604051908082528060200260200182016040528015610fc3578160200160208202803683370190505b50985098509850985098509850985098509850909192939495969798565b6000806000806000610ff1611059565b945060085485600101026007540193506009548401925060009150600090509091929394565b600092915050565b6004546001600160a01b031681565b600060075482101561104257506000610b12565b60085460075483038161105157fe5b049050610b12565b6000610ce54261102e565b604080518082018252600d81526c1058d8d95cdcc819195b9a5959609a1b6020808301918252925162461bcd60e51b815260048101938452825160248201528251929392839260449092019190808383600083156109de5781810151838201526020016109c6565b6004805460408051633352da4560e21b8152928301849052516000926001600160a01b039092169163cd4b6914916024808301926020929190829003018186803b15801561111957600080fd5b505afa15801561112d573d6000803e3d6000fd5b505050506040513d602081101561114357600080fd5b5051604080516020808201939093523081830152815180820383018152606090910190915280519101209291505056fe556e617661696c61626c6520666f722074657374696e67000000000000000000a26469706673582212208bea6bce810d7ff3c6b478f9237db8fdd12cdb53f0b199c6c2598626cd2b971764736f6c63430007060033",
335
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80639d986f9111610097578063c0156bcc11610066578063c0156bcc146101b9578063cd4b6914146101c1578063d89601fd146101d4578063e2db5a52146101dc576100f5565b80639d986f9114610178578063aea36b531461018b578063b00c0b761461019e578063b39c6858146101b1576100f5565b806376794efb116100d357806376794efb146101355780637ac420ad1461014a5780638c9d28b61461015d5780638fc6f66714610165576100f5565b80633b56f098146100fa5780635267a15d1461011857806371e1fad91461012d575b600080fd5b6101026101ef565b60405161010f91906113d5565b60405180910390f35b6101206101f7565b60405161010f91906112af565b61012061021c565b610148610143366004611003565b61022c565b005b610102610158366004610fb5565b6102e8565b610120610303565b610148610173366004611254565b610312565b610148610186366004610fd8565b610573565b610148610199366004610fb5565b6105f5565b6101486101ac366004611046565b610658565b610120610703565b61010261071d565b6101026101cf3660046111b2565b610722565b61010261073c565b6101486101ea3660046111e2565b610861565b600160801b81565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b6001546001600160a01b03165b90565b600154604080518082019091526016815275566f7465722077686974656c6973746572206f6e6c7960501b6020820152906001600160a01b0316331461028e5760405162461bcd60e51b815260040161028591906113de565b60405180910390fd5b5060005b82518110156102e357816001901b19600260008584815181106102b157fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002080549091169055600101610292565b505050565b6001600160a01b031660009081526002602052604090205490565b6000546001600160a01b031690565b6000805460405163d75f6d8160e01b81526001600160a01b039091169063d75f6d81906103439084906004016113d5565b60206040518083038186803b15801561035b57600080fd5b505afa15801561036f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103939190611196565b9050806001600160a01b031663a29a839f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156103ce57600080fd5b505afa1580156103e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040691906111ca565b83146040518060400160405280600e81526020016d15dc9bdb99c8195c1bd8da081a5960921b8152509061044d5760405162461bcd60e51b815260040161028591906113de565b506000838152600360209081526040808320338452825291829020548251808401909352601983527f4475706c6963617465207375626d697420696e2065706f63680000000000000091830191909152156104bb5760405162461bcd60e51b815260040161028591906113de565b5033600090815260026020908152604091829020548251808401909352600f83526e139bdd081dda1a5d195b1a5cdd1959608a1b918301919091526105135760405162461bcd60e51b815260040161028591906113de565b5060008381526003602090815260408083203380855292529182902084905590518491907f5e2f64e70eafef31c2f48c8ef140b36406531c36ab0faaede30843202c16f6a89061056690869042906113c7565b60405180910390a3505050565b600154604080518082019091526016815275566f7465722077686974656c6973746572206f6e6c7960501b6020820152906001600160a01b031633146105cc5760405162461bcd60e51b815260040161028591906113de565b506001600160a01b0390911660009081526002602052604090208054600190921b919091179055565b60006105ff6101f7565b6001600160a01b0316146040518060400160405280600b81526020016a105b1c9958591e481cd95d60aa1b8152509061064b5760405162461bcd60e51b815260040161028591906113de565b5061065581610cea565b50565b6106606101f7565b6001600160a01b0316336001600160a01b0316146106bc576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b6106f56106f083836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250610d0e565b610cea565b6106ff8282610e3b565b5050565b600060405162461bcd60e51b815260040161028590611431565b606481565b60006004606483066064811061073457fe5b015492915050565b6000805460405163d75f6d8160e01b815282916001600160a01b03169063d75f6d819061076d9084906004016113d5565b60206040518083038186803b15801561078557600080fd5b505afa158015610799573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bd9190611196565b90506000816001600160a01b031663a29a839f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156107fa57600080fd5b505afa15801561080e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083291906111ca565b90508061084457600092505050610229565b600460646000198301066064811061085857fe5b01549250505090565b8251825160408051808201909152601a81527f4172726179206c656e6774687320646f206e6f74206d6174636800000000000060208201529082146108b95760405162461bcd60e51b815260040161028591906113de565b5060408051808201909152601781527f546f6f20736d616c6c2072616e646f6d206e756d6265720000000000000000006020820152600160801b8310156109135760405162461bcd60e51b815260040161028591906113de565b508383833360405160200161092b9493929190611380565b60408051601f19818403018152828252805160209182012060008981526003835283812033825283528390205460608501909352602380855292149291906114d9908301399061098e5760405162461bcd60e51b815260040161028591906113de565b50600080546040516313968ea760e31b81526001600160a01b0390911690639cb47538906109c090889060040161136d565b60006040518083038186803b1580156109d857600080fd5b505afa1580156109ec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a1491908101906110fd565b3360009081526002602052604081205491925083610a33576000610ac7565b82600081518110610a4057fe5b60200260200101516001600160a01b031663f72cab28338a6040518363ffffffff1660e01b8152600401610a759291906112c3565b602060405180830381600087803b158015610a8f57600080fd5b505af1158015610aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac791906111ca565b90506000805b85811015610c3f578015801590610af75750888181518110610aeb57fe5b60200260200101518210155b15610b4757604080518082018252601b81527f4654534f20696e6469636573206e6f7420696e6372656173696e6700000000006020820152905162461bcd60e51b815261028591906004016113de565b888181518110610b5357fe5b60200260200101519150816001901b841660001415610ba957604080518082018252600f81526e139bdd081dda1a5d195b1a5cdd1959608a1b6020820152905162461bcd60e51b815261028591906004016113de565b848181518110610bb557fe5b60200260200101516001600160a01b031663c1f6c36e338c8b8581518110610bd957fe5b6020026020010151876040518563ffffffff1660e01b8152600401610c0194939291906112dc565b600060405180830381600087803b158015610c1b57600080fd5b505af1158015610c2f573d6000803e3d6000fd5b505060019092019150610acd9050565b5060008981526003602090815260408083203384528252808320929092559051610c6d9188918a9101611460565b60408051601f198184030181529190528051602090910120600460648b0660648110610c9557fe5b0180549091019055604051899033907fafffa539ac1cad89751c875d871abadc6deb7bd51bf6baea004fc71ca0a48fa590610cd79088908c908c904290611302565b60405180910390a3505050505050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015610d52578181015183820152602001610d3a565b50505050905090810190601f168015610d7f5780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b8651811015610de757868181518110610db557fe5b6020026020010151831415610ddf57858181518110610dd057fe5b60200260200101519150610de7565b600101610da0565b506001600160a01b038116610e32576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b610e6a82826040518060400160405280600c81526020016b4674736f526567697374727960a01b815250610d0e565b6000806101000a8154816001600160a01b0302191690836001600160a01b03160217905550610ec282826040518060400160405280601081526020016f2b37ba32b92bb434ba32b634b9ba32b960811b815250610d0e565b600180546001600160a01b0319166001600160a01b03929092169190911790555050565b600082601f830112610ef6578081fd5b81356020610f0b610f06836114a5565b611481565b8281528181019085830183850287018401881015610f27578586fd5b855b85811015610f4e578135610f3c816114c3565b84529284019290840190600101610f29565b5090979650505050505050565b600082601f830112610f6b578081fd5b81356020610f7b610f06836114a5565b8281528181019085830183850287018401881015610f97578586fd5b855b85811015610f4e57813584529284019290840190600101610f99565b600060208284031215610fc6578081fd5b8135610fd1816114c3565b9392505050565b60008060408385031215610fea578081fd5b8235610ff5816114c3565b946020939093013593505050565b60008060408385031215611015578182fd5b823567ffffffffffffffff81111561102b578283fd5b61103785828601610ee6565b95602094909401359450505050565b60008060408385031215611058578182fd5b823567ffffffffffffffff8082111561106f578384fd5b818501915085601f830112611082578384fd5b81356020611092610f06836114a5565b82815281810190858301838502870184018b10156110ae578889fd5b8896505b848710156110d05780358352600196909601959183019183016110b2565b50965050860135925050808211156110e6578283fd5b506110f385828601610ee6565b9150509250929050565b6000602080838503121561110f578182fd5b825167ffffffffffffffff811115611125578283fd5b8301601f81018513611135578283fd5b8051611143610f06826114a5565b818152838101908385018584028501860189101561115f578687fd5b8694505b8385101561118a578051611176816114c3565b835260019490940193918501918501611163565b50979650505050505050565b6000602082840312156111a7578081fd5b8151610fd1816114c3565b6000602082840312156111c3578081fd5b5035919050565b6000602082840312156111db578081fd5b5051919050565b600080600080608085870312156111f7578182fd5b84359350602085013567ffffffffffffffff80821115611215578384fd5b61122188838901610f5b565b94506040870135915080821115611236578384fd5b5061124387828801610f5b565b949793965093946060013593505050565b60008060408385031215611266578182fd5b50508035926020909101359150565b6000815180845260208085019450808401835b838110156112a457815187529582019590820190600101611288565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b6080808252855190820181905260009060209060a0840190828901845b828110156113445781516001600160a01b03168452928401929084019060010161131f565b505050838103828501526113588188611275565b60408501969096525050506060015292915050565b600060208252610fd16020830184611275565b6000608082526113936080830187611275565b82810360208401526113a58187611275565b604084019590955250506001600160a01b039190911660609091015292915050565b918252602082015260400190565b90815260200190565b6000602080835283518082850152825b8181101561140a578581018301518582016040015282016113ee565b8181111561141b5783604083870101525b50601f01601f1916929092016040019392505050565b602080825260159082015274139bdd081a5b88191d5b5b5e4818dbdb9d1c9858dd605a1b604082015260600190565b6000838252604060208301526114796040830184611275565b949350505050565b60405181810167ffffffffffffffff8111828210171561149d57fe5b604052919050565b600067ffffffffffffffff8211156114b957fe5b5060209081020190565b6001600160a01b038116811461065557600080fdfe507269636520616c72656164792072657665616c6564206f72206e6f742076616c6964a2646970667358221220dc84168a528db8f048f0073b1b69ab8a806f2d5af413f445245cbaafbe1bfa0d64736f6c63430007060033",
334
+ "bytecode": "0x60806040523480156200001157600080fd5b506040516200674d3803806200674d8339810160408190526200003491620004b9565b8062000040816200046b565b503060405162000050906200048f565b6200005c919062000550565b604051809103906000f08015801562000079573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b03929092169190911790556040513090620000aa906200049d565b620000b6919062000550565b604051809103906000f080158015620000d3573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b0392831617908190556000546040516317f1580560e21b815291831692635fc56014926200011e929091169060040162000550565b600060405180830381600087803b1580156200013957600080fd5b505af11580156200014e573d6000803e3d6000fd5b50506040805161018081018252600361014082018181526229a3a160e91b6101608401528252825180840184528181526205852560ec1b6020828101919091528084019190915283518085018552828152624c544360e81b81830152838501528351808501855282815262584c4d60e81b818301526060840152835180850185528281526258444760e81b818301526080840152835180850185528281526241444160e81b8183015260a0840152835180850185526004815263414c474f60e01b8183015260c0840152835180850185528281526208486960eb1b8183015260e084015283518085018552828152622223a160e91b8183015261010084015283518085019094529083526242544360e81b908301526101208101919091529150600090505b600a811015620004625760008282600a81106200028c57fe5b6020020151905060008130607842036078601e604051620002ad90620004ab565b620002bd95949392919062000579565b604051809103906000f080158015620002da573d6000803e3d6000fd5b50600054604051630998fc6d60e21b81529192506001600160a01b031690632663f1b4906200030e90849060040162000550565b602060405180830381600087803b1580156200032957600080fd5b505af11580156200033e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003649190620004e9565b5060008054604051630e848da360e41b81526001600160a01b039091169063e848da30906200039890869060040162000564565b60206040518083038186803b158015620003b157600080fd5b505afa158015620003c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ec9190620004e9565b600154604051630d15c16960e21b81529192506001600160a01b03169063345705a4906200041f908490600401620005bb565b600060405180830381600087803b1580156200043a57600080fd5b505af11580156200044f573d6000803e3d6000fd5b5050505050505080600101905062000273565b505050620005c4565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b612beb8062001b0583390190565b610c7580620046f083390190565b6113e8806200536583390190565b600060208284031215620004cb578081fd5b81516001600160a01b0381168114620004e2578182fd5b9392505050565b600060208284031215620004fb578081fd5b5051919050565b60008151808452815b8181101562000529576020818501810151868301820152016200050b565b818111156200053b5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b600060208252620004e2602083018462000502565b600060a082526200058e60a083018862000502565b6001600160a01b039690961660208301525060408101939093526060830191909152608090910152919050565b90815260200190565b61153180620005d46000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80639d986f9111610097578063c0156bcc11610066578063c0156bcc146101b9578063cd4b6914146101c1578063d89601fd146101d4578063e2db5a52146101dc576100f5565b80639d986f9114610178578063aea36b531461018b578063b00c0b761461019e578063b39c6858146101b1576100f5565b806376794efb116100d357806376794efb146101355780637ac420ad1461014a5780638c9d28b61461015d5780638fc6f66714610165576100f5565b80633b56f098146100fa5780635267a15d1461011857806371e1fad91461012d575b600080fd5b6101026101ef565b60405161010f91906113d5565b60405180910390f35b6101206101f7565b60405161010f91906112af565b61012061021c565b610148610143366004611003565b61022c565b005b610102610158366004610fb5565b6102e8565b610120610303565b610148610173366004611254565b610312565b610148610186366004610fd8565b610573565b610148610199366004610fb5565b6105f5565b6101486101ac366004611046565b610658565b610120610703565b61010261071d565b6101026101cf3660046111b2565b610722565b61010261073c565b6101486101ea3660046111e2565b610861565b600160801b81565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b6001546001600160a01b03165b90565b600154604080518082019091526016815275566f7465722077686974656c6973746572206f6e6c7960501b6020820152906001600160a01b0316331461028e5760405162461bcd60e51b815260040161028591906113de565b60405180910390fd5b5060005b82518110156102e357816001901b19600260008584815181106102b157fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002080549091169055600101610292565b505050565b6001600160a01b031660009081526002602052604090205490565b6000546001600160a01b031690565b6000805460405163d75f6d8160e01b81526001600160a01b039091169063d75f6d81906103439084906004016113d5565b60206040518083038186803b15801561035b57600080fd5b505afa15801561036f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103939190611196565b9050806001600160a01b031663a29a839f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156103ce57600080fd5b505afa1580156103e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040691906111ca565b83146040518060400160405280600e81526020016d15dc9bdb99c8195c1bd8da081a5960921b8152509061044d5760405162461bcd60e51b815260040161028591906113de565b506000838152600360209081526040808320338452825291829020548251808401909352601983527f4475706c6963617465207375626d697420696e2065706f63680000000000000091830191909152156104bb5760405162461bcd60e51b815260040161028591906113de565b5033600090815260026020908152604091829020548251808401909352600f83526e139bdd081dda1a5d195b1a5cdd1959608a1b918301919091526105135760405162461bcd60e51b815260040161028591906113de565b5060008381526003602090815260408083203380855292529182902084905590518491907f5e2f64e70eafef31c2f48c8ef140b36406531c36ab0faaede30843202c16f6a89061056690869042906113c7565b60405180910390a3505050565b600154604080518082019091526016815275566f7465722077686974656c6973746572206f6e6c7960501b6020820152906001600160a01b031633146105cc5760405162461bcd60e51b815260040161028591906113de565b506001600160a01b0390911660009081526002602052604090208054600190921b919091179055565b60006105ff6101f7565b6001600160a01b0316146040518060400160405280600b81526020016a105b1c9958591e481cd95d60aa1b8152509061064b5760405162461bcd60e51b815260040161028591906113de565b5061065581610cea565b50565b6106606101f7565b6001600160a01b0316336001600160a01b0316146106bc576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b6106f56106f083836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250610d0e565b610cea565b6106ff8282610e3b565b5050565b600060405162461bcd60e51b815260040161028590611431565b606481565b60006004606483066064811061073457fe5b015492915050565b6000805460405163d75f6d8160e01b815282916001600160a01b03169063d75f6d819061076d9084906004016113d5565b60206040518083038186803b15801561078557600080fd5b505afa158015610799573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bd9190611196565b90506000816001600160a01b031663a29a839f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156107fa57600080fd5b505afa15801561080e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083291906111ca565b90508061084457600092505050610229565b600460646000198301066064811061085857fe5b01549250505090565b8251825160408051808201909152601a81527f4172726179206c656e6774687320646f206e6f74206d6174636800000000000060208201529082146108b95760405162461bcd60e51b815260040161028591906113de565b5060408051808201909152601781527f546f6f20736d616c6c2072616e646f6d206e756d6265720000000000000000006020820152600160801b8310156109135760405162461bcd60e51b815260040161028591906113de565b508383833360405160200161092b9493929190611380565b60408051601f19818403018152828252805160209182012060008981526003835283812033825283528390205460608501909352602380855292149291906114d9908301399061098e5760405162461bcd60e51b815260040161028591906113de565b50600080546040516313968ea760e31b81526001600160a01b0390911690639cb47538906109c090889060040161136d565b60006040518083038186803b1580156109d857600080fd5b505afa1580156109ec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a1491908101906110fd565b3360009081526002602052604081205491925083610a33576000610ac7565b82600081518110610a4057fe5b60200260200101516001600160a01b031663f72cab28338a6040518363ffffffff1660e01b8152600401610a759291906112c3565b602060405180830381600087803b158015610a8f57600080fd5b505af1158015610aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac791906111ca565b90506000805b85811015610c3f578015801590610af75750888181518110610aeb57fe5b60200260200101518210155b15610b4757604080518082018252601b81527f4654534f20696e6469636573206e6f7420696e6372656173696e6700000000006020820152905162461bcd60e51b815261028591906004016113de565b888181518110610b5357fe5b60200260200101519150816001901b841660001415610ba957604080518082018252600f81526e139bdd081dda1a5d195b1a5cdd1959608a1b6020820152905162461bcd60e51b815261028591906004016113de565b848181518110610bb557fe5b60200260200101516001600160a01b031663c1f6c36e338c8b8581518110610bd957fe5b6020026020010151876040518563ffffffff1660e01b8152600401610c0194939291906112dc565b600060405180830381600087803b158015610c1b57600080fd5b505af1158015610c2f573d6000803e3d6000fd5b505060019092019150610acd9050565b5060008981526003602090815260408083203384528252808320929092559051610c6d9188918a9101611460565b60408051601f198184030181529190528051602090910120600460648b0660648110610c9557fe5b0180549091019055604051899033907fafffa539ac1cad89751c875d871abadc6deb7bd51bf6baea004fc71ca0a48fa590610cd79088908c908c904290611302565b60405180910390a3505050505050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015610d52578181015183820152602001610d3a565b50505050905090810190601f168015610d7f5780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b8651811015610de757868181518110610db557fe5b6020026020010151831415610ddf57858181518110610dd057fe5b60200260200101519150610de7565b600101610da0565b506001600160a01b038116610e32576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b610e6a82826040518060400160405280600c81526020016b4674736f526567697374727960a01b815250610d0e565b6000806101000a8154816001600160a01b0302191690836001600160a01b03160217905550610ec282826040518060400160405280601081526020016f2b37ba32b92bb434ba32b634b9ba32b960811b815250610d0e565b600180546001600160a01b0319166001600160a01b03929092169190911790555050565b600082601f830112610ef6578081fd5b81356020610f0b610f06836114a5565b611481565b8281528181019085830183850287018401881015610f27578586fd5b855b85811015610f4e578135610f3c816114c3565b84529284019290840190600101610f29565b5090979650505050505050565b600082601f830112610f6b578081fd5b81356020610f7b610f06836114a5565b8281528181019085830183850287018401881015610f97578586fd5b855b85811015610f4e57813584529284019290840190600101610f99565b600060208284031215610fc6578081fd5b8135610fd1816114c3565b9392505050565b60008060408385031215610fea578081fd5b8235610ff5816114c3565b946020939093013593505050565b60008060408385031215611015578182fd5b823567ffffffffffffffff81111561102b578283fd5b61103785828601610ee6565b95602094909401359450505050565b60008060408385031215611058578182fd5b823567ffffffffffffffff8082111561106f578384fd5b818501915085601f830112611082578384fd5b81356020611092610f06836114a5565b82815281810190858301838502870184018b10156110ae578889fd5b8896505b848710156110d05780358352600196909601959183019183016110b2565b50965050860135925050808211156110e6578283fd5b506110f385828601610ee6565b9150509250929050565b6000602080838503121561110f578182fd5b825167ffffffffffffffff811115611125578283fd5b8301601f81018513611135578283fd5b8051611143610f06826114a5565b818152838101908385018584028501860189101561115f578687fd5b8694505b8385101561118a578051611176816114c3565b835260019490940193918501918501611163565b50979650505050505050565b6000602082840312156111a7578081fd5b8151610fd1816114c3565b6000602082840312156111c3578081fd5b5035919050565b6000602082840312156111db578081fd5b5051919050565b600080600080608085870312156111f7578182fd5b84359350602085013567ffffffffffffffff80821115611215578384fd5b61122188838901610f5b565b94506040870135915080821115611236578384fd5b5061124387828801610f5b565b949793965093946060013593505050565b60008060408385031215611266578182fd5b50508035926020909101359150565b6000815180845260208085019450808401835b838110156112a457815187529582019590820190600101611288565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b6080808252855190820181905260009060209060a0840190828901845b828110156113445781516001600160a01b03168452928401929084019060010161131f565b505050838103828501526113588188611275565b60408501969096525050506060015292915050565b600060208252610fd16020830184611275565b6000608082526113936080830187611275565b82810360208401526113a58187611275565b604084019590955250506001600160a01b039190911660609091015292915050565b918252602082015260400190565b90815260200190565b6000602080835283518082850152825b8181101561140a578581018301518582016040015282016113ee565b8181111561141b5783604083870101525b50601f01601f1916929092016040019392505050565b602080825260159082015274139bdd081a5b88191d5b5b5e4818dbdb9d1c9858dd605a1b604082015260600190565b6000838252604060208301526114796040830184611275565b949350505050565b60405181810167ffffffffffffffff8111828210171561149d57fe5b604052919050565b600067ffffffffffffffff8211156114b957fe5b5060209081020190565b6001600160a01b038116811461065557600080fdfe507269636520616c72656164792072657665616c6564206f72206e6f742076616c6964a2646970667358221220de0291dfa7711c7070d64177d13c1d64c782dd9cf080b76bf4a0187893a4e30264736f6c6343000706003360806040523480156200001157600080fd5b5060405162002beb38038062002beb83398101604081905262000034916200016c565b80806001600160a01b0381161562000051576200005181620000a9565b506001600160a01b038116620000a1576040805162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b604482015290519081900360640190fd5b50506200019c565b600054600160a01b900460ff161562000109576040805162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c7365000000000000000000000000604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b6000602082840312156200017e578081fd5b81516001600160a01b038116811462000195578182fd5b9392505050565b612a3f80620001ac6000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c8063798aac5b1161010f578063c55d0f56116100a2578063e17f212e11610071578063e17f212e14610453578063e68f283b14610468578063e848da301461047e578063f5a9838314610491576101e5565b8063c55d0f56146103f8578063c71a1b201461040b578063ce1c0e4d1461042b578063d75f6d8114610440576101e5565b80639d6a890f116100de5780639d6a890f146103b7578063a40060ba146103ca578063a670ff87146103d2578063a69afdc6146103e5576101e5565b8063798aac5b1461035c57806379d5ea4b1461037157806397da6af4146103845780639cb4753814610397576101e5565b806358f9296f1161018757806367fc40291161015657806367fc4029146102fe5780636ba31fa11461031157806374e6310e146103245780637687542c14610345576101e5565b806358f9296f146102b75780635aa6e675146102cc5780635ff27079146102e157806362354e03146102f6576101e5565b8063257cbd3a116101c3578063257cbd3a1461023f5780632663f1b4146102615780632bcdd6ab1461028157806342a0f24314610296576101e5565b806306a2ba29146101ea5780630cf4849714610209578063136d3f641461021f575b600080fd5b6101f2610499565b604051610200929190612868565b60405180910390f35b6102116104ad565b6040516102009291906127d9565b61023261022d3660046125a3565b6105c3565b60405161020091906128ee565b61025261024d3660046125a3565b61064a565b60405161020093929190612931565b61027461026f3660046123a4565b6106d5565b6040516102009190612901565b610289610841565b60405161020091906127b3565b6102a96102a43660046124ff565b6108fd565b604051610200929190612923565b6102bf610981565b60405161020091906127fe565b6102d46109a3565b6040516102009190612718565b6102f46102ef3660046124d7565b610a38565b005b6102d4610d8d565b6102f461030c3660046124d7565b610d98565b6102bf61031f366004612448565b610e80565b6103376103323660046124d7565b610f2e565b60405161020092919061290a565b61034d610fd4565b604051610200939291906128a0565b6103646110ed565b6040516102009190612855565b6102bf61037f3660046123c0565b6110fd565b6102d46103923660046124ff565b611249565b6103aa6103a5366004612448565b611254565b604051610200919061272c565b6102f46103c53660046123a4565b6113e1565b61028961149a565b6102f46103e03660046123a4565b6114aa565b6102526103f33660046124ff565b61163c565b6102a96104063660046125a3565b61164a565b61041e6104193660046125a3565b611656565b6040516102009190612779565b61043361173c565b60405161020091906127c6565b6102d461044e3660046125a3565b611853565b61045b61185e565b60405161020091906128e3565b61047061186e565b60405161020092919061287b565b61027461048c3660046124ff565b611987565b6102f4611992565b6060806104a4611a4c565b90939092509050565b6060806104b8611a4c565b80519092509050806001600160401b03811180156104d557600080fd5b5060405190808252806020026020018201604052801561050957816020015b60608152602001906001900390816104f45790505b5092505b80156105be578060019003905081818151811061052657fe5b60200260200101516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561056657600080fd5b505afa15801561057a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105a29190810190612531565b8382815181106105ae57fe5b602002602001018190525061050d565b509091565b60606105ce82611c86565b6001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561060657600080fd5b505afa15801561061a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106429190810190612531565b90505b919050565b600080600061065884611c86565b6001600160a01b03166365f5cd866040518163ffffffff1660e01b815260040160606040518083038186803b15801561069057600080fd5b505afa1580156106a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c891906125de565b9250925092509193909250565b60008054600160b01b900460ff16806106f85750600054600160a81b900460ff16155b1561083657610705611d37565b6000826001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561074057600080fd5b505afa158015610754573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261077c9190810190612531565b905060038160405161078e91906126fc565b908152602001604051809103902054915081600014156107e5576002805490509150816001016003826040516107c491906126fc565b908152604051908190036020019020556002805460010181556000526107f4565b6001820391506107f482611d6e565b826002838154811061080257fe5b6000918252602082206005909102010180546001600160a01b0319166001600160a01b039290921691909117905550610645565b610645600036611e01565b6002546060906000816001600160401b038111801561085f57600080fd5b50604051908082528060200260200182016040528015610889578160200160208202803683370190505b5090505b81156108f75781600190039150600282815481106108a757fe5b600091825260208220600590910201015481516001600160a01b03909116908290849081106108d257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505061088d565b91505090565b60008061090983611f84565b6001600160a01b031663eb91d37e6040518163ffffffff1660e01b8152600401604080518083038186803b15801561094057600080fd5b505afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097891906125bb565b91509150915091565b606060008061098e611a4c565b9150915061099c8282611fc0565b9250505090565b60008054600160a81b900460ff166109c6576000546001600160a01b0316610a33565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b158015610a0657600080fd5b505afa158015610a1a573d6000803e3d6000fd5b505050506040513d6020811015610a3057600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b158015610a7c57600080fd5b505afa158015610a90573d6000803e3d6000fd5b505050506040513d6020811015610aa657600080fd5b5051610ae9576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b0319811660009081526001602052604090208054610b55576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015610bab576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c455780601f10610c1a57610100808354040283529160200191610c45565b820191906000526020600020905b815481529060010190602001808311610c2857829003601f168201915b5050506001600160e01b0319861660009081526001602081905260408220828155949550909250610c799150830182612228565b50506000805460ff60b01b1916600160b01b178155604051825130918491819060208401908083835b60208310610cc15780518252601f199092019160209182019101610ca2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610d23576040519150601f19603f3d011682016040523d82523d6000602084013e610d28565b606091505b50506000805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a1610d8781612137565b50505050565b60076001609c1b0181565b610da0612154565b6001600160e01b03198116600090815260016020526040902054610e0b576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b03198116600090815260016020819052604082208281559190610e7b90830182612228565b505050565b6060600082516001600160401b0381118015610e9b57600080fd5b50604051908082528060200260200182016040528015610ec5578160200160208202803683370190505b50905060005b8351811015610f1c57610ef0848281518110610ee357fe5b6020026020010151611c86565b828281518110610efc57fe5b6001600160a01b0390921660209283029190910190910152600101610ecb565b50610f278382611fc0565b9392505050565b600160208181526000928352604092839020805481840180548651600296821615610100026000190190911695909504601f81018590048502860185019096528585529094919392909190830182828015610fca5780601f10610f9f57610100808354040283529160200191610fca565b820191906000526020600020905b815481529060010190602001808311610fad57829003601f168201915b5050505050905082565b6060806060610fe1611a4c565b81519194509150806001600160401b0381118015610ffe57600080fd5b5060405190808252806020026020018201604052801561103257816020015b606081526020019060019003908161101d5790505b5092505b80156110e7578060019003905081818151811061104f57fe5b60200260200101516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561108f57600080fd5b505afa1580156110a3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110cb9190810190612531565b8382815181106110d757fe5b6020026020010181905250611036565b50909192565b60606110f7611a4c565b50919050565b6060600082516001600160401b038111801561111857600080fd5b50604051908082528060200260200182016040528015611142578160200160208202803683370190505b509050600083516001600160401b038111801561115e57600080fd5b50604051908082528060200260200182016040528015611188578160200160208202803683370190505b50905060005b8451811015611236576111b38582815181106111a657fe5b60200260200101516121b3565b8382815181106111bf57fe5b60200260200101818152505060028382815181106111d957fe5b6020026020010151815481106111eb57fe5b600091825260208220600590910201015482516001600160a01b039091169083908390811061121657fe5b6001600160a01b039092166020928302919091019091015260010161118e565b506112418282611fc0565b949350505050565b600061064282611f84565b600254815160609190806001600160401b038111801561127357600080fd5b5060405190808252806020026020018201604052801561129d578160200160208202803683370190505b5092505b80156113da578060019003905060008482815181106112bc57fe5b602002602001015190508281106040518060400160405280601881526020016000805160206129ea833981519152815250906113145760405162461bcd60e51b815260040161130b91906128ee565b60405180910390fd5b506002818154811061132257fe5b600091825260208220600590910201015484516001600160a01b039091169085908490811061134d57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006001600160a01b031684838151811061138457fe5b60200260200101516001600160a01b031614156113d457604080518082018252601881526000805160206129ea8339815191526020820152905162461bcd60e51b815261130b91906004016128ee565b506112a1565b5050919050565b600054600160a01b900460ff1615611437576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b60606114a4611a4c565b92915050565b600054600160b01b900460ff16806114cc5750600054600160a81b900460ff16155b1561162e576114d9611d37565b6000816001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561151457600080fd5b505afa158015611528573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115509190810190612531565b9050600060038260405161156491906126fc565b90815260405190819003602001902054905080156115f0576000190161158981611d6e565b60006002828154811061159857fe5b6000918252602082206005909102010180546001600160a01b0319166001600160a01b03929092169190911790556040516003906115d79084906126fc565b9081526020016040518091039020600090555050611629565b604080518082018252601881526000805160206129ea8339815191526020820152905162461bcd60e51b815261130b91906004016128ee565b611639565b611639600036611e01565b50565b600080600061065884611f84565b60008061090983611c86565b61165e61226c565b6002548210801561169f575060006001600160a01b03166002838154811061168257fe5b60009182526020822060059091020101546001600160a01b031614155b6040518060400160405280601881526020016000805160206129ea833981519152815250906116e15760405162461bcd60e51b815260040161130b91906128ee565b50600282815481106116ef57fe5b600091825260209091206040805160a0810191829052926005908102909201919082845b81546001600160a01b031681526001909101906020018083116117135750505050509050919050565b60606000611748611a4c565b80519092509050806001600160401b038111801561176557600080fd5b5060405190808252806020026020018201604052801561179957816020015b60608152602001906001900390816117845790505b5092505b801561184e57806001900390508181815181106117b657fe5b60200260200101516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156117f657600080fd5b505afa15801561180a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118329190810190612531565b83828151811061183e57fe5b602002602001018190525061179d565b505090565b600061064282611c86565b600054600160a81b900460ff1681565b606080606061187b611a4c565b81519194509150806001600160401b038111801561189857600080fd5b506040519080825280602002602001820160405280156118cc57816020015b60608152602001906001900390816118b75790505b5092505b801561198157806001900390508181815181106118e957fe5b60200260200101516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561192957600080fd5b505afa15801561193d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119659190810190612531565b83828151811061197157fe5b60200260200101819052506118d0565b50509091565b6000610642826121b3565b61199a612154565b600054600160a81b900460ff16156119f9576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60008054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b60025460609081906000816001600160401b0381118015611a6c57600080fd5b50604051908082528060200260200182016040528015611a96578160200160208202803683370190505b5090506000826001600160401b0381118015611ab157600080fd5b50604051908082528060200260200182016040528015611adb578160200160208202803683370190505b50905060008060005b85811015611b7757600060028281548110611afb57fe5b60009182526020822060059091020101546001600160a01b03908116915084168114611b6e5781868481518110611b2e57fe5b60200260200101818152505080858481518110611b4757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b50600101611ae4565b50806001600160401b0381118015611b8e57600080fd5b50604051908082528060200260200182016040528015611bb8578160200160208202803683370190505b509650806001600160401b0381118015611bd157600080fd5b50604051908082528060200260200182016040528015611bfb578160200160208202803683370190505b5095505b8015611c7d5780600190039050838181518110611c1857fe5b6020026020010151878281518110611c2c57fe5b602002602001018181525050828181518110611c4457fe5b6020026020010151868281518110611c5857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050611bff565b50505050509091565b60025460408051808201909152601881526000805160206129ea83398151915260208201526000918310611ccd5760405162461bcd60e51b815260040161130b91906128ee565b50600060028381548110611cdd57fe5b60009182526020822060059091020101546001600160a01b03169050806114a457604080518082018252601881526000805160206129ea8339815191526020820152905162461bcd60e51b815261130b91906004016128ee565b600054600160b01b900460ff1615611d6457333014611d5257fe5b6000805460ff60b01b19169055611d6c565b611d6c612154565b565b60045b8015611dfd5760028281548110611d8457fe5b90600052602060002090600502016001820360058110611da057fe5b0154600280546001600160a01b039092169184908110611dbc57fe5b90600052602060002090600502018260058110611dd557fe5b0180546001600160a01b0319166001600160a01b039290921691909117905560001901611d71565b5050565b611e09612154565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611e5157600080fd5b505afa158015611e65573d6000803e3d6000fd5b505050506040513d6020811015611e7b57600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b03198616815260016020818152604090922084518155848301518051919450611eff9392850192019061228a565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b600080611f90836121b3565b905060028181548110611f9f57fe5b60009182526020822060059091020101546001600160a01b03169392505050565b8051606090806001600160401b0381118015611fdb57600080fd5b5060405190808252806020026020018201604052801561201557816020015b612002612316565b815260200190600190039081611ffa5790505b50915060005b8181101561212f5784818151811061202f57fe5b602002602001015183828151811061204357fe5b6020026020010151600001818152505083818151811061205f57fe5b60200260200101516001600160a01b03166365f5cd866040518163ffffffff1660e01b815260040160606040518083038186803b15801561209f57600080fd5b505afa1580156120b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d791906125de565b8584815181106120e357fe5b60200260200101516020018685815181106120fa57fe5b602002602001015160600187868151811061211157fe5b6020908102919091010151604001929092529190525260010161201b565b505092915050565b3d604051818101604052816000823e8215612150578181f35b8181fd5b61215c6109a3565b6001600160a01b0316336001600160a01b031614611d6c576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b6000806003836040516121c691906126fc565b9081526020016040518091039020549050600081116040518060400160405280601881526020016000805160206129ea8339815191528152509061221d5760405162461bcd60e51b815260040161130b91906128ee565b506000190192915050565b50805460018160011615610100020316600290046000825580601f1061224e5750611639565b601f016020900490600052602060002090810190611639919061233e565b6040518060a001604052806005906020820280368337509192915050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826122c05760008555612306565b82601f106122d957805160ff1916838001178555612306565b82800160010185558215612306579182015b828111156123065782518255916020019190600101906122eb565b5061231292915061233e565b5090565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b5b80821115612312576000815560010161233f565b600082601f830112612363578081fd5b813561237661237182612987565b612947565b81815284602083860101111561238a578283fd5b816020850160208301379081016020019190915292915050565b6000602082840312156123b5578081fd5b8135610f27816129d4565b600060208083850312156123d2578182fd5b82356001600160401b038111156123e7578283fd5b8301601f810185136123f7578283fd5b80356124056123718261296a565b81815283810190838501865b8481101561243a576124288a888435890101612353565b84529286019290860190600101612411565b509098975050505050505050565b6000602080838503121561245a578182fd5b82356001600160401b0381111561246f578283fd5b8301601f8101851361247f578283fd5b803561248d6123718261296a565b81815283810190838501858402850186018910156124a9578687fd5b8694505b838510156124cb5780358352600194909401939185019185016124ad565b50979650505050505050565b6000602082840312156124e8578081fd5b81356001600160e01b031981168114610f27578182fd5b600060208284031215612510578081fd5b81356001600160401b03811115612525578182fd5b61124184828501612353565b600060208284031215612542578081fd5b81516001600160401b03811115612557578182fd5b8201601f81018413612567578182fd5b805161257561237182612987565b818152856020838501011115612589578384fd5b61259a8260208301602086016129a8565b95945050505050565b6000602082840312156125b4578081fd5b5035919050565b600080604083850312156125cd578081fd5b505080516020909101519092909150565b6000806000606084860312156125f2578081fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b838110156126435781516001600160a01b03168752958201959082019060010161261e565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b858110156126945782840389526126828483516126d0565b9885019893509084019060010161266a565b5091979650505050505050565b6000815180845260208085019450808401835b83811015612643578151875295820195908201906001016126b4565b600081518084526126e88160208601602086016129a8565b601f01601f19169290920160200192915050565b6000825161270e8184602087016129a8565b9190910192915050565b6001600160a01b0391909116815260200190565b6020808252825182820181905260009190848201906040850190845b8181101561276d5783516001600160a01b031683529284019291840191600101612748565b50909695505050505050565b60a08101818360005b60058110156127aa5781516001600160a01b0316835260209283019290910190600101612782565b50505092915050565b600060208252610f27602083018461260b565b600060208252610f27602083018461264e565b6000604082526127ec604083018561264e565b828103602084015261259a818561260b565b602080825282518282018190526000919060409081850190868401855b828110156126945781518051855286810151878601528581015186860152606090810151908501526080909301929085019060010161281b565b600060208252610f2760208301846126a1565b6000604082526127ec60408301856126a1565b60006040825261288e60408301856126a1565b828103602084015261259a818561264e565b6000606082526128b360608301866126a1565b82810360208401526128c5818661264e565b905082810360408401526128d9818561260b565b9695505050505050565b901515815260200190565b600060208252610f2760208301846126d0565b90815260200190565b60008382526040602083015261124160408301846126d0565b918252602082015260400190565b9283526020830191909152604082015260600190565b6040518181016001600160401b038111828210171561296257fe5b604052919050565b60006001600160401b0382111561297d57fe5b5060209081020190565b60006001600160401b0382111561299a57fe5b50601f01601f191660200190565b60005b838110156129c35781810151838201526020016129ab565b83811115610d875750506000910152565b6001600160a01b038116811461163957600080fdfe4654534f20696e646578206e6f7420737570706f727465640000000000000000a264697066735822122001e137c29674d4a64e73c17252c99a667f2d7062d2dc5ff784a7754da58012b964736f6c634300070600336080604052600160005534801561001557600080fd5b50604051610c75380380610c7583398101604081905261003491610059565b600480546001600160a01b0319166001600160a01b0392909216919091179055610087565b60006020828403121561006a578081fd5b81516001600160a01b0381168114610080578182fd5b9392505050565b610bdf806100966000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c806347ed51b11161006657806347ed51b1146101095780635fc560141461011157806398dccfc214610124578063aa89dfd414610137578063b06cbaf71461014a57610093565b806309fcb40014610098578063345705a4146100c15780633de2cb1c146100d657806346538074146100e9575b600080fd5b6100ab6100a63660046108e3565b61016b565b6040516100b8919061096f565b60405180910390f35b6100d46100cf3660046108e3565b61022f565b005b6100d46100e4366004610790565b610298565b6100fc6100f7366004610774565b6102ee565b6040516100b89190610b64565b6100fc610300565b6100d461011f366004610774565b610306565b6100fc6101323660046108e3565b610352565b6100ab61014536600461085c565b610364565b61015d610158366004610774565b6103fc565b6040516100b89291906109a4565b600081815260016020526040902054606090806101a35760405162461bcd60e51b815260040161019a90610ad3565b60405180910390fd5b6000838152600360205260409020546001600160a01b0316806101d8575050604080516000815260208101909152905061022a565b60408051600180825281830190925260009160208083019080368337019050509050818160008151811061020857fe5b6001600160a01b0390921660209283029190910190910152925061022a915050565b919050565b6004546001600160a01b031633146102595760405162461bcd60e51b815260040161019a90610b36565b600081815260016020526040902054156102855760405162461bcd60e51b815260040161019a90610a9c565b6000805491815260016020526040902055565b6102a18261054b565b156102be5760405162461bcd60e51b815260040161019a90610a73565b60006102ca8383610551565b9050806102e95760405162461bcd60e51b815260040161019a90610b0a565b505050565b60026020526000908152604090205481565b60005481565b6004546001600160a01b031633146103305760405162461bcd60e51b815260040161019a90610b36565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b60016020526000908152604090205481565b600554604051630e848da360e41b81526060916000916001600160a01b039091169063e848da309061039a908690600401610a20565b60206040518083038186803b1580156103b257600080fd5b505afa1580156103c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ea91906108fb565b90506103f58161016b565b9392505050565b6060806104088361054b565b156104255760405162461bcd60e51b815260040161019a90610a73565b600560009054906101000a90046001600160a01b03166001600160a01b031663798aac5b6040518163ffffffff1660e01b815260040160006040518083038186803b15801561047357600080fd5b505afa158015610487573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104af91908101906107bb565b80519092508067ffffffffffffffff811180156104cb57600080fd5b506040519080825280602002602001820160405280156104f5578160200160208202803683370190505b50915060005b81811015610544576105208585838151811061051357fe5b6020026020010151610551565b83828151811061052c57fe5b911515602092830291909101909101526001016104fb565b5050915091565b50600090565b6000818152600160205260408120548061057d5760405162461bcd60e51b815260040161019a90610ad3565b6000838152600360205260409020546001600160a01b039081169085168114156105ac5760019250505061063c565b600084815260036020908152604080832080546001600160a01b0319166001600160a01b038a1617905580516001808252818301909252918281019080368337019050509050818160008151811061060057fe5b60200260200101906001600160a01b031690816001600160a01b03168152505061062a8186610642565b610634868661070a565b600193505050505b92915050565b60005b82518110156106a2577f33359f2769756ca8d0da4683f25ee440744d6f18bfb166dbfb59315a8c62b01683828151811061067b57fe5b602002602001015183604051610692929190610956565b60405180910390a1600101610645565b50600480546040516376794efb60e01b81526001600160a01b03909116916376794efb916106d4918691869101610982565b600060405180830381600087803b1580156106ee57600080fd5b505af1158015610702573d6000803e3d6000fd5b505050505050565b7f66a8b13abe95391d1851f5bc319f3dde54ce8f2f40a5fe226aa3251d805832e3828260405161073b929190610956565b60405180910390a160048054604051639d986f9160e01b81526001600160a01b0390911691639d986f91916106d4918691869101610956565b600060208284031215610785578081fd5b81356103f581610b91565b600080604083850312156107a2578081fd5b82356107ad81610b91565b946020939093013593505050565b600060208083850312156107cd578182fd5b825167ffffffffffffffff808211156107e4578384fd5b818501915085601f8301126107f7578384fd5b81518181111561080357fe5b8381029150610813848301610b6d565b8181528481019084860184860187018a101561082d578788fd5b8795505b8386101561084f578051835260019590950194918601918601610831565b5098975050505050505050565b6000602080838503121561086e578182fd5b823567ffffffffffffffff80821115610885578384fd5b818501915085601f830112610898578384fd5b8135818111156108a457fe5b6108b6601f8201601f19168501610b6d565b915080825286848285010111156108cb578485fd5b80848401858401378101909201929092529392505050565b6000602082840312156108f4578081fd5b5035919050565b60006020828403121561090c578081fd5b5051919050565b6000815180845260208085019450808401835b8381101561094b5781516001600160a01b031687529582019590820190600101610926565b509495945050505050565b6001600160a01b03929092168252602082015260400190565b6000602082526103f56020830184610913565b6000604082526109956040830185610913565b90508260208301529392505050565b604080825283519082018190526000906020906060840190828701845b828110156109dd578151845292840192908401906001016109c1565b50505083810382850152845180825285830191830190845b81811015610a135783511515835292840192918401916001016109f5565b5090979650505050505050565b6000602080835283518082850152825b81811015610a4c57858101830151858201604001528201610a30565b81811115610a5d5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252600f908201526e74727573746564206164647265737360881b604082015260600190565b60208082526017908201527f77686974656c69737420616c7265616479206578697374000000000000000000604082015260600190565b60208082526018908201527f4654534f20696e646578206e6f7420737570706f727465640000000000000000604082015260600190565b602080825260129082015271766f746520706f77657220746f6f206c6f7760701b604082015260600190565b60208082526014908201527337b7363c90383934b1b29039bab136b4ba3a32b960611b604082015260600190565b90815260200190565b60405181810167ffffffffffffffff81118282101715610b8957fe5b604052919050565b6001600160a01b0381168114610ba657600080fd5b5056fea26469706673582212201bb10dff8af3d8da157be6b63a20968c3dcf75f800fa643ae71c1ba5022ae7b964736f6c6343000706003360806040523480156200001157600080fd5b50604051620013e8380380620013e8833981810160405260a08110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b5060409081526020828101519183015160608401516080909401518751939650909450916200011c916001919088019062000163565b50426003556000805460ff19166001179055600480546001600160a01b039095166001600160a01b031990951694909417909355600791909155600855600955506200020f565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200019b5760008555620001e6565b82601f10620001b657805160ff1916838001178555620001e6565b82800160010185558215620001e6579182015b82811115620001e6578251825591602001919060010190620001c9565b50620001f4929150620001f8565b5090565b5b80821115620001f45760008155600101620001f9565b6111c9806200021f6000396000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c80638357d08c11610130578063cf35bdd0116100b8578063e536f3961161007c578063e536f39614610503578063eb91d37e14610747578063f670ebe3146108fd578063f72cab2814610922578063f937d6ad1461094e57610232565b8063cf35bdd0146107e9578063d0d552dd14610806578063d89601fd1461082c578063e3749e0c14610834578063e3b3a3b3146108c857610232565b8063a29a839f116100ff578063a29a839f1461073f578063af52df0814610747578063c1f6c36e14610768578063c5d8b9e7146107a0578063cd4b6914146107cc57610232565b80638357d08c1461060557806395d89b41146106c2578063974d7a6b146105035780639edbf007146105bb57610232565b806340462a2d116101be5780635c222bad116101825780635c222bad146105bb57806365f5cd86146104365780636b52b242146105c35780637d1d6f12146105cb578063826cc76b146105e857610232565b806340462a2d1461043e5780634afd5102146105035780635303548b14610520578063555989da1461054f5780635a3c9d8e1461055757610232565b8063144e159111610205578063144e15911461036c57806318931c35146103925780632f0a6f3c146103ea578063306ba253146104135780633cacb3ae1461043657610232565b806302fb0c5e14610237578063040d73b81461025357806311a7aaaa146102a3578063131fdee2146102c7575b600080fd5b61023f610956565b604080519115158252519081900360200190f35b61025b61095f565b6040518086815260200185815260200184600581111561027757fe5b815260200183815260200182600581111561028e57fe5b81526020019550505050505060405180910390f35b6102ab61096e565b604080516001600160a01b039092168252519081900360200190f35b61036a600480360360208110156102dd57600080fd5b8101906020810181356401000000008111156102f857600080fd5b82018360208201111561030a57600080fd5b8035906020019184602083028401116401000000008311171561032c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610973945050505050565b005b610374610a19565b60408051938452602084019290925282820152519081900360600190f35b61039a610a27565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103d65781810151838201526020016103be565b505050509050019250505060405180910390f35b61036a6004803603606081101561040057600080fd5b5080359060208101359060400135610973565b61036a6004803603604081101561042957600080fd5b5080359060200135610973565b610374610a8e565b6104636004803603604081101561045457600080fd5b50803590602001351515610a98565b604051808060200180602001848152602001838103835286818151815260200191508051906020019060200280838360005b838110156104ad578181015183820152602001610495565b50505050905001838103825285818151815260200191508051906020019060200280838360005b838110156104ec5781810151838201526020016104d4565b505050509050019550505050505060405180910390f35b61036a6004803603602081101561051957600080fd5b5035610973565b61053d6004803603602081101561053657600080fd5b5035610b04565b60408051918252519081900360200190f35b61036a610973565b61036a600480360361012081101561056e57600080fd5b81359160208101359160408201359160608101359160808201359160a08101359160c08201359160e08101359181019061012081016101008201356401000000008111156102f857600080fd5b6102ab610b17565b61053d610b7a565b61053d600480360360208110156105e157600080fd5b5035610b17565b6102ab600480360360208110156105fe57600080fd5b5035610b7f565b61060d610ba9565b604051808060200180602001878152602001868152602001858152602001848152602001838103835289818151815260200191508051906020019060200280838360005b83811015610669578181015183820152602001610651565b50505050905001838103825288818151815260200191508051906020019060200280838360005b838110156106a8578181015183820152602001610690565b505050509050019850505050505050505060405180910390f35b6106ca610c4e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156107045781810151838201526020016106ec565b50505050905090810190601f1680156107315780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61053d610cdb565b61074f610cea565b6040805192835260208301919091528051918290030190f35b61036a6004803603608081101561077e57600080fd5b506001600160a01b038135169060208101359060408101359060600135610cf0565b61053d600480360360408110156107b657600080fd5b50803590602001356001600160a01b0316610e9e565b61053d600480360360208110156107e257600080fd5b5035610ec6565b6102ab600480360360208110156107ff57600080fd5b5035610ed1565b61036a6004803603602081101561081c57600080fd5b50356001600160a01b0316610973565b61053d610ee1565b61083c610f0f565b604051808a815260200189815260200188815260200187815260200186815260200185815260200184815260200183815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156108ac578181015183820152602001610894565b505050509050019a505050505050505050505060405180910390f35b6108d0610fe1565b60408051958652602086019490945284840192909252606084015215156080830152519081900360a00190f35b61036a6004803603604081101561091357600080fd5b50803590602001351515610973565b61053d6004803603604081101561093857600080fd5b506001600160a01b038135169060200135611017565b6102ab61101f565b60005460ff1681565b60008060008060009091929394565b600090565b6040805180820190915260178152600080516020611174833981519152602082015260405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109de5781810151838201526020016109c6565b50505050905090810190601f168015610a0b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600754600854600954909192565b604080518082018252601781526000805160206111748339815191526020808301918252925162461bcd60e51b81526004810193845282516024820152825160609492839260440191808383600083156109de5781810151838201526020016109c6565b90565b6000806000909192565b604080518082018252601781526000805160206111748339815191526020808301918252925162461bcd60e51b815260048101938452825160248201528251606094859460009490939192839260440191908083838983156109de5781810151838201526020016109c6565b6000610b0f8261102e565b90505b919050565b604080518082018252601781526000805160206111748339815191526020808301918252925162461bcd60e51b815260048101938452825160248201528251600094928392604401918083838983156109de5781810151838201526020016109c6565b600581565b60068181548110610b8f57600080fd5b6000918252602090912001546001600160a01b0316905081565b606080600080600080600060405180604001604052806017815260200160008051602061117483398151915281525090610c245760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109de5781810151838201526020016109c6565b50506040805160008082526020820181815282840190935290979196509450849350839250829150565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610cd35780601f10610ca857610100808354040283529160200191610cd3565b820191906000526020600020905b815481529060010190602001808311610cb657829003601f168201915b505050505081565b6000610ce5611059565b905090565b60008091565b6004546001600160a01b03163314610d0a57610d0a611064565b60408051808201909152600e81526d0a0e4d2c6ca40e8dede40d0d2ced60931b6020820152600160801b8310610d815760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109de5781810151838201526020016109c6565b506008546007546001850190910201428111801590610da35750600954810142105b6040518060400160405280601881526020017f52657665616c20706572696f64206e6f7420616374697665000000000000000081525090610e255760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109de5781810151838201526020016109c6565b506000848152600a602090815260408083206001600160a01b038916808552908352818420879055815187815242938101939093528282018490526060830193909352518692917fc1b1d37612887c207efe8cb44f4069b7f10c45edaf6e8405648a94e02b6e9ec7919081900360800190a35050505050565b6000918252600a602090815260408084206001600160a01b0393909316845291905290205490565b6000610b0f826110cc565b60058181548110610b8f57600080fd5b600080610eec611059565b905080610efd576000915050610a8b565b610f09600182036110cc565b91505090565b6000806000806000806000806060600060405180604001604052806017815260200160008051602061117483398151915281525090610f8f5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109de5781810151838201526020016109c6565b5060008080808080808080604051908082528060200260200182016040528015610fc3578160200160208202803683370190505b50985098509850985098509850985098509850909192939495969798565b6000806000806000610ff1611059565b945060085485600101026007540193506009548401925060009150600090509091929394565b600092915050565b6004546001600160a01b031681565b600060075482101561104257506000610b12565b60085460075483038161105157fe5b049050610b12565b6000610ce54261102e565b604080518082018252600d81526c1058d8d95cdcc819195b9a5959609a1b6020808301918252925162461bcd60e51b815260048101938452825160248201528251929392839260449092019190808383600083156109de5781810151838201526020016109c6565b6004805460408051633352da4560e21b8152928301849052516000926001600160a01b039092169163cd4b6914916024808301926020929190829003018186803b15801561111957600080fd5b505afa15801561112d573d6000803e3d6000fd5b505050506040513d602081101561114357600080fd5b5051604080516020808201939093523081830152815180820383018152606090910190915280519101209291505056fe556e617661696c61626c6520666f722074657374696e67000000000000000000a2646970667358221220d46ee4d8e70d1fb09f70aee871b55f50e2bf8db43014b8bbb5407aa43021dce664736f6c63430007060033",
335
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80639d986f9111610097578063c0156bcc11610066578063c0156bcc146101b9578063cd4b6914146101c1578063d89601fd146101d4578063e2db5a52146101dc576100f5565b80639d986f9114610178578063aea36b531461018b578063b00c0b761461019e578063b39c6858146101b1576100f5565b806376794efb116100d357806376794efb146101355780637ac420ad1461014a5780638c9d28b61461015d5780638fc6f66714610165576100f5565b80633b56f098146100fa5780635267a15d1461011857806371e1fad91461012d575b600080fd5b6101026101ef565b60405161010f91906113d5565b60405180910390f35b6101206101f7565b60405161010f91906112af565b61012061021c565b610148610143366004611003565b61022c565b005b610102610158366004610fb5565b6102e8565b610120610303565b610148610173366004611254565b610312565b610148610186366004610fd8565b610573565b610148610199366004610fb5565b6105f5565b6101486101ac366004611046565b610658565b610120610703565b61010261071d565b6101026101cf3660046111b2565b610722565b61010261073c565b6101486101ea3660046111e2565b610861565b600160801b81565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b6001546001600160a01b03165b90565b600154604080518082019091526016815275566f7465722077686974656c6973746572206f6e6c7960501b6020820152906001600160a01b0316331461028e5760405162461bcd60e51b815260040161028591906113de565b60405180910390fd5b5060005b82518110156102e357816001901b19600260008584815181106102b157fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002080549091169055600101610292565b505050565b6001600160a01b031660009081526002602052604090205490565b6000546001600160a01b031690565b6000805460405163d75f6d8160e01b81526001600160a01b039091169063d75f6d81906103439084906004016113d5565b60206040518083038186803b15801561035b57600080fd5b505afa15801561036f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103939190611196565b9050806001600160a01b031663a29a839f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156103ce57600080fd5b505afa1580156103e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040691906111ca565b83146040518060400160405280600e81526020016d15dc9bdb99c8195c1bd8da081a5960921b8152509061044d5760405162461bcd60e51b815260040161028591906113de565b506000838152600360209081526040808320338452825291829020548251808401909352601983527f4475706c6963617465207375626d697420696e2065706f63680000000000000091830191909152156104bb5760405162461bcd60e51b815260040161028591906113de565b5033600090815260026020908152604091829020548251808401909352600f83526e139bdd081dda1a5d195b1a5cdd1959608a1b918301919091526105135760405162461bcd60e51b815260040161028591906113de565b5060008381526003602090815260408083203380855292529182902084905590518491907f5e2f64e70eafef31c2f48c8ef140b36406531c36ab0faaede30843202c16f6a89061056690869042906113c7565b60405180910390a3505050565b600154604080518082019091526016815275566f7465722077686974656c6973746572206f6e6c7960501b6020820152906001600160a01b031633146105cc5760405162461bcd60e51b815260040161028591906113de565b506001600160a01b0390911660009081526002602052604090208054600190921b919091179055565b60006105ff6101f7565b6001600160a01b0316146040518060400160405280600b81526020016a105b1c9958591e481cd95d60aa1b8152509061064b5760405162461bcd60e51b815260040161028591906113de565b5061065581610cea565b50565b6106606101f7565b6001600160a01b0316336001600160a01b0316146106bc576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b6106f56106f083836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250610d0e565b610cea565b6106ff8282610e3b565b5050565b600060405162461bcd60e51b815260040161028590611431565b606481565b60006004606483066064811061073457fe5b015492915050565b6000805460405163d75f6d8160e01b815282916001600160a01b03169063d75f6d819061076d9084906004016113d5565b60206040518083038186803b15801561078557600080fd5b505afa158015610799573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bd9190611196565b90506000816001600160a01b031663a29a839f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156107fa57600080fd5b505afa15801561080e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083291906111ca565b90508061084457600092505050610229565b600460646000198301066064811061085857fe5b01549250505090565b8251825160408051808201909152601a81527f4172726179206c656e6774687320646f206e6f74206d6174636800000000000060208201529082146108b95760405162461bcd60e51b815260040161028591906113de565b5060408051808201909152601781527f546f6f20736d616c6c2072616e646f6d206e756d6265720000000000000000006020820152600160801b8310156109135760405162461bcd60e51b815260040161028591906113de565b508383833360405160200161092b9493929190611380565b60408051601f19818403018152828252805160209182012060008981526003835283812033825283528390205460608501909352602380855292149291906114d9908301399061098e5760405162461bcd60e51b815260040161028591906113de565b50600080546040516313968ea760e31b81526001600160a01b0390911690639cb47538906109c090889060040161136d565b60006040518083038186803b1580156109d857600080fd5b505afa1580156109ec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a1491908101906110fd565b3360009081526002602052604081205491925083610a33576000610ac7565b82600081518110610a4057fe5b60200260200101516001600160a01b031663f72cab28338a6040518363ffffffff1660e01b8152600401610a759291906112c3565b602060405180830381600087803b158015610a8f57600080fd5b505af1158015610aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac791906111ca565b90506000805b85811015610c3f578015801590610af75750888181518110610aeb57fe5b60200260200101518210155b15610b4757604080518082018252601b81527f4654534f20696e6469636573206e6f7420696e6372656173696e6700000000006020820152905162461bcd60e51b815261028591906004016113de565b888181518110610b5357fe5b60200260200101519150816001901b841660001415610ba957604080518082018252600f81526e139bdd081dda1a5d195b1a5cdd1959608a1b6020820152905162461bcd60e51b815261028591906004016113de565b848181518110610bb557fe5b60200260200101516001600160a01b031663c1f6c36e338c8b8581518110610bd957fe5b6020026020010151876040518563ffffffff1660e01b8152600401610c0194939291906112dc565b600060405180830381600087803b158015610c1b57600080fd5b505af1158015610c2f573d6000803e3d6000fd5b505060019092019150610acd9050565b5060008981526003602090815260408083203384528252808320929092559051610c6d9188918a9101611460565b60408051601f198184030181529190528051602090910120600460648b0660648110610c9557fe5b0180549091019055604051899033907fafffa539ac1cad89751c875d871abadc6deb7bd51bf6baea004fc71ca0a48fa590610cd79088908c908c904290611302565b60405180910390a3505050505050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015610d52578181015183820152602001610d3a565b50505050905090810190601f168015610d7f5780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b8651811015610de757868181518110610db557fe5b6020026020010151831415610ddf57858181518110610dd057fe5b60200260200101519150610de7565b600101610da0565b506001600160a01b038116610e32576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b610e6a82826040518060400160405280600c81526020016b4674736f526567697374727960a01b815250610d0e565b6000806101000a8154816001600160a01b0302191690836001600160a01b03160217905550610ec282826040518060400160405280601081526020016f2b37ba32b92bb434ba32b634b9ba32b960811b815250610d0e565b600180546001600160a01b0319166001600160a01b03929092169190911790555050565b600082601f830112610ef6578081fd5b81356020610f0b610f06836114a5565b611481565b8281528181019085830183850287018401881015610f27578586fd5b855b85811015610f4e578135610f3c816114c3565b84529284019290840190600101610f29565b5090979650505050505050565b600082601f830112610f6b578081fd5b81356020610f7b610f06836114a5565b8281528181019085830183850287018401881015610f97578586fd5b855b85811015610f4e57813584529284019290840190600101610f99565b600060208284031215610fc6578081fd5b8135610fd1816114c3565b9392505050565b60008060408385031215610fea578081fd5b8235610ff5816114c3565b946020939093013593505050565b60008060408385031215611015578182fd5b823567ffffffffffffffff81111561102b578283fd5b61103785828601610ee6565b95602094909401359450505050565b60008060408385031215611058578182fd5b823567ffffffffffffffff8082111561106f578384fd5b818501915085601f830112611082578384fd5b81356020611092610f06836114a5565b82815281810190858301838502870184018b10156110ae578889fd5b8896505b848710156110d05780358352600196909601959183019183016110b2565b50965050860135925050808211156110e6578283fd5b506110f385828601610ee6565b9150509250929050565b6000602080838503121561110f578182fd5b825167ffffffffffffffff811115611125578283fd5b8301601f81018513611135578283fd5b8051611143610f06826114a5565b818152838101908385018584028501860189101561115f578687fd5b8694505b8385101561118a578051611176816114c3565b835260019490940193918501918501611163565b50979650505050505050565b6000602082840312156111a7578081fd5b8151610fd1816114c3565b6000602082840312156111c3578081fd5b5035919050565b6000602082840312156111db578081fd5b5051919050565b600080600080608085870312156111f7578182fd5b84359350602085013567ffffffffffffffff80821115611215578384fd5b61122188838901610f5b565b94506040870135915080821115611236578384fd5b5061124387828801610f5b565b949793965093946060013593505050565b60008060408385031215611266578182fd5b50508035926020909101359150565b6000815180845260208085019450808401835b838110156112a457815187529582019590820190600101611288565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b6080808252855190820181905260009060209060a0840190828901845b828110156113445781516001600160a01b03168452928401929084019060010161131f565b505050838103828501526113588188611275565b60408501969096525050506060015292915050565b600060208252610fd16020830184611275565b6000608082526113936080830187611275565b82810360208401526113a58187611275565b604084019590955250506001600160a01b039190911660609091015292915050565b918252602082015260400190565b90815260200190565b6000602080835283518082850152825b8181101561140a578581018301518582016040015282016113ee565b8181111561141b5783604083870101525b50601f01601f1916929092016040019392505050565b602080825260159082015274139bdd081a5b88191d5b5b5e4818dbdb9d1c9858dd605a1b604082015260600190565b6000838252604060208301526114796040830184611275565b949350505050565b60405181810167ffffffffffffffff8111828210171561149d57fe5b604052919050565b600067ffffffffffffffff8211156114b957fe5b5060209081020190565b6001600160a01b038116811461065557600080fdfe507269636520616c72656164792072657665616c6564206f72206e6f742076616c6964a2646970667358221220de0291dfa7711c7070d64177d13c1d64c782dd9cf080b76bf4a0187893a4e30264736f6c63430007060033",
336
336
  "linkReferences": {},
337
337
  "deployedLinkReferences": {}
338
338
  }
@@ -229,8 +229,8 @@
229
229
  "type": "function"
230
230
  }
231
231
  ],
232
- "bytecode": "0x6080604052600160005534801561001557600080fd5b50604051610c75380380610c7583398101604081905261003491610059565b600480546001600160a01b0319166001600160a01b0392909216919091179055610087565b60006020828403121561006a578081fd5b81516001600160a01b0381168114610080578182fd5b9392505050565b610bdf806100966000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c806347ed51b11161006657806347ed51b1146101095780635fc560141461011157806398dccfc214610124578063aa89dfd414610137578063b06cbaf71461014a57610093565b806309fcb40014610098578063345705a4146100c15780633de2cb1c146100d657806346538074146100e9575b600080fd5b6100ab6100a63660046108e3565b61016b565b6040516100b8919061096f565b60405180910390f35b6100d46100cf3660046108e3565b61022f565b005b6100d46100e4366004610790565b610298565b6100fc6100f7366004610774565b6102ee565b6040516100b89190610b64565b6100fc610300565b6100d461011f366004610774565b610306565b6100fc6101323660046108e3565b610352565b6100ab61014536600461085c565b610364565b61015d610158366004610774565b6103fc565b6040516100b89291906109a4565b600081815260016020526040902054606090806101a35760405162461bcd60e51b815260040161019a90610ad3565b60405180910390fd5b6000838152600360205260409020546001600160a01b0316806101d8575050604080516000815260208101909152905061022a565b60408051600180825281830190925260009160208083019080368337019050509050818160008151811061020857fe5b6001600160a01b0390921660209283029190910190910152925061022a915050565b919050565b6004546001600160a01b031633146102595760405162461bcd60e51b815260040161019a90610b36565b600081815260016020526040902054156102855760405162461bcd60e51b815260040161019a90610a9c565b6000805491815260016020526040902055565b6102a18261054b565b156102be5760405162461bcd60e51b815260040161019a90610a73565b60006102ca8383610551565b9050806102e95760405162461bcd60e51b815260040161019a90610b0a565b505050565b60026020526000908152604090205481565b60005481565b6004546001600160a01b031633146103305760405162461bcd60e51b815260040161019a90610b36565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b60016020526000908152604090205481565b600554604051630e848da360e41b81526060916000916001600160a01b039091169063e848da309061039a908690600401610a20565b60206040518083038186803b1580156103b257600080fd5b505afa1580156103c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ea91906108fb565b90506103f58161016b565b9392505050565b6060806104088361054b565b156104255760405162461bcd60e51b815260040161019a90610a73565b600560009054906101000a90046001600160a01b03166001600160a01b031663798aac5b6040518163ffffffff1660e01b815260040160006040518083038186803b15801561047357600080fd5b505afa158015610487573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104af91908101906107bb565b80519092508067ffffffffffffffff811180156104cb57600080fd5b506040519080825280602002602001820160405280156104f5578160200160208202803683370190505b50915060005b81811015610544576105208585838151811061051357fe5b6020026020010151610551565b83828151811061052c57fe5b911515602092830291909101909101526001016104fb565b5050915091565b50600090565b6000818152600160205260408120548061057d5760405162461bcd60e51b815260040161019a90610ad3565b6000838152600360205260409020546001600160a01b039081169085168114156105ac5760019250505061063c565b600084815260036020908152604080832080546001600160a01b0319166001600160a01b038a1617905580516001808252818301909252918281019080368337019050509050818160008151811061060057fe5b60200260200101906001600160a01b031690816001600160a01b03168152505061062a8186610642565b610634868661070a565b600193505050505b92915050565b60005b82518110156106a2577f33359f2769756ca8d0da4683f25ee440744d6f18bfb166dbfb59315a8c62b01683828151811061067b57fe5b602002602001015183604051610692929190610956565b60405180910390a1600101610645565b50600480546040516376794efb60e01b81526001600160a01b03909116916376794efb916106d4918691869101610982565b600060405180830381600087803b1580156106ee57600080fd5b505af1158015610702573d6000803e3d6000fd5b505050505050565b7f66a8b13abe95391d1851f5bc319f3dde54ce8f2f40a5fe226aa3251d805832e3828260405161073b929190610956565b60405180910390a160048054604051639d986f9160e01b81526001600160a01b0390911691639d986f91916106d4918691869101610956565b600060208284031215610785578081fd5b81356103f581610b91565b600080604083850312156107a2578081fd5b82356107ad81610b91565b946020939093013593505050565b600060208083850312156107cd578182fd5b825167ffffffffffffffff808211156107e4578384fd5b818501915085601f8301126107f7578384fd5b81518181111561080357fe5b8381029150610813848301610b6d565b8181528481019084860184860187018a101561082d578788fd5b8795505b8386101561084f578051835260019590950194918601918601610831565b5098975050505050505050565b6000602080838503121561086e578182fd5b823567ffffffffffffffff80821115610885578384fd5b818501915085601f830112610898578384fd5b8135818111156108a457fe5b6108b6601f8201601f19168501610b6d565b915080825286848285010111156108cb578485fd5b80848401858401378101909201929092529392505050565b6000602082840312156108f4578081fd5b5035919050565b60006020828403121561090c578081fd5b5051919050565b6000815180845260208085019450808401835b8381101561094b5781516001600160a01b031687529582019590820190600101610926565b509495945050505050565b6001600160a01b03929092168252602082015260400190565b6000602082526103f56020830184610913565b6000604082526109956040830185610913565b90508260208301529392505050565b604080825283519082018190526000906020906060840190828701845b828110156109dd578151845292840192908401906001016109c1565b50505083810382850152845180825285830191830190845b81811015610a135783511515835292840192918401916001016109f5565b5090979650505050505050565b6000602080835283518082850152825b81811015610a4c57858101830151858201604001528201610a30565b81811115610a5d5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252600f908201526e74727573746564206164647265737360881b604082015260600190565b60208082526017908201527f77686974656c69737420616c7265616479206578697374000000000000000000604082015260600190565b60208082526018908201527f4654534f20696e646578206e6f7420737570706f727465640000000000000000604082015260600190565b602080825260129082015271766f746520706f77657220746f6f206c6f7760701b604082015260600190565b60208082526014908201527337b7363c90383934b1b29039bab136b4ba3a32b960611b604082015260600190565b90815260200190565b60405181810167ffffffffffffffff81118282101715610b8957fe5b604052919050565b6001600160a01b0381168114610ba657600080fd5b5056fea2646970667358221220ec38611ad4365a9af8a9f2ef928c0564e254d9b1f257ffc694ff93f4319fa35164736f6c63430007060033",
233
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c806347ed51b11161006657806347ed51b1146101095780635fc560141461011157806398dccfc214610124578063aa89dfd414610137578063b06cbaf71461014a57610093565b806309fcb40014610098578063345705a4146100c15780633de2cb1c146100d657806346538074146100e9575b600080fd5b6100ab6100a63660046108e3565b61016b565b6040516100b8919061096f565b60405180910390f35b6100d46100cf3660046108e3565b61022f565b005b6100d46100e4366004610790565b610298565b6100fc6100f7366004610774565b6102ee565b6040516100b89190610b64565b6100fc610300565b6100d461011f366004610774565b610306565b6100fc6101323660046108e3565b610352565b6100ab61014536600461085c565b610364565b61015d610158366004610774565b6103fc565b6040516100b89291906109a4565b600081815260016020526040902054606090806101a35760405162461bcd60e51b815260040161019a90610ad3565b60405180910390fd5b6000838152600360205260409020546001600160a01b0316806101d8575050604080516000815260208101909152905061022a565b60408051600180825281830190925260009160208083019080368337019050509050818160008151811061020857fe5b6001600160a01b0390921660209283029190910190910152925061022a915050565b919050565b6004546001600160a01b031633146102595760405162461bcd60e51b815260040161019a90610b36565b600081815260016020526040902054156102855760405162461bcd60e51b815260040161019a90610a9c565b6000805491815260016020526040902055565b6102a18261054b565b156102be5760405162461bcd60e51b815260040161019a90610a73565b60006102ca8383610551565b9050806102e95760405162461bcd60e51b815260040161019a90610b0a565b505050565b60026020526000908152604090205481565b60005481565b6004546001600160a01b031633146103305760405162461bcd60e51b815260040161019a90610b36565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b60016020526000908152604090205481565b600554604051630e848da360e41b81526060916000916001600160a01b039091169063e848da309061039a908690600401610a20565b60206040518083038186803b1580156103b257600080fd5b505afa1580156103c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ea91906108fb565b90506103f58161016b565b9392505050565b6060806104088361054b565b156104255760405162461bcd60e51b815260040161019a90610a73565b600560009054906101000a90046001600160a01b03166001600160a01b031663798aac5b6040518163ffffffff1660e01b815260040160006040518083038186803b15801561047357600080fd5b505afa158015610487573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104af91908101906107bb565b80519092508067ffffffffffffffff811180156104cb57600080fd5b506040519080825280602002602001820160405280156104f5578160200160208202803683370190505b50915060005b81811015610544576105208585838151811061051357fe5b6020026020010151610551565b83828151811061052c57fe5b911515602092830291909101909101526001016104fb565b5050915091565b50600090565b6000818152600160205260408120548061057d5760405162461bcd60e51b815260040161019a90610ad3565b6000838152600360205260409020546001600160a01b039081169085168114156105ac5760019250505061063c565b600084815260036020908152604080832080546001600160a01b0319166001600160a01b038a1617905580516001808252818301909252918281019080368337019050509050818160008151811061060057fe5b60200260200101906001600160a01b031690816001600160a01b03168152505061062a8186610642565b610634868661070a565b600193505050505b92915050565b60005b82518110156106a2577f33359f2769756ca8d0da4683f25ee440744d6f18bfb166dbfb59315a8c62b01683828151811061067b57fe5b602002602001015183604051610692929190610956565b60405180910390a1600101610645565b50600480546040516376794efb60e01b81526001600160a01b03909116916376794efb916106d4918691869101610982565b600060405180830381600087803b1580156106ee57600080fd5b505af1158015610702573d6000803e3d6000fd5b505050505050565b7f66a8b13abe95391d1851f5bc319f3dde54ce8f2f40a5fe226aa3251d805832e3828260405161073b929190610956565b60405180910390a160048054604051639d986f9160e01b81526001600160a01b0390911691639d986f91916106d4918691869101610956565b600060208284031215610785578081fd5b81356103f581610b91565b600080604083850312156107a2578081fd5b82356107ad81610b91565b946020939093013593505050565b600060208083850312156107cd578182fd5b825167ffffffffffffffff808211156107e4578384fd5b818501915085601f8301126107f7578384fd5b81518181111561080357fe5b8381029150610813848301610b6d565b8181528481019084860184860187018a101561082d578788fd5b8795505b8386101561084f578051835260019590950194918601918601610831565b5098975050505050505050565b6000602080838503121561086e578182fd5b823567ffffffffffffffff80821115610885578384fd5b818501915085601f830112610898578384fd5b8135818111156108a457fe5b6108b6601f8201601f19168501610b6d565b915080825286848285010111156108cb578485fd5b80848401858401378101909201929092529392505050565b6000602082840312156108f4578081fd5b5035919050565b60006020828403121561090c578081fd5b5051919050565b6000815180845260208085019450808401835b8381101561094b5781516001600160a01b031687529582019590820190600101610926565b509495945050505050565b6001600160a01b03929092168252602082015260400190565b6000602082526103f56020830184610913565b6000604082526109956040830185610913565b90508260208301529392505050565b604080825283519082018190526000906020906060840190828701845b828110156109dd578151845292840192908401906001016109c1565b50505083810382850152845180825285830191830190845b81811015610a135783511515835292840192918401916001016109f5565b5090979650505050505050565b6000602080835283518082850152825b81811015610a4c57858101830151858201604001528201610a30565b81811115610a5d5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252600f908201526e74727573746564206164647265737360881b604082015260600190565b60208082526017908201527f77686974656c69737420616c7265616479206578697374000000000000000000604082015260600190565b60208082526018908201527f4654534f20696e646578206e6f7420737570706f727465640000000000000000604082015260600190565b602080825260129082015271766f746520706f77657220746f6f206c6f7760701b604082015260600190565b60208082526014908201527337b7363c90383934b1b29039bab136b4ba3a32b960611b604082015260600190565b90815260200190565b60405181810167ffffffffffffffff81118282101715610b8957fe5b604052919050565b6001600160a01b0381168114610ba657600080fd5b5056fea2646970667358221220ec38611ad4365a9af8a9f2ef928c0564e254d9b1f257ffc694ff93f4319fa35164736f6c63430007060033",
232
+ "bytecode": "0x6080604052600160005534801561001557600080fd5b50604051610c75380380610c7583398101604081905261003491610059565b600480546001600160a01b0319166001600160a01b0392909216919091179055610087565b60006020828403121561006a578081fd5b81516001600160a01b0381168114610080578182fd5b9392505050565b610bdf806100966000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c806347ed51b11161006657806347ed51b1146101095780635fc560141461011157806398dccfc214610124578063aa89dfd414610137578063b06cbaf71461014a57610093565b806309fcb40014610098578063345705a4146100c15780633de2cb1c146100d657806346538074146100e9575b600080fd5b6100ab6100a63660046108e3565b61016b565b6040516100b8919061096f565b60405180910390f35b6100d46100cf3660046108e3565b61022f565b005b6100d46100e4366004610790565b610298565b6100fc6100f7366004610774565b6102ee565b6040516100b89190610b64565b6100fc610300565b6100d461011f366004610774565b610306565b6100fc6101323660046108e3565b610352565b6100ab61014536600461085c565b610364565b61015d610158366004610774565b6103fc565b6040516100b89291906109a4565b600081815260016020526040902054606090806101a35760405162461bcd60e51b815260040161019a90610ad3565b60405180910390fd5b6000838152600360205260409020546001600160a01b0316806101d8575050604080516000815260208101909152905061022a565b60408051600180825281830190925260009160208083019080368337019050509050818160008151811061020857fe5b6001600160a01b0390921660209283029190910190910152925061022a915050565b919050565b6004546001600160a01b031633146102595760405162461bcd60e51b815260040161019a90610b36565b600081815260016020526040902054156102855760405162461bcd60e51b815260040161019a90610a9c565b6000805491815260016020526040902055565b6102a18261054b565b156102be5760405162461bcd60e51b815260040161019a90610a73565b60006102ca8383610551565b9050806102e95760405162461bcd60e51b815260040161019a90610b0a565b505050565b60026020526000908152604090205481565b60005481565b6004546001600160a01b031633146103305760405162461bcd60e51b815260040161019a90610b36565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b60016020526000908152604090205481565b600554604051630e848da360e41b81526060916000916001600160a01b039091169063e848da309061039a908690600401610a20565b60206040518083038186803b1580156103b257600080fd5b505afa1580156103c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ea91906108fb565b90506103f58161016b565b9392505050565b6060806104088361054b565b156104255760405162461bcd60e51b815260040161019a90610a73565b600560009054906101000a90046001600160a01b03166001600160a01b031663798aac5b6040518163ffffffff1660e01b815260040160006040518083038186803b15801561047357600080fd5b505afa158015610487573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104af91908101906107bb565b80519092508067ffffffffffffffff811180156104cb57600080fd5b506040519080825280602002602001820160405280156104f5578160200160208202803683370190505b50915060005b81811015610544576105208585838151811061051357fe5b6020026020010151610551565b83828151811061052c57fe5b911515602092830291909101909101526001016104fb565b5050915091565b50600090565b6000818152600160205260408120548061057d5760405162461bcd60e51b815260040161019a90610ad3565b6000838152600360205260409020546001600160a01b039081169085168114156105ac5760019250505061063c565b600084815260036020908152604080832080546001600160a01b0319166001600160a01b038a1617905580516001808252818301909252918281019080368337019050509050818160008151811061060057fe5b60200260200101906001600160a01b031690816001600160a01b03168152505061062a8186610642565b610634868661070a565b600193505050505b92915050565b60005b82518110156106a2577f33359f2769756ca8d0da4683f25ee440744d6f18bfb166dbfb59315a8c62b01683828151811061067b57fe5b602002602001015183604051610692929190610956565b60405180910390a1600101610645565b50600480546040516376794efb60e01b81526001600160a01b03909116916376794efb916106d4918691869101610982565b600060405180830381600087803b1580156106ee57600080fd5b505af1158015610702573d6000803e3d6000fd5b505050505050565b7f66a8b13abe95391d1851f5bc319f3dde54ce8f2f40a5fe226aa3251d805832e3828260405161073b929190610956565b60405180910390a160048054604051639d986f9160e01b81526001600160a01b0390911691639d986f91916106d4918691869101610956565b600060208284031215610785578081fd5b81356103f581610b91565b600080604083850312156107a2578081fd5b82356107ad81610b91565b946020939093013593505050565b600060208083850312156107cd578182fd5b825167ffffffffffffffff808211156107e4578384fd5b818501915085601f8301126107f7578384fd5b81518181111561080357fe5b8381029150610813848301610b6d565b8181528481019084860184860187018a101561082d578788fd5b8795505b8386101561084f578051835260019590950194918601918601610831565b5098975050505050505050565b6000602080838503121561086e578182fd5b823567ffffffffffffffff80821115610885578384fd5b818501915085601f830112610898578384fd5b8135818111156108a457fe5b6108b6601f8201601f19168501610b6d565b915080825286848285010111156108cb578485fd5b80848401858401378101909201929092529392505050565b6000602082840312156108f4578081fd5b5035919050565b60006020828403121561090c578081fd5b5051919050565b6000815180845260208085019450808401835b8381101561094b5781516001600160a01b031687529582019590820190600101610926565b509495945050505050565b6001600160a01b03929092168252602082015260400190565b6000602082526103f56020830184610913565b6000604082526109956040830185610913565b90508260208301529392505050565b604080825283519082018190526000906020906060840190828701845b828110156109dd578151845292840192908401906001016109c1565b50505083810382850152845180825285830191830190845b81811015610a135783511515835292840192918401916001016109f5565b5090979650505050505050565b6000602080835283518082850152825b81811015610a4c57858101830151858201604001528201610a30565b81811115610a5d5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252600f908201526e74727573746564206164647265737360881b604082015260600190565b60208082526017908201527f77686974656c69737420616c7265616479206578697374000000000000000000604082015260600190565b60208082526018908201527f4654534f20696e646578206e6f7420737570706f727465640000000000000000604082015260600190565b602080825260129082015271766f746520706f77657220746f6f206c6f7760701b604082015260600190565b60208082526014908201527337b7363c90383934b1b29039bab136b4ba3a32b960611b604082015260600190565b90815260200190565b60405181810167ffffffffffffffff81118282101715610b8957fe5b604052919050565b6001600160a01b0381168114610ba657600080fd5b5056fea26469706673582212201bb10dff8af3d8da157be6b63a20968c3dcf75f800fa643ae71c1ba5022ae7b964736f6c63430007060033",
233
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c806347ed51b11161006657806347ed51b1146101095780635fc560141461011157806398dccfc214610124578063aa89dfd414610137578063b06cbaf71461014a57610093565b806309fcb40014610098578063345705a4146100c15780633de2cb1c146100d657806346538074146100e9575b600080fd5b6100ab6100a63660046108e3565b61016b565b6040516100b8919061096f565b60405180910390f35b6100d46100cf3660046108e3565b61022f565b005b6100d46100e4366004610790565b610298565b6100fc6100f7366004610774565b6102ee565b6040516100b89190610b64565b6100fc610300565b6100d461011f366004610774565b610306565b6100fc6101323660046108e3565b610352565b6100ab61014536600461085c565b610364565b61015d610158366004610774565b6103fc565b6040516100b89291906109a4565b600081815260016020526040902054606090806101a35760405162461bcd60e51b815260040161019a90610ad3565b60405180910390fd5b6000838152600360205260409020546001600160a01b0316806101d8575050604080516000815260208101909152905061022a565b60408051600180825281830190925260009160208083019080368337019050509050818160008151811061020857fe5b6001600160a01b0390921660209283029190910190910152925061022a915050565b919050565b6004546001600160a01b031633146102595760405162461bcd60e51b815260040161019a90610b36565b600081815260016020526040902054156102855760405162461bcd60e51b815260040161019a90610a9c565b6000805491815260016020526040902055565b6102a18261054b565b156102be5760405162461bcd60e51b815260040161019a90610a73565b60006102ca8383610551565b9050806102e95760405162461bcd60e51b815260040161019a90610b0a565b505050565b60026020526000908152604090205481565b60005481565b6004546001600160a01b031633146103305760405162461bcd60e51b815260040161019a90610b36565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b60016020526000908152604090205481565b600554604051630e848da360e41b81526060916000916001600160a01b039091169063e848da309061039a908690600401610a20565b60206040518083038186803b1580156103b257600080fd5b505afa1580156103c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ea91906108fb565b90506103f58161016b565b9392505050565b6060806104088361054b565b156104255760405162461bcd60e51b815260040161019a90610a73565b600560009054906101000a90046001600160a01b03166001600160a01b031663798aac5b6040518163ffffffff1660e01b815260040160006040518083038186803b15801561047357600080fd5b505afa158015610487573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104af91908101906107bb565b80519092508067ffffffffffffffff811180156104cb57600080fd5b506040519080825280602002602001820160405280156104f5578160200160208202803683370190505b50915060005b81811015610544576105208585838151811061051357fe5b6020026020010151610551565b83828151811061052c57fe5b911515602092830291909101909101526001016104fb565b5050915091565b50600090565b6000818152600160205260408120548061057d5760405162461bcd60e51b815260040161019a90610ad3565b6000838152600360205260409020546001600160a01b039081169085168114156105ac5760019250505061063c565b600084815260036020908152604080832080546001600160a01b0319166001600160a01b038a1617905580516001808252818301909252918281019080368337019050509050818160008151811061060057fe5b60200260200101906001600160a01b031690816001600160a01b03168152505061062a8186610642565b610634868661070a565b600193505050505b92915050565b60005b82518110156106a2577f33359f2769756ca8d0da4683f25ee440744d6f18bfb166dbfb59315a8c62b01683828151811061067b57fe5b602002602001015183604051610692929190610956565b60405180910390a1600101610645565b50600480546040516376794efb60e01b81526001600160a01b03909116916376794efb916106d4918691869101610982565b600060405180830381600087803b1580156106ee57600080fd5b505af1158015610702573d6000803e3d6000fd5b505050505050565b7f66a8b13abe95391d1851f5bc319f3dde54ce8f2f40a5fe226aa3251d805832e3828260405161073b929190610956565b60405180910390a160048054604051639d986f9160e01b81526001600160a01b0390911691639d986f91916106d4918691869101610956565b600060208284031215610785578081fd5b81356103f581610b91565b600080604083850312156107a2578081fd5b82356107ad81610b91565b946020939093013593505050565b600060208083850312156107cd578182fd5b825167ffffffffffffffff808211156107e4578384fd5b818501915085601f8301126107f7578384fd5b81518181111561080357fe5b8381029150610813848301610b6d565b8181528481019084860184860187018a101561082d578788fd5b8795505b8386101561084f578051835260019590950194918601918601610831565b5098975050505050505050565b6000602080838503121561086e578182fd5b823567ffffffffffffffff80821115610885578384fd5b818501915085601f830112610898578384fd5b8135818111156108a457fe5b6108b6601f8201601f19168501610b6d565b915080825286848285010111156108cb578485fd5b80848401858401378101909201929092529392505050565b6000602082840312156108f4578081fd5b5035919050565b60006020828403121561090c578081fd5b5051919050565b6000815180845260208085019450808401835b8381101561094b5781516001600160a01b031687529582019590820190600101610926565b509495945050505050565b6001600160a01b03929092168252602082015260400190565b6000602082526103f56020830184610913565b6000604082526109956040830185610913565b90508260208301529392505050565b604080825283519082018190526000906020906060840190828701845b828110156109dd578151845292840192908401906001016109c1565b50505083810382850152845180825285830191830190845b81811015610a135783511515835292840192918401916001016109f5565b5090979650505050505050565b6000602080835283518082850152825b81811015610a4c57858101830151858201604001528201610a30565b81811115610a5d5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252600f908201526e74727573746564206164647265737360881b604082015260600190565b60208082526017908201527f77686974656c69737420616c7265616479206578697374000000000000000000604082015260600190565b60208082526018908201527f4654534f20696e646578206e6f7420737570706f727465640000000000000000604082015260600190565b602080825260129082015271766f746520706f77657220746f6f206c6f7760701b604082015260600190565b60208082526014908201527337b7363c90383934b1b29039bab136b4ba3a32b960611b604082015260600190565b90815260200190565b60405181810167ffffffffffffffff81118282101715610b8957fe5b604052919050565b6001600160a01b0381168114610ba657600080fd5b5056fea26469706673582212201bb10dff8af3d8da157be6b63a20968c3dcf75f800fa643ae71c1ba5022ae7b964736f6c63430007060033",
234
234
  "linkReferences": {},
235
235
  "deployedLinkReferences": {}
236
236
  }
@@ -976,8 +976,8 @@
976
976
  "type": "function"
977
977
  }
978
978
  ],
979
- "bytecode": "0x60806040523480156200001157600080fd5b50604051620013e8380380620013e8833981810160405260a08110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b5060409081526020828101519183015160608401516080909401518751939650909450916200011c916001919088019062000163565b50426003556000805460ff19166001179055600480546001600160a01b039095166001600160a01b031990951694909417909355600791909155600855600955506200020f565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200019b5760008555620001e6565b82601f10620001b657805160ff1916838001178555620001e6565b82800160010185558215620001e6579182015b82811115620001e6578251825591602001919060010190620001c9565b50620001f4929150620001f8565b5090565b5b80821115620001f45760008155600101620001f9565b6111c9806200021f6000396000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c80638357d08c11610130578063cf35bdd0116100b8578063e536f3961161007c578063e536f39614610503578063eb91d37e14610747578063f670ebe3146108fd578063f72cab2814610922578063f937d6ad1461094e57610232565b8063cf35bdd0146107e9578063d0d552dd14610806578063d89601fd1461082c578063e3749e0c14610834578063e3b3a3b3146108c857610232565b8063a29a839f116100ff578063a29a839f1461073f578063af52df0814610747578063c1f6c36e14610768578063c5d8b9e7146107a0578063cd4b6914146107cc57610232565b80638357d08c1461060557806395d89b41146106c2578063974d7a6b146105035780639edbf007146105bb57610232565b806340462a2d116101be5780635c222bad116101825780635c222bad146105bb57806365f5cd86146104365780636b52b242146105c35780637d1d6f12146105cb578063826cc76b146105e857610232565b806340462a2d1461043e5780634afd5102146105035780635303548b14610520578063555989da1461054f5780635a3c9d8e1461055757610232565b8063144e159111610205578063144e15911461036c57806318931c35146103925780632f0a6f3c146103ea578063306ba253146104135780633cacb3ae1461043657610232565b806302fb0c5e14610237578063040d73b81461025357806311a7aaaa146102a3578063131fdee2146102c7575b600080fd5b61023f610956565b604080519115158252519081900360200190f35b61025b61095f565b6040518086815260200185815260200184600581111561027757fe5b815260200183815260200182600581111561028e57fe5b81526020019550505050505060405180910390f35b6102ab61096e565b604080516001600160a01b039092168252519081900360200190f35b61036a600480360360208110156102dd57600080fd5b8101906020810181356401000000008111156102f857600080fd5b82018360208201111561030a57600080fd5b8035906020019184602083028401116401000000008311171561032c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610973945050505050565b005b610374610a19565b60408051938452602084019290925282820152519081900360600190f35b61039a610a27565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103d65781810151838201526020016103be565b505050509050019250505060405180910390f35b61036a6004803603606081101561040057600080fd5b5080359060208101359060400135610973565b61036a6004803603604081101561042957600080fd5b5080359060200135610973565b610374610a8e565b6104636004803603604081101561045457600080fd5b50803590602001351515610a98565b604051808060200180602001848152602001838103835286818151815260200191508051906020019060200280838360005b838110156104ad578181015183820152602001610495565b50505050905001838103825285818151815260200191508051906020019060200280838360005b838110156104ec5781810151838201526020016104d4565b505050509050019550505050505060405180910390f35b61036a6004803603602081101561051957600080fd5b5035610973565b61053d6004803603602081101561053657600080fd5b5035610b04565b60408051918252519081900360200190f35b61036a610973565b61036a600480360361012081101561056e57600080fd5b81359160208101359160408201359160608101359160808201359160a08101359160c08201359160e08101359181019061012081016101008201356401000000008111156102f857600080fd5b6102ab610b17565b61053d610b7a565b61053d600480360360208110156105e157600080fd5b5035610b17565b6102ab600480360360208110156105fe57600080fd5b5035610b7f565b61060d610ba9565b604051808060200180602001878152602001868152602001858152602001848152602001838103835289818151815260200191508051906020019060200280838360005b83811015610669578181015183820152602001610651565b50505050905001838103825288818151815260200191508051906020019060200280838360005b838110156106a8578181015183820152602001610690565b505050509050019850505050505050505060405180910390f35b6106ca610c4e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156107045781810151838201526020016106ec565b50505050905090810190601f1680156107315780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61053d610cdb565b61074f610cea565b6040805192835260208301919091528051918290030190f35b61036a6004803603608081101561077e57600080fd5b506001600160a01b038135169060208101359060408101359060600135610cf0565b61053d600480360360408110156107b657600080fd5b50803590602001356001600160a01b0316610e9e565b61053d600480360360208110156107e257600080fd5b5035610ec6565b6102ab600480360360208110156107ff57600080fd5b5035610ed1565b61036a6004803603602081101561081c57600080fd5b50356001600160a01b0316610973565b61053d610ee1565b61083c610f0f565b604051808a815260200189815260200188815260200187815260200186815260200185815260200184815260200183815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156108ac578181015183820152602001610894565b505050509050019a505050505050505050505060405180910390f35b6108d0610fe1565b60408051958652602086019490945284840192909252606084015215156080830152519081900360a00190f35b61036a6004803603604081101561091357600080fd5b50803590602001351515610973565b61053d6004803603604081101561093857600080fd5b506001600160a01b038135169060200135611017565b6102ab61101f565b60005460ff1681565b60008060008060009091929394565b600090565b6040805180820190915260178152600080516020611174833981519152602082015260405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109de5781810151838201526020016109c6565b50505050905090810190601f168015610a0b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600754600854600954909192565b604080518082018252601781526000805160206111748339815191526020808301918252925162461bcd60e51b81526004810193845282516024820152825160609492839260440191808383600083156109de5781810151838201526020016109c6565b90565b6000806000909192565b604080518082018252601781526000805160206111748339815191526020808301918252925162461bcd60e51b815260048101938452825160248201528251606094859460009490939192839260440191908083838983156109de5781810151838201526020016109c6565b6000610b0f8261102e565b90505b919050565b604080518082018252601781526000805160206111748339815191526020808301918252925162461bcd60e51b815260048101938452825160248201528251600094928392604401918083838983156109de5781810151838201526020016109c6565b600581565b60068181548110610b8f57600080fd5b6000918252602090912001546001600160a01b0316905081565b606080600080600080600060405180604001604052806017815260200160008051602061117483398151915281525090610c245760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109de5781810151838201526020016109c6565b50506040805160008082526020820181815282840190935290979196509450849350839250829150565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610cd35780601f10610ca857610100808354040283529160200191610cd3565b820191906000526020600020905b815481529060010190602001808311610cb657829003601f168201915b505050505081565b6000610ce5611059565b905090565b60008091565b6004546001600160a01b03163314610d0a57610d0a611064565b60408051808201909152600e81526d0a0e4d2c6ca40e8dede40d0d2ced60931b6020820152600160801b8310610d815760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109de5781810151838201526020016109c6565b506008546007546001850190910201428111801590610da35750600954810142105b6040518060400160405280601881526020017f52657665616c20706572696f64206e6f7420616374697665000000000000000081525090610e255760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109de5781810151838201526020016109c6565b506000848152600a602090815260408083206001600160a01b038916808552908352818420879055815187815242938101939093528282018490526060830193909352518692917fc1b1d37612887c207efe8cb44f4069b7f10c45edaf6e8405648a94e02b6e9ec7919081900360800190a35050505050565b6000918252600a602090815260408084206001600160a01b0393909316845291905290205490565b6000610b0f826110cc565b60058181548110610b8f57600080fd5b600080610eec611059565b905080610efd576000915050610a8b565b610f09600182036110cc565b91505090565b6000806000806000806000806060600060405180604001604052806017815260200160008051602061117483398151915281525090610f8f5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109de5781810151838201526020016109c6565b5060008080808080808080604051908082528060200260200182016040528015610fc3578160200160208202803683370190505b50985098509850985098509850985098509850909192939495969798565b6000806000806000610ff1611059565b945060085485600101026007540193506009548401925060009150600090509091929394565b600092915050565b6004546001600160a01b031681565b600060075482101561104257506000610b12565b60085460075483038161105157fe5b049050610b12565b6000610ce54261102e565b604080518082018252600d81526c1058d8d95cdcc819195b9a5959609a1b6020808301918252925162461bcd60e51b815260048101938452825160248201528251929392839260449092019190808383600083156109de5781810151838201526020016109c6565b6004805460408051633352da4560e21b8152928301849052516000926001600160a01b039092169163cd4b6914916024808301926020929190829003018186803b15801561111957600080fd5b505afa15801561112d573d6000803e3d6000fd5b505050506040513d602081101561114357600080fd5b5051604080516020808201939093523081830152815180820383018152606090910190915280519101209291505056fe556e617661696c61626c6520666f722074657374696e67000000000000000000a26469706673582212208bea6bce810d7ff3c6b478f9237db8fdd12cdb53f0b199c6c2598626cd2b971764736f6c63430007060033",
980
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102325760003560e01c80638357d08c11610130578063cf35bdd0116100b8578063e536f3961161007c578063e536f39614610503578063eb91d37e14610747578063f670ebe3146108fd578063f72cab2814610922578063f937d6ad1461094e57610232565b8063cf35bdd0146107e9578063d0d552dd14610806578063d89601fd1461082c578063e3749e0c14610834578063e3b3a3b3146108c857610232565b8063a29a839f116100ff578063a29a839f1461073f578063af52df0814610747578063c1f6c36e14610768578063c5d8b9e7146107a0578063cd4b6914146107cc57610232565b80638357d08c1461060557806395d89b41146106c2578063974d7a6b146105035780639edbf007146105bb57610232565b806340462a2d116101be5780635c222bad116101825780635c222bad146105bb57806365f5cd86146104365780636b52b242146105c35780637d1d6f12146105cb578063826cc76b146105e857610232565b806340462a2d1461043e5780634afd5102146105035780635303548b14610520578063555989da1461054f5780635a3c9d8e1461055757610232565b8063144e159111610205578063144e15911461036c57806318931c35146103925780632f0a6f3c146103ea578063306ba253146104135780633cacb3ae1461043657610232565b806302fb0c5e14610237578063040d73b81461025357806311a7aaaa146102a3578063131fdee2146102c7575b600080fd5b61023f610956565b604080519115158252519081900360200190f35b61025b61095f565b6040518086815260200185815260200184600581111561027757fe5b815260200183815260200182600581111561028e57fe5b81526020019550505050505060405180910390f35b6102ab61096e565b604080516001600160a01b039092168252519081900360200190f35b61036a600480360360208110156102dd57600080fd5b8101906020810181356401000000008111156102f857600080fd5b82018360208201111561030a57600080fd5b8035906020019184602083028401116401000000008311171561032c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610973945050505050565b005b610374610a19565b60408051938452602084019290925282820152519081900360600190f35b61039a610a27565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103d65781810151838201526020016103be565b505050509050019250505060405180910390f35b61036a6004803603606081101561040057600080fd5b5080359060208101359060400135610973565b61036a6004803603604081101561042957600080fd5b5080359060200135610973565b610374610a8e565b6104636004803603604081101561045457600080fd5b50803590602001351515610a98565b604051808060200180602001848152602001838103835286818151815260200191508051906020019060200280838360005b838110156104ad578181015183820152602001610495565b50505050905001838103825285818151815260200191508051906020019060200280838360005b838110156104ec5781810151838201526020016104d4565b505050509050019550505050505060405180910390f35b61036a6004803603602081101561051957600080fd5b5035610973565b61053d6004803603602081101561053657600080fd5b5035610b04565b60408051918252519081900360200190f35b61036a610973565b61036a600480360361012081101561056e57600080fd5b81359160208101359160408201359160608101359160808201359160a08101359160c08201359160e08101359181019061012081016101008201356401000000008111156102f857600080fd5b6102ab610b17565b61053d610b7a565b61053d600480360360208110156105e157600080fd5b5035610b17565b6102ab600480360360208110156105fe57600080fd5b5035610b7f565b61060d610ba9565b604051808060200180602001878152602001868152602001858152602001848152602001838103835289818151815260200191508051906020019060200280838360005b83811015610669578181015183820152602001610651565b50505050905001838103825288818151815260200191508051906020019060200280838360005b838110156106a8578181015183820152602001610690565b505050509050019850505050505050505060405180910390f35b6106ca610c4e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156107045781810151838201526020016106ec565b50505050905090810190601f1680156107315780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61053d610cdb565b61074f610cea565b6040805192835260208301919091528051918290030190f35b61036a6004803603608081101561077e57600080fd5b506001600160a01b038135169060208101359060408101359060600135610cf0565b61053d600480360360408110156107b657600080fd5b50803590602001356001600160a01b0316610e9e565b61053d600480360360208110156107e257600080fd5b5035610ec6565b6102ab600480360360208110156107ff57600080fd5b5035610ed1565b61036a6004803603602081101561081c57600080fd5b50356001600160a01b0316610973565b61053d610ee1565b61083c610f0f565b604051808a815260200189815260200188815260200187815260200186815260200185815260200184815260200183815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156108ac578181015183820152602001610894565b505050509050019a505050505050505050505060405180910390f35b6108d0610fe1565b60408051958652602086019490945284840192909252606084015215156080830152519081900360a00190f35b61036a6004803603604081101561091357600080fd5b50803590602001351515610973565b61053d6004803603604081101561093857600080fd5b506001600160a01b038135169060200135611017565b6102ab61101f565b60005460ff1681565b60008060008060009091929394565b600090565b6040805180820190915260178152600080516020611174833981519152602082015260405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109de5781810151838201526020016109c6565b50505050905090810190601f168015610a0b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600754600854600954909192565b604080518082018252601781526000805160206111748339815191526020808301918252925162461bcd60e51b81526004810193845282516024820152825160609492839260440191808383600083156109de5781810151838201526020016109c6565b90565b6000806000909192565b604080518082018252601781526000805160206111748339815191526020808301918252925162461bcd60e51b815260048101938452825160248201528251606094859460009490939192839260440191908083838983156109de5781810151838201526020016109c6565b6000610b0f8261102e565b90505b919050565b604080518082018252601781526000805160206111748339815191526020808301918252925162461bcd60e51b815260048101938452825160248201528251600094928392604401918083838983156109de5781810151838201526020016109c6565b600581565b60068181548110610b8f57600080fd5b6000918252602090912001546001600160a01b0316905081565b606080600080600080600060405180604001604052806017815260200160008051602061117483398151915281525090610c245760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109de5781810151838201526020016109c6565b50506040805160008082526020820181815282840190935290979196509450849350839250829150565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610cd35780601f10610ca857610100808354040283529160200191610cd3565b820191906000526020600020905b815481529060010190602001808311610cb657829003601f168201915b505050505081565b6000610ce5611059565b905090565b60008091565b6004546001600160a01b03163314610d0a57610d0a611064565b60408051808201909152600e81526d0a0e4d2c6ca40e8dede40d0d2ced60931b6020820152600160801b8310610d815760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109de5781810151838201526020016109c6565b506008546007546001850190910201428111801590610da35750600954810142105b6040518060400160405280601881526020017f52657665616c20706572696f64206e6f7420616374697665000000000000000081525090610e255760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109de5781810151838201526020016109c6565b506000848152600a602090815260408083206001600160a01b038916808552908352818420879055815187815242938101939093528282018490526060830193909352518692917fc1b1d37612887c207efe8cb44f4069b7f10c45edaf6e8405648a94e02b6e9ec7919081900360800190a35050505050565b6000918252600a602090815260408084206001600160a01b0393909316845291905290205490565b6000610b0f826110cc565b60058181548110610b8f57600080fd5b600080610eec611059565b905080610efd576000915050610a8b565b610f09600182036110cc565b91505090565b6000806000806000806000806060600060405180604001604052806017815260200160008051602061117483398151915281525090610f8f5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109de5781810151838201526020016109c6565b5060008080808080808080604051908082528060200260200182016040528015610fc3578160200160208202803683370190505b50985098509850985098509850985098509850909192939495969798565b6000806000806000610ff1611059565b945060085485600101026007540193506009548401925060009150600090509091929394565b600092915050565b6004546001600160a01b031681565b600060075482101561104257506000610b12565b60085460075483038161105157fe5b049050610b12565b6000610ce54261102e565b604080518082018252600d81526c1058d8d95cdcc819195b9a5959609a1b6020808301918252925162461bcd60e51b815260048101938452825160248201528251929392839260449092019190808383600083156109de5781810151838201526020016109c6565b6004805460408051633352da4560e21b8152928301849052516000926001600160a01b039092169163cd4b6914916024808301926020929190829003018186803b15801561111957600080fd5b505afa15801561112d573d6000803e3d6000fd5b505050506040513d602081101561114357600080fd5b5051604080516020808201939093523081830152815180820383018152606090910190915280519101209291505056fe556e617661696c61626c6520666f722074657374696e67000000000000000000a26469706673582212208bea6bce810d7ff3c6b478f9237db8fdd12cdb53f0b199c6c2598626cd2b971764736f6c63430007060033",
979
+ "bytecode": "0x60806040523480156200001157600080fd5b50604051620013e8380380620013e8833981810160405260a08110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b5060409081526020828101519183015160608401516080909401518751939650909450916200011c916001919088019062000163565b50426003556000805460ff19166001179055600480546001600160a01b039095166001600160a01b031990951694909417909355600791909155600855600955506200020f565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200019b5760008555620001e6565b82601f10620001b657805160ff1916838001178555620001e6565b82800160010185558215620001e6579182015b82811115620001e6578251825591602001919060010190620001c9565b50620001f4929150620001f8565b5090565b5b80821115620001f45760008155600101620001f9565b6111c9806200021f6000396000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c80638357d08c11610130578063cf35bdd0116100b8578063e536f3961161007c578063e536f39614610503578063eb91d37e14610747578063f670ebe3146108fd578063f72cab2814610922578063f937d6ad1461094e57610232565b8063cf35bdd0146107e9578063d0d552dd14610806578063d89601fd1461082c578063e3749e0c14610834578063e3b3a3b3146108c857610232565b8063a29a839f116100ff578063a29a839f1461073f578063af52df0814610747578063c1f6c36e14610768578063c5d8b9e7146107a0578063cd4b6914146107cc57610232565b80638357d08c1461060557806395d89b41146106c2578063974d7a6b146105035780639edbf007146105bb57610232565b806340462a2d116101be5780635c222bad116101825780635c222bad146105bb57806365f5cd86146104365780636b52b242146105c35780637d1d6f12146105cb578063826cc76b146105e857610232565b806340462a2d1461043e5780634afd5102146105035780635303548b14610520578063555989da1461054f5780635a3c9d8e1461055757610232565b8063144e159111610205578063144e15911461036c57806318931c35146103925780632f0a6f3c146103ea578063306ba253146104135780633cacb3ae1461043657610232565b806302fb0c5e14610237578063040d73b81461025357806311a7aaaa146102a3578063131fdee2146102c7575b600080fd5b61023f610956565b604080519115158252519081900360200190f35b61025b61095f565b6040518086815260200185815260200184600581111561027757fe5b815260200183815260200182600581111561028e57fe5b81526020019550505050505060405180910390f35b6102ab61096e565b604080516001600160a01b039092168252519081900360200190f35b61036a600480360360208110156102dd57600080fd5b8101906020810181356401000000008111156102f857600080fd5b82018360208201111561030a57600080fd5b8035906020019184602083028401116401000000008311171561032c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610973945050505050565b005b610374610a19565b60408051938452602084019290925282820152519081900360600190f35b61039a610a27565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103d65781810151838201526020016103be565b505050509050019250505060405180910390f35b61036a6004803603606081101561040057600080fd5b5080359060208101359060400135610973565b61036a6004803603604081101561042957600080fd5b5080359060200135610973565b610374610a8e565b6104636004803603604081101561045457600080fd5b50803590602001351515610a98565b604051808060200180602001848152602001838103835286818151815260200191508051906020019060200280838360005b838110156104ad578181015183820152602001610495565b50505050905001838103825285818151815260200191508051906020019060200280838360005b838110156104ec5781810151838201526020016104d4565b505050509050019550505050505060405180910390f35b61036a6004803603602081101561051957600080fd5b5035610973565b61053d6004803603602081101561053657600080fd5b5035610b04565b60408051918252519081900360200190f35b61036a610973565b61036a600480360361012081101561056e57600080fd5b81359160208101359160408201359160608101359160808201359160a08101359160c08201359160e08101359181019061012081016101008201356401000000008111156102f857600080fd5b6102ab610b17565b61053d610b7a565b61053d600480360360208110156105e157600080fd5b5035610b17565b6102ab600480360360208110156105fe57600080fd5b5035610b7f565b61060d610ba9565b604051808060200180602001878152602001868152602001858152602001848152602001838103835289818151815260200191508051906020019060200280838360005b83811015610669578181015183820152602001610651565b50505050905001838103825288818151815260200191508051906020019060200280838360005b838110156106a8578181015183820152602001610690565b505050509050019850505050505050505060405180910390f35b6106ca610c4e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156107045781810151838201526020016106ec565b50505050905090810190601f1680156107315780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61053d610cdb565b61074f610cea565b6040805192835260208301919091528051918290030190f35b61036a6004803603608081101561077e57600080fd5b506001600160a01b038135169060208101359060408101359060600135610cf0565b61053d600480360360408110156107b657600080fd5b50803590602001356001600160a01b0316610e9e565b61053d600480360360208110156107e257600080fd5b5035610ec6565b6102ab600480360360208110156107ff57600080fd5b5035610ed1565b61036a6004803603602081101561081c57600080fd5b50356001600160a01b0316610973565b61053d610ee1565b61083c610f0f565b604051808a815260200189815260200188815260200187815260200186815260200185815260200184815260200183815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156108ac578181015183820152602001610894565b505050509050019a505050505050505050505060405180910390f35b6108d0610fe1565b60408051958652602086019490945284840192909252606084015215156080830152519081900360a00190f35b61036a6004803603604081101561091357600080fd5b50803590602001351515610973565b61053d6004803603604081101561093857600080fd5b506001600160a01b038135169060200135611017565b6102ab61101f565b60005460ff1681565b60008060008060009091929394565b600090565b6040805180820190915260178152600080516020611174833981519152602082015260405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109de5781810151838201526020016109c6565b50505050905090810190601f168015610a0b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600754600854600954909192565b604080518082018252601781526000805160206111748339815191526020808301918252925162461bcd60e51b81526004810193845282516024820152825160609492839260440191808383600083156109de5781810151838201526020016109c6565b90565b6000806000909192565b604080518082018252601781526000805160206111748339815191526020808301918252925162461bcd60e51b815260048101938452825160248201528251606094859460009490939192839260440191908083838983156109de5781810151838201526020016109c6565b6000610b0f8261102e565b90505b919050565b604080518082018252601781526000805160206111748339815191526020808301918252925162461bcd60e51b815260048101938452825160248201528251600094928392604401918083838983156109de5781810151838201526020016109c6565b600581565b60068181548110610b8f57600080fd5b6000918252602090912001546001600160a01b0316905081565b606080600080600080600060405180604001604052806017815260200160008051602061117483398151915281525090610c245760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109de5781810151838201526020016109c6565b50506040805160008082526020820181815282840190935290979196509450849350839250829150565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610cd35780601f10610ca857610100808354040283529160200191610cd3565b820191906000526020600020905b815481529060010190602001808311610cb657829003601f168201915b505050505081565b6000610ce5611059565b905090565b60008091565b6004546001600160a01b03163314610d0a57610d0a611064565b60408051808201909152600e81526d0a0e4d2c6ca40e8dede40d0d2ced60931b6020820152600160801b8310610d815760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109de5781810151838201526020016109c6565b506008546007546001850190910201428111801590610da35750600954810142105b6040518060400160405280601881526020017f52657665616c20706572696f64206e6f7420616374697665000000000000000081525090610e255760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109de5781810151838201526020016109c6565b506000848152600a602090815260408083206001600160a01b038916808552908352818420879055815187815242938101939093528282018490526060830193909352518692917fc1b1d37612887c207efe8cb44f4069b7f10c45edaf6e8405648a94e02b6e9ec7919081900360800190a35050505050565b6000918252600a602090815260408084206001600160a01b0393909316845291905290205490565b6000610b0f826110cc565b60058181548110610b8f57600080fd5b600080610eec611059565b905080610efd576000915050610a8b565b610f09600182036110cc565b91505090565b6000806000806000806000806060600060405180604001604052806017815260200160008051602061117483398151915281525090610f8f5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109de5781810151838201526020016109c6565b5060008080808080808080604051908082528060200260200182016040528015610fc3578160200160208202803683370190505b50985098509850985098509850985098509850909192939495969798565b6000806000806000610ff1611059565b945060085485600101026007540193506009548401925060009150600090509091929394565b600092915050565b6004546001600160a01b031681565b600060075482101561104257506000610b12565b60085460075483038161105157fe5b049050610b12565b6000610ce54261102e565b604080518082018252600d81526c1058d8d95cdcc819195b9a5959609a1b6020808301918252925162461bcd60e51b815260048101938452825160248201528251929392839260449092019190808383600083156109de5781810151838201526020016109c6565b6004805460408051633352da4560e21b8152928301849052516000926001600160a01b039092169163cd4b6914916024808301926020929190829003018186803b15801561111957600080fd5b505afa15801561112d573d6000803e3d6000fd5b505050506040513d602081101561114357600080fd5b5051604080516020808201939093523081830152815180820383018152606090910190915280519101209291505056fe556e617661696c61626c6520666f722074657374696e67000000000000000000a2646970667358221220d46ee4d8e70d1fb09f70aee871b55f50e2bf8db43014b8bbb5407aa43021dce664736f6c63430007060033",
980
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102325760003560e01c80638357d08c11610130578063cf35bdd0116100b8578063e536f3961161007c578063e536f39614610503578063eb91d37e14610747578063f670ebe3146108fd578063f72cab2814610922578063f937d6ad1461094e57610232565b8063cf35bdd0146107e9578063d0d552dd14610806578063d89601fd1461082c578063e3749e0c14610834578063e3b3a3b3146108c857610232565b8063a29a839f116100ff578063a29a839f1461073f578063af52df0814610747578063c1f6c36e14610768578063c5d8b9e7146107a0578063cd4b6914146107cc57610232565b80638357d08c1461060557806395d89b41146106c2578063974d7a6b146105035780639edbf007146105bb57610232565b806340462a2d116101be5780635c222bad116101825780635c222bad146105bb57806365f5cd86146104365780636b52b242146105c35780637d1d6f12146105cb578063826cc76b146105e857610232565b806340462a2d1461043e5780634afd5102146105035780635303548b14610520578063555989da1461054f5780635a3c9d8e1461055757610232565b8063144e159111610205578063144e15911461036c57806318931c35146103925780632f0a6f3c146103ea578063306ba253146104135780633cacb3ae1461043657610232565b806302fb0c5e14610237578063040d73b81461025357806311a7aaaa146102a3578063131fdee2146102c7575b600080fd5b61023f610956565b604080519115158252519081900360200190f35b61025b61095f565b6040518086815260200185815260200184600581111561027757fe5b815260200183815260200182600581111561028e57fe5b81526020019550505050505060405180910390f35b6102ab61096e565b604080516001600160a01b039092168252519081900360200190f35b61036a600480360360208110156102dd57600080fd5b8101906020810181356401000000008111156102f857600080fd5b82018360208201111561030a57600080fd5b8035906020019184602083028401116401000000008311171561032c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610973945050505050565b005b610374610a19565b60408051938452602084019290925282820152519081900360600190f35b61039a610a27565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103d65781810151838201526020016103be565b505050509050019250505060405180910390f35b61036a6004803603606081101561040057600080fd5b5080359060208101359060400135610973565b61036a6004803603604081101561042957600080fd5b5080359060200135610973565b610374610a8e565b6104636004803603604081101561045457600080fd5b50803590602001351515610a98565b604051808060200180602001848152602001838103835286818151815260200191508051906020019060200280838360005b838110156104ad578181015183820152602001610495565b50505050905001838103825285818151815260200191508051906020019060200280838360005b838110156104ec5781810151838201526020016104d4565b505050509050019550505050505060405180910390f35b61036a6004803603602081101561051957600080fd5b5035610973565b61053d6004803603602081101561053657600080fd5b5035610b04565b60408051918252519081900360200190f35b61036a610973565b61036a600480360361012081101561056e57600080fd5b81359160208101359160408201359160608101359160808201359160a08101359160c08201359160e08101359181019061012081016101008201356401000000008111156102f857600080fd5b6102ab610b17565b61053d610b7a565b61053d600480360360208110156105e157600080fd5b5035610b17565b6102ab600480360360208110156105fe57600080fd5b5035610b7f565b61060d610ba9565b604051808060200180602001878152602001868152602001858152602001848152602001838103835289818151815260200191508051906020019060200280838360005b83811015610669578181015183820152602001610651565b50505050905001838103825288818151815260200191508051906020019060200280838360005b838110156106a8578181015183820152602001610690565b505050509050019850505050505050505060405180910390f35b6106ca610c4e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156107045781810151838201526020016106ec565b50505050905090810190601f1680156107315780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61053d610cdb565b61074f610cea565b6040805192835260208301919091528051918290030190f35b61036a6004803603608081101561077e57600080fd5b506001600160a01b038135169060208101359060408101359060600135610cf0565b61053d600480360360408110156107b657600080fd5b50803590602001356001600160a01b0316610e9e565b61053d600480360360208110156107e257600080fd5b5035610ec6565b6102ab600480360360208110156107ff57600080fd5b5035610ed1565b61036a6004803603602081101561081c57600080fd5b50356001600160a01b0316610973565b61053d610ee1565b61083c610f0f565b604051808a815260200189815260200188815260200187815260200186815260200185815260200184815260200183815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156108ac578181015183820152602001610894565b505050509050019a505050505050505050505060405180910390f35b6108d0610fe1565b60408051958652602086019490945284840192909252606084015215156080830152519081900360a00190f35b61036a6004803603604081101561091357600080fd5b50803590602001351515610973565b61053d6004803603604081101561093857600080fd5b506001600160a01b038135169060200135611017565b6102ab61101f565b60005460ff1681565b60008060008060009091929394565b600090565b6040805180820190915260178152600080516020611174833981519152602082015260405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109de5781810151838201526020016109c6565b50505050905090810190601f168015610a0b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600754600854600954909192565b604080518082018252601781526000805160206111748339815191526020808301918252925162461bcd60e51b81526004810193845282516024820152825160609492839260440191808383600083156109de5781810151838201526020016109c6565b90565b6000806000909192565b604080518082018252601781526000805160206111748339815191526020808301918252925162461bcd60e51b815260048101938452825160248201528251606094859460009490939192839260440191908083838983156109de5781810151838201526020016109c6565b6000610b0f8261102e565b90505b919050565b604080518082018252601781526000805160206111748339815191526020808301918252925162461bcd60e51b815260048101938452825160248201528251600094928392604401918083838983156109de5781810151838201526020016109c6565b600581565b60068181548110610b8f57600080fd5b6000918252602090912001546001600160a01b0316905081565b606080600080600080600060405180604001604052806017815260200160008051602061117483398151915281525090610c245760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109de5781810151838201526020016109c6565b50506040805160008082526020820181815282840190935290979196509450849350839250829150565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610cd35780601f10610ca857610100808354040283529160200191610cd3565b820191906000526020600020905b815481529060010190602001808311610cb657829003601f168201915b505050505081565b6000610ce5611059565b905090565b60008091565b6004546001600160a01b03163314610d0a57610d0a611064565b60408051808201909152600e81526d0a0e4d2c6ca40e8dede40d0d2ced60931b6020820152600160801b8310610d815760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109de5781810151838201526020016109c6565b506008546007546001850190910201428111801590610da35750600954810142105b6040518060400160405280601881526020017f52657665616c20706572696f64206e6f7420616374697665000000000000000081525090610e255760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109de5781810151838201526020016109c6565b506000848152600a602090815260408083206001600160a01b038916808552908352818420879055815187815242938101939093528282018490526060830193909352518692917fc1b1d37612887c207efe8cb44f4069b7f10c45edaf6e8405648a94e02b6e9ec7919081900360800190a35050505050565b6000918252600a602090815260408084206001600160a01b0393909316845291905290205490565b6000610b0f826110cc565b60058181548110610b8f57600080fd5b600080610eec611059565b905080610efd576000915050610a8b565b610f09600182036110cc565b91505090565b6000806000806000806000806060600060405180604001604052806017815260200160008051602061117483398151915281525090610f8f5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156109de5781810151838201526020016109c6565b5060008080808080808080604051908082528060200260200182016040528015610fc3578160200160208202803683370190505b50985098509850985098509850985098509850909192939495969798565b6000806000806000610ff1611059565b945060085485600101026007540193506009548401925060009150600090509091929394565b600092915050565b6004546001600160a01b031681565b600060075482101561104257506000610b12565b60085460075483038161105157fe5b049050610b12565b6000610ce54261102e565b604080518082018252600d81526c1058d8d95cdcc819195b9a5959609a1b6020808301918252925162461bcd60e51b815260048101938452825160248201528251929392839260449092019190808383600083156109de5781810151838201526020016109c6565b6004805460408051633352da4560e21b8152928301849052516000926001600160a01b039092169163cd4b6914916024808301926020929190829003018186803b15801561111957600080fd5b505afa15801561112d573d6000803e3d6000fd5b505050506040513d602081101561114357600080fd5b5051604080516020808201939093523081830152815180820383018152606090910190915280519101209291505056fe556e617661696c61626c6520666f722074657374696e67000000000000000000a2646970667358221220d46ee4d8e70d1fb09f70aee871b55f50e2bf8db43014b8bbb5407aa43021dce664736f6c63430007060033",
981
981
  "linkReferences": {},
982
982
  "deployedLinkReferences": {}
983
983
  }