ETH Price: $2,455.43 (-1.30%)

Token

Burnt Lobster (🔥🦞)
 

Overview

Max Total Supply

821,374.756417 🔥🦞

Holders

540

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 6 Decimals)

Balance
21.401541 🔥🦞

Value
$0.00
0xA6a3931c141CCb88F416B58AA64Df4506E1F22b7
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:
BurntLobster

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-07
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

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

library Address {
        
    function isContract(address account) internal view returns (bool) {
        
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

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

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

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

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

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

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

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

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

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

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

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

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

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

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

contract BurntLobster is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;

    string private constant _name = "Burnt Lobster";
    string private constant _symbol = unicode"🔥🦞";
    uint8 private constant _decimals = 6;
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 public _tTotal = 1000 * 1e3 * 1e6; //1,000,000

    uint256 public _maxWalletAmount = 20 * 1e3 * 1e6; //2%
    uint256 public j_maxtxn = 20 * 1e3 * 1e6; //1%
    uint256 public swapAmount = 7 * 1e2 * 1e6; //.07%
    uint256 private buyPyroUpperLimit = 100 * 1e14; // 0.01

    // fees
    uint256 public j_liqBuy = 3; 
    uint256 public j_burnBuy = 3;
    uint256 public j_pyroBuy = 3;
    uint256 public j_jeetBuy = 0;

    uint256 public j_liqSell = 3; 
    uint256 public j_burnSell = 3;
    uint256 public j_pyroSell = 3;
    uint256 public j_jeetSell = 9;
 
    uint256 private j_previousLiqFee = j_liqFee;
    uint256 private j_previousBurnFee = j_burnFee;
    uint256 private j_previousPyroFee = j_pyroFee;
    uint256 private j_previousJeetTax = j_jeetTax;
    
    uint256 private j_liqFee;
    uint256 private j_burnFee;
    uint256 private j_pyroFee;
    uint256 private j_jeetTax;

    uint256 public _totalBurned;

    struct FeeBreakdown {
        uint256 tLiq;
        uint256 tBurn;
        uint256 tPyro;
        uint256 tJeet;
        uint256 tAmount;
    }

    mapping(address => bool) private bots;
    address payable private scorcherWallet = payable(0x612e05A2Ba306B653DCBe23552856BFD69C11680);
    address payable private jeetWallet = payable(0x612e05A2Ba306B653DCBe23552856BFD69C11680);

    address payable public dead = payable(0x000000000000000000000000000000000000dEaD);
    address PYRO = 0x89568569DA9C83CB35E59F92f5Df2F6CA829EEeE;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private swapping = false;
    bool public burnMode = false;

    modifier lockSwap {
        swapping = true;
        _;
        swapping = false;
    }

    constructor() {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[scorcherWallet] = true;
        _isExcludedFromFee[dead] = true;
        _isExcludedFromFee[address(this)] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    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 totalSupply() public view override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
    
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

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

    function totalBurned() public view returns (uint256) {
        return _totalBurned;
    }

    function burning(address _account, uint _amount) private {  
        require( _amount <= balanceOf(_account));
        _balances[_account] = _balances[_account].sub(_amount);
        _tTotal = _tTotal.sub(_amount);
        _totalBurned = _totalBurned.add(_amount);
        emit Transfer(_account, address(0), _amount);
    }

    function removeAllFee() private {
        if (j_burnFee == 0 && j_liqFee == 0 && j_pyroFee == 0 && j_jeetTax == 0) return;
        j_previousBurnFee = j_burnFee;
        j_previousLiqFee = j_liqFee;
        j_previousPyroFee = j_pyroFee;
        j_previousJeetTax = j_jeetTax;

        j_burnFee = 0;
        j_liqFee = 0;
        j_pyroFee = 0;
        j_jeetTax = 0;
    }
    
    function restoreAllFee() private {
        j_liqFee = j_previousLiqFee;
        j_burnFee = j_previousBurnFee;
        j_pyroFee = j_previousPyroFee;
        j_jeetTax = j_previousJeetTax;
    }

    function removeJeetTax() external {
        require(_msgSender() == scorcherWallet);
        j_jeetSell = 1;
        j_liqSell = 2;
        j_liqBuy = 2;
        j_jeetBuy = 1;

    }

    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);
    }
    
    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!bots[from] && !bots[to]);

        bool takeFee = true;

        if (from != owner() && to != owner() && from != address(this) && to != address(this)) {

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ((!_isExcludedFromFee[from] || !_isExcludedFromFee[to]))) {
                require(balanceOf(to).add(amount) <= _maxWalletAmount, "You are being greedy. Exceeding Max Wallet.");
                require(amount <= j_maxtxn, "Slow down buddy...there is a max transaction");
            }
            

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !bots[to] && !bots[from]) {
                j_liqFee = j_liqBuy;
                j_burnFee = j_burnBuy;
                j_pyroFee = j_pyroBuy;
                j_jeetTax = j_jeetBuy;
            }
                
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && !bots[to] && !bots[from]) {
                j_liqFee = j_liqSell;
                j_burnFee = j_burnSell;
                j_pyroFee = j_pyroSell;
                j_jeetTax = j_jeetSell;
            }
           
            if (!swapping && from != uniswapV2Pair) {

                uint256 contractTokenBalance = balanceOf(address(this));

                if (contractTokenBalance > swapAmount) {
                    swapAndLiquify(contractTokenBalance);
                }

                uint256 contractETHBalance = address(this).balance;
            
                if (!burnMode && (contractETHBalance > 0)) {
                    sendETHToFee(address(this).balance);
                } else if (burnMode && (contractETHBalance > buyPyroUpperLimit)) {
                        uint256 buyAmount = (contractETHBalance.div(2));
                    buyPyro(buyAmount);
                }                    
            }
        }

        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        }
        
        _transferAgain(from, to, amount, takeFee);
        restoreAllFee();
    }

    function setMaxTxn(uint256 maxTransaction) external {
        require(maxTransaction >= 10 * 1e3 * 1e6,"negative ghost rider");
        require(_msgSender() == scorcherWallet);
        j_maxtxn = maxTransaction;
    }

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

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

      // make the swap
        uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0, // accept any amount of Tokens
            path,
            dead, // Burn address
            block.timestamp
        );        
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            scorcherWallet,
            block.timestamp
          );
    }
  
    function swapAndLiquify(uint256 contractTokenBalance) private lockSwap {
        uint256 autoLPamount = j_liqFee.mul(contractTokenBalance).div(j_burnFee.add(j_pyroFee).add(j_jeetTax).add(j_liqFee));
        uint256 half =  autoLPamount.div(2);
        uint256 otherHalf = contractTokenBalance.sub(half);
        uint256 initialBalance = address(this).balance;
        swapTokensForEth(otherHalf);
        uint256 newBalance = ((address(this).balance.sub(initialBalance)).mul(half)).div(otherHalf);
        addLiquidity(half, newBalance);
    }

    function sendETHToFee(uint256 amount) private {
        scorcherWallet.transfer((amount).div(2));
        jeetWallet.transfer((amount).div(2));
    }

    function manualSwap() external {
        require(_msgSender() == scorcherWallet);
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance > 0) {
            swapTokensForEth(contractBalance);
        }
    }

    function manualSend() external {
        require(_msgSender() == scorcherWallet);
        uint256 contractETHBalance = address(this).balance;
        if (contractETHBalance > 0) {
            sendETHToFee(contractETHBalance);
        }
    }

    function _transferAgain(address sender, address recipient, uint256 amount, bool takeFee) private {
        if (!takeFee) { 
                removeAllFee();
        }
        
        FeeBreakdown memory fees;
        fees.tBurn = amount.mul(j_burnFee).div(100);
        fees.tLiq = amount.mul(j_liqFee).div(100);
        fees.tPyro = amount.mul(j_pyroFee).div(100);
        fees.tJeet = amount.mul(j_jeetTax).div(100);
        
        fees.tAmount = amount.sub(fees.tPyro).sub(fees.tJeet).sub(fees.tBurn).sub(fees.tLiq);

        uint256 amountPreBurn = amount.sub(fees.tBurn);
        burning(sender, fees.tBurn);

        _balances[sender] = _balances[sender].sub(amountPreBurn);
        _balances[recipient] = _balances[recipient].add(fees.tAmount);
        _balances[address(this)] = _balances[address(this)].add(fees.tPyro).add(fees.tJeet).add(fees.tBurn.add(fees.tLiq));
        
        if(burnMode && sender != uniswapV2Pair && sender != address(this) && sender != address(uniswapV2Router) && (recipient == address(uniswapV2Router) || recipient == uniswapV2Pair)) {
            burning(uniswapV2Pair, fees.tBurn);
        }

        emit Transfer(sender, recipient, fees.tAmount);
        restoreAllFee();
    }
    
    receive() external payable {}

    function setMaxWalletAmount(uint256 maxWalletAmount) external {
        require(_msgSender() == scorcherWallet);
        require(maxWalletAmount > _tTotal.div(200), "Amount must be greater than 0.5% of supply");
        _maxWalletAmount = maxWalletAmount;
    }

    function setSwapAmount(uint256 _swapAmount) external {
        require(_msgSender() == scorcherWallet);
        swapAmount = _swapAmount;
    }

    function turnOnTheBurn() public onlyOwner {
        burnMode = true;
    }

    function buyPyro(uint256 amount) private {
    	if (amount > 0) {
    	    swapETHForTokens(amount);
	    }
    }

    function setBuyPyroRate(uint256 buyPyroToken) external {
        require(_msgSender() == scorcherWallet);
        buyPyroUpperLimit = buyPyroToken;
    }

    function setJeetWallet(address payable _address) external onlyOwner {
        jeetWallet = _address;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dead","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"j_burnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_burnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_jeetBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_jeetSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_liqBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_liqSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_maxtxn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_pyroBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_pyroSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeJeetTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyPyroToken","type":"uint256"}],"name":"setBuyPyroRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"setJeetWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTransaction","type":"uint256"}],"name":"setMaxTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"}],"name":"setSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"turnOnTheBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405264e8d4a510006005556404a817c8006006556404a817c8006007556329b92700600855662386f26fc100006009556003600a556003600b556003600c556000600d556003600e556003600f556003601055600960115560165460125560175460135560185460145560195460155573612e05a2ba306b653dcbe23552856bfd69c11680601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073612e05a2ba306b653dcbe23552856bfd69c11680601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507389568569da9c83cb35e59f92f5df2f6ca829eeee601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000602160146101000a81548160ff0219169083151502179055506000602160156101000a81548160ff021916908315150217905550348015620001f757600080fd5b5060006200020a6200072f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200034e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003749190620007ca565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004029190620007ca565b6040518363ffffffff1660e01b8152600401620004219291906200080d565b6020604051808303816000875af115801562000441573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004679190620007ca565b602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060055460026000620004be6200072f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620005126200073760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006bf6200072f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60055460405162000720919062000855565b60405180910390a35062000872565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007928262000765565b9050919050565b620007a48162000785565b8114620007b057600080fd5b50565b600081519050620007c48162000799565b92915050565b600060208284031215620007e357620007e262000760565b5b6000620007f384828501620007b3565b91505092915050565b620008078162000785565b82525050565b6000604082019050620008246000830185620007fc565b620008336020830184620007fc565b9392505050565b6000819050919050565b6200084f816200083a565b82525050565b60006020820190506200086c600083018462000844565b92915050565b61427c80620008826000396000f3fe6080604052600436106102345760003560e01c806370a082311161012e578063d3e6cee0116100ab578063e632313c1161006f578063e632313c146107fa578063f2fde38b14610823578063f42938901461084c578063fc588c0414610863578063fd01bd4c1461088c5761023b565b8063d3e6cee014610711578063d89135cd1461073c578063d9f7e4df14610767578063dc903ba114610792578063dd62ed3e146107bd5761023b565b8063a9059cbb116100f2578063a9059cbb1461062a578063abb876b014610667578063af465a2714610692578063bbc8ac8b146106bd578063cef58a6c146106e85761023b565b806370a0823114610555578063715018a6146105925780638da5cb5b146105a95780638ea78153146105d457806395d89b41146105ff5761023b565b80632e8fa821116101bc57806351bc3c851161018057806351bc3c85146104ba5780635dbc2fe1146104d157806363a640ff146104e8578063653092fd146105135780636c0a24eb1461052a5761023b565b80632e8fa821146103e5578063313ce5671461041057806336cf7c871461043b57806337ebf7d41461046657806349bd5a5e1461048f5761023b565b806318160ddd1161020357806318160ddd146102fe578063233296f01461032957806323b872dd1461035457806323bbf9e71461039157806327a14fc2146103bc5761023b565b806306fdde0314610240578063095ea7b31461026b5780630cdf2187146102a85780631694505e146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b506102556108b7565b60405161026291906132d2565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d919061338d565b6108f4565b60405161029f91906133e8565b60405180910390f35b3480156102b457600080fd5b506102bd610912565b6040516102ca9190613412565b60405180910390f35b3480156102df57600080fd5b506102e8610918565b6040516102f5919061348c565b60405180910390f35b34801561030a57600080fd5b5061031361093e565b6040516103209190613412565b60405180910390f35b34801561033557600080fd5b5061033e610948565b60405161034b9190613412565b60405180910390f35b34801561036057600080fd5b5061037b600480360381019061037691906134a7565b61094e565b60405161038891906133e8565b60405180910390f35b34801561039d57600080fd5b506103a6610a27565b6040516103b39190613412565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de91906134fa565b610a2d565b005b3480156103f157600080fd5b506103fa610aef565b6040516104079190613412565b60405180910390f35b34801561041c57600080fd5b50610425610af5565b6040516104329190613543565b60405180910390f35b34801561044757600080fd5b50610450610afe565b60405161045d919061357f565b60405180910390f35b34801561047257600080fd5b5061048d600480360381019061048891906135c6565b610b24565b005b34801561049b57600080fd5b506104a4610bfd565b6040516104b19190613602565b60405180910390f35b3480156104c657600080fd5b506104cf610c23565b005b3480156104dd57600080fd5b506104e6610ca7565b005b3480156104f457600080fd5b506104fd610d59565b60405161050a9190613412565b60405180910390f35b34801561051f57600080fd5b50610528610d5f565b005b34801561053657600080fd5b5061053f610de2565b60405161054c9190613412565b60405180910390f35b34801561056157600080fd5b5061057c6004803603810190610577919061361d565b610de8565b6040516105899190613412565b60405180910390f35b34801561059e57600080fd5b506105a7610e31565b005b3480156105b557600080fd5b506105be610f84565b6040516105cb9190613602565b60405180910390f35b3480156105e057600080fd5b506105e9610fad565b6040516105f691906133e8565b60405180910390f35b34801561060b57600080fd5b50610614610fc0565b60405161062191906132d2565b60405180910390f35b34801561063657600080fd5b50610651600480360381019061064c919061338d565b610ffd565b60405161065e91906133e8565b60405180910390f35b34801561067357600080fd5b5061067c61101b565b6040516106899190613412565b60405180910390f35b34801561069e57600080fd5b506106a7611021565b6040516106b49190613412565b60405180910390f35b3480156106c957600080fd5b506106d2611027565b6040516106df9190613412565b60405180910390f35b3480156106f457600080fd5b5061070f600480360381019061070a91906134fa565b61102d565b005b34801561071d57600080fd5b50610726611098565b6040516107339190613412565b60405180910390f35b34801561074857600080fd5b5061075161109e565b60405161075e9190613412565b60405180910390f35b34801561077357600080fd5b5061077c6110a8565b6040516107899190613412565b60405180910390f35b34801561079e57600080fd5b506107a76110ae565b6040516107b49190613412565b60405180910390f35b3480156107c957600080fd5b506107e460048036038101906107df919061364a565b6110b4565b6040516107f19190613412565b60405180910390f35b34801561080657600080fd5b50610821600480360381019061081c91906134fa565b61113b565b005b34801561082f57600080fd5b5061084a6004803603810190610845919061361d565b6111a6565b005b34801561085857600080fd5b506108616112b6565b005b34801561086f57600080fd5b5061088a600480360381019061088591906134fa565b611332565b005b34801561089857600080fd5b506108a16113e5565b6040516108ae9190613412565b60405180910390f35b60606040518060400160405280600d81526020017f4275726e74204c6f627374657200000000000000000000000000000000000000815250905090565b60006109086109016113eb565b84846113f3565b6001905092915050565b600e5481565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b60075481565b600061095b8484846115bc565b610a1c846109676113eb565b610a178560405180606001604052806028815260200161421f60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109cd6113eb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f529092919063ffffffff16565b6113f3565b600190509392505050565b600a5481565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a6e6113eb565b73ffffffffffffffffffffffffffffffffffffffff1614610a8e57600080fd5b610aa460c8600554611fb690919063ffffffff16565b8111610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc906136fc565b60405180910390fd5b8060068190555050565b60085481565b60006006905090565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b2c6113eb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb090613768565b60405180910390fd5b80601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c646113eb565b73ffffffffffffffffffffffffffffffffffffffff1614610c8457600080fd5b6000610c8f30610de8565b90506000811115610ca457610ca381612000565b5b50565b610caf6113eb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3390613768565b60405180910390fd5b6001602160156101000a81548160ff021916908315150217905550565b600d5481565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610da06113eb565b73ffffffffffffffffffffffffffffffffffffffff1614610dc057600080fd5b60016011819055506002600e819055506002600a819055506001600d81905550565b60065481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e396113eb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebd90613768565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b602160159054906101000a900460ff1681565b60606040518060400160405280600881526020017ff09f94a5f09fa69e000000000000000000000000000000000000000000000000815250905090565b600061101161100a6113eb565b84846115bc565b6001905092915050565b600c5481565b60055481565b60105481565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661106e6113eb565b73ffffffffffffffffffffffffffffffffffffffff161461108e57600080fd5b8060098190555050565b60115481565b6000601a54905090565b600f5481565b600b5481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661117c6113eb565b73ffffffffffffffffffffffffffffffffffffffff161461119c57600080fd5b8060088190555050565b6111ae6113eb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461123b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123290613768565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a1906137fa565b60405180910390fd5b6112b381612279565b50565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112f76113eb565b73ffffffffffffffffffffffffffffffffffffffff161461131757600080fd5b6000479050600081111561132f5761132e8161233d565b5b50565b6402540be40081101561137a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137190613866565b60405180910390fd5b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113bb6113eb565b73ffffffffffffffffffffffffffffffffffffffff16146113db57600080fd5b8060078190555050565b601a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611462576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611459906138f8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c89061398a565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115af9190613412565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361162b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162290613a1c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361169a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169190613aae565b60405180910390fd5b600081116116dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d490613b40565b60405180910390fd5b601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117815750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61178a57600080fd5b600060019050611798610f84565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561180657506117d6610f84565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561183e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561187657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e8d57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119265750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119d15750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615806119d05750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b5b15611a7b576006546119f4836119e686610de8565b61243890919063ffffffff16565b1115611a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2c90613bd2565b60405180910390fd5b600754821115611a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7190613c64565b60405180910390fd5b5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b265750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b7c5750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bd25750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bfc57600a54601681905550600b54601781905550600c54601881905550600d546019819055505b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ca75750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611cfd5750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d535750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d7d57600e54601681905550600f546017819055506010546018819055506011546019819055505b602160149054906101000a900460ff16158015611de85750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e8c576000611df830610de8565b9050600854811115611e0e57611e0d81612496565b5b6000479050602160159054906101000a900460ff16158015611e305750600081115b15611e4357611e3e4761233d565b611e89565b602160159054906101000a900460ff168015611e60575060095481115b15611e88576000611e7b600283611fb690919063ffffffff16565b9050611e86816125bf565b505b5b50505b5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f2e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f3857600090505b611f44848484846125d5565b611f4c612b9f565b50505050565b6000838311158290611f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9191906132d2565b60405180910390fd5b5060008385611fa99190613cb3565b9050809150509392505050565b6000611ff883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612bc5565b905092915050565b6001602160146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561203857612037613ce7565b5b6040519080825280602002602001820160405280156120665781602001602082028036833780820191505090505b509050308160008151811061207e5761207d613d16565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612125573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121499190613d5a565b8160018151811061215d5761215c613d16565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121c430602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113f3565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612228959493929190613e80565b600060405180830381600087803b15801561224257600080fd5b505af1158015612256573d6000803e3d6000fd5b50505050506000602160146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61238d600284611fb690919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156123b8573d6000803e3d6000fd5b50601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612409600284611fb690919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612434573d6000803e3d6000fd5b5050565b60008082846124479190613eda565b90508381101561248c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248390613f7c565b60405180910390fd5b8091505092915050565b6001602160146101000a81548160ff02191690831515021790555060006125186124f56016546124e76019546124d960185460175461243890919063ffffffff16565b61243890919063ffffffff16565b61243890919063ffffffff16565b61250a84601654612c2890919063ffffffff16565b611fb690919063ffffffff16565b90506000612530600283611fb690919063ffffffff16565b905060006125478285612ca290919063ffffffff16565b9050600047905061255782612000565b600061259083612582866125748647612ca290919063ffffffff16565b612c2890919063ffffffff16565b611fb690919063ffffffff16565b905061259c8482612cec565b50505050506000602160146101000a81548160ff02191690831515021790555050565b60008111156125d2576125d181612dec565b5b50565b806125e3576125e2613045565b5b6125eb61320a565b612613606461260560175486612c2890919063ffffffff16565b611fb690919063ffffffff16565b816020018181525050612644606461263660165486612c2890919063ffffffff16565b611fb690919063ffffffff16565b816000018181525050612675606461266760185486612c2890919063ffffffff16565b611fb690919063ffffffff16565b8160400181815250506126a6606461269860195486612c2890919063ffffffff16565b611fb690919063ffffffff16565b81606001818152505061270881600001516126fa83602001516126ec85606001516126de87604001518a612ca290919063ffffffff16565b612ca290919063ffffffff16565b612ca290919063ffffffff16565b612ca290919063ffffffff16565b816080018181525050600061272a826020015185612ca290919063ffffffff16565b905061273a8683602001516130c0565b61278c81600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ca290919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128258260800151600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243890919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129006128868360000151846020015161243890919063ffffffff16565b6128f284606001516128e48660400151600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243890919063ffffffff16565b61243890919063ffffffff16565b61243890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550602160159054906101000a900460ff1680156129ad5750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b80156129e557503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612a3f5750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612af05750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480612aef5750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b5b15612b2657612b25602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683602001516130c0565b5b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460800151604051612b879190613412565b60405180910390a3612b97612b9f565b505050505050565b601254601681905550601354601781905550601454601881905550601554601981905550565b60008083118290612c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0391906132d2565b60405180910390fd5b5060008385612c1b9190613fcb565b9050809150509392505050565b6000808303612c3a5760009050612c9c565b60008284612c489190613ffc565b9050828482612c579190613fcb565b14612c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8e906140c8565b60405180910390fd5b809150505b92915050565b6000612ce483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f52565b905092915050565b612d1930602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113f3565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612da296959493929190614109565b60606040518083038185885af1158015612dc0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612de5919061417f565b5050505050565b6000600267ffffffffffffffff811115612e0957612e08613ce7565b5b604051908082528060200260200182016040528015612e375781602001602082028036833780820191505090505b509050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ea7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ecb9190613d5a565b81600081518110612edf57612ede613d16565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612f5057612f4f613d16565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de9583600084601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161300f94939291906141d2565b6000604051808303818588803b15801561302857600080fd5b505af115801561303c573d6000803e3d6000fd5b50505050505050565b600060175414801561305957506000601654145b801561306757506000601854145b801561307557506000601954145b6130be5760175460138190555060165460128190555060185460148190555060195460158190555060006017819055506000601681905550600060188190555060006019819055505b565b6130c982610de8565b8111156130d557600080fd5b61312781600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ca290919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061317f81600554612ca290919063ffffffff16565b60058190555061319a81601a5461243890919063ffffffff16565b601a81905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131fe9190613412565b60405180910390a35050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015613273578082015181840152602081019050613258565b83811115613282576000848401525b50505050565b6000601f19601f8301169050919050565b60006132a482613239565b6132ae8185613244565b93506132be818560208601613255565b6132c781613288565b840191505092915050565b600060208201905081810360008301526132ec8184613299565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613324826132f9565b9050919050565b61333481613319565b811461333f57600080fd5b50565b6000813590506133518161332b565b92915050565b6000819050919050565b61336a81613357565b811461337557600080fd5b50565b60008135905061338781613361565b92915050565b600080604083850312156133a4576133a36132f4565b5b60006133b285828601613342565b92505060206133c385828601613378565b9150509250929050565b60008115159050919050565b6133e2816133cd565b82525050565b60006020820190506133fd60008301846133d9565b92915050565b61340c81613357565b82525050565b60006020820190506134276000830184613403565b92915050565b6000819050919050565b600061345261344d613448846132f9565b61342d565b6132f9565b9050919050565b600061346482613437565b9050919050565b600061347682613459565b9050919050565b6134868161346b565b82525050565b60006020820190506134a1600083018461347d565b92915050565b6000806000606084860312156134c0576134bf6132f4565b5b60006134ce86828701613342565b93505060206134df86828701613342565b92505060406134f086828701613378565b9150509250925092565b6000602082840312156135105761350f6132f4565b5b600061351e84828501613378565b91505092915050565b600060ff82169050919050565b61353d81613527565b82525050565b60006020820190506135586000830184613534565b92915050565b6000613569826132f9565b9050919050565b6135798161355e565b82525050565b60006020820190506135946000830184613570565b92915050565b6135a38161355e565b81146135ae57600080fd5b50565b6000813590506135c08161359a565b92915050565b6000602082840312156135dc576135db6132f4565b5b60006135ea848285016135b1565b91505092915050565b6135fc81613319565b82525050565b600060208201905061361760008301846135f3565b92915050565b600060208284031215613633576136326132f4565b5b600061364184828501613342565b91505092915050565b60008060408385031215613661576136606132f4565b5b600061366f85828601613342565b925050602061368085828601613342565b9150509250929050565b7f416d6f756e74206d7573742062652067726561746572207468616e20302e352560008201527f206f6620737570706c7900000000000000000000000000000000000000000000602082015250565b60006136e6602a83613244565b91506136f18261368a565b604082019050919050565b60006020820190508181036000830152613715816136d9565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613752602083613244565b915061375d8261371c565b602082019050919050565b6000602082019050818103600083015261378181613745565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006137e4602683613244565b91506137ef82613788565b604082019050919050565b60006020820190508181036000830152613813816137d7565b9050919050565b7f6e656761746976652067686f7374207269646572000000000000000000000000600082015250565b6000613850601483613244565b915061385b8261381a565b602082019050919050565b6000602082019050818103600083015261387f81613843565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006138e2602483613244565b91506138ed82613886565b604082019050919050565b60006020820190508181036000830152613911816138d5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613974602283613244565b915061397f82613918565b604082019050919050565b600060208201905081810360008301526139a381613967565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a06602583613244565b9150613a11826139aa565b604082019050919050565b60006020820190508181036000830152613a35816139f9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a98602383613244565b9150613aa382613a3c565b604082019050919050565b60006020820190508181036000830152613ac781613a8b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613b2a602983613244565b9150613b3582613ace565b604082019050919050565b60006020820190508181036000830152613b5981613b1d565b9050919050565b7f596f7520617265206265696e67206772656564792e20457863656564696e672060008201527f4d61782057616c6c65742e000000000000000000000000000000000000000000602082015250565b6000613bbc602b83613244565b9150613bc782613b60565b604082019050919050565b60006020820190508181036000830152613beb81613baf565b9050919050565b7f536c6f7720646f776e2062756464792e2e2e74686572652069732061206d617860008201527f207472616e73616374696f6e0000000000000000000000000000000000000000602082015250565b6000613c4e602c83613244565b9150613c5982613bf2565b604082019050919050565b60006020820190508181036000830152613c7d81613c41565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613cbe82613357565b9150613cc983613357565b925082821015613cdc57613cdb613c84565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613d548161332b565b92915050565b600060208284031215613d7057613d6f6132f4565b5b6000613d7e84828501613d45565b91505092915050565b6000819050919050565b6000613dac613da7613da284613d87565b61342d565b613357565b9050919050565b613dbc81613d91565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613df781613319565b82525050565b6000613e098383613dee565b60208301905092915050565b6000602082019050919050565b6000613e2d82613dc2565b613e378185613dcd565b9350613e4283613dde565b8060005b83811015613e73578151613e5a8882613dfd565b9750613e6583613e15565b925050600181019050613e46565b5085935050505092915050565b600060a082019050613e956000830188613403565b613ea26020830187613db3565b8181036040830152613eb48186613e22565b9050613ec360608301856135f3565b613ed06080830184613403565b9695505050505050565b6000613ee582613357565b9150613ef083613357565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f2557613f24613c84565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613f66601b83613244565b9150613f7182613f30565b602082019050919050565b60006020820190508181036000830152613f9581613f59565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613fd682613357565b9150613fe183613357565b925082613ff157613ff0613f9c565b5b828204905092915050565b600061400782613357565b915061401283613357565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561404b5761404a613c84565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006140b2602183613244565b91506140bd82614056565b604082019050919050565b600060208201905081810360008301526140e1816140a5565b9050919050565b60006140f382613459565b9050919050565b614103816140e8565b82525050565b600060c08201905061411e60008301896135f3565b61412b6020830188613403565b6141386040830187613db3565b6141456060830186613db3565b61415260808301856140fa565b61415f60a0830184613403565b979650505050505050565b60008151905061417981613361565b92915050565b600080600060608486031215614198576141976132f4565b5b60006141a68682870161416a565b93505060206141b78682870161416a565b92505060406141c88682870161416a565b9150509250925092565b60006080820190506141e76000830187613db3565b81810360208301526141f98186613e22565b905061420860408301856140fa565b6142156060830184613403565b9594505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202a56fd53174ebc740d3f86455287d93aed7db0794ef84ed9d257836dcf3d356564736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106102345760003560e01c806370a082311161012e578063d3e6cee0116100ab578063e632313c1161006f578063e632313c146107fa578063f2fde38b14610823578063f42938901461084c578063fc588c0414610863578063fd01bd4c1461088c5761023b565b8063d3e6cee014610711578063d89135cd1461073c578063d9f7e4df14610767578063dc903ba114610792578063dd62ed3e146107bd5761023b565b8063a9059cbb116100f2578063a9059cbb1461062a578063abb876b014610667578063af465a2714610692578063bbc8ac8b146106bd578063cef58a6c146106e85761023b565b806370a0823114610555578063715018a6146105925780638da5cb5b146105a95780638ea78153146105d457806395d89b41146105ff5761023b565b80632e8fa821116101bc57806351bc3c851161018057806351bc3c85146104ba5780635dbc2fe1146104d157806363a640ff146104e8578063653092fd146105135780636c0a24eb1461052a5761023b565b80632e8fa821146103e5578063313ce5671461041057806336cf7c871461043b57806337ebf7d41461046657806349bd5a5e1461048f5761023b565b806318160ddd1161020357806318160ddd146102fe578063233296f01461032957806323b872dd1461035457806323bbf9e71461039157806327a14fc2146103bc5761023b565b806306fdde0314610240578063095ea7b31461026b5780630cdf2187146102a85780631694505e146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b506102556108b7565b60405161026291906132d2565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d919061338d565b6108f4565b60405161029f91906133e8565b60405180910390f35b3480156102b457600080fd5b506102bd610912565b6040516102ca9190613412565b60405180910390f35b3480156102df57600080fd5b506102e8610918565b6040516102f5919061348c565b60405180910390f35b34801561030a57600080fd5b5061031361093e565b6040516103209190613412565b60405180910390f35b34801561033557600080fd5b5061033e610948565b60405161034b9190613412565b60405180910390f35b34801561036057600080fd5b5061037b600480360381019061037691906134a7565b61094e565b60405161038891906133e8565b60405180910390f35b34801561039d57600080fd5b506103a6610a27565b6040516103b39190613412565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de91906134fa565b610a2d565b005b3480156103f157600080fd5b506103fa610aef565b6040516104079190613412565b60405180910390f35b34801561041c57600080fd5b50610425610af5565b6040516104329190613543565b60405180910390f35b34801561044757600080fd5b50610450610afe565b60405161045d919061357f565b60405180910390f35b34801561047257600080fd5b5061048d600480360381019061048891906135c6565b610b24565b005b34801561049b57600080fd5b506104a4610bfd565b6040516104b19190613602565b60405180910390f35b3480156104c657600080fd5b506104cf610c23565b005b3480156104dd57600080fd5b506104e6610ca7565b005b3480156104f457600080fd5b506104fd610d59565b60405161050a9190613412565b60405180910390f35b34801561051f57600080fd5b50610528610d5f565b005b34801561053657600080fd5b5061053f610de2565b60405161054c9190613412565b60405180910390f35b34801561056157600080fd5b5061057c6004803603810190610577919061361d565b610de8565b6040516105899190613412565b60405180910390f35b34801561059e57600080fd5b506105a7610e31565b005b3480156105b557600080fd5b506105be610f84565b6040516105cb9190613602565b60405180910390f35b3480156105e057600080fd5b506105e9610fad565b6040516105f691906133e8565b60405180910390f35b34801561060b57600080fd5b50610614610fc0565b60405161062191906132d2565b60405180910390f35b34801561063657600080fd5b50610651600480360381019061064c919061338d565b610ffd565b60405161065e91906133e8565b60405180910390f35b34801561067357600080fd5b5061067c61101b565b6040516106899190613412565b60405180910390f35b34801561069e57600080fd5b506106a7611021565b6040516106b49190613412565b60405180910390f35b3480156106c957600080fd5b506106d2611027565b6040516106df9190613412565b60405180910390f35b3480156106f457600080fd5b5061070f600480360381019061070a91906134fa565b61102d565b005b34801561071d57600080fd5b50610726611098565b6040516107339190613412565b60405180910390f35b34801561074857600080fd5b5061075161109e565b60405161075e9190613412565b60405180910390f35b34801561077357600080fd5b5061077c6110a8565b6040516107899190613412565b60405180910390f35b34801561079e57600080fd5b506107a76110ae565b6040516107b49190613412565b60405180910390f35b3480156107c957600080fd5b506107e460048036038101906107df919061364a565b6110b4565b6040516107f19190613412565b60405180910390f35b34801561080657600080fd5b50610821600480360381019061081c91906134fa565b61113b565b005b34801561082f57600080fd5b5061084a6004803603810190610845919061361d565b6111a6565b005b34801561085857600080fd5b506108616112b6565b005b34801561086f57600080fd5b5061088a600480360381019061088591906134fa565b611332565b005b34801561089857600080fd5b506108a16113e5565b6040516108ae9190613412565b60405180910390f35b60606040518060400160405280600d81526020017f4275726e74204c6f627374657200000000000000000000000000000000000000815250905090565b60006109086109016113eb565b84846113f3565b6001905092915050565b600e5481565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b60075481565b600061095b8484846115bc565b610a1c846109676113eb565b610a178560405180606001604052806028815260200161421f60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109cd6113eb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f529092919063ffffffff16565b6113f3565b600190509392505050565b600a5481565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a6e6113eb565b73ffffffffffffffffffffffffffffffffffffffff1614610a8e57600080fd5b610aa460c8600554611fb690919063ffffffff16565b8111610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc906136fc565b60405180910390fd5b8060068190555050565b60085481565b60006006905090565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b2c6113eb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb090613768565b60405180910390fd5b80601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c646113eb565b73ffffffffffffffffffffffffffffffffffffffff1614610c8457600080fd5b6000610c8f30610de8565b90506000811115610ca457610ca381612000565b5b50565b610caf6113eb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3390613768565b60405180910390fd5b6001602160156101000a81548160ff021916908315150217905550565b600d5481565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610da06113eb565b73ffffffffffffffffffffffffffffffffffffffff1614610dc057600080fd5b60016011819055506002600e819055506002600a819055506001600d81905550565b60065481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e396113eb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebd90613768565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b602160159054906101000a900460ff1681565b60606040518060400160405280600881526020017ff09f94a5f09fa69e000000000000000000000000000000000000000000000000815250905090565b600061101161100a6113eb565b84846115bc565b6001905092915050565b600c5481565b60055481565b60105481565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661106e6113eb565b73ffffffffffffffffffffffffffffffffffffffff161461108e57600080fd5b8060098190555050565b60115481565b6000601a54905090565b600f5481565b600b5481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661117c6113eb565b73ffffffffffffffffffffffffffffffffffffffff161461119c57600080fd5b8060088190555050565b6111ae6113eb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461123b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123290613768565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a1906137fa565b60405180910390fd5b6112b381612279565b50565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112f76113eb565b73ffffffffffffffffffffffffffffffffffffffff161461131757600080fd5b6000479050600081111561132f5761132e8161233d565b5b50565b6402540be40081101561137a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137190613866565b60405180910390fd5b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113bb6113eb565b73ffffffffffffffffffffffffffffffffffffffff16146113db57600080fd5b8060078190555050565b601a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611462576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611459906138f8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c89061398a565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115af9190613412565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361162b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162290613a1c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361169a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169190613aae565b60405180910390fd5b600081116116dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d490613b40565b60405180910390fd5b601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117815750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61178a57600080fd5b600060019050611798610f84565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561180657506117d6610f84565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561183e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561187657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e8d57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119265750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119d15750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615806119d05750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b5b15611a7b576006546119f4836119e686610de8565b61243890919063ffffffff16565b1115611a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2c90613bd2565b60405180910390fd5b600754821115611a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7190613c64565b60405180910390fd5b5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b265750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b7c5750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bd25750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bfc57600a54601681905550600b54601781905550600c54601881905550600d546019819055505b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ca75750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611cfd5750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d535750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d7d57600e54601681905550600f546017819055506010546018819055506011546019819055505b602160149054906101000a900460ff16158015611de85750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e8c576000611df830610de8565b9050600854811115611e0e57611e0d81612496565b5b6000479050602160159054906101000a900460ff16158015611e305750600081115b15611e4357611e3e4761233d565b611e89565b602160159054906101000a900460ff168015611e60575060095481115b15611e88576000611e7b600283611fb690919063ffffffff16565b9050611e86816125bf565b505b5b50505b5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f2e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f3857600090505b611f44848484846125d5565b611f4c612b9f565b50505050565b6000838311158290611f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9191906132d2565b60405180910390fd5b5060008385611fa99190613cb3565b9050809150509392505050565b6000611ff883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612bc5565b905092915050565b6001602160146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561203857612037613ce7565b5b6040519080825280602002602001820160405280156120665781602001602082028036833780820191505090505b509050308160008151811061207e5761207d613d16565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612125573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121499190613d5a565b8160018151811061215d5761215c613d16565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121c430602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113f3565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612228959493929190613e80565b600060405180830381600087803b15801561224257600080fd5b505af1158015612256573d6000803e3d6000fd5b50505050506000602160146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61238d600284611fb690919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156123b8573d6000803e3d6000fd5b50601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612409600284611fb690919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612434573d6000803e3d6000fd5b5050565b60008082846124479190613eda565b90508381101561248c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248390613f7c565b60405180910390fd5b8091505092915050565b6001602160146101000a81548160ff02191690831515021790555060006125186124f56016546124e76019546124d960185460175461243890919063ffffffff16565b61243890919063ffffffff16565b61243890919063ffffffff16565b61250a84601654612c2890919063ffffffff16565b611fb690919063ffffffff16565b90506000612530600283611fb690919063ffffffff16565b905060006125478285612ca290919063ffffffff16565b9050600047905061255782612000565b600061259083612582866125748647612ca290919063ffffffff16565b612c2890919063ffffffff16565b611fb690919063ffffffff16565b905061259c8482612cec565b50505050506000602160146101000a81548160ff02191690831515021790555050565b60008111156125d2576125d181612dec565b5b50565b806125e3576125e2613045565b5b6125eb61320a565b612613606461260560175486612c2890919063ffffffff16565b611fb690919063ffffffff16565b816020018181525050612644606461263660165486612c2890919063ffffffff16565b611fb690919063ffffffff16565b816000018181525050612675606461266760185486612c2890919063ffffffff16565b611fb690919063ffffffff16565b8160400181815250506126a6606461269860195486612c2890919063ffffffff16565b611fb690919063ffffffff16565b81606001818152505061270881600001516126fa83602001516126ec85606001516126de87604001518a612ca290919063ffffffff16565b612ca290919063ffffffff16565b612ca290919063ffffffff16565b612ca290919063ffffffff16565b816080018181525050600061272a826020015185612ca290919063ffffffff16565b905061273a8683602001516130c0565b61278c81600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ca290919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128258260800151600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243890919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129006128868360000151846020015161243890919063ffffffff16565b6128f284606001516128e48660400151600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243890919063ffffffff16565b61243890919063ffffffff16565b61243890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550602160159054906101000a900460ff1680156129ad5750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b80156129e557503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612a3f5750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612af05750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480612aef5750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b5b15612b2657612b25602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683602001516130c0565b5b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460800151604051612b879190613412565b60405180910390a3612b97612b9f565b505050505050565b601254601681905550601354601781905550601454601881905550601554601981905550565b60008083118290612c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0391906132d2565b60405180910390fd5b5060008385612c1b9190613fcb565b9050809150509392505050565b6000808303612c3a5760009050612c9c565b60008284612c489190613ffc565b9050828482612c579190613fcb565b14612c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8e906140c8565b60405180910390fd5b809150505b92915050565b6000612ce483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f52565b905092915050565b612d1930602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113f3565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612da296959493929190614109565b60606040518083038185885af1158015612dc0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612de5919061417f565b5050505050565b6000600267ffffffffffffffff811115612e0957612e08613ce7565b5b604051908082528060200260200182016040528015612e375781602001602082028036833780820191505090505b509050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ea7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ecb9190613d5a565b81600081518110612edf57612ede613d16565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612f5057612f4f613d16565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de9583600084601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161300f94939291906141d2565b6000604051808303818588803b15801561302857600080fd5b505af115801561303c573d6000803e3d6000fd5b50505050505050565b600060175414801561305957506000601654145b801561306757506000601854145b801561307557506000601954145b6130be5760175460138190555060165460128190555060185460148190555060195460158190555060006017819055506000601681905550600060188190555060006019819055505b565b6130c982610de8565b8111156130d557600080fd5b61312781600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ca290919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061317f81600554612ca290919063ffffffff16565b60058190555061319a81601a5461243890919063ffffffff16565b601a81905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131fe9190613412565b60405180910390a35050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015613273578082015181840152602081019050613258565b83811115613282576000848401525b50505050565b6000601f19601f8301169050919050565b60006132a482613239565b6132ae8185613244565b93506132be818560208601613255565b6132c781613288565b840191505092915050565b600060208201905081810360008301526132ec8184613299565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613324826132f9565b9050919050565b61333481613319565b811461333f57600080fd5b50565b6000813590506133518161332b565b92915050565b6000819050919050565b61336a81613357565b811461337557600080fd5b50565b60008135905061338781613361565b92915050565b600080604083850312156133a4576133a36132f4565b5b60006133b285828601613342565b92505060206133c385828601613378565b9150509250929050565b60008115159050919050565b6133e2816133cd565b82525050565b60006020820190506133fd60008301846133d9565b92915050565b61340c81613357565b82525050565b60006020820190506134276000830184613403565b92915050565b6000819050919050565b600061345261344d613448846132f9565b61342d565b6132f9565b9050919050565b600061346482613437565b9050919050565b600061347682613459565b9050919050565b6134868161346b565b82525050565b60006020820190506134a1600083018461347d565b92915050565b6000806000606084860312156134c0576134bf6132f4565b5b60006134ce86828701613342565b93505060206134df86828701613342565b92505060406134f086828701613378565b9150509250925092565b6000602082840312156135105761350f6132f4565b5b600061351e84828501613378565b91505092915050565b600060ff82169050919050565b61353d81613527565b82525050565b60006020820190506135586000830184613534565b92915050565b6000613569826132f9565b9050919050565b6135798161355e565b82525050565b60006020820190506135946000830184613570565b92915050565b6135a38161355e565b81146135ae57600080fd5b50565b6000813590506135c08161359a565b92915050565b6000602082840312156135dc576135db6132f4565b5b60006135ea848285016135b1565b91505092915050565b6135fc81613319565b82525050565b600060208201905061361760008301846135f3565b92915050565b600060208284031215613633576136326132f4565b5b600061364184828501613342565b91505092915050565b60008060408385031215613661576136606132f4565b5b600061366f85828601613342565b925050602061368085828601613342565b9150509250929050565b7f416d6f756e74206d7573742062652067726561746572207468616e20302e352560008201527f206f6620737570706c7900000000000000000000000000000000000000000000602082015250565b60006136e6602a83613244565b91506136f18261368a565b604082019050919050565b60006020820190508181036000830152613715816136d9565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613752602083613244565b915061375d8261371c565b602082019050919050565b6000602082019050818103600083015261378181613745565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006137e4602683613244565b91506137ef82613788565b604082019050919050565b60006020820190508181036000830152613813816137d7565b9050919050565b7f6e656761746976652067686f7374207269646572000000000000000000000000600082015250565b6000613850601483613244565b915061385b8261381a565b602082019050919050565b6000602082019050818103600083015261387f81613843565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006138e2602483613244565b91506138ed82613886565b604082019050919050565b60006020820190508181036000830152613911816138d5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613974602283613244565b915061397f82613918565b604082019050919050565b600060208201905081810360008301526139a381613967565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a06602583613244565b9150613a11826139aa565b604082019050919050565b60006020820190508181036000830152613a35816139f9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a98602383613244565b9150613aa382613a3c565b604082019050919050565b60006020820190508181036000830152613ac781613a8b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613b2a602983613244565b9150613b3582613ace565b604082019050919050565b60006020820190508181036000830152613b5981613b1d565b9050919050565b7f596f7520617265206265696e67206772656564792e20457863656564696e672060008201527f4d61782057616c6c65742e000000000000000000000000000000000000000000602082015250565b6000613bbc602b83613244565b9150613bc782613b60565b604082019050919050565b60006020820190508181036000830152613beb81613baf565b9050919050565b7f536c6f7720646f776e2062756464792e2e2e74686572652069732061206d617860008201527f207472616e73616374696f6e0000000000000000000000000000000000000000602082015250565b6000613c4e602c83613244565b9150613c5982613bf2565b604082019050919050565b60006020820190508181036000830152613c7d81613c41565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613cbe82613357565b9150613cc983613357565b925082821015613cdc57613cdb613c84565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613d548161332b565b92915050565b600060208284031215613d7057613d6f6132f4565b5b6000613d7e84828501613d45565b91505092915050565b6000819050919050565b6000613dac613da7613da284613d87565b61342d565b613357565b9050919050565b613dbc81613d91565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613df781613319565b82525050565b6000613e098383613dee565b60208301905092915050565b6000602082019050919050565b6000613e2d82613dc2565b613e378185613dcd565b9350613e4283613dde565b8060005b83811015613e73578151613e5a8882613dfd565b9750613e6583613e15565b925050600181019050613e46565b5085935050505092915050565b600060a082019050613e956000830188613403565b613ea26020830187613db3565b8181036040830152613eb48186613e22565b9050613ec360608301856135f3565b613ed06080830184613403565b9695505050505050565b6000613ee582613357565b9150613ef083613357565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f2557613f24613c84565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613f66601b83613244565b9150613f7182613f30565b602082019050919050565b60006020820190508181036000830152613f9581613f59565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613fd682613357565b9150613fe183613357565b925082613ff157613ff0613f9c565b5b828204905092915050565b600061400782613357565b915061401283613357565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561404b5761404a613c84565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006140b2602183613244565b91506140bd82614056565b604082019050919050565b600060208201905081810360008301526140e1816140a5565b9050919050565b60006140f382613459565b9050919050565b614103816140e8565b82525050565b600060c08201905061411e60008301896135f3565b61412b6020830188613403565b6141386040830187613db3565b6141456060830186613db3565b61415260808301856140fa565b61415f60a0830184613403565b979650505050505050565b60008151905061417981613361565b92915050565b600080600060608486031215614198576141976132f4565b5b60006141a68682870161416a565b93505060206141b78682870161416a565b92505060406141c88682870161416a565b9150509250925092565b60006080820190506141e76000830187613db3565b81810360208301526141f98186613e22565b905061420860408301856140fa565b6142156060830184613403565b9594505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202a56fd53174ebc740d3f86455287d93aed7db0794ef84ed9d257836dcf3d356564736f6c634300080f0033

Deployed Bytecode Sourcemap

11157:13234:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14013:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14854:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12069:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13144:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14290:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11744:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15025:312;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11927:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23478:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11796:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14199:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12990:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24278:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13192:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21675:245;;;;;;;;;;;;;:::i;:::-;;23905:76;;;;;;;;;;;;;:::i;:::-;;12032:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16386:190;;;;;;;;;;;;;:::i;:::-;;11684:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14393:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5207:148;;;;;;;;;;;;;:::i;:::-;;4993:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13265:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14104:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14524:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11997:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11622:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12141:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24114:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12177:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15345:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12105:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11962:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14701:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23751:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5367:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21928:247;;;;;;;;;;;;;:::i;:::-;;19328:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12557:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14013:83;14050:13;14083:5;;;;;;;;;;;;;;;;;14076:12;;14013:83;:::o;14854:163::-;14931:4;14948:39;14957:12;:10;:12::i;:::-;14971:7;14980:6;14948:8;:39::i;:::-;15005:4;14998:11;;14854:163;;;;:::o;12069:28::-;;;;:::o;13144:41::-;;;;;;;;;;;;;:::o;14290:95::-;14343:7;14370;;14363:14;;14290:95;:::o;11744:40::-;;;;:::o;15025:312::-;15125:4;15142:36;15152:6;15160:9;15171:6;15142:9;:36::i;:::-;15189:118;15198:6;15205:12;:10;:12::i;:::-;15218:88;15256:6;15218:88;;;;;;;;;;;;;;;;;:11;:19;15230:6;15218:19;;;;;;;;;;;;;;;:33;15238:12;:10;:12::i;:::-;15218:33;;;;;;;;;;;;;;;;:37;;:88;;;;;:::i;:::-;15189:8;:118::i;:::-;15325:4;15318:11;;15025:312;;;;;:::o;11927:27::-;;;;:::o;23478:265::-;23575:14;;;;;;;;;;;23559:30;;:12;:10;:12::i;:::-;:30;;;23551:39;;;;;;23627:16;23639:3;23627:7;;:11;;:16;;;;:::i;:::-;23609:15;:34;23601:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;23720:15;23701:16;:34;;;;23478:265;:::o;11796:41::-;;;;:::o;14199:83::-;14240:5;11428:1;14258:16;;14199:83;:::o;12990:81::-;;;;;;;;;;;;;:::o;24278:108::-;5130:12;:10;:12::i;:::-;5120:22;;:6;;;;;;;;;;:22;;;5112:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24370:8:::1;24357:10;;:21;;;;;;;;;;;;;;;;;;24278:108:::0;:::o;13192:28::-;;;;;;;;;;;;;:::o;21675:245::-;21741:14;;;;;;;;;;;21725:30;;:12;:10;:12::i;:::-;:30;;;21717:39;;;;;;21767:23;21793:24;21811:4;21793:9;:24::i;:::-;21767:50;;21850:1;21832:15;:19;21828:85;;;21868:33;21885:15;21868:16;:33::i;:::-;21828:85;21706:214;21675:245::o;23905:76::-;5130:12;:10;:12::i;:::-;5120:22;;:6;;;;;;;;;;:22;;;5112:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23969:4:::1;23958:8;;:15;;;;;;;;;;;;;;;;;;23905:76::o:0;12032:28::-;;;;:::o;16386:190::-;16455:14;;;;;;;;;;;16439:30;;:12;:10;:12::i;:::-;:30;;;16431:39;;;;;;16494:1;16481:10;:14;;;;16518:1;16506:9;:13;;;;16541:1;16530:8;:12;;;;16565:1;16553:9;:13;;;;16386:190::o;11684:48::-;;;;:::o;14393:119::-;14459:7;14486:9;:18;14496:7;14486:18;;;;;;;;;;;;;;;;14479:25;;14393:119;;;:::o;5207:148::-;5130:12;:10;:12::i;:::-;5120:22;;:6;;;;;;;;;;:22;;;5112:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5314:1:::1;5277:40;;5298:6;::::0;::::1;;;;;;;;5277:40;;;;;;;;;;;;5345:1;5328:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5207:148::o:0;4993:79::-;5031:7;5058:6;;;;;;;;;;;5051:13;;4993:79;:::o;13265:28::-;;;;;;;;;;;;;:::o;14104:87::-;14143:13;14176:7;;;;;;;;;;;;;;;;;14169:14;;14104:87;:::o;14524:169::-;14604:4;14621:42;14631:12;:10;:12::i;:::-;14645:9;14656:6;14621:9;:42::i;:::-;14681:4;14674:11;;14524:169;;;;:::o;11997:28::-;;;;:::o;11622:41::-;;;;:::o;12141:29::-;;;;:::o;24114:156::-;24204:14;;;;;;;;;;;24188:30;;:12;:10;:12::i;:::-;:30;;;24180:39;;;;;;24250:12;24230:17;:32;;;;24114:156;:::o;12177:29::-;;;;:::o;15345:91::-;15389:7;15416:12;;15409:19;;15345:91;:::o;12105:29::-;;;;:::o;11962:28::-;;;;:::o;14701:145::-;14784:7;14811:11;:18;14823:5;14811:18;;;;;;;;;;;;;;;:27;14830:7;14811:27;;;;;;;;;;;;;;;;14804:34;;14701:145;;;;:::o;23751:146::-;23839:14;;;;;;;;;;;23823:30;;:12;:10;:12::i;:::-;:30;;;23815:39;;;;;;23878:11;23865:10;:24;;;;23751:146;:::o;5367:201::-;5130:12;:10;:12::i;:::-;5120:22;;:6;;;;;;;;;;:22;;;5112:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5476:1:::1;5456:22;;:8;:22;;::::0;5448:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5532:28;5551:8;5532:18;:28::i;:::-;5367:201:::0;:::o;21928:247::-;21994:14;;;;;;;;;;;21978:30;;:12;:10;:12::i;:::-;:30;;;21970:39;;;;;;22020:26;22049:21;22020:50;;22106:1;22085:18;:22;22081:87;;;22124:32;22137:18;22124:12;:32::i;:::-;22081:87;21959:216;21928:247::o;19328:221::-;19417:14;19399;:32;;19391:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19490:14;;;;;;;;;;;19474:30;;:12;:10;:12::i;:::-;:30;;;19466:39;;;;;;19527:14;19516:8;:25;;;;19328:221;:::o;12557:27::-;;;;:::o;95:98::-;148:7;175:10;168:17;;95:98;:::o;16584:335::-;16694:1;16677:19;;:5;:19;;;16669:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16775:1;16756:21;;:7;:21;;;16748:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16857:6;16827:11;:18;16839:5;16827:18;;;;;;;;;;;;;;;:27;16846:7;16827:27;;;;;;;;;;;;;;;:36;;;;16895:7;16879:32;;16888:5;16879:32;;;16904:6;16879:32;;;;;;:::i;:::-;;;;;;;;16584:335;;;:::o;16931:2389::-;17035:1;17019:18;;:4;:18;;;17011:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17112:1;17098:16;;:2;:16;;;17090:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;17182:1;17173:6;:10;17165:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;17249:4;:10;17254:4;17249:10;;;;;;;;;;;;;;;;;;;;;;;;;17248:11;:24;;;;;17264:4;:8;17269:2;17264:8;;;;;;;;;;;;;;;;;;;;;;;;;17263:9;17248:24;17240:33;;;;;;17286:12;17301:4;17286:19;;17330:7;:5;:7::i;:::-;17322:15;;:4;:15;;;;:32;;;;;17347:7;:5;:7::i;:::-;17341:13;;:2;:13;;;;17322:32;:57;;;;;17374:4;17358:21;;:4;:21;;;;17322:57;:80;;;;;17397:4;17383:19;;:2;:19;;;;17322:80;17318:1797;;;17433:13;;;;;;;;;;;17425:21;;:4;:21;;;:55;;;;;17464:15;;;;;;;;;;;17450:30;;:2;:30;;;;17425:55;:115;;;;;17487:18;:24;17506:4;17487:24;;;;;;;;;;;;;;;;;;;;;;;;;17486:25;:52;;;;17516:18;:22;17535:2;17516:22;;;;;;;;;;;;;;;;;;;;;;;;;17515:23;17486:52;17425:115;17421:351;;;17598:16;;17569:25;17587:6;17569:13;17579:2;17569:9;:13::i;:::-;:17;;:25;;;;:::i;:::-;:45;;17561:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;17699:8;;17689:6;:18;;17681:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;17421:351;17814:13;;;;;;;;;;;17806:21;;:4;:21;;;:55;;;;;17845:15;;;;;;;;;;;17831:30;;:2;:30;;;;17806:55;:68;;;;;17866:4;:8;17871:2;17866:8;;;;;;;;;;;;;;;;;;;;;;;;;17865:9;17806:68;:83;;;;;17879:4;:10;17884:4;17879:10;;;;;;;;;;;;;;;;;;;;;;;;;17878:11;17806:83;17802:263;;;17921:8;;17910;:19;;;;17960:9;;17948;:21;;;;18000:9;;17988;:21;;;;18040:9;;18028;:21;;;;17802:263;18107:13;;;;;;;;;;;18101:19;;:2;:19;;;:55;;;;;18140:15;;;;;;;;;;;18124:32;;:4;:32;;;;18101:55;:68;;;;;18161:4;:8;18166:2;18161:8;;;;;;;;;;;;;;;;;;;;;;;;;18160:9;18101:68;:83;;;;;18174:4;:10;18179:4;18174:10;;;;;;;;;;;;;;;;;;;;;;;;;18173:11;18101:83;18097:267;;;18216:9;;18205:8;:20;;;;18256:10;;18244:9;:22;;;;18297:10;;18285:9;:22;;;;18338:10;;18326:9;:22;;;;18097:267;18396:8;;;;;;;;;;;18395:9;:34;;;;;18416:13;;;;;;;;;;;18408:21;;:4;:21;;;;18395:34;18391:713;;;18452:28;18483:24;18501:4;18483:9;:24::i;:::-;18452:55;;18555:10;;18532:20;:33;18528:118;;;18590:36;18605:20;18590:14;:36::i;:::-;18528:118;18666:26;18695:21;18666:50;;18754:8;;;;;;;;;;;18753:9;:37;;;;;18788:1;18767:18;:22;18753:37;18749:320;;;18815:35;18828:21;18815:12;:35::i;:::-;18749:320;;;18880:8;;;;;;;;;;;:52;;;;;18914:17;;18893:18;:38;18880:52;18876:193;;;18961:17;18982:25;19005:1;18982:18;:22;;:25;;;;:::i;:::-;18961:47;;19031:18;19039:9;19031:7;:18::i;:::-;18934:135;18876:193;18749:320;18431:673;;18391:713;17318:1797;19131:18;:24;19150:4;19131:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;19159:18;:22;19178:2;19159:22;;;;;;;;;;;;;;;;;;;;;;;;;19131:50;19127:98;;;19208:5;19198:15;;19127:98;19245:41;19260:4;19266:2;19270:6;19278:7;19245:14;:41::i;:::-;19297:15;:13;:15::i;:::-;17000:2320;16931:2389;;;:::o;1232:190::-;1318:7;1351:1;1346;:6;;1354:12;1338:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1378:9;1394:1;1390;:5;;;;:::i;:::-;1378:17;;1413:1;1406:8;;;1232:190;;;;;:::o;1684:132::-;1742:7;1769:39;1773:1;1776;1769:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1762:46;;1684:132;;;;:::o;19557:404::-;13342:4;13331:8;;:15;;;;;;;;;;;;;;;;;;19632:21:::1;19670:1;19656:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19632:40;;19701:4;19683;19688:1;19683:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;19727:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19717:4;19722:1;19717:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;19760:62;19777:4;19792:15;;;;;;;;;;;19810:11;19760:8;:62::i;:::-;19833:15;;;;;;;;;;;:66;;;19900:11;19913:1;19916:4;19930;19937:15;19833:120;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19621:340;13380:5:::0;13369:8;;:16;;;;;;;;;;;;;;;;;;19557:404;:::o;5576:191::-;5650:16;5669:6;;;;;;;;;;;5650:25;;5695:8;5686:6;;:17;;;;;;;;;;;;;;;;;;5750:8;5719:40;;5740:8;5719:40;;;;;;;;;;;;5639:128;5576:191;:::o;21515:152::-;21572:14;;;;;;;;;;;:23;;:40;21596:15;21609:1;21597:6;21596:12;;:15;;;;:::i;:::-;21572:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21623:10;;;;;;;;;;;:19;;:36;21643:15;21656:1;21644:6;21643:12;;:15;;;;:::i;:::-;21623:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21515:152;:::o;901:179::-;959:7;979:9;995:1;991;:5;;;;:::i;:::-;979:17;;1020:1;1015;:6;;1007:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1071:1;1064:8;;;901:179;;;;:::o;20956:551::-;13342:4;13331:8;;:15;;;;;;;;;;;;;;;;;;21038:20:::1;21061:93;21100:53;21144:8;;21100:39;21129:9;;21100:24;21114:9;;21100;;:13;;:24;;;;:::i;:::-;:28;;:39;;;;:::i;:::-;:43;;:53;;;;:::i;:::-;21061:34;21074:20;21061:8;;:12;;:34;;;;:::i;:::-;:38;;:93;;;;:::i;:::-;21038:116;;21165:12;21181:19;21198:1;21181:12;:16;;:19;;;;:::i;:::-;21165:35;;21211:17;21231:30;21256:4;21231:20;:24;;:30;;;;:::i;:::-;21211:50;;21272:22;21297:21;21272:46;;21329:27;21346:9;21329:16;:27::i;:::-;21367:18;21388:70;21448:9;21389:53;21437:4;21390:41;21416:14;21390:21;:25;;:41;;;;:::i;:::-;21389:47;;:53;;;;:::i;:::-;21388:59;;:70;;;;:::i;:::-;21367:91;;21469:30;21482:4;21488:10;21469:12;:30::i;:::-;21027:480;;;;;13380:5:::0;13369:8;;:16;;;;;;;;;;;;;;;;;;20956:551;:::o;23989:117::-;24051:1;24042:6;:10;24038:61;;;24066:24;24083:6;24066:16;:24::i;:::-;24038:61;23989:117;:::o;22183:1246::-;22296:7;22291:60;;22325:14;:12;:14::i;:::-;22291:60;22371:24;;:::i;:::-;22419:30;22445:3;22419:21;22430:9;;22419:6;:10;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;22406:4;:10;;:43;;;;;22472:29;22497:3;22472:20;22483:8;;22472:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;22460:4;:9;;:41;;;;;22525:30;22551:3;22525:21;22536:9;;22525:6;:10;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;22512:4;:10;;:43;;;;;22579:30;22605:3;22579:21;22590:9;;22579:6;:10;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;22566:4;:10;;:43;;;;;22645:69;22704:4;:9;;;22645:54;22688:4;:10;;;22645:38;22672:4;:10;;;22645:22;22656:4;:10;;;22645:6;:10;;:22;;;;:::i;:::-;:26;;:38;;;;:::i;:::-;:42;;:54;;;;:::i;:::-;:58;;:69;;;;:::i;:::-;22630:4;:12;;:84;;;;;22727:21;22751:22;22762:4;:10;;;22751:6;:10;;:22;;;;:::i;:::-;22727:46;;22784:27;22792:6;22800:4;:10;;;22784:7;:27::i;:::-;22844:36;22866:13;22844:9;:17;22854:6;22844:17;;;;;;;;;;;;;;;;:21;;:36;;;;:::i;:::-;22824:9;:17;22834:6;22824:17;;;;;;;;;;;;;;;:56;;;;22914:38;22939:4;:12;;;22914:9;:20;22924:9;22914:20;;;;;;;;;;;;;;;;:24;;:38;;;;:::i;:::-;22891:9;:20;22901:9;22891:20;;;;;;;;;;;;;;;:61;;;;22990:87;23051:25;23066:4;:9;;;23051:4;:10;;;:14;;:25;;;;:::i;:::-;22990:56;23035:4;:10;;;22990:40;23019:4;:10;;;22990:9;:24;23008:4;22990:24;;;;;;;;;;;;;;;;:28;;:40;;;;:::i;:::-;:44;;:56;;;;:::i;:::-;:60;;:87;;;;:::i;:::-;22963:9;:24;22981:4;22963:24;;;;;;;;;;;;;;;:114;;;;23101:8;;;;;;;;;;;:35;;;;;23123:13;;;;;;;;;;;23113:23;;:6;:23;;;;23101:35;:62;;;;;23158:4;23140:23;;:6;:23;;;;23101:62;:100;;;;;23185:15;;;;;;;;;;;23167:34;;:6;:34;;;;23101:100;:173;;;;;23227:15;;;;;;;;;;;23206:37;;:9;:37;;;:67;;;;23260:13;;;;;;;;;;;23247:26;;:9;:26;;;23206:67;23101:173;23098:239;;;23291:34;23299:13;;;;;;;;;;;23314:4;:10;;;23291:7;:34::i;:::-;23098:239;23371:9;23354:41;;23363:6;23354:41;;;23382:4;:12;;;23354:41;;;;;;:::i;:::-;;;;;;;;23406:15;:13;:15::i;:::-;22280:1149;;22183:1246;;;;:::o;16179:199::-;16234:16;;16223:8;:27;;;;16273:17;;16261:9;:29;;;;16313:17;;16301:9;:29;;;;16353:17;;16341:9;:29;;;;16179:199::o;1824:189::-;1910:7;1942:1;1938;:5;1945:12;1930:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1969:9;1985:1;1981;:5;;;;:::i;:::-;1969:17;;2004:1;1997:8;;;1824:189;;;;;:::o;1430:246::-;1488:7;1517:1;1512;:6;1508:47;;1542:1;1535:8;;;;1508:47;1565:9;1581:1;1577;:5;;;;:::i;:::-;1565:17;;1610:1;1605;1601;:5;;;;:::i;:::-;:10;1593:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1667:1;1660:8;;;1430:246;;;;;:::o;1088:136::-;1146:7;1173:43;1177:1;1180;1173:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1166:50;;1088:136;;;;:::o;20491:455::-;20572:62;20589:4;20604:15;;;;;;;;;;;20622:11;20572:8;:62::i;:::-;20677:15;;;;;;;;;;;:31;;;20716:9;20749:4;20769:11;20795:1;20838;20881:14;;;;;;;;;;;20910:15;20677:261;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20491:455;;:::o;19969:514::-;20090:21;20128:1;20114:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20090:40;;20151:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20141:4;20146:1;20141:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;20202:4;;;;;;;;;;;20184;20189:1;20184:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20244:15;;;;;;;;;;;:66;;;20318:6;20340:1;20387:4;20406;;;;;;;;;;;20441:15;20244:223;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20019:464;19969:514;:::o;15782:385::-;15842:1;15829:9;;:14;:31;;;;;15859:1;15847:8;;:13;15829:31;:49;;;;;15877:1;15864:9;;:14;15829:49;:67;;;;;15895:1;15882:9;;:14;15829:67;15898:7;15825:80;15935:9;;15915:17;:29;;;;15974:8;;15955:16;:27;;;;16013:9;;15993:17;:29;;;;16053:9;;16033:17;:29;;;;16087:1;16075:9;:13;;;;16110:1;16099:8;:12;;;;16134:1;16122:9;:13;;;;16158:1;16146:9;:13;;;;15782:385;:::o;15444:330::-;15534:19;15544:8;15534:9;:19::i;:::-;15523:7;:30;;15514:40;;;;;;15587:32;15611:7;15587:9;:19;15597:8;15587:19;;;;;;;;;;;;;;;;:23;;:32;;;;:::i;:::-;15565:9;:19;15575:8;15565:19;;;;;;;;;;;;;;;:54;;;;15640:20;15652:7;15640;;:11;;:20;;;;:::i;:::-;15630:7;:30;;;;15686:25;15703:7;15686:12;;:16;;:25;;;;:::i;:::-;15671:12;:40;;;;15754:1;15727:39;;15736:8;15727:39;;;15758:7;15727:39;;;;;;:::i;:::-;;;;;;;;15444:330;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:60::-;3874:3;3895:5;3888:12;;3846:60;;;:::o;3912:142::-;3962:9;3995:53;4013:34;4022:24;4040:5;4022:24;:::i;:::-;4013:34;:::i;:::-;3995:53;:::i;:::-;3982:66;;3912:142;;;:::o;4060:126::-;4110:9;4143:37;4174:5;4143:37;:::i;:::-;4130:50;;4060:126;;;:::o;4192:152::-;4268:9;4301:37;4332:5;4301:37;:::i;:::-;4288:50;;4192:152;;;:::o;4350:183::-;4463:63;4520:5;4463:63;:::i;:::-;4458:3;4451:76;4350:183;;:::o;4539:274::-;4658:4;4696:2;4685:9;4681:18;4673:26;;4709:97;4803:1;4792:9;4788:17;4779:6;4709:97;:::i;:::-;4539:274;;;;:::o;4819:619::-;4896:6;4904;4912;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;5214:2;5240:53;5285:7;5276:6;5265:9;5261:22;5240:53;:::i;:::-;5230:63;;5185:118;5342:2;5368:53;5413:7;5404:6;5393:9;5389:22;5368:53;:::i;:::-;5358:63;;5313:118;4819:619;;;;;:::o;5444:329::-;5503:6;5552:2;5540:9;5531:7;5527:23;5523:32;5520:119;;;5558:79;;:::i;:::-;5520:119;5678:1;5703:53;5748:7;5739:6;5728:9;5724:22;5703:53;:::i;:::-;5693:63;;5649:117;5444:329;;;;:::o;5779:86::-;5814:7;5854:4;5847:5;5843:16;5832:27;;5779:86;;;:::o;5871:112::-;5954:22;5970:5;5954:22;:::i;:::-;5949:3;5942:35;5871:112;;:::o;5989:214::-;6078:4;6116:2;6105:9;6101:18;6093:26;;6129:67;6193:1;6182:9;6178:17;6169:6;6129:67;:::i;:::-;5989:214;;;;:::o;6209:104::-;6254:7;6283:24;6301:5;6283:24;:::i;:::-;6272:35;;6209:104;;;:::o;6319:142::-;6422:32;6448:5;6422:32;:::i;:::-;6417:3;6410:45;6319:142;;:::o;6467:254::-;6576:4;6614:2;6603:9;6599:18;6591:26;;6627:87;6711:1;6700:9;6696:17;6687:6;6627:87;:::i;:::-;6467:254;;;;:::o;6727:138::-;6808:32;6834:5;6808:32;:::i;:::-;6801:5;6798:43;6788:71;;6855:1;6852;6845:12;6788:71;6727:138;:::o;6871:155::-;6925:5;6963:6;6950:20;6941:29;;6979:41;7014:5;6979:41;:::i;:::-;6871:155;;;;:::o;7032:345::-;7099:6;7148:2;7136:9;7127:7;7123:23;7119:32;7116:119;;;7154:79;;:::i;:::-;7116:119;7274:1;7299:61;7352:7;7343:6;7332:9;7328:22;7299:61;:::i;:::-;7289:71;;7245:125;7032:345;;;;:::o;7383:118::-;7470:24;7488:5;7470:24;:::i;:::-;7465:3;7458:37;7383:118;;:::o;7507:222::-;7600:4;7638:2;7627:9;7623:18;7615:26;;7651:71;7719:1;7708:9;7704:17;7695:6;7651:71;:::i;:::-;7507:222;;;;:::o;7735:329::-;7794:6;7843:2;7831:9;7822:7;7818:23;7814:32;7811:119;;;7849:79;;:::i;:::-;7811:119;7969:1;7994:53;8039:7;8030:6;8019:9;8015:22;7994:53;:::i;:::-;7984:63;;7940:117;7735:329;;;;:::o;8070:474::-;8138:6;8146;8195:2;8183:9;8174:7;8170:23;8166:32;8163:119;;;8201:79;;:::i;:::-;8163:119;8321:1;8346:53;8391:7;8382:6;8371:9;8367:22;8346:53;:::i;:::-;8336:63;;8292:117;8448:2;8474:53;8519:7;8510:6;8499:9;8495:22;8474:53;:::i;:::-;8464:63;;8419:118;8070:474;;;;;:::o;8550:229::-;8690:34;8686:1;8678:6;8674:14;8667:58;8759:12;8754:2;8746:6;8742:15;8735:37;8550:229;:::o;8785:366::-;8927:3;8948:67;9012:2;9007:3;8948:67;:::i;:::-;8941:74;;9024:93;9113:3;9024:93;:::i;:::-;9142:2;9137:3;9133:12;9126:19;;8785:366;;;:::o;9157:419::-;9323:4;9361:2;9350:9;9346:18;9338:26;;9410:9;9404:4;9400:20;9396:1;9385:9;9381:17;9374:47;9438:131;9564:4;9438:131;:::i;:::-;9430:139;;9157:419;;;:::o;9582:182::-;9722:34;9718:1;9710:6;9706:14;9699:58;9582:182;:::o;9770:366::-;9912:3;9933:67;9997:2;9992:3;9933:67;:::i;:::-;9926:74;;10009:93;10098:3;10009:93;:::i;:::-;10127:2;10122:3;10118:12;10111:19;;9770:366;;;:::o;10142:419::-;10308:4;10346:2;10335:9;10331:18;10323:26;;10395:9;10389:4;10385:20;10381:1;10370:9;10366:17;10359:47;10423:131;10549:4;10423:131;:::i;:::-;10415:139;;10142:419;;;:::o;10567:225::-;10707:34;10703:1;10695:6;10691:14;10684:58;10776:8;10771:2;10763:6;10759:15;10752:33;10567:225;:::o;10798:366::-;10940:3;10961:67;11025:2;11020:3;10961:67;:::i;:::-;10954:74;;11037:93;11126:3;11037:93;:::i;:::-;11155:2;11150:3;11146:12;11139:19;;10798:366;;;:::o;11170:419::-;11336:4;11374:2;11363:9;11359:18;11351:26;;11423:9;11417:4;11413:20;11409:1;11398:9;11394:17;11387:47;11451:131;11577:4;11451:131;:::i;:::-;11443:139;;11170:419;;;:::o;11595:170::-;11735:22;11731:1;11723:6;11719:14;11712:46;11595:170;:::o;11771:366::-;11913:3;11934:67;11998:2;11993:3;11934:67;:::i;:::-;11927:74;;12010:93;12099:3;12010:93;:::i;:::-;12128:2;12123:3;12119:12;12112:19;;11771:366;;;:::o;12143:419::-;12309:4;12347:2;12336:9;12332:18;12324:26;;12396:9;12390:4;12386:20;12382:1;12371:9;12367:17;12360:47;12424:131;12550:4;12424:131;:::i;:::-;12416:139;;12143:419;;;:::o;12568:223::-;12708:34;12704:1;12696:6;12692:14;12685:58;12777:6;12772:2;12764:6;12760:15;12753:31;12568:223;:::o;12797:366::-;12939:3;12960:67;13024:2;13019:3;12960:67;:::i;:::-;12953:74;;13036:93;13125:3;13036:93;:::i;:::-;13154:2;13149:3;13145:12;13138:19;;12797:366;;;:::o;13169:419::-;13335:4;13373:2;13362:9;13358:18;13350:26;;13422:9;13416:4;13412:20;13408:1;13397:9;13393:17;13386:47;13450:131;13576:4;13450:131;:::i;:::-;13442:139;;13169:419;;;:::o;13594:221::-;13734:34;13730:1;13722:6;13718:14;13711:58;13803:4;13798:2;13790:6;13786:15;13779:29;13594:221;:::o;13821:366::-;13963:3;13984:67;14048:2;14043:3;13984:67;:::i;:::-;13977:74;;14060:93;14149:3;14060:93;:::i;:::-;14178:2;14173:3;14169:12;14162:19;;13821:366;;;:::o;14193:419::-;14359:4;14397:2;14386:9;14382:18;14374:26;;14446:9;14440:4;14436:20;14432:1;14421:9;14417:17;14410:47;14474:131;14600:4;14474:131;:::i;:::-;14466:139;;14193:419;;;:::o;14618:224::-;14758:34;14754:1;14746:6;14742:14;14735:58;14827:7;14822:2;14814:6;14810:15;14803:32;14618:224;:::o;14848:366::-;14990:3;15011:67;15075:2;15070:3;15011:67;:::i;:::-;15004:74;;15087:93;15176:3;15087:93;:::i;:::-;15205:2;15200:3;15196:12;15189:19;;14848:366;;;:::o;15220:419::-;15386:4;15424:2;15413:9;15409:18;15401:26;;15473:9;15467:4;15463:20;15459:1;15448:9;15444:17;15437:47;15501:131;15627:4;15501:131;:::i;:::-;15493:139;;15220:419;;;:::o;15645:222::-;15785:34;15781:1;15773:6;15769:14;15762:58;15854:5;15849:2;15841:6;15837:15;15830:30;15645:222;:::o;15873:366::-;16015:3;16036:67;16100:2;16095:3;16036:67;:::i;:::-;16029:74;;16112:93;16201:3;16112:93;:::i;:::-;16230:2;16225:3;16221:12;16214:19;;15873:366;;;:::o;16245:419::-;16411:4;16449:2;16438:9;16434:18;16426:26;;16498:9;16492:4;16488:20;16484:1;16473:9;16469:17;16462:47;16526:131;16652:4;16526:131;:::i;:::-;16518:139;;16245:419;;;:::o;16670:228::-;16810:34;16806:1;16798:6;16794:14;16787:58;16879:11;16874:2;16866:6;16862:15;16855:36;16670:228;:::o;16904:366::-;17046:3;17067:67;17131:2;17126:3;17067:67;:::i;:::-;17060:74;;17143:93;17232:3;17143:93;:::i;:::-;17261:2;17256:3;17252:12;17245:19;;16904:366;;;:::o;17276:419::-;17442:4;17480:2;17469:9;17465:18;17457:26;;17529:9;17523:4;17519:20;17515:1;17504:9;17500:17;17493:47;17557:131;17683:4;17557:131;:::i;:::-;17549:139;;17276:419;;;:::o;17701:230::-;17841:34;17837:1;17829:6;17825:14;17818:58;17910:13;17905:2;17897:6;17893:15;17886:38;17701:230;:::o;17937:366::-;18079:3;18100:67;18164:2;18159:3;18100:67;:::i;:::-;18093:74;;18176:93;18265:3;18176:93;:::i;:::-;18294:2;18289:3;18285:12;18278:19;;17937:366;;;:::o;18309:419::-;18475:4;18513:2;18502:9;18498:18;18490:26;;18562:9;18556:4;18552:20;18548:1;18537:9;18533:17;18526:47;18590:131;18716:4;18590:131;:::i;:::-;18582:139;;18309:419;;;:::o;18734:231::-;18874:34;18870:1;18862:6;18858:14;18851:58;18943:14;18938:2;18930:6;18926:15;18919:39;18734:231;:::o;18971:366::-;19113:3;19134:67;19198:2;19193:3;19134:67;:::i;:::-;19127:74;;19210:93;19299:3;19210:93;:::i;:::-;19328:2;19323:3;19319:12;19312:19;;18971:366;;;:::o;19343:419::-;19509:4;19547:2;19536:9;19532:18;19524:26;;19596:9;19590:4;19586:20;19582:1;19571:9;19567:17;19560:47;19624:131;19750:4;19624:131;:::i;:::-;19616:139;;19343:419;;;:::o;19768:180::-;19816:77;19813:1;19806:88;19913:4;19910:1;19903:15;19937:4;19934:1;19927:15;19954:191;19994:4;20014:20;20032:1;20014:20;:::i;:::-;20009:25;;20048:20;20066:1;20048:20;:::i;:::-;20043:25;;20087:1;20084;20081:8;20078:34;;;20092:18;;:::i;:::-;20078:34;20137:1;20134;20130:9;20122:17;;19954:191;;;;:::o;20151:180::-;20199:77;20196:1;20189:88;20296:4;20293:1;20286:15;20320:4;20317:1;20310:15;20337:180;20385:77;20382:1;20375:88;20482:4;20479:1;20472:15;20506:4;20503:1;20496:15;20523:143;20580:5;20611:6;20605:13;20596:22;;20627:33;20654:5;20627:33;:::i;:::-;20523:143;;;;:::o;20672:351::-;20742:6;20791:2;20779:9;20770:7;20766:23;20762:32;20759:119;;;20797:79;;:::i;:::-;20759:119;20917:1;20942:64;20998:7;20989:6;20978:9;20974:22;20942:64;:::i;:::-;20932:74;;20888:128;20672:351;;;;:::o;21029:85::-;21074:7;21103:5;21092:16;;21029:85;;;:::o;21120:158::-;21178:9;21211:61;21229:42;21238:32;21264:5;21238:32;:::i;:::-;21229:42;:::i;:::-;21211:61;:::i;:::-;21198:74;;21120:158;;;:::o;21284:147::-;21379:45;21418:5;21379:45;:::i;:::-;21374:3;21367:58;21284:147;;:::o;21437:114::-;21504:6;21538:5;21532:12;21522:22;;21437:114;;;:::o;21557:184::-;21656:11;21690:6;21685:3;21678:19;21730:4;21725:3;21721:14;21706:29;;21557:184;;;;:::o;21747:132::-;21814:4;21837:3;21829:11;;21867:4;21862:3;21858:14;21850:22;;21747:132;;;:::o;21885:108::-;21962:24;21980:5;21962:24;:::i;:::-;21957:3;21950:37;21885:108;;:::o;21999:179::-;22068:10;22089:46;22131:3;22123:6;22089:46;:::i;:::-;22167:4;22162:3;22158:14;22144:28;;21999:179;;;;:::o;22184:113::-;22254:4;22286;22281:3;22277:14;22269:22;;22184:113;;;:::o;22333:732::-;22452:3;22481:54;22529:5;22481:54;:::i;:::-;22551:86;22630:6;22625:3;22551:86;:::i;:::-;22544:93;;22661:56;22711:5;22661:56;:::i;:::-;22740:7;22771:1;22756:284;22781:6;22778:1;22775:13;22756:284;;;22857:6;22851:13;22884:63;22943:3;22928:13;22884:63;:::i;:::-;22877:70;;22970:60;23023:6;22970:60;:::i;:::-;22960:70;;22816:224;22803:1;22800;22796:9;22791:14;;22756:284;;;22760:14;23056:3;23049:10;;22457:608;;;22333:732;;;;:::o;23071:831::-;23334:4;23372:3;23361:9;23357:19;23349:27;;23386:71;23454:1;23443:9;23439:17;23430:6;23386:71;:::i;:::-;23467:80;23543:2;23532:9;23528:18;23519:6;23467:80;:::i;:::-;23594:9;23588:4;23584:20;23579:2;23568:9;23564:18;23557:48;23622:108;23725:4;23716:6;23622:108;:::i;:::-;23614:116;;23740:72;23808:2;23797:9;23793:18;23784:6;23740:72;:::i;:::-;23822:73;23890:3;23879:9;23875:19;23866:6;23822:73;:::i;:::-;23071:831;;;;;;;;:::o;23908:305::-;23948:3;23967:20;23985:1;23967:20;:::i;:::-;23962:25;;24001:20;24019:1;24001:20;:::i;:::-;23996:25;;24155:1;24087:66;24083:74;24080:1;24077:81;24074:107;;;24161:18;;:::i;:::-;24074:107;24205:1;24202;24198:9;24191:16;;23908:305;;;;:::o;24219:177::-;24359:29;24355:1;24347:6;24343:14;24336:53;24219:177;:::o;24402:366::-;24544:3;24565:67;24629:2;24624:3;24565:67;:::i;:::-;24558:74;;24641:93;24730:3;24641:93;:::i;:::-;24759:2;24754:3;24750:12;24743:19;;24402:366;;;:::o;24774:419::-;24940:4;24978:2;24967:9;24963:18;24955:26;;25027:9;25021:4;25017:20;25013:1;25002:9;24998:17;24991:47;25055:131;25181:4;25055:131;:::i;:::-;25047:139;;24774:419;;;:::o;25199:180::-;25247:77;25244:1;25237:88;25344:4;25341:1;25334:15;25368:4;25365:1;25358:15;25385:185;25425:1;25442:20;25460:1;25442:20;:::i;:::-;25437:25;;25476:20;25494:1;25476:20;:::i;:::-;25471:25;;25515:1;25505:35;;25520:18;;:::i;:::-;25505:35;25562:1;25559;25555:9;25550:14;;25385:185;;;;:::o;25576:348::-;25616:7;25639:20;25657:1;25639:20;:::i;:::-;25634:25;;25673:20;25691:1;25673:20;:::i;:::-;25668:25;;25861:1;25793:66;25789:74;25786:1;25783:81;25778:1;25771:9;25764:17;25760:105;25757:131;;;25868:18;;:::i;:::-;25757:131;25916:1;25913;25909:9;25898:20;;25576:348;;;;:::o;25930:220::-;26070:34;26066:1;26058:6;26054:14;26047:58;26139:3;26134:2;26126:6;26122:15;26115:28;25930:220;:::o;26156:366::-;26298:3;26319:67;26383:2;26378:3;26319:67;:::i;:::-;26312:74;;26395:93;26484:3;26395:93;:::i;:::-;26513:2;26508:3;26504:12;26497:19;;26156:366;;;:::o;26528:419::-;26694:4;26732:2;26721:9;26717:18;26709:26;;26781:9;26775:4;26771:20;26767:1;26756:9;26752:17;26745:47;26809:131;26935:4;26809:131;:::i;:::-;26801:139;;26528:419;;;:::o;26953:134::-;27011:9;27044:37;27075:5;27044:37;:::i;:::-;27031:50;;26953:134;;;:::o;27093:147::-;27188:45;27227:5;27188:45;:::i;:::-;27183:3;27176:58;27093:147;;:::o;27246:823::-;27503:4;27541:3;27530:9;27526:19;27518:27;;27555:71;27623:1;27612:9;27608:17;27599:6;27555:71;:::i;:::-;27636:72;27704:2;27693:9;27689:18;27680:6;27636:72;:::i;:::-;27718:80;27794:2;27783:9;27779:18;27770:6;27718:80;:::i;:::-;27808;27884:2;27873:9;27869:18;27860:6;27808:80;:::i;:::-;27898:81;27974:3;27963:9;27959:19;27950:6;27898:81;:::i;:::-;27989:73;28057:3;28046:9;28042:19;28033:6;27989:73;:::i;:::-;27246:823;;;;;;;;;:::o;28075:143::-;28132:5;28163:6;28157:13;28148:22;;28179:33;28206:5;28179:33;:::i;:::-;28075:143;;;;:::o;28224:663::-;28312:6;28320;28328;28377:2;28365:9;28356:7;28352:23;28348:32;28345:119;;;28383:79;;:::i;:::-;28345:119;28503:1;28528:64;28584:7;28575:6;28564:9;28560:22;28528:64;:::i;:::-;28518:74;;28474:128;28641:2;28667:64;28723:7;28714:6;28703:9;28699:22;28667:64;:::i;:::-;28657:74;;28612:129;28780:2;28806:64;28862:7;28853:6;28842:9;28838:22;28806:64;:::i;:::-;28796:74;;28751:129;28224:663;;;;;:::o;28893:736::-;29136:4;29174:3;29163:9;29159:19;29151:27;;29188:79;29264:1;29253:9;29249:17;29240:6;29188:79;:::i;:::-;29314:9;29308:4;29304:20;29299:2;29288:9;29284:18;29277:48;29342:108;29445:4;29436:6;29342:108;:::i;:::-;29334:116;;29460:80;29536:2;29525:9;29521:18;29512:6;29460:80;:::i;:::-;29550:72;29618:2;29607:9;29603:18;29594:6;29550:72;:::i;:::-;28893:736;;;;;;;:::o

Swarm Source

ipfs://2a56fd53174ebc740d3f86455287d93aed7db0794ef84ed9d257836dcf3d3565
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.