@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
@@ -1058,8 +1058,8 @@
1058
1058
  "type": "function"
1059
1059
  }
1060
1060
  ],
1061
- "bytecode": "0x6101406040523480156200001257600080fd5b50604051620045b7380380620045b7833981016040819052620000359162000400565b80838084806200004462000157565b6200004e62000182565b815160208084019190912082519183019190912060c082905260e08190527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f620000976200019d565b60a052620000a7818484620001a1565b608052610100525050466101205250620000c390508162000205565b50506001600160a01b03811615620000e057620000e08162000229565b506001600160a01b03811662000130576040805162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b604482015290519081900360640190fd5b506040805160008152602081019091526200014d908290620002ec565b505050506200055d565b6040805180820190915260118152702837b63634b733a337bab73230ba34b7b760791b602082015290565b6040805180820190915260018152603160f81b602082015290565b4690565b6000838383620001b06200019d565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b03168152602001955050505050506040516020818303038152906040528051906020012090509392505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b600754600160a01b900460ff161562000289576040805162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c7365000000000000000000000000604482015290519081900360640190fd5b60078054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b7f4b8f4e528b6d075c6c9d025e58db64e36b460c1516341b1ab7339b4c6d5bcb8a82826040516200031f9291906200052b565b60405180910390a160005b825181101562000382576001600960008584815181106200034757fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790556001016200032a565b5060005b8151811015620003de57600060096000848481518110620003a357fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905560010162000386565b505050565b80516001600160a01b0381168114620003fb57600080fd5b919050565b60008060006060848603121562000415578283fd5b6200042084620003e3565b9250602062000431818601620003e3565b60408601519093506001600160401b03808211156200044e578384fd5b818701915087601f83011262000462578384fd5b8151818111156200046f57fe5b838102604051858282010181811085821117156200048957fe5b604052828152858101935084860182860187018c1015620004a8578788fd5b8795505b83861015620004d557620004c081620003e3565b855260019590950194938601938601620004ac565b508096505050505050509250925092565b6000815180845260208085019450808401835b83811015620005205781516001600160a01b031687529582019590820190600101620004f9565b509495945050505050565b600060408252620005406040830185620004e6565b8281036020840152620005548185620004e6565b95945050505050565b60805160a05160c05160e051610100516101205161400b620005ac60003980610f965280611a245250806121975250806121d95250806121b852508061213e52508061216e525061400b6000f3fe6080604052600436106101f95760003560e01c806374ec29a01161010d578063b00c0b76116100a0578063e17f212e1161006f578063e17f212e146105ae578063e4ea8b65146105c3578063eb9019d4146105d6578063f17c9d76146105f6578063f5a983831461060b576101f9565b8063b00c0b7614610523578063bc903cb814610543578063bd590d7e14610579578063deaaa7cc14610599576101f9565b80639a8a0592116100dc5780639a8a0592146104ae5780639d6a890f146104c3578063a3c90b80146104e3578063a7a6224a14610503576101f9565b806374ec29a01461042e5780637b3c71d31461044e578063854121961461046e57806386f90bbf1461048e576101f9565b806347c66140116101905780635aa6e6751161015f5780635aa6e675146103965780635ff27079146103ab57806362354e03146103cb57806367fc4029146103e057806374e6310e14610400576101f9565b806347c661401461031e5780635267a15d1461034c57806354fd4d50146103615780635678138814610376576101f9565b80633bccf4fd116101cc5780633bccf4fd146102755780633e4f49e6146102a257806340e58ee5146102cf57806343859632146102f1576101f9565b8063047fc9aa146101fe57806306fdde031461022957806311a7aaaa1461024b57806338b5f86914610260575b600080fd5b34801561020a57600080fd5b50610213610620565b60405161022091906137af565b60405180910390f35b34801561023557600080fd5b5061023e61062f565b6040516102209190613946565b34801561025757600080fd5b5061021361065b565b34801561026c57600080fd5b5061021361066a565b34801561028157600080fd5b50610295610290366004613632565b610679565b6040516102209190613910565b3480156102ae57600080fd5b506102c26102bd366004613526565b61073f565b6040516102209190613932565b3480156102db57600080fd5b506102ef6102ea366004613526565b610760565b005b3480156102fd57600080fd5b5061031161030c366004613556565b610823565b6040516102209190613905565b34801561032a57600080fd5b5061033e610339366004613526565b610853565b604051610220929190613ea9565b34801561035857600080fd5b5061021361086c565b34801561036d57600080fd5b5061023e610891565b34801561038257600080fd5b50610295610391366004613585565b6108ac565b3480156103a257600080fd5b506102136108d0565b3480156103b757600080fd5b506102ef6103c63660046133c5565b610974565b3480156103d757600080fd5b50610213610cd8565b3480156103ec57600080fd5b506102ef6103fb3660046133c5565b610cf0565b34801561040c57600080fd5b5061042061041b3660046133c5565b610dd6565b604051610220929190613e90565b34801561043a57600080fd5b50610311610449366004613007565b610e7d565b34801561045a57600080fd5b506102956104693660046135b0565b610e9b565b34801561047a57600080fd5b50610295610489366004613157565b610eea565b34801561049a57600080fd5b506102956104a9366004613420565b610f03565b3480156104ba57600080fd5b50610295610f94565b3480156104cf57600080fd5b506102ef6104de366004613007565b610fb8565b3480156104ef57600080fd5b506102956104fe3660046130af565b611071565b34801561050f57600080fd5b506102ef61051e36600461304e565b611087565b34801561052f57600080fd5b506102ef61053e36600461328c565b6110d4565b34801561054f57600080fd5b5061056361055e366004613526565b61117b565b6040516102209a99989796959493929190613877565b34801561058557600080fd5b506102956105943660046133ed565b6111da565b3480156105a557600080fd5b50610295611229565b3480156105ba57600080fd5b5061031161124d565b6102956105d13660046130af565b61125d565b3480156105e257600080fd5b506102956105f1366004613023565b61126e565b34801561060257600080fd5b5061021361127a565b34801561061757600080fd5b506102ef611289565b6005546001600160a01b031681565b6040805180820190915260118152702837b63634b733a337bab73230ba34b7b760791b60208201525b90565b6004546001600160a01b031681565b6006546001600160a01b031681565b6000806106d76106d27f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f89896040516020016106b793929190613919565b60405160208183030381529060405280519060200120611350565b61139c565b905060006106e7828787876113ed565b90506001600160a01b0381166107185760405162461bcd60e51b815260040161070f90613bed565b60405180910390fd5b61073388828960405180602001604052806000815250611562565b98975050505050505050565b6000818152600260205260408120610758908390611623565b90505b919050565b60008181526002602052604090208054600160b01b900460ff16156107975760405162461bcd60e51b815260040161070f90613cc9565b80546001600160a01b031633146107c05760405162461bcd60e51b815260040161070f90613990565b806002015442106107e35760405162461bcd60e51b815260040161070f90613a14565b805460ff60b01b1916600160b01b17815560405182907f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90600090a25050565b60008281526003602090815260408083206001600160a01b038516845260020190915290205460ff165b92915050565b6000908152600360205260409020600181015490549091565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b6040805180820190915260018152603160f81b602082015290565b60006108c983338460405180602001604052806000815250611562565b9392505050565b600754600090600160a81b900460ff166108f5576007546001600160a01b031661096f565b73183faff6997c98a812a3b98748fc80241d08f3126001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b15801561094257600080fd5b505afa158015610956573d6000803e3d6000fd5b505050506040513d602081101561096c57600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905173183faff6997c98a812a3b98748fc80241d08f3129163debfda30916024808301926020929190829003018186803b1580156109c557600080fd5b505afa1580156109d9573d6000803e3d6000fd5b505050506040513d60208110156109ef57600080fd5b5051610a32576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b0319811660009081526008602052604090208054610a9e576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015610af4576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b8e5780601f10610b6357610100808354040283529160200191610b8e565b820191906000526020600020905b815481529060010190602001808311610b7157829003601f168201915b505050506001600160e01b0319851660009081526008602052604081208181559293509050610bc06001830182612d36565b50506007805460ff60b01b1916600160b01b17905560405181516000913091849190819060208401908083835b60208310610c0c5780518252601f199092019160209182019101610bed565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610c6e576040519150601f19603f3d011682016040523d82523d6000602084013e610c73565b606091505b50506007805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a1610cd281611701565b50505050565b73183faff6997c98a812a3b98748fc80241d08f31281565b610cf861171e565b6001600160e01b03198116600090815260086020526040902054610d63576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b03198116600090815260086020526040812081815590610dd16001830182612d36565b505050565b6008602090815260009182526040918290208054600180830180548651600293821615610100026000190190911692909204601f810186900486028301860190965285825291949293909290830182828015610e735780601f10610e4857610100808354040283529160200191610e73565b820191906000526020600020905b815481529060010190602001808311610e5657829003601f168201915b5050505050905082565b6001600160a01b031660009081526009602052604090205460ff1690565b6000610edf85338686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061156292505050565b90505b949350505050565b6000610ef9868686868661177f565b9695505050505050565b6040805161010081018252825115158152602080840151818301528383015182840152606080850151818401526080808601519084015260a08086015190840152600060c08401819052600160e0850152845181815292830181815283860182815292840190955293610ee2929185610f8c565b6060815260200190600190039081610f775790505b50878561177f565b7f000000000000000000000000000000000000000000000000000000000000000081565b600754600160a01b900460ff161561100e576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60078054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b6000610edf85858561108286611a15565b611a20565b600754600160b01b900460ff16806110a95750600754600160a81b900460ff16155b156110c5576110b6611a7e565b6110c08282611ab3565b6110d0565b6110d0600036611b9d565b5050565b6110dc61086c565b6001600160a01b0316336001600160a01b031614611138576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b61117161116c83836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250611d2f565b611e5c565b6110d08282611e80565b60009081526002602081905260409091208054600182015492820154600383015460048401546005850154600686015460078701546008909701546001600160a01b03871699600160a01b90970460ff16989795969495939492939192565b604080516000808252602082018181528284018281526060840190945290926107589291908461121a565b60608152602001906001900390816112055790505b5061122486611a15565b611fbb565b7f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b600754600160a81b900460ff1681565b6000610edf85858561122486611a15565b60006108c983836120b7565b6000546001600160a01b031681565b61129161171e565b600754600160a81b900460ff16156112f0576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60078054600161ff0160a01b031916600160a81b1790556040805173183faff6997c98a812a3b98748fc80241d08f312815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b600061135a61213a565b82604051602001808061190160f01b81525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561144e5760405162461bcd60e51b8152600401808060200182810382526022815260200180613f716022913960400191505060405180910390fd5b8360ff16601b148061146357508360ff16601c145b61149e5760405162461bcd60e51b8152600401808060200182810382526022815260200180613f936022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156114fa573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610edf576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b6000848152600260205260408120600161157c8783611623565b600781111561158757fe5b146115a45760405162461bcd60e51b815260040161070f90613d2f565b60006115b48683600101546120b7565b905060006115c488888885612204565b905087876001600160a01b03167fdd14487524f5e7c93029ad24503aa74e185d049a8c975136786a20eacc5e1b4e88858986600101548760000154604051611610959493929190613eb7565b60405180910390a3509695505050505050565b8054600090600160b01b900460ff161561163f5750600761084d565b8154600160a81b900460ff16156116585750600661084d565b60028201546116795760405162461bcd60e51b815260040161070f90613c1d565b428260020154111561168d5750600061084d565b42826003015411156116a15750600161084d565b6116ab83836122bc565b156116f8578154600160b81b900460ff166116c85750600461084d565b42826004015411156116dc5750600361084d565b42826005015411156116f05750600461084d565b50600561084d565b50600292915050565b3d604051818101604052816000823e821561171a578181f35b8181fd5b6117266108d0565b6001600160a01b0316336001600160a01b03161461177d576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b565b60008060006117918460600151612365565b9150915061179f33836125fc565b6117bb5760405162461bcd60e51b815260040161070f90613a9d565b60008460400151116117df5760405162461bcd60e51b815260040161070f90613d00565b60008460e00151116118035760405162461bcd60e51b815260040161070f90613c4a565b612710846080015111156118295760405162461bcd60e51b815260040161070f90613a66565b6113888460a001511015801561184557506127108460a0015111155b6118615760405162461bcd60e51b815260040161070f90613aeb565b60055460405163d9330e6360e01b81526000916001600160a01b03169063d9330e6390611892908690600401613910565b60206040518083038186803b1580156118aa57600080fd5b505afa1580156118be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e2919061353e565b90506000600460009054906101000a90046001600160a01b03166001600160a01b031663ec31db0c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561193457600080fd5b505afa158015611948573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196c919061353e565b9050600080611983338d8d8d8d8b8b8f8c8c612607565b91509150817f72ae4a121488f73dfdb9308e9ecdcd1fc31e5f6c553b6f1fb65650d04406e6ec338e8e8e8e8760000160149054906101000a900460ff166119c9896127ad565b6119d28a6127cf565b8a600101548b600601548c600701548d600801546040516119fe9c9b9a999897969594939291906137c3565b60405180910390a2509a9950505050505050505050565b805160209091012090565b60007f00000000000000000000000000000000000000000000000000000000000000003086868686604051602001611a5d96959493929190613e2c565b60408051601f19818403018152919052805160209091012095945050505050565b600754600160b01b900460ff1615611aab57333014611a9957fe5b6007805460ff60b01b1916905561177d565b61177d61171e565b7f4b8f4e528b6d075c6c9d025e58db64e36b460c1516341b1ab7339b4c6d5bcb8a8282604051611ae49291906138e0565b60405180910390a160005b8251811015611b4457600160096000858481518110611b0a57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101611aef565b5060005b8151811015610dd157600060096000848481518110611b6357fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101611b48565b611ba561171e565b600082359050600073183faff6997c98a812a3b98748fc80241d08f3126001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611bfa57600080fd5b505afa158015611c0e573d6000803e3d6000fd5b505050506040513d6020811015611c2457600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b03198616815260086020908152604090912083518155838201518051919350611caa926001850192910190612d7d565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015611d73578181015183820152602001611d5b565b50505050905090810190601f168015611da05780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b8651811015611e0857868181518110611dd657fe5b6020026020010151831415611e0057858181518110611df157fe5b60200260200101519150611e08565b600101611dc1565b506001600160a01b038116611e53576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b611eaf82826040518060400160405280600c81526020016b4674736f526567697374727960a01b815250611d2f565b600660006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611f0382826040518060400160405280600b81526020016a233a39b7a6b0b730b3b2b960a91b815250611d2f565b600460006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611f52828260405180604001604052806006815260200165537570706c7960d01b815250611d2f565b600560006101000a8154816001600160a01b0302191690836001600160a01b031602179055506000611fb083836040518060400160405280601381526020017223b7bb32b93730b731b2ab37ba32a837bbb2b960691b815250611d2f565b9050610dd1816127eb565b6000611fc985858585611a20565b6000818152600260205260409020805491925090600160a81b900460ff16156120045760405162461bcd60e51b815260040161070f90613df5565b80546001600160a01b0316331461202d5760405162461bcd60e51b815260040161070f90613b59565b60006120398383611623565b9050600481600781111561204957fe5b146120665760405162461bcd60e51b815260040161070f90613dbe565b815460ff60a81b1916600160a81b17825561208287878761280d565b60405183907f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f90600090a25050949350505050565b60008054604051631257fcdb60e31b81526001600160a01b03909116906392bfe6d8906120ea90869086906004016138c7565b60206040518083038186803b15801561210257600080fd5b505afa158015612116573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c9919061353e565b60007f0000000000000000000000000000000000000000000000000000000000000000612165612945565b141561219257507f0000000000000000000000000000000000000000000000000000000000000000610658565b6121fd7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612949565b9050610658565b60008481526003602090815260408083206001600160a01b0387168452600281019092529091205460ff161561224c5760405162461bcd60e51b815260040161070f90613d93565b6001600160a01b03841660009081526002820160205260408120805460ff1916600117905560ff168360ff16141561228957805482018155610ee2565b60ff8316600114156122a45760018101805483019055610ee2565b60405162461bcd60e51b815260040161070f90613d5c565b6000828152600360205260408120600883015460068401546122e0916127106129ab565b815460018301540110156123025750508054600160a01b900460ff161561084d565b80546001820154600785015461231d929091016127106129ab565b8354600160a01b900460ff1661233457815461233a565b81600101545b116123535750508054600160a01b900460ff161561084d565b505054600160a01b900460ff16919050565b6000806000600460009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b1580156123b857600080fd5b505afa1580156123cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f0919061353e565b6004805460405163e5399da360e01b81529293506000926001600160a01b039091169163e5399da39161242591869101613910565b60606040518083038186803b15801561243d57600080fd5b505afa158015612451573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061247591906134d1565b6000805460408051635397625b60e11b8152905193945043936001600160a01b039092169163a72ec4b691600480820192602092909190829003018186803b1580156124c057600080fd5b505afa1580156124d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124f8919061353e565b604084015190915042035b60008511801561251257508781105b156125c9576004805460405163e5399da360e01b81526000926001600160a01b039092169163e5399da39161254d916000198b019101613910565b60606040518083038186803b15801561256557600080fd5b505afa158015612579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259d91906134d1565b905082816020015110156125b157506125c9565b60408101516000199096019590945042039050612503565b602084015160008185036125db612ab7565b816125e257fe5b604090970151960690940397509395505050505050915091565b60006108c983610e7d565b60008089518b511461262b5760405162461bcd60e51b815260040161070f90613959565b88518b511461264c5760405162461bcd60e51b815260040161070f90613959565b600061265d8c8c8c6110828d611a15565b60008181526002602081905260409091209081015491925090156126935760405162461bcd60e51b815260040161070f906139dd565b8d8160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555088816001018190555086600001518160000160146101000a81548160ff0219169083151502179055508660200151420181600201819055508660400151816002015401816003018190555084888260030154031061272c5760405162461bcd60e51b815260040161070f90613ba6565b8c511561277e57805460ff60b81b1916600160b81b17815560c08701516003820154016004820181905560015411156127685760015460048201555b60e0870151600482015401600582018190556001555b6080870151600682015560a087015160078201556008810186905590925090509a509a98505050505050505050565b6127b5612e09565b6002820154815260038201548160015b6020020152919050565b6127d7612e09565b6004820154815260058201548160016127c5565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000805b835181101561283f5783818151811061282657fe5b6020026020010151820191508080600101915050612811565b5080341461285f5760405162461bcd60e51b815260040161070f90613c81565b60005b845181101561293e5760008086838151811061287a57fe5b60200260200101516001600160a01b031686848151811061289757fe5b60200260200101518685815181106128ab57fe5b60200260200101516040516128c09190613793565b60006040518083038185875af1925050503d80600081146128fd576040519150601f19603f3d011682016040523d82523d6000602084013e612902565b606091505b5091509150816129345780511561291c5780518082602001fd5b60405162461bcd60e51b815260040161070f90613b22565b5050600101612862565b5050505050565b4690565b6000838383612956612945565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b03168152602001955050505050506040516020818303038152906040528051906020012090509392505050565b60008082116129f4576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b83612a01575060006108c9565b83830283858281612a0e57fe5b041415612a2757828181612a1e57fe5b049150506108c9565b6000838681612a3257fe5b0490506000848781612a4057fe5b0690506000858781612a4e57fe5b0490506000868881612a5c57fe5b069050612aaa612a7688612a708685612c1c565b90612c75565b612aa4612a838686612c1c565b612aa4612a908987612c1c565b612aa48d612a9e8c8b612c1c565b90612c1c565b90612cdc565b9998505050505050505050565b600080600090506000600660009054906101000a90046001600160a01b03166001600160a01b031663a40060ba6040518163ffffffff1660e01b815260040160006040518083038186803b158015612b0e57600080fd5b505afa158015612b22573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612b4a919081019061332c565b905060005b8151811015612be857818181518110612b6457fe5b60200260200101516001600160a01b031663d89601fd6040518163ffffffff1660e01b815260040160206040518083038186803b158015612ba457600080fd5b505afa158015612bb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bdc919061353e565b90920191600101612b4f565b504282604051602001612bfc929190613ea9565b6040516020818303038152906040528051906020012060001c9250505090565b600082612c2b5750600061084d565b82820282848281612c3857fe5b04146108c95760405162461bcd60e51b8152600401808060200182810382526021815260200180613fb56021913960400191505060405180910390fd5b6000808211612ccb576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381612cd457fe5b049392505050565b6000828201838110156108c9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b50805460018160011615610100020316600290046000825580601f10612d5c5750612d7a565b601f016020900490600052602060002090810190612d7a9190612e27565b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612db35760008555612df9565b82601f10612dcc57805160ff1916838001178555612df9565b82800160010185558215612df9579182015b82811115612df9578251825591602001919060010190612dde565b50612e05929150612e27565b5090565b60405180604001604052806002906020820280368337509192915050565b5b80821115612e055760008155600101612e28565b600067ffffffffffffffff831115612e5057fe5b612e63601f8401601f1916602001613eed565b9050828152838383011115612e7757600080fd5b828260208301376000602084830101529392505050565b600082601f830112612e9e578081fd5b81356020612eb3612eae83613f11565b613eed565b8281528181019085830183850287018401881015612ecf578586fd5b855b85811015612ef6578135612ee481613f5b565b84529284019290840190600101612ed1565b5090979650505050505050565b600082601f830112612f13578081fd5b81356020612f23612eae83613f11565b82815281810190858301855b85811015612ef6578135880189603f820112612f49578788fd5b612f5a8a8783013560408401612e3c565b8552509284019290840190600101612f2f565b600082601f830112612f7d578081fd5b81356020612f8d612eae83613f11565b8281528181019085830183850287018401881015612fa9578586fd5b855b85811015612ef657813584529284019290840190600101612fab565b8035801515811461075b57600080fd5b600082601f830112612fe7578081fd5b6108c983833560208501612e3c565b803560ff8116811461075b57600080fd5b600060208284031215613018578081fd5b81356108c981613f5b565b60008060408385031215613035578081fd5b823561304081613f5b565b946020939093013593505050565b60008060408385031215613060578182fd5b823567ffffffffffffffff80821115613077578384fd5b61308386838701612e8e565b93506020850135915080821115613098578283fd5b506130a585828601612e8e565b9150509250929050565b600080600080608085870312156130c4578182fd5b843567ffffffffffffffff808211156130db578384fd5b6130e788838901612e8e565b955060208701359150808211156130fc578384fd5b61310888838901612f6d565b9450604087013591508082111561311d578384fd5b61312988838901612f03565b9350606087013591508082111561313e578283fd5b5061314b87828801612fd7565b91505092959194509250565b6000806000806000858703610180811215613170578384fd5b863567ffffffffffffffff80821115613187578586fd5b6131938a838b01612e8e565b975060208901359150808211156131a8578586fd5b6131b48a838b01612f6d565b965060408901359150808211156131c9578586fd5b6131d58a838b01612f03565b955060608901359150808211156131ea578384fd5b6131f68a838b01612fd7565b9450610100915081607f198401121561320d578384fd5b6040519250818301838110828211171561322357fe5b6040525061323360808901612fc7565b825260a0880135602083015260c0880135604083015260e088013560608301528088013560808301525061012087013560a082015261014087013560c082015261016087013560e0820152809150509295509295909350565b6000806040838503121561329e578182fd5b823567ffffffffffffffff808211156132b5578384fd5b818501915085601f8301126132c8578384fd5b813560206132d8612eae83613f11565b82815281810190858301838502870184018b10156132f4578889fd5b8896505b848710156133165780358352600196909601959183019183016132f8565b5096505086013592505080821115613098578283fd5b6000602080838503121561333e578182fd5b825167ffffffffffffffff811115613354578283fd5b8301601f81018513613364578283fd5b8051613372612eae82613f11565b818152838101908385018584028501860189101561338e578687fd5b8694505b838510156133b95780516133a581613f5b565b835260019490940193918501918501613392565b50979650505050505050565b6000602082840312156133d6578081fd5b81356001600160e01b0319811681146108c9578182fd5b6000602082840312156133fe578081fd5b813567ffffffffffffffff811115613414578182fd5b610ee284828501612fd7565b60008082840360e0811215613433578283fd5b833567ffffffffffffffff8082111561344a578485fd5b61345687838801612fd7565b945060c0601f1984011215613469578384fd5b604051925060c083019150828210818311171561348257fe5b5060405261349260208501612fc7565b815260408401356020820152606084013560408201526080840135606082015260a0840135608082015260c084013560a0820152809150509250929050565b6000606082840312156134e2578081fd5b6040516060810181811067ffffffffffffffff821117156134ff57fe5b80604052508251815260208301516020820152604083015160408201528091505092915050565b600060208284031215613537578081fd5b5035919050565b60006020828403121561354f578081fd5b5051919050565b60008060408385031215613568578182fd5b82359150602083013561357a81613f5b565b809150509250929050565b60008060408385031215613597578182fd5b823591506135a760208401612ff6565b90509250929050565b600080600080606085870312156135c5578182fd5b843593506135d560208601612ff6565b9250604085013567ffffffffffffffff808211156135f1578384fd5b818701915087601f830112613604578384fd5b813581811115613612578485fd5b886020828501011115613623578485fd5b95989497505060200194505050565b600080600080600060a08688031215613649578283fd5b8535945061365960208701612ff6565b935061366760408701612ff6565b94979396509394606081013594506080013592915050565b6000815180845260208085019450808401835b838110156136b75781516001600160a01b031687529582019590820190600101613692565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b858110156137085782840389526136f6848351613767565b988501989350908401906001016136de565b5091979650505050505050565b8060005b6002811015610cd2578151845260209384019390910190600101613719565b6000815180845260208085019450808401835b838110156136b75781518752958201959082019060010161374b565b6000815180845261377f816020860160208601613f2f565b601f01601f19169290920160200192915050565b600082516137a5818460208701613f2f565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b038d1681526101c0602082018190526000906137e88382018f61367f565b905082810360408401526137fc818e613738565b90508281036060840152613810818d6136c2565b90508281036080840152613824818c613767565b91505088151560a083015261383c60c0830189613715565b61384a610100830188613715565b856101408301528461016083015283610180830152826101a08301529d9c50505050505050505050505050565b6001600160a01b039a909a168a5297151560208a015260408901969096526060880194909452608087019290925260a086015260c085015260e08401526101008301526101208201526101400190565b6001600160a01b03929092168252602082015260400190565b6000604082526138f3604083018561367f565b8281036020840152611e53818561367f565b901515815260200190565b90815260200190565b928352602083019190915260ff16604082015260600190565b602081016008831061394057fe5b91905290565b6000602082526108c96020830184613767565b60208082526017908201527f696e76616c69642070726f706f73616c206c656e677468000000000000000000604082015260600190565b6020808252602d908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c656420627960408201526c1034ba3990383937b837b9b2b960991b606082015260800190565b60208082526017908201527f70726f706f73616c20616c726561647920657869737473000000000000000000604082015260600190565b60208082526032908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c6564206265604082015271666f726520766f74696e672073746172747360701b606082015260800190565b6020808252601e908201527f696e76616c6964207468726573686f6c64436f6e646974696f6e424950530000604082015260600190565b6020808252602e908201527f7375626d6974746572206973206e6f7420656c696769626c6520746f2073756260408201526d1b5a5d0818481c1c9bdc1bdcd85b60921b606082015260800190565b6020808252601d908201527f696e76616c6964206d616a6f72697479436f6e646974696f6e42495053000000604082015260600190565b6020808252601d908201527f63616c6c20726576657274656420776974686f7574206d657373616765000000604082015260600190565b6020808252602d908201527f70726f706f73616c2063616e206f6e6c7920626520657865637574656420627960408201526c1034ba3990383937b837b9b2b960991b606082015260800190565b60208082526027908201527f766f746520706f77657220626c6f636b20697320746f6f2066617220696e20746040820152661a19481c185cdd60ca1b606082015260800190565b602080825260169082015275696e76616c696420766f7465207369676e617475726560501b604082015260600190565b6020808252601390820152721d5b9adb9bdddb881c1c9bdc1bdcd85b081a59606a1b604082015260600190565b60208082526018908201527f657865637574696f6e20706572696f6420746f6f206c6f770000000000000000604082015260600190565b60208082526028908201527f73756d206f66205f76616c75657320646f6573206e6f7420657175616c73206d60408201526773672e76616c756560c01b606082015260800190565b6020808252601c908201527f70726f706f73616c20697320616c72656164792063616e63656c656400000000604082015260600190565b602080825260159082015274766f74696e6720706572696f6420746f6f206c6f7760581b604082015260600190565b60208082526013908201527270726f706f73616c206e6f742061637469766560681b604082015260600190565b6020808252601f908201527f696e76616c69642076616c756520666f7220656e756d20566f74655479706500604082015260600190565b6020808252601190820152701d9bdd1948185b1c9958591e4818d85cdd607a1b604082015260600190565b6020808252601f908201527f70726f706f73616c206e6f7420696e20657865637574696f6e20737461746500604082015260600190565b60208082526019908201527f70726f706f73616c20616c726561647920657865637574656400000000000000604082015260600190565b8681526001600160a01b038616602082015260c060408201819052600090613e569083018761367f565b8281036060840152613e688187613738565b90508281036080840152613e7c81866136c2565b9150508260a0830152979650505050505050565b600083825260406020830152610ee26040830184613767565b918252602082015260400190565b600060ff8716825285602083015260a06040830152613ed960a0830186613767565b606083019490945250608001529392505050565b60405181810167ffffffffffffffff81118282101715613f0957fe5b604052919050565b600067ffffffffffffffff821115613f2557fe5b5060209081020190565b60005b83811015613f4a578181015183820152602001613f32565b83811115610cd25750506000910152565b6001600160a01b0381168114612d7a57600080fdfe45434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122089d4a105315795fcfc71065f7e434562a599b8bc2a4d28d93262eee4f23df3e264736f6c63430007060033",
1062
- "deployedBytecode": "0x6080604052600436106101f95760003560e01c806374ec29a01161010d578063b00c0b76116100a0578063e17f212e1161006f578063e17f212e146105ae578063e4ea8b65146105c3578063eb9019d4146105d6578063f17c9d76146105f6578063f5a983831461060b576101f9565b8063b00c0b7614610523578063bc903cb814610543578063bd590d7e14610579578063deaaa7cc14610599576101f9565b80639a8a0592116100dc5780639a8a0592146104ae5780639d6a890f146104c3578063a3c90b80146104e3578063a7a6224a14610503576101f9565b806374ec29a01461042e5780637b3c71d31461044e578063854121961461046e57806386f90bbf1461048e576101f9565b806347c66140116101905780635aa6e6751161015f5780635aa6e675146103965780635ff27079146103ab57806362354e03146103cb57806367fc4029146103e057806374e6310e14610400576101f9565b806347c661401461031e5780635267a15d1461034c57806354fd4d50146103615780635678138814610376576101f9565b80633bccf4fd116101cc5780633bccf4fd146102755780633e4f49e6146102a257806340e58ee5146102cf57806343859632146102f1576101f9565b8063047fc9aa146101fe57806306fdde031461022957806311a7aaaa1461024b57806338b5f86914610260575b600080fd5b34801561020a57600080fd5b50610213610620565b60405161022091906137af565b60405180910390f35b34801561023557600080fd5b5061023e61062f565b6040516102209190613946565b34801561025757600080fd5b5061021361065b565b34801561026c57600080fd5b5061021361066a565b34801561028157600080fd5b50610295610290366004613632565b610679565b6040516102209190613910565b3480156102ae57600080fd5b506102c26102bd366004613526565b61073f565b6040516102209190613932565b3480156102db57600080fd5b506102ef6102ea366004613526565b610760565b005b3480156102fd57600080fd5b5061031161030c366004613556565b610823565b6040516102209190613905565b34801561032a57600080fd5b5061033e610339366004613526565b610853565b604051610220929190613ea9565b34801561035857600080fd5b5061021361086c565b34801561036d57600080fd5b5061023e610891565b34801561038257600080fd5b50610295610391366004613585565b6108ac565b3480156103a257600080fd5b506102136108d0565b3480156103b757600080fd5b506102ef6103c63660046133c5565b610974565b3480156103d757600080fd5b50610213610cd8565b3480156103ec57600080fd5b506102ef6103fb3660046133c5565b610cf0565b34801561040c57600080fd5b5061042061041b3660046133c5565b610dd6565b604051610220929190613e90565b34801561043a57600080fd5b50610311610449366004613007565b610e7d565b34801561045a57600080fd5b506102956104693660046135b0565b610e9b565b34801561047a57600080fd5b50610295610489366004613157565b610eea565b34801561049a57600080fd5b506102956104a9366004613420565b610f03565b3480156104ba57600080fd5b50610295610f94565b3480156104cf57600080fd5b506102ef6104de366004613007565b610fb8565b3480156104ef57600080fd5b506102956104fe3660046130af565b611071565b34801561050f57600080fd5b506102ef61051e36600461304e565b611087565b34801561052f57600080fd5b506102ef61053e36600461328c565b6110d4565b34801561054f57600080fd5b5061056361055e366004613526565b61117b565b6040516102209a99989796959493929190613877565b34801561058557600080fd5b506102956105943660046133ed565b6111da565b3480156105a557600080fd5b50610295611229565b3480156105ba57600080fd5b5061031161124d565b6102956105d13660046130af565b61125d565b3480156105e257600080fd5b506102956105f1366004613023565b61126e565b34801561060257600080fd5b5061021361127a565b34801561061757600080fd5b506102ef611289565b6005546001600160a01b031681565b6040805180820190915260118152702837b63634b733a337bab73230ba34b7b760791b60208201525b90565b6004546001600160a01b031681565b6006546001600160a01b031681565b6000806106d76106d27f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f89896040516020016106b793929190613919565b60405160208183030381529060405280519060200120611350565b61139c565b905060006106e7828787876113ed565b90506001600160a01b0381166107185760405162461bcd60e51b815260040161070f90613bed565b60405180910390fd5b61073388828960405180602001604052806000815250611562565b98975050505050505050565b6000818152600260205260408120610758908390611623565b90505b919050565b60008181526002602052604090208054600160b01b900460ff16156107975760405162461bcd60e51b815260040161070f90613cc9565b80546001600160a01b031633146107c05760405162461bcd60e51b815260040161070f90613990565b806002015442106107e35760405162461bcd60e51b815260040161070f90613a14565b805460ff60b01b1916600160b01b17815560405182907f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90600090a25050565b60008281526003602090815260408083206001600160a01b038516845260020190915290205460ff165b92915050565b6000908152600360205260409020600181015490549091565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b6040805180820190915260018152603160f81b602082015290565b60006108c983338460405180602001604052806000815250611562565b9392505050565b600754600090600160a81b900460ff166108f5576007546001600160a01b031661096f565b73183faff6997c98a812a3b98748fc80241d08f3126001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b15801561094257600080fd5b505afa158015610956573d6000803e3d6000fd5b505050506040513d602081101561096c57600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905173183faff6997c98a812a3b98748fc80241d08f3129163debfda30916024808301926020929190829003018186803b1580156109c557600080fd5b505afa1580156109d9573d6000803e3d6000fd5b505050506040513d60208110156109ef57600080fd5b5051610a32576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b0319811660009081526008602052604090208054610a9e576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015610af4576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b8e5780601f10610b6357610100808354040283529160200191610b8e565b820191906000526020600020905b815481529060010190602001808311610b7157829003601f168201915b505050506001600160e01b0319851660009081526008602052604081208181559293509050610bc06001830182612d36565b50506007805460ff60b01b1916600160b01b17905560405181516000913091849190819060208401908083835b60208310610c0c5780518252601f199092019160209182019101610bed565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610c6e576040519150601f19603f3d011682016040523d82523d6000602084013e610c73565b606091505b50506007805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a1610cd281611701565b50505050565b73183faff6997c98a812a3b98748fc80241d08f31281565b610cf861171e565b6001600160e01b03198116600090815260086020526040902054610d63576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b03198116600090815260086020526040812081815590610dd16001830182612d36565b505050565b6008602090815260009182526040918290208054600180830180548651600293821615610100026000190190911692909204601f810186900486028301860190965285825291949293909290830182828015610e735780601f10610e4857610100808354040283529160200191610e73565b820191906000526020600020905b815481529060010190602001808311610e5657829003601f168201915b5050505050905082565b6001600160a01b031660009081526009602052604090205460ff1690565b6000610edf85338686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061156292505050565b90505b949350505050565b6000610ef9868686868661177f565b9695505050505050565b6040805161010081018252825115158152602080840151818301528383015182840152606080850151818401526080808601519084015260a08086015190840152600060c08401819052600160e0850152845181815292830181815283860182815292840190955293610ee2929185610f8c565b6060815260200190600190039081610f775790505b50878561177f565b7f000000000000000000000000000000000000000000000000000000000000000081565b600754600160a01b900460ff161561100e576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60078054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b6000610edf85858561108286611a15565b611a20565b600754600160b01b900460ff16806110a95750600754600160a81b900460ff16155b156110c5576110b6611a7e565b6110c08282611ab3565b6110d0565b6110d0600036611b9d565b5050565b6110dc61086c565b6001600160a01b0316336001600160a01b031614611138576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b61117161116c83836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250611d2f565b611e5c565b6110d08282611e80565b60009081526002602081905260409091208054600182015492820154600383015460048401546005850154600686015460078701546008909701546001600160a01b03871699600160a01b90970460ff16989795969495939492939192565b604080516000808252602082018181528284018281526060840190945290926107589291908461121a565b60608152602001906001900390816112055790505b5061122486611a15565b611fbb565b7f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b600754600160a81b900460ff1681565b6000610edf85858561122486611a15565b60006108c983836120b7565b6000546001600160a01b031681565b61129161171e565b600754600160a81b900460ff16156112f0576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60078054600161ff0160a01b031916600160a81b1790556040805173183faff6997c98a812a3b98748fc80241d08f312815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b600061135a61213a565b82604051602001808061190160f01b81525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561144e5760405162461bcd60e51b8152600401808060200182810382526022815260200180613f716022913960400191505060405180910390fd5b8360ff16601b148061146357508360ff16601c145b61149e5760405162461bcd60e51b8152600401808060200182810382526022815260200180613f936022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156114fa573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610edf576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b6000848152600260205260408120600161157c8783611623565b600781111561158757fe5b146115a45760405162461bcd60e51b815260040161070f90613d2f565b60006115b48683600101546120b7565b905060006115c488888885612204565b905087876001600160a01b03167fdd14487524f5e7c93029ad24503aa74e185d049a8c975136786a20eacc5e1b4e88858986600101548760000154604051611610959493929190613eb7565b60405180910390a3509695505050505050565b8054600090600160b01b900460ff161561163f5750600761084d565b8154600160a81b900460ff16156116585750600661084d565b60028201546116795760405162461bcd60e51b815260040161070f90613c1d565b428260020154111561168d5750600061084d565b42826003015411156116a15750600161084d565b6116ab83836122bc565b156116f8578154600160b81b900460ff166116c85750600461084d565b42826004015411156116dc5750600361084d565b42826005015411156116f05750600461084d565b50600561084d565b50600292915050565b3d604051818101604052816000823e821561171a578181f35b8181fd5b6117266108d0565b6001600160a01b0316336001600160a01b03161461177d576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b565b60008060006117918460600151612365565b9150915061179f33836125fc565b6117bb5760405162461bcd60e51b815260040161070f90613a9d565b60008460400151116117df5760405162461bcd60e51b815260040161070f90613d00565b60008460e00151116118035760405162461bcd60e51b815260040161070f90613c4a565b612710846080015111156118295760405162461bcd60e51b815260040161070f90613a66565b6113888460a001511015801561184557506127108460a0015111155b6118615760405162461bcd60e51b815260040161070f90613aeb565b60055460405163d9330e6360e01b81526000916001600160a01b03169063d9330e6390611892908690600401613910565b60206040518083038186803b1580156118aa57600080fd5b505afa1580156118be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e2919061353e565b90506000600460009054906101000a90046001600160a01b03166001600160a01b031663ec31db0c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561193457600080fd5b505afa158015611948573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196c919061353e565b9050600080611983338d8d8d8d8b8b8f8c8c612607565b91509150817f72ae4a121488f73dfdb9308e9ecdcd1fc31e5f6c553b6f1fb65650d04406e6ec338e8e8e8e8760000160149054906101000a900460ff166119c9896127ad565b6119d28a6127cf565b8a600101548b600601548c600701548d600801546040516119fe9c9b9a999897969594939291906137c3565b60405180910390a2509a9950505050505050505050565b805160209091012090565b60007f00000000000000000000000000000000000000000000000000000000000000003086868686604051602001611a5d96959493929190613e2c565b60408051601f19818403018152919052805160209091012095945050505050565b600754600160b01b900460ff1615611aab57333014611a9957fe5b6007805460ff60b01b1916905561177d565b61177d61171e565b7f4b8f4e528b6d075c6c9d025e58db64e36b460c1516341b1ab7339b4c6d5bcb8a8282604051611ae49291906138e0565b60405180910390a160005b8251811015611b4457600160096000858481518110611b0a57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101611aef565b5060005b8151811015610dd157600060096000848481518110611b6357fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101611b48565b611ba561171e565b600082359050600073183faff6997c98a812a3b98748fc80241d08f3126001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611bfa57600080fd5b505afa158015611c0e573d6000803e3d6000fd5b505050506040513d6020811015611c2457600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b03198616815260086020908152604090912083518155838201518051919350611caa926001850192910190612d7d565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015611d73578181015183820152602001611d5b565b50505050905090810190601f168015611da05780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b8651811015611e0857868181518110611dd657fe5b6020026020010151831415611e0057858181518110611df157fe5b60200260200101519150611e08565b600101611dc1565b506001600160a01b038116611e53576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b611eaf82826040518060400160405280600c81526020016b4674736f526567697374727960a01b815250611d2f565b600660006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611f0382826040518060400160405280600b81526020016a233a39b7a6b0b730b3b2b960a91b815250611d2f565b600460006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611f52828260405180604001604052806006815260200165537570706c7960d01b815250611d2f565b600560006101000a8154816001600160a01b0302191690836001600160a01b031602179055506000611fb083836040518060400160405280601381526020017223b7bb32b93730b731b2ab37ba32a837bbb2b960691b815250611d2f565b9050610dd1816127eb565b6000611fc985858585611a20565b6000818152600260205260409020805491925090600160a81b900460ff16156120045760405162461bcd60e51b815260040161070f90613df5565b80546001600160a01b0316331461202d5760405162461bcd60e51b815260040161070f90613b59565b60006120398383611623565b9050600481600781111561204957fe5b146120665760405162461bcd60e51b815260040161070f90613dbe565b815460ff60a81b1916600160a81b17825561208287878761280d565b60405183907f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f90600090a25050949350505050565b60008054604051631257fcdb60e31b81526001600160a01b03909116906392bfe6d8906120ea90869086906004016138c7565b60206040518083038186803b15801561210257600080fd5b505afa158015612116573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c9919061353e565b60007f0000000000000000000000000000000000000000000000000000000000000000612165612945565b141561219257507f0000000000000000000000000000000000000000000000000000000000000000610658565b6121fd7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612949565b9050610658565b60008481526003602090815260408083206001600160a01b0387168452600281019092529091205460ff161561224c5760405162461bcd60e51b815260040161070f90613d93565b6001600160a01b03841660009081526002820160205260408120805460ff1916600117905560ff168360ff16141561228957805482018155610ee2565b60ff8316600114156122a45760018101805483019055610ee2565b60405162461bcd60e51b815260040161070f90613d5c565b6000828152600360205260408120600883015460068401546122e0916127106129ab565b815460018301540110156123025750508054600160a01b900460ff161561084d565b80546001820154600785015461231d929091016127106129ab565b8354600160a01b900460ff1661233457815461233a565b81600101545b116123535750508054600160a01b900460ff161561084d565b505054600160a01b900460ff16919050565b6000806000600460009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b1580156123b857600080fd5b505afa1580156123cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f0919061353e565b6004805460405163e5399da360e01b81529293506000926001600160a01b039091169163e5399da39161242591869101613910565b60606040518083038186803b15801561243d57600080fd5b505afa158015612451573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061247591906134d1565b6000805460408051635397625b60e11b8152905193945043936001600160a01b039092169163a72ec4b691600480820192602092909190829003018186803b1580156124c057600080fd5b505afa1580156124d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124f8919061353e565b604084015190915042035b60008511801561251257508781105b156125c9576004805460405163e5399da360e01b81526000926001600160a01b039092169163e5399da39161254d916000198b019101613910565b60606040518083038186803b15801561256557600080fd5b505afa158015612579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259d91906134d1565b905082816020015110156125b157506125c9565b60408101516000199096019590945042039050612503565b602084015160008185036125db612ab7565b816125e257fe5b604090970151960690940397509395505050505050915091565b60006108c983610e7d565b60008089518b511461262b5760405162461bcd60e51b815260040161070f90613959565b88518b511461264c5760405162461bcd60e51b815260040161070f90613959565b600061265d8c8c8c6110828d611a15565b60008181526002602081905260409091209081015491925090156126935760405162461bcd60e51b815260040161070f906139dd565b8d8160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555088816001018190555086600001518160000160146101000a81548160ff0219169083151502179055508660200151420181600201819055508660400151816002015401816003018190555084888260030154031061272c5760405162461bcd60e51b815260040161070f90613ba6565b8c511561277e57805460ff60b81b1916600160b81b17815560c08701516003820154016004820181905560015411156127685760015460048201555b60e0870151600482015401600582018190556001555b6080870151600682015560a087015160078201556008810186905590925090509a509a98505050505050505050565b6127b5612e09565b6002820154815260038201548160015b6020020152919050565b6127d7612e09565b6004820154815260058201548160016127c5565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000805b835181101561283f5783818151811061282657fe5b6020026020010151820191508080600101915050612811565b5080341461285f5760405162461bcd60e51b815260040161070f90613c81565b60005b845181101561293e5760008086838151811061287a57fe5b60200260200101516001600160a01b031686848151811061289757fe5b60200260200101518685815181106128ab57fe5b60200260200101516040516128c09190613793565b60006040518083038185875af1925050503d80600081146128fd576040519150601f19603f3d011682016040523d82523d6000602084013e612902565b606091505b5091509150816129345780511561291c5780518082602001fd5b60405162461bcd60e51b815260040161070f90613b22565b5050600101612862565b5050505050565b4690565b6000838383612956612945565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b03168152602001955050505050506040516020818303038152906040528051906020012090509392505050565b60008082116129f4576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b83612a01575060006108c9565b83830283858281612a0e57fe5b041415612a2757828181612a1e57fe5b049150506108c9565b6000838681612a3257fe5b0490506000848781612a4057fe5b0690506000858781612a4e57fe5b0490506000868881612a5c57fe5b069050612aaa612a7688612a708685612c1c565b90612c75565b612aa4612a838686612c1c565b612aa4612a908987612c1c565b612aa48d612a9e8c8b612c1c565b90612c1c565b90612cdc565b9998505050505050505050565b600080600090506000600660009054906101000a90046001600160a01b03166001600160a01b031663a40060ba6040518163ffffffff1660e01b815260040160006040518083038186803b158015612b0e57600080fd5b505afa158015612b22573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612b4a919081019061332c565b905060005b8151811015612be857818181518110612b6457fe5b60200260200101516001600160a01b031663d89601fd6040518163ffffffff1660e01b815260040160206040518083038186803b158015612ba457600080fd5b505afa158015612bb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bdc919061353e565b90920191600101612b4f565b504282604051602001612bfc929190613ea9565b6040516020818303038152906040528051906020012060001c9250505090565b600082612c2b5750600061084d565b82820282848281612c3857fe5b04146108c95760405162461bcd60e51b8152600401808060200182810382526021815260200180613fb56021913960400191505060405180910390fd5b6000808211612ccb576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381612cd457fe5b049392505050565b6000828201838110156108c9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b50805460018160011615610100020316600290046000825580601f10612d5c5750612d7a565b601f016020900490600052602060002090810190612d7a9190612e27565b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612db35760008555612df9565b82601f10612dcc57805160ff1916838001178555612df9565b82800160010185558215612df9579182015b82811115612df9578251825591602001919060010190612dde565b50612e05929150612e27565b5090565b60405180604001604052806002906020820280368337509192915050565b5b80821115612e055760008155600101612e28565b600067ffffffffffffffff831115612e5057fe5b612e63601f8401601f1916602001613eed565b9050828152838383011115612e7757600080fd5b828260208301376000602084830101529392505050565b600082601f830112612e9e578081fd5b81356020612eb3612eae83613f11565b613eed565b8281528181019085830183850287018401881015612ecf578586fd5b855b85811015612ef6578135612ee481613f5b565b84529284019290840190600101612ed1565b5090979650505050505050565b600082601f830112612f13578081fd5b81356020612f23612eae83613f11565b82815281810190858301855b85811015612ef6578135880189603f820112612f49578788fd5b612f5a8a8783013560408401612e3c565b8552509284019290840190600101612f2f565b600082601f830112612f7d578081fd5b81356020612f8d612eae83613f11565b8281528181019085830183850287018401881015612fa9578586fd5b855b85811015612ef657813584529284019290840190600101612fab565b8035801515811461075b57600080fd5b600082601f830112612fe7578081fd5b6108c983833560208501612e3c565b803560ff8116811461075b57600080fd5b600060208284031215613018578081fd5b81356108c981613f5b565b60008060408385031215613035578081fd5b823561304081613f5b565b946020939093013593505050565b60008060408385031215613060578182fd5b823567ffffffffffffffff80821115613077578384fd5b61308386838701612e8e565b93506020850135915080821115613098578283fd5b506130a585828601612e8e565b9150509250929050565b600080600080608085870312156130c4578182fd5b843567ffffffffffffffff808211156130db578384fd5b6130e788838901612e8e565b955060208701359150808211156130fc578384fd5b61310888838901612f6d565b9450604087013591508082111561311d578384fd5b61312988838901612f03565b9350606087013591508082111561313e578283fd5b5061314b87828801612fd7565b91505092959194509250565b6000806000806000858703610180811215613170578384fd5b863567ffffffffffffffff80821115613187578586fd5b6131938a838b01612e8e565b975060208901359150808211156131a8578586fd5b6131b48a838b01612f6d565b965060408901359150808211156131c9578586fd5b6131d58a838b01612f03565b955060608901359150808211156131ea578384fd5b6131f68a838b01612fd7565b9450610100915081607f198401121561320d578384fd5b6040519250818301838110828211171561322357fe5b6040525061323360808901612fc7565b825260a0880135602083015260c0880135604083015260e088013560608301528088013560808301525061012087013560a082015261014087013560c082015261016087013560e0820152809150509295509295909350565b6000806040838503121561329e578182fd5b823567ffffffffffffffff808211156132b5578384fd5b818501915085601f8301126132c8578384fd5b813560206132d8612eae83613f11565b82815281810190858301838502870184018b10156132f4578889fd5b8896505b848710156133165780358352600196909601959183019183016132f8565b5096505086013592505080821115613098578283fd5b6000602080838503121561333e578182fd5b825167ffffffffffffffff811115613354578283fd5b8301601f81018513613364578283fd5b8051613372612eae82613f11565b818152838101908385018584028501860189101561338e578687fd5b8694505b838510156133b95780516133a581613f5b565b835260019490940193918501918501613392565b50979650505050505050565b6000602082840312156133d6578081fd5b81356001600160e01b0319811681146108c9578182fd5b6000602082840312156133fe578081fd5b813567ffffffffffffffff811115613414578182fd5b610ee284828501612fd7565b60008082840360e0811215613433578283fd5b833567ffffffffffffffff8082111561344a578485fd5b61345687838801612fd7565b945060c0601f1984011215613469578384fd5b604051925060c083019150828210818311171561348257fe5b5060405261349260208501612fc7565b815260408401356020820152606084013560408201526080840135606082015260a0840135608082015260c084013560a0820152809150509250929050565b6000606082840312156134e2578081fd5b6040516060810181811067ffffffffffffffff821117156134ff57fe5b80604052508251815260208301516020820152604083015160408201528091505092915050565b600060208284031215613537578081fd5b5035919050565b60006020828403121561354f578081fd5b5051919050565b60008060408385031215613568578182fd5b82359150602083013561357a81613f5b565b809150509250929050565b60008060408385031215613597578182fd5b823591506135a760208401612ff6565b90509250929050565b600080600080606085870312156135c5578182fd5b843593506135d560208601612ff6565b9250604085013567ffffffffffffffff808211156135f1578384fd5b818701915087601f830112613604578384fd5b813581811115613612578485fd5b886020828501011115613623578485fd5b95989497505060200194505050565b600080600080600060a08688031215613649578283fd5b8535945061365960208701612ff6565b935061366760408701612ff6565b94979396509394606081013594506080013592915050565b6000815180845260208085019450808401835b838110156136b75781516001600160a01b031687529582019590820190600101613692565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b858110156137085782840389526136f6848351613767565b988501989350908401906001016136de565b5091979650505050505050565b8060005b6002811015610cd2578151845260209384019390910190600101613719565b6000815180845260208085019450808401835b838110156136b75781518752958201959082019060010161374b565b6000815180845261377f816020860160208601613f2f565b601f01601f19169290920160200192915050565b600082516137a5818460208701613f2f565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b038d1681526101c0602082018190526000906137e88382018f61367f565b905082810360408401526137fc818e613738565b90508281036060840152613810818d6136c2565b90508281036080840152613824818c613767565b91505088151560a083015261383c60c0830189613715565b61384a610100830188613715565b856101408301528461016083015283610180830152826101a08301529d9c50505050505050505050505050565b6001600160a01b039a909a168a5297151560208a015260408901969096526060880194909452608087019290925260a086015260c085015260e08401526101008301526101208201526101400190565b6001600160a01b03929092168252602082015260400190565b6000604082526138f3604083018561367f565b8281036020840152611e53818561367f565b901515815260200190565b90815260200190565b928352602083019190915260ff16604082015260600190565b602081016008831061394057fe5b91905290565b6000602082526108c96020830184613767565b60208082526017908201527f696e76616c69642070726f706f73616c206c656e677468000000000000000000604082015260600190565b6020808252602d908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c656420627960408201526c1034ba3990383937b837b9b2b960991b606082015260800190565b60208082526017908201527f70726f706f73616c20616c726561647920657869737473000000000000000000604082015260600190565b60208082526032908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c6564206265604082015271666f726520766f74696e672073746172747360701b606082015260800190565b6020808252601e908201527f696e76616c6964207468726573686f6c64436f6e646974696f6e424950530000604082015260600190565b6020808252602e908201527f7375626d6974746572206973206e6f7420656c696769626c6520746f2073756260408201526d1b5a5d0818481c1c9bdc1bdcd85b60921b606082015260800190565b6020808252601d908201527f696e76616c6964206d616a6f72697479436f6e646974696f6e42495053000000604082015260600190565b6020808252601d908201527f63616c6c20726576657274656420776974686f7574206d657373616765000000604082015260600190565b6020808252602d908201527f70726f706f73616c2063616e206f6e6c7920626520657865637574656420627960408201526c1034ba3990383937b837b9b2b960991b606082015260800190565b60208082526027908201527f766f746520706f77657220626c6f636b20697320746f6f2066617220696e20746040820152661a19481c185cdd60ca1b606082015260800190565b602080825260169082015275696e76616c696420766f7465207369676e617475726560501b604082015260600190565b6020808252601390820152721d5b9adb9bdddb881c1c9bdc1bdcd85b081a59606a1b604082015260600190565b60208082526018908201527f657865637574696f6e20706572696f6420746f6f206c6f770000000000000000604082015260600190565b60208082526028908201527f73756d206f66205f76616c75657320646f6573206e6f7420657175616c73206d60408201526773672e76616c756560c01b606082015260800190565b6020808252601c908201527f70726f706f73616c20697320616c72656164792063616e63656c656400000000604082015260600190565b602080825260159082015274766f74696e6720706572696f6420746f6f206c6f7760581b604082015260600190565b60208082526013908201527270726f706f73616c206e6f742061637469766560681b604082015260600190565b6020808252601f908201527f696e76616c69642076616c756520666f7220656e756d20566f74655479706500604082015260600190565b6020808252601190820152701d9bdd1948185b1c9958591e4818d85cdd607a1b604082015260600190565b6020808252601f908201527f70726f706f73616c206e6f7420696e20657865637574696f6e20737461746500604082015260600190565b60208082526019908201527f70726f706f73616c20616c726561647920657865637574656400000000000000604082015260600190565b8681526001600160a01b038616602082015260c060408201819052600090613e569083018761367f565b8281036060840152613e688187613738565b90508281036080840152613e7c81866136c2565b9150508260a0830152979650505050505050565b600083825260406020830152610ee26040830184613767565b918252602082015260400190565b600060ff8716825285602083015260a06040830152613ed960a0830186613767565b606083019490945250608001529392505050565b60405181810167ffffffffffffffff81118282101715613f0957fe5b604052919050565b600067ffffffffffffffff821115613f2557fe5b5060209081020190565b60005b83811015613f4a578181015183820152602001613f32565b83811115610cd25750506000910152565b6001600160a01b0381168114612d7a57600080fdfe45434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122089d4a105315795fcfc71065f7e434562a599b8bc2a4d28d93262eee4f23df3e264736f6c63430007060033",
1061
+ "bytecode": "0x6101406040523480156200001257600080fd5b50604051620045b7380380620045b7833981016040819052620000359162000400565b80838084806200004462000157565b6200004e62000182565b815160208084019190912082519183019190912060c082905260e08190527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f620000976200019d565b60a052620000a7818484620001a1565b608052610100525050466101205250620000c390508162000205565b50506001600160a01b03811615620000e057620000e08162000229565b506001600160a01b03811662000130576040805162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b604482015290519081900360640190fd5b506040805160008152602081019091526200014d908290620002ec565b505050506200055d565b6040805180820190915260118152702837b63634b733a337bab73230ba34b7b760791b602082015290565b6040805180820190915260018152603160f81b602082015290565b4690565b6000838383620001b06200019d565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b03168152602001955050505050506040516020818303038152906040528051906020012090509392505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b600754600160a01b900460ff161562000289576040805162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c7365000000000000000000000000604482015290519081900360640190fd5b60078054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b7f4b8f4e528b6d075c6c9d025e58db64e36b460c1516341b1ab7339b4c6d5bcb8a82826040516200031f9291906200052b565b60405180910390a160005b825181101562000382576001600960008584815181106200034757fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790556001016200032a565b5060005b8151811015620003de57600060096000848481518110620003a357fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905560010162000386565b505050565b80516001600160a01b0381168114620003fb57600080fd5b919050565b60008060006060848603121562000415578283fd5b6200042084620003e3565b9250602062000431818601620003e3565b60408601519093506001600160401b03808211156200044e578384fd5b818701915087601f83011262000462578384fd5b8151818111156200046f57fe5b838102604051858282010181811085821117156200048957fe5b604052828152858101935084860182860187018c1015620004a8578788fd5b8795505b83861015620004d557620004c081620003e3565b855260019590950194938601938601620004ac565b508096505050505050509250925092565b6000815180845260208085019450808401835b83811015620005205781516001600160a01b031687529582019590820190600101620004f9565b509495945050505050565b600060408252620005406040830185620004e6565b8281036020840152620005548185620004e6565b95945050505050565b60805160a05160c05160e051610100516101205161400b620005ac60003980610f965280611a245250806121975250806121d95250806121b852508061213e52508061216e525061400b6000f3fe6080604052600436106101f95760003560e01c806374ec29a01161010d578063b00c0b76116100a0578063e17f212e1161006f578063e17f212e146105ae578063e4ea8b65146105c3578063eb9019d4146105d6578063f17c9d76146105f6578063f5a983831461060b576101f9565b8063b00c0b7614610523578063bc903cb814610543578063bd590d7e14610579578063deaaa7cc14610599576101f9565b80639a8a0592116100dc5780639a8a0592146104ae5780639d6a890f146104c3578063a3c90b80146104e3578063a7a6224a14610503576101f9565b806374ec29a01461042e5780637b3c71d31461044e578063854121961461046e57806386f90bbf1461048e576101f9565b806347c66140116101905780635aa6e6751161015f5780635aa6e675146103965780635ff27079146103ab57806362354e03146103cb57806367fc4029146103e057806374e6310e14610400576101f9565b806347c661401461031e5780635267a15d1461034c57806354fd4d50146103615780635678138814610376576101f9565b80633bccf4fd116101cc5780633bccf4fd146102755780633e4f49e6146102a257806340e58ee5146102cf57806343859632146102f1576101f9565b8063047fc9aa146101fe57806306fdde031461022957806311a7aaaa1461024b57806338b5f86914610260575b600080fd5b34801561020a57600080fd5b50610213610620565b60405161022091906137af565b60405180910390f35b34801561023557600080fd5b5061023e61062f565b6040516102209190613946565b34801561025757600080fd5b5061021361065b565b34801561026c57600080fd5b5061021361066a565b34801561028157600080fd5b50610295610290366004613632565b610679565b6040516102209190613910565b3480156102ae57600080fd5b506102c26102bd366004613526565b61073f565b6040516102209190613932565b3480156102db57600080fd5b506102ef6102ea366004613526565b610760565b005b3480156102fd57600080fd5b5061031161030c366004613556565b610823565b6040516102209190613905565b34801561032a57600080fd5b5061033e610339366004613526565b610853565b604051610220929190613ea9565b34801561035857600080fd5b5061021361086c565b34801561036d57600080fd5b5061023e610891565b34801561038257600080fd5b50610295610391366004613585565b6108ac565b3480156103a257600080fd5b506102136108d0565b3480156103b757600080fd5b506102ef6103c63660046133c5565b610974565b3480156103d757600080fd5b50610213610cd8565b3480156103ec57600080fd5b506102ef6103fb3660046133c5565b610cf0565b34801561040c57600080fd5b5061042061041b3660046133c5565b610dd6565b604051610220929190613e90565b34801561043a57600080fd5b50610311610449366004613007565b610e7d565b34801561045a57600080fd5b506102956104693660046135b0565b610e9b565b34801561047a57600080fd5b50610295610489366004613157565b610eea565b34801561049a57600080fd5b506102956104a9366004613420565b610f03565b3480156104ba57600080fd5b50610295610f94565b3480156104cf57600080fd5b506102ef6104de366004613007565b610fb8565b3480156104ef57600080fd5b506102956104fe3660046130af565b611071565b34801561050f57600080fd5b506102ef61051e36600461304e565b611087565b34801561052f57600080fd5b506102ef61053e36600461328c565b6110d4565b34801561054f57600080fd5b5061056361055e366004613526565b61117b565b6040516102209a99989796959493929190613877565b34801561058557600080fd5b506102956105943660046133ed565b6111da565b3480156105a557600080fd5b50610295611229565b3480156105ba57600080fd5b5061031161124d565b6102956105d13660046130af565b61125d565b3480156105e257600080fd5b506102956105f1366004613023565b61126e565b34801561060257600080fd5b5061021361127a565b34801561061757600080fd5b506102ef611289565b6005546001600160a01b031681565b6040805180820190915260118152702837b63634b733a337bab73230ba34b7b760791b60208201525b90565b6004546001600160a01b031681565b6006546001600160a01b031681565b6000806106d76106d27f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f89896040516020016106b793929190613919565b60405160208183030381529060405280519060200120611350565b61139c565b905060006106e7828787876113ed565b90506001600160a01b0381166107185760405162461bcd60e51b815260040161070f90613bed565b60405180910390fd5b61073388828960405180602001604052806000815250611562565b98975050505050505050565b6000818152600260205260408120610758908390611623565b90505b919050565b60008181526002602052604090208054600160b01b900460ff16156107975760405162461bcd60e51b815260040161070f90613cc9565b80546001600160a01b031633146107c05760405162461bcd60e51b815260040161070f90613990565b806002015442106107e35760405162461bcd60e51b815260040161070f90613a14565b805460ff60b01b1916600160b01b17815560405182907f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90600090a25050565b60008281526003602090815260408083206001600160a01b038516845260020190915290205460ff165b92915050565b6000908152600360205260409020600181015490549091565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b6040805180820190915260018152603160f81b602082015290565b60006108c983338460405180602001604052806000815250611562565b9392505050565b600754600090600160a81b900460ff166108f5576007546001600160a01b031661096f565b73183faff6997c98a812a3b98748fc80241d08f3126001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b15801561094257600080fd5b505afa158015610956573d6000803e3d6000fd5b505050506040513d602081101561096c57600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905173183faff6997c98a812a3b98748fc80241d08f3129163debfda30916024808301926020929190829003018186803b1580156109c557600080fd5b505afa1580156109d9573d6000803e3d6000fd5b505050506040513d60208110156109ef57600080fd5b5051610a32576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b0319811660009081526008602052604090208054610a9e576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015610af4576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b8e5780601f10610b6357610100808354040283529160200191610b8e565b820191906000526020600020905b815481529060010190602001808311610b7157829003601f168201915b505050506001600160e01b0319851660009081526008602052604081208181559293509050610bc06001830182612d36565b50506007805460ff60b01b1916600160b01b17905560405181516000913091849190819060208401908083835b60208310610c0c5780518252601f199092019160209182019101610bed565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610c6e576040519150601f19603f3d011682016040523d82523d6000602084013e610c73565b606091505b50506007805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a1610cd281611701565b50505050565b73183faff6997c98a812a3b98748fc80241d08f31281565b610cf861171e565b6001600160e01b03198116600090815260086020526040902054610d63576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b03198116600090815260086020526040812081815590610dd16001830182612d36565b505050565b6008602090815260009182526040918290208054600180830180548651600293821615610100026000190190911692909204601f810186900486028301860190965285825291949293909290830182828015610e735780601f10610e4857610100808354040283529160200191610e73565b820191906000526020600020905b815481529060010190602001808311610e5657829003601f168201915b5050505050905082565b6001600160a01b031660009081526009602052604090205460ff1690565b6000610edf85338686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061156292505050565b90505b949350505050565b6000610ef9868686868661177f565b9695505050505050565b6040805161010081018252825115158152602080840151818301528383015182840152606080850151818401526080808601519084015260a08086015190840152600060c08401819052600160e0850152845181815292830181815283860182815292840190955293610ee2929185610f8c565b6060815260200190600190039081610f775790505b50878561177f565b7f000000000000000000000000000000000000000000000000000000000000000081565b600754600160a01b900460ff161561100e576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60078054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b6000610edf85858561108286611a15565b611a20565b600754600160b01b900460ff16806110a95750600754600160a81b900460ff16155b156110c5576110b6611a7e565b6110c08282611ab3565b6110d0565b6110d0600036611b9d565b5050565b6110dc61086c565b6001600160a01b0316336001600160a01b031614611138576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b61117161116c83836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250611d2f565b611e5c565b6110d08282611e80565b60009081526002602081905260409091208054600182015492820154600383015460048401546005850154600686015460078701546008909701546001600160a01b03871699600160a01b90970460ff16989795969495939492939192565b604080516000808252602082018181528284018281526060840190945290926107589291908461121a565b60608152602001906001900390816112055790505b5061122486611a15565b611fbb565b7f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b600754600160a81b900460ff1681565b6000610edf85858561122486611a15565b60006108c983836120b7565b6000546001600160a01b031681565b61129161171e565b600754600160a81b900460ff16156112f0576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60078054600161ff0160a01b031916600160a81b1790556040805173183faff6997c98a812a3b98748fc80241d08f312815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b600061135a61213a565b82604051602001808061190160f01b81525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561144e5760405162461bcd60e51b8152600401808060200182810382526022815260200180613f716022913960400191505060405180910390fd5b8360ff16601b148061146357508360ff16601c145b61149e5760405162461bcd60e51b8152600401808060200182810382526022815260200180613f936022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156114fa573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610edf576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b6000848152600260205260408120600161157c8783611623565b600781111561158757fe5b146115a45760405162461bcd60e51b815260040161070f90613d2f565b60006115b48683600101546120b7565b905060006115c488888885612204565b905087876001600160a01b03167fdd14487524f5e7c93029ad24503aa74e185d049a8c975136786a20eacc5e1b4e88858986600101548760000154604051611610959493929190613eb7565b60405180910390a3509695505050505050565b8054600090600160b01b900460ff161561163f5750600761084d565b8154600160a81b900460ff16156116585750600661084d565b60028201546116795760405162461bcd60e51b815260040161070f90613c1d565b428260020154111561168d5750600061084d565b42826003015411156116a15750600161084d565b6116ab83836122bc565b156116f8578154600160b81b900460ff166116c85750600461084d565b42826004015411156116dc5750600361084d565b42826005015411156116f05750600461084d565b50600561084d565b50600292915050565b3d604051818101604052816000823e821561171a578181f35b8181fd5b6117266108d0565b6001600160a01b0316336001600160a01b03161461177d576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b565b60008060006117918460600151612365565b9150915061179f33836125fc565b6117bb5760405162461bcd60e51b815260040161070f90613a9d565b60008460400151116117df5760405162461bcd60e51b815260040161070f90613d00565b60008460e00151116118035760405162461bcd60e51b815260040161070f90613c4a565b612710846080015111156118295760405162461bcd60e51b815260040161070f90613a66565b6113888460a001511015801561184557506127108460a0015111155b6118615760405162461bcd60e51b815260040161070f90613aeb565b60055460405163d9330e6360e01b81526000916001600160a01b03169063d9330e6390611892908690600401613910565b60206040518083038186803b1580156118aa57600080fd5b505afa1580156118be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e2919061353e565b90506000600460009054906101000a90046001600160a01b03166001600160a01b031663ec31db0c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561193457600080fd5b505afa158015611948573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196c919061353e565b9050600080611983338d8d8d8d8b8b8f8c8c612607565b91509150817f72ae4a121488f73dfdb9308e9ecdcd1fc31e5f6c553b6f1fb65650d04406e6ec338e8e8e8e8760000160149054906101000a900460ff166119c9896127ad565b6119d28a6127cf565b8a600101548b600601548c600701548d600801546040516119fe9c9b9a999897969594939291906137c3565b60405180910390a2509a9950505050505050505050565b805160209091012090565b60007f00000000000000000000000000000000000000000000000000000000000000003086868686604051602001611a5d96959493929190613e2c565b60408051601f19818403018152919052805160209091012095945050505050565b600754600160b01b900460ff1615611aab57333014611a9957fe5b6007805460ff60b01b1916905561177d565b61177d61171e565b7f4b8f4e528b6d075c6c9d025e58db64e36b460c1516341b1ab7339b4c6d5bcb8a8282604051611ae49291906138e0565b60405180910390a160005b8251811015611b4457600160096000858481518110611b0a57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101611aef565b5060005b8151811015610dd157600060096000848481518110611b6357fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101611b48565b611ba561171e565b600082359050600073183faff6997c98a812a3b98748fc80241d08f3126001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611bfa57600080fd5b505afa158015611c0e573d6000803e3d6000fd5b505050506040513d6020811015611c2457600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b03198616815260086020908152604090912083518155838201518051919350611caa926001850192910190612d7d565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015611d73578181015183820152602001611d5b565b50505050905090810190601f168015611da05780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b8651811015611e0857868181518110611dd657fe5b6020026020010151831415611e0057858181518110611df157fe5b60200260200101519150611e08565b600101611dc1565b506001600160a01b038116611e53576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b611eaf82826040518060400160405280600c81526020016b4674736f526567697374727960a01b815250611d2f565b600660006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611f0382826040518060400160405280600b81526020016a233a39b7a6b0b730b3b2b960a91b815250611d2f565b600460006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611f52828260405180604001604052806006815260200165537570706c7960d01b815250611d2f565b600560006101000a8154816001600160a01b0302191690836001600160a01b031602179055506000611fb083836040518060400160405280601381526020017223b7bb32b93730b731b2ab37ba32a837bbb2b960691b815250611d2f565b9050610dd1816127eb565b6000611fc985858585611a20565b6000818152600260205260409020805491925090600160a81b900460ff16156120045760405162461bcd60e51b815260040161070f90613df5565b80546001600160a01b0316331461202d5760405162461bcd60e51b815260040161070f90613b59565b60006120398383611623565b9050600481600781111561204957fe5b146120665760405162461bcd60e51b815260040161070f90613dbe565b815460ff60a81b1916600160a81b17825561208287878761280d565b60405183907f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f90600090a25050949350505050565b60008054604051631257fcdb60e31b81526001600160a01b03909116906392bfe6d8906120ea90869086906004016138c7565b60206040518083038186803b15801561210257600080fd5b505afa158015612116573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c9919061353e565b60007f0000000000000000000000000000000000000000000000000000000000000000612165612945565b141561219257507f0000000000000000000000000000000000000000000000000000000000000000610658565b6121fd7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612949565b9050610658565b60008481526003602090815260408083206001600160a01b0387168452600281019092529091205460ff161561224c5760405162461bcd60e51b815260040161070f90613d93565b6001600160a01b03841660009081526002820160205260408120805460ff1916600117905560ff168360ff16141561228957805482018155610ee2565b60ff8316600114156122a45760018101805483019055610ee2565b60405162461bcd60e51b815260040161070f90613d5c565b6000828152600360205260408120600883015460068401546122e0916127106129ab565b815460018301540110156123025750508054600160a01b900460ff161561084d565b80546001820154600785015461231d929091016127106129ab565b8354600160a01b900460ff1661233457815461233a565b81600101545b116123535750508054600160a01b900460ff161561084d565b505054600160a01b900460ff16919050565b6000806000600460009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b1580156123b857600080fd5b505afa1580156123cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f0919061353e565b6004805460405163e5399da360e01b81529293506000926001600160a01b039091169163e5399da39161242591869101613910565b60606040518083038186803b15801561243d57600080fd5b505afa158015612451573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061247591906134d1565b6000805460408051635397625b60e11b8152905193945043936001600160a01b039092169163a72ec4b691600480820192602092909190829003018186803b1580156124c057600080fd5b505afa1580156124d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124f8919061353e565b604084015190915042035b60008511801561251257508781105b156125c9576004805460405163e5399da360e01b81526000926001600160a01b039092169163e5399da39161254d916000198b019101613910565b60606040518083038186803b15801561256557600080fd5b505afa158015612579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259d91906134d1565b905082816020015110156125b157506125c9565b60408101516000199096019590945042039050612503565b602084015160008185036125db612ab7565b816125e257fe5b604090970151960690940397509395505050505050915091565b60006108c983610e7d565b60008089518b511461262b5760405162461bcd60e51b815260040161070f90613959565b88518b511461264c5760405162461bcd60e51b815260040161070f90613959565b600061265d8c8c8c6110828d611a15565b60008181526002602081905260409091209081015491925090156126935760405162461bcd60e51b815260040161070f906139dd565b8d8160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555088816001018190555086600001518160000160146101000a81548160ff0219169083151502179055508660200151420181600201819055508660400151816002015401816003018190555084888260030154031061272c5760405162461bcd60e51b815260040161070f90613ba6565b8c511561277e57805460ff60b81b1916600160b81b17815560c08701516003820154016004820181905560015411156127685760015460048201555b60e0870151600482015401600582018190556001555b6080870151600682015560a087015160078201556008810186905590925090509a509a98505050505050505050565b6127b5612e09565b6002820154815260038201548160015b6020020152919050565b6127d7612e09565b6004820154815260058201548160016127c5565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000805b835181101561283f5783818151811061282657fe5b6020026020010151820191508080600101915050612811565b5080341461285f5760405162461bcd60e51b815260040161070f90613c81565b60005b845181101561293e5760008086838151811061287a57fe5b60200260200101516001600160a01b031686848151811061289757fe5b60200260200101518685815181106128ab57fe5b60200260200101516040516128c09190613793565b60006040518083038185875af1925050503d80600081146128fd576040519150601f19603f3d011682016040523d82523d6000602084013e612902565b606091505b5091509150816129345780511561291c5780518082602001fd5b60405162461bcd60e51b815260040161070f90613b22565b5050600101612862565b5050505050565b4690565b6000838383612956612945565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b03168152602001955050505050506040516020818303038152906040528051906020012090509392505050565b60008082116129f4576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b83612a01575060006108c9565b83830283858281612a0e57fe5b041415612a2757828181612a1e57fe5b049150506108c9565b6000838681612a3257fe5b0490506000848781612a4057fe5b0690506000858781612a4e57fe5b0490506000868881612a5c57fe5b069050612aaa612a7688612a708685612c1c565b90612c75565b612aa4612a838686612c1c565b612aa4612a908987612c1c565b612aa48d612a9e8c8b612c1c565b90612c1c565b90612cdc565b9998505050505050505050565b600080600090506000600660009054906101000a90046001600160a01b03166001600160a01b031663a40060ba6040518163ffffffff1660e01b815260040160006040518083038186803b158015612b0e57600080fd5b505afa158015612b22573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612b4a919081019061332c565b905060005b8151811015612be857818181518110612b6457fe5b60200260200101516001600160a01b031663d89601fd6040518163ffffffff1660e01b815260040160206040518083038186803b158015612ba457600080fd5b505afa158015612bb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bdc919061353e565b90920191600101612b4f565b504282604051602001612bfc929190613ea9565b6040516020818303038152906040528051906020012060001c9250505090565b600082612c2b5750600061084d565b82820282848281612c3857fe5b04146108c95760405162461bcd60e51b8152600401808060200182810382526021815260200180613fb56021913960400191505060405180910390fd5b6000808211612ccb576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381612cd457fe5b049392505050565b6000828201838110156108c9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b50805460018160011615610100020316600290046000825580601f10612d5c5750612d7a565b601f016020900490600052602060002090810190612d7a9190612e27565b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612db35760008555612df9565b82601f10612dcc57805160ff1916838001178555612df9565b82800160010185558215612df9579182015b82811115612df9578251825591602001919060010190612dde565b50612e05929150612e27565b5090565b60405180604001604052806002906020820280368337509192915050565b5b80821115612e055760008155600101612e28565b600067ffffffffffffffff831115612e5057fe5b612e63601f8401601f1916602001613eed565b9050828152838383011115612e7757600080fd5b828260208301376000602084830101529392505050565b600082601f830112612e9e578081fd5b81356020612eb3612eae83613f11565b613eed565b8281528181019085830183850287018401881015612ecf578586fd5b855b85811015612ef6578135612ee481613f5b565b84529284019290840190600101612ed1565b5090979650505050505050565b600082601f830112612f13578081fd5b81356020612f23612eae83613f11565b82815281810190858301855b85811015612ef6578135880189603f820112612f49578788fd5b612f5a8a8783013560408401612e3c565b8552509284019290840190600101612f2f565b600082601f830112612f7d578081fd5b81356020612f8d612eae83613f11565b8281528181019085830183850287018401881015612fa9578586fd5b855b85811015612ef657813584529284019290840190600101612fab565b8035801515811461075b57600080fd5b600082601f830112612fe7578081fd5b6108c983833560208501612e3c565b803560ff8116811461075b57600080fd5b600060208284031215613018578081fd5b81356108c981613f5b565b60008060408385031215613035578081fd5b823561304081613f5b565b946020939093013593505050565b60008060408385031215613060578182fd5b823567ffffffffffffffff80821115613077578384fd5b61308386838701612e8e565b93506020850135915080821115613098578283fd5b506130a585828601612e8e565b9150509250929050565b600080600080608085870312156130c4578182fd5b843567ffffffffffffffff808211156130db578384fd5b6130e788838901612e8e565b955060208701359150808211156130fc578384fd5b61310888838901612f6d565b9450604087013591508082111561311d578384fd5b61312988838901612f03565b9350606087013591508082111561313e578283fd5b5061314b87828801612fd7565b91505092959194509250565b6000806000806000858703610180811215613170578384fd5b863567ffffffffffffffff80821115613187578586fd5b6131938a838b01612e8e565b975060208901359150808211156131a8578586fd5b6131b48a838b01612f6d565b965060408901359150808211156131c9578586fd5b6131d58a838b01612f03565b955060608901359150808211156131ea578384fd5b6131f68a838b01612fd7565b9450610100915081607f198401121561320d578384fd5b6040519250818301838110828211171561322357fe5b6040525061323360808901612fc7565b825260a0880135602083015260c0880135604083015260e088013560608301528088013560808301525061012087013560a082015261014087013560c082015261016087013560e0820152809150509295509295909350565b6000806040838503121561329e578182fd5b823567ffffffffffffffff808211156132b5578384fd5b818501915085601f8301126132c8578384fd5b813560206132d8612eae83613f11565b82815281810190858301838502870184018b10156132f4578889fd5b8896505b848710156133165780358352600196909601959183019183016132f8565b5096505086013592505080821115613098578283fd5b6000602080838503121561333e578182fd5b825167ffffffffffffffff811115613354578283fd5b8301601f81018513613364578283fd5b8051613372612eae82613f11565b818152838101908385018584028501860189101561338e578687fd5b8694505b838510156133b95780516133a581613f5b565b835260019490940193918501918501613392565b50979650505050505050565b6000602082840312156133d6578081fd5b81356001600160e01b0319811681146108c9578182fd5b6000602082840312156133fe578081fd5b813567ffffffffffffffff811115613414578182fd5b610ee284828501612fd7565b60008082840360e0811215613433578283fd5b833567ffffffffffffffff8082111561344a578485fd5b61345687838801612fd7565b945060c0601f1984011215613469578384fd5b604051925060c083019150828210818311171561348257fe5b5060405261349260208501612fc7565b815260408401356020820152606084013560408201526080840135606082015260a0840135608082015260c084013560a0820152809150509250929050565b6000606082840312156134e2578081fd5b6040516060810181811067ffffffffffffffff821117156134ff57fe5b80604052508251815260208301516020820152604083015160408201528091505092915050565b600060208284031215613537578081fd5b5035919050565b60006020828403121561354f578081fd5b5051919050565b60008060408385031215613568578182fd5b82359150602083013561357a81613f5b565b809150509250929050565b60008060408385031215613597578182fd5b823591506135a760208401612ff6565b90509250929050565b600080600080606085870312156135c5578182fd5b843593506135d560208601612ff6565b9250604085013567ffffffffffffffff808211156135f1578384fd5b818701915087601f830112613604578384fd5b813581811115613612578485fd5b886020828501011115613623578485fd5b95989497505060200194505050565b600080600080600060a08688031215613649578283fd5b8535945061365960208701612ff6565b935061366760408701612ff6565b94979396509394606081013594506080013592915050565b6000815180845260208085019450808401835b838110156136b75781516001600160a01b031687529582019590820190600101613692565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b858110156137085782840389526136f6848351613767565b988501989350908401906001016136de565b5091979650505050505050565b8060005b6002811015610cd2578151845260209384019390910190600101613719565b6000815180845260208085019450808401835b838110156136b75781518752958201959082019060010161374b565b6000815180845261377f816020860160208601613f2f565b601f01601f19169290920160200192915050565b600082516137a5818460208701613f2f565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b038d1681526101c0602082018190526000906137e88382018f61367f565b905082810360408401526137fc818e613738565b90508281036060840152613810818d6136c2565b90508281036080840152613824818c613767565b91505088151560a083015261383c60c0830189613715565b61384a610100830188613715565b856101408301528461016083015283610180830152826101a08301529d9c50505050505050505050505050565b6001600160a01b039a909a168a5297151560208a015260408901969096526060880194909452608087019290925260a086015260c085015260e08401526101008301526101208201526101400190565b6001600160a01b03929092168252602082015260400190565b6000604082526138f3604083018561367f565b8281036020840152611e53818561367f565b901515815260200190565b90815260200190565b928352602083019190915260ff16604082015260600190565b602081016008831061394057fe5b91905290565b6000602082526108c96020830184613767565b60208082526017908201527f696e76616c69642070726f706f73616c206c656e677468000000000000000000604082015260600190565b6020808252602d908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c656420627960408201526c1034ba3990383937b837b9b2b960991b606082015260800190565b60208082526017908201527f70726f706f73616c20616c726561647920657869737473000000000000000000604082015260600190565b60208082526032908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c6564206265604082015271666f726520766f74696e672073746172747360701b606082015260800190565b6020808252601e908201527f696e76616c6964207468726573686f6c64436f6e646974696f6e424950530000604082015260600190565b6020808252602e908201527f7375626d6974746572206973206e6f7420656c696769626c6520746f2073756260408201526d1b5a5d0818481c1c9bdc1bdcd85b60921b606082015260800190565b6020808252601d908201527f696e76616c6964206d616a6f72697479436f6e646974696f6e42495053000000604082015260600190565b6020808252601d908201527f63616c6c20726576657274656420776974686f7574206d657373616765000000604082015260600190565b6020808252602d908201527f70726f706f73616c2063616e206f6e6c7920626520657865637574656420627960408201526c1034ba3990383937b837b9b2b960991b606082015260800190565b60208082526027908201527f766f746520706f77657220626c6f636b20697320746f6f2066617220696e20746040820152661a19481c185cdd60ca1b606082015260800190565b602080825260169082015275696e76616c696420766f7465207369676e617475726560501b604082015260600190565b6020808252601390820152721d5b9adb9bdddb881c1c9bdc1bdcd85b081a59606a1b604082015260600190565b60208082526018908201527f657865637574696f6e20706572696f6420746f6f206c6f770000000000000000604082015260600190565b60208082526028908201527f73756d206f66205f76616c75657320646f6573206e6f7420657175616c73206d60408201526773672e76616c756560c01b606082015260800190565b6020808252601c908201527f70726f706f73616c20697320616c72656164792063616e63656c656400000000604082015260600190565b602080825260159082015274766f74696e6720706572696f6420746f6f206c6f7760581b604082015260600190565b60208082526013908201527270726f706f73616c206e6f742061637469766560681b604082015260600190565b6020808252601f908201527f696e76616c69642076616c756520666f7220656e756d20566f74655479706500604082015260600190565b6020808252601190820152701d9bdd1948185b1c9958591e4818d85cdd607a1b604082015260600190565b6020808252601f908201527f70726f706f73616c206e6f7420696e20657865637574696f6e20737461746500604082015260600190565b60208082526019908201527f70726f706f73616c20616c726561647920657865637574656400000000000000604082015260600190565b8681526001600160a01b038616602082015260c060408201819052600090613e569083018761367f565b8281036060840152613e688187613738565b90508281036080840152613e7c81866136c2565b9150508260a0830152979650505050505050565b600083825260406020830152610ee26040830184613767565b918252602082015260400190565b600060ff8716825285602083015260a06040830152613ed960a0830186613767565b606083019490945250608001529392505050565b60405181810167ffffffffffffffff81118282101715613f0957fe5b604052919050565b600067ffffffffffffffff821115613f2557fe5b5060209081020190565b60005b83811015613f4a578181015183820152602001613f32565b83811115610cd25750506000910152565b6001600160a01b0381168114612d7a57600080fdfe45434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220c540999288a22eafebce9d2ea03088c9eb858380c71176b56727426f311130e164736f6c63430007060033",
1062
+ "deployedBytecode": "0x6080604052600436106101f95760003560e01c806374ec29a01161010d578063b00c0b76116100a0578063e17f212e1161006f578063e17f212e146105ae578063e4ea8b65146105c3578063eb9019d4146105d6578063f17c9d76146105f6578063f5a983831461060b576101f9565b8063b00c0b7614610523578063bc903cb814610543578063bd590d7e14610579578063deaaa7cc14610599576101f9565b80639a8a0592116100dc5780639a8a0592146104ae5780639d6a890f146104c3578063a3c90b80146104e3578063a7a6224a14610503576101f9565b806374ec29a01461042e5780637b3c71d31461044e578063854121961461046e57806386f90bbf1461048e576101f9565b806347c66140116101905780635aa6e6751161015f5780635aa6e675146103965780635ff27079146103ab57806362354e03146103cb57806367fc4029146103e057806374e6310e14610400576101f9565b806347c661401461031e5780635267a15d1461034c57806354fd4d50146103615780635678138814610376576101f9565b80633bccf4fd116101cc5780633bccf4fd146102755780633e4f49e6146102a257806340e58ee5146102cf57806343859632146102f1576101f9565b8063047fc9aa146101fe57806306fdde031461022957806311a7aaaa1461024b57806338b5f86914610260575b600080fd5b34801561020a57600080fd5b50610213610620565b60405161022091906137af565b60405180910390f35b34801561023557600080fd5b5061023e61062f565b6040516102209190613946565b34801561025757600080fd5b5061021361065b565b34801561026c57600080fd5b5061021361066a565b34801561028157600080fd5b50610295610290366004613632565b610679565b6040516102209190613910565b3480156102ae57600080fd5b506102c26102bd366004613526565b61073f565b6040516102209190613932565b3480156102db57600080fd5b506102ef6102ea366004613526565b610760565b005b3480156102fd57600080fd5b5061031161030c366004613556565b610823565b6040516102209190613905565b34801561032a57600080fd5b5061033e610339366004613526565b610853565b604051610220929190613ea9565b34801561035857600080fd5b5061021361086c565b34801561036d57600080fd5b5061023e610891565b34801561038257600080fd5b50610295610391366004613585565b6108ac565b3480156103a257600080fd5b506102136108d0565b3480156103b757600080fd5b506102ef6103c63660046133c5565b610974565b3480156103d757600080fd5b50610213610cd8565b3480156103ec57600080fd5b506102ef6103fb3660046133c5565b610cf0565b34801561040c57600080fd5b5061042061041b3660046133c5565b610dd6565b604051610220929190613e90565b34801561043a57600080fd5b50610311610449366004613007565b610e7d565b34801561045a57600080fd5b506102956104693660046135b0565b610e9b565b34801561047a57600080fd5b50610295610489366004613157565b610eea565b34801561049a57600080fd5b506102956104a9366004613420565b610f03565b3480156104ba57600080fd5b50610295610f94565b3480156104cf57600080fd5b506102ef6104de366004613007565b610fb8565b3480156104ef57600080fd5b506102956104fe3660046130af565b611071565b34801561050f57600080fd5b506102ef61051e36600461304e565b611087565b34801561052f57600080fd5b506102ef61053e36600461328c565b6110d4565b34801561054f57600080fd5b5061056361055e366004613526565b61117b565b6040516102209a99989796959493929190613877565b34801561058557600080fd5b506102956105943660046133ed565b6111da565b3480156105a557600080fd5b50610295611229565b3480156105ba57600080fd5b5061031161124d565b6102956105d13660046130af565b61125d565b3480156105e257600080fd5b506102956105f1366004613023565b61126e565b34801561060257600080fd5b5061021361127a565b34801561061757600080fd5b506102ef611289565b6005546001600160a01b031681565b6040805180820190915260118152702837b63634b733a337bab73230ba34b7b760791b60208201525b90565b6004546001600160a01b031681565b6006546001600160a01b031681565b6000806106d76106d27f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f89896040516020016106b793929190613919565b60405160208183030381529060405280519060200120611350565b61139c565b905060006106e7828787876113ed565b90506001600160a01b0381166107185760405162461bcd60e51b815260040161070f90613bed565b60405180910390fd5b61073388828960405180602001604052806000815250611562565b98975050505050505050565b6000818152600260205260408120610758908390611623565b90505b919050565b60008181526002602052604090208054600160b01b900460ff16156107975760405162461bcd60e51b815260040161070f90613cc9565b80546001600160a01b031633146107c05760405162461bcd60e51b815260040161070f90613990565b806002015442106107e35760405162461bcd60e51b815260040161070f90613a14565b805460ff60b01b1916600160b01b17815560405182907f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90600090a25050565b60008281526003602090815260408083206001600160a01b038516845260020190915290205460ff165b92915050565b6000908152600360205260409020600181015490549091565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b6040805180820190915260018152603160f81b602082015290565b60006108c983338460405180602001604052806000815250611562565b9392505050565b600754600090600160a81b900460ff166108f5576007546001600160a01b031661096f565b73183faff6997c98a812a3b98748fc80241d08f3126001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b15801561094257600080fd5b505afa158015610956573d6000803e3d6000fd5b505050506040513d602081101561096c57600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905173183faff6997c98a812a3b98748fc80241d08f3129163debfda30916024808301926020929190829003018186803b1580156109c557600080fd5b505afa1580156109d9573d6000803e3d6000fd5b505050506040513d60208110156109ef57600080fd5b5051610a32576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b0319811660009081526008602052604090208054610a9e576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015610af4576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b8e5780601f10610b6357610100808354040283529160200191610b8e565b820191906000526020600020905b815481529060010190602001808311610b7157829003601f168201915b505050506001600160e01b0319851660009081526008602052604081208181559293509050610bc06001830182612d36565b50506007805460ff60b01b1916600160b01b17905560405181516000913091849190819060208401908083835b60208310610c0c5780518252601f199092019160209182019101610bed565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610c6e576040519150601f19603f3d011682016040523d82523d6000602084013e610c73565b606091505b50506007805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a1610cd281611701565b50505050565b73183faff6997c98a812a3b98748fc80241d08f31281565b610cf861171e565b6001600160e01b03198116600090815260086020526040902054610d63576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b03198116600090815260086020526040812081815590610dd16001830182612d36565b505050565b6008602090815260009182526040918290208054600180830180548651600293821615610100026000190190911692909204601f810186900486028301860190965285825291949293909290830182828015610e735780601f10610e4857610100808354040283529160200191610e73565b820191906000526020600020905b815481529060010190602001808311610e5657829003601f168201915b5050505050905082565b6001600160a01b031660009081526009602052604090205460ff1690565b6000610edf85338686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061156292505050565b90505b949350505050565b6000610ef9868686868661177f565b9695505050505050565b6040805161010081018252825115158152602080840151818301528383015182840152606080850151818401526080808601519084015260a08086015190840152600060c08401819052600160e0850152845181815292830181815283860182815292840190955293610ee2929185610f8c565b6060815260200190600190039081610f775790505b50878561177f565b7f000000000000000000000000000000000000000000000000000000000000000081565b600754600160a01b900460ff161561100e576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60078054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b6000610edf85858561108286611a15565b611a20565b600754600160b01b900460ff16806110a95750600754600160a81b900460ff16155b156110c5576110b6611a7e565b6110c08282611ab3565b6110d0565b6110d0600036611b9d565b5050565b6110dc61086c565b6001600160a01b0316336001600160a01b031614611138576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b61117161116c83836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250611d2f565b611e5c565b6110d08282611e80565b60009081526002602081905260409091208054600182015492820154600383015460048401546005850154600686015460078701546008909701546001600160a01b03871699600160a01b90970460ff16989795969495939492939192565b604080516000808252602082018181528284018281526060840190945290926107589291908461121a565b60608152602001906001900390816112055790505b5061122486611a15565b611fbb565b7f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b600754600160a81b900460ff1681565b6000610edf85858561122486611a15565b60006108c983836120b7565b6000546001600160a01b031681565b61129161171e565b600754600160a81b900460ff16156112f0576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60078054600161ff0160a01b031916600160a81b1790556040805173183faff6997c98a812a3b98748fc80241d08f312815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b600061135a61213a565b82604051602001808061190160f01b81525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561144e5760405162461bcd60e51b8152600401808060200182810382526022815260200180613f716022913960400191505060405180910390fd5b8360ff16601b148061146357508360ff16601c145b61149e5760405162461bcd60e51b8152600401808060200182810382526022815260200180613f936022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156114fa573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610edf576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b6000848152600260205260408120600161157c8783611623565b600781111561158757fe5b146115a45760405162461bcd60e51b815260040161070f90613d2f565b60006115b48683600101546120b7565b905060006115c488888885612204565b905087876001600160a01b03167fdd14487524f5e7c93029ad24503aa74e185d049a8c975136786a20eacc5e1b4e88858986600101548760000154604051611610959493929190613eb7565b60405180910390a3509695505050505050565b8054600090600160b01b900460ff161561163f5750600761084d565b8154600160a81b900460ff16156116585750600661084d565b60028201546116795760405162461bcd60e51b815260040161070f90613c1d565b428260020154111561168d5750600061084d565b42826003015411156116a15750600161084d565b6116ab83836122bc565b156116f8578154600160b81b900460ff166116c85750600461084d565b42826004015411156116dc5750600361084d565b42826005015411156116f05750600461084d565b50600561084d565b50600292915050565b3d604051818101604052816000823e821561171a578181f35b8181fd5b6117266108d0565b6001600160a01b0316336001600160a01b03161461177d576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b565b60008060006117918460600151612365565b9150915061179f33836125fc565b6117bb5760405162461bcd60e51b815260040161070f90613a9d565b60008460400151116117df5760405162461bcd60e51b815260040161070f90613d00565b60008460e00151116118035760405162461bcd60e51b815260040161070f90613c4a565b612710846080015111156118295760405162461bcd60e51b815260040161070f90613a66565b6113888460a001511015801561184557506127108460a0015111155b6118615760405162461bcd60e51b815260040161070f90613aeb565b60055460405163d9330e6360e01b81526000916001600160a01b03169063d9330e6390611892908690600401613910565b60206040518083038186803b1580156118aa57600080fd5b505afa1580156118be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e2919061353e565b90506000600460009054906101000a90046001600160a01b03166001600160a01b031663ec31db0c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561193457600080fd5b505afa158015611948573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196c919061353e565b9050600080611983338d8d8d8d8b8b8f8c8c612607565b91509150817f72ae4a121488f73dfdb9308e9ecdcd1fc31e5f6c553b6f1fb65650d04406e6ec338e8e8e8e8760000160149054906101000a900460ff166119c9896127ad565b6119d28a6127cf565b8a600101548b600601548c600701548d600801546040516119fe9c9b9a999897969594939291906137c3565b60405180910390a2509a9950505050505050505050565b805160209091012090565b60007f00000000000000000000000000000000000000000000000000000000000000003086868686604051602001611a5d96959493929190613e2c565b60408051601f19818403018152919052805160209091012095945050505050565b600754600160b01b900460ff1615611aab57333014611a9957fe5b6007805460ff60b01b1916905561177d565b61177d61171e565b7f4b8f4e528b6d075c6c9d025e58db64e36b460c1516341b1ab7339b4c6d5bcb8a8282604051611ae49291906138e0565b60405180910390a160005b8251811015611b4457600160096000858481518110611b0a57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101611aef565b5060005b8151811015610dd157600060096000848481518110611b6357fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101611b48565b611ba561171e565b600082359050600073183faff6997c98a812a3b98748fc80241d08f3126001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611bfa57600080fd5b505afa158015611c0e573d6000803e3d6000fd5b505050506040513d6020811015611c2457600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b03198616815260086020908152604090912083518155838201518051919350611caa926001850192910190612d7d565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015611d73578181015183820152602001611d5b565b50505050905090810190601f168015611da05780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b8651811015611e0857868181518110611dd657fe5b6020026020010151831415611e0057858181518110611df157fe5b60200260200101519150611e08565b600101611dc1565b506001600160a01b038116611e53576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b611eaf82826040518060400160405280600c81526020016b4674736f526567697374727960a01b815250611d2f565b600660006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611f0382826040518060400160405280600b81526020016a233a39b7a6b0b730b3b2b960a91b815250611d2f565b600460006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611f52828260405180604001604052806006815260200165537570706c7960d01b815250611d2f565b600560006101000a8154816001600160a01b0302191690836001600160a01b031602179055506000611fb083836040518060400160405280601381526020017223b7bb32b93730b731b2ab37ba32a837bbb2b960691b815250611d2f565b9050610dd1816127eb565b6000611fc985858585611a20565b6000818152600260205260409020805491925090600160a81b900460ff16156120045760405162461bcd60e51b815260040161070f90613df5565b80546001600160a01b0316331461202d5760405162461bcd60e51b815260040161070f90613b59565b60006120398383611623565b9050600481600781111561204957fe5b146120665760405162461bcd60e51b815260040161070f90613dbe565b815460ff60a81b1916600160a81b17825561208287878761280d565b60405183907f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f90600090a25050949350505050565b60008054604051631257fcdb60e31b81526001600160a01b03909116906392bfe6d8906120ea90869086906004016138c7565b60206040518083038186803b15801561210257600080fd5b505afa158015612116573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c9919061353e565b60007f0000000000000000000000000000000000000000000000000000000000000000612165612945565b141561219257507f0000000000000000000000000000000000000000000000000000000000000000610658565b6121fd7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612949565b9050610658565b60008481526003602090815260408083206001600160a01b0387168452600281019092529091205460ff161561224c5760405162461bcd60e51b815260040161070f90613d93565b6001600160a01b03841660009081526002820160205260408120805460ff1916600117905560ff168360ff16141561228957805482018155610ee2565b60ff8316600114156122a45760018101805483019055610ee2565b60405162461bcd60e51b815260040161070f90613d5c565b6000828152600360205260408120600883015460068401546122e0916127106129ab565b815460018301540110156123025750508054600160a01b900460ff161561084d565b80546001820154600785015461231d929091016127106129ab565b8354600160a01b900460ff1661233457815461233a565b81600101545b116123535750508054600160a01b900460ff161561084d565b505054600160a01b900460ff16919050565b6000806000600460009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b1580156123b857600080fd5b505afa1580156123cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f0919061353e565b6004805460405163e5399da360e01b81529293506000926001600160a01b039091169163e5399da39161242591869101613910565b60606040518083038186803b15801561243d57600080fd5b505afa158015612451573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061247591906134d1565b6000805460408051635397625b60e11b8152905193945043936001600160a01b039092169163a72ec4b691600480820192602092909190829003018186803b1580156124c057600080fd5b505afa1580156124d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124f8919061353e565b604084015190915042035b60008511801561251257508781105b156125c9576004805460405163e5399da360e01b81526000926001600160a01b039092169163e5399da39161254d916000198b019101613910565b60606040518083038186803b15801561256557600080fd5b505afa158015612579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259d91906134d1565b905082816020015110156125b157506125c9565b60408101516000199096019590945042039050612503565b602084015160008185036125db612ab7565b816125e257fe5b604090970151960690940397509395505050505050915091565b60006108c983610e7d565b60008089518b511461262b5760405162461bcd60e51b815260040161070f90613959565b88518b511461264c5760405162461bcd60e51b815260040161070f90613959565b600061265d8c8c8c6110828d611a15565b60008181526002602081905260409091209081015491925090156126935760405162461bcd60e51b815260040161070f906139dd565b8d8160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555088816001018190555086600001518160000160146101000a81548160ff0219169083151502179055508660200151420181600201819055508660400151816002015401816003018190555084888260030154031061272c5760405162461bcd60e51b815260040161070f90613ba6565b8c511561277e57805460ff60b81b1916600160b81b17815560c08701516003820154016004820181905560015411156127685760015460048201555b60e0870151600482015401600582018190556001555b6080870151600682015560a087015160078201556008810186905590925090509a509a98505050505050505050565b6127b5612e09565b6002820154815260038201548160015b6020020152919050565b6127d7612e09565b6004820154815260058201548160016127c5565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000805b835181101561283f5783818151811061282657fe5b6020026020010151820191508080600101915050612811565b5080341461285f5760405162461bcd60e51b815260040161070f90613c81565b60005b845181101561293e5760008086838151811061287a57fe5b60200260200101516001600160a01b031686848151811061289757fe5b60200260200101518685815181106128ab57fe5b60200260200101516040516128c09190613793565b60006040518083038185875af1925050503d80600081146128fd576040519150601f19603f3d011682016040523d82523d6000602084013e612902565b606091505b5091509150816129345780511561291c5780518082602001fd5b60405162461bcd60e51b815260040161070f90613b22565b5050600101612862565b5050505050565b4690565b6000838383612956612945565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b03168152602001955050505050506040516020818303038152906040528051906020012090509392505050565b60008082116129f4576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b83612a01575060006108c9565b83830283858281612a0e57fe5b041415612a2757828181612a1e57fe5b049150506108c9565b6000838681612a3257fe5b0490506000848781612a4057fe5b0690506000858781612a4e57fe5b0490506000868881612a5c57fe5b069050612aaa612a7688612a708685612c1c565b90612c75565b612aa4612a838686612c1c565b612aa4612a908987612c1c565b612aa48d612a9e8c8b612c1c565b90612c1c565b90612cdc565b9998505050505050505050565b600080600090506000600660009054906101000a90046001600160a01b03166001600160a01b031663a40060ba6040518163ffffffff1660e01b815260040160006040518083038186803b158015612b0e57600080fd5b505afa158015612b22573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612b4a919081019061332c565b905060005b8151811015612be857818181518110612b6457fe5b60200260200101516001600160a01b031663d89601fd6040518163ffffffff1660e01b815260040160206040518083038186803b158015612ba457600080fd5b505afa158015612bb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bdc919061353e565b90920191600101612b4f565b504282604051602001612bfc929190613ea9565b6040516020818303038152906040528051906020012060001c9250505090565b600082612c2b5750600061084d565b82820282848281612c3857fe5b04146108c95760405162461bcd60e51b8152600401808060200182810382526021815260200180613fb56021913960400191505060405180910390fd5b6000808211612ccb576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381612cd457fe5b049392505050565b6000828201838110156108c9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b50805460018160011615610100020316600290046000825580601f10612d5c5750612d7a565b601f016020900490600052602060002090810190612d7a9190612e27565b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612db35760008555612df9565b82601f10612dcc57805160ff1916838001178555612df9565b82800160010185558215612df9579182015b82811115612df9578251825591602001919060010190612dde565b50612e05929150612e27565b5090565b60405180604001604052806002906020820280368337509192915050565b5b80821115612e055760008155600101612e28565b600067ffffffffffffffff831115612e5057fe5b612e63601f8401601f1916602001613eed565b9050828152838383011115612e7757600080fd5b828260208301376000602084830101529392505050565b600082601f830112612e9e578081fd5b81356020612eb3612eae83613f11565b613eed565b8281528181019085830183850287018401881015612ecf578586fd5b855b85811015612ef6578135612ee481613f5b565b84529284019290840190600101612ed1565b5090979650505050505050565b600082601f830112612f13578081fd5b81356020612f23612eae83613f11565b82815281810190858301855b85811015612ef6578135880189603f820112612f49578788fd5b612f5a8a8783013560408401612e3c565b8552509284019290840190600101612f2f565b600082601f830112612f7d578081fd5b81356020612f8d612eae83613f11565b8281528181019085830183850287018401881015612fa9578586fd5b855b85811015612ef657813584529284019290840190600101612fab565b8035801515811461075b57600080fd5b600082601f830112612fe7578081fd5b6108c983833560208501612e3c565b803560ff8116811461075b57600080fd5b600060208284031215613018578081fd5b81356108c981613f5b565b60008060408385031215613035578081fd5b823561304081613f5b565b946020939093013593505050565b60008060408385031215613060578182fd5b823567ffffffffffffffff80821115613077578384fd5b61308386838701612e8e565b93506020850135915080821115613098578283fd5b506130a585828601612e8e565b9150509250929050565b600080600080608085870312156130c4578182fd5b843567ffffffffffffffff808211156130db578384fd5b6130e788838901612e8e565b955060208701359150808211156130fc578384fd5b61310888838901612f6d565b9450604087013591508082111561311d578384fd5b61312988838901612f03565b9350606087013591508082111561313e578283fd5b5061314b87828801612fd7565b91505092959194509250565b6000806000806000858703610180811215613170578384fd5b863567ffffffffffffffff80821115613187578586fd5b6131938a838b01612e8e565b975060208901359150808211156131a8578586fd5b6131b48a838b01612f6d565b965060408901359150808211156131c9578586fd5b6131d58a838b01612f03565b955060608901359150808211156131ea578384fd5b6131f68a838b01612fd7565b9450610100915081607f198401121561320d578384fd5b6040519250818301838110828211171561322357fe5b6040525061323360808901612fc7565b825260a0880135602083015260c0880135604083015260e088013560608301528088013560808301525061012087013560a082015261014087013560c082015261016087013560e0820152809150509295509295909350565b6000806040838503121561329e578182fd5b823567ffffffffffffffff808211156132b5578384fd5b818501915085601f8301126132c8578384fd5b813560206132d8612eae83613f11565b82815281810190858301838502870184018b10156132f4578889fd5b8896505b848710156133165780358352600196909601959183019183016132f8565b5096505086013592505080821115613098578283fd5b6000602080838503121561333e578182fd5b825167ffffffffffffffff811115613354578283fd5b8301601f81018513613364578283fd5b8051613372612eae82613f11565b818152838101908385018584028501860189101561338e578687fd5b8694505b838510156133b95780516133a581613f5b565b835260019490940193918501918501613392565b50979650505050505050565b6000602082840312156133d6578081fd5b81356001600160e01b0319811681146108c9578182fd5b6000602082840312156133fe578081fd5b813567ffffffffffffffff811115613414578182fd5b610ee284828501612fd7565b60008082840360e0811215613433578283fd5b833567ffffffffffffffff8082111561344a578485fd5b61345687838801612fd7565b945060c0601f1984011215613469578384fd5b604051925060c083019150828210818311171561348257fe5b5060405261349260208501612fc7565b815260408401356020820152606084013560408201526080840135606082015260a0840135608082015260c084013560a0820152809150509250929050565b6000606082840312156134e2578081fd5b6040516060810181811067ffffffffffffffff821117156134ff57fe5b80604052508251815260208301516020820152604083015160408201528091505092915050565b600060208284031215613537578081fd5b5035919050565b60006020828403121561354f578081fd5b5051919050565b60008060408385031215613568578182fd5b82359150602083013561357a81613f5b565b809150509250929050565b60008060408385031215613597578182fd5b823591506135a760208401612ff6565b90509250929050565b600080600080606085870312156135c5578182fd5b843593506135d560208601612ff6565b9250604085013567ffffffffffffffff808211156135f1578384fd5b818701915087601f830112613604578384fd5b813581811115613612578485fd5b886020828501011115613623578485fd5b95989497505060200194505050565b600080600080600060a08688031215613649578283fd5b8535945061365960208701612ff6565b935061366760408701612ff6565b94979396509394606081013594506080013592915050565b6000815180845260208085019450808401835b838110156136b75781516001600160a01b031687529582019590820190600101613692565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b858110156137085782840389526136f6848351613767565b988501989350908401906001016136de565b5091979650505050505050565b8060005b6002811015610cd2578151845260209384019390910190600101613719565b6000815180845260208085019450808401835b838110156136b75781518752958201959082019060010161374b565b6000815180845261377f816020860160208601613f2f565b601f01601f19169290920160200192915050565b600082516137a5818460208701613f2f565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b038d1681526101c0602082018190526000906137e88382018f61367f565b905082810360408401526137fc818e613738565b90508281036060840152613810818d6136c2565b90508281036080840152613824818c613767565b91505088151560a083015261383c60c0830189613715565b61384a610100830188613715565b856101408301528461016083015283610180830152826101a08301529d9c50505050505050505050505050565b6001600160a01b039a909a168a5297151560208a015260408901969096526060880194909452608087019290925260a086015260c085015260e08401526101008301526101208201526101400190565b6001600160a01b03929092168252602082015260400190565b6000604082526138f3604083018561367f565b8281036020840152611e53818561367f565b901515815260200190565b90815260200190565b928352602083019190915260ff16604082015260600190565b602081016008831061394057fe5b91905290565b6000602082526108c96020830184613767565b60208082526017908201527f696e76616c69642070726f706f73616c206c656e677468000000000000000000604082015260600190565b6020808252602d908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c656420627960408201526c1034ba3990383937b837b9b2b960991b606082015260800190565b60208082526017908201527f70726f706f73616c20616c726561647920657869737473000000000000000000604082015260600190565b60208082526032908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c6564206265604082015271666f726520766f74696e672073746172747360701b606082015260800190565b6020808252601e908201527f696e76616c6964207468726573686f6c64436f6e646974696f6e424950530000604082015260600190565b6020808252602e908201527f7375626d6974746572206973206e6f7420656c696769626c6520746f2073756260408201526d1b5a5d0818481c1c9bdc1bdcd85b60921b606082015260800190565b6020808252601d908201527f696e76616c6964206d616a6f72697479436f6e646974696f6e42495053000000604082015260600190565b6020808252601d908201527f63616c6c20726576657274656420776974686f7574206d657373616765000000604082015260600190565b6020808252602d908201527f70726f706f73616c2063616e206f6e6c7920626520657865637574656420627960408201526c1034ba3990383937b837b9b2b960991b606082015260800190565b60208082526027908201527f766f746520706f77657220626c6f636b20697320746f6f2066617220696e20746040820152661a19481c185cdd60ca1b606082015260800190565b602080825260169082015275696e76616c696420766f7465207369676e617475726560501b604082015260600190565b6020808252601390820152721d5b9adb9bdddb881c1c9bdc1bdcd85b081a59606a1b604082015260600190565b60208082526018908201527f657865637574696f6e20706572696f6420746f6f206c6f770000000000000000604082015260600190565b60208082526028908201527f73756d206f66205f76616c75657320646f6573206e6f7420657175616c73206d60408201526773672e76616c756560c01b606082015260800190565b6020808252601c908201527f70726f706f73616c20697320616c72656164792063616e63656c656400000000604082015260600190565b602080825260159082015274766f74696e6720706572696f6420746f6f206c6f7760581b604082015260600190565b60208082526013908201527270726f706f73616c206e6f742061637469766560681b604082015260600190565b6020808252601f908201527f696e76616c69642076616c756520666f7220656e756d20566f74655479706500604082015260600190565b6020808252601190820152701d9bdd1948185b1c9958591e4818d85cdd607a1b604082015260600190565b6020808252601f908201527f70726f706f73616c206e6f7420696e20657865637574696f6e20737461746500604082015260600190565b60208082526019908201527f70726f706f73616c20616c726561647920657865637574656400000000000000604082015260600190565b8681526001600160a01b038616602082015260c060408201819052600090613e569083018761367f565b8281036060840152613e688187613738565b90508281036080840152613e7c81866136c2565b9150508260a0830152979650505050505050565b600083825260406020830152610ee26040830184613767565b918252602082015260400190565b600060ff8716825285602083015260a06040830152613ed960a0830186613767565b606083019490945250608001529392505050565b60405181810167ffffffffffffffff81118282101715613f0957fe5b604052919050565b600067ffffffffffffffff821115613f2557fe5b5060209081020190565b60005b83811015613f4a578181015183820152602001613f32565b83811115610cd25750506000910152565b6001600160a01b0381168114612d7a57600080fdfe45434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220c540999288a22eafebce9d2ea03088c9eb858380c71176b56727426f311130e164736f6c63430007060033",
1063
1063
  "linkReferences": {},
1064
1064
  "deployedLinkReferences": {}
1065
1065
  }