ETH Price: $1,787.88 (+4.15%)
 

Overview

ETH Balance

0 ETH

ETH Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To

There are no matching entries

Please try again later

Parent Transaction Hash Block From To
View All Internal Transactions

Cross-Chain Transactions
Loading...
Loading
Source Code Verified Exact Match

Contract Name

DecentralPool

Compiler Version
v0.8.22+commit.4fc1097e
Optimization Enabled
Yes with 200 runs
Other Settings
paris EvmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"ERC1967InvalidImplementation","type":"error"},{"inputs":[],"name":"ERC1967NonPayable","type":"error"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[],"name":"FailedCall","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[],"name":"UUPSUnauthorizedCallContext","type":"error"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"name":"UUPSUnsupportedProxiableUUID","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"borrower","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Borrowed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"investor","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"principalAmount","type":"uint256"}],"name":"Deposited","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minimumAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maximumAmount","type":"uint256"}],"name":"InvestmentLimitsSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"provider","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LiquidityAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"PoolShutdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"approver","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PrincipalWithdrawalApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"investor","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"availableTimestamp","type":"uint256"}],"name":"PrincipalWithdrawalRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"investor","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PrincipalWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"repayer","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Repaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timeElapsed","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rewardAccrued","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newCumulativeRewardPerShare","type":"uint256"}],"name":"RewardAccrued","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"investor","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"TokenBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"approver","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"YieldWithdrawalApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"investor","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"YieldWithdrawalRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"investor","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"YieldWithdrawn","type":"event"},{"inputs":[],"name":"ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"APPROVER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BORROWER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LIQUIDITY_PROVIDER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UPGRADER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"investors","type":"address[]"},{"internalType":"uint256[]","name":"principals","type":"uint256[]"},{"internalType":"uint256","name":"createdAt","type":"uint256"}],"name":"adminMintMigratedPositionsBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"approvePrincipalWithdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"approveYieldWithdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_tokenIds","type":"uint256[]"}],"name":"batchApprovePrincipalWithdrawals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_tokenIds","type":"uint256[]"}],"name":"batchApproveYieldWithdrawals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"borrow","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cumulativeRewardPerShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"depositWithPermit","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"executePrincipalWithdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"executeYieldWithdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factoryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fixedAPYWad","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fixedDailyRateWad","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPoolInfo","outputs":[{"internalType":"uint256","name":"_totalPrincipalShares","type":"uint256"},{"internalType":"uint256","name":"_fixedAPYWad","type":"uint256"},{"internalType":"uint256","name":"_paymentFrequencySeconds","type":"uint256"},{"internalType":"uint256","name":"_minimumInvestmentPeriodSeconds","type":"uint256"},{"internalType":"uint256","name":"_principalWithdrawalDelaySeconds","type":"uint256"},{"internalType":"uint256","name":"_minimumInvestmentAmount","type":"uint256"},{"internalType":"uint256","name":"_maximumInvestmentAmount","type":"uint256"},{"internalType":"uint256","name":"_lastUpdateTime","type":"uint256"},{"internalType":"uint256","name":"_cumulativeRewardPerShare","type":"uint256"},{"internalType":"address","name":"_stablecoinAddress","type":"address"},{"internalType":"uint8","name":"_stablecoinDecimals","type":"uint8"},{"internalType":"address","name":"_poolTokenAddress","type":"address"},{"internalType":"bool","name":"_isShutdown","type":"bool"},{"internalType":"address","name":"_factoryAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"getPrincipalWithdrawalRequest","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"requestTimestamp","type":"uint256"},{"internalType":"uint256","name":"availableTimestamp","type":"uint256"},{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"getYieldWithdrawalRequest","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"requestTimestamp","type":"uint256"},{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_factoryAddress","type":"address"},{"internalType":"address","name":"_poolTokenAddress","type":"address"},{"internalType":"address","name":"_stablecoinAddress","type":"address"},{"internalType":"uint256","name":"_fixedAPYBasisPoints","type":"uint256"},{"internalType":"uint256","name":"_paymentFrequencyDays","type":"uint256"},{"internalType":"uint256","name":"_minimumInvestmentPeriodDays","type":"uint256"},{"internalType":"uint256","name":"_principalWithdrawalDelayHours","type":"uint256"},{"internalType":"uint256","name":"_minimumInvestmentAmount","type":"uint256"},{"internalType":"uint256","name":"_maximumInvestmentAmount","type":"uint256"},{"internalType":"address","name":"_initialAdmin","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isShutdown","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastUpdateTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maximumInvestmentAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumInvestmentAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumInvestmentPeriodSeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paymentFrequencySeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"pendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolToken","outputs":[{"internalType":"contract PoolToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"principalWithdrawalDelaySeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"principalWithdrawalRequests","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"requestTimestamp","type":"uint256"},{"internalType":"uint256","name":"availableTimestamp","type":"uint256"},{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"repay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"requestPrincipalWithdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"requestYieldWithdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minimumInvestmentAmount","type":"uint256"},{"internalType":"uint256","name":"_maximumInvestmentAmount","type":"uint256"}],"name":"setInvestmentLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shutdownPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stablecoin","outputs":[{"internalType":"contract IERC20Decimals","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stablecoinAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalPrincipalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"yieldWithdrawalRequests","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"requestTimestamp","type":"uint256"},{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"view","type":"function"}]
60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6080516146a4620001046000396000818161373f0152818161376801526138b901526146a46000f3fe60806040526004361061036b5760003560e01c80636618231f116101c6578063bf86d690116100f7578063d6038dc611610095578063ecce893e1161006f578063ecce893e14610ac7578063f6a975e814610b17578063f72c0d8b14610b37578063fb903b1d14610b5957600080fd5b8063d6038dc614610a72578063e9cbd82214610a87578063ea9ae09614610aa757600080fd5b8063c79c7c6e116100d1578063c79c7c6e14610a06578063c8f33c9114610a1c578063cbdf382c14610a32578063d547741f14610a5257600080fd5b8063bf86d690146109b6578063c5126d1c146109d0578063c5ebeaec146109e657600080fd5b806391d1485411610164578063ace200881161013e578063ace20088146108fa578063ad3cb1cc14610910578063b485ddf01461094e578063b6b55f251461099657600080fd5b806391d14854146108a5578063966dae0e146108c5578063a217fddf146108e557600080fd5b80637dcb2abf116101a05780637dcb2abf146107eb57806381f5b24b1461080b5780638456cb591461082157806384f2e83e1461083657600080fd5b80636618231f146107935780636bc8d36a146107a957806375b238fc146107c957600080fd5b80633f4ba83a116102a057806352d1902d1161023e57806360246c881161021857806360246c88146106af578063615737ef1461071b578063624f68cb146107535780636436efca1461077357600080fd5b806352d1902d146106555780635aaa18aa1461066a5780635c975abb1461068a57600080fd5b80634a970be71161027a5780634a970be7146105e25780634f1ef28614610602578063513497e71461061557806351c6590a1461063557600080fd5b80633f4ba83a1461058b5780633f528a5b146105a05780634245962b146105c057600080fd5b806320037cdd1161030d57806336568abe116102e757806336568abe1461051f578063371fd8e61461053f5780633a1be6c81461055f5780633e4b43b31461057557600080fd5b806320037cdd146104bd578063248a9ca3146104df5780632f2ff15d146104ff57600080fd5b80630ebdf06c116103495780630ebdf06c146103f757806312b39a691461041757806313b1a3921461042d57806318a56615146104a757600080fd5b806301ffc9a7146103705780630a816c61146103a55780630e7b949e146103c7575b600080fd5b34801561037c57600080fd5b5061039061038b366004613ddb565b610b79565b60405190151581526020015b60405180910390f35b3480156103b157600080fd5b506103c56103c0366004613e05565b610b8a565b005b3480156103d357600080fd5b506103e960008051602061458f83398151915281565b60405190815260200161039c565b34801561040357600080fd5b506103c5610412366004613e05565b610f57565b34801561042357600080fd5b506103e960055481565b34801561043957600080fd5b5061047b610448366004613e05565b600f6020526000908152604090208054600182015460028301546003909301549192909160ff8082169161010090041685565b60408051958652602086019490945292840191909152151560608301521515608082015260a00161039c565b3480156104b357600080fd5b506103e9600a5481565b3480156104c957600080fd5b506103e96000805160206145ef83398151915281565b3480156104eb57600080fd5b506103e96104fa366004613e05565b6112b6565b34801561050b57600080fd5b506103c561051a366004613e33565b6112d8565b34801561052b57600080fd5b506103c561053a366004613e33565b6112fa565b34801561054b57600080fd5b506103c561055a366004613e05565b611332565b34801561056b57600080fd5b506103e960065481565b34801561058157600080fd5b506103e960075481565b34801561059757600080fd5b506103c56113eb565b3480156105ac57600080fd5b506103c56105bb366004613eaf565b61140b565b3480156105cc57600080fd5b506103e960008051602061456f83398151915281565b3480156105ee57600080fd5b506103e96105fd366004613f32565b6114d8565b6103c5610610366004613fc2565b611575565b34801561062157600080fd5b506103c561063036600461406a565b611594565b34801561064157600080fd5b506103c5610650366004613e05565b611679565b34801561066157600080fd5b506103e961173f565b34801561067657600080fd5b506103c5610685366004613e05565b61175c565b34801561069657600080fd5b5060008051602061462f8339815191525460ff16610390565b3480156106bb57600080fd5b50600d54600454600654600754600854600954600a54600c54600b54600354600154600e5460005460405161039c9d9c9b9a9998979695946001600160a01b038082169560ff600160a01b909304831695908216949216929116906140ac565b34801561072757600080fd5b5060035461073b906001600160a01b031681565b6040516001600160a01b03909116815260200161039c565b34801561075f57600080fd5b506103c561076e36600461406a565b611c4c565b34801561077f57600080fd5b506103c561078e366004614144565b611d29565b34801561079f57600080fd5b506103e960095481565b3480156107b557600080fd5b506103c56107c4366004613e05565b6123ce565b3480156107d557600080fd5b506103e960008051602061464f83398151915281565b3480156107f757600080fd5b506103e9610806366004613e05565b6124e8565b34801561081757600080fd5b506103e9600b5481565b34801561082d57600080fd5b506103c561263a565b34801561084257600080fd5b5061087d610851366004613e05565b600090815260106020526040902080546001820154600290920154909260ff8083169261010090041690565b604080519485526020850193909352901515918301919091521515606082015260800161039c565b3480156108b157600080fd5b506103906108c0366004613e33565b61265a565b3480156108d157600080fd5b5060005461073b906001600160a01b031681565b3480156108f157600080fd5b506103e9600081565b34801561090657600080fd5b506103e960045481565b34801561091c57600080fd5b50610941604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161039c9190614202565b34801561095a57600080fd5b5061087d610969366004613e05565b60106020526000908152604090208054600182015460029092015490919060ff8082169161010090041684565b3480156109a257600080fd5b506103e96109b1366004613e05565b612692565b3480156109c257600080fd5b50600e546103909060ff1681565b3480156109dc57600080fd5b506103e960085481565b3480156109f257600080fd5b506103c5610a01366004613e05565b61269e565b348015610a1257600080fd5b506103e9600d5481565b348015610a2857600080fd5b506103e9600c5481565b348015610a3e57600080fd5b5060015461073b906001600160a01b031681565b348015610a5e57600080fd5b506103c5610a6d366004613e33565b612854565b348015610a7e57600080fd5b506103c5612870565b348015610a9357600080fd5b5060025461073b906001600160a01b031681565b348015610ab357600080fd5b506103c5610ac2366004613e05565b6128f7565b348015610ad357600080fd5b5061047b610ae2366004613e05565b6000908152600f60205260409020805460018201546002830154600390930154919390929160ff808216926101009092041690565b348015610b2357600080fd5b506103c5610b32366004613e05565b612dce565b348015610b4357600080fd5b506103e96000805160206145af83398151915281565b348015610b6557600080fd5b506103c5610b74366004614235565b612ed2565b6000610b8482612fa2565b92915050565b610b92612fd7565b600e5460ff1615610bbe5760405162461bcd60e51b8152600401610bb590614257565b60405180910390fd5b610bc661300a565b6001546040516331a9108f60e11b815260048101839052339182916001600160a01b0390911690636352211e90602401602060405180830381865afa158015610c13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c37919061427f565b6001600160a01b031614610c5d5760405162461bcd60e51b8152600401610bb59061429c565b6000828152601060205260409020600281015460ff1615610cd75760405162461bcd60e51b815260206004820152602e60248201527f506f6f6c3a205969656c64207769746864726177616c2072657175657374206160448201526d6c72656164792070656e64696e6760901b6064820152608401610bb5565b60015460405163463d31d760e11b8152600481018590526000916001600160a01b031690638c7a63ae9060240160c060405180830381865afa158015610d21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4591906142d3565b80519091506001600160a01b03163014610d715760405162461bcd60e51b8152600401610bb590614356565b6006548160a00151610d8391906143af565b421015610dde5760405162461bcd60e51b8152602060048201526024808201527f506f6f6c3a205969656c64207061796f7574206672657175656e6379206e6f74604482015263081b595d60e21b6064820152608401610bb5565b610de6613054565b50600b546020820151600090610dfe90836001613114565b905060008360600151821115610e24576060840151610e1d90836143c2565b9050610e6c565b60405162461bcd60e51b815260206004820152601b60248201527f506f6f6c3a204e6f20776974686472617761626c65207969656c6400000000006044820152606401610bb5565b6000610e846b033b2e3c9fd0803ce8000000836143d5565b905060008111610ee85760405162461bcd60e51b815260206004820152602960248201527f506f6f6c3a204e6f20776974686472617761626c65207969656c6420287a65726044820152686f20616d6f756e742960b81b6064820152608401610bb5565b8086554260018088019190915560028701805461ffff1916909117905560405181815288906001600160a01b038916907f471e5ce063fc121d8b3123fba71790e7ead6b36c6d050fce53ba2859dc452c579060200160405180910390a350505050505050610f54613132565b50565b610f5f612fd7565b600e5460ff1615610f825760405162461bcd60e51b8152600401610bb590614257565b610f8a61300a565b6001546040516331a9108f60e11b815260048101839052339182916001600160a01b0390911690636352211e90602401602060405180830381865afa158015610fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffb919061427f565b6001600160a01b0316146110215760405162461bcd60e51b8152600401610bb59061429c565b6000828152600f60205260409020600381015460ff161561109f5760405162461bcd60e51b815260206004820152603260248201527f506f6f6c3a205072696e636970616c207769746864726177616c207265717565604482015271737420616c72656164792070656e64696e6760701b6064820152608401610bb5565b60015460405163463d31d760e11b8152600481018590526000916001600160a01b031690638c7a63ae9060240160c060405180830381865afa1580156110e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110d91906142d3565b80519091506001600160a01b031630146111395760405162461bcd60e51b8152600401610bb590614356565b600754816080015161114b91906143af565b4210156111aa5760405162461bcd60e51b815260206004820152602760248201527f506f6f6c3a204d696e696d756d20696e766573746d656e7420706572696f64206044820152661b9bdd081b595d60ca1b6064820152608401610bb5565b6000816040015182602001516111c091906143c2565b9050600081116112235760405162461bcd60e51b815260206004820152602860248201527f506f6f6c3a204e6f207072696e636970616c2072656d61696e696e6720746f20604482015267776974686472617760c01b6064820152608401610bb5565b61122b613054565b5060006008544261123c91906143af565b828555426001808701919091556002860182905560038601805461ffff19169091179055604080518481526020810183905291925087916001600160a01b038816917f1cd4e22d334545d4d9e85ed57d2f4bc71779b38f2368c226e67e7ded836aa636910160405180910390a35050505050610f54613132565b600090815260008051602061460f833981519152602052604090206001015490565b6112e1826112b6565b6112ea81613158565b6112f48383613162565b50505050565b6001600160a01b03811633146113235760405163334bd91960e11b815260040160405180910390fd5b61132d8282613207565b505050565b61133a61300a565b600081116113965760405162461bcd60e51b815260206004820152602360248201527f506f6f6c3a20526570617920616d6f756e74206d75737420626520706f73697460448201526269766560e81b6064820152608401610bb5565b6002546113ae906001600160a01b0316333084613283565b60405181815233907f0516911bcc3a0a7412a44601057c0a0a1ec628bde049a84284bc4288665344889060200160405180910390a2610f54613132565b60008051602061464f83398151915261140381613158565b610f546132ea565b60008051602061464f83398151915261142381613158565b61142b612fd7565b8483146114695760405162461bcd60e51b815260206004820152600c60248201526b0d8cadc40dad2e6dac2e8c6d60a31b6044820152606401610bb5565b611471613054565b5060005b858110156114cf576114c6878783818110611492576114926143f7565b90506020020160208101906114a7919061440d565b8686848181106114b9576114b96143f7565b905060200201358561334a565b50600101611475565b50505050505050565b60025460405163d505accf60e01b8152336004820152306024820152604481018790526064810186905260ff8516608482015260a4810184905260c481018390526000916001600160a01b03169063d505accf9060e401600060405180830381600087803b15801561154957600080fd5b505af115801561155d573d6000803e3d6000fd5b5050505061156b86336134c0565b9695505050505050565b61157d613734565b611586826137d9565b61159082826137f1565b5050565b60008051602061456f8339815191526115ac81613158565b6115b461300a565b60005b828110156116705760008484838181106115d3576115d36143f7565b6020908102929092013560008181526010909352604090922060028101549293509160ff169050801561161057506002810154610100900460ff16155b156116665760028101805461ff0019166101001790558054604051839133917edf572852bfd649774474a8ac548def7b00858352899293083f95fb7e67376e9161165d9190815260200190565b60405180910390a35b50506001016115b7565b5061132d613132565b6000805160206145ef83398151915261169181613158565b61169961300a565b600082116116e95760405162461bcd60e51b815260206004820152601d60248201527f506f6f6c3a20416d6f756e74206d75737420626520706f7369746976650000006044820152606401610bb5565b600254611701906001600160a01b0316333085613283565b60405182815233907fc17cea59c2955cb181b03393209566960365771dbba9dc3d510180e7cb312088906020015b60405180910390a2611590613132565b60006117496138ae565b506000805160206145cf83398151915290565b611764612fd7565b600e5460ff16156117875760405162461bcd60e51b8152600401610bb590614257565b61178f61300a565b6001546040516331a9108f60e11b815260048101839052339182916001600160a01b0390911690636352211e90602401602060405180830381865afa1580156117dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611800919061427f565b6001600160a01b0316146118265760405162461bcd60e51b8152600401610bb59061429c565b6000828152601060205260409020600281015460ff166118585760405162461bcd60e51b8152600401610bb59061442a565b6002810154610100900460ff166118c65760405162461bcd60e51b815260206004820152602c60248201527f506f6f6c3a205969656c64207769746864726177616c206e6f7420617070726f60448201526b3b32b210313c9030b236b4b760a11b6064820152608401610bb5565b80546118d0613054565b50600b5460015460405163463d31d760e11b8152600481018790526000916001600160a01b031690638c7a63ae9060240160c060405180830381865afa15801561191e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194291906142d3565b905060006119568260200151846001613114565b90506000826060015182111561197857606083015161197590836143c2565b90505b61198e6b033b2e3c9fd0803ce8000000826143d5565b6119999060016143af565b8511156119fd5760405162461bcd60e51b815260206004820152602c60248201527f506f6f6c3a2052657175657374656420616d6f756e742065786365656473206360448201526b1d5c9c995b9d081e5a595b1960a21b6064820152608401610bb5565b6002546040516370a0823160e01b815230600482015286916001600160a01b0316906370a0823190602401602060405180830381865afa158015611a45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a699190614471565b1015611acd5760405162461bcd60e51b815260206004820152602d60248201527f506f6f6c3a20496e73756666696369656e74206c697175696469747920666f7260448201526c081e5a595b19081c185e5bdd5d609a1b6064820152608401610bb5565b600088815260106020526040812081815560018101829055600201805461ffff19169055611b076b033b2e3c9fd0803ce80000008761448a565b8460600151611b1691906143af565b60015460405163ef4881b960e01b8152600481018c9052602481018390529192506001600160a01b03169063ef4881b990604401600060405180830381600087803b158015611b6457600080fd5b505af1158015611b78573d6000803e3d6000fd5b50506001546040516324b4039d60e21b8152600481018d90524260248201526001600160a01b0390911692506392d00e749150604401600060405180830381600087803b158015611bc857600080fd5b505af1158015611bdc573d6000803e3d6000fd5b5050600254611bf892506001600160a01b0316905089886138f7565b88886001600160a01b03167f2bf878084037ba4fb4363629d72708a5bb8e8e0de5af9fe03d987d5289f6f4a288604051611c3491815260200190565b60405180910390a35050505050505050610f54613132565b60008051602061456f833981519152611c6481613158565b611c6c61300a565b60005b82811015611670576000848483818110611c8b57611c8b6143f7565b602090810292909201356000818152600f909352604090922060038101549293509160ff1690508015611cc857506003810154610100900460ff16155b15611d1f5760038101805461ff0019166101001790558054604051839133917f6869ea68c49ed04e51a36558f48834c2f5f8c632bd23cfbacf85179dd9996f5d91611d169190815260200190565b60405180910390a35b5050600101611c6f565b6000611d33613928565b805490915060ff600160401b820416159067ffffffffffffffff16600081158015611d5b5750825b905060008267ffffffffffffffff166001148015611d785750303b155b905081158015611d86575080155b15611da45760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611dce57845460ff60401b1916600160401b1785555b611dd6613951565b611dde613951565b611de6613951565b611dee613959565b611df9600087613162565b50611e1260008051602061464f83398151915287613162565b50611e2b60008051602061456f83398151915287613162565b50611e446000805160206145ef83398151915287613162565b50611e5d60008051602061458f83398151915287613162565b50611e766000805160206145af83398151915287613162565b50611e9060008051602061464f8339815191526000613969565b611eb660008051602061456f83398151915260008051602061464f833981519152613969565b611edc6000805160206145ef83398151915260008051602061464f833981519152613969565b611f0260008051602061458f83398151915260008051602061464f833981519152613969565b611f286000805160206145af83398151915260008051602061464f833981519152613969565b600e805460ff191690556001600160a01b038f16611f885760405162461bcd60e51b815260206004820152601d60248201527f506f6f6c3a20496e76616c696420666163746f727920616464726573730000006044820152606401610bb5565b8e6000806101000a8154816001600160a01b0302191690836001600160a01b0316021790555060006001600160a01b03168e6001600160a01b0316036120105760405162461bcd60e51b815260206004820152601f60248201527f506f6f6c3a20496e76616c696420506f6f6c546f6b656e2061646472657373006044820152606401610bb5565b8d600160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060006001600160a01b03168d6001600160a01b0316036120995760405162461bcd60e51b815260206004820181905260248201527f506f6f6c3a20496e76616c696420737461626c65636f696e20616464726573736044820152606401610bb5565b600380546001600160a01b038f166001600160a01b0319918216811790925560028054909116821790556040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa92505050801561211a575060408051601f3d908101601f19168201909252612117918101906144a1565b60015b6121765760405162461bcd60e51b815260206004820152602760248201527f506f6f6c3a20436f756c64206e6f742067657420737461626c65636f696e20646044820152666563696d616c7360c81b6064820152608401610bb5565b6003805460ff909216600160a01b0260ff60a01b1990921691909117905560008c1180156121a657506127108c11155b6121f25760405162461bcd60e51b815260206004820152601f60248201527f506f6f6c3a20496e76616c6964204150592028312d31303030302062707329006044820152606401610bb5565b6122078c670de0b6b3a7640000612710613114565b6004819055612215906139cc565b6005558a6122765760405162461bcd60e51b815260206004820152602860248201527f506f6f6c3a205061796d656e74206672657175656e6379206d75737420626520604482015267706f73697469766560c01b6064820152608401610bb5565b612283620151808c61448a565b600655612293620151808b61448a565b6007556122a289610e1061448a565b600855876122c25760405162461bcd60e51b8152600401610bb5906144be565b878710156123265760405162461bcd60e51b815260206004820152602b60248201527f506f6f6c3a204d6178696d756d20696e766573746d656e74206d75737420626560448201526a203e3d206d696e696d756d60a81b6064820152608401610bb5565b6009889055600a87905560408051898152602081018990527f37e43752d3115f34391ab664a00575a88bba24e3e9dd3931a26bdcf9258090d9910160405180910390a16000600b81905542600c55600d5583156123bd57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050505050505050565b60008051602061456f8339815191526123e681613158565b6123ee61300a565b6000828152600f60205260409020600381015460ff166124205760405162461bcd60e51b8152600401610bb590614507565b6003810154610100900460ff161561248e5760405162461bcd60e51b815260206004820152602b60248201527f506f6f6c3a205072696e636970616c207769746864726177616c20616c72656160448201526a191e48185c1c1c9bdd995960aa1b6064820152608401610bb5565b60038101805461ff0019166101001790558054604051849133917f6869ea68c49ed04e51a36558f48834c2f5f8c632bd23cfbacf85179dd9996f5d916124d79190815260200190565b60405180910390a350611590613132565b60015460405163463d31d760e11b81526004810183905260009182916001600160a01b0390911690638c7a63ae9060240160c060405180830381865afa158015612536573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061255a91906142d3565b80519091506001600160a01b031630146125865760405162461bcd60e51b8152600401610bb590614356565b600d54600b54600c54821580159061259d57508042115b156125d85760006125b28460045484426139dc565b905080156125d65760006125c68286613a57565b90506125d281856143af565b9350505b505b60006125ea8560200151846001613114565b905084606001518111612604575060009695505050505050565b600085606001518261261691906143c2565b905061262e6b033b2e3c9fd0803ce8000000826143d5565b98975050505050505050565b60008051602061464f83398151915261265281613158565b610f54613a87565b600091825260008051602061460f833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000610b8482336134c0565b60008051602061458f8339815191526126b681613158565b6126be612fd7565b600e5460ff16156126e15760405162461bcd60e51b8152600401610bb590614257565b6126e961300a565b600082116127455760405162461bcd60e51b8152602060048201526024808201527f506f6f6c3a20426f72726f7720616d6f756e74206d75737420626520706f73696044820152637469766560e01b6064820152608401610bb5565b6002546040516370a0823160e01b815230600482015283916001600160a01b0316906370a0823190602401602060405180830381865afa15801561278d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b19190614471565b101561280b5760405162461bcd60e51b8152602060048201526024808201527f506f6f6c3a20496e73756666696369656e742062616c616e636520746f20626f60448201526372726f7760e01b6064820152608401610bb5565b600254612822906001600160a01b031633846138f7565b60405182815233907fac59582e5396aca512fa873a2047e7f4c80f8f55d4a06cb34a78a0187f62719f9060200161172f565b61285d826112b6565b61286681613158565b6112f48383613207565b60008051602061464f83398151915261288881613158565b600e5460ff16156128ab5760405162461bcd60e51b8152600401610bb590614257565b600e805460ff1916600117905560405133907f137e0498662a230cb088b17b84e37c1309760d409b1b6a630ecd9d1e45030b3f906128ec9042815260200190565b60405180910390a250565b6128ff612fd7565b600e5460ff16156129225760405162461bcd60e51b8152600401610bb590614257565b61292a61300a565b6001546040516331a9108f60e11b815260048101839052339182916001600160a01b0390911690636352211e90602401602060405180830381865afa158015612977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299b919061427f565b6001600160a01b0316146129c15760405162461bcd60e51b8152600401610bb59061429c565b6000828152600f60205260409020600381015460ff166129f35760405162461bcd60e51b8152600401610bb590614507565b8060020154421015612a555760405162461bcd60e51b815260206004820152602560248201527f506f6f6c3a205769746864726177616c2064656c617920706572696f64206e6f6044820152641d081b595d60da1b6064820152608401610bb5565b6003810154610100900460ff16612ac75760405162461bcd60e51b815260206004820152603060248201527f506f6f6c3a205072696e636970616c207769746864726177616c206e6f74206160448201526f38383937bb32b210313c9030b236b4b760811b6064820152608401610bb5565b612acf613054565b5080546002546040516370a0823160e01b815230600482015282916001600160a01b0316906370a0823190602401602060405180830381865afa158015612b1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3e9190614471565b1015612baa5760405162461bcd60e51b815260206004820152603560248201527f506f6f6c3a20496e73756666696369656e74206c697175696469747920666f72604482015274081c1c9a5b98da5c185b081dda5d1a191c985dd85b605a1b6064820152608401610bb5565b80600d6000828254612bbc91906143c2565b90915550506000848152600f602052604080822082815560018082018490556002820193909355600301805461ffff1916905590549051633356aabb60e21b815260048101869052602481018390526001600160a01b039091169063cd5aaaec90604401600060405180830381600087803b158015612c3a57600080fd5b505af1158015612c4e573d6000803e3d6000fd5b5050600254612c6a92506001600160a01b0316905084836138f7565b83836001600160a01b03167f217ea3989b9d3112d2133a930216f444b7fbcaeaa4d5bc0220d099fdc928e71e83604051612ca691815260200190565b60405180910390a360015460405163463d31d760e11b8152600481018690526000916001600160a01b031690638c7a63ae9060240160c060405180830381865afa158015612cf8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d1c91906142d3565b90508060200151816040015103612dc257600154604051630852cd8d60e31b8152600481018790526001600160a01b03909116906342966c6890602401600060405180830381600087803b158015612d7357600080fd5b505af1158015612d87573d6000803e3d6000fd5b50506040518792506001600160a01b03871691507f1af5163f80e79b5e554f61e1d052084d3a3fe1166e42a265798c4e2ddce8ffa290600090a35b50505050610f54613132565b60008051602061456f833981519152612de681613158565b612dee61300a565b6000828152601060205260409020600281015460ff16612e205760405162461bcd60e51b8152600401610bb59061442a565b6002810154610100900460ff1615612e8a5760405162461bcd60e51b815260206004820152602760248201527f506f6f6c3a205969656c64207769746864726177616c20616c726561647920616044820152661c1c1c9bdd995960ca1b6064820152608401610bb5565b60028101805461ff0019166101001790558054604051849133917edf572852bfd649774474a8ac548def7b00858352899293083f95fb7e67376e916124d79190815260200190565b60008051602061464f833981519152612eea81613158565b60008311612f0a5760405162461bcd60e51b8152600401610bb5906144be565b82821015612f5a5760405162461bcd60e51b815260206004820181905260248201527f506f6f6c3a204d6178696d756d206d757374206265203e3d206d696e696d756d6044820152606401610bb5565b6009839055600a82905560408051848152602081018490527f37e43752d3115f34391ab664a00575a88bba24e3e9dd3931a26bdcf9258090d9910160405180910390a1505050565b60006001600160e01b03198216637965db0b60e01b1480610b8457506301ffc9a760e01b6001600160e01b0319831614610b84565b60008051602061462f8339815191525460ff16156130085760405163d93c066560e01b815260040160405180910390fd5b565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080546001190161304e57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b600c54600d546000919080158061306b5750814211155b1561307c57505042600c5550600090565b600061308883426143c2565b90506130988260045485426139dc565b9350831561310a5760006130ac8584613a57565b905080600b546130bc91906143af565b600b81905560408051428152602081018590528082018890526060810192909252517fdffa723dd5780d3ee0395ec33418a7fec038ed088ff082e96ae384144364aa339181900360800190a1505b505042600c555090565b600082600019048411830215820261312b57600080fd5b5091020490565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b610f548133613ad0565b600060008051602061460f83398151915261317d848461265a565b6131fd576000848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556131b33390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610b84565b6000915050610b84565b600060008051602061460f833981519152613222848461265a565b156131fd576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610b84565b6040516001600160a01b0384811660248301528381166044830152606482018390526112f49186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050613b09565b6132f2613b7a565b60008051602061462f833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b600080831161338c5760405162461bcd60e51b815260206004820152600e60248201526d1e995c9bc81c1c9a5b98da5c185b60921b6044820152606401610bb5565b600061339c84600b546001613114565b905083600d60008282546133b091906143af565b9091555050600154604051633c173a4f60e01b81526001600160a01b038781166004830152602482018790523060448301526064820184905290911690633c173a4f906084016020604051808303816000875af1158015613415573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134399190614471565b915060008315613449578361344b565b425b60015460405163141a6b9b60e11b815260048101869052602481018390524260448201529192506001600160a01b031690632834d73690606401600060405180830381600087803b15801561349f57600080fd5b505af11580156134b3573d6000803e3d6000fd5b5050505050509392505050565b60006134ca612fd7565b600e5460ff16156134ed5760405162461bcd60e51b8152600401610bb590614257565b6134f561300a565b600083116135535760405162461bcd60e51b815260206004820152602560248201527f506f6f6c3a204465706f73697420616d6f756e74206d75737420626520706f73604482015264697469766560d81b6064820152608401610bb5565b6009548310156135b45760405162461bcd60e51b815260206004820152602660248201527f506f6f6c3a204465706f7369742062656c6f77206d696e696d756d20696e76656044820152651cdd1b595b9d60d21b6064820152608401610bb5565b600a548311156136155760405162461bcd60e51b815260206004820152602660248201527f506f6f6c3a204465706f7369742061626f7665206d6178696d756d20696e76656044820152651cdd1b595b9d60d21b6064820152608401610bb5565b61361d613054565b50600b54600061362f85836001613114565b905084600d600082825461364391906143af565b9091555050600254613660906001600160a01b0316853088613283565b600154604051633c173a4f60e01b81526001600160a01b038681166004830152602482018890523060448301526064820184905290911690633c173a4f906084016020604051808303816000875af11580156136c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136e49190614471565b925082846001600160a01b03167f73a19dd210f1a7f902193214c0ee91dd35ee5b4d920cba8d519eca65a7b488ca8760405161372291815260200190565b60405180910390a35050610b84613132565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806137bb57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166137af6000805160206145cf833981519152546001600160a01b031690565b6001600160a01b031614155b156130085760405163703e46dd60e11b815260040160405180910390fd5b6000805160206145af83398151915261159081613158565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561384b575060408051601f3d908101601f1916820190925261384891810190614471565b60015b61387357604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610bb5565b6000805160206145cf83398151915281146138a457604051632a87526960e21b815260048101829052602401610bb5565b61132d8383613baa565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146130085760405163703e46dd60e11b815260040160405180910390fd5b6040516001600160a01b0383811660248301526044820183905261132d91859182169063a9059cbb906064016132b8565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610b84565b613008613c00565b613961613c00565b613008613c25565b60008051602061460f8339815191526000613983846112b6565b600085815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b6000610b8482600161016d613114565b600082821115806139eb575084155b806139f4575083155b15613a0157506000613a4f565b6000613a0d84846143c2565b90506000613a34670de0b6b3a7640000613a2c6201518061016d61448a565b849190613114565b9050613a4a81613a448989613c2d565b90613c2d565b925050505b949350505050565b600081600003613a6957506000610b84565b613a80836b033b2e3c9fd0803ce800000084613114565b9392505050565b613a8f612fd7565b60008051602061462f833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2583361332c565b613ada828261265a565b6115905760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610bb5565b600080602060008451602086016000885af180613b2c576040513d6000823e3d81fd5b50506000513d91508115613b44578060011415613b51565b6001600160a01b0384163b155b156112f457604051635274afe760e01b81526001600160a01b0385166004820152602401610bb5565b60008051602061462f8339815191525460ff1661300857604051638dfc202b60e01b815260040160405180910390fd5b613bb382613c42565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115613bf85761132d8282613ca7565b611590613d1d565b613c08613d3c565b61300857604051631afcd79f60e31b815260040160405180910390fd5b613132613c00565b6000613a808383670de0b6b3a7640000613114565b806001600160a01b03163b600003613c7857604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610bb5565b6000805160206145cf83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051613cc49190614552565b600060405180830381855af49150503d8060008114613cff576040519150601f19603f3d011682016040523d82523d6000602084013e613d04565b606091505b5091509150613d14858383613d56565b95945050505050565b34156130085760405163b398979f60e01b815260040160405180910390fd5b6000613d46613928565b54600160401b900460ff16919050565b606082613d6b57613d6682613db2565b613a80565b8151158015613d8257506001600160a01b0384163b155b15613dab57604051639996b31560e01b81526001600160a01b0385166004820152602401610bb5565b5092915050565b805115613dc25780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b600060208284031215613ded57600080fd5b81356001600160e01b031981168114613a8057600080fd5b600060208284031215613e1757600080fd5b5035919050565b6001600160a01b0381168114610f5457600080fd5b60008060408385031215613e4657600080fd5b823591506020830135613e5881613e1e565b809150509250929050565b60008083601f840112613e7557600080fd5b50813567ffffffffffffffff811115613e8d57600080fd5b6020830191508360208260051b8501011115613ea857600080fd5b9250929050565b600080600080600060608688031215613ec757600080fd5b853567ffffffffffffffff80821115613edf57600080fd5b613eeb89838a01613e63565b90975095506020880135915080821115613f0457600080fd5b50613f1188828901613e63565b96999598509660400135949350505050565b60ff81168114610f5457600080fd5b600080600080600060a08688031215613f4a57600080fd5b85359450602086013593506040860135613f6381613f23565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613fba57613fba613f7b565b604052919050565b60008060408385031215613fd557600080fd5b8235613fe081613e1e565b915060208381013567ffffffffffffffff80821115613ffe57600080fd5b818601915086601f83011261401257600080fd5b81358181111561402457614024613f7b565b614036601f8201601f19168501613f91565b9150808252878482850101111561404c57600080fd5b80848401858401376000848284010152508093505050509250929050565b6000806020838503121561407d57600080fd5b823567ffffffffffffffff81111561409457600080fd5b6140a085828601613e63565b90969095509350505050565b60006101c0820190508f82528e60208301528d60408301528c60608301528b60808301528a60a08301528960c08301528860e08301528761010083015260018060a01b03871661012083015260ff86166101408301526141186101608301866001600160a01b03169052565b8315156101808301526001600160a01b0383166101a08301529f9e505050505050505050505050505050565b6000806000806000806000806000806101408b8d03121561416457600080fd5b8a3561416f81613e1e565b995060208b013561417f81613e1e565b985060408b013561418f81613e1e565b975060608b0135965060808b0135955060a08b0135945060c08b0135935060e08b013592506101008b013591506101208b01356141cb81613e1e565b809150509295989b9194979a5092959850565b60005b838110156141f95781810151838201526020016141e1565b50506000910152565b60208152600082518060208401526142218160408501602087016141de565b601f01601f19169190910160400192915050565b6000806040838503121561424857600080fd5b50508035926020909101359150565b6020808252600e908201526d2837b7b61d1029b43aba3237bbb760911b604082015260600190565b60006020828403121561429157600080fd5b8151613a8081613e1e565b6020808252601f908201527f506f6f6c3a2043616c6c657220646f6573206e6f74206f776e20746f6b656e00604082015260600190565b600060c082840312156142e557600080fd5b60405160c0810181811067ffffffffffffffff8211171561430857614308613f7b565b604052825161431681613e1e565b808252506020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a08201528091505092915050565b60208082526023908201527f506f6f6c3a20546f6b656e2062656c6f6e677320746f20616e6f7468657220706040820152621bdbdb60ea1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610b8457610b84614399565b81810381811115610b8457610b84614399565b6000826143f257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561441f57600080fd5b8135613a8081613e1e565b60208082526027908201527f506f6f6c3a204e6f207969656c64207769746864726177616c207265717565736040820152661d08199bdd5b9960ca1b606082015260800190565b60006020828403121561448357600080fd5b5051919050565b8082028115828204841417610b8457610b84614399565b6000602082840312156144b357600080fd5b8151613a8081613f23565b60208082526029908201527f506f6f6c3a204d696e696d756d20696e766573746d656e74206d75737420626560408201526820706f73697469766560b81b606082015260800190565b6020808252602b908201527f506f6f6c3a204e6f207072696e636970616c207769746864726177616c20726560408201526a1c5d595cdd08199bdd5b9960aa1b606082015260800190565b600082516145648184602087016141de565b919091019291505056fe408a36151f841709116a4e8aca4e0202874f7f54687dcb863b1ea4672dc9d8cf2344277e405079ec07749d374ba0b5862a4e45a6a05ac889dbb4a991c6f9354d189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc42802a37d17e698ec3d88f7a6917f1f5a6abb4d99a8f4255c389e56d10218a6402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a2646970667358221220461170d4a80fffc279a4852cad0c0b772a71ce9617956568369e195fb441b2b864736f6c63430008160033
Deployed Bytecode
0x60806040526004361061036b5760003560e01c80636618231f116101c6578063bf86d690116100f7578063d6038dc611610095578063ecce893e1161006f578063ecce893e14610ac7578063f6a975e814610b17578063f72c0d8b14610b37578063fb903b1d14610b5957600080fd5b8063d6038dc614610a72578063e9cbd82214610a87578063ea9ae09614610aa757600080fd5b8063c79c7c6e116100d1578063c79c7c6e14610a06578063c8f33c9114610a1c578063cbdf382c14610a32578063d547741f14610a5257600080fd5b8063bf86d690146109b6578063c5126d1c146109d0578063c5ebeaec146109e657600080fd5b806391d1485411610164578063ace200881161013e578063ace20088146108fa578063ad3cb1cc14610910578063b485ddf01461094e578063b6b55f251461099657600080fd5b806391d14854146108a5578063966dae0e146108c5578063a217fddf146108e557600080fd5b80637dcb2abf116101a05780637dcb2abf146107eb57806381f5b24b1461080b5780638456cb591461082157806384f2e83e1461083657600080fd5b80636618231f146107935780636bc8d36a146107a957806375b238fc146107c957600080fd5b80633f4ba83a116102a057806352d1902d1161023e57806360246c881161021857806360246c88146106af578063615737ef1461071b578063624f68cb146107535780636436efca1461077357600080fd5b806352d1902d146106555780635aaa18aa1461066a5780635c975abb1461068a57600080fd5b80634a970be71161027a5780634a970be7146105e25780634f1ef28614610602578063513497e71461061557806351c6590a1461063557600080fd5b80633f4ba83a1461058b5780633f528a5b146105a05780634245962b146105c057600080fd5b806320037cdd1161030d57806336568abe116102e757806336568abe1461051f578063371fd8e61461053f5780633a1be6c81461055f5780633e4b43b31461057557600080fd5b806320037cdd146104bd578063248a9ca3146104df5780632f2ff15d146104ff57600080fd5b80630ebdf06c116103495780630ebdf06c146103f757806312b39a691461041757806313b1a3921461042d57806318a56615146104a757600080fd5b806301ffc9a7146103705780630a816c61146103a55780630e7b949e146103c7575b600080fd5b34801561037c57600080fd5b5061039061038b366004613ddb565b610b79565b60405190151581526020015b60405180910390f35b3480156103b157600080fd5b506103c56103c0366004613e05565b610b8a565b005b3480156103d357600080fd5b506103e960008051602061458f83398151915281565b60405190815260200161039c565b34801561040357600080fd5b506103c5610412366004613e05565b610f57565b34801561042357600080fd5b506103e960055481565b34801561043957600080fd5b5061047b610448366004613e05565b600f6020526000908152604090208054600182015460028301546003909301549192909160ff8082169161010090041685565b60408051958652602086019490945292840191909152151560608301521515608082015260a00161039c565b3480156104b357600080fd5b506103e9600a5481565b3480156104c957600080fd5b506103e96000805160206145ef83398151915281565b3480156104eb57600080fd5b506103e96104fa366004613e05565b6112b6565b34801561050b57600080fd5b506103c561051a366004613e33565b6112d8565b34801561052b57600080fd5b506103c561053a366004613e33565b6112fa565b34801561054b57600080fd5b506103c561055a366004613e05565b611332565b34801561056b57600080fd5b506103e960065481565b34801561058157600080fd5b506103e960075481565b34801561059757600080fd5b506103c56113eb565b3480156105ac57600080fd5b506103c56105bb366004613eaf565b61140b565b3480156105cc57600080fd5b506103e960008051602061456f83398151915281565b3480156105ee57600080fd5b506103e96105fd366004613f32565b6114d8565b6103c5610610366004613fc2565b611575565b34801561062157600080fd5b506103c561063036600461406a565b611594565b34801561064157600080fd5b506103c5610650366004613e05565b611679565b34801561066157600080fd5b506103e961173f565b34801561067657600080fd5b506103c5610685366004613e05565b61175c565b34801561069657600080fd5b5060008051602061462f8339815191525460ff16610390565b3480156106bb57600080fd5b50600d54600454600654600754600854600954600a54600c54600b54600354600154600e5460005460405161039c9d9c9b9a9998979695946001600160a01b038082169560ff600160a01b909304831695908216949216929116906140ac565b34801561072757600080fd5b5060035461073b906001600160a01b031681565b6040516001600160a01b03909116815260200161039c565b34801561075f57600080fd5b506103c561076e36600461406a565b611c4c565b34801561077f57600080fd5b506103c561078e366004614144565b611d29565b34801561079f57600080fd5b506103e960095481565b3480156107b557600080fd5b506103c56107c4366004613e05565b6123ce565b3480156107d557600080fd5b506103e960008051602061464f83398151915281565b3480156107f757600080fd5b506103e9610806366004613e05565b6124e8565b34801561081757600080fd5b506103e9600b5481565b34801561082d57600080fd5b506103c561263a565b34801561084257600080fd5b5061087d610851366004613e05565b600090815260106020526040902080546001820154600290920154909260ff8083169261010090041690565b604080519485526020850193909352901515918301919091521515606082015260800161039c565b3480156108b157600080fd5b506103906108c0366004613e33565b61265a565b3480156108d157600080fd5b5060005461073b906001600160a01b031681565b3480156108f157600080fd5b506103e9600081565b34801561090657600080fd5b506103e960045481565b34801561091c57600080fd5b50610941604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161039c9190614202565b34801561095a57600080fd5b5061087d610969366004613e05565b60106020526000908152604090208054600182015460029092015490919060ff8082169161010090041684565b3480156109a257600080fd5b506103e96109b1366004613e05565b612692565b3480156109c257600080fd5b50600e546103909060ff1681565b3480156109dc57600080fd5b506103e960085481565b3480156109f257600080fd5b506103c5610a01366004613e05565b61269e565b348015610a1257600080fd5b506103e9600d5481565b348015610a2857600080fd5b506103e9600c5481565b348015610a3e57600080fd5b5060015461073b906001600160a01b031681565b348015610a5e57600080fd5b506103c5610a6d366004613e33565b612854565b348015610a7e57600080fd5b506103c5612870565b348015610a9357600080fd5b5060025461073b906001600160a01b031681565b348015610ab357600080fd5b506103c5610ac2366004613e05565b6128f7565b348015610ad357600080fd5b5061047b610ae2366004613e05565b6000908152600f60205260409020805460018201546002830154600390930154919390929160ff808216926101009092041690565b348015610b2357600080fd5b506103c5610b32366004613e05565b612dce565b348015610b4357600080fd5b506103e96000805160206145af83398151915281565b348015610b6557600080fd5b506103c5610b74366004614235565b612ed2565b6000610b8482612fa2565b92915050565b610b92612fd7565b600e5460ff1615610bbe5760405162461bcd60e51b8152600401610bb590614257565b60405180910390fd5b610bc661300a565b6001546040516331a9108f60e11b815260048101839052339182916001600160a01b0390911690636352211e90602401602060405180830381865afa158015610c13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c37919061427f565b6001600160a01b031614610c5d5760405162461bcd60e51b8152600401610bb59061429c565b6000828152601060205260409020600281015460ff1615610cd75760405162461bcd60e51b815260206004820152602e60248201527f506f6f6c3a205969656c64207769746864726177616c2072657175657374206160448201526d6c72656164792070656e64696e6760901b6064820152608401610bb5565b60015460405163463d31d760e11b8152600481018590526000916001600160a01b031690638c7a63ae9060240160c060405180830381865afa158015610d21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4591906142d3565b80519091506001600160a01b03163014610d715760405162461bcd60e51b8152600401610bb590614356565b6006548160a00151610d8391906143af565b421015610dde5760405162461bcd60e51b8152602060048201526024808201527f506f6f6c3a205969656c64207061796f7574206672657175656e6379206e6f74604482015263081b595d60e21b6064820152608401610bb5565b610de6613054565b50600b546020820151600090610dfe90836001613114565b905060008360600151821115610e24576060840151610e1d90836143c2565b9050610e6c565b60405162461bcd60e51b815260206004820152601b60248201527f506f6f6c3a204e6f20776974686472617761626c65207969656c6400000000006044820152606401610bb5565b6000610e846b033b2e3c9fd0803ce8000000836143d5565b905060008111610ee85760405162461bcd60e51b815260206004820152602960248201527f506f6f6c3a204e6f20776974686472617761626c65207969656c6420287a65726044820152686f20616d6f756e742960b81b6064820152608401610bb5565b8086554260018088019190915560028701805461ffff1916909117905560405181815288906001600160a01b038916907f471e5ce063fc121d8b3123fba71790e7ead6b36c6d050fce53ba2859dc452c579060200160405180910390a350505050505050610f54613132565b50565b610f5f612fd7565b600e5460ff1615610f825760405162461bcd60e51b8152600401610bb590614257565b610f8a61300a565b6001546040516331a9108f60e11b815260048101839052339182916001600160a01b0390911690636352211e90602401602060405180830381865afa158015610fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffb919061427f565b6001600160a01b0316146110215760405162461bcd60e51b8152600401610bb59061429c565b6000828152600f60205260409020600381015460ff161561109f5760405162461bcd60e51b815260206004820152603260248201527f506f6f6c3a205072696e636970616c207769746864726177616c207265717565604482015271737420616c72656164792070656e64696e6760701b6064820152608401610bb5565b60015460405163463d31d760e11b8152600481018590526000916001600160a01b031690638c7a63ae9060240160c060405180830381865afa1580156110e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110d91906142d3565b80519091506001600160a01b031630146111395760405162461bcd60e51b8152600401610bb590614356565b600754816080015161114b91906143af565b4210156111aa5760405162461bcd60e51b815260206004820152602760248201527f506f6f6c3a204d696e696d756d20696e766573746d656e7420706572696f64206044820152661b9bdd081b595d60ca1b6064820152608401610bb5565b6000816040015182602001516111c091906143c2565b9050600081116112235760405162461bcd60e51b815260206004820152602860248201527f506f6f6c3a204e6f207072696e636970616c2072656d61696e696e6720746f20604482015267776974686472617760c01b6064820152608401610bb5565b61122b613054565b5060006008544261123c91906143af565b828555426001808701919091556002860182905560038601805461ffff19169091179055604080518481526020810183905291925087916001600160a01b038816917f1cd4e22d334545d4d9e85ed57d2f4bc71779b38f2368c226e67e7ded836aa636910160405180910390a35050505050610f54613132565b600090815260008051602061460f833981519152602052604090206001015490565b6112e1826112b6565b6112ea81613158565b6112f48383613162565b50505050565b6001600160a01b03811633146113235760405163334bd91960e11b815260040160405180910390fd5b61132d8282613207565b505050565b61133a61300a565b600081116113965760405162461bcd60e51b815260206004820152602360248201527f506f6f6c3a20526570617920616d6f756e74206d75737420626520706f73697460448201526269766560e81b6064820152608401610bb5565b6002546113ae906001600160a01b0316333084613283565b60405181815233907f0516911bcc3a0a7412a44601057c0a0a1ec628bde049a84284bc4288665344889060200160405180910390a2610f54613132565b60008051602061464f83398151915261140381613158565b610f546132ea565b60008051602061464f83398151915261142381613158565b61142b612fd7565b8483146114695760405162461bcd60e51b815260206004820152600c60248201526b0d8cadc40dad2e6dac2e8c6d60a31b6044820152606401610bb5565b611471613054565b5060005b858110156114cf576114c6878783818110611492576114926143f7565b90506020020160208101906114a7919061440d565b8686848181106114b9576114b96143f7565b905060200201358561334a565b50600101611475565b50505050505050565b60025460405163d505accf60e01b8152336004820152306024820152604481018790526064810186905260ff8516608482015260a4810184905260c481018390526000916001600160a01b03169063d505accf9060e401600060405180830381600087803b15801561154957600080fd5b505af115801561155d573d6000803e3d6000fd5b5050505061156b86336134c0565b9695505050505050565b61157d613734565b611586826137d9565b61159082826137f1565b5050565b60008051602061456f8339815191526115ac81613158565b6115b461300a565b60005b828110156116705760008484838181106115d3576115d36143f7565b6020908102929092013560008181526010909352604090922060028101549293509160ff169050801561161057506002810154610100900460ff16155b156116665760028101805461ff0019166101001790558054604051839133917edf572852bfd649774474a8ac548def7b00858352899293083f95fb7e67376e9161165d9190815260200190565b60405180910390a35b50506001016115b7565b5061132d613132565b6000805160206145ef83398151915261169181613158565b61169961300a565b600082116116e95760405162461bcd60e51b815260206004820152601d60248201527f506f6f6c3a20416d6f756e74206d75737420626520706f7369746976650000006044820152606401610bb5565b600254611701906001600160a01b0316333085613283565b60405182815233907fc17cea59c2955cb181b03393209566960365771dbba9dc3d510180e7cb312088906020015b60405180910390a2611590613132565b60006117496138ae565b506000805160206145cf83398151915290565b611764612fd7565b600e5460ff16156117875760405162461bcd60e51b8152600401610bb590614257565b61178f61300a565b6001546040516331a9108f60e11b815260048101839052339182916001600160a01b0390911690636352211e90602401602060405180830381865afa1580156117dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611800919061427f565b6001600160a01b0316146118265760405162461bcd60e51b8152600401610bb59061429c565b6000828152601060205260409020600281015460ff166118585760405162461bcd60e51b8152600401610bb59061442a565b6002810154610100900460ff166118c65760405162461bcd60e51b815260206004820152602c60248201527f506f6f6c3a205969656c64207769746864726177616c206e6f7420617070726f60448201526b3b32b210313c9030b236b4b760a11b6064820152608401610bb5565b80546118d0613054565b50600b5460015460405163463d31d760e11b8152600481018790526000916001600160a01b031690638c7a63ae9060240160c060405180830381865afa15801561191e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194291906142d3565b905060006119568260200151846001613114565b90506000826060015182111561197857606083015161197590836143c2565b90505b61198e6b033b2e3c9fd0803ce8000000826143d5565b6119999060016143af565b8511156119fd5760405162461bcd60e51b815260206004820152602c60248201527f506f6f6c3a2052657175657374656420616d6f756e742065786365656473206360448201526b1d5c9c995b9d081e5a595b1960a21b6064820152608401610bb5565b6002546040516370a0823160e01b815230600482015286916001600160a01b0316906370a0823190602401602060405180830381865afa158015611a45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a699190614471565b1015611acd5760405162461bcd60e51b815260206004820152602d60248201527f506f6f6c3a20496e73756666696369656e74206c697175696469747920666f7260448201526c081e5a595b19081c185e5bdd5d609a1b6064820152608401610bb5565b600088815260106020526040812081815560018101829055600201805461ffff19169055611b076b033b2e3c9fd0803ce80000008761448a565b8460600151611b1691906143af565b60015460405163ef4881b960e01b8152600481018c9052602481018390529192506001600160a01b03169063ef4881b990604401600060405180830381600087803b158015611b6457600080fd5b505af1158015611b78573d6000803e3d6000fd5b50506001546040516324b4039d60e21b8152600481018d90524260248201526001600160a01b0390911692506392d00e749150604401600060405180830381600087803b158015611bc857600080fd5b505af1158015611bdc573d6000803e3d6000fd5b5050600254611bf892506001600160a01b0316905089886138f7565b88886001600160a01b03167f2bf878084037ba4fb4363629d72708a5bb8e8e0de5af9fe03d987d5289f6f4a288604051611c3491815260200190565b60405180910390a35050505050505050610f54613132565b60008051602061456f833981519152611c6481613158565b611c6c61300a565b60005b82811015611670576000848483818110611c8b57611c8b6143f7565b602090810292909201356000818152600f909352604090922060038101549293509160ff1690508015611cc857506003810154610100900460ff16155b15611d1f5760038101805461ff0019166101001790558054604051839133917f6869ea68c49ed04e51a36558f48834c2f5f8c632bd23cfbacf85179dd9996f5d91611d169190815260200190565b60405180910390a35b5050600101611c6f565b6000611d33613928565b805490915060ff600160401b820416159067ffffffffffffffff16600081158015611d5b5750825b905060008267ffffffffffffffff166001148015611d785750303b155b905081158015611d86575080155b15611da45760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611dce57845460ff60401b1916600160401b1785555b611dd6613951565b611dde613951565b611de6613951565b611dee613959565b611df9600087613162565b50611e1260008051602061464f83398151915287613162565b50611e2b60008051602061456f83398151915287613162565b50611e446000805160206145ef83398151915287613162565b50611e5d60008051602061458f83398151915287613162565b50611e766000805160206145af83398151915287613162565b50611e9060008051602061464f8339815191526000613969565b611eb660008051602061456f83398151915260008051602061464f833981519152613969565b611edc6000805160206145ef83398151915260008051602061464f833981519152613969565b611f0260008051602061458f83398151915260008051602061464f833981519152613969565b611f286000805160206145af83398151915260008051602061464f833981519152613969565b600e805460ff191690556001600160a01b038f16611f885760405162461bcd60e51b815260206004820152601d60248201527f506f6f6c3a20496e76616c696420666163746f727920616464726573730000006044820152606401610bb5565b8e6000806101000a8154816001600160a01b0302191690836001600160a01b0316021790555060006001600160a01b03168e6001600160a01b0316036120105760405162461bcd60e51b815260206004820152601f60248201527f506f6f6c3a20496e76616c696420506f6f6c546f6b656e2061646472657373006044820152606401610bb5565b8d600160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060006001600160a01b03168d6001600160a01b0316036120995760405162461bcd60e51b815260206004820181905260248201527f506f6f6c3a20496e76616c696420737461626c65636f696e20616464726573736044820152606401610bb5565b600380546001600160a01b038f166001600160a01b0319918216811790925560028054909116821790556040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa92505050801561211a575060408051601f3d908101601f19168201909252612117918101906144a1565b60015b6121765760405162461bcd60e51b815260206004820152602760248201527f506f6f6c3a20436f756c64206e6f742067657420737461626c65636f696e20646044820152666563696d616c7360c81b6064820152608401610bb5565b6003805460ff909216600160a01b0260ff60a01b1990921691909117905560008c1180156121a657506127108c11155b6121f25760405162461bcd60e51b815260206004820152601f60248201527f506f6f6c3a20496e76616c6964204150592028312d31303030302062707329006044820152606401610bb5565b6122078c670de0b6b3a7640000612710613114565b6004819055612215906139cc565b6005558a6122765760405162461bcd60e51b815260206004820152602860248201527f506f6f6c3a205061796d656e74206672657175656e6379206d75737420626520604482015267706f73697469766560c01b6064820152608401610bb5565b612283620151808c61448a565b600655612293620151808b61448a565b6007556122a289610e1061448a565b600855876122c25760405162461bcd60e51b8152600401610bb5906144be565b878710156123265760405162461bcd60e51b815260206004820152602b60248201527f506f6f6c3a204d6178696d756d20696e766573746d656e74206d75737420626560448201526a203e3d206d696e696d756d60a81b6064820152608401610bb5565b6009889055600a87905560408051898152602081018990527f37e43752d3115f34391ab664a00575a88bba24e3e9dd3931a26bdcf9258090d9910160405180910390a16000600b81905542600c55600d5583156123bd57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050505050505050565b60008051602061456f8339815191526123e681613158565b6123ee61300a565b6000828152600f60205260409020600381015460ff166124205760405162461bcd60e51b8152600401610bb590614507565b6003810154610100900460ff161561248e5760405162461bcd60e51b815260206004820152602b60248201527f506f6f6c3a205072696e636970616c207769746864726177616c20616c72656160448201526a191e48185c1c1c9bdd995960aa1b6064820152608401610bb5565b60038101805461ff0019166101001790558054604051849133917f6869ea68c49ed04e51a36558f48834c2f5f8c632bd23cfbacf85179dd9996f5d916124d79190815260200190565b60405180910390a350611590613132565b60015460405163463d31d760e11b81526004810183905260009182916001600160a01b0390911690638c7a63ae9060240160c060405180830381865afa158015612536573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061255a91906142d3565b80519091506001600160a01b031630146125865760405162461bcd60e51b8152600401610bb590614356565b600d54600b54600c54821580159061259d57508042115b156125d85760006125b28460045484426139dc565b905080156125d65760006125c68286613a57565b90506125d281856143af565b9350505b505b60006125ea8560200151846001613114565b905084606001518111612604575060009695505050505050565b600085606001518261261691906143c2565b905061262e6b033b2e3c9fd0803ce8000000826143d5565b98975050505050505050565b60008051602061464f83398151915261265281613158565b610f54613a87565b600091825260008051602061460f833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000610b8482336134c0565b60008051602061458f8339815191526126b681613158565b6126be612fd7565b600e5460ff16156126e15760405162461bcd60e51b8152600401610bb590614257565b6126e961300a565b600082116127455760405162461bcd60e51b8152602060048201526024808201527f506f6f6c3a20426f72726f7720616d6f756e74206d75737420626520706f73696044820152637469766560e01b6064820152608401610bb5565b6002546040516370a0823160e01b815230600482015283916001600160a01b0316906370a0823190602401602060405180830381865afa15801561278d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b19190614471565b101561280b5760405162461bcd60e51b8152602060048201526024808201527f506f6f6c3a20496e73756666696369656e742062616c616e636520746f20626f60448201526372726f7760e01b6064820152608401610bb5565b600254612822906001600160a01b031633846138f7565b60405182815233907fac59582e5396aca512fa873a2047e7f4c80f8f55d4a06cb34a78a0187f62719f9060200161172f565b61285d826112b6565b61286681613158565b6112f48383613207565b60008051602061464f83398151915261288881613158565b600e5460ff16156128ab5760405162461bcd60e51b8152600401610bb590614257565b600e805460ff1916600117905560405133907f137e0498662a230cb088b17b84e37c1309760d409b1b6a630ecd9d1e45030b3f906128ec9042815260200190565b60405180910390a250565b6128ff612fd7565b600e5460ff16156129225760405162461bcd60e51b8152600401610bb590614257565b61292a61300a565b6001546040516331a9108f60e11b815260048101839052339182916001600160a01b0390911690636352211e90602401602060405180830381865afa158015612977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299b919061427f565b6001600160a01b0316146129c15760405162461bcd60e51b8152600401610bb59061429c565b6000828152600f60205260409020600381015460ff166129f35760405162461bcd60e51b8152600401610bb590614507565b8060020154421015612a555760405162461bcd60e51b815260206004820152602560248201527f506f6f6c3a205769746864726177616c2064656c617920706572696f64206e6f6044820152641d081b595d60da1b6064820152608401610bb5565b6003810154610100900460ff16612ac75760405162461bcd60e51b815260206004820152603060248201527f506f6f6c3a205072696e636970616c207769746864726177616c206e6f74206160448201526f38383937bb32b210313c9030b236b4b760811b6064820152608401610bb5565b612acf613054565b5080546002546040516370a0823160e01b815230600482015282916001600160a01b0316906370a0823190602401602060405180830381865afa158015612b1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3e9190614471565b1015612baa5760405162461bcd60e51b815260206004820152603560248201527f506f6f6c3a20496e73756666696369656e74206c697175696469747920666f72604482015274081c1c9a5b98da5c185b081dda5d1a191c985dd85b605a1b6064820152608401610bb5565b80600d6000828254612bbc91906143c2565b90915550506000848152600f602052604080822082815560018082018490556002820193909355600301805461ffff1916905590549051633356aabb60e21b815260048101869052602481018390526001600160a01b039091169063cd5aaaec90604401600060405180830381600087803b158015612c3a57600080fd5b505af1158015612c4e573d6000803e3d6000fd5b5050600254612c6a92506001600160a01b0316905084836138f7565b83836001600160a01b03167f217ea3989b9d3112d2133a930216f444b7fbcaeaa4d5bc0220d099fdc928e71e83604051612ca691815260200190565b60405180910390a360015460405163463d31d760e11b8152600481018690526000916001600160a01b031690638c7a63ae9060240160c060405180830381865afa158015612cf8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d1c91906142d3565b90508060200151816040015103612dc257600154604051630852cd8d60e31b8152600481018790526001600160a01b03909116906342966c6890602401600060405180830381600087803b158015612d7357600080fd5b505af1158015612d87573d6000803e3d6000fd5b50506040518792506001600160a01b03871691507f1af5163f80e79b5e554f61e1d052084d3a3fe1166e42a265798c4e2ddce8ffa290600090a35b50505050610f54613132565b60008051602061456f833981519152612de681613158565b612dee61300a565b6000828152601060205260409020600281015460ff16612e205760405162461bcd60e51b8152600401610bb59061442a565b6002810154610100900460ff1615612e8a5760405162461bcd60e51b815260206004820152602760248201527f506f6f6c3a205969656c64207769746864726177616c20616c726561647920616044820152661c1c1c9bdd995960ca1b6064820152608401610bb5565b60028101805461ff0019166101001790558054604051849133917edf572852bfd649774474a8ac548def7b00858352899293083f95fb7e67376e916124d79190815260200190565b60008051602061464f833981519152612eea81613158565b60008311612f0a5760405162461bcd60e51b8152600401610bb5906144be565b82821015612f5a5760405162461bcd60e51b815260206004820181905260248201527f506f6f6c3a204d6178696d756d206d757374206265203e3d206d696e696d756d6044820152606401610bb5565b6009839055600a82905560408051848152602081018490527f37e43752d3115f34391ab664a00575a88bba24e3e9dd3931a26bdcf9258090d9910160405180910390a1505050565b60006001600160e01b03198216637965db0b60e01b1480610b8457506301ffc9a760e01b6001600160e01b0319831614610b84565b60008051602061462f8339815191525460ff16156130085760405163d93c066560e01b815260040160405180910390fd5b565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080546001190161304e57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b600c54600d546000919080158061306b5750814211155b1561307c57505042600c5550600090565b600061308883426143c2565b90506130988260045485426139dc565b9350831561310a5760006130ac8584613a57565b905080600b546130bc91906143af565b600b81905560408051428152602081018590528082018890526060810192909252517fdffa723dd5780d3ee0395ec33418a7fec038ed088ff082e96ae384144364aa339181900360800190a1505b505042600c555090565b600082600019048411830215820261312b57600080fd5b5091020490565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b610f548133613ad0565b600060008051602061460f83398151915261317d848461265a565b6131fd576000848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556131b33390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610b84565b6000915050610b84565b600060008051602061460f833981519152613222848461265a565b156131fd576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610b84565b6040516001600160a01b0384811660248301528381166044830152606482018390526112f49186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050613b09565b6132f2613b7a565b60008051602061462f833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b600080831161338c5760405162461bcd60e51b815260206004820152600e60248201526d1e995c9bc81c1c9a5b98da5c185b60921b6044820152606401610bb5565b600061339c84600b546001613114565b905083600d60008282546133b091906143af565b9091555050600154604051633c173a4f60e01b81526001600160a01b038781166004830152602482018790523060448301526064820184905290911690633c173a4f906084016020604051808303816000875af1158015613415573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134399190614471565b915060008315613449578361344b565b425b60015460405163141a6b9b60e11b815260048101869052602481018390524260448201529192506001600160a01b031690632834d73690606401600060405180830381600087803b15801561349f57600080fd5b505af11580156134b3573d6000803e3d6000fd5b5050505050509392505050565b60006134ca612fd7565b600e5460ff16156134ed5760405162461bcd60e51b8152600401610bb590614257565b6134f561300a565b600083116135535760405162461bcd60e51b815260206004820152602560248201527f506f6f6c3a204465706f73697420616d6f756e74206d75737420626520706f73604482015264697469766560d81b6064820152608401610bb5565b6009548310156135b45760405162461bcd60e51b815260206004820152602660248201527f506f6f6c3a204465706f7369742062656c6f77206d696e696d756d20696e76656044820152651cdd1b595b9d60d21b6064820152608401610bb5565b600a548311156136155760405162461bcd60e51b815260206004820152602660248201527f506f6f6c3a204465706f7369742061626f7665206d6178696d756d20696e76656044820152651cdd1b595b9d60d21b6064820152608401610bb5565b61361d613054565b50600b54600061362f85836001613114565b905084600d600082825461364391906143af565b9091555050600254613660906001600160a01b0316853088613283565b600154604051633c173a4f60e01b81526001600160a01b038681166004830152602482018890523060448301526064820184905290911690633c173a4f906084016020604051808303816000875af11580156136c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136e49190614471565b925082846001600160a01b03167f73a19dd210f1a7f902193214c0ee91dd35ee5b4d920cba8d519eca65a7b488ca8760405161372291815260200190565b60405180910390a35050610b84613132565b306001600160a01b037f000000000000000000000000177a4358e0b3ff55515ca67d2751ee4b78e1d0f31614806137bb57507f000000000000000000000000177a4358e0b3ff55515ca67d2751ee4b78e1d0f36001600160a01b03166137af6000805160206145cf833981519152546001600160a01b031690565b6001600160a01b031614155b156130085760405163703e46dd60e11b815260040160405180910390fd5b6000805160206145af83398151915261159081613158565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561384b575060408051601f3d908101601f1916820190925261384891810190614471565b60015b61387357604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610bb5565b6000805160206145cf83398151915281146138a457604051632a87526960e21b815260048101829052602401610bb5565b61132d8383613baa565b306001600160a01b037f000000000000000000000000177a4358e0b3ff55515ca67d2751ee4b78e1d0f316146130085760405163703e46dd60e11b815260040160405180910390fd5b6040516001600160a01b0383811660248301526044820183905261132d91859182169063a9059cbb906064016132b8565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610b84565b613008613c00565b613961613c00565b613008613c25565b60008051602061460f8339815191526000613983846112b6565b600085815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b6000610b8482600161016d613114565b600082821115806139eb575084155b806139f4575083155b15613a0157506000613a4f565b6000613a0d84846143c2565b90506000613a34670de0b6b3a7640000613a2c6201518061016d61448a565b849190613114565b9050613a4a81613a448989613c2d565b90613c2d565b925050505b949350505050565b600081600003613a6957506000610b84565b613a80836b033b2e3c9fd0803ce800000084613114565b9392505050565b613a8f612fd7565b60008051602061462f833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2583361332c565b613ada828261265a565b6115905760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610bb5565b600080602060008451602086016000885af180613b2c576040513d6000823e3d81fd5b50506000513d91508115613b44578060011415613b51565b6001600160a01b0384163b155b156112f457604051635274afe760e01b81526001600160a01b0385166004820152602401610bb5565b60008051602061462f8339815191525460ff1661300857604051638dfc202b60e01b815260040160405180910390fd5b613bb382613c42565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115613bf85761132d8282613ca7565b611590613d1d565b613c08613d3c565b61300857604051631afcd79f60e31b815260040160405180910390fd5b613132613c00565b6000613a808383670de0b6b3a7640000613114565b806001600160a01b03163b600003613c7857604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610bb5565b6000805160206145cf83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051613cc49190614552565b600060405180830381855af49150503d8060008114613cff576040519150601f19603f3d011682016040523d82523d6000602084013e613d04565b606091505b5091509150613d14858383613d56565b95945050505050565b34156130085760405163b398979f60e01b815260040160405180910390fd5b6000613d46613928565b54600160401b900460ff16919050565b606082613d6b57613d6682613db2565b613a80565b8151158015613d8257506001600160a01b0384163b155b15613dab57604051639996b31560e01b81526001600160a01b0385166004820152602401610bb5565b5092915050565b805115613dc25780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b600060208284031215613ded57600080fd5b81356001600160e01b031981168114613a8057600080fd5b600060208284031215613e1757600080fd5b5035919050565b6001600160a01b0381168114610f5457600080fd5b60008060408385031215613e4657600080fd5b823591506020830135613e5881613e1e565b809150509250929050565b60008083601f840112613e7557600080fd5b50813567ffffffffffffffff811115613e8d57600080fd5b6020830191508360208260051b8501011115613ea857600080fd5b9250929050565b600080600080600060608688031215613ec757600080fd5b853567ffffffffffffffff80821115613edf57600080fd5b613eeb89838a01613e63565b90975095506020880135915080821115613f0457600080fd5b50613f1188828901613e63565b96999598509660400135949350505050565b60ff81168114610f5457600080fd5b600080600080600060a08688031215613f4a57600080fd5b85359450602086013593506040860135613f6381613f23565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613fba57613fba613f7b565b604052919050565b60008060408385031215613fd557600080fd5b8235613fe081613e1e565b915060208381013567ffffffffffffffff80821115613ffe57600080fd5b818601915086601f83011261401257600080fd5b81358181111561402457614024613f7b565b614036601f8201601f19168501613f91565b9150808252878482850101111561404c57600080fd5b80848401858401376000848284010152508093505050509250929050565b6000806020838503121561407d57600080fd5b823567ffffffffffffffff81111561409457600080fd5b6140a085828601613e63565b90969095509350505050565b60006101c0820190508f82528e60208301528d60408301528c60608301528b60808301528a60a08301528960c08301528860e08301528761010083015260018060a01b03871661012083015260ff86166101408301526141186101608301866001600160a01b03169052565b8315156101808301526001600160a01b0383166101a08301529f9e505050505050505050505050505050565b6000806000806000806000806000806101408b8d03121561416457600080fd5b8a3561416f81613e1e565b995060208b013561417f81613e1e565b985060408b013561418f81613e1e565b975060608b0135965060808b0135955060a08b0135945060c08b0135935060e08b013592506101008b013591506101208b01356141cb81613e1e565b809150509295989b9194979a5092959850565b60005b838110156141f95781810151838201526020016141e1565b50506000910152565b60208152600082518060208401526142218160408501602087016141de565b601f01601f19169190910160400192915050565b6000806040838503121561424857600080fd5b50508035926020909101359150565b6020808252600e908201526d2837b7b61d1029b43aba3237bbb760911b604082015260600190565b60006020828403121561429157600080fd5b8151613a8081613e1e565b6020808252601f908201527f506f6f6c3a2043616c6c657220646f6573206e6f74206f776e20746f6b656e00604082015260600190565b600060c082840312156142e557600080fd5b60405160c0810181811067ffffffffffffffff8211171561430857614308613f7b565b604052825161431681613e1e565b808252506020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a08201528091505092915050565b60208082526023908201527f506f6f6c3a20546f6b656e2062656c6f6e677320746f20616e6f7468657220706040820152621bdbdb60ea1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610b8457610b84614399565b81810381811115610b8457610b84614399565b6000826143f257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561441f57600080fd5b8135613a8081613e1e565b60208082526027908201527f506f6f6c3a204e6f207969656c64207769746864726177616c207265717565736040820152661d08199bdd5b9960ca1b606082015260800190565b60006020828403121561448357600080fd5b5051919050565b8082028115828204841417610b8457610b84614399565b6000602082840312156144b357600080fd5b8151613a8081613f23565b60208082526029908201527f506f6f6c3a204d696e696d756d20696e766573746d656e74206d75737420626560408201526820706f73697469766560b81b606082015260800190565b6020808252602b908201527f506f6f6c3a204e6f207072696e636970616c207769746864726177616c20726560408201526a1c5d595cdd08199bdd5b9960aa1b606082015260800190565b600082516145648184602087016141de565b919091019291505056fe408a36151f841709116a4e8aca4e0202874f7f54687dcb863b1ea4672dc9d8cf2344277e405079ec07749d374ba0b5862a4e45a6a05ac889dbb4a991c6f9354d189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc42802a37d17e698ec3d88f7a6917f1f5a6abb4d99a8f4255c389e56d10218a6402dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a2646970667358221220461170d4a80fffc279a4852cad0c0b772a71ce9617956568369e195fb441b2b864736f6c63430008160033
🤖 Code Reader

Generate instant answers for your smart contract questions using Al Models. Read more.

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.