ETH Price: $3,293.86 (+5.05%)
Gas: 7 Gwei

Token

DIGIPHARM TOKEN (DPH)
 

Overview

Max Total Supply

100,000,000 DPH

Holders

633

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Blockchain-based platform for value-based pricing of healthcare.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
DigipharmToken

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Multiple files format)

File 2 of 8: DigipharmToken.sol
pragma solidity 0.4.24;

import './MintableToken.sol';
import './SafeMath.sol';

contract DigipharmToken is MintableToken {

    using SafeMath for uint256;
    string public name = "DIGIPHARM TOKEN";
    string public   symbol = "DPH";
    uint public   decimals = 18;
    bool public  TRANSFERS_ALLOWED = false;
    uint256 public MAX_TOTAL_SUPPLY = 100000000 * (10 **18);


    struct LockParams {
        uint256 TIME;
        address ADDRESS;
        uint256 AMOUNT;
    }

    LockParams[] public  locks;

    event Burn(address indexed burner, uint256 value);

    function burnFrom(uint256 _value, address victim) public onlyOwner canMint {
        require(_value <= balances[victim]);

        balances[victim] = balances[victim].sub(_value);
        totalSupply_ = totalSupply().sub(_value);

        emit Burn(victim, _value);
    }

    function burn(uint256 _value) public onlyOwner {
        require(_value <= balances[msg.sender]);

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

        emit Burn(msg.sender, _value);
    }

    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
        require(TRANSFERS_ALLOWED || msg.sender == owner);
        require(canBeTransfered(_from, _value));

        return super.transferFrom(_from, _to, _value);
    }


    function lock(address _to, uint256 releaseTime, uint256 lockamount) public onlyOwner returns (bool) {

        LockParams memory lockdata;
        lockdata.TIME = releaseTime;
        lockdata.AMOUNT = lockamount;
        lockdata.ADDRESS = _to;

        locks.push(lockdata);

        return true;
    }

    function canBeTransfered(address addr, uint256 value) public view returns (bool){
        for (uint i=0; i<locks.length; i++) {
            if (locks[i].ADDRESS == addr){
                if ( value > balanceOf(addr).sub(locks[i].AMOUNT) && locks[i].TIME > now){

                    return false;
                }
            }
        }

        return true;
    }

    function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) {
        if (totalSupply_.add(_amount) > MAX_TOTAL_SUPPLY){
            return false;
        }

        return super.mint(_to, _amount);
    }


    function transfer(address _to, uint256 _value) public returns (bool){
        require(TRANSFERS_ALLOWED || msg.sender == owner);
        require(canBeTransfered(msg.sender, _value));

        return super.transfer(_to, _value);
    }

    function stopTransfers() public onlyOwner {
        TRANSFERS_ALLOWED = false;
    }

    function resumeTransfers() public onlyOwner {
        TRANSFERS_ALLOWED = true;
    }

}

File 1 of 8: BasicToken.sol
pragma solidity 0.4.24;


import "./ERC20Basic.sol";
import "./SafeMath.sol";


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

}

File 3 of 8: ERC20.sol
pragma solidity 0.4.24;

import "./ERC20Basic.sol";


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

File 4 of 8: ERC20Basic.sol
pragma solidity 0.4.24;


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

File 5 of 8: MintableToken.sol
pragma solidity 0.4.24;

import "./StandardToken.sol";
import "./Ownable.sol";


/**
 * @title Mintable token
 * @dev Simple ERC20 Token example, with mintable token creation
 */
contract MintableToken is StandardToken, Ownable {
  event Mint(address indexed to, uint256 amount);
  event MintFinished();

  bool public mintingFinished = false;


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

  /**
   * @dev Function to mint tokens
   * @param _to The address that will receive the minted tokens.
   * @param _amount The amount of tokens to mint.
   * @return A boolean that indicates if the operation was successful.
   */
  function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) {

    totalSupply_ = totalSupply_.add(_amount);
    balances[_to] = balances[_to].add(_amount);
    emit Mint(_to, _amount);
    emit Transfer(address(0), _to, _amount);
    return true;
  }

  /**
   * @dev Function to stop minting new tokens.
   * @return True if the operation was successful.
   */
  function finishMinting() onlyOwner canMint public returns (bool) {
    mintingFinished = true;
    emit MintFinished();
    return true;
  }
}

File 6 of 8: Ownable.sol
pragma solidity 0.4.24;


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

}

File 7 of 8: SafeMath.sol
pragma solidity 0.4.24;


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

File 8 of 8: StandardToken.sol
pragma solidity 0.4.24;

import "./BasicToken.sol";
import "./ERC20.sol";


/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 */
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:
   * @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)
   * @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)
   * @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;
  }

}

Contract Security Audit

Contract ABI

[{"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":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":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAX_TOTAL_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","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":true,"inputs":[],"name":"TRANSFERS_ALLOWED","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"stopTransfers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"finishMinting","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"},{"name":"victim","type":"address"}],"name":"burnFrom","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":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"},{"name":"value","type":"uint256"}],"name":"canBeTransfered","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","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":false,"inputs":[],"name":"resumeTransfers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","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":"_to","type":"address"},{"name":"releaseTime","type":"uint256"},{"name":"lockamount","type":"uint256"}],"name":"lock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"locks","outputs":[{"name":"TIME","type":"uint256"},{"name":"ADDRESS","type":"address"},{"name":"AMOUNT","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"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":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[],"name":"MintFinished","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"}]

60806040526000600360146101000a81548160ff0219169083151502179055506040805190810160405280600f81526020017f44494749504841524d20544f4b454e0000000000000000000000000000000000815250600490805190602001906200006c92919062000131565b506040805190810160405280600381526020017f445048000000000000000000000000000000000000000000000000000000000081525060059080519060200190620000ba92919062000131565b5060126006556000600760006101000a81548160ff0219169083151502179055506a52b7d2dcc80cd2e400000060085533600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001e0565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200017457805160ff1916838001178555620001a5565b82800160010185558215620001a5579182015b82811115620001a457825182559160200191906001019062000187565b5b509050620001b49190620001b8565b5090565b620001dd91905b80821115620001d9576000816000905550600101620001bf565b5090565b90565b6124d280620001f06000396000f300608060405260043610610149576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b1461014e57806306fdde031461017d578063095ea7b31461020d57806318160ddd1461027257806323b872dd1461029d578063313ce5671461032257806333039d3d1461034d57806340c10f191461037857806342966c68146103dd578063661884631461040a57806370a082311461046f57806375a75ba9146104c65780637adac0e6146104f55780637d64bcb41461050c5780638a56f3ee1461053b5780638da5cb5b1461058857806395d89b41146105df57806397d425cb1461066f578063a9059cbb146106d4578063c77a16ed14610739578063d73dd62314610750578063dd62ed3e146107b5578063e2ab691d1461082c578063f2fde38b1461089b578063f4dadc61146108de575b600080fd5b34801561015a57600080fd5b50610163610959565b604051808215151515815260200191505060405180910390f35b34801561018957600080fd5b5061019261096c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101d25780820151818401526020810190506101b7565b50505050905090810190601f1680156101ff5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021957600080fd5b50610258600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a0a565b604051808215151515815260200191505060405180910390f35b34801561027e57600080fd5b50610287610afc565b6040518082815260200191505060405180910390f35b3480156102a957600080fd5b50610308600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b06565b604051808215151515815260200191505060405180910390f35b34801561032e57600080fd5b50610337610ba4565b6040518082815260200191505060405180910390f35b34801561035957600080fd5b50610362610baa565b6040518082815260200191505060405180910390f35b34801561038457600080fd5b506103c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bb0565b604051808215151515815260200191505060405180910390f35b3480156103e957600080fd5b5061040860048036038101908080359060200190929190505050610c64565b005b34801561041657600080fd5b50610455600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e11565b604051808215151515815260200191505060405180910390f35b34801561047b57600080fd5b506104b0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110a2565b6040518082815260200191505060405180910390f35b3480156104d257600080fd5b506104db6110ea565b604051808215151515815260200191505060405180910390f35b34801561050157600080fd5b5061050a6110fd565b005b34801561051857600080fd5b50610521611176565b604051808215151515815260200191505060405180910390f35b34801561054757600080fd5b5061058660048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061123e565b005b34801561059457600080fd5b5061059d611408565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105eb57600080fd5b506105f461142e565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610634578082015181840152602081019050610619565b50505050905090810190601f1680156106615780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561067b57600080fd5b506106ba600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114cc565b604051808215151515815260200191505060405180910390f35b3480156106e057600080fd5b5061071f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115e5565b604051808215151515815260200191505060405180910390f35b34801561074557600080fd5b5061074e611681565b005b34801561075c57600080fd5b5061079b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116fa565b604051808215151515815260200191505060405180910390f35b3480156107c157600080fd5b50610816600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118f6565b6040518082815260200191505060405180910390f35b34801561083857600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061197d565b604051808215151515815260200191505060405180910390f35b3480156108a757600080fd5b506108dc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ac7565b005b3480156108ea57600080fd5b5061090960048036038101908080359060200190929190505050611c1f565b604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390f35b600360149054906101000a900460ff1681565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a025780601f106109d757610100808354040283529160200191610a02565b820191906000526020600020905b8154815290600101906020018083116109e557829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b6000600760009054906101000a900460ff1680610b705750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610b7b57600080fd5b610b8584836114cc565b1515610b9057600080fd5b610b9b848484611c78565b90509392505050565b60065481565b60085481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c0e57600080fd5b600360149054906101000a900460ff16151515610c2a57600080fd5b600854610c428360015461203290919063ffffffff16565b1115610c515760009050610c5e565b610c5b8383612050565b90505b92915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cc057600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515610d0d57600080fd5b610d5e816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223690919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dba81610dac610afc565b61223690919063ffffffff16565b6001819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a250565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610f22576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610fb6565b610f35838261223690919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600760009054906101000a900460ff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561115957600080fd5b6000600760006101000a81548160ff021916908315150217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111d457600080fd5b600360149054906101000a900460ff161515156111f057600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561129a57600080fd5b600360149054906101000a900460ff161515156112b657600080fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561130357600080fd5b611354826000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223690919063ffffffff16565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113b0826113a2610afc565b61223690919063ffffffff16565b6001819055508073ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a25050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114c45780601f10611499576101008083540402835291602001916114c4565b820191906000526020600020905b8154815290600101906020018083116114a757829003601f168201915b505050505081565b600080600090505b6009805490508110156115d9578373ffffffffffffffffffffffffffffffffffffffff1660098281548110151561150757fe5b906000526020600020906003020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156115cc5761159060098281548110151561156757fe5b906000526020600020906003020160020154611582866110a2565b61223690919063ffffffff16565b831180156115bd5750426009828154811015156115a957fe5b906000526020600020906003020160000154115b156115cb57600091506115de565b5b80806001019150506114d4565b600191505b5092915050565b6000600760009054906101000a900460ff168061164f5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561165a57600080fd5b61166433836114cc565b151561166f57600080fd5b611679838361224f565b905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116dd57600080fd5b6001600760006101000a81548160ff021916908315150217905550565b600061178b82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203290919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061198761246e565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119e357600080fd5b838160000181815250508281604001818152505084816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600981908060018154018082558091505090600182039060005260206000209060030201600090919290919091506000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015550505060019150509392505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b2357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611b5f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600981815481101515611c2e57fe5b90600052602060002090600302016000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154905083565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611cb557600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611d0257600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611d8d57600080fd5b611dde826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223690919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e71826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203290919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f4282600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223690919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080828401905083811015151561204657fe5b8091505092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120ae57600080fd5b600360149054906101000a900460ff161515156120ca57600080fd5b6120df8260015461203290919063ffffffff16565b600181905550612136826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203290919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600082821115151561224457fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561228c57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156122d957600080fd5b61232a826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223690919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123bd826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203290919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60606040519081016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815250905600a165627a7a7230582038fbe015c4b960dd1cb83b1d4d2859ed67168724e3a4d54b3861b3d9d0d45bca0029

Deployed Bytecode

0x608060405260043610610149576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b1461014e57806306fdde031461017d578063095ea7b31461020d57806318160ddd1461027257806323b872dd1461029d578063313ce5671461032257806333039d3d1461034d57806340c10f191461037857806342966c68146103dd578063661884631461040a57806370a082311461046f57806375a75ba9146104c65780637adac0e6146104f55780637d64bcb41461050c5780638a56f3ee1461053b5780638da5cb5b1461058857806395d89b41146105df57806397d425cb1461066f578063a9059cbb146106d4578063c77a16ed14610739578063d73dd62314610750578063dd62ed3e146107b5578063e2ab691d1461082c578063f2fde38b1461089b578063f4dadc61146108de575b600080fd5b34801561015a57600080fd5b50610163610959565b604051808215151515815260200191505060405180910390f35b34801561018957600080fd5b5061019261096c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101d25780820151818401526020810190506101b7565b50505050905090810190601f1680156101ff5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021957600080fd5b50610258600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a0a565b604051808215151515815260200191505060405180910390f35b34801561027e57600080fd5b50610287610afc565b6040518082815260200191505060405180910390f35b3480156102a957600080fd5b50610308600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b06565b604051808215151515815260200191505060405180910390f35b34801561032e57600080fd5b50610337610ba4565b6040518082815260200191505060405180910390f35b34801561035957600080fd5b50610362610baa565b6040518082815260200191505060405180910390f35b34801561038457600080fd5b506103c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bb0565b604051808215151515815260200191505060405180910390f35b3480156103e957600080fd5b5061040860048036038101908080359060200190929190505050610c64565b005b34801561041657600080fd5b50610455600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e11565b604051808215151515815260200191505060405180910390f35b34801561047b57600080fd5b506104b0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110a2565b6040518082815260200191505060405180910390f35b3480156104d257600080fd5b506104db6110ea565b604051808215151515815260200191505060405180910390f35b34801561050157600080fd5b5061050a6110fd565b005b34801561051857600080fd5b50610521611176565b604051808215151515815260200191505060405180910390f35b34801561054757600080fd5b5061058660048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061123e565b005b34801561059457600080fd5b5061059d611408565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105eb57600080fd5b506105f461142e565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610634578082015181840152602081019050610619565b50505050905090810190601f1680156106615780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561067b57600080fd5b506106ba600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114cc565b604051808215151515815260200191505060405180910390f35b3480156106e057600080fd5b5061071f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115e5565b604051808215151515815260200191505060405180910390f35b34801561074557600080fd5b5061074e611681565b005b34801561075c57600080fd5b5061079b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116fa565b604051808215151515815260200191505060405180910390f35b3480156107c157600080fd5b50610816600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118f6565b6040518082815260200191505060405180910390f35b34801561083857600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061197d565b604051808215151515815260200191505060405180910390f35b3480156108a757600080fd5b506108dc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ac7565b005b3480156108ea57600080fd5b5061090960048036038101908080359060200190929190505050611c1f565b604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390f35b600360149054906101000a900460ff1681565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a025780601f106109d757610100808354040283529160200191610a02565b820191906000526020600020905b8154815290600101906020018083116109e557829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b6000600760009054906101000a900460ff1680610b705750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610b7b57600080fd5b610b8584836114cc565b1515610b9057600080fd5b610b9b848484611c78565b90509392505050565b60065481565b60085481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c0e57600080fd5b600360149054906101000a900460ff16151515610c2a57600080fd5b600854610c428360015461203290919063ffffffff16565b1115610c515760009050610c5e565b610c5b8383612050565b90505b92915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cc057600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515610d0d57600080fd5b610d5e816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223690919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dba81610dac610afc565b61223690919063ffffffff16565b6001819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a250565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610f22576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610fb6565b610f35838261223690919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600760009054906101000a900460ff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561115957600080fd5b6000600760006101000a81548160ff021916908315150217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111d457600080fd5b600360149054906101000a900460ff161515156111f057600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561129a57600080fd5b600360149054906101000a900460ff161515156112b657600080fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561130357600080fd5b611354826000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223690919063ffffffff16565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113b0826113a2610afc565b61223690919063ffffffff16565b6001819055508073ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a25050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114c45780601f10611499576101008083540402835291602001916114c4565b820191906000526020600020905b8154815290600101906020018083116114a757829003601f168201915b505050505081565b600080600090505b6009805490508110156115d9578373ffffffffffffffffffffffffffffffffffffffff1660098281548110151561150757fe5b906000526020600020906003020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156115cc5761159060098281548110151561156757fe5b906000526020600020906003020160020154611582866110a2565b61223690919063ffffffff16565b831180156115bd5750426009828154811015156115a957fe5b906000526020600020906003020160000154115b156115cb57600091506115de565b5b80806001019150506114d4565b600191505b5092915050565b6000600760009054906101000a900460ff168061164f5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561165a57600080fd5b61166433836114cc565b151561166f57600080fd5b611679838361224f565b905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116dd57600080fd5b6001600760006101000a81548160ff021916908315150217905550565b600061178b82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203290919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061198761246e565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119e357600080fd5b838160000181815250508281604001818152505084816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600981908060018154018082558091505090600182039060005260206000209060030201600090919290919091506000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015550505060019150509392505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b2357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611b5f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600981815481101515611c2e57fe5b90600052602060002090600302016000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154905083565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611cb557600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611d0257600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611d8d57600080fd5b611dde826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223690919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e71826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203290919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f4282600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223690919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080828401905083811015151561204657fe5b8091505092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120ae57600080fd5b600360149054906101000a900460ff161515156120ca57600080fd5b6120df8260015461203290919063ffffffff16565b600181905550612136826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203290919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600082821115151561224457fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561228c57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156122d957600080fd5b61232a826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223690919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123bd826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203290919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60606040519081016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815250905600a165627a7a7230582038fbe015c4b960dd1cb83b1d4d2859ed67168724e3a4d54b3861b3d9d0d45bca0029

Deployed Bytecode Sourcemap

81:2633:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;307:35:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;307:35:4;;;;;;;;;;;;;;;;;;;;;;;;;;;161:38:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;161:38:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;161:38:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1559:189:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1559:189:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;361:83:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;361:83:0;;;;;;;;;;;;;;;;;;;;;;;1114:259:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1114:259:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;241:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;241:27:1;;;;;;;;;;;;;;;;;;;;;;;318:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;318:55:1;;;;;;;;;;;;;;;;;;;;;;;2062:228;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2062:228:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;849:259;;8:9:-1;5:2;;;30:1;27;20:12;5:2;849:259:1;;;;;;;;;;;;;;;;;;;;;;;;;;3310:403:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3310:403:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1184:107:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1184:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;274:38:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;274:38:1;;;;;;;;;;;;;;;;;;;;;;;;;;;2536:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2536:84:1;;;;;;1035:140:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1035:140:4;;;;;;;;;;;;;;;;;;;;;;;;;;;572:271:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;572:271:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;237:20:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;237:20:5;;;;;;;;;;;;;;;;;;;;;;;;;;;205:30:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;205:30:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;205:30:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1690:366;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1690:366:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2297:233;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2297:233:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2626:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2626:85:1;;;;;;2618:262:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2618:262:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2067:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2067:126:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1380:304:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1380:304:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;826:174:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;826:174:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;483:26:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;483:26:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;307:35:4;;;;;;;;;;;;;:::o;161:38:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1559:189:7:-;1626:4;1670:6;1638:7;:19;1646:10;1638:19;;;;;;;;;;;;;;;:29;1658:8;1638:29;;;;;;;;;;;;;;;:38;;;;1709:8;1688:38;;1697:10;1688:38;;;1719:6;1688:38;;;;;;;;;;;;;;;;;;1739:4;1732:11;;1559:189;;;;:::o;361:83:0:-;405:7;427:12;;420:19;;361:83;:::o;1114:259:1:-;1196:4;1220:17;;;;;;;;;;;:40;;;;1255:5;;;;;;;;;;;1241:19;;:10;:19;;;1220:40;1212:49;;;;;;;;1279:30;1295:5;1302:6;1279:15;:30::i;:::-;1271:39;;;;;;;;1328:38;1347:5;1354:3;1359:6;1328:18;:38::i;:::-;1321:45;;1114:259;;;;;:::o;241:27::-;;;;:::o;318:55::-;;;;:::o;2062:228::-;2140:4;647:5:5;;;;;;;;;;;633:19;;:10;:19;;;625:28;;;;;;;;382:15:4;;;;;;;;;;;381:16;373:25;;;;;;;;2188:16:1;;2160:25;2177:7;2160:12;;:16;;:25;;;;:::i;:::-;:44;2156:86;;;2226:5;2219:12;;;;2156:86;2259:24;2270:3;2275:7;2259:10;:24::i;:::-;2252:31;;404:1:4;2062:228:1;;;;:::o;849:259::-;647:5:5;;;;;;;;;;;633:19;;:10;:19;;;625:28;;;;;;;;924:8:1;:20;933:10;924:20;;;;;;;;;;;;;;;;914:6;:30;;906:39;;;;;;;;979:32;1004:6;979:8;:20;988:10;979:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;956:8;:20;965:10;956:20;;;;;;;;;;;;;;;:55;;;;1036:25;1054:6;1036:13;:11;:13::i;:::-;:17;;:25;;;;:::i;:::-;1021:12;:40;;;;1082:10;1077:24;;;1094:6;1077:24;;;;;;;;;;;;;;;;;;849:259;:::o;3310:403:7:-;3393:4;3405:13;3421:7;:19;3429:10;3421:19;;;;;;;;;;;;;;;:29;3441:8;3421:29;;;;;;;;;;;;;;;;3405:45;;3479:8;3460:16;:27;3456:164;;;3529:1;3497:7;:19;3505:10;3497:19;;;;;;;;;;;;;;;:29;3517:8;3497:29;;;;;;;;;;;;;;;:33;;;;3456:164;;;3583:30;3596:16;3583:8;:12;;:30;;;;:::i;:::-;3551:7;:19;3559:10;3551:19;;;;;;;;;;;;;;;:29;3571:8;3551:29;;;;;;;;;;;;;;;:62;;;;3456:164;3651:8;3630:61;;3639:10;3630:61;;;3661:7;:19;3669:10;3661:19;;;;;;;;;;;;;;;:29;3681:8;3661:29;;;;;;;;;;;;;;;;3630:61;;;;;;;;;;;;;;;;;;3704:4;3697:11;;3310:403;;;;;:::o;1184:107:0:-;1240:15;1270:8;:16;1279:6;1270:16;;;;;;;;;;;;;;;;1263:23;;1184:107;;;:::o;274:38:1:-;;;;;;;;;;;;;:::o;2536:84::-;647:5:5;;;;;;;;;;;633:19;;:10;:19;;;625:28;;;;;;;;2608:5:1;2588:17;;:25;;;;;;;;;;;;;;;;;;2536:84::o;1035:140:4:-;1094:4;647:5:5;;;;;;;;;;;633:19;;:10;:19;;;625:28;;;;;;;;382:15:4;;;;;;;;;;;381:16;373:25;;;;;;;;1124:4;1106:15;;:22;;;;;;;;;;;;;;;;;;1139:14;;;;;;;;;;1166:4;1159:11;;1035:140;:::o;572:271:1:-;647:5:5;;;;;;;;;;;633:19;;:10;:19;;;625:28;;;;;;;;382:15:4;;;;;;;;;;;381:16;373:25;;;;;;;;675:8:1;:16;684:6;675:16;;;;;;;;;;;;;;;;665:6;:26;;657:35;;;;;;;;722:28;743:6;722:8;:16;731:6;722:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;703:8;:16;712:6;703:16;;;;;;;;;;;;;;;:47;;;;775:25;793:6;775:13;:11;:13::i;:::-;:17;;:25;;;;:::i;:::-;760:12;:40;;;;821:6;816:20;;;829:6;816:20;;;;;;;;;;;;;;;;;;572:271;;:::o;237:20:5:-;;;;;;;;;;;;;:::o;205:30:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1690:366::-;1765:4;1785:6;1792:1;1785:8;;1780:248;1797:5;:12;;;;1795:1;:14;1780:248;;;1854:4;1834:24;;:5;1840:1;1834:8;;;;;;;;;;;;;;;;;;;;:16;;;;;;;;;;;;:24;;;1830:188;;;1890:36;1910:5;1916:1;1910:8;;;;;;;;;;;;;;;;;;;;:15;;;1890;1900:4;1890:9;:15::i;:::-;:19;;:36;;;;:::i;:::-;1882:5;:44;:67;;;;;1946:3;1930:5;1936:1;1930:8;;;;;;;;;;;;;;;;;;;;:13;;;:19;1882:67;1877:127;;;1980:5;1973:12;;;;1877:127;1830:188;1811:3;;;;;;;1780:248;;;2045:4;2038:11;;1690:366;;;;;;:::o;2297:233::-;2360:4;2383:17;;;;;;;;;;;:40;;;;2418:5;;;;;;;;;;;2404:19;;:10;:19;;;2383:40;2375:49;;;;;;;;2442:35;2458:10;2470:6;2442:15;:35::i;:::-;2434:44;;;;;;;;2496:27;2511:3;2516:6;2496:14;:27::i;:::-;2489:34;;2297:233;;;;:::o;2626:85::-;647:5:5;;;;;;;;;;;633:19;;:10;:19;;;625:28;;;;;;;;2700:4:1;2680:17;;:24;;;;;;;;;;;;;;;;;;2626:85::o;2618:262:7:-;2696:4;2740:46;2774:11;2740:7;:19;2748:10;2740:19;;;;;;;;;;;;;;;:29;2760:8;2740:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;2708:7;:19;2716:10;2708:19;;;;;;;;;;;;;;;:29;2728:8;2708:29;;;;;;;;;;;;;;;:78;;;;2818:8;2797:61;;2806:10;2797:61;;;2828:7;:19;2836:10;2828:19;;;;;;;;;;;;;;;:29;2848:8;2828:29;;;;;;;;;;;;;;;;2797:61;;;;;;;;;;;;;;;;;;2871:4;2864:11;;2618:262;;;;:::o;2067:126::-;2141:7;2163;:15;2171:6;2163:15;;;;;;;;;;;;;;;:25;2179:8;2163:25;;;;;;;;;;;;;;;;2156:32;;2067:126;;;;:::o;1380:304:1:-;1474:4;1491:26;;:::i;:::-;647:5:5;;;;;;;;;;;633:19;;:10;:19;;;625:28;;;;;;;;1543:11:1;1527:8;:13;;:27;;;;;1582:10;1564:8;:15;;:28;;;;;1621:3;1602:8;:16;;:22;;;;;;;;;;;1635:5;1646:8;1635:20;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;1635:20:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1673:4;1666:11;;1380:304;;;;;;:::o;826:174:5:-;647:5;;;;;;;;;;;633:19;;:10;:19;;;625:28;;;;;;;;922:1;902:22;;:8;:22;;;;894:31;;;;;;;;964:8;936:37;;957:5;;;;;;;;;;;936:37;;;;;;;;;;;;987:8;979:5;;:16;;;;;;;;;;;;;;;;;;826:174;:::o;483:26:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;562:445:7:-;644:4;679:1;664:17;;:3;:17;;;;656:26;;;;;;;;706:8;:15;715:5;706:15;;;;;;;;;;;;;;;;696:6;:25;;688:34;;;;;;;;746:7;:14;754:5;746:14;;;;;;;;;;;;;;;:26;761:10;746:26;;;;;;;;;;;;;;;;736:6;:36;;728:45;;;;;;;;798:27;818:6;798:8;:15;807:5;798:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;780:8;:15;789:5;780:15;;;;;;;;;;;;;;;:45;;;;847:25;865:6;847:8;:13;856:3;847:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;831:8;:13;840:3;831:13;;;;;;;;;;;;;;;:41;;;;907:38;938:6;907:7;:14;915:5;907:14;;;;;;;;;;;;;;;:26;922:10;907:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;878:7;:14;886:5;878:14;;;;;;;;;;;;;;;:26;893:10;878:26;;;;;;;;;;;;;;;:67;;;;973:3;957:28;;966:5;957:28;;;978:6;957:28;;;;;;;;;;;;;;;;;;998:4;991:11;;562:445;;;;;:::o;1007:129:6:-;1065:7;1080:9;1096:1;1092;:5;1080:17;;1115:1;1110;:6;;1103:14;;;;;;1130:1;1123:8;;1007:129;;;;;:::o;646:275:4:-;724:4;647:5:5;;;;;;;;;;;633:19;;:10;:19;;;625:28;;;;;;;;382:15:4;;;;;;;;;;;381:16;373:25;;;;;;;;752;769:7;752:12;;:16;;:25;;;;:::i;:::-;737:12;:40;;;;799:26;817:7;799:8;:13;808:3;799:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;783:8;:13;792:3;783:13;;;;;;;;;;;;;;;:42;;;;841:3;836:18;;;846:7;836:18;;;;;;;;;;;;;;;;;;886:3;865:34;;882:1;865:34;;;891:7;865:34;;;;;;;;;;;;;;;;;;912:4;905:11;;646:275;;;;:::o;835:110:6:-;893:7;920:1;915;:6;;908:14;;;;;;939:1;935;:5;928:12;;835:110;;;;:::o;598:384:0:-;661:4;696:1;681:17;;:3;:17;;;;673:26;;;;;;;;723:8;:20;732:10;723:20;;;;;;;;;;;;;;;;713:6;:30;;705:39;;;;;;;;837:32;862:6;837:8;:20;846:10;837:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;814:8;:20;823:10;814:20;;;;;;;;;;;;;;;:55;;;;891:25;909:6;891:8;:13;900:3;891:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;875:8;:13;884:3;875:13;;;;;;;;;;;;;;;:41;;;;948:3;927:33;;936:10;927:33;;;953:6;927:33;;;;;;;;;;;;;;;;;;973:4;966:11;;598:384;;;;:::o;81:2633:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://38fbe015c4b960dd1cb83b1d4d2859ed67168724e3a4d54b3861b3d9d0d45bca
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.