0 txs
1 call
constructor
constructor(address REFERRAL_, address _free, address marketingAddress_, address _signerAddress, address _fcc, address _fundAddress)
functions
balanceOf
viewfunction balanceOf(address account) view returns (uint256 balance)
balances
viewfunction balances(address) view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
FCC
viewfunction FCC() view returns (address)
feePercentage
viewfunction feePercentage(uint8) view returns (uint256)
FREE
viewfunction FREE() view returns (address)
fundAddress
viewfunction fundAddress() view returns (address)
getTeamKpi
viewfunction getTeamKpi(address _user) view returns (uint256)
isPreacher
viewfunction isPreacher(address user) view returns (bool)
maxStakeAmount
viewfunction maxStakeAmount() view returns (uint256)
name
viewfunction name() view returns (string)
network1In
viewfunction network1In() view returns (uint256 value)
owner
viewfunction owner() view returns (address)
REFERRAL
viewfunction REFERRAL() view returns (address)
rewardOfSlot
viewfunction rewardOfSlot(address user, uint8 index) view returns (uint256 reward)
signerAddress
viewfunction signerAddress() view returns (address)
stakeCount
viewfunction stakeCount(address user) view returns (uint256 count)
symbol
viewfunction symbol() view returns (string)
t_supply
viewfunction t_supply(uint256) view returns (uint40 stakeTime, uint160 tamount)
teamTotalInvestValue
viewfunction teamTotalInvestValue(address) view returns (uint256)
teamVirtuallyInvestValue
viewfunction teamVirtuallyInvestValue(address) view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
usedSignatures
viewfunction usedSignatures(bytes32) view returns (bool)
userIndex
viewfunction userIndex(address) view returns (uint256)
userStakeRecord
viewfunction userStakeRecord(address, uint256) view returns (uint40 stakeTime, uint160 amount, bool status, uint8 stakeIndex)
modifyUserStakeRecord
nonpayablefunction modifyUserStakeRecord(address user, uint256 recordIndex, uint40 stakeTime, uint160 amount, bool status, uint8 stakeIndex)
setFCC
nonpayablefunction setFCC(address _fcc)
setFeePercentage
nonpayablefunction setFeePercentage(uint8 _stakeIndex, uint256 _feePercentage)
setFREE
nonpayablefunction setFREE(address _free)
setFundAddress
nonpayablefunction setFundAddress(address _fundAddress)
setMarketingAddress
nonpayablefunction setMarketingAddress(address _account)
setReferral
nonpayablefunction setReferral(address _referral)
setSignerAddress
nonpayablefunction setSignerAddress(address _signer)
setTeamVirtuallyInvestValue
nonpayablefunction setTeamVirtuallyInvestValue(address _user, uint256 _value)
stake
nonpayablefunction stake(uint160 _amount, uint256 amountOutMin, uint8 _stakeIndex, bytes message, bytes signature)
stakeWithInviter
nonpayablefunction stakeWithInviter(uint160 _amount, uint256 amountOutMin, uint8 _stakeIndex, address parent, bytes message, bytes signature)
sync
nonpayablefunction sync()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
transferTokens
nonpayablefunction transferTokens(address _token, address _to, uint256 _amount)
unstake
nonpayablefunction unstake(uint256 index) returns (uint256)
events
OwnershipTransferred
event OwnershipTransferred(address indexed user, address indexed newOwner)
RewardPaid
event RewardPaid(address indexed user, uint256 reward, uint40 timestamp, uint256 index)
Staked
event Staked(address indexed user, uint256 amount, uint256 timestamp, uint256 index, uint256 stakeTime)
Transfer
event Transfer(address indexed from, address indexed to, uint256 amount)
errors
ECDSAInvalidSignature
error ECDSAInvalidSignature()
ECDSAInvalidSignatureLength
error ECDSAInvalidSignatureLength(uint256 length)
ECDSAInvalidSignatureS
error ECDSAInvalidSignatureS(bytes32 s)
PRBMath_MulDiv18_Overflow
error PRBMath_MulDiv18_Overflow(uint256 x, uint256 y)
creation bytecode
0x610100604052670de0b6bbbcfeb9c060a0908152670de0b6c3c63b40a060c052670de0b6d3cc89fcc060e052610039906001906003610352565b506040805160608101825262093a8081526213c680602082015262278d009181019190915261006c90600490600361039b565b50601e60805234801561007d575f5ffd5b5060405161472938038061472983398101604081905261009c916103ff565b5f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600b80546001600160a01b038881166001600160a01b031992831617909255600d80549287169290911691909117905560405163095ea7b360e01b81527310ed43c718714eb63d5aa57b78b54704e256024e60048201525f1960248201527355d398326f99059ff775485246999027b31979559063095ea7b3906044016020604051808303815f875af1158015610175573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610199919061046f565b50600a80546001600160a01b0319166001600160a01b03871690811790915560405163095ea7b360e01b81527310ed43c718714eb63d5aa57b78b54704e256024e60048201525f19602482015263095ea7b3906044016020604051808303815f875af115801561020b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022f919061046f565b50600c80546001600160a01b038085166001600160a01b031992831617909255600e80548484169216919091179055600760205260c87f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5561012c7fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b8285560025f526101f47fb7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d5583166103275760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964207369676e6572206164647265737300000000000000000000604482015260640160405180910390fd5b5050600880546001600160a01b0319166001600160a01b039290921691909117905550610495915050565b826003810192821561038b579160200282015b8281111561038b57825182906001600160401b0316905591602001919060010190610365565b506103979291506103d0565b5090565b826003810192821561038b579160200282015b8281111561038b578251829062ffffff169055916020019190600101906103ae565b5b80821115610397575f81556001016103d1565b80516001600160a01b03811681146103fa575f5ffd5b919050565b5f5f5f5f5f5f60c08789031215610414575f5ffd5b61041d876103e4565b955061042b602088016103e4565b9450610439604088016103e4565b9350610447606088016103e4565b9250610455608088016103e4565b915061046360a088016103e4565b90509295509295509295565b5f6020828403121561047f575f5ffd5b8151801515811461048e575f5ffd5b9392505050565b6080516142756104b45f395f8181610d50015261284601526142755ff3fe608060405234801561000f575f5ffd5b506004361061023f575f3560e01c806370a0823111610135578063c3896b89116100b4578063f293ed8811610079578063f293ed88146105bf578063f2fde38b146105d2578063f4fdf732146105e5578063f978fd61146105f8578063fff6cae91461061a575f5ffd5b8063c3896b8914610554578063c63568c714610567578063c96679fe1461057a578063d5b7670514610599578063e82bef29146105ac575f5ffd5b8063916dc266116100fa578063916dc266146104fc57806395d89b41146102915780639e5914da1461050f578063a64b6e5f14610522578063b108b4cb14610535575f5ffd5b806370a08231146104a957806372fbab3b146104bc57806385dc3004146104c45780638da5cb5b146104d7578063906e9dd0146104e9575f5ffd5b8063313ce567116101c157806359f0c0e71161018657806359f0c0e7146104205780635b7633d0146104435780635d80ca32146104565780635e61da081461045e57806368fe339614610496575f5ffd5b8063313ce5671461038157806333060d901461039b57806347998157146103c35780634b413c2a146103ee578063543b04551461040d575f5ffd5b806308adb4be1161020757806308adb4be146102e7578063119b99f21461033357806318160ddd1461034657806327e235e31461034f5780632e17de781461036e575f5ffd5b8063046dc166146102435780630547db5d14610258578063069a8f2d1461026b57806306fdde0314610291578063077a5a22146102c8575b5f5ffd5b6102566102513660046139d7565b610622565b005b610256610266366004613a47565b6106c5565b61027e610279366004613af4565b61090e565b6040519081526020015b60405180910390f35b6102bb6040518060400160405280600b81526020016a436f6d707574696c69747960a81b81525081565b6040516102889190613b27565b61027e6102d6366004613b5c565b60076020525f908152604090205481565b6102fa6102f5366004613b75565b61095a565b6040805164ffffffffff90951685526001600160a01b0390931660208501529015159183019190915260ff166060820152608001610288565b610256610341366004613b75565b6109b1565b61027e600f5481565b61027e61035d3660046139d7565b60106020525f908152604090205481565b61027e61037c366004613b9f565b6109f5565b610389601281565b60405160ff9091168152602001610288565b61027e6103a93660046139d7565b6001600160a01b03165f9081526012602052604090205490565b600a546103d6906001600160a01b031681565b6040516001600160a01b039091168152602001610288565b61027e6103fc3660046139d7565b60146020525f908152604090205481565b61025661041b366004613bc3565b611130565b61043361042e3660046139d7565b61130d565b6040519015158152602001610288565b6008546103d6906001600160a01b031681565b61027e611333565b61047161046c366004613b9f565b611402565b6040805164ffffffffff90931683526001600160a01b03909116602083015201610288565b6102566104a4366004613c3d565b611439565b61027e6104b73660046139d7565b611539565b61027e6115db565b6102566104d23660046139d7565b61168a565b5f546103d6906001600160a01b031681565b6102566104f73660046139d7565b611722565b600c546103d6906001600160a01b031681565b61025661051d3660046139d7565b61176d565b610256610530366004613cd8565b61180e565b61027e6105433660046139d7565b60136020525f908152604090205481565b6102566105623660046139d7565b6118e7565b600b546103d6906001600160a01b031681565b61027e6105883660046139d7565b60116020525f908152604090205481565b6102566105a7366004613d16565b6119aa565b600e546103d6906001600160a01b031681565b6102566105cd3660046139d7565b611a72565b6102566105e03660046139d7565b611b09565b61027e6105f33660046139d7565b611b7c565b610433610606366004613b9f565b60096020525f908152604090205460ff1681565b610256611ba9565b5f546001600160a01b031633146106545760405162461bcd60e51b815260040161064b90613d30565b60405180910390fd5b6001600160a01b0381166106a35760405162461bcd60e51b8152602060048201526016602482015275496e76616c6964207369676e6572206164647265737360501b604482015260640161064b565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b3233146106e45760405162461bcd60e51b815260040161064b90613d56565b6106ec611333565b886001600160a01b0316111561072c5760405162461bcd60e51b815260206004820152600560248201526403c313030360dc1b604482015260640161064b565b60028660ff1611156107665760405162461bcd60e51b81526020600482015260036024820152621e1e9960e91b604482015260640161064b565b61077284848484611d54565b15610786576107818887611ec2565b6107a7565b60ff86165f90815260076020526040902054156107a7576107a7888761208d565b6107b188886122d3565b600b54604051633bb1db8160e21b81523360048201819052916001600160a01b03169063eec76e0490602401602060405180830381865afa1580156107f8573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081c9190613d73565b1580156108905750600b54604051633bb1db8160e21b81526001600160a01b0388811660048301529091169063eec76e0490602401602060405180830381865afa15801561086c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108909190613d73565b156108f857600b54604051631ea690cf60e21b81526001600160a01b038881166004830152838116602483015290911690637a9a433c906044015f604051808303815f87803b1580156108e1575f5ffd5b505af11580156108f3573d5f5f3e3d5ffd5b505050505b610903818a8961260c565b505050505050505050565b6001600160a01b0382165f908152601260205260408120805482919060ff851690811061093d5761093d613d8e565b905f5260205f20019050610950816129fc565b9150505b92915050565b6012602052815f5260405f208181548110610973575f80fd5b5f9182526020909120015464ffffffffff811692506001600160a01b03600160281b820416915060ff600160c81b8204811691600160d01b90041684565b5f546001600160a01b031633146109da5760405162461bcd60e51b815260040161064b90613d30565b6001600160a01b039091165f90815260146020526040902055565b5f323314610a155760405162461bcd60e51b815260040161064b90613d56565b5f5f610a2084612a9b565b600a546040516370a0823160e01b81523060048201529294509092505f916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610a6e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a929190613da2565b6040516370a0823160e01b81523060048201529091505f905f5160206142205f395f51905f52906370a0823190602401602060405180830381865afa158015610add573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b019190613da2565b6040805160028082526060820183529293505f9290916020830190803683375050600a5482519293506001600160a01b0316918391505f90610b4557610b45613d8e565b60200260200101906001600160a01b031690816001600160a01b0316815250505f5160206142205f395f51905f5281600181518110610b8657610b86613d8e565b6001600160a01b0390921660209283029190910190910152604051634401edf760e11b81527310ed43c718714eb63d5aa57b78b54704e256024e90638803dbee90610bdd9088908790869030904290600401613e10565b5f604051808303815f875af1158015610bf8573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610c1f9190810190613e9f565b50600a546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015610c66573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8a9190613da2565b6040516370a0823160e01b81523060048201529091505f905f5160206142205f395f51905f52906370a0823190602401602060405180830381865afa158015610cd5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf99190613da2565b90505f610d068387613f49565b90505f610d138684613f49565b90505f88821115610d2b57610d288983613f49565b90505b5f610d363383612cd4565b600b5460405163195006c760e11b815233600482015260ff7f00000000000000000000000000000000000000000000000000000000000000001660248201529192505f916001600160a01b03909116906332a00d8e906044015f60405180830381865afa158015610da9573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610dd09190810190613f5c565b90505f5b81518160ff161015610e46578b60135f848460ff1681518110610df957610df9613d8e565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f828254610e2e9190613f49565b90915550819050610e3e81613fec565b915050610dd4565b505f610e528285612e7e565b90505f6064610e6286600961400a565b610e6c9190614035565b90505f6064610e7c87600361400a565b610e869190614035565b90508115610f9d576040805160028082526060820183525f926020830190803683370190505090505f5160206142205f395f51905f52815f81518110610ece57610ece613d8e565b6001600160a01b039283166020918202929092010152600c54825191169082906001908110610eff57610eff613d8e565b6001600160a01b03909216602092830291909101909101526040516338ed173960e01b81527310ed43c718714eb63d5aa57b78b54704e256024e906338ed173990610f589086905f90869061dead904290600401613e10565b5f604051808303815f875af1158015610f73573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f9a9190810190613e9f565b50505b801561102257600e5460405163a9059cbb60e01b81525f5160206142205f395f51905f529163a9059cbb91610fe0916001600160a01b0316908590600401614048565b6020604051808303815f875af1158015610ffc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110209190613d73565b505b5f5160206142205f395f51905f5263a9059cbb338385876110438b8e613f49565b61104d9190613f49565b6110579190613f49565b6110619190613f49565b6040518363ffffffff1660e01b815260040161107e929190614048565b6020604051808303815f875af115801561109a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110be9190613d73565b50600a546040516337470d6f60e21b8152600481018a90526001600160a01b039091169063dd1c35bc906024015f604051808303815f87803b158015611102575f5ffd5b505af1158015611114573d5f5f3e3d5ffd5b505050508e9f505050505050505050505050505050505b919050565b5f546001600160a01b031633146111595760405162461bcd60e51b815260040161064b90613d30565b6001600160a01b0386165f9081526012602052604090205485106111b65760405162461bcd60e51b8152602060048201526014602482015273092dcecc2d8d2c840e4cac6dee4c840d2dcc8caf60631b604482015260640161064b565b60028160ff1611156111ff5760405162461bcd60e51b8152602060048201526012602482015271092dcecc2d8d2c840e6e8c2d6ca92dcc8caf60731b604482015260640161064b565b6001600160a01b0386165f90815260126020526040812080548790811061122857611228613d8e565b5f918252602090912001805464ffffffffff87166001600160c81b0319821617600160281b6001600160a01b038881168281029390931761ffff60c81b1916600160c81b8915150260ff60d01b191617600160d01b60ff891602178555939450909104909116908114611303576001600160a01b038881165f90815260106020526040902054908616906112bd908390613f49565b6112c79190614061565b6001600160a01b03808a165f90815260106020526040902091909155600f54908616906112f5908390613f49565b6112ff9190614061565b600f555b5050505050505050565b6001600160a01b03165f90815260106020526040902054680ad78ebc5ac6200000111590565b5f5f61133d6115db565b90505f600a5f9054906101000a90046001600160a01b03166001600160a01b0316631a7abd976040518163ffffffff1660e01b8152600401602060405180830381865afa158015611390573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113b49190614074565b90505f6113c260648361409a565b6001600160701b03169050808311156113de575f935050505090565b6113fa6113eb8483613f49565b683635c9adc5dea0000061349c565b935050505090565b60158181548110611411575f80fd5b5f9182526020909120015464ffffffffff81169150600160281b90046001600160a01b031682565b3233146114585760405162461bcd60e51b815260040161064b90613d56565b611460611333565b876001600160a01b031611156114a05760405162461bcd60e51b815260206004820152600560248201526403c313030360dc1b604482015260640161064b565b60028560ff1611156114da5760405162461bcd60e51b81526020600482015260036024820152621e1e9960e91b604482015260640161064b565b6114e684848484611d54565b156114fa576114f58786611ec2565b61151b565b60ff85165f908152600760205260409020541561151b5761151b878661208d565b61152587876122d3565b61153033888761260c565b50505050505050565b6001600160a01b0381165f9081526012602052604081208054156115d55780545f9061156790600190613f49565b90505b5f82828154811061157d5761157d613d8e565b5f91825260208220018054909250600160c81b900460ff16151590036115b3576115a6816129fc565b6115b09085614061565b93505b815f036115c057506115d3565b50806115cb816140c7565b91505061156a565b505b50919050565b6015545f908082036115ee575f91505090565b5f6115fa603c42613f49565b600f549091505f61160c600185613f49565b90505b5f6015828154811061162357611623613d8e565b5f918252602090912001805490915064ffffffffff16841115611646575061167b565b80546001600160a01b03600160281b909104169250815f03611668575061167b565b5080611673816140c7565b91505061160f565b5080600f546113fa9190613f49565b5f546001600160a01b031633146116b35760405162461bcd60e51b815260040161064b90613d30565b6001600160a01b0381166117005760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642066756e64206164647265737360601b604482015260640161064b565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461174b5760405162461bcd60e51b815260040161064b90613d30565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146117965760405162461bcd60e51b815260040161064b90613d30565b6001600160a01b0381166117ec5760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420726566657272616c20616464726573730000000000000000604482015260640161064b565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146118375760405162461bcd60e51b815260040161064b90613d30565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb906118659085908590600401614048565b6020604051808303815f875af1158015611881573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118a59190613d73565b6118e25760405162461bcd60e51b815260206004820152600e60248201526d3a3930b739b332b91032b93937b960911b604482015260640161064b565b505050565b5f546001600160a01b031633146119105760405162461bcd60e51b815260040161064b90613d30565b600a80546001600160a01b0319166001600160a01b03831690811790915560405163095ea7b360e01b815263095ea7b390611966907310ed43c718714eb63d5aa57b78b54704e256024e905f1990600401614048565b6020604051808303815f875af1158015611982573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119a69190613d73565b5050565b5f546001600160a01b031633146119d35760405162461bcd60e51b815260040161064b90613d30565b60028260ff161115611a1c5760405162461bcd60e51b8152602060048201526012602482015271092dcecc2d8d2c840e6e8c2d6ca92dcc8caf60731b604482015260640161064b565b6103e8811115611a5d5760405162461bcd60e51b815260206004820152600c60248201526b08ccaca40e8dede40d0d2ced60a31b604482015260640161064b565b60ff9091165f90815260076020526040902055565b5f546001600160a01b03163314611a9b5760405162461bcd60e51b815260040161064b90613d30565b6001600160a01b038116611ae75760405162461bcd60e51b8152602060048201526013602482015272496e76616c696420464343206164647265737360681b604482015260640161064b565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314611b325760405162461bcd60e51b815260040161064b90613d30565b5f80546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001600160a01b0381165f9081526014602090815260408083205460139092528220546109549190614061565b6040516370a0823160e01b81523060048201525f905f5160206142205f395f51905f52906370a0823190602401602060405180830381865afa158015611bf1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c159190613da2565b90505f600a5f9054906101000a90046001600160a01b03166001600160a01b031663c816841b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c68573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c8c91906140dc565b60405163a9059cbb60e01b81529091505f5160206142205f395f51905f529063a9059cbb90611cc19084908690600401614048565b6020604051808303815f875af1158015611cdd573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d019190613d73565b50806001600160a01b031663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611d3a575f5ffd5b505af1158015611d4c573d5f5f3e3d5ffd5b505050505050565b5f811580611d60575083155b15611d6c57505f611eba565b611d7685856134b3565b611d8157505f611eba565b5f611dc086868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506134f092505050565b90505f611e028286868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061352a92505050565b6008549091506001600160a01b03808316911614611e24575f92505050611eba565b5f8585604051611e359291906140f7565b60408051918290039091205f8181526009602052919091205490915060ff1615611e9a5760405162461bcd60e51b815260206004820152601660248201527514da59db985d1d5c9948185b1c9958591e481d5cd95960521b604482015260640161064b565b5f908152600960205260409020805460ff19166001908117909155925050505b949350505050565b6040805160028082526060820183525f926020830190803683370190505090505f5160206142205f395f51905f52815f81518110611f0257611f02613d8e565b6001600160a01b039283166020918202929092010152600a54825191169082906001908110611f3357611f33613d8e565b6001600160a01b0392831660209182029290920181019190915260ff84165f90815260079091526040812054909161271091611f7091871661400a565b611f7a9190614035565b60405163d06ca61f60e01b81529091505f907310ed43c718714eb63d5aa57b78b54704e256024e9063d06ca61f90611fb89085908790600401614106565b5f60405180830381865afa158015611fd2573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611ff99190810190613e9f565b600a5481519192506001600160a01b03169063a9059cbb9061dead908490600190811061202857612028613d8e565b60200260200101516040518363ffffffff1660e01b815260040161204d929190614048565b6020604051808303815f875af1158015612069573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d4c9190613d73565b6040805160028082526060820183525f926020830190803683370190505090505f5160206142205f395f51905f52815f815181106120cd576120cd613d8e565b6001600160a01b039283166020918202929092010152600a548251911690829060019081106120fe576120fe613d8e565b6001600160a01b0392831660209182029290920181019190915260ff84165f9081526007909152604081205490916127109161213b91871661400a565b6121459190614035565b60405163d06ca61f60e01b81529091505f907310ed43c718714eb63d5aa57b78b54704e256024e9063d06ca61f906121839085908790600401614106565b5f60405180830381865afa15801561219d573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526121c49190810190613e9f565b90505f816001815181106121da576121da613d8e565b6020908102919091010151600a546040516323b872dd60e01b8152336004820152306024820152604481018390529192506001600160a01b0316906323b872dd906064016020604051808303815f875af115801561223a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061225e9190613d73565b50600a5460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906122939061dead908590600401614048565b6020604051808303815f875af11580156122af573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115309190613d73565b6040516323b872dd60e01b81523360048201523060248201526001600160a01b03831660448201525f5160206142205f395f51905f52906323b872dd906064016020604051808303815f875af115801561232f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123539190613d73565b506040805160028082526060820183525f926020830190803683370190505090505f5160206142205f395f51905f52815f8151811061239457612394613d8e565b6001600160a01b039283166020918202929092010152600a548251911690829060019081106123c5576123c5613d8e565b6001600160a01b039283166020918202929092010152600a546040516370a0823160e01b81523060048201525f9291909116906370a0823190602401602060405180830381865afa15801561241c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124409190613da2565b90507310ed43c718714eb63d5aa57b78b54704e256024e635c11d79561246760028761411e565b858530426040518663ffffffff1660e01b815260040161248b95949392919061414c565b5f604051808303815f87803b1580156124a2575f5ffd5b505af11580156124b4573d5f5f3e3d5ffd5b5050600a546040516370a0823160e01b81523060048201525f93506001600160a01b0390911691506370a0823190602401602060405180830381865afa158015612500573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125249190613da2565b600a549091507310ed43c718714eb63d5aa57b78b54704e256024e9063e8e33700905f5160206142205f395f51905f52906001600160a01b031661256960028a61411e565b6125738787613f49565b6040516001600160e01b031960e087901b1681526001600160a01b03948516600482015292841660248401529216604482015260648101919091525f6084820181905260a4820181905260c48201524260e4820152610104016060604051808303815f875af11580156125e8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113039190614172565b600b54604051633bb1db8160e21b81526001600160a01b0385811660048301529091169063eec76e0490602401602060405180830381865afa158015612654573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126789190613d73565b6126ad5760405162461bcd60e51b81526020600482015260066024820152650848589a5b9960d21b604482015260640161064b565b60408051808201825264ffffffffff428116808352600f80546001600160a01b039081166020808701918252601580546001810182555f91825288517f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475909101805494518616600160281b026001600160c81b03199095169190981617929092179095558651608081018852968701819052928652871692850183905260ff861660608601528054939493909190612766908490614061565b90915550506001600160a01b038581165f908152601060205260408120805492871692909190612797908490614061565b90915550506001600160a01b038581165f818152601260209081526040808320805460018101825581855283852088519082018054958a01518a86015160608c015164ffffffffff9094166001600160c81b031990981697909717600160281b918b16919091021761ffff60c81b1916600160c81b9615159690960260ff60d01b191695909517600160d01b60ff9283160217909455600b54925163195006c760e11b815260048101969096527f000000000000000000000000000000000000000000000000000000000000000090931660248601529491939116906332a00d8e906044015f60405180830381865afa158015612896573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526128bd9190810190613f5c565b90505f5b81518160ff16101561293c57876001600160a01b031660135f848460ff16815181106128ef576128ef613d8e565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f8282546129249190614061565b9091555081905061293481613fec565b9150506128c1565b506040516001600160a01b0388811682528916905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3876001600160a01b03167f9cfd25589d1eb8ad71e342a86a8524e83522e3936c0803048c08f6d9ad974f4088428560048b60ff16600381106129c3576129c3613d8e565b0154604080516001600160a01b039095168552602085019390935291830152606082015260800160405180910390a25050505050505050565b80545f906001600160a01b03600160281b8204169064ffffffffff1682612a23824261419d565b9050612a328162278d00613552565b90508064ffffffffff165f03612a4a57829350612a93565b8454612a9090612a899064ffffffffff841690612a8390600190600160d01b900460ff1660038110612a7e57612a7e613d8e565b015490565b9061356e565b84906135cd565b93505b505050919050565b335f8181526012602052604081208054919283929091908390829087908110612ac657612ac6613d8e565b5f918252602090912001805490915064ffffffffff811690600490600160d01b900460ff1660038110612afb57612afb613d8e565b0154612b078242613f49565b1015612b4d5760405162461bcd60e51b8152602060048201526015602482015274151a19481d1a5b59481a5cc81b9bdd081c9a59da1d605a1b604482015260640161064b565b8154600160c81b900460ff1615612b8c5760405162461bcd60e51b8152602060048201526003602482015262616c7760e81b604482015260640161064b565b8154600f8054600160281b9092046001600160a01b0316965086915f90612bb4908490613f49565b90915550506001600160a01b0384165f9081526010602052604081208054879290612be0908490613f49565b90915550506040518581525f906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3612c2e826129fc565b825460ff60c81b1916600160c81b1783556001600160a01b0385165f90815260116020526040902054909650612c65906001614061565b6001600160a01b0385165f8181526011602090815260409182902093909355805189815264ffffffffff4216938101939093528201899052907f48711929c842404f1d698f9525c36a831e8224d0bac22977e91904b3fe9f65649060600160405180910390a250505050915091565b5f6064612ce283600561400a565b612cec9190614035565b600b54604051633b0f0f2f60e01b81526001600160a01b0386811660048301529293505f9290911690633b0f0f2f90602401602060405180830381865afa158015612d39573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d5d91906140dc565b90506001600160a01b03811615801590612d7b5750612d7b8161130d565b15612df85760405163a9059cbb60e01b81525f5160206142205f395f51905f529063a9059cbb90612db29084908690600401614048565b6020604051808303815f875af1158015612dce573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612df29190613d73565b50612e77565b600d5460405163a9059cbb60e01b81525f5160206142205f395f51905f529163a9059cbb91612e35916001600160a01b0316908690600401614048565b6020604051808303815f875af1158015612e51573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e759190613d73565b505b5092915050565b5f80806018816064612e90838861400a565b612e9a9190614035565b94505f5b87518110156133e957878181518110612eb957612eb9613d8e565b60200260200101519450612ecc85611b7c565b93506a0422ca8b0a00a4250000008410158015612ee857508183115b8015612ef85750612ef88561130d565b15612f94575f5160206142205f395f51905f5263a9059cbb866064612f1d8688613f49565b612f27908c61400a565b612f319190614035565b6040518363ffffffff1660e01b8152600401612f4e929190614048565b6020604051808303815f875af1158015612f6a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f8e9190613d73565b50601891505b69d3c21bcecceda10000008410158015612fb857506a0422ca8b0a00a42500000084105b8015612fc45750601482105b8015612fd45750612fd48561130d565b15613071575f5160206142205f395f51905f5263a9059cbb866064612ffa866014613f49565b613004908c61400a565b61300e9190614035565b6040518363ffffffff1660e01b815260040161302b929190614048565b6020604051808303815f875af1158015613047573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061306b9190613d73565b50601491505b6969e10de76676d08000008410158015613094575069d3c21bcecceda100000084105b80156130a05750601082105b80156130b057506130b08561130d565b1561314d575f5160206142205f395f51905f5263a9059cbb8660646130d6866010613f49565b6130e0908c61400a565b6130ea9190614035565b6040518363ffffffff1660e01b8152600401613107929190614048565b6020604051808303815f875af1158015613123573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131479190613d73565b50601091505b69152d02c7e14af6800000841015801561317057506969e10de76676d080000084105b801561317c5750600c82105b801561318c575061318c8561130d565b15613229575f5160206142205f395f51905f5263a9059cbb8660646131b286600c613f49565b6131bc908c61400a565b6131c69190614035565b6040518363ffffffff1660e01b81526004016131e3929190614048565b6020604051808303815f875af11580156131ff573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132239190613d73565b50600c91505b690a968163f0a57b400000841015801561324c575069152d02c7e14af680000084105b80156132585750600882105b801561326857506132688561130d565b15613305575f5160206142205f395f51905f5263a9059cbb86606461328e866008613f49565b613298908c61400a565b6132a29190614035565b6040518363ffffffff1660e01b81526004016132bf929190614048565b6020604051808303815f875af11580156132db573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132ff9190613d73565b50600891505b69021e19e0c9bab240000084101580156133285750690a968163f0a57b40000084105b80156133345750600482105b801561334457506133448561130d565b156133e1575f5160206142205f395f51905f5263a9059cbb86606461336a866004613f49565b613374908c61400a565b61337e9190614035565b6040518363ffffffff1660e01b815260040161339b929190614048565b6020604051808303815f875af11580156133b7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133db9190613d73565b50600491505b600101612e9e565b508082111561349257600d545f5160206142205f395f51905f529063a9059cbb906001600160a01b0316606461341f858b61400a565b6134299190614035565b6134339089613f49565b6040518363ffffffff1660e01b8152600401613450929190614048565b6020604051808303815f875af115801561346c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134909190613d73565b505b5050505092915050565b5f8183106134aa57816134ac565b825b9392505050565b5f603982146134c357505f610954565b603583013560e01c804281118015906134e7575061012c6134e48242613f49565b11155b95945050505050565b5f6134fb82516135de565b8260405160200161350d9291906141d1565b604051602081830303815290604052805190602001209050919050565b5f5f5f5f613538868661366e565b92509250925061354882826136b7565b5090949350505050565b5f8164ffffffffff168364ffffffffff16106134aa57816134ac565b5f82816001841661358757670de0b6b3a7640000613589565b815b9050600184901c93505b83156135c7576135a3828361376f565b915060018416156135bb576135b8818361376f565b90505b600184901c9350613593565b806134e7565b5f6134ac6135db848461376f565b90565b60605f6135ea83613821565b60010190505f8167ffffffffffffffff81111561360957613609613db9565b6040519080825280601f01601f191660200182016040528015613633576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461363d57509392505050565b5f5f5f83516041036136a5576020840151604085015160608601515f1a613697888285856138f8565b9550955095505050506136b0565b505081515f91506002905b9250925092565b5f8260038111156136ca576136ca61420b565b036136d3575050565b60018260038111156136e7576136e761420b565b036137055760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156137195761371961420b565b0361373a5760405163fce698f760e01b81526004810182905260240161064b565b600382600381111561374e5761374e61420b565b036119a6576040516335e2f38360e21b81526004810182905260240161064b565b5f80805f19848609848602925082811083820303915050805f036137a05750670de0b6b3a764000090049050610954565b670de0b6b3a764000081106137d257604051635173648d60e01b8152600481018690526024810185905260440161064b565b5f670de0b6b3a764000085870962040000818503049310909103600160ee1b02919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690291505092915050565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061385f5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061388b576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106138a957662386f26fc10000830492506010015b6305f5e10083106138c1576305f5e100830492506008015b61271083106138d557612710830492506004015b606483106138e7576064830492506002015b600a83106109545760010192915050565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561393157505f915060039050826139b6565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613982573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b0381166139ad57505f9250600191508290506139b6565b92505f91508190505b9450945094915050565b6001600160a01b03811681146139d4575f5ffd5b50565b5f602082840312156139e7575f5ffd5b81356134ac816139c0565b803560ff8116811461112b575f5ffd5b5f5f83601f840112613a12575f5ffd5b50813567ffffffffffffffff811115613a29575f5ffd5b602083019150836020828501011115613a40575f5ffd5b9250929050565b5f5f5f5f5f5f5f5f60c0898b031215613a5e575f5ffd5b8835613a69816139c0565b975060208901359650613a7e60408a016139f2565b95506060890135613a8e816139c0565b9450608089013567ffffffffffffffff811115613aa9575f5ffd5b613ab58b828c01613a02565b90955093505060a089013567ffffffffffffffff811115613ad4575f5ffd5b613ae08b828c01613a02565b999c989b5096995094979396929594505050565b5f5f60408385031215613b05575f5ffd5b8235613b10816139c0565b9150613b1e602084016139f2565b90509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215613b6c575f5ffd5b6134ac826139f2565b5f5f60408385031215613b86575f5ffd5b8235613b91816139c0565b946020939093013593505050565b5f60208284031215613baf575f5ffd5b5035919050565b80151581146139d4575f5ffd5b5f5f5f5f5f5f60c08789031215613bd8575f5ffd5b8635613be3816139c0565b955060208701359450604087013564ffffffffff81168114613c03575f5ffd5b93506060870135613c13816139c0565b92506080870135613c2381613bb6565b9150613c3160a088016139f2565b90509295509295509295565b5f5f5f5f5f5f5f60a0888a031215613c53575f5ffd5b8735613c5e816139c0565b965060208801359550613c73604089016139f2565b9450606088013567ffffffffffffffff811115613c8e575f5ffd5b613c9a8a828b01613a02565b909550935050608088013567ffffffffffffffff811115613cb9575f5ffd5b613cc58a828b01613a02565b989b979a50959850939692959293505050565b5f5f5f60608486031215613cea575f5ffd5b8335613cf5816139c0565b92506020840135613d05816139c0565b929592945050506040919091013590565b5f5f60408385031215613d27575f5ffd5b613b91836139f2565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b602080825260039082015262454f4160e81b604082015260600190565b5f60208284031215613d83575f5ffd5b81516134ac81613bb6565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215613db2575f5ffd5b5051919050565b634e487b7160e01b5f52604160045260245ffd5b5f8151808452602084019350602083015f5b82811015613e065781516001600160a01b0316865260209586019590910190600101613ddf565b5093949350505050565b85815284602082015260a060408201525f613e2e60a0830186613dcd565b6001600160a01b0394909416606083015250608001529392505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715613e7457613e74613db9565b604052919050565b5f67ffffffffffffffff821115613e9557613e95613db9565b5060051b60200190565b5f60208284031215613eaf575f5ffd5b815167ffffffffffffffff811115613ec5575f5ffd5b8201601f81018413613ed5575f5ffd5b8051613ee8613ee382613e7c565b613e4b565b8082825260208201915060208360051b850101925086831115613f09575f5ffd5b6020840193505b82841015613f2b578351825260209384019390910190613f10565b9695505050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561095457610954613f35565b5f60208284031215613f6c575f5ffd5b815167ffffffffffffffff811115613f82575f5ffd5b8201601f81018413613f92575f5ffd5b8051613fa0613ee382613e7c565b8082825260208201915060208360051b850101925086831115613fc1575f5ffd5b6020840193505b82841015613f2b578351613fdb816139c0565b825260209384019390910190613fc8565b5f60ff821660ff810361400157614001613f35565b60010192915050565b808202811582820484141761095457610954613f35565b634e487b7160e01b5f52601260045260245ffd5b5f8261404357614043614021565b500490565b6001600160a01b03929092168252602082015260400190565b8082018082111561095457610954613f35565b5f60208284031215614084575f5ffd5b81516001600160701b03811681146134ac575f5ffd5b5f6001600160701b038316806140b2576140b2614021565b806001600160701b0384160491505092915050565b5f816140d5576140d5613f35565b505f190190565b5f602082840312156140ec575f5ffd5b81516134ac816139c0565b818382375f9101908152919050565b828152604060208201525f611eba6040830184613dcd565b5f6001600160a01b0383168061413657614136614021565b6001600160a01b03929092169190910492915050565b60018060a01b038616815284602082015260a060408201525f613e2e60a0830186613dcd565b5f5f5f60608486031215614184575f5ffd5b5050815160208301516040909301519094929350919050565b64ffffffffff828116828216039081111561095457610954613f35565b5f81518060208401855e5f93019283525090919050565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081525f611eba614205601a8401866141ba565b846141ba565b634e487b7160e01b5f52602160045260245ffdfe00000000000000000000000055d398326f99059ff775485246999027b3197955a264697066735822122095d1639240b301b4eed6052e462e86e9dd3e31a157194ac93fb668a21f0fc93464736f6c634300081e0033000000000000000000000000efd1fd68b0d78bfd10264f537725bbbb1b33333300000000000000000000000010c107612196c26e69baf322ae766776dd888888000000000000000000000000fd0c01b851e0d7b7f4215fad3f9f34294f9cc6d0000000000000000000000000869cc0f1cb6b77f6939fa8165ebdea850757bdb7000000000000000000000000e843863ea1a69a4a061ad50268c2965f83666666000000000000000000000000d5e613bf5403a0d5196626d708ad176e4a1c7994