ETH Price: $3,464.01 (-1.21%)
Gas: 3 Gwei

Token

X (X)
 

Overview

Max Total Supply

76,543 X

Holders

63

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,332.569357747625229776 X

Value
$0.00
0x00000000f79cb6d0a05275000fbe1d6d46610001
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Token

Compiler Version
v0.6.6+commit.6c089d02

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2020-10-22
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;

contract Ownable {
    address public owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() public {
        owner = msg.sender;
    }

    modifier onlyOwner() {
        require(msg.sender == owner, "Function can only be performed by the owner");
        _;
    }

    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0), "Invalid address");
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}

/**
 * @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;
    }
}

contract Token is Ownable {
    using SafeMath for uint;

    uint256 private constant _totalSupply = 76543000000000000000000;
    uint256 private constant _top = 100;
    uint256 private constant _contract_deployment_time = 1603395000; // intended contract deployment time
    uint256 private constant _time_delayed_start = 2700;

    uint256 public holdersCount;
    address constant GUARD = address(1);

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => address) private _nextHolders;

    function name() public pure returns (string memory) {
        return "X";
    }

    function symbol() public pure returns (string memory) {
        return "X";
    }

    function decimals() public pure returns (uint8) {
        return 18;
    }
    
    function totalSupply() external pure returns (uint256) {
        return _totalSupply;
    }

    constructor () public {
        _nextHolders[GUARD] = GUARD;

        addHolder(msg.sender, 76543000000000000000000);

        emit Transfer(address(0), msg.sender, 76543000000000000000000);
    }

    function approve(address spender, uint256 amount) external returns (bool) {
        require(spender != address(0), "Invalid address 3");

        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function allowance(address owner, address spender) external view returns (uint256) {
        return _allowances[owner][spender];
    }

    function balanceOf(address who) public view returns (uint256) {
        return _balances[who];
    }

    function transfer(address to, uint256 value) public returns (bool) {
        require(_balances[msg.sender] >= value, "Insufficient balance");

        return _transferFrom(msg.sender, to, value);
    }

    function transferFrom(address from, address to, uint256 value) public returns (bool) {
        require(_balances[from] >= value, "Insufficient balance");
        require(_allowances[from][msg.sender] >= value, "Insufficient balance");
        
        _allowances[from][msg.sender] = _allowances[from][msg.sender].sub(value);

        return _transferFrom(from, to, value);
    }

    function _transferFrom(address from, address to, uint256 value) private returns (bool) {
        address random = _getRandomHolder();
        
        uint256 tax;
        
        if(now > _contract_deployment_time + _time_delayed_start){ // tax rate only starts after
            tax = value.mul(22).div(100);          // contract deployment time (hardcoded above);
            value = value.mul(78).div(100);
        }else{
            tax = 0;
        }
        
        
        if (_balances[to] == 0) {
            addHolder(to, value);
        } else {
            _updateBalance(to, _balances[to].add(value));
        }

        _updateBalance(random, _balances[random].add(tax));

        if (_balances[from].sub(value) == 0) {
            removeHolder(from);
        } else {
            _updateBalance(from, _balances[from].sub(value));
        }

        emit Transfer(from, to, value);
        emit Transfer(from, random, tax);
        return true;
    }

    //make private
    function addHolder(address who, uint256 balance) private {
        require(_nextHolders[who] == address(0), "Invalid address (add holder)");

        address index = _findIndex(balance);
        _balances[who] = balance;

        _nextHolders[who] = _nextHolders[index];
        _nextHolders[index] = who;

        holdersCount = holdersCount.add(1);
    }

    //make private
    function removeHolder(address who) private {
        require(_nextHolders[who] != address(0), "Invalid address (remove holder)");

        address prevHolder = _findPrevHolder(who);
        _nextHolders[prevHolder] = _nextHolders[who];
        _nextHolders[who] = address(0);
        _balances[who] = 0;
        holdersCount = holdersCount.sub(1);
    }

    function getTopHolders(uint256 k) public view returns (address[] memory) {
        require(k <= holdersCount, "Index out of bounds");
        address[] memory holdersLists = new address[](k);
        address currentAddress = _nextHolders[GUARD];
        
        for(uint256 i = 0; i < k; ++i) {
            holdersLists[i] = currentAddress;
            currentAddress = _nextHolders[currentAddress];
        }

        return holdersLists;
    }

    function getTopHolder(uint256 n) public view returns (address) {
        require(n <= holdersCount, "Index out of bounds");
        address currentAddress = _nextHolders[GUARD];
        
        for(uint256 i = 0; i < n; ++i) {
            currentAddress = _nextHolders[currentAddress];
        }

        return currentAddress;
    }

    function _updateBalance(address who, uint256 newBalance) internal {
        require(_nextHolders[who] != address(0), "Invalid address (update balance)");
        address prevHolder = _findPrevHolder(who);
        address nextHolder = _nextHolders[who];

        if(_verifyIndex(prevHolder, newBalance, nextHolder)){
            _balances[who] = newBalance;
        } else {
            removeHolder(who);
            addHolder(who, newBalance);
        }
    }

    function _verifyIndex(address prevHolder, uint256 newValue, address nextHolder) internal view returns(bool) {
        return (prevHolder == GUARD || _balances[prevHolder] >= newValue) && 
            (nextHolder == GUARD || newValue > _balances[nextHolder]);
    }

    function _findIndex(uint256 newValue) internal view returns(address) {
        address candidateAddress = GUARD;
        while(true) {
            if(_verifyIndex(candidateAddress, newValue, _nextHolders[candidateAddress]))
                return candidateAddress;
                
            candidateAddress = _nextHolders[candidateAddress];
        }
    }

    function _isPrevHolder(address who, address prev) internal view returns(bool) {
        return _nextHolders[prev] == who;
    }

    function _findPrevHolder(address who) internal view returns(address) {
        address currentAddress = GUARD;
        while(_nextHolders[currentAddress] != GUARD) {
            if(_isPrevHolder(who, currentAddress))
                return currentAddress;
                
            currentAddress = _nextHolders[currentAddress];
        }

        return address(0);
    }

    function _getRandomHolder() private view returns (address) {
        uint256 mod = 100;

        if (holdersCount < 100) {
            mod = holdersCount;
        }

        uint256 n = uint256(keccak256(abi.encodePacked(now, block.difficulty, msg.sender)));
        uint256 randomIndex = n % mod;

        return getTopHolder(randomIndex);
    }

    function quickSort(uint[] memory arr, int left, int right) internal {
        int i = left;
        int j = right;
        if(i==j) return;
        uint pivot = arr[uint(left + (right - left) / 2)];
        while (i <= j) {
            while (arr[uint(i)] < pivot) i++;
            while (pivot < arr[uint(j)]) j--;
            if (i <= j) {
                (arr[uint(i)], arr[uint(j)]) = (arr[uint(j)], arr[uint(i)]);
                i++;
                j--;
            }
        }
        if (left < j)
            quickSort(arr, left, j);
        if (i < right)
            quickSort(arr, i, right);
    }

    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Transfer(address indexed from, address indexed to, uint256 value);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"n","type":"uint256"}],"name":"getTopHolder","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"k","type":"uint256"}],"name":"getTopHolders","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"holdersCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000ee3369103567831dce249c00006200016460201b60201c565b3373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69103567831dce249c00006040518082815260200191505060405180910390a362000668565b600073ffffffffffffffffffffffffffffffffffffffff16600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f496e76616c69642061646472657373202861646420686f6c646572290000000081525060200191505060405180910390fd5b600062000279826200044160201b60201c565b905081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000436600180546200054260201b6200190d1790919060201c565b600181905550505050565b600080600190505b6001156200053b57620004c38184600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200055f60201b60201c565b15620004d357809150506200053d565b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905062000449565b505b919050565b6000808284019050838110156200055557fe5b8091505092915050565b6000600173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480620005dc575082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b80156200065f5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806200065e5750600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483115b5b90509392505050565b6121f780620006786000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638839b15e1161008c578063a9059cbb11610066578063a9059cbb14610451578063b6b80605146104b7578063dd62ed3e1461053a578063f2fde38b146105b2576100ea565b80638839b15e146103165780638da5cb5b1461038457806395d89b41146103ce576100ea565b806323b872dd116100c857806323b872dd146101f6578063313ce5671461027c5780636b4ed21b146102a057806370a08231146102be576100ea565b806306fdde03146100ef578063095ea7b31461017257806318160ddd146101d8575b600080fd5b6100f76105f6565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561013757808201518184015260208101905061011c565b50505050905090810190601f1680156101645780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101be6004803603604081101561018857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610633565b604051808215151515815260200191505060405180910390f35b6101e06107c7565b6040518082815260200191505060405180910390f35b6102626004803603606081101561020c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107d9565b604051808215151515815260200191505060405180910390f35b610284610aa5565b604051808260ff1660ff16815260200191505060405180910390f35b6102a8610aae565b6040518082815260200191505060405180910390f35b610300600480360360208110156102d457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ab4565b6040518082815260200191505060405180910390f35b6103426004803603602081101561032c57600080fd5b8101908080359060200190929190505050610afd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61038c610c61565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103d6610c86565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104165780820151818401526020810190506103fb565b50505050905090810190601f1680156104435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61049d6004803603604081101561046757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cc3565b604051808215151515815260200191505060405180910390f35b6104e3600480360360208110156104cd57600080fd5b8101908080359060200190929190505050610d8d565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561052657808201518184015260208101905061050b565b505050509050019250505060405180910390f35b61059c6004803603604081101561055057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f84565b6040518082815260200191505060405180910390f35b6105f4600480360360208110156105c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061100b565b005b60606040518060400160405280600181526020017f5800000000000000000000000000000000000000000000000000000000000000815250905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156106d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c69642061646472657373203300000000000000000000000000000081525060200191505060405180910390fd5b81600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600069103567831dce249c0000905090565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610890576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f496e73756666696369656e742062616c616e636500000000000000000000000081525060200191505060405180910390fd5b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610982576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f496e73756666696369656e742062616c616e636500000000000000000000000081525060200191505060405180910390fd5b610a1182600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461121190919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a9c848484611228565b90509392505050565b60006012905090565b60015481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600154821115610b77576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e646578206f7574206f6620626f756e64730000000000000000000000000081525060200191505060405180910390fd5b600060046000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008090505b83811015610c5757600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150806001019050610be2565b5080915050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600181526020017f5800000000000000000000000000000000000000000000000000000000000000815250905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610d7a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f496e73756666696369656e742062616c616e636500000000000000000000000081525060200191505060405180910390fd5b610d85338484611228565b905092915050565b6060600154821115610e07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e646578206f7574206f6620626f756e64730000000000000000000000000081525060200191505060405180910390fd5b60608267ffffffffffffffff81118015610e2057600080fd5b50604051908082528060200260200182016040528015610e4f5781602001602082028036833780820191505090505b509050600060046000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008090505b84811015610f795781838281518110610ed257fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150806001019050610ebd565b508192505050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180612197602b913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611153576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f496e76616c69642061646472657373000000000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008282111561121d57fe5b818303905092915050565b60008061123361154c565b90506000610a8c635f91ddb80142111561129e5761126e60646112606016876115f090919063ffffffff16565b61162790919063ffffffff16565b90506112976064611289604e876115f090919063ffffffff16565b61162790919063ffffffff16565b93506112a3565b600090505b6000600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156112fa576112f58585611640565b611356565b6113558561135086600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461190d90919063ffffffff16565b611929565b5b6113b1826113ac83600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461190d90919063ffffffff16565b611929565b600061140585600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461121190919063ffffffff16565b14156114195761141486611b0f565b611475565b6114748661146f86600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461121190919063ffffffff16565b611929565b5b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a38173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36001925050509392505050565b60008060649050606460015410156115645760015490505b6000424433604051602001808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140193505050506040516020818303038152906040528051906020012060001c905060008282816115dc57fe5b0690506115e881610afd565b935050505090565b6000808314156116035760009050611621565b600082840290508284828161161457fe5b041461161c57fe5b809150505b92915050565b60008082848161163357fe5b0490508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff16600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611741576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f496e76616c69642061646472657373202861646420686f6c646572290000000081525060200191505060405180910390fd5b600061174c82611dde565b905081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506119026001805461190d90919063ffffffff16565b600181905550505050565b60008082840190508381101561191f57fe5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff16600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a2b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f496e76616c6964206164647265737320287570646174652062616c616e63652981525060200191505060405180910390fd5b6000611a3683611ed3565b90506000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611aa7828483611ff8565b15611af55782600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b09565b611afe84611b0f565b611b088484611640565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff16600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c69642061646472657373202872656d6f766520686f6c646572290081525060200191505060405180910390fd5b6000611c1c82611ed3565b9050600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dd46001805461121190919063ffffffff16565b6001819055505050565b600080600190505b600115611ecc57611e578184600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611ff8565b15611e655780915050611ece565b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611de6565b505b919050565b600080600190505b600173ffffffffffffffffffffffffffffffffffffffff16600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fed57611f7883826120fe565b15611f865780915050611ff3565b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611edb565b60009150505b919050565b6000600173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612074575082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b80156120f55750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806120f45750600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483115b5b90509392505050565b60008273ffffffffffffffffffffffffffffffffffffffff16600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161490509291505056fe46756e6374696f6e2063616e206f6e6c7920626520706572666f726d656420627920746865206f776e6572a26469706673582212208b6a10589191301bf10d1038c3d2cc13629e1b5de070b303b8df69c487986c2f64736f6c63430006060033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638839b15e1161008c578063a9059cbb11610066578063a9059cbb14610451578063b6b80605146104b7578063dd62ed3e1461053a578063f2fde38b146105b2576100ea565b80638839b15e146103165780638da5cb5b1461038457806395d89b41146103ce576100ea565b806323b872dd116100c857806323b872dd146101f6578063313ce5671461027c5780636b4ed21b146102a057806370a08231146102be576100ea565b806306fdde03146100ef578063095ea7b31461017257806318160ddd146101d8575b600080fd5b6100f76105f6565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561013757808201518184015260208101905061011c565b50505050905090810190601f1680156101645780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101be6004803603604081101561018857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610633565b604051808215151515815260200191505060405180910390f35b6101e06107c7565b6040518082815260200191505060405180910390f35b6102626004803603606081101561020c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107d9565b604051808215151515815260200191505060405180910390f35b610284610aa5565b604051808260ff1660ff16815260200191505060405180910390f35b6102a8610aae565b6040518082815260200191505060405180910390f35b610300600480360360208110156102d457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ab4565b6040518082815260200191505060405180910390f35b6103426004803603602081101561032c57600080fd5b8101908080359060200190929190505050610afd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61038c610c61565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103d6610c86565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104165780820151818401526020810190506103fb565b50505050905090810190601f1680156104435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61049d6004803603604081101561046757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cc3565b604051808215151515815260200191505060405180910390f35b6104e3600480360360208110156104cd57600080fd5b8101908080359060200190929190505050610d8d565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561052657808201518184015260208101905061050b565b505050509050019250505060405180910390f35b61059c6004803603604081101561055057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f84565b6040518082815260200191505060405180910390f35b6105f4600480360360208110156105c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061100b565b005b60606040518060400160405280600181526020017f5800000000000000000000000000000000000000000000000000000000000000815250905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156106d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c69642061646472657373203300000000000000000000000000000081525060200191505060405180910390fd5b81600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600069103567831dce249c0000905090565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610890576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f496e73756666696369656e742062616c616e636500000000000000000000000081525060200191505060405180910390fd5b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610982576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f496e73756666696369656e742062616c616e636500000000000000000000000081525060200191505060405180910390fd5b610a1182600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461121190919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a9c848484611228565b90509392505050565b60006012905090565b60015481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600154821115610b77576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e646578206f7574206f6620626f756e64730000000000000000000000000081525060200191505060405180910390fd5b600060046000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008090505b83811015610c5757600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150806001019050610be2565b5080915050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600181526020017f5800000000000000000000000000000000000000000000000000000000000000815250905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610d7a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f496e73756666696369656e742062616c616e636500000000000000000000000081525060200191505060405180910390fd5b610d85338484611228565b905092915050565b6060600154821115610e07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e646578206f7574206f6620626f756e64730000000000000000000000000081525060200191505060405180910390fd5b60608267ffffffffffffffff81118015610e2057600080fd5b50604051908082528060200260200182016040528015610e4f5781602001602082028036833780820191505090505b509050600060046000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008090505b84811015610f795781838281518110610ed257fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150806001019050610ebd565b508192505050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180612197602b913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611153576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f496e76616c69642061646472657373000000000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008282111561121d57fe5b818303905092915050565b60008061123361154c565b90506000610a8c635f91ddb80142111561129e5761126e60646112606016876115f090919063ffffffff16565b61162790919063ffffffff16565b90506112976064611289604e876115f090919063ffffffff16565b61162790919063ffffffff16565b93506112a3565b600090505b6000600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156112fa576112f58585611640565b611356565b6113558561135086600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461190d90919063ffffffff16565b611929565b5b6113b1826113ac83600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461190d90919063ffffffff16565b611929565b600061140585600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461121190919063ffffffff16565b14156114195761141486611b0f565b611475565b6114748661146f86600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461121190919063ffffffff16565b611929565b5b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a38173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36001925050509392505050565b60008060649050606460015410156115645760015490505b6000424433604051602001808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140193505050506040516020818303038152906040528051906020012060001c905060008282816115dc57fe5b0690506115e881610afd565b935050505090565b6000808314156116035760009050611621565b600082840290508284828161161457fe5b041461161c57fe5b809150505b92915050565b60008082848161163357fe5b0490508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff16600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611741576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f496e76616c69642061646472657373202861646420686f6c646572290000000081525060200191505060405180910390fd5b600061174c82611dde565b905081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506119026001805461190d90919063ffffffff16565b600181905550505050565b60008082840190508381101561191f57fe5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff16600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a2b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f496e76616c6964206164647265737320287570646174652062616c616e63652981525060200191505060405180910390fd5b6000611a3683611ed3565b90506000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611aa7828483611ff8565b15611af55782600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b09565b611afe84611b0f565b611b088484611640565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff16600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c69642061646472657373202872656d6f766520686f6c646572290081525060200191505060405180910390fd5b6000611c1c82611ed3565b9050600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dd46001805461121190919063ffffffff16565b6001819055505050565b600080600190505b600115611ecc57611e578184600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611ff8565b15611e655780915050611ece565b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611de6565b505b919050565b600080600190505b600173ffffffffffffffffffffffffffffffffffffffff16600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fed57611f7883826120fe565b15611f865780915050611ff3565b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611edb565b60009150505b919050565b6000600173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612074575082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b80156120f55750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806120f45750600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483115b5b90509392505050565b60008273ffffffffffffffffffffffffffffffffffffffff16600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161490509291505056fe46756e6374696f6e2063616e206f6e6c7920626520706572666f726d656420627920746865206f776e6572a26469706673582212208b6a10589191301bf10d1038c3d2cc13629e1b5de070b303b8df69c487986c2f64736f6c63430006060033

Deployed Bytecode Sourcemap

1539:7755:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1539:7755:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;2148:81:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2148:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2727:273;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2727:273:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2416:93;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3475:386;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3475:386:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2328:76;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1883:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3152:102;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3152:102:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6123:343;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;6123:343:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;84:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2237:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2237:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3262:205;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3262:205:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5658:457;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;5658:457:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5658:457:0;;;;;;;;;;;;;;;;;3008:136;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3008:136:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;406:211;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;406:211:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;2148:81;2185:13;2211:10;;;;;;;;;;;;;;;;;;;2148:81;:::o;2727:273::-;2795:4;2839:1;2820:21;;:7;:21;;;;2812:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2911:6;2876:11;:23;2888:10;2876:23;;;;;;;;;;;;;;;:32;2900:7;2876:32;;;;;;;;;;;;;;;:41;;;;2954:7;2933:37;;2942:10;2933:37;;;2963:6;2933:37;;;;;;;;;;;;;;;;;;2988:4;2981:11;;2727:273;;;;:::o;2416:93::-;2462:7;1644:23;2482:19;;2416:93;:::o;3475:386::-;3554:4;3598:5;3579:9;:15;3589:4;3579:15;;;;;;;;;;;;;;;;:24;;3571:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3680:5;3647:11;:17;3659:4;3647:17;;;;;;;;;;;;;;;:29;3665:10;3647:29;;;;;;;;;;;;;;;;:38;;3639:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3763:40;3797:5;3763:11;:17;3775:4;3763:17;;;;;;;;;;;;;;;:29;3781:10;3763:29;;;;;;;;;;;;;;;;:33;;:40;;;;:::i;:::-;3731:11;:17;3743:4;3731:17;;;;;;;;;;;;;;;:29;3749:10;3731:29;;;;;;;;;;;;;;;:72;;;;3823:30;3837:4;3843:2;3847:5;3823:13;:30::i;:::-;3816:37;;3475:386;;;;;:::o;2328:76::-;2369:5;2394:2;2387:9;;2328:76;:::o;1883:27::-;;;;:::o;3152:102::-;3205:7;3232:9;:14;3242:3;3232:14;;;;;;;;;;;;;;;;3225:21;;3152:102;;;:::o;6123:343::-;6177:7;6210:12;;6205:1;:17;;6197:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6257:22;6282:12;:19;1950:1;6282:19;;;;;;;;;;;;;;;;;;;;;;;;;6257:44;;6326:9;6338:1;6326:13;;6322:103;6345:1;6341;:5;6322:103;;;6385:12;:28;6398:14;6385:28;;;;;;;;;;;;;;;;;;;;;;;;;6368:45;;6348:3;;;;;6322:103;;;;6444:14;6437:21;;;6123:343;;;:::o;84:20::-;;;;;;;;;;;;;:::o;2237:83::-;2276:13;2302:10;;;;;;;;;;;;;;;;;;;2237:83;:::o;3262:205::-;3323:4;3373:5;3348:9;:21;3358:10;3348:21;;;;;;;;;;;;;;;;:30;;3340:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3423:36;3437:10;3449:2;3453:5;3423:13;:36::i;:::-;3416:43;;3262:205;;;;:::o;5658:457::-;5713:16;5755:12;;5750:1;:17;;5742:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5802:29;5848:1;5834:16;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5834:16:0;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;156:4;148:6;144:17;134:27;;0:165;5834:16:0;;;;5802:48;;5861:22;5886:12;:19;1950:1;5886:19;;;;;;;;;;;;;;;;;;;;;;;;;5861:44;;5930:9;5942:1;5930:13;;5926:150;5949:1;5945;:5;5926:150;;;5990:14;5972:12;5985:1;5972:15;;;;;;;;;;;;;:32;;;;;;;;;;;6036:12;:28;6049:14;6036:28;;;;;;;;;;;;;;;;;;;;;;;;;6019:45;;5952:3;;;;;5926:150;;;;6095:12;6088:19;;;;5658:457;;;:::o;3008:136::-;3082:7;3109:11;:18;3121:5;3109:18;;;;;;;;;;;;;;;:27;3128:7;3109:27;;;;;;;;;;;;;;;;3102:34;;3008:136;;;;:::o;406:211::-;325:5;;;;;;;;;;;311:19;;:10;:19;;;303:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;507:1:::1;487:22;;:8;:22;;;;479:50;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;573:8;545:37;;566:5;::::0;::::1;;;;;;;;;545:37;;;;;;;;;;;;601:8;593:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;406:211:::0;:::o;1254:123::-;1312:7;1344:1;1339;:6;;1332:14;;;;1368:1;1364;:5;1357:12;;1254:123;;;;:::o;3869:998::-;3950:4;3967:14;3984:18;:16;:18::i;:::-;3967:35;;4023:11;1870:4;1769:10;4064:47;4058:3;:53;4055:281;;;4163:22;4181:3;4163:13;4173:2;4163:5;:9;;:13;;;;:::i;:::-;:17;;:22;;;;:::i;:::-;4157:28;;4264:22;4282:3;4264:13;4274:2;4264:5;:9;;:13;;;;:::i;:::-;:17;;:22;;;;:::i;:::-;4256:30;;4055:281;;;4323:1;4317:7;;4055:281;4387:1;4370:9;:13;4380:2;4370:13;;;;;;;;;;;;;;;;:18;4366:148;;;4405:20;4415:2;4419:5;4405:9;:20::i;:::-;4366:148;;;4458:44;4473:2;4477:24;4495:5;4477:9;:13;4487:2;4477:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;4458:14;:44::i;:::-;4366:148;4526:50;4541:6;4549:26;4571:3;4549:9;:17;4559:6;4549:17;;;;;;;;;;;;;;;;:21;;:26;;;;:::i;:::-;4526:14;:50::i;:::-;4623:1;4593:26;4613:5;4593:9;:15;4603:4;4593:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;:31;4589:163;;;4641:18;4654:4;4641:12;:18::i;:::-;4589:163;;;4692:48;4707:4;4713:26;4733:5;4713:9;:15;4723:4;4713:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;4692:14;:48::i;:::-;4589:163;4784:2;4769:25;;4778:4;4769:25;;;4788:5;4769:25;;;;;;;;;;;;;;;;;;4825:6;4810:27;;4819:4;4810:27;;;4833:3;4810:27;;;;;;;;;;;;;;;;;;4855:4;4848:11;;;;3869:998;;;;;:::o;8134:357::-;8184:7;8204:11;8218:3;8204:17;;8253:3;8238:12;;:18;8234:69;;;8279:12;;8273:18;;8234:69;8315:9;8362:3;8367:16;8385:10;8345:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8345:51:0;;;8335:62;;;;;;8327:71;;8315:83;;8409:19;8435:3;8431:1;:7;;;;;;8409:29;;8458:25;8471:11;8458:12;:25::i;:::-;8451:32;;;;;8134:357;:::o;742:208::-;800:7;829:1;824;:6;820:47;;;854:1;847:8;;;;820:47;877:9;893:1;889;:5;877:17;;921:1;916;912;:5;;;;;;:10;905:18;;;;941:1;934:8;;;742:208;;;;;:::o;958:288::-;1016:7;1115:9;1131:1;1127;:5;;;;;;1115:17;;1237:1;1230:8;;;958:288;;;;:::o;4895:366::-;5000:1;4971:31;;:12;:17;4984:3;4971:17;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;4963:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5048:13;5064:19;5075:7;5064:10;:19::i;:::-;5048:35;;5111:7;5094:9;:14;5104:3;5094:14;;;;;;;;;;;;;;;:24;;;;5151:12;:19;5164:5;5151:19;;;;;;;;;;;;;;;;;;;;;;;;;5131:12;:17;5144:3;5131:17;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;5203:3;5181:12;:19;5194:5;5181:19;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;5234:19;5251:1;5234:12;;:16;;:19;;;;:::i;:::-;5219:12;:34;;;;4895:366;;;:::o;1385:147::-;1443:7;1463:9;1479:1;1475;:5;1463:17;;1503:1;1498;:6;;1491:14;;;;1523:1;1516:8;;;1385:147;;;;:::o;6474:471::-;6588:1;6559:31;;:12;:17;6572:3;6559:17;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;;6551:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6638:18;6659:20;6675:3;6659:15;:20::i;:::-;6638:41;;6690:18;6711:12;:17;6724:3;6711:17;;;;;;;;;;;;;;;;;;;;;;;;;6690:38;;6744:48;6757:10;6769;6781;6744:12;:48::i;:::-;6741:197;;;6825:10;6808:9;:14;6818:3;6808:14;;;;;;;;;;;;;;;:27;;;;6741:197;;;6868:17;6881:3;6868:12;:17::i;:::-;6900:26;6910:3;6915:10;6900:9;:26::i;:::-;6741:197;6474:471;;;;:::o;5289:361::-;5380:1;5351:31;;:12;:17;5364:3;5351:17;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;;5343:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5431:18;5452:20;5468:3;5452:15;:20::i;:::-;5431:41;;5510:12;:17;5523:3;5510:17;;;;;;;;;;;;;;;;;;;;;;;;;5483:12;:24;5496:10;5483:24;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;5566:1;5538:12;:17;5551:3;5538:17;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;5596:1;5579:9;:14;5589:3;5579:14;;;;;;;;;;;;;;;:18;;;;5623:19;5640:1;5623:12;;:16;;:19;;;;:::i;:::-;5608:12;:34;;;;5289:361;;:::o;7228:368::-;7288:7;7308:24;1950:1;7308:32;;7351:238;7357:4;7351:238;;;7381:72;7394:16;7412:8;7422:12;:30;7435:16;7422:30;;;;;;;;;;;;;;;;;;;;;;;;;7381:12;:72::i;:::-;7378:117;;;7479:16;7472:23;;;;;7378:117;7547:12;:30;7560:16;7547:30;;;;;;;;;;;;;;;;;;;;;;;;;7528:49;;7351:238;;;7228:368;;;;;:::o;7741:385::-;7801:7;7821:22;1950:1;7821:30;;7862:227;1950:1;7868:37;;:12;:28;7881:14;7868:28;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;7862:227;;7925:34;7939:3;7944:14;7925:13;:34::i;:::-;7922:77;;;7985:14;7978:21;;;;;7922:77;8049:12;:28;8062:14;8049:28;;;;;;;;;;;;;;;;;;;;;;;;;8032:45;;7862:227;;;8116:1;8101:17;;;7741:385;;;;:::o;6953:267::-;7055:4;1950:1;7080:19;;:10;:19;;;:56;;;;7128:8;7103:9;:21;7113:10;7103:21;;;;;;;;;;;;;;;;:33;;7080:56;7079:133;;;;;1950:1;7156:19;;:10;:19;;;:55;;;;7190:9;:21;7200:10;7190:21;;;;;;;;;;;;;;;;7179:8;:32;7156:55;7079:133;7072:140;;6953:267;;;;;:::o;7604:129::-;7676:4;7722:3;7700:25;;:12;:18;7713:4;7700:18;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;7693:32;;7604:129;;;;:::o

Swarm Source

ipfs://8b6a10589191301bf10d1038c3d2cc13629e1b5de070b303b8df69c487986c2f
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.