0 txs
0 calls
constructor
constructor(address owner_, 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)
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()
syncData
nonpayablefunction syncData(tuple[] dataList)
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
0x610100604052670de0b6bbbcfeb9c060a0908152670de0b6c3c63b40a060c052670de0b6d3cc89fcc060e05261003990600190600361035b565b506040805160608101825262093a8081526213c680602082015262278d009181019190915261006c9060049060036103a4565b50601e60805234801561007d575f5ffd5b5060405161486e38038061486e83398101604081905261009c91610408565b5f80546001600160a01b0319166001600160a01b03891690811782556040518992907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600b80546001600160a01b038881166001600160a01b031992831617909255600d80549287169290911691909117905560405163095ea7b360e01b81527310ed43c718714eb63d5aa57b78b54704e256024e60048201525f1960248201527355d398326f99059ff775485246999027b31979559063095ea7b3906044016020604051808303815f875af115801561017d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a19190610489565b50600a80546001600160a01b0319166001600160a01b03871690811790915560405163095ea7b360e01b81527310ed43c718714eb63d5aa57b78b54704e256024e60048201525f19602482015263095ea7b3906044016020604051808303815f875af1158015610213573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102379190610489565b50600c80546001600160a01b038085166001600160a01b031992831617909255600e80548484169216919091179055600760205260c87f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5561012c7fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b8285560025f526101f47fb7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d55831661032f5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964207369676e6572206164647265737300000000000000000000604482015260640160405180910390fd5b5050600880546001600160a01b0319166001600160a01b0392909216919091179055506104af92505050565b8260038101928215610394579160200282015b8281111561039457825182906001600160401b031690559160200191906001019061036e565b506103a09291506103d9565b5090565b8260038101928215610394579160200282015b82811115610394578251829062ffffff169055916020019190600101906103b7565b5b808211156103a0575f81556001016103da565b80516001600160a01b0381168114610403575f5ffd5b919050565b5f5f5f5f5f5f5f60e0888a03121561041e575f5ffd5b610427886103ed565b9650610435602089016103ed565b9550610443604089016103ed565b9450610451606089016103ed565b935061045f608089016103ed565b925061046d60a089016103ed565b915061047b60c089016103ed565b905092959891949750929550565b5f60208284031215610499575f5ffd5b815180151581146104a8575f5ffd5b9392505050565b6080516143a06104ce5f395f8181610d22015261294701526143a05ff3fe608060405234801561000f575f5ffd5b506004361061023f575f3560e01c806372fbab3b11610135578063c3896b89116100b4578063f293ed8811610079578063f293ed88146105bf578063f2fde38b146105d2578063f4fdf732146105e5578063f978fd61146105f8578063fff6cae91461061a575f5ffd5b8063c3896b8914610554578063c63568c714610567578063c96679fe1461057a578063d5b7670514610599578063e82bef29146105ac575f5ffd5b8063916dc266116100fa578063916dc266146104fc57806395d89b41146102915780639e5914da1461050f578063a64b6e5f14610522578063b108b4cb14610535575f5ffd5b806372fbab3b146104a95780637dca503b146104b157806385dc3004146104c45780638da5cb5b146104d7578063906e9dd0146104e9575f5ffd5b8063313ce567116101c15780635b7633d0116101865780635b7633d0146104305780635d80ca32146104435780635e61da081461044b57806368fe33961461048357806370a0823114610496575f5ffd5b8063313ce5671461038157806333060d901461039b57806347998157146103c35780634b413c2a146103ee57806359f0c0e71461040d575f5ffd5b806308adb4be1161020757806308adb4be146102e7578063119b99f21461033357806318160ddd1461034657806327e235e31461034f5780632e17de781461036e575f5ffd5b8063046dc166146102435780630547db5d14610258578063069a8f2d1461026b57806306fdde0314610291578063077a5a22146102c8575b5f5ffd5b610256610251366004613ad8565b610622565b005b610256610266366004613b48565b6106c5565b61027e610279366004613bf5565b6108e0565b6040519081526020015b60405180910390f35b6102bb6040518060400160405280600b81526020016a436f6d707574696c69747960a81b81525081565b6040516102889190613c28565b61027e6102d6366004613c5d565b60076020525f908152604090205481565b6102fa6102f5366004613c76565b61092c565b6040805164ffffffffff90951685526001600160a01b0390931660208501529015159183019190915260ff166060820152608001610288565b610256610341366004613c76565b610983565b61027e600f5481565b61027e61035d366004613ad8565b60106020525f908152604090205481565b61027e61037c366004613ca0565b6109c7565b610389601281565b60405160ff9091168152602001610288565b61027e6103a9366004613ad8565b6001600160a01b03165f9081526012602052604090205490565b600a546103d6906001600160a01b031681565b6040516001600160a01b039091168152602001610288565b61027e6103fc366004613ad8565b60146020525f908152604090205481565b61042061041b366004613ad8565b611192565b6040519015158152602001610288565b6008546103d6906001600160a01b031681565b61027e6111b8565b61045e610459366004613ca0565b611287565b6040805164ffffffffff90931683526001600160a01b03909116602083015201610288565b610256610491366004613cb7565b6112be565b61027e6104a4366004613ad8565b611390565b61027e611432565b6102566104bf366004613d52565b6114e1565b6102566104d2366004613ad8565b611786565b5f546103d6906001600160a01b031681565b6102566104f7366004613ad8565b61181e565b600c546103d6906001600160a01b031681565b61025661051d366004613ad8565b611869565b610256610530366004613dc3565b61190a565b61027e610543366004613ad8565b60136020525f908152604090205481565b610256610562366004613ad8565b6119de565b600b546103d6906001600160a01b031681565b61027e610588366004613ad8565b60116020525f908152604090205481565b6102566105a7366004613e01565b611aa1565b600e546103d6906001600160a01b031681565b6102566105cd366004613ad8565b611b69565b6102566105e0366004613ad8565b611c00565b61027e6105f3366004613ad8565b611c73565b610420610606366004613ca0565b60096020525f908152604090205460ff1681565b610256611ca0565b5f546001600160a01b031633146106545760405162461bcd60e51b815260040161064b90613e1b565b60405180910390fd5b6001600160a01b0381166106a35760405162461bcd60e51b8152602060048201526016602482015275496e76616c6964207369676e6572206164647265737360501b604482015260640161064b565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b3233146106e45760405162461bcd60e51b815260040161064b90613e41565b6106ec6111b8565b886001600160a01b031611156107145760405162461bcd60e51b815260040161064b90613e5e565b60028660ff1611156107385760405162461bcd60e51b815260040161064b90613e7d565b61074484848484611e4b565b15610758576107538887611fb9565b610779565b60ff86165f9081526007602052604090205415610779576107798887612184565b61078388886123ca565b600b54604051633bb1db8160e21b81523360048201819052916001600160a01b03169063eec76e0490602401602060405180830381865afa1580156107ca573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ee9190613e9a565b1580156108625750600b54604051633bb1db8160e21b81526001600160a01b0388811660048301529091169063eec76e0490602401602060405180830381865afa15801561083e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108629190613e9a565b156108ca57600b54604051631ea690cf60e21b81526001600160a01b038881166004830152838116602483015290911690637a9a433c906044015f604051808303815f87803b1580156108b3575f5ffd5b505af11580156108c5573d5f5f3e3d5ffd5b505050505b6108d5818a8961270d565b505050505050505050565b6001600160a01b0382165f908152601260205260408120805482919060ff851690811061090f5761090f613eb9565b905f5260205f2001905061092281612afd565b9150505b92915050565b6012602052815f5260405f208181548110610945575f80fd5b5f9182526020909120015464ffffffffff811692506001600160a01b03600160281b820416915060ff600160c81b8204811691600160d01b90041684565b5f546001600160a01b031633146109ac5760405162461bcd60e51b815260040161064b90613e1b565b6001600160a01b039091165f90815260146020526040902055565b5f3233146109e75760405162461bcd60e51b815260040161064b90613e41565b5f5f6109f284612b9c565b600a546040516370a0823160e01b81523060048201529294509092505f916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610a40573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a649190613ecd565b6040516370a0823160e01b81523060048201529091505f905f51602061434b5f395f51905f52906370a0823190602401602060405180830381865afa158015610aaf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad39190613ecd565b6040805160028082526060820183529293505f9290916020830190803683375050600a5482519293506001600160a01b0316918391505f90610b1757610b17613eb9565b60200260200101906001600160a01b031690816001600160a01b0316815250505f51602061434b5f395f51905f5281600181518110610b5857610b58613eb9565b6001600160a01b0390921660209283029190910190910152604051634401edf760e11b81527310ed43c718714eb63d5aa57b78b54704e256024e90638803dbee90610baf9088908790869030904290600401613f3b565b5f604051808303815f875af1158015610bca573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610bf19190810190613fca565b50600a546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015610c38573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c5c9190613ecd565b6040516370a0823160e01b81523060048201529091505f905f51602061434b5f395f51905f52906370a0823190602401602060405180830381865afa158015610ca7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccb9190613ecd565b90505f610cd88387614074565b90505f610ce58684614074565b90505f88821115610cfd57610cfa8983614074565b90505b5f610d083383612dd5565b600b5460405163195006c760e11b815233600482015260ff7f00000000000000000000000000000000000000000000000000000000000000001660248201529192505f916001600160a01b03909116906332a00d8e906044015f60405180830381865afa158015610d7b573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610da29190810190614087565b90505f5b81518160ff161015610ea8578b60135f848460ff1681518110610dcb57610dcb613eb9565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205410610e51578b60135f848460ff1681518110610e1157610e11613eb9565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f828254610e469190614074565b90915550610e969050565b5f60135f848460ff1681518110610e6a57610e6a613eb9565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20819055505b80610ea081614117565b915050610da6565b505f610eb48285612f7f565b90505f6064610ec4866009614135565b610ece9190614160565b90505f6064610ede876003614135565b610ee89190614160565b90508115610fff576040805160028082526060820183525f926020830190803683370190505090505f51602061434b5f395f51905f52815f81518110610f3057610f30613eb9565b6001600160a01b039283166020918202929092010152600c54825191169082906001908110610f6157610f61613eb9565b6001600160a01b03909216602092830291909101909101526040516338ed173960e01b81527310ed43c718714eb63d5aa57b78b54704e256024e906338ed173990610fba9086905f90869061dead904290600401613f3b565b5f604051808303815f875af1158015610fd5573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610ffc9190810190613fca565b50505b801561108457600e5460405163a9059cbb60e01b81525f51602061434b5f395f51905f529163a9059cbb91611042916001600160a01b0316908590600401614173565b6020604051808303815f875af115801561105e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110829190613e9a565b505b5f51602061434b5f395f51905f5263a9059cbb338385876110a58b8e614074565b6110af9190614074565b6110b99190614074565b6110c39190614074565b6040518363ffffffff1660e01b81526004016110e0929190614173565b6020604051808303815f875af11580156110fc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111209190613e9a565b50600a546040516337470d6f60e21b8152600481018a90526001600160a01b039091169063dd1c35bc906024015f604051808303815f87803b158015611164575f5ffd5b505af1158015611176573d5f5f3e3d5ffd5b505050508e9f505050505050505050505050505050505b919050565b6001600160a01b03165f90815260106020526040902054680ad78ebc5ac6200000111590565b5f5f6111c2611432565b90505f600a5f9054906101000a90046001600160a01b03166001600160a01b0316631a7abd976040518163ffffffff1660e01b8152600401602060405180830381865afa158015611215573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611239919061418c565b90505f6112476064836141b2565b6001600160701b0316905080831115611263575f935050505090565b61127f6112708483614074565b683635c9adc5dea0000061359d565b935050505090565b60158181548110611296575f80fd5b5f9182526020909120015464ffffffffff81169150600160281b90046001600160a01b031682565b3233146112dd5760405162461bcd60e51b815260040161064b90613e41565b6112e56111b8565b876001600160a01b0316111561130d5760405162461bcd60e51b815260040161064b90613e5e565b60028560ff1611156113315760405162461bcd60e51b815260040161064b90613e7d565b61133d84848484611e4b565b156113515761134c8786611fb9565b611372565b60ff85165f9081526007602052604090205415611372576113728786612184565b61137c87876123ca565b61138733888761270d565b50505050505050565b6001600160a01b0381165f90815260126020526040812080541561142c5780545f906113be90600190614074565b90505b5f8282815481106113d4576113d4613eb9565b5f91825260208220018054909250600160c81b900460ff161515900361140a576113fd81612afd565b61140790856141df565b93505b815f03611417575061142a565b5080611422816141f2565b9150506113c1565b505b50919050565b6015545f90808203611445575f91505090565b5f611451603c42614074565b600f549091505f611463600185614074565b90505b5f6015828154811061147a5761147a613eb9565b5f918252602090912001805490915064ffffffffff1684111561149d57506114d2565b80546001600160a01b03600160281b909104169250815f036114bf57506114d2565b50806114ca816141f2565b915050611466565b5080600f5461127f9190614074565b5f546001600160a01b0316331461150a5760405162461bcd60e51b815260040161064b90613e1b565b5f5b81811015611781573683838381811061152757611527613eb9565b905060a0020190506115376111b8565b6115476040830160208401613ad8565b6001600160a01b0316111561156e5760405162461bcd60e51b815260040161064b90613e5e565b60026115806080830160608401613c5d565b60ff1611156115a15760405162461bcd60e51b815260040161064b90613e7d565b600b546001600160a01b031663eec76e046115bf6020840184613ad8565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611601573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116259190613e9a565b1580156116b45750600b546001600160a01b031663eec76e0461164e60a0840160808501613ad8565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611690573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116b49190613e9a565b1561174357600b546001600160a01b0316637a9a433c6116da60a0840160808501613ad8565b6116e76020850185613ad8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044015f604051808303815f87803b15801561172c575f5ffd5b505af115801561173e573d5f5f3e3d5ffd5b505050505b6117786117536020830183613ad8565b6117636040840160208501613ad8565b6117736080850160608601613c5d565b61270d565b5060010161150c565b505050565b5f546001600160a01b031633146117af5760405162461bcd60e51b815260040161064b90613e1b565b6001600160a01b0381166117fc5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642066756e64206164647265737360601b604482015260640161064b565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146118475760405162461bcd60e51b815260040161064b90613e1b565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146118925760405162461bcd60e51b815260040161064b90613e1b565b6001600160a01b0381166118e85760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420726566657272616c20616464726573730000000000000000604482015260640161064b565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146119335760405162461bcd60e51b815260040161064b90613e1b565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb906119619085908590600401614173565b6020604051808303815f875af115801561197d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119a19190613e9a565b6117815760405162461bcd60e51b815260206004820152600e60248201526d3a3930b739b332b91032b93937b960911b604482015260640161064b565b5f546001600160a01b03163314611a075760405162461bcd60e51b815260040161064b90613e1b565b600a80546001600160a01b0319166001600160a01b03831690811790915560405163095ea7b360e01b815263095ea7b390611a5d907310ed43c718714eb63d5aa57b78b54704e256024e905f1990600401614173565b6020604051808303815f875af1158015611a79573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a9d9190613e9a565b5050565b5f546001600160a01b03163314611aca5760405162461bcd60e51b815260040161064b90613e1b565b60028260ff161115611b135760405162461bcd60e51b8152602060048201526012602482015271092dcecc2d8d2c840e6e8c2d6ca92dcc8caf60731b604482015260640161064b565b6103e8811115611b545760405162461bcd60e51b815260206004820152600c60248201526b08ccaca40e8dede40d0d2ced60a31b604482015260640161064b565b60ff9091165f90815260076020526040902055565b5f546001600160a01b03163314611b925760405162461bcd60e51b815260040161064b90613e1b565b6001600160a01b038116611bde5760405162461bcd60e51b8152602060048201526013602482015272496e76616c696420464343206164647265737360681b604482015260640161064b565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314611c295760405162461bcd60e51b815260040161064b90613e1b565b5f80546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001600160a01b0381165f90815260146020908152604080832054601390925282205461092691906141df565b6040516370a0823160e01b81523060048201525f905f51602061434b5f395f51905f52906370a0823190602401602060405180830381865afa158015611ce8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d0c9190613ecd565b90505f600a5f9054906101000a90046001600160a01b03166001600160a01b031663c816841b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d5f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d839190614207565b60405163a9059cbb60e01b81529091505f51602061434b5f395f51905f529063a9059cbb90611db89084908690600401614173565b6020604051808303815f875af1158015611dd4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611df89190613e9a565b50806001600160a01b031663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611e31575f5ffd5b505af1158015611e43573d5f5f3e3d5ffd5b505050505050565b5f811580611e57575083155b15611e6357505f611fb1565b611e6d85856135b4565b611e7857505f611fb1565b5f611eb786868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506135f192505050565b90505f611ef98286868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061362b92505050565b6008549091506001600160a01b03808316911614611f1b575f92505050611fb1565b5f8585604051611f2c929190614222565b60408051918290039091205f8181526009602052919091205490915060ff1615611f915760405162461bcd60e51b815260206004820152601660248201527514da59db985d1d5c9948185b1c9958591e481d5cd95960521b604482015260640161064b565b5f908152600960205260409020805460ff19166001908117909155925050505b949350505050565b6040805160028082526060820183525f926020830190803683370190505090505f51602061434b5f395f51905f52815f81518110611ff957611ff9613eb9565b6001600160a01b039283166020918202929092010152600a5482519116908290600190811061202a5761202a613eb9565b6001600160a01b0392831660209182029290920181019190915260ff84165f90815260079091526040812054909161271091612067918716614135565b6120719190614160565b60405163d06ca61f60e01b81529091505f907310ed43c718714eb63d5aa57b78b54704e256024e9063d06ca61f906120af9085908790600401614231565b5f60405180830381865afa1580156120c9573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526120f09190810190613fca565b600a5481519192506001600160a01b03169063a9059cbb9061dead908490600190811061211f5761211f613eb9565b60200260200101516040518363ffffffff1660e01b8152600401612144929190614173565b6020604051808303815f875af1158015612160573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e439190613e9a565b6040805160028082526060820183525f926020830190803683370190505090505f51602061434b5f395f51905f52815f815181106121c4576121c4613eb9565b6001600160a01b039283166020918202929092010152600a548251911690829060019081106121f5576121f5613eb9565b6001600160a01b0392831660209182029290920181019190915260ff84165f90815260079091526040812054909161271091612232918716614135565b61223c9190614160565b60405163d06ca61f60e01b81529091505f907310ed43c718714eb63d5aa57b78b54704e256024e9063d06ca61f9061227a9085908790600401614231565b5f60405180830381865afa158015612294573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526122bb9190810190613fca565b90505f816001815181106122d1576122d1613eb9565b6020908102919091010151600a546040516323b872dd60e01b8152336004820152306024820152604481018390529192506001600160a01b0316906323b872dd906064016020604051808303815f875af1158015612331573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123559190613e9a565b50600a5460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb9061238a9061dead908590600401614173565b6020604051808303815f875af11580156123a6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113879190613e9a565b6040516323b872dd60e01b81523360048201523060248201526001600160a01b03831660448201525f51602061434b5f395f51905f52906323b872dd906064016020604051808303815f875af1158015612426573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061244a9190613e9a565b506040805160028082526060820183525f926020830190803683370190505090505f51602061434b5f395f51905f52815f8151811061248b5761248b613eb9565b6001600160a01b039283166020918202929092010152600a548251911690829060019081106124bc576124bc613eb9565b6001600160a01b039283166020918202929092010152600a546040516370a0823160e01b81523060048201525f9291909116906370a0823190602401602060405180830381865afa158015612513573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125379190613ecd565b90507310ed43c718714eb63d5aa57b78b54704e256024e635c11d79561255e600287614249565b858530426040518663ffffffff1660e01b8152600401612582959493929190614277565b5f604051808303815f87803b158015612599575f5ffd5b505af11580156125ab573d5f5f3e3d5ffd5b5050600a546040516370a0823160e01b81523060048201525f93506001600160a01b0390911691506370a0823190602401602060405180830381865afa1580156125f7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061261b9190613ecd565b600a549091507310ed43c718714eb63d5aa57b78b54704e256024e9063e8e33700905f51602061434b5f395f51905f52906001600160a01b031661266060028a614249565b61266a8787614074565b6040516001600160e01b031960e087901b1681526001600160a01b03948516600482015292841660248401529216604482015260648101919091525f6084820181905260a4820181905260c48201524260e4820152610104016060604051808303815f875af11580156126df573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612703919061429d565b5050505050505050565b600b54604051633bb1db8160e21b81526001600160a01b0385811660048301529091169063eec76e0490602401602060405180830381865afa158015612755573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127799190613e9a565b6127ae5760405162461bcd60e51b81526020600482015260066024820152650848589a5b9960d21b604482015260640161064b565b60408051808201825264ffffffffff428116808352600f80546001600160a01b039081166020808701918252601580546001810182555f91825288517f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475909101805494518616600160281b026001600160c81b03199095169190981617929092179095558651608081018852968701819052928652871692850183905260ff8616606086015280549394939091906128679084906141df565b90915550506001600160a01b038581165f9081526010602052604081208054928716929091906128989084906141df565b90915550506001600160a01b038581165f818152601260209081526040808320805460018101825581855283852088519082018054958a01518a86015160608c015164ffffffffff9094166001600160c81b031990981697909717600160281b918b16919091021761ffff60c81b1916600160c81b9615159690960260ff60d01b191695909517600160d01b60ff9283160217909455600b54925163195006c760e11b815260048101969096527f000000000000000000000000000000000000000000000000000000000000000090931660248601529491939116906332a00d8e906044015f60405180830381865afa158015612997573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526129be9190810190614087565b90505f5b81518160ff161015612a3d57876001600160a01b031660135f848460ff16815181106129f0576129f0613eb9565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f828254612a2591906141df565b90915550819050612a3581614117565b9150506129c2565b506040516001600160a01b0388811682528916905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3876001600160a01b03167f9cfd25589d1eb8ad71e342a86a8524e83522e3936c0803048c08f6d9ad974f4088428560048b60ff1660038110612ac457612ac4613eb9565b0154604080516001600160a01b039095168552602085019390935291830152606082015260800160405180910390a25050505050505050565b80545f906001600160a01b03600160281b8204169064ffffffffff1682612b2482426142c8565b9050612b338162278d00613653565b90508064ffffffffff165f03612b4b57829350612b94565b8454612b9190612b8a9064ffffffffff841690612b8490600190600160d01b900460ff1660038110612b7f57612b7f613eb9565b015490565b9061366f565b84906136ce565b93505b505050919050565b335f8181526012602052604081208054919283929091908390829087908110612bc757612bc7613eb9565b5f918252602090912001805490915064ffffffffff811690600490600160d01b900460ff1660038110612bfc57612bfc613eb9565b0154612c088242614074565b1015612c4e5760405162461bcd60e51b8152602060048201526015602482015274151a19481d1a5b59481a5cc81b9bdd081c9a59da1d605a1b604482015260640161064b565b8154600160c81b900460ff1615612c8d5760405162461bcd60e51b8152602060048201526003602482015262616c7760e81b604482015260640161064b565b8154600f8054600160281b9092046001600160a01b0316965086915f90612cb5908490614074565b90915550506001600160a01b0384165f9081526010602052604081208054879290612ce1908490614074565b90915550506040518581525f906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3612d2f82612afd565b825460ff60c81b1916600160c81b1783556001600160a01b0385165f90815260116020526040902054909650612d669060016141df565b6001600160a01b0385165f8181526011602090815260409182902093909355805189815264ffffffffff4216938101939093528201899052907f48711929c842404f1d698f9525c36a831e8224d0bac22977e91904b3fe9f65649060600160405180910390a250505050915091565b5f6064612de3836005614135565b612ded9190614160565b600b54604051633b0f0f2f60e01b81526001600160a01b0386811660048301529293505f9290911690633b0f0f2f90602401602060405180830381865afa158015612e3a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e5e9190614207565b90506001600160a01b03811615801590612e7c5750612e7c81611192565b15612ef95760405163a9059cbb60e01b81525f51602061434b5f395f51905f529063a9059cbb90612eb39084908690600401614173565b6020604051808303815f875af1158015612ecf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ef39190613e9a565b50612f78565b600d5460405163a9059cbb60e01b81525f51602061434b5f395f51905f529163a9059cbb91612f36916001600160a01b0316908690600401614173565b6020604051808303815f875af1158015612f52573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f769190613e9a565b505b5092915050565b5f80806018816064612f918388614135565b612f9b9190614160565b94505f5b87518110156134ea57878181518110612fba57612fba613eb9565b60200260200101519450612fcd85611c73565b93506a0422ca8b0a00a4250000008410158015612fe957508183115b8015612ff95750612ff985611192565b15613095575f51602061434b5f395f51905f5263a9059cbb86606461301e8688614074565b613028908c614135565b6130329190614160565b6040518363ffffffff1660e01b815260040161304f929190614173565b6020604051808303815f875af115801561306b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061308f9190613e9a565b50601891505b69d3c21bcecceda100000084101580156130b957506a0422ca8b0a00a42500000084105b80156130c55750601482105b80156130d557506130d585611192565b15613172575f51602061434b5f395f51905f5263a9059cbb8660646130fb866014614074565b613105908c614135565b61310f9190614160565b6040518363ffffffff1660e01b815260040161312c929190614173565b6020604051808303815f875af1158015613148573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061316c9190613e9a565b50601491505b6969e10de76676d08000008410158015613195575069d3c21bcecceda100000084105b80156131a15750601082105b80156131b157506131b185611192565b1561324e575f51602061434b5f395f51905f5263a9059cbb8660646131d7866010614074565b6131e1908c614135565b6131eb9190614160565b6040518363ffffffff1660e01b8152600401613208929190614173565b6020604051808303815f875af1158015613224573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132489190613e9a565b50601091505b69152d02c7e14af6800000841015801561327157506969e10de76676d080000084105b801561327d5750600c82105b801561328d575061328d85611192565b1561332a575f51602061434b5f395f51905f5263a9059cbb8660646132b386600c614074565b6132bd908c614135565b6132c79190614160565b6040518363ffffffff1660e01b81526004016132e4929190614173565b6020604051808303815f875af1158015613300573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133249190613e9a565b50600c91505b690a968163f0a57b400000841015801561334d575069152d02c7e14af680000084105b80156133595750600882105b8015613369575061336985611192565b15613406575f51602061434b5f395f51905f5263a9059cbb86606461338f866008614074565b613399908c614135565b6133a39190614160565b6040518363ffffffff1660e01b81526004016133c0929190614173565b6020604051808303815f875af11580156133dc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134009190613e9a565b50600891505b69021e19e0c9bab240000084101580156134295750690a968163f0a57b40000084105b80156134355750600482105b8015613445575061344585611192565b156134e2575f51602061434b5f395f51905f5263a9059cbb86606461346b866004614074565b613475908c614135565b61347f9190614160565b6040518363ffffffff1660e01b815260040161349c929190614173565b6020604051808303815f875af11580156134b8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134dc9190613e9a565b50600491505b600101612f9f565b508082111561359357600d545f51602061434b5f395f51905f529063a9059cbb906001600160a01b03166064613520858b614135565b61352a9190614160565b6135349089614074565b6040518363ffffffff1660e01b8152600401613551929190614173565b6020604051808303815f875af115801561356d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135919190613e9a565b505b5050505092915050565b5f8183106135ab57816135ad565b825b9392505050565b5f603982146135c457505f610926565b603583013560e01c804281118015906135e8575061012c6135e58242614074565b11155b95945050505050565b5f6135fc82516136df565b8260405160200161360e9291906142fc565b604051602081830303815290604052805190602001209050919050565b5f5f5f5f613639868661376f565b92509250925061364982826137b8565b5090949350505050565b5f8164ffffffffff168364ffffffffff16106135ab57816135ad565b5f82816001841661368857670de0b6b3a764000061368a565b815b9050600184901c93505b83156136c8576136a48283613870565b915060018416156136bc576136b98183613870565b90505b600184901c9350613694565b806135e8565b5f6135ad6136dc8484613870565b90565b60605f6136eb83613922565b60010190505f8167ffffffffffffffff81111561370a5761370a613ee4565b6040519080825280601f01601f191660200182016040528015613734576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461373e57509392505050565b5f5f5f83516041036137a6576020840151604085015160608601515f1a613798888285856139f9565b9550955095505050506137b1565b505081515f91506002905b9250925092565b5f8260038111156137cb576137cb614336565b036137d4575050565b60018260038111156137e8576137e8614336565b036138065760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561381a5761381a614336565b0361383b5760405163fce698f760e01b81526004810182905260240161064b565b600382600381111561384f5761384f614336565b03611a9d576040516335e2f38360e21b81526004810182905260240161064b565b5f80805f19848609848602925082811083820303915050805f036138a15750670de0b6b3a764000090049050610926565b670de0b6b3a764000081106138d357604051635173648d60e01b8152600481018690526024810185905260440161064b565b5f670de0b6b3a764000085870962040000818503049310909103600160ee1b02919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690291505092915050565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106139605772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061398c576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106139aa57662386f26fc10000830492506010015b6305f5e10083106139c2576305f5e100830492506008015b61271083106139d657612710830492506004015b606483106139e8576064830492506002015b600a83106109265760010192915050565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115613a3257505f91506003905082613ab7565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613a83573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116613aae57505f925060019150829050613ab7565b92505f91508190505b9450945094915050565b6001600160a01b0381168114613ad5575f5ffd5b50565b5f60208284031215613ae8575f5ffd5b81356135ad81613ac1565b803560ff8116811461118d575f5ffd5b5f5f83601f840112613b13575f5ffd5b50813567ffffffffffffffff811115613b2a575f5ffd5b602083019150836020828501011115613b41575f5ffd5b9250929050565b5f5f5f5f5f5f5f5f60c0898b031215613b5f575f5ffd5b8835613b6a81613ac1565b975060208901359650613b7f60408a01613af3565b95506060890135613b8f81613ac1565b9450608089013567ffffffffffffffff811115613baa575f5ffd5b613bb68b828c01613b03565b90955093505060a089013567ffffffffffffffff811115613bd5575f5ffd5b613be18b828c01613b03565b999c989b5096995094979396929594505050565b5f5f60408385031215613c06575f5ffd5b8235613c1181613ac1565b9150613c1f60208401613af3565b90509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215613c6d575f5ffd5b6135ad82613af3565b5f5f60408385031215613c87575f5ffd5b8235613c9281613ac1565b946020939093013593505050565b5f60208284031215613cb0575f5ffd5b5035919050565b5f5f5f5f5f5f5f60a0888a031215613ccd575f5ffd5b8735613cd881613ac1565b965060208801359550613ced60408901613af3565b9450606088013567ffffffffffffffff811115613d08575f5ffd5b613d148a828b01613b03565b909550935050608088013567ffffffffffffffff811115613d33575f5ffd5b613d3f8a828b01613b03565b989b979a50959850939692959293505050565b5f5f60208385031215613d63575f5ffd5b823567ffffffffffffffff811115613d79575f5ffd5b8301601f81018513613d89575f5ffd5b803567ffffffffffffffff811115613d9f575f5ffd5b85602060a083028401011115613db3575f5ffd5b6020919091019590945092505050565b5f5f5f60608486031215613dd5575f5ffd5b8335613de081613ac1565b92506020840135613df081613ac1565b929592945050506040919091013590565b5f5f60408385031215613e12575f5ffd5b613c9283613af3565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b602080825260039082015262454f4160e81b604082015260600190565b60208082526005908201526403c313030360dc1b604082015260600190565b6020808252600390820152621e1e9960e91b604082015260600190565b5f60208284031215613eaa575f5ffd5b815180151581146135ad575f5ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215613edd575f5ffd5b5051919050565b634e487b7160e01b5f52604160045260245ffd5b5f8151808452602084019350602083015f5b82811015613f315781516001600160a01b0316865260209586019590910190600101613f0a565b5093949350505050565b85815284602082015260a060408201525f613f5960a0830186613ef8565b6001600160a01b0394909416606083015250608001529392505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715613f9f57613f9f613ee4565b604052919050565b5f67ffffffffffffffff821115613fc057613fc0613ee4565b5060051b60200190565b5f60208284031215613fda575f5ffd5b815167ffffffffffffffff811115613ff0575f5ffd5b8201601f81018413614000575f5ffd5b805161401361400e82613fa7565b613f76565b8082825260208201915060208360051b850101925086831115614034575f5ffd5b6020840193505b8284101561405657835182526020938401939091019061403b565b9695505050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561092657610926614060565b5f60208284031215614097575f5ffd5b815167ffffffffffffffff8111156140ad575f5ffd5b8201601f810184136140bd575f5ffd5b80516140cb61400e82613fa7565b8082825260208201915060208360051b8501019250868311156140ec575f5ffd5b6020840193505b8284101561405657835161410681613ac1565b8252602093840193909101906140f3565b5f60ff821660ff810361412c5761412c614060565b60010192915050565b808202811582820484141761092657610926614060565b634e487b7160e01b5f52601260045260245ffd5b5f8261416e5761416e61414c565b500490565b6001600160a01b03929092168252602082015260400190565b5f6020828403121561419c575f5ffd5b81516001600160701b03811681146135ad575f5ffd5b5f6001600160701b038316806141ca576141ca61414c565b806001600160701b0384160491505092915050565b8082018082111561092657610926614060565b5f8161420057614200614060565b505f190190565b5f60208284031215614217575f5ffd5b81516135ad81613ac1565b818382375f9101908152919050565b828152604060208201525f611fb16040830184613ef8565b5f6001600160a01b038316806142615761426161414c565b6001600160a01b03929092169190910492915050565b60018060a01b038616815284602082015260a060408201525f613f5960a0830186613ef8565b5f5f5f606084860312156142af575f5ffd5b5050815160208301516040909301519094929350919050565b64ffffffffff828116828216039081111561092657610926614060565b5f81518060208401855e5f93019283525090919050565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081525f611fb1614330601a8401866142e5565b846142e5565b634e487b7160e01b5f52602160045260245ffdfe00000000000000000000000055d398326f99059ff775485246999027b3197955a264697066735822122039e6a75ae25377b86c915aed5716998d08f99a5f1f7db1b8a74e9b8680ee38ab64736f6c634300081e003300000000000000000000000093ecb70faae6076bec94aea4775845c615b7e6110000000000000000000000009e87a6339adf30b45399d7169f1a676fd4f17a3800000000000000000000000010c107612196c26e69baf322ae766776dd888888000000000000000000000000fd0c01b851e0d7b7f4215fad3f9f34294f9cc6d0000000000000000000000000869cc0f1cb6b77f6939fa8165ebdea850757bdb7000000000000000000000000e843863ea1a69a4a061ad50268c2965f83666666000000000000000000000000d5e613bf5403a0d5196626d708ad176e4a1c7994