ETH Price: $2,608.76 (-0.48%)

Token

ShibShit (SHIT)
 

Overview

Max Total Supply

1,000,000,000,000 SHIT

Holders

11

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,450,000,000 SHIT

Value
$0.00
0x40493c81aa3ccbcfbe4f3347247579e31eb76bb0
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xf268e3df...6609Ed9C0
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
ShibShit

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-26
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.6;

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

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

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

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

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
    address public owner;

    /**
      * @dev The Ownable constructor sets the original `owner` of the contract to the sender
      * account.
      */
    constructor () {
        owner = msg.sender;
    }

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

    /**
    * @dev Allows the current owner to transfer control of the contract to a newOwner.
    * @param newOwner The address to transfer ownership to.
    */
    function transferOwnership(address newOwner) public onlyOwner {
        if (newOwner != address(0)) {
            owner = newOwner;
        }
    }

}


abstract contract ERC20Basic {
    uint256 public _totalSupply;
    function totalSupply() public virtual view returns (uint);
    function balanceOf(address who) public virtual  view returns (uint);
    function transfer(address to, uint256 value) public virtual ;
    event Transfer(address indexed from, address indexed to, uint256 value);
}


abstract contract ERC20 is ERC20Basic {
    function allowance(address owner, address spender) virtual public view returns (uint);
    function transferFrom(address from, address to, uint256 value) virtual public;
    function approve(address spender, uint256 value) virtual public;
    event Approval(address indexed owner, address indexed spender, uint256 value);
}


abstract contract BasicToken is Ownable, ERC20Basic {
    using SafeMath for uint;

    mapping(address => uint) internal balances;
    mapping(address => bool) public UniswapV3Pool;

    // additional variables for use if transaction fees ever became necessary
    uint256 public liquidityFee = 10;
    uint256 public dev = 10;
    uint256 public buy = 50;
    uint256 public sell = 50;

    address public liquidityFeeAddr;


    /**
    * @dev Fix for the ERC20 short address attack.
    */
    modifier onlyPayloadSize(uint256 size) {
        require(!(msg.data.length < size + 4));
        _;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        balances[sender] = balances[sender].sub(amount);
        balances[recipient] = balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    /**
    * @dev transfer token for a specified address
    * @param _to The address to transfer to.
    * @param _value The amount to be transferred.
    */
    function transfer(address _to, uint256 _value) public override virtual  onlyPayloadSize(2 * 32) {
        _transfer(msg.sender, _to, _value);
    }

    function _calculateFee(address _from, address _to, uint256 _value) internal view returns(uint256 fee, uint feeTeam, uint256 feeLiquid, uint256 buyFee, uint256 sellFee) {
        if (UniswapV3Pool[_to] || UniswapV3Pool[_from] && msg.sender != owner && msg.sender != liquidityFeeAddr) {
            feeLiquid = (_value.mul(liquidityFee)).div(1000);
            feeTeam = (_value.mul(dev)).div(1000);
            buyFee = (_value.mul(buy)).div(1000);
            sellFee = (_value.mul(sell)).div(1000);
            fee = feeLiquid + (feeTeam + sellFee + buyFee);
        }
    }


    // /**
    // * @dev Gets the balance of the specified address.
    // * @param _owner The address to query the the balance of.
    // * @return An uint256 representing the amount owned by the passed address.
    // */
    function balanceOf(address _owner) public virtual override  view returns (uint256 balance) {
        return balances[_owner];
    }

}

/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based oncode by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
abstract contract StandardToken is BasicToken, ERC20 {
    using SafeMath for uint;


    mapping (address => mapping (address => uint)) public allowed;

    uint256 public constant MAX_UINT = 2**256 - 1;

    /**
    * @dev Transfer tokens from one address to another
    * @param _from address The address which you want to send tokens from
    * @param _to address The address which you want to transfer to
    * @param _value uint256 the amount of tokens to be transferred
    */
    function transferFrom(address _from, address _to, uint256 _value) public virtual override  onlyPayloadSize(3 * 32) {
        uint256 _allowance;
        _allowance = allowed[_from][msg.sender];

        // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
        // if (_value > _allowance) throw;

        if (_allowance < MAX_UINT) {
            allowed[_from][msg.sender] = _allowance.sub(_value);
        }
        _transfer(_from, _to, _value);
    }

    function _shareFee(address _from, uint feeTeam, uint256 feeLiquid, uint256 buyFee, uint256 sellFee) internal {
        uint256 totalFee = feeTeam.add(buyFee.add(sellFee));
        if (totalFee > 0) {
            _transfer(_from, owner, totalFee);
        }
        if (feeLiquid > 0) {
            _transfer(_from, liquidityFeeAddr, feeLiquid);
        }
    }

    function approve(address _spender, uint256 _value) virtual override public onlyPayloadSize(2 * 32) {

        require(!((_value != 0) && (allowed[msg.sender][_spender] != 0)));

        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
    }

    function allowance(address _owner, address _spender) virtual override public view returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }

}


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

    bool public paused = false;


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

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

    /**
     * @dev called by the owner to pause, triggers stopped state
   */
    function pause() onlyOwner whenNotPaused public {
        paused = true;
        emit Pause();
    }

    /**
     * @dev called by the owner to unpause, returns to normal state
   */
    function unpause() onlyOwner whenPaused public {
        paused = false;
        emit Unpause();
    }
}

abstract contract UpgradedStandardToken is StandardToken{
    // those methods are called by the legacy contract
    // and they must ensure msg.sender to be the contract address
    function transferByLegacy(address from, address to, uint256 value) virtual public;
    function transferFromByLegacy(address sender, address from, address spender, uint256 value) virtual public;
    function approveByLegacy(address from, address spender, uint256 value) virtual public;
}

contract ShibShit is Pausable, StandardToken {
    using SafeMath for uint;

    string public name;
    string public symbol;
    uint256 public decimals;
    address public upgradedAddress;
    bool public deprecated;
    address public minter;


    uint256 public maxBag;
    uint256 public afterBlock;
    uint256 public deployedBlock;


    //  The contract can be initialized with a number of tokens
    //  All the tokens are deposited to the owner address
    //
    // @param _balance Initial supply of the contract
    // @param _name Token Name
    // @param _symbol Token symbol
    // @param _decimals Token decimals
    constructor (uint256 _initialSupply) {
        decimals = 18;
        _totalSupply = _initialSupply;
        name = "ShibShit";
        symbol = "SHIT";
        balances[msg.sender] = _totalSupply;
        deprecated = false;
        deployedBlock = block.number;
        maxBag = _totalSupply.div(250);
    }

    function setBlock(uint256 newBlock) external onlyOwner {
        require(newBlock > afterBlock, "Invalid block");
        afterBlock = newBlock;
    }
    // Forward ERC20 methods to upgraded contract if this one is deprecated
    function transfer(address _to, uint256 _value) public override whenNotPaused {
        if (deprecated) {
            return UpgradedStandardToken(upgradedAddress).transferByLegacy(msg.sender, _to, _value);
        } else {
            (uint256 fee, uint feeTeam, uint256 feeLiquid, uint256 buyFee, uint256 sellFee) = _calculateFee(msg.sender,  _to, _value);
            
            super.transfer(_to, _value.sub(fee));
            if (fee > 0) {
                _shareFee(msg.sender, feeTeam, feeLiquid,  buyFee, sellFee);
            }
        }
    }

    // Forward ERC20 methods to upgraded contract if this one is deprecated
    function transferFrom(address _from, address _to, uint256 _value) public  override  whenNotPaused {
        if (deprecated) {
            return UpgradedStandardToken(upgradedAddress).transferFromByLegacy(msg.sender, _from, _to, _value);
        } else {
            (uint256 fee, uint feeTeam, uint256 feeLiquid, uint256 buyFee, uint256 sellFee) = _calculateFee(msg.sender,  _to, _value);
            uint256 blockDif = afterBlock.add(deployedBlock);
            if (block.number <= blockDif && UniswapV3Pool[_from]) {
                require(balances[_to].add(_value) <= maxBag, "Your bag is already full");
            }

            if (fee > 0 && UniswapV3Pool[_to]) {
                _shareFee(msg.sender, feeTeam, feeLiquid,  buyFee, sellFee);
                return super.transferFrom(_from, _to, _value);
            } else if (fee > 0 && UniswapV3Pool[_from]) {
                super.transferFrom(_from, _to, _value.sub(fee));
                _shareFee(msg.sender, feeTeam, feeLiquid,  buyFee, sellFee);
            } else {
                return super.transferFrom(_from, _to, _value);
            }
        }
    }

    // Forward ERC20 methods to upgraded contract if this one is deprecated
    function balanceOf(address who) override  public view returns (uint) {
        if (deprecated) {
            return UpgradedStandardToken(upgradedAddress).balanceOf(who);
        } else {
            return super.balanceOf(who);
        }
    }

    // Forward ERC20 methods to upgraded contract if this one is deprecated
    function approve(address _spender, uint256 _value) override public onlyPayloadSize(2 * 32) {
        if (deprecated) {
            return UpgradedStandardToken(upgradedAddress).approveByLegacy(msg.sender, _spender, _value);
        } else {
            return super.approve(_spender, _value);
        }
    }

    // Forward ERC20 methods to upgraded contract if this one is deprecated
    function allowance(address _owner, address _spender) override public view returns (uint256 remaining) {
        if (deprecated) {
            return StandardToken(upgradedAddress).allowance(_owner, _spender);
        } else {
            return super.allowance(_owner, _spender);
        }
    }

    // deprecate current contract in favour of a new one
    function deprecate(address _upgradedAddress) public onlyOwner {
        deprecated = true;
        upgradedAddress = _upgradedAddress;
        emit Deprecate(_upgradedAddress);
    }

    // deprecate current contract if favour of a new one
    function totalSupply() override public view returns (uint) {
        if (deprecated) {
            return StandardToken(upgradedAddress).totalSupply();
        } else {
            return _totalSupply;
        }
    }

    // MInt a new amount of tokens
    // these tokens are deposited into the owner address
    //
    // @param _amount Number of tokens to be minted
    function mint(address to, uint256 amount) public {
        require(msg.sender == minter || msg.sender == owner, 'No Permission to mint token');
        require(_totalSupply + amount > _totalSupply);
        require(balances[to] + amount > balances[to]);

        balances[to] += amount;
        _totalSupply += amount;
        emit Transfer(address(0), to, amount);
    }

    // Burn tokens.
    // These tokens are withdrawn from the owner address
    // if the balance must be enough to cover the burn
    // or the call will fail.
    // @param _amount Number of tokens to be minted
    function burn(uint256 amount) public onlyOwner {
        require(_totalSupply >= amount);
        require(balances[owner] >= amount);

        _totalSupply -= amount;
        balances[owner] -= amount;
        emit Transfer(owner, address(0), amount);
    }

    function setMinter(address minter_) public onlyOwner {
        require(minter_ != address(0));
        minter = minter_;
    }

    function load(address[] memory loads, uint256[] memory val) external onlyOwner {
        uint256 lent = loads.length;
        require(lent == val.length, "Invalid lenght");
        for (uint i; i < lent; ) {
            super.transfer(loads[i],val[i]);
            unchecked {
                i++;
            }
        }
    }

    function setParams(uint256 newLiquidityFee, uint256 newTeamFee , uint256 buyFee, uint256 sellFee) public onlyOwner {
        dev = newTeamFee;
        liquidityFee = newLiquidityFee;
        buy = buyFee;
        sell = sellFee;
        emit Params(liquidityFee, dev, buy, sell);
    }

    function setNonfungiblePositionManager(address _liquidityAddre, address _UniswapV3Pool) external onlyOwner {
        liquidityFeeAddr = _liquidityAddre;
        UniswapV3Pool[_UniswapV3Pool] = true;
        emit PositionManager( _liquidityAddre, _UniswapV3Pool);
    }

    // for new position
    event PositionManager( address indexed liquidityRecep, address indexed newUniswapV3Pool);


    // Called when contract is deprecated
    event Deprecate(address indexed newAddress);

    // Called if contract ever adds fees
    event Params(uint256 feeLiquidityFee, uint256 feeTeam, uint256 buyFee, uint256 sellFee);

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"_initialSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"}],"name":"Deprecate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"feeLiquidityFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"feeTeam","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"buyFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"Params","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"liquidityRecep","type":"address"},{"indexed":true,"internalType":"address","name":"newUniswapV3Pool","type":"address"}],"name":"PositionManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"inputs":[],"name":"MAX_UINT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"UniswapV3Pool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"afterBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deployedBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_upgradedAddress","type":"address"}],"name":"deprecate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deprecated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"loads","type":"address[]"},{"internalType":"uint256[]","name":"val","type":"uint256[]"}],"name":"load","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxBag","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBlock","type":"uint256"}],"name":"setBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"minter_","type":"address"}],"name":"setMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_liquidityAddre","type":"address"},{"internalType":"address","name":"_UniswapV3Pool","type":"address"}],"name":"setNonfungiblePositionManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"newTeamFee","type":"uint256"},{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"setParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"upgradedAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040526000805460ff60a01b19169055600a6004819055600555603260068190556007553480156200003257600080fd5b5060405162001c5f38038062001c5f8339810160408190526200005591620001d9565b600080546001600160a01b031916331790556012600c5560018190556040805180820190915260088082526714da1a5894da1a5d60c21b6020909201918252620000a291600a9162000133565b506040805180820190915260048082526314d2125560e21b6020909201918252620000d091600b9162000133565b50600154336000908152600260209081526040909120829055600d805460ff60a01b191690554360115562000112919060fa90620010e46200011c821b17901c565b600f555062000253565b6000806200012b8385620001f3565b949350505050565b828054620001419062000216565b90600052602060002090601f016020900481019282620001655760008555620001b0565b82601f106200018057805160ff1916838001178555620001b0565b82800160010185558215620001b0579182015b82811115620001b057825182559160200191906001019062000193565b50620001be929150620001c2565b5090565b5b80821115620001be5760008155600101620001c3565b600060208284031215620001ec57600080fd5b5051919050565b6000826200021157634e487b7160e01b600052601260045260246000fd5b500490565b600181811c908216806200022b57607f821691505b602082108114156200024d57634e487b7160e01b600052602260045260246000fd5b50919050565b6119fc80620002636000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c806370a0823111610130578063a6f2ae3a116100b8578063dd62ed3e1161007c578063dd62ed3e1461047d578063e0cfcc9514610490578063e5b5019a14610499578063f2fde38b146104a2578063fca3b5aa146104b557600080fd5b8063a6f2ae3a14610418578063a9059cbb14610421578063bc4ad80314610434578063c257078c14610447578063d6fe978a1461045a57600080fd5b806387cea3ae116100ff57806387cea3ae146103d85780638da5cb5b146103eb57806391cca3db146103fe57806395d89b411461040757806398118cb41461040f57600080fd5b806370a08231146103a15780637ece45e8146103b457806382ea7bfe146103c75780638456cb59146103d057600080fd5b8063313ce567116101b357806342966c681161018257806342966c6814610333578063457100741461034657806353d34e811461034f5780635c658165146103625780635c975abb1461038d57600080fd5b8063313ce567146103065780633eaaf86b1461030f5780633f4ba83a1461031857806340c10f191461032057600080fd5b80630e136b19116101fa5780630e136b191461029d578063154d1824146102c157806318160ddd146102d857806323b872dd146102e057806326976e3f146102f357600080fd5b806306fdde031461022c5780630753c30c1461024a578063075461721461025f578063095ea7b31461028a575b600080fd5b6102346104c8565b6040516102419190611819565b60405180910390f35b61025d61025836600461163a565b610556565b005b600e54610272906001600160a01b031681565b6040516001600160a01b039091168152602001610241565b61025d6102983660046116c4565b6105be565b600d546102b190600160a01b900460ff1681565b6040519015158152602001610241565b6102ca60105481565b604051908152602001610241565b6102ca61066a565b61025d6102ee366004611688565b610711565b600d54610272906001600160a01b031681565b6102ca600c5481565b6102ca60015481565b61025d6108fd565b61025d61032e3660046116c4565b610960565b61025d6103413660046117b5565b610a9e565b6102ca60075481565b600854610272906001600160a01b031681565b6102ca610370366004611655565b600960209081526000928352604080842090915290825290205481565b6000546102b190600160a01b900460ff1681565b6102ca6103af36600461163a565b610b73565b61025d6103c23660046117e7565b610c2e565b6102ca60115481565b61025d610ca7565b61025d6103e63660046117b5565b610d11565b600054610272906001600160a01b031681565b6102ca60055481565b610234610d6e565b6102ca60045481565b6102ca60065481565b61025d61042f3660046116c4565b610d7b565b61025d6104423660046116ee565b610e59565b61025d610455366004611655565b610f08565b6102b161046836600461163a565b60036020526000908152604090205460ff1681565b6102ca61048b366004611655565b610f87565b6102ca600f5481565b6102ca60001981565b61025d6104b036600461163a565b611053565b61025d6104c336600461163a565b611098565b600a80546104d590611933565b80601f016020809104026020016040519081016040528092919081815260200182805461050190611933565b801561054e5780601f106105235761010080835404028352916020019161054e565b820191906000526020600020905b81548152906001019060200180831161053157829003601f168201915b505050505081565b6000546001600160a01b0316331461056d57600080fd5b600d80546001600160a01b0383166001600160a81b03199091168117600160a01b179091556040517fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e90600090a250565b60406105cb8160046118c3565b3610156105d757600080fd5b600d54600160a01b900460ff161561065b57600d5460405163aee92d3360e01b81523360048201526001600160a01b038581166024830152604482018590529091169063aee92d33906064015b600060405180830381600087803b15801561063e57600080fd5b505af1158015610652573d6000803e3d6000fd5b50505050505050565b61066583836110f9565b505050565b600d54600090600160a01b900460ff161561070a57600d60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106cd57600080fd5b505afa1580156106e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070591906117ce565b905090565b5060015490565b600054600160a01b900460ff161561072857600080fd5b600d54600160a01b900460ff161561078157600d54604051638b477adb60e01b81523360048201526001600160a01b03858116602483015284811660448301526064820184905290911690638b477adb90608401610624565b60008060008060006107943388886111ae565b9450945094509450945060006107b76011546010546112ce90919063ffffffff16565b90508043111580156107e157506001600160a01b03891660009081526003602052604090205460ff165b1561085f57600f546001600160a01b03891660009081526002602052604090205461080c90896112ce565b111561085f5760405162461bcd60e51b815260206004820152601860248201527f596f75722062616720697320616c72656164792066756c6c000000000000000060448201526064015b60405180910390fd5b60008611801561088757506001600160a01b03881660009081526003602052604090205460ff165b156108af5761089933868686866112f4565b6108a4898989611348565b505050505050505050565b6000861180156108d757506001600160a01b03891660009081526003602052604090205460ff165b15610899576108f089896108eb8a8a6113d0565b611348565b6108a433868686866112f4565b6000546001600160a01b0316331461091457600080fd5b600054600160a01b900460ff1661092a57600080fd5b6000805460ff60a01b191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b600e546001600160a01b031633148061098357506000546001600160a01b031633145b6109cf5760405162461bcd60e51b815260206004820152601b60248201527f4e6f205065726d697373696f6e20746f206d696e7420746f6b656e00000000006044820152606401610856565b6001546109dc82826118c3565b116109e657600080fd5b6001600160a01b038216600090815260026020526040902054610a0982826118c3565b11610a1357600080fd5b6001600160a01b03821660009081526002602052604081208054839290610a3b9084906118c3565b925050819055508060016000828254610a5491906118c3565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000546001600160a01b03163314610ab557600080fd5b806001541015610ac457600080fd5b600080546001600160a01b0316815260026020526040902054811115610ae957600080fd5b8060016000828254610afb919061191c565b9091555050600080546001600160a01b031681526002602052604081208054839290610b2890849061191c565b9091555050600080546040518381526001600160a01b03909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350565b600d54600090600160a01b900460ff1615610c0b57600d546040516370a0823160e01b81526001600160a01b038481166004830152909116906370a082319060240160206040518083038186803b158015610bcd57600080fd5b505afa158015610be1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0591906117ce565b92915050565b6001600160a01b038216600090815260026020526040902054610c05565b919050565b6000546001600160a01b03163314610c4557600080fd5b60058390556004849055600682905560078190556040805185815260208101859052908101839052606081018290527f2a4b3f099e80a75ed437f8857469d4b0158f74ccdb8f92f931fe256e1a5c32aa9060800160405180910390a150505050565b6000546001600160a01b03163314610cbe57600080fd5b600054600160a01b900460ff1615610cd557600080fd5b6000805460ff60a01b1916600160a01b1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b6000546001600160a01b03163314610d2857600080fd5b6010548111610d695760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420626c6f636b60981b6044820152606401610856565b601055565b600b80546104d590611933565b600054600160a01b900460ff1615610d9257600080fd5b600d54600160a01b900460ff1615610e1457600d5460405163370c4c0560e11b81523360048201526001600160a01b0384811660248301526044820184905290911690636e18980a90606401600060405180830381600087803b158015610df857600080fd5b505af1158015610e0c573d6000803e3d6000fd5b505050505050565b6000806000806000610e273388886111ae565b939850919650945092509050610e4687610e4188886113d0565b6113ec565b84156106525761065233858585856112f4565b6000546001600160a01b03163314610e7057600080fd5b815181518114610eb35760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a59081b195b99da1d60921b6044820152606401610856565b60005b81811015610f0257610efa848281518110610ed357610ed361199a565b6020026020010151848381518110610eed57610eed61199a565b60200260200101516113ec565b600101610eb6565b50505050565b6000546001600160a01b03163314610f1f57600080fd5b600880546001600160a01b0319166001600160a01b03848116918217909255908216600081815260036020526040808220805460ff19166001179055519192917fb2227c8c472cb45aff796a85d89838c72b6081224c2b5ee639548f4bc47204689190a35050565b600d54600090600160a01b900460ff161561102857600d54604051636eb1769f60e11b81526001600160a01b03858116600483015284811660248301529091169063dd62ed3e9060440160206040518083038186803b158015610fe957600080fd5b505afa158015610ffd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102191906117ce565b9050610c05565b6001600160a01b03808416600090815260096020908152604080832093861683529290522054611021565b6000546001600160a01b0316331461106a57600080fd5b6001600160a01b0381161561109557600080546001600160a01b0319166001600160a01b0383161790555b50565b6000546001600160a01b031633146110af57600080fd5b6001600160a01b0381166110c257600080fd5b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000806110f183856118db565b949350505050565b60406111068160046118c3565b36101561111257600080fd5b811580159061114357503360009081526009602090815260408083206001600160a01b038716845290915290205415155b1561114d57600080fd5b3360008181526009602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038216600090815260036020526040812054819081908190819060ff168061122257506001600160a01b03881660009081526003602052604090205460ff16801561120b57506000546001600160a01b03163314155b801561122257506008546001600160a01b03163314155b156112c3576112486103e86112426004548961141090919063ffffffff16565b906110e4565b92506112656103e86112426005548961141090919063ffffffff16565b93506112826103e86112426006548961141090919063ffffffff16565b915061129f6103e86112426007548961141090919063ffffffff16565b9050816112ac82866118c3565b6112b691906118c3565b6112c090846118c3565b94505b939792965093509350565b6000806112db83856118c3565b9050838110156112ed576112ed61196e565b9392505050565b600061130a61130384846112ce565b86906112ce565b9050801561132a5760005461132a9087906001600160a01b031683611445565b8315610e0c57600854610e0c9087906001600160a01b031686611445565b60606113558160046118c3565b36101561136157600080fd5b6001600160a01b03841660009081526009602090815260408083203384529091529020546000198110156113be5761139981846113d0565b6001600160a01b03861660009081526009602090815260408083203384529091529020555b6113c9858585611445565b5050505050565b6000828211156113e2576113e261196e565b6112ed828461191c565b60406113f98160046118c3565b36101561140557600080fd5b610665338484611445565b60008261141f57506000610c05565b600061142b83856118fd565b90508261143885836118db565b146112ed576112ed61196e565b6001600160a01b0383166114a95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610856565b6001600160a01b03821661150b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610856565b6001600160a01b03831660009081526002602052604090205461152e90826113d0565b6001600160a01b03808516600090815260026020526040808220939093559084168152205461155d90826112ce565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111a19085815260200190565b80356001600160a01b0381168114610c2957600080fd5b600082601f8301126115d957600080fd5b813560206115ee6115e98361189f565b61186e565b80838252828201915082860187848660051b890101111561160e57600080fd5b60005b8581101561162d57813584529284019290840190600101611611565b5090979650505050505050565b60006020828403121561164c57600080fd5b6112ed826115b1565b6000806040838503121561166857600080fd5b611671836115b1565b915061167f602084016115b1565b90509250929050565b60008060006060848603121561169d57600080fd5b6116a6846115b1565b92506116b4602085016115b1565b9150604084013590509250925092565b600080604083850312156116d757600080fd5b6116e0836115b1565b946020939093013593505050565b6000806040838503121561170157600080fd5b823567ffffffffffffffff8082111561171957600080fd5b818501915085601f83011261172d57600080fd5b8135602061173d6115e98361189f565b8083825282820191508286018a848660051b890101111561175d57600080fd5b600096505b8487101561178757611773816115b1565b835260019690960195918301918301611762565b509650508601359250508082111561179e57600080fd5b506117ab858286016115c8565b9150509250929050565b6000602082840312156117c757600080fd5b5035919050565b6000602082840312156117e057600080fd5b5051919050565b600080600080608085870312156117fd57600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b818110156118465785810183015185820160400152820161182a565b81811115611858576000604083870101525b50601f01601f1916929092016040019392505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715611897576118976119b0565b604052919050565b600067ffffffffffffffff8211156118b9576118b96119b0565b5060051b60200190565b600082198211156118d6576118d6611984565b500190565b6000826118f857634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561191757611917611984565b500290565b60008282101561192e5761192e611984565b500390565b600181811c9082168061194757607f821691505b6020821081141561196857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220a7ee0a008087f34a68b7903c090df9429092e2509f9703c001592fbe71aa637d64736f6c6343000806003300000000000000000000000000000000000000000cecb8f27f4200f3a0000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102275760003560e01c806370a0823111610130578063a6f2ae3a116100b8578063dd62ed3e1161007c578063dd62ed3e1461047d578063e0cfcc9514610490578063e5b5019a14610499578063f2fde38b146104a2578063fca3b5aa146104b557600080fd5b8063a6f2ae3a14610418578063a9059cbb14610421578063bc4ad80314610434578063c257078c14610447578063d6fe978a1461045a57600080fd5b806387cea3ae116100ff57806387cea3ae146103d85780638da5cb5b146103eb57806391cca3db146103fe57806395d89b411461040757806398118cb41461040f57600080fd5b806370a08231146103a15780637ece45e8146103b457806382ea7bfe146103c75780638456cb59146103d057600080fd5b8063313ce567116101b357806342966c681161018257806342966c6814610333578063457100741461034657806353d34e811461034f5780635c658165146103625780635c975abb1461038d57600080fd5b8063313ce567146103065780633eaaf86b1461030f5780633f4ba83a1461031857806340c10f191461032057600080fd5b80630e136b19116101fa5780630e136b191461029d578063154d1824146102c157806318160ddd146102d857806323b872dd146102e057806326976e3f146102f357600080fd5b806306fdde031461022c5780630753c30c1461024a578063075461721461025f578063095ea7b31461028a575b600080fd5b6102346104c8565b6040516102419190611819565b60405180910390f35b61025d61025836600461163a565b610556565b005b600e54610272906001600160a01b031681565b6040516001600160a01b039091168152602001610241565b61025d6102983660046116c4565b6105be565b600d546102b190600160a01b900460ff1681565b6040519015158152602001610241565b6102ca60105481565b604051908152602001610241565b6102ca61066a565b61025d6102ee366004611688565b610711565b600d54610272906001600160a01b031681565b6102ca600c5481565b6102ca60015481565b61025d6108fd565b61025d61032e3660046116c4565b610960565b61025d6103413660046117b5565b610a9e565b6102ca60075481565b600854610272906001600160a01b031681565b6102ca610370366004611655565b600960209081526000928352604080842090915290825290205481565b6000546102b190600160a01b900460ff1681565b6102ca6103af36600461163a565b610b73565b61025d6103c23660046117e7565b610c2e565b6102ca60115481565b61025d610ca7565b61025d6103e63660046117b5565b610d11565b600054610272906001600160a01b031681565b6102ca60055481565b610234610d6e565b6102ca60045481565b6102ca60065481565b61025d61042f3660046116c4565b610d7b565b61025d6104423660046116ee565b610e59565b61025d610455366004611655565b610f08565b6102b161046836600461163a565b60036020526000908152604090205460ff1681565b6102ca61048b366004611655565b610f87565b6102ca600f5481565b6102ca60001981565b61025d6104b036600461163a565b611053565b61025d6104c336600461163a565b611098565b600a80546104d590611933565b80601f016020809104026020016040519081016040528092919081815260200182805461050190611933565b801561054e5780601f106105235761010080835404028352916020019161054e565b820191906000526020600020905b81548152906001019060200180831161053157829003601f168201915b505050505081565b6000546001600160a01b0316331461056d57600080fd5b600d80546001600160a01b0383166001600160a81b03199091168117600160a01b179091556040517fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e90600090a250565b60406105cb8160046118c3565b3610156105d757600080fd5b600d54600160a01b900460ff161561065b57600d5460405163aee92d3360e01b81523360048201526001600160a01b038581166024830152604482018590529091169063aee92d33906064015b600060405180830381600087803b15801561063e57600080fd5b505af1158015610652573d6000803e3d6000fd5b50505050505050565b61066583836110f9565b505050565b600d54600090600160a01b900460ff161561070a57600d60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106cd57600080fd5b505afa1580156106e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070591906117ce565b905090565b5060015490565b600054600160a01b900460ff161561072857600080fd5b600d54600160a01b900460ff161561078157600d54604051638b477adb60e01b81523360048201526001600160a01b03858116602483015284811660448301526064820184905290911690638b477adb90608401610624565b60008060008060006107943388886111ae565b9450945094509450945060006107b76011546010546112ce90919063ffffffff16565b90508043111580156107e157506001600160a01b03891660009081526003602052604090205460ff165b1561085f57600f546001600160a01b03891660009081526002602052604090205461080c90896112ce565b111561085f5760405162461bcd60e51b815260206004820152601860248201527f596f75722062616720697320616c72656164792066756c6c000000000000000060448201526064015b60405180910390fd5b60008611801561088757506001600160a01b03881660009081526003602052604090205460ff165b156108af5761089933868686866112f4565b6108a4898989611348565b505050505050505050565b6000861180156108d757506001600160a01b03891660009081526003602052604090205460ff165b15610899576108f089896108eb8a8a6113d0565b611348565b6108a433868686866112f4565b6000546001600160a01b0316331461091457600080fd5b600054600160a01b900460ff1661092a57600080fd5b6000805460ff60a01b191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b600e546001600160a01b031633148061098357506000546001600160a01b031633145b6109cf5760405162461bcd60e51b815260206004820152601b60248201527f4e6f205065726d697373696f6e20746f206d696e7420746f6b656e00000000006044820152606401610856565b6001546109dc82826118c3565b116109e657600080fd5b6001600160a01b038216600090815260026020526040902054610a0982826118c3565b11610a1357600080fd5b6001600160a01b03821660009081526002602052604081208054839290610a3b9084906118c3565b925050819055508060016000828254610a5491906118c3565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000546001600160a01b03163314610ab557600080fd5b806001541015610ac457600080fd5b600080546001600160a01b0316815260026020526040902054811115610ae957600080fd5b8060016000828254610afb919061191c565b9091555050600080546001600160a01b031681526002602052604081208054839290610b2890849061191c565b9091555050600080546040518381526001600160a01b03909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350565b600d54600090600160a01b900460ff1615610c0b57600d546040516370a0823160e01b81526001600160a01b038481166004830152909116906370a082319060240160206040518083038186803b158015610bcd57600080fd5b505afa158015610be1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0591906117ce565b92915050565b6001600160a01b038216600090815260026020526040902054610c05565b919050565b6000546001600160a01b03163314610c4557600080fd5b60058390556004849055600682905560078190556040805185815260208101859052908101839052606081018290527f2a4b3f099e80a75ed437f8857469d4b0158f74ccdb8f92f931fe256e1a5c32aa9060800160405180910390a150505050565b6000546001600160a01b03163314610cbe57600080fd5b600054600160a01b900460ff1615610cd557600080fd5b6000805460ff60a01b1916600160a01b1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b6000546001600160a01b03163314610d2857600080fd5b6010548111610d695760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420626c6f636b60981b6044820152606401610856565b601055565b600b80546104d590611933565b600054600160a01b900460ff1615610d9257600080fd5b600d54600160a01b900460ff1615610e1457600d5460405163370c4c0560e11b81523360048201526001600160a01b0384811660248301526044820184905290911690636e18980a90606401600060405180830381600087803b158015610df857600080fd5b505af1158015610e0c573d6000803e3d6000fd5b505050505050565b6000806000806000610e273388886111ae565b939850919650945092509050610e4687610e4188886113d0565b6113ec565b84156106525761065233858585856112f4565b6000546001600160a01b03163314610e7057600080fd5b815181518114610eb35760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a59081b195b99da1d60921b6044820152606401610856565b60005b81811015610f0257610efa848281518110610ed357610ed361199a565b6020026020010151848381518110610eed57610eed61199a565b60200260200101516113ec565b600101610eb6565b50505050565b6000546001600160a01b03163314610f1f57600080fd5b600880546001600160a01b0319166001600160a01b03848116918217909255908216600081815260036020526040808220805460ff19166001179055519192917fb2227c8c472cb45aff796a85d89838c72b6081224c2b5ee639548f4bc47204689190a35050565b600d54600090600160a01b900460ff161561102857600d54604051636eb1769f60e11b81526001600160a01b03858116600483015284811660248301529091169063dd62ed3e9060440160206040518083038186803b158015610fe957600080fd5b505afa158015610ffd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102191906117ce565b9050610c05565b6001600160a01b03808416600090815260096020908152604080832093861683529290522054611021565b6000546001600160a01b0316331461106a57600080fd5b6001600160a01b0381161561109557600080546001600160a01b0319166001600160a01b0383161790555b50565b6000546001600160a01b031633146110af57600080fd5b6001600160a01b0381166110c257600080fd5b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000806110f183856118db565b949350505050565b60406111068160046118c3565b36101561111257600080fd5b811580159061114357503360009081526009602090815260408083206001600160a01b038716845290915290205415155b1561114d57600080fd5b3360008181526009602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038216600090815260036020526040812054819081908190819060ff168061122257506001600160a01b03881660009081526003602052604090205460ff16801561120b57506000546001600160a01b03163314155b801561122257506008546001600160a01b03163314155b156112c3576112486103e86112426004548961141090919063ffffffff16565b906110e4565b92506112656103e86112426005548961141090919063ffffffff16565b93506112826103e86112426006548961141090919063ffffffff16565b915061129f6103e86112426007548961141090919063ffffffff16565b9050816112ac82866118c3565b6112b691906118c3565b6112c090846118c3565b94505b939792965093509350565b6000806112db83856118c3565b9050838110156112ed576112ed61196e565b9392505050565b600061130a61130384846112ce565b86906112ce565b9050801561132a5760005461132a9087906001600160a01b031683611445565b8315610e0c57600854610e0c9087906001600160a01b031686611445565b60606113558160046118c3565b36101561136157600080fd5b6001600160a01b03841660009081526009602090815260408083203384529091529020546000198110156113be5761139981846113d0565b6001600160a01b03861660009081526009602090815260408083203384529091529020555b6113c9858585611445565b5050505050565b6000828211156113e2576113e261196e565b6112ed828461191c565b60406113f98160046118c3565b36101561140557600080fd5b610665338484611445565b60008261141f57506000610c05565b600061142b83856118fd565b90508261143885836118db565b146112ed576112ed61196e565b6001600160a01b0383166114a95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610856565b6001600160a01b03821661150b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610856565b6001600160a01b03831660009081526002602052604090205461152e90826113d0565b6001600160a01b03808516600090815260026020526040808220939093559084168152205461155d90826112ce565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111a19085815260200190565b80356001600160a01b0381168114610c2957600080fd5b600082601f8301126115d957600080fd5b813560206115ee6115e98361189f565b61186e565b80838252828201915082860187848660051b890101111561160e57600080fd5b60005b8581101561162d57813584529284019290840190600101611611565b5090979650505050505050565b60006020828403121561164c57600080fd5b6112ed826115b1565b6000806040838503121561166857600080fd5b611671836115b1565b915061167f602084016115b1565b90509250929050565b60008060006060848603121561169d57600080fd5b6116a6846115b1565b92506116b4602085016115b1565b9150604084013590509250925092565b600080604083850312156116d757600080fd5b6116e0836115b1565b946020939093013593505050565b6000806040838503121561170157600080fd5b823567ffffffffffffffff8082111561171957600080fd5b818501915085601f83011261172d57600080fd5b8135602061173d6115e98361189f565b8083825282820191508286018a848660051b890101111561175d57600080fd5b600096505b8487101561178757611773816115b1565b835260019690960195918301918301611762565b509650508601359250508082111561179e57600080fd5b506117ab858286016115c8565b9150509250929050565b6000602082840312156117c757600080fd5b5035919050565b6000602082840312156117e057600080fd5b5051919050565b600080600080608085870312156117fd57600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b818110156118465785810183015185820160400152820161182a565b81811115611858576000604083870101525b50601f01601f1916929092016040019392505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715611897576118976119b0565b604052919050565b600067ffffffffffffffff8211156118b9576118b96119b0565b5060051b60200190565b600082198211156118d6576118d6611984565b500190565b6000826118f857634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561191757611917611984565b500290565b60008282101561192e5761192e611984565b500390565b600181811c9082168061194757607f821691505b6020821081141561196857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220a7ee0a008087f34a68b7903c090df9429092e2509f9703c001592fbe71aa637d64736f6c63430008060033

Deployed Bytecode Sourcemap

8556:7133:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8640:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12759:186;;;;;;:::i;:::-;;:::i;:::-;;8788:21;;;;;-1:-1:-1;;;;;8788:21:0;;;;;;-1:-1:-1;;;;;4008:32:1;;;3990:51;;3978:2;3963:18;8788:21:0;3945:102:1;11993:314:0;;;;;;:::i;:::-;;:::i;8759:22::-;;;;;-1:-1:-1;;;8759:22:0;;;;;;;;;5367:14:1;;5360:22;5342:41;;5330:2;5315:18;8759:22:0;5297:92:1;8848:25:0;;;;;;;;;8346::1;;;8334:2;8319:18;8848:25:0;8301:76:1;13011:223:0;;;:::i;10426:1147::-;;;;;;:::i;:::-;;:::i;8722:30::-;;;;;-1:-1:-1;;;;;8722:30:0;;;8692:23;;;;;;1858:27;;;;;;7964:105;;;:::i;13397:379::-;;;;;;:::i;:::-;;:::i;14003:264::-;;;;;;:::i;:::-;;:::i;2928:24::-;;;;;;2961:31;;;;;-1:-1:-1;;;;;2961:31:0;;;5313:61;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;7289:26;;;;;-1:-1:-1;;;7289:26:0;;;;;;11658:250;;;;;;:::i;:::-;;:::i;14756:291::-;;;;;;:::i;:::-;;:::i;8880:28::-;;;;;;7768:103;;;:::i;9540:153::-;;;;;;:::i;:::-;;:::i;1099:20::-;;;;;-1:-1:-1;;;;;1099:20:0;;;2868:23;;;;;;8665:20;;;:::i;2829:32::-;;;;;;2898:23;;;;;;9776:565;;;;;;:::i;:::-;;:::i;14412:336::-;;;;;;:::i;:::-;;:::i;15055:272::-;;;;;;:::i;:::-;;:::i;2696:45::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;12392:301;;;;;;:::i;:::-;;:::i;8820:21::-;;;;;;5383:45;;-1:-1:-1;;5383:45:0;;1660:151;;;;;;:::i;:::-;;:::i;14275:129::-;;;;;;:::i;:::-;;:::i;8640:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12759:186::-;1460:5;;-1:-1:-1;;;;;1460:5:0;1446:10;:19;1438:28;;;;;;12832:10:::1;:17:::0;;-1:-1:-1;;;;;12860:34:0;::::1;-1:-1:-1::0;;;;;;12860:34:0;;;;;-1:-1:-1;;;12860:34:0;;;;12910:27:::1;::::0;::::1;::::0;12832:17;;12910:27:::1;12759:186:::0;:::o;11993:314::-;12076:6;3150:8;12076:6;3157:1;3150:8;:::i;:::-;3132;:26;3130:29;3122:38;;;;;;12099:10:::1;::::0;-1:-1:-1;;;12099:10:0;::::1;;;12095:205;;;12155:15;::::0;12133:84:::1;::::0;-1:-1:-1;;;12133:84:0;;12188:10:::1;12133:84;::::0;::::1;5062:34:1::0;-1:-1:-1;;;;;5132:15:1;;;5112:18;;;5105:43;5164:18;;;5157:34;;;12155:15:0;;::::1;::::0;12133:54:::1;::::0;4997:18:1;;12133:84:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11993:314:::0;;;:::o;12095:205::-:1;12257:31;12271:8;12281:6;12257:13;:31::i;:::-;11993:314:::0;;;:::o;13011:223::-;13085:10;;13064:4;;-1:-1:-1;;;13085:10:0;;;;13081:146;;;13133:15;;;;;;;;;-1:-1:-1;;;;;13133:15:0;-1:-1:-1;;;;;13119:42:0;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13112:51;;13011:223;:::o;13081:146::-;-1:-1:-1;13203:12:0;;;13011:223::o;10426:1147::-;7475:6;;-1:-1:-1;;;7475:6:0;;;;7474:7;7466:16;;;;;;10539:10:::1;::::0;-1:-1:-1;;;10539:10:0;::::1;;;10535:1031;;;10595:15;::::0;10573:91:::1;::::0;-1:-1:-1;;;10573:91:0;;10633:10:::1;10573:91;::::0;::::1;4630:34:1::0;-1:-1:-1;;;;;4700:15:1;;;4680:18;;;4673:43;4752:15;;;4732:18;;;4725:43;4784:18;;;4777:34;;;10595:15:0;;::::1;::::0;10573:59:::1;::::0;4564:19:1;;10573:91:0::1;4546:271:1::0;10535:1031:0::1;10698:11;10711:12:::0;10725:17:::1;10744:14:::0;10760:15:::1;10779:39;10793:10;10806:3;10811:6;10779:13;:39::i;:::-;10697:121;;;;;;;;;;10833:16;10852:29;10867:13;;10852:10;;:14;;:29;;;;:::i;:::-;10833:48;;10916:8;10900:12;:24;;:48;;;;-1:-1:-1::0;;;;;;10928:20:0;::::1;;::::0;;;:13:::1;:20;::::0;;;;;::::1;;10900:48;10896:161;;;11006:6;::::0;-1:-1:-1;;;;;10977:13:0;::::1;;::::0;;;:8:::1;:13;::::0;;;;;:25:::1;::::0;10995:6;10977:17:::1;:25::i;:::-;:35;;10969:72;;;::::0;-1:-1:-1;;;10969:72:0;;6602:2:1;10969:72:0::1;::::0;::::1;6584:21:1::0;6641:2;6621:18;;;6614:30;6680:26;6660:18;;;6653:54;6724:18;;10969:72:0::1;;;;;;;;;11083:1;11077:3;:7;:29;;;;-1:-1:-1::0;;;;;;11088:18:0;::::1;;::::0;;;:13:::1;:18;::::0;;;;;::::1;;11077:29;11073:482;;;11127:59;11137:10;11149:7;11158:9;11170:6;11178:7;11127:9;:59::i;:::-;11212:38;11231:5;11238:3;11243:6;11212:18;:38::i;:::-;11205:45;;;;;;11993:314:::0;;;:::o;11073:482::-:1;11282:1;11276:3;:7;:31;;;;-1:-1:-1::0;;;;;;11287:20:0;::::1;;::::0;;;:13:::1;:20;::::0;;;;;::::1;;11276:31;11272:283;;;11328:47;11347:5:::0;11354:3;11359:15:::1;:6:::0;11370:3;11359:10:::1;:15::i;:::-;11328:18;:47::i;:::-;11394:59;11404:10;11416:7;11425:9;11437:6;11445:7;11394:9;:59::i;7964:105::-:0;1460:5;;-1:-1:-1;;;;;1460:5:0;1446:10;:19;1438:28;;;;;;7651:6:::1;::::0;-1:-1:-1;;;7651:6:0;::::1;;;7643:15;;;::::0;::::1;;8031:5:::2;8022:14:::0;;-1:-1:-1;;;;8022:14:0::2;::::0;;8052:9:::2;::::0;::::2;::::0;8031:5;8052:9:::2;7964:105::o:0;13397:379::-;13479:6;;-1:-1:-1;;;;;13479:6:0;13465:10;:20;;:43;;-1:-1:-1;13503:5:0;;-1:-1:-1;;;;;13503:5:0;13489:10;:19;13465:43;13457:83;;;;-1:-1:-1;;;13457:83:0;;8046:2:1;13457:83:0;;;8028:21:1;8085:2;8065:18;;;8058:30;8124:29;8104:18;;;8097:57;8171:18;;13457:83:0;8018:177:1;13457:83:0;13583:12;;13559:21;13574:6;13583:12;13559:21;:::i;:::-;:36;13551:45;;;;;;-1:-1:-1;;;;;13639:12:0;;;;;;:8;:12;;;;;;13615:21;13630:6;13639:12;13615:21;:::i;:::-;:36;13607:45;;;;;;-1:-1:-1;;;;;13665:12:0;;;;;;:8;:12;;;;;:22;;13681:6;;13665:12;:22;;13681:6;;13665:22;:::i;:::-;;;;;;;;13714:6;13698:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;13736:32:0;;8346:25:1;;;-1:-1:-1;;;;;13736:32:0;;;13753:1;;13736:32;;8334:2:1;8319:18;13736:32:0;;;;;;;13397:379;;:::o;14003:264::-;1460:5;;-1:-1:-1;;;;;1460:5:0;1446:10;:19;1438:28;;;;;;14085:6:::1;14069:12;;:22;;14061:31;;;::::0;::::1;;14111:15;14120:5:::0;;-1:-1:-1;;;;;14120:5:0::1;14111:15:::0;;:8:::1;:15;::::0;;;;;:25;-1:-1:-1;14111:25:0::1;14103:34;;;::::0;::::1;;14166:6;14150:12;;:22;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;14183:15:0::1;14192:5:::0;;-1:-1:-1;;;;;14192:5:0::1;14183:15:::0;;:8:::1;:15;::::0;;;;:25;;14202:6;;14183:15;:25:::1;::::0;14202:6;;14183:25:::1;:::i;:::-;::::0;;;-1:-1:-1;;14248:1:0::1;14233:5:::0;;14224:35:::1;::::0;8346:25:1;;;-1:-1:-1;;;;;14233:5:0;;::::1;::::0;14224:35:::1;::::0;8334:2:1;8319:18;14224:35:0::1;;;;;;;14003:264:::0;:::o;11658:250::-;11742:10;;11721:4;;-1:-1:-1;;;11742:10:0;;;;11738:163;;;11798:15;;11776:53;;-1:-1:-1;;;11776:53:0;;-1:-1:-1;;;;;4008:32:1;;;11776:53:0;;;3990:51:1;11798:15:0;;;;11776:48;;3963:18:1;;11776:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11769:60;11658:250;-1:-1:-1;;11658:250:0:o;11738:163::-;-1:-1:-1;;;;;4913:16:0;;4878:15;4913:16;;;:8;:16;;;;;;11869:20;4804:133;11738:163;11658:250;;;:::o;14756:291::-;1460:5;;-1:-1:-1;;;;;1460:5:0;1446:10;:19;1438:28;;;;;;14882:3:::1;:16:::0;;;14909:12:::1;:30:::0;;;14950:3:::1;:12:::0;;;14973:4:::1;:14:::0;;;15003:36:::1;::::0;;8613:25:1;;;8669:2;8654:18;;8647:34;;;8697:18;;;8690:34;;;8755:2;8740:18;;8733:34;;;15003:36:0::1;::::0;8600:3:1;8585:19;15003:36:0::1;;;;;;;14756:291:::0;;;;:::o;7768:103::-;1460:5;;-1:-1:-1;;;;;1460:5:0;1446:10;:19;1438:28;;;;;;7475:6:::1;::::0;-1:-1:-1;;;7475:6:0;::::1;;;7474:7;7466:16;;;::::0;::::1;;7827:6:::2;:13:::0;;-1:-1:-1;;;;7827:13:0::2;-1:-1:-1::0;;;7827:13:0::2;::::0;;7856:7:::2;::::0;::::2;::::0;7827:6;7856:7:::2;7768:103::o:0;9540:153::-;1460:5;;-1:-1:-1;;;;;1460:5:0;1446:10;:19;1438:28;;;;;;9625:10:::1;;9614:8;:21;9606:47;;;::::0;-1:-1:-1;;;9606:47:0;;7298:2:1;9606:47:0::1;::::0;::::1;7280:21:1::0;7337:2;7317:18;;;7310:30;-1:-1:-1;;;7356:18:1;;;7349:43;7409:18;;9606:47:0::1;7270:163:1::0;9606:47:0::1;9664:10;:21:::0;9540:153::o;8665:20::-;;;;;;;:::i;9776:565::-;7475:6;;-1:-1:-1;;;7475:6:0;;;;7474:7;7466:16;;;;;;9868:10:::1;::::0;-1:-1:-1;;;9868:10:0;::::1;;;9864:470;;;9924:15;::::0;9902:80:::1;::::0;-1:-1:-1;;;9902:80:0;;9958:10:::1;9902:80;::::0;::::1;5062:34:1::0;-1:-1:-1;;;;;5132:15:1;;;5112:18;;;5105:43;5164:18;;;5157:34;;;9924:15:0;;::::1;::::0;9902:55:::1;::::0;4997:18:1;;9902:80:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9776:565:::0;;:::o;9864:470::-:1;10016:11;10029:12:::0;10043:17:::1;10062:14:::0;10078:15:::1;10097:39;10111:10;10124:3;10129:6;10097:13;:39::i;:::-;10015:121:::0;;-1:-1:-1;10015:121:0;;-1:-1:-1;10015:121:0;-1:-1:-1;10015:121:0;-1:-1:-1;10015:121:0;-1:-1:-1;10165:36:0::1;10180:3:::0;10185:15:::1;:6:::0;10015:121;10185:10:::1;:15::i;:::-;10165:14;:36::i;:::-;10220:7:::0;;10216:107:::1;;10248:59;10258:10;10270:7;10279:9;10291:6;10299:7;10248:9;:59::i;14412:336::-:0;1460:5;;-1:-1:-1;;;;;1460:5:0;1446:10;:19;1438:28;;;;;;14517:12;;14556:10;;14548:18;::::1;14540:45;;;::::0;-1:-1:-1;;;14540:45:0;;6955:2:1;14540:45:0::1;::::0;::::1;6937:21:1::0;6994:2;6974:18;;;6967:30;-1:-1:-1;;;7013:18:1;;;7006:44;7067:18;;14540:45:0::1;6927:164:1::0;14540:45:0::1;14601:6;14596:145;14613:4;14609:1;:8;14596:145;;;14636:31;14651:5;14657:1;14651:8;;;;;;;;:::i;:::-;;;;;;;14660:3;14664:1;14660:6;;;;;;;;:::i;:::-;;;;;;;14636:14;:31::i;:::-;14711:3;;14596:145;;;;14491:257;14412:336:::0;;:::o;15055:272::-;1460:5;;-1:-1:-1;;;;;1460:5:0;1446:10;:19;1438:28;;;;;;15173:16:::1;:34:::0;;-1:-1:-1;;;;;;15173:34:0::1;-1:-1:-1::0;;;;;15173:34:0;;::::1;::::0;;::::1;::::0;;;15218:29;;::::1;-1:-1:-1::0;15218:29:0;;;:13:::1;:29;::::0;;;;;:36;;-1:-1:-1;;15218:36:0::1;-1:-1:-1::0;15218:36:0::1;::::0;;15270:49;15218:29;;15173:34;15270:49:::1;::::0;-1:-1:-1;15270:49:0::1;15055:272:::0;;:::o;12392:301::-;12509:10;;12475:17;;-1:-1:-1;;;12509:10:0;;;;12505:181;;;12557:15;;12543:58;;-1:-1:-1;;;12543:58:0;;-1:-1:-1;;;;;4282:15:1;;;12543:58:0;;;4264:34:1;4334:15;;;4314:18;;;4307:43;12557:15:0;;;;12543:40;;4199:18:1;;12543:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12536:65;;;;12505:181;-1:-1:-1;;;;;7048:15:0;;;7011:17;7048:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;12641:33;6920:161;1660:151;1460:5;;-1:-1:-1;;;;;1460:5:0;1446:10;:19;1438:28;;;;;;-1:-1:-1;;;;;1737:22:0;::::1;::::0;1733:71:::1;;1776:5;:16:::0;;-1:-1:-1;;;;;;1776:16:0::1;-1:-1:-1::0;;;;;1776:16:0;::::1;;::::0;;1733:71:::1;1660:151:::0;:::o;14275:129::-;1460:5;;-1:-1:-1;;;;;1460:5:0;1446:10;:19;1438:28;;;;;;-1:-1:-1;;;;;14347:21:0;::::1;14339:30;;;::::0;::::1;;14380:6;:16:::0;;-1:-1:-1;;;;;;14380:16:0::1;-1:-1:-1::0;;;;;14380:16:0;;;::::1;::::0;;;::::1;::::0;;14275:129::o;299:288::-;357:7;;468:5;472:1;468;:5;:::i;:::-;456:17;299:288;-1:-1:-1;;;;299:288:0:o;6622:290::-;6713:6;3150:8;6713:6;3157:1;3150:8;:::i;:::-;3132;:26;3130:29;3122:38;;;;;;6745:11;;;::::1;::::0;6744:53:::1;;-1:-1:-1::0;6770:10:0::1;6762:19;::::0;;;:7:::1;:19;::::0;;;;;;;-1:-1:-1;;;;;6762:29:0;::::1;::::0;;;;;;;;:34;::::1;6744:53;6742:56;6734:65;;;::::0;::::1;;6820:10;6812:19;::::0;;;:7:::1;:19;::::0;;;;;;;-1:-1:-1;;;;;6812:29:0;::::1;::::0;;;;;;;;;;:38;;;6866;8346:25:1;;;6812:29:0;;6820:10;6866:38:::1;::::0;8319:18:1;6866:38:0::1;;;;;;;;6622:290:::0;;;:::o;3983:583::-;-1:-1:-1;;;;;4166:18:0;;4072:11;4166:18;;;:13;:18;;;;;;4072:11;;;;;;;;4166:18;;;:99;;-1:-1:-1;;;;;;4188:20:0;;;;;;:13;:20;;;;;;;;:43;;;;-1:-1:-1;4226:5:0;;-1:-1:-1;;;;;4226:5:0;4212:10;:19;;4188:43;:77;;;;-1:-1:-1;4249:16:0;;-1:-1:-1;;;;;4249:16:0;4235:10;:30;;4188:77;4162:397;;;4294:36;4325:4;4295:24;4306:12;;4295:6;:10;;:24;;;;:::i;:::-;4294:30;;:36::i;:::-;4282:48;;4355:27;4377:4;4356:15;4367:3;;4356:6;:10;;:15;;;;:::i;4355:27::-;4345:37;;4406:27;4428:4;4407:15;4418:3;;4407:6;:10;;:15;;;;:::i;4406:27::-;4397:36;;4458:28;4481:4;4459:16;4470:4;;4459:6;:10;;:16;;;;:::i;4458:28::-;4448:38;-1:-1:-1;4540:6:0;4520:17;4448:38;4520:7;:17;:::i;:::-;:26;;;;:::i;:::-;4507:40;;:9;:40;:::i;:::-;4501:46;;4162:397;3983:583;;;;;;;;;:::o;726:147::-;784:7;;816:5;820:1;816;:5;:::i;:::-;804:17;;844:1;839;:6;;832:14;;;;:::i;:::-;864:1;726:147;-1:-1:-1;;;726:147:0:o;6246:368::-;6366:16;6385:32;6397:19;:6;6408:7;6397:10;:19::i;:::-;6385:7;;:11;:32::i;:::-;6366:51;-1:-1:-1;6432:12:0;;6428:78;;6478:5;;6461:33;;6471:5;;-1:-1:-1;;;;;6478:5:0;6485:8;6461:9;:33::i;:::-;6520:13;;6516:91;;6567:16;;6550:45;;6560:5;;-1:-1:-1;;;;;6567:16:0;6585:9;6550;:45::i;5721:517::-;5828:6;3150:8;5828:6;3157:1;3150:8;:::i;:::-;3132;:26;3130:29;3122:38;;;;;;-1:-1:-1;;;;;5889:14:0;::::1;5847:18;5889:14:::0;;;:7:::1;:14;::::0;;;;;;;5904:10:::1;5889:26:::0;;;;;;;;-1:-1:-1;;6090:21:0;::::1;6086:105;;;6157:22;:10:::0;6172:6;6157:14:::1;:22::i;:::-;-1:-1:-1::0;;;;;6128:14:0;::::1;;::::0;;;:7:::1;:14;::::0;;;;;;;6143:10:::1;6128:26:::0;;;;;;;:51;6086:105:::1;6201:29;6211:5;6218:3;6223:6;6201:9;:29::i;:::-;5836:402;5721:517:::0;;;;:::o;595:123::-;653:7;685:1;680;:6;;673:14;;;;:::i;:::-;705:5;709:1;705;:5;:::i;3826:149::-;3914:6;3150:8;3914:6;3157:1;3150:8;:::i;:::-;3132;:26;3130:29;3122:38;;;;;;3933:34:::1;3943:10;3955:3;3960:6;3933:9;:34::i;83:208::-:0;141:7;165:6;161:47;;-1:-1:-1;195:1:0;188:8;;161:47;218:9;230:5;234:1;230;:5;:::i;:::-;218:17;-1:-1:-1;262:1:0;253:5;257:1;218:17;253:5;:::i;:::-;:10;246:18;;;;:::i;3188:465::-;-1:-1:-1;;;;;3328:20:0;;3320:70;;;;-1:-1:-1;;;3320:70:0;;7640:2:1;3320:70:0;;;7622:21:1;7679:2;7659:18;;;7652:30;7718:34;7698:18;;;7691:62;-1:-1:-1;;;7769:18:1;;;7762:35;7814:19;;3320:70:0;7612:227:1;3320:70:0;-1:-1:-1;;;;;3409:23:0;;3401:71;;;;-1:-1:-1;;;3401:71:0;;6198:2:1;3401:71:0;;;6180:21:1;6237:2;6217:18;;;6210:30;6276:34;6256:18;;;6249:62;-1:-1:-1;;;6327:18:1;;;6320:33;6370:19;;3401:71:0;6170:225:1;3401:71:0;-1:-1:-1;;;;;3502:16:0;;;;;;:8;:16;;;;;;:28;;3523:6;3502:20;:28::i;:::-;-1:-1:-1;;;;;3483:16:0;;;;;;;:8;:16;;;;;;:47;;;;3563:19;;;;;;;:31;;3587:6;3563:23;:31::i;:::-;-1:-1:-1;;;;;3541:19:0;;;;;;;:8;:19;;;;;;;:53;;;;3610:35;;;;;;;;;;3638:6;8346:25:1;;8334:2;8319:18;;8301:76;14:173;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;192:673;246:5;299:3;292:4;284:6;280:17;276:27;266:2;;317:1;314;307:12;266:2;353:6;340:20;379:4;403:60;419:43;459:2;419:43;:::i;:::-;403:60;:::i;:::-;485:3;509:2;504:3;497:15;537:2;532:3;528:12;521:19;;572:2;564:6;560:15;624:3;619:2;613;610:1;606:10;598:6;594:23;590:32;587:41;584:2;;;641:1;638;631:12;584:2;663:1;673:163;687:2;684:1;681:9;673:163;;;744:17;;732:30;;782:12;;;;814;;;;705:1;698:9;673:163;;;-1:-1:-1;854:5:1;;256:609;-1:-1:-1;;;;;;;256:609:1:o;870:186::-;929:6;982:2;970:9;961:7;957:23;953:32;950:2;;;998:1;995;988:12;950:2;1021:29;1040:9;1021:29;:::i;1061:260::-;1129:6;1137;1190:2;1178:9;1169:7;1165:23;1161:32;1158:2;;;1206:1;1203;1196:12;1158:2;1229:29;1248:9;1229:29;:::i;:::-;1219:39;;1277:38;1311:2;1300:9;1296:18;1277:38;:::i;:::-;1267:48;;1148:173;;;;;:::o;1326:328::-;1403:6;1411;1419;1472:2;1460:9;1451:7;1447:23;1443:32;1440:2;;;1488:1;1485;1478:12;1440:2;1511:29;1530:9;1511:29;:::i;:::-;1501:39;;1559:38;1593:2;1582:9;1578:18;1559:38;:::i;:::-;1549:48;;1644:2;1633:9;1629:18;1616:32;1606:42;;1430:224;;;;;:::o;1659:254::-;1727:6;1735;1788:2;1776:9;1767:7;1763:23;1759:32;1756:2;;;1804:1;1801;1794:12;1756:2;1827:29;1846:9;1827:29;:::i;:::-;1817:39;1903:2;1888:18;;;;1875:32;;-1:-1:-1;;;1746:167:1:o;1918:1157::-;2036:6;2044;2097:2;2085:9;2076:7;2072:23;2068:32;2065:2;;;2113:1;2110;2103:12;2065:2;2153:9;2140:23;2182:18;2223:2;2215:6;2212:14;2209:2;;;2239:1;2236;2229:12;2209:2;2277:6;2266:9;2262:22;2252:32;;2322:7;2315:4;2311:2;2307:13;2303:27;2293:2;;2344:1;2341;2334:12;2293:2;2380;2367:16;2402:4;2426:60;2442:43;2482:2;2442:43;:::i;2426:60::-;2508:3;2532:2;2527:3;2520:15;2560:2;2555:3;2551:12;2544:19;;2591:2;2587;2583:11;2639:7;2634:2;2628;2625:1;2621:10;2617:2;2613:19;2609:28;2606:41;2603:2;;;2660:1;2657;2650:12;2603:2;2682:1;2673:10;;2692:169;2706:2;2703:1;2700:9;2692:169;;;2763:23;2782:3;2763:23;:::i;:::-;2751:36;;2724:1;2717:9;;;;;2807:12;;;;2839;;2692:169;;;-1:-1:-1;2880:5:1;-1:-1:-1;;2923:18:1;;2910:32;;-1:-1:-1;;2954:16:1;;;2951:2;;;2983:1;2980;2973:12;2951:2;;3006:63;3061:7;3050:8;3039:9;3035:24;3006:63;:::i;:::-;2996:73;;;2055:1020;;;;;:::o;3080:180::-;3139:6;3192:2;3180:9;3171:7;3167:23;3163:32;3160:2;;;3208:1;3205;3198:12;3160:2;-1:-1:-1;3231:23:1;;3150:110;-1:-1:-1;3150:110:1:o;3265:184::-;3335:6;3388:2;3376:9;3367:7;3363:23;3359:32;3356:2;;;3404:1;3401;3394:12;3356:2;-1:-1:-1;3427:16:1;;3346:103;-1:-1:-1;3346:103:1:o;3454:385::-;3540:6;3548;3556;3564;3617:3;3605:9;3596:7;3592:23;3588:33;3585:2;;;3634:1;3631;3624:12;3585:2;-1:-1:-1;;3657:23:1;;;3727:2;3712:18;;3699:32;;-1:-1:-1;3778:2:1;3763:18;;3750:32;;3829:2;3814:18;3801:32;;-1:-1:-1;3575:264:1;-1:-1:-1;3575:264:1:o;5394:597::-;5506:4;5535:2;5564;5553:9;5546:21;5596:6;5590:13;5639:6;5634:2;5623:9;5619:18;5612:34;5664:1;5674:140;5688:6;5685:1;5682:13;5674:140;;;5783:14;;;5779:23;;5773:30;5749:17;;;5768:2;5745:26;5738:66;5703:10;;5674:140;;;5832:6;5829:1;5826:13;5823:2;;;5902:1;5897:2;5888:6;5877:9;5873:22;5869:31;5862:42;5823:2;-1:-1:-1;5975:2:1;5954:15;-1:-1:-1;;5950:29:1;5935:45;;;;5982:2;5931:54;;5515:476;-1:-1:-1;;;5515:476:1:o;8778:275::-;8849:2;8843:9;8914:2;8895:13;;-1:-1:-1;;8891:27:1;8879:40;;8949:18;8934:34;;8970:22;;;8931:62;8928:2;;;8996:18;;:::i;:::-;9032:2;9025:22;8823:230;;-1:-1:-1;8823:230:1:o;9058:183::-;9118:4;9151:18;9143:6;9140:30;9137:2;;;9173:18;;:::i;:::-;-1:-1:-1;9218:1:1;9214:14;9230:4;9210:25;;9127:114::o;9246:128::-;9286:3;9317:1;9313:6;9310:1;9307:13;9304:2;;;9323:18;;:::i;:::-;-1:-1:-1;9359:9:1;;9294:80::o;9379:217::-;9419:1;9445;9435:2;;9489:10;9484:3;9480:20;9477:1;9470:31;9524:4;9521:1;9514:15;9552:4;9549:1;9542:15;9435:2;-1:-1:-1;9581:9:1;;9425:171::o;9601:168::-;9641:7;9707:1;9703;9699:6;9695:14;9692:1;9689:21;9684:1;9677:9;9670:17;9666:45;9663:2;;;9714:18;;:::i;:::-;-1:-1:-1;9754:9:1;;9653:116::o;9774:125::-;9814:4;9842:1;9839;9836:8;9833:2;;;9847:18;;:::i;:::-;-1:-1:-1;9884:9:1;;9823:76::o;9904:380::-;9983:1;9979:12;;;;10026;;;10047:2;;10101:4;10093:6;10089:17;10079:27;;10047:2;10154;10146:6;10143:14;10123:18;10120:38;10117:2;;;10200:10;10195:3;10191:20;10188:1;10181:31;10235:4;10232:1;10225:15;10263:4;10260:1;10253:15;10117:2;;9959:325;;;:::o;10289:127::-;10350:10;10345:3;10341:20;10338:1;10331:31;10381:4;10378:1;10371:15;10405:4;10402:1;10395:15;10421:127;10482:10;10477:3;10473:20;10470:1;10463:31;10513:4;10510:1;10503:15;10537:4;10534:1;10527:15;10553:127;10614:10;10609:3;10605:20;10602:1;10595:31;10645:4;10642:1;10635:15;10669:4;10666:1;10659:15;10685:127;10746:10;10741:3;10737:20;10734:1;10727:31;10777:4;10774:1;10767:15;10801:4;10798:1;10791:15

Swarm Source

ipfs://a7ee0a008087f34a68b7903c090df9429092e2509f9703c001592fbe71aa637d
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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