0 txs
0 calls
constructor
No constructor.
functions
accumulativeDividendOf
viewfunction accumulativeDividendOf(address _owner) view returns (uint256)
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
allowTransfer
viewfunction allowTransfer() view returns (bool)
assetFundWallet
viewfunction assetFundWallet() view returns (address)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
calcWithdrawCompoundByWeights
purefunction calcWithdrawCompoundByWeights(uint256 dividends, uint256 compoundWeight, uint256 withdrawWeight) pure returns (uint256 compound, uint256 withdraw)
compoundedDividends
viewfunction compoundedDividends(address) view returns (uint256)
currentDayMidnight
viewfunction currentDayMidnight() view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
dividendOf
viewfunction dividendOf(address _owner) view returns (uint256)
flexIra
viewfunction flexIra() view returns (address)
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)
getFinalReferrer
viewfunction getFinalReferrer(address referee) view returns (address referral)
getInitializedVersion
viewfunction getInitializedVersion() view returns (uint8)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getRoleMember
viewfunction getRoleMember(bytes32 role, uint256 index) view returns (address)
getRoleMemberCount
viewfunction getRoleMemberCount(bytes32 role) view returns (uint256)
getVersion
purefunction getVersion() pure returns (uint256, uint256)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
ignoreMaxTotalSupplyLimitOnCompound
viewfunction ignoreMaxTotalSupplyLimitOnCompound() view returns (bool)
MANAGER_ROLE
viewfunction MANAGER_ROLE() view returns (bytes32)
maxTotalSupply
viewfunction maxTotalSupply() view returns (uint256)
maxTotalSupplyPerUser
viewfunction maxTotalSupplyPerUser() view returns (uint256)
maxUserDeposit
viewfunction maxUserDeposit() view returns (uint256)
minFiraTokens
viewfunction minFiraTokens() view returns (uint256)
minUserDeposit
viewfunction minUserDeposit() view returns (uint256)
minUserFirstDeposit
viewfunction minUserFirstDeposit() view returns (uint256)
name
viewfunction name() view returns (string)
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)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
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)
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)
userReferrerTransfer
viewfunction userReferrerTransfer(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)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
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)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
initialize
nonpayablefunction initialize(address token_, address flexIra_, address assetFund_, uint256 totalUsersLimit_, uint8 tokenDec_)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
set_allowTransfer
nonpayablefunction set_allowTransfer(bool value)
set_assetFundWallet
nonpayablefunction set_assetFundWallet(address addr)
set_compoundedDividends
nonpayablefunction set_compoundedDividends(address[] user, uint256[] values)
set_ignoreMaxTotalSupplyLimit
nonpayablefunction set_ignoreMaxTotalSupplyLimit(bool value)
set_maxTotalSupply
nonpayablefunction set_maxTotalSupply(uint256 value)
set_maxTotalSupplyPerUser
nonpayablefunction set_maxTotalSupplyPerUser(uint256 value)
set_maxUserDeposit
nonpayablefunction set_maxUserDeposit(uint256 value)
set_maxUserSupply
nonpayablefunction set_maxUserSupply(address account, uint256 value)
set_minFiraTokens
nonpayablefunction set_minFiraTokens(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_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)
transferTokensFromContract
nonpayablefunction transferTokensFromContract(address token, address to, uint256 amountUsd)
transferUser
nonpayablefunction transferUser(address from, address to)
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)
DividendsDistributed
event DividendsDistributed(address indexed from, uint256 weiAmount)
DividendWithdrawn
event DividendWithdrawn(address indexed to, uint256 weiAmount)
Initialized
event Initialized(uint8 version)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50614342806100206000396000f3fe6080604052600436106104e05760003560e01c806373741b7111610281578063aea7d1c11161015a578063d5a2ab53116100cc578063e3d1d5bf11610085578063e3d1d5bf14610fc8578063eac44b2014610fe8578063ec87621c14611008578063f21fa7e31461102a578063f82636111461104b578063fc0c546a1461106b57600080fd5b8063d5a2ab5314610ef1578063d854d72314610f08578063d969f10514610f36578063dd62ed3e14610f56578063dd791ce514610f76578063de52657814610f9157600080fd5b8063bff1f9e11161011e578063bff1f9e114610e45578063c801dfc114610e5c578063ca15c87314610e71578063cc63a3c914610e91578063cce78c3814610eb1578063d547741f14610ed157600080fd5b8063aea7d1c114610da1578063b0c7ce3714610dd2578063b3c6501514610df2578063b451f0db14610e0a578063b6b55f2514610e2557600080fd5b8063a1645bad116101f3578063a9059cbb116101b7578063a9059cbb14610cbd578063aa9c5fc414610cdd578063aafd847a14610cf4578063ab1007c514610d2a578063ad061ecf14610d4a578063ae68369814610d6a57600080fd5b8063a1645bad14610c28578063a217fddf14610c48578063a457c2d714610c5d578063a6dcf7d714610c7d578063a8b9d24014610c9d57600080fd5b806391d148541161024557806391d1485414610b7c578063929d59a714610b9c57806395d89b4114610bb35780639b08a22f14610bc85780639d5deef914610be35780639df2144414610bfa57600080fd5b806373741b7114610ace5780637c3fcc3814610ae55780637ce167ae14610b1c5780639010d07c14610b3c57806391b89fba14610b5c57600080fd5b80632f2ff15d116103be578063494a963a116103305780635c975abb116102e95780635c975abb14610a0857806362ec140c14610a23578063639cfd0d14610a435780636a47400214610a635780636c0a960c14610a7857806370a0823114610a9857600080fd5b8063494a963a146109345780634c7e77ed146109655780634de1dbd8146109935780634de8ff21146109b357806354bd05cf146109c85780635b0cd7cc146109e857600080fd5b806336568abe1161038257806336568abe1461084b578063395093511461086b57806342e5b9f11461088b57806344649a4f146108a25780634468e874146108d8578063472be74a1461090657600080fd5b80632f2ff15d1461079a5780632f9737d0146107ba578063313ce567146107da57806331683e94146107fc578063318f35db1461083457600080fd5b80631549c5f91161045757806323b872dd1161041b57806323b872dd146106dc578063248a9ca3146106fc57806327ce01471461072c5780632a0e00c31461074c5780632ab4d0521461076c5780632acbac531461078357600080fd5b80631549c5f9146106505780631705a0bc1461066757806318160ddd146106875780631e990e131461069c57806321553f8c146106bc57600080fd5b806306fdde03116104a957806306fdde0314610587578063072f3834146105a957806307947a45146105c9578063095ea7b3146105e95780630d8e6e2c146106095780630ff5ce721461063057600080fd5b8062dd6c50146104e557806301ffc9a714610507578063036fd49a1461053c57806303c833021461055f57806304ca080a14610567575b600080fd5b3480156104f157600080fd5b50610505610500366004613b81565b61108b565b005b34801561051357600080fd5b50610527610522366004613e16565b61130f565b60405190151581526020015b60405180910390f35b34801561054857600080fd5b5061055161133a565b604051908152602001610533565b610505611359565b34801561057357600080fd5b50610505610582366004613db6565b611391565b34801561059357600080fd5b5061059c6113ae565b6040516105339190613f15565b3480156105b557600080fd5b506105056105c4366004613e85565b611440565b3480156105d557600080fd5b506105056105e4366004613df4565b611484565b3480156105f557600080fd5b50610527610604366004613c26565b6114ba565b34801561061557600080fd5b50600160045b60408051928352602083019190915201610533565b34801561063c57600080fd5b5061050561064b366004613d7c565b6114d2565b34801561065c57600080fd5b506105516101035481565b34801561067357600080fd5b50610505610682366004613b2b565b6114fd565b34801561069357600080fd5b50603554610551565b3480156106a857600080fd5b506105056106b7366004613cbe565b611536565b3480156106c857600080fd5b506105056106d7366004613c52565b6115c5565b3480156106e857600080fd5b506105276106f7366004613be5565b611658565b34801561070857600080fd5b50610551610717366004613db6565b60009081526097602052604090206001015490565b34801561073857600080fd5b50610551610747366004613b2b565b61167c565b34801561075857600080fd5b50610505610767366004613db6565b6116d9565b34801561077857600080fd5b506105516101025481565b34801561078f57600080fd5b5061055161010a5481565b3480156107a657600080fd5b506105056107b5366004613dcf565b6116f6565b3480156107c657600080fd5b506105056107d5366004613d7c565b61171b565b3480156107e657600080fd5b5060125b60405160ff9091168152602001610533565b34801561080857600080fd5b5061081c610817366004613b2b565b611746565b6040516001600160a01b039091168152602001610533565b34801561084057600080fd5b506105516101135481565b34801561085757600080fd5b50610505610866366004613dcf565b6117a7565b34801561087757600080fd5b50610527610886366004613c26565b611825565b34801561089757600080fd5b506105516101055481565b3480156108ae57600080fd5b506105516108bd366004613b2b565b6001600160a01b0316600090815260fc602052604090205490565b3480156108e457600080fd5b506105516108f3366004613b2b565b6101176020526000908152604090205481565b34801561091257600080fd5b50610551610921366004613b2b565b6101186020526000908152604090205481565b34801561094057600080fd5b5061052761094f366004613b2b565b61010b6020526000908152604090205460ff1681565b34801561097157600080fd5b50610551610980366004613b2b565b61010c6020526000908152604090205481565b34801561099f57600080fd5b506105056109ae366004613db6565b611847565b3480156109bf57600080fd5b506105056119ac565b3480156109d457600080fd5b506105056109e3366004613db6565b6119b8565b3480156109f457600080fd5b50610505610a03366004613be5565b6119d5565b348015610a1457600080fd5b5061010d546105279060ff1681565b348015610a2f57600080fd5b5061061b610a3e366004613e59565b611a6e565b348015610a4f57600080fd5b50610505610a5e366004613db6565b611abd565b348015610a6f57600080fd5b50610505611ada565b348015610a8457600080fd5b50610505610a93366004613d15565b611af3565b348015610aa457600080fd5b50610551610ab3366004613b2b565b6001600160a01b031660009081526033602052604090205490565b348015610ada57600080fd5b5061055161010e5481565b348015610af157600080fd5b5061081c610b00366004613b2b565b610114602052600090815260409020546001600160a01b031681565b348015610b2857600080fd5b50610505610b37366004613c26565b611c30565b348015610b4857600080fd5b5061081c610b57366004613df4565b611c64565b348015610b6857600080fd5b50610551610b77366004613b2b565b611c83565b348015610b8857600080fd5b50610527610b97366004613dcf565b611c8e565b348015610ba857600080fd5b506105516101125481565b348015610bbf57600080fd5b5061059c611cb9565b348015610bd457600080fd5b50610119546105279060ff1681565b348015610bef57600080fd5b506105516101105481565b348015610c0657600080fd5b50610551610c15366004613b2b565b6101086020526000908152604090205481565b348015610c3457600080fd5b50610505610c43366004613db6565b611cc8565b348015610c5457600080fd5b50610551600081565b348015610c6957600080fd5b50610527610c78366004613c26565b611ce5565b348015610c8957600080fd5b50610505610c98366004613db6565b611d60565b348015610ca957600080fd5b50610551610cb8366004613b2b565b611d6c565b348015610cc957600080fd5b50610527610cd8366004613c26565b611d98565b348015610ce957600080fd5b506105516101015481565b348015610d0057600080fd5b50610551610d0f366004613b2b565b6001600160a01b0316600090815260fd602052604090205490565b348015610d3657600080fd5b50610505610d45366004613db6565b611da6565b348015610d5657600080fd5b50610505610d65366004613db6565b611dc3565b348015610d7657600080fd5b5061081c610d85366004613b2b565b610115602052600090815260409020546001600160a01b031681565b348015610dad57600080fd5b506107ea610dbc366004613b2b565b6101076020526000908152604090205460ff1681565b348015610dde57600080fd5b50610505610ded366004613db6565b611de0565b348015610dfe57600080fd5b5060005460ff166107ea565b348015610e1657600080fd5b50610106546105279060ff1681565b348015610e3157600080fd5b50610505610e40366004613db6565b611f27565b348015610e5157600080fd5b506105516101095481565b348015610e6857600080fd5b5060fb54610551565b348015610e7d57600080fd5b50610551610e8c366004613db6565b611f95565b348015610e9d57600080fd5b50610505610eac366004613b2b565b611fac565b348015610ebd57600080fd5b50610505610ecc366004613d7c565b611fe5565b348015610edd57600080fd5b50610505610eec366004613dcf565b612010565b348015610efd57600080fd5b506105516101005481565b348015610f1457600080fd5b50610551610f23366004613b2b565b6101166020526000908152604090205481565b348015610f4257600080fd5b5060ff5461081c906001600160a01b031681565b348015610f6257600080fd5b50610551610f71366004613b48565b612035565b348015610f8257600080fd5b5061010f546107ea9060ff1681565b348015610f9d57600080fd5b50610551610fac366004613b2b565b6001600160a01b03166000908152610104602052604090205490565b348015610fd457600080fd5b50610505610fe3366004613b48565b612060565b348015610ff457600080fd5b50610505611003366004613db6565b612416565b34801561101457600080fd5b506105516000805160206142ed83398151915281565b34801561103657600080fd5b506101115461081c906001600160a01b031681565b34801561105757600080fd5b50610505611066366004613dcf565b612433565b34801561107757600080fd5b5060fe5461081c906001600160a01b031681565b600054610100900460ff16158080156110ab5750600054600160ff909116105b806110c55750303b1580156110c5575060005460ff166001145b61112d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015611150576000805461ff0019166101001790555b61119560405180604001604052806007815260200166233632bc24a81960c91b815250604051806040016040528060048152602001632324a81960e11b8152506128fc565b61119d61292d565b6111a8600033612954565b6111c06000805160206142ed83398151915233612954565b61010f805460ff191660ff84161790556111db8260126141b5565b6111e690600a614094565b6101105560fe80546001600160a01b038089166001600160a01b031992831617909255610111805488841690831617905560ff80549287169290911691909117815561010f541661123881600a614088565b611243906001614140565b6101005561125281600a614088565b61125d906001614140565b61010e5561126c81600a614088565b61127990620f4240614140565b6101015550683635c9adc5dea000006101035560006101025568878678326eac90000061011255610106805460ff1990811690915561010a84905561010d805490911660011790558015611307576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b60006001600160e01b03198216635a05180f60e01b148061133457506113348261295e565b92915050565b60006201518061134a8142614023565b6113549190614140565b905090565b60405162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5c1c1bdc9d1959609a1b6044820152606401611124565b6113a86000805160206142ed833981519152612993565b61011255565b6060603680546113bd9061421b565b80601f01602080910402602001604051908101604052809291908181526020018280546113e99061421b565b80156114365780601f1061140b57610100808354040283529160200191611436565b820191906000526020600020905b81548152906001019060200180831161141957829003601f168201915b5050505050905090565b6114576000805160206142ed833981519152612993565b61010f805460ff191660ff83161790556114728160126141b5565b61147d90600a614094565b6101105550565b600061148f33611d6c565b905080156114b5576000806114a5838686611a6e565b915091506114b281611847565b50505b505050565b6000336114c881858561299d565b5060019392505050565b6114e96000805160206142ed833981519152612993565b61010d805460ff1916911515919091179055565b6115146000805160206142ed833981519152612993565b60ff80546001600160a01b0319166001600160a01b0392909216919091179055565b61154d6000805160206142ed833981519152612993565b60005b828110156115bf578161010b60008686858181106115705761157061429d565b90506020020160208101906115859190613b2b565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806115b781614256565b915050611550565b50505050565b6115dc6000805160206142ed833981519152612993565b60005b838110156114b2578282828181106115f9576115f961429d565b9050602002013561010c60008787858181106116175761161761429d565b905060200201602081019061162c9190613b2b565b6001600160a01b031681526020810191909152604001600020558061165081614256565b9150506115df565b6000336116668582856129ef565b611671858585612a63565b506001949350505050565b6001600160a01b038116600090815260fc6020908152604080832054603390925282205460fb54600160801b926116cf926116ca926116c4916116bf9190612c94565b612d13565b90612d23565b612d61565b6113349190614023565b6116f06000805160206142ed833981519152612993565b61010055565b60008281526097602052604090206001015461171181612993565b6114b58383612d74565b6117326000805160206142ed833981519152612993565b610106805460ff1916911515919091179055565b6001600160a01b03808216600090815261011460205260408120549091165b6001600160a01b03818116600090815261011560205260409020541615611334576001600160a01b039081166000908152610115602052604090205416611765565b6001600160a01b03811633146118175760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401611124565b6118218282612d96565b5050565b6000336114c88185856118388383612035565b611842919061400b565b61299d565b61010d5460ff161561186b5760405162461bcd60e51b815260040161112490613f48565b600061187633611d6c565b9050808211156118e35760405162461bcd60e51b815260206004820152603260248201527f466c65784950323a207769746864726177416d6f756e74206d6f7265207468616044820152716e20757365722773206469766964656e647360701b6064820152608401611124565b80156118215760006118f58284612db8565b9050821561193c5733600090815260fd60205260409020546119179084612dfa565b33600081815260fd602052604090209190915561193c9061193785612e59565b612e6a565b80156114b55733600090815260fd602052604090205461195c9082612dfa565b33600090815260fd602090815260408083209390935561010c905220546119839082612dfa565b33600090815261010c60205260409020556114b56119a082612e59565b6101065460ff16612f3c565b6119b66000611847565b565b6119cf6000805160206142ed833981519152612993565b61010a55565b6119ec6000805160206142ed833981519152612993565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401602060405180830381600087803b158015611a3657600080fd5b505af1158015611a4a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115bf9190613d99565b60008080611a7c848661400b565b905080611a90578560009250925050611ab5565b80611a9b8588614140565b611aa59190614023565b9150611ab1828761419e565b9250505b935093915050565b611ad46000805160206142ed833981519152612993565b61010e55565b6000611ae533611d6c565b9050611af081611847565b50565b611b0a6000805160206142ed833981519152612993565b60005b838110156114b2578115611bc6576101076000868684818110611b3257611b3261429d565b9050602002016020810190611b479190613b2b565b6001600160a01b0316815260208101919091526040016000205460ff16611bc6576101098054906000611b7983614256565b9190505550426101086000878785818110611b9657611b9661429d565b9050602002016020810190611bab9190613b2b565b6001600160a01b031681526020810191909152604001600020555b826101076000878785818110611bde57611bde61429d565b9050602002016020810190611bf39190613b2b565b6001600160a01b031681526020810191909152604001600020805460ff191660ff9290921691909117905580611c2881614256565b915050611b0d565b611c476000805160206142ed833981519152612993565b6001600160a01b0390911660009081526101046020526040902055565b600082815260c960205260408120611c7c9083612fef565b9392505050565b600061133482611d6c565b60009182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6060603780546113bd9061421b565b611cdf6000805160206142ed833981519152612993565b61010355565b60003381611cf38286612035565b905083811015611d535760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401611124565b611671828686840361299d565b611af0610ded82612ffb565b6001600160a01b038116600090815260fd602052604081205461133490611d928461167c565b90612db8565b6000336114c8818585612a63565b611dbd6000805160206142ed833981519152612993565b61010255565b611dda6000805160206142ed833981519152612993565b61011355565b61010d5460ff1615611e045760405162461bcd60e51b815260040161112490613f48565b60008111611e4b5760405162461bcd60e51b81526020600482015260146024820152730466c65784950323a20616d6f756e7420697320360641b6044820152606401611124565b6000611e5660355490565b11611e995760405162461bcd60e51b8152602060048201526013602482015272466c65784950323a206e6f20686f6c6465727360681b6044820152606401611124565b611eac3330611ea784612e59565b61300c565b806101056000828254611ebf919061400b565b9091555050603554611eec90611ed983600160801b612c94565b611ee39190614023565b60fb5490612dfa565b60fb5560405181815233907fa493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d784541165119060200160405180910390a250565b60405162461bcd60e51b815260206004820152603e60248201527f466c65784950323a204d6574686f6420697320646570726563617465642e205560448201527f7365206465706f7369745769746852656620666f72206465706f7369747300006064820152608401611124565b600081815260c960205260408120611334906130e6565b611fc36000805160206142ed833981519152612993565b60fe80546001600160a01b0319166001600160a01b0392909216919091179055565b611ffc6000805160206142ed833981519152612993565b610119805460ff1916911515919091179055565b60008281526097602052604090206001015461202b81612993565b6114b58383612d96565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b6120776000805160206142ed833981519152612993565b6001600160a01b0382166000908152610107602052604090205460ff166120e05760405162461bcd60e51b815260206004820152601c60248201527f46726f6d2075736572206973206e6f7420616e20696e766573746f72000000006044820152606401611124565b6001600160a01b0382166000908152603360205260409020546121048383836130f0565b6001600160a01b03808416600090815260fd602052604080822054928516825290205461213091612dfa565b6001600160a01b03808416600090815260fd60209081526040808320949094559186168152828120819055610107909152205460ff16158015906121c057506001600160a01b0382166000908152610107602052604090205460ff1615806121c057506001600160a01b038083166000908152610107602052604080822054928616825290205460ff9182169116105b156121fa576001600160a01b03808416600090815261010760205260408082205492851682529020805460ff191660ff9092169190911790555b6001600160a01b03808416600081815261010760209081526040808320805460ff19169055938616825261010490528281205491815291909120541115612260576001600160a01b03808416600090815261010460205260408082205492851682529020555b6001600160a01b03831660009081526101046020908152604080832083905561010b90915290205460ff161515600114156122cc576001600160a01b03838116600090815261010b60205260408082205492851682529020805460ff191660ff90921615159190911790555b6001600160a01b03808416600090815261010b60209081526040808320805460ff1916905592851682526101089052205415801561232257506001600160a01b0383166000908152610108602052604090205415155b1561234c576001600160a01b03808416600090815261010860205260408082205492851682529020555b6001600160a01b0380841660009081526101086020908152604080832083905561010c90915280822054928516825290205461238791612dfa565b6001600160a01b03808416600081815261010c602090815260408083209590955592871681528381208190556101189092528282205490825291812080549091906123d390849061400b565b9091555050506001600160a01b03918216600090815261011860209081526040808320839055610115909152902080546001600160a01b03191691909216179055565b61242d6000805160206142ed833981519152612993565b61010155565b61010d5460ff16156124575760405162461bcd60e51b815260040161112490613f48565b610100548210156124c35760405162461bcd60e51b815260206004820152603060248201527f466c65784950323a206465706f736974206973206c657373207468616e206d6960448201526f1b881d5cd95c89dcc819195c1bdcda5d60821b6064820152608401611124565b610101548211156125325760405162461bcd60e51b815260206004820152603360248201527f466c65784950323a206465706f7369742069732067726561746572207468616e604482015272081b585e081d5cd95c89dcc819195c1bdcda5d606a1b6064820152608401611124565b336000908152610107602052604090205460ff166128e65761010e548210156125af5760405162461bcd60e51b815260206004820152602960248201527f466c65784950323a206669727374206465706f736974206c657373207468616e604482015268081c995c5d5a5c995960ba1b6064820152608401611124565b33600090815261010b602052604090205460ff166126265761010a5461010954106126265760405162461bcd60e51b815260206004820152602160248201527f466c65784950323a20746f74616c2075736572206c696d6974207265616368656044820152601960fa1b6064820152608401611124565b610109805490600061263783614256565b9091555050336000908152610108602090815260408083204290556001600160a01b038416835261010790915290205460ff16156127c3576001600160a01b0381166126c55760405162461bcd60e51b815260206004820152601d60248201527f466c65784950323a2052656665727265722069732072657175697265640000006044820152606401611124565b6001600160a01b03811633141561272a5760405162461bcd60e51b815260206004820152602360248201527f466c65784950323a2053656e6465722063616e206e6f742062652072656665726044820152623932b960e91b6064820152608401611124565b33600090815261010760209081526040808320805460ff19166002179055610114825280832080546001600160a01b0386166001600160a01b031990911681179091558352610118909152812080549161278383614256565b90915550506001600160a01b038116600090815261011660205260409020546127ad90600161400b565b33600090815261011660205260409020556128e6565b610111546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561280857600080fd5b505afa15801561281c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128409190613e40565b9050610112548110156128c95760405162461bcd60e51b8152602060048201526044602482018190527f466c65784950323a20796f7520646f6e2774206861766520656e6f7567682046908201527f49524120746f6b656e73206f7220796f75722072656665727265722069732077606482015263726f6e6760e01b608482015260a401611124565b5033600090815261010760205260409020805460ff191660011790555b6128f133308461300c565b611821826000612f3c565b600054610100900460ff166129235760405162461bcd60e51b815260040161112490613f7f565b611821828261329b565b600054610100900460ff166119b65760405162461bcd60e51b815260040161112490613f7f565b6118218282612d74565b60006001600160e01b03198216637965db0b60e01b148061133457506301ffc9a760e01b6001600160e01b0319831614611334565b611af081336132e9565b60405162461bcd60e51b815260206004820152602160248201527f466c65784950323a20617070726f76696e67206973206e6f7420616c6c6f77656044820152601960fa1b6064820152608401611124565b60006129fb8484612035565b905060001981146115bf5781811015612a565760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401611124565b6115bf848484840361299d565b6101195460ff16612ab65760405162461bcd60e51b815260206004820152601d60248201527f466c65784950323a206e6f207472616e736665727320616c6c6f7765640000006044820152606401611124565b61010054811015612b265760405162461bcd60e51b815260206004820152603460248201527f466c65784950323a20616d6f756e74206973206c657373207468616e206d696e6044820152731a5b585b081d1c985b9cd9995c88185b5bdd5b9d60621b6064820152608401611124565b612b318383836130f0565b6000612b4b6116bf8360fb54612c9490919063ffffffff16565b6001600160a01b038516600090815260fc6020526040902054909150612b719082612d23565b6001600160a01b03808616600090815260fc60205260408082209390935590851681522054612ba09082613342565b6001600160a01b038416600090815260fc60209081526040808320939093556101079052205460ff166115bf576101098054906000612bde83614256565b90915550506001600160a01b038084166000908152610108602090815260408083204290556101078252808320805460ff19166002179055610114825280832080549489166001600160a01b0319909516851790559282526101189052908120805491612c4a83614256565b90915550506001600160a01b03841660009081526101166020526040902054612c7490600161400b565b6001600160a01b0384166000908152610116602052604090205550505050565b600082612ca357506000611334565b6000612caf8385614140565b905082612cbc8583614023565b14611c7c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401611124565b6000818181121561133457600080fd5b600080612d308385613fca565b905060008312158015612d435750838112155b80612d585750600083128015612d5857508381125b611c7c57600080fd5b600080821215612d7057600080fd5b5090565b612d7e828261338e565b600082815260c9602052604090206114b59082613414565b612da08282613429565b600082815260c9602052604090206114b59082613490565b6000611c7c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506134a5565b600080612e07838561400b565b905083811015611c7c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401611124565b600061011054826113349190614023565b60fe5460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b158015612eb857600080fd5b505af1158015612ecc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ef09190613d99565b6118215760405162461bcd60e51b815260206004820152601860248201527f466c65784950323a207472616e73666572206661696c656400000000000000006044820152606401611124565b6000612f4733611746565b905060006001600160a01b03821615612fb7576103e86101135485612f6c9190614140565b612f769190614023565b90508015612fb7576001600160a01b0382166000908152610117602052604081208054839290612fa790849061400b565b90915550612fb790508282612e6a565b6000612fc38583612db8565b60ff54909150612fdc906001600160a01b031682612e6a565b6114b233612fe987612ffb565b866134df565b6000611c7c838361365e565b600061011054826113349190614140565b60fe546040516323b872dd60e01b81526001600160a01b038581166004830152848116602483015260448201849052909116906323b872dd90606401602060405180830381600087803b15801561306257600080fd5b505af1158015613076573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061309a9190613d99565b6114b55760405162461bcd60e51b815260206004820152601d60248201527f466c65784950323a207472616e736665722066726f6d206661696c65640000006044820152606401611124565b6000611334825490565b6001600160a01b0383166131545760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401611124565b6001600160a01b0382166131b65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401611124565b6001600160a01b0383166000908152603360205260409020548181101561322e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401611124565b6001600160a01b0380851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061328e9086815260200190565b60405180910390a36115bf565b600054610100900460ff166132c25760405162461bcd60e51b815260040161112490613f7f565b81516132d5906036906020850190613a39565b5080516114b5906037906020840190613a39565b6132f38282611c8e565b6118215761330081613688565b61330b83602061369a565b60405160200161331c929190613ea0565b60408051601f198184030181529082905262461bcd60e51b825261112491600401613f15565b600080821215801561335d57508261335a838261415f565b13155b8061337b575060008212801561337b575082613379838261415f565b135b61338457600080fd5b611c7c828461415f565b6133988282611c8e565b6118215760008281526097602090815260408083206001600160a01b03851684529091529020805460ff191660011790556133d03390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611c7c836001600160a01b038416613836565b6134338282611c8e565b156118215760008281526097602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000611c7c836001600160a01b038416613885565b600081848411156134c95760405162461bcd60e51b81526004016111249190613f15565b5060006134d6848661419e565b95945050505050565b6134e98383613978565b80613603576001600160a01b03831660009081526033602081815260408084205461010483529320549190528111156136015761010354811115613597576040805162461bcd60e51b81526020600482015260248101919091527f466c65784950323a2075736572277320746f74616c206465706f73697420697360448201527f2067726561746572207468616e206d617820757365722773206465706f7369746064820152608401611124565b6101025460355411156136015760405162461bcd60e51b815260206004820152602c60248201527f466c65784950323a20746f74616c206465706f73697420706f6f6c206578636560448201526b656420616c6c6f77616e636560a01b6064820152608401611124565b505b61363d61361e6116bf8460fb54612c9490919063ffffffff16565b6001600160a01b038516600090815260fc602052604090205490613342565b6001600160a01b03909316600090815260fc60205260409020929092555050565b60008260000182815481106136755761367561429d565b9060005260206000200154905092915050565b60606113346001600160a01b03831660145b606060006136a9836002614140565b6136b490600261400b565b67ffffffffffffffff8111156136cc576136cc6142b3565b6040519080825280601f01601f1916602001820160405280156136f6576020820181803683370190505b509050600360fc1b816000815181106137115761371161429d565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106137405761374061429d565b60200101906001600160f81b031916908160001a9053506000613764846002614140565b61376f90600161400b565b90505b60018111156137e7576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106137a3576137a361429d565b1a60f81b8282815181106137b9576137b961429d565b60200101906001600160f81b031916908160001a90535060049490941c936137e081614204565b9050613772565b508315611c7c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611124565b600081815260018301602052604081205461387d57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611334565b506000611334565b6000818152600183016020526040812054801561396e5760006138a960018361419e565b85549091506000906138bd9060019061419e565b90508181146139225760008660000182815481106138dd576138dd61429d565b90600052602060002001549050808760000184815481106139005761390061429d565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061393357613933614287565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611334565b6000915050611334565b6001600160a01b0382166139ce5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401611124565b80603560008282546139e0919061400b565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b828054613a459061421b565b90600052602060002090601f016020900481019282613a675760008555613aad565b82601f10613a8057805160ff1916838001178555613aad565b82800160010185558215613aad579182015b82811115613aad578251825591602001919060010190613a92565b50612d709291505b80821115612d705760008155600101613ab5565b60008083601f840112613adb57600080fd5b50813567ffffffffffffffff811115613af357600080fd5b6020830191508360208260051b8501011115613b0e57600080fd5b9250929050565b803560ff81168114613b2657600080fd5b919050565b600060208284031215613b3d57600080fd5b8135611c7c816142c9565b60008060408385031215613b5b57600080fd5b8235613b66816142c9565b91506020830135613b76816142c9565b809150509250929050565b600080600080600060a08688031215613b9957600080fd5b8535613ba4816142c9565b94506020860135613bb4816142c9565b93506040860135613bc4816142c9565b925060608601359150613bd960808701613b15565b90509295509295909350565b600080600060608486031215613bfa57600080fd5b8335613c05816142c9565b92506020840135613c15816142c9565b929592945050506040919091013590565b60008060408385031215613c3957600080fd5b8235613c44816142c9565b946020939093013593505050565b60008060008060408587031215613c6857600080fd5b843567ffffffffffffffff80821115613c8057600080fd5b613c8c88838901613ac9565b90965094506020870135915080821115613ca557600080fd5b50613cb287828801613ac9565b95989497509550505050565b600080600060408486031215613cd357600080fd5b833567ffffffffffffffff811115613cea57600080fd5b613cf686828701613ac9565b9094509250506020840135613d0a816142de565b809150509250925092565b60008060008060608587031215613d2b57600080fd5b843567ffffffffffffffff811115613d4257600080fd5b613d4e87828801613ac9565b9095509350613d61905060208601613b15565b91506040850135613d71816142de565b939692955090935050565b600060208284031215613d8e57600080fd5b8135611c7c816142de565b600060208284031215613dab57600080fd5b8151611c7c816142de565b600060208284031215613dc857600080fd5b5035919050565b60008060408385031215613de257600080fd5b823591506020830135613b76816142c9565b60008060408385031215613e0757600080fd5b50508035926020909101359150565b600060208284031215613e2857600080fd5b81356001600160e01b031981168114611c7c57600080fd5b600060208284031215613e5257600080fd5b5051919050565b600080600060608486031215613e6e57600080fd5b505081359360208301359350604090920135919050565b600060208284031215613e9757600080fd5b611c7c82613b15565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613ed88160178501602088016141d8565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613f098160288401602088016141d8565b01602801949350505050565b6020815260008251806020840152613f348160408501602087016141d8565b601f01601f19169190910160400192915050565b6020808252601b908201527f466c65784950323a20636f6e7472616374206973207061757365640000000000604082015260600190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600080821280156001600160ff1b0384900385131615613fec57613fec614271565b600160ff1b839003841281161561400557614005614271565b50500190565b6000821982111561401e5761401e614271565b500190565b60008261404057634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561408057816000190482111561406657614066614271565b8085161561407357918102915b93841c939080029061404a565b509250929050565b6000611c7c838361409f565b6000611c7c60ff8416835b6000826140ae57506001611334565b816140bb57506000611334565b81600181146140d157600281146140db576140f7565b6001915050611334565b60ff8411156140ec576140ec614271565b50506001821b611334565b5060208310610133831016604e8410600b841016171561411a575081810a611334565b6141248383614045565b806000190482111561413857614138614271565b029392505050565b600081600019048311821515161561415a5761415a614271565b500290565b60008083128015600160ff1b85018412161561417d5761417d614271565b6001600160ff1b038401831381161561419857614198614271565b50500390565b6000828210156141b0576141b0614271565b500390565b600060ff821660ff8416808210156141cf576141cf614271565b90039392505050565b60005b838110156141f35781810151838201526020016141db565b838111156115bf5750506000910152565b60008161421357614213614271565b506000190190565b600181811c9082168061422f57607f821691505b6020821081141561425057634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561426a5761426a614271565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114611af057600080fd5b8015158114611af057600080fdfe241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08a2646970667358221220ef41f94aa0b31018afc1e13412447d0447cd582b42bb8f5252da92bebb8ac21964736f6c63430008060033