ETH Price: $2,610.03 (-6.01%)

Token

Galaxy (GLXY)
 

Overview

Max Total Supply

100,000 GLXY

Holders

51

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
19.727487796444629802 GLXY

Value
$0.00
0x0214ff958e55d0304b86e6876b71398a454d0d0e
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:
GalaxyToken

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-01-28
*/

//SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.0;

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
    
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode
        return msg.data;
    }
}



/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    
    //function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * 
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
library Address {
   
    function isContract(address account) internal view returns (bool) {
        // This method relies in extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

   
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

   
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

  
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}


contract Ownable is Context {
    address private _owner;
    address private _newOwner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _msgSender());
    }

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    /**
     * @dev Throws if called by any account other than the _newOwnerowner.
     */
    modifier onlyMidWayOwner() {
        require(_newOwner == _msgSender(), "Ownable: caller is not the Mid Way Owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _newOwner = newOwner;
    }
    
    /**
     * @dev receive ownership of the contract by _newOwner. Previous owner assigned this _newOwner to receive ownership. 
     * Can only be called by the current _newOwner.
     */
    function recieveOwnership() public virtual onlyMidWayOwner {
        emit OwnershipTransferred(_owner, _newOwner);
        _owner = _newOwner;
    }
}

contract S4ERC20 is Context, IERC20, Ownable {
    event RenouncedWhitelist(bool);
    
    using SafeMath for uint256;
    using Address for address;
    uint256 public immutable oneDay;
    uint256 public immutable turning;
            
     
    bool public UniSwapSaleEnds;
    uint256 public UniSwapSaleEndsTime;
    // Transaction Fees:
    uint256 public txFee = 10; // 1% fees
    address public feeDistributor; 
    
    mapping(address => bool) public feelessSender;
    mapping(address => bool) public feelessReciever;
    mapping(address => bool) public UniSwapReciever;
    // if this equals false whitelist can nolonger be added to.
    bool public canWhitelist = true;
   
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    uint256 public totalSupply;

    string public name;
    string public symbol;
    uint8  public decimals;
    
    /*
    * added this 2 variables to check if uniswap sale ends,, and when '''SetUniSwapSaleEnds''' function will be called
    * we have to charge fees after that time. 
    */
    
    constructor (string memory name_, string memory symbol_) {
        name = name_;
        symbol = symbol_;
        decimals = 18;
        
        oneDay  = 60 * 60 * 24; //for day
        turning = 6;
        
        UniSwapSaleEnds = false;
    }
    

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address _owner, address _spender) public view virtual override returns (uint256) {
        return _allowances[_owner][_spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address _spender, uint256 _amount) public virtual override returns (bool) {
        _approve(_msgSender(), _spender, _amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20};
     *
     * Requirements:
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    
    // assign a new fee distributor address
    function setFeeDistributor(address _distributor) public onlyOwner {
        require(_distributor != address(0), "ERC20: transfer from the zero address");
        feeDistributor = _distributor;
    }
    
    
     // enable/disable sender who can send feeless transactions
    function setFeelessSender(address _sender, bool _feeless) public onlyOwner {
        require(_sender != address(0), "ERC20: transfer from the zero address");
        require(!_feeless || _feeless && canWhitelist, "cannot add to whitelist");
        feelessSender[_sender] = _feeless;
    }

    // enable-disable recipient who can recieve feeless transactions
    function setFeelessReciever(address _recipient, bool _feeless) public onlyOwner {
        require(_recipient != address(0), "ERC20: transfer from the zero address");
        require(!_feeless || _feeless && canWhitelist, "cannot add to whitelist");
        feelessReciever[_recipient] = _feeless;
    }
    
    function SetOneDayBehind(uint256 _days) public onlyOwner { //enter input in days to set fee started from that day
        UniSwapSaleEndsTime = block.timestamp.sub(_days.mul(oneDay));
    }


    function setUniSwapReciever(address _recipient, bool _feeless) public onlyOwner {
        require(_recipient != address(0), "ERC20: transfer from the zero address");
        UniSwapReciever[_recipient] = _feeless;
    }
    
    function setFeeStartStopCycle() public onlyOwner {
        UniSwapSaleEnds = !UniSwapSaleEnds;
        UniSwapSaleEndsTime = block.timestamp;
    }
    
   function seTxFee(uint256 _ff) public onlyOwner {
       require(_ff <= 100, "Error: Fees cannot go above 10%");
        txFee = _ff;
    }

    // disable adding to whitelist forever
    function renounceWhitelist() public onlyOwner {
        // adding to whitelist has been disabled forever:
        canWhitelist = false;
        emit RenouncedWhitelist(false);
    }

    // to caclulate the amounts for recipient and distributer after fees have been applied
    function calculateFeesBeforeSend(
        address sender,
        address recipient,
        uint256 amount
    ) public view returns (uint256, uint256) {
       
        if(UniSwapReciever[recipient] && UniSwapSaleEnds){
            uint256 timeNow = block.timestamp;
            uint256 sfee = 5; //5% fee default if time not met in loop. 
            
            uint256 datediff = timeNow - UniSwapSaleEndsTime;
            
            datediff = datediff.div(oneDay);
            datediff = datediff.mod(turning);
            
            if(datediff == 0) { sfee = 30; }
            else if(datediff == 1) { sfee = 25; }
            else if(datediff == 2) { sfee = 20; }
            else if(datediff == 3) { sfee = 15; }
            else if(datediff == 4) { sfee = 10; }
            else if(datediff == 5) { sfee = 5; }
            
            sfee = amount.mul(sfee).div(100);
            return (amount.sub(sfee), sfee);
        }

        if (feelessSender[sender] || feelessReciever[recipient]) {
            return (amount, 0);
        }

        // calculate fees and amounts
        uint256 fee = amount.mul(txFee).div(1000);
        return (amount.sub(fee), fee);
    }

    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");
        require(amount > 1000, "amount to small, maths will break");
        _beforeTokenTransfer(sender, recipient, amount);

        // subtract send balanced
        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");

        // calculate fee:
        (uint256 transferToAmount, uint256 transferToFeeDistributorAmount) = calculateFeesBeforeSend(sender, recipient, amount);

        // update recipients balance:
        _balances[recipient] = _balances[recipient].add(transferToAmount);
        emit Transfer(sender, recipient, transferToAmount);

        // update distributers balance:
        if(transferToFeeDistributorAmount > 0 && feeDistributor != address(0)){
            _balances[feeDistributor] = _balances[feeDistributor].add(transferToFeeDistributorAmount);
            emit Transfer(sender, feeDistributor, transferToFeeDistributorAmount);
       }
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements
     *
     * - `to` cannot be the zero address.
     */
    function _transferTO(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: making to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        totalSupply = totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        
        setFeeDistributor(account);
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        totalSupply = totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address _owner, address _spender, uint256 _amount) internal virtual {
        require(_owner != address(0), "ERC20: approve from the zero address");
        require(_spender != address(0), "ERC20: approve to the zero address");

        _allowances[_owner][_spender] = _amount;
        emit Approval(_owner, _spender, _amount);
    }


   
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}


contract GalaxyToken is S4ERC20 {

    constructor() S4ERC20("Galaxy", "GLXY") {
        
        _transferTO(msg.sender, 100000e18);
    }

    function burn(uint256 amount) public {
        _burn(msg.sender, amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"","type":"bool"}],"name":"RenouncedWhitelist","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"},{"inputs":[{"internalType":"uint256","name":"_days","type":"uint256"}],"name":"SetOneDayBehind","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"UniSwapReciever","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UniSwapSaleEnds","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UniSwapSaleEndsTime","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":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","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":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"calculateFeesBeforeSend","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"canWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDistributor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"feelessReciever","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"feelessSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oneDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recieveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ff","type":"uint256"}],"name":"seTxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_distributor","type":"address"}],"name":"setFeeDistributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setFeeStartStopCycle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"bool","name":"_feeless","type":"bool"}],"name":"setFeelessReciever","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"bool","name":"_feeless","type":"bool"}],"name":"setFeelessSender","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"bool","name":"_feeless","type":"bool"}],"name":"setUniSwapReciever","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"turning","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"txFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

60c0604052600a6003556008805460ff191660011790553480156200002357600080fd5b506040518060400160405280600681526020016547616c61787960d01b81525060405180604001604052806004815260200163474c585960e01b815250620000706200014a60201b60201c565b600080546001600160a01b0319166001600160a01b03929092169190911790556200009a6200014a565b6001600160a01b031660006001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38151620000ef90600c9060208501906200031a565b5080516200010590600d9060208401906200031a565b5050600e805460ff191660121790555062015180608052600660a0526001805460ff60a01b19169055620001443369152d02c7e14af68000006200014e565b6200051d565b3390565b6001600160a01b038216620001805760405162461bcd60e51b81526004016200017790620003f7565b60405180910390fd5b6200018e6000838362000255565b620001aa81600b546200025a60201b62000eff1790919060201c565b600b556001600160a01b038216600090815260096020908152604090912054620001df91839062000eff6200025a821b17901c565b6001600160a01b038316600090815260096020526040902055620002038262000295565b816001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002499190620004b2565b60405180910390a35050565b505050565b600080620002698385620004bb565b9050838110156200028e5760405162461bcd60e51b81526004016200017790620003c0565b9392505050565b6200029f6200014a565b6000546001600160a01b03908116911614620002cf5760405162461bcd60e51b8152600401620001779062000438565b6001600160a01b038116620002f85760405162461bcd60e51b815260040162000177906200046d565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b8280546200032890620004e0565b90600052602060002090601f0160209004810192826200034c576000855562000397565b82601f106200036757805160ff191683800117855562000397565b8280016001018555821562000397579182015b82811115620003975782518255916020019190600101906200037a565b50620003a5929150620003a9565b5090565b5b80821115620003a55760008155600101620003aa565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f45524332303a206d616b696e6720746f20746865207a65726f206164647265736040820152607360f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b90815260200190565b60008219821115620004db57634e487b7160e01b81526011600452602481fd5b500190565b600281046001821680620004f557607f821691505b602082108114156200051757634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a051611b1b620005586000396000818161099a0152610d3501526000818161054c015281816107930152610d090152611b1b6000f3fe608060405234801561001057600080fd5b50600436106102115760003560e01c8063715018a611610125578063ac810084116100ad578063e4338ec41161007c578063e4338ec41461040d578063e75d7b0414610415578063e7a72bab1461041d578063f2fde38b1461043e578063f45fa3eb1461045157610211565b8063ac810084146103d7578063ccfc2e8d146103df578063cf820461146103f2578063dd62ed3e146103fa57610211565b80638da5cb5b116100f45780638da5cb5b1461038e57806395d89b4114610396578063a056735d1461039e578063a457c2d7146103b1578063a9059cbb146103c457610211565b8063715018a61461036357806372512c771461036b57806383fbca341461037357806384a415f61461038657610211565b8063313ce567116101a857806346b6cdf21161017757806346b6cdf21461030f5780634a6f01b1146103225780634bd9351b146103355780634d9c80d51461033d57806370a082311461035057610211565b8063313ce567146102cc57806339137f8b146102e157806339509351146102e957806342966c68146102fc57610211565b806318160ddd116101e457806318160ddd1461027e5780631c5bddea146102935780631dd17c32146102a657806323b872dd146102b957610211565b806306fdde0314610216578063095ea7b3146102345780630bddab0f146102545780630d43e8ad14610269575b600080fd5b61021e610459565b60405161022b91906115c2565b60405180910390f35b610247610242366004611562565b6104e7565b60405161022b91906115b7565b61026761026236600461158b565b610505565b005b61027161057d565b60405161022b91906115a3565b61028661058c565b60405161022b919061194e565b6102476102a13660046114a1565b610592565b6102476102b43660046114a1565b6105a7565b6102476102c73660046114ed565b6105bc565b6102d4610643565b60405161022b9190611965565b61026761064c565b6102476102f7366004611562565b6106c6565b61026761030a36600461158b565b610714565b61026761031d36600461158b565b610721565b6102476103303660046114a1565b61077c565b610286610791565b61026761034b366004611528565b6107b5565b61028661035e3660046114a1565b61083b565b61026761085a565b6102866108d9565b610267610381366004611528565b6108df565b610286610998565b6102716109bc565b61021e6109cb565b6102676103ac366004611528565b6109d8565b6102476103bf366004611562565b610a91565b6102476103d2366004611562565b610af9565b610267610b0d565b6102676103ed3660046114a1565b610ba3565b610286610c20565b6102866104083660046114bb565b610c26565b610267610c51565b610247610cab565b61043061042b3660046114ed565b610cb4565b60405161022b929190611957565b61026761044c3660046114a1565b610e72565b610247610eef565b600c8054610466906119d5565b80601f0160208091040260200160405190810160405280929190818152602001828054610492906119d5565b80156104df5780601f106104b4576101008083540402835291602001916104df565b820191906000526020600020905b8154815290600101906020018083116104c257829003601f168201915b505050505081565b60006104fb6104f4610f35565b8484610f39565b5060015b92915050565b61050d610f35565b6000546001600160a01b039081169116146105435760405162461bcd60e51b815260040161053a90611818565b60405180910390fd5b610577610570827f0000000000000000000000000000000000000000000000000000000000000000610fed565b4290611032565b60025550565b6004546001600160a01b031681565b600b5481565b60076020526000908152604090205460ff1681565b60066020526000908152604090205460ff1681565b60006105c9848484611074565b610639846105d5610f35565b61063485604051806060016040528060288152602001611a99602891396001600160a01b038a166000908152600a6020526040812090610613610f35565b6001600160a01b031681526020810191909152604001600020549190611283565b610f39565b5060019392505050565b600e5460ff1681565b610654610f35565b6000546001600160a01b039081169116146106815760405162461bcd60e51b815260040161053a90611818565b6008805460ff191690556040517fd4ac9888228e73ea53030274d81f5b6736a3107e5c201dc5aa0e7d0fefa0b191906106bc906000906115b7565b60405180910390a1565b60006104fb6106d3610f35565b8461063485600a60006106e4610f35565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610eff565b61071e33826112bd565b50565b610729610f35565b6000546001600160a01b039081169116146107565760405162461bcd60e51b815260040161053a90611818565b60648111156107775760405162461bcd60e51b815260040161053a90611758565b600355565b60056020526000908152604090205460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6107bd610f35565b6000546001600160a01b039081169116146107ea5760405162461bcd60e51b815260040161053a90611818565b6001600160a01b0382166108105760405162461bcd60e51b815260040161053a906118c5565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6001600160a01b0381166000908152600960205260409020545b919050565b610862610f35565b6000546001600160a01b0390811691161461088f5760405162461bcd60e51b815260040161053a90611818565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60025481565b6108e7610f35565b6000546001600160a01b039081169116146109145760405162461bcd60e51b815260040161053a90611818565b6001600160a01b03821661093a5760405162461bcd60e51b815260040161053a906118c5565b8015806109515750808015610951575060085460ff165b61096d5760405162461bcd60e51b815260040161053a9061184d565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b031690565b600d8054610466906119d5565b6109e0610f35565b6000546001600160a01b03908116911614610a0d5760405162461bcd60e51b815260040161053a90611818565b6001600160a01b038216610a335760405162461bcd60e51b815260040161053a906118c5565b801580610a4a5750808015610a4a575060085460ff165b610a665760405162461bcd60e51b815260040161053a9061184d565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b60006104fb610a9e610f35565b8461063485604051806060016040528060258152602001611ac160259139600a6000610ac8610f35565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611283565b60006104fb610b06610f35565b8484611074565b610b15610f35565b6001546001600160a01b03908116911614610b425760405162461bcd60e51b815260040161053a9061178f565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b610bab610f35565b6000546001600160a01b03908116911614610bd85760405162461bcd60e51b815260040161053a90611818565b6001600160a01b038116610bfe5760405162461bcd60e51b815260040161053a906118c5565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b60035481565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b610c59610f35565b6000546001600160a01b03908116911614610c865760405162461bcd60e51b815260040161053a90611818565b6001805460ff60a01b198116600160a01b9182900460ff161590910217905542600255565b60085460ff1681565b6001600160a01b038216600090815260076020526040812054819060ff168015610ce75750600154600160a01b900460ff165b15610ded576002544290600590600090610d0190846119be565b9050610d2d817f000000000000000000000000000000000000000000000000000000000000000061139f565b9050610d59817f00000000000000000000000000000000000000000000000000000000000000006113e1565b905080610d6957601e9150610dbf565b8060011415610d7b5760199150610dbf565b8060021415610d8d5760149150610dbf565b8060031415610d9f57600f9150610dbf565b8060041415610db157600a9150610dbf565b8060051415610dbf57600591505b610dd46064610dce8885610fed565b9061139f565b9150610de08683611032565b8294509450505050610e6a565b6001600160a01b03851660009081526005602052604090205460ff1680610e2c57506001600160a01b03841660009081526006602052604090205460ff165b15610e3c57508190506000610e6a565b6000610e596103e8610dce60035487610fed90919063ffffffff16565b9050610e658482611032565b925090505b935093915050565b610e7a610f35565b6000546001600160a01b03908116911614610ea75760405162461bcd60e51b815260040161053a90611818565b6001600160a01b038116610ecd5760405162461bcd60e51b815260040161053a90611658565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600154600160a01b900460ff1681565b600080610f0c8385611973565b905083811015610f2e5760405162461bcd60e51b815260040161053a90611721565b9392505050565b3390565b6001600160a01b038316610f5f5760405162461bcd60e51b815260040161053a9061190a565b6001600160a01b038216610f855760405162461bcd60e51b815260040161053a9061169e565b6001600160a01b038084166000818152600a602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610fe090859061194e565b60405180910390a3505050565b600082610ffc575060006104ff565b6000611008838561199f565b905082611015858361198b565b14610f2e5760405162461bcd60e51b815260040161053a906117d7565b6000610f2e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611283565b6001600160a01b03831661109a5760405162461bcd60e51b815260040161053a906118c5565b6001600160a01b0382166110c05760405162461bcd60e51b815260040161053a90611615565b6103e881116110e15760405162461bcd60e51b815260040161053a906116e0565b6110ec838383611423565b61112981604051806060016040528060268152602001611a73602691396001600160a01b0386166000908152600960205260409020549190611283565b6001600160a01b03841660009081526009602052604081209190915580611151858585610cb4565b6001600160a01b03861660009081526009602052604090205491935091506111799083610eff565b6001600160a01b0380861660008181526009602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111cb90869061194e565b60405180910390a36000811180156111ed57506004546001600160a01b031615155b1561127c576004546001600160a01b03166000908152600960205260409020546112179082610eff565b600480546001600160a01b0390811660009081526009602052604090819020939093559054915191811691908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061127390859061194e565b60405180910390a35b5050505050565b600081848411156112a75760405162461bcd60e51b815260040161053a91906115c2565b5060006112b484866119be565b95945050505050565b6001600160a01b0382166112e35760405162461bcd60e51b815260040161053a90611884565b6112ef82600083611423565b61132c81604051806060016040528060228152602001611a51602291396001600160a01b0385166000908152600960205260409020549190611283565b6001600160a01b038316600090815260096020526040902055600b546113529082611032565b600b556040516000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061139390859061194e565b60405180910390a35050565b6000610f2e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611428565b6000610f2e83836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250611456565b505050565b600081836114495760405162461bcd60e51b815260040161053a91906115c2565b5060006112b4848661198b565b600081836114775760405162461bcd60e51b815260040161053a91906115c2565b506114828385611a10565b949350505050565b80356001600160a01b038116811461085557600080fd5b6000602082840312156114b2578081fd5b610f2e8261148a565b600080604083850312156114cd578081fd5b6114d68361148a565b91506114e46020840161148a565b90509250929050565b600080600060608486031215611501578081fd5b61150a8461148a565b92506115186020850161148a565b9150604084013590509250925092565b6000806040838503121561153a578182fd5b6115438361148a565b915060208301358015158114611557578182fd5b809150509250929050565b60008060408385031215611574578182fd5b61157d8361148a565b946020939093013593505050565b60006020828403121561159c578081fd5b5035919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b818110156115ee578581018301518582016040015282016115d2565b818111156115ff5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526021908201527f616d6f756e7420746f20736d616c6c2c206d617468732077696c6c20627265616040820152606b60f81b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601f908201527f4572726f723a20466565732063616e6e6f7420676f2061626f76652031302500604082015260600190565b60208082526028908201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865204d6964205760408201526730bc9027bbb732b960c11b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526017908201527f63616e6e6f742061646420746f2077686974656c697374000000000000000000604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b90815260200190565b918252602082015260400190565b60ff91909116815260200190565b6000821982111561198657611986611a24565b500190565b60008261199a5761199a611a3a565b500490565b60008160001904831182151516156119b9576119b9611a24565b500290565b6000828210156119d0576119d0611a24565b500390565b6002810460018216806119e957607f821691505b60208210811415611a0a57634e487b7160e01b600052602260045260246000fd5b50919050565b600082611a1f57611a1f611a3a565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220936708808192e5e97f1269a482f0be5a1fb84207f577314d85735f9b3fafadf364736f6c63430008000033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102115760003560e01c8063715018a611610125578063ac810084116100ad578063e4338ec41161007c578063e4338ec41461040d578063e75d7b0414610415578063e7a72bab1461041d578063f2fde38b1461043e578063f45fa3eb1461045157610211565b8063ac810084146103d7578063ccfc2e8d146103df578063cf820461146103f2578063dd62ed3e146103fa57610211565b80638da5cb5b116100f45780638da5cb5b1461038e57806395d89b4114610396578063a056735d1461039e578063a457c2d7146103b1578063a9059cbb146103c457610211565b8063715018a61461036357806372512c771461036b57806383fbca341461037357806384a415f61461038657610211565b8063313ce567116101a857806346b6cdf21161017757806346b6cdf21461030f5780634a6f01b1146103225780634bd9351b146103355780634d9c80d51461033d57806370a082311461035057610211565b8063313ce567146102cc57806339137f8b146102e157806339509351146102e957806342966c68146102fc57610211565b806318160ddd116101e457806318160ddd1461027e5780631c5bddea146102935780631dd17c32146102a657806323b872dd146102b957610211565b806306fdde0314610216578063095ea7b3146102345780630bddab0f146102545780630d43e8ad14610269575b600080fd5b61021e610459565b60405161022b91906115c2565b60405180910390f35b610247610242366004611562565b6104e7565b60405161022b91906115b7565b61026761026236600461158b565b610505565b005b61027161057d565b60405161022b91906115a3565b61028661058c565b60405161022b919061194e565b6102476102a13660046114a1565b610592565b6102476102b43660046114a1565b6105a7565b6102476102c73660046114ed565b6105bc565b6102d4610643565b60405161022b9190611965565b61026761064c565b6102476102f7366004611562565b6106c6565b61026761030a36600461158b565b610714565b61026761031d36600461158b565b610721565b6102476103303660046114a1565b61077c565b610286610791565b61026761034b366004611528565b6107b5565b61028661035e3660046114a1565b61083b565b61026761085a565b6102866108d9565b610267610381366004611528565b6108df565b610286610998565b6102716109bc565b61021e6109cb565b6102676103ac366004611528565b6109d8565b6102476103bf366004611562565b610a91565b6102476103d2366004611562565b610af9565b610267610b0d565b6102676103ed3660046114a1565b610ba3565b610286610c20565b6102866104083660046114bb565b610c26565b610267610c51565b610247610cab565b61043061042b3660046114ed565b610cb4565b60405161022b929190611957565b61026761044c3660046114a1565b610e72565b610247610eef565b600c8054610466906119d5565b80601f0160208091040260200160405190810160405280929190818152602001828054610492906119d5565b80156104df5780601f106104b4576101008083540402835291602001916104df565b820191906000526020600020905b8154815290600101906020018083116104c257829003601f168201915b505050505081565b60006104fb6104f4610f35565b8484610f39565b5060015b92915050565b61050d610f35565b6000546001600160a01b039081169116146105435760405162461bcd60e51b815260040161053a90611818565b60405180910390fd5b610577610570827f0000000000000000000000000000000000000000000000000000000000015180610fed565b4290611032565b60025550565b6004546001600160a01b031681565b600b5481565b60076020526000908152604090205460ff1681565b60066020526000908152604090205460ff1681565b60006105c9848484611074565b610639846105d5610f35565b61063485604051806060016040528060288152602001611a99602891396001600160a01b038a166000908152600a6020526040812090610613610f35565b6001600160a01b031681526020810191909152604001600020549190611283565b610f39565b5060019392505050565b600e5460ff1681565b610654610f35565b6000546001600160a01b039081169116146106815760405162461bcd60e51b815260040161053a90611818565b6008805460ff191690556040517fd4ac9888228e73ea53030274d81f5b6736a3107e5c201dc5aa0e7d0fefa0b191906106bc906000906115b7565b60405180910390a1565b60006104fb6106d3610f35565b8461063485600a60006106e4610f35565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610eff565b61071e33826112bd565b50565b610729610f35565b6000546001600160a01b039081169116146107565760405162461bcd60e51b815260040161053a90611818565b60648111156107775760405162461bcd60e51b815260040161053a90611758565b600355565b60056020526000908152604090205460ff1681565b7f000000000000000000000000000000000000000000000000000000000001518081565b6107bd610f35565b6000546001600160a01b039081169116146107ea5760405162461bcd60e51b815260040161053a90611818565b6001600160a01b0382166108105760405162461bcd60e51b815260040161053a906118c5565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6001600160a01b0381166000908152600960205260409020545b919050565b610862610f35565b6000546001600160a01b0390811691161461088f5760405162461bcd60e51b815260040161053a90611818565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60025481565b6108e7610f35565b6000546001600160a01b039081169116146109145760405162461bcd60e51b815260040161053a90611818565b6001600160a01b03821661093a5760405162461bcd60e51b815260040161053a906118c5565b8015806109515750808015610951575060085460ff165b61096d5760405162461bcd60e51b815260040161053a9061184d565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b7f000000000000000000000000000000000000000000000000000000000000000681565b6000546001600160a01b031690565b600d8054610466906119d5565b6109e0610f35565b6000546001600160a01b03908116911614610a0d5760405162461bcd60e51b815260040161053a90611818565b6001600160a01b038216610a335760405162461bcd60e51b815260040161053a906118c5565b801580610a4a5750808015610a4a575060085460ff165b610a665760405162461bcd60e51b815260040161053a9061184d565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b60006104fb610a9e610f35565b8461063485604051806060016040528060258152602001611ac160259139600a6000610ac8610f35565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611283565b60006104fb610b06610f35565b8484611074565b610b15610f35565b6001546001600160a01b03908116911614610b425760405162461bcd60e51b815260040161053a9061178f565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b610bab610f35565b6000546001600160a01b03908116911614610bd85760405162461bcd60e51b815260040161053a90611818565b6001600160a01b038116610bfe5760405162461bcd60e51b815260040161053a906118c5565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b60035481565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b610c59610f35565b6000546001600160a01b03908116911614610c865760405162461bcd60e51b815260040161053a90611818565b6001805460ff60a01b198116600160a01b9182900460ff161590910217905542600255565b60085460ff1681565b6001600160a01b038216600090815260076020526040812054819060ff168015610ce75750600154600160a01b900460ff165b15610ded576002544290600590600090610d0190846119be565b9050610d2d817f000000000000000000000000000000000000000000000000000000000001518061139f565b9050610d59817f00000000000000000000000000000000000000000000000000000000000000066113e1565b905080610d6957601e9150610dbf565b8060011415610d7b5760199150610dbf565b8060021415610d8d5760149150610dbf565b8060031415610d9f57600f9150610dbf565b8060041415610db157600a9150610dbf565b8060051415610dbf57600591505b610dd46064610dce8885610fed565b9061139f565b9150610de08683611032565b8294509450505050610e6a565b6001600160a01b03851660009081526005602052604090205460ff1680610e2c57506001600160a01b03841660009081526006602052604090205460ff165b15610e3c57508190506000610e6a565b6000610e596103e8610dce60035487610fed90919063ffffffff16565b9050610e658482611032565b925090505b935093915050565b610e7a610f35565b6000546001600160a01b03908116911614610ea75760405162461bcd60e51b815260040161053a90611818565b6001600160a01b038116610ecd5760405162461bcd60e51b815260040161053a90611658565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600154600160a01b900460ff1681565b600080610f0c8385611973565b905083811015610f2e5760405162461bcd60e51b815260040161053a90611721565b9392505050565b3390565b6001600160a01b038316610f5f5760405162461bcd60e51b815260040161053a9061190a565b6001600160a01b038216610f855760405162461bcd60e51b815260040161053a9061169e565b6001600160a01b038084166000818152600a602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610fe090859061194e565b60405180910390a3505050565b600082610ffc575060006104ff565b6000611008838561199f565b905082611015858361198b565b14610f2e5760405162461bcd60e51b815260040161053a906117d7565b6000610f2e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611283565b6001600160a01b03831661109a5760405162461bcd60e51b815260040161053a906118c5565b6001600160a01b0382166110c05760405162461bcd60e51b815260040161053a90611615565b6103e881116110e15760405162461bcd60e51b815260040161053a906116e0565b6110ec838383611423565b61112981604051806060016040528060268152602001611a73602691396001600160a01b0386166000908152600960205260409020549190611283565b6001600160a01b03841660009081526009602052604081209190915580611151858585610cb4565b6001600160a01b03861660009081526009602052604090205491935091506111799083610eff565b6001600160a01b0380861660008181526009602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111cb90869061194e565b60405180910390a36000811180156111ed57506004546001600160a01b031615155b1561127c576004546001600160a01b03166000908152600960205260409020546112179082610eff565b600480546001600160a01b0390811660009081526009602052604090819020939093559054915191811691908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061127390859061194e565b60405180910390a35b5050505050565b600081848411156112a75760405162461bcd60e51b815260040161053a91906115c2565b5060006112b484866119be565b95945050505050565b6001600160a01b0382166112e35760405162461bcd60e51b815260040161053a90611884565b6112ef82600083611423565b61132c81604051806060016040528060228152602001611a51602291396001600160a01b0385166000908152600960205260409020549190611283565b6001600160a01b038316600090815260096020526040902055600b546113529082611032565b600b556040516000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061139390859061194e565b60405180910390a35050565b6000610f2e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611428565b6000610f2e83836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250611456565b505050565b600081836114495760405162461bcd60e51b815260040161053a91906115c2565b5060006112b4848661198b565b600081836114775760405162461bcd60e51b815260040161053a91906115c2565b506114828385611a10565b949350505050565b80356001600160a01b038116811461085557600080fd5b6000602082840312156114b2578081fd5b610f2e8261148a565b600080604083850312156114cd578081fd5b6114d68361148a565b91506114e46020840161148a565b90509250929050565b600080600060608486031215611501578081fd5b61150a8461148a565b92506115186020850161148a565b9150604084013590509250925092565b6000806040838503121561153a578182fd5b6115438361148a565b915060208301358015158114611557578182fd5b809150509250929050565b60008060408385031215611574578182fd5b61157d8361148a565b946020939093013593505050565b60006020828403121561159c578081fd5b5035919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b818110156115ee578581018301518582016040015282016115d2565b818111156115ff5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526021908201527f616d6f756e7420746f20736d616c6c2c206d617468732077696c6c20627265616040820152606b60f81b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601f908201527f4572726f723a20466565732063616e6e6f7420676f2061626f76652031302500604082015260600190565b60208082526028908201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865204d6964205760408201526730bc9027bbb732b960c11b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526017908201527f63616e6e6f742061646420746f2077686974656c697374000000000000000000604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b90815260200190565b918252602082015260400190565b60ff91909116815260200190565b6000821982111561198657611986611a24565b500190565b60008261199a5761199a611a3a565b500490565b60008160001904831182151516156119b9576119b9611a24565b500290565b6000828210156119d0576119d0611a24565b500390565b6002810460018216806119e957607f821691505b60208210811415611a0a57634e487b7160e01b600052602260045260246000fd5b50919050565b600082611a1f57611a1f611a3a565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220936708808192e5e97f1269a482f0be5a1fb84207f577314d85735f9b3fafadf364736f6c63430008000033

Deployed Bytecode Sourcemap

24280:236:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13549:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15025:173;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;18424:191::-;;;;;;:::i;:::-;;:::i;:::-;;13072:29;;;:::i;:::-;;;;;;;:::i;13514:26::-;;;:::i;:::-;;;;;;;:::i;13221:47::-;;;;;;:::i;:::-;;:::i;13167:::-;;;;;;:::i;:::-;;:::i;15672:321::-;;;;;;:::i;:::-;;:::i;13601:22::-;;;:::i;:::-;;;;;;;:::i;19213:185::-;;;:::i;16402:218::-;;;;;;:::i;:::-;;:::i;24432:81::-;;;;;;:::i;:::-;;:::i;19020:141::-;;;;;;:::i;:::-;;:::i;13115:45::-;;;;;;:::i;:::-;;:::i;12830:31::-;;;:::i;18625:222::-;;;;;;:::i;:::-;;:::i;14153:119::-;;;;;;:::i;:::-;;:::i;11810:148::-;;;:::i;12962:34::-;;;:::i;18106:306::-;;;;;;:::i;:::-;;:::i;12868:32::-;;;:::i;10926:79::-;;;:::i;13574:20::-;;;:::i;17735:293::-;;;;;;:::i;:::-;;:::i;17123:269::-;;;;;;:::i;:::-;;:::i;14485:175::-;;;;;;:::i;:::-;;:::i;12512:151::-;;;:::i;17451:201::-;;;;;;:::i;:::-;;:::i;13029:25::-;;;:::i;14723:155::-;;;;;;:::i;:::-;;:::i;18859:150::-;;;:::i;13340:31::-;;;:::i;19498:1219::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;12113:193::-;;;;;;:::i;:::-;;:::i;12928:27::-;;;:::i;13549:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15025:173::-;15110:4;15127:41;15136:12;:10;:12::i;:::-;15150:8;15160:7;15127:8;:41::i;:::-;-1:-1:-1;15186:4:0;15025:173;;;;;:::o;18424:191::-;11148:12;:10;:12::i;:::-;11138:6;;-1:-1:-1;;;;;11138:6:0;;;:22;;;11130:67;;;;-1:-1:-1;;;11130:67:0;;;;;;;:::i;:::-;;;;;;;;;18569:38:::1;18589:17;:5:::0;18599:6:::1;18589:9;:17::i;:::-;18569:15;::::0;:19:::1;:38::i;:::-;18547:19;:60:::0;-1:-1:-1;18424:191:0:o;13072:29::-;;;-1:-1:-1;;;;;13072:29:0;;:::o;13514:26::-;;;;:::o;13221:47::-;;;;;;;;;;;;;;;:::o;13167:::-;;;;;;;;;;;;;;;:::o;15672:321::-;15778:4;15795:36;15805:6;15813:9;15824:6;15795:9;:36::i;:::-;15842:121;15851:6;15859:12;:10;:12::i;:::-;15873:89;15911:6;15873:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15873:19:0;;;;;;:11;:19;;;;;;15893:12;:10;:12::i;:::-;-1:-1:-1;;;;;15873:33:0;;;;;;;;;;;;-1:-1:-1;15873:33:0;;;:89;:37;:89::i;:::-;15842:8;:121::i;:::-;-1:-1:-1;15981:4:0;15672:321;;;;;:::o;13601:22::-;;;;;;:::o;19213:185::-;11148:12;:10;:12::i;:::-;11138:6;;-1:-1:-1;;;;;11138:6:0;;;:22;;;11130:67;;;;-1:-1:-1;;;11130:67:0;;;;;;;:::i;:::-;19329:12:::1;:20:::0;;-1:-1:-1;;19329:20:0::1;::::0;;19365:25:::1;::::0;::::1;::::0;::::1;::::0;19344:5:::1;::::0;19365:25:::1;:::i;:::-;;;;;;;;19213:185::o:0;16402:218::-;16490:4;16507:83;16516:12;:10;:12::i;:::-;16530:7;16539:50;16578:10;16539:11;:25;16551:12;:10;:12::i;:::-;-1:-1:-1;;;;;16539:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;16539:25:0;;;:34;;;;;;;;;;;:38;:50::i;24432:81::-;24480:25;24486:10;24498:6;24480:5;:25::i;:::-;24432:81;:::o;19020:141::-;11148:12;:10;:12::i;:::-;11138:6;;-1:-1:-1;;;;;11138:6:0;;;:22;;;11130:67;;;;-1:-1:-1;;;11130:67:0;;;;;;;:::i;:::-;19092:3:::1;19085;:10;;19077:54;;;;-1:-1:-1::0;;;19077:54:0::1;;;;;;;:::i;:::-;19142:5;:11:::0;19020:141::o;13115:45::-;;;;;;;;;;;;;;;:::o;12830:31::-;;;:::o;18625:222::-;11148:12;:10;:12::i;:::-;11138:6;;-1:-1:-1;;;;;11138:6:0;;;:22;;;11130:67;;;;-1:-1:-1;;;11130:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18724:24:0;::::1;18716:74;;;;-1:-1:-1::0;;;18716:74:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18801:27:0;;;::::1;;::::0;;;:15:::1;:27;::::0;;;;:38;;-1:-1:-1;;18801:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18625:222::o;14153:119::-;-1:-1:-1;;;;;14246:18:0;;14219:7;14246:18;;;:9;:18;;;;;;14153:119;;;;:::o;11810:148::-;11148:12;:10;:12::i;:::-;11138:6;;-1:-1:-1;;;;;11138:6:0;;;:22;;;11130:67;;;;-1:-1:-1;;;11130:67:0;;;;;;;:::i;:::-;11917:1:::1;11901:6:::0;;11880:40:::1;::::0;-1:-1:-1;;;;;11901:6:0;;::::1;::::0;11880:40:::1;::::0;11917:1;;11880:40:::1;11948:1;11931:19:::0;;-1:-1:-1;;;;;;11931:19:0::1;::::0;;11810:148::o;12962:34::-;;;;:::o;18106:306::-;11148:12;:10;:12::i;:::-;11138:6;;-1:-1:-1;;;;;11138:6:0;;;:22;;;11130:67;;;;-1:-1:-1;;;11130:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18205:24:0;::::1;18197:74;;;;-1:-1:-1::0;;;18197:74:0::1;;;;;;;:::i;:::-;18291:8;18290:9;:37;;;;18303:8;:24;;;;-1:-1:-1::0;18315:12:0::1;::::0;::::1;;18303:24;18282:73;;;;-1:-1:-1::0;;;18282:73:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18366:27:0;;;::::1;;::::0;;;:15:::1;:27;::::0;;;;:38;;-1:-1:-1;;18366:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18106:306::o;12868:32::-;;;:::o;10926:79::-;10964:7;10991:6;-1:-1:-1;;;;;10991:6:0;10926:79;:::o;13574:20::-;;;;;;;:::i;17735:293::-;11148:12;:10;:12::i;:::-;11138:6;;-1:-1:-1;;;;;11138:6:0;;;:22;;;11130:67;;;;-1:-1:-1;;;11130:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17829:21:0;::::1;17821:71;;;;-1:-1:-1::0;;;17821:71:0::1;;;;;;;:::i;:::-;17912:8;17911:9;:37;;;;17924:8;:24;;;;-1:-1:-1::0;17936:12:0::1;::::0;::::1;;17924:24;17903:73;;;;-1:-1:-1::0;;;17903:73:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17987:22:0;;;::::1;;::::0;;;:13:::1;:22;::::0;;;;:33;;-1:-1:-1;;17987:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17735:293::o;17123:269::-;17216:4;17233:129;17242:12;:10;:12::i;:::-;17256:7;17265:96;17304:15;17265:96;;;;;;;;;;;;;;;;;:11;:25;17277:12;:10;:12::i;:::-;-1:-1:-1;;;;;17265:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;17265:25:0;;;:34;;;;;;;;;;;:96;:38;:96::i;14485:175::-;14571:4;14588:42;14598:12;:10;:12::i;:::-;14612:9;14623:6;14588:9;:42::i;12512:151::-;11382:12;:10;:12::i;:::-;11369:9;;-1:-1:-1;;;;;11369:9:0;;;:25;;;11361:78;;;;-1:-1:-1;;;11361:78:0;;;;;;;:::i;:::-;12616:9:::1;::::0;::::1;12608:6:::0;;12587:39:::1;::::0;-1:-1:-1;;;;;12616:9:0;;::::1;::::0;12608:6;;::::1;::::0;12587:39:::1;::::0;::::1;12646:9;::::0;::::1;12637:18:::0;;-1:-1:-1;;;;;;12637:18:0::1;-1:-1:-1::0;;;;;12646:9:0;;::::1;12637:18:::0;;;::::1;::::0;;12512:151::o;17451:201::-;11148:12;:10;:12::i;:::-;11138:6;;-1:-1:-1;;;;;11138:6:0;;;:22;;;11130:67;;;;-1:-1:-1;;;11130:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17536:26:0;::::1;17528:76;;;;-1:-1:-1::0;;;17528:76:0::1;;;;;;;:::i;:::-;17615:14;:29:::0;;-1:-1:-1;;;;;;17615:29:0::1;-1:-1:-1::0;;;;;17615:29:0;;;::::1;::::0;;;::::1;::::0;;17451:201::o;13029:25::-;;;;:::o;14723:155::-;-1:-1:-1;;;;;14841:19:0;;;14814:7;14841:19;;;:11;:19;;;;;;;;:29;;;;;;;;;;;;;14723:155::o;18859:150::-;11148:12;:10;:12::i;:::-;11138:6;;-1:-1:-1;;;;;11138:6:0;;;:22;;;11130:67;;;;-1:-1:-1;;;11130:67:0;;;;;;;:::i;:::-;18938:15:::1;::::0;;-1:-1:-1;;;;18919:34:0;::::1;-1:-1:-1::0;;;18938:15:0;;;::::1;;;18937:16;18919:34:::0;;::::1;;::::0;;18986:15:::1;18964:19;:37:::0;18859:150::o;13340:31::-;;;;;;:::o;19498:1219::-;-1:-1:-1;;;;;19678:26:0;;19637:7;19678:26;;;:15;:26;;;;;;19637:7;;19678:26;;:45;;;;-1:-1:-1;19708:15:0;;-1:-1:-1;;;19708:15:0;;;;19678:45;19675:788;;;19904:19;;19757:15;;19802:1;;19739:15;;19894:29;;19757:15;19894:29;:::i;:::-;19875:48;-1:-1:-1;19963:20:0;19875:48;19976:6;19963:12;:20::i;:::-;19952:31;-1:-1:-1;20009:21:0;19952:31;20022:7;20009:12;:21::i;:::-;19998:32;-1:-1:-1;20062:13:0;20059:286;;20086:2;20079:9;;20059:286;;;20113:8;20125:1;20113:13;20110:235;;;20137:2;20130:9;;20110:235;;;20164:8;20176:1;20164:13;20161:184;;;20188:2;20181:9;;20161:184;;;20215:8;20227:1;20215:13;20212:133;;;20239:2;20232:9;;20212:133;;;20266:8;20278:1;20266:13;20263:82;;;20290:2;20283:9;;20263:82;;;20317:8;20329:1;20317:13;20314:31;;;20341:1;20334:8;;20314:31;20380:25;20401:3;20380:16;:6;20391:4;20380:10;:16::i;:::-;:20;;:25::i;:::-;20373:32;-1:-1:-1;20428:16:0;:6;20373:32;20428:10;:16::i;:::-;20446:4;20420:31;;;;;;;;;19675:788;-1:-1:-1;;;;;20479:21:0;;;;;;:13;:21;;;;;;;;;:51;;-1:-1:-1;;;;;;20504:26:0;;;;;;:15;:26;;;;;;;;20479:51;20475:102;;;-1:-1:-1;20555:6:0;;-1:-1:-1;20563:1:0;20547:18;;20475:102;20628:11;20642:27;20664:4;20642:17;20653:5;;20642:6;:10;;:17;;;;:::i;:27::-;20628:41;-1:-1:-1;20688:15:0;:6;20628:41;20688:10;:15::i;:::-;20680:29;-1:-1:-1;20705:3:0;-1:-1:-1;19498:1219:0;;;;;;;:::o;12113:193::-;11148:12;:10;:12::i;:::-;11138:6;;-1:-1:-1;;;;;11138:6:0;;;:22;;;11130:67;;;;-1:-1:-1;;;11130:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12202:22:0;::::1;12194:73;;;;-1:-1:-1::0;;;12194:73:0::1;;;;;;;:::i;:::-;12278:9;:20:::0;;-1:-1:-1;;;;;;12278:20:0::1;-1:-1:-1::0;;;;;12278:20:0;;;::::1;::::0;;;::::1;::::0;;12113:193::o;12928:27::-;;;-1:-1:-1;;;12928:27:0;;;;;:::o;328:181::-;386:7;;418:5;422:1;418;:5;:::i;:::-;406:17;;447:1;442;:6;;434:46;;;;-1:-1:-1;;;434:46:0;;;;;;;:::i;:::-;500:1;328:181;-1:-1:-1;;;328:181:0:o;4756:98::-;4836:10;4756:98;:::o;23807:357::-;-1:-1:-1;;;;;23912:20:0;;23904:69;;;;-1:-1:-1;;;23904:69:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23992:22:0;;23984:69;;;;-1:-1:-1;;;23984:69:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24066:19:0;;;;;;;:11;:19;;;;;;;;:29;;;;;;;;;;;;;;:39;;;24121:35;;;;;24098:7;;24121:35;:::i;:::-;;;;;;;;23807:357;;;:::o;1682:400::-;1740:7;1914:6;1910:47;;-1:-1:-1;1944:1:0;1937:8;;1910:47;1969:9;1981:5;1985:1;1981;:5;:::i;:::-;1969:17;-1:-1:-1;2014:1:0;2005:5;2009:1;1969:17;2005:5;:::i;:::-;:10;1997:56;;;;-1:-1:-1;;;1997:56:0;;;;;;;:::i;792:136::-;850:7;877:43;881:1;884;877:43;;;;;;;;;;;;;;;;;:3;:43::i;20725:1184::-;-1:-1:-1;;;;;20831:20:0;;20823:70;;;;-1:-1:-1;;;20823:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20912:23:0;;20904:71;;;;-1:-1:-1;;;20904:71:0;;;;;;;:::i;:::-;21003:4;20994:6;:13;20986:59;;;;-1:-1:-1;;;20986:59:0;;;;;;;:::i;:::-;21056:47;21077:6;21085:9;21096:6;21056:20;:47::i;:::-;21171:71;21193:6;21171:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21171:17:0;;;;;;:9;:17;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;21151:17:0;;;;;;:9;:17;;;;;:91;;;;:17;21351:50;21161:6;21383:9;21394:6;21351:23;:50::i;:::-;-1:-1:-1;;;;;21476:20:0;;;;;;:9;:20;;;;;;21282:119;;-1:-1:-1;21282:119:0;-1:-1:-1;21476:42:0;;21282:119;21476:24;:42::i;:::-;-1:-1:-1;;;;;21453:20:0;;;;;;;:9;:20;;;;;;;:65;;;;21534:45;;;;;;;;;;21562:16;;21534:45;:::i;:::-;;;;;;;;21669:1;21636:30;:34;:66;;;;-1:-1:-1;21674:14:0;;-1:-1:-1;;;;;21674:14:0;:28;;21636:66;21633:269;;;21756:14;;-1:-1:-1;;;;;21756:14:0;21746:25;;;;:9;:25;;;;;;:61;;21776:30;21746:29;:61::i;:::-;21728:14;;;-1:-1:-1;;;;;21728:14:0;;;21718:25;;;;:9;:25;;;;;;;:89;;;;21844:14;;21827:64;;21844:14;;;;21827:64;;;;;;;;21860:30;;21827:64;:::i;:::-;;;;;;;;21633:269;20725:1184;;;;;:::o;1231:192::-;1317:7;1353:12;1345:6;;;;1337:29;;;;-1:-1:-1;;;1337:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1377:9:0;1389:5;1393:1;1389;:5;:::i;:::-;1377:17;1231:192;-1:-1:-1;;;;;1231:192:0:o;22953:416::-;-1:-1:-1;;;;;23037:21:0;;23029:67;;;;-1:-1:-1;;;23029:67:0;;;;;;;:::i;:::-;23109:49;23130:7;23147:1;23151:6;23109:20;:49::i;:::-;23192:68;23215:6;23192:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23192:18:0;;;;;;:9;:18;;;;;;;:68;:22;:68::i;:::-;-1:-1:-1;;;;;23171:18:0;;;;;;:9;:18;;;;;:89;23285:11;;:23;;23301:6;23285:15;:23::i;:::-;23271:11;:37;23324;;23350:1;;-1:-1:-1;;;;;23324:37:0;;;;;;;23354:6;;23324:37;:::i;:::-;;;;;;;;22953:416;;:::o;2558:132::-;2616:7;2643:39;2647:1;2650;2643:39;;;;;;;;;;;;;;;;;:3;:39::i;3929:130::-;3987:7;4014:37;4018:1;4021;4014:37;;;;;;;;;;;;;;;;;:3;:37::i;24179:92::-;;;;:::o;3186:278::-;3272:7;3307:12;3300:5;3292:28;;;;-1:-1:-1;;;3292:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3331:9:0;3343:5;3347:1;3343;:5;:::i;4544:166::-;4630:7;4666:12;4658:6;4650:29;;;;-1:-1:-1;;;4650:29:0;;;;;;;;:::i;:::-;-1:-1:-1;4697:5:0;4701:1;4697;:5;:::i;:::-;4690:12;4544:166;-1:-1:-1;;;;4544:166:0:o;14:175:1:-;84:20;;-1:-1:-1;;;;;133:31:1;;123:42;;113:2;;179:1;176;169:12;194:198;;306:2;294:9;285:7;281:23;277:32;274:2;;;327:6;319;312:22;274:2;355:31;376:9;355:31;:::i;397:274::-;;;526:2;514:9;505:7;501:23;497:32;494:2;;;547:6;539;532:22;494:2;575:31;596:9;575:31;:::i;:::-;565:41;;625:40;661:2;650:9;646:18;625:40;:::i;:::-;615:50;;484:187;;;;;:::o;676:342::-;;;;822:2;810:9;801:7;797:23;793:32;790:2;;;843:6;835;828:22;790:2;871:31;892:9;871:31;:::i;:::-;861:41;;921:40;957:2;946:9;942:18;921:40;:::i;:::-;911:50;;1008:2;997:9;993:18;980:32;970:42;;780:238;;;;;:::o;1023:369::-;;;1149:2;1137:9;1128:7;1124:23;1120:32;1117:2;;;1170:6;1162;1155:22;1117:2;1198:31;1219:9;1198:31;:::i;:::-;1188:41;;1279:2;1268:9;1264:18;1251:32;1326:5;1319:13;1312:21;1305:5;1302:32;1292:2;;1353:6;1345;1338:22;1292:2;1381:5;1371:15;;;1107:285;;;;;:::o;1397:266::-;;;1526:2;1514:9;1505:7;1501:23;1497:32;1494:2;;;1547:6;1539;1532:22;1494:2;1575:31;1596:9;1575:31;:::i;:::-;1565:41;1653:2;1638:18;;;;1625:32;;-1:-1:-1;;;1484:179:1:o;1668:190::-;;1780:2;1768:9;1759:7;1755:23;1751:32;1748:2;;;1801:6;1793;1786:22;1748:2;-1:-1:-1;1829:23:1;;1738:120;-1:-1:-1;1738:120:1:o;1863:203::-;-1:-1:-1;;;;;2027:32:1;;;;2009:51;;1997:2;1982:18;;1964:102::o;2071:187::-;2236:14;;2229:22;2211:41;;2199:2;2184:18;;2166:92::o;2263:603::-;;2404:2;2433;2422:9;2415:21;2465:6;2459:13;2508:6;2503:2;2492:9;2488:18;2481:34;2533:4;2546:140;2560:6;2557:1;2554:13;2546:140;;;2655:14;;;2651:23;;2645:30;2621:17;;;2640:2;2617:26;2610:66;2575:10;;2546:140;;;2704:6;2701:1;2698:13;2695:2;;;2774:4;2769:2;2760:6;2749:9;2745:22;2741:31;2734:45;2695:2;-1:-1:-1;2850:2:1;2829:15;-1:-1:-1;;2825:29:1;2810:45;;;;2857:2;2806:54;;2384:482;-1:-1:-1;;;2384:482:1:o;2871:399::-;3073:2;3055:21;;;3112:2;3092:18;;;3085:30;3151:34;3146:2;3131:18;;3124:62;-1:-1:-1;;;3217:2:1;3202:18;;3195:33;3260:3;3245:19;;3045:225::o;3275:402::-;3477:2;3459:21;;;3516:2;3496:18;;;3489:30;3555:34;3550:2;3535:18;;3528:62;-1:-1:-1;;;3621:2:1;3606:18;;3599:36;3667:3;3652:19;;3449:228::o;3682:398::-;3884:2;3866:21;;;3923:2;3903:18;;;3896:30;3962:34;3957:2;3942:18;;3935:62;-1:-1:-1;;;4028:2:1;4013:18;;4006:32;4070:3;4055:19;;3856:224::o;4085:397::-;4287:2;4269:21;;;4326:2;4306:18;;;4299:30;4365:34;4360:2;4345:18;;4338:62;-1:-1:-1;;;4431:2:1;4416:18;;4409:31;4472:3;4457:19;;4259:223::o;4487:351::-;4689:2;4671:21;;;4728:2;4708:18;;;4701:30;4767:29;4762:2;4747:18;;4740:57;4829:2;4814:18;;4661:177::o;4843:355::-;5045:2;5027:21;;;5084:2;5064:18;;;5057:30;5123:33;5118:2;5103:18;;5096:61;5189:2;5174:18;;5017:181::o;5203:404::-;5405:2;5387:21;;;5444:2;5424:18;;;5417:30;5483:34;5478:2;5463:18;;5456:62;-1:-1:-1;;;5549:2:1;5534:18;;5527:38;5597:3;5582:19;;5377:230::o;5612:397::-;5814:2;5796:21;;;5853:2;5833:18;;;5826:30;5892:34;5887:2;5872:18;;5865:62;-1:-1:-1;;;5958:2:1;5943:18;;5936:31;5999:3;5984:19;;5786:223::o;6014:356::-;6216:2;6198:21;;;6235:18;;;6228:30;6294:34;6289:2;6274:18;;6267:62;6361:2;6346:18;;6188:182::o;6375:347::-;6577:2;6559:21;;;6616:2;6596:18;;;6589:30;6655:25;6650:2;6635:18;;6628:53;6713:2;6698:18;;6549:173::o;6727:397::-;6929:2;6911:21;;;6968:2;6948:18;;;6941:30;7007:34;7002:2;6987:18;;6980:62;-1:-1:-1;;;7073:2:1;7058:18;;7051:31;7114:3;7099:19;;6901:223::o;7129:401::-;7331:2;7313:21;;;7370:2;7350:18;;;7343:30;7409:34;7404:2;7389:18;;7382:62;-1:-1:-1;;;7475:2:1;7460:18;;7453:35;7520:3;7505:19;;7303:227::o;7535:400::-;7737:2;7719:21;;;7776:2;7756:18;;;7749:30;7815:34;7810:2;7795:18;;7788:62;-1:-1:-1;;;7881:2:1;7866:18;;7859:34;7925:3;7910:19;;7709:226::o;7940:177::-;8086:25;;;8074:2;8059:18;;8041:76::o;8122:248::-;8296:25;;;8352:2;8337:18;;8330:34;8284:2;8269:18;;8251:119::o;8375:184::-;8547:4;8535:17;;;;8517:36;;8505:2;8490:18;;8472:87::o;8564:128::-;;8635:1;8631:6;8628:1;8625:13;8622:2;;;8641:18;;:::i;:::-;-1:-1:-1;8677:9:1;;8612:80::o;8697:120::-;;8763:1;8753:2;;8768:18;;:::i;:::-;-1:-1:-1;8802:9:1;;8743:74::o;8822:168::-;;8928:1;8924;8920:6;8916:14;8913:1;8910:21;8905:1;8898:9;8891:17;8887:45;8884:2;;;8935:18;;:::i;:::-;-1:-1:-1;8975:9:1;;8874:116::o;8995:125::-;;9063:1;9060;9057:8;9054:2;;;9068:18;;:::i;:::-;-1:-1:-1;9105:9:1;;9044:76::o;9125:380::-;9210:1;9200:12;;9257:1;9247:12;;;9268:2;;9322:4;9314:6;9310:17;9300:27;;9268:2;9375;9367:6;9364:14;9344:18;9341:38;9338:2;;;9421:10;9416:3;9412:20;9409:1;9402:31;9456:4;9453:1;9446:15;9484:4;9481:1;9474:15;9338:2;;9180:325;;;:::o;9510:112::-;;9568:1;9558:2;;9573:18;;:::i;:::-;-1:-1:-1;9607:9:1;;9548:74::o;9627:127::-;9688:10;9683:3;9679:20;9676:1;9669:31;9719:4;9716:1;9709:15;9743:4;9740:1;9733:15;9759:127;9820:10;9815:3;9811:20;9808:1;9801:31;9851:4;9848:1;9841:15;9875:4;9872:1;9865:15

Swarm Source

ipfs://936708808192e5e97f1269a482f0be5a1fb84207f577314d85735f9b3fafadf3
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.