ERC-20
Overview
Max Total Supply
1,000,000,000 PFU
Holders
17
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PFU
Compiler Version
v0.4.25+commit.59dbf8f1
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-11-02 */ pragma solidity ^0.4.24; /* PFU * * * ___ ___ _ _ _ ___ __ _ _ _ * | _ \ __| | | | (_)___ | _ \/ _|_ _ _ _(_) |_ | | * | _/ _|| |_| | | (_-< | _/ _| '_| || | | _| |_| * |_| |_| \___/ |_/__/ |_| |_| |_| \_,_|_|\__| (_) * * */ // SafeMath methods library SafeMath { function add(uint256 _a, uint256 _b) internal pure returns (uint256) { uint256 c = _a + _b; assert(c >= _a); return c; } function sub(uint256 _a, uint256 _b) internal pure returns (uint256) { assert(_a >= _b); return _a - _b; } function mul(uint256 _a, uint256 _b) internal pure returns (uint256) { uint256 c = _a * _b; assert(_a == 0 || c / _a == _b); return c; } } // Contract must have an owner contract Owned { address public owner; constructor() public { owner = msg.sender; } modifier onlyOwner() { require(msg.sender == owner); _; } function setOwner(address _owner) onlyOwner public { owner = _owner; } } // Standard ERC20 Token Interface interface ERC20Token { function name() external view returns (string name_); function symbol() external view returns (string symbol_); function decimals() external view returns (uint8 decimals_); function totalSupply() external view returns (uint256 totalSupply_); function balanceOf(address _owner) external view returns (uint256 _balance); function transfer(address _to, uint256 _value) external returns (bool _success); function transferFrom(address _from, address _to, uint256 _value) external returns (bool _success); function approve(address _spender, uint256 _value) external returns (bool _success); function allowance(address _owner, address _spender) external view returns (uint256 _remaining); event Transfer(address indexed _from, address indexed _to, uint256 _value); event Approval(address indexed _owner, address indexed _spender, uint256 _value); } // the main ERC20-compliant multi-timelock enabled contract contract PFU is Owned, ERC20Token { using SafeMath for uint256; string private constant standard = "201810X8"; string private constant version = "5.0X8"; string private name_ = "PFruit"; string private symbol_ = "PFU"; uint8 private decimals_ = 18; uint256 private totalSupply_ = uint256(10)**uint256(9) * uint256(10)**uint256(decimals_); mapping (address => uint256) private balanceP; mapping (address => mapping (address => uint256)) private allowed; mapping (address => uint256[]) private lockTime; mapping (address => uint256[]) private lockValue; mapping (address => uint256) private lockNum; mapping (address => bool) public locker; address public lockerAddress; uint256 public later = 0; uint256 public earlier = 0; // burn token event event Burn(address indexed _from, uint256 _value); // timelock-related events event TransferLocked(address indexed _from, address indexed _to, uint256 _time, uint256 _value); event TokenUnlocked(address indexed _address, uint256 _value); // safety method-related events event WrongTokenEmptied(address indexed _token, address indexed _addr, uint256 _amount); event WrongEtherEmptied(address indexed _addr, uint256 _amount); // constructor for the ERC20 Token constructor(address _address) public { // add the PFR contract address as preset locker lockerAddress = _address; locker[_address] = true; balanceP[msg.sender] = totalSupply_; } modifier validAddress(address _address) { require(_address != 0x0); _; } // fast-forward the timelocks for all accounts function setUnlockEarlier(uint256 _earlier) public onlyOwner { earlier = earlier.add(_earlier); } // delay the timelocks for all accounts function setUnlockLater(uint256 _later) public onlyOwner { later = later.add(_later); } // standard ERC20 name function function name() public view returns (string) { return name_; } // standard ERC20 symbol function function symbol() public view returns (string) { return symbol_; } // standard ERC20 decimals function function decimals() public view returns (uint8) { return decimals_; } // standard ERC20 totalSupply function function totalSupply() public view returns (uint256) { return totalSupply_; } // standard ERC20 allowance function function allowance(address _owner, address _spender) external view returns (uint256) { return allowed[_owner][_spender]; } // show unlocked balance of an account function balanceUnlocked(address _address) public view returns (uint256 _balance) { _balance = balanceP[_address]; uint256 i = 0; while (i < lockNum[_address]) { if (now.add(earlier) >= lockTime[_address][i].add(later)) _balance = _balance.add(lockValue[_address][i]); i++; } return _balance; } // show timelocked balance of an account function balanceLocked(address _address) public view returns (uint256 _balance) { _balance = 0; uint256 i = 0; while (i < lockNum[_address]) { if (now.add(earlier) < lockTime[_address][i].add(later)) _balance = _balance.add(lockValue[_address][i]); i++; } return _balance; } // standard ERC20 balanceOf with timelock added function balanceOf(address _address) public view returns (uint256 _balance) { _balance = balanceP[_address]; uint256 i = 0; while (i < lockNum[_address]) { _balance = _balance.add(lockValue[_address][i]); i++; } return _balance; } // show timelocks in an account function showLockTimes(address _address) public view validAddress(_address) returns (uint256[] _times) { uint i = 0; uint256[] memory tempLockTime = new uint256[](lockNum[_address]); while (i < lockNum[_address]) { tempLockTime[i] = lockTime[_address][i].add(later).sub(earlier); i++; } return tempLockTime; } // show values locked in an account's timelocks function showLockValues(address _address) public view validAddress(_address) returns (uint256[] _values) { return lockValue[_address]; } function showLockNum(address _address) public view validAddress(_address) returns (uint256 _lockNum) { return lockNum[_address]; } // removes the preset locker address function removeLocker(address _address) public validAddress(_address) onlyOwner { lockerAddress = address(0x0); locker[_address] = false; } // Calculate and process the timelock states of an account function calcUnlock(address _address) private { uint256 i = 0; uint256 j = 0; uint256[] memory currentLockTime; uint256[] memory currentLockValue; uint256[] memory newLockTime = new uint256[](lockNum[_address]); uint256[] memory newLockValue = new uint256[](lockNum[_address]); currentLockTime = lockTime[_address]; currentLockValue = lockValue[_address]; while (i < lockNum[_address]) { if (now.add(earlier) >= currentLockTime[i].add(later)) { balanceP[_address] = balanceP[_address].add(currentLockValue[i]); emit TokenUnlocked(_address, currentLockValue[i]); } else { newLockTime[j] = currentLockTime[i]; newLockValue[j] = currentLockValue[i]; j++; } i++; } uint256[] memory trimLockTime = new uint256[](j); uint256[] memory trimLockValue = new uint256[](j); i = 0; while (i < j) { trimLockTime[i] = newLockTime[i]; trimLockValue[i] = newLockValue[i]; i++; } lockTime[_address] = trimLockTime; lockValue[_address] = trimLockValue; lockNum[_address] = j; } // standard ERC20 transfer function transfer(address _to, uint256 _value) public validAddress(_to) returns (bool _success) { if (lockNum[msg.sender] > 0) calcUnlock(msg.sender); require(balanceP[msg.sender] >= _value && _value >= 0); balanceP[msg.sender] = balanceP[msg.sender].sub(_value); balanceP[_to] = balanceP[_to].add(_value); emit Transfer(msg.sender, _to, _value); return true; } // transfer Token with timelocks function transferLocked(address _to, uint256[] _time, uint256[] _value) public validAddress(_to) returns (bool _success) { require(_value.length == _time.length); if (lockNum[msg.sender] > 0) calcUnlock(msg.sender); uint256 i = 0; uint256 totalValue = 0; while (i < _value.length) { totalValue = totalValue.add(_value[i]); i++; } require(balanceP[msg.sender] >= totalValue && totalValue >= 0); require(lockNum[_to].add(_time.length) <= 42); i = 0; while (i < _time.length) { if (_value[i] > 0) { balanceP[msg.sender] = balanceP[msg.sender].sub(_value[i]); lockTime[_to].length = lockNum[_to]+1; lockValue[_to].length = lockNum[_to]+1; lockTime[_to][lockNum[_to]] = now.add(_time[i]).add(earlier).sub(later); lockValue[_to][lockNum[_to]] = _value[i]; lockNum[_to]++; } // emit custom TransferLocked event emit TransferLocked(msg.sender, _to, _time[i], _value[i]); // emit standard Transfer event for wallets emit Transfer(msg.sender, _to, _value[i]); i++; } return true; } // TransferFrom Token with timelocks function transferLockedFrom(address _from, address _to, uint256[] _time, uint256[] _value) public validAddress(_from) validAddress(_to) returns (bool success) { require(_value.length == _time.length); if (lockNum[_from] > 0) calcUnlock(_from); uint256 i = 0; uint256 totalValue = 0; while (i < _value.length) { totalValue = totalValue.add(_value[i]); i++; } if (locker[msg.sender]) { allowed[_from][msg.sender] = totalSupply_; } require(balanceP[_from] >= totalValue && totalValue >= 0 && allowed[_from][msg.sender] >= totalValue); require(lockNum[_to].add(_time.length) <= 42); i = 0; while (i < _time.length) { if (_value[i] > 0) { balanceP[_from] = balanceP[_from].sub(_value[i]); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value[i]); lockTime[_to].length = lockNum[_to]+1; lockValue[_to].length = lockNum[_to]+1; lockTime[_to][lockNum[_to]] = now.add(_time[i]).add(earlier).sub(later); lockValue[_to][lockNum[_to]] = _value[i]; lockNum[_to]++; } // emit custom TransferLocked event emit TransferLocked(_from, _to, _time[i], _value[i]); // emit standard Transfer event for wallets emit Transfer(_from, _to, _value[i]); i++; } if (locker[msg.sender]) { allowed[_from][msg.sender] = 0; } return true; } // standard ERC20 transferFrom function transferFrom(address _from, address _to, uint256 _value) public validAddress(_from) validAddress(_to) returns (bool _success) { if (lockNum[_from] > 0) calcUnlock(_from); require(balanceP[_from] >= _value && _value >= 0 && allowed[_from][msg.sender] >= _value); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); balanceP[_from] = balanceP[_from].sub(_value); balanceP[_to] = balanceP[_to].add(_value); emit Transfer(_from, _to, _value); return true; } // should only be called when first setting an allowed function approve(address _spender, uint256 _value) public validAddress(_spender) returns (bool _success) { if (lockNum[msg.sender] > 0) calcUnlock(msg.sender); allowed[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } // increase or decrease allowed function increaseApproval(address _spender, uint _value) public validAddress(_spender) returns (bool _success) { allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_value); emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } function decreaseApproval(address _spender, uint _value) public validAddress(_spender) returns (bool _success) { if(_value >= allowed[msg.sender][_spender]) { allowed[msg.sender][_spender] = 0; } else { allowed[msg.sender][_spender] = allowed[msg.sender][_spender].sub(_value); } emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } // owner may burn own token function burn(uint256 _value) public onlyOwner returns (bool _success) { if (lockNum[msg.sender] > 0) calcUnlock(msg.sender); require(balanceP[msg.sender] >= _value && _value >= 0); balanceP[msg.sender] = balanceP[msg.sender].sub(_value); totalSupply_ = totalSupply_.sub(_value); emit Burn(msg.sender, _value); return true; } // safety methods function () public payable { revert(); } function emptyWrongToken(address _addr) onlyOwner public { ERC20Token wrongToken = ERC20Token(_addr); uint256 amount = wrongToken.balanceOf(address(this)); require(amount > 0); require(wrongToken.transfer(msg.sender, amount)); emit WrongTokenEmptied(_addr, msg.sender, amount); } // shouldn't happen, just in case function emptyWrongEther() onlyOwner public { uint256 amount = address(this).balance; require(amount > 0); msg.sender.transfer(amount); emit WrongEtherEmptied(msg.sender, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"balanceUnlocked","outputs":[{"name":"_balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_time","type":"uint256[]"},{"name":"_value","type":"uint256[]"}],"name":"transferLockedFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockerAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"balanceLocked","outputs":[{"name":"_balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"earlier","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"balanceOf","outputs":[{"name":"_balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_time","type":"uint256[]"},{"name":"_value","type":"uint256[]"}],"name":"transferLocked","outputs":[{"name":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"showLockTimes","outputs":[{"name":"_times","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"later","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"showLockValues","outputs":[{"name":"_values","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_later","type":"uint256"}],"name":"setUnlockLater","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"removeLocker","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"locker","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"emptyWrongToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"emptyWrongEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_earlier","type":"uint256"}],"name":"setUnlockEarlier","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"showLockNum","outputs":[{"name":"_lockNum","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_address","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_time","type":"uint256"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"TransferLocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_address","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"TokenUnlocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_token","type":"address"},{"indexed":true,"name":"_addr","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"WrongTokenEmptied","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_addr","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"WrongEtherEmptied","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
60c0604052600660808190527f504672756974000000000000000000000000000000000000000000000000000060a09081526200004091600191906200012f565b506040805180820190915260038082527f5046550000000000000000000000000000000000000000000000000000000000602090920191825262000087916002916200012f565b5060038054601260ff19909116179081905560ff16600a0a633b9aca00026004556000600c819055600d55348015620000bf57600080fd5b50604051602080620024dd83398101604090815290516000805433600160a060020a031991821681178355600b8054909216600160a060020a03909416938417909155918152600a6020908152838220805460ff19166001179055600454928252600590529190912055620001d4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200017257805160ff1916838001178555620001a2565b82800160010185558215620001a2579182015b82811115620001a257825182559160200191906001019062000185565b50620001b0929150620001b4565b5090565b620001d191905b80821115620001b05760008155600101620001bb565b90565b6122f980620001e46000396000f30060806040526004361061017f5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630451f520811461018457806306fdde03146101b7578063095ea7b3146102415780630fce887b1461027957806313af40351461031d57806318160ddd1461034057806323b872dd14610355578063313ce5671461037f5780633675f29b146103aa57806342966c68146103db5780635fc3a312146103f3578063661884631461041457806366fbc1541461043857806370a082311461044d5780638da5cb5b1461046e57806395d89b4114610483578063a9059cbb14610498578063b91aedab146104bc578063b9c5416d14610558578063c7cc4ee9146105c9578063c9e6bd34146105de578063ca0cd7c0146105ff578063ce62cd4a14610617578063d71c9c1214610638578063d729018114610659578063d73dd6231461067a578063d80b20561461069e578063dd62ed3e146106b3578063df51d46b146106da578063fb276fcf146106f2575b600080fd5b34801561019057600080fd5b506101a5600160a060020a0360043516610713565b60408051918252519081900360200190f35b3480156101c357600080fd5b506101cc610801565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102065781810151838201526020016101ee565b50505050905090810190601f1680156102335780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024d57600080fd5b50610265600160a060020a0360043516602435610897565b604080519115158252519081900360200190f35b34801561028557600080fd5b506040805160206004604435818101358381028086018501909652808552610265958335600160a060020a039081169660248035909216963696956064959294930192829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506109369650505050505050565b34801561032957600080fd5b5061033e600160a060020a0360043516610e33565b005b34801561034c57600080fd5b506101a5610e79565b34801561036157600080fd5b50610265600160a060020a0360043581169060243516604435610e7f565b34801561038b57600080fd5b50610394611033565b6040805160ff9092168252519081900360200190f35b3480156103b657600080fd5b506103bf61103c565b60408051600160a060020a039092168252519081900360200190f35b3480156103e757600080fd5b5061026560043561104b565b3480156103ff57600080fd5b506101a5600160a060020a0360043516611131565b34801561042057600080fd5b50610265600160a060020a03600435166024356111d0565b34801561044457600080fd5b506101a56112fa565b34801561045957600080fd5b506101a5600160a060020a0360043516611300565b34801561047a57600080fd5b506103bf61136e565b34801561048f57600080fd5b506101cc61137d565b3480156104a457600080fd5b50610265600160a060020a03600435166024356113db565b3480156104c857600080fd5b50604080516020600460248035828101358481028087018601909752808652610265968435600160a060020a031696369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506114dc9650505050505050565b34801561056457600080fd5b50610579600160a060020a036004351661185a565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156105b557818101518382015260200161059d565b505050509050019250505060405180910390f35b3480156105d557600080fd5b506101a561194c565b3480156105ea57600080fd5b50610579600160a060020a0360043516611952565b34801561060b57600080fd5b5061033e6004356119d5565b34801561062357600080fd5b5061033e600160a060020a0360043516611a05565b34801561064457600080fd5b50610265600160a060020a0360043516611a71565b34801561066557600080fd5b5061033e600160a060020a0360043516611a86565b34801561068657600080fd5b50610265600160a060020a0360043516602435611c23565b3480156106aa57600080fd5b5061033e611c6f565b3480156106bf57600080fd5b506101a5600160a060020a0360043581169060243516611cfe565b3480156106e657600080fd5b5061033e600435611d29565b3480156106fe57600080fd5b506101a5600160a060020a0360043516611d59565b600160a060020a038116600090815260056020526040812054905b600160a060020a0383166000908152600960205260409020548110156107fb57600c54600160a060020a038416600090815260076020526040902080546107949291908490811061077b57fe5b9060005260206000200154611d8e90919063ffffffff16565b600d546107a890429063ffffffff611d8e16565b106107f357600160a060020a038316600090815260086020526040902080546107f09190839081106107d657fe5b906000526020600020015483611d8e90919063ffffffff16565b91505b60010161072e565b50919050565b60018054604080516020601f6002600019610100878916150201909516949094049384018190048102820181019092528281526060939092909183018282801561088c5780601f106108615761010080835404028352916020019161088c565b820191906000526020600020905b81548152906001019060200180831161086f57829003601f168201915b505050505090505b90565b600082600160a060020a03811615156108af57600080fd5b3360009081526009602052604081205411156108ce576108ce33611da4565b336000818152600660209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6000808086600160a060020a038116151561095057600080fd5b86600160a060020a038116151561096657600080fd5b865186511461097457600080fd5b600160a060020a038916600090815260096020526040812054111561099c5761099c89611da4565b60009350600092505b85518410156109e3576109d686858151811015156109bf57fe5b60209081029091010151849063ffffffff611d8e16565b60019094019392506109a5565b336000908152600a602052604090205460ff1615610a2357600454600160a060020a038a1660009081526006602090815260408083203384529091529020555b600160a060020a0389166000908152600560205260409020548311801590610a4c575060008310155b8015610a7b5750600160a060020a03891660009081526006602090815260408083203384529091529020548311155b1515610a8657600080fd5b8651600160a060020a038916600090815260096020526040902054602a91610ab4919063ffffffff611d8e16565b1115610abf57600080fd5b600093505b8651841015610de75760008685815181101515610add57fe5b906020019060200201511115610d1257610b2f8685815181101515610afe57fe5b6020908102909101810151600160a060020a038c16600090815260059092526040909120549063ffffffff61220d16565b600160a060020a038a166000908152600560205260409020558551610b9490879086908110610b5a57fe5b6020908102909101810151600160a060020a038c16600090815260068352604080822033835290935291909120549063ffffffff61220d16565b600160a060020a03808b166000908152600660209081526040808320338452825280832094909455918b1681526009825282812054600790925291909120600190910190610be2908261221f565b50600160a060020a0388166000908152600960209081526040808320546008909252909120600190910190610c17908261221f565b50610c64600c54610c58600d54610c4c8b89815181101515610c3557fe5b60209081029091010151429063ffffffff611d8e16565b9063ffffffff611d8e16565b9063ffffffff61220d16565b600160a060020a038916600090815260076020908152604080832060099092529091205481548110610c9257fe5b6000918252602090912001558551869085908110610cac57fe5b6020908102909101810151600160a060020a038a166000908152600883526040808220600990945290205482549192918110610ce457fe5b6000918252602080832090910192909255600160a060020a038a168152600990915260409020805460010190555b87600160a060020a031689600160a060020a03167f34c966766e471b87b7ce8d0d0358378cf20008a30bbb36246a3413c8a286834e8987815181101515610d5557fe5b906020019060200201518988815181101515610d6d57fe5b602090810290910181015160408051938452918301528051918290030190a387600160a060020a031689600160a060020a03166000805160206122ae8339815191528887815181101515610dbd57fe5b906020019060200201516040518082815260200191505060405180910390a3600190930192610ac4565b336000908152600a602052604090205460ff1615610e2457600160a060020a03891660009081526006602090815260408083203384529091528120555b50600198975050505050505050565b600054600160a060020a03163314610e4a57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60045490565b600083600160a060020a0381161515610e9757600080fd5b83600160a060020a0381161515610ead57600080fd5b600160a060020a0386166000908152600960205260408120541115610ed557610ed586611da4565b600160a060020a0386166000908152600560205260409020548411801590610efe575060008410155b8015610f2d5750600160a060020a03861660009081526006602090815260408083203384529091529020548411155b1515610f3857600080fd5b600160a060020a0386166000908152600660209081526040808320338452909152902054610f6c908563ffffffff61220d16565b600160a060020a038716600081815260066020908152604080832033845282528083209490945591815260059091522054610fad908563ffffffff61220d16565b600160a060020a038088166000908152600560205260408082209390935590871681522054610fe2908563ffffffff611d8e16565b600160a060020a0380871660008181526005602090815260409182902094909455805188815290519193928a16926000805160206122ae83398151915292918290030190a350600195945050505050565b60035460ff1690565b600b54600160a060020a031681565b60008054600160a060020a0316331461106357600080fd5b3360009081526009602052604081205411156110825761108233611da4565b3360009081526005602052604090205482118015906110a2575060008210155b15156110ad57600080fd5b336000908152600560205260409020546110cd908363ffffffff61220d16565b336000908152600560205260409020556004546110f0908363ffffffff61220d16565b60045560408051838152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2506001919050565b6000805b600160a060020a0383166000908152600960205260409020548110156107fb57600c54600160a060020a038416600090815260076020526040902080546111829291908490811061077b57fe5b600d5461119690429063ffffffff611d8e16565b10156111c857600160a060020a038316600090815260086020526040902080546111c59190839081106107d657fe5b91505b600101611135565b600082600160a060020a03811615156111e857600080fd5b336000908152600660209081526040808320600160a060020a0388168452909152902054831061123b57336000908152600660209081526040808320600160a060020a0388168452909152812055611294565b336000908152600660209081526040808320600160a060020a038816845290915290205461126f908463ffffffff61220d16565b336000908152600660209081526040808320600160a060020a03891684529091529020555b336000818152600660209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600d5481565b600160a060020a038116600090815260056020526040812054905b600160a060020a0383166000908152600960205260409020548110156107fb57600160a060020a038316600090815260086020526040902080546113649190839081106107d657fe5b915060010161131b565b600054600160a060020a031681565b60028054604080516020601f600019610100600187161502019094168590049384018190048102820181019092528281526060939092909183018282801561088c5780601f106108615761010080835404028352916020019161088c565b600082600160a060020a03811615156113f357600080fd5b3360009081526009602052604081205411156114125761141233611da4565b336000908152600560205260409020548311801590611432575060008310155b151561143d57600080fd5b3360009081526005602052604090205461145d908463ffffffff61220d16565b3360009081526005602052604080822092909255600160a060020a0386168152205461148f908463ffffffff611d8e16565b600160a060020a0385166000818152600560209081526040918290209390935580518681529051919233926000805160206122ae8339815191529281900390910190a35060019392505050565b6000808085600160a060020a03811615156114f657600080fd5b855185511461150457600080fd5b3360009081526009602052604081205411156115235761152333611da4565b60009250600091505b845183101561156a5761155d858481518110151561154657fe5b60209081029091010151839063ffffffff611d8e16565b600190930192915061152c565b33600090815260056020526040902054821180159061158a575060008210155b151561159557600080fd5b8551600160a060020a038816600090815260096020526040902054602a916115c3919063ffffffff611d8e16565b11156115ce57600080fd5b600092505b855183101561184d57600085848151811015156115ec57fe5b90602001906020020151111561177857611635858481518110151561160d57fe5b602090810290910181015133600090815260059092526040909120549063ffffffff61220d16565b33600090815260056020908152604080832093909355600160a060020a038a16825260098152828220546007909152919020600190910190611677908261221f565b50600160a060020a03871660009081526009602090815260408083205460089092529091206001909101906116ac908261221f565b506116ca600c54610c58600d54610c4c8a88815181101515610c3557fe5b600160a060020a0388166000908152600760209081526040808320600990925290912054815481106116f857fe5b600091825260209091200155845185908490811061171257fe5b6020908102909101810151600160a060020a038916600090815260088352604080822060099094529020548254919291811061174a57fe5b6000918252602080832090910192909255600160a060020a0389168152600990915260409020805460010190555b86600160a060020a031633600160a060020a03167f34c966766e471b87b7ce8d0d0358378cf20008a30bbb36246a3413c8a286834e88868151811015156117bb57fe5b9060200190602002015188878151811015156117d357fe5b602090810290910181015160408051938452918301528051918290030190a386600160a060020a031633600160a060020a03166000805160206122ae833981519152878681518110151561182357fe5b906020019060200201516040518082815260200191505060405180910390a36001909201916115d3565b5060019695505050505050565b606060008183600160a060020a038116151561187557600080fd5b600092506009600086600160a060020a0316600160a060020a03168152602001908152602001600020546040519080825280602002602001820160405280156118c8578160200160208202803883390190505b5091505b600160a060020a03851660009081526009602052604090205483101561194457600d54600c54600160a060020a038716600090815260076020526040902080546119219392610c589290918890811061077b57fe5b828481518110151561192f57fe5b602090810290910101526001909201916118cc565b509392505050565b600c5481565b606081600160a060020a038116151561196a57600080fd5b600160a060020a038316600090815260086020908152604091829020805483518184028101840190945280845290918301828280156119c857602002820191906000526020600020905b8154815260200190600101908083116119b4575b5050505050915050919050565b600054600160a060020a031633146119ec57600080fd5b600c546119ff908263ffffffff611d8e16565b600c5550565b80600160a060020a0381161515611a1b57600080fd5b600054600160a060020a03163314611a3257600080fd5b50600b805473ffffffffffffffffffffffffffffffffffffffff19169055600160a060020a03166000908152600a60205260409020805460ff19169055565b600a6020526000908152604090205460ff1681565b600080548190600160a060020a03163314611aa057600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051849350600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015611b0457600080fd5b505af1158015611b18573d6000803e3d6000fd5b505050506040513d6020811015611b2e57600080fd5b5051905060008111611b3f57600080fd5b604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018390529051600160a060020a0384169163a9059cbb9160448083019260209291908290030181600087803b158015611ba757600080fd5b505af1158015611bbb573d6000803e3d6000fd5b505050506040513d6020811015611bd157600080fd5b50511515611bde57600080fd5b6040805182815290513391600160a060020a038616917f5d8daa04d680e083e2ab17a35494ba9f290f554edf76a78f0103a8a599b5c4249181900360200190a3505050565b600082600160a060020a0381161515611c3b57600080fd5b336000908152600660209081526040808320600160a060020a038816845290915290205461126f908463ffffffff611d8e16565b60008054600160a060020a03163314611c8757600080fd5b50303160008111611c9757600080fd5b604051339082156108fc029083906000818181858888f19350505050158015611cc4573d6000803e3d6000fd5b5060408051828152905133917faea7a96dc17068a25e51e08f8ed45b86bd34b10af65af8e757af57b7e7b9e55d919081900360200190a250565b600160a060020a03918216600090815260066020908152604080832093909416825291909152205490565b600054600160a060020a03163314611d4057600080fd5b600d54611d53908263ffffffff611d8e16565b600d5550565b600081600160a060020a0381161515611d7157600080fd5b5050600160a060020a031660009081526009602052604090205490565b600082820183811015611d9d57fe5b9392505050565b6000806060806060806060806000975060009650600960008a600160a060020a0316600160a060020a0316815260200190815260200160002054604051908082528060200260200182016040528015611e07578160200160208202803883390190505b509350600960008a600160a060020a0316600160a060020a0316815260200190815260200160002054604051908082528060200260200182016040528015611e59578160200160208202803883390190505b50600160a060020a038a166000908152600760209081526040918290208054835181840281018401909452808452939650919290830182828015611ebc57602002820191906000526020600020905b815481526020019060010190808311611ea8575b50505050509550600860008a600160a060020a0316600160a060020a03168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015611f3257602002820191906000526020600020905b815481526020019060010190808311611f1e575b505050505094505b600160a060020a0389166000908152600960205260409020548810156120c157611f84600c54878a815181101515611f6e57fe5b602090810290910101519063ffffffff611d8e16565b600d54611f9890429063ffffffff611d8e16565b1061204f57611fdf8589815181101515611fae57fe5b6020908102909101810151600160a060020a038c16600090815260059092526040909120549063ffffffff611d8e16565b600160a060020a038a1660008181526005602052604090209190915585517f613edbda9d1e6bda8af8e869a973f88cccf93854a11f351589038de07e1ab4e39087908b90811061202b57fe5b906020019060200201516040518082815260200191505060405180910390a26120b6565b858881518110151561205d57fe5b90602001906020020151848881518110151561207557fe5b60209081029091010152845185908990811061208d57fe5b9060200190602002015183888151811015156120a557fe5b602090810290910101526001909601955b600190970196611f3a565b866040519080825280602002602001820160405280156120eb578160200160208202803883390190505b50915086604051908082528060200260200182016040528015612118578160200160208202803883390190505b509050600097505b8688101561219357838881518110151561213657fe5b90602001906020020151828981518110151561214e57fe5b60209081029091010152825183908990811061216657fe5b90602001906020020151818981518110151561217e57fe5b60209081029091010152600190970196612120565b600160a060020a038916600090815260076020908152604090912083516121bc92850190612248565b50600160a060020a038916600090815260086020908152604090912082516121e692840190612248565b505050600160a060020a039096166000908152600960205260409020939093555050505050565b60008183101561221957fe5b50900390565b81548183558181111561224357600083815260209020612243918101908301612293565b505050565b828054828255906000526020600020908101928215612283579160200282015b82811115612283578251825591602001919060010190612268565b5061228f929150612293565b5090565b61089491905b8082111561228f57600081556001016122995600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058208e9225d33f74cb1e4a70d97bb2f8c6d2ca51b185f8282375935039f407ca86b300290000000000000000000000008884454e46410fda043dae2efa79f5584f31a634
Deployed Bytecode
0x60806040526004361061017f5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630451f520811461018457806306fdde03146101b7578063095ea7b3146102415780630fce887b1461027957806313af40351461031d57806318160ddd1461034057806323b872dd14610355578063313ce5671461037f5780633675f29b146103aa57806342966c68146103db5780635fc3a312146103f3578063661884631461041457806366fbc1541461043857806370a082311461044d5780638da5cb5b1461046e57806395d89b4114610483578063a9059cbb14610498578063b91aedab146104bc578063b9c5416d14610558578063c7cc4ee9146105c9578063c9e6bd34146105de578063ca0cd7c0146105ff578063ce62cd4a14610617578063d71c9c1214610638578063d729018114610659578063d73dd6231461067a578063d80b20561461069e578063dd62ed3e146106b3578063df51d46b146106da578063fb276fcf146106f2575b600080fd5b34801561019057600080fd5b506101a5600160a060020a0360043516610713565b60408051918252519081900360200190f35b3480156101c357600080fd5b506101cc610801565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102065781810151838201526020016101ee565b50505050905090810190601f1680156102335780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024d57600080fd5b50610265600160a060020a0360043516602435610897565b604080519115158252519081900360200190f35b34801561028557600080fd5b506040805160206004604435818101358381028086018501909652808552610265958335600160a060020a039081169660248035909216963696956064959294930192829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506109369650505050505050565b34801561032957600080fd5b5061033e600160a060020a0360043516610e33565b005b34801561034c57600080fd5b506101a5610e79565b34801561036157600080fd5b50610265600160a060020a0360043581169060243516604435610e7f565b34801561038b57600080fd5b50610394611033565b6040805160ff9092168252519081900360200190f35b3480156103b657600080fd5b506103bf61103c565b60408051600160a060020a039092168252519081900360200190f35b3480156103e757600080fd5b5061026560043561104b565b3480156103ff57600080fd5b506101a5600160a060020a0360043516611131565b34801561042057600080fd5b50610265600160a060020a03600435166024356111d0565b34801561044457600080fd5b506101a56112fa565b34801561045957600080fd5b506101a5600160a060020a0360043516611300565b34801561047a57600080fd5b506103bf61136e565b34801561048f57600080fd5b506101cc61137d565b3480156104a457600080fd5b50610265600160a060020a03600435166024356113db565b3480156104c857600080fd5b50604080516020600460248035828101358481028087018601909752808652610265968435600160a060020a031696369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506114dc9650505050505050565b34801561056457600080fd5b50610579600160a060020a036004351661185a565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156105b557818101518382015260200161059d565b505050509050019250505060405180910390f35b3480156105d557600080fd5b506101a561194c565b3480156105ea57600080fd5b50610579600160a060020a0360043516611952565b34801561060b57600080fd5b5061033e6004356119d5565b34801561062357600080fd5b5061033e600160a060020a0360043516611a05565b34801561064457600080fd5b50610265600160a060020a0360043516611a71565b34801561066557600080fd5b5061033e600160a060020a0360043516611a86565b34801561068657600080fd5b50610265600160a060020a0360043516602435611c23565b3480156106aa57600080fd5b5061033e611c6f565b3480156106bf57600080fd5b506101a5600160a060020a0360043581169060243516611cfe565b3480156106e657600080fd5b5061033e600435611d29565b3480156106fe57600080fd5b506101a5600160a060020a0360043516611d59565b600160a060020a038116600090815260056020526040812054905b600160a060020a0383166000908152600960205260409020548110156107fb57600c54600160a060020a038416600090815260076020526040902080546107949291908490811061077b57fe5b9060005260206000200154611d8e90919063ffffffff16565b600d546107a890429063ffffffff611d8e16565b106107f357600160a060020a038316600090815260086020526040902080546107f09190839081106107d657fe5b906000526020600020015483611d8e90919063ffffffff16565b91505b60010161072e565b50919050565b60018054604080516020601f6002600019610100878916150201909516949094049384018190048102820181019092528281526060939092909183018282801561088c5780601f106108615761010080835404028352916020019161088c565b820191906000526020600020905b81548152906001019060200180831161086f57829003601f168201915b505050505090505b90565b600082600160a060020a03811615156108af57600080fd5b3360009081526009602052604081205411156108ce576108ce33611da4565b336000818152600660209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6000808086600160a060020a038116151561095057600080fd5b86600160a060020a038116151561096657600080fd5b865186511461097457600080fd5b600160a060020a038916600090815260096020526040812054111561099c5761099c89611da4565b60009350600092505b85518410156109e3576109d686858151811015156109bf57fe5b60209081029091010151849063ffffffff611d8e16565b60019094019392506109a5565b336000908152600a602052604090205460ff1615610a2357600454600160a060020a038a1660009081526006602090815260408083203384529091529020555b600160a060020a0389166000908152600560205260409020548311801590610a4c575060008310155b8015610a7b5750600160a060020a03891660009081526006602090815260408083203384529091529020548311155b1515610a8657600080fd5b8651600160a060020a038916600090815260096020526040902054602a91610ab4919063ffffffff611d8e16565b1115610abf57600080fd5b600093505b8651841015610de75760008685815181101515610add57fe5b906020019060200201511115610d1257610b2f8685815181101515610afe57fe5b6020908102909101810151600160a060020a038c16600090815260059092526040909120549063ffffffff61220d16565b600160a060020a038a166000908152600560205260409020558551610b9490879086908110610b5a57fe5b6020908102909101810151600160a060020a038c16600090815260068352604080822033835290935291909120549063ffffffff61220d16565b600160a060020a03808b166000908152600660209081526040808320338452825280832094909455918b1681526009825282812054600790925291909120600190910190610be2908261221f565b50600160a060020a0388166000908152600960209081526040808320546008909252909120600190910190610c17908261221f565b50610c64600c54610c58600d54610c4c8b89815181101515610c3557fe5b60209081029091010151429063ffffffff611d8e16565b9063ffffffff611d8e16565b9063ffffffff61220d16565b600160a060020a038916600090815260076020908152604080832060099092529091205481548110610c9257fe5b6000918252602090912001558551869085908110610cac57fe5b6020908102909101810151600160a060020a038a166000908152600883526040808220600990945290205482549192918110610ce457fe5b6000918252602080832090910192909255600160a060020a038a168152600990915260409020805460010190555b87600160a060020a031689600160a060020a03167f34c966766e471b87b7ce8d0d0358378cf20008a30bbb36246a3413c8a286834e8987815181101515610d5557fe5b906020019060200201518988815181101515610d6d57fe5b602090810290910181015160408051938452918301528051918290030190a387600160a060020a031689600160a060020a03166000805160206122ae8339815191528887815181101515610dbd57fe5b906020019060200201516040518082815260200191505060405180910390a3600190930192610ac4565b336000908152600a602052604090205460ff1615610e2457600160a060020a03891660009081526006602090815260408083203384529091528120555b50600198975050505050505050565b600054600160a060020a03163314610e4a57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60045490565b600083600160a060020a0381161515610e9757600080fd5b83600160a060020a0381161515610ead57600080fd5b600160a060020a0386166000908152600960205260408120541115610ed557610ed586611da4565b600160a060020a0386166000908152600560205260409020548411801590610efe575060008410155b8015610f2d5750600160a060020a03861660009081526006602090815260408083203384529091529020548411155b1515610f3857600080fd5b600160a060020a0386166000908152600660209081526040808320338452909152902054610f6c908563ffffffff61220d16565b600160a060020a038716600081815260066020908152604080832033845282528083209490945591815260059091522054610fad908563ffffffff61220d16565b600160a060020a038088166000908152600560205260408082209390935590871681522054610fe2908563ffffffff611d8e16565b600160a060020a0380871660008181526005602090815260409182902094909455805188815290519193928a16926000805160206122ae83398151915292918290030190a350600195945050505050565b60035460ff1690565b600b54600160a060020a031681565b60008054600160a060020a0316331461106357600080fd5b3360009081526009602052604081205411156110825761108233611da4565b3360009081526005602052604090205482118015906110a2575060008210155b15156110ad57600080fd5b336000908152600560205260409020546110cd908363ffffffff61220d16565b336000908152600560205260409020556004546110f0908363ffffffff61220d16565b60045560408051838152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2506001919050565b6000805b600160a060020a0383166000908152600960205260409020548110156107fb57600c54600160a060020a038416600090815260076020526040902080546111829291908490811061077b57fe5b600d5461119690429063ffffffff611d8e16565b10156111c857600160a060020a038316600090815260086020526040902080546111c59190839081106107d657fe5b91505b600101611135565b600082600160a060020a03811615156111e857600080fd5b336000908152600660209081526040808320600160a060020a0388168452909152902054831061123b57336000908152600660209081526040808320600160a060020a0388168452909152812055611294565b336000908152600660209081526040808320600160a060020a038816845290915290205461126f908463ffffffff61220d16565b336000908152600660209081526040808320600160a060020a03891684529091529020555b336000818152600660209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600d5481565b600160a060020a038116600090815260056020526040812054905b600160a060020a0383166000908152600960205260409020548110156107fb57600160a060020a038316600090815260086020526040902080546113649190839081106107d657fe5b915060010161131b565b600054600160a060020a031681565b60028054604080516020601f600019610100600187161502019094168590049384018190048102820181019092528281526060939092909183018282801561088c5780601f106108615761010080835404028352916020019161088c565b600082600160a060020a03811615156113f357600080fd5b3360009081526009602052604081205411156114125761141233611da4565b336000908152600560205260409020548311801590611432575060008310155b151561143d57600080fd5b3360009081526005602052604090205461145d908463ffffffff61220d16565b3360009081526005602052604080822092909255600160a060020a0386168152205461148f908463ffffffff611d8e16565b600160a060020a0385166000818152600560209081526040918290209390935580518681529051919233926000805160206122ae8339815191529281900390910190a35060019392505050565b6000808085600160a060020a03811615156114f657600080fd5b855185511461150457600080fd5b3360009081526009602052604081205411156115235761152333611da4565b60009250600091505b845183101561156a5761155d858481518110151561154657fe5b60209081029091010151839063ffffffff611d8e16565b600190930192915061152c565b33600090815260056020526040902054821180159061158a575060008210155b151561159557600080fd5b8551600160a060020a038816600090815260096020526040902054602a916115c3919063ffffffff611d8e16565b11156115ce57600080fd5b600092505b855183101561184d57600085848151811015156115ec57fe5b90602001906020020151111561177857611635858481518110151561160d57fe5b602090810290910181015133600090815260059092526040909120549063ffffffff61220d16565b33600090815260056020908152604080832093909355600160a060020a038a16825260098152828220546007909152919020600190910190611677908261221f565b50600160a060020a03871660009081526009602090815260408083205460089092529091206001909101906116ac908261221f565b506116ca600c54610c58600d54610c4c8a88815181101515610c3557fe5b600160a060020a0388166000908152600760209081526040808320600990925290912054815481106116f857fe5b600091825260209091200155845185908490811061171257fe5b6020908102909101810151600160a060020a038916600090815260088352604080822060099094529020548254919291811061174a57fe5b6000918252602080832090910192909255600160a060020a0389168152600990915260409020805460010190555b86600160a060020a031633600160a060020a03167f34c966766e471b87b7ce8d0d0358378cf20008a30bbb36246a3413c8a286834e88868151811015156117bb57fe5b9060200190602002015188878151811015156117d357fe5b602090810290910181015160408051938452918301528051918290030190a386600160a060020a031633600160a060020a03166000805160206122ae833981519152878681518110151561182357fe5b906020019060200201516040518082815260200191505060405180910390a36001909201916115d3565b5060019695505050505050565b606060008183600160a060020a038116151561187557600080fd5b600092506009600086600160a060020a0316600160a060020a03168152602001908152602001600020546040519080825280602002602001820160405280156118c8578160200160208202803883390190505b5091505b600160a060020a03851660009081526009602052604090205483101561194457600d54600c54600160a060020a038716600090815260076020526040902080546119219392610c589290918890811061077b57fe5b828481518110151561192f57fe5b602090810290910101526001909201916118cc565b509392505050565b600c5481565b606081600160a060020a038116151561196a57600080fd5b600160a060020a038316600090815260086020908152604091829020805483518184028101840190945280845290918301828280156119c857602002820191906000526020600020905b8154815260200190600101908083116119b4575b5050505050915050919050565b600054600160a060020a031633146119ec57600080fd5b600c546119ff908263ffffffff611d8e16565b600c5550565b80600160a060020a0381161515611a1b57600080fd5b600054600160a060020a03163314611a3257600080fd5b50600b805473ffffffffffffffffffffffffffffffffffffffff19169055600160a060020a03166000908152600a60205260409020805460ff19169055565b600a6020526000908152604090205460ff1681565b600080548190600160a060020a03163314611aa057600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051849350600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015611b0457600080fd5b505af1158015611b18573d6000803e3d6000fd5b505050506040513d6020811015611b2e57600080fd5b5051905060008111611b3f57600080fd5b604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018390529051600160a060020a0384169163a9059cbb9160448083019260209291908290030181600087803b158015611ba757600080fd5b505af1158015611bbb573d6000803e3d6000fd5b505050506040513d6020811015611bd157600080fd5b50511515611bde57600080fd5b6040805182815290513391600160a060020a038616917f5d8daa04d680e083e2ab17a35494ba9f290f554edf76a78f0103a8a599b5c4249181900360200190a3505050565b600082600160a060020a0381161515611c3b57600080fd5b336000908152600660209081526040808320600160a060020a038816845290915290205461126f908463ffffffff611d8e16565b60008054600160a060020a03163314611c8757600080fd5b50303160008111611c9757600080fd5b604051339082156108fc029083906000818181858888f19350505050158015611cc4573d6000803e3d6000fd5b5060408051828152905133917faea7a96dc17068a25e51e08f8ed45b86bd34b10af65af8e757af57b7e7b9e55d919081900360200190a250565b600160a060020a03918216600090815260066020908152604080832093909416825291909152205490565b600054600160a060020a03163314611d4057600080fd5b600d54611d53908263ffffffff611d8e16565b600d5550565b600081600160a060020a0381161515611d7157600080fd5b5050600160a060020a031660009081526009602052604090205490565b600082820183811015611d9d57fe5b9392505050565b6000806060806060806060806000975060009650600960008a600160a060020a0316600160a060020a0316815260200190815260200160002054604051908082528060200260200182016040528015611e07578160200160208202803883390190505b509350600960008a600160a060020a0316600160a060020a0316815260200190815260200160002054604051908082528060200260200182016040528015611e59578160200160208202803883390190505b50600160a060020a038a166000908152600760209081526040918290208054835181840281018401909452808452939650919290830182828015611ebc57602002820191906000526020600020905b815481526020019060010190808311611ea8575b50505050509550600860008a600160a060020a0316600160a060020a03168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015611f3257602002820191906000526020600020905b815481526020019060010190808311611f1e575b505050505094505b600160a060020a0389166000908152600960205260409020548810156120c157611f84600c54878a815181101515611f6e57fe5b602090810290910101519063ffffffff611d8e16565b600d54611f9890429063ffffffff611d8e16565b1061204f57611fdf8589815181101515611fae57fe5b6020908102909101810151600160a060020a038c16600090815260059092526040909120549063ffffffff611d8e16565b600160a060020a038a1660008181526005602052604090209190915585517f613edbda9d1e6bda8af8e869a973f88cccf93854a11f351589038de07e1ab4e39087908b90811061202b57fe5b906020019060200201516040518082815260200191505060405180910390a26120b6565b858881518110151561205d57fe5b90602001906020020151848881518110151561207557fe5b60209081029091010152845185908990811061208d57fe5b9060200190602002015183888151811015156120a557fe5b602090810290910101526001909601955b600190970196611f3a565b866040519080825280602002602001820160405280156120eb578160200160208202803883390190505b50915086604051908082528060200260200182016040528015612118578160200160208202803883390190505b509050600097505b8688101561219357838881518110151561213657fe5b90602001906020020151828981518110151561214e57fe5b60209081029091010152825183908990811061216657fe5b90602001906020020151818981518110151561217e57fe5b60209081029091010152600190970196612120565b600160a060020a038916600090815260076020908152604090912083516121bc92850190612248565b50600160a060020a038916600090815260086020908152604090912082516121e692840190612248565b505050600160a060020a039096166000908152600960205260409020939093555050505050565b60008183101561221957fe5b50900390565b81548183558181111561224357600083815260209020612243918101908301612293565b505050565b828054828255906000526020600020908101928215612283579160200282015b82811115612283578251825591602001919060010190612268565b5061228f929150612293565b5090565b61089491905b8082111561228f57600081556001016122995600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058208e9225d33f74cb1e4a70d97bb2f8c6d2ca51b185f8282375935039f407ca86b30029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000008884454e46410fda043dae2efa79f5584f31a634
-----Decoded View---------------
Arg [0] : _address (address): 0x8884454E46410fdA043DAe2EfA79F5584f31A634
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000008884454e46410fda043dae2efa79f5584f31a634
Swarm Source
bzzr://8e9225d33f74cb1e4a70d97bb2f8c6d2ca51b185f8282375935039f407ca86b3
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.