ETH Price: $3,153.79 (+2.71%)
Gas: 1 Gwei

Token

PulseShiba (PUSH)
 

Overview

Max Total Supply

100,000,000 PUSH

Holders

59

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: PUSH 25
Balance
0.000000001 PUSH

Value
$0.00
0xdc7ea2c07ffeb03148f6780774df1437b69f8231
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:
PulseShiba

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-03-30
*/

/*

https://t.me/PulseShiba_Token

*/


// SPDX-License-Identifier:MIT

pragma solidity ^0.8.10;

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

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

    /**
     * @dev Throws if called by any _account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

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

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

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

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

interface IUniSwapFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniSwapRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

}

contract PulseShiba is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private _name = "PulseShiba"; // token name
    string private _symbol = "PUSH"; // token ticker
    uint8 private _decimals = 9; // token decimals

    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;

    address public marketingWallet = address(0);
    address public developmentWallet = address(0);

    uint256 _buyMarketingFee = 150;
    uint256 _buyDevFee = 100;

    uint256 _sellMarketingFee = 150;
    uint256 _sellDevFee = 100;

    uint256 public totalBuyFee;
    uint256 public totalSellFee;
    
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isBot;

    uint256 private _totalSupply = 100_000_000 * 10**_decimals;

    uint256 feedenominator = 1000;

    uint256 public _maxTxAmount =  _totalSupply.mul(10).div(1000);     //1%
    uint256 public _walletMax = _totalSupply.mul(30).div(1000);    //3%
    uint256 public swapThreshold = 20_000 * 10**_decimals;

    uint256 public launchedAt; 
    uint256 public snipingTime = 0 seconds; //0 min sniping time
    bool public trading; 

    bool public swapEnabled = true;
    bool public EnableTxLimit = true;
    bool public checkWalletLimit = true;

    IUniSwapRouter public uniRouter;
    address public uniPair;

    bool inSwap;
    
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    constructor() {

        //Uni Swap
        IUniSwapRouter _dexRouter = IUniSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        uniPair = IUniSwapFactory(_dexRouter.factory()).createPair(
            address(this),
            _dexRouter.WETH()
        );

        uniRouter = _dexRouter;

        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;
        isExcludedFromFee[address(uniRouter)] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(uniPair)] = true;
        isWalletLimitExempt[address(uniRouter)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[deadAddress] = true;
        isWalletLimitExempt[zeroAddress] = true;
        
        isTxLimitExempt[deadAddress] = true;
        isTxLimitExempt[zeroAddress] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[address(uniRouter)] = true;

        isMarketPair[address(uniPair)] = true;

        _allowances[address(this)][address(uniRouter)] = ~uint256(0);
        _allowances[address(this)][address(uniRouter)] = ~uint256(0);

        totalBuyFee = _buyMarketingFee.add(_buyDevFee);
        totalSellFee = _sellMarketingFee.add(_sellDevFee);

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

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

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

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

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

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

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }

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

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

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

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

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

     //to recieve ETH from Router when swaping
    receive() external payable {}

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

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

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

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        
        require(!isBot[sender], "ERC20: Bot detected");
        require(!isBot[msg.sender], "ERC20: Bot detected");
        require(!isBot[tx.origin], "ERC20: Bot detected");

        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }
        else {

            if (!isExcludedFromFee[sender] && !isExcludedFromFee[recipient]) {
                require(trading, "ERC20: trading not enable yet");

                if (
                    block.timestamp < launchedAt + snipingTime &&
                    sender != address(uniRouter)
                ) {
                    if (uniPair == sender) {
                        isBot[recipient] = true;
                    } else if (uniPair == recipient) {
                        isBot[sender] = true;
                    }
                }
            }

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

            if (overMinimumTokenBalance && !inSwap && !isMarketPair[sender] && swapEnabled) {
                swapBack(contractTokenBalance);
            }
            
            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            } 
            
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = shouldNotTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Max Wallet Limit Exceeded!!");
            }

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

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

        }

    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function shouldNotTakeFee(address sender, address recipient) internal view returns (bool) {
        if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
            return true;
        }
        else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        }
        else {
            return false;
        }
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint feeAmount;

        unchecked {

            if(isMarketPair[sender]) { //buy
                feeAmount = amount.mul(totalBuyFee).div(feedenominator);
            } 
            else if(isMarketPair[recipient]) { //sell
                feeAmount = amount.mul(totalSellFee).div(feedenominator);
            }

            if(feeAmount > 0) {
                _balances[address(this)] = _balances[address(this)].add(feeAmount);
                emit Transfer(sender, address(this), feeAmount);
            }

            return amount.sub(feeAmount);
        }
        
    }

    function swapBack(uint contractBalance) internal swapping {

        uint256 totalShares = totalBuyFee.add(totalSellFee);

        if(totalShares == 0) return;

        uint256 _marketingShare = _buyMarketingFee.add(_sellMarketingFee);
        // uint256 _devShare = _buyDevFee.add(_sellDevFee);

        uint256 initialBalance = address(this).balance;
        swapTokensForEth(contractBalance);
        uint256 amountReceived = address(this).balance.sub(initialBalance);
        
        uint256 amountETHMarketing = amountReceived.mul(_marketingShare).div(totalShares);
        uint256 amountETHDevelopment = amountReceived.sub(amountETHMarketing);

        if(amountETHMarketing > 0) {
            payable(marketingWallet).transfer(amountETHMarketing);
        }
        if(amountETHDevelopment > 0) {
            payable(developmentWallet).transfer(amountETHDevelopment);
        }

    }

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

        _approve(address(this), address(uniRouter), tokenAmount);

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

    function startTrading() external onlyOwner {
        require(!trading, "ERC20: Already Enabled");
        trading = true;
        launchedAt = block.timestamp;
    }

    //To Rescue Stucked Balance
    function rescueFunds() external onlyOwner { 
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

    //To Rescue Stucked Tokens
    function rescueTokens(IERC20 adr,address recipient,uint amount) external onlyOwner {
        adr.transfer(recipient,amount);
    }

    function addOrRemoveBots(address[] calldata accounts, bool value)
        external
        onlyOwner
    {
        for (uint256 i = 0; i < accounts.length; i++) {
            isBot[accounts[i]] = value;
        }
    }    

    function setBuyFee(uint _newMarketing, uint _newDev) external onlyOwner {
        _buyMarketingFee = _newMarketing;
        _buyDevFee = _newDev;
        totalBuyFee = _buyMarketingFee.add(_buyDevFee);
    }

    function setSellFee(uint _newMarketing, uint _newDev) external onlyOwner {
        _sellMarketingFee = _newMarketing;
        _sellDevFee = _newDev;
        totalSellFee = _sellMarketingFee.add(_sellDevFee);
    }

    function enableTxLimit(bool _status) external onlyOwner {
        EnableTxLimit = _status;
    }

    function enableWalletLimit(bool _status) external onlyOwner {
        checkWalletLimit = _status;
    }

    function excludeFromFee(address _adr,bool _status) external onlyOwner {
        isExcludedFromFee[_adr] = _status;
    }

    function excludeWalletLimit(address _adr,bool _status) external onlyOwner {
        isWalletLimitExempt[_adr] = _status;
    }

    function excludeTxLimit(address _adr,bool _status) external onlyOwner {
        isTxLimitExempt[_adr] = _status;
    }

    function setMaxWalletLimit(uint256 newLimit) external onlyOwner() {
        _walletMax = newLimit;
    }

    function setTxLimit(uint256 newLimit) external onlyOwner() {
        _maxTxAmount = newLimit;
    }
    
    function setMarketingWallet(address _newWallet) external onlyOwner {
        marketingWallet = _newWallet;
    }

    function setDevelopmentWallet(address _newWallet) external onlyOwner {
        developmentWallet = _newWallet;
    }

    function setMarketPair(address _pair, bool _status) external onlyOwner {
        isMarketPair[_pair] = _status;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount)
        external
        onlyOwner
    {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setManualRouter(address _router) external onlyOwner {
        uniRouter = IUniSwapRouter(_router);
    }

    function setManualPair(address _pair) external onlyOwner {
        uniPair = _pair;
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"EnableTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"addOrRemoveBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"adr","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newMarketing","type":"uint256"},{"internalType":"uint256","name":"_newDev","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setDevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"setManualPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"setManualRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newMarketing","type":"uint256"},{"internalType":"uint256","name":"_newDev","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snipingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"uniPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniRouter","outputs":[{"internalType":"contract IUniSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526040518060400160405280600a81526020017f50756c7365536869626100000000000000000000000000000000000000000000815250600190805190602001906200005192919062000fae565b506040518060400160405280600481526020017f5055534800000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000fae565b506009600360006101000a81548160ff021916908360ff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250600073ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff168152506000600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506096600555606460065560966007556064600855600360009054906101000a900460ff16600a620001db9190620011f8565b6305f5e100620001ec919062001249565b6012556103e86013556200022d6103e862000219600a60125462000d4160201b620024f11790919060201c565b62000dc560201b6200256c1790919060201c565b601455620002686103e862000254601e60125462000d4160201b620024f11790919060201c565b62000dc560201b6200256c1790919060201c565b601555600360009054906101000a900460ff16600a620002899190620011f8565b614e2062000298919062001249565b60165560006018556001601960016101000a81548160ff0219169083151502179055506001601960026101000a81548160ff0219169083151502179055506001601960036101000a81548160ff021916908315150217905550348015620002fe57600080fd5b506200031f6200031362000e1760201b60201c565b62000e1f60201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000384573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003aa919062001314565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000412573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000438919062001314565b6040518363ffffffff1660e01b81526004016200045792919062001357565b6020604051808303816000875af115801562000477573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200049d919062001314565b601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601960046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601960049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000601960049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000601960049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600019600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601960049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600019600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601960049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000c6060065460055462000ee360201b620025b61790919060201c565b60098190555062000c8460085460075462000ee360201b620025b61790919060201c565b600a81905550601254600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60125460405162000d32919062001395565b60405180910390a350620016ad565b60008083141562000d56576000905062000dbf565b6000828462000d66919062001249565b905082848262000d779190620013e1565b1462000dba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000db190620014a0565b60405180910390fd5b809150505b92915050565b600062000e0f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000f4660201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080828462000ef49190620014c2565b90508381101562000f3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000f33906200156f565b60405180910390fd5b8091505092915050565b6000808311829062000f90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000f87919062001624565b60405180910390fd5b506000838562000fa19190620013e1565b9050809150509392505050565b82805462000fbc9062001677565b90600052602060002090601f01602090048101928262000fe057600085556200102c565b82601f1062000ffb57805160ff19168380011785556200102c565b828001600101855582156200102c579182015b828111156200102b5782518255916020019190600101906200100e565b5b5090506200103b91906200103f565b5090565b5b808211156200105a57600081600090555060010162001040565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620010ec57808604811115620010c457620010c36200105e565b5b6001851615620010d45780820291505b8081029050620010e4856200108d565b9450620010a4565b94509492505050565b600082620011075760019050620011da565b81620011175760009050620011da565b81600181146200113057600281146200113b5762001171565b6001915050620011da565b60ff84111562001150576200114f6200105e565b5b8360020a9150848211156200116a57620011696200105e565b5b50620011da565b5060208310610133831016604e8410600b8410161715620011ab5782820a905083811115620011a557620011a46200105e565b5b620011da565b620011ba84848460016200109a565b92509050818404811115620011d457620011d36200105e565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200120582620011e1565b91506200121283620011eb565b9250620012417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620010f5565b905092915050565b60006200125682620011e1565b91506200126383620011e1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200129f576200129e6200105e565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620012dc82620012af565b9050919050565b620012ee81620012cf565b8114620012fa57600080fd5b50565b6000815190506200130e81620012e3565b92915050565b6000602082840312156200132d576200132c620012aa565b5b60006200133d84828501620012fd565b91505092915050565b6200135181620012cf565b82525050565b60006040820190506200136e600083018562001346565b6200137d602083018462001346565b9392505050565b6200138f81620011e1565b82525050565b6000602082019050620013ac600083018462001384565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620013ee82620011e1565b9150620013fb83620011e1565b9250826200140e576200140d620013b2565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006200148860218362001419565b915062001495826200142a565b604082019050919050565b60006020820190508181036000830152620014bb8162001479565b9050919050565b6000620014cf82620011e1565b9150620014dc83620011e1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200151457620015136200105e565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062001557601b8362001419565b915062001564826200151f565b602082019050919050565b600060208201905081810360008301526200158a8162001548565b9050919050565b600081519050919050565b60005b83811015620015bc5780820151818401526020810190506200159f565b83811115620015cc576000848401525b50505050565b6000601f19601f8301169050919050565b6000620015f08262001591565b620015fc818562001419565b93506200160e8185602086016200159c565b6200161981620015d2565b840191505092915050565b60006020820190508181036000830152620016408184620015e3565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200169057607f821691505b60208210811415620016a757620016a662001648565b5b50919050565b60805160a0516150cc620016e160003960008181610df5015261115801526000818161103c015261118401526150cc6000f3fe60806040526004361061036f5760003560e01c806372ac2486116101c6578063c04a5414116100f7578063e6b2603b11610095578063f2fde38b1161006f578063f2fde38b14610cb5578063f71b9bbf14610cde578063f872858a14610d07578063fb0ecfa414610d3257610376565b8063e6b2603b14610c4a578063ec44acf214610c61578063ee828db314610c8c57610376565b8063cea9d26f116100d1578063cea9d26f14610b92578063dd62ed3e14610bbb578063df20fd4914610bf8578063df8408fe14610c2157610376565b8063c04a541414610b01578063c16dd4a414610b2c578063c867d60b14610b5557610376565b806395d89b4111610164578063a457c2d71161013e578063a457c2d714610a33578063a9059cbb14610a70578063ae85ade614610aad578063bf56b37114610ad657610376565b806395d89b41146109b25780639d9241ec146109dd578063a0e47bf614610a0857610376565b80637d99c66d116101a05780637d99c66d146108f4578063807c2d9c1461091f5780638b42507f1461094a5780638da5cb5b1461098757610376565b806372ac24861461087557806375f0a8741461089e5780637d1db4a5146108c957610376565b80633ecad271116102a05780635e42358c1161023e5780636ddd1713116102185780636ddd1713146107cd57806370a08231146107f8578063715018a614610835578063728d41c91461084c57610376565b80635e42358c14610750578063651a89871461077b5780636ac9a870146107a457610376565b806359b107b91161027a57806359b107b9146106aa57806359fac517146106d55780635c85974f146106fe5780635d098b381461072757610376565b80633ecad271146106075780634974d88f146106445780635342acb41461066d57610376565b806327c8f8351161030d578063313ce567116102e7578063313ce5671461053757806332972e4614610562578063395093511461058d5780633bbac579146105ca57610376565b806327c8f835146104ca578063293230b8146104f55780632b112e491461050c57610376565b8063095ea7b311610349578063095ea7b3146103fc57806310a60f021461043957806318160ddd1461046257806323b872dd1461048d57610376565b80630445b6671461037b57806306fdde03146103a65780630930907b146103d157610376565b3661037657005b600080fd5b34801561038757600080fd5b50610390610d5b565b60405161039d9190613dbd565b60405180910390f35b3480156103b257600080fd5b506103bb610d61565b6040516103c89190613e71565b60405180910390f35b3480156103dd57600080fd5b506103e6610df3565b6040516103f39190613ed4565b60405180910390f35b34801561040857600080fd5b50610423600480360381019061041e9190613f51565b610e17565b6040516104309190613fac565b60405180910390f35b34801561044557600080fd5b50610460600480360381019061045b9190614058565b610e35565b005b34801561046e57600080fd5b50610477610f56565b6040516104849190613dbd565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af91906140b8565b610f60565b6040516104c19190613fac565b60405180910390f35b3480156104d657600080fd5b506104df61103a565b6040516104ec9190613ed4565b60405180910390f35b34801561050157600080fd5b5061050a61105e565b005b34801561051857600080fd5b5061052161114e565b60405161052e9190613dbd565b60405180910390f35b34801561054357600080fd5b5061054c6111cc565b6040516105599190614127565b60405180910390f35b34801561056e57600080fd5b506105776111e3565b6040516105849190613ed4565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190613f51565b611209565b6040516105c19190613fac565b60405180910390f35b3480156105d657600080fd5b506105f160048036038101906105ec9190614142565b6112bc565b6040516105fe9190613fac565b60405180910390f35b34801561061357600080fd5b5061062e60048036038101906106299190614142565b6112dc565b60405161063b9190613fac565b60405180910390f35b34801561065057600080fd5b5061066b6004803603810190610666919061416f565b6112fc565b005b34801561067957600080fd5b50610694600480360381019061068f9190614142565b611395565b6040516106a19190613fac565b60405180910390f35b3480156106b657600080fd5b506106bf6113b5565b6040516106cc9190613dbd565b60405180910390f35b3480156106e157600080fd5b506106fc60048036038101906106f79190614142565b6113bb565b005b34801561070a57600080fd5b506107256004803603810190610720919061419c565b61147b565b005b34801561073357600080fd5b5061074e60048036038101906107499190614142565b611501565b005b34801561075c57600080fd5b506107656115c1565b6040516107729190613fac565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d91906141c9565b6115d4565b005b3480156107b057600080fd5b506107cb60048036038101906107c69190614209565b6116ab565b005b3480156107d957600080fd5b506107e2611756565b6040516107ef9190613fac565b60405180910390f35b34801561080457600080fd5b5061081f600480360381019061081a9190614142565b611769565b60405161082c9190613dbd565b60405180910390f35b34801561084157600080fd5b5061084a6117b2565b005b34801561085857600080fd5b50610873600480360381019061086e919061419c565b61183a565b005b34801561088157600080fd5b5061089c60048036038101906108979190614142565b6118c0565b005b3480156108aa57600080fd5b506108b3611980565b6040516108c09190613ed4565b60405180910390f35b3480156108d557600080fd5b506108de6119a6565b6040516108eb9190613dbd565b60405180910390f35b34801561090057600080fd5b506109096119ac565b6040516109169190613dbd565b60405180910390f35b34801561092b57600080fd5b506109346119b2565b6040516109419190613dbd565b60405180910390f35b34801561095657600080fd5b50610971600480360381019061096c9190614142565b6119b8565b60405161097e9190613fac565b60405180910390f35b34801561099357600080fd5b5061099c6119d8565b6040516109a99190613ed4565b60405180910390f35b3480156109be57600080fd5b506109c7611a01565b6040516109d49190613e71565b60405180910390f35b3480156109e957600080fd5b506109f2611a93565b6040516109ff9190613dbd565b60405180910390f35b348015610a1457600080fd5b50610a1d611a99565b604051610a2a91906142a8565b60405180910390f35b348015610a3f57600080fd5b50610a5a6004803603810190610a559190613f51565b611abf565b604051610a679190613fac565b60405180910390f35b348015610a7c57600080fd5b50610a976004803603810190610a929190613f51565b611b8c565b604051610aa49190613fac565b60405180910390f35b348015610ab957600080fd5b50610ad46004803603810190610acf91906141c9565b611bab565b005b348015610ae257600080fd5b50610aeb611c82565b604051610af89190613dbd565b60405180910390f35b348015610b0d57600080fd5b50610b16611c88565b604051610b239190613ed4565b60405180910390f35b348015610b3857600080fd5b50610b536004803603810190610b4e91906141c9565b611cae565b005b348015610b6157600080fd5b50610b7c6004803603810190610b779190614142565b611d85565b604051610b899190613fac565b60405180910390f35b348015610b9e57600080fd5b50610bb96004803603810190610bb49190614301565b611da5565b005b348015610bc757600080fd5b50610be26004803603810190610bdd9190614354565b611ea5565b604051610bef9190613dbd565b60405180910390f35b348015610c0457600080fd5b50610c1f6004803603810190610c1a9190614394565b611f2c565b005b348015610c2d57600080fd5b50610c486004803603810190610c4391906141c9565b611fcd565b005b348015610c5657600080fd5b50610c5f6120a4565b005b348015610c6d57600080fd5b50610c766121cf565b604051610c839190613fac565b60405180910390f35b348015610c9857600080fd5b50610cb36004803603810190610cae919061416f565b6121e2565b005b348015610cc157600080fd5b50610cdc6004803603810190610cd79190614142565b61227b565b005b348015610cea57600080fd5b50610d056004803603810190610d009190614142565b612373565b005b348015610d1357600080fd5b50610d1c612433565b604051610d299190613fac565b60405180910390f35b348015610d3e57600080fd5b50610d596004803603810190610d549190614209565b612446565b005b60165481565b606060018054610d7090614403565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9c90614403565b8015610de95780601f10610dbe57610100808354040283529160200191610de9565b820191906000526020600020905b815481529060010190602001808311610dcc57829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610e2b610e24612614565b848461261c565b6001905092915050565b610e3d612614565b73ffffffffffffffffffffffffffffffffffffffff16610e5b6119d8565b73ffffffffffffffffffffffffffffffffffffffff1614610eb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea890614481565b60405180910390fd5b60005b83839050811015610f50578160116000868685818110610ed757610ed66144a1565b5b9050602002016020810190610eec9190614142565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f48906144ff565b915050610eb4565b50505050565b6000601254905090565b6000610f6d8484846127e7565b5061102f84610f7a612614565b61102a8560405180606001604052806028815260200161504a60289139600c60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610fe0612614565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132209092919063ffffffff16565b61261c565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b611066612614565b73ffffffffffffffffffffffffffffffffffffffff166110846119d8565b73ffffffffffffffffffffffffffffffffffffffff16146110da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d190614481565b60405180910390fd5b601960009054906101000a900460ff161561112a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112190614594565b60405180910390fd5b6001601960006101000a81548160ff02191690831515021790555042601781905550565b60006111c761117c7f0000000000000000000000000000000000000000000000000000000000000000611769565b6111b96111a87f0000000000000000000000000000000000000000000000000000000000000000611769565b60125461328490919063ffffffff16565b61328490919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006112b2611216612614565b846112ad85600c6000611227612614565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b690919063ffffffff16565b61261c565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b600e6020528060005260406000206000915054906101000a900460ff1681565b611304612614565b73ffffffffffffffffffffffffffffffffffffffff166113226119d8565b73ffffffffffffffffffffffffffffffffffffffff1614611378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136f90614481565b60405180910390fd5b80601960036101000a81548160ff02191690831515021790555050565b600d6020528060005260406000206000915054906101000a900460ff1681565b60095481565b6113c3612614565b73ffffffffffffffffffffffffffffffffffffffff166113e16119d8565b73ffffffffffffffffffffffffffffffffffffffff1614611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142e90614481565b60405180910390fd5b80601960046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611483612614565b73ffffffffffffffffffffffffffffffffffffffff166114a16119d8565b73ffffffffffffffffffffffffffffffffffffffff16146114f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ee90614481565b60405180910390fd5b8060148190555050565b611509612614565b73ffffffffffffffffffffffffffffffffffffffff166115276119d8565b73ffffffffffffffffffffffffffffffffffffffff161461157d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157490614481565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601960029054906101000a900460ff1681565b6115dc612614565b73ffffffffffffffffffffffffffffffffffffffff166115fa6119d8565b73ffffffffffffffffffffffffffffffffffffffff1614611650576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164790614481565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6116b3612614565b73ffffffffffffffffffffffffffffffffffffffff166116d16119d8565b73ffffffffffffffffffffffffffffffffffffffff1614611727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171e90614481565b60405180910390fd5b816007819055508060088190555061174c6008546007546125b690919063ffffffff16565b600a819055505050565b601960019054906101000a900460ff1681565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6117ba612614565b73ffffffffffffffffffffffffffffffffffffffff166117d86119d8565b73ffffffffffffffffffffffffffffffffffffffff161461182e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182590614481565b60405180910390fd5b61183860006132ce565b565b611842612614565b73ffffffffffffffffffffffffffffffffffffffff166118606119d8565b73ffffffffffffffffffffffffffffffffffffffff16146118b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ad90614481565b60405180910390fd5b8060158190555050565b6118c8612614565b73ffffffffffffffffffffffffffffffffffffffff166118e66119d8565b73ffffffffffffffffffffffffffffffffffffffff161461193c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193390614481565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b60185481565b60155481565b60106020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054611a1090614403565b80601f0160208091040260200160405190810160405280929190818152602001828054611a3c90614403565b8015611a895780601f10611a5e57610100808354040283529160200191611a89565b820191906000526020600020905b815481529060010190602001808311611a6c57829003601f168201915b5050505050905090565b600a5481565b601960049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611b82611acc612614565b84611b7d8560405180606001604052806025815260200161507260259139600c6000611af6612614565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132209092919063ffffffff16565b61261c565b6001905092915050565b6000611ba0611b99612614565b84846127e7565b506001905092915050565b611bb3612614565b73ffffffffffffffffffffffffffffffffffffffff16611bd16119d8565b73ffffffffffffffffffffffffffffffffffffffff1614611c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1e90614481565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60175481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611cb6612614565b73ffffffffffffffffffffffffffffffffffffffff16611cd46119d8565b73ffffffffffffffffffffffffffffffffffffffff1614611d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2190614481565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f6020528060005260406000206000915054906101000a900460ff1681565b611dad612614565b73ffffffffffffffffffffffffffffffffffffffff16611dcb6119d8565b73ffffffffffffffffffffffffffffffffffffffff1614611e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1890614481565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401611e5c9291906145b4565b6020604051808303816000875af1158015611e7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e9f91906145f2565b50505050565b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611f34612614565b73ffffffffffffffffffffffffffffffffffffffff16611f526119d8565b73ffffffffffffffffffffffffffffffffffffffff1614611fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9f90614481565b60405180910390fd5b81601960016101000a81548160ff021916908315150217905550806016819055505050565b611fd5612614565b73ffffffffffffffffffffffffffffffffffffffff16611ff36119d8565b73ffffffffffffffffffffffffffffffffffffffff1614612049576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204090614481565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6120ac612614565b73ffffffffffffffffffffffffffffffffffffffff166120ca6119d8565b73ffffffffffffffffffffffffffffffffffffffff1614612120576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211790614481565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff164760405161214690614650565b60006040518083038185875af1925050503d8060008114612183576040519150601f19603f3d011682016040523d82523d6000602084013e612188565b606091505b50509050806121cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c3906146b1565b60405180910390fd5b50565b601960009054906101000a900460ff1681565b6121ea612614565b73ffffffffffffffffffffffffffffffffffffffff166122086119d8565b73ffffffffffffffffffffffffffffffffffffffff161461225e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225590614481565b60405180910390fd5b80601960026101000a81548160ff02191690831515021790555050565b612283612614565b73ffffffffffffffffffffffffffffffffffffffff166122a16119d8565b73ffffffffffffffffffffffffffffffffffffffff16146122f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ee90614481565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235e90614743565b60405180910390fd5b612370816132ce565b50565b61237b612614565b73ffffffffffffffffffffffffffffffffffffffff166123996119d8565b73ffffffffffffffffffffffffffffffffffffffff16146123ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e690614481565b60405180910390fd5b80601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601960039054906101000a900460ff1681565b61244e612614565b73ffffffffffffffffffffffffffffffffffffffff1661246c6119d8565b73ffffffffffffffffffffffffffffffffffffffff16146124c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b990614481565b60405180910390fd5b81600581905550806006819055506124e76006546005546125b690919063ffffffff16565b6009819055505050565b6000808314156125045760009050612566565b600082846125129190614763565b905082848261252191906147ec565b14612561576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125589061488f565b60405180910390fd5b809150505b92915050565b60006125ae83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613392565b905092915050565b60008082846125c591906148af565b90508381101561260a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260190614951565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561268c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612683906149e3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f390614a75565b60405180910390fd5b80600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516127da9190613dbd565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284f90614b07565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128bf90614b99565b60405180910390fd5b6000821161290b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290290614c2b565b60405180910390fd5b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298f90614c97565b60405180910390fd5b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1c90614c97565b60405180910390fd5b601160003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612ab2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aa990614c97565b60405180910390fd5b601a60149054906101000a900460ff1615612ad957612ad28484846133f5565b9050613219565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b7d5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612da757601960009054906101000a900460ff16612bd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc890614d03565b60405180910390fd5b601854601754612be191906148af565b42108015612c3d5750601960049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612da6578373ffffffffffffffffffffffffffffffffffffffff16601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612cf5576001601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612da5565b8273ffffffffffffffffffffffffffffffffffffffff16601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612da4576001601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b5b5b6000612db230611769565b905060006016548210159050808015612dd85750601a60149054906101000a900460ff16155b8015612e2e5750600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612e465750601960019054906101000a900460ff165b15612e5557612e54826135c8565b5b601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612ef95750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612f115750601960029054906101000a900460ff165b15612f5c57601454841115612f5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f5290614d95565b60405180910390fd5b5b612fe5846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132209092919063ffffffff16565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006130348787613798565b61304857613043878787613903565b61304a565b845b9050601960039054906101000a900460ff1680156130b25750600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613117576015546130d5826130c789611769565b6125b690919063ffffffff16565b1115613116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161310d90614e01565b60405180910390fd5b5b61316981600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b690919063ffffffff16565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132099190613dbd565b60405180910390a3600193505050505b9392505050565b6000838311158290613268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161325f9190613e71565b60405180910390fd5b50600083856132779190614e21565b9050809150509392505050565b60006132c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613220565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080831182906133d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133d09190613e71565b60405180910390fd5b50600083856133e891906147ec565b9050809150509392505050565b6000613480826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132209092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061351582600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b690919063ffffffff16565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516135b59190613dbd565b60405180910390a3600190509392505050565b6001601a60146101000a81548160ff02191690831515021790555060006135fc600a546009546125b690919063ffffffff16565b9050600081141561360d575061377a565b60006136266007546005546125b690919063ffffffff16565b9050600047905061363684613b28565b600061364b824761328490919063ffffffff16565b905060006136748561366686856124f190919063ffffffff16565b61256c90919063ffffffff16565b9050600061368b828461328490919063ffffffff16565b9050600082111561370057600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156136fe573d6000803e3d6000fd5b505b600081111561377357600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613771573d6000803e3d6000fd5b505b5050505050505b6000601a60146101000a81548160ff02191690831515021790555050565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061383b5750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561384957600190506138fd565b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806138ea5750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156138f857600090506138fd565b600090505b92915050565b600080600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561398857613981601354613973600954866124f190919063ffffffff16565b61256c90919063ffffffff16565b9050613a07565b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613a0657613a036013546139f5600a54866124f190919063ffffffff16565b61256c90919063ffffffff16565b90505b5b6000811115613b0b57613a6281600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b690919063ffffffff16565b600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613b029190613dbd565b60405180910390a35b613b1e818461328490919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff811115613b4557613b44614e55565b5b604051908082528060200260200182016040528015613b735781602001602082028036833780820191505090505b5090503081600081518110613b8b57613b8a6144a1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613c32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c569190614e99565b81600181518110613c6a57613c696144a1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613cd130601960049054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461261c565b601960049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613d35959493929190614fbf565b600060405180830381600087803b158015613d4f57600080fd5b505af1158015613d63573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613d98929190615019565b60405180910390a15050565b6000819050919050565b613db781613da4565b82525050565b6000602082019050613dd26000830184613dae565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613e12578082015181840152602081019050613df7565b83811115613e21576000848401525b50505050565b6000601f19601f8301169050919050565b6000613e4382613dd8565b613e4d8185613de3565b9350613e5d818560208601613df4565b613e6681613e27565b840191505092915050565b60006020820190508181036000830152613e8b8184613e38565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613ebe82613e93565b9050919050565b613ece81613eb3565b82525050565b6000602082019050613ee96000830184613ec5565b92915050565b600080fd5b600080fd5b613f0281613eb3565b8114613f0d57600080fd5b50565b600081359050613f1f81613ef9565b92915050565b613f2e81613da4565b8114613f3957600080fd5b50565b600081359050613f4b81613f25565b92915050565b60008060408385031215613f6857613f67613eef565b5b6000613f7685828601613f10565b9250506020613f8785828601613f3c565b9150509250929050565b60008115159050919050565b613fa681613f91565b82525050565b6000602082019050613fc16000830184613f9d565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112613fec57613feb613fc7565b5b8235905067ffffffffffffffff81111561400957614008613fcc565b5b60208301915083602082028301111561402557614024613fd1565b5b9250929050565b61403581613f91565b811461404057600080fd5b50565b6000813590506140528161402c565b92915050565b60008060006040848603121561407157614070613eef565b5b600084013567ffffffffffffffff81111561408f5761408e613ef4565b5b61409b86828701613fd6565b935093505060206140ae86828701614043565b9150509250925092565b6000806000606084860312156140d1576140d0613eef565b5b60006140df86828701613f10565b93505060206140f086828701613f10565b925050604061410186828701613f3c565b9150509250925092565b600060ff82169050919050565b6141218161410b565b82525050565b600060208201905061413c6000830184614118565b92915050565b60006020828403121561415857614157613eef565b5b600061416684828501613f10565b91505092915050565b60006020828403121561418557614184613eef565b5b600061419384828501614043565b91505092915050565b6000602082840312156141b2576141b1613eef565b5b60006141c084828501613f3c565b91505092915050565b600080604083850312156141e0576141df613eef565b5b60006141ee85828601613f10565b92505060206141ff85828601614043565b9150509250929050565b600080604083850312156142205761421f613eef565b5b600061422e85828601613f3c565b925050602061423f85828601613f3c565b9150509250929050565b6000819050919050565b600061426e61426961426484613e93565b614249565b613e93565b9050919050565b600061428082614253565b9050919050565b600061429282614275565b9050919050565b6142a281614287565b82525050565b60006020820190506142bd6000830184614299565b92915050565b60006142ce82613eb3565b9050919050565b6142de816142c3565b81146142e957600080fd5b50565b6000813590506142fb816142d5565b92915050565b60008060006060848603121561431a57614319613eef565b5b6000614328868287016142ec565b935050602061433986828701613f10565b925050604061434a86828701613f3c565b9150509250925092565b6000806040838503121561436b5761436a613eef565b5b600061437985828601613f10565b925050602061438a85828601613f10565b9150509250929050565b600080604083850312156143ab576143aa613eef565b5b60006143b985828601614043565b92505060206143ca85828601613f3c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061441b57607f821691505b6020821081141561442f5761442e6143d4565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061446b602083613de3565b915061447682614435565b602082019050919050565b6000602082019050818103600083015261449a8161445e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061450a82613da4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561453d5761453c6144d0565b5b600182019050919050565b7f45524332303a20416c726561647920456e61626c656400000000000000000000600082015250565b600061457e601683613de3565b915061458982614548565b602082019050919050565b600060208201905081810360008301526145ad81614571565b9050919050565b60006040820190506145c96000830185613ec5565b6145d66020830184613dae565b9392505050565b6000815190506145ec8161402c565b92915050565b60006020828403121561460857614607613eef565b5b6000614616848285016145dd565b91505092915050565b600081905092915050565b50565b600061463a60008361461f565b91506146458261462a565b600082019050919050565b600061465b8261462d565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b600061469b601483613de3565b91506146a682614665565b602082019050919050565b600060208201905081810360008301526146ca8161468e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061472d602683613de3565b9150614738826146d1565b604082019050919050565b6000602082019050818103600083015261475c81614720565b9050919050565b600061476e82613da4565b915061477983613da4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156147b2576147b16144d0565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006147f782613da4565b915061480283613da4565b925082614812576148116147bd565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614879602183613de3565b91506148848261481d565b604082019050919050565b600060208201905081810360008301526148a88161486c565b9050919050565b60006148ba82613da4565b91506148c583613da4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156148fa576148f96144d0565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061493b601b83613de3565b915061494682614905565b602082019050919050565b6000602082019050818103600083015261496a8161492e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006149cd602483613de3565b91506149d882614971565b604082019050919050565b600060208201905081810360008301526149fc816149c0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a5f602283613de3565b9150614a6a82614a03565b604082019050919050565b60006020820190508181036000830152614a8e81614a52565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614af1602583613de3565b9150614afc82614a95565b604082019050919050565b60006020820190508181036000830152614b2081614ae4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614b83602383613de3565b9150614b8e82614b27565b604082019050919050565b60006020820190508181036000830152614bb281614b76565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614c15602983613de3565b9150614c2082614bb9565b604082019050919050565b60006020820190508181036000830152614c4481614c08565b9050919050565b7f45524332303a20426f7420646574656374656400000000000000000000000000600082015250565b6000614c81601383613de3565b9150614c8c82614c4b565b602082019050919050565b60006020820190508181036000830152614cb081614c74565b9050919050565b7f45524332303a2074726164696e67206e6f7420656e61626c6520796574000000600082015250565b6000614ced601d83613de3565b9150614cf882614cb7565b602082019050919050565b60006020820190508181036000830152614d1c81614ce0565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000614d7f602883613de3565b9150614d8a82614d23565b604082019050919050565b60006020820190508181036000830152614dae81614d72565b9050919050565b7f4d61782057616c6c6574204c696d697420457863656564656421210000000000600082015250565b6000614deb601b83613de3565b9150614df682614db5565b602082019050919050565b60006020820190508181036000830152614e1a81614dde565b9050919050565b6000614e2c82613da4565b9150614e3783613da4565b925082821015614e4a57614e496144d0565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050614e9381613ef9565b92915050565b600060208284031215614eaf57614eae613eef565b5b6000614ebd84828501614e84565b91505092915050565b6000819050919050565b6000614eeb614ee6614ee184614ec6565b614249565b613da4565b9050919050565b614efb81614ed0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614f3681613eb3565b82525050565b6000614f488383614f2d565b60208301905092915050565b6000602082019050919050565b6000614f6c82614f01565b614f768185614f0c565b9350614f8183614f1d565b8060005b83811015614fb2578151614f998882614f3c565b9750614fa483614f54565b925050600181019050614f85565b5085935050505092915050565b600060a082019050614fd46000830188613dae565b614fe16020830187614ef2565b8181036040830152614ff38186614f61565b90506150026060830185613ec5565b61500f6080830184613dae565b9695505050505050565b600060408201905061502e6000830185613dae565b81810360208301526150408184614f61565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202d6776c3df157b74159da8ea862c60a3f75f4fd1d941b596088733e77ebd336364736f6c634300080a0033

Deployed Bytecode

0x60806040526004361061036f5760003560e01c806372ac2486116101c6578063c04a5414116100f7578063e6b2603b11610095578063f2fde38b1161006f578063f2fde38b14610cb5578063f71b9bbf14610cde578063f872858a14610d07578063fb0ecfa414610d3257610376565b8063e6b2603b14610c4a578063ec44acf214610c61578063ee828db314610c8c57610376565b8063cea9d26f116100d1578063cea9d26f14610b92578063dd62ed3e14610bbb578063df20fd4914610bf8578063df8408fe14610c2157610376565b8063c04a541414610b01578063c16dd4a414610b2c578063c867d60b14610b5557610376565b806395d89b4111610164578063a457c2d71161013e578063a457c2d714610a33578063a9059cbb14610a70578063ae85ade614610aad578063bf56b37114610ad657610376565b806395d89b41146109b25780639d9241ec146109dd578063a0e47bf614610a0857610376565b80637d99c66d116101a05780637d99c66d146108f4578063807c2d9c1461091f5780638b42507f1461094a5780638da5cb5b1461098757610376565b806372ac24861461087557806375f0a8741461089e5780637d1db4a5146108c957610376565b80633ecad271116102a05780635e42358c1161023e5780636ddd1713116102185780636ddd1713146107cd57806370a08231146107f8578063715018a614610835578063728d41c91461084c57610376565b80635e42358c14610750578063651a89871461077b5780636ac9a870146107a457610376565b806359b107b91161027a57806359b107b9146106aa57806359fac517146106d55780635c85974f146106fe5780635d098b381461072757610376565b80633ecad271146106075780634974d88f146106445780635342acb41461066d57610376565b806327c8f8351161030d578063313ce567116102e7578063313ce5671461053757806332972e4614610562578063395093511461058d5780633bbac579146105ca57610376565b806327c8f835146104ca578063293230b8146104f55780632b112e491461050c57610376565b8063095ea7b311610349578063095ea7b3146103fc57806310a60f021461043957806318160ddd1461046257806323b872dd1461048d57610376565b80630445b6671461037b57806306fdde03146103a65780630930907b146103d157610376565b3661037657005b600080fd5b34801561038757600080fd5b50610390610d5b565b60405161039d9190613dbd565b60405180910390f35b3480156103b257600080fd5b506103bb610d61565b6040516103c89190613e71565b60405180910390f35b3480156103dd57600080fd5b506103e6610df3565b6040516103f39190613ed4565b60405180910390f35b34801561040857600080fd5b50610423600480360381019061041e9190613f51565b610e17565b6040516104309190613fac565b60405180910390f35b34801561044557600080fd5b50610460600480360381019061045b9190614058565b610e35565b005b34801561046e57600080fd5b50610477610f56565b6040516104849190613dbd565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af91906140b8565b610f60565b6040516104c19190613fac565b60405180910390f35b3480156104d657600080fd5b506104df61103a565b6040516104ec9190613ed4565b60405180910390f35b34801561050157600080fd5b5061050a61105e565b005b34801561051857600080fd5b5061052161114e565b60405161052e9190613dbd565b60405180910390f35b34801561054357600080fd5b5061054c6111cc565b6040516105599190614127565b60405180910390f35b34801561056e57600080fd5b506105776111e3565b6040516105849190613ed4565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190613f51565b611209565b6040516105c19190613fac565b60405180910390f35b3480156105d657600080fd5b506105f160048036038101906105ec9190614142565b6112bc565b6040516105fe9190613fac565b60405180910390f35b34801561061357600080fd5b5061062e60048036038101906106299190614142565b6112dc565b60405161063b9190613fac565b60405180910390f35b34801561065057600080fd5b5061066b6004803603810190610666919061416f565b6112fc565b005b34801561067957600080fd5b50610694600480360381019061068f9190614142565b611395565b6040516106a19190613fac565b60405180910390f35b3480156106b657600080fd5b506106bf6113b5565b6040516106cc9190613dbd565b60405180910390f35b3480156106e157600080fd5b506106fc60048036038101906106f79190614142565b6113bb565b005b34801561070a57600080fd5b506107256004803603810190610720919061419c565b61147b565b005b34801561073357600080fd5b5061074e60048036038101906107499190614142565b611501565b005b34801561075c57600080fd5b506107656115c1565b6040516107729190613fac565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d91906141c9565b6115d4565b005b3480156107b057600080fd5b506107cb60048036038101906107c69190614209565b6116ab565b005b3480156107d957600080fd5b506107e2611756565b6040516107ef9190613fac565b60405180910390f35b34801561080457600080fd5b5061081f600480360381019061081a9190614142565b611769565b60405161082c9190613dbd565b60405180910390f35b34801561084157600080fd5b5061084a6117b2565b005b34801561085857600080fd5b50610873600480360381019061086e919061419c565b61183a565b005b34801561088157600080fd5b5061089c60048036038101906108979190614142565b6118c0565b005b3480156108aa57600080fd5b506108b3611980565b6040516108c09190613ed4565b60405180910390f35b3480156108d557600080fd5b506108de6119a6565b6040516108eb9190613dbd565b60405180910390f35b34801561090057600080fd5b506109096119ac565b6040516109169190613dbd565b60405180910390f35b34801561092b57600080fd5b506109346119b2565b6040516109419190613dbd565b60405180910390f35b34801561095657600080fd5b50610971600480360381019061096c9190614142565b6119b8565b60405161097e9190613fac565b60405180910390f35b34801561099357600080fd5b5061099c6119d8565b6040516109a99190613ed4565b60405180910390f35b3480156109be57600080fd5b506109c7611a01565b6040516109d49190613e71565b60405180910390f35b3480156109e957600080fd5b506109f2611a93565b6040516109ff9190613dbd565b60405180910390f35b348015610a1457600080fd5b50610a1d611a99565b604051610a2a91906142a8565b60405180910390f35b348015610a3f57600080fd5b50610a5a6004803603810190610a559190613f51565b611abf565b604051610a679190613fac565b60405180910390f35b348015610a7c57600080fd5b50610a976004803603810190610a929190613f51565b611b8c565b604051610aa49190613fac565b60405180910390f35b348015610ab957600080fd5b50610ad46004803603810190610acf91906141c9565b611bab565b005b348015610ae257600080fd5b50610aeb611c82565b604051610af89190613dbd565b60405180910390f35b348015610b0d57600080fd5b50610b16611c88565b604051610b239190613ed4565b60405180910390f35b348015610b3857600080fd5b50610b536004803603810190610b4e91906141c9565b611cae565b005b348015610b6157600080fd5b50610b7c6004803603810190610b779190614142565b611d85565b604051610b899190613fac565b60405180910390f35b348015610b9e57600080fd5b50610bb96004803603810190610bb49190614301565b611da5565b005b348015610bc757600080fd5b50610be26004803603810190610bdd9190614354565b611ea5565b604051610bef9190613dbd565b60405180910390f35b348015610c0457600080fd5b50610c1f6004803603810190610c1a9190614394565b611f2c565b005b348015610c2d57600080fd5b50610c486004803603810190610c4391906141c9565b611fcd565b005b348015610c5657600080fd5b50610c5f6120a4565b005b348015610c6d57600080fd5b50610c766121cf565b604051610c839190613fac565b60405180910390f35b348015610c9857600080fd5b50610cb36004803603810190610cae919061416f565b6121e2565b005b348015610cc157600080fd5b50610cdc6004803603810190610cd79190614142565b61227b565b005b348015610cea57600080fd5b50610d056004803603810190610d009190614142565b612373565b005b348015610d1357600080fd5b50610d1c612433565b604051610d299190613fac565b60405180910390f35b348015610d3e57600080fd5b50610d596004803603810190610d549190614209565b612446565b005b60165481565b606060018054610d7090614403565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9c90614403565b8015610de95780601f10610dbe57610100808354040283529160200191610de9565b820191906000526020600020905b815481529060010190602001808311610dcc57829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610e2b610e24612614565b848461261c565b6001905092915050565b610e3d612614565b73ffffffffffffffffffffffffffffffffffffffff16610e5b6119d8565b73ffffffffffffffffffffffffffffffffffffffff1614610eb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea890614481565b60405180910390fd5b60005b83839050811015610f50578160116000868685818110610ed757610ed66144a1565b5b9050602002016020810190610eec9190614142565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f48906144ff565b915050610eb4565b50505050565b6000601254905090565b6000610f6d8484846127e7565b5061102f84610f7a612614565b61102a8560405180606001604052806028815260200161504a60289139600c60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610fe0612614565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132209092919063ffffffff16565b61261c565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b611066612614565b73ffffffffffffffffffffffffffffffffffffffff166110846119d8565b73ffffffffffffffffffffffffffffffffffffffff16146110da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d190614481565b60405180910390fd5b601960009054906101000a900460ff161561112a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112190614594565b60405180910390fd5b6001601960006101000a81548160ff02191690831515021790555042601781905550565b60006111c761117c7f0000000000000000000000000000000000000000000000000000000000000000611769565b6111b96111a87f000000000000000000000000000000000000000000000000000000000000dead611769565b60125461328490919063ffffffff16565b61328490919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006112b2611216612614565b846112ad85600c6000611227612614565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b690919063ffffffff16565b61261c565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b600e6020528060005260406000206000915054906101000a900460ff1681565b611304612614565b73ffffffffffffffffffffffffffffffffffffffff166113226119d8565b73ffffffffffffffffffffffffffffffffffffffff1614611378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136f90614481565b60405180910390fd5b80601960036101000a81548160ff02191690831515021790555050565b600d6020528060005260406000206000915054906101000a900460ff1681565b60095481565b6113c3612614565b73ffffffffffffffffffffffffffffffffffffffff166113e16119d8565b73ffffffffffffffffffffffffffffffffffffffff1614611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142e90614481565b60405180910390fd5b80601960046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611483612614565b73ffffffffffffffffffffffffffffffffffffffff166114a16119d8565b73ffffffffffffffffffffffffffffffffffffffff16146114f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ee90614481565b60405180910390fd5b8060148190555050565b611509612614565b73ffffffffffffffffffffffffffffffffffffffff166115276119d8565b73ffffffffffffffffffffffffffffffffffffffff161461157d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157490614481565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601960029054906101000a900460ff1681565b6115dc612614565b73ffffffffffffffffffffffffffffffffffffffff166115fa6119d8565b73ffffffffffffffffffffffffffffffffffffffff1614611650576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164790614481565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6116b3612614565b73ffffffffffffffffffffffffffffffffffffffff166116d16119d8565b73ffffffffffffffffffffffffffffffffffffffff1614611727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171e90614481565b60405180910390fd5b816007819055508060088190555061174c6008546007546125b690919063ffffffff16565b600a819055505050565b601960019054906101000a900460ff1681565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6117ba612614565b73ffffffffffffffffffffffffffffffffffffffff166117d86119d8565b73ffffffffffffffffffffffffffffffffffffffff161461182e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182590614481565b60405180910390fd5b61183860006132ce565b565b611842612614565b73ffffffffffffffffffffffffffffffffffffffff166118606119d8565b73ffffffffffffffffffffffffffffffffffffffff16146118b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ad90614481565b60405180910390fd5b8060158190555050565b6118c8612614565b73ffffffffffffffffffffffffffffffffffffffff166118e66119d8565b73ffffffffffffffffffffffffffffffffffffffff161461193c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193390614481565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b60185481565b60155481565b60106020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054611a1090614403565b80601f0160208091040260200160405190810160405280929190818152602001828054611a3c90614403565b8015611a895780601f10611a5e57610100808354040283529160200191611a89565b820191906000526020600020905b815481529060010190602001808311611a6c57829003601f168201915b5050505050905090565b600a5481565b601960049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611b82611acc612614565b84611b7d8560405180606001604052806025815260200161507260259139600c6000611af6612614565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132209092919063ffffffff16565b61261c565b6001905092915050565b6000611ba0611b99612614565b84846127e7565b506001905092915050565b611bb3612614565b73ffffffffffffffffffffffffffffffffffffffff16611bd16119d8565b73ffffffffffffffffffffffffffffffffffffffff1614611c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1e90614481565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60175481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611cb6612614565b73ffffffffffffffffffffffffffffffffffffffff16611cd46119d8565b73ffffffffffffffffffffffffffffffffffffffff1614611d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2190614481565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f6020528060005260406000206000915054906101000a900460ff1681565b611dad612614565b73ffffffffffffffffffffffffffffffffffffffff16611dcb6119d8565b73ffffffffffffffffffffffffffffffffffffffff1614611e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1890614481565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401611e5c9291906145b4565b6020604051808303816000875af1158015611e7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e9f91906145f2565b50505050565b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611f34612614565b73ffffffffffffffffffffffffffffffffffffffff16611f526119d8565b73ffffffffffffffffffffffffffffffffffffffff1614611fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9f90614481565b60405180910390fd5b81601960016101000a81548160ff021916908315150217905550806016819055505050565b611fd5612614565b73ffffffffffffffffffffffffffffffffffffffff16611ff36119d8565b73ffffffffffffffffffffffffffffffffffffffff1614612049576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204090614481565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6120ac612614565b73ffffffffffffffffffffffffffffffffffffffff166120ca6119d8565b73ffffffffffffffffffffffffffffffffffffffff1614612120576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211790614481565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff164760405161214690614650565b60006040518083038185875af1925050503d8060008114612183576040519150601f19603f3d011682016040523d82523d6000602084013e612188565b606091505b50509050806121cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c3906146b1565b60405180910390fd5b50565b601960009054906101000a900460ff1681565b6121ea612614565b73ffffffffffffffffffffffffffffffffffffffff166122086119d8565b73ffffffffffffffffffffffffffffffffffffffff161461225e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225590614481565b60405180910390fd5b80601960026101000a81548160ff02191690831515021790555050565b612283612614565b73ffffffffffffffffffffffffffffffffffffffff166122a16119d8565b73ffffffffffffffffffffffffffffffffffffffff16146122f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ee90614481565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235e90614743565b60405180910390fd5b612370816132ce565b50565b61237b612614565b73ffffffffffffffffffffffffffffffffffffffff166123996119d8565b73ffffffffffffffffffffffffffffffffffffffff16146123ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e690614481565b60405180910390fd5b80601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601960039054906101000a900460ff1681565b61244e612614565b73ffffffffffffffffffffffffffffffffffffffff1661246c6119d8565b73ffffffffffffffffffffffffffffffffffffffff16146124c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b990614481565b60405180910390fd5b81600581905550806006819055506124e76006546005546125b690919063ffffffff16565b6009819055505050565b6000808314156125045760009050612566565b600082846125129190614763565b905082848261252191906147ec565b14612561576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125589061488f565b60405180910390fd5b809150505b92915050565b60006125ae83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613392565b905092915050565b60008082846125c591906148af565b90508381101561260a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260190614951565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561268c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612683906149e3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f390614a75565b60405180910390fd5b80600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516127da9190613dbd565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284f90614b07565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128bf90614b99565b60405180910390fd5b6000821161290b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290290614c2b565b60405180910390fd5b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298f90614c97565b60405180910390fd5b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1c90614c97565b60405180910390fd5b601160003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612ab2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aa990614c97565b60405180910390fd5b601a60149054906101000a900460ff1615612ad957612ad28484846133f5565b9050613219565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b7d5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612da757601960009054906101000a900460ff16612bd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc890614d03565b60405180910390fd5b601854601754612be191906148af565b42108015612c3d5750601960049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612da6578373ffffffffffffffffffffffffffffffffffffffff16601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612cf5576001601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612da5565b8273ffffffffffffffffffffffffffffffffffffffff16601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612da4576001601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b5b5b6000612db230611769565b905060006016548210159050808015612dd85750601a60149054906101000a900460ff16155b8015612e2e5750600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612e465750601960019054906101000a900460ff165b15612e5557612e54826135c8565b5b601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612ef95750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612f115750601960029054906101000a900460ff165b15612f5c57601454841115612f5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f5290614d95565b60405180910390fd5b5b612fe5846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132209092919063ffffffff16565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006130348787613798565b61304857613043878787613903565b61304a565b845b9050601960039054906101000a900460ff1680156130b25750600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613117576015546130d5826130c789611769565b6125b690919063ffffffff16565b1115613116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161310d90614e01565b60405180910390fd5b5b61316981600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b690919063ffffffff16565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132099190613dbd565b60405180910390a3600193505050505b9392505050565b6000838311158290613268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161325f9190613e71565b60405180910390fd5b50600083856132779190614e21565b9050809150509392505050565b60006132c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613220565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080831182906133d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133d09190613e71565b60405180910390fd5b50600083856133e891906147ec565b9050809150509392505050565b6000613480826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132209092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061351582600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b690919063ffffffff16565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516135b59190613dbd565b60405180910390a3600190509392505050565b6001601a60146101000a81548160ff02191690831515021790555060006135fc600a546009546125b690919063ffffffff16565b9050600081141561360d575061377a565b60006136266007546005546125b690919063ffffffff16565b9050600047905061363684613b28565b600061364b824761328490919063ffffffff16565b905060006136748561366686856124f190919063ffffffff16565b61256c90919063ffffffff16565b9050600061368b828461328490919063ffffffff16565b9050600082111561370057600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156136fe573d6000803e3d6000fd5b505b600081111561377357600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613771573d6000803e3d6000fd5b505b5050505050505b6000601a60146101000a81548160ff02191690831515021790555050565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061383b5750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561384957600190506138fd565b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806138ea5750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156138f857600090506138fd565b600090505b92915050565b600080600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561398857613981601354613973600954866124f190919063ffffffff16565b61256c90919063ffffffff16565b9050613a07565b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613a0657613a036013546139f5600a54866124f190919063ffffffff16565b61256c90919063ffffffff16565b90505b5b6000811115613b0b57613a6281600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b690919063ffffffff16565b600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613b029190613dbd565b60405180910390a35b613b1e818461328490919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff811115613b4557613b44614e55565b5b604051908082528060200260200182016040528015613b735781602001602082028036833780820191505090505b5090503081600081518110613b8b57613b8a6144a1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613c32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c569190614e99565b81600181518110613c6a57613c696144a1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613cd130601960049054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461261c565b601960049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613d35959493929190614fbf565b600060405180830381600087803b158015613d4f57600080fd5b505af1158015613d63573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613d98929190615019565b60405180910390a15050565b6000819050919050565b613db781613da4565b82525050565b6000602082019050613dd26000830184613dae565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613e12578082015181840152602081019050613df7565b83811115613e21576000848401525b50505050565b6000601f19601f8301169050919050565b6000613e4382613dd8565b613e4d8185613de3565b9350613e5d818560208601613df4565b613e6681613e27565b840191505092915050565b60006020820190508181036000830152613e8b8184613e38565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613ebe82613e93565b9050919050565b613ece81613eb3565b82525050565b6000602082019050613ee96000830184613ec5565b92915050565b600080fd5b600080fd5b613f0281613eb3565b8114613f0d57600080fd5b50565b600081359050613f1f81613ef9565b92915050565b613f2e81613da4565b8114613f3957600080fd5b50565b600081359050613f4b81613f25565b92915050565b60008060408385031215613f6857613f67613eef565b5b6000613f7685828601613f10565b9250506020613f8785828601613f3c565b9150509250929050565b60008115159050919050565b613fa681613f91565b82525050565b6000602082019050613fc16000830184613f9d565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112613fec57613feb613fc7565b5b8235905067ffffffffffffffff81111561400957614008613fcc565b5b60208301915083602082028301111561402557614024613fd1565b5b9250929050565b61403581613f91565b811461404057600080fd5b50565b6000813590506140528161402c565b92915050565b60008060006040848603121561407157614070613eef565b5b600084013567ffffffffffffffff81111561408f5761408e613ef4565b5b61409b86828701613fd6565b935093505060206140ae86828701614043565b9150509250925092565b6000806000606084860312156140d1576140d0613eef565b5b60006140df86828701613f10565b93505060206140f086828701613f10565b925050604061410186828701613f3c565b9150509250925092565b600060ff82169050919050565b6141218161410b565b82525050565b600060208201905061413c6000830184614118565b92915050565b60006020828403121561415857614157613eef565b5b600061416684828501613f10565b91505092915050565b60006020828403121561418557614184613eef565b5b600061419384828501614043565b91505092915050565b6000602082840312156141b2576141b1613eef565b5b60006141c084828501613f3c565b91505092915050565b600080604083850312156141e0576141df613eef565b5b60006141ee85828601613f10565b92505060206141ff85828601614043565b9150509250929050565b600080604083850312156142205761421f613eef565b5b600061422e85828601613f3c565b925050602061423f85828601613f3c565b9150509250929050565b6000819050919050565b600061426e61426961426484613e93565b614249565b613e93565b9050919050565b600061428082614253565b9050919050565b600061429282614275565b9050919050565b6142a281614287565b82525050565b60006020820190506142bd6000830184614299565b92915050565b60006142ce82613eb3565b9050919050565b6142de816142c3565b81146142e957600080fd5b50565b6000813590506142fb816142d5565b92915050565b60008060006060848603121561431a57614319613eef565b5b6000614328868287016142ec565b935050602061433986828701613f10565b925050604061434a86828701613f3c565b9150509250925092565b6000806040838503121561436b5761436a613eef565b5b600061437985828601613f10565b925050602061438a85828601613f10565b9150509250929050565b600080604083850312156143ab576143aa613eef565b5b60006143b985828601614043565b92505060206143ca85828601613f3c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061441b57607f821691505b6020821081141561442f5761442e6143d4565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061446b602083613de3565b915061447682614435565b602082019050919050565b6000602082019050818103600083015261449a8161445e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061450a82613da4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561453d5761453c6144d0565b5b600182019050919050565b7f45524332303a20416c726561647920456e61626c656400000000000000000000600082015250565b600061457e601683613de3565b915061458982614548565b602082019050919050565b600060208201905081810360008301526145ad81614571565b9050919050565b60006040820190506145c96000830185613ec5565b6145d66020830184613dae565b9392505050565b6000815190506145ec8161402c565b92915050565b60006020828403121561460857614607613eef565b5b6000614616848285016145dd565b91505092915050565b600081905092915050565b50565b600061463a60008361461f565b91506146458261462a565b600082019050919050565b600061465b8261462d565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b600061469b601483613de3565b91506146a682614665565b602082019050919050565b600060208201905081810360008301526146ca8161468e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061472d602683613de3565b9150614738826146d1565b604082019050919050565b6000602082019050818103600083015261475c81614720565b9050919050565b600061476e82613da4565b915061477983613da4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156147b2576147b16144d0565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006147f782613da4565b915061480283613da4565b925082614812576148116147bd565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614879602183613de3565b91506148848261481d565b604082019050919050565b600060208201905081810360008301526148a88161486c565b9050919050565b60006148ba82613da4565b91506148c583613da4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156148fa576148f96144d0565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061493b601b83613de3565b915061494682614905565b602082019050919050565b6000602082019050818103600083015261496a8161492e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006149cd602483613de3565b91506149d882614971565b604082019050919050565b600060208201905081810360008301526149fc816149c0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a5f602283613de3565b9150614a6a82614a03565b604082019050919050565b60006020820190508181036000830152614a8e81614a52565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614af1602583613de3565b9150614afc82614a95565b604082019050919050565b60006020820190508181036000830152614b2081614ae4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614b83602383613de3565b9150614b8e82614b27565b604082019050919050565b60006020820190508181036000830152614bb281614b76565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614c15602983613de3565b9150614c2082614bb9565b604082019050919050565b60006020820190508181036000830152614c4481614c08565b9050919050565b7f45524332303a20426f7420646574656374656400000000000000000000000000600082015250565b6000614c81601383613de3565b9150614c8c82614c4b565b602082019050919050565b60006020820190508181036000830152614cb081614c74565b9050919050565b7f45524332303a2074726164696e67206e6f7420656e61626c6520796574000000600082015250565b6000614ced601d83613de3565b9150614cf882614cb7565b602082019050919050565b60006020820190508181036000830152614d1c81614ce0565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000614d7f602883613de3565b9150614d8a82614d23565b604082019050919050565b60006020820190508181036000830152614dae81614d72565b9050919050565b7f4d61782057616c6c6574204c696d697420457863656564656421210000000000600082015250565b6000614deb601b83613de3565b9150614df682614db5565b602082019050919050565b60006020820190508181036000830152614e1a81614dde565b9050919050565b6000614e2c82613da4565b9150614e3783613da4565b925082821015614e4a57614e496144d0565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050614e9381613ef9565b92915050565b600060208284031215614eaf57614eae613eef565b5b6000614ebd84828501614e84565b91505092915050565b6000819050919050565b6000614eeb614ee6614ee184614ec6565b614249565b613da4565b9050919050565b614efb81614ed0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614f3681613eb3565b82525050565b6000614f488383614f2d565b60208301905092915050565b6000602082019050919050565b6000614f6c82614f01565b614f768185614f0c565b9350614f8183614f1d565b8060005b83811015614fb2578151614f998882614f3c565b9750614fa483614f54565b925050600181019050614f85565b5085935050505092915050565b600060a082019050614fd46000830188613dae565b614fe16020830187614ef2565b8181036040830152614ff38186614f61565b90506150026060830185613ec5565b61500f6080830184613dae565b9695505050505050565b600060408201905061502e6000830185613dae565b81810360208301526150408184614f61565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202d6776c3df157b74159da8ea862c60a3f75f4fd1d941b596088733e77ebd336364736f6c634300080a0033

Deployed Bytecode Sourcemap

4807:14390:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6208:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8526:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5151:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9864:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16894:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8803:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10638:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5063:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16326:169;;;;;;;;;;;;;:::i;:::-;;9197:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8712:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6556:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9361:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5906:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5740:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17681:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5683:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5487:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18976:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18302:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18415:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6435:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17924:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17350:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6398:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8911:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1884:94;;;;;;;;;;;;;:::i;:::-;;18188:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18537:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5241:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6058:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6303:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6135:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5851:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1575:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8617;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5520:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6518:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9587:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10463:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18060:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6270:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5291:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18663:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5792:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16754:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9042:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18790:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17794:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16536:178;;;;;;;;;;;;;:::i;:::-;;6369:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17575:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1986:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19099:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6474:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17131:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6208:53;;;;:::o;8526:83::-;8563:13;8596:5;8589:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8526:83;:::o;5151:81::-;;;:::o;9864:161::-;9939:4;9956:39;9965:12;:10;:12::i;:::-;9979:7;9988:6;9956:8;:39::i;:::-;10013:4;10006:11;;9864:161;;;;:::o;16894:225::-;1807:12;:10;:12::i;:::-;1796:23;;:7;:5;:7::i;:::-;:23;;;1788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17018:9:::1;17013:99;17037:8;;:15;;17033:1;:19;17013:99;;;17095:5;17074;:18;17080:8;;17089:1;17080:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17074:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;17054:3;;;;;:::i;:::-;;;;17013:99;;;;16894:225:::0;;;:::o;8803:100::-;8856:7;8883:12;;8876:19;;8803:100;:::o;10638:313::-;10736:4;10753:36;10763:6;10771:9;10782:6;10753:9;:36::i;:::-;;10800:121;10809:6;10817:12;:10;:12::i;:::-;10831:89;10869:6;10831:89;;;;;;;;;;;;;;;;;:11;:19;10843:6;10831:19;;;;;;;;;;;;;;;:33;10851:12;:10;:12::i;:::-;10831:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;10800:8;:121::i;:::-;10939:4;10932:11;;10638:313;;;;;:::o;5063:81::-;;;:::o;16326:169::-;1807:12;:10;:12::i;:::-;1796:23;;:7;:5;:7::i;:::-;:23;;;1788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16389:7:::1;;;;;;;;;;;16388:8;16380:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;16444:4;16434:7;;:14;;;;;;;;;;;;;;;;;;16472:15;16459:10;:28;;;;16326:169::o:0;9197:156::-;9250:7;9277:68;9322:22;9332:11;9322:9;:22::i;:::-;9277:40;9294:22;9304:11;9294:9;:22::i;:::-;9277:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;9270:75;;9197:156;:::o;8712:83::-;8753:5;8778:9;;;;;;;;;;;8771:16;;8712:83;:::o;6556:22::-;;;;;;;;;;;;;:::o;9361:218::-;9449:4;9466:83;9475:12;:10;:12::i;:::-;9489:7;9498:50;9537:10;9498:11;:25;9510:12;:10;:12::i;:::-;9498:25;;;;;;;;;;;;;;;:34;9524:7;9498:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;9466:8;:83::i;:::-;9567:4;9560:11;;9361:218;;;;:::o;5906:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;5740:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;17681:105::-;1807:12;:10;:12::i;:::-;1796:23;;:7;:5;:7::i;:::-;:23;;;1788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17771:7:::1;17752:16;;:26;;;;;;;;;;;;;;;;;;17681:105:::0;:::o;5683:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;5487:26::-;;;;:::o;18976:115::-;1807:12;:10;:12::i;:::-;1796:23;;:7;:5;:7::i;:::-;:23;;;1788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19075:7:::1;19048:9;;:35;;;;;;;;;;;;;;;;;;18976:115:::0;:::o;18302:101::-;1807:12;:10;:12::i;:::-;1796:23;;:7;:5;:7::i;:::-;:23;;;1788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18387:8:::1;18372:12;:23;;;;18302:101:::0;:::o;18415:114::-;1807:12;:10;:12::i;:::-;1796:23;;:7;:5;:7::i;:::-;:23;;;1788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18511:10:::1;18493:15;;:28;;;;;;;;;;;;;;;;;;18415:114:::0;:::o;6435:32::-;;;;;;;;;;;;;:::o;17924:128::-;1807:12;:10;:12::i;:::-;1796:23;;:7;:5;:7::i;:::-;:23;;;1788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18037:7:::1;18009:19;:25;18029:4;18009:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;17924:128:::0;;:::o;17350:217::-;1807:12;:10;:12::i;:::-;1796:23;;:7;:5;:7::i;:::-;:23;;;1788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17454:13:::1;17434:17;:33;;;;17492:7;17478:11;:21;;;;17525:34;17547:11;;17525:17;;:21;;:34;;;;:::i;:::-;17510:12;:49;;;;17350:217:::0;;:::o;6398:30::-;;;;;;;;;;;;;:::o;8911:123::-;8977:7;9003:9;:18;9013:7;9003:18;;;;;;;;;;;;;;;;8996:25;;8911:123;;;:::o;1884:94::-;1807:12;:10;:12::i;:::-;1796:23;;:7;:5;:7::i;:::-;:23;;;1788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1949:21:::1;1967:1;1949:9;:21::i;:::-;1884:94::o:0;18188:106::-;1807:12;:10;:12::i;:::-;1796:23;;:7;:5;:7::i;:::-;:23;;;1788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18278:8:::1;18265:10;:21;;;;18188:106:::0;:::o;18537:118::-;1807:12;:10;:12::i;:::-;1796:23;;:7;:5;:7::i;:::-;:23;;;1788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18637:10:::1;18617:17;;:30;;;;;;;;;;;;;;;;;;18537:118:::0;:::o;5241:43::-;;;;;;;;;;;;;:::o;6058:61::-;;;;:::o;6303:38::-;;;;:::o;6135:58::-;;;;:::o;5851:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;1575:87::-;1621:7;1648:6;;;;;;;;;;;1641:13;;1575:87;:::o;8617:::-;8656:13;8689:7;8682:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8617:87;:::o;5520:27::-;;;;:::o;6518:31::-;;;;;;;;;;;;;:::o;9587:269::-;9680:4;9697:129;9706:12;:10;:12::i;:::-;9720:7;9729:96;9768:15;9729:96;;;;;;;;;;;;;;;;;:11;:25;9741:12;:10;:12::i;:::-;9729:25;;;;;;;;;;;;;;;:34;9755:7;9729:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;9697:8;:129::i;:::-;9844:4;9837:11;;9587:269;;;;:::o;10463:167::-;10541:4;10558:42;10568:12;:10;:12::i;:::-;10582:9;10593:6;10558:9;:42::i;:::-;;10618:4;10611:11;;10463:167;;;;:::o;18060:120::-;1807:12;:10;:12::i;:::-;1796:23;;:7;:5;:7::i;:::-;:23;;;1788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18165:7:::1;18141:15;:21;18157:4;18141:21;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;18060:120:::0;;:::o;6270:25::-;;;;:::o;5291:45::-;;;;;;;;;;;;;:::o;18663:119::-;1807:12;:10;:12::i;:::-;1796:23;;:7;:5;:7::i;:::-;:23;;;1788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18767:7:::1;18745:12;:19;18758:5;18745:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;18663:119:::0;;:::o;5792:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;16754:132::-;1807:12;:10;:12::i;:::-;1796:23;;:7;:5;:7::i;:::-;:23;;;1788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16848:3:::1;:12;;;16861:9;16871:6;16848:30;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16754:132:::0;;;:::o;9042:143::-;9123:7;9150:11;:18;9162:5;9150:18;;;;;;;;;;;;;;;:27;9169:7;9150:27;;;;;;;;;;;;;;;;9143:34;;9042:143;;;;:::o;18790:178::-;1807:12;:10;:12::i;:::-;1796:23;;:7;:5;:7::i;:::-;:23;;;1788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18918:8:::1;18904:11;;:22;;;;;;;;;;;;;;;;;;18953:7;18937:13;:23;;;;18790:178:::0;;:::o;17794:122::-;1807:12;:10;:12::i;:::-;1796:23;;:7;:5;:7::i;:::-;:23;;;1788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17901:7:::1;17875:17;:23;17893:4;17875:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;17794:122:::0;;:::o;16536:178::-;1807:12;:10;:12::i;:::-;1796:23;;:7;:5;:7::i;:::-;:23;;;1788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16591:7:::1;16611:10;16603:24;;16635:21;16603:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16590:71;;;16680:2;16672:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;16578:136;16536:178::o:0;6369:19::-;;;;;;;;;;;;;:::o;17575:98::-;1807:12;:10;:12::i;:::-;1796:23;;:7;:5;:7::i;:::-;:23;;;1788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17658:7:::1;17642:13;;:23;;;;;;;;;;;;;;;;;;17575:98:::0;:::o;1986:229::-;1807:12;:10;:12::i;:::-;1796:23;;:7;:5;:7::i;:::-;:23;;;1788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2109:1:::1;2089:22;;:8;:22;;;;2067:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;2188:19;2198:8;2188:9;:19::i;:::-;1986:229:::0;:::o;19099:91::-;1807:12;:10;:12::i;:::-;1796:23;;:7;:5;:7::i;:::-;:23;;;1788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19177:5:::1;19167:7;;:15;;;;;;;;;;;;;;;;;;19099:91:::0;:::o;6474:35::-;;;;;;;;;;;;;:::o;17131:211::-;1807:12;:10;:12::i;:::-;1796:23;;:7;:5;:7::i;:::-;:23;;;1788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17233:13:::1;17214:16;:32;;;;17270:7;17257:10;:20;;;;17302:32;17323:10;;17302:16;;:20;;:32;;;;:::i;:::-;17288:11;:46;;;;17131:211:::0;;:::o;2962:250::-;3020:7;3049:1;3044;:6;3040:47;;;3074:1;3067:8;;;;3040:47;3099:9;3115:1;3111;:5;;;;:::i;:::-;3099:17;;3144:1;3139;3135;:5;;;;:::i;:::-;:10;3127:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3203:1;3196:8;;;2962:250;;;;;:::o;3220:132::-;3278:7;3305:39;3309:1;3312;3305:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3298:46;;3220:132;;;;:::o;2429:181::-;2487:7;2507:9;2523:1;2519;:5;;;;:::i;:::-;2507:17;;2548:1;2543;:6;;2535:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2601:1;2594:8;;;2429:181;;;;:::o;142:98::-;195:7;222:10;215:17;;142:98;:::o;10033:337::-;10143:1;10126:19;;:5;:19;;;;10118:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10224:1;10205:21;;:7;:21;;;;10197:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10308:6;10278:11;:18;10290:5;10278:18;;;;;;;;;;;;;;;:27;10297:7;10278:27;;;;;;;;;;;;;;;:36;;;;10346:7;10330:32;;10339:5;10330:32;;;10355:6;10330:32;;;;;;:::i;:::-;;;;;;;;10033:337;;;:::o;10959:2342::-;11046:4;11091:1;11073:20;;:6;:20;;;;11065:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11175:1;11154:23;;:9;:23;;;;11146:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11245:1;11236:6;:10;11228:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11322:5;:13;11328:6;11322:13;;;;;;;;;;;;;;;;;;;;;;;;;11321:14;11313:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;11379:5;:17;11385:10;11379:17;;;;;;;;;;;;;;;;;;;;;;;;;11378:18;11370:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11440:5;:16;11446:9;11440:16;;;;;;;;;;;;;;;;;;;;;;;;;11439:17;11431:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;11497:6;;;;;;;;;;;11493:1799;;;11527:41;11542:6;11550:9;11561:6;11527:14;:41::i;:::-;11520:48;;;;11493:1799;11617:17;:25;11635:6;11617:25;;;;;;;;;;;;;;;;;;;;;;;;;11616:26;:59;;;;;11647:17;:28;11665:9;11647:28;;;;;;;;;;;;;;;;;;;;;;;;;11646:29;11616:59;11612:552;;;11704:7;;;;;;;;;;;11696:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;11823:11;;11810:10;;:24;;;;:::i;:::-;11792:15;:42;:95;;;;;11877:9;;;;;;;;;;;11859:28;;:6;:28;;;;11792:95;11766:383;;;11945:6;11934:17;;:7;;;;;;;;;;;:17;;;11930:200;;;11999:4;11980:5;:16;11986:9;11980:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11930:200;;;12048:9;12037:20;;:7;;;;;;;;;;;:20;;;12033:97;;;12102:4;12086:5;:13;12092:6;12086:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;12033:97;11930:200;11766:383;11612:552;12180:28;12211:24;12229:4;12211:9;:24::i;:::-;12180:55;;12250:28;12305:13;;12281:20;:37;;12250:68;;12339:23;:34;;;;;12367:6;;;;;;;;;;;12366:7;12339:34;:59;;;;;12378:12;:20;12391:6;12378:20;;;;;;;;;;;;;;;;;;;;;;;;;12377:21;12339:59;:74;;;;;12402:11;;;;;;;;;;;12339:74;12335:145;;;12434:30;12443:20;12434:8;:30::i;:::-;12335:145;12512:15;:23;12528:6;12512:23;;;;;;;;;;;;;;;;;;;;;;;;;12511:24;:55;;;;;12540:15;:26;12556:9;12540:26;;;;;;;;;;;;;;;;;;;;;;;;;12539:27;12511:55;:72;;;;;12570:13;;;;;;;;;;;12511:72;12508:187;;;12622:12;;12612:6;:22;;12604:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;12508:187;12744:53;12766:6;12744:53;;;;;;;;;;;;;;;;;:9;:17;12754:6;12744:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;12724:9;:17;12734:6;12724:17;;;;;;;;;;;;;;;:73;;;;12814:19;12836:34;12853:6;12860:9;12836:16;:34::i;:::-;:80;;12882:34;12890:6;12898:9;12909:6;12882:7;:34::i;:::-;12836:80;;;12873:6;12836:80;12814:102;;12936:16;;;;;;;;;;;:51;;;;;12957:19;:30;12977:9;12957:30;;;;;;;;;;;;;;;;;;;;;;;;;12956:31;12936:51;12933:181;;;13057:10;;13016:37;13041:11;13016:20;13026:9;13016;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;13008:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;12933:181;13153:37;13178:11;13153:9;:20;13163:9;13153:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;13130:9;:20;13140:9;13130:20;;;;;;;;;;;;;;;:60;;;;13229:9;13212:40;;13221:6;13212:40;;;13240:11;13212:40;;;;;;:::i;:::-;;;;;;;;13274:4;13267:11;;;;;10959:2342;;;;;;:::o;2762:192::-;2848:7;2881:1;2876;:6;;2884:12;2868:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2908:9;2924:1;2920;:5;;;;:::i;:::-;2908:17;;2945:1;2938:8;;;2762:192;;;;;:::o;2618:136::-;2676:7;2703:43;2707:1;2710;2703:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2696:50;;2618:136;;;;:::o;2223:173::-;2279:16;2298:6;;;;;;;;;;;2279:25;;2324:8;2315:6;;:17;;;;;;;;;;;;;;;;;;2379:8;2348:40;;2369:8;2348:40;;;;;;;;;;;;2268:128;2223:173;:::o;3360:278::-;3446:7;3478:1;3474;:5;3481:12;3466:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3505:9;3521:1;3517;:5;;;;:::i;:::-;3505:17;;3629:1;3622:8;;;3360:278;;;;;:::o;13309:330::-;13402:4;13439:53;13461:6;13439:53;;;;;;;;;;;;;;;;;:9;:17;13449:6;13439:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;13419:9;:17;13429:6;13419:17;;;;;;;;;;;;;;;:73;;;;13526:32;13551:6;13526:9;:20;13536:9;13526:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;13503:9;:20;13513:9;13503:20;;;;;;;;;;;;;;;:55;;;;13591:9;13574:35;;13583:6;13574:35;;;13602:6;13574:35;;;;;;:::i;:::-;;;;;;;;13627:4;13620:11;;13309:330;;;;;:::o;14747:915::-;6651:4;6642:6;;:13;;;;;;;;;;;;;;;;;;14818:19:::1;14840:29;14856:12;;14840:11;;:15;;:29;;;;:::i;:::-;14818:51;;14900:1;14885:11;:16;14882:28;;;14903:7;;;14882:28;14922:23;14948:39;14969:17;;14948:16;;:20;;:39;;;;:::i;:::-;14922:65;;15061:22;15086:21;15061:46;;15118:33;15135:15;15118:16;:33::i;:::-;15162:22;15187:41;15213:14;15187:21;:25;;:41;;;;:::i;:::-;15162:66;;15249:26;15278:52;15318:11;15278:35;15297:15;15278:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;15249:81;;15341:28;15372:38;15391:18;15372:14;:18;;:38;;;;:::i;:::-;15341:69;;15447:1;15426:18;:22;15423:107;;;15473:15;;;;;;;;;;;15465:33;;:53;15499:18;15465:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;15423:107;15566:1;15543:20;:24;15540:113;;;15592:17;;;;;;;;;;;15584:35;;:57;15620:20;15584:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;15540:113;14805:857;;;;;;6666:1;6687:5:::0;6678:6;;:14;;;;;;;;;;;;;;;;;;14747:915;:::o;13651:369::-;13735:4;13755:17;:25;13773:6;13755:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;13784:17;:28;13802:9;13784:28;;;;;;;;;;;;;;;;;;;;;;;;;13755:57;13752:261;;;13836:4;13829:11;;;;13752:261;13871:12;:20;13884:6;13871:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;13895:12;:23;13908:9;13895:23;;;;;;;;;;;;;;;;;;;;;;;;;13871:47;13867:146;;;13942:5;13935:12;;;;13867:146;13996:5;13989:12;;13651:369;;;;;:::o;14028:711::-;14114:7;14144:14;14201:12;:20;14214:6;14201:20;;;;;;;;;;;;;;;;;;;;;;;;;14198:267;;;14260:43;14288:14;;14260:23;14271:11;;14260:6;:10;;:23;;;;:::i;:::-;:27;;:43;;;;:::i;:::-;14248:55;;14198:267;;;14342:12;:23;14355:9;14342:23;;;;;;;;;;;;;;;;;;;;;;;;;14339:126;;;14405:44;14434:14;;14405:24;14416:12;;14405:6;:10;;:24;;;;:::i;:::-;:28;;:44;;;;:::i;:::-;14393:56;;14339:126;14198:267;14496:1;14484:9;:13;14481:185;;;14545:39;14574:9;14545;:24;14563:4;14545:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;14518:9;:24;14536:4;14518:24;;;;;;;;;;;;;;;:66;;;;14633:4;14608:42;;14617:6;14608:42;;;14640:9;14608:42;;;;;;:::i;:::-;;;;;;;;14481:185;14689:21;14700:9;14689:6;:10;;:21;;;;:::i;:::-;14682:28;;;14028:711;;;;;:::o;15670:648::-;15796:21;15834:1;15820:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15796:40;;15865:4;15847;15852:1;15847:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;15891:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15881:4;15886:1;15881:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;15920:56;15937:4;15952:9;;;;;;;;;;;15964:11;15920:8;:56::i;:::-;16015:9;;;;;;;;;;;:60;;;16090:11;16116:1;16160:4;16187;16223:15;16015:234;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16275:35;16292:11;16305:4;16275:35;;;;;;;:::i;:::-;;;;;;;;15725:593;15670:648;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1832:126::-;1869:7;1909:42;1902:5;1898:54;1887:65;;1832:126;;;:::o;1964:96::-;2001:7;2030:24;2048:5;2030:24;:::i;:::-;2019:35;;1964:96;;;:::o;2066:118::-;2153:24;2171:5;2153:24;:::i;:::-;2148:3;2141:37;2066:118;;:::o;2190:222::-;2283:4;2321:2;2310:9;2306:18;2298:26;;2334:71;2402:1;2391:9;2387:17;2378:6;2334:71;:::i;:::-;2190:222;;;;:::o;2499:117::-;2608:1;2605;2598:12;2622:117;2731:1;2728;2721:12;2745:122;2818:24;2836:5;2818:24;:::i;:::-;2811:5;2808:35;2798:63;;2857:1;2854;2847:12;2798:63;2745:122;:::o;2873:139::-;2919:5;2957:6;2944:20;2935:29;;2973:33;3000:5;2973:33;:::i;:::-;2873:139;;;;:::o;3018:122::-;3091:24;3109:5;3091:24;:::i;:::-;3084:5;3081:35;3071:63;;3130:1;3127;3120:12;3071:63;3018:122;:::o;3146:139::-;3192:5;3230:6;3217:20;3208:29;;3246:33;3273:5;3246:33;:::i;:::-;3146:139;;;;:::o;3291:474::-;3359:6;3367;3416:2;3404:9;3395:7;3391:23;3387:32;3384:119;;;3422:79;;:::i;:::-;3384:119;3542:1;3567:53;3612:7;3603:6;3592:9;3588:22;3567:53;:::i;:::-;3557:63;;3513:117;3669:2;3695:53;3740:7;3731:6;3720:9;3716:22;3695:53;:::i;:::-;3685:63;;3640:118;3291:474;;;;;:::o;3771:90::-;3805:7;3848:5;3841:13;3834:21;3823:32;;3771:90;;;:::o;3867:109::-;3948:21;3963:5;3948:21;:::i;:::-;3943:3;3936:34;3867:109;;:::o;3982:210::-;4069:4;4107:2;4096:9;4092:18;4084:26;;4120:65;4182:1;4171:9;4167:17;4158:6;4120:65;:::i;:::-;3982:210;;;;:::o;4198:117::-;4307:1;4304;4297:12;4321:117;4430:1;4427;4420:12;4444:117;4553:1;4550;4543:12;4584:568;4657:8;4667:6;4717:3;4710:4;4702:6;4698:17;4694:27;4684:122;;4725:79;;:::i;:::-;4684:122;4838:6;4825:20;4815:30;;4868:18;4860:6;4857:30;4854:117;;;4890:79;;:::i;:::-;4854:117;5004:4;4996:6;4992:17;4980:29;;5058:3;5050:4;5042:6;5038:17;5028:8;5024:32;5021:41;5018:128;;;5065:79;;:::i;:::-;5018:128;4584:568;;;;;:::o;5158:116::-;5228:21;5243:5;5228:21;:::i;:::-;5221:5;5218:32;5208:60;;5264:1;5261;5254:12;5208:60;5158:116;:::o;5280:133::-;5323:5;5361:6;5348:20;5339:29;;5377:30;5401:5;5377:30;:::i;:::-;5280:133;;;;:::o;5419:698::-;5511:6;5519;5527;5576:2;5564:9;5555:7;5551:23;5547:32;5544:119;;;5582:79;;:::i;:::-;5544:119;5730:1;5719:9;5715:17;5702:31;5760:18;5752:6;5749:30;5746:117;;;5782:79;;:::i;:::-;5746:117;5895:80;5967:7;5958:6;5947:9;5943:22;5895:80;:::i;:::-;5877:98;;;;5673:312;6024:2;6050:50;6092:7;6083:6;6072:9;6068:22;6050:50;:::i;:::-;6040:60;;5995:115;5419:698;;;;;:::o;6123:619::-;6200:6;6208;6216;6265:2;6253:9;6244:7;6240:23;6236:32;6233:119;;;6271:79;;:::i;:::-;6233:119;6391:1;6416:53;6461:7;6452:6;6441:9;6437:22;6416:53;:::i;:::-;6406:63;;6362:117;6518:2;6544:53;6589:7;6580:6;6569:9;6565:22;6544:53;:::i;:::-;6534:63;;6489:118;6646:2;6672:53;6717:7;6708:6;6697:9;6693:22;6672:53;:::i;:::-;6662:63;;6617:118;6123:619;;;;;:::o;6748:86::-;6783:7;6823:4;6816:5;6812:16;6801:27;;6748:86;;;:::o;6840:112::-;6923:22;6939:5;6923:22;:::i;:::-;6918:3;6911:35;6840:112;;:::o;6958:214::-;7047:4;7085:2;7074:9;7070:18;7062:26;;7098:67;7162:1;7151:9;7147:17;7138:6;7098:67;:::i;:::-;6958:214;;;;:::o;7178:329::-;7237:6;7286:2;7274:9;7265:7;7261:23;7257:32;7254:119;;;7292:79;;:::i;:::-;7254:119;7412:1;7437:53;7482:7;7473:6;7462:9;7458:22;7437:53;:::i;:::-;7427:63;;7383:117;7178:329;;;;:::o;7513:323::-;7569:6;7618:2;7606:9;7597:7;7593:23;7589:32;7586:119;;;7624:79;;:::i;:::-;7586:119;7744:1;7769:50;7811:7;7802:6;7791:9;7787:22;7769:50;:::i;:::-;7759:60;;7715:114;7513:323;;;;:::o;7842:329::-;7901:6;7950:2;7938:9;7929:7;7925:23;7921:32;7918:119;;;7956:79;;:::i;:::-;7918:119;8076:1;8101:53;8146:7;8137:6;8126:9;8122:22;8101:53;:::i;:::-;8091:63;;8047:117;7842:329;;;;:::o;8177:468::-;8242:6;8250;8299:2;8287:9;8278:7;8274:23;8270:32;8267:119;;;8305:79;;:::i;:::-;8267:119;8425:1;8450:53;8495:7;8486:6;8475:9;8471:22;8450:53;:::i;:::-;8440:63;;8396:117;8552:2;8578:50;8620:7;8611:6;8600:9;8596:22;8578:50;:::i;:::-;8568:60;;8523:115;8177:468;;;;;:::o;8651:474::-;8719:6;8727;8776:2;8764:9;8755:7;8751:23;8747:32;8744:119;;;8782:79;;:::i;:::-;8744:119;8902:1;8927:53;8972:7;8963:6;8952:9;8948:22;8927:53;:::i;:::-;8917:63;;8873:117;9029:2;9055:53;9100:7;9091:6;9080:9;9076:22;9055:53;:::i;:::-;9045:63;;9000:118;8651:474;;;;;:::o;9131:60::-;9159:3;9180:5;9173:12;;9131:60;;;:::o;9197:142::-;9247:9;9280:53;9298:34;9307:24;9325:5;9307:24;:::i;:::-;9298:34;:::i;:::-;9280:53;:::i;:::-;9267:66;;9197:142;;;:::o;9345:126::-;9395:9;9428:37;9459:5;9428:37;:::i;:::-;9415:50;;9345:126;;;:::o;9477:148::-;9549:9;9582:37;9613:5;9582:37;:::i;:::-;9569:50;;9477:148;;;:::o;9631:175::-;9740:59;9793:5;9740:59;:::i;:::-;9735:3;9728:72;9631:175;;:::o;9812:266::-;9927:4;9965:2;9954:9;9950:18;9942:26;;9978:93;10068:1;10057:9;10053:17;10044:6;9978:93;:::i;:::-;9812:266;;;;:::o;10084:109::-;10134:7;10163:24;10181:5;10163:24;:::i;:::-;10152:35;;10084:109;;;:::o;10199:148::-;10285:37;10316:5;10285:37;:::i;:::-;10278:5;10275:48;10265:76;;10337:1;10334;10327:12;10265:76;10199:148;:::o;10353:165::-;10412:5;10450:6;10437:20;10428:29;;10466:46;10506:5;10466:46;:::i;:::-;10353:165;;;;:::o;10524:645::-;10614:6;10622;10630;10679:2;10667:9;10658:7;10654:23;10650:32;10647:119;;;10685:79;;:::i;:::-;10647:119;10805:1;10830:66;10888:7;10879:6;10868:9;10864:22;10830:66;:::i;:::-;10820:76;;10776:130;10945:2;10971:53;11016:7;11007:6;10996:9;10992:22;10971:53;:::i;:::-;10961:63;;10916:118;11073:2;11099:53;11144:7;11135:6;11124:9;11120:22;11099:53;:::i;:::-;11089:63;;11044:118;10524:645;;;;;:::o;11175:474::-;11243:6;11251;11300:2;11288:9;11279:7;11275:23;11271:32;11268:119;;;11306:79;;:::i;:::-;11268:119;11426:1;11451:53;11496:7;11487:6;11476:9;11472:22;11451:53;:::i;:::-;11441:63;;11397:117;11553:2;11579:53;11624:7;11615:6;11604:9;11600:22;11579:53;:::i;:::-;11569:63;;11524:118;11175:474;;;;;:::o;11655:468::-;11720:6;11728;11777:2;11765:9;11756:7;11752:23;11748:32;11745:119;;;11783:79;;:::i;:::-;11745:119;11903:1;11928:50;11970:7;11961:6;11950:9;11946:22;11928:50;:::i;:::-;11918:60;;11874:114;12027:2;12053:53;12098:7;12089:6;12078:9;12074:22;12053:53;:::i;:::-;12043:63;;11998:118;11655:468;;;;;:::o;12129:180::-;12177:77;12174:1;12167:88;12274:4;12271:1;12264:15;12298:4;12295:1;12288:15;12315:320;12359:6;12396:1;12390:4;12386:12;12376:22;;12443:1;12437:4;12433:12;12464:18;12454:81;;12520:4;12512:6;12508:17;12498:27;;12454:81;12582:2;12574:6;12571:14;12551:18;12548:38;12545:84;;;12601:18;;:::i;:::-;12545:84;12366:269;12315:320;;;:::o;12641:182::-;12781:34;12777:1;12769:6;12765:14;12758:58;12641:182;:::o;12829:366::-;12971:3;12992:67;13056:2;13051:3;12992:67;:::i;:::-;12985:74;;13068:93;13157:3;13068:93;:::i;:::-;13186:2;13181:3;13177:12;13170:19;;12829:366;;;:::o;13201:419::-;13367:4;13405:2;13394:9;13390:18;13382:26;;13454:9;13448:4;13444:20;13440:1;13429:9;13425:17;13418:47;13482:131;13608:4;13482:131;:::i;:::-;13474:139;;13201:419;;;:::o;13626:180::-;13674:77;13671:1;13664:88;13771:4;13768:1;13761:15;13795:4;13792:1;13785:15;13812:180;13860:77;13857:1;13850:88;13957:4;13954:1;13947:15;13981:4;13978:1;13971:15;13998:233;14037:3;14060:24;14078:5;14060:24;:::i;:::-;14051:33;;14106:66;14099:5;14096:77;14093:103;;;14176:18;;:::i;:::-;14093:103;14223:1;14216:5;14212:13;14205:20;;13998:233;;;:::o;14237:172::-;14377:24;14373:1;14365:6;14361:14;14354:48;14237:172;:::o;14415:366::-;14557:3;14578:67;14642:2;14637:3;14578:67;:::i;:::-;14571:74;;14654:93;14743:3;14654:93;:::i;:::-;14772:2;14767:3;14763:12;14756:19;;14415:366;;;:::o;14787:419::-;14953:4;14991:2;14980:9;14976:18;14968:26;;15040:9;15034:4;15030:20;15026:1;15015:9;15011:17;15004:47;15068:131;15194:4;15068:131;:::i;:::-;15060:139;;14787:419;;;:::o;15212:332::-;15333:4;15371:2;15360:9;15356:18;15348:26;;15384:71;15452:1;15441:9;15437:17;15428:6;15384:71;:::i;:::-;15465:72;15533:2;15522:9;15518:18;15509:6;15465:72;:::i;:::-;15212:332;;;;;:::o;15550:137::-;15604:5;15635:6;15629:13;15620:22;;15651:30;15675:5;15651:30;:::i;:::-;15550:137;;;;:::o;15693:345::-;15760:6;15809:2;15797:9;15788:7;15784:23;15780:32;15777:119;;;15815:79;;:::i;:::-;15777:119;15935:1;15960:61;16013:7;16004:6;15993:9;15989:22;15960:61;:::i;:::-;15950:71;;15906:125;15693:345;;;;:::o;16044:147::-;16145:11;16182:3;16167:18;;16044:147;;;;:::o;16197:114::-;;:::o;16317:398::-;16476:3;16497:83;16578:1;16573:3;16497:83;:::i;:::-;16490:90;;16589:93;16678:3;16589:93;:::i;:::-;16707:1;16702:3;16698:11;16691:18;;16317:398;;;:::o;16721:379::-;16905:3;16927:147;17070:3;16927:147;:::i;:::-;16920:154;;17091:3;17084:10;;16721:379;;;:::o;17106:170::-;17246:22;17242:1;17234:6;17230:14;17223:46;17106:170;:::o;17282:366::-;17424:3;17445:67;17509:2;17504:3;17445:67;:::i;:::-;17438:74;;17521:93;17610:3;17521:93;:::i;:::-;17639:2;17634:3;17630:12;17623:19;;17282:366;;;:::o;17654:419::-;17820:4;17858:2;17847:9;17843:18;17835:26;;17907:9;17901:4;17897:20;17893:1;17882:9;17878:17;17871:47;17935:131;18061:4;17935:131;:::i;:::-;17927:139;;17654:419;;;:::o;18079:225::-;18219:34;18215:1;18207:6;18203:14;18196:58;18288:8;18283:2;18275:6;18271:15;18264:33;18079:225;:::o;18310:366::-;18452:3;18473:67;18537:2;18532:3;18473:67;:::i;:::-;18466:74;;18549:93;18638:3;18549:93;:::i;:::-;18667:2;18662:3;18658:12;18651:19;;18310:366;;;:::o;18682:419::-;18848:4;18886:2;18875:9;18871:18;18863:26;;18935:9;18929:4;18925:20;18921:1;18910:9;18906:17;18899:47;18963:131;19089:4;18963:131;:::i;:::-;18955:139;;18682:419;;;:::o;19107:348::-;19147:7;19170:20;19188:1;19170:20;:::i;:::-;19165:25;;19204:20;19222:1;19204:20;:::i;:::-;19199:25;;19392:1;19324:66;19320:74;19317:1;19314:81;19309:1;19302:9;19295:17;19291:105;19288:131;;;19399:18;;:::i;:::-;19288:131;19447:1;19444;19440:9;19429:20;;19107:348;;;;:::o;19461:180::-;19509:77;19506:1;19499:88;19606:4;19603:1;19596:15;19630:4;19627:1;19620:15;19647:185;19687:1;19704:20;19722:1;19704:20;:::i;:::-;19699:25;;19738:20;19756:1;19738:20;:::i;:::-;19733:25;;19777:1;19767:35;;19782:18;;:::i;:::-;19767:35;19824:1;19821;19817:9;19812:14;;19647:185;;;;:::o;19838:220::-;19978:34;19974:1;19966:6;19962:14;19955:58;20047:3;20042:2;20034:6;20030:15;20023:28;19838:220;:::o;20064:366::-;20206:3;20227:67;20291:2;20286:3;20227:67;:::i;:::-;20220:74;;20303:93;20392:3;20303:93;:::i;:::-;20421:2;20416:3;20412:12;20405:19;;20064:366;;;:::o;20436:419::-;20602:4;20640:2;20629:9;20625:18;20617:26;;20689:9;20683:4;20679:20;20675:1;20664:9;20660:17;20653:47;20717:131;20843:4;20717:131;:::i;:::-;20709:139;;20436:419;;;:::o;20861:305::-;20901:3;20920:20;20938:1;20920:20;:::i;:::-;20915:25;;20954:20;20972:1;20954:20;:::i;:::-;20949:25;;21108:1;21040:66;21036:74;21033:1;21030:81;21027:107;;;21114:18;;:::i;:::-;21027:107;21158:1;21155;21151:9;21144:16;;20861:305;;;;:::o;21172:177::-;21312:29;21308:1;21300:6;21296:14;21289:53;21172:177;:::o;21355:366::-;21497:3;21518:67;21582:2;21577:3;21518:67;:::i;:::-;21511:74;;21594:93;21683:3;21594:93;:::i;:::-;21712:2;21707:3;21703:12;21696:19;;21355:366;;;:::o;21727:419::-;21893:4;21931:2;21920:9;21916:18;21908:26;;21980:9;21974:4;21970:20;21966:1;21955:9;21951:17;21944:47;22008:131;22134:4;22008:131;:::i;:::-;22000:139;;21727:419;;;:::o;22152:223::-;22292:34;22288:1;22280:6;22276:14;22269:58;22361:6;22356:2;22348:6;22344:15;22337:31;22152:223;:::o;22381:366::-;22523:3;22544:67;22608:2;22603:3;22544:67;:::i;:::-;22537:74;;22620:93;22709:3;22620:93;:::i;:::-;22738:2;22733:3;22729:12;22722:19;;22381:366;;;:::o;22753:419::-;22919:4;22957:2;22946:9;22942:18;22934:26;;23006:9;23000:4;22996:20;22992:1;22981:9;22977:17;22970:47;23034:131;23160:4;23034:131;:::i;:::-;23026:139;;22753:419;;;:::o;23178:221::-;23318:34;23314:1;23306:6;23302:14;23295:58;23387:4;23382:2;23374:6;23370:15;23363:29;23178:221;:::o;23405:366::-;23547:3;23568:67;23632:2;23627:3;23568:67;:::i;:::-;23561:74;;23644:93;23733:3;23644:93;:::i;:::-;23762:2;23757:3;23753:12;23746:19;;23405:366;;;:::o;23777:419::-;23943:4;23981:2;23970:9;23966:18;23958:26;;24030:9;24024:4;24020:20;24016:1;24005:9;24001:17;23994:47;24058:131;24184:4;24058:131;:::i;:::-;24050:139;;23777:419;;;:::o;24202:224::-;24342:34;24338:1;24330:6;24326:14;24319:58;24411:7;24406:2;24398:6;24394:15;24387:32;24202:224;:::o;24432:366::-;24574:3;24595:67;24659:2;24654:3;24595:67;:::i;:::-;24588:74;;24671:93;24760:3;24671:93;:::i;:::-;24789:2;24784:3;24780:12;24773:19;;24432:366;;;:::o;24804:419::-;24970:4;25008:2;24997:9;24993:18;24985:26;;25057:9;25051:4;25047:20;25043:1;25032:9;25028:17;25021:47;25085:131;25211:4;25085:131;:::i;:::-;25077:139;;24804:419;;;:::o;25229:222::-;25369:34;25365:1;25357:6;25353:14;25346:58;25438:5;25433:2;25425:6;25421:15;25414:30;25229:222;:::o;25457:366::-;25599:3;25620:67;25684:2;25679:3;25620:67;:::i;:::-;25613:74;;25696:93;25785:3;25696:93;:::i;:::-;25814:2;25809:3;25805:12;25798:19;;25457:366;;;:::o;25829:419::-;25995:4;26033:2;26022:9;26018:18;26010:26;;26082:9;26076:4;26072:20;26068:1;26057:9;26053:17;26046:47;26110:131;26236:4;26110:131;:::i;:::-;26102:139;;25829:419;;;:::o;26254:228::-;26394:34;26390:1;26382:6;26378:14;26371:58;26463:11;26458:2;26450:6;26446:15;26439:36;26254:228;:::o;26488:366::-;26630:3;26651:67;26715:2;26710:3;26651:67;:::i;:::-;26644:74;;26727:93;26816:3;26727:93;:::i;:::-;26845:2;26840:3;26836:12;26829:19;;26488:366;;;:::o;26860:419::-;27026:4;27064:2;27053:9;27049:18;27041:26;;27113:9;27107:4;27103:20;27099:1;27088:9;27084:17;27077:47;27141:131;27267:4;27141:131;:::i;:::-;27133:139;;26860:419;;;:::o;27285:169::-;27425:21;27421:1;27413:6;27409:14;27402:45;27285:169;:::o;27460:366::-;27602:3;27623:67;27687:2;27682:3;27623:67;:::i;:::-;27616:74;;27699:93;27788:3;27699:93;:::i;:::-;27817:2;27812:3;27808:12;27801:19;;27460:366;;;:::o;27832:419::-;27998:4;28036:2;28025:9;28021:18;28013:26;;28085:9;28079:4;28075:20;28071:1;28060:9;28056:17;28049:47;28113:131;28239:4;28113:131;:::i;:::-;28105:139;;27832:419;;;:::o;28257:179::-;28397:31;28393:1;28385:6;28381:14;28374:55;28257:179;:::o;28442:366::-;28584:3;28605:67;28669:2;28664:3;28605:67;:::i;:::-;28598:74;;28681:93;28770:3;28681:93;:::i;:::-;28799:2;28794:3;28790:12;28783:19;;28442:366;;;:::o;28814:419::-;28980:4;29018:2;29007:9;29003:18;28995:26;;29067:9;29061:4;29057:20;29053:1;29042:9;29038:17;29031:47;29095:131;29221:4;29095:131;:::i;:::-;29087:139;;28814:419;;;:::o;29239:227::-;29379:34;29375:1;29367:6;29363:14;29356:58;29448:10;29443:2;29435:6;29431:15;29424:35;29239:227;:::o;29472:366::-;29614:3;29635:67;29699:2;29694:3;29635:67;:::i;:::-;29628:74;;29711:93;29800:3;29711:93;:::i;:::-;29829:2;29824:3;29820:12;29813:19;;29472:366;;;:::o;29844:419::-;30010:4;30048:2;30037:9;30033:18;30025:26;;30097:9;30091:4;30087:20;30083:1;30072:9;30068:17;30061:47;30125:131;30251:4;30125:131;:::i;:::-;30117:139;;29844:419;;;:::o;30269:177::-;30409:29;30405:1;30397:6;30393:14;30386:53;30269:177;:::o;30452:366::-;30594:3;30615:67;30679:2;30674:3;30615:67;:::i;:::-;30608:74;;30691:93;30780:3;30691:93;:::i;:::-;30809:2;30804:3;30800:12;30793:19;;30452:366;;;:::o;30824:419::-;30990:4;31028:2;31017:9;31013:18;31005:26;;31077:9;31071:4;31067:20;31063:1;31052:9;31048:17;31041:47;31105:131;31231:4;31105:131;:::i;:::-;31097:139;;30824:419;;;:::o;31249:191::-;31289:4;31309:20;31327:1;31309:20;:::i;:::-;31304:25;;31343:20;31361:1;31343:20;:::i;:::-;31338:25;;31382:1;31379;31376:8;31373:34;;;31387:18;;:::i;:::-;31373:34;31432:1;31429;31425:9;31417:17;;31249:191;;;;:::o;31446:180::-;31494:77;31491:1;31484:88;31591:4;31588:1;31581:15;31615:4;31612:1;31605:15;31632:143;31689:5;31720:6;31714:13;31705:22;;31736:33;31763:5;31736:33;:::i;:::-;31632:143;;;;:::o;31781:351::-;31851:6;31900:2;31888:9;31879:7;31875:23;31871:32;31868:119;;;31906:79;;:::i;:::-;31868:119;32026:1;32051:64;32107:7;32098:6;32087:9;32083:22;32051:64;:::i;:::-;32041:74;;31997:128;31781:351;;;;:::o;32138:85::-;32183:7;32212:5;32201:16;;32138:85;;;:::o;32229:158::-;32287:9;32320:61;32338:42;32347:32;32373:5;32347:32;:::i;:::-;32338:42;:::i;:::-;32320:61;:::i;:::-;32307:74;;32229:158;;;:::o;32393:147::-;32488:45;32527:5;32488:45;:::i;:::-;32483:3;32476:58;32393:147;;:::o;32546:114::-;32613:6;32647:5;32641:12;32631:22;;32546:114;;;:::o;32666:184::-;32765:11;32799:6;32794:3;32787:19;32839:4;32834:3;32830:14;32815:29;;32666:184;;;;:::o;32856:132::-;32923:4;32946:3;32938:11;;32976:4;32971:3;32967:14;32959:22;;32856:132;;;:::o;32994:108::-;33071:24;33089:5;33071:24;:::i;:::-;33066:3;33059:37;32994:108;;:::o;33108:179::-;33177:10;33198:46;33240:3;33232:6;33198:46;:::i;:::-;33276:4;33271:3;33267:14;33253:28;;33108:179;;;;:::o;33293:113::-;33363:4;33395;33390:3;33386:14;33378:22;;33293:113;;;:::o;33442:732::-;33561:3;33590:54;33638:5;33590:54;:::i;:::-;33660:86;33739:6;33734:3;33660:86;:::i;:::-;33653:93;;33770:56;33820:5;33770:56;:::i;:::-;33849:7;33880:1;33865:284;33890:6;33887:1;33884:13;33865:284;;;33966:6;33960:13;33993:63;34052:3;34037:13;33993:63;:::i;:::-;33986:70;;34079:60;34132:6;34079:60;:::i;:::-;34069:70;;33925:224;33912:1;33909;33905:9;33900:14;;33865:284;;;33869:14;34165:3;34158:10;;33566:608;;;33442:732;;;;:::o;34180:831::-;34443:4;34481:3;34470:9;34466:19;34458:27;;34495:71;34563:1;34552:9;34548:17;34539:6;34495:71;:::i;:::-;34576:80;34652:2;34641:9;34637:18;34628:6;34576:80;:::i;:::-;34703:9;34697:4;34693:20;34688:2;34677:9;34673:18;34666:48;34731:108;34834:4;34825:6;34731:108;:::i;:::-;34723:116;;34849:72;34917:2;34906:9;34902:18;34893:6;34849:72;:::i;:::-;34931:73;34999:3;34988:9;34984:19;34975:6;34931:73;:::i;:::-;34180:831;;;;;;;;:::o;35017:483::-;35188:4;35226:2;35215:9;35211:18;35203:26;;35239:71;35307:1;35296:9;35292:17;35283:6;35239:71;:::i;:::-;35357:9;35351:4;35347:20;35342:2;35331:9;35327:18;35320:48;35385:108;35488:4;35479:6;35385:108;:::i;:::-;35377:116;;35017:483;;;;;:::o

Swarm Source

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