ETH Price: $2,513.28 (-18.80%)
 

Overview

Max Total Supply

5,000,000,000 MZC

Holders

82

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,000,000 MZC

Value
$0.00
0xfe6e9bfce63914092879ec57bb0a735bfc3474c0
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:
MzcToken

Compiler Version
v0.5.0+commit.1d4f565a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-07-04
*/

pragma solidity 0.5.0;

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


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

/**
  * @title Ownable
  * @dev Owner validator
  */
contract Ownable {
  address private _owner;
  address private _operator;

  event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
  event OperatorTransferred(address indexed previousOperator, address indexed newOperator);

  /**
    * @dev The Ownable constructor sets the original `owner` of the contract to the sender
    * account.
    */
  constructor() public {
    _owner = msg.sender;
    _operator = msg.sender;
    emit OwnershipTransferred(address(0), _owner);
    emit OperatorTransferred(address(0), _operator);
  }

  /**
    * @return the address of the owner.
    */
  function owner() public view returns (address) {
    return _owner;
  }

  /**
    * @return the address of the operator.
    */
  function operator() public view returns (address) {
    return _operator;
  }

  /**
    * @dev Throws if called by any account other than the owner.
    */
  modifier onlyOwner() {
    require(isOwner());
    _;
  }

  /**
    * @dev Throws if called by any account other than the owner or operator.
    */
  modifier onlyOwnerOrOperator() {
    require(isOwner() || isOperator());
    _;
  }


  /**
    * @return true if `msg.sender` is the owner of the contract.
    */
  function isOwner() public view returns (bool) {
    return msg.sender == _owner;
  }

  /**
    * @return true if `msg.sender` is the operator of the contract.
    */
  function isOperator() public view returns (bool) {
    return msg.sender == _operator;
  }

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

  /**
    * @dev Allows the current operator to transfer control of the contract to a newOperator.
    * @param newOperator The address to transfer ownership to.
    */
  function transferOperator(address newOperator) public onlyOwner {
    require(newOperator != address(0));

    emit OperatorTransferred(_operator, newOperator);
    _operator = newOperator;
  }


}


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

  bool private _paused;

  constructor () internal {
    _paused = false;
  }

  /**
    * @return True if the contract is paused, false otherwise.
    */
  function paused() public view returns (bool) {
    return _paused;
  }

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

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

  /**
    * @dev Called by a pauser to pause, triggers stopped state.
    */
  function pause() public onlyOwnerOrOperator whenNotPaused {
    _paused = true;
    emit Paused(msg.sender);
  }

  /**
    * @dev Called by a pauser to unpause, returns to normal state.
    */
  function unpause() public onlyOwnerOrOperator whenPaused {
    _paused = false;
    emit Unpaused(msg.sender);
  }
}

/**
  * @title SafeMath
  * @dev Unsigned math operations with safety checks that revert on error.
  */
library SafeMath {

  /**
    * @dev Multiplies two unsigned integers, reverts on overflow.
    */
  function mul(uint a, uint b) internal pure returns (uint) {
    if (a == 0) {
      return 0;
    }

    uint c = a * b;
    require(c / a == b);

    return c;
  }

  /**
    * @dev Integer division of two numbers, truncating the quotient.
    */
  function div(uint a, uint b) internal pure returns (uint) {
    // Solidity only automatically asserts when dividing by 0
    require(b > 0);
    uint c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold

    return c;
  }

  /**
    * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
    */
  function sub(uint a, uint b) internal pure returns (uint) {
    require(b <= a);
    uint c = a - b;

    return c;
  }

  /**
    * @dev Adds two numbers, throws on overflow.
    */
  function add(uint a, uint b) internal pure returns (uint) {
    uint c = a + b;
    require(c >= a);

    return c;
  }

  /**
    * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
    * reverts when dividing by zero.
    */
  function mod(uint a, uint b) internal pure returns (uint) {
    require(b != 0);
    return a % b;
  }

}


/**
  * @title StandardToken
  * @dev Base Of token
  */
contract StandardToken is ERC20, Pausable {
  using SafeMath for uint;

  mapping (address => uint) private _balances;

  mapping (address => mapping (address => uint)) private _allowed;

  uint private _totalSupply;

  /**
    * @dev Total number of tokens in existence.
    */
  function totalSupply() public view returns (uint) {
    return _totalSupply;
  }

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

  /**
    * @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 uint specifying the amount of tokens still available for the spender.
    */
  function allowance(address owner, address spender) public view returns (uint) {
    return _allowed[owner][spender];
  }

  /**
    * @dev Transfer token to a specified address.
    * @param to The address to transfer to.
    * @param value The amount to be transferred.
    */
  function transfer(address to, uint value) public whenNotPaused returns (bool) {
    _transfer(msg.sender, to, value);
    return true;
  }

  /**
    * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
    * Beware that changing an allowance with this method brings the risk that someone may use both the old
    * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
    * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
    * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
    * @param spender The address which will spend the funds.
    * @param value The amount of tokens to be spent.
    */
  function approve(address spender, uint value) public whenNotPaused returns (bool) {
    _approve(msg.sender, spender, value);
    return true;
  }

  /**
    * @dev Transfer tokens from one address to another.
    * Note that while this function emits an Approval event, this is not required as per the specification,
    * and other compliant implementations may not emit the event.
    * @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 uint the amount of tokens to be transferred
    */
  function transferFrom(address from, address to, uint value) public whenNotPaused returns (bool) {
    _transferFrom(from, to, value);
    return true;
  }

  /**
    * @dev Increase the amount of tokens that an owner allowed to a spender.
    * approve should be called when _allowed[msg.sender][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
    * Emits an Approval event.
    * @param spender The address which will spend the funds.
    * @param addedValue The amount of tokens to increase the allowance by.
    */
  function increaseAllowance(address spender, uint addedValue) public whenNotPaused returns (bool) {
    _approve(msg.sender, spender, _allowed[msg.sender][spender].add(addedValue));
    return true;
  }

  /**
    * @dev Decrease the amount of tokens that an owner allowed to a spender.
    * approve should be called when _allowed[msg.sender][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
    * Emits an Approval event.
    * @param spender The address which will spend the funds.
    * @param subtractedValue The amount of tokens to decrease the allowance by.
    */
  function decreaseAllowance(address spender, uint subtractedValue) public whenNotPaused returns (bool) {
    _approve(msg.sender, spender, _allowed[msg.sender][spender].sub(subtractedValue));
    return true;
  }

  /**
    * @dev Transfer token for a specified addresses.
    * @param from The address to transfer from.
    * @param to The address to transfer to.
    * @param value The amount to be transferred.
    */
  function _transfer(address from, address to, uint value) internal {
    require(to != address(0));

    _balances[from] = _balances[from].sub(value);
    _balances[to] = _balances[to].add(value);
    emit Transfer(from, to, value);
  }

  /**
    * @dev Transfer tokens from one address to another.
    * Note that while this function emits an Approval event, this is not required as per the specification,
    * and other compliant implementations may not emit the event.
    * @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 uint the amount of tokens to be transferred
    */
  function _transferFrom(address from, address to, uint value) internal {
    _transfer(from, to, value);
    _approve(from, msg.sender, _allowed[from][msg.sender].sub(value));
  }

  /**
    * @dev Internal function that mints an amount of the token and assigns it to
    * an account. This encapsulates the modification of balances such that the
    * proper events are emitted.
    * @param account The account that will receive the created tokens.
    * @param value The amount that will be created.
    */
  function _mint(address account, uint value) internal {
    require(account != address(0));

    _totalSupply = _totalSupply.add(value);
    _balances[account] = _balances[account].add(value);
    emit Transfer(address(0), account, value);
  }

  /**
    * @dev Internal function that burns an amount of the token of the owner
    * account.
    * @param value The amount that will be burnt.
    */
  function _burn(uint value) internal {
    _totalSupply = _totalSupply.sub(value);
    _balances[msg.sender] = _balances[msg.sender].sub(value);
    emit Transfer(msg.sender, address(0), value);
  }

  /**
    * @dev Approve an address to spend another addresses' tokens.
    * @param owner The address that owns the tokens.
    * @param spender The address that will spend the tokens.
    * @param value The number of tokens that can be spent.
    */
  function _approve(address owner, address spender, uint value) internal {
    require(spender != address(0));
    require(owner != address(0));

    _allowed[owner][spender] = value;
    emit Approval(owner, spender, value);
  }
}

/**
  * @title MintableToken
  * @dev Minting of total balance
  */
contract MintableToken is StandardToken {
  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 indicated if the operation was successful.
    */
  function mint(address to, uint amount) public whenNotPaused onlyOwner canMint returns (bool) {
    _mint(to, amount);
    return true;
  }

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

/**
  * @title Burnable Token
  * @dev Token that can be irreversibly burned (destroyed).
  */
contract BurnableToken is MintableToken {
  /**
    * @dev Burns a specific amount of tokens.
    * @param value The amount of token to be burned.
    */
  function burn(uint value) public whenNotPaused onlyOwner returns (bool) {
    _burn(value);
    return true;
  }
}



/**
  * @title LockableToken
  * @dev locking of granted balance
  */
contract LockableToken is BurnableToken {

  using SafeMath for uint;

  /**
    * @dev Lock defines a lock of token
    */
  struct Lock {
    uint amount;
    uint expiresAt;
  }

  mapping (address => Lock[]) public grantedLocks;

  /**
    * @dev Transfer tokens to another
    * @param to address the address which you want to transfer to
    * @param value uint the amount of tokens to be transferred
    */
  function transfer(address to, uint value) public whenNotPaused returns (bool) {
    _verifyTransferLock(msg.sender, value);
    _transfer(msg.sender, to, value);
    return true;
  }

  /**
    * @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 uint the amount of tokens to be transferred
    */
  function transferFrom(address from, address to, uint value) public whenNotPaused returns (bool) {
    _verifyTransferLock(from, value);
    _transferFrom(from, to, value);
    return true;
  }

  /**
    * @dev Function to add lock
    * @param granted The address that will be locked.
    * @param amount The amount of tokens to be locked
    * @param expiresAt The expired date as unix timestamp
    */
  function addLock(address granted, uint amount, uint expiresAt) public whenNotPaused onlyOwnerOrOperator {
    require(amount > 0);
    require(expiresAt > now);

    grantedLocks[granted].push(Lock(amount, expiresAt));
  }

  /**
    * @dev Function to delete lock
    * @param granted The address that was locked
    * @param index The index of lock
    */
  function deleteLock(address granted, uint8 index) public whenNotPaused onlyOwnerOrOperator {
    require(grantedLocks[granted].length > index);

    uint len = grantedLocks[granted].length;
    if (len == 1) {
      delete grantedLocks[granted];
    } else {
      if (len - 1 != index) {
        grantedLocks[granted][index] = grantedLocks[granted][len - 1];
      }
      delete grantedLocks[granted][len - 1];
    }
  }

  /**
    * @dev Verify transfer is possible
    * @param from - granted
    * @param value - amount of transfer
    */
  function _verifyTransferLock(address from, uint value) internal view {
    uint lockedAmount = getLockedAmount(from);
    uint balanceAmount = balanceOf(from);

    require(balanceAmount.sub(lockedAmount) >= value);
  }

  /**
    * @dev get locked amount of address
    * @param granted The address want to know the lock state.
    * @return locked amount
    */
  function getLockedAmount(address granted) public view returns(uint) {
    uint lockedAmount = 0;

    uint len = grantedLocks[granted].length;
    for (uint i = 0; i < len; i++) {
      if (now < grantedLocks[granted][i].expiresAt) {
        lockedAmount = lockedAmount.add(grantedLocks[granted][i].amount);
      }
    }
    return lockedAmount;
  }
}

/**
  * @title MzcToken
  * @dev ERC20 Token
  */
contract MzcToken is LockableToken {

  string public constant name = "Muze creative";
  string public constant symbol = "MZC";
  uint32 public constant decimals = 18;

  uint public constant INITIAL_SUPPLY = 5000000000e18;

  /**
    * @dev Constructor that gives msg.sender all of existing tokens.
    */
  constructor() public {
    _mint(msg.sender, INITIAL_SUPPLY);
    emit Transfer(address(0), msg.sender, INITIAL_SUPPLY);
  }
}

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":"","type":"address"},{"name":"","type":"uint256"}],"name":"grantedLocks","outputs":[{"name":"amount","type":"uint256"},{"name":"expiresAt","type":"uint256"}],"payable":false,"stateMutability":"view","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":false,"inputs":[{"name":"newOperator","type":"address"}],"name":"transferOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"amount","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"burn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isOperator","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"granted","type":"address"},{"name":"index","type":"uint8"}],"name":"deleteLock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"operator","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finishMinting","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"granted","type":"address"}],"name":"getLockedAmount","outputs":[{"name":"","type":"uint256"}],"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":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"granted","type":"address"},{"name":"amount","type":"uint256"},{"name":"expiresAt","type":"uint256"}],"name":"addLock","outputs":[],"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"},{"anonymous":false,"inputs":[],"name":"MintFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Unpaused","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":"previousOperator","type":"address"},{"indexed":true,"name":"newOperator","type":"address"}],"name":"OperatorTransferred","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"}]

60806040526000600560006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a36000600160146101000a81548160ff021916908315150217905550620001e9336b1027e72f1f1281308800000062000261640100000000026401000000009004565b3373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b1027e72f1f128130880000006040518082815260200191505060405180910390a3620003fa565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156200029e57600080fd5b620002c381600454620003d86401000000000262001c26179091906401000000009004565b6004819055506200032b81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620003d86401000000000262001c26179091906401000000009004565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000808284019050838110151515620003f057600080fd5b8091505092915050565b612127806200040a6000396000f3fe608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b1461017a57806306fdde03146101a9578063095ea7b3146102395780630ab1b3c1146102ac57806318160ddd1461032257806323b872dd1461034d57806329605e77146103e05780632ff2e9dc14610431578063313ce5671461045c57806339509351146104935780633f4ba83a1461050657806340c10f191461051d57806342966c68146105905780634456eda2146105e35780634bc18a6414610612578063570ca735146106705780635c975abb146106c757806370a08231146106f65780637d64bcb41461075b5780638456cb591461078a5780638da5cb5b146107a15780638f32d59b146107f8578063929ec5371461082757806395d89b411461088c578063a457c2d71461091c578063a9059cbb1461098f578063cc9ac37614610a02578063dd62ed3e14610a67578063f2fde38b14610aec575b600080fd5b34801561018657600080fd5b5061018f610b3d565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be610b50565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101fe5780820151818401526020810190506101e3565b50505050905090810190601f16801561022b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024557600080fd5b506102926004803603604081101561025c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b89565b604051808215151515815260200191505060405180910390f35b3480156102b857600080fd5b50610305600480360360408110156102cf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bbc565b604051808381526020018281526020019250505060405180910390f35b34801561032e57600080fd5b50610337610bfc565b6040518082815260200191505060405180910390f35b34801561035957600080fd5b506103c66004803603606081101561037057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c06565b604051808215151515815260200191505060405180910390f35b3480156103ec57600080fd5b5061042f6004803603602081101561040357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c44565b005b34801561043d57600080fd5b50610446610d53565b6040518082815260200191505060405180910390f35b34801561046857600080fd5b50610471610d63565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b34801561049f57600080fd5b506104ec600480360360408110156104b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d68565b604051808215151515815260200191505060405180910390f35b34801561051257600080fd5b5061051b610e29565b005b34801561052957600080fd5b506105766004803603604081101561054057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee6565b604051808215151515815260200191505060405180910390f35b34801561059c57600080fd5b506105c9600480360360208110156105b357600080fd5b8101908080359060200190929190505050610f47565b604051808215151515815260200191505060405180910390f35b3480156105ef57600080fd5b506105f8610f8a565b604051808215151515815260200191505060405180910390f35b34801561061e57600080fd5b5061066e6004803603604081101561063557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610fe2565b005b34801561067c57600080fd5b5061068561126a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106d357600080fd5b506106dc611294565b604051808215151515815260200191505060405180910390f35b34801561070257600080fd5b506107456004803603602081101561071957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112ab565b6040518082815260200191505060405180910390f35b34801561076757600080fd5b506107706112f4565b604051808215151515815260200191505060405180910390f35b34801561079657600080fd5b5061079f61138f565b005b3480156107ad57600080fd5b506107b661144c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561080457600080fd5b5061080d611475565b604051808215151515815260200191505060405180910390f35b34801561083357600080fd5b506108766004803603602081101561084a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114cc565b6040518082815260200191505060405180910390f35b34801561089857600080fd5b506108a1611618565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108e15780820151818401526020810190506108c6565b50505050905090810190601f16801561090e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561092857600080fd5b506109756004803603604081101561093f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611651565b604051808215151515815260200191505060405180910390f35b34801561099b57600080fd5b506109e8600480360360408110156109b257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611712565b604051808215151515815260200191505060405180910390f35b348015610a0e57600080fd5b50610a6560048036036060811015610a2557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061174f565b005b348015610a7357600080fd5b50610ad660048036036040811015610a8a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611845565b6040518082815260200191505060405180910390f35b348015610af857600080fd5b50610b3b60048036036020811015610b0f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118cc565b005b600560009054906101000a900460ff1681565b6040805190810160405280600d81526020017f4d757a652063726561746976650000000000000000000000000000000000000081525081565b6000600160149054906101000a900460ff16151515610ba757600080fd5b610bb23384846119d9565b6001905092915050565b600660205281600052604060002081815481101515610bd757fe5b9060005260206000209060020201600091509150508060000154908060010154905082565b6000600454905090565b6000600160149054906101000a900460ff16151515610c2457600080fd5b610c2e8483611b3c565b610c39848484611b7d565b600190509392505050565b610c4c611475565b1515610c5757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610c9357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6b1027e72f1f1281308800000081565b601281565b6000600160149054906101000a900460ff16151515610d8657600080fd5b610e1f3384610e1a85600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2690919063ffffffff16565b6119d9565b6001905092915050565b610e31611475565b80610e405750610e3f610f8a565b5b1515610e4b57600080fd5b600160149054906101000a900460ff161515610e6657600080fd5b6000600160146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000600160149054906101000a900460ff16151515610f0457600080fd5b610f0c611475565b1515610f1757600080fd5b600560009054906101000a900460ff16151515610f3357600080fd5b610f3d8383611c47565b6001905092915050565b6000600160149054906101000a900460ff16151515610f6557600080fd5b610f6d611475565b1515610f7857600080fd5b610f8182611d9d565b60019050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600160149054906101000a900460ff16151515610ffe57600080fd5b611006611475565b806110155750611014610f8a565b5b151561102057600080fd5b8060ff16600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011151561107357600080fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050600181141561111357600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061110e91906120a8565b611265565b8160ff16600182031415156111f457600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001820381548110151561117157fe5b9060005260206000209060020201600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208360ff168154811015156111ce57fe5b906000526020600020906002020160008201548160000155600182015481600101559050505b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001820381548110151561124357fe5b9060005260206000209060020201600080820160009055600182016000905550505b505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160149054906101000a900460ff16905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600160149054906101000a900460ff1615151561131257600080fd5b61131a611475565b151561132557600080fd5b600560009054906101000a900460ff1615151561134157600080fd5b6001600560006101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b611397611475565b806113a657506113a5610f8a565b5b15156113b157600080fd5b600160149054906101000a900460ff161515156113cd57600080fd5b60018060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600080600090506000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050905060008090505b8181101561160d57600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110151561157457fe5b906000526020600020906002020160010154421015611600576115fd600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811015156115dc57fe5b90600052602060002090600202016000015484611c2690919063ffffffff16565b92505b8080600101915050611520565b508192505050919050565b6040805190810160405280600381526020017f4d5a43000000000000000000000000000000000000000000000000000000000081525081565b6000600160149054906101000a900460ff1615151561166f57600080fd5b611708338461170385600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eb690919063ffffffff16565b6119d9565b6001905092915050565b6000600160149054906101000a900460ff1615151561173057600080fd5b61173a3383611b3c565b611745338484611ed8565b6001905092915050565b600160149054906101000a900460ff1615151561176b57600080fd5b611773611475565b806117825750611781610f8a565b5b151561178d57600080fd5b60008211151561179c57600080fd5b42811115156117aa57600080fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020604080519081016040528084815260200183815250908060018154018082558091505090600182039060005260206000209060020201600090919290919091506000820151816000015560208201518160010155505050505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6118d4611475565b15156118df57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561191b57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611a1557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611a5157600080fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000611b47836114cc565b90506000611b54846112ab565b905082611b6a8383611eb690919063ffffffff16565b10151515611b7757600080fd5b50505050565b611b88838383611ed8565b611c218333611c1c84600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eb690919063ffffffff16565b6119d9565b505050565b6000808284019050838110151515611c3d57600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611c8357600080fd5b611c9881600454611c2690919063ffffffff16565b600481905550611cf081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2690919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b611db281600454611eb690919063ffffffff16565b600481905550611e0a81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eb690919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b6000828211151515611ec757600080fd5b600082840390508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611f1457600080fd5b611f6681600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eb690919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ffb81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2690919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b50805460008255600202906000526020600020908101906120c991906120cc565b50565b6120f891905b808211156120f4576000808201600090556001820160009055506002016120d2565b5090565b9056fea165627a7a723058205f750ba458d631909bae4cd13b069d919aca6420a34e2a766f7f66a1c5e240b50029

Deployed Bytecode

0x608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b1461017a57806306fdde03146101a9578063095ea7b3146102395780630ab1b3c1146102ac57806318160ddd1461032257806323b872dd1461034d57806329605e77146103e05780632ff2e9dc14610431578063313ce5671461045c57806339509351146104935780633f4ba83a1461050657806340c10f191461051d57806342966c68146105905780634456eda2146105e35780634bc18a6414610612578063570ca735146106705780635c975abb146106c757806370a08231146106f65780637d64bcb41461075b5780638456cb591461078a5780638da5cb5b146107a15780638f32d59b146107f8578063929ec5371461082757806395d89b411461088c578063a457c2d71461091c578063a9059cbb1461098f578063cc9ac37614610a02578063dd62ed3e14610a67578063f2fde38b14610aec575b600080fd5b34801561018657600080fd5b5061018f610b3d565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be610b50565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101fe5780820151818401526020810190506101e3565b50505050905090810190601f16801561022b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024557600080fd5b506102926004803603604081101561025c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b89565b604051808215151515815260200191505060405180910390f35b3480156102b857600080fd5b50610305600480360360408110156102cf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bbc565b604051808381526020018281526020019250505060405180910390f35b34801561032e57600080fd5b50610337610bfc565b6040518082815260200191505060405180910390f35b34801561035957600080fd5b506103c66004803603606081101561037057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c06565b604051808215151515815260200191505060405180910390f35b3480156103ec57600080fd5b5061042f6004803603602081101561040357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c44565b005b34801561043d57600080fd5b50610446610d53565b6040518082815260200191505060405180910390f35b34801561046857600080fd5b50610471610d63565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b34801561049f57600080fd5b506104ec600480360360408110156104b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d68565b604051808215151515815260200191505060405180910390f35b34801561051257600080fd5b5061051b610e29565b005b34801561052957600080fd5b506105766004803603604081101561054057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee6565b604051808215151515815260200191505060405180910390f35b34801561059c57600080fd5b506105c9600480360360208110156105b357600080fd5b8101908080359060200190929190505050610f47565b604051808215151515815260200191505060405180910390f35b3480156105ef57600080fd5b506105f8610f8a565b604051808215151515815260200191505060405180910390f35b34801561061e57600080fd5b5061066e6004803603604081101561063557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610fe2565b005b34801561067c57600080fd5b5061068561126a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106d357600080fd5b506106dc611294565b604051808215151515815260200191505060405180910390f35b34801561070257600080fd5b506107456004803603602081101561071957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112ab565b6040518082815260200191505060405180910390f35b34801561076757600080fd5b506107706112f4565b604051808215151515815260200191505060405180910390f35b34801561079657600080fd5b5061079f61138f565b005b3480156107ad57600080fd5b506107b661144c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561080457600080fd5b5061080d611475565b604051808215151515815260200191505060405180910390f35b34801561083357600080fd5b506108766004803603602081101561084a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114cc565b6040518082815260200191505060405180910390f35b34801561089857600080fd5b506108a1611618565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108e15780820151818401526020810190506108c6565b50505050905090810190601f16801561090e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561092857600080fd5b506109756004803603604081101561093f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611651565b604051808215151515815260200191505060405180910390f35b34801561099b57600080fd5b506109e8600480360360408110156109b257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611712565b604051808215151515815260200191505060405180910390f35b348015610a0e57600080fd5b50610a6560048036036060811015610a2557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061174f565b005b348015610a7357600080fd5b50610ad660048036036040811015610a8a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611845565b6040518082815260200191505060405180910390f35b348015610af857600080fd5b50610b3b60048036036020811015610b0f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118cc565b005b600560009054906101000a900460ff1681565b6040805190810160405280600d81526020017f4d757a652063726561746976650000000000000000000000000000000000000081525081565b6000600160149054906101000a900460ff16151515610ba757600080fd5b610bb23384846119d9565b6001905092915050565b600660205281600052604060002081815481101515610bd757fe5b9060005260206000209060020201600091509150508060000154908060010154905082565b6000600454905090565b6000600160149054906101000a900460ff16151515610c2457600080fd5b610c2e8483611b3c565b610c39848484611b7d565b600190509392505050565b610c4c611475565b1515610c5757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610c9357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6b1027e72f1f1281308800000081565b601281565b6000600160149054906101000a900460ff16151515610d8657600080fd5b610e1f3384610e1a85600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2690919063ffffffff16565b6119d9565b6001905092915050565b610e31611475565b80610e405750610e3f610f8a565b5b1515610e4b57600080fd5b600160149054906101000a900460ff161515610e6657600080fd5b6000600160146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000600160149054906101000a900460ff16151515610f0457600080fd5b610f0c611475565b1515610f1757600080fd5b600560009054906101000a900460ff16151515610f3357600080fd5b610f3d8383611c47565b6001905092915050565b6000600160149054906101000a900460ff16151515610f6557600080fd5b610f6d611475565b1515610f7857600080fd5b610f8182611d9d565b60019050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600160149054906101000a900460ff16151515610ffe57600080fd5b611006611475565b806110155750611014610f8a565b5b151561102057600080fd5b8060ff16600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011151561107357600080fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050600181141561111357600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061110e91906120a8565b611265565b8160ff16600182031415156111f457600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001820381548110151561117157fe5b9060005260206000209060020201600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208360ff168154811015156111ce57fe5b906000526020600020906002020160008201548160000155600182015481600101559050505b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001820381548110151561124357fe5b9060005260206000209060020201600080820160009055600182016000905550505b505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160149054906101000a900460ff16905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600160149054906101000a900460ff1615151561131257600080fd5b61131a611475565b151561132557600080fd5b600560009054906101000a900460ff1615151561134157600080fd5b6001600560006101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b611397611475565b806113a657506113a5610f8a565b5b15156113b157600080fd5b600160149054906101000a900460ff161515156113cd57600080fd5b60018060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600080600090506000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050905060008090505b8181101561160d57600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110151561157457fe5b906000526020600020906002020160010154421015611600576115fd600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811015156115dc57fe5b90600052602060002090600202016000015484611c2690919063ffffffff16565b92505b8080600101915050611520565b508192505050919050565b6040805190810160405280600381526020017f4d5a43000000000000000000000000000000000000000000000000000000000081525081565b6000600160149054906101000a900460ff1615151561166f57600080fd5b611708338461170385600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eb690919063ffffffff16565b6119d9565b6001905092915050565b6000600160149054906101000a900460ff1615151561173057600080fd5b61173a3383611b3c565b611745338484611ed8565b6001905092915050565b600160149054906101000a900460ff1615151561176b57600080fd5b611773611475565b806117825750611781610f8a565b5b151561178d57600080fd5b60008211151561179c57600080fd5b42811115156117aa57600080fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020604080519081016040528084815260200183815250908060018154018082558091505090600182039060005260206000209060020201600090919290919091506000820151816000015560208201518160010155505050505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6118d4611475565b15156118df57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561191b57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611a1557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611a5157600080fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000611b47836114cc565b90506000611b54846112ab565b905082611b6a8383611eb690919063ffffffff16565b10151515611b7757600080fd5b50505050565b611b88838383611ed8565b611c218333611c1c84600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eb690919063ffffffff16565b6119d9565b505050565b6000808284019050838110151515611c3d57600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611c8357600080fd5b611c9881600454611c2690919063ffffffff16565b600481905550611cf081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2690919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b611db281600454611eb690919063ffffffff16565b600481905550611e0a81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eb690919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b6000828211151515611ec757600080fd5b600082840390508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611f1457600080fd5b611f6681600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eb690919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ffb81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2690919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b50805460008255600202906000526020600020908101906120c991906120cc565b50565b6120f891905b808211156120f4576000808201600090556001820160009055506002016120d2565b5090565b9056fea165627a7a723058205f750ba458d631909bae4cd13b069d919aca6420a34e2a766f7f66a1c5e240b50029

Deployed Bytecode Sourcemap

17263:450:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12963:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12963:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;17305:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17305:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;17305:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8045:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8045:149:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8045:149:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14401:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14401:47:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14401:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6266:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6266:82:0;;;;;;;;;;;;;;;;;;;;;;;15108:196;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15108:196:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15108:196:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3034:198;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3034:198:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3034:198:0;;;;;;;;;;;;;;;;;;;;;;17440:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17440:51:0;;;;;;;;;;;;;;;;;;;;;;;17397:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17397:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;9323:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9323:204:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9323:204:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4331:117;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4331:117:0;;;;;;13316:141;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13316:141:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13316:141:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14005:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14005:115:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14005:115:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2411:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2411:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;15899:434;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15899:434:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15899:434:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1735:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1735:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3635:72;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3635:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;6556:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6556:97:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6556:97:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13580:158;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13580:158:0;;;;;;;;;;;;;;;;;;;;;;;;;;;4127:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4127:115:0;;;;;;1597:73;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1597:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2235:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2235:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;16842:360;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16842:360:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16842:360:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17355:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17355:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;17355:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10045:214;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10045:214:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10045:214:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14640:186;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14640:186:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14640:186:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15527:227;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15527:227:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15527:227:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6980:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6980:122:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6980:122:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2673:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2673:182:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2673:182:0;;;;;;;;;;;;;;;;;;;;;;12963:35;;;;;;;;;;;;;:::o;17305:45::-;;;;;;;;;;;;;;;;;;;;:::o;8045:149::-;8121:4;3856:7;;;;;;;;;;;3855:8;3847:17;;;;;;;;8134:36;8143:10;8155:7;8164:5;8134:8;:36::i;:::-;8184:4;8177:11;;8045:149;;;;:::o;14401:47::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6266:82::-;6310:4;6330:12;;6323:19;;6266:82;:::o;15108:196::-;15198:4;3856:7;;;;;;;;;;;3855:8;3847:17;;;;;;;;15211:32;15231:4;15237:5;15211:19;:32::i;:::-;15250:30;15264:4;15270:2;15274:5;15250:13;:30::i;:::-;15294:4;15287:11;;15108:196;;;;;:::o;3034:198::-;1937:9;:7;:9::i;:::-;1929:18;;;;;;;;3136:1;3113:25;;:11;:25;;;;3105:34;;;;;;;;3184:11;3153:43;;3173:9;;;;;;;;;;;3153:43;;;;;;;;;;;;3215:11;3203:9;;:23;;;;;;;;;;;;;;;;;;3034:198;:::o;17440:51::-;17478:13;17440:51;:::o;17397:36::-;17431:2;17397:36;:::o;9323:204::-;9414:4;3856:7;;;;;;;;;;;3855:8;3847:17;;;;;;;;9427:76;9436:10;9448:7;9457:45;9491:10;9457:8;:20;9466:10;9457:20;;;;;;;;;;;;;;;:29;9478:7;9457:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;9427:8;:76::i;:::-;9517:4;9510:11;;9323:204;;;;:::o;4331:117::-;2106:9;:7;:9::i;:::-;:25;;;;2119:12;:10;:12::i;:::-;2106:25;2098:34;;;;;;;;4019:7;;;;;;;;;;;4011:16;;;;;;;;4405:5;4395:7;;:15;;;;;;;;;;;;;;;;;;4422:20;4431:10;4422:20;;;;;;;;;;;;;;;;;;;;;;4331:117::o;13316:141::-;13403:4;3856:7;;;;;;;;;;;3855:8;3847:17;;;;;;;;1937:9;:7;:9::i;:::-;1929:18;;;;;;;;13040:15;;;;;;;;;;;13039:16;13031:25;;;;;;;;13416:17;13422:2;13426:6;13416:5;:17::i;:::-;13447:4;13440:11;;13316:141;;;;:::o;14005:115::-;14071:4;3856:7;;;;;;;;;;;3855:8;3847:17;;;;;;;;1937:9;:7;:9::i;:::-;1929:18;;;;;;;;14084:12;14090:5;14084;:12::i;:::-;14110:4;14103:11;;14005:115;;;:::o;2411:92::-;2454:4;2488:9;;;;;;;;;;;2474:23;;:10;:23;;;2467:30;;2411:92;:::o;15899:434::-;3856:7;;;;;;;;;;;3855:8;3847:17;;;;;;;;2106:9;:7;:9::i;:::-;:25;;;;2119:12;:10;:12::i;:::-;2106:25;2098:34;;;;;;;;16036:5;16005:36;;:12;:21;16018:7;16005:21;;;;;;;;;;;;;;;:28;;;;:36;15997:45;;;;;;;;16051:8;16062:12;:21;16075:7;16062:21;;;;;;;;;;;;;;;:28;;;;16051:39;;16108:1;16101:3;:8;16097:231;;;16127:12;:21;16140:7;16127:21;;;;;;;;;;;;;;;;16120:28;;;;:::i;:::-;16097:231;;;16186:5;16175:16;;16181:1;16175:3;:7;:16;;16171:104;;;16235:12;:21;16248:7;16235:21;;;;;;;;;;;;;;;16263:1;16257:3;:7;16235:30;;;;;;;;;;;;;;;;;;;;16204:12;:21;16217:7;16204:21;;;;;;;;;;;;;;;16226:5;16204:28;;;;;;;;;;;;;;;;;;;;;;:61;;;;;;;;;;;;;;;;;;;16171:104;16290:12;:21;16303:7;16290:21;;;;;;;;;;;;;;;16318:1;16312:3;:7;16290:30;;;;;;;;;;;;;;;;;;;;;16283:37;;;;;;;;;;;;;;16097:231;2139:1;15899:434;;:::o;1735:79::-;1776:7;1799:9;;;;;;;;;;;1792:16;;1735:79;:::o;3635:72::-;3674:4;3694:7;;;;;;;;;;;3687:14;;3635:72;:::o;6556:97::-;6611:4;6631:9;:16;6641:5;6631:16;;;;;;;;;;;;;;;;6624:23;;6556:97;;;:::o;13580:158::-;13653:4;3856:7;;;;;;;;;;;3855:8;3847:17;;;;;;;;1937:9;:7;:9::i;:::-;1929:18;;;;;;;;13040:15;;;;;;;;;;;13039:16;13031:25;;;;;;;;13684:4;13666:15;;:22;;;;;;;;;;;;;;;;;;13700:14;;;;;;;;;;13728:4;13721:11;;13580:158;:::o;4127:115::-;2106:9;:7;:9::i;:::-;:25;;;;2119:12;:10;:12::i;:::-;2106:25;2098:34;;;;;;;;3856:7;;;;;;;;;;;3855:8;3847:17;;;;;;;;4202:4;4192:7;;:14;;;;;;;;;;;;;;;;;;4218:18;4225:10;4218:18;;;;;;;;;;;;;;;;;;;;;;4127:115::o;1597:73::-;1635:7;1658:6;;;;;;;;;;;1651:13;;1597:73;:::o;2235:86::-;2275:4;2309:6;;;;;;;;;;;2295:20;;:10;:20;;;2288:27;;2235:86;:::o;16842:360::-;16904:4;16917:17;16937:1;16917:21;;16947:8;16958:12;:21;16971:7;16958:21;;;;;;;;;;;;;;;:28;;;;16947:39;;16998:6;17007:1;16998:10;;16993:178;17014:3;17010:1;:7;16993:178;;;17043:12;:21;17056:7;17043:21;;;;;;;;;;;;;;;17065:1;17043:24;;;;;;;;;;;;;;;;;;;;:34;;;17037:3;:40;17033:131;;;17105:49;17122:12;:21;17135:7;17122:21;;;;;;;;;;;;;;;17144:1;17122:24;;;;;;;;;;;;;;;;;;;;:31;;;17105:12;:16;;:49;;;;:::i;:::-;17090:64;;17033:131;17019:3;;;;;;;16993:178;;;;17184:12;17177:19;;;;16842:360;;;:::o;17355:37::-;;;;;;;;;;;;;;;;;;;;:::o;10045:214::-;10141:4;3856:7;;;;;;;;;;;3855:8;3847:17;;;;;;;;10154:81;10163:10;10175:7;10184:50;10218:15;10184:8;:20;10193:10;10184:20;;;;;;;;;;;;;;;:29;10205:7;10184:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;10154:8;:81::i;:::-;10249:4;10242:11;;10045:214;;;;:::o;14640:186::-;14712:4;3856:7;;;;;;;;;;;3855:8;3847:17;;;;;;;;14725:38;14745:10;14757:5;14725:19;:38::i;:::-;14770:32;14780:10;14792:2;14796:5;14770:9;:32::i;:::-;14816:4;14809:11;;14640:186;;;;:::o;15527:227::-;3856:7;;;;;;;;;;;3855:8;3847:17;;;;;;;;2106:9;:7;:9::i;:::-;:25;;;;2119:12;:10;:12::i;:::-;2106:25;2098:34;;;;;;;;15655:1;15646:6;:10;15638:19;;;;;;;;15684:3;15672:9;:15;15664:24;;;;;;;;15697:12;:21;15710:7;15697:21;;;;;;;;;;;;;;;15724:23;;;;;;;;;15729:6;15724:23;;;;15737:9;15724:23;;;15697:51;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;15697:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15527:227;;;:::o;6980:122::-;7052:4;7072:8;:15;7081:5;7072:15;;;;;;;;;;;;;;;:24;7088:7;7072:24;;;;;;;;;;;;;;;;7065:31;;6980:122;;;;:::o;2673:182::-;1937:9;:7;:9::i;:::-;1929:18;;;;;;;;2770:1;2750:22;;:8;:22;;;;2742:31;;;;;;;;2816:8;2787:38;;2808:6;;;;;;;;;;;2787:38;;;;;;;;;;;;2841:8;2832:6;;:17;;;;;;;;;;;;;;;;;;2673:182;:::o;12579:233::-;12684:1;12665:21;;:7;:21;;;;12657:30;;;;;;;;12719:1;12702:19;;:5;:19;;;;12694:28;;;;;;;;12758:5;12731:8;:15;12740:5;12731:15;;;;;;;;;;;;;;;:24;12747:7;12731:24;;;;;;;;;;;;;;;:32;;;;12791:7;12775:31;;12784:5;12775:31;;;12800:5;12775:31;;;;;;;;;;;;;;;;;;12579:233;;;:::o;16464:224::-;16540:17;16560:21;16576:4;16560:15;:21::i;:::-;16540:41;;16588:18;16609:15;16619:4;16609:9;:15::i;:::-;16588:36;;16676:5;16641:31;16659:12;16641:13;:17;;:31;;;;:::i;:::-;:40;;16633:49;;;;;;;;16464:224;;;;:::o;11178:181::-;11255:26;11265:4;11271:2;11275:5;11255:9;:26::i;:::-;11288:65;11297:4;11303:10;11315:37;11346:5;11315:8;:14;11324:4;11315:14;;;;;;;;;;;;;;;:26;11330:10;11315:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;11288:8;:65::i;:::-;11178:181;;;:::o;5518:124::-;5570:4;5583:6;5596:1;5592;:5;5583:14;;5617:1;5612;:6;;5604:15;;;;;;;;5635:1;5628:8;;;5518:124;;;;:::o;11701:248::-;11788:1;11769:21;;:7;:21;;;;11761:30;;;;;;;;11815:23;11832:5;11815:12;;:16;;:23;;;;:::i;:::-;11800:12;:38;;;;11866:29;11889:5;11866:9;:18;11876:7;11866:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;11845:9;:18;11855:7;11845:18;;;;;;;;;;;;;;;:50;;;;11928:7;11907:36;;11924:1;11907:36;;;11937:5;11907:36;;;;;;;;;;;;;;;;;;11701:248;;:::o;12114:201::-;12172:23;12189:5;12172:12;;:16;;:23;;;;:::i;:::-;12157:12;:38;;;;12226:32;12252:5;12226:9;:21;12236:10;12226:21;;;;;;;;;;;;;;;;:25;;:32;;;;:::i;:::-;12202:9;:21;12212:10;12202:21;;;;;;;;;;;;;;;:56;;;;12299:1;12270:39;;12279:10;12270:39;;;12303:5;12270:39;;;;;;;;;;;;;;;;;;12114:201;:::o;5323:124::-;5375:4;5401:1;5396;:6;;5388:15;;;;;;;;5410:6;5423:1;5419;:5;5410:14;;5440:1;5433:8;;;5323:124;;;;:::o;10478:241::-;10573:1;10559:16;;:2;:16;;;;10551:25;;;;;;;;10603:26;10623:5;10603:9;:15;10613:4;10603:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;10585:9;:15;10595:4;10585:15;;;;;;;;;;;;;;;:44;;;;10652:24;10670:5;10652:9;:13;10662:2;10652:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;10636:9;:13;10646:2;10636:13;;;;;;;;;;;;;;;:40;;;;10703:2;10688:25;;10697:4;10688:25;;;10707:5;10688:25;;;;;;;;;;;;;;;;;;10478:241;;;:::o;17263:450::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://5f750ba458d631909bae4cd13b069d919aca6420a34e2a766f7f66a1c5e240b5
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.