ETH Price: $3,719.09 (+1.24%)

Token

ERC-20: Platonic Quintessence (PLAQ)
 

Overview

Max Total Supply

9,283,517 PLAQ

Holders

434

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,274.915982554700151063 PLAQ

Value
$0.00
0x3aba665047210a95bedd8ec3d4f4da4a22a9861e
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
platonicquintessence

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-14
*/

// SPDX-License-Identifier: MIT


pragma solidity ^0.8.9;


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);
}






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

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

contract ERC20 is Context, IERC20, IERC20Metadata {
    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);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

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

   
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

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

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(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 += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(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);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(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 the zero address");

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

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

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


abstract contract Ownable is Context {
    address private _owner;

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

    
    constructor() {
    }

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

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

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

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

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


abstract contract Pausable is Context {
   
    event Paused(address account);

    event Unpaused(address account);

    bool private _paused;

    
    constructor() {
        _paused = false;
    }

    
    function paused() public view virtual returns (bool) {
        return _paused;
    }

   
    modifier whenNotPaused() {
        require(!paused(), "Pausable: paused");
        _;
    }

    
    modifier whenPaused() {
        require(paused(), "Pausable: not paused");
        _;
    }

    
    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

   
    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

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

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

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

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);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract platonicquintessence is ERC20, Ownable, Pausable {

    
    
    uint256 private initialSupply;
   
    uint256 private denominator = 100;

    uint256 private swapThreshold = 0.000005 ether; 
    
    uint256 private devTaxBuy;
    uint256 private liquidityTaxBuy;
   
    
    uint256 private devTaxSell;
    uint256 private liquidityTaxSell;
    uint256 public maxWallet;
    
    address private devTaxWallet;
    address private liquidityTaxWallet;
    
    
    
    mapping (address => bool) private blacklist;
    mapping (address => bool) private excludeList;


struct ElementalAttributes {
    uint256 tokenId;
    uint256 fire;
    uint256 earth;
    uint256 air;
    uint256 water;
    uint256 etherx;
}
mapping (uint256 => ElementalAttributes) private _tokenAttributes;

mapping (uint256 => uint256) private _lastAttributeAdjustment;


    uint256 private constant ADJUSTMENT_INTERVAL = 1 days;

function _initializeAttributes(uint256 tokenId) private {
    uint256 totalPower = 1000;
    uint256 fire = _randomAttribute();
    uint256 earth = _randomAttribute();
    uint256 air = _randomAttribute();
    uint256 water = _randomAttribute();
    uint256 etherx = totalPower - (fire + earth + air + water);

    _tokenAttributes[tokenId] = ElementalAttributes(tokenId, fire, earth, air, water, etherx);
}

function stakeInElementalPool(uint256 tokenId, uint256 poolType) external {

}

function adjustAttributes(uint256 tokenId) external {
      
        uint256 lastAdjustment = _lastAttributeAdjustment[tokenId];

       
        if (block.timestamp >= lastAdjustment + ADJUSTMENT_INTERVAL) {
       
            _lastAttributeAdjustment[tokenId] = block.timestamp;
        }
    }


   
   function _randomAttribute() private view returns (uint256) {
    return uint256(keccak256(abi.encodePacked(block.timestamp, block.difficulty))) % 251;
}
    
    mapping (string => uint256) private buyTaxes;
    mapping (string => uint256) private sellTaxes;
    mapping (string => address) private taxWallets;
    
    bool public taxStatus = true;
    
    IUniswapV2Router02 private uniswapV2Router02;
    IUniswapV2Factory private uniswapV2Factory;
    IUniswapV2Pair private uniswapV2Pair;
    
    constructor(string memory _tokenName,string memory _tokenSymbol,uint256 _supply) ERC20(_tokenName, _tokenSymbol) payable
    {
        initialSupply =_supply * (10**18);
        maxWallet = initialSupply * 2 / 100; 
        _setOwner(msg.sender);
        uniswapV2Router02 = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Factory = IUniswapV2Factory(uniswapV2Router02.factory());
        uniswapV2Pair = IUniswapV2Pair(uniswapV2Factory.createPair(address(this), uniswapV2Router02.WETH()));
        taxWallets["liquidity"] = address(0);
        setBuyTax(0,2); 
        setSellTax(0,99); 
        setTaxWallets(0x1897a19E488D293c4B77EAC01A89C5D0FE4C5E63); 
        exclude(msg.sender);
        exclude(address(this));
        exclude(devTaxWallet);
        _mint(msg.sender, initialSupply);
  

_initializeAttributes(0);
    }
    
    
    uint256 private devTokens;
    uint256 private liquidityTokens;
    
    
    
    function handleTax(address from, address to, uint256 amount) private returns (uint256) {
        address[] memory sellPath = new address[](2);
        sellPath[0] = address(this);
        sellPath[1] = uniswapV2Router02.WETH();
        
        if(!isExcluded(from) && !isExcluded(to)) {
            uint256 tax;
            uint256 baseUnit = amount / denominator;
            if(from == address(uniswapV2Pair)) {
                tax += baseUnit * buyTaxes["dev"];
                tax += baseUnit * buyTaxes["liquidity"];
               
                
                if(tax > 0) {
                    _transfer(from, address(this), tax);   
                }
                
                
                devTokens += baseUnit * buyTaxes["dev"];
                liquidityTokens += baseUnit * buyTaxes["liquidity"];

            } else if(to == address(uniswapV2Pair)) {
                
                tax += baseUnit * sellTaxes["dev"];
                tax += baseUnit * sellTaxes["liquidity"];
                
                
                if(tax > 0) {
                    _transfer(from, address(this), tax);   
                }
                
               
                devTokens += baseUnit * sellTaxes["dev"];
                liquidityTokens += baseUnit * sellTaxes["liquidity"];
                
                
                uint256 taxSum =  devTokens + liquidityTokens;
                
                if(taxSum == 0) return amount;
                
                uint256 ethValue = uniswapV2Router02.getAmountsOut( devTokens + liquidityTokens, sellPath)[1];
                
                if(ethValue >= swapThreshold) {
                    uint256 startBalance = address(this).balance;

                    uint256 toSell = devTokens + liquidityTokens / 2 ;
                    
                    _approve(address(this), address(uniswapV2Router02), toSell);
            
                    uniswapV2Router02.swapExactTokensForETH(
                        toSell,
                        0,
                        sellPath,
                        address(this),
                        block.timestamp
                    );
                    
                    uint256 ethGained = address(this).balance - startBalance;
                    
                    uint256 liquidityToken = liquidityTokens / 2;
                    uint256 liquidityETH = (ethGained * ((liquidityTokens / 2 * 10**18) / taxSum)) / 10**18;
                    
                    
                    uint256 devETH = (ethGained * ((devTokens * 10**18) / taxSum)) / 10**18;
                   
                    
                    _approve(address(this), address(uniswapV2Router02), liquidityToken);
                    
                    uniswapV2Router02.addLiquidityETH{value: liquidityETH}(
                        address(this),
                        liquidityToken,
                        0,
                        0,
                        taxWallets["liquidity"],
                        block.timestamp
                    );
                    
                    uint256 remainingTokens = (devTokens + liquidityTokens) - (toSell + liquidityToken);
                    
                    if(remainingTokens > 0) {
                        _transfer(address(this), taxWallets["dev"], remainingTokens);
                    }
                    
                    
                   (bool success,) = taxWallets["dev"].call{value: devETH}("");
                   require(success, "transfer to  dev wallet failed");
                    
                    
                    if(ethGained - ( devETH + liquidityETH) > 0) {
                       (bool success1,) = taxWallets["dev"].call{value: ethGained - (devETH + liquidityETH)}("");
                        require(success1, "transfer to  dev wallet failed");
                    }

                    
                    
                    
                    devTokens = 0;
                    liquidityTokens = 0;
                    
                }
                
            }
            
            amount -= tax;
            if (to != address(uniswapV2Pair)){
                require(balanceOf(to) + amount <= maxWallet, "maxWallet limit exceeded");
            }
           
        }
        
        return amount;
    }
    
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override virtual {
        require(!paused(), "ERC20: token transfer while paused");
        require(!isBlacklisted(msg.sender), "ERC20: sender blacklisted");
        require(!isBlacklisted(recipient), "ERC20: recipient blacklisted");
        require(!isBlacklisted(tx.origin), "ERC20: sender blacklisted");
        
        if(taxStatus) {
            amount = handleTax(sender, recipient, amount);   
        }

        super._transfer(sender, recipient, amount);
    }
    
    /**
     * @dev Triggers the tax handling functionality
     */
    function triggerTax() public onlyOwner {
        handleTax(address(0), address(uniswapV2Pair), 0);
    }
    
    /**
     * @dev Pauses transfers on the token.
     */
    function pause() public onlyOwner {
        require(!paused(), "ERC20: Contract is already paused");
        _pause();
    }

    /**
     * @dev Unpauses transfers on the token.
     */
    function unpause() public onlyOwner {
        require(paused(), "ERC20: Contract is not paused");
        _unpause();
    }

     /**
     * @dev set max wallet limit per address.
     */

    function setMaxWallet (uint256 amount) external onlyOwner {
        require (amount > 10000, "NO rug pull");
        maxWallet = amount * 10**18;
    }
    
    /**
     * @dev Burns tokens from caller address.
     */
    function burn(uint256 amount) public onlyOwner {
        _burn(msg.sender, amount);
    }
    
    /**
     * @dev Blacklists the specified account (Disables transfers to and from the account).
     */
    function enableBlacklist(address account) public onlyOwner {
        require(!blacklist[account], "ERC20: Account is already blacklisted");
        blacklist[account] = true;
    }
    
    /**
     * @dev Remove the specified account from the blacklist.
     */
    function disableBlacklist(address account) public onlyOwner {
        require(blacklist[account], "ERC20: Account is not blacklisted");
        blacklist[account] = false;
    }
    
    /**
     * @dev Excludes the specified account from tax.
     */
    function exclude(address account) public onlyOwner {
        require(!isExcluded(account), "ERC20: Account is already excluded");
        excludeList[account] = true;
    }
    
    /**
     * @dev Re-enables tax on the specified account.
     */
    function removeExclude(address account) public onlyOwner {
        require(isExcluded(account), "ERC20: Account is not excluded");
        excludeList[account] = false;
    }
    
    /**
     * @dev Sets tax for buys.
     */
    function setBuyTax(uint256 dev,uint256 liquidity) public onlyOwner {
        buyTaxes["dev"] = dev;
        buyTaxes["liquidity"] = liquidity;
       
    }
    
    /**
     * @dev Sets tax for sells.
     */
    function setSellTax(uint256 dev, uint256 liquidity) public onlyOwner {

        sellTaxes["dev"] = dev;
        sellTaxes["liquidity"] = liquidity;
        
    }
    
    /**
     * @dev Sets wallets for taxes.
     */
    function setTaxWallets(address dev) public onlyOwner {
        taxWallets["dev"] = dev;
        
    }

    function claimStuckTokens(address _token) external onlyOwner {
 
        if (_token == address(0x0)) {
            payable(owner()).transfer(address(this).balance);
            return;
        }
        IERC20 erc20token = IERC20(_token);
        uint256 balance = erc20token.balanceOf(address(this));
        erc20token.transfer(owner(), balance);
    }
    
    /**
     * @dev Enables tax globally.
     */
    function enableTax() public onlyOwner {
        require(!taxStatus, "ERC20: Tax is already enabled");
        taxStatus = true;
    }
    
    /**
     * @dev Disables tax globally.
     */
    function disableTax() public onlyOwner {
        require(taxStatus, "ERC20: Tax is already disabled");
        taxStatus = false;
    }
    
    /**
     * @dev Returns true if the account is blacklisted, and false otherwise.
     */
    function isBlacklisted(address account) public view returns (bool) {
        return blacklist[account];
    }
    
    /**
     * @dev Returns true if the account is excluded, and false otherwise.
     */
    function isExcluded(address account) public view returns (bool) {
        return excludeList[account];
    }
    
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_tokenName","type":"string"},{"internalType":"string","name":"_tokenSymbol","type":"string"},{"internalType":"uint256","name":"_supply","type":"uint256"}],"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":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"adjustAttributes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","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":"account","type":"address"}],"name":"disableBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"enableBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"exclude","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"account","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeExclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"setBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"setSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"dev","type":"address"}],"name":"setTaxWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"poolType","type":"uint256"}],"name":"stakeInElementalPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"triggerTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052606460075565048c273950006008556001601760006101000a81548160ff021916908315150217905550604051620063ce380380620063ce833981810160405281019062000053919062000f89565b828281600390805190602001906200006d92919062000d01565b5080600490805190602001906200008692919062000d01565b5050506000600560146101000a81548160ff021916908315150217905550670de0b6b3a764000081620000ba919062001052565b60068190555060646002600654620000d3919062001052565b620000df9190620010e2565b600d81905550620000f633620004f660201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d601760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620001b457600080fd5b505afa158015620001c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ef91906200117f565b601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002d757600080fd5b505afa158015620002ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031291906200117f565b6040518363ffffffff1660e01b815260040162000331929190620011c2565b602060405180830381600087803b1580156200034c57600080fd5b505af115801562000361573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038791906200117f565b601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006016604051620003d9906200124a565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200043960006002620005bc60201b60201c565b6200044d600060636200069560201b60201c565b62000472731897a19e488d293c4b77eac01a89c5d0fe4c5e636200076e60201b60201c565b62000483336200085d60201b60201c565b62000494306200085d60201b60201c565b620004c7600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200085d60201b60201c565b620004db336006546200099b60201b60201c565b620004ed600062000b1460201b60201c565b5050506200160d565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620005cc62000c2c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620005f262000c3460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200064b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200064290620012c2565b60405180910390fd5b8160146040516200065c9062001334565b9081526020016040518091039020819055508060146040516200067f906200124a565b9081526020016040518091039020819055505050565b620006a562000c2c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620006cb62000c3460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000724576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200071b90620012c2565b60405180910390fd5b816015604051620007359062001334565b90815260200160405180910390208190555080601560405162000758906200124a565b9081526020016040518091039020819055505050565b6200077e62000c2c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007a462000c3460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620007fd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007f490620012c2565b60405180910390fd5b8060166040516200080e9062001334565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6200086d62000c2c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200089362000c3460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620008ec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008e390620012c2565b60405180910390fd5b620008fd8162000c5e60201b60201c565b1562000940576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200093790620013c1565b60405180910390fd5b6001601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000a0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a059062001433565b60405180910390fd5b62000a226000838362000cb460201b60201c565b806002600082825462000a36919062001455565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000a8d919062001455565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000af49190620014c3565b60405180910390a362000b106000838362000cb960201b60201c565b5050565b60006103e89050600062000b2d62000cbe60201b60201c565b9050600062000b4162000cbe60201b60201c565b9050600062000b5562000cbe60201b60201c565b9050600062000b6962000cbe60201b60201c565b905060008183858762000b7d919062001455565b62000b89919062001455565b62000b95919062001455565b8662000ba29190620014e0565b90506040518060c001604052808881526020018681526020018581526020018481526020018381526020018281525060126000898152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015590505050505050505050565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b505050565b505050565b600060fb424460405160200162000cd792919062001540565b6040516020818303038152906040528051906020012060001c62000cfc919062001570565b905090565b82805462000d0f90620015d7565b90600052602060002090601f01602090048101928262000d33576000855562000d7f565b82601f1062000d4e57805160ff191683800117855562000d7f565b8280016001018555821562000d7f579182015b8281111562000d7e57825182559160200191906001019062000d61565b5b50905062000d8e919062000d92565b5090565b5b8082111562000dad57600081600090555060010162000d93565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000e1a8262000dcf565b810181811067ffffffffffffffff8211171562000e3c5762000e3b62000de0565b5b80604052505050565b600062000e5162000db1565b905062000e5f828262000e0f565b919050565b600067ffffffffffffffff82111562000e825762000e8162000de0565b5b62000e8d8262000dcf565b9050602081019050919050565b60005b8381101562000eba57808201518184015260208101905062000e9d565b8381111562000eca576000848401525b50505050565b600062000ee762000ee18462000e64565b62000e45565b90508281526020810184848401111562000f065762000f0562000dca565b5b62000f1384828562000e9a565b509392505050565b600082601f83011262000f335762000f3262000dc5565b5b815162000f4584826020860162000ed0565b91505092915050565b6000819050919050565b62000f638162000f4e565b811462000f6f57600080fd5b50565b60008151905062000f838162000f58565b92915050565b60008060006060848603121562000fa55762000fa462000dbb565b5b600084015167ffffffffffffffff81111562000fc65762000fc562000dc0565b5b62000fd48682870162000f1b565b935050602084015167ffffffffffffffff81111562000ff85762000ff762000dc0565b5b620010068682870162000f1b565b9250506040620010198682870162000f72565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200105f8262000f4e565b91506200106c8362000f4e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620010a857620010a762001023565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620010ef8262000f4e565b9150620010fc8362000f4e565b9250826200110f576200110e620010b3565b5b828204905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062001147826200111a565b9050919050565b62001159816200113a565b81146200116557600080fd5b50565b60008151905062001179816200114e565b92915050565b60006020828403121562001198576200119762000dbb565b5b6000620011a88482850162001168565b91505092915050565b620011bc816200113a565b82525050565b6000604082019050620011d96000830185620011b1565b620011e86020830184620011b1565b9392505050565b600081905092915050565b7f6c69717569646974790000000000000000000000000000000000000000000000600082015250565b600062001232600983620011ef565b91506200123f82620011fa565b600982019050919050565b6000620012578262001223565b9150819050919050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620012aa60208362001261565b9150620012b78262001272565b602082019050919050565b60006020820190508181036000830152620012dd816200129b565b9050919050565b7f6465760000000000000000000000000000000000000000000000000000000000600082015250565b60006200131c600383620011ef565b91506200132982620012e4565b600382019050919050565b600062001341826200130d565b9150819050919050565b7f45524332303a204163636f756e7420697320616c7265616479206578636c756460008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b6000620013a960228362001261565b9150620013b6826200134b565b604082019050919050565b60006020820190508181036000830152620013dc816200139a565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006200141b601f8362001261565b91506200142882620013e3565b602082019050919050565b600060208201905081810360008301526200144e816200140c565b9050919050565b6000620014628262000f4e565b91506200146f8362000f4e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620014a757620014a662001023565b5b828201905092915050565b620014bd8162000f4e565b82525050565b6000602082019050620014da6000830184620014b2565b92915050565b6000620014ed8262000f4e565b9150620014fa8362000f4e565b92508282101562001510576200150f62001023565b5b828203905092915050565b6000819050919050565b6200153a620015348262000f4e565b6200151b565b82525050565b60006200154e828562001525565b60208201915062001560828462001525565b6020820191508190509392505050565b60006200157d8262000f4e565b91506200158a8362000f4e565b9250826200159d576200159c620010b3565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620015f057607f821691505b60208210811415620016075762001606620015a8565b5b50919050565b614db1806200161d6000396000f3fe6080604052600436106102135760003560e01c8063717a865111610118578063cba0e996116100a0578063dd62ed3e1161006f578063dd62ed3e14610744578063f2fde38b14610781578063f8b45b05146107aa578063f9d0831a146107d5578063fe575a87146107fe5761021a565b8063cba0e9961461069e578063ced695a4146106db578063cfefd79e146106f2578063d01dc84b1461071b5761021a565b806395d89b41116100e757806395d89b41146105a7578063a457c2d7146105d2578063a9059cbb1461060f578063abe4f11d1461064c578063b8355672146106755761021a565b8063717a8651146105135780638456cb591461053c5780638cdfe7fe146105535780638da5cb5b1461057c5761021a565b8063395093511161019b57806353eb3bcf1161016a57806353eb3bcf146104545780635c975abb1461046b5780635d0044ca1461049657806370a08231146104bf578063715018a6146104fc5761021a565b806339509351146103ae5780633f4ba83a146103eb57806342966c68146104025780634febf53d1461042b5761021a565b806323a38a38116101e257806323a38a38146102db57806323b872dd14610306578063247b912d146103435780632c32abc21461036c578063313ce567146103835761021a565b806305a1f36d1461021f57806306fdde0314610248578063095ea7b31461027357806318160ddd146102b05761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b50610246600480360381019061024191906134a8565b61083b565b005b34801561025457600080fd5b5061025d6108fd565b60405161026a9190613581565b60405180910390f35b34801561027f57600080fd5b5061029a60048036038101906102959190613601565b61098f565b6040516102a7919061365c565b60405180910390f35b3480156102bc57600080fd5b506102c56109ad565b6040516102d29190613686565b60405180910390f35b3480156102e757600080fd5b506102f06109b7565b6040516102fd919061365c565b60405180910390f35b34801561031257600080fd5b5061032d600480360381019061032891906136a1565b6109ca565b60405161033a919061365c565b60405180910390f35b34801561034f57600080fd5b5061036a600480360381019061036591906134a8565b610ac2565b005b34801561037857600080fd5b50610381610b84565b005b34801561038f57600080fd5b50610398610c32565b6040516103a59190613710565b60405180910390f35b3480156103ba57600080fd5b506103d560048036038101906103d09190613601565b610c3b565b6040516103e2919061365c565b60405180910390f35b3480156103f757600080fd5b50610400610ce7565b005b34801561040e57600080fd5b506104296004803603810190610424919061372b565b610db4565b005b34801561043757600080fd5b50610452600480360381019061044d9190613758565b610e3d565b005b34801561046057600080fd5b50610469610f5d565b005b34801561047757600080fd5b50610480611046565b60405161048d919061365c565b60405180910390f35b3480156104a257600080fd5b506104bd60048036038101906104b8919061372b565b61105d565b005b3480156104cb57600080fd5b506104e660048036038101906104e19190613758565b61113a565b6040516104f39190613686565b60405180910390f35b34801561050857600080fd5b50610511611182565b005b34801561051f57600080fd5b5061053a60048036038101906105359190613758565b61120a565b005b34801561054857600080fd5b5061055161136e565b005b34801561055f57600080fd5b5061057a6004803603810190610575919061372b565b61143c565b005b34801561058857600080fd5b50610591611486565b60405161059e9190613794565b60405180910390f35b3480156105b357600080fd5b506105bc6114b0565b6040516105c99190613581565b60405180910390f35b3480156105de57600080fd5b506105f960048036038101906105f49190613601565b611542565b604051610606919061365c565b60405180910390f35b34801561061b57600080fd5b5061063660048036038101906106319190613601565b61162d565b604051610643919061365c565b60405180910390f35b34801561065857600080fd5b50610673600480360381019061066e9190613758565b61164b565b005b34801561068157600080fd5b5061069c600480360381019061069791906134a8565b61176a565b005b3480156106aa57600080fd5b506106c560048036038101906106c09190613758565b61176e565b6040516106d2919061365c565b60405180910390f35b3480156106e757600080fd5b506106f06117c4565b005b3480156106fe57600080fd5b5061071960048036038101906107149190613758565b6118ac565b005b34801561072757600080fd5b50610742600480360381019061073d9190613758565b611a0f565b005b34801561075057600080fd5b5061076b600480360381019061076691906137af565b611ae9565b6040516107789190613686565b60405180910390f35b34801561078d57600080fd5b506107a860048036038101906107a39190613758565b611b70565b005b3480156107b657600080fd5b506107bf611c68565b6040516107cc9190613686565b60405180910390f35b3480156107e157600080fd5b506107fc60048036038101906107f79190613758565b611c6e565b005b34801561080a57600080fd5b5061082560048036038101906108209190613758565b611e9f565b604051610832919061365c565b60405180910390f35b610843611ef5565b73ffffffffffffffffffffffffffffffffffffffff16610861611486565b73ffffffffffffffffffffffffffffffffffffffff16146108b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ae9061383b565b60405180910390fd5b8160146040516108c6906138b2565b9081526020016040518091039020819055508060146040516108e790613913565b9081526020016040518091039020819055505050565b60606003805461090c90613957565b80601f016020809104026020016040519081016040528092919081815260200182805461093890613957565b80156109855780601f1061095a57610100808354040283529160200191610985565b820191906000526020600020905b81548152906001019060200180831161096857829003601f168201915b5050505050905090565b60006109a361099c611ef5565b8484611efd565b6001905092915050565b6000600254905090565b601760009054906101000a900460ff1681565b60006109d78484846120c8565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a22611ef5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a99906139fb565b60405180910390fd5b610ab685610aae611ef5565b858403611efd565b60019150509392505050565b610aca611ef5565b73ffffffffffffffffffffffffffffffffffffffff16610ae8611486565b73ffffffffffffffffffffffffffffffffffffffff1614610b3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b359061383b565b60405180910390fd5b816015604051610b4d906138b2565b908152602001604051809103902081905550806015604051610b6e90613913565b9081526020016040518091039020819055505050565b610b8c611ef5565b73ffffffffffffffffffffffffffffffffffffffff16610baa611486565b73ffffffffffffffffffffffffffffffffffffffff1614610c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf79061383b565b60405180910390fd5b610c2f6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600061221e565b50565b60006012905090565b6000610cdd610c48611ef5565b848460016000610c56611ef5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cd89190613a4a565b611efd565b6001905092915050565b610cef611ef5565b73ffffffffffffffffffffffffffffffffffffffff16610d0d611486565b73ffffffffffffffffffffffffffffffffffffffff1614610d63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5a9061383b565b60405180910390fd5b610d6b611046565b610daa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da190613aec565b60405180910390fd5b610db2612df1565b565b610dbc611ef5565b73ffffffffffffffffffffffffffffffffffffffff16610dda611486565b73ffffffffffffffffffffffffffffffffffffffff1614610e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e279061383b565b60405180910390fd5b610e3a3382612e93565b50565b610e45611ef5565b73ffffffffffffffffffffffffffffffffffffffff16610e63611486565b73ffffffffffffffffffffffffffffffffffffffff1614610eb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb09061383b565b60405180910390fd5b610ec28161176e565b15610f02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef990613b7e565b60405180910390fd5b6001601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610f65611ef5565b73ffffffffffffffffffffffffffffffffffffffff16610f83611486565b73ffffffffffffffffffffffffffffffffffffffff1614610fd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd09061383b565b60405180910390fd5b601760009054906101000a900460ff1615611029576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102090613bea565b60405180910390fd5b6001601760006101000a81548160ff021916908315150217905550565b6000600560149054906101000a900460ff16905090565b611065611ef5565b73ffffffffffffffffffffffffffffffffffffffff16611083611486565b73ffffffffffffffffffffffffffffffffffffffff16146110d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d09061383b565b60405180910390fd5b612710811161111d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111490613c56565b60405180910390fd5b670de0b6b3a7640000816111319190613c76565b600d8190555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61118a611ef5565b73ffffffffffffffffffffffffffffffffffffffff166111a8611486565b73ffffffffffffffffffffffffffffffffffffffff16146111fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f59061383b565b60405180910390fd5b611208600061306a565b565b611212611ef5565b73ffffffffffffffffffffffffffffffffffffffff16611230611486565b73ffffffffffffffffffffffffffffffffffffffff1614611286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127d9061383b565b60405180910390fd5b601060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130a90613d42565b60405180910390fd5b6001601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611376611ef5565b73ffffffffffffffffffffffffffffffffffffffff16611394611486565b73ffffffffffffffffffffffffffffffffffffffff16146113ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e19061383b565b60405180910390fd5b6113f2611046565b15611432576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142990613dd4565b60405180910390fd5b61143a613130565b565b60006013600083815260200190815260200160002054905062015180816114639190613a4a565b4210611482574260136000848152602001908152602001600020819055505b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546114bf90613957565b80601f01602080910402602001604051908101604052809291908181526020018280546114eb90613957565b80156115385780601f1061150d57610100808354040283529160200191611538565b820191906000526020600020905b81548152906001019060200180831161151b57829003601f168201915b5050505050905090565b60008060016000611551611ef5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561160e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160590613e66565b60405180910390fd5b611622611619611ef5565b85858403611efd565b600191505092915050565b600061164161163a611ef5565b84846120c8565b6001905092915050565b611653611ef5565b73ffffffffffffffffffffffffffffffffffffffff16611671611486565b73ffffffffffffffffffffffffffffffffffffffff16146116c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116be9061383b565b60405180910390fd5b6116d08161176e565b61170f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170690613ed2565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b5050565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6117cc611ef5565b73ffffffffffffffffffffffffffffffffffffffff166117ea611486565b73ffffffffffffffffffffffffffffffffffffffff1614611840576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118379061383b565b60405180910390fd5b601760009054906101000a900460ff1661188f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188690613f3e565b60405180910390fd5b6000601760006101000a81548160ff021916908315150217905550565b6118b4611ef5565b73ffffffffffffffffffffffffffffffffffffffff166118d2611486565b73ffffffffffffffffffffffffffffffffffffffff1614611928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191f9061383b565b60405180910390fd5b601060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166119b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ab90613fd0565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611a17611ef5565b73ffffffffffffffffffffffffffffffffffffffff16611a35611486565b73ffffffffffffffffffffffffffffffffffffffff1614611a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a829061383b565b60405180910390fd5b806016604051611a9a906138b2565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b78611ef5565b73ffffffffffffffffffffffffffffffffffffffff16611b96611486565b73ffffffffffffffffffffffffffffffffffffffff1614611bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be39061383b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5390614062565b60405180910390fd5b611c658161306a565b50565b600d5481565b611c76611ef5565b73ffffffffffffffffffffffffffffffffffffffff16611c94611486565b73ffffffffffffffffffffffffffffffffffffffff1614611cea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce19061383b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d7257611d27611486565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611d6c573d6000803e3d6000fd5b50611e9c565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611db29190613794565b60206040518083038186803b158015611dca57600080fd5b505afa158015611dde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e029190614097565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611e28611486565b836040518363ffffffff1660e01b8152600401611e469291906140c4565b602060405180830381600087803b158015611e6057600080fd5b505af1158015611e74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e989190614119565b5050505b50565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f64906141b8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd49061424a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120bb9190613686565b60405180910390a3505050565b6120d0611046565b15612110576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612107906142dc565b60405180910390fd5b61211933611e9f565b15612159576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215090614348565b60405180910390fd5b61216282611e9f565b156121a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612199906143b4565b60405180910390fd5b6121ab32611e9f565b156121eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e290614348565b60405180910390fd5b601760009054906101000a900460ff161561220e5761220b83838361221e565b90505b6122198383836131d3565b505050565b600080600267ffffffffffffffff81111561223c5761223b6143d4565b5b60405190808252806020026020018201604052801561226a5781602001602082028036833780820191505090505b509050308160008151811061228257612281614403565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561232457600080fd5b505afa158015612338573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061235c9190614447565b816001815181106123705761236f614403565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123b38561176e565b1580156123c657506123c48461176e565b155b15612de557600080600754856123dc91906144a3565b9050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415612538576014604051612442906138b2565b9081526020016040518091039020548161245c9190613c76565b826124679190613a4a565b9150601460405161247790613913565b908152602001604051809103902054816124919190613c76565b8261249c9190613a4a565b915060008211156124b3576124b28730846120c8565b5b60146040516124c1906138b2565b908152602001604051809103902054816124db9190613c76565b601a60008282546124ec9190613a4a565b92505081905550601460405161250190613913565b9081526020016040518091039020548161251b9190613c76565b601b600082825461252c9190613a4a565b92505081905550612d26565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415612d2557601560405161259c906138b2565b908152602001604051809103902054816125b69190613c76565b826125c19190613a4a565b915060156040516125d190613913565b908152602001604051809103902054816125eb9190613c76565b826125f69190613a4a565b9150600082111561260d5761260c8730846120c8565b5b601560405161261b906138b2565b908152602001604051809103902054816126359190613c76565b601a60008282546126469190613a4a565b92505081905550601560405161265b90613913565b908152602001604051809103902054816126759190613c76565b601b60008282546126869190613a4a565b925050819055506000601b54601a5461269f9190613a4a565b905060008114156126b65785945050505050612dea565b6000601760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f601b54601a546127069190613a4a565b876040518363ffffffff1660e01b8152600401612724929190614592565b60006040518083038186803b15801561273c57600080fd5b505afa158015612750573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061277991906146db565b60018151811061278c5761278b614403565b5b602002602001015190506008548110612d2257600047905060006002601b546127b591906144a3565b601a546127c29190613a4a565b90506127f130601760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611efd565b601760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318cbafe58260008a30426040518663ffffffff1660e01b8152600401612855959493929190614769565b600060405180830381600087803b15801561286f57600080fd5b505af1158015612883573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906128ac91906146db565b50600082476128bb91906147c3565b905060006002601b546128ce91906144a3565b90506000670de0b6b3a764000087670de0b6b3a76400006002601b546128f491906144a3565b6128fe9190613c76565b61290891906144a3565b846129139190613c76565b61291d91906144a3565b90506000670de0b6b3a764000088670de0b6b3a7640000601a546129419190613c76565b61294b91906144a3565b856129569190613c76565b61296091906144a3565b905061298f30601760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611efd565b601760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008060166040516129e190613913565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612a32969594939291906147f7565b6060604051808303818588803b158015612a4b57600080fd5b505af1158015612a5f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612a849190614858565b50505060008386612a959190613a4a565b601b54601a54612aa59190613a4a565b612aaf91906147c3565b90506000811115612b0257612b01306016604051612acc906138b2565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836120c8565b5b60006016604051612b12906138b2565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612b64906148dc565b60006040518083038185875af1925050503d8060008114612ba1576040519150601f19603f3d011682016040523d82523d6000602084013e612ba6565b606091505b5050905080612bea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612be19061493d565b60405180910390fd5b60008484612bf89190613a4a565b87612c0391906147c3565b1115612d095760006016604051612c19906138b2565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168585612c6a9190613a4a565b88612c7591906147c3565b604051612c81906148dc565b60006040518083038185875af1925050503d8060008114612cbe576040519150601f19603f3d011682016040523d82523d6000602084013e612cc3565b606091505b5050905080612d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cfe9061493d565b60405180910390fd5b505b6000601a819055506000601b8190555050505050505050505b50505b5b8185612d3291906147c3565b9450601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614612de257600d5485612d968861113a565b612da09190613a4a565b1115612de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dd8906149a9565b60405180910390fd5b5b50505b829150505b9392505050565b612df9611046565b612e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e2f90614a15565b60405180910390fd5b6000600560146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612e7c611ef5565b604051612e899190613794565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612efa90614aa7565b60405180910390fd5b612f0f82600083613454565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8c90614b39565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254612fec91906147c3565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130519190613686565b60405180910390a361306583600084613459565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b613138611046565b15613178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161316f90614ba5565b60405180910390fd5b6001600560146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586131bc611ef5565b6040516131c99190613794565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161323a90614c37565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156132b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132aa90614cc9565b60405180910390fd5b6132be838383613454565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161333b90614d5b565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133d79190613a4a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161343b9190613686565b60405180910390a361344e848484613459565b50505050565b505050565b505050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61348581613472565b811461349057600080fd5b50565b6000813590506134a28161347c565b92915050565b600080604083850312156134bf576134be613468565b5b60006134cd85828601613493565b92505060206134de85828601613493565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613522578082015181840152602081019050613507565b83811115613531576000848401525b50505050565b6000601f19601f8301169050919050565b6000613553826134e8565b61355d81856134f3565b935061356d818560208601613504565b61357681613537565b840191505092915050565b6000602082019050818103600083015261359b8184613548565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006135ce826135a3565b9050919050565b6135de816135c3565b81146135e957600080fd5b50565b6000813590506135fb816135d5565b92915050565b6000806040838503121561361857613617613468565b5b6000613626858286016135ec565b925050602061363785828601613493565b9150509250929050565b60008115159050919050565b61365681613641565b82525050565b6000602082019050613671600083018461364d565b92915050565b61368081613472565b82525050565b600060208201905061369b6000830184613677565b92915050565b6000806000606084860312156136ba576136b9613468565b5b60006136c8868287016135ec565b93505060206136d9868287016135ec565b92505060406136ea86828701613493565b9150509250925092565b600060ff82169050919050565b61370a816136f4565b82525050565b60006020820190506137256000830184613701565b92915050565b60006020828403121561374157613740613468565b5b600061374f84828501613493565b91505092915050565b60006020828403121561376e5761376d613468565b5b600061377c848285016135ec565b91505092915050565b61378e816135c3565b82525050565b60006020820190506137a96000830184613785565b92915050565b600080604083850312156137c6576137c5613468565b5b60006137d4858286016135ec565b92505060206137e5858286016135ec565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138256020836134f3565b9150613830826137ef565b602082019050919050565b6000602082019050818103600083015261385481613818565b9050919050565b600081905092915050565b7f6465760000000000000000000000000000000000000000000000000000000000600082015250565b600061389c60038361385b565b91506138a782613866565b600382019050919050565b60006138bd8261388f565b9150819050919050565b7f6c69717569646974790000000000000000000000000000000000000000000000600082015250565b60006138fd60098361385b565b9150613908826138c7565b600982019050919050565b600061391e826138f0565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061396f57607f821691505b6020821081141561398357613982613928565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006139e56028836134f3565b91506139f082613989565b604082019050919050565b60006020820190508181036000830152613a14816139d8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613a5582613472565b9150613a6083613472565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a9557613a94613a1b565b5b828201905092915050565b7f45524332303a20436f6e7472616374206973206e6f7420706175736564000000600082015250565b6000613ad6601d836134f3565b9150613ae182613aa0565b602082019050919050565b60006020820190508181036000830152613b0581613ac9565b9050919050565b7f45524332303a204163636f756e7420697320616c7265616479206578636c756460008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b686022836134f3565b9150613b7382613b0c565b604082019050919050565b60006020820190508181036000830152613b9781613b5b565b9050919050565b7f45524332303a2054617820697320616c726561647920656e61626c6564000000600082015250565b6000613bd4601d836134f3565b9150613bdf82613b9e565b602082019050919050565b60006020820190508181036000830152613c0381613bc7565b9050919050565b7f4e4f207275672070756c6c000000000000000000000000000000000000000000600082015250565b6000613c40600b836134f3565b9150613c4b82613c0a565b602082019050919050565b60006020820190508181036000830152613c6f81613c33565b9050919050565b6000613c8182613472565b9150613c8c83613472565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613cc557613cc4613a1b565b5b828202905092915050565b7f45524332303a204163636f756e7420697320616c726561647920626c61636b6c60008201527f6973746564000000000000000000000000000000000000000000000000000000602082015250565b6000613d2c6025836134f3565b9150613d3782613cd0565b604082019050919050565b60006020820190508181036000830152613d5b81613d1f565b9050919050565b7f45524332303a20436f6e747261637420697320616c726561647920706175736560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b6000613dbe6021836134f3565b9150613dc982613d62565b604082019050919050565b60006020820190508181036000830152613ded81613db1565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613e506025836134f3565b9150613e5b82613df4565b604082019050919050565b60006020820190508181036000830152613e7f81613e43565b9050919050565b7f45524332303a204163636f756e74206973206e6f74206578636c756465640000600082015250565b6000613ebc601e836134f3565b9150613ec782613e86565b602082019050919050565b60006020820190508181036000830152613eeb81613eaf565b9050919050565b7f45524332303a2054617820697320616c72656164792064697361626c65640000600082015250565b6000613f28601e836134f3565b9150613f3382613ef2565b602082019050919050565b60006020820190508181036000830152613f5781613f1b565b9050919050565b7f45524332303a204163636f756e74206973206e6f7420626c61636b6c6973746560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fba6021836134f3565b9150613fc582613f5e565b604082019050919050565b60006020820190508181036000830152613fe981613fad565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061404c6026836134f3565b915061405782613ff0565b604082019050919050565b6000602082019050818103600083015261407b8161403f565b9050919050565b6000815190506140918161347c565b92915050565b6000602082840312156140ad576140ac613468565b5b60006140bb84828501614082565b91505092915050565b60006040820190506140d96000830185613785565b6140e66020830184613677565b9392505050565b6140f681613641565b811461410157600080fd5b50565b600081519050614113816140ed565b92915050565b60006020828403121561412f5761412e613468565b5b600061413d84828501614104565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006141a26024836134f3565b91506141ad82614146565b604082019050919050565b600060208201905081810360008301526141d181614195565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006142346022836134f3565b915061423f826141d8565b604082019050919050565b6000602082019050818103600083015261426381614227565b9050919050565b7f45524332303a20746f6b656e207472616e73666572207768696c65207061757360008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b60006142c66022836134f3565b91506142d18261426a565b604082019050919050565b600060208201905081810360008301526142f5816142b9565b9050919050565b7f45524332303a2073656e64657220626c61636b6c697374656400000000000000600082015250565b60006143326019836134f3565b915061433d826142fc565b602082019050919050565b6000602082019050818103600083015261436181614325565b9050919050565b7f45524332303a20726563697069656e7420626c61636b6c697374656400000000600082015250565b600061439e601c836134f3565b91506143a982614368565b602082019050919050565b600060208201905081810360008301526143cd81614391565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614441816135d5565b92915050565b60006020828403121561445d5761445c613468565b5b600061446b84828501614432565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006144ae82613472565b91506144b983613472565b9250826144c9576144c8614474565b5b828204905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614509816135c3565b82525050565b600061451b8383614500565b60208301905092915050565b6000602082019050919050565b600061453f826144d4565b61454981856144df565b9350614554836144f0565b8060005b8381101561458557815161456c888261450f565b975061457783614527565b925050600181019050614558565b5085935050505092915050565b60006040820190506145a76000830185613677565b81810360208301526145b98184614534565b90509392505050565b600080fd5b6145d082613537565b810181811067ffffffffffffffff821117156145ef576145ee6143d4565b5b80604052505050565b600061460261345e565b905061460e82826145c7565b919050565b600067ffffffffffffffff82111561462e5761462d6143d4565b5b602082029050602081019050919050565b600080fd5b600061465761465284614613565b6145f8565b9050808382526020820190506020840283018581111561467a5761467961463f565b5b835b818110156146a3578061468f8882614082565b84526020840193505060208101905061467c565b5050509392505050565b600082601f8301126146c2576146c16145c2565b5b81516146d2848260208601614644565b91505092915050565b6000602082840312156146f1576146f0613468565b5b600082015167ffffffffffffffff81111561470f5761470e61346d565b5b61471b848285016146ad565b91505092915050565b6000819050919050565b6000819050919050565b600061475361474e61474984614724565b61472e565b613472565b9050919050565b61476381614738565b82525050565b600060a08201905061477e6000830188613677565b61478b602083018761475a565b818103604083015261479d8186614534565b90506147ac6060830185613785565b6147b96080830184613677565b9695505050505050565b60006147ce82613472565b91506147d983613472565b9250828210156147ec576147eb613a1b565b5b828203905092915050565b600060c08201905061480c6000830189613785565b6148196020830188613677565b614826604083018761475a565b614833606083018661475a565b6148406080830185613785565b61484d60a0830184613677565b979650505050505050565b60008060006060848603121561487157614870613468565b5b600061487f86828701614082565b935050602061489086828701614082565b92505060406148a186828701614082565b9150509250925092565b600081905092915050565b50565b60006148c66000836148ab565b91506148d1826148b6565b600082019050919050565b60006148e7826148b9565b9150819050919050565b7f7472616e7366657220746f20206465762077616c6c6574206661696c65640000600082015250565b6000614927601e836134f3565b9150614932826148f1565b602082019050919050565b600060208201905081810360008301526149568161491a565b9050919050565b7f6d617857616c6c6574206c696d69742065786365656465640000000000000000600082015250565b60006149936018836134f3565b915061499e8261495d565b602082019050919050565b600060208201905081810360008301526149c281614986565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006149ff6014836134f3565b9150614a0a826149c9565b602082019050919050565b60006020820190508181036000830152614a2e816149f2565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a916021836134f3565b9150614a9c82614a35565b604082019050919050565b60006020820190508181036000830152614ac081614a84565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000614b236022836134f3565b9150614b2e82614ac7565b604082019050919050565b60006020820190508181036000830152614b5281614b16565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000614b8f6010836134f3565b9150614b9a82614b59565b602082019050919050565b60006020820190508181036000830152614bbe81614b82565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614c216025836134f3565b9150614c2c82614bc5565b604082019050919050565b60006020820190508181036000830152614c5081614c14565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614cb36023836134f3565b9150614cbe82614c57565b604082019050919050565b60006020820190508181036000830152614ce281614ca6565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614d456026836134f3565b9150614d5082614ce9565b604082019050919050565b60006020820190508181036000830152614d7481614d38565b905091905056fea26469706673582212209f2fae5843338dda63b5c7bf0f92cead75f591ff6f7f211465ae814d56c7f3a264736f6c63430008090033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000008da7bd0000000000000000000000000000000000000000000000000000000000000015506c61746f6e6963205175696e74657373656e636500000000000000000000000000000000000000000000000000000000000000000000000000000000000004504c415100000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106102135760003560e01c8063717a865111610118578063cba0e996116100a0578063dd62ed3e1161006f578063dd62ed3e14610744578063f2fde38b14610781578063f8b45b05146107aa578063f9d0831a146107d5578063fe575a87146107fe5761021a565b8063cba0e9961461069e578063ced695a4146106db578063cfefd79e146106f2578063d01dc84b1461071b5761021a565b806395d89b41116100e757806395d89b41146105a7578063a457c2d7146105d2578063a9059cbb1461060f578063abe4f11d1461064c578063b8355672146106755761021a565b8063717a8651146105135780638456cb591461053c5780638cdfe7fe146105535780638da5cb5b1461057c5761021a565b8063395093511161019b57806353eb3bcf1161016a57806353eb3bcf146104545780635c975abb1461046b5780635d0044ca1461049657806370a08231146104bf578063715018a6146104fc5761021a565b806339509351146103ae5780633f4ba83a146103eb57806342966c68146104025780634febf53d1461042b5761021a565b806323a38a38116101e257806323a38a38146102db57806323b872dd14610306578063247b912d146103435780632c32abc21461036c578063313ce567146103835761021a565b806305a1f36d1461021f57806306fdde0314610248578063095ea7b31461027357806318160ddd146102b05761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b50610246600480360381019061024191906134a8565b61083b565b005b34801561025457600080fd5b5061025d6108fd565b60405161026a9190613581565b60405180910390f35b34801561027f57600080fd5b5061029a60048036038101906102959190613601565b61098f565b6040516102a7919061365c565b60405180910390f35b3480156102bc57600080fd5b506102c56109ad565b6040516102d29190613686565b60405180910390f35b3480156102e757600080fd5b506102f06109b7565b6040516102fd919061365c565b60405180910390f35b34801561031257600080fd5b5061032d600480360381019061032891906136a1565b6109ca565b60405161033a919061365c565b60405180910390f35b34801561034f57600080fd5b5061036a600480360381019061036591906134a8565b610ac2565b005b34801561037857600080fd5b50610381610b84565b005b34801561038f57600080fd5b50610398610c32565b6040516103a59190613710565b60405180910390f35b3480156103ba57600080fd5b506103d560048036038101906103d09190613601565b610c3b565b6040516103e2919061365c565b60405180910390f35b3480156103f757600080fd5b50610400610ce7565b005b34801561040e57600080fd5b506104296004803603810190610424919061372b565b610db4565b005b34801561043757600080fd5b50610452600480360381019061044d9190613758565b610e3d565b005b34801561046057600080fd5b50610469610f5d565b005b34801561047757600080fd5b50610480611046565b60405161048d919061365c565b60405180910390f35b3480156104a257600080fd5b506104bd60048036038101906104b8919061372b565b61105d565b005b3480156104cb57600080fd5b506104e660048036038101906104e19190613758565b61113a565b6040516104f39190613686565b60405180910390f35b34801561050857600080fd5b50610511611182565b005b34801561051f57600080fd5b5061053a60048036038101906105359190613758565b61120a565b005b34801561054857600080fd5b5061055161136e565b005b34801561055f57600080fd5b5061057a6004803603810190610575919061372b565b61143c565b005b34801561058857600080fd5b50610591611486565b60405161059e9190613794565b60405180910390f35b3480156105b357600080fd5b506105bc6114b0565b6040516105c99190613581565b60405180910390f35b3480156105de57600080fd5b506105f960048036038101906105f49190613601565b611542565b604051610606919061365c565b60405180910390f35b34801561061b57600080fd5b5061063660048036038101906106319190613601565b61162d565b604051610643919061365c565b60405180910390f35b34801561065857600080fd5b50610673600480360381019061066e9190613758565b61164b565b005b34801561068157600080fd5b5061069c600480360381019061069791906134a8565b61176a565b005b3480156106aa57600080fd5b506106c560048036038101906106c09190613758565b61176e565b6040516106d2919061365c565b60405180910390f35b3480156106e757600080fd5b506106f06117c4565b005b3480156106fe57600080fd5b5061071960048036038101906107149190613758565b6118ac565b005b34801561072757600080fd5b50610742600480360381019061073d9190613758565b611a0f565b005b34801561075057600080fd5b5061076b600480360381019061076691906137af565b611ae9565b6040516107789190613686565b60405180910390f35b34801561078d57600080fd5b506107a860048036038101906107a39190613758565b611b70565b005b3480156107b657600080fd5b506107bf611c68565b6040516107cc9190613686565b60405180910390f35b3480156107e157600080fd5b506107fc60048036038101906107f79190613758565b611c6e565b005b34801561080a57600080fd5b5061082560048036038101906108209190613758565b611e9f565b604051610832919061365c565b60405180910390f35b610843611ef5565b73ffffffffffffffffffffffffffffffffffffffff16610861611486565b73ffffffffffffffffffffffffffffffffffffffff16146108b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ae9061383b565b60405180910390fd5b8160146040516108c6906138b2565b9081526020016040518091039020819055508060146040516108e790613913565b9081526020016040518091039020819055505050565b60606003805461090c90613957565b80601f016020809104026020016040519081016040528092919081815260200182805461093890613957565b80156109855780601f1061095a57610100808354040283529160200191610985565b820191906000526020600020905b81548152906001019060200180831161096857829003601f168201915b5050505050905090565b60006109a361099c611ef5565b8484611efd565b6001905092915050565b6000600254905090565b601760009054906101000a900460ff1681565b60006109d78484846120c8565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a22611ef5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a99906139fb565b60405180910390fd5b610ab685610aae611ef5565b858403611efd565b60019150509392505050565b610aca611ef5565b73ffffffffffffffffffffffffffffffffffffffff16610ae8611486565b73ffffffffffffffffffffffffffffffffffffffff1614610b3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b359061383b565b60405180910390fd5b816015604051610b4d906138b2565b908152602001604051809103902081905550806015604051610b6e90613913565b9081526020016040518091039020819055505050565b610b8c611ef5565b73ffffffffffffffffffffffffffffffffffffffff16610baa611486565b73ffffffffffffffffffffffffffffffffffffffff1614610c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf79061383b565b60405180910390fd5b610c2f6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600061221e565b50565b60006012905090565b6000610cdd610c48611ef5565b848460016000610c56611ef5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cd89190613a4a565b611efd565b6001905092915050565b610cef611ef5565b73ffffffffffffffffffffffffffffffffffffffff16610d0d611486565b73ffffffffffffffffffffffffffffffffffffffff1614610d63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5a9061383b565b60405180910390fd5b610d6b611046565b610daa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da190613aec565b60405180910390fd5b610db2612df1565b565b610dbc611ef5565b73ffffffffffffffffffffffffffffffffffffffff16610dda611486565b73ffffffffffffffffffffffffffffffffffffffff1614610e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e279061383b565b60405180910390fd5b610e3a3382612e93565b50565b610e45611ef5565b73ffffffffffffffffffffffffffffffffffffffff16610e63611486565b73ffffffffffffffffffffffffffffffffffffffff1614610eb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb09061383b565b60405180910390fd5b610ec28161176e565b15610f02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef990613b7e565b60405180910390fd5b6001601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610f65611ef5565b73ffffffffffffffffffffffffffffffffffffffff16610f83611486565b73ffffffffffffffffffffffffffffffffffffffff1614610fd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd09061383b565b60405180910390fd5b601760009054906101000a900460ff1615611029576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102090613bea565b60405180910390fd5b6001601760006101000a81548160ff021916908315150217905550565b6000600560149054906101000a900460ff16905090565b611065611ef5565b73ffffffffffffffffffffffffffffffffffffffff16611083611486565b73ffffffffffffffffffffffffffffffffffffffff16146110d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d09061383b565b60405180910390fd5b612710811161111d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111490613c56565b60405180910390fd5b670de0b6b3a7640000816111319190613c76565b600d8190555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61118a611ef5565b73ffffffffffffffffffffffffffffffffffffffff166111a8611486565b73ffffffffffffffffffffffffffffffffffffffff16146111fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f59061383b565b60405180910390fd5b611208600061306a565b565b611212611ef5565b73ffffffffffffffffffffffffffffffffffffffff16611230611486565b73ffffffffffffffffffffffffffffffffffffffff1614611286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127d9061383b565b60405180910390fd5b601060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130a90613d42565b60405180910390fd5b6001601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611376611ef5565b73ffffffffffffffffffffffffffffffffffffffff16611394611486565b73ffffffffffffffffffffffffffffffffffffffff16146113ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e19061383b565b60405180910390fd5b6113f2611046565b15611432576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142990613dd4565b60405180910390fd5b61143a613130565b565b60006013600083815260200190815260200160002054905062015180816114639190613a4a565b4210611482574260136000848152602001908152602001600020819055505b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546114bf90613957565b80601f01602080910402602001604051908101604052809291908181526020018280546114eb90613957565b80156115385780601f1061150d57610100808354040283529160200191611538565b820191906000526020600020905b81548152906001019060200180831161151b57829003601f168201915b5050505050905090565b60008060016000611551611ef5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561160e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160590613e66565b60405180910390fd5b611622611619611ef5565b85858403611efd565b600191505092915050565b600061164161163a611ef5565b84846120c8565b6001905092915050565b611653611ef5565b73ffffffffffffffffffffffffffffffffffffffff16611671611486565b73ffffffffffffffffffffffffffffffffffffffff16146116c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116be9061383b565b60405180910390fd5b6116d08161176e565b61170f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170690613ed2565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b5050565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6117cc611ef5565b73ffffffffffffffffffffffffffffffffffffffff166117ea611486565b73ffffffffffffffffffffffffffffffffffffffff1614611840576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118379061383b565b60405180910390fd5b601760009054906101000a900460ff1661188f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188690613f3e565b60405180910390fd5b6000601760006101000a81548160ff021916908315150217905550565b6118b4611ef5565b73ffffffffffffffffffffffffffffffffffffffff166118d2611486565b73ffffffffffffffffffffffffffffffffffffffff1614611928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191f9061383b565b60405180910390fd5b601060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166119b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ab90613fd0565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611a17611ef5565b73ffffffffffffffffffffffffffffffffffffffff16611a35611486565b73ffffffffffffffffffffffffffffffffffffffff1614611a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a829061383b565b60405180910390fd5b806016604051611a9a906138b2565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b78611ef5565b73ffffffffffffffffffffffffffffffffffffffff16611b96611486565b73ffffffffffffffffffffffffffffffffffffffff1614611bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be39061383b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5390614062565b60405180910390fd5b611c658161306a565b50565b600d5481565b611c76611ef5565b73ffffffffffffffffffffffffffffffffffffffff16611c94611486565b73ffffffffffffffffffffffffffffffffffffffff1614611cea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce19061383b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d7257611d27611486565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611d6c573d6000803e3d6000fd5b50611e9c565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611db29190613794565b60206040518083038186803b158015611dca57600080fd5b505afa158015611dde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e029190614097565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611e28611486565b836040518363ffffffff1660e01b8152600401611e469291906140c4565b602060405180830381600087803b158015611e6057600080fd5b505af1158015611e74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e989190614119565b5050505b50565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f64906141b8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd49061424a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120bb9190613686565b60405180910390a3505050565b6120d0611046565b15612110576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612107906142dc565b60405180910390fd5b61211933611e9f565b15612159576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215090614348565b60405180910390fd5b61216282611e9f565b156121a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612199906143b4565b60405180910390fd5b6121ab32611e9f565b156121eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e290614348565b60405180910390fd5b601760009054906101000a900460ff161561220e5761220b83838361221e565b90505b6122198383836131d3565b505050565b600080600267ffffffffffffffff81111561223c5761223b6143d4565b5b60405190808252806020026020018201604052801561226a5781602001602082028036833780820191505090505b509050308160008151811061228257612281614403565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561232457600080fd5b505afa158015612338573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061235c9190614447565b816001815181106123705761236f614403565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123b38561176e565b1580156123c657506123c48461176e565b155b15612de557600080600754856123dc91906144a3565b9050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415612538576014604051612442906138b2565b9081526020016040518091039020548161245c9190613c76565b826124679190613a4a565b9150601460405161247790613913565b908152602001604051809103902054816124919190613c76565b8261249c9190613a4a565b915060008211156124b3576124b28730846120c8565b5b60146040516124c1906138b2565b908152602001604051809103902054816124db9190613c76565b601a60008282546124ec9190613a4a565b92505081905550601460405161250190613913565b9081526020016040518091039020548161251b9190613c76565b601b600082825461252c9190613a4a565b92505081905550612d26565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415612d2557601560405161259c906138b2565b908152602001604051809103902054816125b69190613c76565b826125c19190613a4a565b915060156040516125d190613913565b908152602001604051809103902054816125eb9190613c76565b826125f69190613a4a565b9150600082111561260d5761260c8730846120c8565b5b601560405161261b906138b2565b908152602001604051809103902054816126359190613c76565b601a60008282546126469190613a4a565b92505081905550601560405161265b90613913565b908152602001604051809103902054816126759190613c76565b601b60008282546126869190613a4a565b925050819055506000601b54601a5461269f9190613a4a565b905060008114156126b65785945050505050612dea565b6000601760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f601b54601a546127069190613a4a565b876040518363ffffffff1660e01b8152600401612724929190614592565b60006040518083038186803b15801561273c57600080fd5b505afa158015612750573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061277991906146db565b60018151811061278c5761278b614403565b5b602002602001015190506008548110612d2257600047905060006002601b546127b591906144a3565b601a546127c29190613a4a565b90506127f130601760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611efd565b601760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318cbafe58260008a30426040518663ffffffff1660e01b8152600401612855959493929190614769565b600060405180830381600087803b15801561286f57600080fd5b505af1158015612883573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906128ac91906146db565b50600082476128bb91906147c3565b905060006002601b546128ce91906144a3565b90506000670de0b6b3a764000087670de0b6b3a76400006002601b546128f491906144a3565b6128fe9190613c76565b61290891906144a3565b846129139190613c76565b61291d91906144a3565b90506000670de0b6b3a764000088670de0b6b3a7640000601a546129419190613c76565b61294b91906144a3565b856129569190613c76565b61296091906144a3565b905061298f30601760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611efd565b601760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008060166040516129e190613913565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612a32969594939291906147f7565b6060604051808303818588803b158015612a4b57600080fd5b505af1158015612a5f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612a849190614858565b50505060008386612a959190613a4a565b601b54601a54612aa59190613a4a565b612aaf91906147c3565b90506000811115612b0257612b01306016604051612acc906138b2565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836120c8565b5b60006016604051612b12906138b2565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612b64906148dc565b60006040518083038185875af1925050503d8060008114612ba1576040519150601f19603f3d011682016040523d82523d6000602084013e612ba6565b606091505b5050905080612bea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612be19061493d565b60405180910390fd5b60008484612bf89190613a4a565b87612c0391906147c3565b1115612d095760006016604051612c19906138b2565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168585612c6a9190613a4a565b88612c7591906147c3565b604051612c81906148dc565b60006040518083038185875af1925050503d8060008114612cbe576040519150601f19603f3d011682016040523d82523d6000602084013e612cc3565b606091505b5050905080612d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cfe9061493d565b60405180910390fd5b505b6000601a819055506000601b8190555050505050505050505b50505b5b8185612d3291906147c3565b9450601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614612de257600d5485612d968861113a565b612da09190613a4a565b1115612de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dd8906149a9565b60405180910390fd5b5b50505b829150505b9392505050565b612df9611046565b612e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e2f90614a15565b60405180910390fd5b6000600560146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612e7c611ef5565b604051612e899190613794565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612efa90614aa7565b60405180910390fd5b612f0f82600083613454565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8c90614b39565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254612fec91906147c3565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130519190613686565b60405180910390a361306583600084613459565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b613138611046565b15613178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161316f90614ba5565b60405180910390fd5b6001600560146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586131bc611ef5565b6040516131c99190613794565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161323a90614c37565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156132b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132aa90614cc9565b60405180910390fd5b6132be838383613454565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161333b90614d5b565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133d79190613a4a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161343b9190613686565b60405180910390a361344e848484613459565b50505050565b505050565b505050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61348581613472565b811461349057600080fd5b50565b6000813590506134a28161347c565b92915050565b600080604083850312156134bf576134be613468565b5b60006134cd85828601613493565b92505060206134de85828601613493565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613522578082015181840152602081019050613507565b83811115613531576000848401525b50505050565b6000601f19601f8301169050919050565b6000613553826134e8565b61355d81856134f3565b935061356d818560208601613504565b61357681613537565b840191505092915050565b6000602082019050818103600083015261359b8184613548565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006135ce826135a3565b9050919050565b6135de816135c3565b81146135e957600080fd5b50565b6000813590506135fb816135d5565b92915050565b6000806040838503121561361857613617613468565b5b6000613626858286016135ec565b925050602061363785828601613493565b9150509250929050565b60008115159050919050565b61365681613641565b82525050565b6000602082019050613671600083018461364d565b92915050565b61368081613472565b82525050565b600060208201905061369b6000830184613677565b92915050565b6000806000606084860312156136ba576136b9613468565b5b60006136c8868287016135ec565b93505060206136d9868287016135ec565b92505060406136ea86828701613493565b9150509250925092565b600060ff82169050919050565b61370a816136f4565b82525050565b60006020820190506137256000830184613701565b92915050565b60006020828403121561374157613740613468565b5b600061374f84828501613493565b91505092915050565b60006020828403121561376e5761376d613468565b5b600061377c848285016135ec565b91505092915050565b61378e816135c3565b82525050565b60006020820190506137a96000830184613785565b92915050565b600080604083850312156137c6576137c5613468565b5b60006137d4858286016135ec565b92505060206137e5858286016135ec565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138256020836134f3565b9150613830826137ef565b602082019050919050565b6000602082019050818103600083015261385481613818565b9050919050565b600081905092915050565b7f6465760000000000000000000000000000000000000000000000000000000000600082015250565b600061389c60038361385b565b91506138a782613866565b600382019050919050565b60006138bd8261388f565b9150819050919050565b7f6c69717569646974790000000000000000000000000000000000000000000000600082015250565b60006138fd60098361385b565b9150613908826138c7565b600982019050919050565b600061391e826138f0565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061396f57607f821691505b6020821081141561398357613982613928565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006139e56028836134f3565b91506139f082613989565b604082019050919050565b60006020820190508181036000830152613a14816139d8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613a5582613472565b9150613a6083613472565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a9557613a94613a1b565b5b828201905092915050565b7f45524332303a20436f6e7472616374206973206e6f7420706175736564000000600082015250565b6000613ad6601d836134f3565b9150613ae182613aa0565b602082019050919050565b60006020820190508181036000830152613b0581613ac9565b9050919050565b7f45524332303a204163636f756e7420697320616c7265616479206578636c756460008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b686022836134f3565b9150613b7382613b0c565b604082019050919050565b60006020820190508181036000830152613b9781613b5b565b9050919050565b7f45524332303a2054617820697320616c726561647920656e61626c6564000000600082015250565b6000613bd4601d836134f3565b9150613bdf82613b9e565b602082019050919050565b60006020820190508181036000830152613c0381613bc7565b9050919050565b7f4e4f207275672070756c6c000000000000000000000000000000000000000000600082015250565b6000613c40600b836134f3565b9150613c4b82613c0a565b602082019050919050565b60006020820190508181036000830152613c6f81613c33565b9050919050565b6000613c8182613472565b9150613c8c83613472565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613cc557613cc4613a1b565b5b828202905092915050565b7f45524332303a204163636f756e7420697320616c726561647920626c61636b6c60008201527f6973746564000000000000000000000000000000000000000000000000000000602082015250565b6000613d2c6025836134f3565b9150613d3782613cd0565b604082019050919050565b60006020820190508181036000830152613d5b81613d1f565b9050919050565b7f45524332303a20436f6e747261637420697320616c726561647920706175736560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b6000613dbe6021836134f3565b9150613dc982613d62565b604082019050919050565b60006020820190508181036000830152613ded81613db1565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613e506025836134f3565b9150613e5b82613df4565b604082019050919050565b60006020820190508181036000830152613e7f81613e43565b9050919050565b7f45524332303a204163636f756e74206973206e6f74206578636c756465640000600082015250565b6000613ebc601e836134f3565b9150613ec782613e86565b602082019050919050565b60006020820190508181036000830152613eeb81613eaf565b9050919050565b7f45524332303a2054617820697320616c72656164792064697361626c65640000600082015250565b6000613f28601e836134f3565b9150613f3382613ef2565b602082019050919050565b60006020820190508181036000830152613f5781613f1b565b9050919050565b7f45524332303a204163636f756e74206973206e6f7420626c61636b6c6973746560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fba6021836134f3565b9150613fc582613f5e565b604082019050919050565b60006020820190508181036000830152613fe981613fad565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061404c6026836134f3565b915061405782613ff0565b604082019050919050565b6000602082019050818103600083015261407b8161403f565b9050919050565b6000815190506140918161347c565b92915050565b6000602082840312156140ad576140ac613468565b5b60006140bb84828501614082565b91505092915050565b60006040820190506140d96000830185613785565b6140e66020830184613677565b9392505050565b6140f681613641565b811461410157600080fd5b50565b600081519050614113816140ed565b92915050565b60006020828403121561412f5761412e613468565b5b600061413d84828501614104565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006141a26024836134f3565b91506141ad82614146565b604082019050919050565b600060208201905081810360008301526141d181614195565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006142346022836134f3565b915061423f826141d8565b604082019050919050565b6000602082019050818103600083015261426381614227565b9050919050565b7f45524332303a20746f6b656e207472616e73666572207768696c65207061757360008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b60006142c66022836134f3565b91506142d18261426a565b604082019050919050565b600060208201905081810360008301526142f5816142b9565b9050919050565b7f45524332303a2073656e64657220626c61636b6c697374656400000000000000600082015250565b60006143326019836134f3565b915061433d826142fc565b602082019050919050565b6000602082019050818103600083015261436181614325565b9050919050565b7f45524332303a20726563697069656e7420626c61636b6c697374656400000000600082015250565b600061439e601c836134f3565b91506143a982614368565b602082019050919050565b600060208201905081810360008301526143cd81614391565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614441816135d5565b92915050565b60006020828403121561445d5761445c613468565b5b600061446b84828501614432565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006144ae82613472565b91506144b983613472565b9250826144c9576144c8614474565b5b828204905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614509816135c3565b82525050565b600061451b8383614500565b60208301905092915050565b6000602082019050919050565b600061453f826144d4565b61454981856144df565b9350614554836144f0565b8060005b8381101561458557815161456c888261450f565b975061457783614527565b925050600181019050614558565b5085935050505092915050565b60006040820190506145a76000830185613677565b81810360208301526145b98184614534565b90509392505050565b600080fd5b6145d082613537565b810181811067ffffffffffffffff821117156145ef576145ee6143d4565b5b80604052505050565b600061460261345e565b905061460e82826145c7565b919050565b600067ffffffffffffffff82111561462e5761462d6143d4565b5b602082029050602081019050919050565b600080fd5b600061465761465284614613565b6145f8565b9050808382526020820190506020840283018581111561467a5761467961463f565b5b835b818110156146a3578061468f8882614082565b84526020840193505060208101905061467c565b5050509392505050565b600082601f8301126146c2576146c16145c2565b5b81516146d2848260208601614644565b91505092915050565b6000602082840312156146f1576146f0613468565b5b600082015167ffffffffffffffff81111561470f5761470e61346d565b5b61471b848285016146ad565b91505092915050565b6000819050919050565b6000819050919050565b600061475361474e61474984614724565b61472e565b613472565b9050919050565b61476381614738565b82525050565b600060a08201905061477e6000830188613677565b61478b602083018761475a565b818103604083015261479d8186614534565b90506147ac6060830185613785565b6147b96080830184613677565b9695505050505050565b60006147ce82613472565b91506147d983613472565b9250828210156147ec576147eb613a1b565b5b828203905092915050565b600060c08201905061480c6000830189613785565b6148196020830188613677565b614826604083018761475a565b614833606083018661475a565b6148406080830185613785565b61484d60a0830184613677565b979650505050505050565b60008060006060848603121561487157614870613468565b5b600061487f86828701614082565b935050602061489086828701614082565b92505060406148a186828701614082565b9150509250925092565b600081905092915050565b50565b60006148c66000836148ab565b91506148d1826148b6565b600082019050919050565b60006148e7826148b9565b9150819050919050565b7f7472616e7366657220746f20206465762077616c6c6574206661696c65640000600082015250565b6000614927601e836134f3565b9150614932826148f1565b602082019050919050565b600060208201905081810360008301526149568161491a565b9050919050565b7f6d617857616c6c6574206c696d69742065786365656465640000000000000000600082015250565b60006149936018836134f3565b915061499e8261495d565b602082019050919050565b600060208201905081810360008301526149c281614986565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006149ff6014836134f3565b9150614a0a826149c9565b602082019050919050565b60006020820190508181036000830152614a2e816149f2565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a916021836134f3565b9150614a9c82614a35565b604082019050919050565b60006020820190508181036000830152614ac081614a84565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000614b236022836134f3565b9150614b2e82614ac7565b604082019050919050565b60006020820190508181036000830152614b5281614b16565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000614b8f6010836134f3565b9150614b9a82614b59565b602082019050919050565b60006020820190508181036000830152614bbe81614b82565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614c216025836134f3565b9150614c2c82614bc5565b604082019050919050565b60006020820190508181036000830152614c5081614c14565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614cb36023836134f3565b9150614cbe82614c57565b604082019050919050565b60006020820190508181036000830152614ce281614ca6565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614d456026836134f3565b9150614d5082614ce9565b604082019050919050565b60006020820190508181036000830152614d7481614d38565b905091905056fea26469706673582212209f2fae5843338dda63b5c7bf0f92cead75f591ff6f7f211465ae814d56c7f3a264736f6c63430008090033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000008da7bd0000000000000000000000000000000000000000000000000000000000000015506c61746f6e6963205175696e74657373656e636500000000000000000000000000000000000000000000000000000000000000000000000000000000000004504c415100000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _tokenName (string): Platonic Quintessence
Arg [1] : _tokenSymbol (string): PLAQ
Arg [2] : _supply (uint256): 9283517

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 00000000000000000000000000000000000000000000000000000000008da7bd
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000015
Arg [4] : 506c61746f6e6963205175696e74657373656e63650000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [6] : 504c415100000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

16141:12316:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26641:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1743:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2681:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2069:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18254:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2864:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26864:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24579:106;;;;;;;;;;;;;:::i;:::-;;1968:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3369:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24958:126;;;;;;;;;;;;;:::i;:::-;;25391:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26143:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27639:136;;;;;;;;;;;;;:::i;:::-;;7605:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25160:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2190:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6889:94;;;;;;;;;;;;;:::i;:::-;;25604:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24759:127;;;;;;;;;;;;;:::i;:::-;;17606:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6657:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1856:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3597:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2331:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26402:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17522:80;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;28303:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27841:138;;;;;;;;;;;;;:::i;:::-;;25879:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27098:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2519:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6997:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16516:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27211:363;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;28087:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26641:160;6807:12;:10;:12::i;:::-;6796:23;;:7;:5;:7::i;:::-;:23;;;6788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26737:3:::1;26719:8;:15;;;;;:::i;:::-;;;;;;;;;;;;;:21;;;;26775:9;26751:8;:21;;;;;:::i;:::-;;;;;;;;;;;;;:33;;;;26641:160:::0;;:::o;1743:100::-;1797:13;1830:5;1823:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1743:100;:::o;2681:169::-;2764:4;2781:39;2790:12;:10;:12::i;:::-;2804:7;2813:6;2781:8;:39::i;:::-;2838:4;2831:11;;2681:169;;;;:::o;2069:108::-;2130:7;2157:12;;2150:19;;2069:108;:::o;18254:28::-;;;;;;;;;;;;;:::o;2864:492::-;3004:4;3021:36;3031:6;3039:9;3050:6;3021:9;:36::i;:::-;3070:24;3097:11;:19;3109:6;3097:19;;;;;;;;;;;;;;;:33;3117:12;:10;:12::i;:::-;3097:33;;;;;;;;;;;;;;;;3070:60;;3169:6;3149:16;:26;;3141:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;3256:57;3265:6;3273:12;:10;:12::i;:::-;3306:6;3287:16;:25;3256:8;:57::i;:::-;3344:4;3337:11;;;2864:492;;;;;:::o;26864:167::-;6807:12;:10;:12::i;:::-;6796:23;;:7;:5;:7::i;:::-;:23;;;6788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26965:3:::1;26946:9;:16;;;;;:::i;:::-;;;;;;;;;;;;;:22;;;;27004:9;26979;:22;;;;;:::i;:::-;;;;;;;;;;;;;:34;;;;26864:167:::0;;:::o;24579:106::-;6807:12;:10;:12::i;:::-;6796:23;;:7;:5;:7::i;:::-;:23;;;6788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24629:48:::1;24647:1;24659:13;;;;;;;;;;;24675:1;24629:9;:48::i;:::-;;24579:106::o:0;1968:93::-;2026:5;2051:2;2044:9;;1968:93;:::o;3369:215::-;3457:4;3474:80;3483:12;:10;:12::i;:::-;3497:7;3543:10;3506:11;:25;3518:12;:10;:12::i;:::-;3506:25;;;;;;;;;;;;;;;:34;3532:7;3506:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;3474:8;:80::i;:::-;3572:4;3565:11;;3369:215;;;;:::o;24958:126::-;6807:12;:10;:12::i;:::-;6796:23;;:7;:5;:7::i;:::-;:23;;;6788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25013:8:::1;:6;:8::i;:::-;25005:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;25066:10;:8;:10::i;:::-;24958:126::o:0;25391:91::-;6807:12;:10;:12::i;:::-;6796:23;;:7;:5;:7::i;:::-;:23;;;6788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25449:25:::1;25455:10;25467:6;25449:5;:25::i;:::-;25391:91:::0;:::o;26143:175::-;6807:12;:10;:12::i;:::-;6796:23;;:7;:5;:7::i;:::-;:23;;;6788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26214:19:::1;26225:7;26214:10;:19::i;:::-;26213:20;26205:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26306:4;26283:11;:20;26295:7;26283:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;26143:175:::0;:::o;27639:136::-;6807:12;:10;:12::i;:::-;6796:23;;:7;:5;:7::i;:::-;:23;;;6788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27697:9:::1;;;;;;;;;;;27696:10;27688:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;27763:4;27751:9;;:16;;;;;;;;;;;;;;;;;;27639:136::o:0;7605:86::-;7652:4;7676:7;;;;;;;;;;;7669:14;;7605:86;:::o;25160:154::-;6807:12;:10;:12::i;:::-;6796:23;;:7;:5;:7::i;:::-;:23;;;6788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25247:5:::1;25238:6;:14;25229:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;25300:6;25291;:15;;;;:::i;:::-;25279:9;:27;;;;25160:154:::0;:::o;2190:127::-;2264:7;2291:9;:18;2301:7;2291:18;;;;;;;;;;;;;;;;2284:25;;2190:127;;;:::o;6889:94::-;6807:12;:10;:12::i;:::-;6796:23;;:7;:5;:7::i;:::-;:23;;;6788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6954:21:::1;6972:1;6954:9;:21::i;:::-;6889:94::o:0;25604:183::-;6807:12;:10;:12::i;:::-;6796:23;;:7;:5;:7::i;:::-;:23;;;6788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25683:9:::1;:18;25693:7;25683:18;;;;;;;;;;;;;;;;;;;;;;;;;25682:19;25674:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;25775:4;25754:9;:18;25764:7;25754:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;25604:183:::0;:::o;24759:127::-;6807:12;:10;:12::i;:::-;6796:23;;:7;:5;:7::i;:::-;:23;;;6788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24813:8:::1;:6;:8::i;:::-;24812:9;24804:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;24870:8;:6;:8::i;:::-;24759:127::o:0;17606:306::-;17677:22;17702:24;:33;17727:7;17702:33;;;;;;;;;;;;17677:58;;17091:6;17780:14;:36;;;;:::i;:::-;17761:15;:55;17757:148;;17878:15;17842:24;:33;17867:7;17842:33;;;;;;;;;;;:51;;;;17757:148;17658:254;17606:306;:::o;6657:87::-;6703:7;6730:6;;;;;;;;;;;6723:13;;6657:87;:::o;1856:104::-;1912:13;1945:7;1938:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1856:104;:::o;3597:413::-;3690:4;3707:24;3734:11;:25;3746:12;:10;:12::i;:::-;3734:25;;;;;;;;;;;;;;;:34;3760:7;3734:34;;;;;;;;;;;;;;;;3707:61;;3807:15;3787:16;:35;;3779:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;3900:67;3909:12;:10;:12::i;:::-;3923:7;3951:15;3932:16;:34;3900:8;:67::i;:::-;3998:4;3991:11;;;3597:413;;;;:::o;2331:175::-;2417:4;2434:42;2444:12;:10;:12::i;:::-;2458:9;2469:6;2434:9;:42::i;:::-;2494:4;2487:11;;2331:175;;;;:::o;26402:177::-;6807:12;:10;:12::i;:::-;6796:23;;:7;:5;:7::i;:::-;:23;;;6788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26478:19:::1;26489:7;26478:10;:19::i;:::-;26470:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;26566:5;26543:11;:20;26555:7;26543:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;26402:177:::0;:::o;17522:80::-;;;:::o;28303:110::-;28361:4;28385:11;:20;28397:7;28385:20;;;;;;;;;;;;;;;;;;;;;;;;;28378:27;;28303:110;;;:::o;27841:138::-;6807:12;:10;:12::i;:::-;6796:23;;:7;:5;:7::i;:::-;:23;;;6788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27899:9:::1;;;;;;;;;;;27891:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;27966:5;27954:9;;:17;;;;;;;;;;;;;;;;;;27841:138::o:0;25879:180::-;6807:12;:10;:12::i;:::-;6796:23;;:7;:5;:7::i;:::-;:23;;;6788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25958:9:::1;:18;25968:7;25958:18;;;;;;;;;;;;;;;;;;;;;;;;;25950:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;26046:5;26025:9;:18;26035:7;26025:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;25879:180:::0;:::o;27098:105::-;6807:12;:10;:12::i;:::-;6796:23;;:7;:5;:7::i;:::-;:23;;;6788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27182:3:::1;27162:10;:17;;;;;:::i;:::-;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;27098:105:::0;:::o;2519:151::-;2608:7;2635:11;:18;2647:5;2635:18;;;;;;;;;;;;;;;:27;2654:7;2635:27;;;;;;;;;;;;;;;;2628:34;;2519:151;;;;:::o;6997:192::-;6807:12;:10;:12::i;:::-;6796:23;;:7;:5;:7::i;:::-;:23;;;6788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7106:1:::1;7086:22;;:8;:22;;;;7078:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7162:19;7172:8;7162:9;:19::i;:::-;6997:192:::0;:::o;16516:24::-;;;;:::o;27211:363::-;6807:12;:10;:12::i;:::-;6796:23;;:7;:5;:7::i;:::-;:23;;;6788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27308:3:::1;27290:22;;:6;:22;;;27286:124;;;27337:7;:5;:7::i;:::-;27329:25;;:48;27355:21;27329:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;27392:7;;27286:124;27420:17;27447:6;27420:34;;27465:15;27483:10;:20;;;27512:4;27483:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27465:53;;27529:10;:19;;;27549:7;:5;:7::i;:::-;27558;27529:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;27272:302;;6867:1;27211:363:::0;:::o;28087:111::-;28148:4;28172:9;:18;28182:7;28172:18;;;;;;;;;;;;;;;;;;;;;;;;;28165:25;;28087:111;;;:::o;1112:98::-;1165:7;1192:10;1185:17;;1112:98;:::o;5785:380::-;5938:1;5921:19;;:5;:19;;;;5913:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6019:1;6000:21;;:7;:21;;;;5992:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6103:6;6073:11;:18;6085:5;6073:18;;;;;;;;;;;;;;;:27;6092:7;6073:27;;;;;;;;;;;;;;;:36;;;;6141:7;6125:32;;6134:5;6125:32;;;6150:6;6125:32;;;;;;:::i;:::-;;;;;;;;5785:380;;;:::o;23901:595::-;24051:8;:6;:8::i;:::-;24050:9;24042:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;24118:25;24132:10;24118:13;:25::i;:::-;24117:26;24109:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;24193:24;24207:9;24193:13;:24::i;:::-;24192:25;24184:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;24270:24;24284:9;24270:13;:24::i;:::-;24269:25;24261:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;24348:9;;;;;;;;;;;24345:89;;;24383:36;24393:6;24401:9;24412:6;24383:9;:36::i;:::-;24374:45;;24345:89;24446:42;24462:6;24470:9;24481:6;24446:15;:42::i;:::-;23901:595;;;:::o;19428:4461::-;19506:7;19526:25;19568:1;19554:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19526:44;;19603:4;19581:8;19590:1;19581:11;;;;;;;;:::i;:::-;;;;;;;:27;;;;;;;;;;;19633:17;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19619:8;19628:1;19619:11;;;;;;;;:::i;:::-;;;;;;;:38;;;;;;;;;;;19682:16;19693:4;19682:10;:16::i;:::-;19681:17;:36;;;;;19703:14;19714:2;19703:10;:14::i;:::-;19702:15;19681:36;19678:4170;;;19734:11;19760:16;19788:11;;19779:6;:20;;;;:::i;:::-;19760:39;;19833:13;;;;;;;;;;;19817:30;;:4;:30;;;19814:3814;;;19886:8;:15;;;;;:::i;:::-;;;;;;;;;;;;;;19875:8;:26;;;;:::i;:::-;19868:33;;;;;:::i;:::-;;;19938:8;:21;;;;;:::i;:::-;;;;;;;;;;;;;;19927:8;:32;;;;:::i;:::-;19920:39;;;;;:::i;:::-;;;20022:1;20016:3;:7;20013:93;;;20048:35;20058:4;20072;20079:3;20048:9;:35::i;:::-;20013:93;20184:8;:15;;;;;:::i;:::-;;;;;;;;;;;;;;20173:8;:26;;;;:::i;:::-;20160:9;;:39;;;;;;;:::i;:::-;;;;;;;;20248:8;:21;;;;;:::i;:::-;;;;;;;;;;;;;;20237:8;:32;;;;:::i;:::-;20218:15;;:51;;;;;;;:::i;:::-;;;;;;;;19814:3814;;;20310:13;;;;;;;;;;;20296:28;;:2;:28;;;20293:3335;;;20381:9;:16;;;;;:::i;:::-;;;;;;;;;;;;;;20370:8;:27;;;;:::i;:::-;20363:34;;;;;:::i;:::-;;;20434:9;:22;;;;;:::i;:::-;;;;;;;;;;;;;;20423:8;:33;;;;:::i;:::-;20416:40;;;;;:::i;:::-;;;20520:1;20514:3;:7;20511:93;;;20546:35;20556:4;20570;20577:3;20546:9;:35::i;:::-;20511:93;20681:9;:16;;;;;:::i;:::-;;;;;;;;;;;;;;20670:8;:27;;;;:::i;:::-;20657:9;;:40;;;;;;;:::i;:::-;;;;;;;;20746:9;:22;;;;;:::i;:::-;;;;;;;;;;;;;;20735:8;:33;;;;:::i;:::-;20716:15;;:52;;;;;;;:::i;:::-;;;;;;;;20823:14;20853:15;;20841:9;;:27;;;;:::i;:::-;20823:45;;20918:1;20908:6;:11;20905:29;;;20928:6;20921:13;;;;;;;;20905:29;20971:16;20990:17;;;;;;;;;;;:31;;;21035:15;;21023:9;;:27;;;;:::i;:::-;21052:8;20990:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21062:1;20990:74;;;;;;;;:::i;:::-;;;;;;;;20971:93;;21116:13;;21104:8;:25;21101:2494;;21154:20;21177:21;21154:44;;21223:14;21270:1;21252:15;;:19;;;;:::i;:::-;21240:9;;:31;;;;:::i;:::-;21223:48;;21317:59;21334:4;21349:17;;;;;;;;;;;21369:6;21317:8;:59::i;:::-;21413:17;;;;;;;;;;;:39;;;21479:6;21512:1;21540:8;21583:4;21615:15;21413:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21698:17;21742:12;21718:21;:36;;;;:::i;:::-;21698:56;;21799:22;21842:1;21824:15;;:19;;;;:::i;:::-;21799:44;;21866:20;21947:6;21936;21926;21922:1;21904:15;;:19;;;;:::i;:::-;:28;;;;:::i;:::-;21903:39;;;;:::i;:::-;21890:9;:53;;;;:::i;:::-;21889:64;;;;:::i;:::-;21866:87;;22020:14;22085:6;22074;22064;22052:9;;:18;;;;:::i;:::-;22051:29;;;;:::i;:::-;22038:9;:43;;;;:::i;:::-;22037:54;;;;:::i;:::-;22020:71;;22157:67;22174:4;22189:17;;;;;;;;;;;22209:14;22157:8;:67::i;:::-;22269:17;;;;;;;;;;;:33;;;22310:12;22358:4;22390:14;22431:1;22459;22487:10;:23;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;22537:15;22269:306;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22620:23;22688:14;22679:6;:23;;;;:::i;:::-;22659:15;;22647:9;;:27;;;;:::i;:::-;22646:57;;;;:::i;:::-;22620:83;;22769:1;22751:15;:19;22748:135;;;22799:60;22817:4;22824:10;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;22843:15;22799:9;:60::i;:::-;22748:135;22949:12;22966:10;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:22;;22996:6;22966:41;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22948:59;;;23037:7;23029:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;23188:1;23172:12;23163:6;:21;;;;:::i;:::-;23149:9;:36;;;;:::i;:::-;:40;23146:262;;;23218:13;23236:10;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:22;;23288:12;23279:6;:21;;;;:::i;:::-;23266:9;:35;;;;:::i;:::-;23236:70;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23217:89;;;23341:8;23333:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;23191:217;23146:262;23510:1;23498:9;:13;;;;23552:1;23534:15;:19;;;;21131:2464;;;;;;;;21101:2494;20326:3302;;20293:3335;19814:3814;23666:3;23656:13;;;;;:::i;:::-;;;23702;;;;;;;;;;;23688:28;;:2;:28;;;23684:140;;23770:9;;23760:6;23744:13;23754:2;23744:9;:13::i;:::-;:22;;;;:::i;:::-;:35;;23736:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;23684:140;19719:4129;;19678:4170;23875:6;23868:13;;;19428:4461;;;;;;:::o;8051:120::-;7853:8;:6;:8::i;:::-;7845:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;8120:5:::1;8110:7;;:15;;;;;;;;;;;;;;;;;;8141:22;8150:12;:10;:12::i;:::-;8141:22;;;;;;:::i;:::-;;;;;;;;8051:120::o:0;5180:591::-;5283:1;5264:21;;:7;:21;;;;5256:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5336:49;5357:7;5374:1;5378:6;5336:20;:49::i;:::-;5398:22;5423:9;:18;5433:7;5423:18;;;;;;;;;;;;;;;;5398:43;;5478:6;5460:14;:24;;5452:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5597:6;5580:14;:23;5559:9;:18;5569:7;5559:18;;;;;;;;;;;;;;;:44;;;;5641:6;5625:12;;:22;;;;;;;:::i;:::-;;;;;;;;5691:1;5665:37;;5674:7;5665:37;;;5695:6;5665:37;;;;;;:::i;:::-;;;;;;;;5715:48;5735:7;5752:1;5756:6;5715:19;:48::i;:::-;5245:526;5180:591;;:::o;7197:174::-;7254:16;7273:6;;;;;;;;;;;7254:25;;7299:8;7290:6;;:17;;;;;;;;;;;;;;;;;;7354:8;7323:40;;7344:8;7323:40;;;;;;;;;;;;7243:128;7197:174;:::o;7920:118::-;7749:8;:6;:8::i;:::-;7748:9;7740:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;7990:4:::1;7980:7;;:14;;;;;;;;;;;;;;;;;;8010:20;8017:12;:10;:12::i;:::-;8010:20;;;;;;:::i;:::-;;;;;;;;7920:118::o:0;4022:733::-;4180:1;4162:20;;:6;:20;;;;4154:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;4264:1;4243:23;;:9;:23;;;;4235:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4319:47;4340:6;4348:9;4359:6;4319:20;:47::i;:::-;4379:21;4403:9;:17;4413:6;4403:17;;;;;;;;;;;;;;;;4379:41;;4456:6;4439:13;:23;;4431:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;4577:6;4561:13;:22;4541:9;:17;4551:6;4541:17;;;;;;;;;;;;;;;:42;;;;4629:6;4605:9;:20;4615:9;4605:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;4670:9;4653:35;;4662:6;4653:35;;;4681:6;4653:35;;;;;;:::i;:::-;;;;;;;;4701:46;4721:6;4729:9;4740:6;4701:19;:46::i;:::-;4143:612;4022:733;;;:::o;6177:125::-;;;;:::o;6316:124::-;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:99::-;1222:6;1256:5;1250:12;1240:22;;1170:99;;;:::o;1275:169::-;1359:11;1393:6;1388:3;1381:19;1433:4;1428:3;1424:14;1409:29;;1275:169;;;;:::o;1450:307::-;1518:1;1528:113;1542:6;1539:1;1536:13;1528:113;;;1627:1;1622:3;1618:11;1612:18;1608:1;1603:3;1599:11;1592:39;1564:2;1561:1;1557:10;1552:15;;1528:113;;;1659:6;1656:1;1653:13;1650:101;;;1739:1;1730:6;1725:3;1721:16;1714:27;1650:101;1499:258;1450:307;;;:::o;1763:102::-;1804:6;1855:2;1851:7;1846:2;1839:5;1835:14;1831:28;1821:38;;1763:102;;;:::o;1871:364::-;1959:3;1987:39;2020:5;1987:39;:::i;:::-;2042:71;2106:6;2101:3;2042:71;:::i;:::-;2035:78;;2122:52;2167:6;2162:3;2155:4;2148:5;2144:16;2122:52;:::i;:::-;2199:29;2221:6;2199:29;:::i;:::-;2194:3;2190:39;2183:46;;1963:272;1871:364;;;;:::o;2241:313::-;2354:4;2392:2;2381:9;2377:18;2369:26;;2441:9;2435:4;2431:20;2427:1;2416:9;2412:17;2405:47;2469:78;2542:4;2533:6;2469:78;:::i;:::-;2461:86;;2241:313;;;;:::o;2560:126::-;2597:7;2637:42;2630:5;2626:54;2615:65;;2560:126;;;:::o;2692:96::-;2729:7;2758:24;2776:5;2758:24;:::i;:::-;2747:35;;2692:96;;;:::o;2794:122::-;2867:24;2885:5;2867:24;:::i;:::-;2860:5;2857:35;2847:63;;2906:1;2903;2896:12;2847:63;2794:122;:::o;2922:139::-;2968:5;3006:6;2993:20;2984:29;;3022:33;3049:5;3022:33;:::i;:::-;2922:139;;;;:::o;3067:474::-;3135:6;3143;3192:2;3180:9;3171:7;3167:23;3163:32;3160:119;;;3198:79;;:::i;:::-;3160:119;3318:1;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3289:117;3445:2;3471:53;3516:7;3507:6;3496:9;3492:22;3471:53;:::i;:::-;3461:63;;3416:118;3067:474;;;;;:::o;3547:90::-;3581:7;3624:5;3617:13;3610:21;3599:32;;3547:90;;;:::o;3643:109::-;3724:21;3739:5;3724:21;:::i;:::-;3719:3;3712:34;3643:109;;:::o;3758:210::-;3845:4;3883:2;3872:9;3868:18;3860:26;;3896:65;3958:1;3947:9;3943:17;3934:6;3896:65;:::i;:::-;3758:210;;;;:::o;3974:118::-;4061:24;4079:5;4061:24;:::i;:::-;4056:3;4049:37;3974:118;;:::o;4098:222::-;4191:4;4229:2;4218:9;4214:18;4206:26;;4242:71;4310:1;4299:9;4295:17;4286:6;4242:71;:::i;:::-;4098:222;;;;:::o;4326:619::-;4403:6;4411;4419;4468:2;4456:9;4447:7;4443:23;4439:32;4436:119;;;4474:79;;:::i;:::-;4436:119;4594:1;4619:53;4664:7;4655:6;4644:9;4640:22;4619:53;:::i;:::-;4609:63;;4565:117;4721:2;4747:53;4792:7;4783:6;4772:9;4768:22;4747:53;:::i;:::-;4737:63;;4692:118;4849:2;4875:53;4920:7;4911:6;4900:9;4896:22;4875:53;:::i;:::-;4865:63;;4820:118;4326:619;;;;;:::o;4951:86::-;4986:7;5026:4;5019:5;5015:16;5004:27;;4951:86;;;:::o;5043:112::-;5126:22;5142:5;5126:22;:::i;:::-;5121:3;5114:35;5043:112;;:::o;5161:214::-;5250:4;5288:2;5277:9;5273:18;5265:26;;5301:67;5365:1;5354:9;5350:17;5341:6;5301:67;:::i;:::-;5161:214;;;;:::o;5381:329::-;5440:6;5489:2;5477:9;5468:7;5464:23;5460:32;5457:119;;;5495:79;;:::i;:::-;5457:119;5615:1;5640:53;5685:7;5676:6;5665:9;5661:22;5640:53;:::i;:::-;5630:63;;5586:117;5381:329;;;;:::o;5716:::-;5775:6;5824:2;5812:9;5803:7;5799:23;5795:32;5792:119;;;5830:79;;:::i;:::-;5792:119;5950:1;5975:53;6020:7;6011:6;6000:9;5996:22;5975:53;:::i;:::-;5965:63;;5921:117;5716:329;;;;:::o;6051:118::-;6138:24;6156:5;6138:24;:::i;:::-;6133:3;6126:37;6051:118;;:::o;6175:222::-;6268:4;6306:2;6295:9;6291:18;6283:26;;6319:71;6387:1;6376:9;6372:17;6363:6;6319:71;:::i;:::-;6175:222;;;;:::o;6403:474::-;6471:6;6479;6528:2;6516:9;6507:7;6503:23;6499:32;6496:119;;;6534:79;;:::i;:::-;6496:119;6654:1;6679:53;6724:7;6715:6;6704:9;6700:22;6679:53;:::i;:::-;6669:63;;6625:117;6781:2;6807:53;6852:7;6843:6;6832:9;6828:22;6807:53;:::i;:::-;6797:63;;6752:118;6403:474;;;;;:::o;6883:182::-;7023:34;7019:1;7011:6;7007:14;7000:58;6883:182;:::o;7071:366::-;7213:3;7234:67;7298:2;7293:3;7234:67;:::i;:::-;7227:74;;7310:93;7399:3;7310:93;:::i;:::-;7428:2;7423:3;7419:12;7412:19;;7071:366;;;:::o;7443:419::-;7609:4;7647:2;7636:9;7632:18;7624:26;;7696:9;7690:4;7686:20;7682:1;7671:9;7667:17;7660:47;7724:131;7850:4;7724:131;:::i;:::-;7716:139;;7443:419;;;:::o;7868:148::-;7970:11;8007:3;7992:18;;7868:148;;;;:::o;8022:153::-;8162:5;8158:1;8150:6;8146:14;8139:29;8022:153;:::o;8181:400::-;8341:3;8362:84;8444:1;8439:3;8362:84;:::i;:::-;8355:91;;8455:93;8544:3;8455:93;:::i;:::-;8573:1;8568:3;8564:11;8557:18;;8181:400;;;:::o;8587:381::-;8772:3;8794:148;8938:3;8794:148;:::i;:::-;8787:155;;8959:3;8952:10;;8587:381;;;:::o;8974:159::-;9114:11;9110:1;9102:6;9098:14;9091:35;8974:159;:::o;9139:400::-;9299:3;9320:84;9402:1;9397:3;9320:84;:::i;:::-;9313:91;;9413:93;9502:3;9413:93;:::i;:::-;9531:1;9526:3;9522:11;9515:18;;9139:400;;;:::o;9545:381::-;9730:3;9752:148;9896:3;9752:148;:::i;:::-;9745:155;;9917:3;9910:10;;9545:381;;;:::o;9932:180::-;9980:77;9977:1;9970:88;10077:4;10074:1;10067:15;10101:4;10098:1;10091:15;10118:320;10162:6;10199:1;10193:4;10189:12;10179:22;;10246:1;10240:4;10236:12;10267:18;10257:81;;10323:4;10315:6;10311:17;10301:27;;10257:81;10385:2;10377:6;10374:14;10354:18;10351:38;10348:84;;;10404:18;;:::i;:::-;10348:84;10169:269;10118:320;;;:::o;10444:227::-;10584:34;10580:1;10572:6;10568:14;10561:58;10653:10;10648:2;10640:6;10636:15;10629:35;10444:227;:::o;10677:366::-;10819:3;10840:67;10904:2;10899:3;10840:67;:::i;:::-;10833:74;;10916:93;11005:3;10916:93;:::i;:::-;11034:2;11029:3;11025:12;11018:19;;10677:366;;;:::o;11049:419::-;11215:4;11253:2;11242:9;11238:18;11230:26;;11302:9;11296:4;11292:20;11288:1;11277:9;11273:17;11266:47;11330:131;11456:4;11330:131;:::i;:::-;11322:139;;11049:419;;;:::o;11474:180::-;11522:77;11519:1;11512:88;11619:4;11616:1;11609:15;11643:4;11640:1;11633:15;11660:305;11700:3;11719:20;11737:1;11719:20;:::i;:::-;11714:25;;11753:20;11771:1;11753:20;:::i;:::-;11748:25;;11907:1;11839:66;11835:74;11832:1;11829:81;11826:107;;;11913:18;;:::i;:::-;11826:107;11957:1;11954;11950:9;11943:16;;11660:305;;;;:::o;11971:179::-;12111:31;12107:1;12099:6;12095:14;12088:55;11971:179;:::o;12156:366::-;12298:3;12319:67;12383:2;12378:3;12319:67;:::i;:::-;12312:74;;12395:93;12484:3;12395:93;:::i;:::-;12513:2;12508:3;12504:12;12497:19;;12156:366;;;:::o;12528:419::-;12694:4;12732:2;12721:9;12717:18;12709:26;;12781:9;12775:4;12771:20;12767:1;12756:9;12752:17;12745:47;12809:131;12935:4;12809:131;:::i;:::-;12801:139;;12528:419;;;:::o;12953:221::-;13093:34;13089:1;13081:6;13077:14;13070:58;13162:4;13157:2;13149:6;13145:15;13138:29;12953:221;:::o;13180:366::-;13322:3;13343:67;13407:2;13402:3;13343:67;:::i;:::-;13336:74;;13419:93;13508:3;13419:93;:::i;:::-;13537:2;13532:3;13528:12;13521:19;;13180:366;;;:::o;13552:419::-;13718:4;13756:2;13745:9;13741:18;13733:26;;13805:9;13799:4;13795:20;13791:1;13780:9;13776:17;13769:47;13833:131;13959:4;13833:131;:::i;:::-;13825:139;;13552:419;;;:::o;13977:179::-;14117:31;14113:1;14105:6;14101:14;14094:55;13977:179;:::o;14162:366::-;14304:3;14325:67;14389:2;14384:3;14325:67;:::i;:::-;14318:74;;14401:93;14490:3;14401:93;:::i;:::-;14519:2;14514:3;14510:12;14503:19;;14162:366;;;:::o;14534:419::-;14700:4;14738:2;14727:9;14723:18;14715:26;;14787:9;14781:4;14777:20;14773:1;14762:9;14758:17;14751:47;14815:131;14941:4;14815:131;:::i;:::-;14807:139;;14534:419;;;:::o;14959:161::-;15099:13;15095:1;15087:6;15083:14;15076:37;14959:161;:::o;15126:366::-;15268:3;15289:67;15353:2;15348:3;15289:67;:::i;:::-;15282:74;;15365:93;15454:3;15365:93;:::i;:::-;15483:2;15478:3;15474:12;15467:19;;15126:366;;;:::o;15498:419::-;15664:4;15702:2;15691:9;15687:18;15679:26;;15751:9;15745:4;15741:20;15737:1;15726:9;15722:17;15715:47;15779:131;15905:4;15779:131;:::i;:::-;15771:139;;15498:419;;;:::o;15923:348::-;15963:7;15986:20;16004:1;15986:20;:::i;:::-;15981:25;;16020:20;16038:1;16020:20;:::i;:::-;16015:25;;16208:1;16140:66;16136:74;16133:1;16130:81;16125:1;16118:9;16111:17;16107:105;16104:131;;;16215:18;;:::i;:::-;16104:131;16263:1;16260;16256:9;16245:20;;15923:348;;;;:::o;16277:224::-;16417:34;16413:1;16405:6;16401:14;16394:58;16486:7;16481:2;16473:6;16469:15;16462:32;16277:224;:::o;16507:366::-;16649:3;16670:67;16734:2;16729:3;16670:67;:::i;:::-;16663:74;;16746:93;16835:3;16746:93;:::i;:::-;16864:2;16859:3;16855:12;16848:19;;16507:366;;;:::o;16879:419::-;17045:4;17083:2;17072:9;17068:18;17060:26;;17132:9;17126:4;17122:20;17118:1;17107:9;17103:17;17096:47;17160:131;17286:4;17160:131;:::i;:::-;17152:139;;16879:419;;;:::o;17304:220::-;17444:34;17440:1;17432:6;17428:14;17421:58;17513:3;17508:2;17500:6;17496:15;17489:28;17304:220;:::o;17530:366::-;17672:3;17693:67;17757:2;17752:3;17693:67;:::i;:::-;17686:74;;17769:93;17858:3;17769:93;:::i;:::-;17887:2;17882:3;17878:12;17871:19;;17530:366;;;:::o;17902:419::-;18068:4;18106:2;18095:9;18091:18;18083:26;;18155:9;18149:4;18145:20;18141:1;18130:9;18126:17;18119:47;18183:131;18309:4;18183:131;:::i;:::-;18175:139;;17902:419;;;:::o;18327:224::-;18467:34;18463:1;18455:6;18451:14;18444:58;18536:7;18531:2;18523:6;18519:15;18512:32;18327:224;:::o;18557:366::-;18699:3;18720:67;18784:2;18779:3;18720:67;:::i;:::-;18713:74;;18796:93;18885:3;18796:93;:::i;:::-;18914:2;18909:3;18905:12;18898:19;;18557:366;;;:::o;18929:419::-;19095:4;19133:2;19122:9;19118:18;19110:26;;19182:9;19176:4;19172:20;19168:1;19157:9;19153:17;19146:47;19210:131;19336:4;19210:131;:::i;:::-;19202:139;;18929:419;;;:::o;19354:180::-;19494:32;19490:1;19482:6;19478:14;19471:56;19354:180;:::o;19540:366::-;19682:3;19703:67;19767:2;19762:3;19703:67;:::i;:::-;19696:74;;19779:93;19868:3;19779:93;:::i;:::-;19897:2;19892:3;19888:12;19881:19;;19540:366;;;:::o;19912:419::-;20078:4;20116:2;20105:9;20101:18;20093:26;;20165:9;20159:4;20155:20;20151:1;20140:9;20136:17;20129:47;20193:131;20319:4;20193:131;:::i;:::-;20185:139;;19912:419;;;:::o;20337:180::-;20477:32;20473:1;20465:6;20461:14;20454:56;20337:180;:::o;20523:366::-;20665:3;20686:67;20750:2;20745:3;20686:67;:::i;:::-;20679:74;;20762:93;20851:3;20762:93;:::i;:::-;20880:2;20875:3;20871:12;20864:19;;20523:366;;;:::o;20895:419::-;21061:4;21099:2;21088:9;21084:18;21076:26;;21148:9;21142:4;21138:20;21134:1;21123:9;21119:17;21112:47;21176:131;21302:4;21176:131;:::i;:::-;21168:139;;20895:419;;;:::o;21320:220::-;21460:34;21456:1;21448:6;21444:14;21437:58;21529:3;21524:2;21516:6;21512:15;21505:28;21320:220;:::o;21546:366::-;21688:3;21709:67;21773:2;21768:3;21709:67;:::i;:::-;21702:74;;21785:93;21874:3;21785:93;:::i;:::-;21903:2;21898:3;21894:12;21887:19;;21546:366;;;:::o;21918:419::-;22084:4;22122:2;22111:9;22107:18;22099:26;;22171:9;22165:4;22161:20;22157:1;22146:9;22142:17;22135:47;22199:131;22325:4;22199:131;:::i;:::-;22191:139;;21918:419;;;:::o;22343:225::-;22483:34;22479:1;22471:6;22467:14;22460:58;22552:8;22547:2;22539:6;22535:15;22528:33;22343:225;:::o;22574:366::-;22716:3;22737:67;22801:2;22796:3;22737:67;:::i;:::-;22730:74;;22813:93;22902:3;22813:93;:::i;:::-;22931:2;22926:3;22922:12;22915:19;;22574:366;;;:::o;22946:419::-;23112:4;23150:2;23139:9;23135:18;23127:26;;23199:9;23193:4;23189:20;23185:1;23174:9;23170:17;23163:47;23227:131;23353:4;23227:131;:::i;:::-;23219:139;;22946:419;;;:::o;23371:143::-;23428:5;23459:6;23453:13;23444:22;;23475:33;23502:5;23475:33;:::i;:::-;23371:143;;;;:::o;23520:351::-;23590:6;23639:2;23627:9;23618:7;23614:23;23610:32;23607:119;;;23645:79;;:::i;:::-;23607:119;23765:1;23790:64;23846:7;23837:6;23826:9;23822:22;23790:64;:::i;:::-;23780:74;;23736:128;23520:351;;;;:::o;23877:332::-;23998:4;24036:2;24025:9;24021:18;24013:26;;24049:71;24117:1;24106:9;24102:17;24093:6;24049:71;:::i;:::-;24130:72;24198:2;24187:9;24183:18;24174:6;24130:72;:::i;:::-;23877:332;;;;;:::o;24215:116::-;24285:21;24300:5;24285:21;:::i;:::-;24278:5;24275:32;24265:60;;24321:1;24318;24311:12;24265:60;24215:116;:::o;24337:137::-;24391:5;24422:6;24416:13;24407:22;;24438:30;24462:5;24438:30;:::i;:::-;24337:137;;;;:::o;24480:345::-;24547:6;24596:2;24584:9;24575:7;24571:23;24567:32;24564:119;;;24602:79;;:::i;:::-;24564:119;24722:1;24747:61;24800:7;24791:6;24780:9;24776:22;24747:61;:::i;:::-;24737:71;;24693:125;24480:345;;;;:::o;24831:223::-;24971:34;24967:1;24959:6;24955:14;24948:58;25040:6;25035:2;25027:6;25023:15;25016:31;24831:223;:::o;25060:366::-;25202:3;25223:67;25287:2;25282:3;25223:67;:::i;:::-;25216:74;;25299:93;25388:3;25299:93;:::i;:::-;25417:2;25412:3;25408:12;25401:19;;25060:366;;;:::o;25432:419::-;25598:4;25636:2;25625:9;25621:18;25613:26;;25685:9;25679:4;25675:20;25671:1;25660:9;25656:17;25649:47;25713:131;25839:4;25713:131;:::i;:::-;25705:139;;25432:419;;;:::o;25857:221::-;25997:34;25993:1;25985:6;25981:14;25974:58;26066:4;26061:2;26053:6;26049:15;26042:29;25857:221;:::o;26084:366::-;26226:3;26247:67;26311:2;26306:3;26247:67;:::i;:::-;26240:74;;26323:93;26412:3;26323:93;:::i;:::-;26441:2;26436:3;26432:12;26425:19;;26084:366;;;:::o;26456:419::-;26622:4;26660:2;26649:9;26645:18;26637:26;;26709:9;26703:4;26699:20;26695:1;26684:9;26680:17;26673:47;26737:131;26863:4;26737:131;:::i;:::-;26729:139;;26456:419;;;:::o;26881:221::-;27021:34;27017:1;27009:6;27005:14;26998:58;27090:4;27085:2;27077:6;27073:15;27066:29;26881:221;:::o;27108:366::-;27250:3;27271:67;27335:2;27330:3;27271:67;:::i;:::-;27264:74;;27347:93;27436:3;27347:93;:::i;:::-;27465:2;27460:3;27456:12;27449:19;;27108:366;;;:::o;27480:419::-;27646:4;27684:2;27673:9;27669:18;27661:26;;27733:9;27727:4;27723:20;27719:1;27708:9;27704:17;27697:47;27761:131;27887:4;27761:131;:::i;:::-;27753:139;;27480:419;;;:::o;27905:175::-;28045:27;28041:1;28033:6;28029:14;28022:51;27905:175;:::o;28086:366::-;28228:3;28249:67;28313:2;28308:3;28249:67;:::i;:::-;28242:74;;28325:93;28414:3;28325:93;:::i;:::-;28443:2;28438:3;28434:12;28427:19;;28086:366;;;:::o;28458:419::-;28624:4;28662:2;28651:9;28647:18;28639:26;;28711:9;28705:4;28701:20;28697:1;28686:9;28682:17;28675:47;28739:131;28865:4;28739:131;:::i;:::-;28731:139;;28458:419;;;:::o;28883:178::-;29023:30;29019:1;29011:6;29007:14;29000:54;28883:178;:::o;29067:366::-;29209:3;29230:67;29294:2;29289:3;29230:67;:::i;:::-;29223:74;;29306:93;29395:3;29306:93;:::i;:::-;29424:2;29419:3;29415:12;29408:19;;29067:366;;;:::o;29439:419::-;29605:4;29643:2;29632:9;29628:18;29620:26;;29692:9;29686:4;29682:20;29678:1;29667:9;29663:17;29656:47;29720:131;29846:4;29720:131;:::i;:::-;29712:139;;29439:419;;;:::o;29864:180::-;29912:77;29909:1;29902:88;30009:4;30006:1;29999:15;30033:4;30030:1;30023:15;30050:180;30098:77;30095:1;30088:88;30195:4;30192:1;30185:15;30219:4;30216:1;30209:15;30236:143;30293:5;30324:6;30318:13;30309:22;;30340:33;30367:5;30340:33;:::i;:::-;30236:143;;;;:::o;30385:351::-;30455:6;30504:2;30492:9;30483:7;30479:23;30475:32;30472:119;;;30510:79;;:::i;:::-;30472:119;30630:1;30655:64;30711:7;30702:6;30691:9;30687:22;30655:64;:::i;:::-;30645:74;;30601:128;30385:351;;;;:::o;30742:180::-;30790:77;30787:1;30780:88;30887:4;30884:1;30877:15;30911:4;30908:1;30901:15;30928:185;30968:1;30985:20;31003:1;30985:20;:::i;:::-;30980:25;;31019:20;31037:1;31019:20;:::i;:::-;31014:25;;31058:1;31048:35;;31063:18;;:::i;:::-;31048:35;31105:1;31102;31098:9;31093:14;;30928:185;;;;:::o;31119:114::-;31186:6;31220:5;31214:12;31204:22;;31119:114;;;:::o;31239:184::-;31338:11;31372:6;31367:3;31360:19;31412:4;31407:3;31403:14;31388:29;;31239:184;;;;:::o;31429:132::-;31496:4;31519:3;31511:11;;31549:4;31544:3;31540:14;31532:22;;31429:132;;;:::o;31567:108::-;31644:24;31662:5;31644:24;:::i;:::-;31639:3;31632:37;31567:108;;:::o;31681:179::-;31750:10;31771:46;31813:3;31805:6;31771:46;:::i;:::-;31849:4;31844:3;31840:14;31826:28;;31681:179;;;;:::o;31866:113::-;31936:4;31968;31963:3;31959:14;31951:22;;31866:113;;;:::o;32015:732::-;32134:3;32163:54;32211:5;32163:54;:::i;:::-;32233:86;32312:6;32307:3;32233:86;:::i;:::-;32226:93;;32343:56;32393:5;32343:56;:::i;:::-;32422:7;32453:1;32438:284;32463:6;32460:1;32457:13;32438:284;;;32539:6;32533:13;32566:63;32625:3;32610:13;32566:63;:::i;:::-;32559:70;;32652:60;32705:6;32652:60;:::i;:::-;32642:70;;32498:224;32485:1;32482;32478:9;32473:14;;32438:284;;;32442:14;32738:3;32731:10;;32139:608;;;32015:732;;;;:::o;32753:483::-;32924:4;32962:2;32951:9;32947:18;32939:26;;32975:71;33043:1;33032:9;33028:17;33019:6;32975:71;:::i;:::-;33093:9;33087:4;33083:20;33078:2;33067:9;33063:18;33056:48;33121:108;33224:4;33215:6;33121:108;:::i;:::-;33113:116;;32753:483;;;;;:::o;33242:117::-;33351:1;33348;33341:12;33365:281;33448:27;33470:4;33448:27;:::i;:::-;33440:6;33436:40;33578:6;33566:10;33563:22;33542:18;33530:10;33527:34;33524:62;33521:88;;;33589:18;;:::i;:::-;33521:88;33629:10;33625:2;33618:22;33408:238;33365:281;;:::o;33652:129::-;33686:6;33713:20;;:::i;:::-;33703:30;;33742:33;33770:4;33762:6;33742:33;:::i;:::-;33652:129;;;:::o;33787:311::-;33864:4;33954:18;33946:6;33943:30;33940:56;;;33976:18;;:::i;:::-;33940:56;34026:4;34018:6;34014:17;34006:25;;34086:4;34080;34076:15;34068:23;;33787:311;;;:::o;34104:117::-;34213:1;34210;34203:12;34244:732;34351:5;34376:81;34392:64;34449:6;34392:64;:::i;:::-;34376:81;:::i;:::-;34367:90;;34477:5;34506:6;34499:5;34492:21;34540:4;34533:5;34529:16;34522:23;;34593:4;34585:6;34581:17;34573:6;34569:30;34622:3;34614:6;34611:15;34608:122;;;34641:79;;:::i;:::-;34608:122;34756:6;34739:231;34773:6;34768:3;34765:15;34739:231;;;34848:3;34877:48;34921:3;34909:10;34877:48;:::i;:::-;34872:3;34865:61;34955:4;34950:3;34946:14;34939:21;;34815:155;34799:4;34794:3;34790:14;34783:21;;34739:231;;;34743:21;34357:619;;34244:732;;;;;:::o;34999:385::-;35081:5;35130:3;35123:4;35115:6;35111:17;35107:27;35097:122;;35138:79;;:::i;:::-;35097:122;35248:6;35242:13;35273:105;35374:3;35366:6;35359:4;35351:6;35347:17;35273:105;:::i;:::-;35264:114;;35087:297;34999:385;;;;:::o;35390:554::-;35485:6;35534:2;35522:9;35513:7;35509:23;35505:32;35502:119;;;35540:79;;:::i;:::-;35502:119;35681:1;35670:9;35666:17;35660:24;35711:18;35703:6;35700:30;35697:117;;;35733:79;;:::i;:::-;35697:117;35838:89;35919:7;35910:6;35899:9;35895:22;35838:89;:::i;:::-;35828:99;;35631:306;35390:554;;;;:::o;35950:85::-;35995:7;36024:5;36013:16;;35950:85;;;:::o;36041:60::-;36069:3;36090:5;36083:12;;36041:60;;;:::o;36107:158::-;36165:9;36198:61;36216:42;36225:32;36251:5;36225:32;:::i;:::-;36216:42;:::i;:::-;36198:61;:::i;:::-;36185:74;;36107:158;;;:::o;36271:147::-;36366:45;36405:5;36366:45;:::i;:::-;36361:3;36354:58;36271:147;;:::o;36424:831::-;36687:4;36725:3;36714:9;36710:19;36702:27;;36739:71;36807:1;36796:9;36792:17;36783:6;36739:71;:::i;:::-;36820:80;36896:2;36885:9;36881:18;36872:6;36820:80;:::i;:::-;36947:9;36941:4;36937:20;36932:2;36921:9;36917:18;36910:48;36975:108;37078:4;37069:6;36975:108;:::i;:::-;36967:116;;37093:72;37161:2;37150:9;37146:18;37137:6;37093:72;:::i;:::-;37175:73;37243:3;37232:9;37228:19;37219:6;37175:73;:::i;:::-;36424:831;;;;;;;;:::o;37261:191::-;37301:4;37321:20;37339:1;37321:20;:::i;:::-;37316:25;;37355:20;37373:1;37355:20;:::i;:::-;37350:25;;37394:1;37391;37388:8;37385:34;;;37399:18;;:::i;:::-;37385:34;37444:1;37441;37437:9;37429:17;;37261:191;;;;:::o;37458:807::-;37707:4;37745:3;37734:9;37730:19;37722:27;;37759:71;37827:1;37816:9;37812:17;37803:6;37759:71;:::i;:::-;37840:72;37908:2;37897:9;37893:18;37884:6;37840:72;:::i;:::-;37922:80;37998:2;37987:9;37983:18;37974:6;37922:80;:::i;:::-;38012;38088:2;38077:9;38073:18;38064:6;38012:80;:::i;:::-;38102:73;38170:3;38159:9;38155:19;38146:6;38102:73;:::i;:::-;38185;38253:3;38242:9;38238:19;38229:6;38185:73;:::i;:::-;37458:807;;;;;;;;;:::o;38271:663::-;38359:6;38367;38375;38424:2;38412:9;38403:7;38399:23;38395:32;38392:119;;;38430:79;;:::i;:::-;38392:119;38550:1;38575:64;38631:7;38622:6;38611:9;38607:22;38575:64;:::i;:::-;38565:74;;38521:128;38688:2;38714:64;38770:7;38761:6;38750:9;38746:22;38714:64;:::i;:::-;38704:74;;38659:129;38827:2;38853:64;38909:7;38900:6;38889:9;38885:22;38853:64;:::i;:::-;38843:74;;38798:129;38271:663;;;;;:::o;38940:147::-;39041:11;39078:3;39063:18;;38940:147;;;;:::o;39093:114::-;;:::o;39213:398::-;39372:3;39393:83;39474:1;39469:3;39393:83;:::i;:::-;39386:90;;39485:93;39574:3;39485:93;:::i;:::-;39603:1;39598:3;39594:11;39587:18;;39213:398;;;:::o;39617:379::-;39801:3;39823:147;39966:3;39823:147;:::i;:::-;39816:154;;39987:3;39980:10;;39617:379;;;:::o;40002:180::-;40142:32;40138:1;40130:6;40126:14;40119:56;40002:180;:::o;40188:366::-;40330:3;40351:67;40415:2;40410:3;40351:67;:::i;:::-;40344:74;;40427:93;40516:3;40427:93;:::i;:::-;40545:2;40540:3;40536:12;40529:19;;40188:366;;;:::o;40560:419::-;40726:4;40764:2;40753:9;40749:18;40741:26;;40813:9;40807:4;40803:20;40799:1;40788:9;40784:17;40777:47;40841:131;40967:4;40841:131;:::i;:::-;40833:139;;40560:419;;;:::o;40985:174::-;41125:26;41121:1;41113:6;41109:14;41102:50;40985:174;:::o;41165:366::-;41307:3;41328:67;41392:2;41387:3;41328:67;:::i;:::-;41321:74;;41404:93;41493:3;41404:93;:::i;:::-;41522:2;41517:3;41513:12;41506:19;;41165:366;;;:::o;41537:419::-;41703:4;41741:2;41730:9;41726:18;41718:26;;41790:9;41784:4;41780:20;41776:1;41765:9;41761:17;41754:47;41818:131;41944:4;41818:131;:::i;:::-;41810:139;;41537:419;;;:::o;41962:170::-;42102:22;42098:1;42090:6;42086:14;42079:46;41962:170;:::o;42138:366::-;42280:3;42301:67;42365:2;42360:3;42301:67;:::i;:::-;42294:74;;42377:93;42466:3;42377:93;:::i;:::-;42495:2;42490:3;42486:12;42479:19;;42138:366;;;:::o;42510:419::-;42676:4;42714:2;42703:9;42699:18;42691:26;;42763:9;42757:4;42753:20;42749:1;42738:9;42734:17;42727:47;42791:131;42917:4;42791:131;:::i;:::-;42783:139;;42510:419;;;:::o;42935:220::-;43075:34;43071:1;43063:6;43059:14;43052:58;43144:3;43139:2;43131:6;43127:15;43120:28;42935:220;:::o;43161:366::-;43303:3;43324:67;43388:2;43383:3;43324:67;:::i;:::-;43317:74;;43400:93;43489:3;43400:93;:::i;:::-;43518:2;43513:3;43509:12;43502:19;;43161:366;;;:::o;43533:419::-;43699:4;43737:2;43726:9;43722:18;43714:26;;43786:9;43780:4;43776:20;43772:1;43761:9;43757:17;43750:47;43814:131;43940:4;43814:131;:::i;:::-;43806:139;;43533:419;;;:::o;43958:221::-;44098:34;44094:1;44086:6;44082:14;44075:58;44167:4;44162:2;44154:6;44150:15;44143:29;43958:221;:::o;44185:366::-;44327:3;44348:67;44412:2;44407:3;44348:67;:::i;:::-;44341:74;;44424:93;44513:3;44424:93;:::i;:::-;44542:2;44537:3;44533:12;44526:19;;44185:366;;;:::o;44557:419::-;44723:4;44761:2;44750:9;44746:18;44738:26;;44810:9;44804:4;44800:20;44796:1;44785:9;44781:17;44774:47;44838:131;44964:4;44838:131;:::i;:::-;44830:139;;44557:419;;;:::o;44982:166::-;45122:18;45118:1;45110:6;45106:14;45099:42;44982:166;:::o;45154:366::-;45296:3;45317:67;45381:2;45376:3;45317:67;:::i;:::-;45310:74;;45393:93;45482:3;45393:93;:::i;:::-;45511:2;45506:3;45502:12;45495:19;;45154:366;;;:::o;45526:419::-;45692:4;45730:2;45719:9;45715:18;45707:26;;45779:9;45773:4;45769:20;45765:1;45754:9;45750:17;45743:47;45807:131;45933:4;45807:131;:::i;:::-;45799:139;;45526:419;;;:::o;45951:224::-;46091:34;46087:1;46079:6;46075:14;46068:58;46160:7;46155:2;46147:6;46143:15;46136:32;45951:224;:::o;46181:366::-;46323:3;46344:67;46408:2;46403:3;46344:67;:::i;:::-;46337:74;;46420:93;46509:3;46420:93;:::i;:::-;46538:2;46533:3;46529:12;46522:19;;46181:366;;;:::o;46553:419::-;46719:4;46757:2;46746:9;46742:18;46734:26;;46806:9;46800:4;46796:20;46792:1;46781:9;46777:17;46770:47;46834:131;46960:4;46834:131;:::i;:::-;46826:139;;46553:419;;;:::o;46978:222::-;47118:34;47114:1;47106:6;47102:14;47095:58;47187:5;47182:2;47174:6;47170:15;47163:30;46978:222;:::o;47206:366::-;47348:3;47369:67;47433:2;47428:3;47369:67;:::i;:::-;47362:74;;47445:93;47534:3;47445:93;:::i;:::-;47563:2;47558:3;47554:12;47547:19;;47206:366;;;:::o;47578:419::-;47744:4;47782:2;47771:9;47767:18;47759:26;;47831:9;47825:4;47821:20;47817:1;47806:9;47802:17;47795:47;47859:131;47985:4;47859:131;:::i;:::-;47851:139;;47578:419;;;:::o;48003:225::-;48143:34;48139:1;48131:6;48127:14;48120:58;48212:8;48207:2;48199:6;48195:15;48188:33;48003:225;:::o;48234:366::-;48376:3;48397:67;48461:2;48456:3;48397:67;:::i;:::-;48390:74;;48473:93;48562:3;48473:93;:::i;:::-;48591:2;48586:3;48582:12;48575:19;;48234:366;;;:::o;48606:419::-;48772:4;48810:2;48799:9;48795:18;48787:26;;48859:9;48853:4;48849:20;48845:1;48834:9;48830:17;48823:47;48887:131;49013:4;48887:131;:::i;:::-;48879:139;;48606:419;;;:::o

Swarm Source

ipfs://9f2fae5843338dda63b5c7bf0f92cead75f591ff6f7f211465ae814d56c7f3a2
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.