ETH Price: $3,360.87 (-2.71%)
Gas: 2 Gwei

Token

Consentium Plus (CSMX)
 

Overview

Max Total Supply

150,000,000 CSMX

Holders

17,706 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
8 CSMX

Value
$0.00
0xA7E2AFfD54D9107bb4EEB951Ee5a97BF240961FB
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Consentium is the crypto wallet, chat and community app that rewards you for your engagement.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
CSMXToken

Compiler Version
v0.5.0+commit.1d4f565a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-11-12
*/

pragma solidity 0.5.0;


/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

    /**
    * @dev Multiplies two numbers, throws on overflow.
    */
    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;
    }

    /**
    * @dev Integer division of two numbers, truncating the quotient.
    */
    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;
    }

    /**
    * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    /**
    * @dev Adds two numbers, throws on overflow.
    */
    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 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 transfer control of the contract to a newOwner.
    * @param newOwner The address to transfer ownership to.
    */
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}


/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
    function totalSupply() public view returns (uint256);
    function balanceOf(address who) public view returns (uint256);
    function transfer(address to, uint256 value) public returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
}


/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
    function allowance(address owner, address spender) public view returns (uint256);
    function transferFrom(address from, address to, uint256 value) public returns (bool);
    function approve(address spender, uint256 value) public returns (bool);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}


/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is ERC20Basic {
    using SafeMath for uint256;

    mapping(address => uint256) balances;

    uint256 totalSupply_;

    /**
    * @dev total number of tokens in existence
    */
    function totalSupply() public view returns (uint256) {
        return totalSupply_;
    }

    /**
    * @dev transfer token for a specified address
    * @param _to The address to transfer to.
    * @param _value The amount to be transferred.
    */
    function transfer(address _to, uint256 _value) public returns (bool) {
        require(_to != address(0));
        require(_value <= balances[msg.sender]);

        // SafeMath.sub will throw if there is not enough balance.
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        emit Transfer(msg.sender, _to, _value);
        return true;
    }

    /**
    * @dev Gets the balance of the specified address.
    * @param _owner The address to query the the balance of.
    * @return An uint256 representing the amount owned by the passed address.
    */
    function balanceOf(address _owner) public view returns (uint256 balance) {
        return balances[_owner];
    }
}


/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20, BasicToken {

    mapping (address => mapping (address => uint256)) internal allowed;

    /**
    * @dev Transfer tokens from one address to another
    * @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) public returns (bool) {
        require(_to != address(0));
        require(_value <= balances[_from]);
        require(_value <= allowed[_from][msg.sender]);

        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(_value);
        allowed[_from][msg.sender] = allowed[_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) public returns (bool) {
        allowed[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) public view returns (uint256) {
        return allowed[_owner][_spender];
    }

    /**
    * @dev Increase the amount of tokens that an owner allowed to a spender.
    *
    * approve should be called when allowed[_spender] == 0. To increment
    * allowed value is better to use this function to avoid 2 calls (and wait until
    * the first transaction is mined)
    * From MonolithDAO Token.sol
    * @param _spender The address which will spend the funds.
    * @param _addedValue The amount of tokens to increase the allowance by.
    */
    function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
        allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

    /**
    * @dev Decrease the amount of tokens that an owner allowed to a spender.
    *
    * approve should be called when allowed[_spender] == 0. To decrement
    * allowed value is better to use this function to avoid 2 calls (and wait until
    * the first transaction is mined)
    * From MonolithDAO Token.sol
    * @param _spender The address which will spend the funds.
    * @param _subtractedValue The amount of tokens to decrease the allowance by.
    */
    function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
        uint oldValue = allowed[msg.sender][_spender];
        if (_subtractedValue > oldValue) {
        allowed[msg.sender][_spender] = 0;
        } else {
        allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
        }
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }
}


/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Ownable {
    event Pause();
    event Unpause();

    bool public paused = false;

    /**
    * @dev Modifier to make a function callable only when the contract is not paused.
    */
    modifier whenNotPaused() {
        require(!paused);
        _;
    }

    /**
    * @dev Modifier to make a function callable only when the contract is paused.
    */
    modifier whenPaused() {
        require(paused);
        _;
    }

    /**
    * @dev called by the owner to pause, triggers stopped state
    */
    function pause() onlyOwner whenNotPaused public {
        paused = true;
        emit Pause();
    }

    /**
    * @dev called by the owner to unpause, returns to normal state
    */
    function unpause() onlyOwner whenPaused public {
        paused = false;
        emit Unpause();
    }
}


/**
 * @title Pausable token
 * @dev StandardToken modified with pausable transfers.
 **/
contract PausableToken is StandardToken, Pausable {

    function transfer(address _to, uint256 _value) public whenNotPaused returns (bool) {
        return super.transfer(_to, _value);
    }

    function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool) {
        return super.transferFrom(_from, _to, _value);
    }

    function approve(address _spender, uint256 _value) public whenNotPaused returns (bool) {
        return super.approve(_spender, _value);
    }

    function increaseApproval(address _spender, uint _addedValue) public whenNotPaused returns (bool success) {
        return super.increaseApproval(_spender, _addedValue);
    }

    function decreaseApproval(address _spender, uint _subtractedValue) public whenNotPaused returns (bool success) {
        return super.decreaseApproval(_spender, _subtractedValue);
    }
}


contract CSMXMintableAndPausableToken is PausableToken {
    uint8 public constant decimals = 18;

    bool public mintingFinished = false;

    event Mint(address indexed to, uint256 amount);
    event MintFinished();
    event MintStarted();

    modifier canMint() {
        require(!mintingFinished);
        _;
    }

    modifier cannotMint() {
        require(mintingFinished);
        _;
    }

    function mint(address _to, uint256 _amount)
        external
        onlyOwner
        canMint
        whenNotPaused
        returns (bool)
    {
        totalSupply_ = totalSupply_.add(_amount);
        balances[_to] = balances[_to].add(_amount);
        emit Mint(_to, _amount);
        emit Transfer(address(0), _to, _amount);
        return true;
    }

    function finishMinting() external onlyOwner canMint returns (bool) {
        mintingFinished = true;
        emit MintFinished();
        return true;
    }

    function startMinting() external onlyOwner cannotMint returns (bool) {
        mintingFinished = false;
        emit MintStarted();
        return true;
    }
}


/**
 * Token upgrader interface inspired by Lunyr.
 *
 * Token upgrader transfers previous version tokens to a newer version.
 * Token upgrader itself can be the token contract, or just a middle man contract doing the heavy lifting.
 */
contract TokenUpgrader {
    uint public originalSupply;

    /** Interface marker */
    function isTokenUpgrader() external pure returns (bool) {
        return true;
    }

    function upgradeFrom(address _from, uint256 _value) public {}
}


/**
 * A token upgrade mechanism where users can opt-in amount of tokens to the next smart contract revision.
 *
 * First envisioned by Golem and Lunyr projects.
 */
contract CSMXUpgradeableToken is CSMXMintableAndPausableToken {
    // Contract or person who can set the upgrade path.
    address public upgradeMaster;

    // Bollean value needs to be true to start upgrades
    bool private upgradesAllowed;

    // The next contract where the tokens will be migrated.
    TokenUpgrader public tokenUpgrader;

    // How many tokens we have upgraded by now.
    uint public totalUpgraded;

    /**
    * Upgrade states.
    * - NotAllowed: The child contract has not reached a condition where the upgrade can begin
    * - Waiting: Token allows upgrade, but we don't have a new token version
    * - ReadyToUpgrade: The token version is set, but not a single token has been upgraded yet
    * - Upgrading: Token upgrader is set and the balance holders can upgrade their tokens
    */
    enum UpgradeState { NotAllowed, Waiting, ReadyToUpgrade, Upgrading }

    // Somebody has upgraded some of his tokens.
    event Upgrade(address indexed _from, address indexed _to, uint256 _value);

    // New token version available.
    event TokenUpgraderIsSet(address _newToken);

    modifier onlyUpgradeMaster {
        // Only a master can designate the next token
        require(msg.sender == upgradeMaster);
        _;
    }

    modifier notInUpgradingState {
        // Upgrade has already begun for token
        require(getUpgradeState() != UpgradeState.Upgrading);
        _;
    }

    // Do not allow construction without upgrade master set.
    constructor(address _upgradeMaster) public {
        require(_upgradeMaster != address(0));
        upgradeMaster = _upgradeMaster;
    }

    // set a token upgrader
    function setTokenUpgrader(address _newToken)
        external
        onlyUpgradeMaster
        notInUpgradingState
    {
        require(canUpgrade());
        require(_newToken != address(0));

        tokenUpgrader = TokenUpgrader(_newToken);

        // Handle bad interface
        require(tokenUpgrader.isTokenUpgrader());

        // Make sure that token supplies match in source and target
        require(tokenUpgrader.originalSupply() == totalSupply_);

        emit TokenUpgraderIsSet(address(tokenUpgrader));
    }

    // Allow the token holder to upgrade some of their tokens to a new contract.
    function upgrade(uint _value) external {
        UpgradeState state = getUpgradeState();

        // Check upgrate state
        require(state == UpgradeState.ReadyToUpgrade || state == UpgradeState.Upgrading);
        // Validate input value
        require(_value != 0);

        balances[msg.sender] = balances[msg.sender].sub(_value);

        // Take tokens out from circulation
        totalSupply_ = totalSupply_.sub(_value);
        totalUpgraded = totalUpgraded.add(_value);

        // Token Upgrader reissues the tokens
        tokenUpgrader.upgradeFrom(msg.sender, _value);
        emit Upgrade(msg.sender, address(tokenUpgrader), _value);
    }

    /**
    * Change the upgrade master.
    * This allows us to set a new owner for the upgrade mechanism.
    */
    function setUpgradeMaster(address _newMaster) external onlyUpgradeMaster {
        require(_newMaster != address(0));
        upgradeMaster = _newMaster;
    }

    // To be overriden to add functionality
    function allowUpgrades() external onlyUpgradeMaster () {
        upgradesAllowed = true;
    }

    // To be overriden to add functionality
    function rejectUpgrades() external onlyUpgradeMaster () {
        require(!(totalUpgraded > 0));
        upgradesAllowed = false;
    }

    // Get the state of the token upgrade.
    function getUpgradeState() public view returns(UpgradeState) {
        if (!canUpgrade()) return UpgradeState.NotAllowed;
        else if (address(tokenUpgrader) == address(0)) return UpgradeState.Waiting;
        else if (totalUpgraded == 0) return UpgradeState.ReadyToUpgrade;
        else return UpgradeState.Upgrading;
    }

    // To be overriden to add functionality
    function canUpgrade() public view returns(bool) {
        return upgradesAllowed;
    }
}


/**
 * @title Burnable Token
 * @dev Token that can be irreversibly burned (destroyed).
 */
contract BurnableToken is BasicToken {

    event Burn(address indexed burner, uint256 value);

    /**
    * @dev Burns a specific amount of tokens.
    * @param _value The amount of token to be burned.
    */
    function burn(uint256 _value) public {
        require(_value <= balances[msg.sender]);
        // no need to require value <= totalSupply, since that would imply the
        // sender's balance is greater than the totalSupply, which *should* be an assertion failure

        address burner = msg.sender;
        balances[burner] = balances[burner].sub(_value);
        totalSupply_ = totalSupply_.sub(_value);
        emit Burn(burner, _value);
    }
}


contract CSMXToken is CSMXUpgradeableToken, BurnableToken {
    string public name = "Consentium Plus";
    string public symbol = "CSMX";

    event UpdatedTokenInformation(string newName, string newSymbol);

    constructor(address _upgradeMaster)
        public
        CSMXUpgradeableToken(_upgradeMaster)
    { }

    /**
    * Owner can update token information here
    */
    function setTokenInformation(string calldata _name, string calldata _symbol) external onlyOwner {
        name = _name;
        symbol = _symbol;

        emit UpdatedTokenInformation(name, symbol);
    }

    function burnByOwner(address _user, uint256 _value) external onlyOwner {
        require(_user != address(0));
        require(_value <= balances[_user]);

        balances[_user] = balances[_user].sub(_value);
        totalSupply_ = totalSupply_.sub(_value);
        emit Burn(_user, _value);
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[],"name":"rejectUpgrades","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_user","type":"address"},{"name":"_value","type":"uint256"}],"name":"burnByOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"upgrade","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"allowUpgrades","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"}],"name":"setTokenInformation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"upgradeMaster","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":"finishMinting","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getUpgradeState","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenUpgrader","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"canUpgrade","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"startMinting","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":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalUpgraded","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newToken","type":"address"}],"name":"setTokenUpgrader","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newMaster","type":"address"}],"name":"setUpgradeMaster","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_upgradeMaster","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newName","type":"string"},{"indexed":false,"name":"newSymbol","type":"string"}],"name":"UpdatedTokenInformation","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":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Upgrade","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_newToken","type":"address"}],"name":"TokenUpgraderIsSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[],"name":"MintFinished","type":"event"},{"anonymous":false,"inputs":[],"name":"MintStarted","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","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":"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":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

6003805460a060020a61ffff021916905560c0604052600f60808190527f436f6e73656e7469756d20506c7573000000000000000000000000000000000060a09081526200005191600791906200011a565b506040805180820190915260048082527f43534d5800000000000000000000000000000000000000000000000000000000602090920191825262000098916008916200011a565b50348015620000a657600080fd5b5060405160208062001c7583398101806040526020811015620000c857600080fd5b505160038054600160a060020a0319163317905580600160a060020a0381161515620000f357600080fd5b60048054600160a060020a031916600160a060020a039290921691909117905550620001bf565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200015d57805160ff19168380011785556200018d565b828001600101855582156200018d579182015b828111156200018d57825182559160200191906001019062000170565b506200019b9291506200019f565b5090565b620001bc91905b808211156200019b5760008155600101620001a6565b90565b611aa680620001cf6000396000f3fe6080604052600436106101a05763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663041e6b8b81146101a557806305d2035b146101bc57806306fdde03146101e5578063095ea7b31461026f578063111a18d3146102a857806318160ddd146102e157806323b872dd14610308578063313ce5671461034b5780633f4ba83a1461037657806340c10f191461038b57806342966c68146103c457806345977d03146103ee5780634dcf2917146104185780634eee966f1461042d5780635c975abb146104fc578063600440cb14610511578063661884631461054257806370a082311461057b5780637d64bcb4146105ae5780638444b391146105c35780638456cb59146105fc5780638da5cb5b146106115780638e4adf4e1461062657806395d89b411461063b5780639738968c146106505780639a65ea2614610665578063a9059cbb1461067a578063c752ff62146106b3578063cd61cb3a146106c8578063d73dd623146106fb578063dd62ed3e14610734578063f2fde38b1461076f578063ffeb7d75146107a2575b600080fd5b3480156101b157600080fd5b506101ba6107d5565b005b3480156101c857600080fd5b506101d161081c565b604080519115158252519081900360200190f35b3480156101f157600080fd5b506101fa61082c565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023457818101518382015260200161021c565b50505050905090810190601f1680156102615780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027b57600080fd5b506101d16004803603604081101561029257600080fd5b50600160a060020a0381351690602001356108ba565b3480156102b457600080fd5b506101ba600480360360408110156102cb57600080fd5b50600160a060020a0381351690602001356108e5565b3480156102ed57600080fd5b506102f66109d1565b60408051918252519081900360200190f35b34801561031457600080fd5b506101d16004803603606081101561032b57600080fd5b50600160a060020a038135811691602081013590911690604001356109d8565b34801561035757600080fd5b50610360610a05565b6040805160ff9092168252519081900360200190f35b34801561038257600080fd5b506101ba610a0a565b34801561039757600080fd5b506101d1600480360360408110156103ae57600080fd5b50600160a060020a038135169060200135610a82565b3480156103d057600080fd5b506101ba600480360360208110156103e757600080fd5b5035610ba3565b3480156103fa57600080fd5b506101ba6004803603602081101561041157600080fd5b5035610c51565b34801561042457600080fd5b506101ba610dc2565b34801561043957600080fd5b506101ba6004803603604081101561045057600080fd5b81019060208101813564010000000081111561046b57600080fd5b82018360208201111561047d57600080fd5b8035906020019184600183028401116401000000008311171561049f57600080fd5b9193909290916020810190356401000000008111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111640100000000831117156104f157600080fd5b509092509050610dff565b34801561050857600080fd5b506101d1610f60565b34801561051d57600080fd5b50610526610f70565b60408051600160a060020a039092168252519081900360200190f35b34801561054e57600080fd5b506101d16004803603604081101561056557600080fd5b50600160a060020a038135169060200135610f7f565b34801561058757600080fd5b506102f66004803603602081101561059e57600080fd5b5035600160a060020a0316610fa3565b3480156105ba57600080fd5b506101d1610fbe565b3480156105cf57600080fd5b506105d8611043565b604051808260038111156105e857fe5b60ff16815260200191505060405180910390f35b34801561060857600080fd5b506101ba61108e565b34801561061d57600080fd5b5061052661110b565b34801561063257600080fd5b5061052661111a565b34801561064757600080fd5b506101fa611129565b34801561065c57600080fd5b506101d1611184565b34801561067157600080fd5b506101d1611194565b34801561068657600080fd5b506101d16004803603604081101561069d57600080fd5b50600160a060020a038135169060200135611214565b3480156106bf57600080fd5b506102f6611238565b3480156106d457600080fd5b506101ba600480360360208110156106eb57600080fd5b5035600160a060020a031661123e565b34801561070757600080fd5b506101d16004803603604081101561071e57600080fd5b50600160a060020a03813516906020013561143b565b34801561074057600080fd5b506102f66004803603604081101561075757600080fd5b50600160a060020a038135811691602001351661145f565b34801561077b57600080fd5b506101ba6004803603602081101561079257600080fd5b5035600160a060020a031661148a565b3480156107ae57600080fd5b506101ba600480360360208110156107c557600080fd5b5035600160a060020a031661151f565b600454600160a060020a031633146107ec57600080fd5b600654600010156107fc57600080fd5b6004805474ff000000000000000000000000000000000000000019169055565b60035460a860020a900460ff1681565b6007805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108b25780601f10610887576101008083540402835291602001916108b2565b820191906000526020600020905b81548152906001019060200180831161089557829003601f168201915b505050505081565b60035460009060a060020a900460ff16156108d457600080fd5b6108de838361157a565b9392505050565b600354600160a060020a031633146108fc57600080fd5b600160a060020a038216151561091157600080fd5b600160a060020a03821660009081526020819052604090205481111561093657600080fd5b600160a060020a03821660009081526020819052604090205461095f908263ffffffff6115e016565b600160a060020a03831660009081526020819052604090205560015461098b908263ffffffff6115e016565b600155604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a25050565b6001545b90565b60035460009060a060020a900460ff16156109f257600080fd5b6109fd8484846115f2565b949350505050565b601281565b600354600160a060020a03163314610a2157600080fd5b60035460a060020a900460ff161515610a3957600080fd5b6003805474ff0000000000000000000000000000000000000000191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b600354600090600160a060020a03163314610a9c57600080fd5b60035460a860020a900460ff1615610ab357600080fd5b60035460a060020a900460ff1615610aca57600080fd5b600154610add908363ffffffff61176916565b600155600160a060020a038316600090815260208190526040902054610b09908363ffffffff61176916565b600160a060020a03841660008181526020818152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a2604080518381529051600160a060020a038516916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b33600090815260208190526040902054811115610bbf57600080fd5b33600081815260208190526040902054610bdf908363ffffffff6115e016565b600160a060020a038216600090815260208190526040902055600154610c0b908363ffffffff6115e016565b600155604080518381529051600160a060020a038316917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a25050565b6000610c5b611043565b90506002816003811115610c6b57fe5b1480610c8257506003816003811115610c8057fe5b145b1515610c8d57600080fd5b811515610c9957600080fd5b33600090815260208190526040902054610cb9908363ffffffff6115e016565b33600090815260208190526040902055600154610cdc908363ffffffff6115e016565b600155600654610cf2908363ffffffff61176916565b600655600554604080517f753e88e5000000000000000000000000000000000000000000000000000000008152336004820152602481018590529051600160a060020a039092169163753e88e59160448082019260009290919082900301818387803b158015610d6157600080fd5b505af1158015610d75573d6000803e3d6000fd5b5050600554604080518681529051600160a060020a0390921693503392507f7e5c344a8141a805725cb476f76c6953b842222b967edd1f78ddb6e8b3f397ac919081900360200190a35050565b600454600160a060020a03163314610dd957600080fd5b6004805474ff0000000000000000000000000000000000000000191660a060020a179055565b600354600160a060020a03163314610e1657600080fd5b610e22600785856119e2565b50610e2f600883836119e2565b506040805181815260078054600260001961010060018416150201909116049282018390527fd131ab1e6f279deea74e13a18477e13e2107deb6dc8ae955648948be5841fb4692909160089181906020820190606083019086908015610ed65780601f10610eab57610100808354040283529160200191610ed6565b820191906000526020600020905b815481529060010190602001808311610eb957829003601f168201915b5050838103825284546002600019610100600184161502019091160480825260209091019085908015610f4a5780601f10610f1f57610100808354040283529160200191610f4a565b820191906000526020600020905b815481529060010190602001808311610f2d57829003601f168201915b505094505050505060405180910390a150505050565b60035460a060020a900460ff1681565b600454600160a060020a031681565b60035460009060a060020a900460ff1615610f9957600080fd5b6108de8383611778565b600160a060020a031660009081526020819052604090205490565b600354600090600160a060020a03163314610fd857600080fd5b60035460a860020a900460ff1615610fef57600080fd5b6003805475ff000000000000000000000000000000000000000000191660a860020a1790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a150600190565b600061104d611184565b151561105b575060006109d5565b600554600160a060020a03161515611075575060016109d5565b6006541515611086575060026109d5565b5060036109d5565b600354600160a060020a031633146110a557600080fd5b60035460a060020a900460ff16156110bc57600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600354600160a060020a031681565b600554600160a060020a031681565b6008805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108b25780601f10610887576101008083540402835291602001916108b2565b60045460a060020a900460ff1690565b600354600090600160a060020a031633146111ae57600080fd5b60035460a860020a900460ff1615156111c657600080fd5b6003805475ff000000000000000000000000000000000000000000191690556040517f452a344f03203071e1daf66e007976c85cb2380deabf1c91f3c4fb1fca41204990600090a150600190565b60035460009060a060020a900460ff161561122e57600080fd5b6108de8383611868565b60065481565b600454600160a060020a0316331461125557600080fd5b600361125f611043565b600381111561126a57fe5b141561127557600080fd5b61127d611184565b151561128857600080fd5b600160a060020a038116151561129d57600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038381169190911791829055604080517fea2ce6510000000000000000000000000000000000000000000000000000000081529051929091169163ea2ce65191600480820192602092909190829003018186803b15801561131f57600080fd5b505afa158015611333573d6000803e3d6000fd5b505050506040513d602081101561134957600080fd5b5051151561135657600080fd5b600154600560009054906101000a9004600160a060020a0316600160a060020a0316634b2ba0dd6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156113c357600080fd5b505afa1580156113d7573d6000803e3d6000fd5b505050506040513d60208110156113ed57600080fd5b5051146113f957600080fd5b60055460408051600160a060020a039092168252517f219f1080015df4ca5a2cdcb89266f4a405ff0c2518b8563b9189f91cca9f9a109181900360200190a150565b60035460009060a060020a900460ff161561145557600080fd5b6108de8383611949565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600354600160a060020a031633146114a157600080fd5b600160a060020a03811615156114b657600080fd5b600354604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600454600160a060020a0316331461153657600080fd5b600160a060020a038116151561154b57600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b6000828211156115ec57fe5b50900390565b6000600160a060020a038316151561160957600080fd5b600160a060020a03841660009081526020819052604090205482111561162e57600080fd5b600160a060020a038416600090815260026020908152604080832033845290915290205482111561165e57600080fd5b600160a060020a038416600090815260208190526040902054611687908363ffffffff6115e016565b600160a060020a0380861660009081526020819052604080822093909355908516815220546116bc908363ffffffff61176916565b600160a060020a038085166000908152602081815260408083209490945591871681526002825282812033825290915220546116fe908363ffffffff6115e016565b600160a060020a03808616600081815260026020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b6000828201838110156108de57fe5b336000908152600260209081526040808320600160a060020a0386168452909152812054808311156117cd57336000908152600260209081526040808320600160a060020a0388168452909152812055611802565b6117dd818463ffffffff6115e016565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6000600160a060020a038316151561187f57600080fd5b3360009081526020819052604090205482111561189b57600080fd5b336000908152602081905260409020546118bb908363ffffffff6115e016565b3360009081526020819052604080822092909255600160a060020a038516815220546118ed908363ffffffff61176916565b600160a060020a038416600081815260208181526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b336000908152600260209081526040808320600160a060020a038616845290915281205461197d908363ffffffff61176916565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611a235782800160ff19823516178555611a50565b82800160010185558215611a50579182015b82811115611a50578235825591602001919060010190611a35565b50611a5c929150611a60565b5090565b6109d591905b80821115611a5c5760008155600101611a6656fea165627a7a723058209fa378675ece5de617b0d60dd02c1e2136dbccb874473e642febc7dc81ea59100029000000000000000000000000ddd20f64832651aab58d49cdd0a599660be9c0f1

Deployed Bytecode

0x6080604052600436106101a05763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663041e6b8b81146101a557806305d2035b146101bc57806306fdde03146101e5578063095ea7b31461026f578063111a18d3146102a857806318160ddd146102e157806323b872dd14610308578063313ce5671461034b5780633f4ba83a1461037657806340c10f191461038b57806342966c68146103c457806345977d03146103ee5780634dcf2917146104185780634eee966f1461042d5780635c975abb146104fc578063600440cb14610511578063661884631461054257806370a082311461057b5780637d64bcb4146105ae5780638444b391146105c35780638456cb59146105fc5780638da5cb5b146106115780638e4adf4e1461062657806395d89b411461063b5780639738968c146106505780639a65ea2614610665578063a9059cbb1461067a578063c752ff62146106b3578063cd61cb3a146106c8578063d73dd623146106fb578063dd62ed3e14610734578063f2fde38b1461076f578063ffeb7d75146107a2575b600080fd5b3480156101b157600080fd5b506101ba6107d5565b005b3480156101c857600080fd5b506101d161081c565b604080519115158252519081900360200190f35b3480156101f157600080fd5b506101fa61082c565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023457818101518382015260200161021c565b50505050905090810190601f1680156102615780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027b57600080fd5b506101d16004803603604081101561029257600080fd5b50600160a060020a0381351690602001356108ba565b3480156102b457600080fd5b506101ba600480360360408110156102cb57600080fd5b50600160a060020a0381351690602001356108e5565b3480156102ed57600080fd5b506102f66109d1565b60408051918252519081900360200190f35b34801561031457600080fd5b506101d16004803603606081101561032b57600080fd5b50600160a060020a038135811691602081013590911690604001356109d8565b34801561035757600080fd5b50610360610a05565b6040805160ff9092168252519081900360200190f35b34801561038257600080fd5b506101ba610a0a565b34801561039757600080fd5b506101d1600480360360408110156103ae57600080fd5b50600160a060020a038135169060200135610a82565b3480156103d057600080fd5b506101ba600480360360208110156103e757600080fd5b5035610ba3565b3480156103fa57600080fd5b506101ba6004803603602081101561041157600080fd5b5035610c51565b34801561042457600080fd5b506101ba610dc2565b34801561043957600080fd5b506101ba6004803603604081101561045057600080fd5b81019060208101813564010000000081111561046b57600080fd5b82018360208201111561047d57600080fd5b8035906020019184600183028401116401000000008311171561049f57600080fd5b9193909290916020810190356401000000008111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111640100000000831117156104f157600080fd5b509092509050610dff565b34801561050857600080fd5b506101d1610f60565b34801561051d57600080fd5b50610526610f70565b60408051600160a060020a039092168252519081900360200190f35b34801561054e57600080fd5b506101d16004803603604081101561056557600080fd5b50600160a060020a038135169060200135610f7f565b34801561058757600080fd5b506102f66004803603602081101561059e57600080fd5b5035600160a060020a0316610fa3565b3480156105ba57600080fd5b506101d1610fbe565b3480156105cf57600080fd5b506105d8611043565b604051808260038111156105e857fe5b60ff16815260200191505060405180910390f35b34801561060857600080fd5b506101ba61108e565b34801561061d57600080fd5b5061052661110b565b34801561063257600080fd5b5061052661111a565b34801561064757600080fd5b506101fa611129565b34801561065c57600080fd5b506101d1611184565b34801561067157600080fd5b506101d1611194565b34801561068657600080fd5b506101d16004803603604081101561069d57600080fd5b50600160a060020a038135169060200135611214565b3480156106bf57600080fd5b506102f6611238565b3480156106d457600080fd5b506101ba600480360360208110156106eb57600080fd5b5035600160a060020a031661123e565b34801561070757600080fd5b506101d16004803603604081101561071e57600080fd5b50600160a060020a03813516906020013561143b565b34801561074057600080fd5b506102f66004803603604081101561075757600080fd5b50600160a060020a038135811691602001351661145f565b34801561077b57600080fd5b506101ba6004803603602081101561079257600080fd5b5035600160a060020a031661148a565b3480156107ae57600080fd5b506101ba600480360360208110156107c557600080fd5b5035600160a060020a031661151f565b600454600160a060020a031633146107ec57600080fd5b600654600010156107fc57600080fd5b6004805474ff000000000000000000000000000000000000000019169055565b60035460a860020a900460ff1681565b6007805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108b25780601f10610887576101008083540402835291602001916108b2565b820191906000526020600020905b81548152906001019060200180831161089557829003601f168201915b505050505081565b60035460009060a060020a900460ff16156108d457600080fd5b6108de838361157a565b9392505050565b600354600160a060020a031633146108fc57600080fd5b600160a060020a038216151561091157600080fd5b600160a060020a03821660009081526020819052604090205481111561093657600080fd5b600160a060020a03821660009081526020819052604090205461095f908263ffffffff6115e016565b600160a060020a03831660009081526020819052604090205560015461098b908263ffffffff6115e016565b600155604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a25050565b6001545b90565b60035460009060a060020a900460ff16156109f257600080fd5b6109fd8484846115f2565b949350505050565b601281565b600354600160a060020a03163314610a2157600080fd5b60035460a060020a900460ff161515610a3957600080fd5b6003805474ff0000000000000000000000000000000000000000191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b600354600090600160a060020a03163314610a9c57600080fd5b60035460a860020a900460ff1615610ab357600080fd5b60035460a060020a900460ff1615610aca57600080fd5b600154610add908363ffffffff61176916565b600155600160a060020a038316600090815260208190526040902054610b09908363ffffffff61176916565b600160a060020a03841660008181526020818152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a2604080518381529051600160a060020a038516916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b33600090815260208190526040902054811115610bbf57600080fd5b33600081815260208190526040902054610bdf908363ffffffff6115e016565b600160a060020a038216600090815260208190526040902055600154610c0b908363ffffffff6115e016565b600155604080518381529051600160a060020a038316917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a25050565b6000610c5b611043565b90506002816003811115610c6b57fe5b1480610c8257506003816003811115610c8057fe5b145b1515610c8d57600080fd5b811515610c9957600080fd5b33600090815260208190526040902054610cb9908363ffffffff6115e016565b33600090815260208190526040902055600154610cdc908363ffffffff6115e016565b600155600654610cf2908363ffffffff61176916565b600655600554604080517f753e88e5000000000000000000000000000000000000000000000000000000008152336004820152602481018590529051600160a060020a039092169163753e88e59160448082019260009290919082900301818387803b158015610d6157600080fd5b505af1158015610d75573d6000803e3d6000fd5b5050600554604080518681529051600160a060020a0390921693503392507f7e5c344a8141a805725cb476f76c6953b842222b967edd1f78ddb6e8b3f397ac919081900360200190a35050565b600454600160a060020a03163314610dd957600080fd5b6004805474ff0000000000000000000000000000000000000000191660a060020a179055565b600354600160a060020a03163314610e1657600080fd5b610e22600785856119e2565b50610e2f600883836119e2565b506040805181815260078054600260001961010060018416150201909116049282018390527fd131ab1e6f279deea74e13a18477e13e2107deb6dc8ae955648948be5841fb4692909160089181906020820190606083019086908015610ed65780601f10610eab57610100808354040283529160200191610ed6565b820191906000526020600020905b815481529060010190602001808311610eb957829003601f168201915b5050838103825284546002600019610100600184161502019091160480825260209091019085908015610f4a5780601f10610f1f57610100808354040283529160200191610f4a565b820191906000526020600020905b815481529060010190602001808311610f2d57829003601f168201915b505094505050505060405180910390a150505050565b60035460a060020a900460ff1681565b600454600160a060020a031681565b60035460009060a060020a900460ff1615610f9957600080fd5b6108de8383611778565b600160a060020a031660009081526020819052604090205490565b600354600090600160a060020a03163314610fd857600080fd5b60035460a860020a900460ff1615610fef57600080fd5b6003805475ff000000000000000000000000000000000000000000191660a860020a1790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a150600190565b600061104d611184565b151561105b575060006109d5565b600554600160a060020a03161515611075575060016109d5565b6006541515611086575060026109d5565b5060036109d5565b600354600160a060020a031633146110a557600080fd5b60035460a060020a900460ff16156110bc57600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600354600160a060020a031681565b600554600160a060020a031681565b6008805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108b25780601f10610887576101008083540402835291602001916108b2565b60045460a060020a900460ff1690565b600354600090600160a060020a031633146111ae57600080fd5b60035460a860020a900460ff1615156111c657600080fd5b6003805475ff000000000000000000000000000000000000000000191690556040517f452a344f03203071e1daf66e007976c85cb2380deabf1c91f3c4fb1fca41204990600090a150600190565b60035460009060a060020a900460ff161561122e57600080fd5b6108de8383611868565b60065481565b600454600160a060020a0316331461125557600080fd5b600361125f611043565b600381111561126a57fe5b141561127557600080fd5b61127d611184565b151561128857600080fd5b600160a060020a038116151561129d57600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038381169190911791829055604080517fea2ce6510000000000000000000000000000000000000000000000000000000081529051929091169163ea2ce65191600480820192602092909190829003018186803b15801561131f57600080fd5b505afa158015611333573d6000803e3d6000fd5b505050506040513d602081101561134957600080fd5b5051151561135657600080fd5b600154600560009054906101000a9004600160a060020a0316600160a060020a0316634b2ba0dd6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156113c357600080fd5b505afa1580156113d7573d6000803e3d6000fd5b505050506040513d60208110156113ed57600080fd5b5051146113f957600080fd5b60055460408051600160a060020a039092168252517f219f1080015df4ca5a2cdcb89266f4a405ff0c2518b8563b9189f91cca9f9a109181900360200190a150565b60035460009060a060020a900460ff161561145557600080fd5b6108de8383611949565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600354600160a060020a031633146114a157600080fd5b600160a060020a03811615156114b657600080fd5b600354604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600454600160a060020a0316331461153657600080fd5b600160a060020a038116151561154b57600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b6000828211156115ec57fe5b50900390565b6000600160a060020a038316151561160957600080fd5b600160a060020a03841660009081526020819052604090205482111561162e57600080fd5b600160a060020a038416600090815260026020908152604080832033845290915290205482111561165e57600080fd5b600160a060020a038416600090815260208190526040902054611687908363ffffffff6115e016565b600160a060020a0380861660009081526020819052604080822093909355908516815220546116bc908363ffffffff61176916565b600160a060020a038085166000908152602081815260408083209490945591871681526002825282812033825290915220546116fe908363ffffffff6115e016565b600160a060020a03808616600081815260026020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b6000828201838110156108de57fe5b336000908152600260209081526040808320600160a060020a0386168452909152812054808311156117cd57336000908152600260209081526040808320600160a060020a0388168452909152812055611802565b6117dd818463ffffffff6115e016565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6000600160a060020a038316151561187f57600080fd5b3360009081526020819052604090205482111561189b57600080fd5b336000908152602081905260409020546118bb908363ffffffff6115e016565b3360009081526020819052604080822092909255600160a060020a038516815220546118ed908363ffffffff61176916565b600160a060020a038416600081815260208181526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b336000908152600260209081526040808320600160a060020a038616845290915281205461197d908363ffffffff61176916565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611a235782800160ff19823516178555611a50565b82800160010185558215611a50579182015b82811115611a50578235825591602001919060010190611a35565b50611a5c929150611a60565b5090565b6109d591905b80821115611a5c5760008155600101611a6656fea165627a7a723058209fa378675ece5de617b0d60dd02c1e2136dbccb874473e642febc7dc81ea59100029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000ddd20f64832651aab58d49cdd0a599660be9c0f1

-----Decoded View---------------
Arg [0] : _upgradeMaster (address): 0xDdd20f64832651aAB58D49CDd0a599660BE9c0f1

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000ddd20f64832651aab58d49cdd0a599660be9c0f1


Deployed Bytecode Sourcemap

17575:924:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16113:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16113:138:0;;;;;;10902:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10902:35:0;;;;;;;;;;;;;;;;;;;;;;17640:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17640:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;17640:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10263:144;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10263:144:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10263:144:0;;;;;;;;;18190:306;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18190:306:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18190:306:0;;;;;;;;;3578:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3578:91:0;;;;;;;;;;;;;;;;;;;;10089:166;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10089:166:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10089:166:0;;;;;;;;;;;;;;;;;;10858:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10858:35:0;;;;;;;;;;;;;;;;;;;;;;;9678:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9678:105:0;;;;11222:368;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11222:368:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11222:368:0;;;;;;;;;17106:460;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17106:460:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17106:460:0;;;14948:674;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14948:674:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14948:674:0;;;15964:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15964:96:0;;;;17973:209;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17973:209:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17973:209:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;17973:209:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;17973:209:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;17973:209:0;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;17973:209:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;17973:209:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;17973:209:0;;-1:-1:-1;17973:209:0;-1:-1:-1;17973:209:0;;9005:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9005:26:0;;;;12735:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12735:28:0;;;;;;;;-1:-1:-1;;;;;12735:28:0;;;;;;;;;;;;;;10600:187;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10600:187:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10600:187:0;;;;;;;;;4486:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4486:115:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4486:115:0;-1:-1:-1;;;;;4486:115:0;;;11598:160;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11598:160:0;;;;16303:333;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16303:333:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9482:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9482:103:0;;;;1507:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1507:20:0;;;;12927:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12927:34:0;;;;17685:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17685:29:0;;;;16689:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16689:89:0;;;;11766:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11766:162:0;;;;9945:136;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9945:136:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9945:136:0;;;;;;;;;13019:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13019:25:0;;;;14315:543;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14315:543:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14315:543:0;-1:-1:-1;;;;;14315:543:0;;;10415:177;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10415:177:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10415:177:0;;;;;;;;;6974:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6974:134:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6974:134:0;;;;;;;;;;;2156:192;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2156:192:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2156:192:0;-1:-1:-1;;;;;2156:192:0;;;15749:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15749:162:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15749:162:0;-1:-1:-1;;;;;15749:162:0;;;16113:138;13866:13;;-1:-1:-1;;;;;13866:13:0;13852:10;:27;13844:36;;;;;;16190:13;;16206:1;-1:-1:-1;16188:20:0;16180:29;;;;;;16220:15;:23;;-1:-1:-1;;16220:23:0;;;16113:138::o;10902:35::-;;;-1:-1:-1;;;10902:35:0;;;;;:::o;17640:38::-;;;;;;;;;;;;;;;-1:-1:-1;;17640:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10263:144::-;9189:6;;10344:4;;-1:-1:-1;;;9189:6:0;;;;9188:7;9180:16;;;;;;10368:31;10382:8;10392:6;10368:13;:31::i;:::-;10361:38;10263:144;-1:-1:-1;;;10263:144:0:o;18190:306::-;1956:5;;-1:-1:-1;;;;;1956:5:0;1942:10;:19;1934:28;;;;;;-1:-1:-1;;;;;18280:19:0;;;;18272:28;;;;;;-1:-1:-1;;;;;18329:15:0;;:8;:15;;;;;;;;;;;18319:25;;;18311:34;;;;;;-1:-1:-1;;;;;18376:15:0;;:8;:15;;;;;;;;;;;:27;;18396:6;18376:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;18358:15:0;;:8;:15;;;;;;;;;;:45;18429:12;;:24;;18446:6;18429:24;:16;:24;:::i;:::-;18414:12;:39;18469:19;;;;;;;;-1:-1:-1;;;;;18469:19:0;;;;;;;;;;;;;18190:306;;:::o;3578:91::-;3649:12;;3578:91;;:::o;10089:166::-;9189:6;;10185:4;;-1:-1:-1;;;9189:6:0;;;;9188:7;9180:16;;;;;;10209:38;10228:5;10235:3;10240:6;10209:18;:38::i;:::-;10202:45;10089:166;-1:-1:-1;;;;10089:166:0:o;10858:35::-;10891:2;10858:35;:::o;9678:105::-;1956:5;;-1:-1:-1;;;;;1956:5:0;1942:10;:19;1934:28;;;;;;9365:6;;-1:-1:-1;;;9365:6:0;;;;9357:15;;;;;;;;9736:6;:14;;-1:-1:-1;;9736:14:0;;;9766:9;;;;9745:5;;9766:9;9678:105::o;11222:368::-;1956:5;;11361:4;;-1:-1:-1;;;;;1956:5:0;1942:10;:19;1934:28;;;;;;11093:15;;-1:-1:-1;;;11093:15:0;;;;11092:16;11084:25;;;;;;9189:6;;-1:-1:-1;;;9189:6:0;;;;9188:7;9180:16;;;;;;11398:12;;:25;;11415:7;11398:25;:16;:25;:::i;:::-;11383:12;:40;-1:-1:-1;;;;;11450:13:0;;:8;:13;;;;;;;;;;;:26;;11468:7;11450:26;:17;:26;:::i;:::-;-1:-1:-1;;;;;11434:13:0;;:8;:13;;;;;;;;;;;;:42;;;;11492:18;;;;;;;11434:13;;11492:18;;;;;;;;;11526:34;;;;;;;;-1:-1:-1;;;;;11526:34:0;;;11543:1;;11526:34;;;;;;;;;-1:-1:-1;11578:4:0;11222:368;;;;:::o;17106:460::-;17181:10;17172:8;:20;;;;;;;;;;;17162:30;;;17154:39;;;;;;17404:10;17387:14;17444:16;;;;;;;;;;;:28;;17465:6;17444:28;:20;:28;:::i;:::-;-1:-1:-1;;;;;17425:16:0;;:8;:16;;;;;;;;;;:47;17498:12;;:24;;17515:6;17498:24;:16;:24;:::i;:::-;17483:12;:39;17538:20;;;;;;;;-1:-1:-1;;;;;17538:20:0;;;;;;;;;;;;;17106:460;;:::o;14948:674::-;14998:18;15019:17;:15;:17::i;:::-;14998:38;-1:-1:-1;15098:27:0;15089:5;:36;;;;;;;;;:71;;;-1:-1:-1;15138:22:0;15129:5;:31;;;;;;;;;15089:71;15081:80;;;;;;;;15213:11;;;15205:20;;;;;;15270:10;15261:8;:20;;;;;;;;;;;:32;;15286:6;15261:32;:24;:32;:::i;:::-;15247:10;15238:8;:20;;;;;;;;;;:55;15366:12;;:24;;15383:6;15366:24;:16;:24;:::i;:::-;15351:12;:39;15417:13;;:25;;15435:6;15417:25;:17;:25;:::i;:::-;15401:13;:41;15502:13;;:45;;;;;;15528:10;15502:45;;;;;;;;;;;;-1:-1:-1;;;;;15502:13:0;;;;:25;;:45;;;;;:13;;:45;;;;;;;;:13;;:45;;;5:2:-1;;;;30:1;27;20:12;5:2;15502:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;15591:13:0;;15563:51;;;;;;;;-1:-1:-1;;;;;15591:13:0;;;;-1:-1:-1;15571:10:0;;-1:-1:-1;15563:51:0;;;;;;;;;;14948:674;;:::o;15964:96::-;13866:13;;-1:-1:-1;;;;;13866:13:0;13852:10;:27;13844:36;;;;;;16030:15;:22;;-1:-1:-1;;16030:22:0;-1:-1:-1;;;16030:22:0;;;15964:96::o;17973:209::-;1956:5;;-1:-1:-1;;;;;1956:5:0;1942:10;:19;1934:28;;;;;;18080:12;:4;18087:5;;18080:12;:::i;:::-;-1:-1:-1;18103:16:0;:6;18112:7;;18103:16;:::i;:::-;-1:-1:-1;18137:37:0;;;;;;18161:4;18137:37;;;-1:-1:-1;;18137:37:0;;;;;;;;;;;;;;;;;;;18161:4;;18167:6;;18137:37;;;;;;;;;;18161:4;;18137:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18137:37:0;;;;;;;;-1:-1:-1;;18137:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17973:209;;;;:::o;9005:26::-;;;-1:-1:-1;;;9005:26:0;;;;;:::o;12735:28::-;;;-1:-1:-1;;;;;12735:28:0;;:::o;10600:187::-;9189:6;;10697:12;;-1:-1:-1;;;9189:6:0;;;;9188:7;9180:16;;;;;;10729:50;10752:8;10762:16;10729:22;:50::i;4486:115::-;-1:-1:-1;;;;;4577:16:0;4542:15;4577:16;;;;;;;;;;;;4486:115::o;11598:160::-;1956:5;;11659:4;;-1:-1:-1;;;;;1956:5:0;1942:10;:19;1934:28;;;;;;11093:15;;-1:-1:-1;;;11093:15:0;;;;11092:16;11084:25;;;;;;11676:15;:22;;-1:-1:-1;;11676:22:0;-1:-1:-1;;;11676:22:0;;;11714:14;;;;11676:22;;11714:14;-1:-1:-1;11746:4:0;11598:160;:::o;16303:333::-;16350:12;16380;:10;:12::i;:::-;16379:13;16375:253;;;-1:-1:-1;16401:23:0;16394:30;;16375:253;16452:13;;-1:-1:-1;;;;;16452:13:0;16444:36;16440:188;;;-1:-1:-1;16489:20:0;16482:27;;16440:188;16529:13;;:18;16525:103;;;-1:-1:-1;16556:27:0;16549:34;;16525:103;-1:-1:-1;16606:22:0;16599:29;;9482:103;1956:5;;-1:-1:-1;;;;;1956:5:0;1942:10;:19;1934:28;;;;;;9189:6;;-1:-1:-1;;;9189:6:0;;;;9188:7;9180:16;;;;;;9541:6;:13;;-1:-1:-1;;9541:13:0;-1:-1:-1;;;9541:13:0;;;9570:7;;;;9541:13;;9570:7;9482:103::o;1507:20::-;;;-1:-1:-1;;;;;1507:20:0;;:::o;12927:34::-;;;-1:-1:-1;;;;;12927:34:0;;:::o;17685:29::-;;;;;;;;;;;;;;;-1:-1:-1;;17685:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16689:89;16755:15;;-1:-1:-1;;;16755:15:0;;;;;16689:89::o;11766:162::-;1956:5;;11829:4;;-1:-1:-1;;;;;1956:5:0;1942:10;:19;1934:28;;;;;;11178:15;;-1:-1:-1;;;11178:15:0;;;;11170:24;;;;;;;;11846:15;:23;;-1:-1:-1;;11846:23:0;;;11885:13;;;;11864:5;;11885:13;-1:-1:-1;11916:4:0;11766:162;:::o;9945:136::-;9189:6;;10022:4;;-1:-1:-1;;;9189:6:0;;;;9188:7;9180:16;;;;;;10046:27;10061:3;10066:6;10046:14;:27::i;13019:25::-;;;;:::o;14315:543::-;13866:13;;-1:-1:-1;;;;;13866:13:0;13852:10;:27;13844:36;;;;;;14025:22;14004:17;:15;:17::i;:::-;:43;;;;;;;;;;13996:52;;;;;;14458:12;:10;:12::i;:::-;14450:21;;;;;;;;-1:-1:-1;;;;;14490:23:0;;;;14482:32;;;;;;14527:13;:40;;-1:-1:-1;;14527:40:0;-1:-1:-1;;;;;14527:40:0;;;;;;;;;;;14621:31;;;;;;;;:13;;;;;:29;;:31;;;;;;;;;;;;;;;:13;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;14621:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14621:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14621:31:0;14613:40;;;;;;;;14777:12;;14743:13;;;;;;;;;-1:-1:-1;;;;;14743:13:0;-1:-1:-1;;;;;14743:28:0;;:30;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14743:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14743:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14743:30:0;:46;14735:55;;;;;;14835:13;;14808:42;;;-1:-1:-1;;;;;14835:13:0;;;14808:42;;;;;;;;;;;;14315:543;:::o;10415:177::-;9189:6;;10507:12;;-1:-1:-1;;;9189:6:0;;;;9188:7;9180:16;;;;;;10539:45;10562:8;10572:11;10539:22;:45::i;6974:134::-;-1:-1:-1;;;;;7075:15:0;;;7048:7;7075:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;6974:134::o;2156:192::-;1956:5;;-1:-1:-1;;;;;1956:5:0;1942:10;:19;1934:28;;;;;;-1:-1:-1;;;;;2237:22:0;;;;2229:31;;;;;;2297:5;;2276:37;;-1:-1:-1;;;;;2276:37:0;;;;2297:5;;2276:37;;2297:5;;2276:37;2324:5;:16;;-1:-1:-1;;2324:16:0;-1:-1:-1;;;;;2324:16:0;;;;;;;;;;2156:192::o;15749:162::-;13866:13;;-1:-1:-1;;;;;13866:13:0;13852:10;:27;13844:36;;;;;;-1:-1:-1;;;;;15841:24:0;;;;15833:33;;;;;;15877:13;:26;;-1:-1:-1;;15877:26:0;-1:-1:-1;;;;;15877:26:0;;;;;;;;;;15749:162::o;6432:206::-;6524:10;6499:4;6516:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;6516:29:0;;;;;;;;;;;:38;;;6570;;;;;;;6499:4;;6516:29;;6524:10;;6570:38;;;;;;;;-1:-1:-1;6626:4:0;6432:206;;;;:::o;934:123::-;992:7;1019:6;;;;1012:14;;;;-1:-1:-1;1044:5:0;;;934:123::o;5296:488::-;5378:4;-1:-1:-1;;;;;5403:17:0;;;;5395:26;;;;;;-1:-1:-1;;;;;5450:15:0;;:8;:15;;;;;;;;;;;5440:25;;;5432:34;;;;;;-1:-1:-1;;;;;5495:14:0;;;;;;:7;:14;;;;;;;;5510:10;5495:26;;;;;;;;5485:36;;;5477:45;;;;;;-1:-1:-1;;;;;5553:15:0;;:8;:15;;;;;;;;;;;:27;;5573:6;5553:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;5535:15:0;;;:8;:15;;;;;;;;;;;:45;;;;5607:13;;;;;;;:25;;5625:6;5607:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;5591:13:0;;;:8;:13;;;;;;;;;;;:41;;;;5672:14;;;;;:7;:14;;;;;5687:10;5672:26;;;;;;;:38;;5703:6;5672:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;5643:14:0;;;;;;;:7;:14;;;;;;;;5658:10;5643:26;;;;;;;;:67;;;;5726:28;;;;;;;;;;;5643:14;;5726:28;;;;;;;;;;;-1:-1:-1;5772:4:0;5296:488;;;;;:::o;1132:147::-;1190:7;1222:5;;;1245:6;;;;1238:14;;;8357:442;8481:10;8440:4;8473:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;8473:29:0;;;;;;;;;;8517:27;;;8513:180;;;8565:10;8589:1;8557:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;8557:29:0;;;;;;;;;:33;8513:180;;;8651:30;:8;8664:16;8651:30;:12;:30;:::i;:::-;8627:10;8619:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;8619:29:0;;;;;;;;;:62;8513:180;8717:10;8739:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;8708:61:0;;8739:29;;;;;;;;;;;8708:61;;;;;;;;;8717:10;8708:61;;;;;;;;;;;-1:-1:-1;8787:4:0;;8357:442;-1:-1:-1;;;8357:442:0:o;3842:423::-;3905:4;-1:-1:-1;;;;;3930:17:0;;;;3922:26;;;;;;3986:10;3977:8;:20;;;;;;;;;;;3967:30;;;3959:39;;;;;;4111:10;4102:8;:20;;;;;;;;;;;:32;;4127:6;4102:32;:24;:32;:::i;:::-;4088:10;4079:8;:20;;;;;;;;;;;:55;;;;-1:-1:-1;;;;;4161:13:0;;;;;;:25;;4179:6;4161:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;4145:13:0;;:8;:13;;;;;;;;;;;;:41;;;;4202:33;;;;;;;4145:13;;4211:10;;4202:33;;;;;;;;;;-1:-1:-1;4253:4:0;3842:423;;;;:::o;7590:280::-;7725:10;7668:4;7717:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7717:29:0;;;;;;;;;;:46;;7751:11;7717:46;:33;:46;:::i;:::-;7693:10;7685:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7685:29:0;;;;;;;;;;;;:78;;;7779:61;;;;;;7685:29;;7779:61;;;;;;;;;;;-1:-1:-1;7858:4:0;7590:280;;;;:::o;17575:924::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17575:924:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17575:924:0;;;-1:-1:-1;17575:924:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;

Swarm Source

bzzr://9fa378675ece5de617b0d60dd02c1e2136dbccb874473e642febc7dc81ea5910
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.