Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
50,000,000,000 C3W
Holders
1,729
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 8 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
C3Wallet
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-09-29 */ pragma solidity ^0.4.24; /** * @title ERC223 * @dev New Interface for ERC223 */ contract ERC223 { // functions function balanceOf(address _owner) external view returns (uint256); function transfer(address _to, uint256 _value) public returns (bool success); function transfer(address _to, uint256 _value, bytes _data) public 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 constant returns (uint256 remaining); // Getters function name() external constant returns (string _name); function symbol() external constant returns (string _symbol); function decimals() external constant returns (uint8 _decimals); function totalSupply() external constant returns (uint256 _totalSupply); // Events event Transfer(address indexed _from, address indexed _to, uint256 _value); event ERC223Transfer(address indexed _from, address indexed _to, uint256 _value, bytes _data); event Approval(address indexed _owner, address indexed _spender, uint _value); event Burn(address indexed burner, uint256 value); event FrozenAccount(address indexed targets); event UnfrozenAccount(address indexed target); event LockedAccount(address indexed target, uint256 locked); event UnlockedAccount(address indexed target); } /** * @notice The contract will throw tokens if it does not inherit this * @title ERC223ReceivingContract * @dev Contract for ERC223 token fallback */ contract ERC223ReceivingContract { TKN internal fallback; struct TKN { address sender; uint value; bytes data; bytes4 sig; } function tokenFallback(address _from, uint256 _value, bytes _data) public pure { TKN memory tkn; tkn.sender = _from; tkn.value = _value; tkn.data = _data; uint32 u = uint32(_data[3]) + (uint32(_data[2]) << 8) + (uint32(_data[1]) << 16) + (uint32(_data[0]) << 24); tkn.sig = bytes4(u); /* * tkn variable is analogue of msg variable of Ether transaction * tkn.sender is person who initiated this token transaction (analogue of msg.sender) * tkn.value the number of tokens that were sent (analogue of msg.value) * tkn.data is data of token transaction (analogue of msg.data) * tkn.sig is 4 bytes signature of function if data of token transaction is a function execution */ } } /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; event OwnershipRenounced(address indexed previousOwner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ constructor() public { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to relinquish control of the contract. * @notice Renouncing to ownership will leave the contract without an owner. * It will not be possible to call the functions with the `onlyOwner` * modifier anymore. */ function renounceOwnership() public onlyOwner { emit OwnershipRenounced(owner); owner = address(0); } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function transferOwnership(address _newOwner) public onlyOwner { _transferOwnership(_newOwner); } /** * @dev Transfers control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function _transferOwnership(address _newOwner) internal { require(_newOwner != address(0)); emit OwnershipTransferred(owner, _newOwner); owner = _newOwner; } } /** * @title C3Wallet * @dev C3Wallet is a ERC223 Token with ERC20 functions and events * Fully backward compatible with ERC20 */ contract C3Wallet is ERC223, Ownable { using SafeMath for uint; string public name = "C3Wallet"; string public symbol = "C3W"; uint8 public decimals = 8; uint256 public totalSupply = 5e10 * 1e8; mapping (address => bool) public frozenAccount; mapping (address => uint256) public unlockUnixTime; constructor() public { balances[msg.sender] = totalSupply; } mapping (address => uint256) public balances; mapping(address => mapping (address => uint256)) public allowance; /** * @dev Getters */ // Function to access name of token . function name() external constant returns (string _name) { return name; } // Function to access symbol of token . function symbol() external constant returns (string _symbol) { return symbol; } // Function to access decimals of token . function decimals() external constant returns (uint8 _decimals) { return decimals; } // Function to access total supply of tokens . function totalSupply() external constant returns (uint256 _totalSupply) { return totalSupply; } /** * @dev Get balance of a token owner * @param _owner The address which one owns tokens */ function balanceOf(address _owner) external view returns (uint256 balance) { return balances[_owner]; } /** * @notice This function is modified for erc223 standard * @dev ERC20 transfer function added for backward compatibility. * @param _to Address of token receiver * @param _value Number of tokens to send */ function transfer(address _to, uint _value) public returns (bool success) { require(_value > 0 && frozenAccount[msg.sender] == false && frozenAccount[_to] == false && now > unlockUnixTime[msg.sender] && now > unlockUnixTime[_to] && _to != address(this)); bytes memory empty = hex"00000000"; if (isContract(_to)) { return transferToContract(_to, _value, empty); } else { return transferToAddress(_to, _value, empty); } } /** * @dev ERC223 transfer function * @param _to Address of token receiver * @param _value Number of tokens to send * @param _data data equivalent to tx.data from ethereum transaction */ function transfer(address _to, uint _value, bytes _data) public returns (bool success) { require(_value > 0 && frozenAccount[msg.sender] == false && frozenAccount[_to] == false && now > unlockUnixTime[msg.sender] && now > unlockUnixTime[_to] && _to != address(this)); if (isContract(_to)) { return transferToContract(_to, _value, _data); } else { return transferToAddress(_to, _value, _data); } } function isContract(address _addr) private view returns (bool is_contract) { uint length; assembly { //retrieve the size of the code on target address, this needs assembly length := extcodesize(_addr) } return (length > 0); } /** * @dev Prevent targets from sending or receiving tokens * @param _targets Addresses to be frozen */ function freezeAccounts(address[] _targets) onlyOwner public { require(_targets.length > 0); for (uint j = 0; j < _targets.length; j++) { require(_targets[j] != 0x0 && _targets[j] != Ownable.owner); frozenAccount[_targets[j]] = true; emit FrozenAccount(_targets[j]); } } /** * @dev Enable frozen targets to send or receive tokens * @param _targets Addresses to be unfrozen */ function unfreezeAccounts(address[] _targets) onlyOwner public { require(_targets.length > 0); for (uint j = 0; j < _targets.length; j++) { require(_targets[j] != 0x0 && _targets[j] != Ownable.owner); frozenAccount[_targets[j]] = false; emit UnfrozenAccount(_targets[j]); } } /** * @dev Prevent targets from sending or receiving tokens by setting Unix times. * @param _targets Addresses to be locked funds * @param _unixTimes Unix times when locking up will be finished */ function lockAccounts(address[] _targets, uint[] _unixTimes) onlyOwner public { require(_targets.length > 0 && _targets.length == _unixTimes.length); for(uint j = 0; j < _targets.length; j++){ require(_targets[j] != Ownable.owner); require(unlockUnixTime[_targets[j]] < _unixTimes[j]); unlockUnixTime[_targets[j]] = _unixTimes[j]; emit LockedAccount(_targets[j], _unixTimes[j]); } } /** * @dev Enable locked targets to send or receive tokens. * @param _targets Addresses to be locked funds */ function unlockAccounts(address[] _targets) onlyOwner public { require(_targets.length > 0); for(uint j = 0; j < _targets.length; j++){ unlockUnixTime[_targets[j]] = 0; emit UnlockedAccount(_targets[j]); } } // function which is called when transaction target is an address function transferToAddress(address _to, uint _value, bytes _data) private returns (bool success) { require(balances[msg.sender] >= _value); balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); emit ERC223Transfer(msg.sender, _to, _value, _data); emit Transfer(msg.sender, _to, _value); return true; } // function which is called when transaction target is a contract function transferToContract(address _to, uint _value, bytes _data) private returns (bool success) { require(balances[msg.sender] >= _value); balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); ERC223ReceivingContract receiver = ERC223ReceivingContract(_to); receiver.tokenFallback(msg.sender, _value, _data); emit ERC223Transfer(msg.sender, _to, _value, _data); emit Transfer(msg.sender, _to, _value); return true; } /** * @dev Transfer tokens from one address to another * Added due to backwards compatibility with ERC20 * @param _from address The address which you want to send tokens from * @param _to address The address which you want to transfer to * @param _value uint256 The amount of tokens to be transferred */ function transferFrom(address _from, address _to, uint256 _value) external returns (bool success) { require(_to != address(0) && _value > 0 && balances[_from] >= _value && allowance[_from][msg.sender] >= _value && frozenAccount[_from] == false && frozenAccount[_to] == false && now > unlockUnixTime[_from] && now > unlockUnixTime[_to]); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowance[_from][msg.sender] = allowance[_from][msg.sender].sub(_value); emit Transfer(_from, _to, _value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * Beware that changing an allowance with this method brings the risk that someone may use both the old * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ function approve(address _spender, uint256 _value) external returns (bool success) { allowance[msg.sender][_spender] = 0; // mitigate the race condition allowance[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param _owner Address The address which owns the funds. * @param _spender Address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance(address _owner, address _spender) external constant returns (uint256 remaining) { return allowance[_owner][_spender]; } /** * @dev Function to distribute tokens to the list of addresses by the provided uniform amount * @param _addresses List of addresses * @param _amount Uniform amount of tokens * @return A bool specifying the result of transfer */ function multiTransfer(address[] _addresses, uint256 _amount) public returns (bool) { require(_amount > 0 && _addresses.length > 0 && frozenAccount[msg.sender] == false && now > unlockUnixTime[msg.sender]); uint256 totalAmount = _amount.mul(_addresses.length); require(balances[msg.sender] >= totalAmount); for (uint j = 0; j < _addresses.length; j++) { require(_addresses[j] != 0x0 && frozenAccount[_addresses[j]] == false && now > unlockUnixTime[_addresses[j]]); balances[msg.sender] = balances[msg.sender].sub(_amount); balances[_addresses[j]] = balances[_addresses[j]].add(_amount); emit Transfer(msg.sender, _addresses[j], _amount); } return true; } /** * @dev Function to distribute tokens to the list of addresses by the provided various amount * @param _addresses list of addresses * @param _amounts list of token amounts */ function multiTransfer(address[] _addresses, uint256[] _amounts) public returns (bool) { require(_addresses.length > 0 && _addresses.length == _amounts.length && frozenAccount[msg.sender] == false && now > unlockUnixTime[msg.sender]); uint256 totalAmount = 0; for(uint j = 0; j < _addresses.length; j++){ require(_amounts[j] > 0 && _addresses[j] != 0x0 && frozenAccount[_addresses[j]] == false && now > unlockUnixTime[_addresses[j]]); totalAmount = totalAmount.add(_amounts[j]); } require(balances[msg.sender] >= totalAmount); for (j = 0; j < _addresses.length; j++) { balances[msg.sender] = balances[msg.sender].sub(_amounts[j]); balances[_addresses[j]] = balances[_addresses[j]].add(_amounts[j]); emit Transfer(msg.sender, _addresses[j], _amounts[j]); } return true; } /** * @dev Burns a specific amount of tokens. * @param _from The address that will burn the tokens. * @param _tokenAmount The amount of token to be burned */ function burn(address _from, uint256 _tokenAmount) onlyOwner public { require(_tokenAmount > 0 && balances[_from] >= _tokenAmount); balances[_from] = balances[_from].sub(_tokenAmount); totalSupply = totalSupply.sub(_tokenAmount); emit Burn(_from, _tokenAmount); } /** * @dev default payable function executed after receiving ether */ function () public payable { // does not accept ether } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"_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":"_targets","type":"address[]"}],"name":"unfreezeAccounts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"_totalSupply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addresses","type":"address[]"},{"name":"_amounts","type":"uint256[]"}],"name":"multiTransfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"_decimals","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_targets","type":"address[]"},{"name":"_unixTimes","type":"uint256[]"}],"name":"lockAccounts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"_symbol","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_tokenAmount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addresses","type":"address[]"},{"name":"_amount","type":"uint256"}],"name":"multiTransfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":"_targets","type":"address[]"}],"name":"freezeAccounts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"frozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"unlockUnixTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_targets","type":"address[]"}],"name":"unlockAccounts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"},{"indexed":false,"name":"_data","type":"bytes"}],"name":"ERC223Transfer","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"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"targets","type":"address"}],"name":"FrozenAccount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"target","type":"address"}],"name":"UnfrozenAccount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"target","type":"address"},{"indexed":false,"name":"locked","type":"uint256"}],"name":"LockedAccount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"target","type":"address"}],"name":"UnlockedAccount","type":"event"}]
Contract Creation Code
60c0604052600860808190527f433357616c6c657400000000000000000000000000000000000000000000000060a0908152620000409160019190620000da565b506040805180820190915260038082527f433357000000000000000000000000000000000000000000000000000000000060209092019182526200008791600291620000da565b506003805460ff19166008179055674563918244f40000600455348015620000ae57600080fd5b5060008054600160a060020a03191633908117825560045490825260076020526040909120556200017f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200011d57805160ff19168380011785556200014d565b828001600101855582156200014d579182015b828111156200014d57825182559160200191906001019062000130565b506200015b9291506200015f565b5090565b6200017c91905b808211156200015b576000815560010162000166565b90565b611cd0806200018f6000396000f3006080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610134578063095ea7b3146101be578063170e2070146101f657806318160ddd1461024b5780631e89d5451461027257806323b872dd1461030057806327e235e31461032a578063313ce5671461034b57806370a0823114610376578063715018a6146103975780638da5cb5b146103ac5780638f78b34a146103dd57806395d89b411461046b5780639dc29fac14610480578063a16a3179146104a4578063a9059cbb146104fb578063aad120291461051f578063b414d4b614610574578063be45fd6214610595578063cbbe974b146105fe578063dd62ed3e1461061f578063ebaddea714610646578063f2fde38b1461069b575b005b34801561014057600080fd5b506101496106bc565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018357818101518382015260200161016b565b50505050905090810190601f1680156101b05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101ca57600080fd5b506101e2600160a060020a0360043516602435610751565b604080519115158252519081900360200190f35b34801561020257600080fd5b5060408051602060048035808201358381028086018501909652808552610132953695939460249493850192918291850190849080828437509497506107b79650505050505050565b34801561025757600080fd5b506102606108f3565b60408051918252519081900360200190f35b34801561027e57600080fd5b50604080516020600480358082013583810280860185019096528085526101e295369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506108f99650505050505050565b34801561030c57600080fd5b506101e2600160a060020a0360043581169060243516604435610beb565b34801561033657600080fd5b50610260600160a060020a0360043516610def565b34801561035757600080fd5b50610360610e01565b6040805160ff9092168252519081900360200190f35b34801561038257600080fd5b50610260600160a060020a0360043516610e0a565b3480156103a357600080fd5b50610132610e25565b3480156103b857600080fd5b506103c1610e91565b60408051600160a060020a039092168252519081900360200190f35b3480156103e957600080fd5b506040805160206004803580820135838102808601850190965280855261013295369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610ea09650505050505050565b34801561047757600080fd5b5061014961103d565b34801561048c57600080fd5b50610132600160a060020a036004351660243561109b565b3480156104b057600080fd5b50604080516020600480358082013583810280860185019096528085526101e29536959394602494938501929182918501908490808284375094975050933594506111809350505050565b34801561050757600080fd5b506101e2600160a060020a03600435166024356113a5565b34801561052b57600080fd5b5060408051602060048035808201358381028086018501909652808552610132953695939460249493850192918291850190849080828437509497506114939650505050505050565b34801561058057600080fd5b506101e2600160a060020a03600435166115cb565b3480156105a157600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101e2948235600160a060020a03169460248035953695946064949201919081908401838280828437509497506115e09650505050505050565b34801561060a57600080fd5b50610260600160a060020a03600435166116ae565b34801561062b57600080fd5b50610260600160a060020a03600435811690602435166116c0565b34801561065257600080fd5b5060408051602060048035808201358381028086018501909652808552610132953695939460249493850192918291850190849080828437509497506116eb9650505050505050565b3480156106a757600080fd5b50610132600160a060020a03600435166117aa565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156107475780601f1061071c57610100808354040283529160200191610747565b820191906000526020600020905b81548152906001019060200180831161072a57829003601f168201915b5050505050905090565b336000818152600860209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60008054600160a060020a031633146107cf57600080fd5b81516000106107dd57600080fd5b5060005b81518110156108ef5781818151811015156107f857fe5b90602001906020020151600160a060020a031660001415801561084957506000548251600160a060020a039091169083908390811061083357fe5b90602001906020020151600160a060020a031614155b151561085457600080fd5b600060056000848481518110151561086857fe5b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff191691151591909117905581518290829081106108a857fe5b90602001906020020151600160a060020a03167fad8c5167ea40034252f025cc63e5389848cdfec155aee766d091d7a57517c3ab60405160405180910390a26001016107e1565b5050565b60045490565b600080600080855111801561090f575083518551145b801561092b57503360009081526005602052604090205460ff16155b801561094557503360009081526006602052604090205442115b151561095057600080fd5b5060009050805b8451811015610a6d576000848281518110151561097057fe5b906020019060200201511180156109a85750848181518110151561099057fe5b90602001906020020151600160a060020a0316600014155b80156109e957506005600086838151811015156109c157fe5b6020908102909101810151600160a060020a031682528101919091526040016000205460ff16155b8015610a305750600660008683815181101515610a0257fe5b90602001906020020151600160a060020a0316600160a060020a031681526020019081526020016000205442115b1515610a3b57600080fd5b610a638482815181101515610a4c57fe5b60209081029091010151839063ffffffff6117cd16565b9150600101610957565b33600090815260076020526040902054821115610a8957600080fd5b5060005b8451811015610be057610acf8482815181101515610aa757fe5b602090810290910181015133600090815260079092526040909120549063ffffffff6117dc16565b336000908152600760205260409020558351610b3c90859083908110610af157fe5b90602001906020020151600760008885815181101515610b0d57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020549063ffffffff6117cd16565b600760008784815181101515610b4e57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558451859082908110610b7f57fe5b90602001906020020151600160a060020a031633600160a060020a0316600080516020611c858339815191528684815181101515610bb957fe5b906020019060200201516040518082815260200191505060405180910390a3600101610a8d565b506001949350505050565b6000600160a060020a03831615801590610c055750600082115b8015610c295750600160a060020a0384166000908152600760205260409020548211155b8015610c585750600160a060020a03841660009081526008602090815260408083203384529091529020548211155b8015610c7d5750600160a060020a03841660009081526005602052604090205460ff16155b8015610ca25750600160a060020a03831660009081526005602052604090205460ff16155b8015610cc55750600160a060020a03841660009081526006602052604090205442115b8015610ce85750600160a060020a03831660009081526006602052604090205442115b1515610cf357600080fd5b600160a060020a038416600090815260076020526040902054610d1c908363ffffffff6117dc16565b600160a060020a038086166000908152600760205260408082209390935590851681522054610d51908363ffffffff6117cd16565b600160a060020a038085166000908152600760209081526040808320949094559187168152600882528281203382529091522054610d95908363ffffffff6117dc16565b600160a060020a0380861660008181526008602090815260408083203384528252918290209490945580518681529051928716939192600080516020611c85833981519152929181900390910190a35060015b9392505050565b60076020526000908152604090205481565b60035460ff1690565b600160a060020a031660009081526007602052604090205490565b600054600160a060020a03163314610e3c57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031681565b60008054600160a060020a03163314610eb857600080fd5b60008351118015610eca575081518351145b1515610ed557600080fd5b5060005b8251811015611038576000548351600160a060020a0390911690849083908110610eff57fe5b60209081029091010151600160a060020a03161415610f1d57600080fd5b8181815181101515610f2b57fe5b90602001906020020151600660008584815181101515610f4757fe5b6020908102909101810151600160a060020a031682528101919091526040016000205410610f7457600080fd5b8181815181101515610f8257fe5b90602001906020020151600660008584815181101515610f9e57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558251839082908110610fcf57fe5b90602001906020020151600160a060020a03167f4d510e87e8b4a8ac8074d3ae995f797c869bc49b49c2cba7ecd752a5d1e6b043838381518110151561101157fe5b906020019060200201516040518082815260200191505060405180910390a2600101610ed9565b505050565b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152606093909290918301828280156107475780601f1061071c57610100808354040283529160200191610747565b600054600160a060020a031633146110b257600080fd5b6000811180156110da5750600160a060020a0382166000908152600760205260409020548111155b15156110e557600080fd5b600160a060020a03821660009081526007602052604090205461110e908263ffffffff6117dc16565b600160a060020a03831660009081526007602052604090205560045461113a908263ffffffff6117dc16565b600455604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a25050565b60008060008084118015611195575060008551115b80156111b157503360009081526005602052604090205460ff16155b80156111cb57503360009081526006602052604090205442115b15156111d657600080fd5b84516111e990859063ffffffff6117ee16565b3360009081526007602052604090205490925082111561120857600080fd5b5060005b8451811015610be057848181518110151561122357fe5b90602001906020020151600160a060020a031660001415801561127b575060056000868381518110151561125357fe5b6020908102909101810151600160a060020a031682528101919091526040016000205460ff16155b80156112c2575060066000868381518110151561129457fe5b90602001906020020151600160a060020a0316600160a060020a031681526020019081526020016000205442115b15156112cd57600080fd5b336000908152600760205260409020546112ed908563ffffffff6117dc16565b33600090815260076020819052604082209290925586516113189287929091899086908110610b0d57fe5b60076000878481518110151561132a57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002055845185908290811061135b57fe5b90602001906020020151600160a060020a031633600160a060020a0316600080516020611c85833981519152866040518082815260200191505060405180910390a360010161120c565b600060606000831180156113c957503360009081526005602052604090205460ff16155b80156113ee5750600160a060020a03841660009081526005602052604090205460ff16155b801561140857503360009081526006602052604090205442115b801561142b5750600160a060020a03841660009081526006602052604090205442115b80156114405750600160a060020a0384163014155b151561144b57600080fd5b5060408051808201909152600481526000602082015261146a84611819565b156114815761147a848483611821565b915061148c565b61147a848483611a83565b5092915050565b60008054600160a060020a031633146114ab57600080fd5b81516000106114b957600080fd5b5060005b81518110156108ef5781818151811015156114d457fe5b90602001906020020151600160a060020a031660001415801561152557506000548251600160a060020a039091169083908390811061150f57fe5b90602001906020020151600160a060020a031614155b151561153057600080fd5b600160056000848481518110151561154457fe5b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff1916911515919091179055815182908290811061158457fe5b90602001906020020151600160a060020a03167fab31471e2733e9405c1ac9092ad88ff15b9d83479c0db9acf8c3c688e7a8b4f760405160405180910390a26001016114bd565b60056020526000908152604090205460ff1681565b6000808311801561160157503360009081526005602052604090205460ff16155b80156116265750600160a060020a03841660009081526005602052604090205460ff16155b801561164057503360009081526006602052604090205442115b80156116635750600160a060020a03841660009081526006602052604090205442115b80156116785750600160a060020a0384163014155b151561168357600080fd5b61168c84611819565b156116a35761169c848484611821565b9050610de8565b61169c848484611a83565b60066020526000908152604090205481565b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b60008054600160a060020a0316331461170357600080fd5b815160001061171157600080fd5b5060005b81518110156108ef57600060066000848481518110151561173257fe5b6020908102909101810151600160a060020a0316825281019190915260400160002055815182908290811061176357fe5b90602001906020020151600160a060020a03167f1284822c57612314b7d3043c01709311fd920cc6839d72dea5f90ffb504a268660405160405180910390a2600101611715565b600054600160a060020a031633146117c157600080fd5b6117ca81611c07565b50565b600082820183811015610de857fe5b6000828211156117e857fe5b50900390565b600080831515611801576000915061148c565b5082820282848281151561181157fe5b0414610de857fe5b6000903b1190565b33600090815260076020526040812054819084111561183f57600080fd5b3360009081526007602052604090205461185f908563ffffffff6117dc16565b3360009081526007602052604080822092909255600160a060020a03871681522054611891908563ffffffff6117cd16565b600160a060020a03861660008181526007602090815260408083209490945592517fc0ee0b8a0000000000000000000000000000000000000000000000000000000081523360048201818152602483018a90526060604484019081528951606485015289518c9850959663c0ee0b8a9693958c958c956084909101928601918190849084905b8381101561192f578181015183820152602001611917565b50505050905090810190601f16801561195c5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561197d57600080fd5b505af1158015611991573d6000803e3d6000fd5b5050505084600160a060020a031633600160a060020a03167f9bfafdc2ae8835972d7b64ef3f8f307165ac22ceffde4a742c52da5487f45fd186866040518083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611a0f5781810151838201526020016119f7565b50505050905090810190601f168015611a3c5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a3604080518581529051600160a060020a038716913391600080516020611c858339815191529181900360200190a3506001949350505050565b33600090815260076020526040812054831115611a9f57600080fd5b33600090815260076020526040902054611abf908463ffffffff6117dc16565b3360009081526007602052604080822092909255600160a060020a03861681522054611af1908463ffffffff6117cd16565b6007600086600160a060020a0316600160a060020a031681526020019081526020016000208190555083600160a060020a031633600160a060020a03167f9bfafdc2ae8835972d7b64ef3f8f307165ac22ceffde4a742c52da5487f45fd185856040518083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611b94578181015183820152602001611b7c565b50505050905090810190601f168015611bc15780820380516001836020036101000a031916815260200191505b50935050505060405180910390a3604080518481529051600160a060020a038616913391600080516020611c858339815191529181900360200190a35060019392505050565b600160a060020a0381161515611c1c57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582096aa17a1e6a17aecaa9ede53659dbb281dce5e5e40c770aa06f126ca52e8bfda0029
Deployed Bytecode
0x6080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610134578063095ea7b3146101be578063170e2070146101f657806318160ddd1461024b5780631e89d5451461027257806323b872dd1461030057806327e235e31461032a578063313ce5671461034b57806370a0823114610376578063715018a6146103975780638da5cb5b146103ac5780638f78b34a146103dd57806395d89b411461046b5780639dc29fac14610480578063a16a3179146104a4578063a9059cbb146104fb578063aad120291461051f578063b414d4b614610574578063be45fd6214610595578063cbbe974b146105fe578063dd62ed3e1461061f578063ebaddea714610646578063f2fde38b1461069b575b005b34801561014057600080fd5b506101496106bc565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018357818101518382015260200161016b565b50505050905090810190601f1680156101b05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101ca57600080fd5b506101e2600160a060020a0360043516602435610751565b604080519115158252519081900360200190f35b34801561020257600080fd5b5060408051602060048035808201358381028086018501909652808552610132953695939460249493850192918291850190849080828437509497506107b79650505050505050565b34801561025757600080fd5b506102606108f3565b60408051918252519081900360200190f35b34801561027e57600080fd5b50604080516020600480358082013583810280860185019096528085526101e295369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506108f99650505050505050565b34801561030c57600080fd5b506101e2600160a060020a0360043581169060243516604435610beb565b34801561033657600080fd5b50610260600160a060020a0360043516610def565b34801561035757600080fd5b50610360610e01565b6040805160ff9092168252519081900360200190f35b34801561038257600080fd5b50610260600160a060020a0360043516610e0a565b3480156103a357600080fd5b50610132610e25565b3480156103b857600080fd5b506103c1610e91565b60408051600160a060020a039092168252519081900360200190f35b3480156103e957600080fd5b506040805160206004803580820135838102808601850190965280855261013295369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610ea09650505050505050565b34801561047757600080fd5b5061014961103d565b34801561048c57600080fd5b50610132600160a060020a036004351660243561109b565b3480156104b057600080fd5b50604080516020600480358082013583810280860185019096528085526101e29536959394602494938501929182918501908490808284375094975050933594506111809350505050565b34801561050757600080fd5b506101e2600160a060020a03600435166024356113a5565b34801561052b57600080fd5b5060408051602060048035808201358381028086018501909652808552610132953695939460249493850192918291850190849080828437509497506114939650505050505050565b34801561058057600080fd5b506101e2600160a060020a03600435166115cb565b3480156105a157600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101e2948235600160a060020a03169460248035953695946064949201919081908401838280828437509497506115e09650505050505050565b34801561060a57600080fd5b50610260600160a060020a03600435166116ae565b34801561062b57600080fd5b50610260600160a060020a03600435811690602435166116c0565b34801561065257600080fd5b5060408051602060048035808201358381028086018501909652808552610132953695939460249493850192918291850190849080828437509497506116eb9650505050505050565b3480156106a757600080fd5b50610132600160a060020a03600435166117aa565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156107475780601f1061071c57610100808354040283529160200191610747565b820191906000526020600020905b81548152906001019060200180831161072a57829003601f168201915b5050505050905090565b336000818152600860209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60008054600160a060020a031633146107cf57600080fd5b81516000106107dd57600080fd5b5060005b81518110156108ef5781818151811015156107f857fe5b90602001906020020151600160a060020a031660001415801561084957506000548251600160a060020a039091169083908390811061083357fe5b90602001906020020151600160a060020a031614155b151561085457600080fd5b600060056000848481518110151561086857fe5b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff191691151591909117905581518290829081106108a857fe5b90602001906020020151600160a060020a03167fad8c5167ea40034252f025cc63e5389848cdfec155aee766d091d7a57517c3ab60405160405180910390a26001016107e1565b5050565b60045490565b600080600080855111801561090f575083518551145b801561092b57503360009081526005602052604090205460ff16155b801561094557503360009081526006602052604090205442115b151561095057600080fd5b5060009050805b8451811015610a6d576000848281518110151561097057fe5b906020019060200201511180156109a85750848181518110151561099057fe5b90602001906020020151600160a060020a0316600014155b80156109e957506005600086838151811015156109c157fe5b6020908102909101810151600160a060020a031682528101919091526040016000205460ff16155b8015610a305750600660008683815181101515610a0257fe5b90602001906020020151600160a060020a0316600160a060020a031681526020019081526020016000205442115b1515610a3b57600080fd5b610a638482815181101515610a4c57fe5b60209081029091010151839063ffffffff6117cd16565b9150600101610957565b33600090815260076020526040902054821115610a8957600080fd5b5060005b8451811015610be057610acf8482815181101515610aa757fe5b602090810290910181015133600090815260079092526040909120549063ffffffff6117dc16565b336000908152600760205260409020558351610b3c90859083908110610af157fe5b90602001906020020151600760008885815181101515610b0d57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020549063ffffffff6117cd16565b600760008784815181101515610b4e57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558451859082908110610b7f57fe5b90602001906020020151600160a060020a031633600160a060020a0316600080516020611c858339815191528684815181101515610bb957fe5b906020019060200201516040518082815260200191505060405180910390a3600101610a8d565b506001949350505050565b6000600160a060020a03831615801590610c055750600082115b8015610c295750600160a060020a0384166000908152600760205260409020548211155b8015610c585750600160a060020a03841660009081526008602090815260408083203384529091529020548211155b8015610c7d5750600160a060020a03841660009081526005602052604090205460ff16155b8015610ca25750600160a060020a03831660009081526005602052604090205460ff16155b8015610cc55750600160a060020a03841660009081526006602052604090205442115b8015610ce85750600160a060020a03831660009081526006602052604090205442115b1515610cf357600080fd5b600160a060020a038416600090815260076020526040902054610d1c908363ffffffff6117dc16565b600160a060020a038086166000908152600760205260408082209390935590851681522054610d51908363ffffffff6117cd16565b600160a060020a038085166000908152600760209081526040808320949094559187168152600882528281203382529091522054610d95908363ffffffff6117dc16565b600160a060020a0380861660008181526008602090815260408083203384528252918290209490945580518681529051928716939192600080516020611c85833981519152929181900390910190a35060015b9392505050565b60076020526000908152604090205481565b60035460ff1690565b600160a060020a031660009081526007602052604090205490565b600054600160a060020a03163314610e3c57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031681565b60008054600160a060020a03163314610eb857600080fd5b60008351118015610eca575081518351145b1515610ed557600080fd5b5060005b8251811015611038576000548351600160a060020a0390911690849083908110610eff57fe5b60209081029091010151600160a060020a03161415610f1d57600080fd5b8181815181101515610f2b57fe5b90602001906020020151600660008584815181101515610f4757fe5b6020908102909101810151600160a060020a031682528101919091526040016000205410610f7457600080fd5b8181815181101515610f8257fe5b90602001906020020151600660008584815181101515610f9e57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558251839082908110610fcf57fe5b90602001906020020151600160a060020a03167f4d510e87e8b4a8ac8074d3ae995f797c869bc49b49c2cba7ecd752a5d1e6b043838381518110151561101157fe5b906020019060200201516040518082815260200191505060405180910390a2600101610ed9565b505050565b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152606093909290918301828280156107475780601f1061071c57610100808354040283529160200191610747565b600054600160a060020a031633146110b257600080fd5b6000811180156110da5750600160a060020a0382166000908152600760205260409020548111155b15156110e557600080fd5b600160a060020a03821660009081526007602052604090205461110e908263ffffffff6117dc16565b600160a060020a03831660009081526007602052604090205560045461113a908263ffffffff6117dc16565b600455604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a25050565b60008060008084118015611195575060008551115b80156111b157503360009081526005602052604090205460ff16155b80156111cb57503360009081526006602052604090205442115b15156111d657600080fd5b84516111e990859063ffffffff6117ee16565b3360009081526007602052604090205490925082111561120857600080fd5b5060005b8451811015610be057848181518110151561122357fe5b90602001906020020151600160a060020a031660001415801561127b575060056000868381518110151561125357fe5b6020908102909101810151600160a060020a031682528101919091526040016000205460ff16155b80156112c2575060066000868381518110151561129457fe5b90602001906020020151600160a060020a0316600160a060020a031681526020019081526020016000205442115b15156112cd57600080fd5b336000908152600760205260409020546112ed908563ffffffff6117dc16565b33600090815260076020819052604082209290925586516113189287929091899086908110610b0d57fe5b60076000878481518110151561132a57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002055845185908290811061135b57fe5b90602001906020020151600160a060020a031633600160a060020a0316600080516020611c85833981519152866040518082815260200191505060405180910390a360010161120c565b600060606000831180156113c957503360009081526005602052604090205460ff16155b80156113ee5750600160a060020a03841660009081526005602052604090205460ff16155b801561140857503360009081526006602052604090205442115b801561142b5750600160a060020a03841660009081526006602052604090205442115b80156114405750600160a060020a0384163014155b151561144b57600080fd5b5060408051808201909152600481526000602082015261146a84611819565b156114815761147a848483611821565b915061148c565b61147a848483611a83565b5092915050565b60008054600160a060020a031633146114ab57600080fd5b81516000106114b957600080fd5b5060005b81518110156108ef5781818151811015156114d457fe5b90602001906020020151600160a060020a031660001415801561152557506000548251600160a060020a039091169083908390811061150f57fe5b90602001906020020151600160a060020a031614155b151561153057600080fd5b600160056000848481518110151561154457fe5b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff1916911515919091179055815182908290811061158457fe5b90602001906020020151600160a060020a03167fab31471e2733e9405c1ac9092ad88ff15b9d83479c0db9acf8c3c688e7a8b4f760405160405180910390a26001016114bd565b60056020526000908152604090205460ff1681565b6000808311801561160157503360009081526005602052604090205460ff16155b80156116265750600160a060020a03841660009081526005602052604090205460ff16155b801561164057503360009081526006602052604090205442115b80156116635750600160a060020a03841660009081526006602052604090205442115b80156116785750600160a060020a0384163014155b151561168357600080fd5b61168c84611819565b156116a35761169c848484611821565b9050610de8565b61169c848484611a83565b60066020526000908152604090205481565b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b60008054600160a060020a0316331461170357600080fd5b815160001061171157600080fd5b5060005b81518110156108ef57600060066000848481518110151561173257fe5b6020908102909101810151600160a060020a0316825281019190915260400160002055815182908290811061176357fe5b90602001906020020151600160a060020a03167f1284822c57612314b7d3043c01709311fd920cc6839d72dea5f90ffb504a268660405160405180910390a2600101611715565b600054600160a060020a031633146117c157600080fd5b6117ca81611c07565b50565b600082820183811015610de857fe5b6000828211156117e857fe5b50900390565b600080831515611801576000915061148c565b5082820282848281151561181157fe5b0414610de857fe5b6000903b1190565b33600090815260076020526040812054819084111561183f57600080fd5b3360009081526007602052604090205461185f908563ffffffff6117dc16565b3360009081526007602052604080822092909255600160a060020a03871681522054611891908563ffffffff6117cd16565b600160a060020a03861660008181526007602090815260408083209490945592517fc0ee0b8a0000000000000000000000000000000000000000000000000000000081523360048201818152602483018a90526060604484019081528951606485015289518c9850959663c0ee0b8a9693958c958c956084909101928601918190849084905b8381101561192f578181015183820152602001611917565b50505050905090810190601f16801561195c5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561197d57600080fd5b505af1158015611991573d6000803e3d6000fd5b5050505084600160a060020a031633600160a060020a03167f9bfafdc2ae8835972d7b64ef3f8f307165ac22ceffde4a742c52da5487f45fd186866040518083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611a0f5781810151838201526020016119f7565b50505050905090810190601f168015611a3c5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a3604080518581529051600160a060020a038716913391600080516020611c858339815191529181900360200190a3506001949350505050565b33600090815260076020526040812054831115611a9f57600080fd5b33600090815260076020526040902054611abf908463ffffffff6117dc16565b3360009081526007602052604080822092909255600160a060020a03861681522054611af1908463ffffffff6117cd16565b6007600086600160a060020a0316600160a060020a031681526020019081526020016000208190555083600160a060020a031633600160a060020a03167f9bfafdc2ae8835972d7b64ef3f8f307165ac22ceffde4a742c52da5487f45fd185856040518083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611b94578181015183820152602001611b7c565b50505050905090810190601f168015611bc15780820380516001836020036101000a031916815260200191505b50935050505060405180910390a3604080518481529051600160a060020a038616913391600080516020611c858339815191529181900360200190a35060019392505050565b600160a060020a0381161515611c1c57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582096aa17a1e6a17aecaa9ede53659dbb281dce5e5e40c770aa06f126ca52e8bfda0029
Swarm Source
bzzr://96aa17a1e6a17aecaa9ede53659dbb281dce5e5e40c770aa06f126ca52e8bfda
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.