0 txs
1.9k calls
constructor
No constructor.
functions
accumulativeDividendOf
viewfunction accumulativeDividendOf(address _owner) view returns (uint256)
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
assetFundWallet
viewfunction assetFundWallet() view returns (address)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
calcWithdrawCompoundByWeights
viewfunction calcWithdrawCompoundByWeights(uint256 dividends, uint256 compoundWeight, uint256 withdrawWeight) view returns (uint256 compound, uint256 withdraw)
compoundedDividends
viewfunction compoundedDividends(address) view returns (uint256)
compoundInvites_compoundPerc100
viewfunction compoundInvites_compoundPerc100() view returns (uint256)
compoundInvites_lastInviteDate
viewfunction compoundInvites_lastInviteDate(address) view returns (uint256)
compoundInvites_periodSec
viewfunction compoundInvites_periodSec() view returns (uint256)
currentDayMidnight
viewfunction currentDayMidnight() view returns (uint256)
curWithdrawRequestByUser
viewfunction curWithdrawRequestByUser(address) view returns (uint256)
curWithdrawRequestIndex
viewfunction curWithdrawRequestIndex() view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
depositFeePct100
viewfunction depositFeePct100() view returns (uint256)
depositFeeV2u1Pct100
viewfunction depositFeeV2u1Pct100() view returns (uint256)
depositFeeWallet
viewfunction depositFeeWallet() view returns (address)
depositLockLeftSec
viewfunction depositLockLeftSec(address user) view returns (uint256)
depositLockTimeSec
viewfunction depositLockTimeSec() view returns (uint256)
depositLockTimeSecForUser
viewfunction depositLockTimeSecForUser(address) view returns (uint256)
depositOnlyWithRef
viewfunction depositOnlyWithRef() view returns (bool)
devFeePct100
viewfunction devFeePct100() view returns (uint256)
devWallet
viewfunction devWallet() view returns (address)
dividendOf
viewfunction dividendOf(address _owner) view returns (uint256)
filledWithdrawRequestCountByDay
viewfunction filledWithdrawRequestCountByDay(uint256) view returns (uint256)
filledWithdrawRequestTotal
viewfunction filledWithdrawRequestTotal() view returns (uint256)
filledWithdrawRequestTotalByDay
viewfunction filledWithdrawRequestTotalByDay(uint256) view returns (uint256)
get_magnifiedDividendCorrections
viewfunction get_magnifiedDividendCorrections(address addr) view returns (int256)
get_magnifiedDividendPerShare
viewfunction get_magnifiedDividendPerShare() view returns (uint256)
get_maxUserSupply
viewfunction get_maxUserSupply(address addr) view returns (uint256)
getActiveWithdrawRequestForUserAt
viewfunction getActiveWithdrawRequestForUserAt(address user, uint256 pos) view returns (tuple)
getActiveWithdrawRequests
viewfunction getActiveWithdrawRequests() view returns (uint256)
getActiveWithdrawRequestsForUser
viewfunction getActiveWithdrawRequestsForUser(address user) view returns (uint256)
getInitializedVersion
viewfunction getInitializedVersion() view returns (uint8)
getUserReferralLeft
viewfunction getUserReferralLeft(address user) view returns (uint256)
getUserReferralLimit
viewfunction getUserReferralLimit(address user) view returns (uint256)
getVersion
viewfunction getVersion() view returns (uint256, uint256, uint256)
getWithdrawRequestForUserAt
viewfunction getWithdrawRequestForUserAt(address user, uint256 pos) view returns (tuple)
getWithdrawRequestsQueueLength
viewfunction getWithdrawRequestsQueueLength() view returns (uint256)
ignoreMaxTotalSupplyLimitOnCompound
viewfunction ignoreMaxTotalSupplyLimitOnCompound() view returns (bool)
lottery
viewfunction lottery() view returns (address)
lotteryFeePct1000
viewfunction lotteryFeePct1000() view returns (uint256)
maxTotalSupply
viewfunction maxTotalSupply() view returns (uint256)
maxUserDeposit
viewfunction maxUserDeposit() view returns (uint256)
minUserDeposit
viewfunction minUserDeposit() view returns (uint256)
minUserFirstDeposit
viewfunction minUserFirstDeposit() view returns (uint256)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
refereeCount
viewfunction refereeCount(address) view returns (uint256)
referralBonus
viewfunction referralBonus(address) view returns (uint256)
referralFeePct1000
viewfunction referralFeePct1000() view returns (uint256)
removedReferralForUser
viewfunction removedReferralForUser(address) view returns (uint256)
symbol
viewfunction symbol() view returns (string)
token
viewfunction token() view returns (address)
tokenDec
viewfunction tokenDec() view returns (uint8)
tokenDecCoef
viewfunction tokenDecCoef() view returns (uint256)
totalDistributedDividends
viewfunction totalDistributedDividends() view returns (uint256)
totalReferralForLevelLimit
viewfunction totalReferralForLevelLimit(uint256) view returns (uint256)
totalReferralForUserLimit
viewfunction totalReferralForUserLimit(address) view returns (uint256)
totalReferralPerUserLimit
viewfunction totalReferralPerUserLimit() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
totalUsers
viewfunction totalUsers() view returns (uint256)
totalUsersLimit
viewfunction totalUsersLimit() view returns (uint256)
totalUsersLimitExclude
viewfunction totalUsersLimitExclude(address) view returns (bool)
userEnterDate
viewfunction userEnterDate(address) view returns (uint256)
userReferralLevel
viewfunction userReferralLevel(address) view returns (uint256)
userReferrer
viewfunction userReferrer(address) view returns (address)
userVersion
viewfunction userVersion(address) view returns (uint8)
withdrawableDividendOf
viewfunction withdrawableDividendOf(address _owner) view returns (uint256)
withdrawnDividendOf
viewfunction withdrawnDividendOf(address _owner) view returns (uint256)
withdrawPoolBalance
viewfunction withdrawPoolBalance() view returns (uint256)
withdrawRequestCountByDay
viewfunction withdrawRequestCountByDay(uint256) view returns (uint256)
withdrawRequestQueue
viewfunction withdrawRequestQueue(uint256) view returns (address user, uint256 amount, uint256 createdAt, uint256 filledAt)
withdrawRequestQueueIndexByUser
viewfunction withdrawRequestQueueIndexByUser(address, uint256) view returns (uint256)
withdrawRequestsBalanceByUser
viewfunction withdrawRequestsBalanceByUser(address) view returns (uint256)
withdrawRequestsTotal
viewfunction withdrawRequestsTotal() view returns (uint256)
withdrawRequestTotalByDay
viewfunction withdrawRequestTotalByDay(uint256) view returns (uint256)
addReferralForUsers
nonpayablefunction addReferralForUsers(address[] user, uint256 amount)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
changeTotalUsers
nonpayablefunction changeTotalUsers(bool add, uint256 value)
compoundDividend
nonpayablefunction compoundDividend()
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
deposit
nonpayablefunction deposit(uint256 amountUsd)
depositWithRef
nonpayablefunction depositWithRef(uint256 amountUsd, address referrer)
distributeDividends
payablefunction distributeDividends() payable
distributeTokenDividends
nonpayablefunction distributeTokenDividends(uint256 amountE18)
distributeTokenDividendsUsd
nonpayablefunction distributeTokenDividendsUsd(uint256 amountUsd)
fillWithdrawRequests
nonpayablefunction fillWithdrawRequests(uint256 amountE18, uint256 maxWithdrawRequests)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
initialize
nonpayablefunction initialize(address token_, address assetFund_, address devWalletAddr_, address depositFeeWallet_)
initializeV2u1
nonpayablefunction initializeV2u1(address lottery_, uint256 totalUsers_, uint256 totalUsersLimit_)
initializeV2u2
nonpayablefunction initializeV2u2()
initializeV2u6
nonpayablefunction initializeV2u6(uint8 tokenDec_)
removeReferralForUsers
nonpayablefunction removeReferralForUsers(address[] user, int256 amount)
renounceOwnership
nonpayablefunction renounceOwnership()
runLottery
nonpayablefunction runLottery()
set_assetFundWallet
nonpayablefunction set_assetFundWallet(address addr)
set_compoundedDividends
nonpayablefunction set_compoundedDividends(address[] user, uint256[] values)
set_compoundInvites_compoundPerc100
nonpayablefunction set_compoundInvites_compoundPerc100(uint256 value)
set_compoundInvites_periodSec
nonpayablefunction set_compoundInvites_periodSec(uint256 value)
set_depositFee
nonpayablefunction set_depositFee(uint256 value)
set_depositFeeV2u1Pct100
nonpayablefunction set_depositFeeV2u1Pct100(uint256 value)
set_depositFeeWallet
nonpayablefunction set_depositFeeWallet(address addr)
set_depositLockTimeSec
nonpayablefunction set_depositLockTimeSec(uint256 value)
set_depositLockTimeSecForUser
nonpayablefunction set_depositLockTimeSecForUser(address[] user, uint256 value)
set_depositOnlyWithRef
nonpayablefunction set_depositOnlyWithRef(bool value)
set_devFee
nonpayablefunction set_devFee(uint256 value)
set_devWallet
nonpayablefunction set_devWallet(address addr)
set_ignoreMaxTotalSupplyLimit
nonpayablefunction set_ignoreMaxTotalSupplyLimit(bool value)
set_lottery
nonpayablefunction set_lottery(address value)
set_lotteryFeePct1000
nonpayablefunction set_lotteryFeePct1000(uint256 value)
set_maxTotalSupply
nonpayablefunction set_maxTotalSupply(uint256 value)
set_maxUserDeposit
nonpayablefunction set_maxUserDeposit(uint256 value)
set_maxUserSupply
nonpayablefunction set_maxUserSupply(address account, uint256 value)
set_minUserDeposit
nonpayablefunction set_minUserDeposit(uint256 value)
set_minUserFirstDeposit
nonpayablefunction set_minUserFirstDeposit(uint256 value)
set_paused
nonpayablefunction set_paused(bool value)
set_referralFeePct1000
nonpayablefunction set_referralFeePct1000(uint256 value)
set_token
nonpayablefunction set_token(address value)
set_tokenDec
nonpayablefunction set_tokenDec(uint8 value)
set_totalReferralForLevelLimit
nonpayablefunction set_totalReferralForLevelLimit(uint256 level, uint256 value)
set_totalReferralForUserLimit
nonpayablefunction set_totalReferralForUserLimit(address[] user, uint256 value)
set_totalReferralPerUserLimit
nonpayablefunction set_totalReferralPerUserLimit(uint256 value)
set_totalUsersLimit
nonpayablefunction set_totalUsersLimit(uint256 value)
set_totalUsersLimitExclude
nonpayablefunction set_totalUsersLimitExclude(address[] user, bool value)
set_usersVersion
nonpayablefunction set_usersVersion(address[] user, uint8 version, bool adjustTotalUsers)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
transferTokensFromContract
nonpayablefunction transferTokensFromContract(address token, address to, uint256 amountUsd)
transferUser
nonpayablefunction transferUser(address from, address to)
transferUserFix
nonpayablefunction transferUserFix(address from, address to)
transferWithdrawPoolBalance
nonpayablefunction transferWithdrawPoolBalance(address to, uint256 amountE18)
withdrawAllDeposit
nonpayablefunction withdrawAllDeposit()
withdrawDeposit
nonpayablefunction withdrawDeposit(uint256 amountE18)
withdrawDividend
nonpayablefunction withdrawDividend()
withdrawDividendAndCompoundByWeights
nonpayablefunction withdrawDividendAndCompoundByWeights(uint256 compoundWeight, uint256 withdrawWeight)
withdrawDividendAndCompoundRest
nonpayablefunction withdrawDividendAndCompoundRest(uint256 withdrawAmountE18)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
DividendCompounded2
event DividendCompounded2(address indexed to, uint256 weiAmount)
DividendsDistributed
event DividendsDistributed(address indexed from, uint256 weiAmount)
DividendWithdrawn
event DividendWithdrawn(address indexed to, uint256 weiAmount)
DividendWithdrawn2
event DividendWithdrawn2(address indexed to, uint256 weiAmount)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b5061589c80620000216000396000f3fe6080604052600436106107f15760003560e01c80637b10c82611610409578063aea7d1c11161021e578063d969f1051161012e578063f2fde38b116100b6578063f826361111610085578063f826361114611915578063f843644e14611935578063f8c8765e14611955578063f95dadd014611975578063fc0c546a146119a257600080fd5b8063f2fde38b1461187b578063f326f7571461189b578063f55ad3f0146118c8578063f8025fdb146118e857600080fd5b8063defd1411116100fd578063defd1411146117e6578063e3d1d5bf146117fb578063e3f986071461181b578063e5b52e9a1461183b578063eac44b201461185b57600080fd5b8063d969f10514611756578063dd62ed3e14611776578063dd791ce514611796578063de526578146117b057600080fd5b8063be3bc88b116101b1578063c801dfc111610180578063c801dfc1146116b1578063c8dd5ee5146116c6578063cc63a3c9146116f3578063d5a2ab5314611713578063d854d7231461172957600080fd5b8063be3bc88b14611638578063be7003d71461164e578063bff1f9e11461167b578063c2edfd1a1461169157600080fd5b8063b451f0db116101ed578063b451f0db146115b9578063b6b55f25146115d3578063b9cf8e70146115f3578063ba13a5721461161357600080fd5b8063aea7d1c114611531578063aed4954614611561578063b0c7ce3714611581578063b3c65015146115a157600080fd5b80639d5deef911610319578063a6dcf7d7116102ac578063aa9c5fc41161027b578063aa9c5fc414611485578063aad976bb1461149b578063aafd847a146114bb578063ab1007c5146114f1578063ad061ecf1461151157600080fd5b8063a6dcf7d714611404578063a8b9d24014611424578063a9059cbb14611444578063aa73086c1461146457600080fd5b8063a3e9b91f116102e8578063a3e9b91f14611381578063a457c2d7146113ae578063a6b8347e146113ce578063a6c28e53146113e457600080fd5b80639d5deef9146112fe5780639df21444146113145780639e867dcd14611341578063a248a3991461136157600080fd5b80638ffddbf11161039c57806392d6c21a1161036b57806392d6c21a1461125457806393fde888146112745780639422c1321461128a57806395d89b411461129f5780639bd0ebb5146112b457600080fd5b80638ffddbf1146111c757806390648626146111e757806391b89fba146112075780639233c2161461122757600080fd5b80638146bc26116103d85780638146bc261461114657806384ad9fe51461115c5780638da5cb5b146111895780638ea5220f146111a757600080fd5b80637b10c826146110ba5780637c3fcc38146110da5780637ce167ae146111105780637f4fb2fd1461113057600080fd5b8063395093511161060a5780635674a3ed1161051a5780636a474002116104a2578063715018a611610471578063715018a61461104e578063718a2db61461106357806373741b711461107857806373cc25111461108e57806379b8f3a2146110a457600080fd5b80636a47400214610fe35780636b24d76214610ff85780636c0a960c1461100e57806370a082311461102e57600080fd5b80635b6a024a116104e95780635b6a024a14610f345780635c975abb14610f5457806362ec140c14610f6e578063639cfd0d14610fa35780636659529414610fc357600080fd5b80635674a3ed14610ebf578063587024d214610ed45780635ac089ff14610ef45780635b0cd7cc14610f1457600080fd5b80634468e8741161059d5780634c7e77ed1161056c5780634c7e77ed14610e275780634de1dbd814610e545780634de8ff2114610e745780634e02f11c14610e8957806354bd05cf14610e9f57600080fd5b80634468e87414610d7d578063472be74a14610daa5780634795347f14610dd7578063494a963a14610df757600080fd5b80633ebf06f4116105d95780633ebf06f414610cfb5780634251beca14610d1157806342e5b9f114610d3157806344649a4f14610d4757600080fd5b80633950935114610c865780633ac2b4b314610ca65780633bb64cf214610cbb5780633d16b9de14610cdb57600080fd5b80631a420636116107055780632a0e00c311610698578063313ce56711610667578063313ce56714610bbc578063318f35db14610bde57806333289a4614610bf45780633413a3ac14610c14578063343f101314610c7057600080fd5b80632a0e00c314610b505780632ab4d05214610b705780632acbac5314610b865780632f9737d014610b9c57600080fd5b806323b872dd116106d457806323b872dd14610ada57806323cfa3db14610afa57806327ce014714610b1a578063292c23ba14610b3a57600080fd5b80631a42063614610a425780631e990e1314610a7a57806321553f8c14610a9a57806321d375c014610aba57600080fd5b80630d8e6e2c116107885780631705a0bc116107575780631705a0bc1461099357806317ccdd1c146109b357806317e064d0146109e057806318160ddd14610a0d578063199ab15e14610a2257600080fd5b80630d8e6e2c146108fa5780630f18c908146109265780630ff5ce721461094657806316ddc3b31461096657600080fd5b806307509e91116107c457806307509e911461086a57806307947a451461088a578063095ea7b3146108aa5780630c4113a8146108da57600080fd5b8063036fd49a146107f657806303c833021461081e57806306fdde0314610828578063072f38341461084a575b600080fd5b34801561080257600080fd5b5061080b6119c2565b6040519081526020015b60405180910390f35b6108266119e1565b005b34801561083457600080fd5b5061083d611a1e565b6040516108159190615447565b34801561085657600080fd5b5061082661086536600461542c565b611ab0565b34801561087657600080fd5b506108266108853660046151d4565b611ae3565b34801561089657600080fd5b506108266108a53660046153de565b611b3e565b3480156108b657600080fd5b506108ca6108c53660046150e5565b611b74565b6040519015158152602001610815565b3480156108e657600080fd5b506108266108f536600461542c565b611b8e565b34801561090657600080fd5b506040805160028082526008602083015291810191909152606001610815565b34801561093257600080fd5b506108266109413660046153a0565b611c44565b34801561095257600080fd5b5061082661096136600461527c565b611c51565b34801561097257600080fd5b5061080b6109813660046153a0565b60ae6020526000908152604090205481565b34801561099f57600080fd5b506108266109ae366004614ff2565b611c6c565b3480156109bf57600080fd5b5061080b6109ce366004614ff2565b60c06020526000908152604090205481565b3480156109ec57600080fd5b5061080b6109fb366004614ff2565b60a96020526000908152604090205481565b348015610a1957600080fd5b5060355461080b565b348015610a2e57600080fd5b50610826610a3d3660046151d4565b611c96565b348015610a4e57600080fd5b50609c54610a62906001600160a01b031681565b6040516001600160a01b039091168152602001610815565b348015610a8657600080fd5b50610826610a9536600461517d565b611d01565b348015610aa657600080fd5b50610826610ab5366004615111565b611d7a565b348015610ac657600080fd5b50610826610ad53660046153a0565b611dfd565b348015610ae657600080fd5b506108ca610af53660046150a4565b611e0a565b348015610b0657600080fd5b50610826610b153660046151d4565b611e2e565b348015610b2657600080fd5b5061080b610b35366004614ff2565b611e99565b348015610b4657600080fd5b5061080b60c45481565b348015610b5c57600080fd5b50610826610b6b3660046153a0565b611ef2565b348015610b7c57600080fd5b5061080b60a05481565b348015610b9257600080fd5b5061080b60bc5481565b348015610ba857600080fd5b50610826610bb736600461527c565b611eff565b348015610bc857600080fd5b5060125b60405160ff9091168152602001610815565b348015610bea57600080fd5b5061080b60b75481565b348015610c0057600080fd5b50610826610c0f3660046153a0565b611f1a565b348015610c2057600080fd5b50610c34610c2f3660046150e5565b61220b565b604051610815919081516001600160a01b0316815260208083015190820152604080830151908201526060918201519181019190915260800190565b348015610c7c57600080fd5b5061080b60c35481565b348015610c9257600080fd5b506108ca610ca13660046150e5565b6122f0565b348015610cb257600080fd5b50610826612312565b348015610cc757600080fd5b5061080b610cd6366004614ff2565b6123b0565b348015610ce757600080fd5b50610826610cf636600461500f565b6123fc565b348015610d0757600080fd5b5061080b60a55481565b348015610d1d57600080fd5b50610826610d2c3660046152b6565b612459565b348015610d3d57600080fd5b5061080b60b05481565b348015610d5357600080fd5b5061080b610d62366004614ff2565b6001600160a01b031660009081526098602052604090205490565b348015610d8957600080fd5b5061080b610d98366004614ff2565b60b96020526000908152604090205481565b348015610db657600080fd5b5061080b610dc5366004614ff2565b60ba6020526000908152604090205481565b348015610de357600080fd5b50610826610df23660046153a0565b6124a0565b348015610e0357600080fd5b506108ca610e12366004614ff2565b60bd6020526000908152604090205460ff1681565b348015610e3357600080fd5b5061080b610e42366004614ff2565b60c16020526000908152604090205481565b348015610e6057600080fd5b50610826610e6f3660046153a0565b6124ad565b348015610e8057600080fd5b50610826612727565b348015610e9557600080fd5b5061080b60be5481565b348015610eab57600080fd5b50610826610eba3660046153a0565b612733565b348015610ecb57600080fd5b50610826612740565b348015610ee057600080fd5b50610826610eef3660046152d4565b61287a565b348015610f0057600080fd5b50610826610f0f3660046153de565b612948565b348015610f2057600080fd5b50610826610f2f3660046150a4565b612962565b348015610f4057600080fd5b50610826610f4f3660046153a0565b6129ed565b348015610f6057600080fd5b5060c7546108ca9060ff1681565b348015610f7a57600080fd5b50610f8e610f89366004615400565b6129fa565b60408051928352602083019190915201610815565b348015610faf57600080fd5b50610826610fbe3660046153a0565b612a49565b348015610fcf57600080fd5b50610826610fde366004614ff2565b612a56565b348015610fef57600080fd5b50610826612a80565b34801561100457600080fd5b5061080b60a25481565b34801561101a57600080fd5b50610826611029366004615220565b612a96565b34801561103a57600080fd5b5061080b611049366004614ff2565b612bc0565b34801561105a57600080fd5b50610826612bdb565b34801561106f57600080fd5b5061080b612bed565b34801561108457600080fd5b5061080b60c95481565b34801561109a57600080fd5b5061080b60a35481565b3480156110b057600080fd5b5061080b60a65481565b3480156110c657600080fd5b506108266110d536600461527c565b612bff565b3480156110e657600080fd5b50610a626110f5366004614ff2565b60b4602052600090815260409020546001600160a01b031681565b34801561111c57600080fd5b5061082661112b3660046150e5565b612c25565b34801561113c57600080fd5b5061080b60ac5481565b34801561115257600080fd5b5061080b60b85481565b34801561116857600080fd5b5061080b611177366004614ff2565b60c26020526000908152604090205481565b34801561119557600080fd5b506065546001600160a01b0316610a62565b3480156111b357600080fd5b50609d54610a62906001600160a01b031681565b3480156111d357600080fd5b5061080b6111e2366004614ff2565b612c49565b3480156111f357600080fd5b506108266112023660046153a0565b612c77565b34801561121357600080fd5b5061080b611222366004614ff2565b612c84565b34801561123357600080fd5b5061080b6112423660046153a0565b60ad6020526000908152604090205481565b34801561126057600080fd5b5061080b61126f366004614ff2565b612c8f565b34801561128057600080fd5b5061080b60b65481565b34801561129657600080fd5b5060a45461080b565b3480156112ab57600080fd5b5061083d612d37565b3480156112c057600080fd5b506112d46112cf3660046153a0565b612d46565b604080516001600160a01b0390951685526020850193909352918301526060820152608001610815565b34801561130a57600080fd5b5061080b60cb5481565b34801561132057600080fd5b5061080b61132f366004614ff2565b60b36020526000908152604090205481565b34801561134d57600080fd5b5061082661135c3660046153a0565b612d8a565b34801561136d57600080fd5b5061082661137c3660046153de565b612d97565b34801561138d57600080fd5b5061080b61139c366004614ff2565b60a86020526000908152604090205481565b3480156113ba57600080fd5b506108ca6113c93660046150e5565b612f8b565b3480156113da57600080fd5b5061080b60c55481565b3480156113f057600080fd5b5061080b6113ff366004614ff2565b613006565b34801561141057600080fd5b5061082661141f3660046153a0565b6130b0565b34801561143057600080fd5b5061080b61143f366004614ff2565b6130bc565b34801561145057600080fd5b506108ca61145f3660046150e5565b6130e8565b34801561147057600080fd5b5060b1546108ca90600160a81b900460ff1681565b34801561149157600080fd5b5061080b609f5481565b3480156114a757600080fd5b506108266114b63660046151d4565b6130f6565b3480156114c757600080fd5b5061080b6114d6366004614ff2565b6001600160a01b031660009081526099602052604090205490565b3480156114fd57600080fd5b5061082661150c3660046153a0565b613298565b34801561151d57600080fd5b5061082661152c3660046153a0565b6132a5565b34801561153d57600080fd5b50610bcc61154c366004614ff2565b60b26020526000908152604090205460ff1681565b34801561156d57600080fd5b50610c3461157c3660046150e5565b6132b2565b34801561158d57600080fd5b5061082661159c3660046153a0565b613310565b3480156115ad57600080fd5b5060005460ff16610bcc565b3480156115c557600080fd5b5060b1546108ca9060ff1681565b3480156115df57600080fd5b506108266115ee3660046153a0565b61340f565b3480156115ff57600080fd5b5061082661160e366004614ff2565b6134bd565b34801561161f57600080fd5b5060b154610a629061010090046001600160a01b031681565b34801561164457600080fd5b5061080b60af5481565b34801561165a57600080fd5b5061080b611669366004614ff2565b60c86020526000908152604090205481565b34801561168757600080fd5b5061080b60bb5481565b34801561169d57600080fd5b5061080b6116ac3660046150e5565b6134ed565b3480156116bd57600080fd5b5060975461080b565b3480156116d257600080fd5b5061080b6116e1366004614ff2565b60c66020526000908152604090205481565b3480156116ff57600080fd5b5061082661170e366004614ff2565b61351e565b34801561171f57600080fd5b5061080b609e5481565b34801561173557600080fd5b5061080b611744366004614ff2565b60b56020526000908152604090205481565b34801561176257600080fd5b50609b54610a62906001600160a01b031681565b34801561178257600080fd5b5061080b61179136600461500f565b613548565b3480156117a257600080fd5b5060ca54610bcc9060ff1681565b3480156117bc57600080fd5b5061080b6117cb366004614ff2565b6001600160a01b0316600090815260a1602052604090205490565b3480156117f257600080fd5b50610826613573565b34801561180757600080fd5b5061082661181636600461500f565b61357f565b34801561182757600080fd5b506108266118363660046153a0565b613933565b34801561184757600080fd5b506108266118563660046150e5565b613940565b34801561186757600080fd5b506108266118763660046153a0565b613a17565b34801561188757600080fd5b50610826611896366004614ff2565b613a24565b3480156118a757600080fd5b5061080b6118b63660046153a0565b60bf6020526000908152604090205481565b3480156118d457600080fd5b506108266118e3366004614ff2565b613a9a565b3480156118f457600080fd5b5061080b6119033660046153a0565b60aa6020526000908152604090205481565b34801561192157600080fd5b506108266119303660046153b9565b613ac4565b34801561194157600080fd5b506108266119503660046153a0565b613f6c565b34801561196157600080fd5b50610826611970366004615048565b613f79565b34801561198157600080fd5b5061080b6119903660046153a0565b60ab6020526000908152604090205481565b3480156119ae57600080fd5b50609a54610a62906001600160a01b031681565b6000620151806119d281426155c5565b6119dc91906156d5565b905090565b60405162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5c1c1bdc9d1959609a1b60448201526064015b60405180910390fd5b606060368054611a2d90615784565b80601f0160208091040260200160405190810160405280929190818152602001828054611a5990615784565b8015611aa65780601f10611a7b57610100808354040283529160200191611aa6565b820191906000526020600020905b815481529060010190602001808311611a8957829003601f168201915b5050505050905090565b611ab8614105565b60ca805460ff191660ff8316179055611ad281601261574a565b611add90600a61562a565b60cb5550565b611aeb614105565b60005b82811015611b3857611b26848483818110611b0b57611b0b61580d565b9050602002016020810190611b209190614ff2565b8361415f565b80611b30816157bf565b915050611aee565b50505050565b6000611b49336130bc565b90508015611b6f57600080611b5f8386866129fa565b91509150611b6c816124ad565b50505b505050565b600033611b82818585614187565b60019150505b92915050565b600054600490610100900460ff16158015611bb0575060005460ff8083169116105b611bcc5760405162461bcd60e51b8152600401611a15906154d3565b6000805461010060ff84811661ffff19909316929092171790915560ca805460ff1916918416919091179055611c0382601261574a565b611c0e90600a61562a565b60cb556000805461ff001916905560405160ff821681526000805160206158478339815191529060200160405180910390a15050565b611c4c614105565b60c455565b611c59614105565b60c7805460ff1916911515919091179055565b611c74614105565b609b80546001600160a01b0319166001600160a01b0392909216919091179055565b611c9e614105565b60005b82811015611b38578160c06000868685818110611cc057611cc061580d565b9050602002016020810190611cd59190614ff2565b6001600160a01b0316815260208101919091526040016000205580611cf9816157bf565b915050611ca1565b611d09614105565b60005b82811015611b38578160bd6000868685818110611d2b57611d2b61580d565b9050602002016020810190611d409190614ff2565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580611d72816157bf565b915050611d0c565b611d82614105565b60005b83811015611b6c57828282818110611d9f57611d9f61580d565b9050602002013560c16000878785818110611dbc57611dbc61580d565b9050602002016020810190611dd19190614ff2565b6001600160a01b0316815260208101919091526040016000205580611df5816157bf565b915050611d85565b611e05614105565b60c555565b600033611e188582856141d9565b611e2385858561424d565b506001949350505050565b611e36614105565b60005b82811015611b38578160c66000868685818110611e5857611e5861580d565b9050602002016020810190611e6d9190614ff2565b6001600160a01b0316815260208101919091526040016000205580611e91816157bf565b915050611e39565b6001600160a01b038116600090815260986020526040812054600160801b90611ee890611ee390611edd611ed8611ecf88612bc0565b60975490614295565b61431b565b9061432b565b614369565b611b8891906155c5565b611efa614105565b609e55565b611f07614105565b60b1805460ff1916911515919091179055565b60c75460ff1615611f3d5760405162461bcd60e51b8152600401611a159061549c565b6000611f4833612bc0565b905060008111611f9a5760405162461bcd60e51b815260206004820152601960248201527f466c65784952413a2062616c616e636520697320656d707479000000000000006044820152606401611a15565b81811015611fea5760405162461bcd60e51b815260206004820152601e60248201527f466c65784952413a20616d6f756e74206578636565642062616c616e636500006044820152606401611a15565b611ff333612c8f565b156120665760405162461bcd60e51b815260206004820152603d60248201527f466c65784952413a206465706f736974732063616e206265207769746864726160448201527f776e20616674657220746865206c6f636b20706572696f64206f6e6c790000006064820152608401611a15565b60006120706119c2565b604080516080810182523380825260208083018881524284860190815260006060860181815294815260a7845295862060a48054825460018082018555938a52958920909501949094558354908101845592865284517fe434dc35da084cf8d7e8186688ea2dacb53db7003d427af3abf351bd9d0a4e8d600490940293840180546001600160a01b0319166001600160a01b0390921691909117905590517fe434dc35da084cf8d7e8186688ea2dacb53db7003d427af3abf351bd9d0a4e8e830155517fe434dc35da084cf8d7e8186688ea2dacb53db7003d427af3abf351bd9d0a4e8f82015590517fe434dc35da084cf8d7e8186688ea2dacb53db7003d427af3abf351bd9d0a4e909091015560a6805493945090928692906121959084906155ad565b9091555050600082815260ab6020526040812080548692906121b89084906155ad565b9091555050600082815260aa602052604081208054916121d7836157bf565b909155505033600090815260a96020526040812080548692906121fb9084906155ad565b90915550611b389050338561437c565b61223f604051806080016040528060006001600160a01b031681526020016000815260200160008152602001600081525090565b6001600160a01b038316600090815260a76020908152604080832060a890925282205461226d9085906155ad565b8154811061227d5761227d61580d565b9060005260206000200154905060a4818154811061229d5761229d61580d565b600091825260209182902060408051608081018252600490930290910180546001600160a01b03168352600181015493830193909352600283015490820152600390910154606082015291505092915050565b600033611b828185856123038383613548565b61230d91906155ad565b614187565b600054600390610100900460ff16158015612334575060005460ff8083169116105b6123505760405162461bcd60e51b8152600401611a15906154d3565b6000805462278d0060c355604b60c45562ed4e0060c55560c7805460ff1916600117905561ffff191660ff83169081176101001761ff0019169091556040519081526000805160206158478339815191529060200160405180910390a150565b6000806123bc83613006565b6001600160a01b038416600090815260ba6020526040902054909150808210156123ea575060009392505050565b6123f48183615733565b949350505050565b612404614105565b6001600160a01b038083166000908152609860205260408082205492841682529020546124309161432b565b6001600160a01b0391821660009081526098602052604080822092909255929091168252812055565b612461614105565b8115612484578060bb600082825461247991906155ad565b9091555061249c9050565b8060bb60008282546124969190615733565b90915550505b5050565b6124a8614105565b60a255565b60c75460ff16156124d05760405162461bcd60e51b8152600401611a159061549c565b60006124db336130bc565b9050808211156125485760405162461bcd60e51b815260206004820152603260248201527f466c65784952413a207769746864726177416d6f756e74206d6f7265207468616044820152716e20757365722773206469766964656e647360701b6064820152608401611a15565b801561249c57600061255a82846143e0565b905082156125d7573360009081526099602052604090205461257c9084614422565b336000818152609960205260409020919091556125a19061259c85614481565b614491565b60405182815233907f3b12b2b57b25e860643242db89a89b9a8e855b7d4b534e6483b0e7f808b46ffa9060200160405180910390a25b801561267a57336000908152609960205260409020546125f79082614422565b3360009081526099602090815260408083209390935560c19052205461261d9082614422565b33600090815260c1602052604090205561264461263982614481565b60b15460ff16614563565b60405182815233907f57e25bfd34cdf9991cab370cd6b0ad360e892b3062944fb1cc8009fdb74b2c2a9060200160405180910390a25b60c35415611b6f5733600090815260c260205260408120546126ab5733600090815260b360205260409020546126bc565b33600090815260c260205260409020545b60c3549091506126cc8242615733565b10611b385760c4543360009081526099602090815260408083205460c1909252909120546126fb9060646156d5565b61270591906155c5565b10611b385733600081815260c260205260409020429055611b3890600161415f565b61273160006124ad565b565b61273b614105565b60bc55565b612748614105565b600060b160019054906101000a90046001600160a01b03166001600160a01b0316635674a3ed6040518163ffffffff1660e01b815260040160e060405180830381600087803b15801561279a57600080fd5b505af11580156127ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d29190615309565b60b154609b5460a08301519293506001600160a01b0361010090920482169263a9059cbb92919091169061280590614481565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561284b57600080fd5b505af115801561285f573d6000803e3d6000fd5b5050505061287781602001518260a0015160016147bb565b50565b600054600290610100900460ff1615801561289c575060005460ff8083169116105b6128b85760405162461bcd60e51b8152600401611a15906154d3565b6000805460b18054600860b655601960b781905560b85560be8490556001600160a01b038816610100908102610100600160b01b031990921691909117600160a81b1790915560bb86905560bc85905561ffff1990911660ff841690811790911761ff0019169091556040519081526000805160206158478339815191529060200160405180910390a150505050565b612950614105565b600091825260bf602052604090912055565b61296a614105565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044015b602060405180830381600087803b1580156129b557600080fd5b505af11580156129c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b389190615299565b6129f5614105565b60b855565b60008080612a0884866155ad565b905080612a1c578560009250925050612a41565b80612a2785886156d5565b612a3191906155c5565b9150612a3d8287615733565b9250505b935093915050565b612a51614105565b60c955565b612a5e614105565b609c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000612a8b336130bc565b9050612877816124ad565b612a9e614105565b60005b83811015611b6c578115612b575760b26000868684818110612ac557612ac561580d565b9050602002016020810190612ada9190614ff2565b6001600160a01b0316815260208101919091526040016000205460ff16612b575760bb8054906000612b0b836157bf565b91905055504260b36000878785818110612b2757612b2761580d565b9050602002016020810190612b3c9190614ff2565b6001600160a01b031681526020810191909152604001600020555b8260b26000878785818110612b6e57612b6e61580d565b9050602002016020810190612b839190614ff2565b6001600160a01b031681526020810191909152604001600020805460ff191660ff9290921691909117905580612bb8816157bf565b915050612aa1565b6001600160a01b031660009081526033602052604090205490565b612be3614105565b61273160006148b5565b60a55460a4546000916119dc91615733565b612c07614105565b60b18054911515600160a81b0260ff60a81b19909216919091179055565b612c2d614105565b6001600160a01b03909116600090815260a16020526040902055565b6001600160a01b038116600090815260a8602090815260408083205460a7909252822054611b889190615733565b612c7f614105565b60a355565b6000611b88826130bc565b6001600160a01b038116600090815260b36020526040812054612cb457506000919050565b6001600160a01b038216600090815260b36020526040812054612cd79042615733565b6001600160a01b038416600090815260c6602052604081205491925090612d005760c554612d1a565b6001600160a01b038416600090815260c660205260409020545b9050808210612d2d575060009392505050565b6123f48282615733565b606060378054611a2d90615784565b60a48181548110612d5657600080fd5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b039092169350919084565b612d92614105565b60be55565b60c75460ff1615612dba5760405162461bcd60e51b8152600401611a159061549c565b8115612deb57612dd33330612dce85614481565b614907565b8160af6000828254612de591906155ad565b90915550505b60005b60008211612dfb57505050565b81612e058161576d565b92505060a48054905060a55410612e1b57505050565b60a460a55481548110612e3057612e3061580d565b9060005260206000209060040201905060af54816001015411611b6f57600062015180808360020154612e6391906155c5565b612e6d91906156d5565b82546001840154919250612e90916001600160a01b039091169061259c90614481565b816001015460af6000828254612ea69190615733565b9091555050600182015482546001600160a01b0316600090815260a9602052604081208054909190612ed9908490615733565b909155505081546001600160a01b0316600090815260a860205260408120805491612f03836157bf565b9190505550816001015460ac6000828254612f1e91906155ad565b90915550506001820154600082815260ae602052604081208054909190612f469084906155ad565b9091555050600081815260ad60205260408120805491612f65836157bf565b909155505042600383015560a58054906000612f80836157bf565b919050555050612dee565b60003381612f998286613548565b905083811015612ff95760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401611a15565b611e238286868403614187565b6001600160a01b038116600090815260b2602052604081205460ff1661302e57506000919050565b60be546001600160a01b038316600081815260b56020908152604080832054835260bf82528083205493835260c090915281205490929161306e916155ad565b61307891906155ad565b6001600160a01b038416600090815260c86020526040902054909150808211156130a6576123f48183615733565b5060009392505050565b61287761159c826149e1565b6001600160a01b038116600090815260996020526040812054611b88906130e284611e99565b906143e0565b600033611b8281858561424d565b6130fe614105565b60005b82811015611b385760008212613177578160c860008686858181106131285761312861580d565b905060200201602081019061313d9190614ff2565b6001600160a01b03166001600160a01b03168152602001908152602001600020600082825461316c91906155ad565b909155506132869050565b6000613182836157da565b905060c8600086868581811061319a5761319a61580d565b90506020020160208101906131af9190614ff2565b6001600160a01b03166001600160a01b031681526020019081526020016000205481111561322357600060c860008787868181106131ef576131ef61580d565b90506020020160208101906132049190614ff2565b6001600160a01b03168152602081019190915260400160002055613284565b8060c8600087878681811061323a5761323a61580d565b905060200201602081019061324f9190614ff2565b6001600160a01b03166001600160a01b03168152602001908152602001600020600082825461327e9190615733565b90915550505b505b80613290816157bf565b915050613101565b6132a0614105565b60a055565b6132ad614105565b60b755565b6132e6604051806080016040528060006001600160a01b031681526020016000815260200160008152602001600081525090565b6001600160a01b038316600090815260a76020526040812080548490811061227d5761227d61580d565b60c75460ff16156133335760405162461bcd60e51b8152600401611a159061549c565b600061333e60355490565b116133815760405162461bcd60e51b8152602060048201526013602482015272466c65784952413a206e6f20686f6c6465727360681b6044820152606401611a15565b8015612877576133953330612dce84614481565b8060b060008282546133a791906155ad565b90915550506035546133d4906133c183600160801b614295565b6133cb91906155c5565b60975490614422565b60975560405181815233907fa493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d784541165119060200160405180910390a250565b60c75460ff16156134325760405162461bcd60e51b8152600401611a159061549c565b33600090815260b2602052604090205460ff166001146134b25760405162461bcd60e51b815260206004820152603560248201527f4465706f73697420776974686f757420526566657272657220617661696c61626044820152746c65206f6e6c7920666f72206f6c6420757365727360581b6064820152608401611a15565b612877816000613ac4565b6134c5614105565b60b180546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60a7602052816000526040600020818154811061350957600080fd5b90600052602060002001600091509150505481565b613526614105565b609a80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b612731610c0f33612bc0565b613587614105565b6001600160a01b038216600090815260b2602052604090205460ff166135ef5760405162461bcd60e51b815260206004820152601c60248201527f46726f6d2075736572206973206e6f7420616e20696e766573746f72000000006044820152606401611a15565b6135f881612bc0565b156136455760405162461bcd60e51b815260206004820152601d60248201527f5461726765742075736572206d75737420626520656d707479205b315d0000006044820152606401611a15565b6001600160a01b038116600090815260b2602052604090205460ff16156136ae5760405162461bcd60e51b815260206004820152601d60248201527f5461726765742075736572206d75737420626520656d707479205b325d0000006044820152606401611a15565b6001600160a01b038116600090815260996020526040902054156137145760405162461bcd60e51b815260206004820152601d60248201527f5461726765742075736572206d75737420626520656d707479205b335d0000006044820152606401611a15565b61371d82612c49565b156137745760405162461bcd60e51b815260206004820152602160248201527f536f7572636520757365722068617320776974686472617720726571756573746044820152607360f81b6064820152608401611a15565b600061377f83612bc0565b905061378c8383836149f1565b506001600160a01b03918216600081815260986020908152604080832080549587168085528285209690965584845283905560b282528083208054868552828520805460ff92831660ff1991821617909155868652825481169092556099845282852080548887528487205586865285905560a1845282852080548887528487205586865285905560b3845282852080548887528487205586865285905560b484528285208054888752848720805491909a166001600160a01b031991821617909955868652805490981690975560b5835281842080548786528386205585855284905560b9835281842080548786528386205585855284905560ba835281842080548786528386205585855284905560bd83528184208054878652838620805484169190991615151790975584845286541690955560c0815284822080548584528684205583835282905560c1815284822080548584528684205583835282905560c2815284822080548584528684205583835282905560c6815284822080548584528684205583835282905560c8905283812080549382529381209290925581529055565b61393b614105565b60c355565b613948614105565b60af548111156139b95760405162461bcd60e51b815260206004820152603660248201527f466c65784952413a207472616e7366657220616d6f756e74206578636565647360448201527520776974686472617720706f6f6c2062616c616e636560501b6064820152608401611a15565b8060af60008282546139cb9190615733565b90915550600090506139dc82614481565b609a5460405163a9059cbb60e01b81526001600160a01b0386811660048301526024820184905292935091169063a9059cbb9060440161299b565b613a1f614105565b609f55565b613a2c614105565b6001600160a01b038116613a915760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401611a15565b612877816148b5565b613aa2614105565b609d80546001600160a01b0319166001600160a01b0392909216919091179055565b60c75460ff1615613ae75760405162461bcd60e51b8152600401611a159061549c565b33600090815260b2602052604090205460ff16613e7d5760c954821015613b625760405162461bcd60e51b815260206004820152602960248201527f466c65784952413a206669727374206465706f736974206c657373207468616e604482015268081c995c5d5a5c995960ba1b6064820152608401611a15565b33600090815260bd602052604090205460ff16613bd65760bc5460bb5410613bd65760405162461bcd60e51b815260206004820152602160248201527f466c65784952413a20746f74616c2075736572206c696d6974207265616368656044820152601960fa1b6064820152608401611a15565b60bb8054906000613be6836157bf565b909155505033600090815260b260209081526040808320805460ff1916600217905560b3909152902042905560b154600160a81b900460ff1615613d32576001600160a01b038116613c715760405162461bcd60e51b8152602060048201526014602482015273149959995c9c995c881a5cc81c995c5d5a5c995960621b6044820152606401611a15565b6001600160a01b038116331415613cca5760405162461bcd60e51b815260206004820152601a60248201527f53656e6465722063616e206e6f742062652072656665727265720000000000006044820152606401611a15565b6001600160a01b038116600090815260b2602052604090205460ff16613d325760405162461bcd60e51b815260206004820152601c60248201527f5265666572726572206d75737420626520696e20636f6e7472616374000000006044820152606401611a15565b6001600160a01b03811615801590613d5357506001600160a01b0381163314155b8015613d7957506001600160a01b038116600090815260b2602052604090205460ff1615155b15613e7d5733600090815260b46020908152604080832080546001600160a01b0319166001600160a01b038616908117909155835260ba909152902054613dbf82613006565b11613e1e5760405162461bcd60e51b815260206004820152602960248201527f466c65784952413a2075736572277320726566657272616c206c696d697420696044820152681cc81c995858da195960ba1b6064820152608401611a15565b6001600160a01b038116600090815260b56020526040902054613e429060016155ad565b33600090815260b560209081526040808320939093556001600160a01b038416825260ba9052908120805491613e77836157bf565b91905055505b609e54821015613ee85760405162461bcd60e51b815260206004820152603060248201527f466c65784952413a206465706f736974206973206c657373207468616e206d6960448201526f1b881d5cd95c89dcc819195c1bdcda5d60821b6064820152608401611a15565b609f54821115613f565760405162461bcd60e51b815260206004820152603360248201527f466c65784952413a206465706f7369742069732067726561746572207468616e604482015272081b585e081d5cd95c89dcc819195c1bdcda5d606a1b6064820152608401611a15565b613f61333084614907565b61249c826000614563565b613f74614105565b60b655565b600054610100900460ff1615808015613f995750600054600160ff909116105b80613fb35750303b158015613fb3575060005460ff166001145b613fcf5760405162461bcd60e51b8152600401611a15906154d3565b6000805460ff191660011790558015613ff2576000805461ff0019166101001790555b61403960405180604001604052806009815260200168233632bc24a920bb1960b91b815250604051806040016040528060048152602001634649524160e01b815250614b9c565b614041614bcd565b609a80546001600160a01b038088166001600160a01b031992831617909255609b8054878416908316179055609d8054868416908316179055609c805492851692909116919091179055670de0b6b3a7640000609e5569152d02c7e14af6800000609f55600060a0819055600260a255600560a35560a581905560a65560b1805460ff191660011790558015611b6c576000805461ff0019169055604051600181526000805160206158478339815191529060200160405180910390a15050505050565b6065546001600160a01b031633146127315760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401611a15565b6001600160a01b038216600090815260c06020526040812080548392906124969084906155ad565b60405162461bcd60e51b815260206004820152602160248201527f466c65784952413a20617070726f76696e67206973206e6f7420616c6c6f77656044820152601960fa1b6064820152608401611a15565b60006141e58484613548565b90506000198114611b3857818110156142405760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401611a15565b611b388484848403614187565b60405162461bcd60e51b815260206004820152601d60248201527f466c65784952413a206e6f207472616e736665727320616c6c6f7765640000006044820152606401611a15565b6000826142a457506000611b88565b60006142b083856156d5565b9050826142bd85836155c5565b146143145760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401611a15565b9392505050565b60008181811215611b8857600080fd5b600080614338838561556c565b90506000831215801561434b5750838112155b80614360575060008312801561436057508381125b61431457600080fd5b60008082121561437857600080fd5b5090565b6143868282614bfc565b6143c06143a1611ed88360975461429590919063ffffffff16565b6001600160a01b0384166000908152609860205260409020549061432b565b6001600160a01b0390921660009081526098602052604090209190915550565b600061431483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614d30565b60008061442f83856155ad565b9050838110156143145760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401611a15565b600060cb5482611b8891906155c5565b609a5460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b1580156144df57600080fd5b505af11580156144f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145179190615299565b61249c5760405162461bcd60e51b815260206004820152601860248201527f466c65784952413a207472616e73666572206661696c656400000000000000006044820152606401611a15565b33600090815260b4602052604081205460a2546001600160a01b03909116919060649061459090866156d5565b61459a91906155c5565b90506000606460a354866145ae91906156d5565b6145b891906155c5565b33600090815260b26020526040902054909150600160ff90911611156145f557606460b654866145e891906156d5565b6145f291906155c5565b90505b6000806001600160a01b03851615614733576103e860b8548861461891906156d5565b61462291906155c5565b905080156146c45760b1546146459061010090046001600160a01b031682614491565b60b15461010090046001600160a01b031663e2f585bf86614665846149e1565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156146ab57600080fd5b505af11580156146bf573d6000803e3d6000fd5b505050505b6103e860b754886146d591906156d5565b6146df91906155c5565b915081156147335760006146f2836149e1565b6001600160a01b038716600090815260b9602052604081208054929350839290919061471f9084906155ad565b909155506147319050868260016147bb565b505b60a2541561475157609d54614751906001600160a01b031685614491565b821561476d57609c5461476d906001600160a01b031684614491565b6000614781826130e2858188818e8c6143e0565b609b5490915061479e906001600160a01b031661259c8386614422565b6147b1336147ab836149e1565b896147bb565b5050505050505050565b6147c58383614d6a565b8061485a576001600160a01b038316600090815260a160205260409020546147ec84612bc0565b111561485a5760a0546035541061485a5760405162461bcd60e51b815260206004820152602c60248201527f466c65784952413a20746f74616c206465706f73697420706f6f6c206578636560448201526b656420616c6c6f77616e636560a01b6064820152608401611a15565b614894614875611ed88460975461429590919063ffffffff16565b6001600160a01b03851660009081526098602052604090205490614e2b565b6001600160a01b039093166000908152609860205260409020929092555050565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b609a546040516323b872dd60e01b81526001600160a01b038581166004830152848116602483015260448201849052909116906323b872dd90606401602060405180830381600087803b15801561495d57600080fd5b505af1158015614971573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149959190615299565b611b6f5760405162461bcd60e51b815260206004820152601d60248201527f466c65784952413a207472616e736665722066726f6d206661696c65640000006044820152606401611a15565b600060cb5482611b8891906156d5565b6001600160a01b038316614a555760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401611a15565b6001600160a01b038216614ab75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401611a15565b6001600160a01b03831660009081526033602052604090205481811015614b2f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401611a15565b6001600160a01b0380851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90614b8f9086815260200190565b60405180910390a3611b38565b600054610100900460ff16614bc35760405162461bcd60e51b8152600401611a1590615521565b61249c8282614e77565b600054610100900460ff16614bf45760405162461bcd60e51b8152600401611a1590615521565b612731614ec5565b6001600160a01b038216614c5c5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401611a15565b6001600160a01b03821660009081526033602052604090205481811015614cd05760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401611a15565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60008184841115614d545760405162461bcd60e51b8152600401611a159190615447565b506000614d618486615733565b95945050505050565b6001600160a01b038216614dc05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401611a15565b8060356000828254614dd291906155ad565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6000808212158015614e46575082614e4383826156f4565b13155b80614e645750600082128015614e64575082614e6283826156f4565b135b614e6d57600080fd5b61431482846156f4565b600054610100900460ff16614e9e5760405162461bcd60e51b8152600401611a1590615521565b8151614eb1906036906020850190614ef5565b508051611b6f906037906020840190614ef5565b600054610100900460ff16614eec5760405162461bcd60e51b8152600401611a1590615521565b612731336148b5565b828054614f0190615784565b90600052602060002090601f016020900481019282614f235760008555614f69565b82601f10614f3c57805160ff1916838001178555614f69565b82800160010185558215614f69579182015b82811115614f69578251825591602001919060010190614f4e565b506143789291505b808211156143785760008155600101614f71565b8051614f9081615823565b919050565b60008083601f840112614fa757600080fd5b50813567ffffffffffffffff811115614fbf57600080fd5b6020830191508360208260051b8501011115614fda57600080fd5b9250929050565b803560ff81168114614f9057600080fd5b60006020828403121561500457600080fd5b813561431481615823565b6000806040838503121561502257600080fd5b823561502d81615823565b9150602083013561503d81615823565b809150509250929050565b6000806000806080858703121561505e57600080fd5b843561506981615823565b9350602085013561507981615823565b9250604085013561508981615823565b9150606085013561509981615823565b939692955090935050565b6000806000606084860312156150b957600080fd5b83356150c481615823565b925060208401356150d481615823565b929592945050506040919091013590565b600080604083850312156150f857600080fd5b823561510381615823565b946020939093013593505050565b6000806000806040858703121561512757600080fd5b843567ffffffffffffffff8082111561513f57600080fd5b61514b88838901614f95565b9096509450602087013591508082111561516457600080fd5b5061517187828801614f95565b95989497509550505050565b60008060006040848603121561519257600080fd5b833567ffffffffffffffff8111156151a957600080fd5b6151b586828701614f95565b90945092505060208401356151c981615838565b809150509250925092565b6000806000604084860312156151e957600080fd5b833567ffffffffffffffff81111561520057600080fd5b61520c86828701614f95565b909790965060209590950135949350505050565b6000806000806060858703121561523657600080fd5b843567ffffffffffffffff81111561524d57600080fd5b61525987828801614f95565b909550935061526c905060208601614fe1565b9150604085013561509981615838565b60006020828403121561528e57600080fd5b813561431481615838565b6000602082840312156152ab57600080fd5b815161431481615838565b600080604083850312156152c957600080fd5b823561510381615838565b6000806000606084860312156152e957600080fd5b83356152f481615823565b95602085013595506040909401359392505050565b600060e0828403121561531b57600080fd5b60405160e0810181811067ffffffffffffffff8211171561534c57634e487b7160e01b600052604160045260246000fd5b6040528251815261535f60208401614f85565b602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c08201528091505092915050565b6000602082840312156153b257600080fd5b5035919050565b600080604083850312156153cc57600080fd5b82359150602083013561503d81615823565b600080604083850312156153f157600080fd5b50508035926020909101359150565b60008060006060848603121561541557600080fd5b505081359360208301359350604090920135919050565b60006020828403121561543e57600080fd5b61431482614fe1565b600060208083528351808285015260005b8181101561547457858101830151858201604001528201615458565b81811115615486576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252601b908201527f466c65784952413a20636f6e7472616374206973207061757365640000000000604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600080821280156001600160ff1b038490038513161561558e5761558e6157f7565b600160ff1b83900384128116156155a7576155a76157f7565b50500190565b600082198211156155c0576155c06157f7565b500190565b6000826155e257634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115615622578160001904821115615608576156086157f7565b8085161561561557918102915b93841c93908002906155ec565b509250929050565b600061431460ff84168360008261564357506001611b88565b8161565057506000611b88565b816001811461566657600281146156705761568c565b6001915050611b88565b60ff841115615681576156816157f7565b50506001821b611b88565b5060208310610133831016604e8410600b84101617156156af575081810a611b88565b6156b983836155e7565b80600019048211156156cd576156cd6157f7565b029392505050565b60008160001904831182151516156156ef576156ef6157f7565b500290565b60008083128015600160ff1b850184121615615712576157126157f7565b6001600160ff1b038401831381161561572d5761572d6157f7565b50500390565b600082821015615745576157456157f7565b500390565b600060ff821660ff841680821015615764576157646157f7565b90039392505050565b60008161577c5761577c6157f7565b506000190190565b600181811c9082168061579857607f821691505b602082108114156157b957634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156157d3576157d36157f7565b5060010190565b6000600160ff1b8214156157f0576157f06157f7565b5060000390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461287757600080fd5b801515811461287757600080fdfe7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498a264697066735822122078e64371a4aae24d1f0298946edec9cef337b98bb791bcdcc0b0fd2473052e1a64736f6c63430008060033