ETH Price: $3,156.17 (+0.53%)
Gas: 2 Gwei

Token

Yueliang (YUE)
 

Overview

Max Total Supply

10,000,000 YUE

Holders

196

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
obamaslastname.eth
Balance
576.09252304 YUE

Value
$0.00
0x646b14a3a0a24038b24b4b13b66d8dfea04e801f
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:
YUELIANG

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-24
*/

/**
Yueliang

Started by a big group of competent dreamers and storytellers.

Yueliang is a common expression of the word "Moon" in Chinese, and is a relatively common female name.
If you're seeing this, you're probably early.
Welcome.

Don't get scammed or join a random tg impersonating us. You'll know us when you see us.

There will be no telegram until we reach a certain height, one that might make 掌握 happy.
Let's make history... again.

$YUE

*/ 

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
 
interface IERC20 {
    function totalSupply() external view returns (uint256);
 
    function balanceOf(address account) external view returns (uint256);
 
    function transfer(address recipient, uint256 amount) external returns (bool);
 
    function allowance(address owner, address spender) external view returns (uint256);
 
    function approve(address spender, uint256 amount) external returns (bool);
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
 
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}
 
contract Ownable is Context {
    address internal _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
 
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    function owner() public view returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = 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;
        return c;
    }
}
 
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
 
    function factory() external pure returns (address);
 
    function WETH() external pure returns (address);
 
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
 
contract YUELIANG  is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "Yueliang";
    string private constant _symbol = "YUE";
    uint8 private constant _decimals = 9;
 
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 10000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;  
    uint256 private _taxFeeOnBuy = 4;  
    uint256 private _redisFeeOnSell = 0;  
    uint256 private _taxFeeOnSell = 4;
 
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; 
    address payable private _developmentAddress = payable(0x2697e00A09F8d9a5b04A79A5990B6dEA44F73306); 
    address payable private _marketingAddress = payable(0x2697e00A09F8d9a5b04A79A5990B6dEA44F73306);
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxTxAmount = _tTotal.mul(100).div(100);
    uint256 public _maxWalletSize = _tTotal.mul(2).div(100); 
    uint256 public _swapTokensAtAmount = _tTotal.mul(1).div(1000);
 
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;
 
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    function name() public pure returns (string memory) {
        return _name;
    }
 
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
 
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
 
    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }
 
    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, 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 tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
 
    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
 
        if (from != owner() && to != owner()) {
 
            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }
 
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount.mul(2).div(4));
        _developmentAddress.transfer(amount.mul(2).div(4));
    }
 
    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }
 
    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
 
    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
 
    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
 
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
 
    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }
 
    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }
 
    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }
 
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
 
    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        require(redisFeeOnBuy >= 0 && redisFeeOnBuy <= 0, "Buy rewards must be between 0% and 0%");
        require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 5, "Buy tax must be between 0% and 5%");
        require(redisFeeOnSell >= 0 && redisFeeOnSell <= 0, "Sell rewards must be between 0% and 0%");
        require(taxFeeOnSell >= 0 && taxFeeOnSell <= 5, "Sell tax must be between 0% and 5%");

        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;

    }
 
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
 
    function setMaxTxnAmount(uint256 amountPercent) public onlyOwner {
        require(amountPercent>0);
        _maxTxAmount = (_tTotal * amountPercent ) / 100;
    }

    function setMaxWalletSize(uint256 amountPercent) public onlyOwner {
        require(amountPercent>0);
        _maxWalletSize = (_tTotal * amountPercent ) / 100;
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }
 
    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052662386f26fc100006000196200001b919062000918565b6000196200002a91906200097f565b600655600060085560046009556000600a556004600b55600a54600c55600b54600d55600c54600e55600d54600f55732697e00a09f8d9a5b04a79a5990b6dea44f73306601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732697e00a09f8d9a5b04a79a5990b6dea44f73306601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff021916908315150217905550620001746064620001606064662386f26fc100006200077060201b620018cc1790919060201c565b620007f460201b620019471790919060201c565b601655620001b360646200019f6002662386f26fc100006200077060201b620018cc1790919060201c565b620007f460201b620019471790919060201c565b601755620001f36103e8620001df6001662386f26fc100006200077060201b620018cc1790919060201c565b620007f460201b620019471790919060201c565b6018553480156200020357600080fd5b506000620002166200084660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460026000620002cb6200084660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003aa57600080fd5b505afa158015620003bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e5919062000a24565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200044857600080fd5b505afa1580156200045d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000483919062000a24565b6040518363ffffffff1660e01b8152600401620004a292919062000a67565b602060405180830381600087803b158015620004bd57600080fd5b505af1158015620004d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004f8919062000a24565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560006200054e6200084e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006fb6200084660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc1000060405162000761919062000aa5565b60405180910390a35062000cbb565b600080831415620007855760009050620007ee565b6000828462000795919062000ac2565b9050828482620007a6919062000b23565b14620007e9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007e09062000be2565b60405180910390fd5b809150505b92915050565b60006200083e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200087760201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008083118290620008c1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008b8919062000c97565b60405180910390fd5b5060008385620008d2919062000b23565b9050809150509392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200092582620008df565b91506200093283620008df565b925082620009455762000944620008e9565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200098c82620008df565b91506200099983620008df565b925082821015620009af57620009ae62000950565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009ec82620009bf565b9050919050565b620009fe81620009df565b811462000a0a57600080fd5b50565b60008151905062000a1e81620009f3565b92915050565b60006020828403121562000a3d5762000a3c620009ba565b5b600062000a4d8482850162000a0d565b91505092915050565b62000a6181620009df565b82525050565b600060408201905062000a7e600083018562000a56565b62000a8d602083018462000a56565b9392505050565b62000a9f81620008df565b82525050565b600060208201905062000abc600083018462000a94565b92915050565b600062000acf82620008df565b915062000adc83620008df565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b185762000b1762000950565b5b828202905092915050565b600062000b3082620008df565b915062000b3d83620008df565b92508262000b505762000b4f620008e9565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000bca60218362000b5b565b915062000bd78262000b6c565b604082019050919050565b6000602082019050818103600083015262000bfd8162000bbb565b9050919050565b600081519050919050565b60005b8381101562000c2f57808201518184015260208101905062000c12565b8381111562000c3f576000848401525b50505050565b6000601f19601f8301169050919050565b600062000c638262000c04565b62000c6f818562000b5b565b935062000c8181856020860162000c0f565b62000c8c8162000c45565b840191505092915050565b6000602082019050818103600083015262000cb3818462000c56565b905092915050565b6143488062000ccb6000396000f3fe6080604052600436106101db5760003560e01c8063751039fc11610102578063a2a957bb11610095578063c492f04611610064578063c492f0461461067e578063dd62ed3e146106a7578063ea1644d5146106e4578063f2fde38b1461070d576101e2565b8063a2a957bb146105c4578063a9059cbb146105ed578063bfd792841461062a578063c3c8cd8014610667576101e2565b80638f70ccf7116100d15780638f70ccf71461051c5780638f9a55c01461054557806395d89b411461057057806398a5c3151461059b576101e2565b8063751039fc146104725780637d1db4a5146104895780637f2feddc146104b45780638da5cb5b146104f1576101e2565b8063313ce5671161017a5780636fc3eaec116101495780636fc3eaec146103de57806370a08231146103f5578063715018a61461043257806374010ece14610449576101e2565b8063313ce5671461033657806349bd5a5e146103615780636b9990531461038c5780636d8aa8f8146103b5576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632fd689e31461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e6004803603810190610209919061308c565b610736565b005b34801561021c57600080fd5b50610225610860565b604051610232919061315d565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d91906131b5565b61089d565b60405161026f9190613210565b60405180910390f35b34801561028457600080fd5b5061028d6108bb565b60405161029a919061328a565b60405180910390f35b3480156102af57600080fd5b506102b86108e1565b6040516102c591906132b4565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f091906132cf565b6108f0565b6040516103029190613210565b60405180910390f35b34801561031757600080fd5b506103206109c9565b60405161032d91906132b4565b60405180910390f35b34801561034257600080fd5b5061034b6109cf565b604051610358919061333e565b60405180910390f35b34801561036d57600080fd5b506103766109d8565b6040516103839190613368565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae9190613383565b6109fe565b005b3480156103c157600080fd5b506103dc60048036038101906103d791906133dc565b610aee565b005b3480156103ea57600080fd5b506103f3610ba0565b005b34801561040157600080fd5b5061041c60048036038101906104179190613383565b610c71565b60405161042991906132b4565b60405180910390f35b34801561043e57600080fd5b50610447610cc2565b005b34801561045557600080fd5b50610470600480360381019061046b9190613409565b610e15565b005b34801561047e57600080fd5b50610487610edf565b005b34801561049557600080fd5b5061049e610f92565b6040516104ab91906132b4565b60405180910390f35b3480156104c057600080fd5b506104db60048036038101906104d69190613383565b610f98565b6040516104e891906132b4565b60405180910390f35b3480156104fd57600080fd5b50610506610fb0565b6040516105139190613368565b60405180910390f35b34801561052857600080fd5b50610543600480360381019061053e91906133dc565b610fd9565b005b34801561055157600080fd5b5061055a61108b565b60405161056791906132b4565b60405180910390f35b34801561057c57600080fd5b50610585611091565b604051610592919061315d565b60405180910390f35b3480156105a757600080fd5b506105c260048036038101906105bd9190613409565b6110ce565b005b3480156105d057600080fd5b506105eb60048036038101906105e69190613436565b61116d565b005b3480156105f957600080fd5b50610614600480360381019061060f91906131b5565b611368565b6040516106219190613210565b60405180910390f35b34801561063657600080fd5b50610651600480360381019061064c9190613383565b611386565b60405161065e9190613210565b60405180910390f35b34801561067357600080fd5b5061067c6113a6565b005b34801561068a57600080fd5b506106a560048036038101906106a091906134f8565b61147f565b005b3480156106b357600080fd5b506106ce60048036038101906106c99190613558565b6115b9565b6040516106db91906132b4565b60405180910390f35b3480156106f057600080fd5b5061070b60048036038101906107069190613409565b611640565b005b34801561071957600080fd5b50610734600480360381019061072f9190613383565b61170a565b005b61073e611991565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c2906135e4565b60405180910390fd5b60005b815181101561085c576001601060008484815181106107f0576107ef613604565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061085490613662565b9150506107ce565b5050565b60606040518060400160405280600881526020017f5975656c69616e67000000000000000000000000000000000000000000000000815250905090565b60006108b16108aa611991565b8484611999565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000662386f26fc10000905090565b60006108fd848484611b64565b6109be84610909611991565b6109b9856040518060600160405280602881526020016142eb60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061096f611991565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e99092919063ffffffff16565b611999565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a06611991565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8a906135e4565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610af6611991565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7a906135e4565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610be1611991565b73ffffffffffffffffffffffffffffffffffffffff161480610c575750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c3f611991565b73ffffffffffffffffffffffffffffffffffffffff16145b610c6057600080fd5b6000479050610c6e8161244d565b50565b6000610cbb600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256e565b9050919050565b610cca611991565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4e906135e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610e1d611991565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea1906135e4565b60405180910390fd5b60008111610eb757600080fd5b606481662386f26fc10000610ecc91906136ab565b610ed69190613734565b60168190555050565b610ee7611991565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6b906135e4565b60405180910390fd5b662386f26fc10000601681905550662386f26fc10000601781905550565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610fe1611991565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461106e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611065906135e4565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600381526020017f5955450000000000000000000000000000000000000000000000000000000000815250905090565b6110d6611991565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115a906135e4565b60405180910390fd5b8060188190555050565b611175611991565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f9906135e4565b60405180910390fd5b60008410158015611214575060008411155b611253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124a906137d7565b60405180910390fd5b60008210158015611265575060058211155b6112a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129b90613869565b60405180910390fd5b600083101580156112b6575060008311155b6112f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ec906138fb565b60405180910390fd5b60008110158015611307575060058111155b611346576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133d9061398d565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061137c611375611991565b8484611b64565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113e7611991565b73ffffffffffffffffffffffffffffffffffffffff16148061145d5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611445611991565b73ffffffffffffffffffffffffffffffffffffffff16145b61146657600080fd5b600061147130610c71565b905061147c816125dc565b50565b611487611991565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611514576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150b906135e4565b60405180910390fd5b60005b838390508110156115b357816005600086868581811061153a57611539613604565b5b905060200201602081019061154f9190613383565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806115ab90613662565b915050611517565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611648611991565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cc906135e4565b60405180910390fd5b600081116116e257600080fd5b606481662386f26fc100006116f791906136ab565b6117019190613734565b60178190555050565b611712611991565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461179f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611796906135e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561180f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180690613a1f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808314156118df5760009050611941565b600082846118ed91906136ab565b90508284826118fc9190613734565b1461193c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193390613ab1565b60405180910390fd5b809150505b92915050565b600061198983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612862565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0090613b43565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7090613bd5565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b5791906132b4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611bd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcb90613c67565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3b90613cf9565b60405180910390fd5b60008111611c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7e90613d8b565b60405180910390fd5b611c8f610fb0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611cfd5750611ccd610fb0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156120e857601560149054906101000a900460ff16611d8c57611d1e610fb0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8290613e1d565b60405180910390fd5b5b601654811115611dd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc890613e89565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e755750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eab90613f1b565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611f615760175481611f1684610c71565b611f209190613f3b565b10611f60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5790614003565b60405180910390fd5b5b6000611f6c30610c71565b9050600060185482101590506016548210611f875760165491505b808015611f9f575060158054906101000a900460ff16155b8015611ff95750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156120115750601560169054906101000a900460ff165b80156120675750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120bd5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120e5576120cb826125dc565b600047905060008111156120e3576120e24761244d565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061218f5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806122425750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156122415750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561225057600090506123d7565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122fb5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561231357600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123be5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156123d657600a54600c81905550600b54600d819055505b5b6123e3848484846128c5565b50505050565b6000838311158290612431576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612428919061315d565b60405180910390fd5b50600083856124409190614023565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124b060046124a26002866118cc90919063ffffffff16565b61194790919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156124db573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61253f60046125316002866118cc90919063ffffffff16565b61194790919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561256a573d6000803e3d6000fd5b5050565b60006006548211156125b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ac906140c9565b60405180910390fd5b60006125bf6128f2565b90506125d4818461194790919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561261357612612612eeb565b5b6040519080825280602002602001820160405280156126415781602001602082028036833780820191505090505b509050308160008151811061265957612658613604565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156126fb57600080fd5b505afa15801561270f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273391906140fe565b8160018151811061274757612746613604565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127ae30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611999565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612812959493929190614224565b600060405180830381600087803b15801561282c57600080fd5b505af1158015612840573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b600080831182906128a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a0919061315d565b60405180910390fd5b50600083856128b89190613734565b9050809150509392505050565b806128d3576128d261291d565b5b6128de848484612960565b806128ec576128eb612b2b565b5b50505050565b60008060006128ff612b3f565b91509150612916818361194790919063ffffffff16565b9250505090565b6000600c5414801561293157506000600d54145b1561293b5761295e565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061297287612b9b565b9550955095509550955095506129d086600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c0390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a6585600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c4d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ab181612cab565b612abb8483612d68565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612b1891906132b4565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000662386f26fc100009050612b71662386f26fc1000060065461194790919063ffffffff16565b821015612b8e57600654662386f26fc10000935093505050612b97565b81819350935050505b9091565b6000806000806000806000806000612bb88a600c54600d54612da2565b9250925092506000612bc86128f2565b90506000806000612bdb8e878787612e38565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612c4583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506123e9565b905092915050565b6000808284612c5c9190613f3b565b905083811015612ca1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c98906142ca565b60405180910390fd5b8091505092915050565b6000612cb56128f2565b90506000612ccc82846118cc90919063ffffffff16565b9050612d2081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c4d90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612d7d82600654612c0390919063ffffffff16565b600681905550612d9881600754612c4d90919063ffffffff16565b6007819055505050565b600080600080612dce6064612dc0888a6118cc90919063ffffffff16565b61194790919063ffffffff16565b90506000612df86064612dea888b6118cc90919063ffffffff16565b61194790919063ffffffff16565b90506000612e2182612e13858c612c0390919063ffffffff16565b612c0390919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612e5185896118cc90919063ffffffff16565b90506000612e6886896118cc90919063ffffffff16565b90506000612e7f87896118cc90919063ffffffff16565b90506000612ea882612e9a8587612c0390919063ffffffff16565b612c0390919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612f2382612eda565b810181811067ffffffffffffffff82111715612f4257612f41612eeb565b5b80604052505050565b6000612f55612ec1565b9050612f618282612f1a565b919050565b600067ffffffffffffffff821115612f8157612f80612eeb565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612fc282612f97565b9050919050565b612fd281612fb7565b8114612fdd57600080fd5b50565b600081359050612fef81612fc9565b92915050565b600061300861300384612f66565b612f4b565b9050808382526020820190506020840283018581111561302b5761302a612f92565b5b835b8181101561305457806130408882612fe0565b84526020840193505060208101905061302d565b5050509392505050565b600082601f83011261307357613072612ed5565b5b8135613083848260208601612ff5565b91505092915050565b6000602082840312156130a2576130a1612ecb565b5b600082013567ffffffffffffffff8111156130c0576130bf612ed0565b5b6130cc8482850161305e565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561310f5780820151818401526020810190506130f4565b8381111561311e576000848401525b50505050565b600061312f826130d5565b61313981856130e0565b93506131498185602086016130f1565b61315281612eda565b840191505092915050565b600060208201905081810360008301526131778184613124565b905092915050565b6000819050919050565b6131928161317f565b811461319d57600080fd5b50565b6000813590506131af81613189565b92915050565b600080604083850312156131cc576131cb612ecb565b5b60006131da85828601612fe0565b92505060206131eb858286016131a0565b9150509250929050565b60008115159050919050565b61320a816131f5565b82525050565b60006020820190506132256000830184613201565b92915050565b6000819050919050565b600061325061324b61324684612f97565b61322b565b612f97565b9050919050565b600061326282613235565b9050919050565b600061327482613257565b9050919050565b61328481613269565b82525050565b600060208201905061329f600083018461327b565b92915050565b6132ae8161317f565b82525050565b60006020820190506132c960008301846132a5565b92915050565b6000806000606084860312156132e8576132e7612ecb565b5b60006132f686828701612fe0565b935050602061330786828701612fe0565b9250506040613318868287016131a0565b9150509250925092565b600060ff82169050919050565b61333881613322565b82525050565b6000602082019050613353600083018461332f565b92915050565b61336281612fb7565b82525050565b600060208201905061337d6000830184613359565b92915050565b60006020828403121561339957613398612ecb565b5b60006133a784828501612fe0565b91505092915050565b6133b9816131f5565b81146133c457600080fd5b50565b6000813590506133d6816133b0565b92915050565b6000602082840312156133f2576133f1612ecb565b5b6000613400848285016133c7565b91505092915050565b60006020828403121561341f5761341e612ecb565b5b600061342d848285016131a0565b91505092915050565b600080600080608085870312156134505761344f612ecb565b5b600061345e878288016131a0565b945050602061346f878288016131a0565b9350506040613480878288016131a0565b9250506060613491878288016131a0565b91505092959194509250565b600080fd5b60008083601f8401126134b8576134b7612ed5565b5b8235905067ffffffffffffffff8111156134d5576134d461349d565b5b6020830191508360208202830111156134f1576134f0612f92565b5b9250929050565b60008060006040848603121561351157613510612ecb565b5b600084013567ffffffffffffffff81111561352f5761352e612ed0565b5b61353b868287016134a2565b9350935050602061354e868287016133c7565b9150509250925092565b6000806040838503121561356f5761356e612ecb565b5b600061357d85828601612fe0565b925050602061358e85828601612fe0565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135ce6020836130e0565b91506135d982613598565b602082019050919050565b600060208201905081810360008301526135fd816135c1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061366d8261317f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156136a05761369f613633565b5b600182019050919050565b60006136b68261317f565b91506136c18361317f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156136fa576136f9613633565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061373f8261317f565b915061374a8361317f565b92508261375a57613759613705565b5b828204905092915050565b7f4275792072657761726473206d757374206265206265747765656e203025206160008201527f6e64203025000000000000000000000000000000000000000000000000000000602082015250565b60006137c16025836130e0565b91506137cc82613765565b604082019050919050565b600060208201905081810360008301526137f0816137b4565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203560008201527f2500000000000000000000000000000000000000000000000000000000000000602082015250565b60006138536021836130e0565b915061385e826137f7565b604082019050919050565b6000602082019050818103600083015261388281613846565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e2030252060008201527f616e642030250000000000000000000000000000000000000000000000000000602082015250565b60006138e56026836130e0565b91506138f082613889565b604082019050919050565b60006020820190508181036000830152613914816138d8565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3525000000000000000000000000000000000000000000000000000000000000602082015250565b60006139776022836130e0565b91506139828261391b565b604082019050919050565b600060208201905081810360008301526139a68161396a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613a096026836130e0565b9150613a14826139ad565b604082019050919050565b60006020820190508181036000830152613a38816139fc565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a9b6021836130e0565b9150613aa682613a3f565b604082019050919050565b60006020820190508181036000830152613aca81613a8e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b2d6024836130e0565b9150613b3882613ad1565b604082019050919050565b60006020820190508181036000830152613b5c81613b20565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613bbf6022836130e0565b9150613bca82613b63565b604082019050919050565b60006020820190508181036000830152613bee81613bb2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613c516025836130e0565b9150613c5c82613bf5565b604082019050919050565b60006020820190508181036000830152613c8081613c44565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613ce36023836130e0565b9150613cee82613c87565b604082019050919050565b60006020820190508181036000830152613d1281613cd6565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613d756029836130e0565b9150613d8082613d19565b604082019050919050565b60006020820190508181036000830152613da481613d68565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613e07603f836130e0565b9150613e1282613dab565b604082019050919050565b60006020820190508181036000830152613e3681613dfa565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613e73601c836130e0565b9150613e7e82613e3d565b602082019050919050565b60006020820190508181036000830152613ea281613e66565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613f056023836130e0565b9150613f1082613ea9565b604082019050919050565b60006020820190508181036000830152613f3481613ef8565b9050919050565b6000613f468261317f565b9150613f518361317f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f8657613f85613633565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613fed6023836130e0565b9150613ff882613f91565b604082019050919050565b6000602082019050818103600083015261401c81613fe0565b9050919050565b600061402e8261317f565b91506140398361317f565b92508282101561404c5761404b613633565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006140b3602a836130e0565b91506140be82614057565b604082019050919050565b600060208201905081810360008301526140e2816140a6565b9050919050565b6000815190506140f881612fc9565b92915050565b60006020828403121561411457614113612ecb565b5b6000614122848285016140e9565b91505092915050565b6000819050919050565b600061415061414b6141468461412b565b61322b565b61317f565b9050919050565b61416081614135565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61419b81612fb7565b82525050565b60006141ad8383614192565b60208301905092915050565b6000602082019050919050565b60006141d182614166565b6141db8185614171565b93506141e683614182565b8060005b838110156142175781516141fe88826141a1565b9750614209836141b9565b9250506001810190506141ea565b5085935050505092915050565b600060a08201905061423960008301886132a5565b6142466020830187614157565b818103604083015261425881866141c6565b90506142676060830185613359565b61427460808301846132a5565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006142b4601b836130e0565b91506142bf8261427e565b602082019050919050565b600060208201905081810360008301526142e3816142a7565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a45e5ab2b3164df51d682f64003ae9846478b6b0e91e10c3cbac4712b4637e2064736f6c63430008090033

Deployed Bytecode

0x6080604052600436106101db5760003560e01c8063751039fc11610102578063a2a957bb11610095578063c492f04611610064578063c492f0461461067e578063dd62ed3e146106a7578063ea1644d5146106e4578063f2fde38b1461070d576101e2565b8063a2a957bb146105c4578063a9059cbb146105ed578063bfd792841461062a578063c3c8cd8014610667576101e2565b80638f70ccf7116100d15780638f70ccf71461051c5780638f9a55c01461054557806395d89b411461057057806398a5c3151461059b576101e2565b8063751039fc146104725780637d1db4a5146104895780637f2feddc146104b45780638da5cb5b146104f1576101e2565b8063313ce5671161017a5780636fc3eaec116101495780636fc3eaec146103de57806370a08231146103f5578063715018a61461043257806374010ece14610449576101e2565b8063313ce5671461033657806349bd5a5e146103615780636b9990531461038c5780636d8aa8f8146103b5576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632fd689e31461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e6004803603810190610209919061308c565b610736565b005b34801561021c57600080fd5b50610225610860565b604051610232919061315d565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d91906131b5565b61089d565b60405161026f9190613210565b60405180910390f35b34801561028457600080fd5b5061028d6108bb565b60405161029a919061328a565b60405180910390f35b3480156102af57600080fd5b506102b86108e1565b6040516102c591906132b4565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f091906132cf565b6108f0565b6040516103029190613210565b60405180910390f35b34801561031757600080fd5b506103206109c9565b60405161032d91906132b4565b60405180910390f35b34801561034257600080fd5b5061034b6109cf565b604051610358919061333e565b60405180910390f35b34801561036d57600080fd5b506103766109d8565b6040516103839190613368565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae9190613383565b6109fe565b005b3480156103c157600080fd5b506103dc60048036038101906103d791906133dc565b610aee565b005b3480156103ea57600080fd5b506103f3610ba0565b005b34801561040157600080fd5b5061041c60048036038101906104179190613383565b610c71565b60405161042991906132b4565b60405180910390f35b34801561043e57600080fd5b50610447610cc2565b005b34801561045557600080fd5b50610470600480360381019061046b9190613409565b610e15565b005b34801561047e57600080fd5b50610487610edf565b005b34801561049557600080fd5b5061049e610f92565b6040516104ab91906132b4565b60405180910390f35b3480156104c057600080fd5b506104db60048036038101906104d69190613383565b610f98565b6040516104e891906132b4565b60405180910390f35b3480156104fd57600080fd5b50610506610fb0565b6040516105139190613368565b60405180910390f35b34801561052857600080fd5b50610543600480360381019061053e91906133dc565b610fd9565b005b34801561055157600080fd5b5061055a61108b565b60405161056791906132b4565b60405180910390f35b34801561057c57600080fd5b50610585611091565b604051610592919061315d565b60405180910390f35b3480156105a757600080fd5b506105c260048036038101906105bd9190613409565b6110ce565b005b3480156105d057600080fd5b506105eb60048036038101906105e69190613436565b61116d565b005b3480156105f957600080fd5b50610614600480360381019061060f91906131b5565b611368565b6040516106219190613210565b60405180910390f35b34801561063657600080fd5b50610651600480360381019061064c9190613383565b611386565b60405161065e9190613210565b60405180910390f35b34801561067357600080fd5b5061067c6113a6565b005b34801561068a57600080fd5b506106a560048036038101906106a091906134f8565b61147f565b005b3480156106b357600080fd5b506106ce60048036038101906106c99190613558565b6115b9565b6040516106db91906132b4565b60405180910390f35b3480156106f057600080fd5b5061070b60048036038101906107069190613409565b611640565b005b34801561071957600080fd5b50610734600480360381019061072f9190613383565b61170a565b005b61073e611991565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c2906135e4565b60405180910390fd5b60005b815181101561085c576001601060008484815181106107f0576107ef613604565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061085490613662565b9150506107ce565b5050565b60606040518060400160405280600881526020017f5975656c69616e67000000000000000000000000000000000000000000000000815250905090565b60006108b16108aa611991565b8484611999565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000662386f26fc10000905090565b60006108fd848484611b64565b6109be84610909611991565b6109b9856040518060600160405280602881526020016142eb60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061096f611991565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e99092919063ffffffff16565b611999565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a06611991565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8a906135e4565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610af6611991565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7a906135e4565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610be1611991565b73ffffffffffffffffffffffffffffffffffffffff161480610c575750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c3f611991565b73ffffffffffffffffffffffffffffffffffffffff16145b610c6057600080fd5b6000479050610c6e8161244d565b50565b6000610cbb600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256e565b9050919050565b610cca611991565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4e906135e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610e1d611991565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea1906135e4565b60405180910390fd5b60008111610eb757600080fd5b606481662386f26fc10000610ecc91906136ab565b610ed69190613734565b60168190555050565b610ee7611991565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6b906135e4565b60405180910390fd5b662386f26fc10000601681905550662386f26fc10000601781905550565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610fe1611991565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461106e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611065906135e4565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600381526020017f5955450000000000000000000000000000000000000000000000000000000000815250905090565b6110d6611991565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115a906135e4565b60405180910390fd5b8060188190555050565b611175611991565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f9906135e4565b60405180910390fd5b60008410158015611214575060008411155b611253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124a906137d7565b60405180910390fd5b60008210158015611265575060058211155b6112a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129b90613869565b60405180910390fd5b600083101580156112b6575060008311155b6112f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ec906138fb565b60405180910390fd5b60008110158015611307575060058111155b611346576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133d9061398d565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061137c611375611991565b8484611b64565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113e7611991565b73ffffffffffffffffffffffffffffffffffffffff16148061145d5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611445611991565b73ffffffffffffffffffffffffffffffffffffffff16145b61146657600080fd5b600061147130610c71565b905061147c816125dc565b50565b611487611991565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611514576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150b906135e4565b60405180910390fd5b60005b838390508110156115b357816005600086868581811061153a57611539613604565b5b905060200201602081019061154f9190613383565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806115ab90613662565b915050611517565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611648611991565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cc906135e4565b60405180910390fd5b600081116116e257600080fd5b606481662386f26fc100006116f791906136ab565b6117019190613734565b60178190555050565b611712611991565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461179f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611796906135e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561180f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180690613a1f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808314156118df5760009050611941565b600082846118ed91906136ab565b90508284826118fc9190613734565b1461193c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193390613ab1565b60405180910390fd5b809150505b92915050565b600061198983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612862565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0090613b43565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7090613bd5565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b5791906132b4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611bd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcb90613c67565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3b90613cf9565b60405180910390fd5b60008111611c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7e90613d8b565b60405180910390fd5b611c8f610fb0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611cfd5750611ccd610fb0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156120e857601560149054906101000a900460ff16611d8c57611d1e610fb0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8290613e1d565b60405180910390fd5b5b601654811115611dd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc890613e89565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e755750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eab90613f1b565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611f615760175481611f1684610c71565b611f209190613f3b565b10611f60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5790614003565b60405180910390fd5b5b6000611f6c30610c71565b9050600060185482101590506016548210611f875760165491505b808015611f9f575060158054906101000a900460ff16155b8015611ff95750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156120115750601560169054906101000a900460ff165b80156120675750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120bd5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120e5576120cb826125dc565b600047905060008111156120e3576120e24761244d565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061218f5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806122425750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156122415750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561225057600090506123d7565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122fb5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561231357600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123be5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156123d657600a54600c81905550600b54600d819055505b5b6123e3848484846128c5565b50505050565b6000838311158290612431576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612428919061315d565b60405180910390fd5b50600083856124409190614023565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124b060046124a26002866118cc90919063ffffffff16565b61194790919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156124db573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61253f60046125316002866118cc90919063ffffffff16565b61194790919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561256a573d6000803e3d6000fd5b5050565b60006006548211156125b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ac906140c9565b60405180910390fd5b60006125bf6128f2565b90506125d4818461194790919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561261357612612612eeb565b5b6040519080825280602002602001820160405280156126415781602001602082028036833780820191505090505b509050308160008151811061265957612658613604565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156126fb57600080fd5b505afa15801561270f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273391906140fe565b8160018151811061274757612746613604565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127ae30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611999565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612812959493929190614224565b600060405180830381600087803b15801561282c57600080fd5b505af1158015612840573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b600080831182906128a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a0919061315d565b60405180910390fd5b50600083856128b89190613734565b9050809150509392505050565b806128d3576128d261291d565b5b6128de848484612960565b806128ec576128eb612b2b565b5b50505050565b60008060006128ff612b3f565b91509150612916818361194790919063ffffffff16565b9250505090565b6000600c5414801561293157506000600d54145b1561293b5761295e565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061297287612b9b565b9550955095509550955095506129d086600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c0390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a6585600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c4d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ab181612cab565b612abb8483612d68565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612b1891906132b4565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000662386f26fc100009050612b71662386f26fc1000060065461194790919063ffffffff16565b821015612b8e57600654662386f26fc10000935093505050612b97565b81819350935050505b9091565b6000806000806000806000806000612bb88a600c54600d54612da2565b9250925092506000612bc86128f2565b90506000806000612bdb8e878787612e38565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612c4583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506123e9565b905092915050565b6000808284612c5c9190613f3b565b905083811015612ca1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c98906142ca565b60405180910390fd5b8091505092915050565b6000612cb56128f2565b90506000612ccc82846118cc90919063ffffffff16565b9050612d2081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c4d90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612d7d82600654612c0390919063ffffffff16565b600681905550612d9881600754612c4d90919063ffffffff16565b6007819055505050565b600080600080612dce6064612dc0888a6118cc90919063ffffffff16565b61194790919063ffffffff16565b90506000612df86064612dea888b6118cc90919063ffffffff16565b61194790919063ffffffff16565b90506000612e2182612e13858c612c0390919063ffffffff16565b612c0390919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612e5185896118cc90919063ffffffff16565b90506000612e6886896118cc90919063ffffffff16565b90506000612e7f87896118cc90919063ffffffff16565b90506000612ea882612e9a8587612c0390919063ffffffff16565b612c0390919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612f2382612eda565b810181811067ffffffffffffffff82111715612f4257612f41612eeb565b5b80604052505050565b6000612f55612ec1565b9050612f618282612f1a565b919050565b600067ffffffffffffffff821115612f8157612f80612eeb565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612fc282612f97565b9050919050565b612fd281612fb7565b8114612fdd57600080fd5b50565b600081359050612fef81612fc9565b92915050565b600061300861300384612f66565b612f4b565b9050808382526020820190506020840283018581111561302b5761302a612f92565b5b835b8181101561305457806130408882612fe0565b84526020840193505060208101905061302d565b5050509392505050565b600082601f83011261307357613072612ed5565b5b8135613083848260208601612ff5565b91505092915050565b6000602082840312156130a2576130a1612ecb565b5b600082013567ffffffffffffffff8111156130c0576130bf612ed0565b5b6130cc8482850161305e565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561310f5780820151818401526020810190506130f4565b8381111561311e576000848401525b50505050565b600061312f826130d5565b61313981856130e0565b93506131498185602086016130f1565b61315281612eda565b840191505092915050565b600060208201905081810360008301526131778184613124565b905092915050565b6000819050919050565b6131928161317f565b811461319d57600080fd5b50565b6000813590506131af81613189565b92915050565b600080604083850312156131cc576131cb612ecb565b5b60006131da85828601612fe0565b92505060206131eb858286016131a0565b9150509250929050565b60008115159050919050565b61320a816131f5565b82525050565b60006020820190506132256000830184613201565b92915050565b6000819050919050565b600061325061324b61324684612f97565b61322b565b612f97565b9050919050565b600061326282613235565b9050919050565b600061327482613257565b9050919050565b61328481613269565b82525050565b600060208201905061329f600083018461327b565b92915050565b6132ae8161317f565b82525050565b60006020820190506132c960008301846132a5565b92915050565b6000806000606084860312156132e8576132e7612ecb565b5b60006132f686828701612fe0565b935050602061330786828701612fe0565b9250506040613318868287016131a0565b9150509250925092565b600060ff82169050919050565b61333881613322565b82525050565b6000602082019050613353600083018461332f565b92915050565b61336281612fb7565b82525050565b600060208201905061337d6000830184613359565b92915050565b60006020828403121561339957613398612ecb565b5b60006133a784828501612fe0565b91505092915050565b6133b9816131f5565b81146133c457600080fd5b50565b6000813590506133d6816133b0565b92915050565b6000602082840312156133f2576133f1612ecb565b5b6000613400848285016133c7565b91505092915050565b60006020828403121561341f5761341e612ecb565b5b600061342d848285016131a0565b91505092915050565b600080600080608085870312156134505761344f612ecb565b5b600061345e878288016131a0565b945050602061346f878288016131a0565b9350506040613480878288016131a0565b9250506060613491878288016131a0565b91505092959194509250565b600080fd5b60008083601f8401126134b8576134b7612ed5565b5b8235905067ffffffffffffffff8111156134d5576134d461349d565b5b6020830191508360208202830111156134f1576134f0612f92565b5b9250929050565b60008060006040848603121561351157613510612ecb565b5b600084013567ffffffffffffffff81111561352f5761352e612ed0565b5b61353b868287016134a2565b9350935050602061354e868287016133c7565b9150509250925092565b6000806040838503121561356f5761356e612ecb565b5b600061357d85828601612fe0565b925050602061358e85828601612fe0565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135ce6020836130e0565b91506135d982613598565b602082019050919050565b600060208201905081810360008301526135fd816135c1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061366d8261317f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156136a05761369f613633565b5b600182019050919050565b60006136b68261317f565b91506136c18361317f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156136fa576136f9613633565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061373f8261317f565b915061374a8361317f565b92508261375a57613759613705565b5b828204905092915050565b7f4275792072657761726473206d757374206265206265747765656e203025206160008201527f6e64203025000000000000000000000000000000000000000000000000000000602082015250565b60006137c16025836130e0565b91506137cc82613765565b604082019050919050565b600060208201905081810360008301526137f0816137b4565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203560008201527f2500000000000000000000000000000000000000000000000000000000000000602082015250565b60006138536021836130e0565b915061385e826137f7565b604082019050919050565b6000602082019050818103600083015261388281613846565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e2030252060008201527f616e642030250000000000000000000000000000000000000000000000000000602082015250565b60006138e56026836130e0565b91506138f082613889565b604082019050919050565b60006020820190508181036000830152613914816138d8565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3525000000000000000000000000000000000000000000000000000000000000602082015250565b60006139776022836130e0565b91506139828261391b565b604082019050919050565b600060208201905081810360008301526139a68161396a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613a096026836130e0565b9150613a14826139ad565b604082019050919050565b60006020820190508181036000830152613a38816139fc565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a9b6021836130e0565b9150613aa682613a3f565b604082019050919050565b60006020820190508181036000830152613aca81613a8e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b2d6024836130e0565b9150613b3882613ad1565b604082019050919050565b60006020820190508181036000830152613b5c81613b20565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613bbf6022836130e0565b9150613bca82613b63565b604082019050919050565b60006020820190508181036000830152613bee81613bb2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613c516025836130e0565b9150613c5c82613bf5565b604082019050919050565b60006020820190508181036000830152613c8081613c44565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613ce36023836130e0565b9150613cee82613c87565b604082019050919050565b60006020820190508181036000830152613d1281613cd6565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613d756029836130e0565b9150613d8082613d19565b604082019050919050565b60006020820190508181036000830152613da481613d68565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613e07603f836130e0565b9150613e1282613dab565b604082019050919050565b60006020820190508181036000830152613e3681613dfa565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613e73601c836130e0565b9150613e7e82613e3d565b602082019050919050565b60006020820190508181036000830152613ea281613e66565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613f056023836130e0565b9150613f1082613ea9565b604082019050919050565b60006020820190508181036000830152613f3481613ef8565b9050919050565b6000613f468261317f565b9150613f518361317f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f8657613f85613633565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613fed6023836130e0565b9150613ff882613f91565b604082019050919050565b6000602082019050818103600083015261401c81613fe0565b9050919050565b600061402e8261317f565b91506140398361317f565b92508282101561404c5761404b613633565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006140b3602a836130e0565b91506140be82614057565b604082019050919050565b600060208201905081810360008301526140e2816140a6565b9050919050565b6000815190506140f881612fc9565b92915050565b60006020828403121561411457614113612ecb565b5b6000614122848285016140e9565b91505092915050565b6000819050919050565b600061415061414b6141468461412b565b61322b565b61317f565b9050919050565b61416081614135565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61419b81612fb7565b82525050565b60006141ad8383614192565b60208301905092915050565b6000602082019050919050565b60006141d182614166565b6141db8185614171565b93506141e683614182565b8060005b838110156142175781516141fe88826141a1565b9750614209836141b9565b9250506001810190506141ea565b5085935050505092915050565b600060a08201905061423960008301886132a5565b6142466020830187614157565b818103604083015261425881866141c6565b90506142676060830185613359565b61427460808301846132a5565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006142b4601b836130e0565b91506142bf8261427e565b602082019050919050565b600060208201905081810360008301526142e3816142a7565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a45e5ab2b3164df51d682f64003ae9846478b6b0e91e10c3cbac4712b4637e2064736f6c63430008090033

Deployed Bytecode Sourcemap

4566:14160:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13366:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7085:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8017:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5900:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7365:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8219:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6217:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7273:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5948:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13544:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17899:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13122:235;;;;;;;;;;;;;:::i;:::-;;7469:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2040:148;;;;;;;;;;;;;:::i;:::-;;18009:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18360:118;;;;;;;;;;;;;:::i;:::-;;6092:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5639:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1824:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12767:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6154:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7177:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17751:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17053:689;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7616:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5601:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12877:236;;;;;;;;;;;;;:::i;:::-;;18487:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7824:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18183:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2197:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13366:169;1962:12;:10;:12::i;:::-;1952:22;;:6;;;;;;;;;;:22;;;1944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13442:9:::1;13437:91;13461:5;:12;13457:1;:16;13437:91;;;13512:4;13495;:14;13500:5;13506:1;13500:8;;;;;;;;:::i;:::-;;;;;;;;13495:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13475:3;;;;;:::i;:::-;;;;13437:91;;;;13366:169:::0;:::o;7085:83::-;7122:13;7155:5;;;;;;;;;;;;;;;;;7148:12;;7085:83;:::o;8017:193::-;8119:4;8141:39;8150:12;:10;:12::i;:::-;8164:7;8173:6;8141:8;:39::i;:::-;8198:4;8191:11;;8017:193;;;;:::o;5900:41::-;;;;;;;;;;;;;:::o;7365:95::-;7418:7;5116:16;7438:14;;7365:95;:::o;8219:446::-;8351:4;8368:36;8378:6;8386:9;8397:6;8368:9;:36::i;:::-;8415:220;8438:6;8459:12;:10;:12::i;:::-;8486:138;8542:6;8486:138;;;;;;;;;;;;;;;;;:11;:19;8498:6;8486:19;;;;;;;;;;;;;;;:33;8506:12;:10;:12::i;:::-;8486:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8415:8;:220::i;:::-;8653:4;8646:11;;8219:446;;;;;:::o;6217:61::-;;;;:::o;7273:83::-;7314:5;4789:1;7332:16;;7273:83;:::o;5948:28::-;;;;;;;;;;;;;:::o;13544:92::-;1962:12;:10;:12::i;:::-;1952:22;;:6;;;;;;;;;;:22;;;1944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13623:5:::1;13608:4;:12;13613:6;13608:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13544:92:::0;:::o;17899:101::-;1962:12;:10;:12::i;:::-;1952:22;;:6;;;;;;;;;;:22;;;1944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17980:12:::1;17966:11;;:26;;;;;;;;;;;;;;;;;;17899:101:::0;:::o;13122:235::-;13188:19;;;;;;;;;;;13172:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13227:17;;;;;;;;;;;13211:33;;:12;:10;:12::i;:::-;:33;;;13172:72;13164:81;;;;;;13256:26;13285:21;13256:50;;13317:32;13330:18;13317:12;:32::i;:::-;13153:204;13122:235::o;7469:138::-;7535:7;7562:37;7582:7;:16;7590:7;7582:16;;;;;;;;;;;;;;;;7562:19;:37::i;:::-;7555:44;;7469:138;;;:::o;2040:148::-;1962:12;:10;:12::i;:::-;1952:22;;:6;;;;;;;;;;:22;;;1944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2147:1:::1;2110:40;;2131:6;::::0;::::1;;;;;;;;2110:40;;;;;;;;;;;;2178:1;2161:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2040:148::o:0;18009:166::-;1962:12;:10;:12::i;:::-;1952:22;;:6;;;;;;;;;;:22;;;1944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18107:1:::1;18093:13;:15;18085:24;;;::::0;::::1;;18164:3;18146:13;5116:16;18136:23;;;;:::i;:::-;18135:32;;;;:::i;:::-;18120:12;:47;;;;18009:166:::0;:::o;18360:118::-;1962:12;:10;:12::i;:::-;1952:22;;:6;;;;;;;;;;:22;;;1944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5116:16:::1;18413:12;:22;;;;5116:16;18446:14;:24;;;;18360:118::o:0;6092:55::-;;;;:::o;5639:43::-;;;;;;;;;;;;;;;;;:::o;1824:79::-;1862:7;1889:6;;;;;;;;;;;1882:13;;1824:79;:::o;12767:101::-;1962:12;:10;:12::i;:::-;1952:22;;:6;;;;;;;;;;:22;;;1944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12848:12:::1;12834:11;;:26;;;;;;;;;;;;;;;;;;12767:101:::0;:::o;6154:55::-;;;;:::o;7177:87::-;7216:13;7249:7;;;;;;;;;;;;;;;;;7242:14;;7177:87;:::o;17751:139::-;1962:12;:10;:12::i;:::-;1952:22;;:6;;;;;;;;;;:22;;;1944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17864:18:::1;17842:19;:40;;;;17751:139:::0;:::o;17053:689::-;1962:12;:10;:12::i;:::-;1952:22;;:6;;;;;;;;;;:22;;;1944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17212:1:::1;17195:13;:18;;:40;;;;;17234:1;17217:13;:18;;17195:40;17187:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;17311:1;17296:11;:16;;:36;;;;;17331:1;17316:11;:16;;17296:36;17288:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;17407:1;17389:14;:19;;:42;;;;;17430:1;17412:14;:19;;17389:42;17381:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;17509:1;17493:12;:17;;:38;;;;;17530:1;17514:12;:17;;17493:38;17485:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;17600:13;17583:14;:30;;;;17642:14;17624:15;:32;;;;17682:11;17667:12;:26;;;;17720:12;17704:13;:28;;;;17053:689:::0;;;;:::o;7616:199::-;7721:4;7743:42;7753:12;:10;:12::i;:::-;7767:9;7778:6;7743:9;:42::i;:::-;7803:4;7796:11;;7616:199;;;;:::o;5601:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12877:236::-;12943:19;;;;;;;;;;;12927:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12982:17;;;;;;;;;;;12966:33;;:12;:10;:12::i;:::-;:33;;;12927:72;12919:81;;;;;;13011:23;13037:24;13055:4;13037:9;:24::i;:::-;13011:50;;13072:33;13089:15;13072:16;:33::i;:::-;12908:205;12877:236::o;18487:234::-;1962:12;:10;:12::i;:::-;1952:22;;:6;;;;;;;;;;:22;;;1944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18604:9:::1;18600:114;18623:8;;:15;;18619:1;:19;18600:114;;;18694:8;18660:18;:31;18679:8;;18688:1;18679:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18660:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18640:3;;;;;:::i;:::-;;;;18600:114;;;;18487:234:::0;;;:::o;7824:184::-;7941:7;7973:11;:18;7985:5;7973:18;;;;;;;;;;;;;;;:27;7992:7;7973:27;;;;;;;;;;;;;;;;7966:34;;7824:184;;;;:::o;18183:169::-;1962:12;:10;:12::i;:::-;1952:22;;:6;;;;;;;;;;:22;;;1944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18282:1:::1;18268:13;:15;18260:24;;;::::0;::::1;;18341:3;18323:13;5116:16;18313:23;;;;:::i;:::-;18312:32;;;;:::i;:::-;18295:14;:49;;;;18183:169:::0;:::o;2197:244::-;1962:12;:10;:12::i;:::-;1952:22;;:6;;;;;;;;;;:22;;;1944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2306:1:::1;2286:22;;:8;:22;;;;2278:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2396:8;2367:38;;2388:6;::::0;::::1;;;;;;;;2367:38;;;;;;;;;;;;2425:8;2416:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2197:244:::0;:::o;3041:246::-;3099:7;3128:1;3123;:6;3119:47;;;3153:1;3146:8;;;;3119:47;3176:9;3192:1;3188;:5;;;;:::i;:::-;3176:17;;3221:1;3216;3212;:5;;;;:::i;:::-;:10;3204:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3278:1;3271:8;;;3041:246;;;;;:::o;3296:132::-;3354:7;3381:39;3385:1;3388;3381:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3374:46;;3296:132;;;;:::o;572:98::-;625:7;652:10;645:17;;572:98;:::o;9362:369::-;9506:1;9489:19;;:5;:19;;;;9481:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9587:1;9568:21;;:7;:21;;;;9560:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9669:6;9639:11;:18;9651:5;9639:18;;;;;;;;;;;;;;;:27;9658:7;9639:27;;;;;;;;;;;;;;;:36;;;;9707:7;9691:32;;9700:5;9691:32;;;9716:6;9691:32;;;;;;:::i;:::-;;;;;;;;9362:369;;;:::o;9740:2343::-;9878:1;9862:18;;:4;:18;;;;9854:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9955:1;9941:16;;:2;:16;;;;9933:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10025:1;10016:6;:10;10008:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10098:7;:5;:7::i;:::-;10090:15;;:4;:15;;;;:32;;;;;10115:7;:5;:7::i;:::-;10109:13;;:2;:13;;;;10090:32;10086:1265;;;10180:11;;;;;;;;;;;10175:144;;10228:7;:5;:7::i;:::-;10220:15;;:4;:15;;;10212:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10175:144;10354:12;;10344:6;:22;;10336:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10423:4;:10;10428:4;10423:10;;;;;;;;;;;;;;;;;;;;;;;;;10422:11;:24;;;;;10438:4;:8;10443:2;10438:8;;;;;;;;;;;;;;;;;;;;;;;;;10437:9;10422:24;10414:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10513:13;;;;;;;;;;;10507:19;;:2;:19;;;10504:146;;10580:14;;10571:6;10555:13;10565:2;10555:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10547:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10504:146;10667:28;10698:24;10716:4;10698:9;:24::i;:::-;10667:55;;10737:12;10776:19;;10752:20;:43;;10737:58;;10840:12;;10816:20;:36;10813:124;;10909:12;;10886:35;;10813:124;10958:7;:18;;;;;10970:6;;;;;;;;;;10969:7;10958:18;:43;;;;;10988:13;;;;;;;;;;;10980:21;;:4;:21;;;;10958:43;:58;;;;;11005:11;;;;;;;;;;;10958:58;:87;;;;;11021:18;:24;11040:4;11021:24;;;;;;;;;;;;;;;;;;;;;;;;;11020:25;10958:87;:114;;;;;11050:18;:22;11069:2;11050:22;;;;;;;;;;;;;;;;;;;;;;;;;11049:23;10958:114;10954:386;;;11093:38;11110:20;11093:16;:38::i;:::-;11150:26;11179:21;11150:50;;11244:1;11223:18;:22;11219:106;;;11270:35;11283:21;11270:12;:35::i;:::-;11219:106;11074:266;10954:386;10124:1227;;10086:1265;11364:12;11379:4;11364:19;;11429:18;:24;11448:4;11429:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11457:18;:22;11476:2;11457:22;;;;;;;;;;;;;;;;;;;;;;;;;11429:50;11428:102;;;;11493:13;;;;;;;;;;;11485:21;;:4;:21;;;;:44;;;;;11516:13;;;;;;;;;;;11510:19;;:2;:19;;;;11485:44;11428:102;11424:597;;;11557:5;11547:15;;11424:597;;;11641:13;;;;;;;;;;;11633:21;;:4;:21;;;:55;;;;;11672:15;;;;;;;;;;;11658:30;;:2;:30;;;;11633:55;11630:162;;;11721:14;;11709:9;:26;;;;11764:12;;11754:7;:22;;;;11630:162;11852:13;;;;;;;;;;;11846:19;;:2;:19;;;:55;;;;;11885:15;;;;;;;;;;;11869:32;;:4;:32;;;;11846:55;11842:165;;;11934:15;;11922:9;:27;;;;11978:13;;11968:7;:23;;;;11842:165;11424:597;12034:41;12049:4;12055:2;12059:6;12067:7;12034:14;:41::i;:::-;9843:2240;9740:2343;;;:::o;2808:224::-;2928:7;2961:1;2956;:6;;2964:12;2948:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2988:9;3004:1;3000;:5;;;;:::i;:::-;2988:17;;3023:1;3016:8;;;2808:224;;;;;:::o;12584:174::-;12641:17;;;;;;;;;;;:26;;:48;12668:20;12686:1;12668:13;12679:1;12668:6;:10;;:13;;;;:::i;:::-;:17;;:20;;;;:::i;:::-;12641:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12700:19;;;;;;;;;;;:28;;:50;12729:20;12747:1;12729:13;12740:1;12729:6;:10;;:13;;;;:::i;:::-;:17;;:20;;;;:::i;:::-;12700:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12584:174;:::o;8674:323::-;8769:7;8827;;8816;:18;;8794:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8915:19;8937:10;:8;:10::i;:::-;8915:32;;8965:24;8977:11;8965:7;:11;;:24;;;;:::i;:::-;8958:31;;;8674:323;;;:::o;12092:483::-;6382:4;6373:6;;:13;;;;;;;;;;;;;;;;;;12170:21:::1;12208:1;12194:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12170:40;;12239:4;12221;12226:1;12221:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12265:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12255:4;12260:1;12255:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12298:62;12315:4;12330:15;;;;;;;;;;;12348:11;12298:8;:62::i;:::-;12371:15;;;;;;;;;;;:66;;;12452:11;12478:1;12494:4;12521;12541:15;12371:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12159:416;6418:5:::0;6409:6;;:14;;;;;;;;;;;;;;;;;;12092:483;:::o;3437:223::-;3557:7;3589:1;3585;:5;3592:12;3577:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3616:9;3632:1;3628;:5;;;;:::i;:::-;3616:17;;3651:1;3644:8;;;3437:223;;;;;:::o;13645:282::-;13801:7;13796:28;;13810:14;:12;:14::i;:::-;13796:28;13835:44;13853:6;13861:9;13872:6;13835:17;:44::i;:::-;13895:7;13890:29;;13904:15;:13;:15::i;:::-;13890:29;13645:282;;;;:::o;16614:164::-;16656:7;16677:15;16694;16713:19;:17;:19::i;:::-;16676:56;;;;16750:20;16762:7;16750;:11;;:20;;;;:::i;:::-;16743:27;;;;16614:164;:::o;9006:221::-;9066:1;9053:9;;:14;:30;;;;;9082:1;9071:7;;:12;9053:30;9049:43;;;9085:7;;9049:43;9125:9;;9105:17;:29;;;;9163:7;;9145:15;:25;;;;9196:1;9184:9;:13;;;;9218:1;9208:7;:11;;;;9006:221;:::o;13936:610::-;14083:15;14113:23;14151:12;14178:23;14216:12;14243:13;14270:19;14281:7;14270:10;:19::i;:::-;14068:221;;;;;;;;;;;;14318:28;14338:7;14318;:15;14326:6;14318:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14300:7;:15;14308:6;14300:15;;;;;;;;;;;;;;;:46;;;;14378:39;14401:15;14378:7;:18;14386:9;14378:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14357:7;:18;14365:9;14357:18;;;;;;;;;;;;;;;:60;;;;14428:16;14438:5;14428:9;:16::i;:::-;14455:23;14467:4;14473;14455:11;:23::i;:::-;14511:9;14494:44;;14503:6;14494:44;;;14522:15;14494:44;;;;;;:::i;:::-;;;;;;;;14057:489;;;;;;13936:610;;;:::o;9236:117::-;9292:17;;9280:9;:29;;;;9330:15;;9320:7;:25;;;;9236:117::o;16787:257::-;16838:7;16847;16867:15;16885:7;;16867:25;;16903:15;5116:16;16903:25;;16953:20;5116:16;16953:7;;:11;;:20;;;;:::i;:::-;16943:7;:30;16939:61;;;16983:7;;5116:16;16975:25;;;;;;;;16939:61;17019:7;17028;17011:25;;;;;;16787:257;;;:::o;14969:615::-;15069:7;15091;15113;15135;15157;15179;15215:23;15240:12;15254:13;15284:40;15296:7;15305:9;;15316:7;;15284:11;:40::i;:::-;15214:110;;;;;;15335:19;15357:10;:8;:10::i;:::-;15335:32;;15379:15;15396:23;15421:12;15450:46;15462:7;15471:4;15477:5;15484:11;15450;:46::i;:::-;15378:118;;;;;;15515:7;15524:15;15541:4;15547:15;15564:4;15570:5;15507:69;;;;;;;;;;;;;;;;;;;14969:615;;;;;;;:::o;2663:136::-;2721:7;2748:43;2752:1;2755;2748:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2741:50;;2663:136;;;;:::o;2475:179::-;2533:7;2553:9;2569:1;2565;:5;;;;:::i;:::-;2553:17;;2594:1;2589;:6;;2581:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2645:1;2638:8;;;2475:179;;;;:::o;14555:211::-;14608:19;14630:10;:8;:10::i;:::-;14608:32;;14651:13;14667:22;14677:11;14667:5;:9;;:22;;;;:::i;:::-;14651:38;;14725:33;14752:5;14725:7;:22;14741:4;14725:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14700:7;:22;14716:4;14700:22;;;;;;;;;;;;;;;:58;;;;14597:169;;14555:211;:::o;14775:147::-;14853:17;14865:4;14853:7;;:11;;:17;;;;:::i;:::-;14843:7;:27;;;;14894:20;14909:4;14894:10;;:14;;:20;;;;:::i;:::-;14881:10;:33;;;;14775:147;;:::o;15593:469::-;15762:7;15784;15806;15841:12;15856:30;15882:3;15856:21;15868:8;15856:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15841:45;;15897:13;15913:28;15937:3;15913:19;15925:6;15913:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15897:44;;15952:23;15978:28;16000:5;15978:17;15990:4;15978:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15952:54;;16025:15;16042:4;16048:5;16017:37;;;;;;;;;15593:469;;;;;;;:::o;16071:534::-;16265:7;16287;16309;16344:15;16362:24;16374:11;16362:7;:11;;:24;;;;:::i;:::-;16344:42;;16397:12;16412:21;16421:11;16412:4;:8;;:21;;;;:::i;:::-;16397:36;;16444:13;16460:22;16470:11;16460:5;:9;;:22;;;;:::i;:::-;16444:38;;16493:23;16519:28;16541:5;16519:17;16531:4;16519:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16493:54;;16566:7;16575:15;16592:4;16558:39;;;;;;;;;;16071:534;;;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:307::-;4139:1;4149:113;4163:6;4160:1;4157:13;4149:113;;;4248:1;4243:3;4239:11;4233:18;4229:1;4224:3;4220:11;4213:39;4185:2;4182:1;4178:10;4173:15;;4149:113;;;4280:6;4277:1;4274:13;4271:101;;;4360:1;4351:6;4346:3;4342:16;4335:27;4271:101;4120:258;4071:307;;;:::o;4384:364::-;4472:3;4500:39;4533:5;4500:39;:::i;:::-;4555:71;4619:6;4614:3;4555:71;:::i;:::-;4548:78;;4635:52;4680:6;4675:3;4668:4;4661:5;4657:16;4635:52;:::i;:::-;4712:29;4734:6;4712:29;:::i;:::-;4707:3;4703:39;4696:46;;4476:272;4384:364;;;;:::o;4754:313::-;4867:4;4905:2;4894:9;4890:18;4882:26;;4954:9;4948:4;4944:20;4940:1;4929:9;4925:17;4918:47;4982:78;5055:4;5046:6;4982:78;:::i;:::-;4974:86;;4754:313;;;;:::o;5073:77::-;5110:7;5139:5;5128:16;;5073:77;;;:::o;5156:122::-;5229:24;5247:5;5229:24;:::i;:::-;5222:5;5219:35;5209:63;;5268:1;5265;5258:12;5209:63;5156:122;:::o;5284:139::-;5330:5;5368:6;5355:20;5346:29;;5384:33;5411:5;5384:33;:::i;:::-;5284:139;;;;:::o;5429:474::-;5497:6;5505;5554:2;5542:9;5533:7;5529:23;5525:32;5522:119;;;5560:79;;:::i;:::-;5522:119;5680:1;5705:53;5750:7;5741:6;5730:9;5726:22;5705:53;:::i;:::-;5695:63;;5651:117;5807:2;5833:53;5878:7;5869:6;5858:9;5854:22;5833:53;:::i;:::-;5823:63;;5778:118;5429:474;;;;;:::o;5909:90::-;5943:7;5986:5;5979:13;5972:21;5961:32;;5909:90;;;:::o;6005:109::-;6086:21;6101:5;6086:21;:::i;:::-;6081:3;6074:34;6005:109;;:::o;6120:210::-;6207:4;6245:2;6234:9;6230:18;6222:26;;6258:65;6320:1;6309:9;6305:17;6296:6;6258:65;:::i;:::-;6120:210;;;;:::o;6336:60::-;6364:3;6385:5;6378:12;;6336:60;;;:::o;6402:142::-;6452:9;6485:53;6503:34;6512:24;6530:5;6512:24;:::i;:::-;6503:34;:::i;:::-;6485:53;:::i;:::-;6472:66;;6402:142;;;:::o;6550:126::-;6600:9;6633:37;6664:5;6633:37;:::i;:::-;6620:50;;6550:126;;;:::o;6682:152::-;6758:9;6791:37;6822:5;6791:37;:::i;:::-;6778:50;;6682:152;;;:::o;6840:183::-;6953:63;7010:5;6953:63;:::i;:::-;6948:3;6941:76;6840:183;;:::o;7029:274::-;7148:4;7186:2;7175:9;7171:18;7163:26;;7199:97;7293:1;7282:9;7278:17;7269:6;7199:97;:::i;:::-;7029:274;;;;:::o;7309:118::-;7396:24;7414:5;7396:24;:::i;:::-;7391:3;7384:37;7309:118;;:::o;7433:222::-;7526:4;7564:2;7553:9;7549:18;7541:26;;7577:71;7645:1;7634:9;7630:17;7621:6;7577:71;:::i;:::-;7433:222;;;;:::o;7661:619::-;7738:6;7746;7754;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;8056:2;8082:53;8127:7;8118:6;8107:9;8103:22;8082:53;:::i;:::-;8072:63;;8027:118;8184:2;8210:53;8255:7;8246:6;8235:9;8231:22;8210:53;:::i;:::-;8200:63;;8155:118;7661:619;;;;;:::o;8286:86::-;8321:7;8361:4;8354:5;8350:16;8339:27;;8286:86;;;:::o;8378:112::-;8461:22;8477:5;8461:22;:::i;:::-;8456:3;8449:35;8378:112;;:::o;8496:214::-;8585:4;8623:2;8612:9;8608:18;8600:26;;8636:67;8700:1;8689:9;8685:17;8676:6;8636:67;:::i;:::-;8496:214;;;;:::o;8716:118::-;8803:24;8821:5;8803:24;:::i;:::-;8798:3;8791:37;8716:118;;:::o;8840:222::-;8933:4;8971:2;8960:9;8956:18;8948:26;;8984:71;9052:1;9041:9;9037:17;9028:6;8984:71;:::i;:::-;8840:222;;;;:::o;9068:329::-;9127:6;9176:2;9164:9;9155:7;9151:23;9147:32;9144:119;;;9182:79;;:::i;:::-;9144:119;9302:1;9327:53;9372:7;9363:6;9352:9;9348:22;9327:53;:::i;:::-;9317:63;;9273:117;9068:329;;;;:::o;9403:116::-;9473:21;9488:5;9473:21;:::i;:::-;9466:5;9463:32;9453:60;;9509:1;9506;9499:12;9453:60;9403:116;:::o;9525:133::-;9568:5;9606:6;9593:20;9584:29;;9622:30;9646:5;9622:30;:::i;:::-;9525:133;;;;:::o;9664:323::-;9720:6;9769:2;9757:9;9748:7;9744:23;9740:32;9737:119;;;9775:79;;:::i;:::-;9737:119;9895:1;9920:50;9962:7;9953:6;9942:9;9938:22;9920:50;:::i;:::-;9910:60;;9866:114;9664:323;;;;:::o;9993:329::-;10052:6;10101:2;10089:9;10080:7;10076:23;10072:32;10069:119;;;10107:79;;:::i;:::-;10069:119;10227:1;10252:53;10297:7;10288:6;10277:9;10273:22;10252:53;:::i;:::-;10242:63;;10198:117;9993:329;;;;:::o;10328:765::-;10414:6;10422;10430;10438;10487:3;10475:9;10466:7;10462:23;10458:33;10455:120;;;10494:79;;:::i;:::-;10455:120;10614:1;10639:53;10684:7;10675:6;10664:9;10660:22;10639:53;:::i;:::-;10629:63;;10585:117;10741:2;10767:53;10812:7;10803:6;10792:9;10788:22;10767:53;:::i;:::-;10757:63;;10712:118;10869:2;10895:53;10940:7;10931:6;10920:9;10916:22;10895:53;:::i;:::-;10885:63;;10840:118;10997:2;11023:53;11068:7;11059:6;11048:9;11044:22;11023:53;:::i;:::-;11013:63;;10968:118;10328:765;;;;;;;:::o;11099:117::-;11208:1;11205;11198:12;11239:568;11312:8;11322:6;11372:3;11365:4;11357:6;11353:17;11349:27;11339:122;;11380:79;;:::i;:::-;11339:122;11493:6;11480:20;11470:30;;11523:18;11515:6;11512:30;11509:117;;;11545:79;;:::i;:::-;11509:117;11659:4;11651:6;11647:17;11635:29;;11713:3;11705:4;11697:6;11693:17;11683:8;11679:32;11676:41;11673:128;;;11720:79;;:::i;:::-;11673:128;11239:568;;;;;:::o;11813:698::-;11905:6;11913;11921;11970:2;11958:9;11949:7;11945:23;11941:32;11938:119;;;11976:79;;:::i;:::-;11938:119;12124:1;12113:9;12109:17;12096:31;12154:18;12146:6;12143:30;12140:117;;;12176:79;;:::i;:::-;12140:117;12289:80;12361:7;12352:6;12341:9;12337:22;12289:80;:::i;:::-;12271:98;;;;12067:312;12418:2;12444:50;12486:7;12477:6;12466:9;12462:22;12444:50;:::i;:::-;12434:60;;12389:115;11813:698;;;;;:::o;12517:474::-;12585:6;12593;12642:2;12630:9;12621:7;12617:23;12613:32;12610:119;;;12648:79;;:::i;:::-;12610:119;12768:1;12793:53;12838:7;12829:6;12818:9;12814:22;12793:53;:::i;:::-;12783:63;;12739:117;12895:2;12921:53;12966:7;12957:6;12946:9;12942:22;12921:53;:::i;:::-;12911:63;;12866:118;12517:474;;;;;:::o;12997:182::-;13137:34;13133:1;13125:6;13121:14;13114:58;12997:182;:::o;13185:366::-;13327:3;13348:67;13412:2;13407:3;13348:67;:::i;:::-;13341:74;;13424:93;13513:3;13424:93;:::i;:::-;13542:2;13537:3;13533:12;13526:19;;13185:366;;;:::o;13557:419::-;13723:4;13761:2;13750:9;13746:18;13738:26;;13810:9;13804:4;13800:20;13796:1;13785:9;13781:17;13774:47;13838:131;13964:4;13838:131;:::i;:::-;13830:139;;13557:419;;;:::o;13982:180::-;14030:77;14027:1;14020:88;14127:4;14124:1;14117:15;14151:4;14148:1;14141:15;14168:180;14216:77;14213:1;14206:88;14313:4;14310:1;14303:15;14337:4;14334:1;14327:15;14354:233;14393:3;14416:24;14434:5;14416:24;:::i;:::-;14407:33;;14462:66;14455:5;14452:77;14449:103;;;14532:18;;:::i;:::-;14449:103;14579:1;14572:5;14568:13;14561:20;;14354:233;;;:::o;14593:348::-;14633:7;14656:20;14674:1;14656:20;:::i;:::-;14651:25;;14690:20;14708:1;14690:20;:::i;:::-;14685:25;;14878:1;14810:66;14806:74;14803:1;14800:81;14795:1;14788:9;14781:17;14777:105;14774:131;;;14885:18;;:::i;:::-;14774:131;14933:1;14930;14926:9;14915:20;;14593:348;;;;:::o;14947:180::-;14995:77;14992:1;14985:88;15092:4;15089:1;15082:15;15116:4;15113:1;15106:15;15133:185;15173:1;15190:20;15208:1;15190:20;:::i;:::-;15185:25;;15224:20;15242:1;15224:20;:::i;:::-;15219:25;;15263:1;15253:35;;15268:18;;:::i;:::-;15253:35;15310:1;15307;15303:9;15298:14;;15133:185;;;;:::o;15324:224::-;15464:34;15460:1;15452:6;15448:14;15441:58;15533:7;15528:2;15520:6;15516:15;15509:32;15324:224;:::o;15554:366::-;15696:3;15717:67;15781:2;15776:3;15717:67;:::i;:::-;15710:74;;15793:93;15882:3;15793:93;:::i;:::-;15911:2;15906:3;15902:12;15895:19;;15554:366;;;:::o;15926:419::-;16092:4;16130:2;16119:9;16115:18;16107:26;;16179:9;16173:4;16169:20;16165:1;16154:9;16150:17;16143:47;16207:131;16333:4;16207:131;:::i;:::-;16199:139;;15926:419;;;:::o;16351:220::-;16491:34;16487:1;16479:6;16475:14;16468:58;16560:3;16555:2;16547:6;16543:15;16536:28;16351:220;:::o;16577:366::-;16719:3;16740:67;16804:2;16799:3;16740:67;:::i;:::-;16733:74;;16816:93;16905:3;16816:93;:::i;:::-;16934:2;16929:3;16925:12;16918:19;;16577:366;;;:::o;16949:419::-;17115:4;17153:2;17142:9;17138:18;17130:26;;17202:9;17196:4;17192:20;17188:1;17177:9;17173:17;17166:47;17230:131;17356:4;17230:131;:::i;:::-;17222:139;;16949:419;;;:::o;17374:225::-;17514:34;17510:1;17502:6;17498:14;17491:58;17583:8;17578:2;17570:6;17566:15;17559:33;17374:225;:::o;17605:366::-;17747:3;17768:67;17832:2;17827:3;17768:67;:::i;:::-;17761:74;;17844:93;17933:3;17844:93;:::i;:::-;17962:2;17957:3;17953:12;17946:19;;17605:366;;;:::o;17977:419::-;18143:4;18181:2;18170:9;18166:18;18158:26;;18230:9;18224:4;18220:20;18216:1;18205:9;18201:17;18194:47;18258:131;18384:4;18258:131;:::i;:::-;18250:139;;17977:419;;;:::o;18402:221::-;18542:34;18538:1;18530:6;18526:14;18519:58;18611:4;18606:2;18598:6;18594:15;18587:29;18402:221;:::o;18629:366::-;18771:3;18792:67;18856:2;18851:3;18792:67;:::i;:::-;18785:74;;18868:93;18957:3;18868:93;:::i;:::-;18986:2;18981:3;18977:12;18970:19;;18629:366;;;:::o;19001:419::-;19167:4;19205:2;19194:9;19190:18;19182:26;;19254:9;19248:4;19244:20;19240:1;19229:9;19225:17;19218:47;19282:131;19408:4;19282:131;:::i;:::-;19274:139;;19001:419;;;:::o;19426:225::-;19566:34;19562:1;19554:6;19550:14;19543:58;19635:8;19630:2;19622:6;19618:15;19611:33;19426:225;:::o;19657:366::-;19799:3;19820:67;19884:2;19879:3;19820:67;:::i;:::-;19813:74;;19896:93;19985:3;19896:93;:::i;:::-;20014:2;20009:3;20005:12;19998:19;;19657:366;;;:::o;20029:419::-;20195:4;20233:2;20222:9;20218:18;20210:26;;20282:9;20276:4;20272:20;20268:1;20257:9;20253:17;20246:47;20310:131;20436:4;20310:131;:::i;:::-;20302:139;;20029:419;;;:::o;20454:220::-;20594:34;20590:1;20582:6;20578:14;20571:58;20663:3;20658:2;20650:6;20646:15;20639:28;20454:220;:::o;20680:366::-;20822:3;20843:67;20907:2;20902:3;20843:67;:::i;:::-;20836:74;;20919:93;21008:3;20919:93;:::i;:::-;21037:2;21032:3;21028:12;21021:19;;20680:366;;;:::o;21052:419::-;21218:4;21256:2;21245:9;21241:18;21233:26;;21305:9;21299:4;21295:20;21291:1;21280:9;21276:17;21269:47;21333:131;21459:4;21333:131;:::i;:::-;21325:139;;21052:419;;;:::o;21477:223::-;21617:34;21613:1;21605:6;21601:14;21594:58;21686:6;21681:2;21673:6;21669:15;21662:31;21477:223;:::o;21706:366::-;21848:3;21869:67;21933:2;21928:3;21869:67;:::i;:::-;21862:74;;21945:93;22034:3;21945:93;:::i;:::-;22063:2;22058:3;22054:12;22047:19;;21706:366;;;:::o;22078:419::-;22244:4;22282:2;22271:9;22267:18;22259:26;;22331:9;22325:4;22321:20;22317:1;22306:9;22302:17;22295:47;22359:131;22485:4;22359:131;:::i;:::-;22351:139;;22078:419;;;:::o;22503:221::-;22643:34;22639:1;22631:6;22627:14;22620:58;22712:4;22707:2;22699:6;22695:15;22688:29;22503:221;:::o;22730:366::-;22872:3;22893:67;22957:2;22952:3;22893:67;:::i;:::-;22886:74;;22969:93;23058:3;22969:93;:::i;:::-;23087:2;23082:3;23078:12;23071:19;;22730:366;;;:::o;23102:419::-;23268:4;23306:2;23295:9;23291:18;23283:26;;23355:9;23349:4;23345:20;23341:1;23330:9;23326:17;23319:47;23383:131;23509:4;23383:131;:::i;:::-;23375:139;;23102:419;;;:::o;23527:224::-;23667:34;23663:1;23655:6;23651:14;23644:58;23736:7;23731:2;23723:6;23719:15;23712:32;23527:224;:::o;23757:366::-;23899:3;23920:67;23984:2;23979:3;23920:67;:::i;:::-;23913:74;;23996:93;24085:3;23996:93;:::i;:::-;24114:2;24109:3;24105:12;24098:19;;23757:366;;;:::o;24129:419::-;24295:4;24333:2;24322:9;24318:18;24310:26;;24382:9;24376:4;24372:20;24368:1;24357:9;24353:17;24346:47;24410:131;24536:4;24410:131;:::i;:::-;24402:139;;24129:419;;;:::o;24554:222::-;24694:34;24690:1;24682:6;24678:14;24671:58;24763:5;24758:2;24750:6;24746:15;24739:30;24554:222;:::o;24782:366::-;24924:3;24945:67;25009:2;25004:3;24945:67;:::i;:::-;24938:74;;25021:93;25110:3;25021:93;:::i;:::-;25139:2;25134:3;25130:12;25123:19;;24782:366;;;:::o;25154:419::-;25320:4;25358:2;25347:9;25343:18;25335:26;;25407:9;25401:4;25397:20;25393:1;25382:9;25378:17;25371:47;25435:131;25561:4;25435:131;:::i;:::-;25427:139;;25154:419;;;:::o;25579:228::-;25719:34;25715:1;25707:6;25703:14;25696:58;25788:11;25783:2;25775:6;25771:15;25764:36;25579:228;:::o;25813:366::-;25955:3;25976:67;26040:2;26035:3;25976:67;:::i;:::-;25969:74;;26052:93;26141:3;26052:93;:::i;:::-;26170:2;26165:3;26161:12;26154:19;;25813:366;;;:::o;26185:419::-;26351:4;26389:2;26378:9;26374:18;26366:26;;26438:9;26432:4;26428:20;26424:1;26413:9;26409:17;26402:47;26466:131;26592:4;26466:131;:::i;:::-;26458:139;;26185:419;;;:::o;26610:250::-;26750:34;26746:1;26738:6;26734:14;26727:58;26819:33;26814:2;26806:6;26802:15;26795:58;26610:250;:::o;26866:366::-;27008:3;27029:67;27093:2;27088:3;27029:67;:::i;:::-;27022:74;;27105:93;27194:3;27105:93;:::i;:::-;27223:2;27218:3;27214:12;27207:19;;26866:366;;;:::o;27238:419::-;27404:4;27442:2;27431:9;27427:18;27419:26;;27491:9;27485:4;27481:20;27477:1;27466:9;27462:17;27455:47;27519:131;27645:4;27519:131;:::i;:::-;27511:139;;27238:419;;;:::o;27663:178::-;27803:30;27799:1;27791:6;27787:14;27780:54;27663:178;:::o;27847:366::-;27989:3;28010:67;28074:2;28069:3;28010:67;:::i;:::-;28003:74;;28086:93;28175:3;28086:93;:::i;:::-;28204:2;28199:3;28195:12;28188:19;;27847:366;;;:::o;28219:419::-;28385:4;28423:2;28412:9;28408:18;28400:26;;28472:9;28466:4;28462:20;28458:1;28447:9;28443:17;28436:47;28500:131;28626:4;28500:131;:::i;:::-;28492:139;;28219:419;;;:::o;28644:222::-;28784:34;28780:1;28772:6;28768:14;28761:58;28853:5;28848:2;28840:6;28836:15;28829:30;28644:222;:::o;28872:366::-;29014:3;29035:67;29099:2;29094:3;29035:67;:::i;:::-;29028:74;;29111:93;29200:3;29111:93;:::i;:::-;29229:2;29224:3;29220:12;29213:19;;28872:366;;;:::o;29244:419::-;29410:4;29448:2;29437:9;29433:18;29425:26;;29497:9;29491:4;29487:20;29483:1;29472:9;29468:17;29461:47;29525:131;29651:4;29525:131;:::i;:::-;29517:139;;29244:419;;;:::o;29669:305::-;29709:3;29728:20;29746:1;29728:20;:::i;:::-;29723:25;;29762:20;29780:1;29762:20;:::i;:::-;29757:25;;29916:1;29848:66;29844:74;29841:1;29838:81;29835:107;;;29922:18;;:::i;:::-;29835:107;29966:1;29963;29959:9;29952:16;;29669:305;;;;:::o;29980:222::-;30120:34;30116:1;30108:6;30104:14;30097:58;30189:5;30184:2;30176:6;30172:15;30165:30;29980:222;:::o;30208:366::-;30350:3;30371:67;30435:2;30430:3;30371:67;:::i;:::-;30364:74;;30447:93;30536:3;30447:93;:::i;:::-;30565:2;30560:3;30556:12;30549:19;;30208:366;;;:::o;30580:419::-;30746:4;30784:2;30773:9;30769:18;30761:26;;30833:9;30827:4;30823:20;30819:1;30808:9;30804:17;30797:47;30861:131;30987:4;30861:131;:::i;:::-;30853:139;;30580:419;;;:::o;31005:191::-;31045:4;31065:20;31083:1;31065:20;:::i;:::-;31060:25;;31099:20;31117:1;31099:20;:::i;:::-;31094:25;;31138:1;31135;31132:8;31129:34;;;31143:18;;:::i;:::-;31129:34;31188:1;31185;31181:9;31173:17;;31005:191;;;;:::o;31202:229::-;31342:34;31338:1;31330:6;31326:14;31319:58;31411:12;31406:2;31398:6;31394:15;31387:37;31202:229;:::o;31437:366::-;31579:3;31600:67;31664:2;31659:3;31600:67;:::i;:::-;31593:74;;31676:93;31765:3;31676:93;:::i;:::-;31794:2;31789:3;31785:12;31778:19;;31437:366;;;:::o;31809:419::-;31975:4;32013:2;32002:9;31998:18;31990:26;;32062:9;32056:4;32052:20;32048:1;32037:9;32033:17;32026:47;32090:131;32216:4;32090:131;:::i;:::-;32082:139;;31809:419;;;:::o;32234:143::-;32291:5;32322:6;32316:13;32307:22;;32338:33;32365:5;32338:33;:::i;:::-;32234:143;;;;:::o;32383:351::-;32453:6;32502:2;32490:9;32481:7;32477:23;32473:32;32470:119;;;32508:79;;:::i;:::-;32470:119;32628:1;32653:64;32709:7;32700:6;32689:9;32685:22;32653:64;:::i;:::-;32643:74;;32599:128;32383:351;;;;:::o;32740:85::-;32785:7;32814:5;32803:16;;32740:85;;;:::o;32831:158::-;32889:9;32922:61;32940:42;32949:32;32975:5;32949:32;:::i;:::-;32940:42;:::i;:::-;32922:61;:::i;:::-;32909:74;;32831:158;;;:::o;32995:147::-;33090:45;33129:5;33090:45;:::i;:::-;33085:3;33078:58;32995:147;;:::o;33148:114::-;33215:6;33249:5;33243:12;33233:22;;33148:114;;;:::o;33268:184::-;33367:11;33401:6;33396:3;33389:19;33441:4;33436:3;33432:14;33417:29;;33268:184;;;;:::o;33458:132::-;33525:4;33548:3;33540:11;;33578:4;33573:3;33569:14;33561:22;;33458:132;;;:::o;33596:108::-;33673:24;33691:5;33673:24;:::i;:::-;33668:3;33661:37;33596:108;;:::o;33710:179::-;33779:10;33800:46;33842:3;33834:6;33800:46;:::i;:::-;33878:4;33873:3;33869:14;33855:28;;33710:179;;;;:::o;33895:113::-;33965:4;33997;33992:3;33988:14;33980:22;;33895:113;;;:::o;34044:732::-;34163:3;34192:54;34240:5;34192:54;:::i;:::-;34262:86;34341:6;34336:3;34262:86;:::i;:::-;34255:93;;34372:56;34422:5;34372:56;:::i;:::-;34451:7;34482:1;34467:284;34492:6;34489:1;34486:13;34467:284;;;34568:6;34562:13;34595:63;34654:3;34639:13;34595:63;:::i;:::-;34588:70;;34681:60;34734:6;34681:60;:::i;:::-;34671:70;;34527:224;34514:1;34511;34507:9;34502:14;;34467:284;;;34471:14;34767:3;34760:10;;34168:608;;;34044:732;;;;:::o;34782:831::-;35045:4;35083:3;35072:9;35068:19;35060:27;;35097:71;35165:1;35154:9;35150:17;35141:6;35097:71;:::i;:::-;35178:80;35254:2;35243:9;35239:18;35230:6;35178:80;:::i;:::-;35305:9;35299:4;35295:20;35290:2;35279:9;35275:18;35268:48;35333:108;35436:4;35427:6;35333:108;:::i;:::-;35325:116;;35451:72;35519:2;35508:9;35504:18;35495:6;35451:72;:::i;:::-;35533:73;35601:3;35590:9;35586:19;35577:6;35533:73;:::i;:::-;34782:831;;;;;;;;:::o;35619:177::-;35759:29;35755:1;35747:6;35743:14;35736:53;35619:177;:::o;35802:366::-;35944:3;35965:67;36029:2;36024:3;35965:67;:::i;:::-;35958:74;;36041:93;36130:3;36041:93;:::i;:::-;36159:2;36154:3;36150:12;36143:19;;35802:366;;;:::o;36174:419::-;36340:4;36378:2;36367:9;36363:18;36355:26;;36427:9;36421:4;36417:20;36413:1;36402:9;36398:17;36391:47;36455:131;36581:4;36455:131;:::i;:::-;36447:139;;36174:419;;;:::o

Swarm Source

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