ETH Price: $3,193.42 (-2.15%)

Token

HEXTEWKEN (HEX2)
 

Overview

Max Total Supply

67,036,065.64272154 HEX2

Holders

0

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
0 HEX2

Value
$0.00
0xc043c9cdb32342c277e9953804573373252fa479
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:
HKS

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-01-20
*/

pragma solidity ^0.4.26;

library SafeMath {

  function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
    if (a == 0) {
      return 0;
    }
    c = a * b;
    assert(c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    return a / b;
  }

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

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

}

contract TOKEN {
   function totalSupply() external view returns (uint256);
   function balanceOf(address account) external view returns (uint256);
   function transfer(address recipient, uint256 amount) external returns (bool);
   function allowance(address owner, address spender) external view returns (uint256);
   function approve(address spender, uint256 amount) external returns (bool);
   function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
   function stakeStart(uint256 newStakedHearts, uint256 newStakedDays) external;
   function stakeEnd(uint256 stakeIndex, uint40 stakeIdParam) external;
   function stakeCount(address stakerAddr) external view returns (uint256);
   function stakeLists(address owner, uint256 stakeIndex) external view returns (uint40, uint72, uint72, uint16, uint16, uint16, bool);
   function currentDay() external view returns (uint256);
}

contract Ownable {

  address public owner;

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

  constructor() public {
    owner = address(0xe21AC1CAE34c532a38B604669E18557B2d8840Fc);
  }

  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }

  function transferOwnership(address newOwner) public onlyOwner {
    require(newOwner != address(0));
    emit OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}

contract HKS is Ownable {

    uint256 ACTIVATION_TIME = 1579564800;

    modifier isActivated {
        require(now >= ACTIVATION_TIME);
        _;
    }

    modifier onlyCustodian() {
      require(msg.sender == custodianAddress);
      _;
    }

    modifier onlyTokenHolders {
        require(myTokens(true) > 0);
        _;
    }

    modifier onlyDivis {
        require(myDividends() > 0);
        _;
    }

    modifier isStakeActivated {
        require(stakeActivated == true);
        _;
    }

    event onDistribute(
        address indexed customerAddress,
        uint256 price
    );

    event onTokenPurchase(
        address indexed customerAddress,
        uint256 incomingHEX,
        uint256 tokensMinted,
        uint timestamp
    );

    event onTokenSell(
        address indexed customerAddress,
        uint256 tokensBurned,
        uint256 hexEarned,
        uint timestamp
    );

    event onRoll(
        address indexed customerAddress,
        uint256 hexRolled,
        uint256 tokensMinted
    );

    event onWithdraw(
        address indexed customerAddress,
        uint256 hexWithdrawn
    );

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

    event onStakeStart(
        address indexed customerAddress,
        uint256 uniqueID,
        uint256 timestamp
    );

    event onStakeEnd(
        address indexed customerAddress,
        uint256 uniqueID,
        uint256 returnAmount,
        uint256 timestamp
    );

    string public name = "HEXTEWKEN";
    string public symbol = "HEX2";
    uint8 constant public decimals = 8;

    address internal maintenanceAddress;
    address internal custodianAddress;

    uint256 internal entryFee_ = 10;
    uint256 internal transferFee_ = 1;
    uint256 internal exitFee_ = 10;
    uint256 internal tewkenaireFee_ = 10; // 10% of the 10% buy or sell fees makes it 1%
    uint256 internal maintenanceFee_ = 10; // 10% of the 10% buy or sell fees makes it 1%

    address public approvedAddress1;
    address public approvedAddress2;
    address public distributionAddress;
    uint256 public totalFundCollected;

    uint256 constant internal magnitude = 2 ** 64;

    mapping(address => uint256) internal tokenBalanceLedger_;
    mapping(address => uint256) public lockedTokenBalanceLedger;
    mapping(address => int256) internal payoutsTo_;

    mapping (address => Stats) public playerStats;

    struct Stats {
       uint256 deposits;
       uint256 withdrawals;
       uint256 staked;
       int256 stakedNetProfitLoss;
       uint256 activeStakes;
    }

    uint256 public totalStakeBalance = 0;

    uint256 internal tokenSupply_;
    uint256 internal profitPerShare_;
    uint256 public totalPlayer = 0;
    uint256 public totalDonation = 0;
    TOKEN erc20;

    struct StakeStore {
      uint40 stakeID;
      uint256 hexAmount;
      uint72 stakeShares;
      uint16 lockedDay;
      uint16 stakedDays;
      uint16 unlockedDay;
      bool started;
      bool ended;
    }

    bool stakeActivated = true;
    mapping(address => mapping(uint256 => StakeStore)) public stakeLists;

    constructor() public {
        maintenanceAddress = address(0xe21AC1CAE34c532a38B604669E18557B2d8840Fc);
        custodianAddress = address(0x24B23bB643082026227e945C7833B81426057b10);
        distributionAddress = address(0xfE8D614431E5fea2329B05839f29B553b1Cb99A2);
        approvedAddress1 = distributionAddress;
        approvedAddress2 = distributionAddress;
        erc20 = TOKEN(address(0x2b591e99afE9f32eAA6214f7B7629768c40Eeb39));
    }

    function checkAndTransferHEX(uint256 _amount) private {
        require(erc20.transferFrom(msg.sender, address(this), _amount) == true, "transfer must succeed");
    }

    function distribute(uint256 _amount) public returns (uint256) {
        require(_amount > 0, "must be a positive value");
        checkAndTransferHEX(_amount);
        totalDonation += _amount;
        profitPerShare_ = SafeMath.add(profitPerShare_, (_amount * magnitude) / tokenSupply_);
        emit onDistribute(msg.sender, _amount);
    }

    function buy(uint256 _amount) public returns (uint256) {
        checkAndTransferHEX(_amount);
        return purchaseTokens(msg.sender, _amount);
    }

    function buyFor(uint256 _amount, address _customerAddress) public returns (uint256) {
        checkAndTransferHEX(_amount);
        return purchaseTokens(_customerAddress, _amount);
    }

    function() payable public {
        revert();
    }

    function roll() onlyDivis public {
        address _customerAddress = msg.sender;
        uint256 _dividends = myDividends();
        payoutsTo_[_customerAddress] +=  (int256) (_dividends * magnitude);
        uint256 _tokens = purchaseTokens(_customerAddress, _dividends);
        emit onRoll(_customerAddress, _dividends, _tokens);
    }

    function exit() external {
        address _customerAddress = msg.sender;
        uint256 _tokens = SafeMath.sub(tokenBalanceLedger_[_customerAddress], lockedTokenBalanceLedger[_customerAddress]);
        if (_tokens > 0) sell(_tokens);
        withdraw();
    }

    function withdraw() onlyDivis public {
        address _customerAddress = msg.sender;
        uint256 _dividends = myDividends();
        payoutsTo_[_customerAddress] += (int256) (_dividends * magnitude);
        erc20.transfer(_customerAddress, _dividends);
        Stats storage stats = playerStats[_customerAddress];
        stats.withdrawals += _dividends;
        emit onWithdraw(_customerAddress, _dividends);
    }

    function sell(uint256 _amountOfTokens) onlyTokenHolders public {
        address _customerAddress = msg.sender;
        require(_amountOfTokens <= SafeMath.sub(tokenBalanceLedger_[_customerAddress], lockedTokenBalanceLedger[_customerAddress]));

        uint256 _undividedDividends = SafeMath.div(SafeMath.mul(_amountOfTokens, exitFee_), 100);

        uint256 _maintenance = SafeMath.div(SafeMath.mul(_undividedDividends, maintenanceFee_),100);
        erc20.transfer(maintenanceAddress, _maintenance);

        uint256 _tewkenaire = SafeMath.div(SafeMath.mul(_undividedDividends, tewkenaireFee_), 100);
        totalFundCollected += _tewkenaire;
        erc20.transfer(distributionAddress, _tewkenaire);

        uint256 _dividends = SafeMath.sub(_undividedDividends, SafeMath.add(_maintenance,_tewkenaire));
        uint256 _taxedHEX = SafeMath.sub(_amountOfTokens, _undividedDividends);

        tokenSupply_ = SafeMath.sub(tokenSupply_, _amountOfTokens);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens);

        int256 _updatedPayouts = (int256) (profitPerShare_ * _amountOfTokens + (_taxedHEX * magnitude));
        payoutsTo_[_customerAddress] -= _updatedPayouts;

        if (tokenSupply_ > 0) {
            profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
        }

        emit Transfer(_customerAddress, address(0), _amountOfTokens);
        emit onTokenSell(_customerAddress, _amountOfTokens, _taxedHEX, now);
    }

    function transfer(address _toAddress, uint256 _amountOfTokens) onlyTokenHolders external returns (bool){
        address _customerAddress = msg.sender;
        require(_amountOfTokens <= SafeMath.sub(tokenBalanceLedger_[_customerAddress], lockedTokenBalanceLedger[_customerAddress]));

        if (myDividends() > 0) {
            withdraw();
        }

        uint256 _tokenFee = SafeMath.div(SafeMath.mul(_amountOfTokens, transferFee_), 100);
        uint256 _taxedTokens = SafeMath.sub(_amountOfTokens, _tokenFee);
        uint256 _dividends = _tokenFee;

        tokenSupply_ = SafeMath.sub(tokenSupply_, _tokenFee);

        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        tokenBalanceLedger_[_toAddress] = SafeMath.add(tokenBalanceLedger_[_toAddress], _taxedTokens);

        payoutsTo_[_customerAddress] -= (int256) (profitPerShare_ * _amountOfTokens);
        payoutsTo_[_toAddress] += (int256) (profitPerShare_ * _taxedTokens);

        profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);

        emit Transfer(_customerAddress, _toAddress, _taxedTokens);

        return true;
    }

    function setName(string _name) onlyOwner public
    {
       name = _name;
    }

    function setSymbol(string _symbol) onlyOwner public
    {
       symbol = _symbol;
    }

    function setHexStaking(bool _stakeActivated) onlyOwner public
    {
       stakeActivated = _stakeActivated;
    }

    function approveAddress1(address _proposedAddress) onlyOwner public
    {
       approvedAddress1 = _proposedAddress;
    }

    function approveAddress2(address _proposedAddress) onlyCustodian public
    {
       approvedAddress2 = _proposedAddress;
    }

    function setAtomicSwapAddress() public
    {
        require(approvedAddress1 == approvedAddress2);
        distributionAddress = approvedAddress1;
    }

    function totalHexBalance() public view returns (uint256) {
        return erc20.balanceOf(address(this));
    }

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

    function myTokens(bool _state) public view returns (uint256) {
        address _customerAddress = msg.sender;
        return balanceOf(_customerAddress, _state);
    }

    function myDividends() public view returns (uint256) {
        address _customerAddress = msg.sender;
        return dividendsOf(_customerAddress);
    }

    function balanceOf(address _customerAddress, bool stakable) public view returns (uint256) {
        if (stakable == false) {
          return tokenBalanceLedger_[_customerAddress];
        }
        else if (stakable == true){
          return SafeMath.sub(tokenBalanceLedger_[_customerAddress], lockedTokenBalanceLedger[_customerAddress]);
        }
    }

    function dividendsOf(address _customerAddress) public view returns (uint256) {
        return (uint256) ((int256) (profitPerShare_ * tokenBalanceLedger_[_customerAddress]) - payoutsTo_[_customerAddress]) / magnitude;
    }

    function sellPrice() public view returns (uint256) {
        uint256 _hex = 1e8;
        uint256 _dividends = SafeMath.div(SafeMath.mul(_hex, exitFee_), 100);
        uint256 _taxedHEX = SafeMath.sub(_hex, _dividends);

        return _taxedHEX;
    }

    function buyPrice() public view returns (uint256) {
        uint256 _hex = 1e8;
        uint256 _dividends = SafeMath.div(SafeMath.mul(_hex, entryFee_), 100);
        uint256 _taxedHEX = SafeMath.add(_hex, _dividends);

        return _taxedHEX;
    }

    function calculateTokensReceived(uint256 _hexToSpend) public view returns (uint256) {
        uint256 _dividends = SafeMath.div(SafeMath.mul(_hexToSpend, entryFee_), 100);
        uint256 _amountOfTokens = SafeMath.sub(_hexToSpend, _dividends);

        return _amountOfTokens;
    }

    function calculateHexReceived(uint256 _tokensToSell) public view returns (uint256) {
        require(_tokensToSell <= tokenSupply_);
        uint256 _dividends = SafeMath.div(SafeMath.mul(_tokensToSell, exitFee_), 100);
        uint256 _taxedHEX = SafeMath.sub(_tokensToSell, _dividends);

        return _taxedHEX;
    }

    function purchaseTokens(address _customerAddress, uint256 _incomingHEX) internal isActivated returns (uint256) {
        Stats storage stats = playerStats[_customerAddress];

        if (stats.deposits == 0) {
            totalPlayer++;
        }

        stats.deposits += _incomingHEX;

        uint256 _undividedDividends = SafeMath.div(SafeMath.mul(_incomingHEX, entryFee_), 100);

        uint256 _maintenance = SafeMath.div(SafeMath.mul(_undividedDividends, maintenanceFee_),100);
        erc20.transfer(maintenanceAddress, _maintenance);

        uint256 _tewkenaire = SafeMath.div(SafeMath.mul(_undividedDividends, tewkenaireFee_), 100);
        totalFundCollected += _tewkenaire;
        erc20.transfer(distributionAddress, _tewkenaire);

        uint256 _dividends = SafeMath.sub(_undividedDividends, SafeMath.add(_tewkenaire,_maintenance));
        uint256 _amountOfTokens = SafeMath.sub(_incomingHEX, _undividedDividends);
        uint256 _fee = _dividends * magnitude;

        require(_amountOfTokens > 0 && SafeMath.add(_amountOfTokens, tokenSupply_) > tokenSupply_);

        if (tokenSupply_ > 0) {
            tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens);
            profitPerShare_ += (_dividends * magnitude / tokenSupply_);
            _fee = _fee - (_fee - (_amountOfTokens * (_dividends * magnitude / tokenSupply_)));
        } else {
            tokenSupply_ = _amountOfTokens;
        }

        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfTokens);

        int256 _updatedPayouts = (int256) (profitPerShare_ * _amountOfTokens - _fee);
        payoutsTo_[_customerAddress] += _updatedPayouts;

        emit Transfer(address(0), _customerAddress, _amountOfTokens);
        emit onTokenPurchase(_customerAddress, _incomingHEX, _amountOfTokens, now);

        return _amountOfTokens;
    }

    function stakeStart(uint256 _amount, uint256 _days) public isStakeActivated {
      require(_amount <= 4722366482869645213695);
      require(balanceOf(msg.sender, true) >= _amount);

      erc20.stakeStart(_amount, _days); // revert or succeed

      uint256 _stakeIndex;
      uint40 _stakeID;
      uint72 _stakeShares;
      uint16 _lockedDay;
      uint16 _stakedDays;

      _stakeIndex = erc20.stakeCount(address(this));
      _stakeIndex = SafeMath.sub(_stakeIndex, 1);

      (_stakeID,,_stakeShares,_lockedDay,_stakedDays,,) = erc20.stakeLists(address(this), _stakeIndex);

      uint256 _uniqueID =  uint256(keccak256(abi.encodePacked(_stakeID, _stakeShares))); // unique enough
      require(stakeLists[msg.sender][_uniqueID].started == false); // still check for collision
      stakeLists[msg.sender][_uniqueID].started = true;

      stakeLists[msg.sender][_uniqueID] = StakeStore(_stakeID, _amount, _stakeShares, _lockedDay, _stakedDays, uint16(0), true, false);

      totalStakeBalance = SafeMath.add(totalStakeBalance, _amount);

      Stats storage stats = playerStats[msg.sender];
      stats.activeStakes += 1;
      stats.staked += _amount;

      lockedTokenBalanceLedger[msg.sender] = SafeMath.add(lockedTokenBalanceLedger[msg.sender], _amount);

      emit onStakeStart(msg.sender, _uniqueID, now);
    }

    function _stakeEnd(uint256 _stakeIndex, uint40 _stakeIdParam, uint256 _uniqueID) public view returns (uint16){
      uint40 _stakeID;
      uint72 _stakedHearts;
      uint72 _stakeShares;
      uint16 _lockedDay;
      uint16 _stakedDays;
      uint16 _unlockedDay;

      (_stakeID,_stakedHearts,_stakeShares,_lockedDay,_stakedDays,_unlockedDay,) = erc20.stakeLists(address(this), _stakeIndex);
      require(stakeLists[msg.sender][_uniqueID].started == true && stakeLists[msg.sender][_uniqueID].ended == false);
      require(stakeLists[msg.sender][_uniqueID].stakeID == _stakeIdParam && _stakeIdParam == _stakeID);
      require(stakeLists[msg.sender][_uniqueID].hexAmount == uint256(_stakedHearts));
      require(stakeLists[msg.sender][_uniqueID].stakeShares == _stakeShares);
      require(stakeLists[msg.sender][_uniqueID].lockedDay == _lockedDay);
      require(stakeLists[msg.sender][_uniqueID].stakedDays == _stakedDays);

      return _unlockedDay;
    }

    function stakeEnd(uint256 _stakeIndex, uint40 _stakeIdParam, uint256 _uniqueID) public {
      uint16 _unlockedDay = _stakeEnd(_stakeIndex, _stakeIdParam, _uniqueID);

      if (_unlockedDay == 0){
        stakeLists[msg.sender][_uniqueID].unlockedDay = uint16(erc20.currentDay()); // no penalty/penalty/reward
      } else {
        stakeLists[msg.sender][_uniqueID].unlockedDay = _unlockedDay;
      }

      uint256 _balance = erc20.balanceOf(address(this));

      erc20.stakeEnd(_stakeIndex, _stakeIdParam); // revert or 0 or less or equal or more hex returned.
      stakeLists[msg.sender][_uniqueID].ended = true;

      uint256 _amount = SafeMath.sub(erc20.balanceOf(address(this)), _balance);
      uint256 _stakedAmount = stakeLists[msg.sender][_uniqueID].hexAmount;
      uint256 _difference;
      int256 _updatedPayouts;

      if (_amount <= _stakedAmount) {
        _difference = SafeMath.sub(_stakedAmount, _amount);
        tokenSupply_ = SafeMath.sub(tokenSupply_, _difference);
        tokenBalanceLedger_[msg.sender] = SafeMath.sub(tokenBalanceLedger_[msg.sender], _difference);
        _updatedPayouts = (int256) (profitPerShare_ * _difference);
        payoutsTo_[msg.sender] -= _updatedPayouts;
        stats.stakedNetProfitLoss -= int256(_difference);
        emit Transfer(msg.sender, address(0), _difference);
      } else if (_amount > _stakedAmount) {
        _difference = SafeMath.sub(_amount, _stakedAmount);
        _difference = purchaseTokens(msg.sender, _difference);
        stats.stakedNetProfitLoss += int256(_difference);
      }

      totalStakeBalance = SafeMath.sub(totalStakeBalance, _stakedAmount);

      Stats storage stats = playerStats[msg.sender];
      stats.activeStakes -= 1;

      lockedTokenBalanceLedger[msg.sender] = SafeMath.sub(lockedTokenBalanceLedger[msg.sender], _stakedAmount);

      emit onStakeEnd(msg.sender, _uniqueID, _amount, now);
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"dividendsOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalHexBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_hexToSpend","type":"uint256"}],"name":"calculateTokensReceived","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":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"stakeLists","outputs":[{"name":"stakeID","type":"uint40"},{"name":"hexAmount","type":"uint256"},{"name":"stakeShares","type":"uint72"},{"name":"lockedDay","type":"uint16"},{"name":"stakedDays","type":"uint16"},{"name":"unlockedDay","type":"uint16"},{"name":"started","type":"bool"},{"name":"ended","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"myDividends","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalStakeBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalFundCollected","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"distributionAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokensToSell","type":"uint256"}],"name":"calculateHexReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"setAtomicSwapAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_stakeActivated","type":"bool"}],"name":"setHexStaking","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_days","type":"uint256"}],"name":"stakeStart","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"approvedAddress2","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_state","type":"bool"}],"name":"myTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"},{"name":"stakable","type":"bool"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_proposedAddress","type":"address"}],"name":"approveAddress1","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"distribute","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_proposedAddress","type":"address"}],"name":"approveAddress2","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_customerAddress","type":"address"}],"name":"buyFor","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_toAddress","type":"address"},{"name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"lockedTokenBalanceLedger","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_stakeIndex","type":"uint256"},{"name":"_stakeIdParam","type":"uint40"},{"name":"_uniqueID","type":"uint256"}],"name":"_stakeEnd","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"approvedAddress1","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalPlayer","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"roll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"playerStats","outputs":[{"name":"deposits","type":"uint256"},{"name":"withdrawals","type":"uint256"},{"name":"staked","type":"uint256"},{"name":"stakedNetProfitLoss","type":"int256"},{"name":"activeStakes","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"buy","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalDonation","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":"_stakeIndex","type":"uint256"},{"name":"_stakeIdParam","type":"uint40"},{"name":"_uniqueID","type":"uint256"}],"name":"stakeEnd","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"price","type":"uint256"}],"name":"onDistribute","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"incomingHEX","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"tokensBurned","type":"uint256"},{"indexed":false,"name":"hexEarned","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"hexRolled","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"}],"name":"onRoll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"hexWithdrawn","type":"uint256"}],"name":"onWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"uniqueID","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onStakeStart","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"uniqueID","type":"uint256"},{"indexed":false,"name":"returnAmount","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onStakeEnd","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

635e263f0060015560c0604052600960808190527f4845585445574b454e000000000000000000000000000000000000000000000060a0908152620000489160029190620001a8565b506040805180820190915260048082527f484558320000000000000000000000000000000000000000000000000000000060209092019182526200008f91600391620001a8565b50600a600681905560016007556008819055600981905580556000601381905560168190556017556018805460a060020a60ff02191674010000000000000000000000000000000000000000179055348015620000eb57600080fd5b5060008054600160a060020a031990811673e21ac1cae34c532a38b604669e18557b2d8840fc9081179092556004805482169092179091556005805482167324b23bb643082026227e945c7833b81426057b10179055600d8054821673fe8d614431e5fea2329b05839f29b553b1cb99a21790819055600b80548316600160a060020a03929092169182179055600c80548316909117905560188054909116732b591e99afe9f32eaa6214f7b7629768c40eeb391790556200024d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b6200024a91905b8082111562000229576000815560010162000234565b90565b61294c806200025d6000396000f3006080604052600436106102025763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166265318b811461020757806306fdde031461023a5780630b9c51b1146102c457806310d0ffdd146102d957806318160ddd146102f15780632607443b14610306578063313ce567146103875780633151ecfc146103b257806334949cc1146103c757806334ecfbb8146103dc57806337fb7e21146103f15780633ccfd60b14610422578063487af200146104395780634978e111146104515780634b750334146104665780634b82cab71461047b57806352a438b8146104955780635af78833146104b057806362cc2cfe146104c5578063772865e2146104df5780637c180a68146105055780638620410b146105265780638da5cb5b1461053b57806391c05b0b1461055057806395d89b41146105685780639e2131c61461057d578063a3a8573a1461059e578063a9059cbb146105c2578063af8cfd19146105fa578063b60126551461061b578063b84c824614610657578063b8f82c85146106b0578063c47f0027146106c5578063c494a0801461071e578063cd5e3c5d14610733578063cdafbbb614610748578063d96a094a14610794578063e4849b32146107ac578063e9fad8ee146107c4578063ee2ac05f146107d9578063f2fde38b146107ee578063feed18ff1461080f575b600080fd5b34801561021357600080fd5b50610228600160a060020a0360043516610834565b60408051918252519081900360200190f35b34801561024657600080fd5b5061024f61086f565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610289578181015183820152602001610271565b50505050905090810190601f1680156102b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102d057600080fd5b506102286108fa565b3480156102e557600080fd5b50610228600435610991565b3480156102fd57600080fd5b506102286109c0565b34801561031257600080fd5b5061032a600160a060020a03600435166024356109c6565b6040805164ffffffffff9099168952602089019790975268ffffffffffffffffff9095168787015261ffff9384166060880152918316608087015290911660a0850152151560c0840152151560e083015251908190036101000190f35b34801561039357600080fd5b5061039c610a6c565b6040805160ff9092168252519081900360200190f35b3480156103be57600080fd5b50610228610a71565b3480156103d357600080fd5b50610228610a84565b3480156103e857600080fd5b50610228610a8a565b3480156103fd57600080fd5b50610406610a90565b60408051600160a060020a039092168252519081900360200190f35b34801561042e57600080fd5b50610437610a9f565b005b34801561044557600080fd5b50610228600435610bc9565b34801561045d57600080fd5b50610437610bee565b34801561047257600080fd5b50610228610c3c565b34801561048757600080fd5b506104376004351515610c64565b3480156104a157600080fd5b50610437600435602435610cbb565b3480156104bc57600080fd5b50610406611297565b3480156104d157600080fd5b5061022860043515156112a6565b3480156104eb57600080fd5b50610228600160a060020a036004351660243515156112ba565b34801561051157600080fd5b50610437600160a060020a0360043516611325565b34801561053257600080fd5b5061022861136b565b34801561054757600080fd5b50610406611393565b34801561055c57600080fd5b506102286004356113a2565b34801561057457600080fd5b5061024f611487565b34801561058957600080fd5b50610437600160a060020a03600435166114e2565b3480156105aa57600080fd5b50610228600435600160a060020a0360243516611528565b3480156105ce57600080fd5b506105e6600160a060020a036004351660243561153d565b604080519115158252519081900360200190f35b34801561060657600080fd5b50610228600160a060020a03600435166116d6565b34801561062757600080fd5b5061064060043564ffffffffff602435166044356116e8565b6040805161ffff9092168252519081900360200190f35b34801561066357600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526104379436949293602493928401919081908401838280828437509497506119c69650505050505050565b3480156106bc57600080fd5b506104066119f4565b3480156106d157600080fd5b506040805160206004803580820135601f8101849004840285018401909552848452610437943694929360249392840191908190840183828082843750949750611a039650505050505050565b34801561072a57600080fd5b50610228611a2d565b34801561073f57600080fd5b50610437611a33565b34801561075457600080fd5b50610769600160a060020a0360043516611adb565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b3480156107a057600080fd5b50610228600435611b0a565b3480156107b857600080fd5b50610437600435611b1f565b3480156107d057600080fd5b50610437611e0c565b3480156107e557600080fd5b50610228611e4d565b3480156107fa57600080fd5b50610437600160a060020a0360043516611e53565b34801561081b57600080fd5b5061043760043564ffffffffff60243516604435611ee7565b600160a060020a0316600090815260116020908152604080832054600f90925290912054601554680100000000000000009102919091030490565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156108f25780601f106108c7576101008083540402835291602001916108f2565b820191906000526020600020905b8154815290600101906020018083116108d557829003601f168201915b505050505081565b601854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b15801561095f57600080fd5b505af1158015610973573d6000803e3d6000fd5b505050506040513d602081101561098957600080fd5b505190505b90565b60008060006109ac6109a5856006546123ca565b60646123f3565b91506109b88483612408565b949350505050565b60145490565b601960209081526000928352604080842090915290825290208054600182015460029092015464ffffffffff909116919068ffffffffffffffffff81169061ffff690100000000000000000082048116916b01000000000000000000000081048216916d01000000000000000000000000008204169060ff6f01000000000000000000000000000000820481169170010000000000000000000000000000000090041688565b600881565b600033610a7d81610834565b91505b5090565b60135481565b600e5481565b600d54600160a060020a031681565b600080600080610aad610a71565b11610ab757600080fd5b339250610ac2610a71565b600160a060020a0380851660008181526011602090815260408083208054680100000000000000008802019055601854815160e060020a63a9059cbb02815260048101959095526024850187905290519597509093169363a9059cbb936044808501949193918390030190829087803b158015610b3e57600080fd5b505af1158015610b52573d6000803e3d6000fd5b505050506040513d6020811015610b6857600080fd5b505050600160a060020a03821660008181526012602090815260409182902060018101805486019055825185815292519093927fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc92908290030190a2505050565b60008060006014548411151515610bdf57600080fd5b6109ac6109a5856008546123ca565b600c54600b54600160a060020a03908116911614610c0b57600080fd5b600b54600d805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b6000806000806305f5e1009250610c586109a5846008546123ca565b91506109b88383612408565b600054600160a060020a03163314610c7b57600080fd5b60188054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b6000806000806000806000601860149054906101000a900460ff16151560011515141515610ce857600080fd5b68ffffffffffffffffff891115610cfe57600080fd5b88610d0a3360016112ba565b1015610d1557600080fd5b601854604080517f52a438b8000000000000000000000000000000000000000000000000000000008152600481018c9052602481018b90529051600160a060020a03909216916352a438b89160448082019260009290919082900301818387803b158015610d8257600080fd5b505af1158015610d96573d6000803e3d6000fd5b5050601854604080517f33060d900000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a0390921693506333060d9092506024808201926020929091908290030181600087803b158015610e0057600080fd5b505af1158015610e14573d6000803e3d6000fd5b505050506040513d6020811015610e2a57600080fd5b50519650610e39876001612408565b601854604080517f2607443b000000000000000000000000000000000000000000000000000000008152306004820152602481018490529051929950600160a060020a0390911691632607443b9160448082019260e0929091908290030181600087803b158015610ea957600080fd5b505af1158015610ebd573d6000803e3d6000fd5b505050506040513d60e0811015610ed357600080fd5b508051604080830151606084015160809094015182517b0100000000000000000000000000000000000000000000000000000064ffffffffff8616026020828101919091527701000000000000000000000000000000000000000000000068ffffffffffffffffff85160260258301528451600e818403018152602e909201948590528151959c50929a509498509650909182918401908083835b60208310610f8d5780518252601f199092019160209182019101610f6e565b51815160209384036101000a600019018019909216911617905260408051929094018290039091203360009081526019835284812082825290925292902060020154919550506f01000000000000000000000000000000900460ff16159150610ff7905057600080fd5b60016019600033600160a060020a0316600160a060020a031681526020019081526020016000206000848152602001908152602001600020600201600f6101000a81548160ff021916908315150217905550610100604051908101604052808764ffffffffff1681526020018a81526020018668ffffffffffffffffff1681526020018561ffff1681526020018461ffff168152602001600061ffff168152602001600115158152602001600015158152506019600033600160a060020a0316600160a060020a03168152602001908152602001600020600084815260200190815260200160002060008201518160000160006101000a81548164ffffffffff021916908364ffffffffff1602179055506020820151816001015560408201518160020160006101000a81548168ffffffffffffffffff021916908368ffffffffffffffffff16021790555060608201518160020160096101000a81548161ffff021916908361ffff160217905550608082015181600201600b6101000a81548161ffff021916908361ffff16021790555060a082015181600201600d6101000a81548161ffff021916908361ffff16021790555060c082015181600201600f6101000a81548160ff02191690831515021790555060e08201518160020160106101000a81548160ff0219169083151502179055509050506111fb6013548a61241a565b6013555033600090815260126020908152604080832060048101805460010190556002810180548d019055601090925290912054611239908a61241a565b336000818152601060209081526040918290209390935580518581524293810193909352805191927ffcb8123dad95f24c74ef07cb7e9635f8bfabd8882383ff341ce8999eb7aa3860929081900390910190a2505050505050505050565b600c54600160a060020a031681565b6000336112b381846112ba565b9392505050565b60008115156112e25750600160a060020a0382166000908152600f602052604090205461131f565b6001821515141561131f57600160a060020a0383166000908152600f602090815260408083205460109092529091205461131c9190612408565b90505b92915050565b600054600160a060020a0316331461133c57600080fd5b600b805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000806000806305f5e10092506113876109a5846006546123ca565b91506109b8838361241a565b600054600160a060020a031681565b600080821161141257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6d757374206265206120706f7369746976652076616c75650000000000000000604482015290519081900360640190fd5b61141b82612427565b6017805483019055601554601454611449919068010000000000000000850281151561144357fe5b0461241a565b60155560408051838152905133917fd14b763af9e91e53a0578778058d700fec4f12297440083843749bb37d806064919081900360200190a2919050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108f25780601f106108c7576101008083540402835291602001916108f2565b600554600160a060020a031633146114f957600080fd5b600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600061153383612427565b61131c8284612539565b60008060008060008061155060016112a6565b1161155a57600080fd5b336000818152600f602090815260408083205460109092529091205491955061158291612408565b86111561158e57600080fd5b6000611598610a71565b11156115a6576115a6610a9f565b6115b56109a5876007546123ca565b92506115c18684612408565b91508290506115d260145484612408565b601455600160a060020a0384166000908152600f60205260409020546115f89087612408565b600160a060020a038086166000908152600f60205260408082209390935590891681522054611627908361241a565b600160a060020a038881166000818152600f602090815260408083209590955560158054948a16835260119091528482208054948c02909403909355825491815292909220805492850290920190915554601454611695919068010000000000000000840281151561144357fe5b601555604080518381529051600160a060020a03808a1692908716916000805160206129018339815191529181900360200190a35060019695505050505050565b60106020526000908152604090205481565b601854604080517f2607443b000000000000000000000000000000000000000000000000000000008152306004820152602481018690529051600092839283928392839283928392600160a060020a031691632607443b9160448083019260e092919082900301818787803b15801561176057600080fd5b505af1158015611774573d6000803e3d6000fd5b505050506040513d60e081101561178a57600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505050809650819750829850839950849a50859b505050505050506019600033600160a060020a0316600160a060020a031681526020019081526020016000206000898152602001908152602001600020600201600f9054906101000a900460ff1615156001151514801561187c57503360009081526019602090815260408083208b8452909152902060020154700100000000000000000000000000000000900460ff16155b151561188757600080fd5b3360009081526019602090815260408083208b845290915290205464ffffffffff8a811691161480156118c757508564ffffffffff168964ffffffffff16145b15156118d257600080fd5b3360009081526019602090815260408083208b845290915290206001015468ffffffffffffffffff86161461190657600080fd5b3360009081526019602090815260408083208b845290915290206002015468ffffffffffffffffff85811691161461193d57600080fd5b3360009081526019602090815260408083208b845290915290206002015461ffff8481166901000000000000000000909204161461197a57600080fd5b3360009081526019602090815260408083208b845290915290206002015461ffff8381166b01000000000000000000000090920416146119b957600080fd5b9998505050505050505050565b600054600160a060020a031633146119dd57600080fd5b80516119f0906003906020840190612872565b5050565b600b54600160a060020a031681565b600054600160a060020a03163314611a1a57600080fd5b80516119f0906002906020840190612872565b60165481565b600080600080611a41610a71565b11611a4b57600080fd5b339250611a56610a71565b600160a060020a038416600090815260116020526040902080546801000000000000000083020190559150611a8b8383612539565b905082600160a060020a03167fe4f0eeaa8dd27ac941d5cb906c00cec31d5590659951566d91f7ec9eaacc8e0c8383604051808381526020018281526020019250505060405180910390a2505050565b601260205260009081526040902080546001820154600283015460038401546004909401549293919290919085565b6000611b1582612427565b61131f3383612539565b600080600080600080600080611b3560016112a6565b11611b3f57600080fd5b336000818152600f6020908152604080832054601090925290912054919850611b6791612408565b881115611b7357600080fd5b611b826109a5896008546123ca565b9550611b936109a587600a546123ca565b601854600480546040805160e060020a63a9059cbb028152600160a060020a039283169381019390935260248301859052519398509091169163a9059cbb916044808201926020929091908290030181600087803b158015611bf457600080fd5b505af1158015611c08573d6000803e3d6000fd5b505050506040513d6020811015611c1e57600080fd5b5050600954611c32906109a59088906123ca565b600e805482019055601854600d546040805160e060020a63a9059cbb028152600160a060020a03928316600482015260248101859052905193975091169163a9059cbb916044808201926020929091908290030181600087803b158015611c9857600080fd5b505af1158015611cac573d6000803e3d6000fd5b505050506040513d6020811015611cc257600080fd5b50611cd8905086611cd3878761241a565b612408565b9250611ce48887612408565b9150611cf260145489612408565b601455600160a060020a0387166000908152600f6020526040902054611d189089612408565b600160a060020a0388166000908152600f602090815260408083209390935560155460119091529181208054928b02680100000000000000008602019283900390556014549192501015611d8857611d8460155460145468010000000000000000860281151561144357fe5b6015555b604080518981529051600091600160a060020a038a16916000805160206129018339815191529181900360200190a3604080518981526020810184905242818301529051600160a060020a038916917f723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e5919081900360600190a25050505050505050565b336000818152600f60209081526040808320546010909252822054611e319190612408565b90506000811115611e4557611e4581611b1f565b6119f0610a9f565b60175481565b600054600160a060020a03163314611e6a57600080fd5b600160a060020a0381161515611e7f57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000806000806000806000611efd8a8a8a6116e8565b965061ffff87161515611ff657601860009054906101000a9004600160a060020a0316600160a060020a0316635c9302c96040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611f7657600080fd5b505af1158015611f8a573d6000803e3d6000fd5b505050506040513d6020811015611fa057600080fd5b50513360009081526019602090815260408083208c84529091529020600201805461ffff9092166d0100000000000000000000000000026effff0000000000000000000000000019909216919091179055612040565b3360009081526019602090815260408083208b8452909152902060020180546effff0000000000000000000000000019166d010000000000000000000000000061ffff8a16021790555b601854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156120a657600080fd5b505af11580156120ba573d6000803e3d6000fd5b505050506040513d60208110156120d057600080fd5b5051601854604080517f343009a2000000000000000000000000000000000000000000000000000000008152600481018e905264ffffffffff8d1660248201529051929850600160a060020a039091169163343009a29160448082019260009290919082900301818387803b15801561214857600080fd5b505af115801561215c573d6000803e3d6000fd5b50503360009081526019602090815260408083208d84528252808320600201805470ff00000000000000000000000000000000191670010000000000000000000000000000000017905560185481517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152915161223e9650600160a060020a039190911694506370a0823193602480840194938390030190829087803b15801561220c57600080fd5b505af1158015612220573d6000803e3d6000fd5b505050506040513d602081101561223657600080fd5b505187612408565b3360009081526019602090815260408083208c845290915290206001015490955093508385116122fd576122728486612408565b925061228060145484612408565b601455336000908152600f602052604090205461229d9084612408565b336000818152600f60209081526040808320949094556015546011825284832080549189029182900390556003860180548990039055845188815294519096509193600080516020612901833981519152929081900390910190a3612328565b838511156123285761230f8585612408565b925061231b3384612539565b6003820180548201905592505b61233460135485612408565b601355503360009081526012602090815260408083206004810180546000190190556010909252909120546123699085612408565b336000818152601060209081526040918290209390935580518b815292830188905242838201525190917fcc843967ff4436c366c668a40b02034eec1fa39c6b6e1ff48c682d04f8a35f25919081900360600190a250505050505050505050565b60008215156123db5750600061131f565b508181028183828115156123eb57fe5b041461131f57fe5b6000818381151561240057fe5b049392505050565b60008282111561241457fe5b50900390565b8181018281101561131f57fe5b601854604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561249a57600080fd5b505af11580156124ae573d6000803e3d6000fd5b505050506040513d60208110156124c457600080fd5b5051151560011461253657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f7472616e73666572206d75737420737563636565640000000000000000000000604482015290519081900360640190fd5b50565b6000806000806000806000806000600154421015151561255857600080fd5b600160a060020a038b16600090815260126020526040902080549098501515612585576016805460010190555b87548a01885560065461259d906109a5908c906123ca565b96506125ae6109a588600a546123ca565b601854600480546040805160e060020a63a9059cbb028152600160a060020a039283169381019390935260248301859052519399509091169163a9059cbb916044808201926020929091908290030181600087803b15801561260f57600080fd5b505af1158015612623573d6000803e3d6000fd5b505050506040513d602081101561263957600080fd5b505060095461264d906109a59089906123ca565b600e805482019055601854600d546040805160e060020a63a9059cbb028152600160a060020a03928316600482015260248101859052905193985091169163a9059cbb916044808201926020929091908290030181600087803b1580156126b357600080fd5b505af11580156126c7573d6000803e3d6000fd5b505050506040513d60208110156126dd57600080fd5b506126ee905087611cd3878961241a565b93506126fa8a88612408565b925068010000000000000000840291506000831180156127245750601454612722848261241a565b115b151561272f57600080fd5b60006014541115612793576127466014548461241a565b601481905568010000000000000000850281151561276057fe5b6015805492909104909101905560145468010000000000000000850281151561278557fe5b048302820382039150612799565b60148390555b600160a060020a038b166000908152600f60205260409020546127bc908461241a565b600160a060020a038c166000818152600f6020908152604080832094909455601554601182528483208054918902889003918201905584518881529451909550929391926000805160206129018339815191529281900390910190a3604080518b81526020810185905242818301529051600160a060020a038d16917f810900bb33e423094372279f779b623ab22b73472a8a91fce3c018129c205019919081900360600190a250909998505050505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106128b357805160ff19168380011785556128e0565b828001600101855582156128e0579182015b828111156128e05782518255916020019190600101906128c5565b50610a809261098e9250905b80821115610a8057600081556001016128ec5600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820a172c5afc30e06aefd000d05543aec96278590d98ba80558c41dc6b7cff182860029

Deployed Bytecode

0x6080604052600436106102025763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166265318b811461020757806306fdde031461023a5780630b9c51b1146102c457806310d0ffdd146102d957806318160ddd146102f15780632607443b14610306578063313ce567146103875780633151ecfc146103b257806334949cc1146103c757806334ecfbb8146103dc57806337fb7e21146103f15780633ccfd60b14610422578063487af200146104395780634978e111146104515780634b750334146104665780634b82cab71461047b57806352a438b8146104955780635af78833146104b057806362cc2cfe146104c5578063772865e2146104df5780637c180a68146105055780638620410b146105265780638da5cb5b1461053b57806391c05b0b1461055057806395d89b41146105685780639e2131c61461057d578063a3a8573a1461059e578063a9059cbb146105c2578063af8cfd19146105fa578063b60126551461061b578063b84c824614610657578063b8f82c85146106b0578063c47f0027146106c5578063c494a0801461071e578063cd5e3c5d14610733578063cdafbbb614610748578063d96a094a14610794578063e4849b32146107ac578063e9fad8ee146107c4578063ee2ac05f146107d9578063f2fde38b146107ee578063feed18ff1461080f575b600080fd5b34801561021357600080fd5b50610228600160a060020a0360043516610834565b60408051918252519081900360200190f35b34801561024657600080fd5b5061024f61086f565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610289578181015183820152602001610271565b50505050905090810190601f1680156102b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102d057600080fd5b506102286108fa565b3480156102e557600080fd5b50610228600435610991565b3480156102fd57600080fd5b506102286109c0565b34801561031257600080fd5b5061032a600160a060020a03600435166024356109c6565b6040805164ffffffffff9099168952602089019790975268ffffffffffffffffff9095168787015261ffff9384166060880152918316608087015290911660a0850152151560c0840152151560e083015251908190036101000190f35b34801561039357600080fd5b5061039c610a6c565b6040805160ff9092168252519081900360200190f35b3480156103be57600080fd5b50610228610a71565b3480156103d357600080fd5b50610228610a84565b3480156103e857600080fd5b50610228610a8a565b3480156103fd57600080fd5b50610406610a90565b60408051600160a060020a039092168252519081900360200190f35b34801561042e57600080fd5b50610437610a9f565b005b34801561044557600080fd5b50610228600435610bc9565b34801561045d57600080fd5b50610437610bee565b34801561047257600080fd5b50610228610c3c565b34801561048757600080fd5b506104376004351515610c64565b3480156104a157600080fd5b50610437600435602435610cbb565b3480156104bc57600080fd5b50610406611297565b3480156104d157600080fd5b5061022860043515156112a6565b3480156104eb57600080fd5b50610228600160a060020a036004351660243515156112ba565b34801561051157600080fd5b50610437600160a060020a0360043516611325565b34801561053257600080fd5b5061022861136b565b34801561054757600080fd5b50610406611393565b34801561055c57600080fd5b506102286004356113a2565b34801561057457600080fd5b5061024f611487565b34801561058957600080fd5b50610437600160a060020a03600435166114e2565b3480156105aa57600080fd5b50610228600435600160a060020a0360243516611528565b3480156105ce57600080fd5b506105e6600160a060020a036004351660243561153d565b604080519115158252519081900360200190f35b34801561060657600080fd5b50610228600160a060020a03600435166116d6565b34801561062757600080fd5b5061064060043564ffffffffff602435166044356116e8565b6040805161ffff9092168252519081900360200190f35b34801561066357600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526104379436949293602493928401919081908401838280828437509497506119c69650505050505050565b3480156106bc57600080fd5b506104066119f4565b3480156106d157600080fd5b506040805160206004803580820135601f8101849004840285018401909552848452610437943694929360249392840191908190840183828082843750949750611a039650505050505050565b34801561072a57600080fd5b50610228611a2d565b34801561073f57600080fd5b50610437611a33565b34801561075457600080fd5b50610769600160a060020a0360043516611adb565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b3480156107a057600080fd5b50610228600435611b0a565b3480156107b857600080fd5b50610437600435611b1f565b3480156107d057600080fd5b50610437611e0c565b3480156107e557600080fd5b50610228611e4d565b3480156107fa57600080fd5b50610437600160a060020a0360043516611e53565b34801561081b57600080fd5b5061043760043564ffffffffff60243516604435611ee7565b600160a060020a0316600090815260116020908152604080832054600f90925290912054601554680100000000000000009102919091030490565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156108f25780601f106108c7576101008083540402835291602001916108f2565b820191906000526020600020905b8154815290600101906020018083116108d557829003601f168201915b505050505081565b601854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b15801561095f57600080fd5b505af1158015610973573d6000803e3d6000fd5b505050506040513d602081101561098957600080fd5b505190505b90565b60008060006109ac6109a5856006546123ca565b60646123f3565b91506109b88483612408565b949350505050565b60145490565b601960209081526000928352604080842090915290825290208054600182015460029092015464ffffffffff909116919068ffffffffffffffffff81169061ffff690100000000000000000082048116916b01000000000000000000000081048216916d01000000000000000000000000008204169060ff6f01000000000000000000000000000000820481169170010000000000000000000000000000000090041688565b600881565b600033610a7d81610834565b91505b5090565b60135481565b600e5481565b600d54600160a060020a031681565b600080600080610aad610a71565b11610ab757600080fd5b339250610ac2610a71565b600160a060020a0380851660008181526011602090815260408083208054680100000000000000008802019055601854815160e060020a63a9059cbb02815260048101959095526024850187905290519597509093169363a9059cbb936044808501949193918390030190829087803b158015610b3e57600080fd5b505af1158015610b52573d6000803e3d6000fd5b505050506040513d6020811015610b6857600080fd5b505050600160a060020a03821660008181526012602090815260409182902060018101805486019055825185815292519093927fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc92908290030190a2505050565b60008060006014548411151515610bdf57600080fd5b6109ac6109a5856008546123ca565b600c54600b54600160a060020a03908116911614610c0b57600080fd5b600b54600d805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b6000806000806305f5e1009250610c586109a5846008546123ca565b91506109b88383612408565b600054600160a060020a03163314610c7b57600080fd5b60188054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b6000806000806000806000601860149054906101000a900460ff16151560011515141515610ce857600080fd5b68ffffffffffffffffff891115610cfe57600080fd5b88610d0a3360016112ba565b1015610d1557600080fd5b601854604080517f52a438b8000000000000000000000000000000000000000000000000000000008152600481018c9052602481018b90529051600160a060020a03909216916352a438b89160448082019260009290919082900301818387803b158015610d8257600080fd5b505af1158015610d96573d6000803e3d6000fd5b5050601854604080517f33060d900000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a0390921693506333060d9092506024808201926020929091908290030181600087803b158015610e0057600080fd5b505af1158015610e14573d6000803e3d6000fd5b505050506040513d6020811015610e2a57600080fd5b50519650610e39876001612408565b601854604080517f2607443b000000000000000000000000000000000000000000000000000000008152306004820152602481018490529051929950600160a060020a0390911691632607443b9160448082019260e0929091908290030181600087803b158015610ea957600080fd5b505af1158015610ebd573d6000803e3d6000fd5b505050506040513d60e0811015610ed357600080fd5b508051604080830151606084015160809094015182517b0100000000000000000000000000000000000000000000000000000064ffffffffff8616026020828101919091527701000000000000000000000000000000000000000000000068ffffffffffffffffff85160260258301528451600e818403018152602e909201948590528151959c50929a509498509650909182918401908083835b60208310610f8d5780518252601f199092019160209182019101610f6e565b51815160209384036101000a600019018019909216911617905260408051929094018290039091203360009081526019835284812082825290925292902060020154919550506f01000000000000000000000000000000900460ff16159150610ff7905057600080fd5b60016019600033600160a060020a0316600160a060020a031681526020019081526020016000206000848152602001908152602001600020600201600f6101000a81548160ff021916908315150217905550610100604051908101604052808764ffffffffff1681526020018a81526020018668ffffffffffffffffff1681526020018561ffff1681526020018461ffff168152602001600061ffff168152602001600115158152602001600015158152506019600033600160a060020a0316600160a060020a03168152602001908152602001600020600084815260200190815260200160002060008201518160000160006101000a81548164ffffffffff021916908364ffffffffff1602179055506020820151816001015560408201518160020160006101000a81548168ffffffffffffffffff021916908368ffffffffffffffffff16021790555060608201518160020160096101000a81548161ffff021916908361ffff160217905550608082015181600201600b6101000a81548161ffff021916908361ffff16021790555060a082015181600201600d6101000a81548161ffff021916908361ffff16021790555060c082015181600201600f6101000a81548160ff02191690831515021790555060e08201518160020160106101000a81548160ff0219169083151502179055509050506111fb6013548a61241a565b6013555033600090815260126020908152604080832060048101805460010190556002810180548d019055601090925290912054611239908a61241a565b336000818152601060209081526040918290209390935580518581524293810193909352805191927ffcb8123dad95f24c74ef07cb7e9635f8bfabd8882383ff341ce8999eb7aa3860929081900390910190a2505050505050505050565b600c54600160a060020a031681565b6000336112b381846112ba565b9392505050565b60008115156112e25750600160a060020a0382166000908152600f602052604090205461131f565b6001821515141561131f57600160a060020a0383166000908152600f602090815260408083205460109092529091205461131c9190612408565b90505b92915050565b600054600160a060020a0316331461133c57600080fd5b600b805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000806000806305f5e10092506113876109a5846006546123ca565b91506109b8838361241a565b600054600160a060020a031681565b600080821161141257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6d757374206265206120706f7369746976652076616c75650000000000000000604482015290519081900360640190fd5b61141b82612427565b6017805483019055601554601454611449919068010000000000000000850281151561144357fe5b0461241a565b60155560408051838152905133917fd14b763af9e91e53a0578778058d700fec4f12297440083843749bb37d806064919081900360200190a2919050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108f25780601f106108c7576101008083540402835291602001916108f2565b600554600160a060020a031633146114f957600080fd5b600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600061153383612427565b61131c8284612539565b60008060008060008061155060016112a6565b1161155a57600080fd5b336000818152600f602090815260408083205460109092529091205491955061158291612408565b86111561158e57600080fd5b6000611598610a71565b11156115a6576115a6610a9f565b6115b56109a5876007546123ca565b92506115c18684612408565b91508290506115d260145484612408565b601455600160a060020a0384166000908152600f60205260409020546115f89087612408565b600160a060020a038086166000908152600f60205260408082209390935590891681522054611627908361241a565b600160a060020a038881166000818152600f602090815260408083209590955560158054948a16835260119091528482208054948c02909403909355825491815292909220805492850290920190915554601454611695919068010000000000000000840281151561144357fe5b601555604080518381529051600160a060020a03808a1692908716916000805160206129018339815191529181900360200190a35060019695505050505050565b60106020526000908152604090205481565b601854604080517f2607443b000000000000000000000000000000000000000000000000000000008152306004820152602481018690529051600092839283928392839283928392600160a060020a031691632607443b9160448083019260e092919082900301818787803b15801561176057600080fd5b505af1158015611774573d6000803e3d6000fd5b505050506040513d60e081101561178a57600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505050809650819750829850839950849a50859b505050505050506019600033600160a060020a0316600160a060020a031681526020019081526020016000206000898152602001908152602001600020600201600f9054906101000a900460ff1615156001151514801561187c57503360009081526019602090815260408083208b8452909152902060020154700100000000000000000000000000000000900460ff16155b151561188757600080fd5b3360009081526019602090815260408083208b845290915290205464ffffffffff8a811691161480156118c757508564ffffffffff168964ffffffffff16145b15156118d257600080fd5b3360009081526019602090815260408083208b845290915290206001015468ffffffffffffffffff86161461190657600080fd5b3360009081526019602090815260408083208b845290915290206002015468ffffffffffffffffff85811691161461193d57600080fd5b3360009081526019602090815260408083208b845290915290206002015461ffff8481166901000000000000000000909204161461197a57600080fd5b3360009081526019602090815260408083208b845290915290206002015461ffff8381166b01000000000000000000000090920416146119b957600080fd5b9998505050505050505050565b600054600160a060020a031633146119dd57600080fd5b80516119f0906003906020840190612872565b5050565b600b54600160a060020a031681565b600054600160a060020a03163314611a1a57600080fd5b80516119f0906002906020840190612872565b60165481565b600080600080611a41610a71565b11611a4b57600080fd5b339250611a56610a71565b600160a060020a038416600090815260116020526040902080546801000000000000000083020190559150611a8b8383612539565b905082600160a060020a03167fe4f0eeaa8dd27ac941d5cb906c00cec31d5590659951566d91f7ec9eaacc8e0c8383604051808381526020018281526020019250505060405180910390a2505050565b601260205260009081526040902080546001820154600283015460038401546004909401549293919290919085565b6000611b1582612427565b61131f3383612539565b600080600080600080600080611b3560016112a6565b11611b3f57600080fd5b336000818152600f6020908152604080832054601090925290912054919850611b6791612408565b881115611b7357600080fd5b611b826109a5896008546123ca565b9550611b936109a587600a546123ca565b601854600480546040805160e060020a63a9059cbb028152600160a060020a039283169381019390935260248301859052519398509091169163a9059cbb916044808201926020929091908290030181600087803b158015611bf457600080fd5b505af1158015611c08573d6000803e3d6000fd5b505050506040513d6020811015611c1e57600080fd5b5050600954611c32906109a59088906123ca565b600e805482019055601854600d546040805160e060020a63a9059cbb028152600160a060020a03928316600482015260248101859052905193975091169163a9059cbb916044808201926020929091908290030181600087803b158015611c9857600080fd5b505af1158015611cac573d6000803e3d6000fd5b505050506040513d6020811015611cc257600080fd5b50611cd8905086611cd3878761241a565b612408565b9250611ce48887612408565b9150611cf260145489612408565b601455600160a060020a0387166000908152600f6020526040902054611d189089612408565b600160a060020a0388166000908152600f602090815260408083209390935560155460119091529181208054928b02680100000000000000008602019283900390556014549192501015611d8857611d8460155460145468010000000000000000860281151561144357fe5b6015555b604080518981529051600091600160a060020a038a16916000805160206129018339815191529181900360200190a3604080518981526020810184905242818301529051600160a060020a038916917f723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e5919081900360600190a25050505050505050565b336000818152600f60209081526040808320546010909252822054611e319190612408565b90506000811115611e4557611e4581611b1f565b6119f0610a9f565b60175481565b600054600160a060020a03163314611e6a57600080fd5b600160a060020a0381161515611e7f57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000806000806000806000611efd8a8a8a6116e8565b965061ffff87161515611ff657601860009054906101000a9004600160a060020a0316600160a060020a0316635c9302c96040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611f7657600080fd5b505af1158015611f8a573d6000803e3d6000fd5b505050506040513d6020811015611fa057600080fd5b50513360009081526019602090815260408083208c84529091529020600201805461ffff9092166d0100000000000000000000000000026effff0000000000000000000000000019909216919091179055612040565b3360009081526019602090815260408083208b8452909152902060020180546effff0000000000000000000000000019166d010000000000000000000000000061ffff8a16021790555b601854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156120a657600080fd5b505af11580156120ba573d6000803e3d6000fd5b505050506040513d60208110156120d057600080fd5b5051601854604080517f343009a2000000000000000000000000000000000000000000000000000000008152600481018e905264ffffffffff8d1660248201529051929850600160a060020a039091169163343009a29160448082019260009290919082900301818387803b15801561214857600080fd5b505af115801561215c573d6000803e3d6000fd5b50503360009081526019602090815260408083208d84528252808320600201805470ff00000000000000000000000000000000191670010000000000000000000000000000000017905560185481517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152915161223e9650600160a060020a039190911694506370a0823193602480840194938390030190829087803b15801561220c57600080fd5b505af1158015612220573d6000803e3d6000fd5b505050506040513d602081101561223657600080fd5b505187612408565b3360009081526019602090815260408083208c845290915290206001015490955093508385116122fd576122728486612408565b925061228060145484612408565b601455336000908152600f602052604090205461229d9084612408565b336000818152600f60209081526040808320949094556015546011825284832080549189029182900390556003860180548990039055845188815294519096509193600080516020612901833981519152929081900390910190a3612328565b838511156123285761230f8585612408565b925061231b3384612539565b6003820180548201905592505b61233460135485612408565b601355503360009081526012602090815260408083206004810180546000190190556010909252909120546123699085612408565b336000818152601060209081526040918290209390935580518b815292830188905242838201525190917fcc843967ff4436c366c668a40b02034eec1fa39c6b6e1ff48c682d04f8a35f25919081900360600190a250505050505050505050565b60008215156123db5750600061131f565b508181028183828115156123eb57fe5b041461131f57fe5b6000818381151561240057fe5b049392505050565b60008282111561241457fe5b50900390565b8181018281101561131f57fe5b601854604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561249a57600080fd5b505af11580156124ae573d6000803e3d6000fd5b505050506040513d60208110156124c457600080fd5b5051151560011461253657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f7472616e73666572206d75737420737563636565640000000000000000000000604482015290519081900360640190fd5b50565b6000806000806000806000806000600154421015151561255857600080fd5b600160a060020a038b16600090815260126020526040902080549098501515612585576016805460010190555b87548a01885560065461259d906109a5908c906123ca565b96506125ae6109a588600a546123ca565b601854600480546040805160e060020a63a9059cbb028152600160a060020a039283169381019390935260248301859052519399509091169163a9059cbb916044808201926020929091908290030181600087803b15801561260f57600080fd5b505af1158015612623573d6000803e3d6000fd5b505050506040513d602081101561263957600080fd5b505060095461264d906109a59089906123ca565b600e805482019055601854600d546040805160e060020a63a9059cbb028152600160a060020a03928316600482015260248101859052905193985091169163a9059cbb916044808201926020929091908290030181600087803b1580156126b357600080fd5b505af11580156126c7573d6000803e3d6000fd5b505050506040513d60208110156126dd57600080fd5b506126ee905087611cd3878961241a565b93506126fa8a88612408565b925068010000000000000000840291506000831180156127245750601454612722848261241a565b115b151561272f57600080fd5b60006014541115612793576127466014548461241a565b601481905568010000000000000000850281151561276057fe5b6015805492909104909101905560145468010000000000000000850281151561278557fe5b048302820382039150612799565b60148390555b600160a060020a038b166000908152600f60205260409020546127bc908461241a565b600160a060020a038c166000818152600f6020908152604080832094909455601554601182528483208054918902889003918201905584518881529451909550929391926000805160206129018339815191529281900390910190a3604080518b81526020810185905242818301529051600160a060020a038d16917f810900bb33e423094372279f779b623ab22b73472a8a91fce3c018129c205019919081900360600190a250909998505050505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106128b357805160ff19168380011785556128e0565b828001600101855582156128e0579182015b828111156128e05782518255916020019190600101906128c5565b50610a809261098e9250905b80821115610a8057600081556001016128ec5600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820a172c5afc30e06aefd000d05543aec96278590d98ba80558c41dc6b7cff182860029

Deployed Bytecode Sourcemap

2023:17896:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6697:8;;;12281:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12281:224:0;-1:-1:-1;;;;;12281:224:0;;;;;;;;;;;;;;;;;;;;;3627:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3627:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3627:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11348:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11348:113:0;;;;13043:288;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13043:288:0;;;;;11469:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11469:91:0;;;;5229:68;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5229:68:0;-1:-1:-1;;;;;5229:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3702:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3702:34:0;;;;;;;;;;;;;;;;;;;;;;;11746:156;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11746:156:0;;;;4752:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4752:36:0;;;;4244:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4244:33:0;;;;4203:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4203:34:0;;;;;;;;-1:-1:-1;;;;;4203:34:0;;;;;;;;;;;;;;7349:429;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7349:429:0;;;;;;13339:327;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13339:327:0;;;;;11183:157;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11183:157:0;;;;12513:257;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12513:257:0;;;;10786:117;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10786:117:0;;;;;;;15606:1362;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15606:1362:0;;;;;;;4165:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4165:31:0;;;;11568:170;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11568:170:0;;;;;;;11910:363;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11910:363:0;-1:-1:-1;;;;;11910:363:0;;;;;;;;;10911:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10911:126:0;-1:-1:-1;;;;;10911:126:0;;;;;12778:257;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12778:257:0;;;;1544:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1544:20:0;;;;5943:348;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5943:348:0;;;;;3666:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3666:29:0;;;;11045:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11045:130:0;-1:-1:-1;;;;;11045:130:0;;;;;6462:190;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6462:190:0;;;-1:-1:-1;;;;;6462:190:0;;;;;9361:1227;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9361:1227:0;-1:-1:-1;;;;;9361:1227:0;;;;;;;;;;;;;;;;;;;;;;;;;4403:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4403:59:0;-1:-1:-1;;;;;4403:59:0;;;;;16976:983;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16976:983:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10687:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10687:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10687:91:0;;-1:-1:-1;10687:91:0;;-1:-1:-1;;;;;;;10687:91:0;4127:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4127:31:0;;;;10596:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10596:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10596:83:0;;-1:-1:-1;10596:83:0;;-1:-1:-1;;;;;;;10596:83:0;4872:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4872:30:0;;;;6721:345;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6721:345:0;;;;4524:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4524:45:0;-1:-1:-1;;;;;4524:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6299:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6299:155:0;;;;;7786:1567;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7786:1567:0;;;;;7074:267;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7074:267:0;;;;4909:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4909:32:0;;;;1836:178;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1836:178:0;-1:-1:-1;;;;;1836:178:0;;;;;17967:1949;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17967:1949:0;;;;;;;;;;;12281:224;-1:-1:-1;;;;;12456:28:0;12349:7;12456:28;;;:10;:28;;;;;;;;;12415:19;:37;;;;;;;12397:15;;4324:7;12397:55;;12387:97;;;;12376:121;;12281:224::o;3627:32::-;;;;;;;;;;;;;;-1:-1:-1;;3627:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11348:113::-;11423:5;;:30;;;;;;11447:4;11423:30;;;;;;11396:7;;-1:-1:-1;;;;;11423:5:0;;:15;;:30;;;;;;;;;;;;;;11396:7;11423:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;11423:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11423:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11423:30:0;;-1:-1:-1;11348:113:0;;:::o;13043:288::-;13118:7;13138:18;13225:23;13159:55;13172:36;13185:11;13198:9;;13172:12;:36::i;:::-;13210:3;13159:12;:55::i;:::-;13138:76;;13251:37;13264:11;13277:10;13251:12;:37::i;:::-;13225:63;13043:288;-1:-1:-1;;;;13043:288:0:o;11469:91::-;11540:12;;11469:91;:::o;5229:68::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3702:34::-;3735:1;3702:34;:::o;11746:156::-;11790:7;11837:10;11865:29;11837:10;11865:11;:29::i;:::-;11858:36;;11746:156;;;:::o;4752:36::-;;;;:::o;4244:33::-;;;;:::o;4203:34::-;;;-1:-1:-1;;;;;4203:34:0;;:::o;7349:429::-;7397:24;7445:18;7621:19;2437:1;2421:13;:11;:13::i;:::-;:17;2413:26;;;;;;7424:10;7397:37;;7466:13;:11;:13::i;:::-;-1:-1:-1;;;;;7490:28:0;;;;;;;:10;:28;;;;;;;;:65;;4324:7;7532:22;;7490:65;;;7566:5;;:44;;-1:-1:-1;;;;;7566:44:0;;;;;;;;;;;;;;;;;7445:34;;-1:-1:-1;7566:5:0;;;;:14;;:44;;;;;7490:28;;7566:44;;;;;;;;:5;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;7566:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7566:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;;;7643:29:0;;;;;;:11;7566:44;7643:29;;;;;;;;7683:17;;;:31;;;;;;7730:40;;;;;;;7643:29;;;7730:40;;;;;;;;;7349:429;;;:::o;13339:327::-;13413:7;13482:18;13570:17;13458:12;;13441:13;:29;;13433:38;;;;;;;;13503:56;13516:37;13529:13;13544:8;;13516:12;:37::i;11183:157::-;11266:16;;11246;;-1:-1:-1;;;;;11246:16:0;;;11266;;11246:36;11238:45;;;;;;11316:16;;11294:19;:38;;-1:-1:-1;;11294:38:0;-1:-1:-1;;;;;11316:16:0;;;11294:38;;;;;;11183:157::o;12513:257::-;12555:7;12575:12;12604:18;12683:17;12590:3;12575:18;;12625:47;12638:28;12651:4;12657:8;;12638:12;:28::i;12625:47::-;12604:68;;12703:30;12716:4;12722:10;12703:12;:30::i;10786:117::-;1810:5;;-1:-1:-1;;;;;1810:5:0;1796:10;:19;1788:28;;;;;;10863:14;:32;;;;;;;-1:-1:-1;;10863:32:0;;;;;;;;;10786:117::o;15606:1362::-;15864:19;15892:15;15916:19;15944:17;15970:18;16213:17;16686:19;2512:14;;;;;;;;;;;:22;;2530:4;2512:22;;;2504:31;;;;;;;;15710:22;15699:33;;;15691:42;;;;;;15781:7;15750:27;15760:10;15772:4;15750:9;:27::i;:::-;:38;;15742:47;;;;;;15800:5;;:32;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15800:5:0;;;;:16;;:32;;;;;:5;;:32;;;;;;;;:5;;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;15800:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;16013:5:0;;:31;;;;;;16038:4;16013:31;;;;;;-1:-1:-1;;;;;16013:5:0;;;;-1:-1:-1;16013:16:0;;-1:-1:-1;16013:31:0;;;;;;;;;;;;;;;:5;;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;16013:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16013:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16013:31:0;;-1:-1:-1;16067:28:0;16013:31;16093:1;16067:12;:28::i;:::-;16158:5;;:44;;;;;;16183:4;16158:44;;;;;;;;;;;;16053:42;;-1:-1:-1;;;;;;16158:5:0;;;;:16;;:44;;;;;;;;;;;;;;;:5;;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;16158:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16158:44:0;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;16158:44:0;;;;;;;;;;;;;;;;16252:40;;;;;;;16158:44;16252:40;;;;;;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;16252:40:0;;;;;;;;16242:51;;16158:44;;-1:-1:-1;16158:44:0;;-1:-1:-1;16158:44:0;;-1:-1:-1;16158:44:0;-1:-1:-1;16252:40:0;;;;16242:51;;;;16252:40;16242:51;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;16242:51:0;;;;;;;;;;;;;16339:10;-1:-1:-1;16328:22:0;;;:10;:22;;;;;:33;;;;;;;;;:41;;;16242:51;;-1:-1:-1;;16328:41:0;;;;;:50;;-1:-1:-1;16320:59:0;;-1:-1:-1;16320:59:0;;;;;16461:4;16417:10;:22;16428:10;-1:-1:-1;;;;;16417:22:0;-1:-1:-1;;;;;16417:22:0;;;;;;;;;;;;:33;16440:9;16417:33;;;;;;;;;;;:41;;;:48;;;;;;;;;;;;;;;;;;16512:92;;;;;;;;;16523:8;16512:92;;;;;;16533:7;16512:92;;;;16542:12;16512:92;;;;;;16556:10;16512:92;;;;;;16568:11;16512:92;;;;;;16588:1;16512:92;;;;;;16592:4;16512:92;;;;;;16598:5;16512:92;;;;;16476:10;:22;16487:10;-1:-1:-1;;;;;16476:22:0;-1:-1:-1;;;;;16476:22:0;;;;;;;;;;;;:33;16499:9;16476:33;;;;;;;;;;;:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16635:40;16648:17;;16667:7;16635:12;:40::i;:::-;16615:17;:60;-1:-1:-1;16720:10:0;16708:23;;;;:11;:23;;;;;;;;16740:18;;;:23;;16762:1;16740:23;;;16772:12;;;:23;;;;;;16858:24;:36;;;;;;;16845:59;;16788:7;16845:12;:59::i;:::-;16831:10;16806:36;;;;:24;:36;;;;;;;;;:98;;;;16920:40;;;;;16956:3;16920:40;;;;;;;;;16831:10;;16920:40;;;;;;;;;;;15606:1362;;;;;;;;;:::o;4165:31::-;;;-1:-1:-1;;;;;4165:31:0;;:::o;11568:170::-;11620:7;11667:10;11695:35;11667:10;11723:6;11695:9;:35::i;:::-;11688:42;11568:170;-1:-1:-1;;;11568:170:0:o;11910:363::-;11991:7;12015:17;;;12011:255;;-1:-1:-1;;;;;;12054:37:0;;;;;;:19;:37;;;;;;12047:44;;12011:255;12134:4;12122:16;;;;12118:148;;;-1:-1:-1;;;;;12172:37:0;;;;;;:19;:37;;;;;;;;;12211:24;:42;;;;;;;12159:95;;12172:37;12159:12;:95::i;:::-;12152:102;;12118:148;11910:363;;;;:::o;10911:126::-;1810:5;;-1:-1:-1;;;;;1810:5:0;1796:10;:19;1788:28;;;;;;10994:16;:35;;-1:-1:-1;;10994:35:0;-1:-1:-1;;;;;10994:35:0;;;;;;;;;;10911:126::o;12778:257::-;12819:7;12839:12;12868:18;12948:17;12854:3;12839:18;;12889:48;12902:29;12915:4;12921:9;;12902:12;:29::i;12889:48::-;12868:69;;12968:30;12981:4;12987:10;12968:12;:30::i;1544:20::-;;;-1:-1:-1;;;;;1544:20:0;;:::o;5943:348::-;5996:7;6024:11;;;6016:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6075:28;6095:7;6075:19;:28::i;:::-;6114:13;:24;;;;;;6180:15;;6221:12;;6167:67;;6180:15;4324:7;6198:19;;6197:36;;;;;;;;6167:12;:67::i;:::-;6149:15;:85;6250:33;;;;;;;;6263:10;;6250:33;;;;;;;;;;5943:348;;;:::o;3666:29::-;;;;;;;;;;;;;;;-1:-1:-1;;3666:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11045:130;2248:16;;-1:-1:-1;;;;;2248:16:0;2234:10;:30;2226:39;;;;;;11132:16;:35;;-1:-1:-1;;11132:35:0;-1:-1:-1;;;;;11132:35:0;;;;;;;;;;11045:130::o;6462:190::-;6537:7;6557:28;6577:7;6557:19;:28::i;:::-;6603:41;6618:16;6636:7;6603:14;:41::i;9361:1227::-;9459:4;9475:24;9731:17;9824:20;9898:18;2353:1;2336:14;2345:4;2336:8;:14::i;:::-;:18;2328:27;;;;;;9502:10;9563:37;;;;:19;:37;;;;;;;;;9602:24;:42;;;;;;;9502:10;;-1:-1:-1;9550:95:0;;:12;:95::i;:::-;9531:114;;;9523:123;;;;;;9679:1;9663:13;:11;:13::i;:::-;:17;9659:60;;;9697:10;:8;:10::i;:::-;9751:62;9764:43;9777:15;9794:12;;9764;:43::i;9751:62::-;9731:82;;9847:40;9860:15;9877:9;9847:12;:40::i;:::-;9824:63;;9919:9;9898:30;;9956:37;9969:12;;9983:9;9956:12;:37::i;:::-;9941:12;:52;-1:-1:-1;;;;;10059:37:0;;;;;;:19;:37;;;;;;10046:68;;10098:15;10046:12;:68::i;:::-;-1:-1:-1;;;;;10006:37:0;;;;;;;:19;:37;;;;;;:108;;;;10172:31;;;;;;;10159:59;;10205:12;10159;:59::i;:::-;-1:-1:-1;;;;;10125:31:0;;;;;;;:19;:31;;;;;;;;:93;;;;10273:15;;;10231:28;;;;;:10;:28;;;;;;:76;;10273:33;;;10231:76;;;;;;10354:15;;10318:22;;;;;;;:67;;10354:30;;;10318:67;;;;;;10429:15;10473:12;;10416:70;;10429:15;4324:7;10447:22;;10446:39;;;;;;10416:70;10398:15;:88;10504:52;;;;;;;;-1:-1:-1;;;;;10504:52:0;;;;;;;;-1:-1:-1;;;;;;;;;;;10504:52:0;;;;;;;;-1:-1:-1;10576:4:0;;9361:1227;-1:-1:-1;;;;;;9361:1227:0:o;4403:59::-;;;;;;;;;;;;;:::o;16976:983::-;17335:5;;:44;;;;;;17360:4;17335:44;;;;;;;;;;;;17078:6;;;;;;;;;;;;;;-1:-1:-1;;;;;17335:5:0;;:16;;:44;;;;;;;;;;;;;;17078:6;17335:5;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;17335:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17335:44:0;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;17335:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17258:121;;;;;;;;;;;;;;;;;;;;;;;;;17396:10;:22;17407:10;-1:-1:-1;;;;;17396:22:0;-1:-1:-1;;;;;17396:22:0;;;;;;;;;;;;:33;17419:9;17396:33;;;;;;;;;;;:41;;;;;;;;;;;;:49;;17441:4;17396:49;;;:101;;;;-1:-1:-1;17460:10:0;17449:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:39;;;;;;;;:48;17396:101;17388:110;;;;;;;;17526:10;17515:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:41;:58;;;;:41;;:58;:87;;;;;17594:8;17577:25;;:13;:25;;;17515:87;17507:96;;;;;;;;17631:10;17620:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:43;;;17667:22;;;17620:69;17612:78;;;;;;17718:10;17707:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:45;;;:61;;;;:45;;:61;17699:70;;;;;;17797:10;17786:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:43;;;:57;;;;:43;;;;;:57;17778:66;;;;;;17872:10;17861:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:44;;;:59;;;;:44;;;;;:59;17853:68;;;;;;17939:12;16976:983;-1:-1:-1;;;;;;;;;16976:983:0:o;10687:91::-;1810:5;;-1:-1:-1;;;;;1810:5:0;1796:10;:19;1788:28;;;;;;10754:16;;;;:6;;:16;;;;;:::i;:::-;;10687:91;:::o;4127:31::-;;;-1:-1:-1;;;;;4127:31:0;;:::o;10596:83::-;1810:5;;-1:-1:-1;;;;;1810:5:0;1796:10;:19;1788:28;;;;;;10659:12;;;;:4;;:12;;;;;:::i;4872:30::-;;;;:::o;6721:345::-;6765:24;6813:18;6935:15;2437:1;2421:13;:11;:13::i;:::-;:17;2413:26;;;;;;6792:10;6765:37;;6834:13;:11;:13::i;:::-;-1:-1:-1;;;;;6858:28:0;;;;;;:10;:28;;;;;:66;;4324:7;6901:22;;6858:66;;;6813:34;-1:-1:-1;6953:44:0;6869:16;6813:34;6953:14;:44::i;:::-;6935:62;;7020:16;-1:-1:-1;;;;;7013:45:0;;7038:10;7050:7;7013:45;;;;;;;;;;;;;;;;;;;;;;;;6721:345;;;:::o;4524:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6299:155::-;6345:7;6365:28;6385:7;6365:19;:28::i;:::-;6411:35;6426:10;6438:7;6411:14;:35::i;7786:1567::-;7860:24;8044:27;8145:20;8308:19;8514:18;8619:17;8892:22;2353:1;2336:14;2345:4;2336:8;:14::i;:::-;:18;2328:27;;;;;;7887:10;7948:37;;;;:19;:37;;;;;;;;;7987:24;:42;;;;;;;7887:10;;-1:-1:-1;7935:95:0;;:12;:95::i;:::-;7916:114;;;7908:123;;;;;;8074:58;8087:39;8100:15;8117:8;;8087:12;:39::i;8074:58::-;8044:88;;8168:68;8181:50;8194:19;8215:15;;8181:12;:50::i;8168:68::-;8247:5;;8262:18;;;8247:48;;;-1:-1:-1;;;;;8247:48:0;;-1:-1:-1;;;;;8262:18:0;;;8247:48;;;;;;;;;;;;;;8145:91;;-1:-1:-1;8247:5:0;;;;:14;;:48;;;;;;;;;;;;;;;:5;;:48;;;5:2:-1;;;;30:1;27;20:12;5:2;8247:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8247:48:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;8377:14:0;;8330:68;;8343:49;;8356:19;;8343:12;:49::i;8330:68::-;8409:18;:33;;;;;;8453:5;;8468:19;;8453:48;;;-1:-1:-1;;;;;8453:48:0;;-1:-1:-1;;;;;8468:19:0;;;8453:48;;;;;;;;;;;;8308:90;;-1:-1:-1;8453:5:0;;;:14;;:48;;;;;;;;;;;;;;;8409:18;8453:5;:48;;;5:2:-1;;;;30:1;27;20:12;5:2;8453:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8453:48:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8535:73:0;;-1:-1:-1;8548:19:0;8569:38;8582:12;8595:11;8569:12;:38::i;:::-;8535:12;:73::i;:::-;8514:94;;8639:50;8652:15;8669:19;8639:12;:50::i;:::-;8619:70;;8717:43;8730:12;;8744:15;8717:12;:43::i;:::-;8702:12;:58;-1:-1:-1;;;;;8824:37:0;;;;;;:19;:37;;;;;;8811:68;;8863:15;8811:12;:68::i;:::-;-1:-1:-1;;;;;8771:37:0;;;;;;:19;:37;;;;;;;;:108;;;;8927:15;;8998:10;:28;;;;;;:47;;8927:33;;;4324:7;8964:21;;8927:59;8998:47;;;;;;9062:12;;8927:59;;-1:-1:-1;;9058:137:0;;;9113:70;9126:15;;9170:12;;4324:7;9144:10;:22;9143:39;;;;;;9113:70;9095:15;:88;9058:137;9212:55;;;;;;;;9247:1;;-1:-1:-1;;;;;9212:55:0;;;-1:-1:-1;;;;;;;;;;;9212:55:0;;;;;;;;9283:62;;;;;;;;;;;;9341:3;9283:62;;;;;;-1:-1:-1;;;;;9283:62:0;;;;;;;;;;;;;7786:1567;;;;;;;;:::o;7074:267::-;7137:10;7110:24;7189:37;;;:19;:37;;;;;;;;;7228:24;:42;;;;;;7176:95;;7189:37;7176:12;:95::i;:::-;7158:113;;7296:1;7286:7;:11;7282:30;;;7299:13;7304:7;7299:4;:13::i;:::-;7323:10;:8;:10::i;4909:32::-;;;;:::o;1836:178::-;1810:5;;-1:-1:-1;;;;;1810:5:0;1796:10;:19;1788:28;;;;;;-1:-1:-1;;;;;1913:22:0;;;;1905:31;;;;;;1969:5;;;1948:37;;-1:-1:-1;;;;;1948:37:0;;;;1969:5;;;1948:37;;;1992:5;:16;;-1:-1:-1;;1992:16:0;-1:-1:-1;;;;;1992:16:0;;;;;;;;;;1836:178::o;17967:1949::-;18063:19;18387:16;18609:15;18690:21;18766:19;18794:22;19653:19;18085:48;18095:11;18108:13;18123:9;18085;:48::i;:::-;18063:70;-1:-1:-1;18148:17:0;;;;18144:233;;;18232:5;;;;;;;;;-1:-1:-1;;;;;18232:5:0;-1:-1:-1;;;;;18232:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18232:18:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18232:18:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18232:18:0;18188:10;18177:22;;;;:10;18232:18;18177:22;;;;;;;:33;;;;;;;;:45;;:74;;;;;;;;-1:-1:-1;;18177:74:0;;;;;;;;;18144:233;;;18318:10;18307:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:45;;:60;;-1:-1:-1;;18307:60:0;;;;;;;;;18144:233;18406:5;;:30;;;;;;18430:4;18406:30;;;;;;-1:-1:-1;;;;;18406:5:0;;;;:15;;:30;;;;;;;;;;;;;;;:5;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;18406:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18406:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18406:30:0;18447:5;;:42;;;;;;;;;;;;;;;;;;;;;18406:30;;-1:-1:-1;;;;;;18447:5:0;;;;:14;;:42;;;;;:5;;:42;;;;;;;;:5;;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;18447:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;18563:10:0;18552:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:39;;:46;;-1:-1:-1;;18552:46:0;;;;;18640:5;;:30;;;;;18664:4;18640:30;;;;;;18627:54;;-1:-1:-1;;;;;;18640:5:0;;;;;-1:-1:-1;18640:15:0;;:30;;;;;18552:22;18640:30;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;18640:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18640:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18640:30:0;18672:8;18627:12;:54::i;:::-;18725:10;18714:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:43;;;18609:72;;-1:-1:-1;18714:43:0;-1:-1:-1;18831:24:0;;;18827:739;;18882:36;18895:13;18910:7;18882:12;:36::i;:::-;18868:50;;18944:39;18957:12;;18971:11;18944:12;:39::i;:::-;18929:12;:54;19061:10;19041:31;;;;:19;:31;;;;;;19028:58;;19074:11;19028:12;:58::i;:::-;19014:10;18994:31;;;;:19;:31;;;;;;;;:92;;;;19125:15;;19166:10;:22;;;;;:41;;19125:29;;;19166:41;;;;;;19218:25;;;:48;;;;;;;19282:45;;;;;;;19125:29;;-1:-1:-1;18994:31:0;;-1:-1:-1;;;;;;;;;;;19282:45:0;;;;;;;;;;18827:739;;;19357:13;19347:7;:23;19343:223;;;19397:36;19410:7;19419:13;19397:12;:36::i;:::-;19383:50;;19458:39;19473:10;19485:11;19458:14;:39::i;:::-;19508:25;;;:48;;;;;;19444:53;-1:-1:-1;19343:223:0;19596:46;19609:17;;19628:13;19596:12;:46::i;:::-;19576:17;:66;-1:-1:-1;19687:10:0;19675:23;;;;:11;:23;;;;;;;;19707:18;;;:23;;-1:-1:-1;;19707:23:0;;;19793:24;:36;;;;;;;19780:65;;19831:13;19780:12;:65::i;:::-;19766:10;19741:36;;;;:24;:36;;;;;;;;;:104;;;;19861:47;;;;;;;;;;;19904:3;19861:47;;;;;19766:10;;19861:47;;;;;;;;;;17967:1949;;;;;;;;;;:::o;52:174::-;110:9;132:6;;128:37;;;-1:-1:-1;156:1:0;149:8;;128:37;-1:-1:-1;175:5:0;;;179:1;175;:5;194;;;;;;;;:10;187:18;;;232:92;290:7;317:1;313;:5;;;;;;;;;232:92;-1:-1:-1;;;232:92:0:o;330:113::-;388:7;411:6;;;;404:14;;;;-1:-1:-1;432:5:0;;;330:113::o;449:127::-;529:5;;;548:6;;;;541:14;;;5766:169;5839:5;;:54;;;;;;5858:10;5839:54;;;;5878:4;5839:54;;;;;;;;;;;;-1:-1:-1;;;;;5839:5:0;;;;:18;;:54;;;;;;;;;;;;;;;:5;;:54;;;5:2:-1;;;;30:1;27;20:12;5:2;5839:54:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5839:54:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5839:54:0;:62;;5897:4;5839:62;5831:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5766:169;:::o;13674:1924::-;13776:7;13796:19;13980:27;14079:20;14242:19;14448:18;14553:23;14637:12;15263:22;2148:15;;2141:3;:22;;2133:31;;;;;;;;-1:-1:-1;;;;;13818:29:0;;;;;;:11;:29;;;;;13864:14;;13818:29;;-1:-1:-1;13864:19:0;13860:65;;;13900:11;:13;;;;;;13860:65;13937:30;;;;;;14050:9;;14010:56;;14023:37;;13955:12;;14023;:37::i;14010:56::-;13980:86;;14102:68;14115:50;14128:19;14149:15;;14115:12;:50::i;14102:68::-;14181:5;;14196:18;;;14181:48;;;-1:-1:-1;;;;;14181:48:0;;-1:-1:-1;;;;;14196:18:0;;;14181:48;;;;;;;;;;;;;;14079:91;;-1:-1:-1;14181:5:0;;;;:14;;:48;;;;;;;;;;;;;;;:5;;:48;;;5:2:-1;;;;30:1;27;20:12;5:2;14181:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14181:48:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;14311:14:0;;14264:68;;14277:49;;14290:19;;14277:12;:49::i;14264:68::-;14343:18;:33;;;;;;14387:5;;14402:19;;14387:48;;;-1:-1:-1;;;;;14387:48:0;;-1:-1:-1;;;;;14402:19:0;;;14387:48;;;;;;;;;;;;14242:90;;-1:-1:-1;14387:5:0;;;:14;;:48;;;;;;;;;;;;;;;14343:18;14387:5;:48;;;5:2:-1;;;;30:1;27;20:12;5:2;14387:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14387:48:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14469:73:0;;-1:-1:-1;14482:19:0;14503:38;14516:11;14528:12;14503;:38::i;14469:73::-;14448:94;;14579:47;14592:12;14606:19;14579:12;:47::i;:::-;14553:73;;4324:7;14652:10;:22;14637:37;;14713:1;14695:15;:19;:81;;;;-1:-1:-1;14764:12:0;;14718:43;14731:15;14764:12;14718;:43::i;:::-;:58;14695:81;14687:90;;;;;;;;14809:1;14794:12;;:16;14790:340;;;14842:43;14855:12;;14869:15;14842:12;:43::i;:::-;14827:12;:58;;;4324:7;14920:22;;:37;;;;;;;14900:15;:58;;14920:37;;;;14900:58;;;;;15040:12;;4324:7;15015:22;;:37;;;;;;;;14996:15;:57;14988:4;:66;14980:4;:75;14973:82;;14790:340;;;15088:12;:30;;;14790:340;-1:-1:-1;;;;;15195:37:0;;;;;;:19;:37;;;;;;15182:68;;15234:15;15182:12;:68::i;:::-;-1:-1:-1;;;;;15142:37:0;;;;;;:19;:37;;;;;;;;:108;;;;15298:15;;15350:10;:28;;;;;:47;;15298:33;;;:40;;;15350:47;;;;;15415:55;;;;;;;15298:40;;-1:-1:-1;15142:37:0;;;;-1:-1:-1;;;;;;;;;;;15415:55:0;;;;;;;;;15486:69;;;;;;;;;;;;15551:3;15486:69;;;;;;-1:-1:-1;;;;;15486:69:0;;;;;;;;;;;;;-1:-1:-1;15575:15:0;;13674:1924;-1:-1:-1;;;;;;;;;13674:1924:0:o;2023:17896::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2023:17896:0;;;;-1:-1:-1;2023:17896:0;;;;;;;;;;;;;;

Swarm Source

bzzr://a172c5afc30e06aefd000d05543aec96278590d98ba80558c41dc6b7cff18286
Loading...
Loading
Loading...
Loading
[ 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.