ETH Price: $2,379.28 (-10.45%)

Token

THE PIC TOKEN (PIC)
 

Overview

Max Total Supply

1,289,949.999335 PIC

Holders

11

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
417.08 PIC

Value
$0.00
0x383f42b5de515c564641f65f5da3bd8b4a35b4b4
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:
PicToken

Compiler Version
v0.5.10+commit.5a6ea5b1

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-10-01
*/

pragma solidity ^0.5.10;

interface IERC20 {
    function transfer(address to, uint256 value) external returns (bool);

    function approve(address spender, uint256 value) external returns (bool);

    function transferFrom(address from, address to, uint256 value) external returns (bool);

    function totalSupply() external view returns (uint256);

    function balanceOf(address who) external view returns (uint256);

    function allowance(address owner, address spender) external view returns (uint256);

    event Transfer(address indexed from, address indexed to, uint256 value);

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

library SafeMath {
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "Error: subtraction overflow");
        uint256 c = a - b;

        return c;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "Error: addition overflow");

        return c;
    }
    
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b > 0, "Error: division overflow"); 
    uint256 c = a / b;

    return c;
  }
  
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    require((c / a == b), "Error: multiplication overflow");
    return c;
  }
  
}


contract ERC20 is IERC20 {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;

    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

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

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

    function transfer(address to, uint256 value) public returns (bool) {
        _transfer(msg.sender, to, value);
        return true;
    }

    function approve(address spender, uint256 value) public returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    function transferFrom(address from, address to, uint256 value) public returns (bool) {
        _transfer(from, to, value);
        _approve(from, msg.sender, _allowances[from][msg.sender].sub(value));
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue));
        return true;
    }

    function _transfer(address from, address to, uint256 value) internal {
        require(to != address(0), "ERC20: transfer to the zero address not allowed");

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

    function _mint(address account, uint256 value) internal {
        require(account != address(0), "ERC20: mint to the zero address not allowed");

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

    function _burn(address account, uint256 value) internal {
        require(account != address(0), "ERC20: burn from the zero address not allowed");

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

    function _approve(address owner, address spender, uint256 value) internal {
        require(owner != address(0), "ERC20: approve from the zero address not allowed");
        require(spender != address(0), "ERC20: approve to the zero address not allowed");

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

    function _burnFrom(address account, uint256 value) internal {
        _burn(account, value);
        _approve(account, msg.sender, _allowances[account][msg.sender].sub(value));
    }
    
    function distribution(address[] memory holdersAddresses, uint256[] memory volumeArray, uint256 _todayEmission, uint256 totalVolume, uint256 _emissionLeft, uint256 _emitCap) internal returns (uint256) {
        require((_emitCap>_totalSupply), "Emission: Emission capacity has been reached");
        
        uint256 amountEmitted = 0;
        _todayEmission = _todayEmission.mul(10000);
        uint256 amount = _todayEmission.div(totalVolume);
        for (uint i = 0; i < holdersAddresses.length; i++) {
            
            uint256 volume = volumeArray[i];
            uint256 toTransfer = amount.mul(volume);
            toTransfer = toTransfer.div(10000);
            address holderAddr = holdersAddresses[i];
            if(toTransfer > 0){
                if (_emissionLeft >= toTransfer) {
                    _mint(holderAddr, toTransfer);
                    _emissionLeft = _emissionLeft.sub(toTransfer);
                    amountEmitted = amountEmitted.add(toTransfer);
                }
            }
        }
        return amountEmitted;
    }
    
}


contract ERC20Burnable is ERC20 {
    function burn(uint256 value) public {
        _burn(msg.sender, value);
    }

    function burnFrom(address from, uint256 value) public {
        _burnFrom(from, value);
    }
}

contract Ownable {
    address private _owner;

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

    constructor () internal {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(isOwner(), "Access: You are not allowed to perform this action");
        _;
    }

    function isOwner() public view returns (bool) {
        return msg.sender == _owner;
    }


    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}


contract ERC20Detailed is IERC20 {
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    constructor (string memory name, string memory symbol, uint8 decimals) public {
        _name = name;
        _symbol = symbol;
        _decimals = decimals;
    }

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }
}

contract PicToken is ERC20, ERC20Detailed, Ownable, ERC20Burnable {
  using SafeMath for uint256;

  uint8 constant DECIMALS = 18;

  uint256 private constant _emitCap = 50000000 * (10 ** uint256(DECIMALS));
  uint256 private _emitted;
  uint256 private todayEmission;
  uint256 private todayEmissionLeft;
  uint256 constant lowerBound = 20; // 3 decimal: Actual value=0.02
  uint256 constant upperBound = 100; // 3 decimal: Actual value=0.10
  
  uint constant oneDay = 86400;

  uint constant percentDecimals = 100000;
  
  uint createdAt; // Deployment time of the contract 
  uint releaseAt = now; // Release time for token emission
  
  event Emit(uint256 emitAmount, uint256 percentage);
  event Distributed(address[] holdersAddresses, uint256[] volumeArray, uint256 totalVolume, uint256 emittedAmount);

  event AdminChanged(address indexed account);
  
  address private _admin;
  
  modifier onlyAdmin() {
      require(isAdmin(), "Admin: caller does not have the Admin role");
      _;
    }

  function isAdmin() public view returns (bool) {
      return msg.sender == _admin;
  }

  function changeAdmin(address account) public onlyOwner {
      _changeAdmin(account);
  }

  function _changeAdmin(address account) internal {
      require(account != address(0), "Admin: account is the zero address");
      _admin = account;
      emit AdminChanged(account);
  }  

  function emitTokens(uint256 _percentage) public onlyAdmin returns (uint256) {
      require((_emitted < _emitCap), "Error: Emission limit has been reached");
      require((releaseAt <= now), "Error: Release time has not passed");

      if (_percentage <= lowerBound) {
          _percentage = lowerBound;
      }
      if (_percentage >= upperBound) {
          _percentage = upperBound;
      }
      
      releaseAt = releaseAt + oneDay; //Increase by one day 86400
      
      // Calculate amount to emit
      uint256 _emitAmount = _percentage.mul(_emitCap);
      _emitAmount = _emitAmount.div(percentDecimals); // dividing by percentage decimals (1000) + percentage (100)
      
      // update emitted amount
      _emitted = _emitted.add(_emitAmount);
      
      // update today's emitted amount
      todayEmission = _emitAmount;
      todayEmissionLeft = todayEmission;
      
      // Log emit event
      emit Emit(_emitAmount, _percentage);
      
      return _emitAmount;

  }
  
    function distribute(address[] memory holdersAddresses, uint256[] memory volumeArray, uint256 totalVolume) public onlyAdmin returns (uint256) {
      // Distribute the emitted tokens
      require((todayEmissionLeft > 0), "Error: Distribution reached limit");
      uint256 _amount = distribution(holdersAddresses, volumeArray, todayEmission, totalVolume, todayEmissionLeft, _emitCap);
      todayEmissionLeft = todayEmissionLeft.sub(_amount);
      emit Distributed(holdersAddresses, volumeArray, totalVolume, _amount);
      return _amount;
    }
  
    function getTodayEmission() public view returns (uint256) {
        return todayEmission;
    }
    
    function getTodayEmissionLeft() public view returns (uint256) {
        return todayEmissionLeft;
    }
  
    function emitable() public view returns (bool) {
        return (releaseAt <= now);
    }
  
    function totalEmitCap() public pure returns (uint256) {
        return _emitCap;
    }

    function emitted() public view returns (uint256) {
        return _emitted;
    }
 

  constructor () public ERC20Detailed("THE PIC TOKEN", "PIC", DECIMALS) {
      createdAt = now;
      
      // Amount to be returned to players who earned old PIC tokens
      // Old PIC token address = 0xa1a56d66d6ec3b4c4310cf511cce040c67a6cbb2
      // This amount will be swaped 1:1 with Old PIC
      address emitTransferAccount = 0xf59aaab6B3685b23a9d8D19dC705861Ca9D37842;
      uint256 _AmountEmittedAlready = 539950 * (10 ** uint256(DECIMALS));
      _emitted = _emitted.add(_AmountEmittedAlready);
      _mint(emitTransferAccount, _AmountEmittedAlready);
      
  }
}

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":true,"inputs":[],"name":"getTodayEmission","outputs":[{"name":"","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":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"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":"value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalEmitCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"emitable","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":"from","type":"address"},{"name":"value","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"changeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"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":true,"inputs":[],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"emitted","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_percentage","type":"uint256"}],"name":"emitTokens","outputs":[{"name":"","type":"uint256"}],"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":true,"inputs":[],"name":"getTodayEmissionLeft","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"holdersAddresses","type":"address[]"},{"name":"volumeArray","type":"uint256[]"},{"name":"totalVolume","type":"uint256"}],"name":"distribute","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"emitAmount","type":"uint256"},{"indexed":false,"name":"percentage","type":"uint256"}],"name":"Emit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"holdersAddresses","type":"address[]"},{"indexed":false,"name":"volumeArray","type":"uint256[]"},{"indexed":false,"name":"totalVolume","type":"uint256"},{"indexed":false,"name":"emittedAmount","type":"uint256"}],"name":"Distributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"AdminChanged","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":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","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"}]

608060405242600a553480156200001557600080fd5b506040518060400160405280600d81526020017f5448452050494320544f4b454e000000000000000000000000000000000000008152506040518060400160405280600381526020017f5049430000000000000000000000000000000000000000000000000000000000815250601282600390805190602001906200009c92919062000436565b508160049080519060200190620000b592919062000436565b5080600560006101000a81548160ff021916908360ff16021790555050505033600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a342600981905550600073f59aaab6b3685b23a9d8d19dc705861ca9d3784290506000601260ff16600a0a62083d2e029050620001df81600654620001ff60201b6200184c1790919060201c565b600681905550620001f782826200028860201b60201c565b5050620004e5565b6000808284019050838110156200027e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4572726f723a206164646974696f6e206f766572666c6f77000000000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000310576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180620028e6602b913960400191505060405180910390fd5b6200032c81600254620001ff60201b6200184c1790919060201c565b6002819055506200038a816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620001ff60201b6200184c1790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200047957805160ff1916838001178555620004aa565b82800160010185558215620004aa579182015b82811115620004a95782518255916020019190600101906200048c565b5b509050620004b99190620004bd565b5090565b620004e291905b80821115620004de576000816000905550600101620004c4565b5090565b90565b6123f180620004f56000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80638da5cb5b116100de578063b6db75a011610097578063dd62ed3e11610071578063dd62ed3e14610742578063e24eba06146107ba578063f2fde38b146107d8578063f72df6511461081c57610173565b8063b6db75a0146106c0578063bd153c64146106e2578063d78b16a11461070057610173565b80638da5cb5b146104c15780638f2839701461050b5780638f32d59b1461054f57806395d89b4114610571578063a457c2d7146105f4578063a9059cbb1461065a57610173565b80633950935111610130578063395093511461034757806342966c68146103ad5780634c33b706146103db5780634c5dc105146103f957806370a082311461041b57806379cc67901461047357610173565b806306fdde0314610178578063095ea7b3146101fb5780630f56e3c21461026157806318160ddd1461027f57806323b872dd1461029d578063313ce56714610323575b600080fd5b610180610986565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c05780820151818401526020810190506101a5565b50505050905090810190601f1680156101ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102476004803603604081101561021157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a28565b604051808215151515815260200191505060405180910390f35b610269610a3f565b6040518082815260200191505060405180910390f35b610287610a49565b6040518082815260200191505060405180910390f35b610309600480360360608110156102b357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a53565b604051808215151515815260200191505060405180910390f35b61032b610b04565b604051808260ff1660ff16815260200191505060405180910390f35b6103936004803603604081101561035d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b1b565b604051808215151515815260200191505060405180910390f35b6103d9600480360360208110156103c357600080fd5b8101908080359060200190929190505050610bc0565b005b6103e3610bcd565b6040518082815260200191505060405180910390f35b610401610be2565b604051808215151515815260200191505060405180910390f35b61045d6004803603602081101561043157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bef565b6040518082815260200191505060405180910390f35b6104bf6004803603604081101561048957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c37565b005b6104c9610c45565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61054d6004803603602081101561052157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c6f565b005b610557610cd8565b604051808215151515815260200191505060405180910390f35b610579610d30565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105b957808201518184015260208101905061059e565b50505050905090810190601f1680156105e65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106406004803603604081101561060a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dd2565b604051808215151515815260200191505060405180910390f35b6106a66004803603604081101561067057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e77565b604051808215151515815260200191505060405180910390f35b6106c8610e8e565b604051808215151515815260200191505060405180910390f35b6106ea610ee6565b6040518082815260200191505060405180910390f35b61072c6004803603602081101561071657600080fd5b8101908080359060200190929190505050610ef0565b6040518082815260200191505060405180910390f35b6107a46004803603604081101561075857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110e8565b6040518082815260200191505060405180910390f35b6107c261116f565b6040518082815260200191505060405180910390f35b61081a600480360360208110156107ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611179565b005b6109706004803603606081101561083257600080fd5b810190808035906020019064010000000081111561084f57600080fd5b82018360208201111561086157600080fd5b8035906020019184602083028401116401000000008311171561088357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156108e357600080fd5b8201836020820111156108f557600080fd5b8035906020019184602083028401116401000000008311171561091757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001909291905050506111e2565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a1e5780601f106109f357610100808354040283529160200191610a1e565b820191906000526020600020905b815481529060010190602001808311610a0157829003601f168201915b5050505050905090565b6000610a353384846113b6565b6001905092915050565b6000600754905090565b6000600254905090565b6000610a608484846115ad565b610af98433610af485600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c390919063ffffffff16565b6113b6565b600190509392505050565b6000600560009054906101000a900460ff16905090565b6000610bb63384610bb185600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461184c90919063ffffffff16565b6113b6565b6001905092915050565b610bca33826118d4565b50565b6000601260ff16600a0a6302faf08002905090565b600042600a541115905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c418282611a72565b5050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c77610cd8565b610ccc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806122466032913960400191505060405180910390fd5b610cd581611b19565b50565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b606060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dc85780601f10610d9d57610100808354040283529160200191610dc8565b820191906000526020600020905b815481529060010190602001808311610dab57829003601f168201915b5050505050905090565b6000610e6d3384610e6885600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c390919063ffffffff16565b6113b6565b6001905092915050565b6000610e843384846115ad565b6001905092915050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6000600654905090565b6000610efa610e8e565b610f4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806121ca602a913960400191505060405180910390fd5b601260ff16600a0a6302faf0800260065410610fb6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806122786026913960400191505060405180910390fd5b42600a541115611011576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061239b6022913960400191505060405180910390fd5b6014821161101e57601491505b6064821061102b57606491505b62015180600a5401600a81905550600061105b601260ff16600a0a6302faf0800284611c2690919063ffffffff16565b9050611073620186a082611cc990919063ffffffff16565b905061108a8160065461184c90919063ffffffff16565b600681905550806007819055506007546008819055507fb8801a1dcc26943f527fb5802bce893417c3e3038a2f11d991dee7a53c4d69918184604051808381526020018281526020019250505060405180910390a180915050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600854905090565b611181610cd8565b6111d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806122466032913960400191505060405180910390fd5b6111df81611d58565b50565b60006111ec610e8e565b611241576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806121ca602a913960400191505060405180910390fd5b60006008541161129c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061232a6021913960400191505060405180910390fd5b60006112bd858560075486600854601260ff16600a0a6302faf08002611e9e565b90506112d4816008546117c390919063ffffffff16565b6008819055507f1e8f6c4882d5311b762b07c3d11f9044c07cf60ad7e6d3be450f49191dc5421085858584604051808060200180602001858152602001848152602001838103835287818151815260200191508051906020019060200280838360005b83811015611352578082015181840152602081019050611337565b50505050905001838103825286818151815260200191508051906020019060200280838360005b83811015611394578082015181840152602081019050611379565b50505050905001965050505050505060405180910390a1809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561143c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018061229e6030913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061236d602e913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611633576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001806122ce602f913960400191505060405180910390fd5b611684816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c390919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611717816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461184c90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008282111561183b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4572726f723a207375627472616374696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b600082840390508091505092915050565b6000808284019050838110156118ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4572726f723a206164646974696f6e206f766572666c6f77000000000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561195a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001806122fd602d913960400191505060405180910390fd5b61196f816002546117c390919063ffffffff16565b6002819055506119c6816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b611a7c82826118d4565b611b158233611b1084600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c390919063ffffffff16565b6113b6565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b9f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061234b6022913960400191505060405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f7ce7ec0b50378fb6c0186ffb5f48325f6593fcb4ca4386f21861af3129188f5c60405160405180910390a250565b600080831415611c395760009050611cc3565b6000828402905082848281611c4a57fe5b0414611cbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4572726f723a206d756c7469706c69636174696f6e206f766572666c6f77000081525060200191505060405180910390fd5b809150505b92915050565b6000808211611d40576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4572726f723a206469766973696f6e206f766572666c6f77000000000000000081525060200191505060405180910390fd5b6000828481611d4b57fe5b0490508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611dde576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806122206026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006002548211611efa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806121f4602c913960400191505060405180910390fd5b6000809050611f1461271087611c2690919063ffffffff16565b95506000611f2b8688611cc990919063ffffffff16565b905060008090505b8951811015611ff0576000898281518110611f4a57fe5b602002602001015190506000611f698285611c2690919063ffffffff16565b9050611f8061271082611cc990919063ffffffff16565b905060008c8481518110611f9057fe5b602002602001015190506000821115611fe057818910611fdf57611fb48183612000565b611fc7828a6117c390919063ffffffff16565b9850611fdc828761184c90919063ffffffff16565b95505b5b5050508080600101915050611f33565b5081925050509695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061219f602b913960400191505060405180910390fd5b61209b8160025461184c90919063ffffffff16565b6002819055506120f2816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461184c90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505056fe45524332303a206d696e7420746f20746865207a65726f2061646472657373206e6f7420616c6c6f77656441646d696e3a2063616c6c657220646f6573206e6f742068617665207468652041646d696e20726f6c65456d697373696f6e3a20456d697373696f6e20636170616369747920686173206265656e20726561636865644f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734163636573733a20596f7520617265206e6f7420616c6c6f77656420746f20706572666f726d207468697320616374696f6e4572726f723a20456d697373696f6e206c696d697420686173206265656e207265616368656445524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373206e6f7420616c6c6f77656445524332303a207472616e7366657220746f20746865207a65726f2061646472657373206e6f7420616c6c6f77656445524332303a206275726e2066726f6d20746865207a65726f2061646472657373206e6f7420616c6c6f7765644572726f723a20446973747269627574696f6e2072656163686564206c696d697441646d696e3a206163636f756e7420697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373206e6f7420616c6c6f7765644572726f723a2052656c656173652074696d6520686173206e6f7420706173736564a265627a7a72305820cce7d3c1dbe3f4304e35795d1f5fc383143ecbff5e96fe721771c4280b813dc764736f6c634300050a003245524332303a206d696e7420746f20746865207a65726f2061646472657373206e6f7420616c6c6f776564

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101735760003560e01c80638da5cb5b116100de578063b6db75a011610097578063dd62ed3e11610071578063dd62ed3e14610742578063e24eba06146107ba578063f2fde38b146107d8578063f72df6511461081c57610173565b8063b6db75a0146106c0578063bd153c64146106e2578063d78b16a11461070057610173565b80638da5cb5b146104c15780638f2839701461050b5780638f32d59b1461054f57806395d89b4114610571578063a457c2d7146105f4578063a9059cbb1461065a57610173565b80633950935111610130578063395093511461034757806342966c68146103ad5780634c33b706146103db5780634c5dc105146103f957806370a082311461041b57806379cc67901461047357610173565b806306fdde0314610178578063095ea7b3146101fb5780630f56e3c21461026157806318160ddd1461027f57806323b872dd1461029d578063313ce56714610323575b600080fd5b610180610986565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c05780820151818401526020810190506101a5565b50505050905090810190601f1680156101ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102476004803603604081101561021157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a28565b604051808215151515815260200191505060405180910390f35b610269610a3f565b6040518082815260200191505060405180910390f35b610287610a49565b6040518082815260200191505060405180910390f35b610309600480360360608110156102b357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a53565b604051808215151515815260200191505060405180910390f35b61032b610b04565b604051808260ff1660ff16815260200191505060405180910390f35b6103936004803603604081101561035d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b1b565b604051808215151515815260200191505060405180910390f35b6103d9600480360360208110156103c357600080fd5b8101908080359060200190929190505050610bc0565b005b6103e3610bcd565b6040518082815260200191505060405180910390f35b610401610be2565b604051808215151515815260200191505060405180910390f35b61045d6004803603602081101561043157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bef565b6040518082815260200191505060405180910390f35b6104bf6004803603604081101561048957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c37565b005b6104c9610c45565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61054d6004803603602081101561052157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c6f565b005b610557610cd8565b604051808215151515815260200191505060405180910390f35b610579610d30565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105b957808201518184015260208101905061059e565b50505050905090810190601f1680156105e65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106406004803603604081101561060a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dd2565b604051808215151515815260200191505060405180910390f35b6106a66004803603604081101561067057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e77565b604051808215151515815260200191505060405180910390f35b6106c8610e8e565b604051808215151515815260200191505060405180910390f35b6106ea610ee6565b6040518082815260200191505060405180910390f35b61072c6004803603602081101561071657600080fd5b8101908080359060200190929190505050610ef0565b6040518082815260200191505060405180910390f35b6107a46004803603604081101561075857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110e8565b6040518082815260200191505060405180910390f35b6107c261116f565b6040518082815260200191505060405180910390f35b61081a600480360360208110156107ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611179565b005b6109706004803603606081101561083257600080fd5b810190808035906020019064010000000081111561084f57600080fd5b82018360208201111561086157600080fd5b8035906020019184602083028401116401000000008311171561088357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156108e357600080fd5b8201836020820111156108f557600080fd5b8035906020019184602083028401116401000000008311171561091757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001909291905050506111e2565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a1e5780601f106109f357610100808354040283529160200191610a1e565b820191906000526020600020905b815481529060010190602001808311610a0157829003601f168201915b5050505050905090565b6000610a353384846113b6565b6001905092915050565b6000600754905090565b6000600254905090565b6000610a608484846115ad565b610af98433610af485600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c390919063ffffffff16565b6113b6565b600190509392505050565b6000600560009054906101000a900460ff16905090565b6000610bb63384610bb185600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461184c90919063ffffffff16565b6113b6565b6001905092915050565b610bca33826118d4565b50565b6000601260ff16600a0a6302faf08002905090565b600042600a541115905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c418282611a72565b5050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c77610cd8565b610ccc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806122466032913960400191505060405180910390fd5b610cd581611b19565b50565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b606060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dc85780601f10610d9d57610100808354040283529160200191610dc8565b820191906000526020600020905b815481529060010190602001808311610dab57829003601f168201915b5050505050905090565b6000610e6d3384610e6885600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c390919063ffffffff16565b6113b6565b6001905092915050565b6000610e843384846115ad565b6001905092915050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6000600654905090565b6000610efa610e8e565b610f4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806121ca602a913960400191505060405180910390fd5b601260ff16600a0a6302faf0800260065410610fb6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806122786026913960400191505060405180910390fd5b42600a541115611011576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061239b6022913960400191505060405180910390fd5b6014821161101e57601491505b6064821061102b57606491505b62015180600a5401600a81905550600061105b601260ff16600a0a6302faf0800284611c2690919063ffffffff16565b9050611073620186a082611cc990919063ffffffff16565b905061108a8160065461184c90919063ffffffff16565b600681905550806007819055506007546008819055507fb8801a1dcc26943f527fb5802bce893417c3e3038a2f11d991dee7a53c4d69918184604051808381526020018281526020019250505060405180910390a180915050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600854905090565b611181610cd8565b6111d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806122466032913960400191505060405180910390fd5b6111df81611d58565b50565b60006111ec610e8e565b611241576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806121ca602a913960400191505060405180910390fd5b60006008541161129c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061232a6021913960400191505060405180910390fd5b60006112bd858560075486600854601260ff16600a0a6302faf08002611e9e565b90506112d4816008546117c390919063ffffffff16565b6008819055507f1e8f6c4882d5311b762b07c3d11f9044c07cf60ad7e6d3be450f49191dc5421085858584604051808060200180602001858152602001848152602001838103835287818151815260200191508051906020019060200280838360005b83811015611352578082015181840152602081019050611337565b50505050905001838103825286818151815260200191508051906020019060200280838360005b83811015611394578082015181840152602081019050611379565b50505050905001965050505050505060405180910390a1809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561143c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018061229e6030913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061236d602e913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611633576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001806122ce602f913960400191505060405180910390fd5b611684816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c390919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611717816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461184c90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008282111561183b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4572726f723a207375627472616374696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b600082840390508091505092915050565b6000808284019050838110156118ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4572726f723a206164646974696f6e206f766572666c6f77000000000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561195a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001806122fd602d913960400191505060405180910390fd5b61196f816002546117c390919063ffffffff16565b6002819055506119c6816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b611a7c82826118d4565b611b158233611b1084600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c390919063ffffffff16565b6113b6565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b9f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061234b6022913960400191505060405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f7ce7ec0b50378fb6c0186ffb5f48325f6593fcb4ca4386f21861af3129188f5c60405160405180910390a250565b600080831415611c395760009050611cc3565b6000828402905082848281611c4a57fe5b0414611cbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4572726f723a206d756c7469706c69636174696f6e206f766572666c6f77000081525060200191505060405180910390fd5b809150505b92915050565b6000808211611d40576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4572726f723a206469766973696f6e206f766572666c6f77000000000000000081525060200191505060405180910390fd5b6000828481611d4b57fe5b0490508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611dde576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806122206026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006002548211611efa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806121f4602c913960400191505060405180910390fd5b6000809050611f1461271087611c2690919063ffffffff16565b95506000611f2b8688611cc990919063ffffffff16565b905060008090505b8951811015611ff0576000898281518110611f4a57fe5b602002602001015190506000611f698285611c2690919063ffffffff16565b9050611f8061271082611cc990919063ffffffff16565b905060008c8481518110611f9057fe5b602002602001015190506000821115611fe057818910611fdf57611fb48183612000565b611fc7828a6117c390919063ffffffff16565b9850611fdc828761184c90919063ffffffff16565b95505b5b5050508080600101915050611f33565b5081925050509695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061219f602b913960400191505060405180910390fd5b61209b8160025461184c90919063ffffffff16565b6002819055506120f2816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461184c90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505056fe45524332303a206d696e7420746f20746865207a65726f2061646472657373206e6f7420616c6c6f77656441646d696e3a2063616c6c657220646f6573206e6f742068617665207468652041646d696e20726f6c65456d697373696f6e3a20456d697373696f6e20636170616369747920686173206265656e20726561636865644f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734163636573733a20596f7520617265206e6f7420616c6c6f77656420746f20706572666f726d207468697320616374696f6e4572726f723a20456d697373696f6e206c696d697420686173206265656e207265616368656445524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373206e6f7420616c6c6f77656445524332303a207472616e7366657220746f20746865207a65726f2061646472657373206e6f7420616c6c6f77656445524332303a206275726e2066726f6d20746865207a65726f2061646472657373206e6f7420616c6c6f7765644572726f723a20446973747269627574696f6e2072656163686564206c696d697441646d696e3a206163636f756e7420697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373206e6f7420616c6c6f7765644572726f723a2052656c656173652074696d6520686173206e6f7420706173736564a265627a7a72305820cce7d3c1dbe3f4304e35795d1f5fc383143ecbff5e96fe721771c4280b813dc764736f6c634300050a0032

Deployed Bytecode Sourcemap

7468:4127:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7468:4127:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7192:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7192:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2243:148;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2243:148:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10494:97;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1740:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2399:231;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2399:231:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7378:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2638:206;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2638:206:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5751:79;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5751:79:0;;;;;;;;;;;;;;;;;:::i;:::-;;10819:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10718:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1839:106;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1839:106:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5838:95;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5838:95:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6213:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8598:91;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8598:91:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;6432:92;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7283:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7283:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2852:216;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2852:216:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2095:140;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2095:140:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8504:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10915:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8894:1026;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8894:1026:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1953:134;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1953:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10603:105;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6534:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6534:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;9930:554;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9930:554:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9930:554:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9930:554:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9930:554:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;9930:554:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9930:554:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9930:554:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9930:554:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;9930:554:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7192:83;7229:13;7262:5;7255:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7192:83;:::o;2243:148::-;2308:4;2325:36;2334:10;2346:7;2355:5;2325:8;:36::i;:::-;2379:4;2372:11;;2243:148;;;;:::o;10494:97::-;10543:7;10570:13;;10563:20;;10494:97;:::o;1740:91::-;1784:7;1811:12;;1804:19;;1740:91;:::o;2399:231::-;2478:4;2495:26;2505:4;2511:2;2515:5;2495:9;:26::i;:::-;2532:68;2541:4;2547:10;2559:40;2593:5;2559:11;:17;2571:4;2559:17;;;;;;;;;;;;;;;:29;2577:10;2559:29;;;;;;;;;;;;;;;;:33;;:40;;;;:::i;:::-;2532:8;:68::i;:::-;2618:4;2611:11;;2399:231;;;;;:::o;7378:83::-;7419:5;7444:9;;;;;;;;;;;7437:16;;7378:83;:::o;2638:206::-;2718:4;2735:79;2744:10;2756:7;2765:48;2802:10;2765:11;:23;2777:10;2765:23;;;;;;;;;;;;;;;:32;2789:7;2765:32;;;;;;;;;;;;;;;;:36;;:48;;;;:::i;:::-;2735:8;:79::i;:::-;2832:4;2825:11;;2638:206;;;;:::o;5751:79::-;5798:24;5804:10;5816:5;5798;:24::i;:::-;5751:79;:::o;10819:88::-;10864:7;7598:2;7661:17;;7655:2;:23;7643:8;:36;10884:15;;10819:88;:::o;10718:91::-;10759:4;10797:3;10784:9;;:16;;10776:25;;10718:91;:::o;1839:106::-;1894:7;1921:9;:16;1931:5;1921:16;;;;;;;;;;;;;;;;1914:23;;1839:106;;;:::o;5838:95::-;5903:22;5913:4;5919:5;5903:9;:22::i;:::-;5838:95;;:::o;6213:79::-;6251:7;6278:6;;;;;;;;;;;6271:13;;6213:79;:::o;8598:91::-;6340:9;:7;:9::i;:::-;6332:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8662:21;8675:7;8662:12;:21::i;:::-;8598:91;:::o;6432:92::-;6472:4;6510:6;;;;;;;;;;;6496:20;;:10;:20;;;6489:27;;6432:92;:::o;7283:87::-;7322:13;7355:7;7348:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7283:87;:::o;2852:216::-;2937:4;2954:84;2963:10;2975:7;2984:53;3021:15;2984:11;:23;2996:10;2984:23;;;;;;;;;;;;;;;:32;3008:7;2984:32;;;;;;;;;;;;;;;;:36;;:53;;;;:::i;:::-;2954:8;:84::i;:::-;3056:4;3049:11;;2852:216;;;;:::o;2095:140::-;2156:4;2173:32;2183:10;2195:2;2199:5;2173:9;:32::i;:::-;2223:4;2216:11;;2095:140;;;;:::o;8504:88::-;8544:4;8580:6;;;;;;;;;;;8566:20;;:10;:20;;;8559:27;;8504:88;:::o;10915:83::-;10955:7;10982:8;;10975:15;;10915:83;:::o;8894:1026::-;8961:7;8424:9;:7;:9::i;:::-;8416:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7598:2;7661:17;;7655:2;:23;7643:8;:36;8988:8;;:19;8979:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9082:3;9069:9;;:16;;9060:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7815:2;9140:11;:25;9136:78;;7815:2;9180:24;;9136:78;7884:3;9226:11;:25;9222:78;;7884:3;9266:24;;9222:78;7951:5;9328:9;;:18;9316:9;:30;;;;9426:19;9448:25;7598:2;7661:17;;7655:2;:23;7643:8;:36;9448:11;:15;;:25;;;;:::i;:::-;9426:47;;9496:32;7995:6;9496:11;:15;;:32;;;;:::i;:::-;9482:46;;9649:25;9662:11;9649:8;;:12;;:25;;;;:::i;:::-;9638:8;:36;;;;9747:11;9731:13;:27;;;;9787:13;;9767:17;:33;;;;9847:30;9852:11;9865;9847:30;;;;;;;;;;;;;;;;;;;;;;;;9901:11;9894:18;;;8894:1026;;;:::o;1953:134::-;2025:7;2052:11;:18;2064:5;2052:18;;;;;;;;;;;;;;;:27;2071:7;2052:27;;;;;;;;;;;;;;;;2045:34;;1953:134;;;;:::o;10603:105::-;10656:7;10683:17;;10676:24;;10603:105;:::o;6534:109::-;6340:9;:7;:9::i;:::-;6332:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6607:28;6626:8;6607:18;:28::i;:::-;6534:109;:::o;9930:554::-;10062:7;8424:9;:7;:9::i;:::-;8416:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10149:1;10129:17;;:21;10120:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10198:15;10216:100;10229:16;10247:11;10260:13;;10275:11;10288:17;;7598:2;7661:17;;7655:2;:23;7643:8;:36;10216:12;:100::i;:::-;10198:118;;10345:30;10367:7;10345:17;;:21;;:30;;;;:::i;:::-;10325:17;:50;;;;10389:64;10401:16;10419:11;10432;10445:7;10389:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;10389:64: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;10389:64:0;;;;;;;;;;;;;;;;;;;;;10469:7;10462:14;;;9930:554;;;;;:::o;4047:359::-;4157:1;4140:19;;:5;:19;;;;4132:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4250:1;4231:21;;:7;:21;;;;4223:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4346:5;4316:11;:18;4328:5;4316:18;;;;;;;;;;;;;;;:27;4335:7;4316:27;;;;;;;;;;;;;;;:35;;;;4383:7;4367:31;;4376:5;4367:31;;;4392:5;4367:31;;;;;;;;;;;;;;;;;;4047:359;;;:::o;3076:313::-;3178:1;3164:16;;:2;:16;;;;3156:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3263:26;3283:5;3263:9;:15;3273:4;3263:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;3245:9;:15;3255:4;3245:15;;;;;;;;;;;;;;;:44;;;;3316:24;3334:5;3316:9;:13;3326:2;3316:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;3300:9;:13;3310:2;3300:13;;;;;;;;;;;;;;;:40;;;;3371:2;3356:25;;3365:4;3356:25;;;3375:5;3356:25;;;;;;;;;;;;;;;;;;3076:313;;;:::o;720:181::-;778:7;811:1;806;:6;;798:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;855:9;871:1;867;:5;855:17;;892:1;885:8;;;720:181;;;;:::o;909:178::-;967:7;987:9;1003:1;999;:5;987:17;;1028:1;1023;:6;;1015:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1078:1;1071:8;;;909:178;;;;:::o;3721:318::-;3815:1;3796:21;;:7;:21;;;;3788:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3895:23;3912:5;3895:12;;:16;;:23;;;;:::i;:::-;3880:12;:38;;;;3950:29;3973:5;3950:9;:18;3960:7;3950:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;3929:9;:18;3939:7;3929:18;;;;;;;;;;;;;;;:50;;;;4021:1;3995:36;;4004:7;3995:36;;;4025:5;3995:36;;;;;;;;;;;;;;;;;;3721:318;;:::o;4414:185::-;4485:21;4491:7;4500:5;4485;:21::i;:::-;4517:74;4526:7;4535:10;4547:43;4584:5;4547:11;:20;4559:7;4547:20;;;;;;;;;;;;;;;:32;4568:10;4547:32;;;;;;;;;;;;;;;;:36;;:43;;;;:::i;:::-;4517:8;:74::i;:::-;4414:185;;:::o;8695:191::-;8779:1;8760:21;;:7;:21;;;;8752:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8838:7;8829:6;;:16;;;;;;;;;;;;;;;;;;8872:7;8859:21;;;;;;;;;;;;8695:191;:::o;1273:217::-;1331:7;1356:1;1351;:6;1347:37;;;1375:1;1368:8;;;;1347:37;1390:9;1406:1;1402;:5;1390:17;;1432:1;1427;1423;:5;;;;;;:10;1414:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1483:1;1476:8;;;1273:217;;;;;:::o;1099:164::-;1157:7;1185:1;1181;:5;1173:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1223:9;1239:1;1235;:5;;;;;;1223:17;;1256:1;1249:8;;;1099:164;;;;:::o;6651:229::-;6745:1;6725:22;;:8;:22;;;;6717:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6835:8;6806:38;;6827:6;;;;;;;;;;;6806:38;;;;;;;;;;;;6864:8;6855:6;;:17;;;;;;;;;;;;;;;;;;6651:229;:::o;4611:1086::-;4802:7;4840:12;;4831:8;:21;4822:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4923:21;4947:1;4923:25;;4976;4995:5;4976:14;:18;;:25;;;;:::i;:::-;4959:42;;5012:14;5029:31;5048:11;5029:14;:18;;:31;;;;:::i;:::-;5012:48;;5076:6;5085:1;5076:10;;5071:588;5092:16;:23;5088:1;:27;5071:588;;;5151:14;5168:11;5180:1;5168:14;;;;;;;;;;;;;;5151:31;;5197:18;5218;5229:6;5218;:10;;:18;;;;:::i;:::-;5197:39;;5264:21;5279:5;5264:10;:14;;:21;;;;:::i;:::-;5251:34;;5300:18;5321:16;5338:1;5321:19;;;;;;;;;;;;;;5300:40;;5371:1;5358:10;:14;5355:293;;;5413:10;5396:13;:27;5392:241;;5448:29;5454:10;5466;5448:5;:29::i;:::-;5516;5534:10;5516:13;:17;;:29;;;;:::i;:::-;5500:45;;5584:29;5602:10;5584:13;:17;;:29;;;;:::i;:::-;5568:45;;5392:241;5355:293;5071:588;;;5117:3;;;;;;;5071:588;;;;5676:13;5669:20;;;;4611:1086;;;;;;;;:::o;3397:316::-;3491:1;3472:21;;:7;:21;;;;3464:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3569:23;3586:5;3569:12;;:16;;:23;;;;:::i;:::-;3554:12;:38;;;;3624:29;3647:5;3624:9;:18;3634:7;3624:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;3603:9;:18;3613:7;3603:18;;;;;;;;;;;;;;;:50;;;;3690:7;3669:36;;3686:1;3669:36;;;3699:5;3669:36;;;;;;;;;;;;;;;;;;3397:316;;:::o

Swarm Source

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