ETH Price: $3,637.97 (-6.33%)

Token

ERC-20: QMind (QMIND)
 

Overview

Max Total Supply

100,000,000 QMIND

Holders

291

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,514.733731194758521662 QMIND

Value
$0.00
0x1d2b8fa9b730fa7eb0fbf0f3c527b2381beed2b2
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:
QMind

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-12-16
*/

//  ▄▄▄▄▄▄▄▄▄▄▄  ▄▄       ▄▄  ▄▄▄▄▄▄▄▄▄▄▄  ▄▄        ▄  ▄▄▄▄▄▄▄▄▄▄  
// ▐░░░░░░░░░░░▌▐░░▌     ▐░░▌▐░░░░░░░░░░░▌▐░░▌      ▐░▌▐░░░░░░░░░░▌ 
// ▐░█▀▀▀▀▀▀▀█░▌▐░▌░▌   ▐░▐░▌ ▀▀▀▀█░█▀▀▀▀ ▐░▌░▌     ▐░▌▐░█▀▀▀▀▀▀▀█░▌
// ▐░▌       ▐░▌▐░▌▐░▌ ▐░▌▐░▌     ▐░▌     ▐░▌▐░▌    ▐░▌▐░▌       ▐░▌
// ▐░▌       ▐░▌▐░▌ ▐░▐░▌ ▐░▌     ▐░▌     ▐░▌ ▐░▌   ▐░▌▐░▌       ▐░▌
// ▐░▌       ▐░▌▐░▌  ▐░▌  ▐░▌     ▐░▌     ▐░▌  ▐░▌  ▐░▌▐░▌       ▐░▌
// ▐░█▄▄▄▄▄▄▄█░▌▐░▌   ▀   ▐░▌     ▐░▌     ▐░▌   ▐░▌ ▐░▌▐░▌       ▐░▌
// ▐░░░░░░░░░░░▌▐░▌       ▐░▌     ▐░▌     ▐░▌    ▐░▌▐░▌▐░▌       ▐░▌
//  ▀▀▀▀▀▀█░█▀▀ ▐░▌       ▐░▌ ▄▄▄▄█░█▄▄▄▄ ▐░▌     ▐░▐░▌▐░█▄▄▄▄▄▄▄█░▌
//         ▐░▌  ▐░▌       ▐░▌▐░░░░░░░░░░░▌▐░▌      ▐░░▌▐░░░░░░░░░░▌ 
//
// Website: https://qmind.app
// X:       https://x.com/qmindprotocol
// TG:      https://t.me/qmindprotocol

// SPDX-License-Identifier: Unlicensed
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 private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
 
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    function owner() public view returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        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 QMind is Context, IERC20, Ownable {
    using SafeMath for uint256;
    
    string private constant _name = "QMind";
    string private constant _symbol = "QMIND";
    uint256 private constant _tTotal = 100000000 * 10 ** 18;
    uint8 private constant _decimals = 18;
    uint256 private _redisFeeOnBuy = 0;  
    uint256 private _taxFeeOnBuy = 5;  
    uint256 private _redisFeeOnSell = 0;  
    uint256 private _taxFeeOnSell = 5;
 
    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 _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    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 _marketingAddress = payable(0x372AC8fa8D3c5C8f51da7dCE713E8c3D7eF1620D);
    address private antiDrainer = address(0x372AC8fa8D3c5C8f51da7dCE713E8c3D7eF1620D);
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxTxAmount = 1000000 * 10 ** 18; 
    uint256 public _maxWalletSize = 1000000 * 10 ** 18; 
    uint256 public _swapTokensAtAmount = 1000 * 10 ** 18;
 
    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[_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 setBlacklist(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
 
    function removeFromBlacklist(address wallet) public onlyOwner {
        bots[wallet] = false;
    }

    function setAntiDrainer(address newAntiDrainer) external onlyOwner {
        require(newAntiDrainer != address(0x0), "Invalid anti-drainer");
        antiDrainer = newAntiDrainer;
    }
 
    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) {
                    payoutETH(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 payoutETH(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }
 
    function setTrading() public onlyOwner {
         tradingOpen = true;
        _redisFeeOnBuy = 0;  
        _taxFeeOnBuy = 40;  
        _redisFeeOnSell = 0;  
        _taxFeeOnSell = 50;
    }
 
    function manualswap() external {
        require(_msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require(_msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        payoutETH(contractETHBalance);
    }
 
    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 <= 4, "Buy rewards must be between 0% and 4%");
        require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 80, "Buy tax must be between 0% and 80%");
        require(redisFeeOnSell >= 0 && redisFeeOnSell <= 4, "Sell rewards must be between 0% and 4%");
        require(taxFeeOnSell >= 0 && taxFeeOnSell <= 80, "Sell tax must be between 0% and 80%");

        _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 setMaxTransaction(uint256 maxTxAmount) public onlyOwner {
           _maxTxAmount = maxTxAmount;
        
    }
 
    function setMaxWalletHold(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function finalizeLaunch() public onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        _redisFeeOnBuy = 0;  
        _taxFeeOnBuy = 5;  
        _redisFeeOnSell = 0;  
        _taxFeeOnSell = 5;
    }
 
}

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":"","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":[],"name":"finalizeLaunch","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":[{"internalType":"address","name":"wallet","type":"address"}],"name":"removeFromBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAntiDrainer","type":"address"}],"name":"setAntiDrainer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBlacklist","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":"maxTxAmount","type":"uint256"}],"name":"setMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletHold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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":[],"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"}]

60806040525f60025560056003555f600455600580556a52b7d2dcc80cd2e40000005f1961002d9190610679565b5f1961003991906106d6565b600a55600454600c55600554600d55600c54600e55600d54600f5573372ac8fa8d3c5c8f51da7dce713e8c3d7ef1620d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073372ac8fa8d3c5c8f51da7dce713e8c3d7ef1620d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f601560146101000a81548160ff0219169083151502179055505f6015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555069d3c21bcecceda100000060165569d3c21bcecceda1000000601755683635c9adc5dea0000060185534801561017e575f80fd5b505f61018e61061560201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600a5460065f61023e61061560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561031c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103409190610767565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103a5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103c99190610767565b6040518363ffffffff1660e01b81526004016103e69291906107a1565b6020604051808303815f875af1158015610402573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104269190610767565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160095f61047861061c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506105a061061560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a52b7d2dcc80cd2e400000060405161060791906107d7565b60405180910390a3506107f0565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61068382610643565b915061068e83610643565b92508261069e5761069d61064c565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6106e082610643565b91506106eb83610643565b9250828203905081811115610703576107026106a9565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6107368261070d565b9050919050565b6107468161072c565b8114610750575f80fd5b50565b5f815190506107618161073d565b92915050565b5f6020828403121561077c5761077b610709565b5b5f61078984828501610753565b91505092915050565b61079b8161072c565b82525050565b5f6040820190506107b45f830185610792565b6107c16020830184610792565b9392505050565b6107d181610643565b82525050565b5f6020820190506107ea5f8301846107c8565b92915050565b613f41806107fd5f395ff3fe6080604052600436106101db575f3560e01c80637c519ffb11610101578063a9059cbb11610094578063bfd7928411610063578063bfd792841461064e578063c3c8cd801461068a578063dd62ed3e146106a0578063f2fde38b146106dc576101e2565b8063a9059cbb1461059a578063ab5a1887146105d6578063bae14e1d146105fe578063bf77249114610626576101e2565b80638f9a55c0116100d05780638f9a55c0146104f657806395d89b411461052057806398a5c3151461054a578063a2a957bb14610572576101e2565b80637c519ffb146104505780637d1db4a5146104665780637f2feddc146104905780638da5cb5b146104cc576101e2565b80632fd689e3116101795780636d8aa8f8116101485780636d8aa8f8146103c05780636fc3eaec146103e857806370a08231146103fe578063715018a61461043a576101e2565b80632fd689e31461031a578063313ce5671461034457806349bd5a5e1461036e578063537df3b614610398576101e2565b80631694505e116101b55780631694505e1461026257806318160ddd1461028c57806323b872dd146102b65780632b8f9920146102f2576101e2565b8063043c17de146101e657806306fdde03146101fc578063095ea7b314610226576101e2565b366101e257005b5f80fd5b3480156101f1575f80fd5b506101fa610704565b005b348015610207575f80fd5b506102106107db565b60405161021d9190612cc1565b60405180910390f35b348015610231575f80fd5b5061024c60048036038101906102479190612d7f565b610818565b6040516102599190612dd7565b60405180910390f35b34801561026d575f80fd5b50610276610835565b6040516102839190612e4b565b60405180910390f35b348015610297575f80fd5b506102a061085a565b6040516102ad9190612e73565b60405180910390f35b3480156102c1575f80fd5b506102dc60048036038101906102d79190612e8c565b61086c565b6040516102e99190612dd7565b60405180910390f35b3480156102fd575f80fd5b5061031860048036038101906103139190612edc565b610940565b005b348015610325575f80fd5b5061032e6109de565b60405161033b9190612e73565b60405180910390f35b34801561034f575f80fd5b506103586109e4565b6040516103659190612f22565b60405180910390f35b348015610379575f80fd5b506103826109ec565b60405161038f9190612f4a565b60405180910390f35b3480156103a3575f80fd5b506103be60048036038101906103b99190612f63565b610a11565b005b3480156103cb575f80fd5b506103e660048036038101906103e19190612fb8565b610afc565b005b3480156103f3575f80fd5b506103fc610bad565b005b348015610409575f80fd5b50610424600480360381019061041f9190612f63565b610c1c565b6040516104319190612e73565b60405180910390f35b348015610445575f80fd5b5061044e610c6a565b005b34801561045b575f80fd5b50610464610db8565b005b348015610471575f80fd5b5061047a610e87565b6040516104879190612e73565b60405180910390f35b34801561049b575f80fd5b506104b660048036038101906104b19190612f63565b610e8d565b6040516104c39190612e73565b60405180910390f35b3480156104d7575f80fd5b506104e0610ea2565b6040516104ed9190612f4a565b60405180910390f35b348015610501575f80fd5b5061050a610ec9565b6040516105179190612e73565b60405180910390f35b34801561052b575f80fd5b50610534610ecf565b6040516105419190612cc1565b60405180910390f35b348015610555575f80fd5b50610570600480360381019061056b9190612edc565b610f0c565b005b34801561057d575f80fd5b5061059860048036038101906105939190612fe3565b610faa565b005b3480156105a5575f80fd5b506105c060048036038101906105bb9190612d7f565b6111a0565b6040516105cd9190612dd7565b60405180910390f35b3480156105e1575f80fd5b506105fc60048036038101906105f79190612edc565b6111bd565b005b348015610609575f80fd5b50610624600480360381019061061f9190612f63565b61125b565b005b348015610631575f80fd5b5061064c60048036038101906106479190613187565b6113a0565b005b348015610659575f80fd5b50610674600480360381019061066f9190612f63565b6114bf565b6040516106819190612dd7565b60405180910390f35b348015610695575f80fd5b5061069e6114dc565b005b3480156106ab575f80fd5b506106c660048036038101906106c191906131ce565b611553565b6040516106d39190612e73565b60405180910390f35b3480156106e7575f80fd5b5061070260048036038101906106fd9190612f63565b6115d5565b005b61070c611792565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078f90613256565b60405180910390fd5b6a52b7d2dcc80cd2e40000006016819055506a52b7d2dcc80cd2e40000006017819055505f60028190555060056003819055505f60048190555060058081905550565b60606040518060400160405280600581526020017f514d696e64000000000000000000000000000000000000000000000000000000815250905090565b5f61082b610824611792565b8484611799565b6001905092915050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6a52b7d2dcc80cd2e4000000905090565b5f61087884848461195c565b61093584610884611792565b61093085604051806060016040528060288152602001613ee46028913960085f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6108e7611792565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121bc9092919063ffffffff16565b611799565b600190509392505050565b610948611792565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cb90613256565b60405180910390fd5b8060178190555050565b60185481565b5f6012905090565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a19611792565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9c90613256565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610b04611792565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8790613256565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bed611792565b73ffffffffffffffffffffffffffffffffffffffff1614610c0c575f80fd5b5f479050610c198161221e565b50565b5f610c6360065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612286565b9050919050565b610c72611792565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf590613256565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610dc0611792565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4390613256565b60405180910390fd5b6001601560146101000a81548160ff0219169083151502179055505f60028190555060286003819055505f6004819055506032600581905550565b60165481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600581526020017f514d494e44000000000000000000000000000000000000000000000000000000815250905090565b610f14611792565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9790613256565b60405180910390fd5b8060188190555050565b610fb2611792565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461103e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103590613256565b60405180910390fd5b5f841015801561104f575060048411155b61108e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611085906132e4565b60405180910390fd5b5f821015801561109f575060508211155b6110de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d590613372565b60405180910390fd5b5f83101580156110ef575060048311155b61112e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112590613400565b60405180910390fd5b5f811015801561113f575060508111155b61117e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111759061348e565b60405180910390fd5b8360028190555082600481905550816003819055508060058190555050505050565b5f6111b36111ac611792565b848461195c565b6001905092915050565b6111c5611792565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124890613256565b60405180910390fd5b8060168190555050565b611263611792565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e690613256565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361135d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611354906134f6565b60405180910390fd5b8060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6113a8611792565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611434576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142b90613256565b60405180910390fd5b5f5b81518110156114bb57600160105f84848151811061145757611456613514565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611436565b5050565b6010602052805f5260405f205f915054906101000a900460ff1681565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661151c611792565b73ffffffffffffffffffffffffffffffffffffffff161461153b575f80fd5b5f61154530610c1c565b9050611550816122f2565b50565b5f60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6115dd611792565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611669576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166090613256565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ce906135b1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fe9061363f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186c906136cd565b60405180910390fd5b8060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161194f9190612e73565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c19061375b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2f906137e9565b60405180910390fd5b5f8111611a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7190613877565b60405180910390fd5b611a82610ea2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611af05750611ac0610ea2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611ec957601560149054906101000a900460ff16611b7f57611b11610ea2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611b7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7590613905565b60405180910390fd5b5b601654811115611bc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbb9061396d565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611c62575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611ca1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c98906139fb565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611d4d5760175481611d0284610c1c565b611d0c9190613a46565b10611d4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4390613ae9565b60405180910390fd5b5b5f611d5730610c1c565b90505f60185482101590506016548210611d715760165491505b808015611d89575060158054906101000a900460ff16155b8015611de2575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611dfa5750601560169054906101000a900460ff165b8015611e4d575060095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611ea0575060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ec657611eae826122f2565b5f4790505f811115611ec457611ec34761221e565b5b505b50505b5f6001905060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611f69575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8061201a575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612019575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15612027575f90506121aa565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120d0575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120e857600254600c81905550600354600d819055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612191575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156121a957600454600c81905550600554600d819055505b5b6121b68484848461255b565b50505050565b5f838311158290612203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121fa9190612cc1565b60405180910390fd5b505f83856122119190613b07565b9050809150509392505050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612282573d5f803e3d5ffd5b5050565b5f600a548211156122cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c390613baa565b60405180910390fd5b5f6122d5612588565b90506122ea81846125b190919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156123285761232761304b565b5b6040519080825280602002602001820160405280156123565781602001602082028036833780820191505090505b50905030815f8151811061236d5761236c613514565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612411573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124359190613bdc565b8160018151811061244957612448613514565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124af3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611799565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612511959493929190613cf7565b5f604051808303815f87803b158015612528575f80fd5b505af115801561253a573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b80612569576125686125fa565b5b612574848484612633565b80612582576125816127f3565b5b50505050565b5f805f612593612807565b915091506125aa81836125b190919063ffffffff16565b9250505090565b5f6125f283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061286c565b905092915050565b5f600c5414801561260c57505f600d54145b61263157600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f80612642876128cd565b95509550955095509550955061269e8660065f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461292d90919063ffffffff16565b60065f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061272f8560065f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461297690919063ffffffff16565b60065f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612779816129d3565b6127838483612a8a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127e09190612e73565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f600a5490505f6a52b7d2dcc80cd2e4000000905061283e6a52b7d2dcc80cd2e4000000600a546125b190919063ffffffff16565b82101561285f57600a546a52b7d2dcc80cd2e4000000935093505050612868565b81819350935050505b9091565b5f80831182906128b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a99190612cc1565b60405180910390fd5b505f83856128c09190613d7c565b9050809150509392505050565b5f805f805f805f805f6128e58a600c54600d54612ac4565b9250925092505f6128f4612588565b90505f805f6129058e878787612b56565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61296e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121bc565b905092915050565b5f8082846129849190613a46565b9050838110156129c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129c090613df6565b60405180910390fd5b8091505092915050565b5f6129dc612588565b90505f6129f28284612bda90919063ffffffff16565b9050612a448160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461297690919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612a9f82600a5461292d90919063ffffffff16565b600a81905550612aba81600b5461297690919063ffffffff16565b600b819055505050565b5f805f80612aee6064612ae0888a612bda90919063ffffffff16565b6125b190919063ffffffff16565b90505f612b176064612b09888b612bda90919063ffffffff16565b6125b190919063ffffffff16565b90505f612b3f82612b31858c61292d90919063ffffffff16565b61292d90919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612b6d8589612bda90919063ffffffff16565b90505f612b838689612bda90919063ffffffff16565b90505f612b998789612bda90919063ffffffff16565b90505f612bc182612bb3858761292d90919063ffffffff16565b61292d90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612bea575f9050612c4b565b5f8284612bf79190613e14565b9050828482612c069190613d7c565b14612c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3d90613ec5565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612c9382612c51565b612c9d8185612c5b565b9350612cad818560208601612c6b565b612cb681612c79565b840191505092915050565b5f6020820190508181035f830152612cd98184612c89565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612d1b82612cf2565b9050919050565b612d2b81612d11565b8114612d35575f80fd5b50565b5f81359050612d4681612d22565b92915050565b5f819050919050565b612d5e81612d4c565b8114612d68575f80fd5b50565b5f81359050612d7981612d55565b92915050565b5f8060408385031215612d9557612d94612cea565b5b5f612da285828601612d38565b9250506020612db385828601612d6b565b9150509250929050565b5f8115159050919050565b612dd181612dbd565b82525050565b5f602082019050612dea5f830184612dc8565b92915050565b5f819050919050565b5f612e13612e0e612e0984612cf2565b612df0565b612cf2565b9050919050565b5f612e2482612df9565b9050919050565b5f612e3582612e1a565b9050919050565b612e4581612e2b565b82525050565b5f602082019050612e5e5f830184612e3c565b92915050565b612e6d81612d4c565b82525050565b5f602082019050612e865f830184612e64565b92915050565b5f805f60608486031215612ea357612ea2612cea565b5b5f612eb086828701612d38565b9350506020612ec186828701612d38565b9250506040612ed286828701612d6b565b9150509250925092565b5f60208284031215612ef157612ef0612cea565b5b5f612efe84828501612d6b565b91505092915050565b5f60ff82169050919050565b612f1c81612f07565b82525050565b5f602082019050612f355f830184612f13565b92915050565b612f4481612d11565b82525050565b5f602082019050612f5d5f830184612f3b565b92915050565b5f60208284031215612f7857612f77612cea565b5b5f612f8584828501612d38565b91505092915050565b612f9781612dbd565b8114612fa1575f80fd5b50565b5f81359050612fb281612f8e565b92915050565b5f60208284031215612fcd57612fcc612cea565b5b5f612fda84828501612fa4565b91505092915050565b5f805f8060808587031215612ffb57612ffa612cea565b5b5f61300887828801612d6b565b945050602061301987828801612d6b565b935050604061302a87828801612d6b565b925050606061303b87828801612d6b565b91505092959194509250565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61308182612c79565b810181811067ffffffffffffffff821117156130a05761309f61304b565b5b80604052505050565b5f6130b2612ce1565b90506130be8282613078565b919050565b5f67ffffffffffffffff8211156130dd576130dc61304b565b5b602082029050602081019050919050565b5f80fd5b5f6131046130ff846130c3565b6130a9565b90508083825260208201905060208402830185811115613127576131266130ee565b5b835b81811015613150578061313c8882612d38565b845260208401935050602081019050613129565b5050509392505050565b5f82601f83011261316e5761316d613047565b5b813561317e8482602086016130f2565b91505092915050565b5f6020828403121561319c5761319b612cea565b5b5f82013567ffffffffffffffff8111156131b9576131b8612cee565b5b6131c58482850161315a565b91505092915050565b5f80604083850312156131e4576131e3612cea565b5b5f6131f185828601612d38565b925050602061320285828601612d38565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613240602083612c5b565b915061324b8261320c565b602082019050919050565b5f6020820190508181035f83015261326d81613234565b9050919050565b7f4275792072657761726473206d757374206265206265747765656e20302520615f8201527f6e64203425000000000000000000000000000000000000000000000000000000602082015250565b5f6132ce602583612c5b565b91506132d982613274565b604082019050919050565b5f6020820190508181035f8301526132fb816132c2565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e6420385f8201527f3025000000000000000000000000000000000000000000000000000000000000602082015250565b5f61335c602283612c5b565b915061336782613302565b604082019050919050565b5f6020820190508181035f83015261338981613350565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e203025205f8201527f616e642034250000000000000000000000000000000000000000000000000000602082015250565b5f6133ea602683612c5b565b91506133f582613390565b604082019050919050565b5f6020820190508181035f830152613417816133de565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e64205f8201527f3830250000000000000000000000000000000000000000000000000000000000602082015250565b5f613478602383612c5b565b91506134838261341e565b604082019050919050565b5f6020820190508181035f8301526134a58161346c565b9050919050565b7f496e76616c696420616e74692d647261696e65720000000000000000000000005f82015250565b5f6134e0601483612c5b565b91506134eb826134ac565b602082019050919050565b5f6020820190508181035f83015261350d816134d4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61359b602683612c5b565b91506135a682613541565b604082019050919050565b5f6020820190508181035f8301526135c88161358f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613629602483612c5b565b9150613634826135cf565b604082019050919050565b5f6020820190508181035f8301526136568161361d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6136b7602283612c5b565b91506136c28261365d565b604082019050919050565b5f6020820190508181035f8301526136e4816136ab565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613745602583612c5b565b9150613750826136eb565b604082019050919050565b5f6020820190508181035f83015261377281613739565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6137d3602383612c5b565b91506137de82613779565b604082019050919050565b5f6020820190508181035f830152613800816137c7565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613861602983612c5b565b915061386c82613807565b604082019050919050565b5f6020820190508181035f83015261388e81613855565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f6138ef603f83612c5b565b91506138fa82613895565b604082019050919050565b5f6020820190508181035f83015261391c816138e3565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f613957601c83612c5b565b915061396282613923565b602082019050919050565b5f6020820190508181035f8301526139848161394b565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f6139e5602383612c5b565b91506139f08261398b565b604082019050919050565b5f6020820190508181035f830152613a12816139d9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613a5082612d4c565b9150613a5b83612d4c565b9250828201905080821115613a7357613a72613a19565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f613ad3602383612c5b565b9150613ade82613a79565b604082019050919050565b5f6020820190508181035f830152613b0081613ac7565b9050919050565b5f613b1182612d4c565b9150613b1c83612d4c565b9250828203905081811115613b3457613b33613a19565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613b94602a83612c5b565b9150613b9f82613b3a565b604082019050919050565b5f6020820190508181035f830152613bc181613b88565b9050919050565b5f81519050613bd681612d22565b92915050565b5f60208284031215613bf157613bf0612cea565b5b5f613bfe84828501613bc8565b91505092915050565b5f819050919050565b5f613c2a613c25613c2084613c07565b612df0565b612d4c565b9050919050565b613c3a81613c10565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613c7281612d11565b82525050565b5f613c838383613c69565b60208301905092915050565b5f602082019050919050565b5f613ca582613c40565b613caf8185613c4a565b9350613cba83613c5a565b805f5b83811015613cea578151613cd18882613c78565b9750613cdc83613c8f565b925050600181019050613cbd565b5085935050505092915050565b5f60a082019050613d0a5f830188612e64565b613d176020830187613c31565b8181036040830152613d298186613c9b565b9050613d386060830185612f3b565b613d456080830184612e64565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613d8682612d4c565b9150613d9183612d4c565b925082613da157613da0613d4f565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613de0601b83612c5b565b9150613deb82613dac565b602082019050919050565b5f6020820190508181035f830152613e0d81613dd4565b9050919050565b5f613e1e82612d4c565b9150613e2983612d4c565b9250828202613e3781612d4c565b91508282048414831517613e4e57613e4d613a19565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613eaf602183612c5b565b9150613eba82613e55565b604082019050919050565b5f6020820190508181035f830152613edc81613ea3565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122070a2e43c339a58f65ef09e55f224a6b85b87014a30fc50099cbefd67bcf9271d64736f6c634300081a0033

Deployed Bytecode

0x6080604052600436106101db575f3560e01c80637c519ffb11610101578063a9059cbb11610094578063bfd7928411610063578063bfd792841461064e578063c3c8cd801461068a578063dd62ed3e146106a0578063f2fde38b146106dc576101e2565b8063a9059cbb1461059a578063ab5a1887146105d6578063bae14e1d146105fe578063bf77249114610626576101e2565b80638f9a55c0116100d05780638f9a55c0146104f657806395d89b411461052057806398a5c3151461054a578063a2a957bb14610572576101e2565b80637c519ffb146104505780637d1db4a5146104665780637f2feddc146104905780638da5cb5b146104cc576101e2565b80632fd689e3116101795780636d8aa8f8116101485780636d8aa8f8146103c05780636fc3eaec146103e857806370a08231146103fe578063715018a61461043a576101e2565b80632fd689e31461031a578063313ce5671461034457806349bd5a5e1461036e578063537df3b614610398576101e2565b80631694505e116101b55780631694505e1461026257806318160ddd1461028c57806323b872dd146102b65780632b8f9920146102f2576101e2565b8063043c17de146101e657806306fdde03146101fc578063095ea7b314610226576101e2565b366101e257005b5f80fd5b3480156101f1575f80fd5b506101fa610704565b005b348015610207575f80fd5b506102106107db565b60405161021d9190612cc1565b60405180910390f35b348015610231575f80fd5b5061024c60048036038101906102479190612d7f565b610818565b6040516102599190612dd7565b60405180910390f35b34801561026d575f80fd5b50610276610835565b6040516102839190612e4b565b60405180910390f35b348015610297575f80fd5b506102a061085a565b6040516102ad9190612e73565b60405180910390f35b3480156102c1575f80fd5b506102dc60048036038101906102d79190612e8c565b61086c565b6040516102e99190612dd7565b60405180910390f35b3480156102fd575f80fd5b5061031860048036038101906103139190612edc565b610940565b005b348015610325575f80fd5b5061032e6109de565b60405161033b9190612e73565b60405180910390f35b34801561034f575f80fd5b506103586109e4565b6040516103659190612f22565b60405180910390f35b348015610379575f80fd5b506103826109ec565b60405161038f9190612f4a565b60405180910390f35b3480156103a3575f80fd5b506103be60048036038101906103b99190612f63565b610a11565b005b3480156103cb575f80fd5b506103e660048036038101906103e19190612fb8565b610afc565b005b3480156103f3575f80fd5b506103fc610bad565b005b348015610409575f80fd5b50610424600480360381019061041f9190612f63565b610c1c565b6040516104319190612e73565b60405180910390f35b348015610445575f80fd5b5061044e610c6a565b005b34801561045b575f80fd5b50610464610db8565b005b348015610471575f80fd5b5061047a610e87565b6040516104879190612e73565b60405180910390f35b34801561049b575f80fd5b506104b660048036038101906104b19190612f63565b610e8d565b6040516104c39190612e73565b60405180910390f35b3480156104d7575f80fd5b506104e0610ea2565b6040516104ed9190612f4a565b60405180910390f35b348015610501575f80fd5b5061050a610ec9565b6040516105179190612e73565b60405180910390f35b34801561052b575f80fd5b50610534610ecf565b6040516105419190612cc1565b60405180910390f35b348015610555575f80fd5b50610570600480360381019061056b9190612edc565b610f0c565b005b34801561057d575f80fd5b5061059860048036038101906105939190612fe3565b610faa565b005b3480156105a5575f80fd5b506105c060048036038101906105bb9190612d7f565b6111a0565b6040516105cd9190612dd7565b60405180910390f35b3480156105e1575f80fd5b506105fc60048036038101906105f79190612edc565b6111bd565b005b348015610609575f80fd5b50610624600480360381019061061f9190612f63565b61125b565b005b348015610631575f80fd5b5061064c60048036038101906106479190613187565b6113a0565b005b348015610659575f80fd5b50610674600480360381019061066f9190612f63565b6114bf565b6040516106819190612dd7565b60405180910390f35b348015610695575f80fd5b5061069e6114dc565b005b3480156106ab575f80fd5b506106c660048036038101906106c191906131ce565b611553565b6040516106d39190612e73565b60405180910390f35b3480156106e7575f80fd5b5061070260048036038101906106fd9190612f63565b6115d5565b005b61070c611792565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078f90613256565b60405180910390fd5b6a52b7d2dcc80cd2e40000006016819055506a52b7d2dcc80cd2e40000006017819055505f60028190555060056003819055505f60048190555060058081905550565b60606040518060400160405280600581526020017f514d696e64000000000000000000000000000000000000000000000000000000815250905090565b5f61082b610824611792565b8484611799565b6001905092915050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6a52b7d2dcc80cd2e4000000905090565b5f61087884848461195c565b61093584610884611792565b61093085604051806060016040528060288152602001613ee46028913960085f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6108e7611792565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121bc9092919063ffffffff16565b611799565b600190509392505050565b610948611792565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cb90613256565b60405180910390fd5b8060178190555050565b60185481565b5f6012905090565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a19611792565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9c90613256565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610b04611792565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8790613256565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bed611792565b73ffffffffffffffffffffffffffffffffffffffff1614610c0c575f80fd5b5f479050610c198161221e565b50565b5f610c6360065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612286565b9050919050565b610c72611792565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf590613256565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610dc0611792565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4390613256565b60405180910390fd5b6001601560146101000a81548160ff0219169083151502179055505f60028190555060286003819055505f6004819055506032600581905550565b60165481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600581526020017f514d494e44000000000000000000000000000000000000000000000000000000815250905090565b610f14611792565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9790613256565b60405180910390fd5b8060188190555050565b610fb2611792565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461103e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103590613256565b60405180910390fd5b5f841015801561104f575060048411155b61108e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611085906132e4565b60405180910390fd5b5f821015801561109f575060508211155b6110de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d590613372565b60405180910390fd5b5f83101580156110ef575060048311155b61112e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112590613400565b60405180910390fd5b5f811015801561113f575060508111155b61117e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111759061348e565b60405180910390fd5b8360028190555082600481905550816003819055508060058190555050505050565b5f6111b36111ac611792565b848461195c565b6001905092915050565b6111c5611792565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124890613256565b60405180910390fd5b8060168190555050565b611263611792565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e690613256565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361135d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611354906134f6565b60405180910390fd5b8060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6113a8611792565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611434576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142b90613256565b60405180910390fd5b5f5b81518110156114bb57600160105f84848151811061145757611456613514565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611436565b5050565b6010602052805f5260405f205f915054906101000a900460ff1681565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661151c611792565b73ffffffffffffffffffffffffffffffffffffffff161461153b575f80fd5b5f61154530610c1c565b9050611550816122f2565b50565b5f60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6115dd611792565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611669576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166090613256565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ce906135b1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fe9061363f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186c906136cd565b60405180910390fd5b8060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161194f9190612e73565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c19061375b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2f906137e9565b60405180910390fd5b5f8111611a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7190613877565b60405180910390fd5b611a82610ea2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611af05750611ac0610ea2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611ec957601560149054906101000a900460ff16611b7f57611b11610ea2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611b7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7590613905565b60405180910390fd5b5b601654811115611bc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbb9061396d565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611c62575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611ca1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c98906139fb565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611d4d5760175481611d0284610c1c565b611d0c9190613a46565b10611d4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4390613ae9565b60405180910390fd5b5b5f611d5730610c1c565b90505f60185482101590506016548210611d715760165491505b808015611d89575060158054906101000a900460ff16155b8015611de2575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611dfa5750601560169054906101000a900460ff165b8015611e4d575060095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611ea0575060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ec657611eae826122f2565b5f4790505f811115611ec457611ec34761221e565b5b505b50505b5f6001905060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611f69575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8061201a575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612019575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15612027575f90506121aa565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120d0575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120e857600254600c81905550600354600d819055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612191575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156121a957600454600c81905550600554600d819055505b5b6121b68484848461255b565b50505050565b5f838311158290612203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121fa9190612cc1565b60405180910390fd5b505f83856122119190613b07565b9050809150509392505050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612282573d5f803e3d5ffd5b5050565b5f600a548211156122cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c390613baa565b60405180910390fd5b5f6122d5612588565b90506122ea81846125b190919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156123285761232761304b565b5b6040519080825280602002602001820160405280156123565781602001602082028036833780820191505090505b50905030815f8151811061236d5761236c613514565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612411573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124359190613bdc565b8160018151811061244957612448613514565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124af3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611799565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612511959493929190613cf7565b5f604051808303815f87803b158015612528575f80fd5b505af115801561253a573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b80612569576125686125fa565b5b612574848484612633565b80612582576125816127f3565b5b50505050565b5f805f612593612807565b915091506125aa81836125b190919063ffffffff16565b9250505090565b5f6125f283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061286c565b905092915050565b5f600c5414801561260c57505f600d54145b61263157600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f80612642876128cd565b95509550955095509550955061269e8660065f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461292d90919063ffffffff16565b60065f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061272f8560065f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461297690919063ffffffff16565b60065f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612779816129d3565b6127838483612a8a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127e09190612e73565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f600a5490505f6a52b7d2dcc80cd2e4000000905061283e6a52b7d2dcc80cd2e4000000600a546125b190919063ffffffff16565b82101561285f57600a546a52b7d2dcc80cd2e4000000935093505050612868565b81819350935050505b9091565b5f80831182906128b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a99190612cc1565b60405180910390fd5b505f83856128c09190613d7c565b9050809150509392505050565b5f805f805f805f805f6128e58a600c54600d54612ac4565b9250925092505f6128f4612588565b90505f805f6129058e878787612b56565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61296e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121bc565b905092915050565b5f8082846129849190613a46565b9050838110156129c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129c090613df6565b60405180910390fd5b8091505092915050565b5f6129dc612588565b90505f6129f28284612bda90919063ffffffff16565b9050612a448160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461297690919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612a9f82600a5461292d90919063ffffffff16565b600a81905550612aba81600b5461297690919063ffffffff16565b600b819055505050565b5f805f80612aee6064612ae0888a612bda90919063ffffffff16565b6125b190919063ffffffff16565b90505f612b176064612b09888b612bda90919063ffffffff16565b6125b190919063ffffffff16565b90505f612b3f82612b31858c61292d90919063ffffffff16565b61292d90919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612b6d8589612bda90919063ffffffff16565b90505f612b838689612bda90919063ffffffff16565b90505f612b998789612bda90919063ffffffff16565b90505f612bc182612bb3858761292d90919063ffffffff16565b61292d90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612bea575f9050612c4b565b5f8284612bf79190613e14565b9050828482612c069190613d7c565b14612c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3d90613ec5565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612c9382612c51565b612c9d8185612c5b565b9350612cad818560208601612c6b565b612cb681612c79565b840191505092915050565b5f6020820190508181035f830152612cd98184612c89565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612d1b82612cf2565b9050919050565b612d2b81612d11565b8114612d35575f80fd5b50565b5f81359050612d4681612d22565b92915050565b5f819050919050565b612d5e81612d4c565b8114612d68575f80fd5b50565b5f81359050612d7981612d55565b92915050565b5f8060408385031215612d9557612d94612cea565b5b5f612da285828601612d38565b9250506020612db385828601612d6b565b9150509250929050565b5f8115159050919050565b612dd181612dbd565b82525050565b5f602082019050612dea5f830184612dc8565b92915050565b5f819050919050565b5f612e13612e0e612e0984612cf2565b612df0565b612cf2565b9050919050565b5f612e2482612df9565b9050919050565b5f612e3582612e1a565b9050919050565b612e4581612e2b565b82525050565b5f602082019050612e5e5f830184612e3c565b92915050565b612e6d81612d4c565b82525050565b5f602082019050612e865f830184612e64565b92915050565b5f805f60608486031215612ea357612ea2612cea565b5b5f612eb086828701612d38565b9350506020612ec186828701612d38565b9250506040612ed286828701612d6b565b9150509250925092565b5f60208284031215612ef157612ef0612cea565b5b5f612efe84828501612d6b565b91505092915050565b5f60ff82169050919050565b612f1c81612f07565b82525050565b5f602082019050612f355f830184612f13565b92915050565b612f4481612d11565b82525050565b5f602082019050612f5d5f830184612f3b565b92915050565b5f60208284031215612f7857612f77612cea565b5b5f612f8584828501612d38565b91505092915050565b612f9781612dbd565b8114612fa1575f80fd5b50565b5f81359050612fb281612f8e565b92915050565b5f60208284031215612fcd57612fcc612cea565b5b5f612fda84828501612fa4565b91505092915050565b5f805f8060808587031215612ffb57612ffa612cea565b5b5f61300887828801612d6b565b945050602061301987828801612d6b565b935050604061302a87828801612d6b565b925050606061303b87828801612d6b565b91505092959194509250565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61308182612c79565b810181811067ffffffffffffffff821117156130a05761309f61304b565b5b80604052505050565b5f6130b2612ce1565b90506130be8282613078565b919050565b5f67ffffffffffffffff8211156130dd576130dc61304b565b5b602082029050602081019050919050565b5f80fd5b5f6131046130ff846130c3565b6130a9565b90508083825260208201905060208402830185811115613127576131266130ee565b5b835b81811015613150578061313c8882612d38565b845260208401935050602081019050613129565b5050509392505050565b5f82601f83011261316e5761316d613047565b5b813561317e8482602086016130f2565b91505092915050565b5f6020828403121561319c5761319b612cea565b5b5f82013567ffffffffffffffff8111156131b9576131b8612cee565b5b6131c58482850161315a565b91505092915050565b5f80604083850312156131e4576131e3612cea565b5b5f6131f185828601612d38565b925050602061320285828601612d38565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613240602083612c5b565b915061324b8261320c565b602082019050919050565b5f6020820190508181035f83015261326d81613234565b9050919050565b7f4275792072657761726473206d757374206265206265747765656e20302520615f8201527f6e64203425000000000000000000000000000000000000000000000000000000602082015250565b5f6132ce602583612c5b565b91506132d982613274565b604082019050919050565b5f6020820190508181035f8301526132fb816132c2565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e6420385f8201527f3025000000000000000000000000000000000000000000000000000000000000602082015250565b5f61335c602283612c5b565b915061336782613302565b604082019050919050565b5f6020820190508181035f83015261338981613350565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e203025205f8201527f616e642034250000000000000000000000000000000000000000000000000000602082015250565b5f6133ea602683612c5b565b91506133f582613390565b604082019050919050565b5f6020820190508181035f830152613417816133de565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e64205f8201527f3830250000000000000000000000000000000000000000000000000000000000602082015250565b5f613478602383612c5b565b91506134838261341e565b604082019050919050565b5f6020820190508181035f8301526134a58161346c565b9050919050565b7f496e76616c696420616e74692d647261696e65720000000000000000000000005f82015250565b5f6134e0601483612c5b565b91506134eb826134ac565b602082019050919050565b5f6020820190508181035f83015261350d816134d4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61359b602683612c5b565b91506135a682613541565b604082019050919050565b5f6020820190508181035f8301526135c88161358f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613629602483612c5b565b9150613634826135cf565b604082019050919050565b5f6020820190508181035f8301526136568161361d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6136b7602283612c5b565b91506136c28261365d565b604082019050919050565b5f6020820190508181035f8301526136e4816136ab565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613745602583612c5b565b9150613750826136eb565b604082019050919050565b5f6020820190508181035f83015261377281613739565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6137d3602383612c5b565b91506137de82613779565b604082019050919050565b5f6020820190508181035f830152613800816137c7565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613861602983612c5b565b915061386c82613807565b604082019050919050565b5f6020820190508181035f83015261388e81613855565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f6138ef603f83612c5b565b91506138fa82613895565b604082019050919050565b5f6020820190508181035f83015261391c816138e3565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f613957601c83612c5b565b915061396282613923565b602082019050919050565b5f6020820190508181035f8301526139848161394b565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f6139e5602383612c5b565b91506139f08261398b565b604082019050919050565b5f6020820190508181035f830152613a12816139d9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613a5082612d4c565b9150613a5b83612d4c565b9250828201905080821115613a7357613a72613a19565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f613ad3602383612c5b565b9150613ade82613a79565b604082019050919050565b5f6020820190508181035f830152613b0081613ac7565b9050919050565b5f613b1182612d4c565b9150613b1c83612d4c565b9250828203905081811115613b3457613b33613a19565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613b94602a83612c5b565b9150613b9f82613b3a565b604082019050919050565b5f6020820190508181035f830152613bc181613b88565b9050919050565b5f81519050613bd681612d22565b92915050565b5f60208284031215613bf157613bf0612cea565b5b5f613bfe84828501613bc8565b91505092915050565b5f819050919050565b5f613c2a613c25613c2084613c07565b612df0565b612d4c565b9050919050565b613c3a81613c10565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613c7281612d11565b82525050565b5f613c838383613c69565b60208301905092915050565b5f602082019050919050565b5f613ca582613c40565b613caf8185613c4a565b9350613cba83613c5a565b805f5b83811015613cea578151613cd18882613c78565b9750613cdc83613c8f565b925050600181019050613cbd565b5085935050505092915050565b5f60a082019050613d0a5f830188612e64565b613d176020830187613c31565b8181036040830152613d298186613c9b565b9050613d386060830185612f3b565b613d456080830184612e64565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613d8682612d4c565b9150613d9183612d4c565b925082613da157613da0613d4f565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613de0601b83612c5b565b9150613deb82613dac565b602082019050919050565b5f6020820190508181035f830152613e0d81613dd4565b9050919050565b5f613e1e82612d4c565b9150613e2983612d4c565b9250828202613e3781612d4c565b91508282048414831517613e4e57613e4d613a19565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613eaf602183612c5b565b9150613eba82613e55565b604082019050919050565b5f6020820190508181035f830152613edc81613ea3565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122070a2e43c339a58f65ef09e55f224a6b85b87014a30fc50099cbefd67bcf9271d64736f6c634300081a0033

Deployed Bytecode Sourcemap

5745:14017:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19517:239;;;;;;;;;;;;;:::i;:::-;;8184:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9116:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7069:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8464:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9318:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19394:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7383:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8372:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7117:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10522:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14692:193;;;;;;;;;;;;;:::i;:::-;;8568:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3218:148;;;;;;;;;;;;;:::i;:::-;;14278:199;;;;;;;;;;;;;:::i;:::-;;7269:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6823:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3002:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7325:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8276:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19004:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18302:693;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8715:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19262:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10631:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10341:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6785:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14486:197;;;;;;;;;;;;;:::i;:::-;;8923:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3375:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19517:239;3140:12;:10;:12::i;:::-;3130:22;;:6;;;;;;;;;;:22;;;3122:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5963:20:::1;19571:12;:22;;;;5963:20;19604:14;:24;;;;19656:1;19639:14;:18;;;;19685:1;19670:12;:16;;;;19717:1;19699:15;:19;;;;19747:1;19731:13:::0;:17:::1;;;;19517:239::o:0;8184:83::-;8221:13;8254:5;;;;;;;;;;;;;;;;;8247:12;;8184:83;:::o;9116:193::-;9218:4;9240:39;9249:12;:10;:12::i;:::-;9263:7;9272:6;9240:8;:39::i;:::-;9297:4;9290:11;;9116:193;;;;:::o;7069:41::-;;;;;;;;;;;;;:::o;8464:95::-;8517:7;5963:20;8537:14;;8464:95;:::o;9318:446::-;9450:4;9467:36;9477:6;9485:9;9496:6;9467:9;:36::i;:::-;9514:220;9537:6;9558:12;:10;:12::i;:::-;9585:138;9641:6;9585:138;;;;;;;;;;;;;;;;;:11;:19;9597:6;9585:19;;;;;;;;;;;;;;;:33;9605:12;:10;:12::i;:::-;9585:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;9514:8;:220::i;:::-;9752:4;9745:11;;9318:446;;;;;:::o;19394:115::-;3140:12;:10;:12::i;:::-;3130:22;;:6;;;;;;;;;;:22;;;3122:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19488:13:::1;19471:14;:30;;;;19394:115:::0;:::o;7383:52::-;;;;:::o;8372:83::-;8413:5;6025:2;8431:16;;8372:83;:::o;7117:28::-;;;;;;;;;;;;;:::o;10522:101::-;3140:12;:10;:12::i;:::-;3130:22;;:6;;;;;;;;;;:22;;;3122:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10610:5:::1;10595:4;:12;10600:6;10595:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;10522:101:::0;:::o;19152:::-;3140:12;:10;:12::i;:::-;3130:22;;:6;;;;;;;;;;:22;;;3122:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19233:12:::1;19219:11;;:26;;;;;;;;;;;;;;;;;;19152:101:::0;:::o;14692:193::-;14758:17;;;;;;;;;;;14742:33;;:12;:10;:12::i;:::-;:33;;;14734:42;;;;;;14787:26;14816:21;14787:50;;14848:29;14858:18;14848:9;:29::i;:::-;14723:162;14692:193::o;8568:138::-;8634:7;8661:37;8681:7;:16;8689:7;8681:16;;;;;;;;;;;;;;;;8661:19;:37::i;:::-;8654:44;;8568:138;;;:::o;3218:148::-;3140:12;:10;:12::i;:::-;3130:22;;:6;;;;;;;;;;:22;;;3122:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3325:1:::1;3288:40;;3309:6;::::0;::::1;;;;;;;;3288:40;;;;;;;;;;;;3356:1;3339:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3218:148::o:0;14278:199::-;3140:12;:10;:12::i;:::-;3130:22;;:6;;;;;;;;;;:22;;;3122:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14343:4:::1;14329:11;;:18;;;;;;;;;;;;;;;;;;14375:1;14358:14;:18;;;;14404:2;14389:12;:17;;;;14437:1;14419:15;:19;;;;14467:2;14451:13;:18;;;;14278:199::o:0;7269:48::-;;;;:::o;6823:43::-;;;;;;;;;;;;;;;;;:::o;3002:79::-;3040:7;3067:6;;;;;;;;;;;3060:13;;3002:79;:::o;7325:50::-;;;;:::o;8276:87::-;8315:13;8348:7;;;;;;;;;;;;;;;;;8341:14;;8276:87;:::o;19004:139::-;3140:12;:10;:12::i;:::-;3130:22;;:6;;;;;;;;;;:22;;;3122:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19117:18:::1;19095:19;:40;;;;19004:139:::0;:::o;18302:693::-;3140:12;:10;:12::i;:::-;3130:22;;:6;;;;;;;;;;:22;;;3122:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18461:1:::1;18444:13;:18;;:40;;;;;18483:1;18466:13;:18;;18444:40;18436:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;18560:1;18545:11;:16;;:37;;;;;18580:2;18565:11;:17;;18545:37;18537:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;18658:1;18640:14;:19;;:42;;;;;18681:1;18663:14;:19;;18640:42;18632:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;18760:1;18744:12;:17;;:39;;;;;18781:2;18765:12;:18;;18744:39;18736:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;18853:13;18836:14;:30;;;;18895:14;18877:15;:32;;;;18935:11;18920:12;:26;;;;18973:12;18957:13;:28;;;;18302:693:::0;;;;:::o;8715:199::-;8820:4;8842:42;8852:12;:10;:12::i;:::-;8866:9;8877:6;8842:9;:42::i;:::-;8902:4;8895:11;;8715:199;;;;:::o;19262:123::-;3140:12;:10;:12::i;:::-;3130:22;;:6;;;;;;;;;;:22;;;3122:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19356:11:::1;19341:12;:26;;;;19262:123:::0;:::o;10631:188::-;3140:12;:10;:12::i;:::-;3130:22;;:6;;;;;;;;;;:22;;;3122:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10743:3:::1;10717:30;;:14;:30;;::::0;10709:63:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10797:14;10783:11;;:28;;;;;;;;;;;;;;;;;;10631:188:::0;:::o;10341:172::-;3140:12;:10;:12::i;:::-;3130:22;;:6;;;;;;;;;;:22;;;3122:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10420:9:::1;10415:91;10439:5;:12;10435:1;:16;10415:91;;;10490:4;10473;:14;10478:5;10484:1;10478:8;;;;;;;;:::i;:::-;;;;;;;;10473:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10453:3;;;;;;;10415:91;;;;10341:172:::0;:::o;6785:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;14486:197::-;14552:17;;;;;;;;;;;14536:33;;:12;:10;:12::i;:::-;:33;;;14528:42;;;;;;14581:23;14607:24;14625:4;14607:9;:24::i;:::-;14581:50;;14642:33;14659:15;14642:16;:33::i;:::-;14517:166;14486:197::o;8923:184::-;9040:7;9072:11;:18;9084:5;9072:18;;;;;;;;;;;;;;;:27;9091:7;9072:27;;;;;;;;;;;;;;;;9065:34;;8923:184;;;;:::o;3375:244::-;3140:12;:10;:12::i;:::-;3130:22;;:6;;;;;;;;;;:22;;;3122:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3484:1:::1;3464:22;;:8;:22;;::::0;3456:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3574:8;3545:38;;3566:6;::::0;::::1;;;;;;;;3545:38;;;;;;;;;;;;3603:8;3594:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3375:244:::0;:::o;1751:98::-;1804:7;1831:10;1824:17;;1751:98;:::o;10954:369::-;11098:1;11081:19;;:5;:19;;;11073:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11179:1;11160:21;;:7;:21;;;11152:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11261:6;11231:11;:18;11243:5;11231:18;;;;;;;;;;;;;;;:27;11250:7;11231:27;;;;;;;;;;;;;;;:36;;;;11299:7;11283:32;;11292:5;11283:32;;;11308:6;11283:32;;;;;;:::i;:::-;;;;;;;;10954:369;;;:::o;11332:2340::-;11470:1;11454:18;;:4;:18;;;11446:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11547:1;11533:16;;:2;:16;;;11525:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11617:1;11608:6;:10;11600:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11690:7;:5;:7::i;:::-;11682:15;;:4;:15;;;;:32;;;;;11707:7;:5;:7::i;:::-;11701:13;;:2;:13;;;;11682:32;11678:1262;;;11772:11;;;;;;;;;;;11767:144;;11820:7;:5;:7::i;:::-;11812:15;;:4;:15;;;11804:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;11767:144;11946:12;;11936:6;:22;;11928:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;12015:4;:10;12020:4;12015:10;;;;;;;;;;;;;;;;;;;;;;;;;12014:11;:24;;;;;12030:4;:8;12035:2;12030:8;;;;;;;;;;;;;;;;;;;;;;;;;12029:9;12014:24;12006:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12105:13;;;;;;;;;;;12099:19;;:2;:19;;;12096:146;;12172:14;;12163:6;12147:13;12157:2;12147:9;:13::i;:::-;:22;;;;:::i;:::-;:39;12139:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;12096:146;12259:28;12290:24;12308:4;12290:9;:24::i;:::-;12259:55;;12329:12;12368:19;;12344:20;:43;;12329:58;;12432:12;;12408:20;:36;12405:124;;12501:12;;12478:35;;12405:124;12550:7;:18;;;;;12562:6;;;;;;;;;;12561:7;12550:18;:43;;;;;12580:13;;;;;;;;;;;12572:21;;:4;:21;;;;12550:43;:58;;;;;12597:11;;;;;;;;;;;12550:58;:87;;;;;12613:18;:24;12632:4;12613:24;;;;;;;;;;;;;;;;;;;;;;;;;12612:25;12550:87;:114;;;;;12642:18;:22;12661:2;12642:22;;;;;;;;;;;;;;;;;;;;;;;;;12641:23;12550:114;12546:383;;;12685:38;12702:20;12685:16;:38::i;:::-;12742:26;12771:21;12742:50;;12836:1;12815:18;:22;12811:103;;;12862:32;12872:21;12862:9;:32::i;:::-;12811:103;12666:263;12546:383;11716:1224;;11678:1262;12953:12;12968:4;12953:19;;13018:18;:24;13037:4;13018:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;13046:18;:22;13065:2;13046:22;;;;;;;;;;;;;;;;;;;;;;;;;13018:50;13017:102;;;;13082:13;;;;;;;;;;;13074:21;;:4;:21;;;;:44;;;;;13105:13;;;;;;;;;;;13099:19;;:2;:19;;;;13074:44;13017:102;13013:597;;;13146:5;13136:15;;13013:597;;;13230:13;;;;;;;;;;;13222:21;;:4;:21;;;:55;;;;;13261:15;;;;;;;;;;;13247:30;;:2;:30;;;;13222:55;13219:162;;;13310:14;;13298:9;:26;;;;13353:12;;13343:7;:22;;;;13219:162;13441:13;;;;;;;;;;;13435:19;;:2;:19;;;:55;;;;;13474:15;;;;;;;;;;;13458:32;;:4;:32;;;;13435:55;13431:165;;;13523:15;;13511:9;:27;;;;13567:13;;13557:7;:23;;;;13431:165;13013:597;13623:41;13638:4;13644:2;13648:6;13656:7;13623:14;:41::i;:::-;11435:2237;11332:2340;;;:::o;3987:224::-;4107:7;4140:1;4135;:6;;4143:12;4127:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4167:9;4183:1;4179;:5;;;;:::i;:::-;4167:17;;4202:1;4195:8;;;3987:224;;;;;:::o;14173:96::-;14227:17;;;;;;;;;;;:26;;:34;14254:6;14227:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14173:96;:::o;9773:323::-;9868:7;9926;;9915;:18;;9893:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;10014:19;10036:10;:8;:10::i;:::-;10014:32;;10064:24;10076:11;10064:7;:11;;:24;;;;:::i;:::-;10057:31;;;9773:323;;;:::o;13681:483::-;7539:4;7530:6;;:13;;;;;;;;;;;;;;;;;;13759:21:::1;13797:1;13783:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13759:40;;13828:4;13810;13815:1;13810:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13854:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13844:4;13849:1;13844:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13887:62;13904:4;13919:15;;;;;;;;;;;13937:11;13887:8;:62::i;:::-;13960:15;;;;;;;;;;;:66;;;14041:11;14067:1;14083:4;14110;14130:15;13960:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13748:416;7575:5:::0;7566:6;;:14;;;;;;;;;;;;;;;;;;13681:483;:::o;14894:282::-;15050:7;15045:28;;15059:14;:12;:14::i;:::-;15045:28;15084:44;15102:6;15110:9;15121:6;15084:17;:44::i;:::-;15144:7;15139:29;;15153:15;:13;:15::i;:::-;15139:29;14894:282;;;;:::o;17863:164::-;17905:7;17926:15;17943;17962:19;:17;:19::i;:::-;17925:56;;;;17999:20;18011:7;17999;:11;;:20;;;;:::i;:::-;17992:27;;;;17863:164;:::o;4475:132::-;4533:7;4560:39;4564:1;4567;4560:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4553:46;;4475:132;;;;:::o;10105:221::-;10165:1;10152:9;;:14;:30;;;;;10181:1;10170:7;;:12;10152:30;10184:7;10148:43;10224:9;;10204:17;:29;;;;10262:7;;10244:15;:25;;;;10295:1;10283:9;:13;;;;10317:1;10307:7;:11;;;;10105:221;:::o;15185:610::-;15332:15;15362:23;15400:12;15427:23;15465:12;15492:13;15519:19;15530:7;15519:10;:19::i;:::-;15317:221;;;;;;;;;;;;15567:28;15587:7;15567;:15;15575:6;15567:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;15549:7;:15;15557:6;15549:15;;;;;;;;;;;;;;;:46;;;;15627:39;15650:15;15627:7;:18;15635:9;15627:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15606:7;:18;15614:9;15606:18;;;;;;;;;;;;;;;:60;;;;15677:16;15687:5;15677:9;:16::i;:::-;15704:23;15716:4;15722;15704:11;:23::i;:::-;15760:9;15743:44;;15752:6;15743:44;;;15771:15;15743:44;;;;;;:::i;:::-;;;;;;;;15306:489;;;;;;15185:610;;;:::o;10828:117::-;10884:17;;10872:9;:29;;;;10922:15;;10912:7;:25;;;;10828:117::o;18036:257::-;18087:7;18096;18116:15;18134:7;;18116:25;;18152:15;5963:20;18152:25;;18202:20;5963;18202:7;;:11;;:20;;;;:::i;:::-;18192:7;:30;18188:61;;;18232:7;;5963:20;18224:25;;;;;;;;18188:61;18268:7;18277;18260:25;;;;;;18036:257;;;:::o;4616:223::-;4736:7;4768:1;4764;:5;4771:12;4756:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4795:9;4811:1;4807;:5;;;;:::i;:::-;4795:17;;4830:1;4823:8;;;4616:223;;;;;:::o;16218:615::-;16318:7;16340;16362;16384;16406;16428;16464:23;16489:12;16503:13;16533:40;16545:7;16554:9;;16565:7;;16533:11;:40::i;:::-;16463:110;;;;;;16584:19;16606:10;:8;:10::i;:::-;16584:32;;16628:15;16645:23;16670:12;16699:46;16711:7;16720:4;16726:5;16733:11;16699;:46::i;:::-;16627:118;;;;;;16764:7;16773:15;16790:4;16796:15;16813:4;16819:5;16756:69;;;;;;;;;;;;;;;;;;;16218:615;;;;;;;:::o;3842:136::-;3900:7;3927:43;3931:1;3934;3927:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3920:50;;3842:136;;;;:::o;3654:179::-;3712:7;3732:9;3748:1;3744;:5;;;;:::i;:::-;3732:17;;3773:1;3768;:6;;3760:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3824:1;3817:8;;;3654:179;;;;:::o;15804:211::-;15857:19;15879:10;:8;:10::i;:::-;15857:32;;15900:13;15916:22;15926:11;15916:5;:9;;:22;;;;:::i;:::-;15900:38;;15974:33;16001:5;15974:7;:22;15990:4;15974:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15949:7;:22;15965:4;15949:22;;;;;;;;;;;;;;;:58;;;;15846:169;;15804:211;:::o;16024:147::-;16102:17;16114:4;16102:7;;:11;;:17;;;;:::i;:::-;16092:7;:27;;;;16143:20;16158:4;16143:10;;:14;;:20;;;;:::i;:::-;16130:10;:33;;;;16024:147;;:::o;16842:469::-;17011:7;17033;17055;17090:12;17105:30;17131:3;17105:21;17117:8;17105:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;17090:45;;17146:13;17162:28;17186:3;17162:19;17174:6;17162:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;17146:44;;17201:23;17227:28;17249:5;17227:17;17239:4;17227:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17201:54;;17274:15;17291:4;17297:5;17266:37;;;;;;;;;16842:469;;;;;;;:::o;17320:534::-;17514:7;17536;17558;17593:15;17611:24;17623:11;17611:7;:11;;:24;;;;:::i;:::-;17593:42;;17646:12;17661:21;17670:11;17661:4;:8;;:21;;;;:::i;:::-;17646:36;;17693:13;17709:22;17719:11;17709:5;:9;;:22;;;;:::i;:::-;17693:38;;17742:23;17768:28;17790:5;17768:17;17780:4;17768:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17742:54;;17815:7;17824:15;17841:4;17807:39;;;;;;;;;;17320:534;;;;;;;;:::o;4220:246::-;4278:7;4307:1;4302;:6;4298:47;;4332:1;4325:8;;;;4298:47;4355:9;4371:1;4367;:5;;;;:::i;:::-;4355:17;;4400:1;4395;4391;:5;;;;:::i;:::-;:10;4383:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4457:1;4450:8;;;4220:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:75::-;1275:6;1308:2;1302:9;1292:19;;1242:75;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:60::-;3367:3;3388:5;3381:12;;3339:60;;;:::o;3405:142::-;3455:9;3488:53;3506:34;3515:24;3533:5;3515:24;:::i;:::-;3506:34;:::i;:::-;3488:53;:::i;:::-;3475:66;;3405:142;;;:::o;3553:126::-;3603:9;3636:37;3667:5;3636:37;:::i;:::-;3623:50;;3553:126;;;:::o;3685:152::-;3761:9;3794:37;3825:5;3794:37;:::i;:::-;3781:50;;3685:152;;;:::o;3843:183::-;3956:63;4013:5;3956:63;:::i;:::-;3951:3;3944:76;3843:183;;:::o;4032:274::-;4151:4;4189:2;4178:9;4174:18;4166:26;;4202:97;4296:1;4285:9;4281:17;4272:6;4202:97;:::i;:::-;4032:274;;;;:::o;4312:118::-;4399:24;4417:5;4399:24;:::i;:::-;4394:3;4387:37;4312:118;;:::o;4436:222::-;4529:4;4567:2;4556:9;4552:18;4544:26;;4580:71;4648:1;4637:9;4633:17;4624:6;4580:71;:::i;:::-;4436:222;;;;:::o;4664:619::-;4741:6;4749;4757;4806:2;4794:9;4785:7;4781:23;4777:32;4774:119;;;4812:79;;:::i;:::-;4774:119;4932:1;4957:53;5002:7;4993:6;4982:9;4978:22;4957:53;:::i;:::-;4947:63;;4903:117;5059:2;5085:53;5130:7;5121:6;5110:9;5106:22;5085:53;:::i;:::-;5075:63;;5030:118;5187:2;5213:53;5258:7;5249:6;5238:9;5234:22;5213:53;:::i;:::-;5203:63;;5158:118;4664:619;;;;;:::o;5289:329::-;5348:6;5397:2;5385:9;5376:7;5372:23;5368:32;5365:119;;;5403:79;;:::i;:::-;5365:119;5523:1;5548:53;5593:7;5584:6;5573:9;5569:22;5548:53;:::i;:::-;5538:63;;5494:117;5289:329;;;;:::o;5624:86::-;5659:7;5699:4;5692:5;5688:16;5677:27;;5624:86;;;:::o;5716:112::-;5799:22;5815:5;5799:22;:::i;:::-;5794:3;5787:35;5716:112;;:::o;5834:214::-;5923:4;5961:2;5950:9;5946:18;5938:26;;5974:67;6038:1;6027:9;6023:17;6014:6;5974:67;:::i;:::-;5834:214;;;;:::o;6054:118::-;6141:24;6159:5;6141:24;:::i;:::-;6136:3;6129:37;6054:118;;:::o;6178:222::-;6271:4;6309:2;6298:9;6294:18;6286:26;;6322:71;6390:1;6379:9;6375:17;6366:6;6322:71;:::i;:::-;6178:222;;;;:::o;6406:329::-;6465:6;6514:2;6502:9;6493:7;6489:23;6485:32;6482:119;;;6520:79;;:::i;:::-;6482:119;6640:1;6665:53;6710:7;6701:6;6690:9;6686:22;6665:53;:::i;:::-;6655:63;;6611:117;6406:329;;;;:::o;6741:116::-;6811:21;6826:5;6811:21;:::i;:::-;6804:5;6801:32;6791:60;;6847:1;6844;6837:12;6791:60;6741:116;:::o;6863:133::-;6906:5;6944:6;6931:20;6922:29;;6960:30;6984:5;6960:30;:::i;:::-;6863:133;;;;:::o;7002:323::-;7058:6;7107:2;7095:9;7086:7;7082:23;7078:32;7075:119;;;7113:79;;:::i;:::-;7075:119;7233:1;7258:50;7300:7;7291:6;7280:9;7276:22;7258:50;:::i;:::-;7248:60;;7204:114;7002:323;;;;:::o;7331:765::-;7417:6;7425;7433;7441;7490:3;7478:9;7469:7;7465:23;7461:33;7458:120;;;7497:79;;:::i;:::-;7458:120;7617:1;7642:53;7687:7;7678:6;7667:9;7663:22;7642:53;:::i;:::-;7632:63;;7588:117;7744:2;7770:53;7815:7;7806:6;7795:9;7791:22;7770:53;:::i;:::-;7760:63;;7715:118;7872:2;7898:53;7943:7;7934:6;7923:9;7919:22;7898:53;:::i;:::-;7888:63;;7843:118;8000:2;8026:53;8071:7;8062:6;8051:9;8047:22;8026:53;:::i;:::-;8016:63;;7971:118;7331:765;;;;;;;:::o;8102:117::-;8211:1;8208;8201:12;8225:180;8273:77;8270:1;8263:88;8370:4;8367:1;8360:15;8394:4;8391:1;8384:15;8411:281;8494:27;8516:4;8494:27;:::i;:::-;8486:6;8482:40;8624:6;8612:10;8609:22;8588:18;8576:10;8573:34;8570:62;8567:88;;;8635:18;;:::i;:::-;8567:88;8675:10;8671:2;8664:22;8454:238;8411:281;;:::o;8698:129::-;8732:6;8759:20;;:::i;:::-;8749:30;;8788:33;8816:4;8808:6;8788:33;:::i;:::-;8698:129;;;:::o;8833:311::-;8910:4;9000:18;8992:6;8989:30;8986:56;;;9022:18;;:::i;:::-;8986:56;9072:4;9064:6;9060:17;9052:25;;9132:4;9126;9122:15;9114:23;;8833:311;;;:::o;9150:117::-;9259:1;9256;9249:12;9290:710;9386:5;9411:81;9427:64;9484:6;9427:64;:::i;:::-;9411:81;:::i;:::-;9402:90;;9512:5;9541:6;9534:5;9527:21;9575:4;9568:5;9564:16;9557:23;;9628:4;9620:6;9616:17;9608:6;9604:30;9657:3;9649:6;9646:15;9643:122;;;9676:79;;:::i;:::-;9643:122;9791:6;9774:220;9808:6;9803:3;9800:15;9774:220;;;9883:3;9912:37;9945:3;9933:10;9912:37;:::i;:::-;9907:3;9900:50;9979:4;9974:3;9970:14;9963:21;;9850:144;9834:4;9829:3;9825:14;9818:21;;9774:220;;;9778:21;9392:608;;9290:710;;;;;:::o;10023:370::-;10094:5;10143:3;10136:4;10128:6;10124:17;10120:27;10110:122;;10151:79;;:::i;:::-;10110:122;10268:6;10255:20;10293:94;10383:3;10375:6;10368:4;10360:6;10356:17;10293:94;:::i;:::-;10284:103;;10100:293;10023:370;;;;:::o;10399:539::-;10483:6;10532:2;10520:9;10511:7;10507:23;10503:32;10500:119;;;10538:79;;:::i;:::-;10500:119;10686:1;10675:9;10671:17;10658:31;10716:18;10708:6;10705:30;10702:117;;;10738:79;;:::i;:::-;10702:117;10843:78;10913:7;10904:6;10893:9;10889:22;10843:78;:::i;:::-;10833:88;;10629:302;10399:539;;;;:::o;10944:474::-;11012:6;11020;11069:2;11057:9;11048:7;11044:23;11040:32;11037:119;;;11075:79;;:::i;:::-;11037:119;11195:1;11220:53;11265:7;11256:6;11245:9;11241:22;11220:53;:::i;:::-;11210:63;;11166:117;11322:2;11348:53;11393:7;11384:6;11373:9;11369:22;11348:53;:::i;:::-;11338:63;;11293:118;10944:474;;;;;:::o;11424:182::-;11564:34;11560:1;11552:6;11548:14;11541:58;11424:182;:::o;11612:366::-;11754:3;11775:67;11839:2;11834:3;11775:67;:::i;:::-;11768:74;;11851:93;11940:3;11851:93;:::i;:::-;11969:2;11964:3;11960:12;11953:19;;11612:366;;;:::o;11984:419::-;12150:4;12188:2;12177:9;12173:18;12165:26;;12237:9;12231:4;12227:20;12223:1;12212:9;12208:17;12201:47;12265:131;12391:4;12265:131;:::i;:::-;12257:139;;11984:419;;;:::o;12409:224::-;12549:34;12545:1;12537:6;12533:14;12526:58;12618:7;12613:2;12605:6;12601:15;12594:32;12409:224;:::o;12639:366::-;12781:3;12802:67;12866:2;12861:3;12802:67;:::i;:::-;12795:74;;12878:93;12967:3;12878:93;:::i;:::-;12996:2;12991:3;12987:12;12980:19;;12639:366;;;:::o;13011:419::-;13177:4;13215:2;13204:9;13200:18;13192:26;;13264:9;13258:4;13254:20;13250:1;13239:9;13235:17;13228:47;13292:131;13418:4;13292:131;:::i;:::-;13284:139;;13011:419;;;:::o;13436:221::-;13576:34;13572:1;13564:6;13560:14;13553:58;13645:4;13640:2;13632:6;13628:15;13621:29;13436:221;:::o;13663:366::-;13805:3;13826:67;13890:2;13885:3;13826:67;:::i;:::-;13819:74;;13902:93;13991:3;13902:93;:::i;:::-;14020:2;14015:3;14011:12;14004:19;;13663:366;;;:::o;14035:419::-;14201:4;14239:2;14228:9;14224:18;14216:26;;14288:9;14282:4;14278:20;14274:1;14263:9;14259:17;14252:47;14316:131;14442:4;14316:131;:::i;:::-;14308:139;;14035:419;;;:::o;14460:225::-;14600:34;14596:1;14588:6;14584:14;14577:58;14669:8;14664:2;14656:6;14652:15;14645:33;14460:225;:::o;14691:366::-;14833:3;14854:67;14918:2;14913:3;14854:67;:::i;:::-;14847:74;;14930:93;15019:3;14930:93;:::i;:::-;15048:2;15043:3;15039:12;15032:19;;14691:366;;;:::o;15063:419::-;15229:4;15267:2;15256:9;15252:18;15244:26;;15316:9;15310:4;15306:20;15302:1;15291:9;15287:17;15280:47;15344:131;15470:4;15344:131;:::i;:::-;15336:139;;15063:419;;;:::o;15488:222::-;15628:34;15624:1;15616:6;15612:14;15605:58;15697:5;15692:2;15684:6;15680:15;15673:30;15488:222;:::o;15716:366::-;15858:3;15879:67;15943:2;15938:3;15879:67;:::i;:::-;15872:74;;15955:93;16044:3;15955:93;:::i;:::-;16073:2;16068:3;16064:12;16057:19;;15716:366;;;:::o;16088:419::-;16254:4;16292:2;16281:9;16277:18;16269:26;;16341:9;16335:4;16331:20;16327:1;16316:9;16312:17;16305:47;16369:131;16495:4;16369:131;:::i;:::-;16361:139;;16088:419;;;:::o;16513:170::-;16653:22;16649:1;16641:6;16637:14;16630:46;16513:170;:::o;16689:366::-;16831:3;16852:67;16916:2;16911:3;16852:67;:::i;:::-;16845:74;;16928:93;17017:3;16928:93;:::i;:::-;17046:2;17041:3;17037:12;17030:19;;16689:366;;;:::o;17061:419::-;17227:4;17265:2;17254:9;17250:18;17242:26;;17314:9;17308:4;17304:20;17300:1;17289:9;17285:17;17278:47;17342:131;17468:4;17342:131;:::i;:::-;17334:139;;17061:419;;;:::o;17486:180::-;17534:77;17531:1;17524:88;17631:4;17628:1;17621:15;17655:4;17652:1;17645:15;17672:225;17812:34;17808:1;17800:6;17796:14;17789:58;17881:8;17876:2;17868:6;17864:15;17857:33;17672:225;:::o;17903:366::-;18045:3;18066:67;18130:2;18125:3;18066:67;:::i;:::-;18059:74;;18142:93;18231:3;18142:93;:::i;:::-;18260:2;18255:3;18251:12;18244:19;;17903:366;;;:::o;18275:419::-;18441:4;18479:2;18468:9;18464:18;18456:26;;18528:9;18522:4;18518:20;18514:1;18503:9;18499:17;18492:47;18556:131;18682:4;18556:131;:::i;:::-;18548:139;;18275:419;;;:::o;18700:223::-;18840:34;18836:1;18828:6;18824:14;18817:58;18909:6;18904:2;18896:6;18892:15;18885:31;18700:223;:::o;18929:366::-;19071:3;19092:67;19156:2;19151:3;19092:67;:::i;:::-;19085:74;;19168:93;19257:3;19168:93;:::i;:::-;19286:2;19281:3;19277:12;19270:19;;18929:366;;;:::o;19301:419::-;19467:4;19505:2;19494:9;19490:18;19482:26;;19554:9;19548:4;19544:20;19540:1;19529:9;19525:17;19518:47;19582:131;19708:4;19582:131;:::i;:::-;19574:139;;19301:419;;;:::o;19726:221::-;19866:34;19862:1;19854:6;19850:14;19843:58;19935:4;19930:2;19922:6;19918:15;19911:29;19726:221;:::o;19953:366::-;20095:3;20116:67;20180:2;20175:3;20116:67;:::i;:::-;20109:74;;20192:93;20281:3;20192:93;:::i;:::-;20310:2;20305:3;20301:12;20294:19;;19953:366;;;:::o;20325:419::-;20491:4;20529:2;20518:9;20514:18;20506:26;;20578:9;20572:4;20568:20;20564:1;20553:9;20549:17;20542:47;20606:131;20732:4;20606:131;:::i;:::-;20598:139;;20325:419;;;:::o;20750:224::-;20890:34;20886:1;20878:6;20874:14;20867:58;20959:7;20954:2;20946:6;20942:15;20935:32;20750:224;:::o;20980:366::-;21122:3;21143:67;21207:2;21202:3;21143:67;:::i;:::-;21136:74;;21219:93;21308:3;21219:93;:::i;:::-;21337:2;21332:3;21328:12;21321:19;;20980:366;;;:::o;21352:419::-;21518:4;21556:2;21545:9;21541:18;21533:26;;21605:9;21599:4;21595:20;21591:1;21580:9;21576:17;21569:47;21633:131;21759:4;21633:131;:::i;:::-;21625:139;;21352:419;;;:::o;21777:222::-;21917:34;21913:1;21905:6;21901:14;21894:58;21986:5;21981:2;21973:6;21969:15;21962:30;21777:222;:::o;22005:366::-;22147:3;22168:67;22232:2;22227:3;22168:67;:::i;:::-;22161:74;;22244:93;22333:3;22244:93;:::i;:::-;22362:2;22357:3;22353:12;22346:19;;22005:366;;;:::o;22377:419::-;22543:4;22581:2;22570:9;22566:18;22558:26;;22630:9;22624:4;22620:20;22616:1;22605:9;22601:17;22594:47;22658:131;22784:4;22658:131;:::i;:::-;22650:139;;22377:419;;;:::o;22802:228::-;22942:34;22938:1;22930:6;22926:14;22919:58;23011:11;23006:2;22998:6;22994:15;22987:36;22802:228;:::o;23036:366::-;23178:3;23199:67;23263:2;23258:3;23199:67;:::i;:::-;23192:74;;23275:93;23364:3;23275:93;:::i;:::-;23393:2;23388:3;23384:12;23377:19;;23036:366;;;:::o;23408:419::-;23574:4;23612:2;23601:9;23597:18;23589:26;;23661:9;23655:4;23651:20;23647:1;23636:9;23632:17;23625:47;23689:131;23815:4;23689:131;:::i;:::-;23681:139;;23408:419;;;:::o;23833:250::-;23973:34;23969:1;23961:6;23957:14;23950:58;24042:33;24037:2;24029:6;24025:15;24018:58;23833:250;:::o;24089:366::-;24231:3;24252:67;24316:2;24311:3;24252:67;:::i;:::-;24245:74;;24328:93;24417:3;24328:93;:::i;:::-;24446:2;24441:3;24437:12;24430:19;;24089:366;;;:::o;24461:419::-;24627:4;24665:2;24654:9;24650:18;24642:26;;24714:9;24708:4;24704:20;24700:1;24689:9;24685:17;24678:47;24742:131;24868:4;24742:131;:::i;:::-;24734:139;;24461:419;;;:::o;24886:178::-;25026:30;25022:1;25014:6;25010:14;25003:54;24886:178;:::o;25070:366::-;25212:3;25233:67;25297:2;25292:3;25233:67;:::i;:::-;25226:74;;25309:93;25398:3;25309:93;:::i;:::-;25427:2;25422:3;25418:12;25411:19;;25070:366;;;:::o;25442:419::-;25608:4;25646:2;25635:9;25631:18;25623:26;;25695:9;25689:4;25685:20;25681:1;25670:9;25666:17;25659:47;25723:131;25849:4;25723:131;:::i;:::-;25715:139;;25442:419;;;:::o;25867:222::-;26007:34;26003:1;25995:6;25991:14;25984:58;26076:5;26071:2;26063:6;26059:15;26052:30;25867:222;:::o;26095:366::-;26237:3;26258:67;26322:2;26317:3;26258:67;:::i;:::-;26251:74;;26334:93;26423:3;26334:93;:::i;:::-;26452:2;26447:3;26443:12;26436:19;;26095:366;;;:::o;26467:419::-;26633:4;26671:2;26660:9;26656:18;26648:26;;26720:9;26714:4;26710:20;26706:1;26695:9;26691:17;26684:47;26748:131;26874:4;26748:131;:::i;:::-;26740:139;;26467:419;;;:::o;26892:180::-;26940:77;26937:1;26930:88;27037:4;27034:1;27027:15;27061:4;27058:1;27051:15;27078:191;27118:3;27137:20;27155:1;27137:20;:::i;:::-;27132:25;;27171:20;27189:1;27171:20;:::i;:::-;27166:25;;27214:1;27211;27207:9;27200:16;;27235:3;27232:1;27229:10;27226:36;;;27242:18;;:::i;:::-;27226:36;27078:191;;;;:::o;27275:222::-;27415:34;27411:1;27403:6;27399:14;27392:58;27484:5;27479:2;27471:6;27467:15;27460:30;27275:222;:::o;27503:366::-;27645:3;27666:67;27730:2;27725:3;27666:67;:::i;:::-;27659:74;;27742:93;27831:3;27742:93;:::i;:::-;27860:2;27855:3;27851:12;27844:19;;27503:366;;;:::o;27875:419::-;28041:4;28079:2;28068:9;28064:18;28056:26;;28128:9;28122:4;28118:20;28114:1;28103:9;28099:17;28092:47;28156:131;28282:4;28156:131;:::i;:::-;28148:139;;27875:419;;;:::o;28300:194::-;28340:4;28360:20;28378:1;28360:20;:::i;:::-;28355:25;;28394:20;28412:1;28394:20;:::i;:::-;28389:25;;28438:1;28435;28431:9;28423:17;;28462:1;28456:4;28453:11;28450:37;;;28467:18;;:::i;:::-;28450:37;28300:194;;;;:::o;28500:229::-;28640:34;28636:1;28628:6;28624:14;28617:58;28709:12;28704:2;28696:6;28692:15;28685:37;28500:229;:::o;28735:366::-;28877:3;28898:67;28962:2;28957:3;28898:67;:::i;:::-;28891:74;;28974:93;29063:3;28974:93;:::i;:::-;29092:2;29087:3;29083:12;29076:19;;28735:366;;;:::o;29107:419::-;29273:4;29311:2;29300:9;29296:18;29288:26;;29360:9;29354:4;29350:20;29346:1;29335:9;29331:17;29324:47;29388:131;29514:4;29388:131;:::i;:::-;29380:139;;29107:419;;;:::o;29532:143::-;29589:5;29620:6;29614:13;29605:22;;29636:33;29663:5;29636:33;:::i;:::-;29532:143;;;;:::o;29681:351::-;29751:6;29800:2;29788:9;29779:7;29775:23;29771:32;29768:119;;;29806:79;;:::i;:::-;29768:119;29926:1;29951:64;30007:7;29998:6;29987:9;29983:22;29951:64;:::i;:::-;29941:74;;29897:128;29681:351;;;;:::o;30038:85::-;30083:7;30112:5;30101:16;;30038:85;;;:::o;30129:158::-;30187:9;30220:61;30238:42;30247:32;30273:5;30247:32;:::i;:::-;30238:42;:::i;:::-;30220:61;:::i;:::-;30207:74;;30129:158;;;:::o;30293:147::-;30388:45;30427:5;30388:45;:::i;:::-;30383:3;30376:58;30293:147;;:::o;30446:114::-;30513:6;30547:5;30541:12;30531:22;;30446:114;;;:::o;30566:184::-;30665:11;30699:6;30694:3;30687:19;30739:4;30734:3;30730:14;30715:29;;30566:184;;;;:::o;30756:132::-;30823:4;30846:3;30838:11;;30876:4;30871:3;30867:14;30859:22;;30756:132;;;:::o;30894:108::-;30971:24;30989:5;30971:24;:::i;:::-;30966:3;30959:37;30894:108;;:::o;31008:179::-;31077:10;31098:46;31140:3;31132:6;31098:46;:::i;:::-;31176:4;31171:3;31167:14;31153:28;;31008:179;;;;:::o;31193:113::-;31263:4;31295;31290:3;31286:14;31278:22;;31193:113;;;:::o;31342:732::-;31461:3;31490:54;31538:5;31490:54;:::i;:::-;31560:86;31639:6;31634:3;31560:86;:::i;:::-;31553:93;;31670:56;31720:5;31670:56;:::i;:::-;31749:7;31780:1;31765:284;31790:6;31787:1;31784:13;31765:284;;;31866:6;31860:13;31893:63;31952:3;31937:13;31893:63;:::i;:::-;31886:70;;31979:60;32032:6;31979:60;:::i;:::-;31969:70;;31825:224;31812:1;31809;31805:9;31800:14;;31765:284;;;31769:14;32065:3;32058:10;;31466:608;;;31342:732;;;;:::o;32080:831::-;32343:4;32381:3;32370:9;32366:19;32358:27;;32395:71;32463:1;32452:9;32448:17;32439:6;32395:71;:::i;:::-;32476:80;32552:2;32541:9;32537:18;32528:6;32476:80;:::i;:::-;32603:9;32597:4;32593:20;32588:2;32577:9;32573:18;32566:48;32631:108;32734:4;32725:6;32631:108;:::i;:::-;32623:116;;32749:72;32817:2;32806:9;32802:18;32793:6;32749:72;:::i;:::-;32831:73;32899:3;32888:9;32884:19;32875:6;32831:73;:::i;:::-;32080:831;;;;;;;;:::o;32917:180::-;32965:77;32962:1;32955:88;33062:4;33059:1;33052:15;33086:4;33083:1;33076:15;33103:185;33143:1;33160:20;33178:1;33160:20;:::i;:::-;33155:25;;33194:20;33212:1;33194:20;:::i;:::-;33189:25;;33233:1;33223:35;;33238:18;;:::i;:::-;33223:35;33280:1;33277;33273:9;33268:14;;33103:185;;;;:::o;33294:177::-;33434:29;33430:1;33422:6;33418:14;33411:53;33294:177;:::o;33477:366::-;33619:3;33640:67;33704:2;33699:3;33640:67;:::i;:::-;33633:74;;33716:93;33805:3;33716:93;:::i;:::-;33834:2;33829:3;33825:12;33818:19;;33477:366;;;:::o;33849:419::-;34015:4;34053:2;34042:9;34038:18;34030:26;;34102:9;34096:4;34092:20;34088:1;34077:9;34073:17;34066:47;34130:131;34256:4;34130:131;:::i;:::-;34122:139;;33849:419;;;:::o;34274:410::-;34314:7;34337:20;34355:1;34337:20;:::i;:::-;34332:25;;34371:20;34389:1;34371:20;:::i;:::-;34366:25;;34426:1;34423;34419:9;34448:30;34466:11;34448:30;:::i;:::-;34437:41;;34627:1;34618:7;34614:15;34611:1;34608:22;34588:1;34581:9;34561:83;34538:139;;34657:18;;:::i;:::-;34538:139;34322:362;34274:410;;;;:::o;34690:220::-;34830:34;34826:1;34818:6;34814:14;34807:58;34899:3;34894:2;34886:6;34882:15;34875:28;34690:220;:::o;34916:366::-;35058:3;35079:67;35143:2;35138:3;35079:67;:::i;:::-;35072:74;;35155:93;35244:3;35155:93;:::i;:::-;35273:2;35268:3;35264:12;35257:19;;34916:366;;;:::o;35288:419::-;35454:4;35492:2;35481:9;35477:18;35469:26;;35541:9;35535:4;35531:20;35527:1;35516:9;35512:17;35505:47;35569:131;35695:4;35569:131;:::i;:::-;35561:139;;35288:419;;;:::o

Swarm Source

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