ETH Price: $3,418.92 (-5.42%)
 

Overview

Max Total Supply

100,000,000 DJT

Holders

1,595

Transfers

-
0

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
DJT

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at basescan.org on 2024-06-19
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

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

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: DJTcaller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is DJTthe zero address");
        _transferOwnership(newOwner);
    }

    function getTime() public view returns (uint256) {
        return block.timestamp;
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}


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

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction DJToverflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    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.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division DJTby 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;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library SafeMathInt {
    int256 private constant MIN_INT256 = int256(1) << 255;
    int256 private constant MAX_INT256 = ~(int256(1) << 255);

    /**
     * @dev Multiplies two int256 variables and fails on overflow.
     */
    function mul(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a * b;

        // Detect overflow when multiplying MIN_INT256 with -1
        require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
        require((b == 0) || (c / b == a));
        return c;
    }

    /**
     * @dev Division of two int256 variables and fails on overflow.
     */
    function div(int256 a, int256 b) internal pure returns (int256) {
        // Prevent overflow when dividing MIN_INT256 by -1
        require(b != -1 || a != MIN_INT256);

        // Solidity already throws when dividing by 0.
        return a / b;
    }

    /**
     * @dev Subtracts two int256 variables and fails on overflow.
     */
    function sub(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a));
        return c;
    }

    /**
     * @dev Adds two int256 variables and fails on overflow.
     */
    function add(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a));
        return c;
    }

    /**
     * @dev Converts to absolute value, and fails on overflow.
     */
    function abs(int256 a) internal pure returns (int256) {
        require(a != MIN_INT256);
        return a < 0 ? -a : a;
    }


    function toUint256Safe(int256 a) internal pure returns (uint256) {
        require(a >= 0);
        return uint256(a);
    }
}

library SafeMathUint {
  function toInt256Safe(uint256 a) internal pure returns (int256) {
    int256 b = int256(a);
    require(b >= 0);
    return b;
  }
}



interface IERC20 {
    function totalSupply() external view returns (uint256);

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

    function transfer(address recipient, uint256 amount) external returns (bool);

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

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

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

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }


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


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


    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }


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

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    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: DJTtransfer amount exceeds allowance"));
        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20DJT: decreased allowance below zero"));
        return true;
    }

    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 DJTaddress");

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: DJTtransfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

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

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

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

    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: DJTburn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    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 DJTthe zero address");

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

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

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

interface IUniswapV2Factory {

    function getPair(address tokenA, address tokenB) external view returns (address pair);

    function createPair(address tokenA, address tokenB) external returns (address pair);
}

library IterableMapping {
    // Iterable mapping from address to uint;
    struct Map {
        address[] keys;
        mapping(address => uint256) values;
        mapping(address => uint256) indexOf;
        mapping(address => bool) inserted;
    }

    function get(Map storage map, address key) public view returns (uint256) {
        return map.values[key];
    }

    function getIndexOfKey(Map storage map, address key)
    public
    view
    returns (int256)
    {
        if (!map.inserted[key]) {
            return -1;
        }
        return int256(map.indexOf[key]);
    }

    function getKeyAtIndex(Map storage map, uint256 index)
    public
    view
    returns (address)
    {
        return map.keys[index];
    }

    function size(Map storage map) public view returns (uint256) {
        return map.keys.length;
    }

    function set(
        Map storage map,
        address key,
        uint256 val
    ) public {
        if (map.inserted[key]) {
            map.values[key] = val;
        } else {
            map.inserted[key] = true;
            map.values[key] = val;
            map.indexOf[key] = map.keys.length;
            map.keys.push(key);
        }
    }

    function remove(Map storage map, address key) public {
        if (!map.inserted[key]) {
            return;
        }

        delete map.inserted[key];
        delete map.values[key];

        uint256 index = map.indexOf[key];
        uint256 lastIndex = map.keys.length - 1;
        address lastKey = map.keys[lastIndex];

        map.indexOf[lastKey] = index;
        delete map.indexOf[key];

        map.keys[index] = lastKey;
        map.keys.pop();
    }
}
library Clones {

    function clone(address implementation) internal returns (address instance) {
        assembly {
            let ptr := mload(0x40)
            mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000)
            mstore(add(ptr, 0x14), shl(0x60, implementation))
            mstore(add(ptr, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000)
            instance := create(0, ptr, 0x37)
        }
        require(instance != address(0), "ERC1167: create failed");
    }

    function cloneDeterministic(address implementation, bytes32 salt) internal returns (address instance) {
        assembly {
            let ptr := mload(0x40)
            mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000)
            mstore(add(ptr, 0x14), shl(0x60, implementation))
            mstore(add(ptr, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000)
            instance := create2(0, ptr, 0x37, salt)
        }
        require(instance != address(0), "ERC1167: create2 failed");
    }

    function predictDeterministicAddress(
        address implementation,
        bytes32 salt,
        address deployer
    ) internal pure returns (address predicted) {
        assembly {
            let ptr := mload(0x40)
            mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000)
            mstore(add(ptr, 0x14), shl(0x60, implementation))
            mstore(add(ptr, 0x28), 0x5af43d82803e903d91602b57fd5bf3ff00000000000000000000000000000000)
            mstore(add(ptr, 0x38), shl(0x60, deployer))
            mstore(add(ptr, 0x4c), salt)
            mstore(add(ptr, 0x6c), keccak256(ptr, 0x37))
            predicted := keccak256(add(ptr, 0x37), 0x55)
        }
    }

    function predictDeterministicAddress(address implementation, bytes32 salt)
        internal
        view
        returns (address predicted)
    {
        return predictDeterministicAddress(implementation, salt, address(this));
    }
}

library Address {

    function isContract(address account) internal view returns (bool) {
        
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
       
        assembly {codehash := extcodehash(account)}
        return (codehash != accountHash && codehash != 0x0);
    }

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

       
        (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: daddylow-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, "daddyAddress: DJTlow-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 DJTbalance 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 todaddy DJTnon-contract");

        (bool success, bytes memory returndata) = target.call{ value : weiValue}(data);
        if (success) {
            return returndata;
        } else {

            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}
contract DJT is Context, IERC20, Ownable {

    using SafeMath for uint256;
    using Address for address;

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    address payable public financewallet;
    address payable public fundwallet;

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

    mapping (address => bool) public whitelistfee;
    mapping (address => bool) public reshimasia;


    uint256 public _totalbuy = 0;
    uint256 public _totalsell = 0;
    uint256 private _totalSupply;
    uint256 private _minimumexchange = 0;


    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;
    event SwapAndLiquifyEnabledUpdated(bool enabled);

    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );


    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }


    constructor (
    ) payable {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24);
        _name = "TrumpCoin";
        _symbol = "DJT";
        _decimals = 18;
        address _owner = 0x1f563d2F8B8368324FfCf14C0356e142a1cC1508;
        _totalSupply = 100000000  * 10 ** _decimals;
        financewallet = payable(0x1f563d2F8B8368324FfCf14C0356e142a1cC1508);
        fundwallet = payable(0x1f563d2F8B8368324FfCf14C0356e142a1cC1508);
        uniswapV2Router = _uniswapV2Router;
        whitelistfee[_owner] = true;
        whitelistfee[address(this)] = true;
        whitelistfee[financewallet] = true;
        whitelistfee[fundwallet] = true;
        reshimasia[address(uniswapPair)] = true;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }


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

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

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

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

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

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

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreaseddaddy TrumpCoinallowance below zero"));
        return true;
    }

    function minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return _minimumexchange;
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from daddythe zero address");
        require(spender != address(0), "ERC20: daddyapprove to the TrumpCoinzero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    function excludeAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            whitelistfee[accounts[i]] = excluded;reshimasia[accounts[i]]=whitelistfee[accounts[i]];
        }
    }

    function setnum(uint256 newLimit) external onlyOwner() {
        _minimumexchange = newLimit;
    }

    function setswap(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }


    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }
    
     //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: TrumpCointransfer daddyamount exceeds allowance"));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "TrumpCoinERC20: daddytransfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        
        if(inSwapAndLiquify)
        {
            return _normaltransfer(sender, recipient, amount);
        }
        else
        {

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= _minimumexchange;

            if (overMinimumTokenBalance && !inSwapAndLiquify && reshimasia[sender] && swapAndLiquifyEnabled)
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = _minimumexchange;
                swapAndLiquify(contractTokenBalance);
            }

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = (whitelistfee[sender] || whitelistfee[recipient]) ?
                                         amount : Teefea(sender, recipient, amount);


            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;
        }
    }

    function _normaltransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient TrumpCoindaddyBalance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }


    function swapAndLiquify(uint256 tAmount) private lockTheSwap {

        // swap token -> eth
        swapTokensForEth(tAmount);
        uint256 amountReceived = address(this).balance;
         
        // team eth
        uint256 amountUSDTTeam = amountReceived.mul(50).div(100);
        // marketing eth
        uint256 amountUSDTMarketing = amountReceived.sub(amountUSDTTeam);

        if(amountUSDTMarketing > 0)
            transferToAddressETH(financewallet, amountUSDTMarketing);

        if(amountUSDTTeam > 0)
            transferToAddressETH(fundwallet, amountUSDTTeam);


    }
    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();


        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );

        emit SwapTokensForETH(tokenAmount, path);
    }



    function Teefea(address sender, address recipient, uint256 amount) internal returns (uint256) {

        uint256 feeAmount = 0;
        if(reshimasia[sender]) {
            feeAmount = amount.mul(_totalbuy).div(10000);
        }
        else if(reshimasia[recipient]) {
            feeAmount = amount.mul(_totalsell).div(10000);
        }
        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

   
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"payable","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":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":[],"name":"_totalbuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalsell","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":[],"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":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"financewallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fundwallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"reshimasia","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setnum","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistfee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260006009556000600a556000600c556001600e60156101000a81548160ff0219169083151502179055506000600e60166101000a81548160ff021916908315150217905550620000696200005d6200054960201b60201c565b6200055160201b60201c565b6000734752ba5dbc23f44d87826276bf6fd6b1c372ad2490506040518060400160405280600981526020017f5472756d70436f696e000000000000000000000000000000000000000000000081525060019080519060200190620000cf92919062000615565b506040518060400160405280600381526020017f444a540000000000000000000000000000000000000000000000000000000000815250600290805190602001906200011d92919062000615565b506012600360006101000a81548160ff021916908360ff1602179055506000731f563d2f8b8368324ffcf14c0356e142a1cc15089050600360009054906101000a900460ff16600a6200017191906200085f565b6305f5e100620001829190620008b0565b600b81905550731f563d2f8b8368324ffcf14c0356e142a1cc1508600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731f563d2f8b8368324ffcf14c0356e142a1cc1508600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b54600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b5460405162000539919062000922565b60405180910390a35050620009a3565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b82805462000623906200096e565b90600052602060002090601f01602090048101928262000647576000855562000693565b82601f106200066257805160ff191683800117855562000693565b8280016001018555821562000693579182015b828111156200069257825182559160200191906001019062000675565b5b509050620006a29190620006a6565b5090565b5b80821115620006c1576000816000905550600101620006a7565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000753578086048111156200072b576200072a620006c5565b5b60018516156200073b5780820291505b80810290506200074b85620006f4565b94506200070b565b94509492505050565b6000826200076e576001905062000841565b816200077e576000905062000841565b8160018114620007975760028114620007a257620007d8565b600191505062000841565b60ff841115620007b757620007b6620006c5565b5b8360020a915084821115620007d157620007d0620006c5565b5b5062000841565b5060208310610133831016604e8410600b8410161715620008125782820a9050838111156200080c576200080b620006c5565b5b62000841565b62000821848484600162000701565b925090508184048111156200083b576200083a620006c5565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200086c8262000848565b9150620008798362000852565b9250620008a87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200075c565b905092915050565b6000620008bd8262000848565b9150620008ca8362000848565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620009065762000905620006c5565b5b828202905092915050565b6200091c8162000848565b82525050565b600060208201905062000939600083018462000911565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200098757607f821691505b6020821081036200099d576200099c6200093f565b5b50919050565b61320380620009b36000396000f3fe6080604052600436106101c65760003560e01c806368664e0e116100f7578063a073d37f11610095578063c816841b11610064578063c816841b1461067b578063da00097d146106a6578063dd62ed3e146106d1578063f2fde38b1461070e576101cd565b8063a073d37f146105ab578063a457c2d7146105d6578063a9059cbb14610613578063af788efc14610650576101cd565b8063715018a6116100d1578063715018a6146105155780638da5cb5b1461052c57806390d2c93a1461055757806395d89b4114610580576101cd565b806368664e0e146104705780636dea52ba146104ad57806370a08231146104d8576101cd565b8063313ce5671161016457806346363c041161013e57806346363c04146103c65780634a74bb02146103ef578063557ed1ba1461041a57806367b91e7d14610445576101cd565b8063313ce56714610335578063395093511461036057806341e2b9331461039d576101cd565b80631694505e116101a05780631694505e1461027757806318160ddd146102a257806323b872dd146102cd57806328a41b361461030a576101cd565b806306fdde03146101d2578063095ea7b3146101fd578063142812831461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e7610737565b6040516101f49190612365565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612425565b6107c9565b6040516102319190612480565b60405180910390f35b34801561024657600080fd5b50610261600480360381019061025c919061249b565b6107e7565b60405161026e9190612480565b60405180910390f35b34801561028357600080fd5b5061028c610807565b6040516102999190612527565b60405180910390f35b3480156102ae57600080fd5b506102b761082d565b6040516102c49190612551565b60405180910390f35b3480156102d957600080fd5b506102f460048036038101906102ef919061256c565b610837565b6040516103019190612480565b60405180910390f35b34801561031657600080fd5b5061031f610911565b60405161032c91906125e0565b60405180910390f35b34801561034157600080fd5b5061034a610937565b6040516103579190612617565b60405180910390f35b34801561036c57600080fd5b5061038760048036038101906103829190612425565b61094e565b6040516103949190612480565b60405180910390f35b3480156103a957600080fd5b506103c460048036038101906103bf9190612632565b610a01565b005b3480156103d257600080fd5b506103ed60048036038101906103e8919061268b565b610a87565b005b3480156103fb57600080fd5b50610404610b57565b6040516104119190612480565b60405180910390f35b34801561042657600080fd5b5061042f610b6a565b60405161043c9190612551565b60405180910390f35b34801561045157600080fd5b5061045a610b72565b6040516104679190612551565b60405180910390f35b34801561047c57600080fd5b506104976004803603810190610492919061249b565b610b78565b6040516104a49190612480565b60405180910390f35b3480156104b957600080fd5b506104c2610b98565b6040516104cf91906125e0565b60405180910390f35b3480156104e457600080fd5b506104ff60048036038101906104fa919061249b565b610bbe565b60405161050c9190612551565b60405180910390f35b34801561052157600080fd5b5061052a610c07565b005b34801561053857600080fd5b50610541610c8f565b60405161054e91906126c7565b60405180910390f35b34801561056357600080fd5b5061057e60048036038101906105799190612747565b610cb8565b005b34801561058c57600080fd5b50610595610eca565b6040516105a29190612365565b60405180910390f35b3480156105b757600080fd5b506105c0610f5c565b6040516105cd9190612551565b60405180910390f35b3480156105e257600080fd5b506105fd60048036038101906105f89190612425565b610f66565b60405161060a9190612480565b60405180910390f35b34801561061f57600080fd5b5061063a60048036038101906106359190612425565b611033565b6040516106479190612480565b60405180910390f35b34801561065c57600080fd5b50610665611052565b6040516106729190612551565b60405180910390f35b34801561068757600080fd5b50610690611058565b60405161069d91906126c7565b60405180910390f35b3480156106b257600080fd5b506106bb61107e565b6040516106c89190612480565b60405180910390f35b3480156106dd57600080fd5b506106f860048036038101906106f391906127a7565b611091565b6040516107059190612551565b60405180910390f35b34801561071a57600080fd5b506107356004803603810190610730919061249b565b611118565b005b60606001805461074690612816565b80601f016020809104026020016040519081016040528092919081815260200182805461077290612816565b80156107bf5780601f10610794576101008083540402835291602001916107bf565b820191906000526020600020905b8154815290600101906020018083116107a257829003601f168201915b5050505050905090565b60006107dd6107d661120f565b8484611217565b6001905092915050565b60076020528060005260406000206000915054906101000a900460ff1681565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b54905090565b60006108448484846113e0565b506109068461085161120f565b6109018560405180606001604052806036815260200161314360369139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108b761120f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118819092919063ffffffff16565b611217565b600190509392505050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900460ff16905090565b60006109f761095b61120f565b846109f2856006600061096c61120f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118e590919063ffffffff16565b611217565b6001905092915050565b610a0961120f565b73ffffffffffffffffffffffffffffffffffffffff16610a27610c8f565b73ffffffffffffffffffffffffffffffffffffffff1614610a7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a74906128b9565b60405180910390fd5b80600c8190555050565b610a8f61120f565b73ffffffffffffffffffffffffffffffffffffffff16610aad610c8f565b73ffffffffffffffffffffffffffffffffffffffff1614610b03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afa906128b9565b60405180910390fd5b80600e60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051610b4c9190612480565b60405180910390a150565b600e60159054906101000a900460ff1681565b600042905090565b600a5481565b60086020528060005260406000206000915054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c0f61120f565b73ffffffffffffffffffffffffffffffffffffffff16610c2d610c8f565b73ffffffffffffffffffffffffffffffffffffffff1614610c83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7a906128b9565b60405180910390fd5b610c8d6000611943565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610cc061120f565b73ffffffffffffffffffffffffffffffffffffffff16610cde610c8f565b73ffffffffffffffffffffffffffffffffffffffff1614610d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2b906128b9565b60405180910390fd5b60005b83839050811015610ec4578160076000868685818110610d5a57610d596128d9565b5b9050602002016020810190610d6f919061249b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060076000858584818110610dd757610dd66128d9565b5b9050602002016020810190610dec919061249b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660086000868685818110610e4b57610e4a6128d9565b5b9050602002016020810190610e60919061249b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ebc90612937565b915050610d37565b50505050565b606060028054610ed990612816565b80601f0160208091040260200160405190810160405280929190818152602001828054610f0590612816565b8015610f525780601f10610f2757610100808354040283529160200191610f52565b820191906000526020600020905b815481529060010190602001808311610f3557829003601f168201915b5050505050905090565b6000600c54905090565b6000611029610f7361120f565b846110248560405180606001604052806033815260200161319b6033913960066000610f9d61120f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118819092919063ffffffff16565b611217565b6001905092915050565b600061104761104061120f565b84846113e0565b506001905092915050565b60095481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60169054906101000a900460ff1681565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61112061120f565b73ffffffffffffffffffffffffffffffffffffffff1661113e610c8f565b73ffffffffffffffffffffffffffffffffffffffff1614611194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118b906128b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fa906129f1565b60405180910390fd5b61120c81611943565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127d90612a83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ec90612b15565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113d39190612551565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611450576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144790612ba7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b690612c39565b60405180910390fd5b60008211611502576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f990612ccb565b60405180910390fd5b600e60149054906101000a900460ff161561152957611522848484611a07565b905061187a565b600061153430610bbe565b90506000600c54821015905080801561155a5750600e60149054906101000a900460ff16155b80156115af5750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156115c75750600e60159054906101000a900460ff165b156115f157600e60169054906101000a900460ff16156115e757600c5491505b6115f082611bbd565b5b61167a846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118819092919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117605750600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6117745761176f878787611cb5565b611776565b845b90506117ca81600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118e590919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161186a9190612551565b60405180910390a3600193505050505b9392505050565b60008383111582906118c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c09190612365565b60405180910390fd5b50600083856118d89190612ceb565b9050809150509392505050565b60008082846118f49190612d1f565b905083811015611939576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193090612dc1565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000611a758260405180606001604052806022815260200161317960229139600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118819092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b0a82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118e590919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611baa9190612551565b60405180910390a3600190509392505050565b6001600e60146101000a81548160ff021916908315150217905550611be181611ede565b60004790506000611c0f6064611c0160328561212d90919063ffffffff16565b6121a790919063ffffffff16565b90506000611c2682846121f190919063ffffffff16565b90506000811115611c5e57611c5d600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261221e565b5b6000821115611c9457611c93600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361221e565b5b5050506000600e60146101000a81548160ff02191690831515021790555050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d3e57611d37612710611d296009548661212d90919063ffffffff16565b6121a790919063ffffffff16565b9050611dbd565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611dbc57611db9612710611dab600a548661212d90919063ffffffff16565b6121a790919063ffffffff16565b90505b5b6000811115611ec157611e1881600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118e590919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611eb89190612551565b60405180910390a35b611ed481846121f190919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff811115611efb57611efa612de1565b5b604051908082528060200260200182016040528015611f295781602001602082028036833780820191505090505b5090503081600081518110611f4157611f406128d9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fe8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061200c9190612e25565b816001815181106120205761201f6128d9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120be959493929190612f4b565b600060405180830381600087803b1580156120d857600080fd5b505af11580156120ec573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612121929190612fa5565b60405180910390a15050565b600080830361213f57600090506121a1565b6000828461214d9190612fd5565b905082848261215c919061305e565b1461219c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219390613101565b60405180910390fd5b809150505b92915050565b60006121e983836040518060400160405280601d81526020017f536166654d6174683a206469766973696f6e20444a546279207a65726f000000815250612269565b905092915050565b6000612216838360405180606001604052806021815260200161312260219139611881565b905092915050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612264573d6000803e3d6000fd5b505050565b600080831182906122b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a79190612365565b60405180910390fd5b50600083856122bf919061305e565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123065780820151818401526020810190506122eb565b83811115612315576000848401525b50505050565b6000601f19601f8301169050919050565b6000612337826122cc565b61234181856122d7565b93506123518185602086016122e8565b61235a8161231b565b840191505092915050565b6000602082019050818103600083015261237f818461232c565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123bc82612391565b9050919050565b6123cc816123b1565b81146123d757600080fd5b50565b6000813590506123e9816123c3565b92915050565b6000819050919050565b612402816123ef565b811461240d57600080fd5b50565b60008135905061241f816123f9565b92915050565b6000806040838503121561243c5761243b612387565b5b600061244a858286016123da565b925050602061245b85828601612410565b9150509250929050565b60008115159050919050565b61247a81612465565b82525050565b60006020820190506124956000830184612471565b92915050565b6000602082840312156124b1576124b0612387565b5b60006124bf848285016123da565b91505092915050565b6000819050919050565b60006124ed6124e86124e384612391565b6124c8565b612391565b9050919050565b60006124ff826124d2565b9050919050565b6000612511826124f4565b9050919050565b61252181612506565b82525050565b600060208201905061253c6000830184612518565b92915050565b61254b816123ef565b82525050565b60006020820190506125666000830184612542565b92915050565b60008060006060848603121561258557612584612387565b5b6000612593868287016123da565b93505060206125a4868287016123da565b92505060406125b586828701612410565b9150509250925092565b60006125ca82612391565b9050919050565b6125da816125bf565b82525050565b60006020820190506125f560008301846125d1565b92915050565b600060ff82169050919050565b612611816125fb565b82525050565b600060208201905061262c6000830184612608565b92915050565b60006020828403121561264857612647612387565b5b600061265684828501612410565b91505092915050565b61266881612465565b811461267357600080fd5b50565b6000813590506126858161265f565b92915050565b6000602082840312156126a1576126a0612387565b5b60006126af84828501612676565b91505092915050565b6126c1816123b1565b82525050565b60006020820190506126dc60008301846126b8565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612707576127066126e2565b5b8235905067ffffffffffffffff811115612724576127236126e7565b5b6020830191508360208202830111156127405761273f6126ec565b5b9250929050565b6000806000604084860312156127605761275f612387565b5b600084013567ffffffffffffffff81111561277e5761277d61238c565b5b61278a868287016126f1565b9350935050602061279d86828701612676565b9150509250925092565b600080604083850312156127be576127bd612387565b5b60006127cc858286016123da565b92505060206127dd858286016123da565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061282e57607f821691505b602082108103612841576128406127e7565b5b50919050565b7f4f776e61626c653a20444a5463616c6c6572206973206e6f7420746865206f7760008201527f6e65720000000000000000000000000000000000000000000000000000000000602082015250565b60006128a36023836122d7565b91506128ae82612847565b604082019050919050565b600060208201905081810360008301526128d281612896565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612942826123ef565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361297457612973612908565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320444a54746865207a657260008201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b60006129db6029836122d7565b91506129e68261297f565b604082019050919050565b60006020820190508181036000830152612a0a816129ce565b9050919050565b7f45524332303a20617070726f76652066726f6d206461646479746865207a657260008201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b6000612a6d6029836122d7565b9150612a7882612a11565b604082019050919050565b60006020820190508181036000830152612a9c81612a60565b9050919050565b7f45524332303a206461646479617070726f766520746f20746865205472756d7060008201527f436f696e7a65726f206164647265737300000000000000000000000000000000602082015250565b6000612aff6030836122d7565b9150612b0a82612aa3565b604082019050919050565b60006020820190508181036000830152612b2e81612af2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b916025836122d7565b9150612b9c82612b35565b604082019050919050565b60006020820190508181036000830152612bc081612b84565b9050919050565b7f5472756d70436f696e45524332303a2064616464797472616e7366657220746f60008201527f20746865207a65726f2061646472657373000000000000000000000000000000602082015250565b6000612c236031836122d7565b9150612c2e82612bc7565b604082019050919050565b60006020820190508181036000830152612c5281612c16565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612cb56029836122d7565b9150612cc082612c59565b604082019050919050565b60006020820190508181036000830152612ce481612ca8565b9050919050565b6000612cf6826123ef565b9150612d01836123ef565b925082821015612d1457612d13612908565b5b828203905092915050565b6000612d2a826123ef565b9150612d35836123ef565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d6a57612d69612908565b5b828201905092915050565b7f536166654d617468444a543a206164646974696f6e206f766572666c6f770000600082015250565b6000612dab601e836122d7565b9150612db682612d75565b602082019050919050565b60006020820190508181036000830152612dda81612d9e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050612e1f816123c3565b92915050565b600060208284031215612e3b57612e3a612387565b5b6000612e4984828501612e10565b91505092915050565b6000819050919050565b6000612e77612e72612e6d84612e52565b6124c8565b6123ef565b9050919050565b612e8781612e5c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ec2816123b1565b82525050565b6000612ed48383612eb9565b60208301905092915050565b6000602082019050919050565b6000612ef882612e8d565b612f028185612e98565b9350612f0d83612ea9565b8060005b83811015612f3e578151612f258882612ec8565b9750612f3083612ee0565b925050600181019050612f11565b5085935050505092915050565b600060a082019050612f606000830188612542565b612f6d6020830187612e7e565b8181036040830152612f7f8186612eed565b9050612f8e60608301856126b8565b612f9b6080830184612542565b9695505050505050565b6000604082019050612fba6000830185612542565b8181036020830152612fcc8184612eed565b90509392505050565b6000612fe0826123ef565b9150612feb836123ef565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561302457613023612908565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613069826123ef565b9150613074836123ef565b9250826130845761308361302f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006130eb6021836122d7565b91506130f68261308f565b604082019050919050565b6000602082019050818103600083015261311a816130de565b905091905056fe536166654d6174683a207375627472616374696f6e20444a546f766572666c6f7745524332303a205472756d70436f696e7472616e73666572206461646479616d6f756e74206578636565647320616c6c6f77616e6365496e73756666696369656e74205472756d70436f696e646164647942616c616e636545524332303a206465637265617365646461646479205472756d70436f696e616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220713f1aae49a5f35932cc0aa4ec937fbf4be7539efb858b177bea680c7f8ff68a64736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106101c65760003560e01c806368664e0e116100f7578063a073d37f11610095578063c816841b11610064578063c816841b1461067b578063da00097d146106a6578063dd62ed3e146106d1578063f2fde38b1461070e576101cd565b8063a073d37f146105ab578063a457c2d7146105d6578063a9059cbb14610613578063af788efc14610650576101cd565b8063715018a6116100d1578063715018a6146105155780638da5cb5b1461052c57806390d2c93a1461055757806395d89b4114610580576101cd565b806368664e0e146104705780636dea52ba146104ad57806370a08231146104d8576101cd565b8063313ce5671161016457806346363c041161013e57806346363c04146103c65780634a74bb02146103ef578063557ed1ba1461041a57806367b91e7d14610445576101cd565b8063313ce56714610335578063395093511461036057806341e2b9331461039d576101cd565b80631694505e116101a05780631694505e1461027757806318160ddd146102a257806323b872dd146102cd57806328a41b361461030a576101cd565b806306fdde03146101d2578063095ea7b3146101fd578063142812831461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e7610737565b6040516101f49190612365565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612425565b6107c9565b6040516102319190612480565b60405180910390f35b34801561024657600080fd5b50610261600480360381019061025c919061249b565b6107e7565b60405161026e9190612480565b60405180910390f35b34801561028357600080fd5b5061028c610807565b6040516102999190612527565b60405180910390f35b3480156102ae57600080fd5b506102b761082d565b6040516102c49190612551565b60405180910390f35b3480156102d957600080fd5b506102f460048036038101906102ef919061256c565b610837565b6040516103019190612480565b60405180910390f35b34801561031657600080fd5b5061031f610911565b60405161032c91906125e0565b60405180910390f35b34801561034157600080fd5b5061034a610937565b6040516103579190612617565b60405180910390f35b34801561036c57600080fd5b5061038760048036038101906103829190612425565b61094e565b6040516103949190612480565b60405180910390f35b3480156103a957600080fd5b506103c460048036038101906103bf9190612632565b610a01565b005b3480156103d257600080fd5b506103ed60048036038101906103e8919061268b565b610a87565b005b3480156103fb57600080fd5b50610404610b57565b6040516104119190612480565b60405180910390f35b34801561042657600080fd5b5061042f610b6a565b60405161043c9190612551565b60405180910390f35b34801561045157600080fd5b5061045a610b72565b6040516104679190612551565b60405180910390f35b34801561047c57600080fd5b506104976004803603810190610492919061249b565b610b78565b6040516104a49190612480565b60405180910390f35b3480156104b957600080fd5b506104c2610b98565b6040516104cf91906125e0565b60405180910390f35b3480156104e457600080fd5b506104ff60048036038101906104fa919061249b565b610bbe565b60405161050c9190612551565b60405180910390f35b34801561052157600080fd5b5061052a610c07565b005b34801561053857600080fd5b50610541610c8f565b60405161054e91906126c7565b60405180910390f35b34801561056357600080fd5b5061057e60048036038101906105799190612747565b610cb8565b005b34801561058c57600080fd5b50610595610eca565b6040516105a29190612365565b60405180910390f35b3480156105b757600080fd5b506105c0610f5c565b6040516105cd9190612551565b60405180910390f35b3480156105e257600080fd5b506105fd60048036038101906105f89190612425565b610f66565b60405161060a9190612480565b60405180910390f35b34801561061f57600080fd5b5061063a60048036038101906106359190612425565b611033565b6040516106479190612480565b60405180910390f35b34801561065c57600080fd5b50610665611052565b6040516106729190612551565b60405180910390f35b34801561068757600080fd5b50610690611058565b60405161069d91906126c7565b60405180910390f35b3480156106b257600080fd5b506106bb61107e565b6040516106c89190612480565b60405180910390f35b3480156106dd57600080fd5b506106f860048036038101906106f391906127a7565b611091565b6040516107059190612551565b60405180910390f35b34801561071a57600080fd5b506107356004803603810190610730919061249b565b611118565b005b60606001805461074690612816565b80601f016020809104026020016040519081016040528092919081815260200182805461077290612816565b80156107bf5780601f10610794576101008083540402835291602001916107bf565b820191906000526020600020905b8154815290600101906020018083116107a257829003601f168201915b5050505050905090565b60006107dd6107d661120f565b8484611217565b6001905092915050565b60076020528060005260406000206000915054906101000a900460ff1681565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b54905090565b60006108448484846113e0565b506109068461085161120f565b6109018560405180606001604052806036815260200161314360369139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108b761120f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118819092919063ffffffff16565b611217565b600190509392505050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900460ff16905090565b60006109f761095b61120f565b846109f2856006600061096c61120f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118e590919063ffffffff16565b611217565b6001905092915050565b610a0961120f565b73ffffffffffffffffffffffffffffffffffffffff16610a27610c8f565b73ffffffffffffffffffffffffffffffffffffffff1614610a7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a74906128b9565b60405180910390fd5b80600c8190555050565b610a8f61120f565b73ffffffffffffffffffffffffffffffffffffffff16610aad610c8f565b73ffffffffffffffffffffffffffffffffffffffff1614610b03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afa906128b9565b60405180910390fd5b80600e60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051610b4c9190612480565b60405180910390a150565b600e60159054906101000a900460ff1681565b600042905090565b600a5481565b60086020528060005260406000206000915054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c0f61120f565b73ffffffffffffffffffffffffffffffffffffffff16610c2d610c8f565b73ffffffffffffffffffffffffffffffffffffffff1614610c83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7a906128b9565b60405180910390fd5b610c8d6000611943565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610cc061120f565b73ffffffffffffffffffffffffffffffffffffffff16610cde610c8f565b73ffffffffffffffffffffffffffffffffffffffff1614610d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2b906128b9565b60405180910390fd5b60005b83839050811015610ec4578160076000868685818110610d5a57610d596128d9565b5b9050602002016020810190610d6f919061249b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060076000858584818110610dd757610dd66128d9565b5b9050602002016020810190610dec919061249b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660086000868685818110610e4b57610e4a6128d9565b5b9050602002016020810190610e60919061249b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ebc90612937565b915050610d37565b50505050565b606060028054610ed990612816565b80601f0160208091040260200160405190810160405280929190818152602001828054610f0590612816565b8015610f525780601f10610f2757610100808354040283529160200191610f52565b820191906000526020600020905b815481529060010190602001808311610f3557829003601f168201915b5050505050905090565b6000600c54905090565b6000611029610f7361120f565b846110248560405180606001604052806033815260200161319b6033913960066000610f9d61120f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118819092919063ffffffff16565b611217565b6001905092915050565b600061104761104061120f565b84846113e0565b506001905092915050565b60095481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60169054906101000a900460ff1681565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61112061120f565b73ffffffffffffffffffffffffffffffffffffffff1661113e610c8f565b73ffffffffffffffffffffffffffffffffffffffff1614611194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118b906128b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fa906129f1565b60405180910390fd5b61120c81611943565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127d90612a83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ec90612b15565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113d39190612551565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611450576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144790612ba7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b690612c39565b60405180910390fd5b60008211611502576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f990612ccb565b60405180910390fd5b600e60149054906101000a900460ff161561152957611522848484611a07565b905061187a565b600061153430610bbe565b90506000600c54821015905080801561155a5750600e60149054906101000a900460ff16155b80156115af5750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156115c75750600e60159054906101000a900460ff165b156115f157600e60169054906101000a900460ff16156115e757600c5491505b6115f082611bbd565b5b61167a846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118819092919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117605750600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6117745761176f878787611cb5565b611776565b845b90506117ca81600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118e590919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161186a9190612551565b60405180910390a3600193505050505b9392505050565b60008383111582906118c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c09190612365565b60405180910390fd5b50600083856118d89190612ceb565b9050809150509392505050565b60008082846118f49190612d1f565b905083811015611939576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193090612dc1565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000611a758260405180606001604052806022815260200161317960229139600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118819092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b0a82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118e590919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611baa9190612551565b60405180910390a3600190509392505050565b6001600e60146101000a81548160ff021916908315150217905550611be181611ede565b60004790506000611c0f6064611c0160328561212d90919063ffffffff16565b6121a790919063ffffffff16565b90506000611c2682846121f190919063ffffffff16565b90506000811115611c5e57611c5d600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261221e565b5b6000821115611c9457611c93600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361221e565b5b5050506000600e60146101000a81548160ff02191690831515021790555050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d3e57611d37612710611d296009548661212d90919063ffffffff16565b6121a790919063ffffffff16565b9050611dbd565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611dbc57611db9612710611dab600a548661212d90919063ffffffff16565b6121a790919063ffffffff16565b90505b5b6000811115611ec157611e1881600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118e590919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611eb89190612551565b60405180910390a35b611ed481846121f190919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff811115611efb57611efa612de1565b5b604051908082528060200260200182016040528015611f295781602001602082028036833780820191505090505b5090503081600081518110611f4157611f406128d9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fe8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061200c9190612e25565b816001815181106120205761201f6128d9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120be959493929190612f4b565b600060405180830381600087803b1580156120d857600080fd5b505af11580156120ec573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612121929190612fa5565b60405180910390a15050565b600080830361213f57600090506121a1565b6000828461214d9190612fd5565b905082848261215c919061305e565b1461219c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219390613101565b60405180910390fd5b809150505b92915050565b60006121e983836040518060400160405280601d81526020017f536166654d6174683a206469766973696f6e20444a546279207a65726f000000815250612269565b905092915050565b6000612216838360405180606001604052806021815260200161312260219139611881565b905092915050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612264573d6000803e3d6000fd5b505050565b600080831182906122b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a79190612365565b60405180910390fd5b50600083856122bf919061305e565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123065780820151818401526020810190506122eb565b83811115612315576000848401525b50505050565b6000601f19601f8301169050919050565b6000612337826122cc565b61234181856122d7565b93506123518185602086016122e8565b61235a8161231b565b840191505092915050565b6000602082019050818103600083015261237f818461232c565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123bc82612391565b9050919050565b6123cc816123b1565b81146123d757600080fd5b50565b6000813590506123e9816123c3565b92915050565b6000819050919050565b612402816123ef565b811461240d57600080fd5b50565b60008135905061241f816123f9565b92915050565b6000806040838503121561243c5761243b612387565b5b600061244a858286016123da565b925050602061245b85828601612410565b9150509250929050565b60008115159050919050565b61247a81612465565b82525050565b60006020820190506124956000830184612471565b92915050565b6000602082840312156124b1576124b0612387565b5b60006124bf848285016123da565b91505092915050565b6000819050919050565b60006124ed6124e86124e384612391565b6124c8565b612391565b9050919050565b60006124ff826124d2565b9050919050565b6000612511826124f4565b9050919050565b61252181612506565b82525050565b600060208201905061253c6000830184612518565b92915050565b61254b816123ef565b82525050565b60006020820190506125666000830184612542565b92915050565b60008060006060848603121561258557612584612387565b5b6000612593868287016123da565b93505060206125a4868287016123da565b92505060406125b586828701612410565b9150509250925092565b60006125ca82612391565b9050919050565b6125da816125bf565b82525050565b60006020820190506125f560008301846125d1565b92915050565b600060ff82169050919050565b612611816125fb565b82525050565b600060208201905061262c6000830184612608565b92915050565b60006020828403121561264857612647612387565b5b600061265684828501612410565b91505092915050565b61266881612465565b811461267357600080fd5b50565b6000813590506126858161265f565b92915050565b6000602082840312156126a1576126a0612387565b5b60006126af84828501612676565b91505092915050565b6126c1816123b1565b82525050565b60006020820190506126dc60008301846126b8565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612707576127066126e2565b5b8235905067ffffffffffffffff811115612724576127236126e7565b5b6020830191508360208202830111156127405761273f6126ec565b5b9250929050565b6000806000604084860312156127605761275f612387565b5b600084013567ffffffffffffffff81111561277e5761277d61238c565b5b61278a868287016126f1565b9350935050602061279d86828701612676565b9150509250925092565b600080604083850312156127be576127bd612387565b5b60006127cc858286016123da565b92505060206127dd858286016123da565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061282e57607f821691505b602082108103612841576128406127e7565b5b50919050565b7f4f776e61626c653a20444a5463616c6c6572206973206e6f7420746865206f7760008201527f6e65720000000000000000000000000000000000000000000000000000000000602082015250565b60006128a36023836122d7565b91506128ae82612847565b604082019050919050565b600060208201905081810360008301526128d281612896565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612942826123ef565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361297457612973612908565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320444a54746865207a657260008201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b60006129db6029836122d7565b91506129e68261297f565b604082019050919050565b60006020820190508181036000830152612a0a816129ce565b9050919050565b7f45524332303a20617070726f76652066726f6d206461646479746865207a657260008201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b6000612a6d6029836122d7565b9150612a7882612a11565b604082019050919050565b60006020820190508181036000830152612a9c81612a60565b9050919050565b7f45524332303a206461646479617070726f766520746f20746865205472756d7060008201527f436f696e7a65726f206164647265737300000000000000000000000000000000602082015250565b6000612aff6030836122d7565b9150612b0a82612aa3565b604082019050919050565b60006020820190508181036000830152612b2e81612af2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b916025836122d7565b9150612b9c82612b35565b604082019050919050565b60006020820190508181036000830152612bc081612b84565b9050919050565b7f5472756d70436f696e45524332303a2064616464797472616e7366657220746f60008201527f20746865207a65726f2061646472657373000000000000000000000000000000602082015250565b6000612c236031836122d7565b9150612c2e82612bc7565b604082019050919050565b60006020820190508181036000830152612c5281612c16565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612cb56029836122d7565b9150612cc082612c59565b604082019050919050565b60006020820190508181036000830152612ce481612ca8565b9050919050565b6000612cf6826123ef565b9150612d01836123ef565b925082821015612d1457612d13612908565b5b828203905092915050565b6000612d2a826123ef565b9150612d35836123ef565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d6a57612d69612908565b5b828201905092915050565b7f536166654d617468444a543a206164646974696f6e206f766572666c6f770000600082015250565b6000612dab601e836122d7565b9150612db682612d75565b602082019050919050565b60006020820190508181036000830152612dda81612d9e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050612e1f816123c3565b92915050565b600060208284031215612e3b57612e3a612387565b5b6000612e4984828501612e10565b91505092915050565b6000819050919050565b6000612e77612e72612e6d84612e52565b6124c8565b6123ef565b9050919050565b612e8781612e5c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ec2816123b1565b82525050565b6000612ed48383612eb9565b60208301905092915050565b6000602082019050919050565b6000612ef882612e8d565b612f028185612e98565b9350612f0d83612ea9565b8060005b83811015612f3e578151612f258882612ec8565b9750612f3083612ee0565b925050600181019050612f11565b5085935050505092915050565b600060a082019050612f606000830188612542565b612f6d6020830187612e7e565b8181036040830152612f7f8186612eed565b9050612f8e60608301856126b8565b612f9b6080830184612542565b9695505050505050565b6000604082019050612fba6000830185612542565b8181036020830152612fcc8184612eed565b90509392505050565b6000612fe0826123ef565b9150612feb836123ef565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561302457613023612908565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613069826123ef565b9150613074836123ef565b9250826130845761308361302f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006130eb6021836122d7565b91506130f68261308f565b604082019050919050565b6000602082019050818103600083015261311a816130de565b905091905056fe536166654d6174683a207375627472616374696f6e20444a546f766572666c6f7745524332303a205472756d70436f696e7472616e73666572206461646479616d6f756e74206578636565647320616c6c6f77616e6365496e73756666696369656e74205472756d70436f696e646164647942616c616e636545524332303a206465637265617365646461646479205472756d70436f696e616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220713f1aae49a5f35932cc0aa4ec937fbf4be7539efb858b177bea680c7f8ff68a64736f6c634300080d0033

Deployed Bytecode Sourcemap

17813:8960:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20071:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21372:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18224:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18483:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20348:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22867:327;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18016:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20257:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20734:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22187:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22296:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18594:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1097:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18365:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18276:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18059:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20456:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;774:103;;;;;;;;;;;;;:::i;:::-;;548:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21909:270;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20162:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21251:113;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20960:283;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22692:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18330:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18531:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18641:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20583:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;885:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20071:83;20108:13;20141:5;20134:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20071:83;:::o;21372:161::-;21447:4;21464:39;21473:12;:10;:12::i;:::-;21487:7;21496:6;21464:8;:39::i;:::-;21521:4;21514:11;;21372:161;;;;:::o;18224:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;18483:41::-;;;;;;;;;;;;;:::o;20348:100::-;20401:7;20428:12;;20421:19;;20348:100;:::o;22867:327::-;22965:4;22982:36;22992:6;23000:9;23011:6;22982:9;:36::i;:::-;;23029:135;23038:6;23046:12;:10;:12::i;:::-;23060:103;23098:6;23060:103;;;;;;;;;;;;;;;;;:11;:19;23072:6;23060:19;;;;;;;;;;;;;;;:33;23080:12;:10;:12::i;:::-;23060:33;;;;;;;;;;;;;;;;:37;;:103;;;;;:::i;:::-;23029:8;:135::i;:::-;23182:4;23175:11;;22867:327;;;;;:::o;18016:36::-;;;;;;;;;;;;;:::o;20257:83::-;20298:5;20323:9;;;;;;;;;;;20316:16;;20257:83;:::o;20734:218::-;20822:4;20839:83;20848:12;:10;:12::i;:::-;20862:7;20871:50;20910:10;20871:11;:25;20883:12;:10;:12::i;:::-;20871:25;;;;;;;;;;;;;;;:34;20897:7;20871:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;20839:8;:83::i;:::-;20940:4;20933:11;;20734:218;;;;:::o;22187:101::-;694:12;:10;:12::i;:::-;683:23;;:7;:5;:7::i;:::-;:23;;;675:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;22272:8:::1;22253:16;:27;;;;22187:101:::0;:::o;22296:154::-;694:12;:10;:12::i;:::-;683:23;;:7;:5;:7::i;:::-;:23;;;675:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;22380:8:::1;22356:21;;:32;;;;;;;;;;;;;;;;;;22404:38;22433:8;22404:38;;;;;;:::i;:::-;;;;;;;;22296:154:::0;:::o;18594:40::-;;;;;;;;;;;;;:::o;1097:90::-;1137:7;1164:15;1157:22;;1097:90;:::o;18365:29::-;;;;:::o;18276:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;18059:33::-;;;;;;;;;;;;;:::o;20456:119::-;20522:7;20549:9;:18;20559:7;20549:18;;;;;;;;;;;;;;;;20542:25;;20456:119;;;:::o;774:103::-;694:12;:10;:12::i;:::-;683:23;;:7;:5;:7::i;:::-;:23;;;675:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;839:30:::1;866:1;839:18;:30::i;:::-;774:103::o:0;548:87::-;594:7;621:6;;;;;;;;;;;614:13;;548:87;:::o;21909:270::-;694:12;:10;:12::i;:::-;683:23;;:7;:5;:7::i;:::-;:23;;;675:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;22018:9:::1;22014:158;22037:8;;:15;;22033:1;:19;22014:158;;;22102:8;22074:12;:25;22087:8;;22096:1;22087:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;22074:25;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;22135:12;:25;22148:8;;22157:1;22148:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;22135:25;;;;;;;;;;;;;;;;;;;;;;;;;22111:10;:23;22122:8;;22131:1;22122:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;22111:23;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;22054:3;;;;;:::i;:::-;;;;22014:158;;;;21909:270:::0;;;:::o;20162:87::-;20201:13;20234:7;20227:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20162:87;:::o;21251:113::-;21313:7;21340:16;;21333:23;;21251:113;:::o;20960:283::-;21053:4;21070:143;21079:12;:10;:12::i;:::-;21093:7;21102:110;21141:15;21102:110;;;;;;;;;;;;;;;;;:11;:25;21114:12;:10;:12::i;:::-;21102:25;;;;;;;;;;;;;;;:34;21128:7;21102:34;;;;;;;;;;;;;;;;:38;;:110;;;;;:::i;:::-;21070:8;:143::i;:::-;21231:4;21224:11;;20960:283;;;;:::o;22692:167::-;22770:4;22787:42;22797:12;:10;:12::i;:::-;22811:9;22822:6;22787:9;:42::i;:::-;;22847:4;22840:11;;22692:167;;;;:::o;18330:28::-;;;;:::o;18531:26::-;;;;;;;;;;;;;:::o;18641:45::-;;;;;;;;;;;;;:::o;20583:143::-;20664:7;20691:11;:18;20703:5;20691:18;;;;;;;;;;;;;;;:27;20710:7;20691:27;;;;;;;;;;;;;;;;20684:34;;20583:143;;;;:::o;885:204::-;694:12;:10;:12::i;:::-;683:23;;:7;:5;:7::i;:::-;:23;;;675:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;994:1:::1;974:22;;:8;:22;;::::0;966:76:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1053:28;1072:8;1053:18;:28::i;:::-;885:204:::0;:::o;94:98::-;147:7;174:10;167:17;;94:98;:::o;21541:356::-;21651:1;21634:19;;:5;:19;;;21626:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;21737:1;21718:21;;:7;:21;;;21710:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;21835:6;21805:11;:18;21817:5;21805:18;;;;;;;;;;;;;;;:27;21824:7;21805:27;;;;;;;;;;;;;;;:36;;;;21873:7;21857:32;;21866:5;21857:32;;;21882:6;21857:32;;;;;;:::i;:::-;;;;;;;;21541:356;;;:::o;23202:1413::-;23289:4;23334:1;23316:20;;:6;:20;;;23308:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;23418:1;23397:23;;:9;:23;;;23389:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;23502:1;23493:6;:10;23485:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23573:16;;;;;;;;;;;23570:1038;;;23622:42;23638:6;23646:9;23657:6;23622:15;:42::i;:::-;23615:49;;;;23570:1038;23717:28;23748:24;23766:4;23748:9;:24::i;:::-;23717:55;;23787:28;23842:16;;23818:20;:40;;23787:71;;23879:23;:44;;;;;23907:16;;;;;;;;;;;23906:17;23879:44;:66;;;;;23927:10;:18;23938:6;23927:18;;;;;;;;;;;;;;;;;;;;;;;;;23879:66;:91;;;;;23949:21;;;;;;;;;;;23879:91;23875:290;;;24007:25;;;;;;;;;;;24004:90;;;24078:16;;24055:39;;24004:90;24113:36;24128:20;24113:14;:36::i;:::-;23875:290;24201:53;24223:6;24201:53;;;;;;;;;;;;;;;;;:9;:17;24211:6;24201:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;24181:9;:17;24191:6;24181:17;;;;;;;;;;;;;;;:73;;;;24271:19;24294:12;:20;24307:6;24294:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;24318:12;:23;24331:9;24318:23;;;;;;;;;;;;;;;;;;;;;;;;;24294:47;24293:136;;24396:33;24403:6;24411:9;24422:6;24396;:33::i;:::-;24293:136;;;24387:6;24293:136;24271:158;;24471:37;24496:11;24471:9;:20;24481:9;24471:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;24448:9;:20;24458:9;24448:20;;;;;;;;;;;;;;;:60;;;;24547:9;24530:40;;24539:6;24530:40;;;24558:11;24530:40;;;;;;:::i;:::-;;;;;;;;24592:4;24585:11;;;;;23202:1413;;;;;;:::o;1758:192::-;1844:7;1877:1;1872;:6;;1880:12;1864:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1904:9;1920:1;1916;:5;;;;:::i;:::-;1904:17;;1941:1;1934:8;;;1758:192;;;;;:::o;1419:184::-;1477:7;1497:9;1513:1;1509;:5;;;;:::i;:::-;1497:17;;1538:1;1533;:6;;1525:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;1594:1;1587:8;;;1419:184;;;;:::o;1195:191::-;1269:16;1288:6;;;;;;;;;;;1269:25;;1314:8;1305:6;;:17;;;;;;;;;;;;;;;;;;1369:8;1338:40;;1359:8;1338:40;;;;;;;;;;;;1258:128;1195:191;:::o;24623:345::-;24717:4;24754:67;24776:6;24754:67;;;;;;;;;;;;;;;;;:9;:17;24764:6;24754:17;;;;;;;;;;;;;;;;:21;;:67;;;;;:::i;:::-;24734:9;:17;24744:6;24734:17;;;;;;;;;;;;;;;:87;;;;24855:32;24880:6;24855:9;:20;24865:9;24855:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;24832:9;:20;24842:9;24832:20;;;;;;;;;;;;;;;:55;;;;24920:9;24903:35;;24912:6;24903:35;;;24931:6;24903:35;;;;;;:::i;:::-;;;;;;;;24956:4;24949:11;;24623:345;;;;;:::o;24978:605::-;19118:4;19099:16;;:23;;;;;;;;;;;;;;;;;;25082:25:::1;25099:7;25082:16;:25::i;:::-;25118:22;25143:21;25118:46;;25207:22;25232:31;25259:3;25232:22;25251:2;25232:14;:18;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;25207:56;;25300:27;25330:34;25349:14;25330;:18;;:34;;;;:::i;:::-;25300:64;;25402:1;25380:19;:23;25377:97;;;25418:56;25439:13;;;;;;;;;;;25454:19;25418:20;:56::i;:::-;25377:97;25507:1;25490:14;:18;25487:84;;;25523:48;25544:10;;;;;;;;;;;25556:14;25523:20;:48::i;:::-;25487:84;25039:544;;;19164:5:::0;19145:16;;:24;;;;;;;;;;;;;;;;;;24978:605;:::o;26186:577::-;26271:7;26293:17;26313:1;26293:21;;26328:10;:18;26339:6;26328:18;;;;;;;;;;;;;;;;;;;;;;;;;26325:207;;;26375:32;26401:5;26375:21;26386:9;;26375:6;:10;;:21;;;;:::i;:::-;:25;;:32;;;;:::i;:::-;26363:44;;26325:207;;;26437:10;:21;26448:9;26437:21;;;;;;;;;;;;;;;;;;;;;;;;;26434:98;;;26487:33;26514:5;26487:22;26498:10;;26487:6;:10;;:22;;;;:::i;:::-;:26;;:33;;;;:::i;:::-;26475:45;;26434:98;26325:207;26557:1;26545:9;:13;26542:173;;;26602:39;26631:9;26602;:24;26620:4;26602:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;26575:9;:24;26593:4;26575:24;;;;;;;;;;;;;;;:66;;;;26686:4;26661:42;;26670:6;26661:42;;;26693:9;26661:42;;;;;;:::i;:::-;;;;;;;;26542:173;26734:21;26745:9;26734:6;:10;;:21;;;;:::i;:::-;26727:28;;;26186:577;;;;;:::o;25589:585::-;25715:21;25753:1;25739:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25715:40;;25784:4;25766;25771:1;25766:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;25810:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25800:4;25805:1;25800:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;25873:15;;;;;;;;;;;:66;;;25954:11;25980:1;26024:4;26051;26087:15;25873:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26131:35;26148:11;26161:4;26131:35;;;;;;;:::i;:::-;;;;;;;;25644:530;25589:585;:::o;1958:471::-;2016:7;2266:1;2261;:6;2257:47;;2291:1;2284:8;;;;2257:47;2316:9;2332:1;2328;:5;;;;:::i;:::-;2316:17;;2361:1;2356;2352;:5;;;;:::i;:::-;:10;2344:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2420:1;2413:8;;;1958:471;;;;;:::o;2437:135::-;2495:7;2522:42;2526:1;2529;2522:42;;;;;;;;;;;;;;;;;:3;:42::i;:::-;2515:49;;2437:135;;;;:::o;1611:139::-;1669:7;1696:46;1700:1;1703;1696:46;;;;;;;;;;;;;;;;;:3;:46::i;:::-;1689:53;;1611:139;;;;:::o;22460:126::-;22552:9;:18;;:26;22571:6;22552:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22460:126;;:::o;2580:278::-;2666:7;2698:1;2694;:5;2701:12;2686:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2725:9;2741:1;2737;:5;;;;:::i;:::-;2725:17;;2849:1;2842:8;;;2580:278;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:60::-;3857:3;3878:5;3871:12;;3829:60;;;:::o;3895:142::-;3945:9;3978:53;3996:34;4005:24;4023:5;4005:24;:::i;:::-;3996:34;:::i;:::-;3978:53;:::i;:::-;3965:66;;3895:142;;;:::o;4043:126::-;4093:9;4126:37;4157:5;4126:37;:::i;:::-;4113:50;;4043:126;;;:::o;4175:153::-;4252:9;4285:37;4316:5;4285:37;:::i;:::-;4272:50;;4175:153;;;:::o;4334:185::-;4448:64;4506:5;4448:64;:::i;:::-;4443:3;4436:77;4334:185;;:::o;4525:276::-;4645:4;4683:2;4672:9;4668:18;4660:26;;4696:98;4791:1;4780:9;4776:17;4767:6;4696:98;:::i;:::-;4525:276;;;;:::o;4807:118::-;4894:24;4912:5;4894:24;:::i;:::-;4889:3;4882:37;4807:118;;:::o;4931:222::-;5024:4;5062:2;5051:9;5047:18;5039:26;;5075:71;5143:1;5132:9;5128:17;5119:6;5075:71;:::i;:::-;4931:222;;;;:::o;5159:619::-;5236:6;5244;5252;5301:2;5289:9;5280:7;5276:23;5272:32;5269:119;;;5307:79;;:::i;:::-;5269:119;5427:1;5452:53;5497:7;5488:6;5477:9;5473:22;5452:53;:::i;:::-;5442:63;;5398:117;5554:2;5580:53;5625:7;5616:6;5605:9;5601:22;5580:53;:::i;:::-;5570:63;;5525:118;5682:2;5708:53;5753:7;5744:6;5733:9;5729:22;5708:53;:::i;:::-;5698:63;;5653:118;5159:619;;;;;:::o;5784:104::-;5829:7;5858:24;5876:5;5858:24;:::i;:::-;5847:35;;5784:104;;;:::o;5894:142::-;5997:32;6023:5;5997:32;:::i;:::-;5992:3;5985:45;5894:142;;:::o;6042:254::-;6151:4;6189:2;6178:9;6174:18;6166:26;;6202:87;6286:1;6275:9;6271:17;6262:6;6202:87;:::i;:::-;6042:254;;;;:::o;6302:86::-;6337:7;6377:4;6370:5;6366:16;6355:27;;6302:86;;;:::o;6394:112::-;6477:22;6493:5;6477:22;:::i;:::-;6472:3;6465:35;6394:112;;:::o;6512:214::-;6601:4;6639:2;6628:9;6624:18;6616:26;;6652:67;6716:1;6705:9;6701:17;6692:6;6652:67;:::i;:::-;6512:214;;;;:::o;6732:329::-;6791:6;6840:2;6828:9;6819:7;6815:23;6811:32;6808:119;;;6846:79;;:::i;:::-;6808:119;6966:1;6991:53;7036:7;7027:6;7016:9;7012:22;6991:53;:::i;:::-;6981:63;;6937:117;6732:329;;;;:::o;7067:116::-;7137:21;7152:5;7137:21;:::i;:::-;7130:5;7127:32;7117:60;;7173:1;7170;7163:12;7117:60;7067:116;:::o;7189:133::-;7232:5;7270:6;7257:20;7248:29;;7286:30;7310:5;7286:30;:::i;:::-;7189:133;;;;:::o;7328:323::-;7384:6;7433:2;7421:9;7412:7;7408:23;7404:32;7401:119;;;7439:79;;:::i;:::-;7401:119;7559:1;7584:50;7626:7;7617:6;7606:9;7602:22;7584:50;:::i;:::-;7574:60;;7530:114;7328:323;;;;:::o;7657:118::-;7744:24;7762:5;7744:24;:::i;:::-;7739:3;7732:37;7657:118;;:::o;7781:222::-;7874:4;7912:2;7901:9;7897:18;7889:26;;7925:71;7993:1;7982:9;7978:17;7969:6;7925:71;:::i;:::-;7781:222;;;;:::o;8009:117::-;8118:1;8115;8108:12;8132:117;8241:1;8238;8231:12;8255:117;8364:1;8361;8354:12;8395:568;8468:8;8478:6;8528:3;8521:4;8513:6;8509:17;8505:27;8495:122;;8536:79;;:::i;:::-;8495:122;8649:6;8636:20;8626:30;;8679:18;8671:6;8668:30;8665:117;;;8701:79;;:::i;:::-;8665:117;8815:4;8807:6;8803:17;8791:29;;8869:3;8861:4;8853:6;8849:17;8839:8;8835:32;8832:41;8829:128;;;8876:79;;:::i;:::-;8829:128;8395:568;;;;;:::o;8969:698::-;9061:6;9069;9077;9126:2;9114:9;9105:7;9101:23;9097:32;9094:119;;;9132:79;;:::i;:::-;9094:119;9280:1;9269:9;9265:17;9252:31;9310:18;9302:6;9299:30;9296:117;;;9332:79;;:::i;:::-;9296:117;9445:80;9517:7;9508:6;9497:9;9493:22;9445:80;:::i;:::-;9427:98;;;;9223:312;9574:2;9600:50;9642:7;9633:6;9622:9;9618:22;9600:50;:::i;:::-;9590:60;;9545:115;8969:698;;;;;:::o;9673:474::-;9741:6;9749;9798:2;9786:9;9777:7;9773:23;9769:32;9766:119;;;9804:79;;:::i;:::-;9766:119;9924:1;9949:53;9994:7;9985:6;9974:9;9970:22;9949:53;:::i;:::-;9939:63;;9895:117;10051:2;10077:53;10122:7;10113:6;10102:9;10098:22;10077:53;:::i;:::-;10067:63;;10022:118;9673:474;;;;;:::o;10153:180::-;10201:77;10198:1;10191:88;10298:4;10295:1;10288:15;10322:4;10319:1;10312:15;10339:320;10383:6;10420:1;10414:4;10410:12;10400:22;;10467:1;10461:4;10457:12;10488:18;10478:81;;10544:4;10536:6;10532:17;10522:27;;10478:81;10606:2;10598:6;10595:14;10575:18;10572:38;10569:84;;10625:18;;:::i;:::-;10569:84;10390:269;10339:320;;;:::o;10665:222::-;10805:34;10801:1;10793:6;10789:14;10782:58;10874:5;10869:2;10861:6;10857:15;10850:30;10665:222;:::o;10893:366::-;11035:3;11056:67;11120:2;11115:3;11056:67;:::i;:::-;11049:74;;11132:93;11221:3;11132:93;:::i;:::-;11250:2;11245:3;11241:12;11234:19;;10893:366;;;:::o;11265:419::-;11431:4;11469:2;11458:9;11454:18;11446:26;;11518:9;11512:4;11508:20;11504:1;11493:9;11489:17;11482:47;11546:131;11672:4;11546:131;:::i;:::-;11538:139;;11265:419;;;:::o;11690:180::-;11738:77;11735:1;11728:88;11835:4;11832:1;11825:15;11859:4;11856:1;11849:15;11876:180;11924:77;11921:1;11914:88;12021:4;12018:1;12011:15;12045:4;12042:1;12035:15;12062:233;12101:3;12124:24;12142:5;12124:24;:::i;:::-;12115:33;;12170:66;12163:5;12160:77;12157:103;;12240:18;;:::i;:::-;12157:103;12287:1;12280:5;12276:13;12269:20;;12062:233;;;:::o;12301:228::-;12441:34;12437:1;12429:6;12425:14;12418:58;12510:11;12505:2;12497:6;12493:15;12486:36;12301:228;:::o;12535:366::-;12677:3;12698:67;12762:2;12757:3;12698:67;:::i;:::-;12691:74;;12774:93;12863:3;12774:93;:::i;:::-;12892:2;12887:3;12883:12;12876:19;;12535:366;;;:::o;12907:419::-;13073:4;13111:2;13100:9;13096:18;13088:26;;13160:9;13154:4;13150:20;13146:1;13135:9;13131:17;13124:47;13188:131;13314:4;13188:131;:::i;:::-;13180:139;;12907:419;;;:::o;13332:228::-;13472:34;13468:1;13460:6;13456:14;13449:58;13541:11;13536:2;13528:6;13524:15;13517:36;13332:228;:::o;13566:366::-;13708:3;13729:67;13793:2;13788:3;13729:67;:::i;:::-;13722:74;;13805:93;13894:3;13805:93;:::i;:::-;13923:2;13918:3;13914:12;13907:19;;13566:366;;;:::o;13938:419::-;14104:4;14142:2;14131:9;14127:18;14119:26;;14191:9;14185:4;14181:20;14177:1;14166:9;14162:17;14155:47;14219:131;14345:4;14219:131;:::i;:::-;14211:139;;13938:419;;;:::o;14363:235::-;14503:34;14499:1;14491:6;14487:14;14480:58;14572:18;14567:2;14559:6;14555:15;14548:43;14363:235;:::o;14604:366::-;14746:3;14767:67;14831:2;14826:3;14767:67;:::i;:::-;14760:74;;14843:93;14932:3;14843:93;:::i;:::-;14961:2;14956:3;14952:12;14945:19;;14604:366;;;:::o;14976:419::-;15142:4;15180:2;15169:9;15165:18;15157:26;;15229:9;15223:4;15219:20;15215:1;15204:9;15200:17;15193:47;15257:131;15383:4;15257:131;:::i;:::-;15249:139;;14976:419;;;:::o;15401:224::-;15541:34;15537:1;15529:6;15525:14;15518:58;15610:7;15605:2;15597:6;15593:15;15586:32;15401:224;:::o;15631:366::-;15773:3;15794:67;15858:2;15853:3;15794:67;:::i;:::-;15787:74;;15870:93;15959:3;15870:93;:::i;:::-;15988:2;15983:3;15979:12;15972:19;;15631:366;;;:::o;16003:419::-;16169:4;16207:2;16196:9;16192:18;16184:26;;16256:9;16250:4;16246:20;16242:1;16231:9;16227:17;16220:47;16284:131;16410:4;16284:131;:::i;:::-;16276:139;;16003:419;;;:::o;16428:236::-;16568:34;16564:1;16556:6;16552:14;16545:58;16637:19;16632:2;16624:6;16620:15;16613:44;16428:236;:::o;16670:366::-;16812:3;16833:67;16897:2;16892:3;16833:67;:::i;:::-;16826:74;;16909:93;16998:3;16909:93;:::i;:::-;17027:2;17022:3;17018:12;17011:19;;16670:366;;;:::o;17042:419::-;17208:4;17246:2;17235:9;17231:18;17223:26;;17295:9;17289:4;17285:20;17281:1;17270:9;17266:17;17259:47;17323:131;17449:4;17323:131;:::i;:::-;17315:139;;17042:419;;;:::o;17467:228::-;17607:34;17603:1;17595:6;17591:14;17584:58;17676:11;17671:2;17663:6;17659:15;17652:36;17467:228;:::o;17701:366::-;17843:3;17864:67;17928:2;17923:3;17864:67;:::i;:::-;17857:74;;17940:93;18029:3;17940:93;:::i;:::-;18058:2;18053:3;18049:12;18042:19;;17701:366;;;:::o;18073:419::-;18239:4;18277:2;18266:9;18262:18;18254:26;;18326:9;18320:4;18316:20;18312:1;18301:9;18297:17;18290:47;18354:131;18480:4;18354:131;:::i;:::-;18346:139;;18073:419;;;:::o;18498:191::-;18538:4;18558:20;18576:1;18558:20;:::i;:::-;18553:25;;18592:20;18610:1;18592:20;:::i;:::-;18587:25;;18631:1;18628;18625:8;18622:34;;;18636:18;;:::i;:::-;18622:34;18681:1;18678;18674:9;18666:17;;18498:191;;;;:::o;18695:305::-;18735:3;18754:20;18772:1;18754:20;:::i;:::-;18749:25;;18788:20;18806:1;18788:20;:::i;:::-;18783:25;;18942:1;18874:66;18870:74;18867:1;18864:81;18861:107;;;18948:18;;:::i;:::-;18861:107;18992:1;18989;18985:9;18978:16;;18695:305;;;;:::o;19006:180::-;19146:32;19142:1;19134:6;19130:14;19123:56;19006:180;:::o;19192:366::-;19334:3;19355:67;19419:2;19414:3;19355:67;:::i;:::-;19348:74;;19431:93;19520:3;19431:93;:::i;:::-;19549:2;19544:3;19540:12;19533:19;;19192:366;;;:::o;19564:419::-;19730:4;19768:2;19757:9;19753:18;19745:26;;19817:9;19811:4;19807:20;19803:1;19792:9;19788:17;19781:47;19845:131;19971:4;19845:131;:::i;:::-;19837:139;;19564:419;;;:::o;19989:180::-;20037:77;20034:1;20027:88;20134:4;20131:1;20124:15;20158:4;20155:1;20148:15;20175:143;20232:5;20263:6;20257:13;20248:22;;20279:33;20306:5;20279:33;:::i;:::-;20175:143;;;;:::o;20324:351::-;20394:6;20443:2;20431:9;20422:7;20418:23;20414:32;20411:119;;;20449:79;;:::i;:::-;20411:119;20569:1;20594:64;20650:7;20641:6;20630:9;20626:22;20594:64;:::i;:::-;20584:74;;20540:128;20324:351;;;;:::o;20681:85::-;20726:7;20755:5;20744:16;;20681:85;;;:::o;20772:158::-;20830:9;20863:61;20881:42;20890:32;20916:5;20890:32;:::i;:::-;20881:42;:::i;:::-;20863:61;:::i;:::-;20850:74;;20772:158;;;:::o;20936:147::-;21031:45;21070:5;21031:45;:::i;:::-;21026:3;21019:58;20936:147;;:::o;21089:114::-;21156:6;21190:5;21184:12;21174:22;;21089:114;;;:::o;21209:184::-;21308:11;21342:6;21337:3;21330:19;21382:4;21377:3;21373:14;21358:29;;21209:184;;;;:::o;21399:132::-;21466:4;21489:3;21481:11;;21519:4;21514:3;21510:14;21502:22;;21399:132;;;:::o;21537:108::-;21614:24;21632:5;21614:24;:::i;:::-;21609:3;21602:37;21537:108;;:::o;21651:179::-;21720:10;21741:46;21783:3;21775:6;21741:46;:::i;:::-;21819:4;21814:3;21810:14;21796:28;;21651:179;;;;:::o;21836:113::-;21906:4;21938;21933:3;21929:14;21921:22;;21836:113;;;:::o;21985:732::-;22104:3;22133:54;22181:5;22133:54;:::i;:::-;22203:86;22282:6;22277:3;22203:86;:::i;:::-;22196:93;;22313:56;22363:5;22313:56;:::i;:::-;22392:7;22423:1;22408:284;22433:6;22430:1;22427:13;22408:284;;;22509:6;22503:13;22536:63;22595:3;22580:13;22536:63;:::i;:::-;22529:70;;22622:60;22675:6;22622:60;:::i;:::-;22612:70;;22468:224;22455:1;22452;22448:9;22443:14;;22408:284;;;22412:14;22708:3;22701:10;;22109:608;;;21985:732;;;;:::o;22723:831::-;22986:4;23024:3;23013:9;23009:19;23001:27;;23038:71;23106:1;23095:9;23091:17;23082:6;23038:71;:::i;:::-;23119:80;23195:2;23184:9;23180:18;23171:6;23119:80;:::i;:::-;23246:9;23240:4;23236:20;23231:2;23220:9;23216:18;23209:48;23274:108;23377:4;23368:6;23274:108;:::i;:::-;23266:116;;23392:72;23460:2;23449:9;23445:18;23436:6;23392:72;:::i;:::-;23474:73;23542:3;23531:9;23527:19;23518:6;23474:73;:::i;:::-;22723:831;;;;;;;;:::o;23560:483::-;23731:4;23769:2;23758:9;23754:18;23746:26;;23782:71;23850:1;23839:9;23835:17;23826:6;23782:71;:::i;:::-;23900:9;23894:4;23890:20;23885:2;23874:9;23870:18;23863:48;23928:108;24031:4;24022:6;23928:108;:::i;:::-;23920:116;;23560:483;;;;;:::o;24049:348::-;24089:7;24112:20;24130:1;24112:20;:::i;:::-;24107:25;;24146:20;24164:1;24146:20;:::i;:::-;24141:25;;24334:1;24266:66;24262:74;24259:1;24256:81;24251:1;24244:9;24237:17;24233:105;24230:131;;;24341:18;;:::i;:::-;24230:131;24389:1;24386;24382:9;24371:20;;24049:348;;;;:::o;24403:180::-;24451:77;24448:1;24441:88;24548:4;24545:1;24538:15;24572:4;24569:1;24562:15;24589:185;24629:1;24646:20;24664:1;24646:20;:::i;:::-;24641:25;;24680:20;24698:1;24680:20;:::i;:::-;24675:25;;24719:1;24709:35;;24724:18;;:::i;:::-;24709:35;24766:1;24763;24759:9;24754:14;;24589:185;;;;:::o;24780:220::-;24920:34;24916:1;24908:6;24904:14;24897:58;24989:3;24984:2;24976:6;24972:15;24965:28;24780:220;:::o;25006:366::-;25148:3;25169:67;25233:2;25228:3;25169:67;:::i;:::-;25162:74;;25245:93;25334:3;25245:93;:::i;:::-;25363:2;25358:3;25354:12;25347:19;;25006:366;;;:::o;25378:419::-;25544:4;25582:2;25571:9;25567:18;25559:26;;25631:9;25625:4;25621:20;25617:1;25606:9;25602:17;25595:47;25659:131;25785:4;25659:131;:::i;:::-;25651:139;;25378:419;;;:::o

Swarm Source

ipfs://713f1aae49a5f35932cc0aa4ec937fbf4be7539efb858b177bea680c7f8ff68a
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.