ETH Price: $3,080.19 (-1.07%)

Token

⠀⠀⠀⠀⠀⢀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⡿⠗⠀⠠⠄⡀⠀⠀⠀⠀⠀⠀⠀⠀⡜⠁⠀⠀⠀⠀⠀⠈⠑⢶⣶⡄⢀⣶... (🐼)
 

Overview

Max Total Supply

998,661,075.956324139 🐼

Holders

344

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,744,772.239289635 🐼

Value
$0.00
0x3961239eD0F5bD6D9B6C9cFF23a0A63e0E8cceBf
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:
PANDA

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-28
*/

/*

just a panda on the blockchain
只是区块链上的一只熊猫

LP will be locked for 1000 years
流动资金池将被锁定1000年

Final Tax 0/0
最终税 0/0


⠀⠀⠀⠀⠀⢀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢰⣿⡿⠗⠀⠠⠄⡀⠀⠀⠀⠀
⠀⠀⠀⠀⡜⠁⠀⠀⠀⠀⠀⠈⠑⢶⣶⡄
⢀⣶⣦⣸⠀⢼⣟⡇⠀⠀⢀⣀⠀⠘⡿⠃
⠀⢿⣿⣿⣄⠒⠀⠠⢶⡂⢫⣿⢇⢀⠃⠀
⠀⠈⠻⣿⣿⣿⣶⣤⣀⣀⣀⣂⡠⠊⠀⠀
⠀⠀⠀⠃⠀⠀⠉⠙⠛⠿⣿⣿⣧⠀⠀⠀
⠀⠀⠘⡀⠀⠀⠀⠀⠀⠀⠘⣿⣿⡇⠀⠀
⠀⠀⠀⣷⣄⡀⠀⠀⠀⢀⣴⡟⠿⠃⠀⠀
⠀⠀⠀⢻⣿⣿⠉⠉⢹⣿⣿⠁⠀⠀⠀⠀
⠀⠀⠀⠀⠉⠁⠀⠀⠀⠉⠁⠀⠀⠀⠀⠀

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.16;


library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {return a + b;}
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {return a - b;}
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {return a * b;}
    function div(uint256 a, uint256 b) internal pure returns (uint256) {return a / b;}
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {return a % b;}
    
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {uint256 c = a + b; if(c < a) return(false, 0); return(true, c);}}

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b > a) return(false, 0); return(true, a - b);}}

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if (a == 0) return(true, 0); uint256 c = a * b;
        if(c / a != b) return(false, 0); return(true, c);}}

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b == 0) return(false, 0); return(true, a / b);}}

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b == 0) return(false, 0); return(true, a % b);}}

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked{require(b > 0, errorMessage); return a / b;}}

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    event OwnershipTransferred(address owner);
}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
        function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    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 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 PANDA is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = unicode"⠀⠀⠀⠀⠀⢀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⢰⣿⡿⠗⠀⠠⠄⡀⠀⠀⠀⠀\n⠀⠀⠀⠀⡜⠁⠀⠀⠀⠀⠀⠈⠑⢶⣶⡄\n⢀⣶⣦⣸⠀⢼⣟⡇⠀⠀⢀⣀⠀⠘⡿⠃\n⠀⢿⣿⣿⣄⠒⠀⠠⢶⡂⢫⣿⢇⢀⠃⠀\n⠀⠈⠻⣿⣿⣿⣶⣤⣀⣀⣀⣂⡠⠊⠀⠀\n⠀⠀⠀⠃⠀⠀⠉⠙⠛⠿⣿⣿⣧⠀⠀⠀\n⠀⠀⠘⡀⠀⠀⠀⠀⠀⠀⠘⣿⣿⡇⠀⠀\n⠀⠀⠀⣷⣄⡀⠀⠀⠀⢀⣴⡟⠿⠃⠀⠀\n⠀⠀⠀⢻⣿⣿⠉⠉⢹⣿⣿⠁⠀⠀⠀⠀\n⠀⠀⠀⠀⠉⠁⠀⠀⠀⠉⠁⠀⠀⠀⠀⠀\n";
    string private constant _symbol = unicode"🐼";
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 1000000000 * (10 ** _decimals);
    uint256 private _maxTxAmountPercent = 150; // 10000;
    uint256 private _maxTransferPercent = 150;
    uint256 private _maxWalletPercent = 150;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) private isBot;
    IRouter router;
    address public pair;
    bool private tradingAllowed = false;
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 2500;
    uint256 private developmentFee = 0;
    uint256 private burnFee = 0;
    uint256 private totalFee = 2500;
    uint256 private sellFee = 5000;
    uint256 private transferFee = 0;
    uint256 private denominator = 10000;
    bool private swapEnabled = true;
    uint256 private swapTimes;
    bool private swapping;
    uint256 swapAmount = 4;
    uint256 private swapThreshold = ( _totalSupply * 2000 ) / 100000;
    uint256 private minTokenAmount = ( _totalSupply * 10 ) / 100000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}

    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal constant development_receiver = 0xb792031aa9355F204A4FBc6A8Be8DFA7882F21aa; 
    address internal constant marketing_receiver = 0xb792031aa9355F204A4FBc6A8Be8DFA7882F21aa;
    address internal constant liquidity_receiver = 0xb792031aa9355F204A4FBc6A8Be8DFA7882F21aa;

    constructor() Ownable(msg.sender) {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        pair = _pair;
        isFeeExempt[address(this)] = true;
        isFeeExempt[liquidity_receiver] = true;
        isFeeExempt[marketing_receiver] = true;
        isFeeExempt[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function openTrading(bool enabled) external onlyOwner {if(enabled){tradingAllowed = true;}}
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function isCont(address addr) internal view returns (bool) {uint size; assembly { size := extcodesize(addr) } return size > 0; }
    function blacklist(address _address, bool _enabled) external onlyOwner {isBot[_address] = _enabled;}
    function setisExempt(address _address, bool _enabled) external onlyOwner {isFeeExempt[_address] = _enabled;}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}
    function _maxWalletToken() public view returns (uint256) {return totalSupply() * _maxWalletPercent / denominator;}
    function _maxTxAmount() public view returns (uint256) {return totalSupply() * _maxTxAmountPercent / denominator;}
    function _maxTransferAmount() public view returns (uint256) {return totalSupply() * _maxTransferPercent / denominator;}

    function preTxCheck(address sender, address recipient, uint256 amount) internal view {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > uint256(0), "Transfer amount must be greater than zero");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        preTxCheck(sender, recipient, amount);
        checkTradingAllowed(sender, recipient);
        checkMaxWallet(sender, recipient, amount); 
        swapbackCounters(sender, recipient);
        checkTxLimit(sender, recipient, amount); 
        swapBack(sender, recipient, amount);
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function setFees(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity;
        marketingFee = _marketing;
        burnFee = _burn;
        developmentFee = _development;
        totalFee = _total;
        sellFee = _sell;
        transferFee = _trans;
        require(totalFee <= denominator.div(1) && sellFee <= denominator.div(1), "totalFee and sellFee cannot be more than 20%");
    }

    function setLimits(uint256 _buy, uint256 _trans, uint256 _wallet) external onlyOwner {
        uint256 newTx = (totalSupply() * _buy) / 10000;
        uint256 newTransfer = (totalSupply() * _trans) / 10000;
        uint256 newWallet = (totalSupply() * _wallet) / 10000;
        _maxTxAmountPercent = _buy;
        _maxTransferPercent = _trans;
        _maxWalletPercent = _wallet;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }

    function checkTradingAllowed(address sender, address recipient) internal view {
        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "tradingAllowed");}
    }
    
    function checkMaxWallet(address sender, address recipient, uint256 amount) internal view {
        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD)){
            require((_balances[recipient].add(amount)) <= _maxWalletToken(), "Exceeds maximum wallet amount.");}
    }

    function swapbackCounters(address sender, address recipient) internal {
        if(recipient == pair && !isFeeExempt[sender]){swapTimes += uint256(1);}
    }

    function checkTxLimit(address sender, address recipient, uint256 amount) internal view {
        if(sender != pair){require(amount <= _maxTransferAmount() || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");}
        require(amount <= _maxTxAmount() || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(marketing_receiver).transfer(marketingAmt);}
        uint256 remainingBalance = address(this).balance;
        if(remainingBalance > uint256(0)){payable(development_receiver).transfer(remainingBalance);}
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidity_receiver,
            block.timestamp);
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);
    }

    function shouldSwapBack(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= minTokenAmount;
        bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;
        return !swapping && swapEnabled && tradingAllowed && aboveMin && !isFeeExempt[sender] && recipient == pair && swapTimes >= swapAmount && aboveThreshold;
    }

    function setSwapbackSettings(uint256 _swapAmount, uint256 _swapThreshold, uint256 _minTokenAmount) external onlyOwner {
        swapAmount = _swapAmount; swapThreshold = _totalSupply.mul(_swapThreshold).div(uint256(100000)); 
        minTokenAmount = _totalSupply.mul(_minTokenAmount).div(uint256(100000));
    }

    function swapBack(address sender, address recipient, uint256 amount) internal {
        if(shouldSwapBack(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);}
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender] && !isFeeExempt[recipient];
    }

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(isBot[sender] || isBot[recipient]){return denominator.sub(uint256(100));}
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFee(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnFee > uint256(0)){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount.sub(feeAmount);} return amount;
    }

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

    function _approve(address owner, address spender, uint256 amount) private {
        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);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTransferAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_minTokenAmount","type":"uint256"}],"name":"setSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a62000014919062000715565b633b9aca0062000025919062000766565b6001556096600255609660035560966004556000600a60146101000a81548160ff0219169083151502179055506000600b556109c4600c556000600d556000600e556109c4600f5561138860105560006011556127106012556001601360006101000a81548160ff0219169083151502179055506004601655620186a06107d0600154620000b4919062000766565b620000c09190620007f6565b601755620186a0600a600154620000d8919062000766565b620000e49190620007f6565b601855348015620000f457600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200019e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c4919062000898565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200022c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000252919062000898565b6040518363ffffffff1660e01b815260040162000271929190620008db565b6020604051808303816000875af115801562000291573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b7919062000898565b905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016007600073b792031aa9355f204a4fbc6a8be8dfa7882f21aa73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016007600073b792031aa9355f204a4fbc6a8be8dfa7882f21aa73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600154600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6001546040516200056b919062000919565b60405180910390a3505062000936565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200060957808604811115620005e157620005e06200057b565b5b6001851615620005f15780820291505b80810290506200060185620005aa565b9450620005c1565b94509492505050565b600082620006245760019050620006f7565b81620006345760009050620006f7565b81600181146200064d576002811462000658576200068e565b6001915050620006f7565b60ff8411156200066d576200066c6200057b565b5b8360020a9150848211156200068757620006866200057b565b5b50620006f7565b5060208310610133831016604e8410600b8410161715620006c85782820a905083811115620006c257620006c16200057b565b5b620006f7565b620006d78484846001620005b7565b92509050818404811115620006f157620006f06200057b565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200072282620006fe565b91506200072f8362000708565b92506200075e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000612565b905092915050565b60006200077382620006fe565b91506200078083620006fe565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620007bc57620007bb6200057b565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200080382620006fe565b91506200081083620006fe565b925082620008235762000822620007c7565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008608262000833565b9050919050565b620008728162000853565b81146200087e57600080fd5b50565b600081519050620008928162000867565b92915050565b600060208284031215620008b157620008b06200082e565b5b6000620008c18482850162000881565b91505092915050565b620008d58162000853565b82525050565b6000604082019050620008f26000830185620008ca565b620009016020830184620008ca565b9392505050565b6200091381620006fe565b82525050565b600060208201905062000930600083018462000908565b92915050565b6137b380620009466000396000f3fe6080604052600436106101445760003560e01c806348ff2b8b116100b6578063a8aa1b311161006f578063a8aa1b311461047d578063a9059cbb146104a8578063da2e3bad146104e5578063dd62ed3e1461050e578063e94dd17c1461054b578063f2fde38b146105745761014b565b806348ff2b8b1461036b57806370a082311461039457806378109e54146103d15780637d1db4a5146103fc578063893d20e81461042757806395d89b41146104525761014b565b806323b872dd1161010857806323b872dd146102375780632a9b8072146102745780632f54bf6e1461029d578063313ce567146102da5780633f4218e014610305578063404e5129146103425761014b565b806306fdde0314610150578063095ea7b31461017b57806318160ddd146101b8578063189ae5f2146101e35780631f976b7e1461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b5061016561059d565b60405161017291906125fe565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d91906126b9565b6105c0565b6040516101af9190612714565b60405180910390f35b3480156101c457600080fd5b506101cd6105d7565b6040516101da919061273e565b60405180910390f35b3480156101ef57600080fd5b5061020a60048036038101906102059190612759565b610618565b005b34801561021857600080fd5b50610221610778565b60405161022e919061273e565b60405180910390f35b34801561024357600080fd5b5061025e600480360381019061025991906127ac565b6107a1565b60405161026b9190612714565b60405180910390f35b34801561028057600080fd5b5061029b6004803603810190610296919061282b565b61086c565b005b3480156102a957600080fd5b506102c460048036038101906102bf9190612858565b6108d9565b6040516102d19190612714565b60405180910390f35b3480156102e657600080fd5b506102ef610932565b6040516102fc91906128a1565b60405180910390f35b34801561031157600080fd5b5061032c60048036038101906103279190612858565b61093b565b6040516103399190612714565b60405180910390f35b34801561034e57600080fd5b50610369600480360381019061036491906128bc565b61095b565b005b34801561037757600080fd5b50610392600480360381019061038d91906128bc565b6109fe565b005b3480156103a057600080fd5b506103bb60048036038101906103b69190612858565b610aa1565b6040516103c8919061273e565b60405180910390f35b3480156103dd57600080fd5b506103e6610aea565b6040516103f3919061273e565b60405180910390f35b34801561040857600080fd5b50610411610b13565b60405161041e919061273e565b60405180910390f35b34801561043357600080fd5b5061043c610b3c565b604051610449919061290b565b60405180910390f35b34801561045e57600080fd5b50610467610b65565b60405161047491906125fe565b60405180910390f35b34801561048957600080fd5b50610492610ba2565b60405161049f919061290b565b60405180910390f35b3480156104b457600080fd5b506104cf60048036038101906104ca91906126b9565b610bc8565b6040516104dc9190612714565b60405180910390f35b3480156104f157600080fd5b5061050c60048036038101906105079190612926565b610bdf565b005b34801561051a57600080fd5b50610535600480360381019061053091906129c8565b610cde565b604051610542919061273e565b60405180910390f35b34801561055757600080fd5b50610572600480360381019061056d9190612759565b610d65565b005b34801561058057600080fd5b5061059b60048036038101906105969190612a46565b610e19565b005b606060405180610240016040528061021b815260200161356361021b9139905090565b60006105cd338484610edb565b6001905092915050565b60006106136105e66000610aa1565b6106056105f461dead610aa1565b6001546110a490919063ffffffff16565b6110a490919063ffffffff16565b905090565b610621336108d9565b610660576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065790612abf565b60405180910390fd5b60006127108461066e6105d7565b6106789190612b0e565b6106829190612b97565b90506000612710846106926105d7565b61069c9190612b0e565b6106a69190612b97565b90506000612710846106b66105d7565b6106c09190612b0e565b6106ca9190612b97565b905085600281905550846003819055508360048190555060006107126103e861070460056106f66105d7565b6110ba90919063ffffffff16565b6110d090919063ffffffff16565b90508084101580156107245750808310155b80156107305750808210155b61076f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076690612c3a565b60405180910390fd5b50505050505050565b60006012546003546107886105d7565b6107929190612b0e565b61079c9190612b97565b905090565b60006107ae8484846110e6565b610861843361085c8560405180606001604052806028815260200161353b60289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112df9092919063ffffffff16565b610edb565b600190509392505050565b610875336108d9565b6108b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ab90612abf565b60405180910390fd5b80156108d6576001600a60146101000a81548160ff0219169083151502179055505b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b60076020528060005260406000206000915054906101000a900460ff1681565b610964336108d9565b6109a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099a90612abf565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610a07336108d9565b610a46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3d90612abf565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601254600454610afa6105d7565b610b049190612b0e565b610b0e9190612b97565b905090565b6000601254600254610b236105d7565b610b2d9190612b0e565b610b379190612b97565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017ff09f90bc00000000000000000000000000000000000000000000000000000000815250905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610bd53384846110e6565b6001905092915050565b610be8336108d9565b610c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1e90612abf565b60405180910390fd5b86600b8190555085600c8190555084600e8190555083600d8190555082600f819055508160108190555080601181905550610c6e60016012546110d090919063ffffffff16565b600f5411158015610c965750610c9060016012546110d090919063ffffffff16565b60105411155b610cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccc90612ccc565b60405180910390fd5b50505050505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d6e336108d9565b610dad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da490612abf565b60405180910390fd5b82601681905550610dde620186a0610dd0846001546110ba90919063ffffffff16565b6110d090919063ffffffff16565b601781905550610e0e620186a0610e00836001546110ba90919063ffffffff16565b6110d090919063ffffffff16565b601881905550505050565b610e22336108d9565b610e61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5890612abf565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051610ed09190612d4b565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4190612dd8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb090612e6a565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611097919061273e565b60405180910390a3505050565b600081836110b29190612e8a565b905092915050565b600081836110c89190612b0e565b905092915050565b600081836110de9190612b97565b905092915050565b6110f1838383611334565b6110fb83836114a5565b6111068383836115a2565b6111108383611780565b61111b83838361184b565b611126838383611a8a565b61117881600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110a490919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006111c78484611ab3565b6111d157816111dd565b6111dc848484611b61565b5b905061123181600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0990919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112d1919061273e565b60405180910390a350505050565b6000838311158290611327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131e91906125fe565b60405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139a90612f30565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611412576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140990612fc2565b60405180910390fd5b60008111611455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144c90613054565b60405180910390fd5b61145e83610aa1565b8111156114a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611497906130e6565b60405180910390fd5b505050565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115495750600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561159e57600a60149054906101000a900460ff1661159d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159490613152565b60405180910390fd5b5b5050565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116465750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156116a05750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116da575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561177b576116e7610aea565b61173982600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0990919063ffffffff16565b111561177a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611771906131be565b60405180910390fd5b5b505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480156118275750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118475760016014600082825461183f91906131de565b925050819055505b5050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611993576118a8610778565b811115806118ff5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806119535750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611992576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119899061325e565b60405180910390fd5b5b61199b610b13565b811115806119f25750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611a465750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7c9061325e565b60405180910390fd5b505050565b611a95838383611d1f565b15611aae57611aa5601754611e59565b60006014819055505b505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b595750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600080611b6e85856120aa565b1115611cfe576000611ba6611b8386866120aa565b611b98601254866110d090919063ffffffff16565b6110ba90919063ffffffff16565b9050611bfa81600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0990919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c9a919061273e565b60405180910390a36000600e541115611ce357611ce23061dead611cdd600e54611ccf601254896110d090919063ffffffff16565b6110ba90919063ffffffff16565b6110e6565b5b611cf681846110a490919063ffffffff16565b915050611d02565b8190505b9392505050565b60008183611d1791906131de565b905092915050565b60008060185483101590506000601754611d3830610aa1565b10159050601560009054906101000a900460ff16158015611d655750601360009054906101000a900460ff165b8015611d7d5750600a60149054906101000a900460ff165b8015611d865750815b8015611ddc5750600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e355750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015611e45575060165460145410155b8015611e4e5750805b925050509392505050565b6001601560006101000a81548160ff0219169083151502179055506000611ec76002611eb9600d54611eab600c54611e9d6001600b54611d0990919063ffffffff16565b611d0990919063ffffffff16565b611d0990919063ffffffff16565b6110ba90919063ffffffff16565b90506000611ef282611ee4600b54866110ba90919063ffffffff16565b6110d090919063ffffffff16565b90506000611f0982856110a490919063ffffffff16565b90506000479050611f1982612239565b6000611f2e82476110a490919063ffffffff16565b90506000611f59611f4a600b54886110a490919063ffffffff16565b836110d090919063ffffffff16565b90506000611f72600b54836110ba90919063ffffffff16565b90506000811115611f8857611f87868261247c565b5b6000611fb2600c54611fa46002866110ba90919063ffffffff16565b6110ba90919063ffffffff16565b905060008111156120195773b792031aa9355f204a4fbc6a8be8dfa7882f21aa73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612017573d6000803e3d6000fd5b505b600047905060008111156120835773b792031aa9355f204a4fbc6a8be8dfa7882f21aa73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612081573d6000803e3d6000fd5b505b5050505050505050506000601560006101000a81548160ff02191690831515021790555050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061214d5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561216f5761216860646012546110a490919063ffffffff16565b9050612233565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121ce576010549050612233565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361222d57600f549050612233565b60115490505b92915050565b6000600267ffffffffffffffff8111156122565761225561327e565b5b6040519080825280602002602001820160405280156122845781602001602082028036833780820191505090505b509050308160008151811061229c5761229b6132ad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612343573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236791906132f1565b8160018151811061237b5761237a6132ad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123e230600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610edb565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612446959493929190613417565b600060405180830381600087803b15801561246057600080fd5b505af1158015612474573d6000803e3d6000fd5b505050505050565b6124a930600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610edb565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008073b792031aa9355f204a4fbc6a8be8dfa7882f21aa426040518863ffffffff1660e01b815260040161252496959493929190613471565b60606040518083038185885af1158015612542573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061256791906134e7565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125a857808201518184015260208101905061258d565b60008484015250505050565b6000601f19601f8301169050919050565b60006125d08261256e565b6125da8185612579565b93506125ea81856020860161258a565b6125f3816125b4565b840191505092915050565b6000602082019050818103600083015261261881846125c5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061265082612625565b9050919050565b61266081612645565b811461266b57600080fd5b50565b60008135905061267d81612657565b92915050565b6000819050919050565b61269681612683565b81146126a157600080fd5b50565b6000813590506126b38161268d565b92915050565b600080604083850312156126d0576126cf612620565b5b60006126de8582860161266e565b92505060206126ef858286016126a4565b9150509250929050565b60008115159050919050565b61270e816126f9565b82525050565b60006020820190506127296000830184612705565b92915050565b61273881612683565b82525050565b6000602082019050612753600083018461272f565b92915050565b60008060006060848603121561277257612771612620565b5b6000612780868287016126a4565b9350506020612791868287016126a4565b92505060406127a2868287016126a4565b9150509250925092565b6000806000606084860312156127c5576127c4612620565b5b60006127d38682870161266e565b93505060206127e48682870161266e565b92505060406127f5868287016126a4565b9150509250925092565b612808816126f9565b811461281357600080fd5b50565b600081359050612825816127ff565b92915050565b60006020828403121561284157612840612620565b5b600061284f84828501612816565b91505092915050565b60006020828403121561286e5761286d612620565b5b600061287c8482850161266e565b91505092915050565b600060ff82169050919050565b61289b81612885565b82525050565b60006020820190506128b66000830184612892565b92915050565b600080604083850312156128d3576128d2612620565b5b60006128e18582860161266e565b92505060206128f285828601612816565b9150509250929050565b61290581612645565b82525050565b600060208201905061292060008301846128fc565b92915050565b600080600080600080600060e0888a03121561294557612944612620565b5b60006129538a828b016126a4565b97505060206129648a828b016126a4565b96505060406129758a828b016126a4565b95505060606129868a828b016126a4565b94505060806129978a828b016126a4565b93505060a06129a88a828b016126a4565b92505060c06129b98a828b016126a4565b91505092959891949750929550565b600080604083850312156129df576129de612620565b5b60006129ed8582860161266e565b92505060206129fe8582860161266e565b9150509250929050565b6000612a1382612625565b9050919050565b612a2381612a08565b8114612a2e57600080fd5b50565b600081359050612a4081612a1a565b92915050565b600060208284031215612a5c57612a5b612620565b5b6000612a6a84828501612a31565b91505092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612aa9600683612579565b9150612ab482612a73565b602082019050919050565b60006020820190508181036000830152612ad881612a9c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b1982612683565b9150612b2483612683565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b5d57612b5c612adf565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ba282612683565b9150612bad83612683565b925082612bbd57612bbc612b68565b5b828204905092915050565b7f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560008201527f206c657373207468616e202e3525000000000000000000000000000000000000602082015250565b6000612c24602e83612579565b9150612c2f82612bc8565b604082019050919050565b60006020820190508181036000830152612c5381612c17565b9050919050565b7f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60008201527f6f7265207468616e203230250000000000000000000000000000000000000000602082015250565b6000612cb6602c83612579565b9150612cc182612c5a565b604082019050919050565b60006020820190508181036000830152612ce581612ca9565b9050919050565b6000819050919050565b6000612d11612d0c612d0784612625565b612cec565b612625565b9050919050565b6000612d2382612cf6565b9050919050565b6000612d3582612d18565b9050919050565b612d4581612d2a565b82525050565b6000602082019050612d606000830184612d3c565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612dc2602483612579565b9150612dcd82612d66565b604082019050919050565b60006020820190508181036000830152612df181612db5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e54602283612579565b9150612e5f82612df8565b604082019050919050565b60006020820190508181036000830152612e8381612e47565b9050919050565b6000612e9582612683565b9150612ea083612683565b9250828203905081811115612eb857612eb7612adf565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612f1a602583612579565b9150612f2582612ebe565b604082019050919050565b60006020820190508181036000830152612f4981612f0d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612fac602383612579565b9150612fb782612f50565b604082019050919050565b60006020820190508181036000830152612fdb81612f9f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061303e602983612579565b915061304982612fe2565b604082019050919050565b6000602082019050818103600083015261306d81613031565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b60006130d0603183612579565b91506130db82613074565b604082019050919050565b600060208201905081810360008301526130ff816130c3565b9050919050565b7f74726164696e67416c6c6f776564000000000000000000000000000000000000600082015250565b600061313c600e83612579565b915061314782613106565b602082019050919050565b6000602082019050818103600083015261316b8161312f565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000600082015250565b60006131a8601e83612579565b91506131b382613172565b602082019050919050565b600060208201905081810360008301526131d78161319b565b9050919050565b60006131e982612683565b91506131f483612683565b925082820190508082111561320c5761320b612adf565b5b92915050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000613248601183612579565b915061325382613212565b602082019050919050565b600060208201905081810360008301526132778161323b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506132eb81612657565b92915050565b60006020828403121561330757613306612620565b5b6000613315848285016132dc565b91505092915050565b6000819050919050565b600061334361333e6133398461331e565b612cec565b612683565b9050919050565b61335381613328565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61338e81612645565b82525050565b60006133a08383613385565b60208301905092915050565b6000602082019050919050565b60006133c482613359565b6133ce8185613364565b93506133d983613375565b8060005b8381101561340a5781516133f18882613394565b97506133fc836133ac565b9250506001810190506133dd565b5085935050505092915050565b600060a08201905061342c600083018861272f565b613439602083018761334a565b818103604083015261344b81866133b9565b905061345a60608301856128fc565b613467608083018461272f565b9695505050505050565b600060c08201905061348660008301896128fc565b613493602083018861272f565b6134a0604083018761334a565b6134ad606083018661334a565b6134ba60808301856128fc565b6134c760a083018461272f565b979650505050505050565b6000815190506134e18161268d565b92915050565b600080600060608486031215613500576134ff612620565b5b600061350e868287016134d2565b935050602061351f868287016134d2565b9250506040613530868287016134d2565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365e2a080e2a080e2a080e2a080e2a080e2a280e2a180e2a080e2a080e2a080e2a080e2a080e2a080e2a080e2a080e2a0800ae2a080e2a080e2a080e2a080e2a2b0e2a3bfe2a1bfe2a097e2a080e2a0a0e2a084e2a180e2a080e2a080e2a080e2a0800ae2a080e2a080e2a080e2a080e2a19ce2a081e2a080e2a080e2a080e2a080e2a080e2a088e2a091e2a2b6e2a3b6e2a1840ae2a280e2a3b6e2a3a6e2a3b8e2a080e2a2bce2a39fe2a187e2a080e2a080e2a280e2a380e2a080e2a098e2a1bfe2a0830ae2a080e2a2bfe2a3bfe2a3bfe2a384e2a092e2a080e2a0a0e2a2b6e2a182e2a2abe2a3bfe2a287e2a280e2a083e2a0800ae2a080e2a088e2a0bbe2a3bfe2a3bfe2a3bfe2a3b6e2a3a4e2a380e2a380e2a380e2a382e2a1a0e2a08ae2a080e2a0800ae2a080e2a080e2a080e2a083e2a080e2a080e2a089e2a099e2a09be2a0bfe2a3bfe2a3bfe2a3a7e2a080e2a080e2a0800ae2a080e2a080e2a098e2a180e2a080e2a080e2a080e2a080e2a080e2a080e2a098e2a3bfe2a3bfe2a187e2a080e2a0800ae2a080e2a080e2a080e2a3b7e2a384e2a180e2a080e2a080e2a080e2a280e2a3b4e2a19fe2a0bfe2a083e2a080e2a0800ae2a080e2a080e2a080e2a2bbe2a3bfe2a3bfe2a089e2a089e2a2b9e2a3bfe2a3bfe2a081e2a080e2a080e2a080e2a0800ae2a080e2a080e2a080e2a080e2a089e2a081e2a080e2a080e2a080e2a089e2a081e2a080e2a080e2a080e2a080e2a0800aa264697066735822122022bc7e8d7679816b69901d7396658c0fa8192d442c550868470351a926a3cf9e64736f6c63430008100033

Deployed Bytecode

0x6080604052600436106101445760003560e01c806348ff2b8b116100b6578063a8aa1b311161006f578063a8aa1b311461047d578063a9059cbb146104a8578063da2e3bad146104e5578063dd62ed3e1461050e578063e94dd17c1461054b578063f2fde38b146105745761014b565b806348ff2b8b1461036b57806370a082311461039457806378109e54146103d15780637d1db4a5146103fc578063893d20e81461042757806395d89b41146104525761014b565b806323b872dd1161010857806323b872dd146102375780632a9b8072146102745780632f54bf6e1461029d578063313ce567146102da5780633f4218e014610305578063404e5129146103425761014b565b806306fdde0314610150578063095ea7b31461017b57806318160ddd146101b8578063189ae5f2146101e35780631f976b7e1461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b5061016561059d565b60405161017291906125fe565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d91906126b9565b6105c0565b6040516101af9190612714565b60405180910390f35b3480156101c457600080fd5b506101cd6105d7565b6040516101da919061273e565b60405180910390f35b3480156101ef57600080fd5b5061020a60048036038101906102059190612759565b610618565b005b34801561021857600080fd5b50610221610778565b60405161022e919061273e565b60405180910390f35b34801561024357600080fd5b5061025e600480360381019061025991906127ac565b6107a1565b60405161026b9190612714565b60405180910390f35b34801561028057600080fd5b5061029b6004803603810190610296919061282b565b61086c565b005b3480156102a957600080fd5b506102c460048036038101906102bf9190612858565b6108d9565b6040516102d19190612714565b60405180910390f35b3480156102e657600080fd5b506102ef610932565b6040516102fc91906128a1565b60405180910390f35b34801561031157600080fd5b5061032c60048036038101906103279190612858565b61093b565b6040516103399190612714565b60405180910390f35b34801561034e57600080fd5b50610369600480360381019061036491906128bc565b61095b565b005b34801561037757600080fd5b50610392600480360381019061038d91906128bc565b6109fe565b005b3480156103a057600080fd5b506103bb60048036038101906103b69190612858565b610aa1565b6040516103c8919061273e565b60405180910390f35b3480156103dd57600080fd5b506103e6610aea565b6040516103f3919061273e565b60405180910390f35b34801561040857600080fd5b50610411610b13565b60405161041e919061273e565b60405180910390f35b34801561043357600080fd5b5061043c610b3c565b604051610449919061290b565b60405180910390f35b34801561045e57600080fd5b50610467610b65565b60405161047491906125fe565b60405180910390f35b34801561048957600080fd5b50610492610ba2565b60405161049f919061290b565b60405180910390f35b3480156104b457600080fd5b506104cf60048036038101906104ca91906126b9565b610bc8565b6040516104dc9190612714565b60405180910390f35b3480156104f157600080fd5b5061050c60048036038101906105079190612926565b610bdf565b005b34801561051a57600080fd5b50610535600480360381019061053091906129c8565b610cde565b604051610542919061273e565b60405180910390f35b34801561055757600080fd5b50610572600480360381019061056d9190612759565b610d65565b005b34801561058057600080fd5b5061059b60048036038101906105969190612a46565b610e19565b005b606060405180610240016040528061021b815260200161356361021b9139905090565b60006105cd338484610edb565b6001905092915050565b60006106136105e66000610aa1565b6106056105f461dead610aa1565b6001546110a490919063ffffffff16565b6110a490919063ffffffff16565b905090565b610621336108d9565b610660576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065790612abf565b60405180910390fd5b60006127108461066e6105d7565b6106789190612b0e565b6106829190612b97565b90506000612710846106926105d7565b61069c9190612b0e565b6106a69190612b97565b90506000612710846106b66105d7565b6106c09190612b0e565b6106ca9190612b97565b905085600281905550846003819055508360048190555060006107126103e861070460056106f66105d7565b6110ba90919063ffffffff16565b6110d090919063ffffffff16565b90508084101580156107245750808310155b80156107305750808210155b61076f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076690612c3a565b60405180910390fd5b50505050505050565b60006012546003546107886105d7565b6107929190612b0e565b61079c9190612b97565b905090565b60006107ae8484846110e6565b610861843361085c8560405180606001604052806028815260200161353b60289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112df9092919063ffffffff16565b610edb565b600190509392505050565b610875336108d9565b6108b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ab90612abf565b60405180910390fd5b80156108d6576001600a60146101000a81548160ff0219169083151502179055505b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b60076020528060005260406000206000915054906101000a900460ff1681565b610964336108d9565b6109a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099a90612abf565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610a07336108d9565b610a46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3d90612abf565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601254600454610afa6105d7565b610b049190612b0e565b610b0e9190612b97565b905090565b6000601254600254610b236105d7565b610b2d9190612b0e565b610b379190612b97565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017ff09f90bc00000000000000000000000000000000000000000000000000000000815250905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610bd53384846110e6565b6001905092915050565b610be8336108d9565b610c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1e90612abf565b60405180910390fd5b86600b8190555085600c8190555084600e8190555083600d8190555082600f819055508160108190555080601181905550610c6e60016012546110d090919063ffffffff16565b600f5411158015610c965750610c9060016012546110d090919063ffffffff16565b60105411155b610cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccc90612ccc565b60405180910390fd5b50505050505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d6e336108d9565b610dad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da490612abf565b60405180910390fd5b82601681905550610dde620186a0610dd0846001546110ba90919063ffffffff16565b6110d090919063ffffffff16565b601781905550610e0e620186a0610e00836001546110ba90919063ffffffff16565b6110d090919063ffffffff16565b601881905550505050565b610e22336108d9565b610e61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5890612abf565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051610ed09190612d4b565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4190612dd8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb090612e6a565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611097919061273e565b60405180910390a3505050565b600081836110b29190612e8a565b905092915050565b600081836110c89190612b0e565b905092915050565b600081836110de9190612b97565b905092915050565b6110f1838383611334565b6110fb83836114a5565b6111068383836115a2565b6111108383611780565b61111b83838361184b565b611126838383611a8a565b61117881600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110a490919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006111c78484611ab3565b6111d157816111dd565b6111dc848484611b61565b5b905061123181600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0990919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112d1919061273e565b60405180910390a350505050565b6000838311158290611327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131e91906125fe565b60405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139a90612f30565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611412576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140990612fc2565b60405180910390fd5b60008111611455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144c90613054565b60405180910390fd5b61145e83610aa1565b8111156114a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611497906130e6565b60405180910390fd5b505050565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115495750600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561159e57600a60149054906101000a900460ff1661159d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159490613152565b60405180910390fd5b5b5050565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116465750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156116a05750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116da575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561177b576116e7610aea565b61173982600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0990919063ffffffff16565b111561177a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611771906131be565b60405180910390fd5b5b505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480156118275750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118475760016014600082825461183f91906131de565b925050819055505b5050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611993576118a8610778565b811115806118ff5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806119535750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611992576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119899061325e565b60405180910390fd5b5b61199b610b13565b811115806119f25750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611a465750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7c9061325e565b60405180910390fd5b505050565b611a95838383611d1f565b15611aae57611aa5601754611e59565b60006014819055505b505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b595750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600080611b6e85856120aa565b1115611cfe576000611ba6611b8386866120aa565b611b98601254866110d090919063ffffffff16565b6110ba90919063ffffffff16565b9050611bfa81600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0990919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c9a919061273e565b60405180910390a36000600e541115611ce357611ce23061dead611cdd600e54611ccf601254896110d090919063ffffffff16565b6110ba90919063ffffffff16565b6110e6565b5b611cf681846110a490919063ffffffff16565b915050611d02565b8190505b9392505050565b60008183611d1791906131de565b905092915050565b60008060185483101590506000601754611d3830610aa1565b10159050601560009054906101000a900460ff16158015611d655750601360009054906101000a900460ff165b8015611d7d5750600a60149054906101000a900460ff165b8015611d865750815b8015611ddc5750600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e355750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015611e45575060165460145410155b8015611e4e5750805b925050509392505050565b6001601560006101000a81548160ff0219169083151502179055506000611ec76002611eb9600d54611eab600c54611e9d6001600b54611d0990919063ffffffff16565b611d0990919063ffffffff16565b611d0990919063ffffffff16565b6110ba90919063ffffffff16565b90506000611ef282611ee4600b54866110ba90919063ffffffff16565b6110d090919063ffffffff16565b90506000611f0982856110a490919063ffffffff16565b90506000479050611f1982612239565b6000611f2e82476110a490919063ffffffff16565b90506000611f59611f4a600b54886110a490919063ffffffff16565b836110d090919063ffffffff16565b90506000611f72600b54836110ba90919063ffffffff16565b90506000811115611f8857611f87868261247c565b5b6000611fb2600c54611fa46002866110ba90919063ffffffff16565b6110ba90919063ffffffff16565b905060008111156120195773b792031aa9355f204a4fbc6a8be8dfa7882f21aa73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612017573d6000803e3d6000fd5b505b600047905060008111156120835773b792031aa9355f204a4fbc6a8be8dfa7882f21aa73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612081573d6000803e3d6000fd5b505b5050505050505050506000601560006101000a81548160ff02191690831515021790555050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061214d5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561216f5761216860646012546110a490919063ffffffff16565b9050612233565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121ce576010549050612233565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361222d57600f549050612233565b60115490505b92915050565b6000600267ffffffffffffffff8111156122565761225561327e565b5b6040519080825280602002602001820160405280156122845781602001602082028036833780820191505090505b509050308160008151811061229c5761229b6132ad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612343573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236791906132f1565b8160018151811061237b5761237a6132ad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123e230600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610edb565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612446959493929190613417565b600060405180830381600087803b15801561246057600080fd5b505af1158015612474573d6000803e3d6000fd5b505050505050565b6124a930600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610edb565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008073b792031aa9355f204a4fbc6a8be8dfa7882f21aa426040518863ffffffff1660e01b815260040161252496959493929190613471565b60606040518083038185885af1158015612542573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061256791906134e7565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125a857808201518184015260208101905061258d565b60008484015250505050565b6000601f19601f8301169050919050565b60006125d08261256e565b6125da8185612579565b93506125ea81856020860161258a565b6125f3816125b4565b840191505092915050565b6000602082019050818103600083015261261881846125c5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061265082612625565b9050919050565b61266081612645565b811461266b57600080fd5b50565b60008135905061267d81612657565b92915050565b6000819050919050565b61269681612683565b81146126a157600080fd5b50565b6000813590506126b38161268d565b92915050565b600080604083850312156126d0576126cf612620565b5b60006126de8582860161266e565b92505060206126ef858286016126a4565b9150509250929050565b60008115159050919050565b61270e816126f9565b82525050565b60006020820190506127296000830184612705565b92915050565b61273881612683565b82525050565b6000602082019050612753600083018461272f565b92915050565b60008060006060848603121561277257612771612620565b5b6000612780868287016126a4565b9350506020612791868287016126a4565b92505060406127a2868287016126a4565b9150509250925092565b6000806000606084860312156127c5576127c4612620565b5b60006127d38682870161266e565b93505060206127e48682870161266e565b92505060406127f5868287016126a4565b9150509250925092565b612808816126f9565b811461281357600080fd5b50565b600081359050612825816127ff565b92915050565b60006020828403121561284157612840612620565b5b600061284f84828501612816565b91505092915050565b60006020828403121561286e5761286d612620565b5b600061287c8482850161266e565b91505092915050565b600060ff82169050919050565b61289b81612885565b82525050565b60006020820190506128b66000830184612892565b92915050565b600080604083850312156128d3576128d2612620565b5b60006128e18582860161266e565b92505060206128f285828601612816565b9150509250929050565b61290581612645565b82525050565b600060208201905061292060008301846128fc565b92915050565b600080600080600080600060e0888a03121561294557612944612620565b5b60006129538a828b016126a4565b97505060206129648a828b016126a4565b96505060406129758a828b016126a4565b95505060606129868a828b016126a4565b94505060806129978a828b016126a4565b93505060a06129a88a828b016126a4565b92505060c06129b98a828b016126a4565b91505092959891949750929550565b600080604083850312156129df576129de612620565b5b60006129ed8582860161266e565b92505060206129fe8582860161266e565b9150509250929050565b6000612a1382612625565b9050919050565b612a2381612a08565b8114612a2e57600080fd5b50565b600081359050612a4081612a1a565b92915050565b600060208284031215612a5c57612a5b612620565b5b6000612a6a84828501612a31565b91505092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612aa9600683612579565b9150612ab482612a73565b602082019050919050565b60006020820190508181036000830152612ad881612a9c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b1982612683565b9150612b2483612683565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b5d57612b5c612adf565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ba282612683565b9150612bad83612683565b925082612bbd57612bbc612b68565b5b828204905092915050565b7f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560008201527f206c657373207468616e202e3525000000000000000000000000000000000000602082015250565b6000612c24602e83612579565b9150612c2f82612bc8565b604082019050919050565b60006020820190508181036000830152612c5381612c17565b9050919050565b7f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60008201527f6f7265207468616e203230250000000000000000000000000000000000000000602082015250565b6000612cb6602c83612579565b9150612cc182612c5a565b604082019050919050565b60006020820190508181036000830152612ce581612ca9565b9050919050565b6000819050919050565b6000612d11612d0c612d0784612625565b612cec565b612625565b9050919050565b6000612d2382612cf6565b9050919050565b6000612d3582612d18565b9050919050565b612d4581612d2a565b82525050565b6000602082019050612d606000830184612d3c565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612dc2602483612579565b9150612dcd82612d66565b604082019050919050565b60006020820190508181036000830152612df181612db5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e54602283612579565b9150612e5f82612df8565b604082019050919050565b60006020820190508181036000830152612e8381612e47565b9050919050565b6000612e9582612683565b9150612ea083612683565b9250828203905081811115612eb857612eb7612adf565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612f1a602583612579565b9150612f2582612ebe565b604082019050919050565b60006020820190508181036000830152612f4981612f0d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612fac602383612579565b9150612fb782612f50565b604082019050919050565b60006020820190508181036000830152612fdb81612f9f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061303e602983612579565b915061304982612fe2565b604082019050919050565b6000602082019050818103600083015261306d81613031565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b60006130d0603183612579565b91506130db82613074565b604082019050919050565b600060208201905081810360008301526130ff816130c3565b9050919050565b7f74726164696e67416c6c6f776564000000000000000000000000000000000000600082015250565b600061313c600e83612579565b915061314782613106565b602082019050919050565b6000602082019050818103600083015261316b8161312f565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000600082015250565b60006131a8601e83612579565b91506131b382613172565b602082019050919050565b600060208201905081810360008301526131d78161319b565b9050919050565b60006131e982612683565b91506131f483612683565b925082820190508082111561320c5761320b612adf565b5b92915050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000613248601183612579565b915061325382613212565b602082019050919050565b600060208201905081810360008301526132778161323b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506132eb81612657565b92915050565b60006020828403121561330757613306612620565b5b6000613315848285016132dc565b91505092915050565b6000819050919050565b600061334361333e6133398461331e565b612cec565b612683565b9050919050565b61335381613328565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61338e81612645565b82525050565b60006133a08383613385565b60208301905092915050565b6000602082019050919050565b60006133c482613359565b6133ce8185613364565b93506133d983613375565b8060005b8381101561340a5781516133f18882613394565b97506133fc836133ac565b9250506001810190506133dd565b5085935050505092915050565b600060a08201905061342c600083018861272f565b613439602083018761334a565b818103604083015261344b81866133b9565b905061345a60608301856128fc565b613467608083018461272f565b9695505050505050565b600060c08201905061348660008301896128fc565b613493602083018861272f565b6134a0604083018761334a565b6134ad606083018661334a565b6134ba60808301856128fc565b6134c760a083018461272f565b979650505050505050565b6000815190506134e18161268d565b92915050565b600080600060608486031215613500576134ff612620565b5b600061350e868287016134d2565b935050602061351f868287016134d2565b9250506040613530868287016134d2565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365e2a080e2a080e2a080e2a080e2a080e2a280e2a180e2a080e2a080e2a080e2a080e2a080e2a080e2a080e2a080e2a0800ae2a080e2a080e2a080e2a080e2a2b0e2a3bfe2a1bfe2a097e2a080e2a0a0e2a084e2a180e2a080e2a080e2a080e2a0800ae2a080e2a080e2a080e2a080e2a19ce2a081e2a080e2a080e2a080e2a080e2a080e2a088e2a091e2a2b6e2a3b6e2a1840ae2a280e2a3b6e2a3a6e2a3b8e2a080e2a2bce2a39fe2a187e2a080e2a080e2a280e2a380e2a080e2a098e2a1bfe2a0830ae2a080e2a2bfe2a3bfe2a3bfe2a384e2a092e2a080e2a0a0e2a2b6e2a182e2a2abe2a3bfe2a287e2a280e2a083e2a0800ae2a080e2a088e2a0bbe2a3bfe2a3bfe2a3bfe2a3b6e2a3a4e2a380e2a380e2a380e2a382e2a1a0e2a08ae2a080e2a0800ae2a080e2a080e2a080e2a083e2a080e2a080e2a089e2a099e2a09be2a0bfe2a3bfe2a3bfe2a3a7e2a080e2a080e2a0800ae2a080e2a080e2a098e2a180e2a080e2a080e2a080e2a080e2a080e2a080e2a098e2a3bfe2a3bfe2a187e2a080e2a0800ae2a080e2a080e2a080e2a3b7e2a384e2a180e2a080e2a080e2a080e2a280e2a3b4e2a19fe2a0bfe2a083e2a080e2a0800ae2a080e2a080e2a080e2a2bbe2a3bfe2a3bfe2a089e2a089e2a2b9e2a3bfe2a3bfe2a081e2a080e2a080e2a080e2a0800ae2a080e2a080e2a080e2a080e2a089e2a081e2a080e2a080e2a080e2a089e2a081e2a080e2a080e2a080e2a080e2a0800aa264697066735822122022bc7e8d7679816b69901d7396658c0fa8192d442c550868470351a926a3cf9e64736f6c63430008100033

Deployed Bytecode Sourcemap

5349:12530:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8270:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9415:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9554:132;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11729:580;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9931:119;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17222:309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8493:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3729:87;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8420:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6459:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9195:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9301:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8674:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9692:114;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9812:113;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8590:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8343:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6577:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8783:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11199:522;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8928:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15659:315;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3822:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8270:67;8307:13;8330:5;;;;;;;;;;;;;;;;;8323:12;;8270:67;:::o;9415:133::-;9490:4;9497:37;9506:10;9518:7;9527:6;9497:8;:37::i;:::-;9542:4;9535:11;;9415:133;;;;:::o;9554:132::-;9607:7;9624:60;9662:21;9680:1;9662:9;:21::i;:::-;9624:33;9641:15;7325:42;9641:9;:15::i;:::-;9624:12;;:16;;:33;;;;:::i;:::-;:37;;:60;;;;:::i;:::-;9617:67;;9554:132;:::o;11729:580::-;3688:19;3696:10;3688:7;:19::i;:::-;3680:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11825:13:::1;11866:5;11858:4;11842:13;:11;:13::i;:::-;:20;;;;:::i;:::-;11841:30;;;;:::i;:::-;11825:46;;11882:19;11931:5;11921:6;11905:13;:11;:13::i;:::-;:22;;;;:::i;:::-;11904:32;;;;:::i;:::-;11882:54;;11947:17;11995:5;11984:7;11968:13;:11;:13::i;:::-;:23;;;;:::i;:::-;11967:33;;;;:::i;:::-;11947:53;;12033:4;12011:19;:26;;;;12070:6;12048:19;:28;;;;12107:7;12087:17;:27;;;;12125:13;12141:30;12166:4;12141:20;12159:1;12141:13;:11;:13::i;:::-;:17;;:20;;;;:::i;:::-;:24;;:30;;;;:::i;:::-;12125:46;;12199:5;12190;:14;;:38;;;;;12223:5;12208:11;:20;;12190:38;:60;;;;;12245:5;12232:9;:18;;12190:60;12182:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;11814:495;;;;11729:580:::0;;;:::o;9931:119::-;9982:7;10037:11;;10015:19;;9999:13;:11;:13::i;:::-;:35;;;;:::i;:::-;:49;;;;:::i;:::-;9992:56;;9931:119;:::o;17222:309::-;17320:4;17337:36;17347:6;17355:9;17366:6;17337:9;:36::i;:::-;17384:117;17393:6;17401:10;17413:87;17449:6;17413:87;;;;;;;;;;;;;;;;;:11;:19;17425:6;17413:19;;;;;;;;;;;;;;;:31;17433:10;17413:31;;;;;;;;;;;;;;;;:35;;:87;;;;;:::i;:::-;17384:8;:117::i;:::-;17519:4;17512:11;;17222:309;;;;;:::o;8493:91::-;3688:19;3696:10;3688:7;:19::i;:::-;3680:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8551:7:::1;8548:35;;;8577:4;8560:14;;:21;;;;;;;;;;;;;;;;;;8548:35;8493:91:::0;:::o;3729:87::-;3784:4;3809:5;;;;;;;;;;;3798:16;;:7;:16;;;3791:23;;3729:87;;;:::o;8420:67::-;8461:5;6110:1;8469:16;;8420:67;:::o;6459:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;9195:100::-;3688:19;3696:10;3688:7;:19::i;:::-;3680:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;9285:8:::1;9267:5;:15;9273:8;9267:15;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;9195:100:::0;;:::o;9301:108::-;3688:19;3696:10;3688:7;:19::i;:::-;3680:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;9399:8:::1;9375:11;:21;9387:8;9375:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;9301:108:::0;;:::o;8674:103::-;8740:7;8757:9;:18;8767:7;8757:18;;;;;;;;;;;;;;;;8750:25;;8674:103;;;:::o;9692:114::-;9740:7;9793:11;;9773:17;;9757:13;:11;:13::i;:::-;:33;;;;:::i;:::-;:47;;;;:::i;:::-;9750:54;;9692:114;:::o;9812:113::-;9857:7;9912:11;;9890:19;;9874:13;:11;:13::i;:::-;:35;;;;:::i;:::-;:49;;;;:::i;:::-;9867:56;;9812:113;:::o;8590:78::-;8642:7;8660:5;;;;;;;;;;;8653:12;;8590:78;:::o;8343:71::-;8382:13;8405:7;;;;;;;;;;;;;;;;;8398:14;;8343:71;:::o;6577:19::-;;;;;;;;;;;;;:::o;8783:139::-;8861:4;8868:40;8878:10;8890:9;8901:6;8868:9;:40::i;:::-;8916:4;8909:11;;8783:139;;;;:::o;11199:522::-;3688:19;3696:10;3688:7;:19::i;:::-;3680:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11385:10:::1;11370:12;:25;;;;11421:10;11406:12;:25;;;;11452:5;11442:7;:15;;;;11485:12;11468:14;:29;;;;11519:6;11508:8;:17;;;;11546:5;11536:7;:15;;;;11576:6;11562:11;:20;;;;11613:18;11629:1;11613:11;;:15;;:18;;;;:::i;:::-;11601:8;;:30;;:63;;;;;11646:18;11662:1;11646:11;;:15;;:18;;;;:::i;:::-;11635:7;;:29;;11601:63;11593:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;11199:522:::0;;;;;;;:::o;8928:127::-;9009:7;9026:11;:18;9038:5;9026:18;;;;;;;;;;;;;;;:27;9045:7;9026:27;;;;;;;;;;;;;;;;9019:34;;8928:127;;;;:::o;15659:315::-;3688:19;3696:10;3688:7;:19::i;:::-;3680:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15801:11:::1;15788:10;:24;;;;15830:53;15875:6;15830:32;15847:14;15830:12;;:16;;:32;;;;:::i;:::-;:36;;:53;;;;:::i;:::-;15814:13;:69;;;;15912:54;15958:6;15912:33;15929:15;15912:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;15895:14;:71;;;;15659:315:::0;;;:::o;3822:111::-;3688:19;3696:10;3688:7;:19::i;:::-;3680:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3896:3:::1;3888:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3906:25;3927:3;3906:25;;;;;;:::i;:::-;;;;;;;;3822:111:::0;:::o;17539:335::-;17649:1;17632:19;;:5;:19;;;17624:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17730:1;17711:21;;:7;:21;;;17703:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17812:6;17782:11;:18;17794:5;17782:18;;;;;;;;;;;;;;;:27;17801:7;17782:27;;;;;;;;;;;;;;;:36;;;;17850:7;17834:32;;17843:5;17834:32;;;17859:6;17834:32;;;;;;:::i;:::-;;;;;;;;17539:335;;;:::o;915:82::-;973:7;994:1;990;:5;;;;:::i;:::-;983:12;;915:82;;;;:::o;1003:::-;1061:7;1082:1;1078;:5;;;;:::i;:::-;1071:12;;1003:82;;;;:::o;1091:::-;1149:7;1170:1;1166;:5;;;;:::i;:::-;1159:12;;1091:82;;;;:::o;10505:686::-;10594:37;10605:6;10613:9;10624:6;10594:10;:37::i;:::-;10642:38;10662:6;10670:9;10642:19;:38::i;:::-;10691:41;10706:6;10714:9;10725:6;10691:14;:41::i;:::-;10744:35;10761:6;10769:9;10744:16;:35::i;:::-;10790:39;10803:6;10811:9;10822:6;10790:12;:39::i;:::-;10841:35;10850:6;10858:9;10869:6;10841:8;:35::i;:::-;10907:29;10929:6;10907:9;:17;10917:6;10907:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;10887:9;:17;10897:6;10887:17;;;;;;;;;;;;;;;:49;;;;10947:22;10972:32;10986:6;10994:9;10972:13;:32::i;:::-;:78;;11044:6;10972:78;;;11007:34;11015:6;11023:9;11034:6;11007:7;:34::i;:::-;10972:78;10947:103;;11084:40;11109:14;11084:9;:20;11094:9;11084:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11061:9;:20;11071:9;11061:20;;;;;;;;;;;;;;;:63;;;;11157:9;11140:43;;11149:6;11140:43;;;11168:14;11140:43;;;;;;:::i;:::-;;;;;;;;10583:608;10505:686;;;:::o;2128:162::-;2214:7;2257:1;2252;:6;;2260:12;2244:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2286:1;2282;:5;2275:12;;2128:162;;;;;:::o;10058:439::-;10180:1;10162:20;;:6;:20;;;10154:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;10264:1;10243:23;;:9;:23;;;10235:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10342:1;10325:6;:19;10317:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;10419:17;10429:6;10419:9;:17::i;:::-;10409:6;:27;;10401:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;10058:439;;;:::o;12317:191::-;12410:11;:19;12422:6;12410:19;;;;;;;;;;;;;;;;;;;;;;;;;12409:20;:47;;;;;12434:11;:22;12446:9;12434:22;;;;;;;;;;;;;;;;;;;;;;;;;12433:23;12409:47;12406:95;;;12466:14;;;;;;;;;;;12458:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;12406:95;12317:191;;:::o;12520:333::-;12624:11;:19;12636:6;12624:19;;;;;;;;;;;;;;;;;;;;;;;;;12623:20;:47;;;;;12648:11;:22;12660:9;12648:22;;;;;;;;;;;;;;;;;;;;;;;;;12647:23;12623:47;:77;;;;;12695:4;;;;;;;;;;;12674:26;;:9;:26;;;;12623:77;:107;;;;;7325:42;12704:26;;:9;:26;;;;12623:107;12620:226;;;12792:17;:15;:17::i;:::-;12755:32;12780:6;12755:9;:20;12765:9;12755:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12754:55;;12746:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;12620:226;12520:333;;;:::o;12861:159::-;12958:4;;;;;;;;;;;12945:17;;:9;:17;;;:41;;;;;12967:11;:19;12979:6;12967:19;;;;;;;;;;;;;;;;;;;;;;;;;12966:20;12945:41;12942:71;;;13009:1;12988:9;;:23;;;;;;;:::i;:::-;;;;;;;;12942:71;12861:159;;:::o;13028:349::-;13139:4;;;;;;;;;;;13129:14;;:6;:14;;;13126:130;;13163:20;:18;:20::i;:::-;13153:6;:30;;:53;;;;13187:11;:19;13199:6;13187:19;;;;;;;;;;;;;;;;;;;;;;;;;13153:53;:79;;;;13210:11;:22;13222:9;13210:22;;;;;;;;;;;;;;;;;;;;;;;;;13153:79;13145:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;13126:130;13284:14;:12;:14::i;:::-;13274:6;:24;;:47;;;;13302:11;:19;13314:6;13302:19;;;;;;;;;;;;;;;;;;;;;;;;;13274:47;:73;;;;13325:11;:22;13337:9;13325:22;;;;;;;;;;;;;;;;;;;;;;;;;13274:73;13266:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;13028:349;;;:::o;15982:197::-;16074:41;16089:6;16097:9;16108:6;16074:14;:41::i;:::-;16071:101;;;16117:29;16132:13;;16117:14;:29::i;:::-;16168:1;16148:9;:22;;;;16071:101;15982:197;;;:::o;16187:160::-;16268:4;16293:11;:19;16305:6;16293:19;;;;;;;;;;;;;;;;;;;;;;;;;16292:20;:47;;;;;16317:11;:22;16329:9;16317:22;;;;;;;;;;;;;;;;;;;;;;;;;16316:23;16292:47;16285:54;;16187:160;;;;:::o;16668:546::-;16754:7;16810:1;16777:30;16789:6;16797:9;16777:11;:30::i;:::-;:34;16774:418;;;16823:17;16843:59;16871:30;16883:6;16891:9;16871:11;:30::i;:::-;16843:23;16854:11;;16843:6;:10;;:23;;;;:::i;:::-;:27;;:59;;;;:::i;:::-;16823:79;;16940:39;16969:9;16940;:24;16958:4;16940:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;16913:9;:24;16931:4;16913:24;;;;;;;;;;;;;;;:66;;;;17020:4;16995:42;;17004:6;16995:42;;;17027:9;16995:42;;;;;;:::i;:::-;;;;;;;;17069:1;17051:7;;:20;17048:104;;;17073:77;17091:4;7325:42;17113:36;17141:7;;17113:23;17124:11;;17113:6;:10;;:23;;;;:::i;:::-;:27;;:36;;;;:::i;:::-;17073:9;:77::i;:::-;17048:104;17169:21;17180:9;17169:6;:10;;:21;;;;:::i;:::-;17162:28;;;;;16774:418;17200:6;17193:13;;16668:546;;;;;;:::o;827:82::-;885:7;906:1;902;:5;;;;:::i;:::-;895:12;;827:82;;;;:::o;15252:399::-;15350:4;15367:13;15393:14;;15383:6;:24;;15367:40;;15418:19;15468:13;;15440:24;15458:4;15440:9;:24::i;:::-;:41;;15418:63;;15500:8;;;;;;;;;;;15499:9;:24;;;;;15512:11;;;;;;;;;;;15499:24;:42;;;;;15527:14;;;;;;;;;;;15499:42;:54;;;;;15545:8;15499:54;:78;;;;;15558:11;:19;15570:6;15558:19;;;;;;;;;;;;;;;;;;;;;;;;;15557:20;15499:78;:99;;;;;15594:4;;;;;;;;;;;15581:17;;:9;:17;;;15499:99;:126;;;;;15615:10;;15602:9;;:23;;15499:126;:144;;;;;15629:14;15499:144;15492:151;;;;15252:399;;;;;:::o;13385:1066::-;7257:4;7246:8;;:15;;;;;;;;;;;;;;;;;;13456:20:::1;13479:66;13543:1;13480:57;13522:14;;13480:37;13504:12;;13480:19;13497:1;13480:12;;:16;;:19;;;;:::i;:::-;:23;;:37;;;;:::i;:::-;:41;;:57;;;;:::i;:::-;13479:63;;:66;;;;:::i;:::-;13456:89;;13556:32;13591:42;13620:12;13591:24;13602:12;;13591:6;:10;;:24;;;;:::i;:::-;:28;;:42;;;;:::i;:::-;13556:77;;13644:14;13661:36;13672:24;13661:6;:10;;:36;;;;:::i;:::-;13644:53;;13708:22;13733:21;13708:46;;13765:24;13782:6;13765:16;:24::i;:::-;13800:20;13823:41;13849:14;13823:21;:25;;:41;;;;:::i;:::-;13800:64;;13875:19;13896:48;13913:30;13930:12;;13913;:16;;:30;;;;:::i;:::-;13896:12;:16;;:48;;;;:::i;:::-;13875:69;;13955:29;13987;14003:12;;13987:11;:15;;:29;;;;:::i;:::-;13955:61;;14062:1;14030:21;:34;14027:103;;;14066:61;14079:24;14105:21;14066:12;:61::i;:::-;14027:103;14140:20;14163:36;14186:12;;14163:18;14179:1;14163:11;:15;;:18;;;;:::i;:::-;:22;;:36;;;;:::i;:::-;14140:59;;14228:1;14213:12;:16;14210:73;;;7520:42;14231:36;;:50;14268:12;14231:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14210:73;14293:24;14320:21;14293:48;;14382:1;14355:16;:29;14352:92;;;7423:42;14386:38;;:56;14425:16;14386:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14352:92;13445:1006;;;;;;;;;7277:5:::0;7266:8;;:16;;;;;;;;;;;;;;;;;;13385:1066;:::o;16355:305::-;16434:7;16457:5;:13;16463:6;16457:13;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;;16474:5;:16;16480:9;16474:16;;;;;;;;;;;;;;;;;;;;;;;;;16457:33;16454:76;;;16499:29;16523:3;16499:11;;:15;;:29;;;;:::i;:::-;16492:36;;;;16454:76;16556:4;;;;;;;;;;;16543:17;;:9;:17;;;16540:38;;16569:7;;16562:14;;;;16540:38;16601:4;;;;;;;;;;;16591:14;;:6;:14;;;16588:36;;16614:8;;16607:15;;;;16588:36;16641:11;;16634:18;;16355:305;;;;;:::o;14810:434::-;14876:21;14914:1;14900:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14876:40;;14945:4;14927;14932:1;14927:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;14971:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14961:4;14966:1;14961:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;14995:53;15012:4;15027:6;;;;;;;;;;;15036:11;14995:8;:53::i;:::-;15059:6;;;;;;;;;;;:57;;;15131:11;15157:1;15173:4;15200;15220:15;15059:177;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14865:379;14810:434;:::o;14459:343::-;14540:53;14557:4;14572:6;;;;;;;;;;;14581:11;14540:8;:53::i;:::-;14604:6;;;;;;;;;;;:22;;;14634:9;14667:4;14687:11;14713:1;14729;7616:42;14778:15;14604:190;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14459:343;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:::-;4500:6;4508;4516;4565:2;4553:9;4544:7;4540:23;4536:32;4533:119;;;4571:79;;:::i;:::-;4533:119;4691:1;4716:53;4761:7;4752:6;4741:9;4737:22;4716:53;:::i;:::-;4706:63;;4662:117;4818:2;4844:53;4889:7;4880:6;4869:9;4865:22;4844:53;:::i;:::-;4834:63;;4789:118;4946:2;4972:53;5017:7;5008:6;4997:9;4993:22;4972:53;:::i;:::-;4962:63;;4917:118;4423:619;;;;;:::o;5048:116::-;5118:21;5133:5;5118:21;:::i;:::-;5111:5;5108:32;5098:60;;5154:1;5151;5144:12;5098:60;5048:116;:::o;5170:133::-;5213:5;5251:6;5238:20;5229:29;;5267:30;5291:5;5267:30;:::i;:::-;5170:133;;;;:::o;5309:323::-;5365:6;5414:2;5402:9;5393:7;5389:23;5385:32;5382:119;;;5420:79;;:::i;:::-;5382:119;5540:1;5565:50;5607:7;5598:6;5587:9;5583:22;5565:50;:::i;:::-;5555:60;;5511:114;5309:323;;;;:::o;5638:329::-;5697:6;5746:2;5734:9;5725:7;5721:23;5717:32;5714:119;;;5752:79;;:::i;:::-;5714:119;5872:1;5897:53;5942:7;5933:6;5922:9;5918:22;5897:53;:::i;:::-;5887:63;;5843:117;5638:329;;;;:::o;5973:86::-;6008:7;6048:4;6041:5;6037:16;6026:27;;5973:86;;;:::o;6065:112::-;6148:22;6164:5;6148:22;:::i;:::-;6143:3;6136:35;6065:112;;:::o;6183:214::-;6272:4;6310:2;6299:9;6295:18;6287:26;;6323:67;6387:1;6376:9;6372:17;6363:6;6323:67;:::i;:::-;6183:214;;;;:::o;6403:468::-;6468:6;6476;6525:2;6513:9;6504:7;6500:23;6496:32;6493:119;;;6531:79;;:::i;:::-;6493:119;6651:1;6676:53;6721:7;6712:6;6701:9;6697:22;6676:53;:::i;:::-;6666:63;;6622:117;6778:2;6804:50;6846:7;6837:6;6826:9;6822:22;6804:50;:::i;:::-;6794:60;;6749:115;6403:468;;;;;:::o;6877:118::-;6964:24;6982:5;6964:24;:::i;:::-;6959:3;6952:37;6877:118;;:::o;7001:222::-;7094:4;7132:2;7121:9;7117:18;7109:26;;7145:71;7213:1;7202:9;7198:17;7189:6;7145:71;:::i;:::-;7001:222;;;;:::o;7229:1203::-;7342:6;7350;7358;7366;7374;7382;7390;7439:3;7427:9;7418:7;7414:23;7410:33;7407:120;;;7446:79;;:::i;:::-;7407:120;7566:1;7591:53;7636:7;7627:6;7616:9;7612:22;7591:53;:::i;:::-;7581:63;;7537:117;7693:2;7719:53;7764:7;7755:6;7744:9;7740:22;7719:53;:::i;:::-;7709:63;;7664:118;7821:2;7847:53;7892:7;7883:6;7872:9;7868:22;7847:53;:::i;:::-;7837:63;;7792:118;7949:2;7975:53;8020:7;8011:6;8000:9;7996:22;7975:53;:::i;:::-;7965:63;;7920:118;8077:3;8104:53;8149:7;8140:6;8129:9;8125:22;8104:53;:::i;:::-;8094:63;;8048:119;8206:3;8233:53;8278:7;8269:6;8258:9;8254:22;8233:53;:::i;:::-;8223:63;;8177:119;8335:3;8362:53;8407:7;8398:6;8387:9;8383:22;8362:53;:::i;:::-;8352:63;;8306:119;7229:1203;;;;;;;;;;:::o;8438:474::-;8506:6;8514;8563:2;8551:9;8542:7;8538:23;8534:32;8531:119;;;8569:79;;:::i;:::-;8531:119;8689:1;8714:53;8759:7;8750:6;8739:9;8735:22;8714:53;:::i;:::-;8704:63;;8660:117;8816:2;8842:53;8887:7;8878:6;8867:9;8863:22;8842:53;:::i;:::-;8832:63;;8787:118;8438:474;;;;;:::o;8918:104::-;8963:7;8992:24;9010:5;8992:24;:::i;:::-;8981:35;;8918:104;;;:::o;9028:138::-;9109:32;9135:5;9109:32;:::i;:::-;9102:5;9099:43;9089:71;;9156:1;9153;9146:12;9089:71;9028:138;:::o;9172:155::-;9226:5;9264:6;9251:20;9242:29;;9280:41;9315:5;9280:41;:::i;:::-;9172:155;;;;:::o;9333:345::-;9400:6;9449:2;9437:9;9428:7;9424:23;9420:32;9417:119;;;9455:79;;:::i;:::-;9417:119;9575:1;9600:61;9653:7;9644:6;9633:9;9629:22;9600:61;:::i;:::-;9590:71;;9546:125;9333:345;;;;:::o;9684:156::-;9824:8;9820:1;9812:6;9808:14;9801:32;9684:156;:::o;9846:365::-;9988:3;10009:66;10073:1;10068:3;10009:66;:::i;:::-;10002:73;;10084:93;10173:3;10084:93;:::i;:::-;10202:2;10197:3;10193:12;10186:19;;9846:365;;;:::o;10217:419::-;10383:4;10421:2;10410:9;10406:18;10398:26;;10470:9;10464:4;10460:20;10456:1;10445:9;10441:17;10434:47;10498:131;10624:4;10498:131;:::i;:::-;10490:139;;10217:419;;;:::o;10642:180::-;10690:77;10687:1;10680:88;10787:4;10784:1;10777:15;10811:4;10808:1;10801:15;10828:348;10868:7;10891:20;10909:1;10891:20;:::i;:::-;10886:25;;10925:20;10943:1;10925:20;:::i;:::-;10920:25;;11113:1;11045:66;11041:74;11038:1;11035:81;11030:1;11023:9;11016:17;11012:105;11009:131;;;11120:18;;:::i;:::-;11009:131;11168:1;11165;11161:9;11150:20;;10828:348;;;;:::o;11182:180::-;11230:77;11227:1;11220:88;11327:4;11324:1;11317:15;11351:4;11348:1;11341:15;11368:185;11408:1;11425:20;11443:1;11425:20;:::i;:::-;11420:25;;11459:20;11477:1;11459:20;:::i;:::-;11454:25;;11498:1;11488:35;;11503:18;;:::i;:::-;11488:35;11545:1;11542;11538:9;11533:14;;11368:185;;;;:::o;11559:233::-;11699:34;11695:1;11687:6;11683:14;11676:58;11768:16;11763:2;11755:6;11751:15;11744:41;11559:233;:::o;11798:366::-;11940:3;11961:67;12025:2;12020:3;11961:67;:::i;:::-;11954:74;;12037:93;12126:3;12037:93;:::i;:::-;12155:2;12150:3;12146:12;12139:19;;11798:366;;;:::o;12170:419::-;12336:4;12374:2;12363:9;12359:18;12351:26;;12423:9;12417:4;12413:20;12409:1;12398:9;12394:17;12387:47;12451:131;12577:4;12451:131;:::i;:::-;12443:139;;12170:419;;;:::o;12595:231::-;12735:34;12731:1;12723:6;12719:14;12712:58;12804:14;12799:2;12791:6;12787:15;12780:39;12595:231;:::o;12832:366::-;12974:3;12995:67;13059:2;13054:3;12995:67;:::i;:::-;12988:74;;13071:93;13160:3;13071:93;:::i;:::-;13189:2;13184:3;13180:12;13173:19;;12832:366;;;:::o;13204:419::-;13370:4;13408:2;13397:9;13393:18;13385:26;;13457:9;13451:4;13447:20;13443:1;13432:9;13428:17;13421:47;13485:131;13611:4;13485:131;:::i;:::-;13477:139;;13204:419;;;:::o;13629:60::-;13657:3;13678:5;13671:12;;13629:60;;;:::o;13695:142::-;13745:9;13778:53;13796:34;13805:24;13823:5;13805:24;:::i;:::-;13796:34;:::i;:::-;13778:53;:::i;:::-;13765:66;;13695:142;;;:::o;13843:126::-;13893:9;13926:37;13957:5;13926:37;:::i;:::-;13913:50;;13843:126;;;:::o;13975:134::-;14033:9;14066:37;14097:5;14066:37;:::i;:::-;14053:50;;13975:134;;;:::o;14115:147::-;14210:45;14249:5;14210:45;:::i;:::-;14205:3;14198:58;14115:147;;:::o;14268:238::-;14369:4;14407:2;14396:9;14392:18;14384:26;;14420:79;14496:1;14485:9;14481:17;14472:6;14420:79;:::i;:::-;14268:238;;;;:::o;14512:223::-;14652:34;14648:1;14640:6;14636:14;14629:58;14721:6;14716:2;14708:6;14704:15;14697:31;14512:223;:::o;14741:366::-;14883:3;14904:67;14968:2;14963:3;14904:67;:::i;:::-;14897:74;;14980:93;15069:3;14980:93;:::i;:::-;15098:2;15093:3;15089:12;15082:19;;14741:366;;;:::o;15113:419::-;15279:4;15317:2;15306:9;15302:18;15294:26;;15366:9;15360:4;15356:20;15352:1;15341:9;15337:17;15330:47;15394:131;15520:4;15394:131;:::i;:::-;15386:139;;15113:419;;;:::o;15538:221::-;15678:34;15674:1;15666:6;15662:14;15655:58;15747:4;15742:2;15734:6;15730:15;15723:29;15538:221;:::o;15765:366::-;15907:3;15928:67;15992:2;15987:3;15928:67;:::i;:::-;15921:74;;16004:93;16093:3;16004:93;:::i;:::-;16122:2;16117:3;16113:12;16106:19;;15765:366;;;:::o;16137:419::-;16303:4;16341:2;16330:9;16326:18;16318:26;;16390:9;16384:4;16380:20;16376:1;16365:9;16361:17;16354:47;16418:131;16544:4;16418:131;:::i;:::-;16410:139;;16137:419;;;:::o;16562:194::-;16602:4;16622:20;16640:1;16622:20;:::i;:::-;16617:25;;16656:20;16674:1;16656:20;:::i;:::-;16651:25;;16700:1;16697;16693:9;16685:17;;16724:1;16718:4;16715:11;16712:37;;;16729:18;;:::i;:::-;16712:37;16562:194;;;;:::o;16762:224::-;16902:34;16898:1;16890:6;16886:14;16879:58;16971:7;16966:2;16958:6;16954:15;16947:32;16762:224;:::o;16992:366::-;17134:3;17155:67;17219:2;17214:3;17155:67;:::i;:::-;17148:74;;17231:93;17320:3;17231:93;:::i;:::-;17349:2;17344:3;17340:12;17333:19;;16992:366;;;:::o;17364:419::-;17530:4;17568:2;17557:9;17553:18;17545:26;;17617:9;17611:4;17607:20;17603:1;17592:9;17588:17;17581:47;17645:131;17771:4;17645:131;:::i;:::-;17637:139;;17364:419;;;:::o;17789:222::-;17929:34;17925:1;17917:6;17913:14;17906:58;17998:5;17993:2;17985:6;17981:15;17974:30;17789:222;:::o;18017:366::-;18159:3;18180:67;18244:2;18239:3;18180:67;:::i;:::-;18173:74;;18256:93;18345:3;18256:93;:::i;:::-;18374:2;18369:3;18365:12;18358:19;;18017:366;;;:::o;18389:419::-;18555:4;18593:2;18582:9;18578:18;18570:26;;18642:9;18636:4;18632:20;18628:1;18617:9;18613:17;18606:47;18670:131;18796:4;18670:131;:::i;:::-;18662:139;;18389:419;;;:::o;18814:228::-;18954:34;18950:1;18942:6;18938:14;18931:58;19023:11;19018:2;19010:6;19006:15;18999:36;18814:228;:::o;19048:366::-;19190:3;19211:67;19275:2;19270:3;19211:67;:::i;:::-;19204:74;;19287:93;19376:3;19287:93;:::i;:::-;19405:2;19400:3;19396:12;19389:19;;19048:366;;;:::o;19420:419::-;19586:4;19624:2;19613:9;19609:18;19601:26;;19673:9;19667:4;19663:20;19659:1;19648:9;19644:17;19637:47;19701:131;19827:4;19701:131;:::i;:::-;19693:139;;19420:419;;;:::o;19845:236::-;19985:34;19981:1;19973:6;19969:14;19962:58;20054:19;20049:2;20041:6;20037:15;20030:44;19845:236;:::o;20087:366::-;20229:3;20250:67;20314:2;20309:3;20250:67;:::i;:::-;20243:74;;20326:93;20415:3;20326:93;:::i;:::-;20444:2;20439:3;20435:12;20428:19;;20087:366;;;:::o;20459:419::-;20625:4;20663:2;20652:9;20648:18;20640:26;;20712:9;20706:4;20702:20;20698:1;20687:9;20683:17;20676:47;20740:131;20866:4;20740:131;:::i;:::-;20732:139;;20459:419;;;:::o;20884:164::-;21024:16;21020:1;21012:6;21008:14;21001:40;20884:164;:::o;21054:366::-;21196:3;21217:67;21281:2;21276:3;21217:67;:::i;:::-;21210:74;;21293:93;21382:3;21293:93;:::i;:::-;21411:2;21406:3;21402:12;21395:19;;21054:366;;;:::o;21426:419::-;21592:4;21630:2;21619:9;21615:18;21607:26;;21679:9;21673:4;21669:20;21665:1;21654:9;21650:17;21643:47;21707:131;21833:4;21707:131;:::i;:::-;21699:139;;21426:419;;;:::o;21851:180::-;21991:32;21987:1;21979:6;21975:14;21968:56;21851:180;:::o;22037:366::-;22179:3;22200:67;22264:2;22259:3;22200:67;:::i;:::-;22193:74;;22276:93;22365:3;22276:93;:::i;:::-;22394:2;22389:3;22385:12;22378:19;;22037:366;;;:::o;22409:419::-;22575:4;22613:2;22602:9;22598:18;22590:26;;22662:9;22656:4;22652:20;22648:1;22637:9;22633:17;22626:47;22690:131;22816:4;22690:131;:::i;:::-;22682:139;;22409:419;;;:::o;22834:191::-;22874:3;22893:20;22911:1;22893:20;:::i;:::-;22888:25;;22927:20;22945:1;22927:20;:::i;:::-;22922:25;;22970:1;22967;22963:9;22956:16;;22991:3;22988:1;22985:10;22982:36;;;22998:18;;:::i;:::-;22982:36;22834:191;;;;:::o;23031:167::-;23171:19;23167:1;23159:6;23155:14;23148:43;23031:167;:::o;23204:366::-;23346:3;23367:67;23431:2;23426:3;23367:67;:::i;:::-;23360:74;;23443:93;23532:3;23443:93;:::i;:::-;23561:2;23556:3;23552:12;23545:19;;23204:366;;;:::o;23576:419::-;23742:4;23780:2;23769:9;23765:18;23757:26;;23829:9;23823:4;23819:20;23815:1;23804:9;23800:17;23793:47;23857:131;23983:4;23857:131;:::i;:::-;23849:139;;23576:419;;;:::o;24001:180::-;24049:77;24046:1;24039:88;24146:4;24143:1;24136:15;24170:4;24167:1;24160:15;24187:180;24235:77;24232:1;24225:88;24332:4;24329:1;24322:15;24356:4;24353:1;24346:15;24373:143;24430:5;24461:6;24455:13;24446:22;;24477:33;24504:5;24477:33;:::i;:::-;24373:143;;;;:::o;24522:351::-;24592:6;24641:2;24629:9;24620:7;24616:23;24612:32;24609:119;;;24647:79;;:::i;:::-;24609:119;24767:1;24792:64;24848:7;24839:6;24828:9;24824:22;24792:64;:::i;:::-;24782:74;;24738:128;24522:351;;;;:::o;24879:85::-;24924:7;24953:5;24942:16;;24879:85;;;:::o;24970:158::-;25028:9;25061:61;25079:42;25088:32;25114:5;25088:32;:::i;:::-;25079:42;:::i;:::-;25061:61;:::i;:::-;25048:74;;24970:158;;;:::o;25134:147::-;25229:45;25268:5;25229:45;:::i;:::-;25224:3;25217:58;25134:147;;:::o;25287:114::-;25354:6;25388:5;25382:12;25372:22;;25287:114;;;:::o;25407:184::-;25506:11;25540:6;25535:3;25528:19;25580:4;25575:3;25571:14;25556:29;;25407:184;;;;:::o;25597:132::-;25664:4;25687:3;25679:11;;25717:4;25712:3;25708:14;25700:22;;25597:132;;;:::o;25735:108::-;25812:24;25830:5;25812:24;:::i;:::-;25807:3;25800:37;25735:108;;:::o;25849:179::-;25918:10;25939:46;25981:3;25973:6;25939:46;:::i;:::-;26017:4;26012:3;26008:14;25994:28;;25849:179;;;;:::o;26034:113::-;26104:4;26136;26131:3;26127:14;26119:22;;26034:113;;;:::o;26183:732::-;26302:3;26331:54;26379:5;26331:54;:::i;:::-;26401:86;26480:6;26475:3;26401:86;:::i;:::-;26394:93;;26511:56;26561:5;26511:56;:::i;:::-;26590:7;26621:1;26606:284;26631:6;26628:1;26625:13;26606:284;;;26707:6;26701:13;26734:63;26793:3;26778:13;26734:63;:::i;:::-;26727:70;;26820:60;26873:6;26820:60;:::i;:::-;26810:70;;26666:224;26653:1;26650;26646:9;26641:14;;26606:284;;;26610:14;26906:3;26899:10;;26307:608;;;26183:732;;;;:::o;26921:831::-;27184:4;27222:3;27211:9;27207:19;27199:27;;27236:71;27304:1;27293:9;27289:17;27280:6;27236:71;:::i;:::-;27317:80;27393:2;27382:9;27378:18;27369:6;27317:80;:::i;:::-;27444:9;27438:4;27434:20;27429:2;27418:9;27414:18;27407:48;27472:108;27575:4;27566:6;27472:108;:::i;:::-;27464:116;;27590:72;27658:2;27647:9;27643:18;27634:6;27590:72;:::i;:::-;27672:73;27740:3;27729:9;27725:19;27716:6;27672:73;:::i;:::-;26921:831;;;;;;;;:::o;27758:807::-;28007:4;28045:3;28034:9;28030:19;28022:27;;28059:71;28127:1;28116:9;28112:17;28103:6;28059:71;:::i;:::-;28140:72;28208:2;28197:9;28193:18;28184:6;28140:72;:::i;:::-;28222:80;28298:2;28287:9;28283:18;28274:6;28222:80;:::i;:::-;28312;28388:2;28377:9;28373:18;28364:6;28312:80;:::i;:::-;28402:73;28470:3;28459:9;28455:19;28446:6;28402:73;:::i;:::-;28485;28553:3;28542:9;28538:19;28529:6;28485:73;:::i;:::-;27758:807;;;;;;;;;:::o;28571:143::-;28628:5;28659:6;28653:13;28644:22;;28675:33;28702:5;28675:33;:::i;:::-;28571:143;;;;:::o;28720:663::-;28808:6;28816;28824;28873:2;28861:9;28852:7;28848:23;28844:32;28841:119;;;28879:79;;:::i;:::-;28841:119;28999:1;29024:64;29080:7;29071:6;29060:9;29056:22;29024:64;:::i;:::-;29014:74;;28970:128;29137:2;29163:64;29219:7;29210:6;29199:9;29195:22;29163:64;:::i;:::-;29153:74;;29108:129;29276:2;29302:64;29358:7;29349:6;29338:9;29334:22;29302:64;:::i;:::-;29292:74;;29247:129;28720:663;;;;;:::o

Swarm Source

ipfs://22bc7e8d7679816b69901d7396658c0fa8192d442c550868470351a926a3cf9e
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.