ETH Price: $3,803.39 (+3.87%)
Gas: 7 Gwei

Token

QTAAR.network (QTAAR)
 

Overview

Max Total Supply

250,000 QTAAR

Holders

6

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
OKX 3
Balance
5,000 QTAAR

Value
$0.00
0xa7efae728d2936e78bda97dc267687568dd593f3
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
QTAAR

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-08-15
*/

pragma solidity ^0.4.18;


/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 */
contract ERC20Basic {
  uint256 public totalSupply;
  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 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.
   */
  function Ownable() 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));
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}



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

  mapping(address => uint256) balances;

  /**
  * @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);
    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 ERC20 interface
 */
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 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);
    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;
    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);
    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);
    }
    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

}





/**
 * @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) internal returns (bool) {
    totalSupply = totalSupply.add(_amount);
    balances[_to] = balances[_to].add(_amount);
    Mint(_to, _amount);
    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;
    MintFinished();
    return true;
  }
  */
}





/**
 * @title Contracts that should not own Ether
 * @dev This tries to block incoming ether to prevent accidental loss of Ether. Should Ether end up
 * in the contract, it will allow the owner to reclaim this ether.
 * @notice Ether can still be send to this contract by:
 * calling functions labeled `payable`
 * `selfdestruct(contract_address)`
 * mining directly to the contract address
*/
contract HasNoEther is Ownable {

  /**
  * @dev Constructor that rejects incoming Ether
  * @dev The `payable` flag is added so we can access `msg.value` without compiler warning. If we
  * leave out payable, then Solidity will allow inheriting contracts to implement a payable
  * constructor. By doing it this way we prevent a payable constructor from working. Alternatively
  * we could use assembly to access msg.value.
  */
  function HasNoEther() public payable {
    require(msg.value == 0);
  }

  /**
   * @dev Disallows direct send by settings a default function without the `payable` flag.
   */
  function() external {
  }

  /**
   * @dev Transfer all Ether held by the contract to the owner.
   */
  function reclaimEther() external onlyOwner {
    assert(owner.send(this.balance));
  }
}


///* Remix format
//import "./MintableToken.sol";
//import "./HasNoEther.sol";


contract QTAAR is MintableToken, HasNoEther 
{
    // Using libraries 
    using SafeMath for uint;

    //////////////////////////////////////////////////
    /// State Variables for the QTAAR token contract
    //////////////////////////////////////////////////
    
    //////////////////////
    // ERC20 token state
    //////////////////////
    
    /**
    These state vars are handled in the OpenZeppelin libraries;
    we display them here for the developer's information.
    ***
    // ERC20Basic - Store account balances
    mapping (address => uint256) public balances;

    // StandardToken - Owner of account approves transfer of an amount to another account
    mapping (address => mapping (address => uint256)) public allowed;

    // 
    uint256 public totalSupply;
    */
    
    //////////////////////
    // Human token state
    //////////////////////
    string public constant name = "QTAAR.network";
    string public constant symbol = "QTAAR";
    uint8 public constant  decimals = 18;

    ///////////////////////////////////////////////////////////
    // State vars for custom staking and budget functionality
    ///////////////////////////////////////////////////////////

    // Owner last minted time
    uint public ownerTimeLastMinted;
    // Owner minted tokens per second
    uint public ownerMintRate;

    /// Stake minting
    // Minted tokens per second for all stakers
    uint private globalMintRate;
    // Total tokens currently staked
    uint public totalQTAARStaked; 

    // struct that will hold user stake
    struct TokenStakeData {
        uint initialStakeBalance;
        uint initialStakeTime;
        uint initialStakePercentage;
        address stakeSplitAddress;
    }
    
    // Track all tokens staked
    mapping (address => TokenStakeData) public stakeBalances;

    // Fire a loggable event when tokens are staked
    event Stake(address indexed staker, address indexed stakeSplitAddress, uint256 value);

    // Fire a loggable event when staked tokens are vested
    event Vest(address indexed vester, address indexed stakeSplitAddress, uint256 stakedAmount, uint256 stakingGains);

    //////////////////////////////////////////////////
    /// Begin QTAAR token functionality
    //////////////////////////////////////////////////

    /// @dev QTAAR token constructor
    function QTAAR() public
    {
        // Define owner
        owner = msg.sender;
        // Define initial owner supply. (ether here is used only to get the decimals right)
        uint _initOwnerSupply = 250000 ether;
        // One-time bulk mint given to owner
        bool _success = mint(msg.sender, _initOwnerSupply);
        // Abort if initial minting failed for whatever reason
        require(_success);

        ////////////////////////////////////
        // Set up state minting variables
        ////////////////////////////////////

        // Set last minted to current block.timestamp ('now')
        ownerTimeLastMinted = now;
        
        // 4100 minted tokens per day, 86400 seconds in a day
        ownerMintRate = calculateFraction(4100, 86400, decimals);
        
        // 5,000,000 targeted minted tokens per year via staking; 31,536,000 seconds per year
        globalMintRate = calculateFraction(5000000, 31536000, decimals);
    }

    /// @dev staking function which allows users to stake an amount of tokens to gain interest for up to 10 days 
    function stakeQTAAR(uint _stakeAmount) external
    {
        // Require that tokens are staked successfully
        require(stakeTokens(_stakeAmount));
    }

    /// @dev staking function which allows users to split the interest earned with another address
    function stakeQTAARSplit(uint _stakeAmount, address _stakeSplitAddress) external
    {
        // Require that a QTAAR split actually be split with an address
        require(_stakeSplitAddress > 0);
        // Store split address into stake mapping
        stakeBalances[msg.sender].stakeSplitAddress = _stakeSplitAddress;
        // Require that tokens are staked successfully
        require(stakeTokens(_stakeAmount));

    }

    /// @dev allows users to reclaim any staked tokens
    /// @return bool on success
    function claimQTAAR() external returns (bool success)
    {
        /// Sanity checks: 
        // require that there was some amount vested
        require(stakeBalances[msg.sender].initialStakeBalance > 0);
        // require that time has elapsed
        require(now > stakeBalances[msg.sender].initialStakeTime);

        // Calculate the time elapsed since the tokens were originally staked
        uint _timePassedSinceStake = now.sub(stakeBalances[msg.sender].initialStakeTime);

        // Calculate tokens to mint
        uint _tokensToMint = calculateStakeGains(_timePassedSinceStake);

        // Add the original stake back to the user's balance
        balances[msg.sender] += stakeBalances[msg.sender].initialStakeBalance;
        
        // Subtract stake balance from totalQTAARStaked
        totalQTAARStaked -= stakeBalances[msg.sender].initialStakeBalance;
        
        // Mint the new tokens; the new tokens are added to the user's balance
        if (stakeBalances[msg.sender].stakeSplitAddress > 0) 
        {
            // Splitting stake, so mint half to sender and half to stakeSplitAddress
            mint(msg.sender, _tokensToMint.div(2));
            mint(stakeBalances[msg.sender].stakeSplitAddress, _tokensToMint.div(2));
        } else {
            // Not spliting stake; mint all new tokens and give them to msg.sender 
            mint(msg.sender, _tokensToMint);
        }
        
        // Fire an event to tell the world of the newly vested tokens
        Vest(msg.sender, stakeBalances[msg.sender].stakeSplitAddress, stakeBalances[msg.sender].initialStakeBalance, _tokensToMint);

        // Clear out stored data from mapping
        stakeBalances[msg.sender].initialStakeBalance = 0;
        stakeBalances[msg.sender].initialStakeTime = 0;
        stakeBalances[msg.sender].initialStakePercentage = 0;
        stakeBalances[msg.sender].stakeSplitAddress = 0;

        return true;
    }

    /// @dev Allows user to check their staked balance
    function getStakedBalance() view external returns (uint stakedBalance) 
    {
        return stakeBalances[msg.sender].initialStakeBalance;
    }

    /// @dev allows contract owner to claim their mint
    function ownerClaim() external onlyOwner
    {
        // Sanity check: ensure that we didn't travel back in time
        require(now > ownerTimeLastMinted);
        
        uint _timePassedSinceLastMint;
        uint _tokenMintCount;
        bool _mintingSuccess;

        // Calculate the number of seconds that have passed since the owner last took a claim
        _timePassedSinceLastMint = now.sub(ownerTimeLastMinted);

        // Sanity check: ensure that some time has passed since the owner last claimed
        assert(_timePassedSinceLastMint > 0);

        // Determine the token mint amount, determined from the number of seconds passed and the ownerMintRate
        _tokenMintCount = calculateMintTotal(_timePassedSinceLastMint, ownerMintRate);

        // Mint the owner's tokens; this also increases totalSupply
        _mintingSuccess = mint(msg.sender, _tokenMintCount);

        // Sanity check: ensure that the minting was successful
        require(_mintingSuccess);
        
        // New minting was a success! Set last time minted to current block.timestamp (now)
        ownerTimeLastMinted = now;
    }

    /// @dev stake function reduces the user's total available balance. totalSupply is unaffected
    /// @param _value determines how many tokens a user wants to stake
    function stakeTokens(uint256 _value) private returns (bool success)
    {
        /// Sanity Checks:
        // You can only stake as many tokens as you have
        require(_value <= balances[msg.sender]);
        // You can only stake tokens if you have not already staked tokens
        require(stakeBalances[msg.sender].initialStakeBalance == 0);

        // Subtract stake amount from regular token balance
        balances[msg.sender] = balances[msg.sender].sub(_value);

        // Add stake amount to staked balance
        stakeBalances[msg.sender].initialStakeBalance = _value;

        // Increment the global staked tokens value
        totalQTAARStaked += _value;

        /// Determine percentage of global stake
        stakeBalances[msg.sender].initialStakePercentage = calculateFraction(_value, totalQTAARStaked, decimals);
        
        // Save the time that the stake started
        stakeBalances[msg.sender].initialStakeTime = now;

        // Fire an event to tell the world of the newly staked tokens
        Stake(msg.sender, stakeBalances[msg.sender].stakeSplitAddress, _value);

        return true;
    }

    /// @dev Helper function to claimStake that modularizes the minting via staking calculation 
    function calculateStakeGains(uint _timePassedSinceStake) view private returns (uint mintTotal)
    {
        // Store seconds in a day (need it in variable to use SafeMath)
        uint _secondsPerDay = 86400;
        uint _finalStakePercentage;     // store our stake percentage at the time of stake claim
        uint _stakePercentageAverage;   // store our calculated average minting rate ((initial+final) / 2)
        uint _finalMintRate;            // store our calculated final mint rate (in QTAAR-per-second)
        uint _tokensToMint = 0;         // store number of new tokens to be minted
        
        // Determine the amount to be newly minted upon vesting, if any
        if (_timePassedSinceStake > _secondsPerDay) {
            
            /// We've passed the minimum staking time; calculate minting rate average ((initialRate + finalRate) / 2)
            
            // First, calculate our final stake percentage based upon the total amount of QTAAR staked
            _finalStakePercentage = calculateFraction(stakeBalances[msg.sender].initialStakeBalance, totalQTAARStaked, decimals);

            // Second, calculate average of initial and final stake percentage
            _stakePercentageAverage = calculateFraction((stakeBalances[msg.sender].initialStakePercentage.add(_finalStakePercentage)), 2, 0);

            // Finally, calculate our final mint rate (in QTAAR-per-second)
            _finalMintRate = globalMintRate.mul(_stakePercentageAverage); 
            _finalMintRate = _finalMintRate.div(1 ether);
            
            // Tokens were staked for enough time to mint new tokens; determine how many
            if (_timePassedSinceStake > _secondsPerDay.mul(10)) {
                // Tokens were staked for the maximum amount of time (10 days)
                _tokensToMint = calculateMintTotal(_secondsPerDay.mul(10), _finalMintRate);
            } else {
                // Tokens were staked for a mintable amount of time, but less than the 10-day max
                _tokensToMint = calculateMintTotal(_timePassedSinceStake, _finalMintRate);
            }
        } 
        
        // Return the amount of new tokens to be minted
        return _tokensToMint;

    }

    /// @dev calculateFraction allows us to better handle the Solidity ugliness of not having decimals as a native type 
    /// @param _numerator is the top part of the fraction we are calculating
    /// @param _denominator is the bottom part of the fraction we are calculating
    /// @param _precision tells the function how many significant digits to calculate out to
    /// @return quotient returns the result of our fraction calculation
    function calculateFraction(uint _numerator, uint _denominator, uint _precision) pure private returns(uint quotient) 
    {
        // Take passed value and expand it to the required precision
        _numerator = _numerator.mul(10 ** (_precision + 1));
        // handle last-digit rounding
        uint _quotient = ((_numerator.div(_denominator)) + 5) / 10;
        return (_quotient);
    }

    /// @dev Determines mint total based upon how many seconds have passed
    /// @param _timeInSeconds takes the time that has elapsed since the last minting
    /// @return uint with the calculated number of new tokens to mint
    function calculateMintTotal(uint _timeInSeconds, uint _mintRate) pure private returns(uint mintAmount)
    {
        // Calculates the amount of tokens to mint based upon the number of seconds passed
        return(_timeInSeconds.mul(_mintRate));
    }

}

Contract Security Audit

Contract ABI

[{"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":"_stakeAmount","type":"uint256"},{"name":"_stakeSplitAddress","type":"address"}],"name":"stakeQTAARSplit","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":true,"inputs":[{"name":"","type":"address"}],"name":"stakeBalances","outputs":[{"name":"initialStakeBalance","type":"uint256"},{"name":"initialStakeTime","type":"uint256"},{"name":"initialStakePercentage","type":"uint256"},{"name":"stakeSplitAddress","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"ownerClaim","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":"getStakedBalance","outputs":[{"name":"stakedBalance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_stakeAmount","type":"uint256"}],"name":"stakeQTAAR","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":false,"inputs":[],"name":"reclaimEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ownerMintRate","outputs":[{"name":"","type":"uint256"}],"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":true,"inputs":[],"name":"ownerTimeLastMinted","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalQTAARStaked","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimQTAAR","outputs":[{"name":"success","type":"bool"}],"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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":false,"stateMutability":"nonpayable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"staker","type":"address"},{"indexed":true,"name":"stakeSplitAddress","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Stake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"vester","type":"address"},{"indexed":true,"name":"stakeSplitAddress","type":"address"},{"indexed":false,"name":"stakedAmount","type":"uint256"},{"indexed":false,"name":"stakingGains","type":"uint256"}],"name":"Vest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","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"}]

606060405234156200001057600080fd5b60008033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000341415156200006457600080fd5b33600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506934f086f3b33b684000009150620000d233836200015264010000000002620021ed176401000000009004565b9050801515620000e157600080fd5b426004819055506200011261100462015180601260ff16620002e264010000000002620024d9176401000000009004565b60058190555062000144624c4b406301e13380601260ff16620002e264010000000002620024d9176401000000009004565b6006819055505050620003ca565b600062000179826000546200035064010000000002620021b2179091906401000000009004565b600081905550620001e182600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200035064010000000002620021b2179091906401000000009004565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000806200030e60018401600a0a866200036f6401000000000262002526179091906401000000009004565b9450600a6005620003378688620003ae64010000000002620024be179091906401000000009004565b018115156200034257fe5b049050809150509392505050565b60008082840190508381101515156200036557fe5b8091505092915050565b6000806000841415620003865760009150620003a7565b82840290508284828115156200039857fe5b04141515620003a357fe5b8091505b5092915050565b6000808284811515620003bd57fe5b0490508091505092915050565b61258d80620003da6000396000f300606060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610140578063095ea7b3146101ce57806316d5f0281461022857806318160ddd1461026a57806323b872dd14610293578063313ce5671461030c5780633b317dab1461033b5780634dbe5889146103c957806366188463146103de57806370a082311461043857806376965867146104855780637aaa8338146104ae5780638da5cb5b146104d157806395d89b41146105265780639f727c27146105b4578063a0d8b4e9146105c9578063a9059cbb146105f2578063ac1856441461064c578063afb2999d14610675578063b5e2416c1461069e578063d73dd623146106cb578063dd62ed3e14610725578063f2fde38b14610791575b341561013e57600080fd5b005b341561014b57600080fd5b6101536107ca565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610193578082015181840152602081019050610178565b50505050905090810190601f1680156101c05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101d957600080fd5b61020e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610803565b604051808215151515815260200191505060405180910390f35b341561023357600080fd5b610268600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506108f5565b005b341561027557600080fd5b61027d6109b3565b6040518082815260200191505060405180910390f35b341561029e57600080fd5b6102f2600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506109b9565b604051808215151515815260200191505060405180910390f35b341561031757600080fd5b61031f610d78565b604051808260ff1660ff16815260200191505060405180910390f35b341561034657600080fd5b610372600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d7d565b604051808581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390f35b34156103d457600080fd5b6103dc610dcd565b005b34156103e957600080fd5b61041e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610e93565b604051808215151515815260200191505060405180910390f35b341561044357600080fd5b61046f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611124565b6040518082815260200191505060405180910390f35b341561049057600080fd5b61049861116d565b6040518082815260200191505060405180910390f35b34156104b957600080fd5b6104cf60048080359060200190919050506111b7565b005b34156104dc57600080fd5b6104e46111ce565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561053157600080fd5b6105396111f4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561057957808201518184015260208101905061055e565b50505050905090810190601f1680156105a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156105bf57600080fd5b6105c761122d565b005b34156105d457600080fd5b6105dc611301565b6040518082815260200191505060405180910390f35b34156105fd57600080fd5b610632600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611307565b604051808215151515815260200191505060405180910390f35b341561065757600080fd5b61065f61152b565b6040518082815260200191505060405180910390f35b341561068057600080fd5b610688611531565b6040518082815260200191505060405180910390f35b34156106a957600080fd5b6106b1611537565b604051808215151515815260200191505060405180910390f35b34156106d657600080fd5b61070b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611ac3565b604051808215151515815260200191505060405180910390f35b341561073057600080fd5b61077b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611cbf565b6040518082815260200191505060405180910390f35b341561079c57600080fd5b6107c8600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611d46565b005b6040805190810160405280600d81526020017f51544141522e6e6574776f726b0000000000000000000000000000000000000081525081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008173ffffffffffffffffffffffffffffffffffffffff1611151561091a57600080fd5b80600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109a482611e9e565b15156109af57600080fd5b5050565b60005481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156109f657600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610a4457600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610acf57600080fd5b610b2182600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461219990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610bb682600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c8882600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461219990919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b601281565b60086020528060005260406000206000915090508060000154908060010154908060020154908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b6000806000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e2e57600080fd5b60045442111515610e3e57600080fd5b610e536004544261219990919063ffffffff16565b9250600083111515610e6157fe5b610e6d836005546121d0565b9150610e7933836121ed565b9050801515610e8757600080fd5b42600481905550505050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610fa4576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611038565b610fb7838261219990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154905090565b6111c081611e9e565b15156111cb57600080fd5b50565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600581526020017f515441415200000000000000000000000000000000000000000000000000000081525081565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561128957600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015156112ff57fe5b565b60055481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561134457600080fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561139257600080fd5b6113e482600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461219990919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061147982600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60045481565b60075481565b600080600080600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411151561158c57600080fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154421115156115dc57600080fd5b611631600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101544261219990919063ffffffff16565b915061163c8261235d565b9050600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546007600082825403925050819055506000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161115611843576117bd336117b86002846124be90919063ffffffff16565b6121ed565b5061183d600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166118386002846124be90919063ffffffff16565b6121ed565b5061184f565b61184d33826121ed565b505b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fd9c1851563fe01face9bb04f31b9adad0fb3db6ed6f78845f9c04eadedb494d2600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015484604051808381526020018281526020019250505060405180910390a36000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055506000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019250505090565b6000611b5482600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b290919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611da257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611dde57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611eee57600080fd5b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515611f3f57600080fd5b611f9182600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461219990919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508160076000828254019250508190555061203c82600754601260ff166124d9565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002018190555042600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f99039fcf0a98f484616c5196ee8b2ecfa971babf0b519848289ea4db381f85f7846040518082815260200191505060405180910390a360019050919050565b60008282111515156121a757fe5b818303905092915050565b60008082840190508381101515156121c657fe5b8091505092915050565b60006121e5828461252690919063ffffffff16565b905092915050565b6000612204826000546121b290919063ffffffff16565b60008190555061225c82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008060008060008062015180945060009050848711156124b1576123cb600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754601260ff166124d9565b935061242e61242585600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546121b290919063ffffffff16565b600260006124d9565b92506124458360065461252690919063ffffffff16565b9150612462670de0b6b3a7640000836124be90919063ffffffff16565b9150612478600a8661252690919063ffffffff16565b8711156124a35761249c612496600a8761252690919063ffffffff16565b836121d0565b90506124b0565b6124ad87836121d0565b90505b5b8095505050505050919050565b60008082848115156124cc57fe5b0490508091505092915050565b6000806124f560018401600a0a8661252690919063ffffffff16565b9450600a600561250e86886124be90919063ffffffff16565b0181151561251857fe5b049050809150509392505050565b600080600084141561253b576000915061255a565b828402905082848281151561254c57fe5b0414151561255657fe5b8091505b50929150505600a165627a7a723058204e81e6b744e597a2382981c1c785cf64b592cb5fe67d026b6bb269c944122af40029

Deployed Bytecode

0x606060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610140578063095ea7b3146101ce57806316d5f0281461022857806318160ddd1461026a57806323b872dd14610293578063313ce5671461030c5780633b317dab1461033b5780634dbe5889146103c957806366188463146103de57806370a082311461043857806376965867146104855780637aaa8338146104ae5780638da5cb5b146104d157806395d89b41146105265780639f727c27146105b4578063a0d8b4e9146105c9578063a9059cbb146105f2578063ac1856441461064c578063afb2999d14610675578063b5e2416c1461069e578063d73dd623146106cb578063dd62ed3e14610725578063f2fde38b14610791575b341561013e57600080fd5b005b341561014b57600080fd5b6101536107ca565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610193578082015181840152602081019050610178565b50505050905090810190601f1680156101c05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101d957600080fd5b61020e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610803565b604051808215151515815260200191505060405180910390f35b341561023357600080fd5b610268600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506108f5565b005b341561027557600080fd5b61027d6109b3565b6040518082815260200191505060405180910390f35b341561029e57600080fd5b6102f2600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506109b9565b604051808215151515815260200191505060405180910390f35b341561031757600080fd5b61031f610d78565b604051808260ff1660ff16815260200191505060405180910390f35b341561034657600080fd5b610372600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d7d565b604051808581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390f35b34156103d457600080fd5b6103dc610dcd565b005b34156103e957600080fd5b61041e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610e93565b604051808215151515815260200191505060405180910390f35b341561044357600080fd5b61046f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611124565b6040518082815260200191505060405180910390f35b341561049057600080fd5b61049861116d565b6040518082815260200191505060405180910390f35b34156104b957600080fd5b6104cf60048080359060200190919050506111b7565b005b34156104dc57600080fd5b6104e46111ce565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561053157600080fd5b6105396111f4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561057957808201518184015260208101905061055e565b50505050905090810190601f1680156105a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156105bf57600080fd5b6105c761122d565b005b34156105d457600080fd5b6105dc611301565b6040518082815260200191505060405180910390f35b34156105fd57600080fd5b610632600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611307565b604051808215151515815260200191505060405180910390f35b341561065757600080fd5b61065f61152b565b6040518082815260200191505060405180910390f35b341561068057600080fd5b610688611531565b6040518082815260200191505060405180910390f35b34156106a957600080fd5b6106b1611537565b604051808215151515815260200191505060405180910390f35b34156106d657600080fd5b61070b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611ac3565b604051808215151515815260200191505060405180910390f35b341561073057600080fd5b61077b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611cbf565b6040518082815260200191505060405180910390f35b341561079c57600080fd5b6107c8600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611d46565b005b6040805190810160405280600d81526020017f51544141522e6e6574776f726b0000000000000000000000000000000000000081525081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008173ffffffffffffffffffffffffffffffffffffffff1611151561091a57600080fd5b80600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109a482611e9e565b15156109af57600080fd5b5050565b60005481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156109f657600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610a4457600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610acf57600080fd5b610b2182600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461219990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610bb682600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c8882600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461219990919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b601281565b60086020528060005260406000206000915090508060000154908060010154908060020154908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b6000806000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e2e57600080fd5b60045442111515610e3e57600080fd5b610e536004544261219990919063ffffffff16565b9250600083111515610e6157fe5b610e6d836005546121d0565b9150610e7933836121ed565b9050801515610e8757600080fd5b42600481905550505050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610fa4576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611038565b610fb7838261219990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154905090565b6111c081611e9e565b15156111cb57600080fd5b50565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600581526020017f515441415200000000000000000000000000000000000000000000000000000081525081565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561128957600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015156112ff57fe5b565b60055481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561134457600080fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561139257600080fd5b6113e482600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461219990919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061147982600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60045481565b60075481565b600080600080600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411151561158c57600080fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154421115156115dc57600080fd5b611631600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101544261219990919063ffffffff16565b915061163c8261235d565b9050600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546007600082825403925050819055506000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161115611843576117bd336117b86002846124be90919063ffffffff16565b6121ed565b5061183d600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166118386002846124be90919063ffffffff16565b6121ed565b5061184f565b61184d33826121ed565b505b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fd9c1851563fe01face9bb04f31b9adad0fb3db6ed6f78845f9c04eadedb494d2600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015484604051808381526020018281526020019250505060405180910390a36000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055506000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019250505090565b6000611b5482600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b290919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611da257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611dde57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611eee57600080fd5b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515611f3f57600080fd5b611f9182600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461219990919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508160076000828254019250508190555061203c82600754601260ff166124d9565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002018190555042600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f99039fcf0a98f484616c5196ee8b2ecfa971babf0b519848289ea4db381f85f7846040518082815260200191505060405180910390a360019050919050565b60008282111515156121a757fe5b818303905092915050565b60008082840190508381101515156121c657fe5b8091505092915050565b60006121e5828461252690919063ffffffff16565b905092915050565b6000612204826000546121b290919063ffffffff16565b60008190555061225c82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008060008060008062015180945060009050848711156124b1576123cb600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754601260ff166124d9565b935061242e61242585600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546121b290919063ffffffff16565b600260006124d9565b92506124458360065461252690919063ffffffff16565b9150612462670de0b6b3a7640000836124be90919063ffffffff16565b9150612478600a8661252690919063ffffffff16565b8711156124a35761249c612496600a8761252690919063ffffffff16565b836121d0565b90506124b0565b6124ad87836121d0565b90505b5b8095505050505050919050565b60008082848115156124cc57fe5b0490508091505092915050565b6000806124f560018401600a0a8661252690919063ffffffff16565b9450600a600561250e86886124be90919063ffffffff16565b0181151561251857fe5b049050809150509392505050565b600080600084141561253b576000915061255a565b828402905082848281151561254c57fe5b0414151561255657fe5b8091505b50929150505600a165627a7a723058204e81e6b744e597a2382981c1c785cf64b592cb5fe67d026b6bb269c944122af40029

Deployed Bytecode Sourcemap

9986:12798:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10897:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5260:187:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13782:438;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;131:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4248:449;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10995:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11815:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16569:1155;;;;;;;;;;;;;;7106:407;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3207:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16357:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13512:162;;;;;;;;;;;;;;;;;;;;;;;;;;599:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10949:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9803:88:0;;;;;;;;;;;;;;11343:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2610:388;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11266:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11521:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14317:1976;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6371:261;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5774:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1223:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;10897:45;;;;;;;;;;;;;;;;;;;;:::o;5260:187::-;5327:4;5372:6;5340:7;:19;5348:10;5340:19;;;;;;;;;;;;;;;:29;5360:8;5340:29;;;;;;;;;;;;;;;:38;;;;5406:8;5385:38;;5394:10;5385:38;;;5416:6;5385:38;;;;;;;;;;;;;;;;;;5437:4;5430:11;;5260:187;;;;:::o;13782:438::-;13981:1;13960:18;:22;;;13952:31;;;;;;;;14091:18;14045:13;:25;14059:10;14045:25;;;;;;;;;;;;;;;:43;;;:64;;;;;;;;;;;;;;;;;;14184:25;14196:12;14184:11;:25::i;:::-;14176:34;;;;;;;;13782:438;;:::o;131:26::-;;;;:::o;4248:449::-;4330:4;4366:1;4351:17;;:3;:17;;;;4343:26;;;;;;;;4394:8;:15;4403:5;4394:15;;;;;;;;;;;;;;;;4384:6;:25;;4376:34;;;;;;;;4435:7;:14;4443:5;4435:14;;;;;;;;;;;;;;;:26;4450:10;4435:26;;;;;;;;;;;;;;;;4425:6;:36;;4417:45;;;;;;;;4489:27;4509:6;4489:8;:15;4498:5;4489:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;4471:8;:15;4480:5;4471:15;;;;;;;;;;;;;;;:45;;;;4539:25;4557:6;4539:8;:13;4548:3;4539:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;4523:8;:13;4532:3;4523:13;;;;;;;;;;;;;;;:41;;;;4600:38;4631:6;4600:7;:14;4608:5;4600:14;;;;;;;;;;;;;;;:26;4615:10;4600:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;4571:7;:14;4579:5;4571:14;;;;;;;;;;;;;;;:26;4586:10;4571:26;;;;;;;;;;;;;;;:67;;;;4661:3;4645:28;;4654:5;4645:28;;;4666:6;4645:28;;;;;;;;;;;;;;;;;;4687:4;4680:11;;4248:449;;;;;:::o;10995:36::-;11029:2;10995:36;:::o;11815:56::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16569:1155::-;16749:29;16789:20;16820;1034:5;;;;;;;;;;;1020:19;;:10;:19;;;1012:28;;;;;;;;16708:19;;16702:3;:25;16694:34;;;;;;;;16975:28;16983:19;;16975:3;:7;;:28;;;;:::i;:::-;16948:55;;17138:1;17111:24;:28;17104:36;;;;;;17283:59;17302:24;17328:13;;17283:18;:59::i;:::-;17265:77;;17442:33;17447:10;17459:15;17442:4;:33::i;:::-;17424:51;;17561:15;17553:24;;;;;;;;17713:3;17691:19;:25;;;;16569:1155;;;:::o;7106:407::-;7189:4;7202:13;7218:7;:19;7226:10;7218:19;;;;;;;;;;;;;;;:29;7238:8;7218:29;;;;;;;;;;;;;;;;7202:45;;7277:8;7258:16;:27;7254:168;;;7328:1;7296:7;:19;7304:10;7296:19;;;;;;;;;;;;;;;:29;7316:8;7296:29;;;;;;;;;;;;;;;:33;;;;7254:168;;;7384:30;7397:16;7384:8;:12;;:30;;;;:::i;:::-;7352:7;:19;7360:10;7352:19;;;;;;;;;;;;;;;:29;7372:8;7352:29;;;;;;;;;;;;;;;:62;;;;7254:168;7449:8;7428:61;;7437:10;7428:61;;;7459:7;:19;7467:10;7459:19;;;;;;;;;;;;;;;:29;7479:8;7459:29;;;;;;;;;;;;;;;;7428:61;;;;;;;;;;;;;;;;;;7503:4;7496:11;;7106:407;;;;;:::o;3207:109::-;3263:15;3294:8;:16;3303:6;3294:16;;;;;;;;;;;;;;;;3287:23;;3207:109;;;:::o;16357:148::-;16408:18;16452:13;:25;16466:10;16452:25;;;;;;;;;;;;;;;:45;;;16445:52;;16357:148;:::o;13512:162::-;13640:25;13652:12;13640:11;:25::i;:::-;13632:34;;;;;;;;13512:162;:::o;599:20::-;;;;;;;;;;;;;:::o;10949:39::-;;;;;;;;;;;;;;;;;;;;:::o;9803:88::-;1034:5;;;;;;;;;;;1020:19;;:10;:19;;;1012:28;;;;;;;;9860:5;;;;;;;;;;;:10;;:24;9871:4;:12;;;9860:24;;;;;;;;;;;;;;;;;;;;;;;9853:32;;;;;;9803:88::o;11343:25::-;;;;:::o;2610:388::-;2673:4;2709:1;2694:17;;:3;:17;;;;2686:26;;;;;;;;2737:8;:20;2746:10;2737:20;;;;;;;;;;;;;;;;2727:6;:30;;2719:39;;;;;;;;2854:32;2879:6;2854:8;:20;2863:10;2854:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;2831:8;:20;2840:10;2831:20;;;;;;;;;;;;;;;:55;;;;2909:25;2927:6;2909:8;:13;2918:3;2909:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;2893:8;:13;2902:3;2893:13;;;;;;;;;;;;;;;:41;;;;2962:3;2941:33;;2950:10;2941:33;;;2967:6;2941:33;;;;;;;;;;;;;;;;;;2988:4;2981:11;;2610:388;;;;:::o;11266:31::-;;;;:::o;11521:28::-;;;;:::o;14317:1976::-;14357:12;14730:26;14860:18;14526:1;14478:13;:25;14492:10;14478:25;;;;;;;;;;;;;;;:45;;;:49;14470:58;;;;;;;;14595:13;:25;14609:10;14595:25;;;;;;;;;;;;;;;:42;;;14589:3;:48;14581:57;;;;;;;;14759:51;14767:13;:25;14781:10;14767:25;;;;;;;;;;;;;;;:42;;;14759:3;:7;;:51;;;;:::i;:::-;14730:80;;14881:42;14901:21;14881:19;:42::i;:::-;14860:63;;15022:13;:25;15036:10;15022:25;;;;;;;;;;;;;;;:45;;;14998:8;:20;15007:10;14998:20;;;;;;;;;;;;;;;;:69;;;;;;;;;;;15165:13;:25;15179:10;15165:25;;;;;;;;;;;;;;;:45;;;15145:16;;:65;;;;;;;;;;;15361:1;15315:13;:25;15329:10;15315:25;;;;;;;;;;;;;;;:43;;;;;;;;;;;;:47;;;15311:449;;;15475:38;15480:10;15492:20;15510:1;15492:13;:17;;:20;;;;:::i;:::-;15475:4;:38::i;:::-;;15528:71;15533:13;:25;15547:10;15533:25;;;;;;;;;;;;;;;:43;;;;;;;;;;;;15578:20;15596:1;15578:13;:17;;:20;;;;:::i;:::-;15528:4;:71::i;:::-;;15311:449;;;15717:31;15722:10;15734:13;15717:4;:31::i;:::-;;15311:449;15868:13;:25;15882:10;15868:25;;;;;;;;;;;;;;;:43;;;;;;;;;;;;15851:123;;15856:10;15851:123;;;15913:13;:25;15927:10;15913:25;;;;;;;;;;;;;;;:45;;;15960:13;15851:123;;;;;;;;;;;;;;;;;;;;;;;;16082:1;16034:13;:25;16048:10;16034:25;;;;;;;;;;;;;;;:45;;:49;;;;16139:1;16094:13;:25;16108:10;16094:25;;;;;;;;;;;;;;;:42;;:46;;;;16202:1;16151:13;:25;16165:10;16151:25;;;;;;;;;;;;;;;:48;;:52;;;;16260:1;16214:13;:25;16228:10;16214:25;;;;;;;;;;;;;;;:43;;;:47;;;;;;;;;;;;;;;;;;16281:4;16274:11;;14317:1976;;;:::o;6371:261::-;6449:4;6494:46;6528:11;6494:7;:19;6502:10;6494:19;;;;;;;;;;;;;;;:29;6514:8;6494:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;6462:7;:19;6470:10;6462:19;;;;;;;;;;;;;;;:29;6482:8;6462:29;;;;;;;;;;;;;;;:78;;;;6568:8;6547:61;;6556:10;6547:61;;;6578:7;:19;6586:10;6578:19;;;;;;;;;;;;;;;:29;6598:8;6578:29;;;;;;;;;;;;;;;;6547:61;;;;;;;;;;;;;;;;;;6622:4;6615:11;;6371:261;;;;:::o;5774:128::-;5848:7;5871;:15;5879:6;5871:15;;;;;;;;;;;;;;;:25;5887:8;5871:25;;;;;;;;;;;;;;;;5864:32;;5774:128;;;;:::o;1223:173::-;1034:5;;;;;;;;;;;1020:19;;:10;:19;;;1012:28;;;;;;;;1320:1;1300:22;;:8;:22;;;;1292:31;;;;;;;;1358:8;1330:37;;1351:5;;;;;;;;;;;1330:37;;;;;;;;;;;;1382:8;1374:5;;:16;;;;;;;;;;;;;;;;;;1223:173;:::o;17903:1161::-;17957:12;18091:8;:20;18100:10;18091:20;;;;;;;;;;;;;;;;18081:6;:30;;18073:39;;;;;;;;18256:1;18207:13;:25;18221:10;18207:25;;;;;;;;;;;;;;;:45;;;:50;18199:59;;;;;;;;18355:32;18380:6;18355:8;:20;18364:10;18355:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;18332:8;:20;18341:10;18332:20;;;;;;;;;;;;;;;:55;;;;18495:6;18447:13;:25;18461:10;18447:25;;;;;;;;;;;;;;;:45;;:54;;;;18587:6;18567:16;;:26;;;;;;;;;;;18707:53;18725:6;18733:16;;11029:2;18707:53;;:17;:53::i;:::-;18656:13;:25;18670:10;18656:25;;;;;;;;;;;;;;;:48;;:104;;;;18875:3;18830:13;:25;18844:10;18830:25;;;;;;;;;;;;;;;:42;;:48;;;;18980:13;:25;18994:10;18980:25;;;;;;;;;;;;;;;:43;;;;;;;;;;;;18962:70;;18968:10;18962:70;;;19025:6;18962:70;;;;;;;;;;;;;;;;;;19052:4;19045:11;;17903:1161;;;:::o;1983:113::-;2041:7;2069:1;2064;:6;;2057:14;;;;;;2089:1;2085;:5;2078:12;;1983:113;;;;:::o;2102:133::-;2160:7;2176:9;2192:1;2188;:5;2176:17;;2212:1;2207;:6;;2200:14;;;;;;2228:1;2221:8;;2102:133;;;;;:::o;22523:256::-;22609:15;22741:29;22760:9;22741:14;:18;;:29;;;;:::i;:::-;22734:37;;22523:256;;;;:::o;8133:252::-;8195:4;8222:24;8238:7;8222:11;;:15;;:24;;;;:::i;:::-;8208:11;:38;;;;8269:26;8287:7;8269:8;:13;8278:3;8269:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;8253:8;:13;8262:3;8253:13;;;;;;;;;;;;;;;:42;;;;8307:3;8302:18;;;8312:7;8302:18;;;;;;;;;;;;;;;;;;8348:3;8327:34;;8344:1;8327:34;;;8353:7;8327:34;;;;;;;;;;;;;;;;;;8375:4;8368:11;;8133:252;;;;:::o;19170:2255::-;19249:14;19354:19;19392:26;19490:28;19598:19;19701:18;19376:5;19354:27;;19722:1;19701:22;;19896:14;19872:21;:38;19868:1449;;;20202:92;20220:13;:25;20234:10;20220:25;;;;;;;;;;;;;;;:45;;;20267:16;;11029:2;20202:92;;:17;:92::i;:::-;20178:116;;20417:102;20436:75;20489:21;20436:13;:25;20450:10;20436:25;;;;;;;;;;;;;;;:48;;;:52;;:75;;;;:::i;:::-;20514:1;20517;20417:17;:102::i;:::-;20391:128;;20630:43;20649:23;20630:14;;:18;;:43;;;;:::i;:::-;20613:60;;20706:27;20725:7;20706:14;:18;;:27;;;;:::i;:::-;20689:44;;20880:22;20899:2;20880:14;:18;;:22;;;;:::i;:::-;20856:21;:46;20852:454;;;21019:58;21038:22;21057:2;21038:14;:18;;:22;;;;:::i;:::-;21062:14;21019:18;:58::i;:::-;21003:74;;20852:454;;;21233:57;21252:21;21275:14;21233:18;:57::i;:::-;21217:73;;20852:454;19868:1449;21402:13;21395:20;;19170:2255;;;;;;;;:::o;1707:270::-;1765:7;1856:9;1872:1;1868;:5;;;;;;;;1856:17;;1970:1;1963:8;;1707:270;;;;;:::o;21883:399::-;21984:13;22187:14;22099:38;22134:1;22121:10;:14;22114:2;:22;22099:10;:14;;:38;;;;:::i;:::-;22086:51;;22243:2;22238:1;22206:28;22221:12;22206:10;:14;;:28;;;;:::i;:::-;22205:34;22204:41;;;;;;;;22187:58;;22264:9;22256:18;;21883:399;;;;;;:::o;1521:180::-;1579:7;1638:9;1604:1;1599;:6;1595:37;;;1623:1;1616:8;;;;1595:37;1654:1;1650;:5;1638:17;;1678:1;1673;1669;:5;;;;;;;;:10;1662:18;;;;;;1694:1;1687:8;;1521:180;;;;;;:::o

Swarm Source

bzzr://4e81e6b744e597a2382981c1c785cf64b592cb5fe67d026b6bb269c944122af4
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.